/* ===================== DESIGN TOKENS ===================== */
  :root{
    --ink:#10242E;        /* tiefes Petrol – Text & Struktur */
    --ink-soft:#2C4650;
    --muted:#5C6E75;      /* Fließtext gedämpft */
    --line:#E2EAE8;       /* Trennlinien */
    --bg:#F6FAF9;         /* kühles Off-White */
    --surface:#FFFFFF;
    --surface-2:#EEF6F3;  /* zarte Fläche */
    --accent:#159C82;     /* frisches Mint-Teal – „sauber/Wasser" */
    --accent-deep:#0E7A66;
    --accent-soft:#E1F1EC;
    --sun:#AF9A6C;        /* Logo-Gold – Haupt-CTA/Highlight */
    --sun-deep:#A08858;
    --shadow:0 1px 2px rgba(16,36,46,.06), 0 12px 30px -12px rgba(16,36,46,.18);
    --shadow-lg:0 30px 60px -24px rgba(16,36,46,.30);
    --r:14px;
    --r-lg:22px;
    --maxw:1160px;
    --serif:Georgia,"Times New Roman",serif;
    --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,Roboto,"Helvetica Neue",Arial,sans-serif;
  }

  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  @media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
  body{
    font-family:var(--sans);
    color:var(--ink);
    background:var(--bg);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
  }
  a{color:inherit;text-decoration:none}
  img{max-width:100%;display:block}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
  .section-anchor{position:relative;top:-96px;display:block;height:0;overflow:hidden}
  section{padding:96px 0}
  @media(max-width:720px){section{padding:64px 0}}
  @media(max-width:720px){body{padding-bottom:92px}}

  .eyebrow{
    display:inline-flex;align-items:center;gap:8px;
    font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
    color:var(--accent-deep);margin-bottom:18px;
  }
  .eyebrow::before{content:"✦";color:var(--sun-deep);font-size:.85em}

  h1,h2,h3{line-height:1.12;letter-spacing:-.02em;font-weight:800;color:var(--ink)}
  h2{font-size:clamp(1.9rem,4vw,2.9rem)}
  h3{font-size:1.18rem;letter-spacing:-.01em}
  .lead{font-size:clamp(1.02rem,1.6vw,1.18rem);color:var(--muted);max-width:52ch}
  .serif-accent{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.01em}

  /* ===================== BUTTONS ===================== */
  .btn{
    display:inline-flex;align-items:center;gap:9px;justify-content:center;
    padding:14px 26px;border-radius:999px;font-weight:700;font-size:.98rem;
    cursor:pointer;border:1.5px solid transparent;transition:transform .15s ease, box-shadow .2s ease, background .2s ease;
    position:relative;overflow:hidden;
  }
  .btn:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
  .btn-primary{background:var(--sun);color:var(--ink);box-shadow:0 8px 22px -8px rgba(224,162,31,.7)}
  .btn-primary:hover{transform:translateY(-2px);background:var(--sun-deep)}
  /* Glanz-Sweep (Signature) */
  .btn-primary::after{
    content:"";position:absolute;top:0;left:-120%;width:60%;height:100%;
    background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);
    transform:skewX(-18deg);transition:left .6s ease;
  }
  .btn-primary:hover::after{left:150%}
  .btn-ghost{background:transparent;color:var(--ink);border-color:var(--line)}
  .btn-ghost:hover{border-color:var(--accent);color:var(--accent-deep);transform:translateY(-2px)}
  .btn-dark{background:var(--ink);color:#fff}
  .btn-dark:hover{background:var(--accent-deep);transform:translateY(-2px)}

  /* ===================== HEADER ===================== */
  header.site{
    position:sticky;top:0;z-index:60;background:#fff;
    backdrop-filter:none;border-bottom:1px solid var(--line);
  }
  .nav{display:flex;align-items:center;justify-content:space-between;height:72px;gap:20px}
  .brand{display:flex;align-items:center;gap:11px;font-weight:800;font-size:1.12rem;letter-spacing:-.02em}
  .brand.logo-brand{gap:0;flex:none}
  .brand-logo{display:block;width:168px;height:auto;max-height:58px;object-fit:contain}
  .brand .mark{
    width:34px;height:34px;border-radius:9px;flex:none;
    background:linear-gradient(135deg,var(--accent),var(--accent-deep));
    display:grid;place-items:center;color:#fff;font-size:1.05rem;box-shadow:var(--shadow);
  }
  .brand small{display:block;font-size:.62rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
  .nav-links{display:flex;align-items:center;gap:28px}
  .nav-links a{font-size:.96rem;font-weight:600;color:var(--ink-soft);transition:color .15s}
  .nav-links a:hover{color:var(--accent-deep)}
  .nav-cta{display:flex;align-items:center;gap:14px}
  .phone-link{display:flex;align-items:center;gap:8px;font-weight:700;font-size:.96rem;color:var(--ink)}
  .phone-link svg{color:var(--accent-deep)}
  .burger{display:none;background:none;border:none;cursor:pointer;padding:8px;color:var(--ink)}
  @media(max-width:1220px){
    .nav-links{gap:18px}
    .nav-cta .phone-link{display:none}
  }
  @media(max-width:940px){
    .nav-links{
      position:fixed;inset:72px 0 auto 0;background:var(--surface);flex-direction:column;
      gap:0;padding:8px 0;border-bottom:1px solid var(--line);box-shadow:var(--shadow-lg);
      transform:translateY(-140%);transition:transform .3s ease;
    }
    .nav-links.open{transform:translateY(0)}
    .nav-links a{width:100%;padding:15px 24px;border-bottom:1px solid var(--line)}
    .nav-cta .phone-link{display:none}
    .burger{display:block}
  }
  @media(max-width:520px){.brand-logo{width:146px}}

  /* ===================== HERO ===================== */
  .hero{position:relative;padding:72px 0 92px;overflow:hidden}
  .hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
  @media(max-width:920px){.hero-grid{grid-template-columns:1fr;gap:40px}}
  .hero h1{font-size:clamp(2.4rem,5.5vw,4rem);margin:6px 0 20px}
  .hero .trust-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
  .chip{
    display:inline-flex;align-items:center;gap:7px;background:var(--surface);
    border:1px solid var(--line);padding:8px 15px;border-radius:999px;font-size:.86rem;font-weight:600;color:var(--ink-soft);
  }
  .chip svg{color:var(--accent);flex:none}
  .hero-cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:8px}

  /* Hero-Visual (rein CSS – kein Fremd-Bild) */
  .hero-visual{position:relative;aspect-ratio:1/1.02;min-height:340px}
  .glass-card{
    position:absolute;border-radius:var(--r-lg);background:var(--surface);
    box-shadow:var(--shadow-lg);border:1px solid var(--line);overflow:hidden;
  }
  .card-main{inset:6% 8% 20% 4%;background:linear-gradient(160deg,#fff,var(--surface-2))}
  .card-main .sheen{
    position:absolute;top:-40%;left:-30%;width:60%;height:180%;
    background:linear-gradient(105deg,transparent,rgba(255,255,255,.9),transparent);
    transform:skewX(-16deg);animation:sweep 5.5s ease-in-out infinite;
  }
  @keyframes sweep{0%,60%{left:-60%}80%,100%{left:130%}}
  @media (prefers-reduced-motion:reduce){.card-main .sheen{animation:none;opacity:.4}}
  .card-badge{
    position:absolute;right:-4%;bottom:8%;background:var(--ink);color:#fff;border-radius:18px;
    padding:18px 22px;box-shadow:var(--shadow-lg);width:min(72%,260px)
  }
  .card-badge .num{font-size:1.9rem;font-weight:800;color:#fff;line-height:1}
  .card-badge .lbl{font-size:.82rem;color:#B9CBD0;margin-top:4px}
  .card-badge .stars{color:var(--sun);letter-spacing:2px;font-size:.95rem;margin-bottom:8px}
  .card-float{
    position:absolute;left:2%;bottom:2%;background:var(--surface);border:1px solid var(--line);
    border-radius:16px;padding:13px 16px;display:flex;align-items:center;gap:11px;box-shadow:var(--shadow);
  }
  .card-float .ic{width:38px;height:38px;border-radius:10px;background:var(--accent-soft);display:grid;place-items:center;color:var(--accent-deep);flex:none}
  .card-float b{font-size:.9rem}.card-float span{font-size:.78rem;color:var(--muted)}
  .card-main-inner{position:absolute;inset:0;padding:26px;display:flex;flex-direction:column;justify-content:flex-end}
  .hero-logo-mark{width:104px;height:auto;align-self:flex-start;margin-bottom:auto;filter:drop-shadow(0 10px 18px rgba(16,36,46,.12))}
  .card-main-inner .k{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-deep)}
  .card-main-inner .t{font-family:var(--serif);font-style:italic;font-size:1.7rem;color:var(--ink);margin-top:6px}
  .blob{position:absolute;border-radius:50%;filter:blur(46px);opacity:.5;z-index:-1}
  .blob-1{width:340px;height:340px;background:var(--accent-soft);top:-60px;right:-40px}
  .blob-2{width:260px;height:260px;background:#FBE5C0;bottom:-40px;left:-30px;opacity:.55}

  /* ===================== LOGO-/TRUST-STREIFEN ===================== */
  .strip{background:var(--ink);color:#DCE7E5;padding:26px 0}
  .strip .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:22px}
  .strip .item{display:flex;align-items:center;gap:11px;font-size:.94rem}
  .strip .item svg{color:var(--sun);flex:none}
  .strip b{color:#fff}

  /* ===================== LEISTUNGEN ===================== */
  .sec-head{max-width:640px;margin-bottom:48px}
  .grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
  @media(max-width:900px){.grid-3{grid-template-columns:repeat(2,1fr)}}
  @media(max-width:600px){.grid-3{grid-template-columns:1fr}}
  .service{display:block;color:inherit;
    background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:30px 26px;
    transition:transform .2s ease, box-shadow .2s ease, border-color .2s;position:relative;
  }
  .service:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);border-color:var(--accent-soft)}
  .service .ic{width:52px;height:52px;border-radius:13px;background:var(--accent-soft);display:grid;place-items:center;color:var(--accent-deep);margin-bottom:18px}
  .service h3{margin-bottom:9px}
  .service p{color:var(--muted);font-size:.95rem;margin-bottom:16px}
  .service .more{font-weight:700;font-size:.9rem;color:var(--accent-deep);display:inline-flex;align-items:center;gap:6px}
  .service:hover .more svg{transform:translateX(4px)}
  .service .more svg{transition:transform .2s}

  /* ===================== PREIS-INDIKATION ===================== */
  .price-signal{background:var(--surface);padding:74px 0}
  .price-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:42px;align-items:center}
  @media(max-width:820px){.price-grid{grid-template-columns:1fr;gap:28px}}
  .price-copy .lead{max-width:58ch}
  .price-card{
    background:var(--ink);color:#fff;border-radius:var(--r-lg);padding:28px;
    box-shadow:var(--shadow-lg);border:1px solid rgba(255,255,255,.12)
  }
  .price-top{display:flex;gap:14px;align-items:center;margin-bottom:20px}
  .price-icon{
    width:52px;height:52px;border-radius:14px;background:var(--sun);color:var(--ink);
    display:grid;place-items:center;flex:none
  }
  .price-card b{display:block;font-size:1.08rem;color:#fff}
  .price-card span{display:block;font-size:.9rem;color:#A9BFC4;margin-top:2px}
  .price-card ul{list-style:none;display:grid;gap:12px;margin:22px 0 24px}
  .price-card li{position:relative;padding-left:22px;color:#DCE7E5;font-size:.95rem}
  .price-card li::before{content:"";position:absolute;left:0;top:.62em;width:8px;height:8px;border-radius:50%;background:var(--sun)}

  /* ===================== ÜBER UNS ===================== */
  .about{background:#fff}
  .about-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center}
  @media(max-width:860px){.about-grid{grid-template-columns:1fr;gap:36px}}
  .about-visual{
    aspect-ratio:4/5;border-radius:var(--r-lg);background:linear-gradient(150deg,var(--accent),var(--accent-deep));
    position:relative;overflow:hidden;box-shadow:var(--shadow-lg);display:grid;place-items:center;color:#fff;
  }
  .about-visual .quote{font-family:var(--serif);font-style:italic;font-size:1.5rem;text-align:center;padding:0 34px;line-height:1.4}
  .about-visual .sig{position:absolute;bottom:26px;left:0;right:0;text-align:center;font-weight:700;letter-spacing:.04em}
  .about-visual .sig span{display:block;font-weight:500;font-size:.85rem;opacity:.8;letter-spacing:.14em;text-transform:uppercase;margin-top:3px}
  .about-visual::after{content:"✦";position:absolute;top:24px;right:28px;font-size:1.4rem;color:rgba(255,255,255,.55)}
  .about p{color:var(--ink-soft);margin-bottom:16px}
  .about p strong{color:var(--ink)}
  .about ul{list-style:none;margin:22px 0 28px;display:grid;gap:12px}
  .about ul li{display:flex;gap:12px;align-items:flex-start;font-size:.97rem;color:var(--ink-soft)}
  .about ul li svg{color:var(--accent);flex:none;margin-top:3px}

  /* ===================== PROZESS ===================== */
  .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;counter-reset:step}
  @media(max-width:820px){.steps{grid-template-columns:1fr}}
  .step{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:32px 28px;position:relative}
  .step .no{font-size:.8rem;font-weight:800;letter-spacing:.1em;color:var(--accent-deep)}
  .step h3{margin:14px 0 8px}
  .step p{color:var(--muted);font-size:.95rem}
  .step .dot{position:absolute;top:32px;right:28px;width:44px;height:44px;border-radius:12px;background:var(--accent-soft);display:grid;place-items:center;color:var(--accent-deep)}

  /* ===================== STATS ===================== */
  .stats{background:var(--ink);color:#fff}
  .stats .grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center}
  @media(max-width:720px){.stats .grid{grid-template-columns:repeat(2,1fr);gap:34px 20px}}
  .stat .n{font-size:clamp(2.2rem,5vw,3.1rem);font-weight:800;color:#fff;line-height:1}
  .stat .n span{color:var(--sun)}
  .stat .l{color:#A9BFC4;font-size:.94rem;margin-top:8px}

  /* ===================== BEWERTUNGEN ===================== */
  .reviews-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
  @media(max-width:760px){.reviews-grid{grid-template-columns:1fr}}
  .review{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:28px 26px}
  .review .stars{color:var(--sun);letter-spacing:2px;margin-bottom:12px}
  .review p{font-size:1.02rem;color:var(--ink-soft);margin-bottom:18px}
  .review .who{display:flex;align-items:center;gap:12px}
  .review .av{width:44px;height:44px;border-radius:50%;background:var(--accent-soft);color:var(--accent-deep);display:grid;place-items:center;font-weight:800;flex:none}
  .review .who b{font-size:.95rem}.review .who span{font-size:.82rem;color:var(--muted);display:block}
  .reviews-cta{text-align:center;margin-top:36px}

  /* ===================== FAQ ===================== */
  .faq-wrap{max-width:800px;margin:0 auto}
  .faq-item{border-bottom:1px solid var(--line)}
  .faq-q{width:100%;background:none;border:none;text-align:left;cursor:pointer;padding:24px 0;
    display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:1.06rem;font-weight:700;color:var(--ink);font-family:inherit}
  .faq-q:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:6px}
  .faq-q .pm{flex:none;width:30px;height:30px;border-radius:50%;background:var(--accent-soft);color:var(--accent-deep);display:grid;place-items:center;transition:transform .25s;font-size:1.2rem}
  .faq-item.open .faq-q .pm{transform:rotate(45deg)}
  .faq-a{max-height:0;overflow:hidden;transition:max-height .3s ease}
  .faq-a p{color:var(--muted);padding:0 0 24px}

  /* ===================== KONTAKT ===================== */
  .contact{background:#fff}
  .contact-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:48px;align-items:start}
  @media(max-width:880px){.contact-grid{grid-template-columns:1fr;gap:36px}}
  .contact-info .row{display:flex;gap:15px;align-items:flex-start;margin-bottom:24px}
  .contact-info .ic{width:46px;height:46px;border-radius:12px;background:var(--surface);border:1px solid var(--line);display:grid;place-items:center;color:var(--accent-deep);flex:none}
  .contact-info .row b{display:block;font-size:.98rem;margin-bottom:2px}
  .contact-info .row a,.contact-info .row span{color:var(--muted);font-size:.95rem}
  .contact-info .row a:hover{color:var(--accent-deep)}
  .form{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:32px;box-shadow:var(--shadow)}
  .form h3{margin-bottom:6px}
  .form .sub{color:var(--muted);font-size:.92rem;margin-bottom:22px}
  .field{margin-bottom:16px}
  .field label{display:block;font-size:.86rem;font-weight:600;margin-bottom:6px;color:var(--ink-soft)}
  .field input,.field select,.field textarea{
    width:100%;padding:13px 15px;border:1.5px solid var(--line);border-radius:11px;font-size:.96rem;font-family:inherit;color:var(--ink);background:var(--bg);transition:border-color .15s, box-shadow .15s;
  }
  .field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
  .field textarea{resize:vertical;min-height:110px}
  .two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
  @media(max-width:520px){.two{grid-template-columns:1fr}}
  .consent{display:flex;gap:11px;align-items:flex-start;margin:6px 0 20px;font-size:.86rem;color:var(--muted)}
  .consent input{width:18px;height:18px;flex:none;margin-top:3px;accent-color:var(--accent-deep)}
  .consent a{color:var(--accent-deep);text-decoration:underline}
  .form .btn-primary{width:100%}
  .form-note{font-size:.8rem;color:var(--muted);text-align:center;margin-top:14px}
  .form-msg{display:none;padding:14px 16px;border-radius:11px;background:var(--accent-soft);color:var(--accent-deep);font-weight:600;font-size:.92rem;margin-bottom:18px}
  .form-msg.show{display:block}
  /* ===================== FOOTER ===================== */
  footer.site{background:var(--ink);color:#B9CBD0;padding:64px 0 30px}
  .foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px;padding-bottom:44px;border-bottom:1px solid rgba(255,255,255,.1)}
  @media(max-width:860px){.foot-grid{grid-template-columns:1fr 1fr;gap:34px}}
  @media(max-width:520px){.foot-grid{grid-template-columns:1fr}}
  footer.site .brand{color:#fff;margin-bottom:16px}
  footer.site .footer-brand{
    display:inline-flex;background:#fff;border-radius:14px;padding:8px 11px;
    box-shadow:0 16px 30px -22px rgba(255,255,255,.7)
  }
footer.site .footer-brand .brand-logo{width:250px;max-height:96px}
  footer.site .brand small{color:#8EA6AC}
  footer.site p{font-size:.92rem;line-height:1.7;color:#9DB4BA;max-width:32ch}
  .foot-h{color:#fff;font-size:.82rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin-bottom:18px}
  footer.site ul{list-style:none;display:grid;gap:11px}
  footer.site ul a{font-size:.93rem;color:#9DB4BA;transition:color .15s}
  footer.site ul a:hover{color:var(--sun)}
  .foot-contact div{font-size:.93rem;margin-bottom:10px;color:#9DB4BA}
  .foot-contact b{color:#fff;display:block;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;margin-bottom:3px;font-weight:700}
  .hours-block{
    margin-bottom:14px;
  }
  .hours-list{
    display:grid;
    gap:4px;
    margin:7px 0 0;
    color:#9DB4BA;
    font-size:.93rem;
    font-weight:650;
    line-height:1.35;
  }
  .hours-list div{
    display:grid;
    grid-template-columns:58px minmax(0,1fr);
    gap:10px;
    align-items:baseline;
    margin:0;
  }
  .hours-list dt{
    color:#D8E6E9;
    font-weight:850;
  }
  .hours-list dd{
    margin:0;
    color:inherit;
  }
  .hours-list dd span{
    display:block;
  }
  .hours-list dd span + span{
    margin-top:2px;
  }
  .foot-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;align-items:center;padding-top:26px;font-size:.86rem;color:#8EA6AC}
  .foot-bottom .legal{display:flex;gap:22px;flex-wrap:wrap}
  .foot-bottom .legal a:hover{color:#fff}
  .foot-bottom .credit a{color:#B9CBD0}
  .foot-bottom .credit a:hover{color:var(--sun)}
  .footer-social{
    display:flex;
    justify-content:flex-start;
    align-items:center;
    gap:9px;
    margin-top:14px;
    margin-bottom:0;
  }
  .social-link{
    display:grid;
    place-items:center;
    width:34px;
    height:34px;
    border:1px solid rgba(222,231,236,.34);
    border-radius:50%;
    color:#A8B9BE;
    background:rgba(255,255,255,.045);
    transition:transform .18s ease, background .18s ease, border-color .18s ease, color .18s ease;
  }
  .social-link:hover{
    transform:translateY(-2px);
    border-color:rgba(156,235,229,.85);
    color:#0F7E82;
    background:rgba(255,255,255,.92);
  }
  .social-link svg{
    width:17px;
    height:17px;
    fill:currentColor;
    stroke:none;
  }
  @media(max-width:720px){
    .footer-social{
      gap:10px;
    }
  }

  /* ===================== QUICK-CONTACT ===================== */
  .mobile-quick-contact{
    position:fixed;
    right:clamp(18px,2.2vw,32px);
    bottom:clamp(18px,2.2vw,32px);
    z-index:90;
    display:flex;
    flex-direction:column;
    gap:16px;
  }

  .quick-btn{
    width:76px;
    height:76px;
    border-radius:50%;
    display:grid;
    place-items:center;
    color:#fff;
    background:#25D366;
    border:1px solid rgba(255,255,255,.62);
    box-shadow:0 22px 46px -22px rgba(37,211,102,.72);
    transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;
  }

  .quick-btn svg{
    width:34px;
    height:34px;
  }

  .quick-btn:hover{
    transform:translateY(-3px);
    filter:saturate(1.05);
    box-shadow:0 26px 54px -22px rgba(37,211,102,.82);
  }

  .quick-phone,
  .quick-whatsapp{
    background:#25D366;
  }

  .quick-btn:focus-visible{
    outline:3px solid rgba(37,211,102,.3);
    outline-offset:4px;
  }

  @media(max-width:720px){
    body{padding-bottom:112px}
    .mobile-quick-contact{
      right:16px;
      bottom:16px;
      gap:12px;
    }
    .quick-btn{
      width:64px;
      height:64px;
    }
    .quick-btn svg{
      width:29px;
      height:29px;
    }
  }

  .skip{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:10px 16px;z-index:100;border-radius:0 0 8px 0}
  .skip:focus{left:0}

  /* Scroll-Reveal */
  .reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease, transform .6s ease}
  .reveal.in{opacity:1;transform:none}
  @media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* ============================================================
   SERVICE-UNTERSEITEN (gescoped über body.subpage)
   ============================================================ */
.crumb{padding:20px 0 0;font-size:.86rem;color:var(--muted)}
.crumb a:hover{color:var(--accent-deep)}
.crumb span{color:var(--ink);font-weight:600}

.sec-head.center{margin-left:auto;margin-right:auto;text-align:center}

.checklist{display:grid;grid-template-columns:1fr 1fr;gap:16px 30px}
@media(max-width:720px){.checklist{grid-template-columns:1fr}}
.checklist li{list-style:none;display:flex;gap:13px;align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;font-size:.97rem;color:var(--ink-soft)}
.checklist li .tick{width:26px;height:26px;border-radius:8px;background:var(--accent-soft);color:var(--accent-deep);display:grid;place-items:center;flex:none}

.alt{background:#fff}

.benefit{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:28px 26px}
.benefit .ic{width:50px;height:50px;border-radius:13px;background:var(--accent-soft);display:grid;place-items:center;color:var(--accent-deep);margin-bottom:16px}
.benefit h3{margin-bottom:8px}
.benefit p{color:var(--muted);font-size:.95rem}

.forwho{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
@media(max-width:820px){.forwho{grid-template-columns:1fr;gap:30px}}
.forwho .panel{background:linear-gradient(150deg,var(--accent),var(--accent-deep));color:#fff;border-radius:var(--r-lg);padding:40px 36px;box-shadow:var(--shadow-lg);position:relative;overflow:hidden}
.forwho .panel::after{content:"\2726";position:absolute;top:22px;right:26px;font-size:1.3rem;color:rgba(255,255,255,.5)}
.forwho .panel .q{font-family:var(--serif);font-style:italic;font-size:1.45rem;line-height:1.4}
.forwho p{color:var(--ink-soft);margin-bottom:14px}

.others{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media(max-width:820px){.others{grid-template-columns:1fr}}
.oc{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:22px;display:flex;align-items:center;gap:15px;transition:transform .2s ease, box-shadow .2s ease, border-color .2s}
.oc:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--accent-soft)}
.oc .ic{width:44px;height:44px;border-radius:11px;background:var(--accent-soft);color:var(--accent-deep);display:grid;place-items:center;flex:none}
.oc b{font-size:1rem;display:block}
.oc span{font-size:.85rem;color:var(--muted)}

.cta-band{background:var(--ink);color:#fff}
.cta-band .box{display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap}
.cta-band h2{color:#fff}
.cta-band p{color:#A9BFC4;margin-top:10px;max-width:46ch}
.cta-band .actions{display:flex;gap:14px;flex-wrap:wrap}

.btn-light{background:#fff;color:var(--ink)}
.btn-light:hover{transform:translateY(-2px);background:var(--accent-soft)}

/* --- Subpage-Overrides (nur auf .subpage, Startseite bleibt unberührt) --- */
.subpage .hero{padding:52px 0 76px}
.subpage .hero-visual{aspect-ratio:1/.92;min-height:300px}
.subpage .card-main{inset:4% 6% 16% 4%}
.subpage .card-main-inner{justify-content:space-between}
.subpage .hero-logo-mark{width:88px;margin-bottom:0}
.subpage .card-main-inner .t{font-size:1.5rem}
.subpage .card-badge{right:-3%;bottom:6%;width:min(70%,240px);padding:16px 20px}
.subpage .grid-3{grid-template-columns:repeat(3,1fr)}
@media(max-width:820px){.subpage .grid-3{grid-template-columns:1fr}}

/* --- Formular: Fehlermeldung --- */
.form-msg.error{background:#FBE3E3;color:#B23A3A}

/* ============================================================
   PERFECT CLEAN REDESIGN HOMEPAGE
   ============================================================ */
:root{
  --ink:#0B2F38;
  --ink-soft:#174751;
  --muted:#7A8A91;
  --line:#E6EEF0;
  --bg:#F5FAFA;
  --surface:#FFFFFF;
  --surface-2:#EEF8F8;
  --accent:#69BFC8;
  --accent-deep:#3598A4;
  --accent-soft:#E4F6F7;
  --sun:#AF9A6C;
  --sun-deep:#A08858;
  --shadow:0 8px 24px -18px rgba(11,47,56,.28);
  --shadow-lg:0 28px 70px -34px rgba(11,47,56,.45);
  --r:12px;
  --r-lg:22px;
  --maxw:1280px;
}

.topbar{background:var(--ink);color:#DDECEE;font-size:.9rem;position:sticky;top:0;z-index:80}
.topbar-inner{min-height:42px;display:flex;align-items:center;justify-content:flex-end;gap:28px}
.topbar a:hover{color:var(--sun)}

body{background:#fff;color:var(--ink)}
.wrap{max-width:var(--maxw)}
section{padding:110px 0}
@media(max-width:720px){section{padding:72px 0}}

.script-label{
  display:inline-block;color:var(--accent-deep);font-family:"Bradley Hand","Segoe Print","Comic Sans MS",cursive;
  font-size:clamp(1.18rem,2.4vw,1.72rem);font-weight:700;line-height:1.1;margin-bottom:18px;
  letter-spacing:.01em
}
.section-title{max-width:760px;margin-bottom:56px}
.section-title.center{text-align:center;margin-left:auto;margin-right:auto}
.section-title h2,.about-premium h2,.faq-intro h2,.contact-info h2{
  font-size:clamp(2.2rem,4.8vw,4rem);line-height:1.08;letter-spacing:-.02em
}
.section-title p,.about-copy p,.faq-intro p,.contact-info p{
  color:var(--muted);font-size:1.08rem;line-height:1.8;margin-top:18px
}

.btn{border-radius:8px;padding:17px 26px}
.btn-primary{background:var(--sun);box-shadow:0 14px 26px -18px rgba(185,149,62,.9)}
.btn-primary:hover{background:var(--sun-deep)}
.btn-light{background:#fff;color:var(--ink)}
.btn-light:hover{background:var(--accent-soft)}
.btn-dark{background:var(--ink);color:#fff}
.text-link{font-weight:800;color:var(--ink);display:inline-flex;align-items:center;gap:8px}
.text-link::after,.card-link::after{content:"";width:18px;height:10px;background:currentColor;mask:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 14' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M16.8.5 23 7l-6.2 6.5-1.45-1.38L19.17 8H1V6h18.17l-3.82-4.12L16.8.5Z'/%3E%3C/svg%3E") center/contain no-repeat}

header.site{
  top:42px;
  background:#fff !important;
  background-color:#fff !important;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  border-bottom:1px solid var(--line);
  box-shadow:0 4px 22px -20px rgba(11,47,56,.55);
  isolation:isolate;
}
header.site::before{
  content:"";
  position:absolute;
  inset:0;
  background:#fff;
  z-index:-1;
  pointer-events:none;
}
header.site .nav,
header.site .wrap,
header.site .brand.logo-brand{
  background:#fff !important;
  background-color:#fff !important;
}
header.site .brand-logo{
  background:#fff !important;
  background-color:#fff !important;
}
.nav{height:88px}
.brand-logo{width:210px;max-height:78px}
.nav-links{gap:34px}
.nav-links a{font-weight:800;color:var(--ink)}
.nav-links a[aria-current="page"]{color:var(--accent-deep)}
.nav-links a:hover{color:var(--accent-deep)}
@media(max-width:1120px){.nav-links{gap:20px}.brand-logo{width:190px;max-height:72px}}
@media(max-width:940px){
  .topbar{display:block;font-size:.76rem}
  .topbar-inner{min-height:42px;justify-content:flex-start;gap:16px;overflow-x:auto;white-space:nowrap;scrollbar-width:none}
  .topbar-inner::-webkit-scrollbar{display:none}
  .nav{height:72px}
  .brand-logo{width:172px;max-height:64px}
  .nav-links{inset:114px 0 auto 0}
  .nav-cta .btn{display:none}
}
@media(max-width:520px){.brand-logo{width:150px;max-height:58px}}

.hero.hero-photo{min-height:760px;padding:0;display:grid;place-items:stretch;position:relative;color:#fff;background:var(--ink)}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,47,56,.92) 0%,rgba(11,47,56,.72) 44%,rgba(11,47,56,.28) 100%)}
.hero-content{position:relative;z-index:1;display:grid;align-content:center;min-height:760px;padding-top:70px;padding-bottom:70px}
.hero-copy{max-width:760px}
.hero-copy h1{font-size:clamp(3.1rem,6.4vw,6.25rem);line-height:1.02;color:#fff;letter-spacing:-.04em;margin:0 0 24px}
.hero-copy p{font-size:clamp(1.05rem,1.55vw,1.35rem);line-height:1.7;max-width:660px;color:#F0F8F8;font-weight:700}
.hero-actions{display:flex;gap:18px;flex-wrap:wrap;margin-top:38px;align-items:center}
@media(max-width:760px){
  .hero.hero-photo,.hero-content{min-height:680px}
  .hero-overlay{background:linear-gradient(90deg,rgba(11,47,56,.94),rgba(11,47,56,.72))}
  .hero-copy h1{font-size:clamp(2.55rem,14vw,4rem)}
}

.about-premium{background:#fff}
.about-premium-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.72fr);gap:72px;align-items:center}
.about-media{position:relative;justify-self:center;width:min(100%,420px);padding:0}
.about-media img{border-radius:22px;box-shadow:var(--shadow-lg);aspect-ratio:3/4;object-fit:cover;object-position:center 26%;width:100%;max-height:560px}
.about-actions{display:flex;gap:22px;align-items:center;flex-wrap:wrap;margin-top:30px}
@media(max-width:900px){.about-premium-grid{grid-template-columns:1fr;gap:42px}.about-media{width:min(100%,380px);padding-right:0;justify-self:start}.about-media img{max-height:500px}}

.service-section{background:#fff}
.service-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.service-card{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--shadow);transition:transform .2s ease, box-shadow .2s ease}
.service-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.service-img{height:228px;background:var(--accent-soft);overflow:hidden}
.service-img img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.service-img img[src*="sanitaerreinigung-perfect-clean"]{object-position:center 16%}
.service-img img[src*="treppenhausreinigung-perfect-clean-team"]{object-position:center 10%}
.service-img img[src*="treppenhausreinigung-perfect-clean-sandra"]{object-position:center 12%}
.service-card:hover .service-img img{transform:scale(1.04)}
.service-img-soft{display:grid;place-items:center;background:linear-gradient(135deg,#fff,var(--accent-soft))}
.service-img-soft img{width:44%;height:auto;object-fit:contain}
.service-img-soft:first-child img{width:50%}
.service-body{padding:30px}
.service-icon{display:inline-grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--accent-soft);color:var(--accent-deep);font-weight:900;margin-bottom:20px}
.service-body h3{font-size:1.55rem;margin-bottom:14px;color:var(--ink)}
.service-body p{color:var(--muted);line-height:1.75;margin-bottom:22px}
.card-link{display:inline-flex;align-items:center;gap:10px;font-weight:900;color:var(--ink)}
@media(max-width:980px){.service-cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.service-cards{grid-template-columns:1fr}.service-img{height:210px}}

.local-presence{
  background:#fff;
  padding:34px 0 52px;
}

.local-presence-inline{
  margin:-8px 0 34px;
  padding:0;
}

.local-presence-grid{
  display:grid;
  grid-template-columns:minmax(0,.76fr) minmax(0,1.24fr);
  gap:34px;
  align-items:center;
}

.local-presence-inline{
  display:grid;
  grid-template-columns:minmax(0,.76fr) minmax(0,1.24fr);
  gap:34px;
  align-items:center;
  border:1px solid var(--line);
  border-radius:24px;
  padding:22px;
  box-shadow:0 24px 70px -56px rgba(16,43,50,.48);
}

.local-presence-copy h2{
  max-width:9ch;
  margin:0 0 16px;
  color:#081F25;
  font-size:clamp(2.15rem,4.2vw,4.8rem);
  line-height:.92;
  letter-spacing:-.055em;
}

.local-presence-copy p{
  max-width:440px;
  margin:0 0 20px;
  color:#60777D;
  font-size:clamp(1rem,1.25vw,1.1rem);
  line-height:1.75;
  font-weight:650;
}

.local-presence-media{
  position:relative;
  min-height:330px;
}

.local-presence-media figure{
  overflow:hidden;
  background:#fff;
  border:1px solid var(--line);
  box-shadow:0 34px 90px -54px rgba(16,43,50,.55);
}

.local-presence-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.local-car-main{
  position:absolute;
  inset:0 92px 44px 0;
  border-radius:22px;
}

.local-car-main img{
  object-position:center 54%;
}

.local-car-small{
  position:absolute;
  right:0;
  bottom:0;
  width:min(32%,210px);
  aspect-ratio:3/4;
  border-radius:20px;
}

.local-car-small img{
  object-position:center 44%;
}

@media(max-width:980px){
  .local-presence-grid,
  .local-presence-inline{
    grid-template-columns:1fr;
    gap:36px;
  }

  .local-presence-copy h2{
    max-width:12ch;
  }

  .local-presence-media{
    min-height:420px;
  }
}

@media(max-width:640px){
  .local-presence{
    padding:58px 0 64px;
  }

  .local-presence-inline{
    margin:0 0 28px;
    padding:16px;
    border-radius:20px;
  }

  .local-presence-media{
    min-height:auto;
    display:grid;
    gap:14px;
  }

  .local-car-main,
  .local-car-small{
    position:relative;
    inset:auto;
    width:100%;
    border-radius:20px;
  }

  .local-car-main{
    aspect-ratio:4/3;
  }

  .local-car-small{
    aspect-ratio:16/10;
  }
}

.process{background:#fff}
.process-summary{
  max-width:820px;
  margin:20px auto 0;
  color:#27464D;
  font-size:clamp(1rem,1.45vw,1.18rem);
  font-weight:850;
  line-height:1.7;
}
.process-timeline{
  --process-line-top:0px;
  --process-line-height:0px;
  --process-progress-height:0px;
  position:relative;
  isolation:isolate;
  max-width:1040px;
  margin:0 auto;
  padding:18px 0 4px;
}
.process-timeline::before,
.process-progress{
  content:"";
  position:absolute;
  left:50%;
  top:var(--process-line-top);
  width:2px;
  height:var(--process-line-height);
  transform:translateX(-50%);
  border-radius:999px;
  z-index:0;
}
.process-timeline::before{
  background:#DDEBEC;
}
.process-progress{
  height:var(--process-progress-height);
  background:#137D82;
  box-shadow:none;
}
.process-step{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1fr) 96px minmax(0,1fr);
  align-items:center;
  min-height:244px;
  border:0;
  opacity:.48;
  transform:translateY(24px);
  transition:opacity .45s ease, transform .45s ease;
}
.process-step.in,
.process-step.is-active{
  opacity:1;
  transform:translateY(0);
}
.process-step-card{
  position:relative;
  grid-column:1;
  padding:30px;
  border:0;
  border-radius:22px;
  background:#fff;
  box-shadow:none;
}
.process-step:nth-child(odd) .process-step-card{
  grid-column:3;
}
.process-kicker{
  display:inline-block;
  margin-bottom:14px;
  color:#0F7C80;
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.node{
  position:relative;
  top:auto;
  grid-column:2;
  z-index:3;
  display:grid;
  place-items:center;
  width:60px;
  height:60px;
  margin:0 auto;
  border-radius:50%;
  background:#fff;
  border:1px solid #CFE4E6;
  color:#0F7C80;
  font-weight:950;
  box-shadow:none;
  transition:background .25s ease, color .25s ease, border-color .25s ease, transform .25s ease;
}
.process-step.is-active .node{
  color:#fff;
  background:#137D82;
  border-color:#137D82;
  transform:scale(1.08);
}
.process-step h3{font-size:1.42rem;margin-bottom:14px}.process-step p{color:var(--muted);line-height:1.78}
@media(max-width:900px){
  .process-timeline{
    --process-mobile-axis:39px;
    padding-left:8px;
  }
  .process-timeline::before,
  .process-progress{left:var(--process-mobile-axis);transform:none}
  .process-step{
    grid-template-columns:62px minmax(0,1fr);
    min-height:auto;
    padding-bottom:28px;
  }
  .process-step-card,
  .process-step:nth-child(odd) .process-step-card{
    grid-column:2;
    padding:24px 22px;
    border-radius:18px;
  }
  .node{
    top:auto;
    grid-column:1;
    width:46px;
    height:46px;
    font-size:.86rem;
  }
}

.packages{background:#fff}
.package-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.package-card{border:1px solid var(--line);border-radius:18px;padding:42px 38px;background:#fff;box-shadow:var(--shadow)}
.package-card.featured{background:var(--accent-soft);border-color:#CBEAEC}
.package-card > span{font-family:"Bradley Hand","Segoe Print","Comic Sans MS",cursive;color:var(--accent-deep);font-size:1.3rem;font-weight:800}
.package-card h3{font-size:1.8rem;margin:12px 0 28px}
.package-card ul{list-style:none;display:grid;gap:16px}
.package-card li{position:relative;padding-left:34px;color:var(--ink-soft);font-weight:700}
.package-card li::before{content:"";position:absolute;left:0;top:.18em;width:22px;height:22px;border-radius:50%;background:var(--sun)}
.price-note{margin-top:34px;background:var(--ink);color:#fff;border-radius:18px;padding:24px 28px;display:flex;align-items:center;gap:22px;justify-content:space-between;flex-wrap:wrap}
.price-note b{font-size:1.2rem}.price-note span{color:#D7E5E7;margin-right:auto}
@media(max-width:860px){.package-grid{grid-template-columns:1fr}}

.faq{
  background:#fff;
}
.faq-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:72px;align-items:start}
.faq-intro p{
  margin-bottom:18px;
}
.faq-intro p + .btn{
  display:flex;
  width:max-content;
  max-width:100%;
}
.faq .faq-wrap{max-width:none;background:#fff;border-radius:18px;padding:8px 30px;box-shadow:var(--shadow)}
.faq-item{
  border-bottom:1px solid rgba(221,235,236,.92);
}
.faq-item:last-child{
  border-bottom:0;
}
.faq-q{
  width:100%;
  min-height:82px;
  padding:24px 0;
  border:0;
  background:none;
  color:#102B32;
  font:inherit;
  font-size:1.08rem;
  font-weight:850;
  text-align:left;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
}
.faq-q:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:8px}
.faq-q .pm{
  flex:none;
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:50%;
  background:var(--accent-soft);
  color:var(--accent-deep);
  font-size:1.22rem;
  transition:transform .24s ease, background .24s ease, color .24s ease;
}
.faq-item.open .faq-q .pm{
  transform:rotate(45deg);
  background:#137D82;
  color:#fff;
}
.faq-a{
  max-height:0;
  overflow:hidden;
  transition:max-height .36s ease;
}
.faq-a p{
  padding:0 0 26px;
  color:#536B71;
  line-height:1.82;
}
.faq-a p.is-typing::after{
  content:"";
  display:inline-block;
  width:2px;
  height:1.05em;
  margin-left:3px;
  vertical-align:-.14em;
  background:#137D82;
  animation:type-caret .9s steps(1,end) infinite;
}
@keyframes type-caret{
  50%{opacity:0}
}
@media(max-width:860px){.faq-grid{grid-template-columns:1fr;gap:34px}}

.contact{background:#fff}
.contact-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:64px;align-items:start}
.contact-list{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:30px 0}
.contact-list a,.contact-list div{background:var(--surface-2);border:1px solid var(--line);border-radius:14px;padding:18px}
.contact-list b{display:block}.contact-list span{display:block;color:var(--muted);font-size:.94rem;margin-top:4px}
.form{border-radius:18px}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr}.contact-list{grid-template-columns:1fr}}

footer.site{background:var(--ink);color:#BBD0D4}
footer.site .footer-brand{background:#fff;border-radius:14px;padding:8px 11px}
footer.site .footer-brand .brand-logo{width:260px;max-height:98px}

/* ============================================================
   SEO SERVICE PAGES
   ============================================================ */
.service-page-main{background:#fff}
.service-page-hero{position:relative;isolation:isolate;min-height:520px;display:grid;align-items:end;color:#fff;background:var(--ink);overflow:hidden}
.service-page-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.service-page-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,47,56,.92),rgba(11,47,56,.54));z-index:-1}
.service-page-hero .wrap{padding-top:92px;padding-bottom:78px}
.crumb{font-size:.9rem;color:rgba(255,255,255,.78);margin-bottom:30px}.crumb a:hover{color:#fff}
.service-page-hero h1{font-size:clamp(2.8rem,6vw,5.4rem);color:#fff;max-width:860px;letter-spacing:-.04em}
.service-page-hero p{max-width:680px;color:#EEF8F8;font-size:1.18rem;line-height:1.75;margin-top:22px;font-weight:700}
.service-page-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:32px}
.service-detail{background:#fff}
.service-detail-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:72px;align-items:start}
.service-detail h2,.service-local h2,.service-faq h2{font-size:clamp(2rem,4vw,3.4rem);line-height:1.1}
.service-detail p,.service-local p{color:var(--muted);font-size:1.06rem;line-height:1.85;margin-top:18px}
.scope-list{display:grid;gap:13px;list-style:none;margin-top:28px}
.scope-list li{position:relative;padding:16px 18px 16px 48px;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;color:var(--ink-soft);font-weight:750}
.scope-list li::before{content:"";position:absolute;left:18px;top:19px;width:18px;height:18px;border-radius:50%;background:var(--sun)}
.side-panel{background:var(--ink);color:#fff;border-radius:20px;padding:34px;position:sticky;top:110px}
.side-panel h3{color:#fff;font-size:1.5rem;margin-bottom:18px}.side-panel p{color:#D7E5E7;line-height:1.75}
.side-panel .btn{margin-top:24px;width:100%}
.service-local{background:#fff}
.service-faq{background:#fff}
.service-faq-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:64px}
.service-faq details{border-bottom:1px solid var(--line);padding:22px 0}
.service-faq summary{cursor:pointer;font-weight:900;color:var(--ink);font-size:1.08rem;list-style:none}
.service-faq summary::-webkit-details-marker{display:none}
.service-faq details p{color:var(--muted);line-height:1.75;margin-top:14px}
.service-related{background:var(--ink);color:#fff}
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:36px}
.related-card{background:#fff;color:var(--ink);border-radius:14px;padding:24px;font-weight:900;display:flex;justify-content:space-between;gap:16px;align-items:center}
.related-card:hover{transform:translateY(-3px)}
.legal-page{background:#fff}.legal-page .wrap{max-width:900px}.legal-page h1{font-size:clamp(2.4rem,5vw,4rem);margin-bottom:28px}.legal-page h2{font-size:1.5rem;margin:34px 0 12px}.legal-page p,.legal-page li{color:var(--ink-soft);line-height:1.8}.legal-page ul{padding-left:22px}
@media(max-width:860px){
  .service-detail-grid,.service-faq-grid{grid-template-columns:1fr;gap:34px}
  .side-panel{position:static}
  .related-grid{grid-template-columns:1fr}
}

/* ============================================================
   SERVICE LANDING PAGES
   ============================================================ */
.service-landing,
.service-landing main{
  background:#fff;
}

.service-landing section{
  background:#fff;
}

.service-landing-hero{
  padding:clamp(54px,6vw,76px) 0 clamp(38px,4vw,52px);
  overflow:hidden;
}

.service-landing-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(340px,.72fr);
  gap:clamp(34px,5vw,58px);
  align-items:center;
}

.service-landing-copy{
  max-width:680px;
  min-width:0;
}

.crumb.dark{
  color:#667D83;
  margin-bottom:20px;
}

.crumb.dark a{
  color:#31545B;
}

.crumb.dark a:hover{
  color:#137D82;
}

.service-landing-copy h1{
  max-width:680px;
  margin:0 0 24px;
  color:#081F25;
  font-size:clamp(2.7rem,4.85vw,5.15rem);
  line-height:.96;
  letter-spacing:-.04em;
  text-wrap:balance;
}

.service-landing-copy p{
  max-width:540px;
  color:#4D666C;
  font-size:clamp(1rem,1.12vw,1.16rem);
  line-height:1.65;
  font-weight:650;
}

.service-landing .hero-actions{
  margin-top:28px;
}

.service-landing-media{
  position:relative;
  min-height:clamp(360px,38vw,480px);
  aspect-ratio:4/5;
}

.service-landing-media img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  border-radius:24px;
  border:1px solid rgba(221,235,236,.92);
  box-shadow:0 28px 90px -64px rgba(16,43,50,.5);
}

.service-scope{
  padding:76px 0 48px;
}

.service-scope-grid{
  display:grid;
  grid-template-columns:.88fr 1.12fr;
  gap:72px;
  align-items:start;
}

.service-scope-copy h2,
.service-final-card h2{
  max-width:780px;
  color:#081F25;
  font-size:clamp(2.6rem,5vw,5.2rem);
  line-height:.96;
  letter-spacing:-.05em;
  text-wrap:balance;
}

.service-scope-copy p,
.service-final-card p{
  max-width:620px;
  margin-top:22px;
  color:#60777D;
  font-size:1.12rem;
  line-height:1.8;
  font-weight:650;
}

.service-scope-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}

.service-scope-item{
  min-height:178px;
  padding:28px;
  border:1px solid rgba(210,231,233,.94);
  border-radius:18px;
  background:#fff;
}

.service-scope-item span{
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  margin-bottom:24px;
  border-radius:13px;
  color:#137D82;
  background:#E7FAF8;
  font-weight:950;
}

.service-scope-item p{
  color:#29494F;
  font-size:1.08rem;
  line-height:1.55;
  font-weight:850;
}

.service-chip-row{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:34px;
}

.service-chip-row span{
  display:inline-flex;
  align-items:center;
  min-height:46px;
  padding:10px 18px;
  border:1px solid rgba(210,231,233,.96);
  border-radius:999px;
  color:#29494F;
  background:#fff;
  font-weight:900;
}

.kfz-packages{
  padding:86px 0 76px;
}

.kfz-packages .section-title{
  margin-bottom:58px;
}

.kfz-package-group + .kfz-package-group{
  margin-top:92px;
}

.kfz-package-head{
  max-width:820px;
  margin:0 auto 36px;
  text-align:center;
}

.kfz-package-head span,
.kfz-package-label{
  display:block;
  color:#9CA7B7;
  font-size:.86rem;
  font-weight:950;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.kfz-package-head h3{
  margin-top:10px;
  color:#081F25;
  font-size:clamp(1.7rem,3vw,2.75rem);
  line-height:1.08;
  letter-spacing:-.035em;
}

.kfz-package-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:40px;
  align-items:stretch;
}

.kfz-package-card{
  position:relative;
  display:grid;
  grid-template-rows:28px 154px 166px minmax(176px,1fr) 56px;
  min-height:100%;
  padding:46px 38px 36px;
  border:1px solid rgba(218,226,231,.96);
  border-radius:24px;
  background:#fff;
  box-shadow:0 22px 70px -58px rgba(16,43,50,.48);
}

.kfz-package-card h4{
  align-self:start;
  margin:18px 0 0;
  color:#081F25;
  font-size:clamp(1.55rem,2vw,2.15rem);
  line-height:1.08;
  letter-spacing:-.045em;
}

.kfz-package-fit{
  align-self:start;
  margin:0;
  padding:20px 22px;
  border-radius:16px;
  color:#63718A;
  background:#F0F4FA;
  font-size:.98rem;
  line-height:1.5;
  font-weight:650;
}

.kfz-package-fit b{
  color:#2D3C5D;
  font-weight:900;
}

.kfz-package-card ul{
  align-self:start;
  display:grid;
  gap:18px;
  margin:0;
  padding:0;
  list-style:none;
}

.kfz-package-card li{
  position:relative;
  padding-left:34px;
  color:#65728A;
  font-size:1.02rem;
  line-height:1.45;
  font-weight:720;
}

.kfz-package-card li::before{
  content:"✓";
  position:absolute;
  left:0;
  top:.02em;
  color:#137D82;
  font-size:1.28rem;
  font-weight:950;
}

.kfz-package-cta{
  align-self:end;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:56px;
  margin-top:0;
  padding:13px 18px;
  border:1px solid rgba(160,136,88,.72);
  border-radius:16px;
  color:#102B32;
  background:linear-gradient(180deg,#C7B488,#AF9A6C);
  box-shadow:0 22px 44px -34px rgba(160,136,88,.68);
  text-align:center;
  font-size:.96rem;
  font-weight:950;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.kfz-package-card ul + .kfz-package-cta{
  margin-top:0;
}

.kfz-package-cta:hover{
  transform:translateY(-2px);
  border-color:#A08858;
  box-shadow:0 28px 58px -36px rgba(160,136,88,.78);
}

.service-process{
  padding-top:58px;
}

.service-landing-faq{
  padding-top:72px;
}

.service-final-cta{
  padding:76px 0 38px;
}

.service-final-card{
  max-width:1120px;
  padding:46px;
  border:1px solid rgba(210,231,233,.96);
  border-radius:24px;
  background:#fff;
}

.service-landing .service-related{
  padding-top:42px;
  color:var(--ink);
  background:#fff;
}

.service-landing .service-related h2{
  color:#081F25;
  font-size:clamp(2.2rem,4.6vw,4.4rem);
  line-height:1;
  letter-spacing:-.05em;
}

.service-landing .related-card{
  border:1px solid rgba(210,231,233,.96);
  box-shadow:none;
}

@media(max-width:980px){
  .service-landing-grid,
  .service-scope-grid{
    grid-template-columns:1fr;
    gap:42px;
  }

  .service-landing-media{
    min-height:460px;
  }

  .kfz-package-grid{
    grid-template-columns:1fr;
    gap:24px;
  }

  .kfz-package-card{
    grid-template-rows:auto;
    gap:24px;
  }

  .kfz-package-card h4,
  .kfz-package-fit,
  .kfz-package-card ul,
  .kfz-package-cta{
    align-self:auto;
  }

}

@media(max-width:620px){
  .service-landing-hero{
    padding:48px 0 34px;
  }

  .service-landing-copy h1{
    font-size:clamp(2.45rem,12vw,4.1rem);
  }

  .service-landing-media{
    min-height:330px;
    aspect-ratio:1/1.05;
  }

  .service-landing-media img{
    border-radius:20px;
  }

  .service-scope-list{
    grid-template-columns:1fr;
  }

  .kfz-packages{
    padding:62px 0 58px;
  }

  .kfz-package-group + .kfz-package-group{
    margin-top:58px;
  }

  .kfz-package-card{
    padding:34px 22px 28px;
    border-radius:20px;
  }

  .kfz-package-card h4{
    min-height:0;
    margin-top:0;
  }

  .kfz-package-fit{
    padding:18px;
  }

  .kfz-package-card ul + .kfz-package-cta{
    margin-top:0;
  }

  .service-final-card{
    padding:30px 22px;
  }

}

/* ============================================================
   COMPACT CONTACT SECTION
   ============================================================ */
#kontakt.contact{padding:74px 0;background:#fff}
#kontakt .contact-grid{
  display:grid;
  grid-template-columns:minmax(360px,.86fr) minmax(520px,1.05fr);
  gap:42px;
  align-items:start;
}
#kontakt .contact-info h2{
  font-size:clamp(2.2rem,3.7vw,3.35rem);
  line-height:1.06;
  max-width:11ch;
}
#kontakt .contact-info p{
  max-width:44ch;
  margin-top:14px;
  font-size:1rem;
  line-height:1.65;
}
#kontakt .contact-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:24px 0 18px;
}
#kontakt .contact-list a,
#kontakt .contact-list div{
  min-height:96px;
  padding:16px 18px;
  border-radius:12px;
}
#kontakt .contact-list b{font-size:.96rem}
#kontakt .contact-list span{font-size:.9rem;line-height:1.45}
#kontakt .form{
  padding:28px 30px;
  border-radius:18px;
  box-shadow:0 22px 60px -42px rgba(11,47,56,.45);
}
#kontakt .form h3{font-size:1.45rem;margin-bottom:4px}
#kontakt .form .sub{margin-bottom:18px}
#kontakt .field{margin-bottom:12px}
#kontakt .field label{margin-bottom:5px}
#kontakt .field input,
#kontakt .field select,
#kontakt .field textarea{
  padding:11px 14px;
  border-radius:10px;
}
#kontakt .field textarea{min-height:86px}
#kontakt .two{gap:14px}
#kontakt .consent{margin:4px 0 16px;line-height:1.55}
#kontakt .form .btn-primary{padding:14px 22px}
@media(max-width:1020px){
  #kontakt .contact-grid{grid-template-columns:1fr;gap:30px}
  #kontakt .contact-info h2{max-width:14ch}
}
@media(max-width:620px){
  #kontakt.contact{padding:58px 0}
  #kontakt .contact-list{grid-template-columns:1fr}
  #kontakt .form{padding:24px 20px}
}

/* ============================================================
   TEAL MIST BRAND FINISH
   ============================================================ */
:root{
  --ink:#102B32;
  --ink-soft:#27464D;
  --muted:#667A80;
  --line:#DDEBEC;
  --bg:#F6FBFA;
  --surface:#FFFFFF;
  --surface-2:#EFFBFA;
  --accent:#9CEBE5;
  --accent-deep:#158F91;
  --accent-strong:#0F7477;
  --accent-soft:#E6FAF8;
  --sun:#AF9A6C;
  --sun-soft:#F4EFE3;
  --sun-deep:#A08858;
  --shadow:0 14px 34px -26px rgba(16,43,50,.34);
  --shadow-lg:0 32px 80px -42px rgba(16,43,50,.46);
  --r:8px;
  --r-lg:16px;
}

body{
  background:
    linear-gradient(180deg,rgba(230,250,248,.62) 0,rgba(255,255,255,0) 520px),
    #fff;
}

.topbar{
  background:#102B32;
  color:#DDF3F1;
}

.topbar a:hover,
footer.site ul a:hover,
.foot-bottom .credit a:hover{
  color:var(--accent);
}

header.site{
  box-shadow:0 12px 30px -28px rgba(16,43,50,.6);
}

.nav-links a{
  color:#16333A;
}

.nav-links a:hover{
  color:var(--accent-strong);
}

.script-label{
  color:var(--accent-strong);
  font-family:var(--sans);
  font-size:.82rem;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.btn{
  border-radius:8px;
  letter-spacing:0;
}

.btn-primary{
  background:linear-gradient(180deg,#C7B488 0%,var(--sun) 100%);
  color:#08272D;
  border-color:#A08858;
  box-shadow:0 16px 28px -20px rgba(160,136,88,.85);
}

.btn-primary:hover{
  background:linear-gradient(180deg,#B9A579 0%,var(--sun-deep) 100%);
  color:#08272D;
}

.btn-primary::after{
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.65),transparent);
}

.btn-light{
  color:#102B32;
  border-color:rgba(255,255,255,.7);
}

.btn-light:hover{
  background:#F6FFFE;
}

.btn-dark{
  background:linear-gradient(180deg,#C7B488 0%,var(--sun) 100%);
  color:#08272D;
  border-color:#A08858;
  box-shadow:0 16px 28px -20px rgba(160,136,88,.85);
}

.btn-dark:hover{
  background:linear-gradient(180deg,#B9A579 0%,var(--sun-deep) 100%);
  color:#08272D;
}

.hero.hero-photo{
  min-height:clamp(560px,calc(100vh - 150px),680px);
  background:#102B32;
}

.hero-bg{
  object-position:center 44%;
  filter:saturate(.96) contrast(1.02);
}

.hero-overlay{
  background:
    radial-gradient(circle at 18% 28%,rgba(156,235,229,.24),transparent 34%),
    linear-gradient(90deg,rgba(16,43,50,.88) 0%,rgba(16,43,50,.68) 47%,rgba(16,43,50,.2) 100%);
}

.hero-content{
  min-height:clamp(560px,calc(100vh - 150px),680px);
  padding-top:58px;
  padding-bottom:58px;
}

.hero-copy{
  max-width:800px;
}

.hero-copy .script-label{
  color:#BFF8F4;
}

.hero-copy h1{
  max-width:760px;
  font-size:clamp(2.85rem,5.2vw,5.2rem);
  line-height:1.03;
  text-wrap:balance;
}

.hero-copy p{
  max-width:650px;
  color:#EAF7F6;
  font-weight:650;
}

.hero-actions .btn-light{
  background:rgba(255,255,255,.12);
  color:#fff;
  backdrop-filter:blur(10px);
}

.hero-actions .btn-light:hover{
  background:rgba(255,255,255,.2);
}

.service-card,
.package-card,
.faq .faq-wrap,
.form,
#kontakt .contact-list a,
#kontakt .contact-list div{
  border-radius:var(--r-lg);
  border-color:var(--line);
}

.service-icon,
.node{
  background:var(--accent-soft);
  color:var(--accent-strong);
}

.service-section{
  background:#fff;
}

.service-card{
  box-shadow:0 18px 50px -42px rgba(16,43,50,.42);
}

.service-card:hover{
  border-color:#BFEAE7;
}

.service-body h3,
.package-card h3,
.process-step h3{
  color:#102B32;
}

.card-link,
.text-link{
  color:var(--accent-strong);
}

footer.site,
.price-note,
.side-panel,
.cta-band,
.service-related{
  background:#102B32;
}

footer.site{
  --footer-bg:#A9E7E3;
  --footer-text:#173D44;
  --footer-muted:#315B62;
  --footer-fade:clamp(72px,7vw,128px);
  position:relative;
  isolation:isolate;
  margin-top:var(--footer-fade);
  background:var(--footer-bg);
  color:var(--footer-muted);
}

footer.site::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:calc(var(--footer-fade) * -1);
  height:var(--footer-fade);
  pointer-events:none;
  background:
    linear-gradient(
      180deg,
      #FFFFFF 0%,
      #F4FFFE 20%,
      #DDF8F6 48%,
      #C4F0ED 74%,
      var(--footer-bg) 100%
    );
  transform:translateZ(0);
}

footer.site > .wrap{
  position:relative;
  z-index:1;
}

footer.site .foot-h,
footer.site .foot-contact b{
  color:var(--sun);
}

footer.site p,
footer.site ul a,
footer.site .foot-contact div,
footer.site .hours-list,
footer.site .foot-bottom,
footer.site .foot-bottom .credit a{
  color:var(--footer-muted);
}

footer.site ul a:hover,
footer.site .foot-bottom .legal a:hover,
footer.site .foot-bottom .credit a:hover{
  color:var(--footer-text);
}

footer.site .foot-grid{
  border-bottom-color:rgba(16,43,50,.14);
}

footer.site .hours-list dt{
  color:var(--footer-text);
}

footer.site .footer-brand{
  box-shadow:0 18px 38px -24px rgba(16,43,50,.28);
}

footer.site .social-link{
  color:var(--footer-text);
  border-color:rgba(16,43,50,.22);
  background:rgba(255,255,255,.38);
}

footer.site .social-link:hover{
  border-color:rgba(175,154,108,.58);
  color:#102B32;
  background:#fff;
}

.process-step{
  border:0;
  box-shadow:none;
}

.package-card > span{
  color:var(--accent-strong);
  font-family:var(--sans);
  font-size:.82rem;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.package-card.featured{
  background:linear-gradient(180deg,#E9FBF9 0%,#F8FEFD 100%);
  border-color:#BDEDEA;
}

.package-card li::before,
.scope-list li::before,
.price-card li::before{
  background:var(--sun);
}

.price-note{
  border:1px solid rgba(156,235,229,.22);
}

#kontakt.contact{
  background:
    linear-gradient(180deg,#fff 0%,#F5FCFB 100%);
}

#kontakt .contact-list a,
#kontakt .contact-list div{
  background:#F4FCFB;
}

.field input,
.field select,
.field textarea{
  background:#FBFEFE;
  border-color:#D7E8E9;
}

.field input:focus,
.field select:focus,
.field textarea:focus{
  border-color:var(--accent-deep);
  box-shadow:0 0 0 4px rgba(156,235,229,.34);
}

.consent a{
  color:var(--accent-strong);
}

.quick-phone{
  background:#25D366;
}

::selection{
  background:var(--accent);
  color:#08272D;
}

@media(max-width:760px){
  .hero.hero-photo,
  .hero-content{
    min-height:590px;
  }

  .hero-overlay{
    background:
      linear-gradient(180deg,rgba(16,43,50,.48) 0%,rgba(16,43,50,.9) 78%),
      radial-gradient(circle at 50% 18%,rgba(156,235,229,.24),transparent 38%);
  }

  .hero-copy h1{
    letter-spacing:-.03em;
  }
}

@media(max-width:520px){
  .topbar-inner{
    gap:18px;
  }

  .hero-actions{
    gap:12px;
  }

  .hero-actions .btn{
    width:100%;
  }

  .hero-copy h1{
    font-size:clamp(2.38rem,12vw,3.42rem);
  }

}

/* ============================================================
   APPLE-STYLE LANDINGPAGE LIFT
   ============================================================ */
html{
  scroll-padding-top:92px;
}

body{
  background:#FFFFFF;
}

header.site{
  position:sticky;
  top:0;
  z-index:90;
  background:#fff !important;
  background-color:#fff !important;
  border-bottom:1px solid #DDEBEC;
  box-shadow:0 4px 22px -20px rgba(11,47,56,.55);
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}

header.site::before,
header.site .nav,
header.site .wrap,
header.site .brand.logo-brand,
header.site .brand-logo{
  background:#fff !important;
  background-color:#fff !important;
}

.nav{
  height:88px;
}

.nav-links{
  gap:10px;
  padding:7px;
  border:1px solid rgba(221,235,236,.76);
  border-radius:999px;
  background:#fff;
}

.nav-links:has(a:nth-child(3):last-child){
  gap:14px;
}

.nav-links:has(a:nth-child(4):last-child){
  gap:12px;
}

.nav-links:has(a:nth-child(5):last-child){
  gap:8px;
}

.nav-links a{
  padding:9px 12px;
  border-radius:999px;
  font-size:.9rem;
  font-weight:780;
}

.nav-links a:hover{
  background:var(--accent-soft);
}

.header-contact{
  display:inline-flex;
  align-items:center;
  min-height:42px;
  padding:0 16px;
  border:1px solid rgba(221,235,236,.9);
  border-radius:999px;
  color:#16333A;
  font-size:.9rem;
  font-weight:850;
  background:rgba(255,255,255,.68);
}

.header-contact:hover{
  border-color:#B7E9E5;
  background:#F3FEFD;
}

.nav-cta .btn{
  min-height:42px;
  padding:11px 18px;
  border-radius:999px;
  font-size:.9rem;
}

.hero.hero-modern{
  position:relative;
  min-height:210vh;
  padding:0;
  overflow:clip;
  color:var(--ink);
  background:#fff;
}

.hero-glow{
  display:none;
}

.hero-modern-inner{
  position:sticky;
  top:76px;
  min-height:calc(100vh - 76px);
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(420px,.88fr);
  gap:64px;
  align-items:center;
  padding-top:42px;
  padding-bottom:42px;
}

.hero-modern .hero-copy{
  max-width:740px;
}

.hero-kicker{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:8px 13px;
  border:1px solid rgba(21,143,145,.18);
  border-radius:999px;
  color:var(--accent-strong);
  background:rgba(255,255,255,.66);
  box-shadow:0 18px 42px -34px rgba(16,43,50,.5);
  font-size:.82rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.hero-kicker::before{
  content:"";
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--accent);
  box-shadow:0 0 0 6px rgba(156,235,229,.28);
}

.hero-modern h1{
  max-width:780px;
  margin:0 0 24px;
  color:#081F25;
  font-size:clamp(3.4rem,7.4vw,7.35rem);
  line-height:.94;
  letter-spacing:-.055em;
  text-wrap:balance;
}

.slogan-line{
  display:block;
  margin-bottom:.16em;
  font-size:.52em;
  line-height:1.08;
  letter-spacing:-.035em;
  color:#17363D;
}

.word-rotator{
  position:relative;
  display:inline-grid;
  min-width:3.3em;
  color:var(--sun);
  vertical-align:baseline;
  overflow:visible;
}

.word-rotator span{
  grid-area:1/1;
  opacity:0;
  transform:translateY(.38em);
  transition:opacity .48s ease, transform .48s ease, filter .48s ease;
  filter:blur(8px);
  white-space:nowrap;
}

.word-rotator span.is-active{
  opacity:1;
  transform:translateY(0);
  filter:blur(0);
}

.word-rotator span.is-before{
  transform:translateY(-.42em);
}

.word-rotator span.is-after{
  transform:translateY(.42em);
}

.hero-modern .hero-copy p{
  max-width:610px;
  color:#4D666C;
  font-size:clamp(1.06rem,1.45vw,1.28rem);
  line-height:1.72;
  font-weight:650;
}

.hero-modern .hero-actions{
  margin-top:32px;
}

.hero-modern .btn-light{
  background:rgba(255,255,255,.72);
  color:#102B32;
  border:1px solid rgba(198,224,225,.9);
  backdrop-filter:saturate(150%) blur(14px);
}

.hero-modern .btn-light:hover{
  background:#fff;
  border-color:#B7E9E5;
}

.hero-showcase{
  position:relative;
  min-height:600px;
}

.google-review-badge{
  position:absolute;
  top:22px;
  left:0;
  z-index:4;
  display:inline-flex;
  align-items:center;
  gap:10px;
  width:max-content;
  max-width:calc(100% - 32px);
  min-height:54px;
  padding:10px 16px 10px 12px;
  border:1px solid rgba(221,235,236,.92);
  border-radius:999px;
  color:#102B32;
  background:rgba(255,255,255,.88);
  box-shadow:0 24px 64px -42px rgba(16,43,50,.48);
  backdrop-filter:saturate(160%) blur(16px);
  transform:none;
}

.google-review-badge:hover{
  border-color:#B7E9E5;
  background:#fff;
  transform:translateY(-2px);
}

.google-mark{
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 10px 24px -18px rgba(16,43,50,.6);
  flex:0 0 auto;
}

.review-stars{
  color:#F4B740;
  font-size:.95rem;
  letter-spacing:1px;
  line-height:1;
  white-space:nowrap;
}

.google-review-badge b{
  display:inline;
  font-weight:900;
}

.google-review-badge .review-copy{
  white-space:nowrap;
}

.service-landing-media .google-review-badge{
  top:auto;
  left:24px;
  bottom:24px;
  max-width:calc(100% - 48px);
}

.service-landing-media .google-review-badge span:last-child{
  white-space:nowrap;
}

.section-page-hero .google-review-badge,
.contact-hero .google-review-badge{
  position:relative;
  top:auto;
  left:auto;
  margin:26px auto 0;
}

.references-hero-copy .google-review-badge{
  position:relative;
  top:auto;
  left:auto;
  margin-top:26px;
}

.showcase-card{
  position:absolute;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.75);
  border-radius:24px;
  background:#fff;
  box-shadow:0 34px 90px -48px rgba(16,43,50,.48);
}

.showcase-card img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.showcase-main{
  inset:98px 0 12px 0;
}

.showcase-main img{
  object-position:center;
}

.scroll-words{
  position:relative;
  min-height:280vh;
  padding:0;
  background:#fff;
  overflow:visible;
}

.scroll-words-inner{
  position:sticky;
  top:76px;
  min-height:calc(100vh - 76px);
  display:grid;
  grid-template-columns:minmax(300px,.74fr) minmax(0,1.26fr);
  gap:56px;
  align-items:center;
  padding-top:0;
  padding-bottom:0;
}

.scroll-copy{
  max-width:500px;
  margin:0;
  text-align:left;
}

.scroll-copy h2{
  color:#081F25;
  font-size:clamp(2.15rem,4vw,4.2rem);
  line-height:1.02;
  letter-spacing:-.04em;
  text-wrap:balance;
}

.scroll-copy h2 .replace-word{
  color:var(--sun);
}

.scroll-copy p{
  margin-top:20px;
  color:#60777D;
  font-size:1.08rem;
  line-height:1.78;
  max-width:620px;
}

.word-rail{
  position:relative;
  min-height:calc(100vh - 76px);
  display:grid;
  place-items:center;
  overflow:visible;
  width:100%;
}

.scroll-word{
  position:absolute;
  top:50%;
  left:50%;
  color:#0D252B;
  width:min(100%,78vw);
  max-width:100%;
  font-size:clamp(3.65rem,9.4vw,8rem);
  font-weight:950;
  line-height:.94;
  letter-spacing:-.048em;
  opacity:0;
  transform:translate(-50%, calc(-50% + 34px)) scale(.96);
  filter:none;
  transition:opacity .52s ease, transform .52s ease, color .52s ease;
  white-space:normal;
  text-align:center;
  overflow:visible;
  text-wrap:balance;
}

.scroll-word.is-active{
  color:var(--sun);
  opacity:1;
  transform:translate(-50%, -50%) scale(1);
  filter:blur(0);
}

.scroll-word.is-before{
  transform:translate(-50%, calc(-50% - 42px)) scale(.96);
}

.scroll-word.is-after{
  transform:translate(-50%, calc(-50% + 42px)) scale(.96);
}

.blog-section{
  background:#fff;
}

.blog-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
}

.blog-card{
  min-height:260px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:30px;
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  background:#fff;
  box-shadow:0 18px 50px -42px rgba(16,43,50,.42);
}

.blog-card > span{
  width:max-content;
  padding:7px 11px;
  border:1px solid rgba(21,143,145,.18);
  border-radius:999px;
  color:var(--accent-strong);
  background:var(--accent-soft);
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.blog-card h3{
  margin-top:28px;
  font-size:1.55rem;
  line-height:1.12;
}

.blog-card p{
  margin:14px 0 24px;
  color:var(--muted);
  line-height:1.7;
}

.home-reference-section{
  background:#fff;
}

.home-reference-stack{
  display:grid;
  gap:24px;
}

.home-reference-section .compare-card{
  box-shadow:0 20px 60px -50px rgba(16,43,50,.42);
}

.home-reference-section .before-after,
.home-reference-section .before-after-wide{
  min-height:460px;
}

.home-reference-section .compare-copy{
  padding:38px 42px;
}

.home-reference-section .compare-copy h3{
  font-size:clamp(1.9rem,3.2vw,3.05rem);
}

.home-reference-actions{
  display:flex;
  justify-content:center;
  margin-top:34px;
}

@media(max-width:620px){
  .home-reference-section .before-after,
  .home-reference-section .before-after-wide{
    min-height:390px;
  }

  .home-reference-section .compare-copy{
    padding:26px;
  }
}

/* ============================================================
   SECTION PAGES
   ============================================================ */
.section-page{
  background:#fff;
}

.section-page main{
  background:#fff;
}

.section-page-hero{
  padding:96px 0 34px;
  background:#fff;
}

.section-page-hero-inner{
  max-width:920px;
  text-align:center;
}

.section-page-hero h1{
  max-width:900px;
  margin:0 auto 24px;
  color:#081F25;
  font-size:clamp(3rem,7vw,6.4rem);
  line-height:.94;
  letter-spacing:-.055em;
}

.section-page-hero p{
  max-width:680px;
  margin:0 auto;
  color:#60777D;
  font-size:clamp(1.08rem,1.6vw,1.28rem);
  line-height:1.75;
  font-weight:650;
}

.standalone-section{
  padding-top:42px;
  background:#fff;
}

.section-page .service-section,
.section-page .process,
.section-page .faq,
.section-page .blog-section{
  background:#fff;
}

.section-page .faq .faq-wrap{
  box-shadow:0 18px 50px -42px rgba(16,43,50,.42);
}

@media(max-width:720px){
  .section-page-hero{
    padding:68px 0 24px;
  }

  .section-page-hero h1{
    font-size:clamp(2.7rem,13vw,4.4rem);
  }

  .standalone-section{
    padding-top:28px;
  }
}

/* ============================================================
   REFERENCES PAGE
   ============================================================ */
.references-page{
  background:#fff;
}

.references-hero,
.compare-section,
.process-gallery-section,
.reference-video-section,
.work-insight-section{
  background:#fff;
}

.references-hero{
  padding:82px 0 62px;
}

.references-hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(300px,360px);
  gap:58px;
  align-items:center;
}

.references-hero-copy h1{
  max-width:840px;
  margin:0 0 24px;
  color:#081F25;
  font-size:clamp(3.4rem,7vw,7rem);
  line-height:.94;
  letter-spacing:-.055em;
}

.references-hero-copy p{
  max-width:650px;
  color:#60777D;
  font-size:clamp(1.08rem,1.6vw,1.28rem);
  line-height:1.75;
  font-weight:650;
}

.references-hero-media{
  position:relative;
  justify-self:end;
  width:min(100%,360px);
}

.references-hero-media img{
  width:100%;
  height:clamp(360px,46vh,500px);
  aspect-ratio:3/4;
  object-fit:cover;
  object-position:center center;
  border-radius:24px;
  border:1px solid var(--line);
  box-shadow:0 34px 90px -52px rgba(16,43,50,.45);
}

.reference-rating{
  position:absolute;
  left:-34px;
  bottom:28px;
  display:grid;
  gap:2px;
  min-width:190px;
  padding:16px 18px;
  border:1px solid rgba(221,235,236,.92);
  border-radius:18px;
  background:#fff;
  box-shadow:0 28px 70px -48px rgba(16,43,50,.55);
}

.reference-rating span{
  color:#F4B740;
  letter-spacing:1px;
}

.reference-rating b{
  color:#102B32;
  font-size:1.05rem;
}

.compare-section{
  padding-top:72px;
}

.compare-stack{
  display:grid;
  gap:30px;
}

.compare-card{
  display:grid;
  grid-template-columns:minmax(0,1.48fr) minmax(320px,.92fr);
  align-items:stretch;
  border:1px solid var(--line);
  border-radius:24px;
  background:#fff;
  overflow:hidden;
  box-shadow:0 24px 70px -54px rgba(16,43,50,.48);
}

.compare-card-wide{
  grid-column:1 / -1;
}

.before-after{
  --pos:50%;
  position:relative;
  min-height:520px;
  background:#fff;
  overflow:hidden;
  isolation:isolate;
}

.before-after-wide{
  min-height:520px;
}

.before-after > img,
.ba-before img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}

.ba-before{
  position:absolute;
  inset:0 auto 0 0;
  width:var(--pos);
  overflow:hidden;
  z-index:2;
}

.ba-handle{
  position:absolute;
  top:0;
  bottom:0;
  left:var(--pos);
  z-index:4;
  width:2px;
  transform:translateX(-50%);
  background:#fff;
  box-shadow:0 0 0 1px rgba(16,43,50,.12);
  pointer-events:none;
}

.ba-handle::before{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:54px;
  height:54px;
  border-radius:50%;
  transform:translate(-50%,-50%);
  background:#fff;
  border:1px solid rgba(221,235,236,.95);
  box-shadow:0 18px 44px -28px rgba(16,43,50,.7);
}

.ba-handle::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:24px;
  height:16px;
  transform:translate(-50%,-50%);
  background:#137D82;
  clip-path:polygon(0 50%,32% 8%,32% 36%,68% 36%,68% 8%,100% 50%,68% 92%,68% 64%,32% 64%,32% 92%);
}

.before-after input{
  position:absolute;
  inset:0;
  z-index:5;
  width:100%;
  height:100%;
  opacity:0;
  cursor:ew-resize;
}

.ba-label{
  position:absolute;
  top:18px;
  z-index:6;
  padding:9px 13px;
  border-radius:999px;
  background:#fff;
  color:#102B32;
  border:1px solid rgba(221,235,236,.92);
  font-size:.82rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  pointer-events:none;
}

.ba-label-before{
  left:18px;
}

.ba-label-after{
  right:18px;
}

.compare-copy{
  display:flex;
  min-height:100%;
  flex-direction:column;
  justify-content:center;
  padding:46px 48px;
  border-left:1px solid var(--line);
}

.compare-copy span,
.work-card figcaption{
  color:#137D82;
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.compare-copy h3{
  margin:18px 0 18px;
  color:#102B32;
  font-size:clamp(2rem,3.7vw,3.5rem);
  line-height:1.04;
}

.compare-copy p{
  color:#60777D;
  font-size:clamp(1.05rem,1.35vw,1.22rem);
  line-height:1.72;
  font-weight:650;
}

.references-split{
  display:grid;
  grid-template-columns:minmax(320px,.72fr) minmax(0,1.28fr);
  gap:54px;
  align-items:start;
}

.process-gallery{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}

.work-card{
  position:relative;
  overflow:hidden;
  min-height:300px;
  border:1px solid var(--line);
  border-radius:22px;
  background:#fff;
  box-shadow:0 24px 70px -56px rgba(16,43,50,.48);
}

.work-card.tall{
  grid-row:span 2;
  min-height:620px;
}

.work-card img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.work-card figcaption{
  position:absolute;
  left:14px;
  right:14px;
  bottom:14px;
  width:max-content;
  max-width:calc(100% - 28px);
  padding:10px 13px;
  border-radius:999px;
  background:#fff;
  color:#102B32;
  border:1px solid rgba(221,235,236,.92);
}

.reference-video-grid{
  display:grid;
  grid-template-columns:minmax(320px,.72fr) minmax(0,1.28fr);
  gap:54px;
  align-items:center;
}

.reference-video-copy h2{
  color:#081F25;
  font-size:clamp(2.3rem,4.8vw,4.25rem);
  line-height:1.02;
  letter-spacing:-.045em;
}

.reference-video-copy p{
  max-width:520px;
  margin:18px 0 28px;
  color:#60777D;
  font-size:1.08rem;
  line-height:1.75;
  font-weight:650;
}

.reference-video-frame{
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:24px;
  background:#102B32;
  box-shadow:0 30px 84px -56px rgba(16,43,50,.58);
}

.reference-video-frame video{
  display:block;
  width:100%;
  max-height:720px;
  background:#102B32;
}

.work-insight-section{
  padding-top:88px;
}

.work-insight-grid{
  display:grid;
  grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);
  gap:28px;
  align-items:stretch;
}

.work-insight-card{
  position:relative;
  min-height:560px;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:24px;
  background:#fff;
  box-shadow:0 24px 70px -54px rgba(16,43,50,.48);
}

.work-insight-card img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.work-insight-card figcaption{
  position:absolute;
  left:18px;
  bottom:18px;
  max-width:calc(100% - 36px);
  padding:11px 15px;
  border:1px solid rgba(221,235,236,.92);
  border-radius:999px;
  background:#fff;
  color:#102B32;
  font-size:.82rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.work-insight-grid .reference-video-frame{
  min-height:560px;
}

.work-insight-grid .reference-video-frame video{
  height:100%;
  object-fit:cover;
}

@media(max-width:980px){
  .references-hero-grid,
  .references-split,
  .reference-video-grid,
  .compare-card,
  .compare-card-wide,
  .work-insight-grid{
    grid-template-columns:1fr;
  }

  .references-hero-media{
    justify-self:start;
    width:min(100%,360px);
  }

  .before-after,
  .before-after-wide{
    min-height:560px;
  }

  .compare-copy{
    border-left:0;
    border-top:1px solid var(--line);
    padding:34px;
  }

  .work-insight-card,
  .work-insight-grid .reference-video-frame{
    min-height:500px;
  }
}

@media(max-width:620px){
  .references-hero{
    padding:70px 0 50px;
  }

  .references-hero-copy h1{
    font-size:clamp(3rem,14vw,4.7rem);
  }

  .reference-rating{
    left:16px;
    bottom:16px;
  }

  .references-hero-media,
  .references-hero-media img{
    width:100%;
  }

  .references-hero-media img{
    height:420px;
  }

  .process-gallery{
    grid-template-columns:1fr;
  }

  .work-card,
  .work-card.tall{
    min-height:420px;
  }

  .before-after,
  .before-after-wide{
    min-height:440px;
  }

  .compare-stack{
    gap:22px;
  }

  .compare-copy{
    padding:28px;
  }

  .compare-copy h3{
    font-size:clamp(1.8rem,9vw,2.65rem);
  }

  .work-insight-card,
  .work-insight-grid .reference-video-frame{
    min-height:420px;
  }
}

.contact-page{
  background:#fff;
}

.contact-page .nav-links{
  left:auto;
}

.contact-hero{
  padding:92px 0 22px;
  background:
    radial-gradient(circle at 50% 4%,rgba(156,235,229,.24),transparent 28%),
    #fff;
}

.contact-hero-inner{
  max-width:850px;
  margin:0 auto;
  text-align:center;
}

.contact-hero h1{
  margin:0 0 16px;
  color:#081F25;
  font-size:clamp(2.55rem,5.2vw,4.6rem);
  line-height:.96;
  letter-spacing:-.055em;
  text-wrap:balance;
}

.contact-hero p{
  max-width:620px;
  margin:0 auto;
  color:#60777D;
  font-size:clamp(1.08rem,1.6vw,1.28rem);
  line-height:1.75;
  font-weight:650;
}

.contact-page-section{
  padding:22px 0 92px;
  background:#fff;
}

.contact-page-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;
  align-items:start;
}

.contact-panel{
  min-height:auto;
  border:1px solid var(--line);
  border-radius:24px;
  background:#fff;
  box-shadow:0 28px 76px -56px rgba(16,43,50,.48);
}

.contact-panel.form{
  padding:30px;
}

.contact-page .form .sub{
  margin-bottom:16px;
}

.contact-page .field{
  margin-bottom:13px;
}

.contact-page .field input,
.contact-page .field select,
.contact-page .field textarea{
  padding:12px 14px;
}

.contact-page .field textarea{
  min-height:96px;
}

.contact-page .consent{
  margin:4px 0 16px;
}

.contact-panel.form h2,
.contact-card h2{
  font-size:clamp(1.75rem,2.7vw,2.55rem);
  line-height:1.05;
  letter-spacing:-.035em;
}

.contact-card{
  display:flex;
  flex-direction:column;
  gap:16px;
  padding:30px;
  background:#fff;
}

.contact-card p{
  margin-top:10px;
  color:var(--muted);
  line-height:1.65;
}

.contact-methods{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}

.contact-methods a,
.contact-methods div{
  display:block;
  min-height:88px;
  padding:16px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
}

.contact-methods b{
  display:block;
  color:#102B32;
  font-size:.88rem;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.contact-methods .hours-block{
  min-height:0;
}

.contact-methods .hours-list{
  color:#536B71;
  font-size:.94rem;
  font-weight:750;
}

.contact-methods .hours-list div{
  display:grid;
  grid-template-columns:62px minmax(0,1fr);
  gap:10px;
  align-items:baseline;
  min-height:0;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
}

.contact-methods .hours-list dt{
  color:#102B32;
}

.contact-methods span{
  display:block;
  margin-top:8px;
  color:#536B71;
  font-weight:750;
  line-height:1.4;
}

.contact-methods .hours-list dd span{
  margin-top:0;
  color:inherit;
  font:inherit;
  line-height:inherit;
}

@media(max-width:900px){
  .contact-page-grid{
    grid-template-columns:1fr;
  }
}

@media(max-width:620px){
  .contact-hero{
    padding:86px 0 22px;
  }

  .contact-page-section{
    padding:18px 0 72px;
  }

  .contact-panel.form,
  .contact-card{
    padding:24px 20px;
    border-radius:18px;
  }

  .contact-methods{
    grid-template-columns:1fr;
  }
}

@media(max-width:1080px){
  .hero-modern-inner{
    grid-template-columns:1fr;
    gap:42px;
  }

  .hero-showcase{
    min-height:420px;
  }

  .showcase-main{
    inset:78px 0 0 0;
  }

  .scroll-words-inner{
    grid-template-columns:1fr;
    align-content:center;
    gap:28px;
  }

  .scroll-copy{
    max-width:720px;
    margin:0 auto;
    text-align:center;
  }

  .word-rail{
    min-height:34vh;
  }

  .blog-grid{
    grid-template-columns:1fr;
  }
}

@media(max-width:940px){
  .nav-links{
    inset:76px 16px auto 16px;
    z-index:95;
    border-radius:18px;
    padding:10px;
    background:#fff;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(-12px) scale(.96);
    transform-origin:top right;
    box-shadow:0 24px 70px -42px rgba(11,47,56,.5);
    transition:
      opacity .2s ease,
      transform .28s cubic-bezier(.2,.85,.22,1),
      visibility 0s linear .28s;
  }

  .nav-links.open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translateY(0) scale(1);
    transition-delay:0s;
  }

  .nav-links a{
    border-bottom:0;
    opacity:0;
    transform:translateY(-6px);
    transition:
      color .15s ease,
      background .15s ease,
      opacity .2s ease,
      transform .24s ease;
  }

  .nav-links.open a{
    opacity:1;
    transform:translateY(0);
  }

  .nav-links.open a:nth-child(1){transition-delay:.03s}
  .nav-links.open a:nth-child(2){transition-delay:.06s}
  .nav-links.open a:nth-child(3){transition-delay:.09s}
  .nav-links.open a:nth-child(4){transition-delay:.12s}
  .nav-links.open a:nth-child(5){transition-delay:.15s}

  .burger svg line{
    transform-box:fill-box;
    transform-origin:center;
    transition:transform .22s ease, opacity .18s ease;
  }

  .burger[aria-expanded="true"] svg line:nth-child(1){
    transform:translateY(6px) rotate(45deg);
  }

  .burger[aria-expanded="true"] svg line:nth-child(2){
    opacity:0;
  }

  .burger[aria-expanded="true"] svg line:nth-child(3){
    transform:translateY(-6px) rotate(-45deg);
  }

  .header-contact{
    display:none;
  }
}

@media(max-width:720px){
  html{
    scroll-padding-top:78px;
  }

  .hero.hero-modern{
    min-height:255vh;
    padding:0;
  }

  .hero-modern-inner{
    position:sticky;
    top:72px;
    min-height:calc(100svh - 72px);
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:0;
    padding-top:26px;
    padding-bottom:30px;
  }

  .hero-modern h1{
    font-size:clamp(3rem,15vw,4.75rem);
    line-height:.96;
    margin-bottom:16px;
  }

  .word-rotator{
    display:inline-grid;
    min-height:.95em;
    min-width:0;
  }

  .word-rotator span{
    transition:opacity .32s ease, transform .32s ease, filter .32s ease;
  }

  .hero-modern .hero-copy p{
    margin-top:0;
    font-size:clamp(1.08rem,5.5vw,1.42rem);
    line-height:1.68;
  }

  .hero-modern .hero-actions{
    margin-top:28px;
  }

  .hero-showcase{
    min-height:auto;
    margin-top:22px;
  }

  .hero-showcase .google-review-badge{
    position:relative;
    top:auto;
    left:auto;
    width:min(640px, calc(100vw - 32px));
    max-width:none;
    min-height:76px;
    justify-content:center;
    box-sizing:border-box;
    margin:0 auto;
    padding:12px 14px;
    gap:10px;
  }

  .google-review-badge{
    min-height:48px;
    padding:8px 12px 8px 10px;
    gap:8px;
    font-size:.78rem;
  }

  .google-mark{
    width:28px;
    height:28px;
  }

  .review-stars{
    font-size:.78rem;
    letter-spacing:.5px;
  }

  .hero-showcase .google-review-badge .review-copy{
    min-width:0;
    text-align:center;
    line-height:1.2;
    white-space:nowrap;
  }

  .showcase-main{
    display:none;
    inset:auto;
    border-radius:18px;
  }

  .scroll-words{
    min-height:240vh;
  }

  .scroll-words-inner{
    top:72px;
    min-height:calc(100vh - 72px);
  }

  .word-rail{
    min-height:38vh;
    width:100%;
    justify-items:center;
  }
}

@media(max-width:520px){
  .brand-logo{
    width:150px;
    max-height:58px;
  }

  .nav-cta .btn{
    display:inline-flex;
    min-height:40px;
    padding:10px 15px;
  }

  .hero-kicker{
    font-size:.72rem;
  }

  .scroll-copy{
    text-align:center;
  }

  .scroll-word{
    width:100%;
    max-width:100%;
    font-size:clamp(3.05rem,15vw,4.5rem);
    letter-spacing:-.045em;
  }
}

@media(max-width:620px){
  .service-landing-media .google-review-badge{
    left:14px;
    right:14px;
    bottom:14px;
    width:auto;
    max-width:none;
    border-radius:18px;
  }

  .service-landing-media .google-review-badge span:last-child{
    white-space:normal;
  }

  .section-page-hero .google-review-badge,
  .contact-hero .google-review-badge,
  .references-hero-copy .google-review-badge{
    margin-top:20px;
  }
}

@media (prefers-reduced-motion:reduce){
  .word-rotator span,
  .scroll-word{
    transition:none;
  }

  .scroll-word{
    position:static;
    display:block;
    opacity:.22;
    filter:none;
    transform:none;
    margin:.08em 0;
  }

  .word-rail{
    display:block;
    min-height:auto;
  }

  .process-step,
  .node,
  .faq-a p.is-typing::after{
    transition:none;
    transform:none;
    filter:none;
  }

  .process-progress{
    display:none;
  }

  .process-step{
    opacity:1;
  }

  .faq-a p.is-typing::after{
    animation:none;
  }
}
