/* Inter wird per <link> im <head> geladen, nicht per @import.
   @import wuerde die Schrift erst nach dem Download dieser Datei anfordern
   und damit den Textaufbau unnoetig verzoegern. */
:root {
  --navy:#1c3a5e; --navy-dark:#0f2035; --green:#2d6a4f; --green-light:#40916c;
  --white:#fff; --light:#f4f6f9; --text:#1a1a2e; --muted:#5a6478;
  --border:#e2e8f0; --radius:6px; --shadow:0 4px 24px rgba(28,58,94,.10);
  --shadow-lg:0 12px 48px rgba(28,58,94,.16); --transition:0.25s ease;
  --max:1140px; --font:'Inter',system-ui,sans-serif;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font);color:var(--text);background:var(--white);line-height:1.7;font-size:16px;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--green);text-decoration:none;transition:color var(--transition)}
a:hover{color:var(--green-light)}
ul{list-style:none}
.container{max-width:var(--max);margin:0 auto;padding:0 24px}

/* Scroll-Animationen */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .6s ease,transform .6s ease}
.reveal.from-left{transform:translateX(-36px)}
.reveal.from-right{transform:translateX(36px)}
.reveal.visible{opacity:1;transform:none}
/* Ohne JavaScript blendet nichts ein - Inhalte muessen trotzdem sichtbar sein */
.no-js .reveal,.no-js .pyr-row{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal,.pyr-row{opacity:1!important;transform:none!important;animation:none!important;transition:none!important}
  .pulse::before{animation:none}
  .card:hover,.pricing-card:hover,.addon-card:hover,.btn-primary:hover,.btn-white:hover{transform:none}
}

