/* Quiet-luxury polish layer. 8px spacing scale, 1.25 type scale. */
:root{--s1:8px;--s2:16px;--s3:24px;--s4:32px;--s6:48px;--s8:64px;--s12:96px;--s16:128px;--ease:cubic-bezier(.2,.7,.2,1)}
body{font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased;color:#3a4452}
p{max-width:62ch}
h1,h2,h3{letter-spacing:-.01em;font-weight:700}
h2{font-size:clamp(1.75rem,2.6vw,2.4rem);margin-bottom:var(--s3)}
h3{font-size:1.05rem;letter-spacing:.01em;margin-bottom:var(--s1)}
.eyebrow{font-size:.72rem;letter-spacing:.24em;margin-bottom:var(--s2)}
section{padding:var(--s16) 0}
.intro{margin-bottom:var(--s8)}
.rule{width:40px;height:1px;margin-bottom:var(--s3)}
header{background:rgba(255,255,255,.92);backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);border-bottom-color:transparent;transition:border-color .3s}
header.scrolled{border-bottom-color:var(--line)}
.nav ul a:not(.btn){position:relative;font-weight:600;color:var(--navy)}
.nav ul a:not(.btn)::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1px;background:var(--navy);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.nav ul a:not(.btn):hover::after{transform:scaleX(1)}
.btn{border-radius:0;letter-spacing:.08em;font-size:.82rem;text-transform:uppercase;padding:16px 28px;transition:background .25s,color .25s,transform .25s var(--ease)}
.btn:hover{transform:translateY(-1px)}
.btn.ghost:hover{background:#fff;color:var(--navy)!important}
.hero{background:var(--navy);background-image:radial-gradient(60% 80% at 85% 10%,rgba(153,161,173,.22),transparent 60%),radial-gradient(50% 70% at 0% 100%,rgba(153,161,173,.10),transparent 60%);padding:var(--s16) 0}
.hero h1{font-size:clamp(2.2rem,5vw,3.8rem);letter-spacing:-.02em;line-height:1.08;margin-bottom:var(--s3)}
.hero .ctas{margin-top:var(--s6)}
section.alt{background:#F7F8F9}
/* cards: no boxes, just a hairline and air */
.grid{gap:var(--s6) var(--s4)}
.card{background:none;border:0;border-top:1px solid var(--line);padding:var(--s3) 0 0;transition:border-color .4s}
.card:hover{border-top-color:var(--navy)}
.chips{gap:var(--s1) var(--s4)}
.chips li{border:0;padding:0;background:none;font-weight:600;position:relative}
.chips li+li::before{content:"";position:absolute;left:calc(var(--s2) * -1);top:50%;width:4px;height:4px;border-radius:50%;background:var(--silver)}
.steps{gap:var(--s6)}
.steps li{border:0;padding:0}
.steps li::before{font-size:.85rem;letter-spacing:.2em;margin-bottom:var(--s2)}
form{border:0;padding:0;background:none;gap:var(--s3)}
input,select,textarea{border:0;border-bottom:1px solid #c6ccd4;border-radius:0;padding:12px 0;background:transparent;transition:border-color .25s}
input:focus,select:focus,textarea:focus{outline:0;border-bottom-color:var(--navy);box-shadow:0 1px 0 var(--navy)}
.field-err input,.field-err select{border-bottom-color:#a23a3a}
.err-msg{color:#a23a3a;font-size:.8rem;margin:6px 0 0}
.form-status{padding:var(--s2) 0;margin:0}
.form-status.ok{color:var(--navy);font-weight:600}
.form-status.bad{color:#a23a3a}
details{padding:var(--s3) 0}
summary{list-style:none;display:flex;justify-content:space-between;align-items:center}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-weight:400;font-size:1.4rem;color:var(--silver);transition:transform .3s var(--ease)}
details[open] summary::after{transform:rotate(45deg)}
footer{padding:var(--s12) 0 var(--s4)}
/* section reveal */
.rv{opacity:0;transform:translateY(16px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.rv.in{opacity:1;transform:none}
/* mobile quick bar */
.mbar{display:none}
@media(max-width:820px){
 section{padding:var(--s12) 0}.hero{padding:var(--s12) 0}
 .mbar{display:flex;gap:8px;position:fixed;left:0;right:0;bottom:0;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.95);backdrop-filter:blur(8px);border-top:1px solid var(--line);z-index:20;transform:translateY(110%);transition:transform .4s var(--ease)}
 .mbar.show{transform:none}
 .mbar .btn{flex:1;text-align:center}.mbar .btn.ghost{border-color:var(--navy);color:var(--navy)!important}
 footer{padding-bottom:96px}
}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}*{scroll-behavior:auto!important}}
[hidden]{display:none!important}
/* photography */
.hero.has-photo{position:relative;overflow:hidden;isolation:isolate}
.hero-bg,.hero-bg img{position:absolute;inset:0;width:100%;height:100%}
.hero-bg{z-index:-1}.hero-bg img{object-fit:cover;object-position:center 40%}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(14,27,45,.94) 0%,rgba(20,38,62,.82) 45%,rgba(20,38,62,.45) 100%)}
.photo-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s3);margin:0 0 var(--s12)}
.photo-strip figure{margin:0;overflow:hidden}
.photo-strip img{aspect-ratio:4/3;width:100%;height:auto;object-fit:cover;transition:transform 1.2s var(--ease)}
.photo-strip figure:hover img{transform:scale(1.03)}
.photo-strip figcaption{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--silver);font-weight:600;margin-top:var(--s2)}
@media(max-width:820px){.photo-strip{grid-template-columns:1fr;gap:var(--s4)}}
/* service icons: brand spray-bottle mark */
.svc-h{display:flex;align-items:center;gap:12px}
.svc-ic{flex:none;width:auto;height:30px;transition:transform .4s var(--ease)}
.card:hover .svc-ic{transform:rotate(-8deg)}
