/* ATC refinement layer: contained layout, tighter rhythm */
:root{--wrap:72rem}
html{-webkit-text-size-adjust:100%}
body{font-size:1rem;line-height:1.6;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
.wrap{max-width:var(--wrap)!important;padding-inline:1.25rem!important}
@media (min-width:48rem){.wrap{padding-inline:2rem!important}}
.band{padding-block:3.5rem!important}
.band-tight{padding-block:3rem 2.5rem!important}
@media (min-width:48rem){.band{padding-block:5rem!important}.band-tight{padding-block:4rem 3rem!important}}
main .pb-20{padding-bottom:3.5rem!important}
@media (min-width:48rem){main .md\:pb-28{padding-bottom:4.5rem!important}}
main .gap-16{gap:2.5rem!important}
@media (min-width:64rem){main .gap-16{gap:3.5rem!important}}
main .mt-10{margin-top:2rem}
main .mt-8{margin-top:1.5rem}
main .mt-12{margin-top:2.5rem}
/* type scale */
h1.font-serif{font-size:clamp(2.1rem,1.4rem + 2.6vw,3.25rem)!important;line-height:1.08!important;letter-spacing:-.01em;max-width:40rem}
main h2.font-serif.text-3xl,main h2.font-serif.text-4xl{font-size:clamp(1.6rem,1.3rem + 1vw,2.1rem)!important;line-height:1.15}
main p.text-lg{font-size:1.0625rem!important;line-height:1.65}
main p.max-w-2xl,main p.max-w-xl{max-width:38rem}
/* header */
header.sticky>.wrap{padding-block:.75rem!important}
header.sticky img{height:3.25rem!important}
@media (min-width:40rem){header.sticky img{height:3.75rem!important}}
header.sticky{background:color-mix(in srgb,var(--color-paper) 94%,transparent);backdrop-filter:saturate(1.2) blur(8px)}
/* hero: contained, not full bleed */
main>section.grid:first-child{max-width:var(--wrap);margin-inline:auto;padding-inline:1.25rem;gap:0}
@media (min-width:48rem){main>section.grid:first-child{padding-inline:2rem}}
.hero-copy{padding:3rem 0 2.5rem!important}
.hero-photo{height:18rem!important;min-height:0!important;overflow:hidden}
@media (min-width:64rem){
 main>section.grid:first-child{grid-template-columns:1.05fr 1fr;align-items:center;gap:3.5rem;padding-block:3.5rem}
 .hero-copy{padding:0!important}
 .hero-photo{height:30rem!important}
}
.hero-photo picture,.hero-photo img{display:block}
/* full-width bands: keep borders, contain content */
main>section:not(.wrap):not(:first-child)>*:not(.wrap){max-width:var(--wrap);margin-inline:auto}
/* photos */
.frame-photo{border-radius:2px;background:#e9e6df}
figure picture,a picture{display:block}
.field-strip{padding-block:3.5rem;border-top:1px solid var(--color-concrete)}
@media (min-width:48rem){.field-strip{padding-block:4.5rem}}
.field-grid{display:grid;gap:1.5rem;grid-template-columns:1fr}
@media (min-width:40rem){.field-grid{grid-template-columns:repeat(3,1fr)}}
.field-gallery{padding-block:1rem 3.5rem}
.gallery-grid{display:grid;gap:.75rem;grid-template-columns:repeat(2,1fr)}
@media (min-width:48rem){.gallery-grid{grid-template-columns:repeat(3,1fr);gap:1rem}}
.gallery-grid a{display:block;overflow:hidden}
.gallery-grid img{transition:transform .35s ease}
.gallery-grid a:hover img{transform:scale(1.03)}
section.grid.gap-10{gap:2rem!important}
/* footer */
footer .wrap.py-20{padding-block:3.5rem!important}
footer img.h-24{height:4.5rem!important}
/* lightbox */
.lb{position:fixed;inset:0;z-index:60;background:rgba(15,22,38,.92);display:none;align-items:center;justify-content:center;padding:1.5rem;flex-direction:column}
.lb[data-open=true]{display:flex}
.lb img{max-width:min(100%,1200px);max-height:80vh;object-fit:contain}
.lb p{color:#f4f1ea;font-size:.875rem;margin-top:1rem;max-width:40rem;text-align:center}
.lb button{position:absolute;top:1rem;right:1rem;color:#f4f1ea;font-size:.875rem;min-height:44px;padding:0 1rem;border:1px solid rgba(244,241,234,.4)}

/* ===== Content components (v2) ===== */
main .rule{height:1px;width:3rem;background:var(--color-brass);margin-top:1rem}
.page-head{padding-block:2.5rem 1rem}
@media (min-width:48rem){.page-head{padding-block:3.5rem 1.5rem}}
.page-head h1,.hero h1{margin-top:1.5rem}
.lede{margin-top:1.25rem;font-size:1.0625rem;line-height:1.65;max-width:40rem}
.lede-s{max-width:42rem;margin-top:1rem}
.btns{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;align-items:center;margin-top:1.75rem}
.btn,.btn-light{display:inline-flex;align-items:center;min-height:2.75rem;padding:0 1.25rem;font-size:.875rem;font-weight:500;background:var(--color-navy);color:var(--color-paper)}
.btn-light{background:var(--color-paper);color:var(--color-navy)}
.btn-ghost,.btn-ghost-light{display:inline-flex;align-items:center;min-height:2.75rem;font-size:.875rem;font-weight:500;color:var(--color-navy);text-decoration:underline;text-decoration-color:var(--color-concrete);text-underline-offset:4px}
.btn-ghost-light{color:var(--color-paper);text-decoration-color:rgba(246,243,238,.4)}
.btn:hover,.btn-light:hover{opacity:.9}
.tlink{color:var(--color-navy);font-weight:500;text-decoration:underline;text-decoration-color:var(--color-concrete);text-underline-offset:4px}
.tlink:hover,.btn-ghost:hover{text-decoration-color:var(--color-brass)}
.crumbs ol{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.8125rem;margin-bottom:2rem}
.crumbs li+li::before{content:"/";color:var(--color-concrete);margin-right:.5rem}
.crumbs a{color:var(--color-navy);text-decoration:underline;text-decoration-color:var(--color-concrete);text-underline-offset:3px}
.sec{padding-block:3rem;border-top:1px solid var(--color-concrete)}
.page-head+.sec{border-top:0;padding-top:1.5rem}
@media (min-width:48rem){.sec{padding-block:4rem}}
.sec>h2{margin-top:.5rem;font-size:clamp(1.5rem,1.25rem + 1vw,2rem);line-height:1.15}
.sec>p.label+h2{margin-top:.75rem}
.sec-quiet{padding-block:2.5rem}
.sec-quiet>h2{font-size:1.375rem!important}
.sec-back{padding-block:1.5rem 3rem}
.more{margin-top:1.75rem;font-size:.9375rem}
.list{margin-top:1.25rem;border-top:1px solid var(--color-concrete);max-width:42rem}
.list li{border-bottom:1px solid var(--color-concrete);padding:.75rem 0}
.two{display:grid;gap:2rem;margin-top:1.5rem}
@media (min-width:48rem){.two{grid-template-columns:1fr 1fr;gap:3rem}}
.two h3{font-size:1.25rem}
.steps{counter-reset:s;display:grid;gap:1.25rem;margin-top:1.5rem}
@media (min-width:48rem){.steps{grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:1.5rem}}
.steps li{counter-increment:s;border-top:2px solid var(--color-navy);padding-top:1rem}
.steps li::before{content:counter(s,decimal-leading-zero);font-size:.75rem;letter-spacing:.12em;color:var(--color-brass);font-weight:600}
.steps h3{font-family:var(--font-serif);font-size:1.25rem;color:var(--color-navy);margin-top:.25rem}
.steps p{font-size:.9375rem;margin-top:.375rem}
.photo-grid{display:grid;gap:1.25rem;margin-top:1.75rem;grid-template-columns:1fr}
@media (min-width:40rem){.photo-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:64rem){.photo-grid{grid-template-columns:repeat(3,1fr)}}
.cap{margin-top:.625rem;font-size:.875rem;color:var(--color-charcoal);opacity:.85}
.cards{display:grid;gap:1px;background:var(--color-concrete);border:1px solid var(--color-concrete);margin-top:1.75rem}
@media (min-width:40rem){.cards{grid-template-columns:repeat(2,1fr)}}
@media (min-width:64rem){.cards{grid-template-columns:repeat(3,1fr)}}
.card{background:var(--color-paper);padding:1.5rem;display:block;transition:background .2s}
.card:hover{background:#fff}
.card h3{font-size:1.3rem}
.card p{font-size:.9375rem;margin-top:.5rem}
.svc{display:grid;gap:2rem;margin-top:1.75rem}
@media (min-width:48rem){.svc{grid-template-columns:repeat(2,1fr);gap:2.25rem 3rem}}
.svc h3{font-size:1.35rem}
.svc p{margin-top:.5rem;font-size:.9375rem}
.svc a{display:inline-block;margin-top:.5rem;font-size:.875rem}
.facts{display:grid;gap:0;margin-top:1.5rem;border-top:1px solid var(--color-concrete);max-width:48rem}
.facts>div{display:grid;grid-template-columns:9rem 1fr;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--color-concrete)}
.facts dt{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--color-navy);font-weight:500;padding-top:.2rem}
.stats{border-top:1px solid var(--color-concrete);border-bottom:1px solid var(--color-concrete)}
.stats .facts{max-width:none;border:0;margin:0;grid-template-columns:1fr}
@media (min-width:48rem){.stats .facts{grid-template-columns:repeat(3,1fr)}.stats .facts>div{border-bottom:0;border-left:1px solid var(--color-concrete);padding:1.5rem}.stats .facts>div:first-child{border-left:0;padding-left:0}}
.stats .facts>div{grid-template-columns:1fr;gap:.25rem}
.stats dd{font-family:var(--font-serif);font-size:1.375rem;color:var(--color-navy)}
.plist{margin-top:1.5rem;border-top:1px solid var(--color-concrete)}
.prow{display:grid;gap:.25rem 2rem;padding:1.125rem 0;border-bottom:1px solid var(--color-concrete)}
@media (min-width:48rem){.prow{grid-template-columns:9rem 1fr}}
.pdate{font-size:.8125rem;color:var(--color-navy);font-variant-numeric:tabular-nums;padding-top:.3rem}
.prow h3{font-size:1.25rem}
.pclient{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--color-navy);margin:.125rem 0 .375rem}
.prow p:last-child{font-size:.9375rem}
.albums{display:grid;gap:2rem 1.5rem;margin-top:1.75rem}
@media (min-width:40rem){.albums{grid-template-columns:repeat(2,1fr)}}
@media (min-width:64rem){.albums{grid-template-columns:repeat(3,1fr)}}
.album h3{margin-top:.875rem;font-size:1.25rem}
.album:hover h3{text-decoration:underline}
.album p{font-size:.875rem;margin-top:.25rem}
.faq{margin-top:1.5rem;border-top:1px solid var(--color-concrete);max-width:48rem}
.faq details{border-bottom:1px solid var(--color-concrete);padding:1rem 0}
.faq summary{font-family:var(--font-serif);font-size:1.2rem;color:var(--color-navy);cursor:pointer}
.faq p{margin-top:.5rem;max-width:42rem}
.names{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.25rem}
.names li{border:1px solid var(--color-concrete);padding:.375rem .75rem;font-size:.875rem;color:var(--color-navy)}
.cities li{background:#fff}
.gh{font-size:1.25rem;margin:2rem 0 1rem}
.cta-band{background:var(--color-navy);color:var(--color-paper);margin-top:1rem}
.cta-inner{display:grid;gap:1.5rem;padding-block:3rem;align-items:center}
@media (min-width:64rem){.cta-inner{grid-template-columns:1.4fr 1fr;padding-block:3.5rem}.cta-inner .btns{justify-content:flex-end;margin-top:0}}
.cta-inner h2{font-size:clamp(1.5rem,1.25rem + 1vw,2rem);line-height:1.15}
.cta-inner p{margin-top:.5rem;color:var(--color-concrete);max-width:36rem}
.hero{display:grid;gap:2rem;padding-block:2.5rem 3rem}
@media (min-width:64rem){.hero{grid-template-columns:1.05fr 1fr;gap:3.5rem;align-items:center;padding-block:3.5rem}}
.hero-img img{width:100%;height:18rem;object-fit:cover;display:block}
@media (min-width:64rem){.hero-img img{height:28rem}}
.contact-grid{display:grid;gap:3rem}
@media (min-width:64rem){.contact-grid{grid-template-columns:5fr 7fr;gap:4rem}}
.contact-grid h2{font-size:1.5rem}
.cform{margin-top:1.5rem;max-width:40rem}
.note{font-size:.8125rem;margin-top:1rem;opacity:.8}
.foot-area{padding-block:1.25rem;border-top:1px solid rgba(213,216,220,.3);font-size:.875rem;color:var(--color-concrete)}
.foot-area .label{margin-right:.5rem}
.foot-area a{color:var(--color-paper);text-decoration:underline;text-underline-offset:3px;margin-left:.25rem}
/* footer spacing (v3) */
footer>.wrap.grid{gap:2rem!important;padding-block:2.5rem!important}
footer img.h-24{height:3.5rem!important}
footer .mt-6{margin-top:.75rem!important}
footer .mt-8{margin-top:1.25rem!important}
footer nav{gap:.5rem 1.25rem!important}
@media (max-width:47.99rem){
 footer>.wrap.grid{grid-template-columns:1fr!important;gap:1.5rem!important}
 footer>.wrap.grid>div:first-child{grid-column:1/-1;display:flex;align-items:center;gap:1rem}
 footer>.wrap.grid>div:first-child p{margin-top:0!important}
}
@media (min-width:48rem){footer>.wrap.grid{padding-block:3rem!important;gap:2.5rem!important}}
.foot-area{padding-block:1rem}
