/* One continuous visual system: comparison → choice → agreement. */
:root{--surface-blue:#edf3fc;--section-space:72px}
.site-nav{width:350px;gap:0}
.site-nav a{text-align:center}
.site-nav a:nth-child(2){width:144px}
.hero{grid-template-columns:minmax(0,.91fr) minmax(0,1.19fr);gap:30px;align-items:center;background:var(--surface-blue);border-radius:30px;padding:24px 24px 18px;margin-top:14px;margin-bottom:38px}
.hero-copy{padding:16px 10px 32px 22px;min-width:0}
.hero-eyebrow{font-size:17px;color:var(--blue);margin:0 0 26px}
.hero h1{margin:0 0 24px;letter-spacing:-.04em}
.hero h1 span:first-child,.hero h1 span:last-child{font-size:clamp(44px,4.6vw,80px);line-height:1.09;letter-spacing:-.04em;white-space:normal}
.hero h1 span:last-child{color:var(--blue)}
.hero-lead{font-size:clamp(18px,1.4vw,23px);line-height:1.5;letter-spacing:-.015em;margin:0 0 30px;max-width:420px;text-wrap:balance}
.hero-lead span{display:inline}
.hero-lead span+span:before{content:' '}
.hero-action{max-width:410px}
.hero-button{width:100%;max-width:none;min-height:64px;height:64px;border-radius:10px;padding-inline:23px;font-size:18px}
.hero-note{font-size:14px;line-height:1.6;margin:17px 0 0;color:#475c7b;max-width:100%}
.hero-copy>*{animation:none}
.hero-copy{animation:hero-compose .65s cubic-bezier(.22,.65,.3,1) both}
.hero .comparison{height:auto;min-height:0;max-height:none;aspect-ratio:1.07;border-radius:22px}
.hero-media{min-width:0}
.hero-media figcaption{display:block;text-align:right;font-size:12px;color:#526786;margin:12px 0 0;min-height:18px}
#comparisonHint{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);z-index:4;pointer-events:none;background:white;color:var(--ink);border-radius:30px;padding:10px 16px;font-size:13px;white-space:nowrap;box-shadow:0 4px 14px #061e3314}
.comparison-label{background:#09224185;backdrop-filter:none;font-size:17px;border-radius:8px;padding:9px 14px;top:20px}
.is-before{left:20px}.is-after{right:20px}
.comparison-handle{width:64px;height:64px;border:5px solid #ffffff6b;background-clip:padding-box;box-shadow:0 3px 16px #04204224}
@keyframes hero-compose{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
@media(min-width:1101px) and (max-height:820px){
 .hero{padding:20px 20px 14px;gap:24px;margin-top:4px}
 .hero .comparison{height:calc(100svh - 194px);min-height:430px;max-height:580px;aspect-ratio:auto}
 .hero-copy{padding-bottom:22px}.hero-eyebrow{margin-bottom:20px}.hero-lead{margin-bottom:25px}
}
@media(max-width:1100px){.hero{gap:20px}.hero-copy{padding:14px 2px 24px 12px}.hero h1 span:first-child,.hero h1 span:last-child{font-size:clamp(38px,4.2vw,48px)}.hero-button{font-size:16px;padding-inline:18px}.hero-eyebrow{font-size:16px}.hero-note{font-size:13px}}
@media(max-width:760px){
 .hero{display:grid;grid-template-columns:1fr;padding:30px 22px 18px;gap:28px;border-radius:24px;margin-top:0;margin-bottom:22px}
 .hero-copy{padding:0}.hero-eyebrow{margin-bottom:18px}.hero h1 span:first-child,.hero h1 span:last-child{font-size:clamp(36px,7.8vw,56px)}.hero h1{margin-bottom:20px}
 .hero-lead{font-size:18px;margin-bottom:24px;max-width:390px}.hero-action{max-width:none}.hero-button{font-size:16px;min-width:0;min-height:58px;height:58px}.hero-note{font-size:13px;margin-top:13px}
 .hero .comparison{aspect-ratio:1.12;height:auto;min-height:0;max-height:none;border-radius:17px}.hero-media figcaption{font-size:12px;text-align:left;margin-top:10px}
 .comparison-label{top:14px;font-size:14px;padding:7px 10px}.is-before{left:14px}.is-after{right:14px}.comparison-handle{width:52px;height:52px}
 #comparisonHint{bottom:14px;font-size:12px;padding:8px 12px}
}
@media(max-width:390px){.hero{padding:26px 18px 16px}.hero h1 span:first-child,.hero h1 span:last-child{font-size:34px}.hero-button{font-size:15px;padding-inline:15px}.hero-lead{font-size:17px}}

/* Prices stay comparable; specialist services continue the same catalogue. */
.size-choices{max-width:none}
.rate-card{padding:32px 30px 26px}
.rate-heading>b{font-weight:500}
.rate-value>b{font-size:64px}
.rate-value>.rate-request{font-size:38px}
.rate-pick{border-radius:9px}
.other-services{padding-top:28px}
.service-story{border-radius:20px}
.story-image img{transition:transform .4s ease-out}
.service-story:hover img{transform:scale(1.025)}
.image-note,.draft-note{font-size:13px}

/* The actual sequence: request, scope agreement, then a clean space. */
.agreement{padding-top:86px;padding-bottom:58px}
.process-scenes{display:grid;grid-template-columns:1fr 1fr 1fr;gap:28px;list-style:none;margin:0;padding:0;counter-reset:steps}
.process-scenes>li{min-width:0}
.process-visual{height:265px;position:relative;border-radius:20px;background:var(--mist);overflow:hidden}
.process-visual>img{height:100%;width:100%;object-fit:cover}
.process-scenes>li:first-child .process-visual>img{object-position:50% 60%}
.process-count{position:absolute;left:18px;top:18px;display:grid;place-items:center;width:36px;height:36px;background:#fff;border-radius:50%;font-size:15px;color:var(--blue)}
.process-agreement{background:var(--surface-mint);display:flex;align-items:center;padding:54px 28px 20px}
.process-agreement>ul{list-style:none;margin:0;padding:0;display:grid;gap:18px;width:100%}
.process-agreement li{display:flex;align-items:center;gap:16px;color:var(--blue);font-size:21px;line-height:1.4;letter-spacing:-.025em}
.process-agreement svg{width:24px;height:24px;color:#0a8b65;stroke-width:1.8}
.process-scenes h3{font-size:27px;font-weight:500;line-height:1.22;letter-spacing:-.03em;margin:23px 0 12px;text-wrap:balance}
.process-scenes p{font-size:17px;color:var(--muted);line-height:1.6;margin:0;max-width:38ch;text-wrap:pretty}
.agreement .image-note{margin-top:22px}

/* Answers remain visible. Secondary questions expand in-place. */
.faq{padding-block:44px 88px}
.faq .section-head{margin-bottom:38px}
.faq-featured{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.faq-card{border-radius:20px;padding:32px 30px 24px;background:var(--surface-blue);display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.faq-tone-0{background:var(--surface-mint)}
.faq-tone-2{background:var(--mist)}
.faq-card h3{font-size:26px;font-weight:500;letter-spacing:-.03em;line-height:1.22;margin:0 0 18px;text-wrap:balance}
.faq-card p{font-size:17px;line-height:1.65;color:#455771;margin:0 0 26px;text-wrap:pretty}
.faq-card .text-link{font-size:16px;margin-top:auto;gap:12px;justify-content:space-between;width:100%;text-align:left;font-weight:500;padding-block:10px}
.faq-card .text-link svg{width:24px;flex:none}
.faq-more{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:20px;align-items:start}
.faq-detail{background:#fff;border:1px solid #dce5f0;border-radius:16px;padding:0 22px;min-width:0}
.faq-detail summary{display:flex;align-items:center;justify-content:space-between;gap:20px;list-style:none;cursor:pointer;min-height:98px;font-size:17px;line-height:1.45;padding:20px 0;font-weight:500}
.faq-detail summary svg{width:22px;flex:none;color:var(--blue);transition:transform .2s}
.faq-detail[open] summary svg{transform:rotate(45deg)}
.faq-detail p{margin:0 0 24px;font-size:16px;line-height:1.65;color:var(--muted)}
.faq-detail summary:hover{color:var(--blue)}

/* One closing surface: action, contacts, then the quieter navigation. */
.contact-footer{background:var(--blue);color:white;border-radius:36px 36px 0 0;padding:0;overflow:visible}
.closing-cta{text-align:center;padding:80px 0 62px}
.closing-copy h2{max-width:1040px;font-size:clamp(42px,5vw,80px);font-weight:400;line-height:1.08;letter-spacing:-.04em;text-wrap:balance;margin:0 auto 27px;color:white}
.closing-copy>p{font-size:19px;line-height:1.6;color:#cbdcf3;margin:0 auto 32px;max-width:690px;text-wrap:balance}
.contact-footer .contact-actions{display:flex;align-items:center;justify-content:center;gap:12px}
.contact-footer .contact-actions .button{background:#64e1bc;color:#052e42;min-width:262px;min-height:66px;border-radius:10px;font-size:18px;justify-content:space-between;padding:19px 26px}
.contact-footer .contact-actions .button:hover{background:#98efd7}
.contact-footer .channel-button{background:transparent;border:1px solid #6485b5;color:white;min-height:66px;border-radius:10px;font-size:18px;padding:19px 24px;gap:12px}
.contact-footer .channel-button:hover{background:#164997;transform:none}
.contact-footer .brand-icon{color:white}
.contact-footer .channel-button>svg:last-child{width:22px}
.closing-phone{display:flex;justify-content:center;align-items:baseline;gap:14px;margin:27px 0 0;line-height:1.5}
.closing-phone span{font-size:15px;color:#bdcfea}
.closing-phone a{font-size:20px;white-space:nowrap;text-decoration:underline;text-underline-offset:6px;text-decoration-color:#6485b5}
.closing-phone a:hover{text-decoration-color:#fff}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:30px 0;border-top:1px solid #5276ac}
.contact-footer .footer-logo{flex:none}
.contact-footer .footer-logo img{width:120px;height:auto;filter:brightness(0) invert(1)}
.footer-bottom nav{display:flex;align-items:center;gap:34px;margin-left:auto}
.footer-bottom nav a{display:flex;align-items:center;gap:8px;white-space:nowrap;font-size:15px;min-height:44px}
.footer-bottom nav svg{width:18px;height:18px;transform:rotate(-35deg)}
.footer-bottom nav a:hover{text-decoration:underline;text-underline-offset:5px}
.contact-footer .back-top{background:transparent;border:1px solid #6485b5;color:#fff;width:44px;height:44px}
.contact-footer .back-top:hover{background:#164997}
.footer-meta{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-bottom:26px}
.footer-meta p{font-size:13px;line-height:1.5;color:#bdcfea;margin:0}
@media(min-width:1600px){.process-visual{height:300px}.process-agreement{padding-left:42px}.process-agreement li{font-size:24px}}
@media(max-width:1200px){.rate-card{padding:28px 24px}.process-scenes{gap:22px}.process-visual{height:230px}.process-scenes h3{font-size:24px}.process-agreement{padding-inline:24px}.process-agreement li{font-size:18px}.faq-card{padding:28px 24px 22px}.faq-card h3{font-size:24px}.faq-card p{font-size:16px}.faq-detail{padding-inline:18px}.faq-detail summary{font-size:16px}.footer-bottom nav{gap:24px}}
@media(max-width:1000px){.rate-card{padding:26px 20px}.rate-value>b{font-size:54px}.rate-value>.rate-request{font-size:31px}.process-visual{height:210px}.process-agreement{padding-inline:18px}.process-agreement li{font-size:16px;gap:10px}.process-scenes p{font-size:16px}.process-scenes h3{font-size:22px}.faq-featured,.faq-more{gap:14px}.faq-card{padding:26px 20px 20px}.faq-card h3{font-size:22px}.faq-card .text-link{font-size:15px}.faq-detail summary{min-height:108px}.closing-copy h2{font-size:58px}.footer-bottom nav{gap:18px}}
@media(max-width:760px){
 .rate-card{padding:28px}.rate-value>b{font-size:48px}.rate-value>.rate-request{font-size:30px}
 .agreement{padding-top:60px;padding-bottom:34px}.process-scenes{grid-template-columns:1fr;gap:28px}.process-scenes>li{display:grid;grid-template-columns:42% minmax(0,1fr);column-gap:24px;align-content:center}.process-visual{grid-row:1/3;height:200px}.process-scenes h3{align-self:end;font-size:24px;margin:0 0 12px}.process-scenes p{font-size:16px}.process-count{top:13px;left:13px;width:30px;height:30px}.process-agreement{padding:48px 16px 18px}.process-agreement>ul{gap:12px}.process-agreement li{font-size:15px}
 .faq{padding-block:34px 60px}.faq-featured{grid-template-columns:1fr}.faq-card{padding:28px}.faq-card h3{font-size:25px;min-height:0;margin-bottom:14px}.faq-card p{font-size:17px;margin-bottom:20px;max-width:56ch}.faq-card .text-link{font-size:16px}.faq-more{grid-template-columns:1fr;gap:12px}.faq-detail summary{min-height:76px;font-size:17px}.faq-detail{padding-inline:24px}.faq .section-head{text-align:center}
 .contact-footer{border-radius:28px 28px 0 0}.closing-cta{padding:56px 0 40px}.closing-copy h2{font-size:clamp(38px,7.3vw,52px);max-width:650px;margin-bottom:22px}.closing-copy>p{font-size:17px;max-width:490px;margin-bottom:27px}.contact-footer .contact-actions{display:grid;grid-template-columns:1fr 1fr;max-width:520px;margin:auto}.contact-footer .contact-actions .button{grid-column:1/-1;min-width:0;min-height:60px}.contact-footer .channel-button{min-height:58px;justify-content:center;font-size:17px;padding:16px}.closing-phone{gap:10px}.closing-phone a{font-size:18px}.footer-bottom{flex-wrap:wrap;gap:18px;padding-block:25px}.footer-bottom nav{order:3;width:100%;justify-content:space-between;margin:0;gap:16px}.footer-bottom .back-top{margin-left:auto}.footer-meta{font-size:12px;align-items:flex-start;padding-bottom:24px}.footer-meta p{max-width:48%;font-size:12px}.footer-meta p:last-child{text-align:right}
}
@media(max-width:520px){
 .rate-card{padding:25px 22px}.rate-value>b{font-size:49px}.rate-value>.rate-request{font-size:30px}.process-scenes>li{display:block}.process-visual{height:230px;margin-bottom:20px}.process-scenes h3{font-size:25px}.process-scenes p{font-size:17px;max-width:100%}.process-agreement{padding:54px 32px 20px}.process-agreement li{font-size:21px}.process-agreement>ul{gap:18px}.process-count{width:34px;height:34px;left:16px;top:16px}.faq-card{padding:26px}.faq-card h3{font-size:24px}.closing-copy h2{font-size:39px}.closing-copy>p{font-size:17px}.contact-footer .channel-button{font-size:16px}.contact-footer .channel-button>svg:last-child{display:none}.closing-phone{flex-wrap:wrap;gap:4px 12px}.footer-bottom nav{display:grid;grid-template-columns:1fr 1fr;gap:2px 16px}.footer-bottom nav a:nth-child(even){justify-content:flex-end}.footer-meta{display:block;padding-bottom:24px}.footer-meta p{max-width:100%;font-size:12px}.footer-meta p:last-child{text-align:left;margin-top:6px}
}
@media(prefers-reduced-motion:reduce){.hero-copy{animation:none}.story-image img{transition:none}.service-story:hover img{transform:none}}

/* A photographic reveal inside stable frames; text and controls never clip. */
.hero .hero-copy,.hero .hero-copy>*{animation:none}
.hero .hero-copy h1{animation:surface-arrive .65s cubic-bezier(.16,1,.3,1) both}
.service-story.will-reveal.is-visible .story-image img{animation:photo-uncover .75s cubic-bezier(.16,1,.3,1) both}
.process-scenes>.will-reveal.is-visible .process-visual img{animation:photo-settle .65s cubic-bezier(.16,1,.3,1) both}
.process-scenes>.will-reveal:nth-child(2) .process-visual img{animation-delay:60ms}
.process-scenes>.will-reveal:nth-child(3) .process-visual img{animation-delay:120ms}
.service-story:focus-within .story-image img,.process-scenes>li:focus-within img{animation:none}
@keyframes photo-uncover{from{clip-path:inset(0 16% 0 0);opacity:.5}to{clip-path:inset(0);opacity:1}}
@keyframes photo-settle{from{transform:scale(1.035);opacity:.45}to{transform:scale(1);opacity:1}}
@media(prefers-reduced-motion:reduce){.hero .hero-copy h1,.will-reveal.is-visible,.will-reveal.is-visible img{animation:none!important}}
