:root{--navy:#0F2A44;--navy2:#0F2A44;--ink:#0F2A44;--ivory:#F8F6F1;--ivory2:#D6E6F3;--paper:#F8F6F1;--sage:#89957F;--sand:#C9A586;--blue:#849BAA;--sage-deep:#89957F;--sand-deep:#C9A586;--blue-deep:#6F8898;--rule:rgba(15,42,68,.14);--rule2:rgba(15,42,68,.34);--ui:#0F2A44;--muted:#0F2A44;
--serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;--sans:Inter,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;--gut:clamp(20px,2.4vw,32px);--pad:clamp(20px,5vw,72px)}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
body{margin:0;background:var(--ivory);color:var(--ink);font:400 1.0625rem/1.65 var(--sans);font-feature-settings:"ss01","cv11"}
.wrap{max-width:1360px;margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}
a{color:var(--navy);text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:.22em;text-decoration-color:var(--rule2);transition:text-decoration-color .2s}
a:hover{text-decoration-color:var(--navy)}
:focus-visible{outline:2px solid var(--navy);outline-offset:4px;border-radius:2px}
h1,h2,h3{font-family:var(--serif);font-weight:500;color:var(--navy);margin:0 0 .45em;letter-spacing:-.015em}
h1{font-size:clamp(3rem,7.4vw,6.6rem);line-height:.96;letter-spacing:-.025em}
h1 em,h2 em{font-style:italic;font-weight:500}
h2{font-size:clamp(2.1rem,4vw,3.5rem);line-height:1.02}
h3{font-size:1.55rem;line-height:1.15}
p{margin:0 0 1em;max-width:62ch}
.skip{position:absolute;left:-999px;top:0;background:var(--navy);color:var(--ivory);padding:10px 16px;z-index:20}.skip:focus{position:fixed;left:12px;top:12px;z-index:1000;outline:3px solid var(--ivory);outline-offset:2px;box-shadow:0 0 0 6px var(--navy)}
.preview-bar{background:var(--navy);color:var(--ivory);font-size:.75rem;letter-spacing:.04em;text-align:center;padding:7px 12px}
.ph{background:var(--sand);color:#0F2A44;padding:.05em .35em;font-family:var(--sans);font-style:normal;font-size:.82em;font-weight:500;letter-spacing:0;border:1px dashed #0F2A44;border-radius:2px}
/* header */
header.site{background:rgba(248,246,241,.94);backdrop-filter:saturate(1.2) blur(8px);border-bottom:1px solid var(--rule);position:sticky;top:0;z-index:10}
.hd{display:flex;align-items:center;gap:40px;height:88px}
.logo{display:inline-flex;text-decoration:none;flex:none}.logo img{display:block;height:44px;width:auto}
#nav{margin-left:auto}#nav ul{display:flex;gap:30px;list-style:none;margin:0;padding:0}
#nav a{position:relative;text-decoration:none;font-size:.875rem;font-weight:500;letter-spacing:.01em;color:var(--ink);padding:8px 0;white-space:nowrap}
#nav a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:var(--navy);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
#nav a:hover::after,#nav a[aria-current]::after{transform:scaleX(1)}
.menu-btn{display:none;margin-left:auto;background:none;border:1px solid var(--rule2);border-radius:999px;padding:0 20px;height:44px;font:500 .875rem var(--sans);color:var(--navy);cursor:pointer}
/* buttons */
.pill{display:inline-flex;align-items:center;gap:12px;min-height:48px;padding:0 26px;border:1px solid var(--navy);border-radius:999px;text-decoration:none;font:500 .875rem/1 var(--sans);letter-spacing:.02em;color:var(--navy);background:transparent;cursor:pointer;transition:background .2s,color .2s}
.pill::after{content:"→";font-size:1rem;transition:transform .2s}.pill:hover{background:var(--navy);color:var(--ivory)}.pill:hover::after{transform:translateX(3px)}
.pill-dark{background:var(--navy);color:var(--ivory)}.pill-dark:hover{background:var(--navy2)}
.pill-ghost{border:1px dashed var(--rule2);cursor:default}.pill-ghost::after,.pill-ghost:hover::after{content:none}.pill-ghost:hover{background:none;color:var(--navy)}
.hd-cta{min-height:44px;padding:0 22px}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:10px;padding:22px 0 0;margin:0;font-size:.75rem;letter-spacing:.06em;color:var(--muted)}.crumbs li+li::before{content:"/";margin-right:10px;color:var(--rule2)}.crumbs a{text-decoration:none;color:var(--muted)}.crumbs a:hover{color:var(--navy)}
/* labels */
.eyebrow,.cats,.meta,.art-list .cat,.ft-h{font:600 .6875rem/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--navy2)}
.eyebrow{display:flex;align-items:center;gap:14px;margin-bottom:28px}.eyebrow::before{content:"";width:28px;height:1px;background:var(--sand-deep)}
/* grid primitives */
.hero,.sec,.final{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gut)}
.hero>*,.sec>*,.final>*{grid-column:1/-1}
/* hero */
.hero{padding-top:clamp(72px,10vw,148px);padding-bottom:clamp(56px,7vw,104px);border-bottom:1px solid var(--rule)}
.hero>h1,.hero>.eyebrow{grid-column:1/span 10}
.hero>.lead{grid-column:1/span 6;font-size:clamp(1.125rem,1.5vw,1.3125rem);line-height:1.55;color:var(--navy2);margin-top:12px}
.hero>.ctas{grid-column:1/-1}
.hero-home{align-items:end;padding-top:clamp(56px,7vw,104px)}
.hero-home .hero-copy{grid-column:1/span 7;align-self:center}
.hero-home .img-hero{grid-column:9/span 4}
.hero-home h1{font-size:clamp(3.2rem,7.2vw,7rem)}
.hero-home .lead{font-size:1.25rem;max-width:30em;color:var(--navy2)}
.infoline{list-style:none;margin:18px 0 0;padding:14px 0 0;border-top:1px solid var(--rule);max-width:none;color:var(--navy)}
.ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}
/* image placeholder: tonal block */
.img{position:relative;background:var(--ivory2);display:flex;align-items:flex-end;padding:20px;min-height:280px;overflow:hidden}
.img::before{content:"";position:absolute;inset:auto 0 0 0;height:38%;background:var(--sand)}
.img::after{content:"";position:absolute;left:0;right:0;bottom:38%;height:1px;background:rgba(15,42,68,.08)}
.img span{position:relative;z-index:1;font:500 .6875rem/1.5 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);max-width:28ch}
.img-hero{aspect-ratio:4/5;min-height:0}
/* pillars */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--rule)}
.pillars .p{padding:44px var(--gut) 44px 0}.pillars .p+.p{border-left:1px solid var(--rule);padding-left:var(--gut)}
.pillars h2{font:600 .75rem/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;display:flex;align-items:center;gap:14px;margin-bottom:18px}
.pillars h2::before{content:"";width:30px;height:6px;border-radius:3px}.p1 h2::before{background:var(--sage-deep)}.p2 h2::before{background:var(--sand-deep)}.p3 h2::before{background:var(--blue-deep)}
.pillars p{color:var(--navy2);max-width:34ch;margin:0}
/* sections */
.sec{padding-top:clamp(72px,9vw,136px);padding-bottom:clamp(72px,9vw,136px);border-bottom:1px solid var(--rule);row-gap:0}
.sec>.sec-head{grid-column:1/span 4}.sec>.sec-body{grid-column:6/span 7}
.sec-head h2{margin:0}
.intro{font-size:1.1875rem;line-height:1.6;color:var(--navy2)}
.big{font-family:var(--serif);font-size:clamp(1.5rem,2.3vw,2.05rem);line-height:1.25;color:var(--navy);letter-spacing:-.005em;max-width:30ch}
.cols,.mv{display:grid;grid-template-columns:1fr 1fr;gap:var(--gut) calc(var(--gut)*2)}
.sec>.cols,.sec>.mv,.sec>.svc-list,.sec>.art-list,.sec>.faq,.sec>.contact{grid-column:1/-1}
/* numbered service list */
.svc-list{list-style:none;padding:0;margin:8px 0 40px;border-top:1px solid var(--navy);counter-reset:s}
.svc-list a{display:grid;grid-template-columns:56px minmax(0,1.1fr) minmax(0,1fr) 28px;gap:var(--gut);align-items:baseline;padding:30px 0;border-bottom:1px solid var(--rule);text-decoration:none;transition:padding .25s}
.svc-list .no{font:500 .75rem var(--sans);letter-spacing:.14em;color:var(--muted)}
.svc-list .t{font-family:var(--serif);font-size:clamp(1.6rem,2.4vw,2.2rem);line-height:1.05;color:var(--navy)}
.svc-list .d{color:var(--navy2);font-size:.9688rem}
.svc-list .arr{justify-self:end;transition:transform .25s;color:var(--navy)}
.svc-list a:hover{padding-left:10px}.svc-list a:hover .arr{transform:translateX(4px)}.svc-list a:hover .t{font-style:italic}
/* rules list */
.rules{display:grid;grid-template-columns:repeat(2,1fr);gap:0 calc(var(--gut)*2);margin:40px 0 0}
.rules div{border-top:1px solid var(--rule2);padding:24px 0 30px}.rules dt{font-family:var(--serif);font-size:1.75rem;line-height:1.1;color:var(--navy);margin-bottom:8px}.rules dd{margin:0;color:var(--navy2)}
/* band */
.band{background:var(--navy);color:var(--ivory)}.band .wrap{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gut);padding-top:clamp(80px,10vw,152px);padding-bottom:clamp(80px,10vw,152px)}
.band .eyebrow{grid-column:1/-1;color:var(--ivory)}.band h2{grid-column:1/span 8;color:var(--ivory);font-size:clamp(2.4rem,5vw,4.4rem);line-height:1}.band .intro{grid-column:7/span 5;color:var(--ivory);margin-top:24px}
/* steps */
.steps{list-style:none;padding:0;margin:40px 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0 var(--gut);counter-reset:n}
.steps li{display:block;border-top:1px solid var(--rule2);padding:22px 0 26px}
.steps .n{display:block;font-family:var(--serif);font-style:italic;font-size:2.4rem;line-height:1;color:var(--navy2);margin-bottom:18px}
.steps h3{font-size:1.4rem;margin-bottom:8px}.steps p{color:var(--navy2);font-size:.9688rem}
.sec>.sec-body .steps{grid-template-columns:1fr 1fr}
/* final CTA */
.final{padding-top:clamp(88px,11vw,160px);padding-bottom:clamp(88px,11vw,160px)}
.final>h2{grid-column:1/span 8;font-size:clamp(2.4rem,5vw,4.4rem);line-height:1}.final>.intro{grid-column:1/span 6}
/* misc */
.ticks{list-style:none;padding:0;margin:0;border-top:1px solid var(--rule2)}.ticks li{padding:14px 0 14px 28px;border-bottom:1px solid var(--rule);position:relative}.ticks li::before{content:"";position:absolute;left:0;top:1.35em;width:12px;height:4px;border-radius:2px;background:var(--sage-deep)}
.cols h2{font-size:1.85rem}
.note,.hint{font-size:.8438rem;color:var(--muted)}
.inline{list-style:none;display:flex;flex-wrap:wrap;gap:10px 28px;padding:0;margin:0 0 1em}
.related h2{font-size:1.6rem}
.art-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--navy);display:grid;grid-template-columns:repeat(3,1fr);gap:0 var(--gut)}
.art-list a{display:flex;flex-direction:column;gap:10px;padding:32px 0 36px;border-bottom:1px solid var(--rule);text-decoration:none;height:100%}
.art-list .t{font-family:var(--serif);font-size:1.65rem;line-height:1.1;color:var(--navy)}.art-list .d{color:var(--navy2);font-size:.9375rem}.art-list .st{font-size:.75rem;color:var(--muted);margin-top:auto}
.art-list a:hover .t{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.15em}
.cats{margin-bottom:28px;color:var(--muted)}
.article{max-width:860px;padding-top:88px;padding-bottom:112px}.article h1{font-size:clamp(2.5rem,5.4vw,4.4rem);line-height:1}.prose p{font-size:1.1563rem;line-height:1.75}.meta{border-bottom:1px solid var(--rule);padding:18px 0 22px;margin-bottom:40px;color:var(--muted)}
.prose h2{font-size:2rem;margin-top:1.4em}
.faq details{border-top:1px solid var(--rule)}.faq details:last-child{border-bottom:1px solid var(--rule)}
.faq summary{cursor:pointer;list-style:none;padding:28px 56px 28px 0;position:relative}.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:6px;top:50%;width:14px;height:14px;margin-top:-7px;background:linear-gradient(var(--navy),var(--navy)) center/14px 1px no-repeat,linear-gradient(var(--navy),var(--navy)) center/1px 14px no-repeat;transition:transform .25s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq summary h2{font-size:clamp(1.4rem,2vw,1.8rem);margin:0;display:inline}.faq details p{padding-bottom:28px;color:var(--navy2);max-width:70ch}
.contact{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gut)}
.contact>:first-child{grid-column:1/span 4}.contact>:last-child{grid-column:6/span 7}
.contact h2{font-size:2rem}
.rules-list{list-style:none;padding:0;margin:0 0 20px}.rules-list li{border-top:1px solid var(--rule);padding:16px 0}
.form{display:grid;gap:26px;border-top:1px solid var(--navy);padding-top:32px}
.field{border:0;margin:0;padding:0;display:grid;gap:8px}.field label,.field legend{font-weight:500;font-size:.875rem;letter-spacing:.01em;padding:0;color:var(--navy)}
.opt,.req{font-weight:400;color:var(--muted)}
input[type=text],input[type=email],input[type=tel],textarea{font:inherit;color:var(--navy);background:var(--paper);border:0;border-bottom:1px solid var(--ui);border-radius:0;padding:12px 2px;min-height:48px;width:100%;transition:border-color .2s,background .2s}
textarea{border:1px solid var(--ui);padding:12px 14px;border-radius:2px}
input:hover,textarea:hover{border-color:var(--navy)}input:focus-visible,textarea:focus-visible{outline:2px solid var(--navy);outline-offset:2px;background:var(--ivory)}
.radios{display:flex;flex-wrap:wrap;gap:10px}.radios label{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--rule2);border-radius:999px;padding:0 18px;min-height:44px;cursor:pointer;font-weight:400;font-size:.9375rem}
.radios label:has(input:checked){background:var(--navy);color:var(--ivory);border-color:var(--navy)}
.radios input,.consent input{width:18px;height:18px;accent-color:var(--navy);margin:0}.consent label{display:flex;gap:12px;align-items:flex-start;font-weight:400}
.err{color:#0F2A44;font-size:.8438rem;margin:0}.err-summary{border-left:3px solid #0F2A44;padding:14px 18px;background:#F8F6F1}
[aria-invalid=true]{border-color:#0F2A44!important;border-bottom-width:2px!important}
.form-note,.privacy-line{font-size:.8438rem;color:var(--muted);margin:0}
.form button{justify-self:start}
.confirm{border-top:1px solid var(--navy);padding-top:32px}
/* footer */
footer.site{background:var(--navy);color:var(--ivory);padding:96px 0 32px}
footer.site a{color:#F8F6F1;text-decoration-color:rgba(248,246,241,.4)}footer.site a:hover{text-decoration-color:var(--ivory)}
footer :focus-visible{outline-color:var(--ivory)}
.ft{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gut)}
.ft-brand{grid-column:1/span 5}.ft>div:nth-child(2){grid-column:7/span 2}.ft>div:nth-child(3){grid-column:9/span 2}.ft>div:nth-child(4){grid-column:11/span 2}
.ft ul{list-style:none;padding:0;margin:0}.ft li{margin:10px 0;font-size:.9063rem}
.ft-h{color:var(--ivory);margin:6px 0 18px}
.ft-tag{font-family:var(--serif);font-size:2rem;line-height:1.1;color:var(--ivory);margin-top:36px;max-width:14ch}
.legal{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px 24px;border-top:1px solid rgba(248,246,241,.14);margin-top:80px;padding-top:24px;font-size:.75rem;color:var(--ivory)}
.legal ul{display:flex;gap:24px;list-style:none;margin:0;padding:0}.legal p{margin:0;max-width:none}
.ft-imagery{flex:1 1 100%;max-width:68ch;line-height:1.5;color:var(--ivory)}
footer .ph{background:rgba(248,246,241,.08);color:#D9C9B6;border-color:rgba(248,246,241,.35)}
/* responsive */
@media (max-width:1180px){.hd-cta{display:none}.menu-btn{display:inline-flex;align-items:center}
#nav{display:none;position:absolute;left:0;right:0;top:88px;background:var(--ivory);border-bottom:1px solid var(--rule);padding:8px var(--pad) 28px}#nav.open{display:block}#nav ul{flex-direction:column;gap:0}#nav li{border-bottom:1px solid var(--rule)}#nav a{display:block;padding:16px 0;font-size:1rem}#nav a::after{display:none}}
@media (max-width:900px){.hero>*,.hero>h1,.hero>.lead,.hero-home .hero-copy,.hero-home .img-hero,.sec>.sec-head,.sec>.sec-body,.final>h2,.final>.intro,.contact>*,.band .wrap>*,.ft>div{grid-column:1/-1!important}
.sec>.sec-head{margin-bottom:28px}.hero-home{row-gap:40px}.img-hero{aspect-ratio:4/3}
.pillars{grid-template-columns:1fr}.pillars .p{padding:28px 0}.pillars .p+.p{border-left:0;border-top:1px solid var(--rule);padding-left:0}
.cols,.mv,.rules,.art-list,.sec>.sec-body .steps{grid-template-columns:1fr}.svc-list a{grid-template-columns:36px 1fr 20px}.svc-list .d{grid-column:2/3}
.ft{row-gap:40px}.ft>div:nth-child(n+2){grid-column:span 6!important}.logo img{height:38px}.hd{height:76px}#nav{top:76px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
.sec.wide>.sec-head{grid-column:1/span 7;margin-bottom:56px}.sec.wide>.sec-body{grid-column:1/-1}
.sec.wide .cols{grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gut)}.sec.wide .cols>:first-child{grid-column:1/span 6}.sec.wide .cols>:last-child{grid-column:8/span 5;padding-top:.6em}
.sec.wide .intro{max-width:44ch;margin-bottom:40px}
@media (max-width:900px){.sec.wide .cols>*{grid-column:1/-1!important}}
.photo{margin:0;background:var(--ivory2);overflow:hidden}.photo img{display:block;width:100%;height:100%;object-fit:cover}
.hero-home .img-hero{aspect-ratio:3/2;align-self:center}.hero-home .img-hero img{object-position:20% 50%}
.hero-home .hero-copy{grid-column:1/span 6}.hero-home .img-hero{grid-column:7/span 6}
.svc-photo{padding-top:0}.svc-photo .photo{aspect-ratio:21/9}
.duo{display:grid;grid-template-columns:7fr 5fr;gap:var(--gut);padding-top:clamp(48px,6vw,88px)}.duo .photo{aspect-ratio:4/3}.duo .photo:last-child{aspect-ratio:4/5;margin-top:15%}
.hero:has(+.svc-photo){border-bottom:0}
@media (max-width:900px){.svc-photo .photo{aspect-ratio:16/10}.duo{grid-template-columns:1fr}.duo .photo:last-child{aspect-ratio:4/3;margin-top:0}}
.ft a{overflow-wrap:anywhere}
.duo .photo:last-child img{object-position:20% 50%}
.duo .photo:last-child{aspect-ratio:4/3}.duo .photo:last-child img{object-position:50% 50%}.duo{align-items:start}
.soon{display:inline-block;vertical-align:middle;margin-left:12px;font:600 .625rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--navy2);border:1px solid var(--rule2);border-radius:999px;padding:6px 10px;font-style:normal}

/* Palette. Canvas: --ivory / --paper #F8F6F1. Text and action: --navy / --navy2 / --ink / --ui / --muted #0F2A44.
   Sage fills and sage bars (--sage / --sage-deep): #89957F. Navy on it is 4.65:1.
   Sand fills and sand bars (--sand / --sand-deep): #C9A586. Navy on it is 6.42:1.
   Powder-blue fills that carry text (--blue): #849BAA, the deepest step from #D6E6F3 toward #6F8898 that keeps navy at 5.05:1.
   Steel #6F8898 (--blue-deep) is bars and lines only. Navy on it is 3.94:1, so it is never a text background.
   --ivory2 stays #D6E6F3 for photo wells, which do not carry text. */
.steps .n::after{content:"";display:block;width:24px;height:3px;border-radius:2px;background:var(--sand-deep);margin-top:12px}
/* UI boundaries must meet 3:1 — use --ui (#0F2A44, 4.9:1 on ivory) instead of --rule2 for control borders */
.radios label,.menu-btn{border-color:var(--ui)}.pill-ghost{border-color:var(--ui)}
/* Callback form */
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
/* Flexible Turnstile is 300px wide. Below 344px the contact form's 24px padding pushes that box past the viewport. Pull only this container back by that padding. */
@media (max-width:343px){
  .field.cf-ts{min-width:0}
  .cf-turnstile{margin-inline:-24px}
}
.cf-turnstile :focus,.cf-turnstile:focus-within{outline:2px solid var(--navy);outline-offset:4px;border-radius:2px}
.day-grid,.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:.5rem;margin-top:.5rem}
.slot-grid{grid-template-columns:repeat(auto-fill,minmax(10.5rem,1fr))}
.day-grid label,.slot-grid label{display:flex;gap:.5rem;align-items:center;padding:.6rem .75rem;border:1px solid var(--ui);border-radius:.5rem;background:var(--ivory);cursor:pointer;min-height:44px}
.day-grid label:has(input:checked),.slot-grid label:has(input:checked){border-color:var(--navy,#0F2A44);box-shadow:inset 0 0 0 2px var(--navy,#0F2A44)}
.day-grid label:focus-within,.slot-grid label:focus-within{outline:3px solid var(--navy,#0F2A44);outline-offset:2px}
.field.check{display:grid;grid-template-columns:auto 1fr;gap:.6rem;align-items:start}
.field.check input{width:1.4rem;height:1.4rem;margin-top:.15rem}
.field.check .err{grid-column:1/-1}
.form-status{color:#0F2A44;font-weight:600}
#cb-day-fallback label{display:block;margin-top:.5rem}
#cb-form[hidden],.day-grid[hidden],.form-status[hidden]{display:none}
.hd-tel{font-weight:600;white-space:nowrap;text-decoration:none}
.hd-tel:hover{text-decoration:underline}
.hd-tel+.hd-cta{margin-left:0}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.form[hidden],.confirm[hidden],.err-summary[hidden],.form-status[hidden]{display:none}
.signoff{border:2px solid #0F2A44;background:var(--sand);color:#0F2A44;padding:16px 20px;border-radius:8px;margin-bottom:32px}
.legal-doc{max-width:46rem}.legal-doc h2{margin-top:2rem}.legal-doc ul{padding-left:1.25rem}.legal-doc li{margin:.3rem 0}
@media (max-width:720px){.hd-tel{display:none}}
.hd-cta{white-space:nowrap}
@media (min-width:1181px){.hd{gap:28px}#nav ul{gap:26px}}
@media (max-width:1380px){.hd-tel{display:none}}
.jack-marker{background:var(--sand);color:var(--navy);padding:.1em .35em;border-radius:4px;font-weight:600}

/* D08: errors no longer use red; identified by text, icon-free bold and the error summary */
.err,.form-status{font-weight:600}
.form input:not([type=radio]):not([type=checkbox]),.form textarea{border-bottom-color:#0F2A44}
.faq-link{font-size:.8125rem;margin-top:.5rem}
.faq details:target{outline:3px solid #0F2A44;outline-offset:6px}
.cb-promise{font-weight:600;margin-top:16px}
.easy-toggle{padding-top:16px}

/* ===== Colour pass (Brand & Design: launch/brand/website-warmth/section-styling.md) ===== */
.bg-ivory{background:var(--ivory)}.bg-sand{background:var(--sand)}.bg-sage{background:var(--sage)}.bg-blue{background:var(--blue)}
.bg-navy{background:var(--navy);color:var(--ivory)}
.bg-navy h1,.bg-navy h2,.bg-navy h3,.bg-navy p,.bg-navy .eyebrow,.bg-navy a,.bg-navy .intro{color:var(--ivory)}
.bg-navy .pill-dark{background:var(--ivory);color:var(--navy);border-color:var(--ivory)}.bg-navy .pill{color:var(--ivory);border-color:var(--ivory)}
.bg-navy :focus-visible{outline-color:var(--ivory)}
section[class*="bg-"],nav.crumbs[class*="bg-"],div.svc-photo[class*="bg-"]{max-width:none;
  padding-left:max(var(--pad),calc((100vw - 1360px)/2 + var(--pad)));padding-right:max(var(--pad),calc((100vw - 1360px)/2 + var(--pad)))}
section.band[class*="bg-"]{padding-left:0;padding-right:0}
.sec,.hero,.pillars{border-bottom:0}
nav.crumbs[class*="bg-"] ol{margin:0}
.hero[class*="bg-"]{margin-top:0}
div.svc-photo[class*="bg-"]{padding-bottom:clamp(48px,6vw,88px)}
.bg-sand .eyebrow,.bg-sage .eyebrow,.bg-blue .eyebrow,.bg-sand .hint,.bg-sage .hint,.bg-blue .hint,.bg-sage p,.bg-sand p,.bg-blue p{color:var(--navy)}
/* photos: rounded frames */
.photo{position:relative;border-radius:14px;overflow:hidden;margin:0}
.svc-photo .photo{border-radius:16px}.duo .photo{border-radius:12px}
.photo img{display:block;width:100%;height:auto}
.img-hero{position:relative;border-radius:16px;overflow:visible;background:transparent;isolation:isolate}
.img-hero img{border-radius:16px}
.img-hero::before{content:"";position:absolute;inset:auto auto -12px -12px;width:55%;height:55%;background:var(--sage-deep);border-radius:16px;z-index:-1}
.band-photo{grid-column:1/-1;margin-top:40px}.band-photo .photo{max-width:900px}
.step-photo{margin-top:40px;max-width:760px}
.side-photo{margin:0 0 32px}
/* cards on tinted bands */
.bg-sage .rules div,.bg-sand .rules div,.bg-blue .rules div{background:var(--ivory);border:0;border-radius:14px;padding:28px 28px 32px}
.bg-sage .rules,.bg-sand .rules,.bg-blue .rules{gap:var(--gut);border-top:0}
.svc-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--gut);border-top:0}
.svc-list li{border:0}
.svc-list a{display:flex;flex-direction:column;gap:10px;height:100%;background:var(--ivory);border:1px solid rgba(15,42,68,.14);border-top:8px solid var(--sage-deep);border-radius:14px;padding:24px}
.bg-blue .svc-list a,.bg-sand .svc-list a,.bg-sage .svc-list a{border-color:transparent}
/* E-bar */
.ebar{display:flex;flex-direction:column;gap:5px;width:44px;margin:0 0 28px}
.ebar span{display:block;height:6px;border-radius:3px}
.ebar span:nth-child(1){background:var(--navy);width:100%}.ebar span:nth-child(2){background:var(--sage-deep);width:78%}.ebar span:nth-child(3){background:var(--sand-deep);width:60%}
.bg-sage .ebar span:nth-child(2){background:var(--ivory)}.bg-sand .ebar span:nth-child(3){background:var(--ivory)}
.bg-navy .ebar span:nth-child(1){background:var(--ivory)}
/* forms: tinted panel on ivory, fields ivory with navy underline, navy headings */
.contact .form{background:var(--blue);border-radius:16px;padding:clamp(24px,4vw,48px)}
.bg-ivory.contact .paths{background:var(--ivory);border:1px solid var(--rule);border-radius:16px;padding:clamp(24px,3vw,36px);align-self:start}
.contact .form h2,.contact .form legend,.contact .paths h2,.contact .paths h3{color:var(--navy)}
.contact .form input[type=text],.contact .form input[type=email],.contact .form input[type=tel],.contact .form input[type=date],.contact .form textarea,.contact .form select{background:var(--ivory)}
/* footer: three-segment top strip */
footer.site{border-top:6px solid;border-image:linear-gradient(90deg,var(--sage-deep) 0 33.3%,var(--sand-deep) 33.3% 66.6%,var(--blue-deep) 66.6%) 1}
footer.site .ft-h{color:var(--ivory)}
.photo{background:transparent;align-self:start}.duo{align-items:start}
.hero-home .img-hero{aspect-ratio:4/5}.hero-home .img-hero img{width:100%;height:100%;object-fit:cover;object-position:62% 50%}
@media (max-width:900px){.hero-home .img-hero{aspect-ratio:4/3}}
.band-photo .photo img,.svc-photo .photo img{aspect-ratio:16/9;object-fit:cover}
/* ===== Service-page template (approved by Jack 15 Oct; service pages only) ===== */
:is(.pg-supports-daily-life,.pg-supports-personal-care,.pg-supports-social-community,.pg-supports-transport,.pg-supports-household){--dl-y:clamp(48px,6vw,96px)}
:is(.pg-supports-daily-life,.pg-supports-personal-care,.pg-supports-social-community,.pg-supports-transport,.pg-supports-household) .hero{padding-top:clamp(42px,5.3vw,84px);padding-bottom:clamp(35px,4.4vw,63px);border-top:8px solid var(--sage-deep)}
:is(.pg-supports-daily-life,.pg-supports-personal-care,.pg-supports-social-community,.pg-supports-transport,.pg-supports-household) div.svc-photo{padding-top:var(--dl-y);padding-bottom:0}
:is(.pg-supports-daily-life,.pg-supports-personal-care,.pg-supports-social-community,.pg-supports-transport,.pg-supports-household) .svc-photo .photo{max-width:1040px}
:is(.pg-supports-daily-life,.pg-supports-personal-care,.pg-supports-social-community,.pg-supports-transport,.pg-supports-household) .sec{padding-top:var(--dl-y);padding-bottom:var(--dl-y)}
:is(.pg-supports-daily-life,.pg-supports-personal-care,.pg-supports-social-community,.pg-supports-transport,.pg-supports-household) .sec.bg-ivory+.sec.bg-ivory{border-top:1px solid var(--rule)}
:is(.pg-supports-daily-life,.pg-supports-personal-care,.pg-supports-social-community,.pg-supports-transport,.pg-supports-household) .sec .cols{column-gap:clamp(32px,6vw,96px)}
:is(.pg-supports-daily-life,.pg-supports-personal-care,.pg-supports-social-community,.pg-supports-transport,.pg-supports-household) .ticks li{padding:10px 0 10px 28px}
/* related supports: restrained editorial list, no cards */
.dl-rel h2{font-size:1.5rem;margin-bottom:20px}
.dl-rel-list{list-style:none;margin:0 0 24px;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(32px,6vw,96px);border-top:1px solid var(--rule)}
.dl-rel-list li{border-bottom:1px solid var(--rule)}
.dl-rel-list a{display:grid;grid-template-columns:minmax(0,14rem) 1fr;gap:16px;align-items:baseline;padding:16px 0;text-decoration:none;color:var(--navy);min-height:44px}
.dl-rel-list .t{font-weight:600}.dl-rel-list .d{font-size:.9375rem}
.dl-rel-list a:hover .t,.dl-rel-list a:focus-visible .t{text-decoration:underline}
.dl-more{font-size:.9375rem}
/* enquiry: powder blue, sized to content, contact always visible */
:is(.pg-supports-daily-life,.pg-supports-personal-care,.pg-supports-social-community,.pg-supports-transport,.pg-supports-household) .final{padding-top:clamp(56px,7vw,104px);padding-bottom:clamp(56px,7vw,104px)}
:is(.pg-supports-daily-life,.pg-supports-personal-care,.pg-supports-social-community,.pg-supports-transport,.pg-supports-household) .final>h2{font-size:clamp(2rem,4vw,3.4rem)}
.dl-contact{grid-column:1/span 8;margin-top:20px}
:is(.pg-supports-daily-life,.pg-supports-personal-care,.pg-supports-social-community,.pg-supports-transport,.pg-supports-household) .svc-photo .photo img{aspect-ratio:2/1;object-position:50% 40%}
:is(.pg-supports-daily-life,.pg-supports-personal-care,.pg-supports-social-community,.pg-supports-transport,.pg-supports-household) .sec .cols{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:start}
:is(.pg-supports-daily-life,.pg-supports-personal-care,.pg-supports-social-community,.pg-supports-transport,.pg-supports-household) .sec .cols h2{font-size:1.6rem;margin-bottom:16px}
:is(.pg-supports-daily-life,.pg-supports-personal-care,.pg-supports-social-community,.pg-supports-transport,.pg-supports-household) .sec .cols p{max-width:44ch}
@media (max-width:900px){:is(.pg-supports-daily-life,.pg-supports-personal-care,.pg-supports-social-community,.pg-supports-transport,.pg-supports-household) .sec .cols{grid-template-columns:1fr;row-gap:40px}:is(.pg-supports-daily-life,.pg-supports-personal-care,.pg-supports-social-community,.pg-supports-transport,.pg-supports-household) .svc-photo .photo img{aspect-ratio:3/2}}
/* compact footer */
.pg-supports-daily-life footer.site{padding:56px 0 24px}
.pg-supports-daily-life .ft-tag{font-size:1.5rem;margin-top:20px}
.pg-supports-daily-life .ft li{margin:6px 0}
@media (max-width:900px){.dl-rel-list{grid-template-columns:1fr}.dl-rel-list a{grid-template-columns:1fr;gap:4px}.dl-contact{grid-column:1/-1}}
.hd .logo img{height:42px}.ft-brand .logo img{height:44px}
@media (max-width:900px){.hd .logo img{height:38px}}
/* a11y review 15 Oct: arrow decorative (not in accessible name); text-spacing resilience; required note */
.pill::after{content:"→"/""}
.hd{height:auto;min-height:88px;flex-wrap:nowrap}#nav{min-width:0}#nav ul{flex-wrap:wrap;justify-content:flex-end;row-gap:2px}
.hd-cta,.hd-tel,.logo{flex:none}
@media (max-width:900px){.hd{min-height:76px}}
footer.site ul{flex-wrap:wrap}
.req-note{font-size:.9375rem;margin:0 0 8px}
a[href^="mailto:"]{overflow-wrap:anywhere;word-break:break-word}
main a,.legal-doc a{overflow-wrap:anywhere}h1,h2,h3,h4,.t,.big,.ft-tag,.rules dt{overflow-wrap:break-word;hyphens:none;-webkit-hyphens:none}
.legal-doc p,.legal-doc li{overflow-wrap:anywhere}
/* ===== Homepage refinement (Jack 15 Oct, 11:15pm review): .pg-home only ===== */
.pg-home{--hy:clamp(56px,7vw,112px)}
.pg-home .sec{padding-top:var(--hy);padding-bottom:var(--hy)}
.pg-home .sec.bg-ivory+.sec.bg-ivory,.pg-home .pillars+.sec.bg-ivory,.pg-home .hero.bg-ivory+.pillars{border-top:1px solid var(--rule)}
/* services: editorial list, all five equal */
.home-svc{list-style:none;margin:8px 0 20px;padding:0;border-top:1px solid var(--rule)}
.home-svc li{border-bottom:1px solid var(--rule)}
.home-svc a{display:grid;grid-template-columns:minmax(0,18rem) 1fr auto;gap:24px;align-items:baseline;padding:20px 0;text-decoration:none;color:var(--navy);min-height:44px}
.home-svc .t{font-family:var(--serif);font-size:1.5rem;line-height:1.15}
.home-svc .d{font-size:.9688rem}.home-svc .arr{transition:transform .2s}
.home-svc a:hover .t,.home-svc a:focus-visible .t{text-decoration:underline}.home-svc a:hover .arr{transform:translateX(4px)}
.home-more{margin:0}
/* approach: 2x2 typographic, fine dividers, no cards */
.pg-home .rules{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border-top:1px solid rgba(15,42,68,.3)}
.pg-home .rules div{background:none;border-radius:0;padding:28px 32px 28px 0;border-bottom:1px solid rgba(15,42,68,.3)}
.pg-home .rules div:nth-child(even){padding-left:32px;border-left:1px solid rgba(15,42,68,.3)}
.pg-home .rules dt{font-family:var(--serif);font-size:1.6rem;margin-bottom:8px}
/* local: navy, balanced two columns, less height */
.pg-home .band .home-local{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(32px,5vw,80px);align-items:center;padding-top:clamp(56px,7vw,104px);padding-bottom:clamp(56px,7vw,104px)}
.pg-home .band .home-local>*{grid-column:auto!important}
.pg-home .home-local .band-photo{margin:0}.pg-home .home-local .band-photo .photo{max-width:none}
.pg-home .home-local h2{font-size:clamp(2rem,3.6vw,3.2rem);margin-bottom:20px}
.home-facts{font-size:.9375rem;margin-top:20px}
/* getting started: compact numbered steps */
.pg-home .steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 32px;counter-reset:none;border-top:1px solid var(--rule)}
.pg-home .steps li{display:block;padding:24px 0 0;border:0}
.pg-home .steps .n{display:block;font-family:var(--serif);font-size:1.75rem;margin-bottom:8px}
.pg-home .steps h3{font-size:1.25rem;margin-bottom:6px}
.pg-home .steps p{font-size:.9375rem;margin:0}
.pg-home .final{padding-top:clamp(64px,8vw,120px);padding-bottom:clamp(64px,8vw,120px)}
@media (max-width:900px){
 .home-svc a{grid-template-columns:1fr auto;gap:6px 16px}.home-svc .d{grid-column:1/2}.home-svc .arr{grid-row:1;grid-column:2}
 .pg-home .rules{grid-template-columns:1fr}.pg-home .rules div,.pg-home .rules div:nth-child(even){padding:22px 0;border-left:0}
 .pg-home .band .home-local{grid-template-columns:1fr;row-gap:32px}
 .pg-home .steps{grid-template-columns:1fr;gap:0}.pg-home .steps li{padding:20px 0;border-bottom:1px solid var(--rule)}
}
/* mobile usability check 15 Oct: callback reachable from the menu; 24px+ targets via spacing only (no font changes) */
.nav-cb{display:none}
@media (max-width:1180px){.nav-cb{display:list-item}}
.ft li a,.crumbs a,.home-more a{display:inline-block;padding-top:4px;padding-bottom:4px;margin-top:-4px;margin-bottom:-4px}
input[type=checkbox]{width:24px;height:24px}
footer.site li a{display:inline-block;padding-top:4px;padding-bottom:4px;margin-top:-4px;margin-bottom:-4px}
.field.check input[type=checkbox],.form input[type=checkbox]{width:24px;height:24px;min-width:24px}
.pill-ghost a{display:inline-block;padding:4px 0}
.hd-tel{padding-top:4px;padding-bottom:4px}
.pill-ghost a{padding:6px 0}
/* ===== Inner pages: approved spacing/typography system (no redesign). Service pages keep their locked rules above. ===== */
.tpl:not([class*="pg-supports-"]) .hero{padding-top:clamp(42px,5.3vw,84px);padding-bottom:clamp(35px,4.4vw,63px)}
.pg-supports.tpl .hero{padding-top:clamp(42px,5.3vw,84px);padding-bottom:clamp(35px,4.4vw,63px)}
.tpl .sec{padding-top:clamp(48px,6vw,96px);padding-bottom:clamp(48px,6vw,96px)}
.tpl .sec.bg-ivory+.sec.bg-ivory,.tpl .hero.bg-ivory+.sec.bg-ivory,.sec.bg-ivory+.final.bg-ivory{border-top:1px solid var(--rule)}
.tpl .final{padding-top:clamp(56px,7vw,104px);padding-bottom:clamp(56px,7vw,104px)}
.tpl .final>h2{font-size:clamp(2rem,4vw,3.4rem)}

/* Header + homepage hero polish. Same type, palette, photos and copy. */
.hd .logo img{height:52px}
.ft-brand .logo img{height:64px}
@media (max-width:900px){.hd{gap:16px}.hd .logo img{height:40px}.ft-brand .logo img{height:52px}}
@media (min-width:1181px){
 .menu-btn{display:none}
 .hd{gap:clamp(16px,1.5vw,28px);align-items:center}
 #nav{display:block;position:static;top:auto;margin-left:auto;min-width:max-content;padding:0;border:0;background:transparent}
 #nav ul{flex-flow:row nowrap;align-items:center;justify-content:flex-end;gap:clamp(16px,1.35vw,26px);row-gap:0}
 #nav li{border:0}
 #nav a{display:inline-flex;align-items:center;min-height:24px;padding:12px 0;font-size:.875rem;line-height:1;white-space:nowrap}
 #nav a::after{display:block}
 .nav-cb{display:none}
}
@media (max-width:1023px){#nav{top:100%}}
@media (max-width:1399px){.hd-tel{display:none}}
.pg-home .hero-home{align-items:center;padding-top:clamp(32px,4vw,60px);padding-bottom:clamp(28px,3.4vw,52px)}
.pg-home .hero-home .eyebrow{margin-bottom:14px}
.pg-home .hero-home h1{margin-bottom:.18em}
.pg-home .hero-home .lead{margin-top:2px}
.pg-home .hero-home .ctas{margin-top:20px}
.pg-home .hero-home .infoline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:18px;padding-top:14px;text-transform:none;letter-spacing:0;font:400 .9375rem/1.4 var(--sans);color:var(--navy)}
.pg-home .hero-home .infoline li{display:grid;grid-template-columns:24px minmax(0,1fr);column-gap:10px;align-items:start;min-width:0;padding:0 14px}
.pg-home .hero-home .infoline li:first-child{padding-left:0}
.pg-home .hero-home .infoline li:last-child{padding-right:0}
.pg-home .hero-home .infoline li+li{border-left:1px solid var(--rule)}
.pg-home .hero-home .infoline svg{display:block;width:22px;height:22px;margin-top:1px;color:var(--navy)}
.pg-home .hero-home .infoline strong{display:block;font-weight:600;font-size:.9375rem;line-height:1.3;letter-spacing:0;text-transform:none;color:var(--navy)}
.pg-home .hero-home .infoline p{margin:3px 0 0;max-width:none;font-size:.875rem;font-weight:400;line-height:1.45;color:var(--navy)}
@media (max-width:600px){
 .pg-home .hero-home .infoline{grid-template-columns:1fr;row-gap:16px}
 .pg-home .hero-home .infoline li,.pg-home .hero-home .infoline li+li{padding:0;border-left:0}
}
@media (min-width:901px){
 .pg-home .hero-home .hero-copy{grid-column:1 / span 6;align-self:center}
 .pg-home .hero-home .img-hero{grid-column:7 / span 6;align-self:center;aspect-ratio:1/1}
}
@media (max-width:900px){
 .pg-home .hero-home{row-gap:24px;padding-top:28px;padding-bottom:24px}
}

/* ADSS final imagery pass — preserve approved grid, typography and palette. */
.pg-home .hero-home .img-hero,
.pg-home .home-local .photo,
.pg-about .svc-photo .photo,
.pg-supports-daily-life .svc-photo .photo {
  overflow: hidden;
}

/* New hero: subject in the left/middle of the source frame. */
.pg-home .hero-home .img-hero img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 48% 50%;
}

/* New coastal boardwalk: retain the central path. */
.pg-home .home-local .photo img {
  object-fit: cover;
  object-position: 50% 50%;
}

/* Keep conversation participants visible in the wide About image. */
.pg-about .svc-photo .photo img {
  object-fit: cover;
  object-position: 50% 44%;
}

/* Callback eyebrow is the approved sentence, not a short label. Keep the dash, and let the words wrap. */
.pg-callback .hero .eyebrow{display:block;min-width:0;overflow-wrap:break-word;text-transform:none;letter-spacing:.01em;font-size:.8125rem;line-height:1.45}
.pg-callback .hero .eyebrow::before{display:inline-block;vertical-align:middle;margin-right:14px}

/* The Daily Life botanical image is decorative, not a staff photograph. */
.pg-supports-daily-life .svc-photo .photo img {
  object-fit: cover;
  object-position: 50% 50%;
}

@media (max-width: 900px) {
  .pg-home .hero-home .img-hero img {
    object-position: 50% 50%;
  }
  .pg-about .svc-photo .photo img {
    object-position: 50% 50%;
  }
}
