[hidden]{display:none!important}.header{position:sticky;top:0;transition:box-shadow .3s;background:#fff;--reading-progress:0%}.header.scrolled{box-shadow:0 4px 24px #14293212}.header::after{content:'';position:absolute;bottom:0;left:0;width:var(--reading-progress);height:2px;background:var(--copper)}.client{display:inline-block;line-height:1.7}.footer-links{display:flex;flex-wrap:wrap;gap:22px;font-size:12px;padding-bottom:28px}.footer-links a:hover{color:var(--copper)}.page-hero{padding:80px 0 86px;background:var(--navy);color:white;position:relative;overflow:hidden}.page-hero:after{content:'';position:absolute;right:8%;top:-80px;bottom:-80px;width:150px;border-left:1px solid #ffffff10;border-right:1px solid #ffffff10;transform:rotate(23deg);pointer-events:none}.page-hero h1{font:400 clamp(40px,4.5vw,66px)/1.13 var(--serif);letter-spacing:-1px;max-width:900px;margin:0}.page-hero .container>p:last-child{max-width:680px;color:#cbd8dd;font-size:16px;line-height:1.8;margin:25px 0 0}.content-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:80px}.content-grid p{color:var(--muted);font-size:16px}.content-grid h2{margin-bottom:25px}.deliverables{align-self:start;padding:34px;background:var(--soft);border-top:2px solid var(--copper)}.deliverables h3{font-family:var(--serif);font-size:26px}.deliverables ul{padding-left:20px;color:var(--muted);margin:22px 0 28px}.deliverables li{margin-bottom:12px;font-size:16px}.notice{font-size:14px;color:#53666e;background:#f1f4f5;border-left:3px solid #aa764b;padding:20px 24px;line-height:1.8;margin:25px 0}.compact-top{padding-top:0}.steps.three{grid-template-columns:repeat(3,1fr)}.scope-banner{display:flex;align-items:center;justify-content:space-between;gap:36px;padding:30px;background:var(--soft);border-left:3px solid var(--copper);margin-bottom:45px}.scope-banner p{max-width:770px;margin:10px 0 0;color:var(--muted);font-size:16px}.scope-banner .text-link{white-space:nowrap;font-size:14px}.service-list>a{display:flex;align-items:center;gap:38px;padding:40px 0;border-bottom:1px solid var(--border)}.service-list .list-index{font:italic 30px var(--serif);color:#a57850;align-self:start}.service-list h2{font-size:34px}.service-list p{margin:13px 0 0;font-size:16px;color:var(--muted)}.list-link{margin-left:auto;white-space:nowrap;font-size:14px;border-bottom:1px solid var(--copper)}.editorial-image img{width:100%;height:360px;object-fit:cover}.editorial-image small{color:var(--muted);display:block;font-size:12px;margin-top:10px}.soft{background:var(--soft)}.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;margin-top:40px}.info-grid article{padding:26px 0;border-top:1px solid #b7c2c7}.info-grid h3{font-size:21px}.info-grid p{color:var(--muted);font-size:16px}.fine-print{font-size:13px;color:var(--muted);line-height:1.8}.filters{display:flex;flex-wrap:wrap;gap:12px;margin:35px 0 14px}.filters button{border:1px solid var(--border);background:white;color:var(--navy);padding:11px 20px;font-size:14px;transition:background .2s,color .2s}.filters button[aria-pressed=true]{background:var(--navy);color:white;border-color:var(--navy)}.gallery-count{font-size:13px;color:var(--muted);margin-bottom:24px}.gallery-open{width:100%;display:block;border:0;padding:0;text-align:left}.gallery-open span{font-size:10px}.dialog-image{width:100%;height:auto;margin-top:22px}.method-list{list-style:none;margin:0 0 50px;padding:0}.method-list li{display:flex;gap:48px;padding:34px 0;border-bottom:1px solid var(--border)}.method-list li>span{font:italic 36px var(--serif);color:#a57850}.method-list h2{font-size:32px}.method-list p{color:var(--muted);font-size:16px;max-width:820px}.narrow{max-width:860px}.faq-list details{border-bottom:1px solid var(--border)}.faq-list summary{display:flex;align-items:center;justify-content:space-between;gap:20px;cursor:pointer;list-style:none;font-size:18px;line-height:1.5;padding:24px 0}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:focus-visible{outline:3px solid #b47b46;outline-offset:4px}.faq-list summary span{font-size:25px;color:#9b6b42;transition:transform .25s}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list details>div{padding:0 35px 25px 0}.faq-list p{color:var(--muted);font-size:16px;margin:0}.form-layout{display:grid;grid-template-columns:1.6fr 1fr;gap:70px}.form-progress{display:flex;justify-content:space-between;gap:15px;margin-bottom:38px;border-bottom:1px solid var(--border);padding-bottom:22px}.form-progress span{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--muted)}.form-progress b{font:italic 23px var(--serif);color:#9a6b43}.form-progress [aria-current=step]{color:var(--navy);font-weight:600}.form-progress .completed b{color:var(--navy)}fieldset{padding:0;margin:0;border:0}legend{font:400 28px/1.35 var(--serif);margin-bottom:30px;color:var(--navy)}.fields{display:grid;grid-template-columns:1fr 1fr;gap:23px}.field{display:flex;flex-direction:column;gap:9px;font-size:14px;line-height:1.5;color:var(--navy)}.field.full{grid-column:1/-1}input,select,textarea{width:100%;font:16px/1.5 var(--sans);border:1px solid #b7c3c8;padding:12px 13px;background:white;color:var(--navy);border-radius:0}input:focus,select:focus,textarea:focus{outline:2px solid #ac7d54;outline-offset:2px}textarea{resize:vertical;min-height:140px}[aria-invalid=true]{border-color:#a83838;background:#fff7f7}.consent{display:flex;align-items:flex-start;gap:12px;margin:27px 0;font-size:14px;color:var(--muted)}.consent input{width:18px;height:18px;flex-shrink:0;margin-top:4px;accent-color:var(--navy)}.consent a{text-decoration:underline;color:var(--navy)}.form-controls{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}.secondary{border:1px solid #b4c1c6;color:var(--navy);background:white}.secondary:hover{background:var(--soft)}.form-status{font-size:14px;color:#a13535}.contact-aside{padding:34px;background:var(--soft);align-self:start}.contact-aside h2{font-size:32px}.contact-aside p{color:var(--muted);font-size:15px}.contact-aside .fine-print{font-size:13px}.contact-detail{border-top:1px solid var(--border);padding:20px 0}.contact-detail small{display:block;color:var(--muted);font-size:12px}.contact-detail a{font-size:16px;overflow-wrap:anywhere}.summary-actions{display:flex;flex-wrap:wrap;gap:12px;margin:25px 0}.prose h2{font-size:28px;margin:35px 0 15px}.prose h2:first-child{margin-top:0}.prose p{font-size:16px;color:var(--muted)}.portal-state{padding:38px;border:1px solid var(--border);border-top:3px solid var(--copper)}.portal-state p{color:var(--muted);font-size:16px;margin:25px 0}.portal-state .eyebrow{display:block}
/* Reveal effects are progressive enhancements. Reading never depends on motion. */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.22,1,.36,1) var(--reveal-delay,0ms),transform .7s cubic-bezier(.22,1,.36,1) var(--reveal-delay,0ms)}.reveal.revealed{opacity:1;transform:none}.hero-content>.eyebrow,.hero-content>h1,.hero-description,.hero-buttons,.hero-bottom{animation:hero-enter .8s cubic-bezier(.22,1,.36,1) both}.hero-content>h1{animation-delay:80ms}.hero-description{animation-delay:160ms}.hero-buttons{animation-delay:230ms}.hero-bottom{animation-delay:300ms}.service:hover svg{transform:translateY(-3px);transition:transform .3s}.service-list>a:hover .list-link{color:#98653b}.page-hero .container{animation:hero-enter .65s cubic-bezier(.22,1,.36,1) both}dialog[open]{animation:dialog-enter .22s ease-out}dialog[open]::backdrop{animation:backdrop-enter .22s ease-out}fieldset:not([hidden]){animation:hero-enter .3s ease-out}.faq-list details[open]>div{animation:hero-enter .25s ease-out}@keyframes hero-enter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes dialog-enter{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}@keyframes backdrop-enter{from{opacity:0}to{opacity:1}}
@media(max-width:1000px){.content-grid{gap:40px}.form-layout{gap:35px}.contact-aside{padding:25px}.contact-aside h2{font-size:28px}.form-progress{gap:10px}.form-progress span{font-size:12px}.scope-banner{align-items:flex-start;flex-direction:column;gap:15px}.header nav{max-height:calc(100dvh - 84px);overflow-y:auto}.info-grid{gap:24px}}
@media(max-width:700px){.header{position:sticky}.page-hero{padding:55px 0}.page-hero h1{font-size:39px}.page-hero .container>p:last-child{font-size:15px}.content-grid,.form-layout{grid-template-columns:1fr;gap:35px}.info-grid{grid-template-columns:1fr;gap:12px}.info-grid article{padding:22px 0}.service-list>a{gap:18px;flex-wrap:wrap;padding:30px 0}.service-list h2{font-size:27px}.service-list>a>div{width:calc(100% - 50px)}.list-link{margin-left:49px;font-size:14px}.steps.three{grid-template-columns:1fr}.scope-banner{padding:24px}.method-list li{gap:23px}.method-list h2{font-size:27px}.method-list li>span{font-size:29px}.form-progress{flex-wrap:wrap}.fields{grid-template-columns:1fr;gap:21px}.form-progress span{font-size:12px}.form-progress b{font-size:21px}.footer-links{gap:14px 20px;font-size:12px}.faq-list summary{font-size:16px}.portal-state{padding:27px}.editorial-image img{height:300px}.header .client{display:none}}
.intro-copy p,.service p,.steps p,.distance-grid>div>p:not(.eyebrow),.distance-details p,.contact p:not(.eyebrow),.hero-description{font-size:16px}.header nav,.button,.client{font-size:14px}.hero{height:auto;min-height:640px}.hero-content{padding-bottom:105px}.header .language{min-width:44px;min-height:44px;display:inline-flex;align-items:center;gap:4px}.service h3{min-height:26px}.gallery-open:focus-visible{outline-offset:4px}
@media(max-width:1200px) and (min-width:1001px){.header nav{gap:16px;font-size:13px}.header{gap:18px}}
@media(max-width:700px){.hero{height:auto;min-height:620px}.hero-content{padding-top:65px;padding-bottom:110px}.hero-buttons{gap:10px}.button{font-size:14px}.hero-buttons .button{padding:14px 13px}.hero-description{font-size:16px;line-height:1.75}.scroll-note{bottom:56px}.intro-copy p,.service p,.steps p,.distance-details p{font-size:16px}.header .language{font-size:11px;min-width:44px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.reveal{opacity:1!important;transform:none!important}}
