/* ========== Typografie & Basis ========== */ .hero-section { width: 100%; text-align: center; padding: 0 1rem; } .hero-title { font-size: clamp(1.8rem, 4vw, 4rem); font-weight: 400; line-height: 1.2; color: #046e6e; word-break: normal; hyphens: none; } /* ========== Vereinheitlichte Section-Abstände ========== */ section { margin-bottom: 0; } .section { padding-top: 90px; padding-bottom: 90px; margin-top: 80px; margin-bottom: 80px; } /* ========== Beschreibung ========== */ .description { font-size: 22px; line-height: 1.5; padding-top: 90px; padding-bottom: 1px; @media (max-width: 768px) { font-size: 18px; padding-top: 70px; } @media (max-width: 480px) { font-size: 16px; padding-top: 50px; } } /* ========== Fakten ========== */ .facts .fact-item { padding: 15px; } .fact-image { height: 250px; width: auto; object-fit: contain; border-radius: 8px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); } /* ========== Hintergründe ========== */ .custom-background { background-size: cover; background-position: center; background-repeat: no-repeat; } .gif-background { background-image: url('/images/BackgroundAnimation.svg'); background-repeat: no-repeat; position: relative; background-size: cover; background-position: center 50%; @media (max-width: 991px) { background-size: 120% auto; background-position: center 40%; } @media (max-width: 575px) { background-size: 180% auto; background-position: center 50%; } &::after { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(255, 255, 255, 0.8); @media (max-width: 575px) { background-color: rgba(255, 255, 255, 0.5); } } } /* ========== Service-Layout ========== */ .service-arrow .block { display: flex; align-items: center; justify-content: space-between; padding: 20px; border-radius: 100px; color: #8a0909; } .service-content { flex: 1; } .service-image { margin: 0; } .service-image img { max-width: 600px; height: auto; display: block; } /* Farbvarianten für Services */ .bg-service1, .bg-service3, .bg-service5, .bg-service7 { background-color: #8bcfd6; } .bg-service2, .bg-service4, .bg-service6, .bg-service8 { background-color: #6baeb5; } /* Service-Gitter */ .service-grid { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); justify-content: center; align-items: stretch; margin: 0 auto; max-width: 1200px; padding: 0 1rem; } .service-item-fixed { width: 100%; border-radius: 10px; overflow: hidden; position: relative; } .zoom-wrap { transition: transform 0.3s ease; width: 100%; height: 100%; position: relative; &:hover { transform: scale(1.06); } img { width: 100%; height: 100%; object-fit: cover; display: block; } a { display: block; text-decoration: none; color: inherit; } .overlay { position: absolute; top: 0; right: 0; bottom: 0; left: 0; background: rgba(0, 0, 0, 0.4); z-index: 1; } } .overlay-text { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); color: #fff; font-size: 2.3em; font-weight: bold; text-shadow: 0 2px 4px rgba(0, 0, 0, 0.8); z-index: 2; } /* ========== Zusatz-Layouts ========== */ .spacer-lg { height: 0px; } .service-item { position: relative; overflow: hidden; border-radius: 8px; img { width: 100%; display: block; } .overlay { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.3); } .overlay-text { font-size: clamp(2rem, 2vw, 3rem); } } .info-card { text-align: center; padding: 1rem; i { font-size: 2rem; margin-bottom: 0.5rem; } h3 { font-weight: 600; margin-top: 0.5rem; margin-bottom: 0.25rem; font-size: 1.2rem; color: #046e6e; } p { font-size: 1rem; color: #333; } } /* ========== WHY AMPERION ========== */ .why-grid { display: grid; gap: 2rem; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; } @media (max-width: 991.98px) { .why-grid { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 575.98px) { .why-grid { grid-template-columns: 1fr; } } .service-card { position: relative; display: flex; flex-direction: column; height: 100%; background: #fff; padding: 1.65rem 1.5rem; border-radius: 14px; box-shadow: 0 4px 12px rgba(0,0,0,.05); transition: box-shadow .25s ease; text-align: center; cursor: default; /* kein Hand-Cursor -> kein Link-Feeling */ } /* dezentes Hover-Feedback */ .service-card::after { content: ''; position: absolute; inset: 0; border-radius: inherit; background: radial-gradient(120% 100% at 50% 0%, rgba(245,166,35,.10), rgba(245,166,35,0) 60%); opacity: 0; transition: opacity .25s ease; pointer-events: none; } .service-card:hover { box-shadow: 0 10px 28px rgba(0,0,0,.08); } .service-card:hover::after { opacity: .04; /* sehr dezent */ } /* Icon */ .service-icon { width: 56px; height: 56px; object-fit: contain; margin: 0 auto .85rem auto; display: block; transform-origin: center; } /* Titel & Text */ .service-card-title { font-weight: 700; margin: .25rem 0 .5rem; } .service-card-description { line-height: 1.65; margin: 0; color: #333; } /* 1) Beim Einblenden (AOS setzt .aos-animate) kurzer, sauberer Pop-in */ @keyframes amp-pop { 0% { transform: scale(.92); opacity: 0; } 60% { transform: scale(1.02); opacity: 1; } 100% { transform: scale(1); } } .service-card.aos-animate .service-icon { animation: amp-pop .45s cubic-bezier(.2,.9,.2,1) both; } /* 2) Dezentes „Atmen“ (idle), startet erst nach dem Pop-in */ @keyframes amp-breathe { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2.5px); } } .service-card.aos-animate .service-icon { /* zweite Animation hängt sich hinten dran */ animation: amp-pop .45s cubic-bezier(.2,.9,.2,1) both, amp-breathe 7s ease-in-out .45s infinite; } /* Reduced motion respektieren */ @media (prefers-reduced-motion: reduce) { .service-card, .service-card::after { transition: none !important; } .service-card .service-icon { animation: none !important; } } /* ========== Container & Layout ========== */ .my-container { width: 80%; margin: 0 auto; } .custom-container { max-width: 1800px; margin: 0 auto; padding-left: 30px; padding-right: 30px; } .fixed-width { max-width: 1200px; margin: 0 auto; } .fixed-text { max-width: 600px; margin-right: 15px; } /* ========== Titel mit Hintergrund ========== */ .page-title::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: #ffffff; z-index: -1; } /* ========== Bildkomponenten & Icons ========== */ .custom-image { width: 100px; max-width: 70%; height: auto; } .custom-title { color: #046e6e; } /* ========== Hover Links ========== */ .hover-link { transition: color 0.3s ease; &:hover { color: #F5A623; } } .about-cta { color: #046e6e; /* Türkis */ font-weight: 700; text-decoration: none; border-bottom: 2px solid transparent; transition: color 0.2s ease, border-color 0.2s ease; } .about-cta:hover, .about-cta:focus { color: #F5A623; /* Orange */ border-bottom-color: #F5A623; } /* ========== Mehrwerte ========== */ .mehrwerte-grid { display: grid; gap: 0; grid-template-columns: repeat(1, 1fr); @media (min-width: 768px) { grid-template-columns: repeat(2, 1fr); } @media (min-width: 1200px) { grid-template-columns: repeat(4, 1fr); } } .mehrwerte-box { display: flex; flex-direction: column; justify-content: space-between; height: 100%; padding: 30px; border-radius: 8px; transition: background-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease; &:hover { background-color: lighten(#004d4d, 10%); transform: translateY(-4px); box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1); h4, p { color: #000 !important; } } h4, p { color: #000 !important; transition: color 0.3s ease; } } /* ========== Gründerteam & Intro-Text ========== */ .container-fluid { max-width: 100%; padding-left: 5vw; padding-right: 5vw; } #about-intro .intro-text { max-width: 200ch; hyphens: auto; -webkit-hyphens: auto; overflow-wrap: anywhere; margin-bottom: 1rem; } #about-intro .intro-text p, #about-intro .intro-text li { margin-bottom: 1rem; } /* ========== Logo Animation ========== */ .logo-container { width: 80%; margin: 0 auto; display: flex; flex-direction: row; justify-content: center; align-items: center; gap: 20px; } .frame1 { flex: 0 0 40%; display: flex; justify-content: center; align-items: center; } .frame2 { flex: 0 0 60%; display: flex; justify-content: center; align-items: center; } .banner-logo { max-width: 100%; height: auto; opacity: 0; } /* Animationen */ .frame1 .banner-logo { animation: moveIn 1s forwards; } .frame2 .banner-logo { animation: moveIn 1s 0.5s forwards; } @keyframes moveIn { from { transform: translateX(50px); opacity: 0; } to { transform: translateX(0); opacity: 1; } } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } .fade-in-title { opacity: 0; animation: fadeTitle 1.5s forwards 1s; } @keyframes fadeTitle { to { opacity: 1; } } @media (max-width: 768px) { .logo-container { flex-direction: column; width: 90%; } .frame1, .frame2 { flex: 0 0 auto; width: 100%; margin-bottom: 20px; } } /* ========== Body Base (aus style.scss) ========== */ body { font-family: Arial, sans-serif; text-align: center; background-color: #ffffff; margin: 0; padding: 20px; } /* Orange-Hover für Section-Grid (zoom-Variante) */ #leistungen-fokusthemen .service-item { position: relative; } #leistungen-fokusthemen .service-item .overlay-text { transition: color 0.25s ease; } #leistungen-fokusthemen .service-item:hover .overlay-text { color: #F5A623; /* Akzentfarbe */ } /* Abstand zwischen den beiden Grids */ #leistungen-fokusthemen .grid-spacer { height: 4rem; } @media (max-width: 992px) { #leistungen-fokusthemen .grid-spacer { height: 2.5rem; } } /* Bild unterhalb von "Darum AMPERION" */ .darum-image-wrapper { margin-top: 4rem; } /* ===== Über AMPERION Section ===== */ /* Hintergrundfarbe */ .bg-light-grey { background-color: #f3f3f3; } /* Grundlayout der Zeile */ #about .about-row { min-height: 400px; } /* Bildbereich */ #about .about-image-wrap { width: 100%; display: flex; align-items: flex-end; /* Bild unten ausrichten */ padding-top: 30px; } #about .about-image { width: 100%; max-width: clamp(200px, 38vw, 300px); height: auto; object-fit: contain; margin-left: auto; /* rechtsbündig in Spalte */ } /* Textbereich Abstände */ #about .text-left p { margin-bottom: 1rem; } /* Link-Styling: Standard Türkis, Hover Orange */ /* -> auch wenn in oder gewrappt */ #about .text-left a, #about .text-left b a, #about .text-left strong a { color: var(--amp-primary) !important; /* Türkis */ font-weight: 700; text-decoration: none; border-bottom: 2px solid transparent; transition: color 0.2s ease, border-color 0.2s ease; } #about .text-left a:hover, #about .text-left b a:hover, #about .text-left strong a:hover, #about .text-left a:focus { color: var(--amp-accent) !important; /* Orange */ border-bottom-color: var(--amp-accent); } #about .text-left a:focus-visible, #about .text-left b a:focus-visible, #about .text-left strong a:focus-visible { outline: 2px dashed var(--amp-accent); outline-offset: 2px; } /* ===== Affiliations unter "Darum AMPERION" ===== */ .darum-aff-row{ display:flex; align-items:center; justify-content:center; gap:clamp(1rem, 3vw, 3rem); /* etwas enger */ flex-wrap:wrap; margin-top:clamp(3rem, 3vw, 5rem); /* kompakter */ } .aff-group{ display:flex; align-items:center; justify-content:center; gap:clamp(.5rem, 1.5vw, 1rem); } /* Linker Block (Ingenieurbüros etc.) */ .aff-caption{ margin:0 0 .5rem 0; font-size:clamp(.85rem, 1vw, .95rem); color:#6b7280; text-align:left; } .aff-logos{ display:flex; align-items:center; gap:clamp(.5rem, 1vw, .75rem); flex-wrap:wrap; } /* Beide Logos gleich groß machen */ .aff-logos img, .aff-right .aff-pva-logo{ height:120px; /* Desktop-Höhe */ width:auto; display:block; object-fit:contain; } /* Rechter Block: Nur Logo */ .aff-right{ display:flex; align-items:center; justify-content:center; text-decoration:none; color:inherit; } /* Dezente Trennlinie zwischen links/rechts (nur Desktop) */ @media (min-width: 900px){ .aff-right{ padding-left:clamp(0.75rem, 2vw, 2rem); border-left:1px solid #e5e7eb; } } /* Mobil: keine Trennlinie / kein Einzug */ @media (max-width: 899.98px){ .aff-right{ border-left:0; padding-left:0; } } /* Mobile-Optimierung für sehr kleine Screens */ @media (max-width: 480px){ .aff-logos img, .aff-right .aff-pva-logo{ height:60px; /* kleinere Höhe auf Handy */ width:auto; } } /* Fokus-Style für Tastaturbedienung */ .aff-right:focus-visible{ outline:2px dashed var(--amp-accent); outline-offset:4px; } /* ======================================== CTA SECTION - HYBRID DESIGN ======================================== */ .cta { --cta-primary: #046e6e; /* Türkis */ --cta-accent: #F5A623; /* Orange */ /* Button-Preset (hier zentral Größe steuern) */ /* ÄNDERUNG: deutlich kleinere Buttons (Höhe, Breite, Schrift) */ --btn-py: clamp(1rem, 1.2vw, 1.2em); /* vorher 1.8–2.5rem -> jetzt kompakter */ --btn-px: clamp(1rem, 1.6vw, 1.2rem); /* vorher 1.8–2.5rem -> schmaler */ --btn-fs: clamp(1rem, 1.6vw, 1.8rem);/* vorher 1.8–2.5rem -> p-nahe Größe */ position: relative; overflow: hidden; padding: clamp(6rem, 10vw, 12rem) 0; /* belassen; nur Buttons werden kleiner */ background: #ffffff00; } /* ===== HINTERGRUND ANIMATIONEN ===== */ .cta__bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; } /* Energie-Linien Container */ .cta__energy-lines { position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0.6; } /* Horizontale Energie-Linie */ .energy-line-h { position: absolute; height: 1px; background: linear-gradient(90deg, transparent 0%, var(--cta-accent) 10%, var(--cta-accent) 90%, transparent 100%); width: 200px; animation: energyFlowH 8s linear infinite; &::after { content: ''; position: absolute; right: 0; top: 50%; transform: translateY(-50%); width: 20px; height: 3px; background: var(--cta-accent); box-shadow: 0 0 10px var(--cta-accent), 0 0 20px var(--cta-accent); border-radius: 50%; } &.energy-line-h1 { top: 20%; animation-duration: 6s; } &.energy-line-h2 { top: 40%; animation-duration: 7s; animation-delay: 2s; } &.energy-line-h3 { top: 60%; animation-duration: 8s; animation-delay: 4s; } &.energy-line-h4 { top: 80%; animation-duration: 6.5s; animation-delay: 1s; } } @keyframes energyFlowH { 0% { left: -200px; opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { left: 100%; opacity: 0; } } /* Vertikale Energie-Linie */ .energy-line-v { position: absolute; width: 1px; background: linear-gradient(180deg, transparent 0%, var(--cta-accent) 10%, var(--cta-accent) 90%, transparent 100%); height: 150px; animation: energyFlowV 10s linear infinite; &::after { content: ''; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: 3px; height: 20px; background: var(--cta-accent); box-shadow: 0 0 10px var(--cta-accent), 0 0 20px var(--cta-accent); border-radius: 50%; } &.energy-line-v1 { left: 15%; animation-duration: 7s; animation-delay: 1s; } &.energy-line-v2 { left: 35%; animation-duration: 9s; animation-delay: 3s; } &.energy-line-v3 { left: 65%; animation-duration: 8s; animation-delay: 2s; } &.energy-line-v4 { left: 85%; animation-duration: 7.5s; animation-delay: 4s; } } @keyframes energyFlowV { 0% { top: -150px; opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { top: 100%; opacity: 0; } } /* Energie-Knoten (Kreuzungspunkte) */ .energy-node { position: absolute; width: 6px; height: 6px; background: var(--cta-accent); border-radius: 50%; box-shadow: 0 0 10px var(--cta-accent); animation: nodePulse 2s ease-in-out infinite; &.energy-node1 { top: 20%; left: 15%; animation-delay: 0s; } &.energy-node2 { top: 40%; left: 35%; animation-delay: 0.5s; } &.energy-node3 { top: 60%; left: 65%; animation-delay: 1s; } &.energy-node4 { top: 80%; left: 85%; animation-delay: 1.5s; } &.energy-node5 { top: 30%; left: 50%; animation-delay: 0.25s; } &.energy-node6 { top: 70%; left: 25%; animation-delay: 0.75s; } } @keyframes nodePulse { 0%, 100% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.5); opacity: 1; } } /* ===== CONTENT STYLES ===== */ .cta .my-container { position: relative; z-index: 1; /* NEU: zentral breiter Container für diese Section -> mehr Zeilenbreite, damit die H1 ab Desktop in 1 Zeile bleibt */ width: 100%; max-width: 1360px; /* vorher kein Limit hier – jetzt groß/“breit in der Mitte“ */ margin-inline: auto; /* zentriert */ padding-inline: clamp(16px, 3vw, 24px); /* etwas Innenabstand links/rechts */ } .cta__wrap { text-align: center; /* ÄNDERUNG: mehr Inhaltsbreite, H1 bekommt mehr Platz */ max-width: 90rem; /* vorher 72rem */ margin: 0 auto; padding: 0 clamp(1rem, 3vw, 2rem); } /* Große Typografie */ .cta__title { margin: 0; color: var(--cta-primary); font-weight: 700; letter-spacing: .2px; position: center; z-index: 2; /* NEU: ab Desktop nicht umbrechen -> bleibt einzeilig, wenn Platz da ist */ @media (min-width: 1200px) { white-space: nowrap; /* einzeilig erzwingen */ } } .cta__lead { margin: .9rem auto 0; color: #0f172a; line-height: 1.55; /* optional etwas breiter, wenn du willst – hier schon groß genug */ max-width: 58rem; position: relative; z-index: 2; } .cta__accent { color: var(--cta-accent); font-weight: 700; display: block; margin-top: 0.5rem; } /* Buttons */ .cta__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: clamp(1rem, 2.4vw, 1.6rem); margin-top: clamp(1.4rem, 3vw, 2.2rem); position: relative; z-index: 2; } .cta__btn, button.cta__btn{ display:inline-flex; align-items:center; gap:.7rem; padding:var(--btn-py,12px) var(--btn-px,22px); border-radius:9999px; background:#fff; color:var(--cta-primary,#0a8f8d); border:1px solid rgba(0,0,0,.06); box-shadow:0 1px 3px rgba(0,0,0,.06); text-decoration:none; font-weight:700; font-size:var(--btn-fs,1rem); transition:background .15s ease, color .15s ease, box-shadow .2s ease, transform .04s ease; position:relative; overflow:hidden; -webkit-appearance:none; appearance:none; /* wichtig bei