/* Announcement Bar */
.ann-bar{position:fixed;top:0;left:0;right:0;z-index:200;background:#22242b;color:rgba(255,255,255,.85);font-size:13.5px;font-weight:500;padding:9px 24px;display:flex;align-items:center;justify-content:space-between;gap:10px;transition:opacity .3s,transform .3s}
.ann-bar.hidden{opacity:0;pointer-events:none;transform:translateY(-100%)}
.ann-bar a{color:#6ee7b7;font-weight:600;text-decoration:underline;text-underline-offset:3px}
.ann-bar a:hover{color:#a7f3d0}
.pulse{width:9px;height:9px;background:#4ade80;border-radius:50%;flex-shrink:0;position:relative}
.pulse::before{content:'';position:absolute;inset:-4px;border-radius:50%;background:rgba(74,222,128,.35);animation:pulse 1.8s ease-out infinite}
@keyframes pulse{0%{transform:scale(.8);opacity:1}70%{transform:scale(2);opacity:0}100%{transform:scale(.8);opacity:0}}

/* Header */
.site-header{position:fixed;top:35px;left:0;right:0;z-index:100;background:transparent;border-bottom:1px solid transparent;transition:background var(--transition),border-color var(--transition),box-shadow var(--transition),top .3s ease}
.site-header.scrolled{top:0;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-color:var(--border);box-shadow:0 2px 16px rgba(28,58,94,.08)}
.nav-wrap{display:flex;align-items:center;justify-content:space-between;height:70px}
.nav-logo-link{display:flex;align-items:center;flex-shrink:0}
.nav-logo{height:42px;width:auto}
/* Logo-Variante nach Header-Zustand: hell ueber dem dunklen Hero, dunkel auf Weiss */
.nav-logo-dunkel{display:none}
.site-header.scrolled .nav-logo-hell{display:none}
.site-header.scrolled .nav-logo-dunkel{display:block}
.main-nav{display:flex;align-items:center;gap:4px}
.nav-link{padding:8px 14px;border-radius:4px;font-size:15px;font-weight:500;color:#fff;transition:color var(--transition);position:relative}
.nav-link::after{content:'';position:absolute;bottom:0;left:14px;right:14px;height:2px;background:#fff;border-radius:2px;transform:scaleX(0);transition:transform var(--transition)}
.nav-link:hover{color:rgba(255,255,255,.75)}
.nav-link.active{color:#fff}
.nav-link.active::after{transform:scaleX(1)}
.site-header.scrolled .nav-link{color:var(--text)}
.site-header.scrolled .nav-link::after{background:var(--navy)}
.site-header.scrolled .nav-link:hover{color:var(--navy)}
.site-header.scrolled .nav-link.active{color:var(--navy)}
.nav-cta{background:rgba(255,255,255,.2);color:#fff!important;padding:10px 20px;border-radius:4px;font-weight:600;margin-left:8px;border:1px solid rgba(255,255,255,.4);transition:background var(--transition)}
.nav-cta:hover{background:rgba(255,255,255,.35);color:#fff}
.site-header.scrolled .nav-cta{background:var(--navy);border-color:var(--navy)}
.site-header.scrolled .nav-cta:hover{background:var(--navy-dark)}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:4px;z-index:101}
.nav-toggle span{width:24px;height:2px;background:var(--text);border-radius:2px;display:block;transition:transform .3s,opacity .3s,background var(--transition)}
/* Header liegt vor dem Scrollen ueber dem dunklen Hero -> heller Burger */
.site-header:not(.scrolled) .nav-toggle span{background:#fff}
.nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle.open span:nth-child(2){opacity:0}
.nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.site-header:not(.scrolled) .nav-toggle.open span{background:var(--text)}

/* Buttons */
.btn{display:inline-block;padding:13px 28px;border-radius:4px;font-weight:600;font-size:15px;cursor:pointer;border:none;transition:all var(--transition);position:relative;overflow:hidden;font-family:var(--font)}
.btn-primary{background:var(--navy);color:#fff}
.btn-primary:hover{background:var(--navy-dark);color:#fff;transform:translateY(-2px);box-shadow:0 8px 24px rgba(28,58,94,.25)}
.btn-outline{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.5)}
.btn-outline:hover{background:rgba(255,255,255,.1);color:#fff;border-color:#fff}
.btn-white{background:#fff;color:var(--navy)}
.btn-white:hover{background:var(--light);color:var(--navy);transform:translateY(-2px)}
.btn-full{width:100%;text-align:center;display:block}
.btn-ripple{position:absolute;width:8px;height:8px;background:rgba(255,255,255,.4);border-radius:50%;transform:translate(-50%,-50%) scale(0);animation:ripple .6s ease-out forwards;pointer-events:none}
@keyframes ripple{to{transform:translate(-50%,-50%) scale(30);opacity:0}}

/* Sections */
.section{padding:96px 0}
.bg-white{background:var(--white)}
.bg-light{background:var(--light)}
.section-label{font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--green);margin-bottom:12px}
.section-header{text-align:center;max-width:640px;margin:0 auto 56px}
.section-sub{color:var(--muted);margin-top:16px;font-size:17px}
.section-cta{text-align:center;margin-top:48px}
h1{font-size:clamp(2.2rem,5vw,3.6rem);font-weight:800;line-height:1.15;color:#fff}
h2{font-size:clamp(1.8rem,3.5vw,2.6rem);font-weight:800;line-height:1.2;color:var(--navy)}
h3{font-size:1.2rem;font-weight:700;color:var(--navy);margin-bottom:10px}
h4{font-size:1rem;font-weight:700;color:var(--navy);margin-bottom:8px}

/* Hero */
.hero{min-height:100vh;background:linear-gradient(135deg,rgba(15,32,53,.92) 0%,rgba(28,58,94,.78) 45%,rgba(26,74,58,.88) 100%),url('../img/webdesign-hannover-sill-media.jpg') center/cover no-repeat;display:flex;align-items:center;padding-top:110px;position:relative;overflow:hidden}
.hero-inner{display:flex;flex-direction:column;align-items:center;text-align:center;padding:80px 0}
.hero-content{max-width:700px}
#hero-word{display:inline-block;opacity:1;transform:translateY(0);transition:opacity .4s ease,transform .4s ease;color:#6ee7b7}
.hero-label{font-size:12px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:#6ee7b7;margin-bottom:16px}
.hero-sub{font-size:1.1rem;color:rgba(255,255,255,.75);margin:24px auto 40px;max-width:520px;line-height:1.75}
.hero-btns{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}
.badge-ring{width:180px;height:180px;border-radius:50%;border:1.5px solid rgba(255,255,255,.25);display:flex;align-items:center;justify-content:center;text-align:center}
.badge-text{color:#fff;font-weight:700;font-size:15px;line-height:1.6}

/* Page Hero */
.page-hero{background:linear-gradient(135deg,rgba(15,32,53,.88) 0%,rgba(28,58,94,.82) 60%,rgba(26,74,58,.88) 100%),url('../img/webdesign-hannover-sill-media.jpg') center/cover no-repeat;padding:140px 0 72px;color:#fff}
.page-hero h1{font-size:clamp(2rem,4vw,3rem)}
.page-hero-sub{color:rgba(255,255,255,.7);margin-top:12px;font-size:17px}

/* Cards */
.cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px}
.card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:36px 28px;transition:all var(--transition)}
.card:hover{transform:translateY(-8px);box-shadow:0 20px 60px rgba(28,58,94,.15);border-color:transparent}
.card-icon{width:48px;height:48px;border-radius:10px;margin-bottom:20px;background:linear-gradient(135deg,var(--navy),var(--green));display:flex;align-items:center;justify-content:center}
/* Karte als Link (404-Seite): Linkfarbe darf den Kartentext nicht einfaerben */
a.card{display:block;color:var(--text)}
a.card:hover{color:var(--text)}

/* Two-col */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.two-col-text h2{margin-bottom:20px}
.two-col-text p{color:var(--muted);margin-bottom:24px}
.check-list{margin:20px 0 32px}
.check-list li{padding:8px 0 8px 28px;position:relative;color:var(--muted);border-bottom:1px solid var(--border);font-size:15px}
.check-list li:last-child{border-bottom:none}
.check-list li::before{content:'✓';position:absolute;left:0;color:var(--green);font-weight:700}

/* Stat Grid */
.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.stat-box{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:32px 24px;text-align:center}
.stat-box.green{background:var(--green);border-color:var(--green)}
.stat-box.full{grid-column:1/-1;background:var(--navy);border-color:var(--navy)}
.stat-number{font-size:2rem;font-weight:800;color:var(--navy)}
.stat-box.green .stat-number,.stat-box.full .stat-number{color:#fff}
.stat-label{font-size:13px;color:var(--muted);margin-top:4px;font-weight:500}
.stat-box.green .stat-label,.stat-box.full .stat-label{color:rgba(255,255,255,.7)}

/* Prozess */
.process-steps{display:flex;align-items:flex-start;gap:0;margin-top:40px}
.process-step{flex:1;text-align:center;padding:0 12px}
.process-step-icon{width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,var(--navy),var(--green));display:flex;align-items:center;justify-content:center;margin:0 auto 18px;font-size:1.3rem;font-weight:800;color:#fff;box-shadow:0 4px 20px rgba(28,58,94,.25)}
.process-step h4{font-size:1rem;font-weight:700;color:var(--navy);margin-bottom:8px}
.process-step p{font-size:14px;color:var(--muted);line-height:1.6}
/* Verbinder zwischen den Schritten: 4 kurze Striche, ueber die eine
   Highlight-Welle wandert - liest sich wie ein Ladebalken. Die Grundstriche
   liegen im ::before, die helle Welle im ::after (per mask verschoben). */
.process-arrow{position:relative;width:40px;height:2px;flex-shrink:0;margin-top:30px;border:none;overflow:hidden}
.process-arrow::before,.process-arrow::after{content:'';position:absolute;inset:0;background-image:repeating-linear-gradient(90deg,var(--green-light) 0 6px,transparent 6px 10px)}
.process-arrow::before{opacity:.28}
.process-arrow::after{opacity:.95;-webkit-mask-image:linear-gradient(90deg,transparent,#000 50%,transparent);mask-image:linear-gradient(90deg,transparent,#000 50%,transparent);-webkit-mask-size:65% 100%;mask-size:65% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;animation:process-load 1.8s linear infinite}
/* Versatz, damit die Welle von Schritt zu Schritt weiterlaeuft */
.process-arrow:nth-child(4)::after{animation-delay:.25s}
.process-arrow:nth-child(6)::after{animation-delay:.5s}
@keyframes process-load{0%{-webkit-mask-position:-60% 0;mask-position:-60% 0}100%{-webkit-mask-position:160% 0;mask-position:160% 0}}
@keyframes process-load-v{0%{-webkit-mask-position:0 -60%;mask-position:0 -60%}100%{-webkit-mask-position:0 160%;mask-position:0 160%}}
@media (prefers-reduced-motion:reduce){.process-arrow::after{animation:none;-webkit-mask-image:none;mask-image:none;opacity:.4}}

/* CTA */
.cta-section{background:linear-gradient(135deg,var(--navy) 0%,var(--green) 100%);padding:96px 0}
.cta-inner{text-align:center}
.cta-inner h2{color:#fff;margin-bottom:16px}
.cta-inner p{color:rgba(255,255,255,.75);font-size:17px;margin-bottom:36px}

/* Leistungen */
.service-block{display:block;padding:56px 0;border-bottom:1px solid var(--border)}
.service-block:last-child{border-bottom:none}
.service-num{font-size:3.5rem;font-weight:800;color:var(--border);line-height:1}
.service-content h2{font-size:1.8rem;margin-bottom:16px}
.service-content p{color:var(--muted);margin-bottom:20px}
.service-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.tag{background:var(--light);color:var(--navy);font-size:13px;font-weight:500;padding:4px 14px;border-radius:100px}

/* Über mich */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}
.profile-card{background:var(--light);border-radius:var(--radius);padding:40px}
.profile-avatar{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,var(--navy),var(--green));display:flex;align-items:center;justify-content:center;color:#fff;font-size:28px;font-weight:800;margin-bottom:20px}
.skills-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:24px}
.skill-item{background:var(--white);border:1px solid var(--border);border-radius:4px;padding:10px 14px;font-size:14px;font-weight:500;color:var(--navy)}
.values-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:32px}
.value-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:24px}
.value-card p{font-size:14px;color:var(--muted);margin-top:6px}

/* Kontakt */
.contact-wrap{display:grid;grid-template-columns:1fr 1.4fr;gap:56px;align-items:start}
.contact-item{margin-bottom:24px}
.contact-item strong{display:block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--navy);margin-bottom:4px}
.contact-promise{background:var(--light);border-radius:var(--radius);padding:24px;margin-top:32px}
.contact-promise h4{color:var(--navy);margin-bottom:12px}
.form-row{margin-bottom:12px}
.form-row label{display:block;font-size:14px;font-weight:600;color:var(--navy);margin-bottom:6px}
.form-row input,.form-row select,.form-row textarea{width:100%;padding:13px 16px;border:2px solid var(--border);border-radius:4px;font-size:15px;font-family:var(--font);color:var(--text);background:var(--white);transition:border-color var(--transition)}
.form-row input:focus,.form-row select:focus,.form-row textarea:focus{outline:none;border-color:var(--navy)}
.checkbox-label{display:flex;align-items:flex-start;gap:12px;font-size:14px;color:var(--muted);cursor:pointer;background:var(--light);border:1px solid var(--border);border-radius:8px;padding:14px 16px;line-height:1.6}
.checkbox-label input[type="checkbox"]{appearance:none;-webkit-appearance:none;width:18px;height:18px;min-width:18px;border:2px solid var(--border);border-radius:4px;background:#fff;cursor:pointer;margin-top:2px;transition:all var(--transition);display:grid;place-content:center}
.checkbox-label input[type="checkbox"]::before{content:'';width:10px;height:10px;background:var(--navy);border-radius:2px;transform:scale(0);transition:transform .15s ease}
.checkbox-label input[type="checkbox"]:checked{border-color:var(--navy);background:var(--navy)}
.checkbox-label input[type="checkbox"]:checked::before{transform:scale(1);background:#fff}
.checkbox-label a{color:var(--green);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.hp-field{display:none!important}
.form-status{display:none;padding:14px 18px;border-radius:4px;font-size:14px;margin-bottom:18px}
.form-status.success{background:#d1fae5;color:#065f46;display:block}
.form-status.error{background:#fee2e2;color:#991b1b;display:block}

/* Legal */
.legal-content{max-width:800px}
.legal-content h2{font-size:1.35rem;margin:48px 0 14px;padding-top:8px;border-top:1px solid var(--border)}
.legal-content h2:first-child{border-top:none;margin-top:0}
.legal-content p,.legal-content li{color:var(--muted);font-size:15px;margin-bottom:12px}
/* ul ist global auf list-style:none gesetzt - auf den Rechtsseiten
   brauchen Aufzaehlungen aber sichtbare Punkte. */
.legal-content ul{margin:0 0 18px}
.legal-content ul li{position:relative;padding-left:20px;margin-bottom:8px}
.legal-content ul li::before{content:'•';position:absolute;left:4px;color:var(--green);font-weight:700}
.legal-content h3{margin-top:26px}
.legal-content .article-box{margin:20px 0 8px}
.legal-content .article-box p:last-child{margin-bottom:0}

/* Footer */
.site-footer{background:#1a1c22;color:rgba(255,255,255,.55)}
.footer-inner{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:32px;padding:40px 0 32px;border-bottom:1px solid rgba(255,255,255,.08)}
.footer-brand p{font-size:13px;line-height:1.6;margin:10px 0 8px}
.footer-logo{height:32px;width:auto;margin-bottom:4px}
.footer-mail{font-size:13px;color:var(--green-light)}
.footer-col h5{font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,.35);margin-bottom:10px}
.footer-col a{display:block;font-size:13px;color:rgba(255,255,255,.55);margin-bottom:6px;transition:color var(--transition)}
.footer-col a:hover{color:#fff}
.footer-cta{color:var(--green-light)!important;font-weight:600}
.footer-bottom{padding:16px 0}
.footer-bottom-inner{display:flex;align-items:center;justify-content:space-between}
.footer-bottom p{font-size:12px}
.footer-legal{display:flex;gap:16px}
.footer-legal a{font-size:12px;color:rgba(255,255,255,.4);transition:color var(--transition)}
.footer-legal a:hover{color:rgba(255,255,255,.8)}
/* Cookie Banner */
.cookie-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:9998;opacity:0;pointer-events:none;transition:opacity .3s}
.cookie-overlay.active{opacity:1;pointer-events:all}
.cookie-banner{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);width:min(680px,calc(100vw - 32px));background:#fff;border-radius:12px;box-shadow:0 8px 40px rgba(0,0,0,.18);z-index:9999;padding:28px 32px;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s}
.cookie-banner.active{opacity:1;pointer-events:all;transform:translateX(-50%) translateY(0)}
.cookie-banner h3{font-size:1.05rem;font-weight:700;color:var(--navy);margin-bottom:8px}
.cookie-banner p{font-size:13.5px;color:var(--muted);margin-bottom:20px;line-height:1.6}
.cookie-banner p a{color:var(--navy);text-decoration:underline}
.cookie-btns{display:flex;gap:10px;flex-wrap:wrap}
.cookie-btns button{padding:10px 20px;border-radius:5px;font-size:14px;font-weight:600;cursor:pointer;border:none;transition:background .2s,color .2s}
.cookie-btn-all{background:var(--navy);color:#fff}
.cookie-btn-all:hover{background:var(--navy-dark)}
.cookie-btn-necessary{background:var(--light);color:var(--navy);border:1px solid var(--border)!important}
.cookie-btn-necessary:hover{background:#e2e8f0}
.cookie-btn-settings{background:transparent;color:var(--muted);border:1px solid var(--border)!important;margin-left:auto}
.cookie-btn-settings:hover{color:var(--navy)}

/* Cookie Einstellungen Modal */
.cookie-modal{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:16px;opacity:0;pointer-events:none;transition:opacity .3s}
.cookie-modal.active{opacity:1;pointer-events:all}
.cookie-modal-box{background:#fff;border-radius:12px;width:min(560px,100%);max-height:90vh;overflow-y:auto;box-shadow:0 8px 40px rgba(0,0,0,.2);padding:32px}
.cookie-modal-box h3{font-size:1.1rem;font-weight:700;color:var(--navy);margin-bottom:6px}
.cookie-modal-box > p{font-size:13.5px;color:var(--muted);margin-bottom:24px}
.cookie-category{border:1px solid var(--border);border-radius:8px;padding:18px 20px;margin-bottom:12px}
.cookie-category-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.cookie-category-header strong{font-size:14px;color:var(--navy)}
.cookie-category p{font-size:13px;color:var(--muted);margin:0}
.cookie-toggle{position:relative;width:44px;height:24px;flex-shrink:0}
.cookie-toggle input{opacity:0;width:0;height:0}
.cookie-toggle-slider{position:absolute;inset:0;background:#d1d5db;border-radius:24px;transition:.2s;cursor:pointer}
.cookie-toggle-slider:before{content:'';position:absolute;height:18px;width:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.2s}
.cookie-toggle input:checked + .cookie-toggle-slider{background:var(--navy)}
.cookie-toggle input:checked + .cookie-toggle-slider:before{transform:translateX(20px)}
.cookie-toggle input:disabled + .cookie-toggle-slider{opacity:.6;cursor:not-allowed}

/* Pyramid Visual */
@keyframes pyrSlide{from{opacity:0;transform:translateX(-40px)}to{opacity:1;transform:translateX(0)}}
.pyramid-wrap{display:flex;flex-direction:column;align-items:center;padding:20px 0}
.pyramid{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%}
/* Grundfarbe, damit die Zeilen nie als weisser Text auf Weiss dastehen,
   falls die .visible-Klasse (noch) fehlt. */
.pyr-row{display:flex;align-items:center;justify-content:center;height:44px;border-radius:4px;font-size:13px;font-weight:600;color:#fff;transition:transform .2s;opacity:0;background:linear-gradient(90deg,var(--navy),var(--green))}
.pyramid-wrap.visible .pyr-row:nth-child(5){background:linear-gradient(90deg,var(--navy),var(--green));animation:pyrSlide .5s ease forwards;animation-delay:.0s}
.pyramid-wrap.visible .pyr-row:nth-child(4){background:linear-gradient(90deg,#236040,#2d7a50);animation:pyrSlide .5s ease forwards;animation-delay:.15s}
.pyramid-wrap.visible .pyr-row:nth-child(3){background:linear-gradient(90deg,var(--green),var(--green-light));animation:pyrSlide .5s ease forwards;animation-delay:.3s}
.pyramid-wrap.visible .pyr-row:nth-child(2){background:linear-gradient(90deg,var(--green-light),#52b788);animation:pyrSlide .5s ease forwards;animation-delay:.45s}
.pyramid-wrap.visible .pyr-row:nth-child(1){background:linear-gradient(90deg,#52b788,#74c69d);animation:pyrSlide .5s ease forwards;animation-delay:.6s}

/* Pricing */
.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:start}
.pricing-card{background:#fff;border:2px solid var(--border);border-radius:12px;padding:36px 28px;position:relative;transition:all var(--transition)}
.pricing-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.pricing-featured{border-color:var(--navy);background:linear-gradient(135deg,var(--navy),var(--green));color:#fff}
.pricing-featured h3,.pricing-featured p,.pricing-featured li{color:#fff}
.pricing-badge{position:absolute;top:-14px;left:50%;transform:translateX(-50%);background:#6ee7b7;color:var(--navy);font-size:12px;font-weight:700;padding:4px 16px;border-radius:50px;white-space:nowrap}
.pricing-label{font-size:13px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--green);margin-bottom:12px}
.pricing-featured .pricing-label{color:#6ee7b7}
.pricing-price{font-size:2rem;font-weight:800;color:var(--navy);margin-bottom:12px;line-height:1}
.pricing-price span{font-size:1.1rem;font-weight:600}
.pricing-featured .pricing-price{color:#fff}
.pricing-desc{font-size:14px;color:var(--muted);margin-bottom:20px}

/* Profile Photo */
.profile-photo-wrap{width:160px;height:160px;border-radius:50%;padding:4px;background:linear-gradient(135deg,var(--navy),var(--green));margin:0 auto 28px;overflow:hidden;flex-shrink:0}
.profile-photo-wrap img{width:152px;height:152px;border-radius:50%;object-fit:cover;object-position:center 15%;display:block}

/* Pyramid Info Box */
.pyr-row{cursor:pointer;transition:filter .2s,outline .2s}
.pyr-row:hover{filter:brightness(1.12)}
.pyr-row.active{outline:3px solid rgba(255,255,255,.6);outline-offset:2px}
.pyr-info-box{max-height:0;overflow:hidden;transition:max-height .4s ease,padding .4s ease;width:100%;background:#fff;border-radius:8px;font-size:15px;color:var(--text);line-height:1.75;text-align:center;padding:0 24px;margin-top:6px;box-shadow:0 4px 20px rgba(28,58,94,.08);border-top:3px solid var(--green)}

/* Hero Cards */
.hero-cards-wrap{height:360px;position:relative;display:flex;align-items:center;justify-content:center;transform-style:preserve-3d}
.hero-card{position:absolute;width:190px;height:300px;border-radius:14px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.6);transition:transform .4s ease;display:flex;flex-direction:column}
.hc-1{transform:translateX(-180px) rotate(-10deg);z-index:1;opacity:.85}
.hc-2{transform:translateX(-70px) rotate(-4deg);z-index:2;opacity:.92}
.hc-3{transform:translateX(50px) rotate(3deg);z-index:3;opacity:.96}
.hc-4{transform:translateX(170px) rotate(10deg);z-index:4}
.hero-cards-wrap:hover .hc-1{transform:translateX(-200px) rotate(-12deg)}
.hero-cards-wrap:hover .hc-2{transform:translateX(-80px) rotate(-5deg)}
.hero-cards-wrap:hover .hc-3{transform:translateX(60px) rotate(4deg)}
.hero-cards-wrap:hover .hc-4{transform:translateX(195px) rotate(12deg)}

/* Mock Website inside cards */
.mock-nav{height:22px;background:rgba(255,255,255,.95);display:flex;align-items:center;padding:0 8px;flex-shrink:0}
.mock-nav::before{content:'';width:6px;height:6px;border-radius:50%;background:#ff5f57;box-shadow:10px 0 0 #febc2e,20px 0 0 #28c840}
.mock-hero{padding:16px 10px 12px;flex:1;display:flex;flex-direction:column;min-height:130px}
.mock-h{height:10px;background:rgba(255,255,255,.9);border-radius:3px;margin-bottom:8px;width:75%}
.mock-p{height:6px;background:rgba(255,255,255,.5);border-radius:2px;margin-bottom:5px;width:100%}
.mock-p+.mock-p{width:65%}
.mock-btn{height:18px;width:48%;background:rgba(255,255,255,.25);border-radius:4px;margin-top:12px;border:1px solid rgba(255,255,255,.5)}
.mock-body{padding:10px;background:#f4f6f9;flex:1;display:flex;flex-direction:column;gap:7px}
.mock-row{height:7px;background:#e2e8f0;border-radius:2px}
.mock-row.short{width:55%}

/* Ann-Bar Layout (3-spaltig: flex:1 Spacer | Center | flex:1 Social) */
.ann-spacer{flex:1}
.ann-center{display:flex;align-items:center;gap:10px}
.ann-social{display:flex;align-items:center;gap:12px;flex:1;justify-content:flex-end}
.ann-social-link{color:rgba(255,255,255,.6);display:flex;align-items:center;transition:color .2s}
.ann-social-link:hover{color:#6ee7b7}

/* Footer Social */
.footer-social{display:flex;gap:12px;margin-top:16px}
.footer-social-link{color:rgba(255,255,255,.4);display:flex;align-items:center;transition:color .2s}
.footer-social-link:hover{color:#6ee7b7}

/* Hero wave divider */
.hero-wave{position:absolute;bottom:0;left:0;right:0;line-height:0;pointer-events:none}
.hero-wave svg{display:block;width:100%;height:90px}


/* Pricing list */
.pricing-list{list-style:none;padding:0;margin:20px 0 28px;display:flex;flex-direction:column;gap:11px}
.pricing-list li{font-size:14px;color:var(--muted);display:flex;align-items:flex-start;gap:10px;line-height:1.5}
.pricing-list li::before{content:"✓";display:inline-block;min-width:20px;height:20px;background:var(--green);color:#fff;border-radius:50%;font-size:11px;font-weight:700;text-align:center;line-height:20px;flex-shrink:0}
.pricing-featured .pricing-list li{color:rgba(255,255,255,.9)}
.pricing-featured .pricing-list li::before{background:rgba(255,255,255,.25)}

/* Add-ons (Betreuung & Analyse) */
.addon-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.addon-card{display:flex;align-items:flex-start;gap:20px;background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:28px;transition:all var(--transition)}
.addon-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:transparent}
.addon-icon{width:48px;height:48px;flex-shrink:0;border-radius:10px;background:linear-gradient(135deg,var(--navy),var(--green));display:flex;align-items:center;justify-content:center}
.addon-card p{font-size:14px;color:var(--muted);line-height:1.6;margin-bottom:12px}
.addon-price{display:inline-block;font-size:14px;font-weight:700;color:var(--navy);background:var(--light);border-radius:100px;padding:4px 14px}

/* ═══════════════════════════════════════════════════════════════
   BLOG – Übersicht (blog.html)
   ═══════════════════════════════════════════════════════════════ */
.blog-filter{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:44px}
.blog-filter-btn{background:#fff;border:1px solid var(--border);color:var(--muted);font-family:var(--font);font-size:14px;font-weight:600;padding:9px 18px;border-radius:100px;cursor:pointer;transition:all var(--transition)}
.blog-filter-btn:hover{border-color:var(--green);color:var(--green)}
.blog-filter-btn.active{background:var(--navy);border-color:var(--navy);color:#fff}
.blog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:28px}
.blog-card{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;color:var(--text);transition:all var(--transition)}
.blog-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg);border-color:transparent;color:var(--text)}
.blog-card.is-hidden{display:none}
/* Kopfbereich der Karte: Farbverlauf statt Bild, damit kein Foto noetig ist.
   Wer spaeter ein Bild nutzen will, ersetzt das SVG durch <img>. */
.blog-card-top{height:150px;flex-shrink:0;background:linear-gradient(135deg,var(--navy) 0%,var(--green) 100%);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.blog-card-top::after{content:'';position:absolute;inset:0;background:radial-gradient(circle at 82% 18%,rgba(255,255,255,.16),transparent 55%)}
.blog-card-top svg{position:relative;z-index:1;opacity:.9;transition:transform var(--transition)}
.blog-card:hover .blog-card-top svg{transform:scale(1.08)}
.blog-cat{position:absolute;top:14px;left:14px;z-index:2;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.32);color:#fff;font-size:10.5px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;padding:4px 11px;border-radius:100px}
.blog-card-body{padding:24px;display:flex;flex-direction:column;flex:1}
.blog-meta{font-size:12.5px;color:var(--muted);font-weight:500;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.blog-card h3{font-size:1.12rem;line-height:1.4;margin-bottom:10px;transition:color var(--transition)}
.blog-card:hover h3{color:var(--green)}
.blog-card p{font-size:14.5px;color:var(--muted);line-height:1.65;margin-bottom:18px}
.blog-more{margin-top:auto;font-size:14px;font-weight:600;color:var(--green);display:inline-flex;align-items:center;gap:7px}
.blog-more svg{transition:transform var(--transition)}
.blog-card:hover .blog-more svg{transform:translateX(4px)}
.blog-empty{display:none;text-align:center;color:var(--muted);padding:48px 0}
.blog-empty.visible{display:block}

/* ═══════════════════════════════════════════════════════════════
   BLOG – Artikelseiten (blog/*.html)
   ═══════════════════════════════════════════════════════════════ */
.breadcrumb{display:flex;flex-wrap:wrap;gap:8px;font-size:13px;color:rgba(255,255,255,.6);margin-bottom:18px}
.breadcrumb a{color:rgba(255,255,255,.85);text-decoration:none}
.breadcrumb a:hover{color:#6ee7b7}
.article-hero-inner{max-width:760px}
.article-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:22px;font-size:14px;color:rgba(255,255,255,.72)}
.article-badge{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.28);border-radius:100px;padding:4px 12px;font-size:11px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:#fff}
.article-wrap{max-width:760px;margin:0 auto}
.article-toc{background:var(--light);border:1px solid var(--border);border-radius:var(--radius);padding:22px 26px;margin-bottom:40px}
.article-toc h4{margin-bottom:12px}
.article-toc ol{counter-reset:toc;list-style:none}
.article-toc li{counter-increment:toc;padding:5px 0 5px 26px;position:relative;font-size:15px}
.article-toc li::before{content:counter(toc) ".";position:absolute;left:0;color:var(--green);font-weight:700}
.article-body{font-size:17px;line-height:1.85;color:#3a4354}
.article-body p{margin-bottom:22px}
.article-lead{font-size:19px;line-height:1.75;color:var(--navy);font-weight:500}
.article-body h2{font-size:clamp(1.4rem,2.6vw,1.7rem);margin:48px 0 16px;scroll-margin-top:110px}
.article-body h3{font-size:1.15rem;margin:34px 0 12px}
.article-body strong{color:var(--navy);font-weight:700}
.article-body a{text-decoration:underline;text-underline-offset:3px}
.article-body ul{margin:0 0 24px;list-style:none}
.article-body ul li{position:relative;padding:7px 0 7px 30px}
.article-body ul li::before{content:'✓';position:absolute;left:0;top:7px;color:var(--green);font-weight:700}
.article-body ol{margin:0 0 24px;list-style:none;counter-reset:art}
.article-body ol li{position:relative;padding:7px 0 7px 36px;counter-increment:art}
.article-body ol li::before{content:counter(art);position:absolute;left:0;top:9px;width:23px;height:23px;border-radius:50%;background:var(--navy);color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center}
.article-body blockquote{border-left:3px solid var(--green);padding:4px 0 4px 22px;margin:32px 0;font-size:18px;font-style:italic;color:var(--navy)}
.article-box{background:var(--light);border-left:4px solid var(--green);border-radius:var(--radius);padding:26px 28px;margin:34px 0}
.article-box h4{margin-bottom:10px}
.article-box p:last-child,.article-box ul:last-child{margin-bottom:0}
.article-box ul li{font-size:15.5px}
.article-cta{background:linear-gradient(135deg,var(--navy) 0%,var(--green) 100%);border-radius:var(--radius);padding:40px 32px;margin-top:52px;text-align:center}
.article-cta h3{color:#fff;font-size:1.4rem;margin-bottom:10px}
.article-cta p{color:rgba(255,255,255,.82);font-size:15px;margin-bottom:24px}
.article-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-top:44px;padding-top:26px;border-top:1px solid var(--border)}
.article-author{display:flex;align-items:center;gap:14px}
.article-author img{width:52px;height:52px;border-radius:50%;object-fit:cover;flex-shrink:0}
.article-author strong{display:block;color:var(--navy);font-size:15px}
.article-author span{font-size:13.5px;color:var(--muted)}
.back-link{display:inline-flex;align-items:center;gap:8px;font-size:14.5px;font-weight:600;color:var(--green)}
.back-link:hover{gap:12px}
