/* Preview-only hero: centered typography and the original brand symbol. */
.cleanPreview .cleanHero{position:relative;isolation:isolate;overflow:hidden;background:#faf9f5;padding:0}
.cleanHero .cleanHeroGrid{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;width:100%;max-width:none;min-height:clamp(620px,calc(100svh - 84px),760px);padding:64px 24px 120px}
.cleanHero .cleanHeroCopy{position:relative;z-index:2;text-align:center;width:100%;max-width:980px;margin:0}
.cleanHero .cleanLabel{font-size:18px;line-height:1.6;letter-spacing:.12em;color:#1b7061}
.cleanHero .cleanHeroCopy h1{max-width:none;font-size:clamp(52px,6.6vw,96px);font-weight:900;line-height:1.22;letter-spacing:-.055em;margin:27px 0 36px;text-wrap:initial}
.cleanHeroCopy h1 span,.cleanHeroCopy h1 em{display:block;white-space:nowrap}
.cleanHeroCopy h1 em{font-style:normal;color:#1b7061}
.cleanHero .cleanActions{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;margin:0}
.cleanHero .cleanActions .button{width:auto;min-height:64px;font-size:20px;padding:18px 28px;border-radius:8px;gap:15px;white-space:nowrap}
.cleanHero .buttonPrimary{background:#df6456}
.cleanHero .buttonPrimary:hover{background:#c84e40}
.cleanHero .buttonOutline{background:#faf9f5}
.cleanHero .heroLineContact{display:flex;width:224px;min-height:64px;margin:16px auto 0;padding:18px 24px;justify-content:center;border-radius:8px;border:1px solid #078446;background:#078446;color:#fff;font-size:20px;white-space:nowrap}
.cleanHero .heroLineContact:hover{background:#066d3b;border-color:#066d3b}
.cleanPreview .button,.cleanPreview .navLinks .navCta,.cleanPreview .floatLine{font-weight:600;line-height:1.5}
.cleanPreview .navLinks .navCta{font-size:18px}
.heroServiceStrip{position:absolute;z-index:2;bottom:36px;left:50%;transform:translateX(-50%);width:min(600px,calc(100% - 48px));display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid #ccd8cf;padding:24px 10px 0}
.heroServiceStrip span{font-size:21px;font-weight:800;letter-spacing:.08em;white-space:nowrap;color:#365b4f}
.heroServiceStrip i{font-size:20px;color:#df6456;font-style:normal}
.heroShapes{position:absolute;inset:0;z-index:-1;pointer-events:none}
.heroShapes i{position:absolute;display:block}
.heroBrandMark{position:absolute;width:620px;max-width:none;height:auto;left:-160px;bottom:-20px;opacity:.16;rotate:-8deg;user-select:none}
.heroDiamond{right:11%;top:25px;width:72px;height:72px;border:1px solid #e5bd63;rotate:22deg}
.heroPlus{left:15%;top:65px;width:68px;height:68px;rotate:12deg}
.heroPlus::before,.heroPlus::after{content:"";position:absolute;background:#e5ede6;border-radius:2px}
.heroPlus::before{left:24px;width:20px;height:68px}.heroPlus::after{top:24px;height:20px;width:68px}
.heroDisc{right:-45px;bottom:110px;width:170px;height:170px;background:#ed8071;opacity:.35;border-radius:50%}
@media(max-width:1150px) and (min-width:761px){
 .cleanPreview .navLinks a:not(.navCta){font-size:16px}
 .cleanHero .cleanHeroCopy h1{font-size:6.6vw}
 .heroBrandMark{width:480px;left:-150px}
}
@media(max-width:760px){
 .cleanHero .cleanHeroGrid{min-height:620px;padding:64px 20px 132px}
 .cleanPreview .cleanLabel{font-size:16px}
 .cleanHero .cleanLabel{font-size:16px;letter-spacing:.03em}
 .cleanHero .cleanHeroCopy h1{font-size:clamp(27px,8.1vw,53px);line-height:1.3;margin:23px 0 28px;letter-spacing:-.06em}
 .cleanHero .cleanActions{display:grid;grid-template-columns:1fr;gap:12px;width:100%;max-width:340px;margin:auto}
 .cleanHero .cleanActions .button{width:100%;min-width:0;padding:15px 16px;font-size:18px;min-height:58px;gap:12px}
 .cleanHero .heroLineContact{width:100%;max-width:340px;min-height:58px;margin-top:12px;padding:15px 16px;font-size:18px}
 .heroServiceStrip{bottom:28px;width:calc(100% - 40px);max-width:480px;gap:8px;padding:20px 0 0}
 .heroServiceStrip span{font-size:16px;letter-spacing:.025em}.heroServiceStrip i{font-size:16px}
 .heroBrandMark{width:360px;left:-128px;bottom:45px;opacity:.12}
 .heroDiamond{width:35px;height:35px;right:-15px;top:80px}
 .heroPlus{top:18px;left:6%;scale:.45}
 .heroDisc{width:90px;height:90px;right:-45px;bottom:115px}
}
/* One readable size for every section eyebrow in this preview. */
.cleanPreview .cleanLabel,.cleanPreview .kicker,.cleanPreview .contact.section .kicker{font-size:22px;font-weight:700;line-height:1.6;letter-spacing:.04em;text-wrap:balance}
@media(max-width:760px){
 .cleanPreview .cleanLabel,.cleanPreview .kicker,.cleanPreview .contact.section .kicker{font-size:20px;letter-spacing:.025em}
}
/* Only hero -> services -> cases use the desktop cover transition. */
@media(min-width:1001px) and (prefers-reduced-motion:no-preference){
 .cleanPreview .cleanChapters{position:relative;isolation:isolate;background:#faf9f5}
 .cleanPreview .cleanChapters>section{position:relative;isolation:isolate;z-index:1}
 .cleanPreview .cleanChapters.chaptersReady>section:not(:last-child){position:sticky;top:var(--chapter-pin-top,82px)}
 .cleanPreview .cleanChapters>section:not(:first-child){border-radius:48px 48px 0 0;box-shadow:0 -16px 40px -24px #17332d30}
 .cleanPreview .cleanChapters>.cleanServices{background:#fff}
}
@media(prefers-reduced-motion:no-preference){
 .heroBrandMark{animation:heroBrandDrift 20s ease-in-out infinite alternate}
 .heroDiamond{animation:heroDiamondDrift 20s ease-in-out infinite alternate}
 .heroPlus{animation:heroPlusDrift 16s ease-in-out infinite alternate}
 .heroDisc{animation:heroDiscDrift 18s ease-in-out infinite alternate}
 @keyframes heroBrandDrift{to{translate:0 -12px}}
 @keyframes heroDiamondDrift{to{rotate:62deg;translate:0 14px}}
 @keyframes heroPlusDrift{to{rotate:-12deg}}
 @keyframes heroDiscDrift{to{translate:-12px -15px}}
}
