/* Beach Health Retreat — retreat.css
   Art-direction pass, 14 Sep 2026; white-space and composition correction, 14–15 Sep 2026.
   Three spacing levels (signature 48→72px · editorial 40→56px · connective 20→32px), three hierarchy levels,
   one display face for statements, one utility face for everything practical.
   Surfaces: ivory (default) · stone (one warm panel) · sea (one aqua band) · teal (footer) · photography. */

@font-face{font-family:'Bodoni Moda';src:url('../fonts/bodoni-moda.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'DM Sans';src:url('../fonts/retreat-sans.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}

:root{
  --ivory:#f8f6f1;
  --stone:#eee9df;
  --white:#fffdf9;
  --sea:#d9ebe9;
  --teal:#2b746f;
  --teal-deep:#245f5b;
  --ink:#152a33;
  --text:#27343a;
  --text-2:#4a585e;
  --meta:#5a676c;
  --tide:#3c6b67;
  --line:#d2d5cd;
  --line-strong:#9aa6a1;
  --field-border:#7d8984; /* form controls: 3:1 non-text contrast (WCAG 1.4.11) */
  --error:#973826;
  --serif:'Bodoni Moda',Georgia,'Times New Roman',serif;
  --sans:'DM Sans','Helvetica Neue',Arial,sans-serif;
  --wide:min(100% - 3rem,1280px);
  --wider:min(100% - 2rem,1440px);
  --edit:min(100% - 3rem,1100px);
  --measure:60ch;
  --measure-sm:46ch;
  --gutter:clamp(1.5rem,4vw,4rem);
  /* spacing levels */
  --s-sig:clamp(3rem,5vw,4.5rem);
  --s-norm:clamp(2.5rem,3.9vw,3.5rem);
  --s-tight:clamp(1.25rem,2.4vw,2rem);
  --s-join:calc(var(--s-norm) * .7);
  --header-h:4.25rem;
  --block:var(--s-norm);
  --block-sm:var(--s-tight);
  --s3:2.5rem;
  --radius:3px;
  --ease:cubic-bezier(.2,.6,.2,1);
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font:400 1.125rem/1.6 var(--sans);color:var(--text);background:var(--ivory);-webkit-font-smoothing:antialiased;overflow-x:clip}
img,video{display:block;max-width:100%;height:auto}
[hidden]{display:none!important}
figure{margin:0}
fieldset{min-inline-size:0}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;color:var(--ink);margin:0 0 .7rem;text-wrap:balance;overflow-wrap:anywhere}
h1{font-size:clamp(2.6rem,5vw,4.6rem);line-height:1.04;letter-spacing:-.026em}
h2{font-size:clamp(1.8rem,2.6vw,2.4rem);line-height:1.12;letter-spacing:-.016em}
h3{font-size:clamp(1.3rem,1.8vw,1.6rem);line-height:1.25;letter-spacing:-.01em}
h4{font-size:1.15rem;line-height:1.35}
.h-statement{font-size:clamp(2.2rem,3.6vw,3.4rem);line-height:1.06;letter-spacing:-.022em}
p{margin:0 0 1.1rem;max-width:var(--measure);text-wrap:pretty}
[id]{scroll-margin-top:calc(var(--header-h) + 1rem)}
p:last-child{margin-bottom:0}
a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.24em;text-decoration-color:var(--tide);transition:text-decoration-color .25s var(--ease),color .25s var(--ease)}
a:hover{text-decoration-color:currentColor}
ul,ol{margin:0 0 1.1rem;padding-left:1.2rem}
strong{font-weight:500}
small,.note{font-size:.92rem;line-height:1.55;color:var(--meta)}
.note{display:block;max-width:var(--measure-sm)}
.place{font:500 .78rem/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--text-2);margin:0 0 .8rem}
.lede{font-family:var(--serif);font-size:clamp(1.35rem,1.9vw,1.7rem);line-height:1.4;letter-spacing:-.01em;color:var(--ink);max-width:34ch}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
:focus-visible{outline:2px solid var(--tide);outline-offset:3px}
.scene :focus-visible,.site-footer :focus-visible,#photo-dialog :focus-visible{outline-color:#fffdf9}
.site-header:not(.is-stuck) :focus-visible{outline-color:#fffdf9}
.page-light .site-header :focus-visible{outline-color:var(--tide)}
.skip{position:fixed;top:-200px;left:1rem;z-index:100;padding:.9rem 1.2rem;background:var(--white);color:var(--ink);border:1px solid var(--ink)}
.skip:focus{top:1rem}
main:focus{outline:0}

.wide{width:var(--wide);margin-inline:auto}
.wider{width:var(--wider);margin-inline:auto}
.edit{width:var(--edit);margin-inline:auto}
.block{padding-block:var(--s-norm)}
.block-sm{padding-block:var(--s-tight)}
.pad-sig{padding-block:var(--s-sig)}
.pad-norm{padding-block:var(--s-norm)}
.pad-tight{padding-block:var(--s-tight)}
.stone{background:var(--stone)}
.sea{background:var(--sea);color:var(--text)}
.sea .note,.sea small,.sea .place{color:var(--text-2)}
.prose{max-width:var(--measure)}
.prose p{font-size:1.0625rem;line-height:1.65}
.prose p.lede,.prose .lede{font-size:clamp(1.3rem,1.8vw,1.6rem);line-height:1.4}

/* editorial arrow link */
.link{display:inline-flex;align-items:center;gap:.5rem;font:500 .95rem/1.2 var(--sans);text-decoration:none;color:var(--ink);padding:.35rem 0;min-height:44px}
.link::after{content:'→';font-family:var(--sans);font-weight:400;transition:transform .25s var(--ease)}
.link:hover::after{transform:translateX(4px)}
.link span{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.3em;text-decoration-color:var(--tide)}
.scene .link,.panel .link{color:#fffdf9}
.scene .link span,.panel .link span{text-decoration-color:rgba(255,253,249,.7)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:52px;padding:.9rem 1.9rem;border:1px solid var(--teal);border-radius:var(--radius);background:var(--teal);color:#fffdf9;font:500 .95rem/1.2 var(--sans);letter-spacing:.01em;text-decoration:none;cursor:pointer;transition:background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease),transform .25s var(--ease)}
.btn:hover{background:var(--teal-deep);border-color:var(--teal-deep)}
.btn:active{transform:translateY(1px)}
.btn-quiet{background:transparent;color:var(--ink)}
.btn-quiet:hover{background:var(--teal);color:#fffdf9}
.scene .btn{background:var(--white);border-color:var(--white);color:var(--ink)}
.scene .btn:hover{background:#eef0ec;border-color:#eef0ec}
.scene .btn-quiet{background:transparent;border-color:rgba(255,253,249,.8);color:#fffdf9}
.scene .btn-quiet:hover{background:var(--white);color:var(--ink)}
.actions{display:flex;flex-wrap:wrap;gap:.9rem 1.75rem;align-items:center;margin-top:1.25rem}

/* ---------- header ---------- */
.site-header{position:fixed;top:0;left:0;width:100%;z-index:30;color:#fffdf9;transition:background .3s var(--ease),color .3s var(--ease),box-shadow .3s var(--ease)}
.site-header::before{content:'';position:absolute;inset:0 0 -2.5rem;z-index:-1;background:linear-gradient(180deg,rgba(9,25,32,.72),rgba(9,25,32,.6) 70%,rgba(9,25,32,0));pointer-events:none;transition:opacity .3s var(--ease)}
.page-light .site-header{color:var(--ink)}
.page-light .site-header::before{opacity:0}
.site-header.is-stuck{background:var(--ivory);color:var(--ink);box-shadow:0 1px 0 var(--line)}
.site-header.is-stuck::before{opacity:0}
.nav-row{width:var(--wide);margin-inline:auto;display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;padding:.7rem 0;transition:padding .3s var(--ease)}
.is-stuck .nav-row{padding:.45rem 0}
.brand{display:inline-flex;align-items:center;gap:.85rem;text-decoration:none;color:inherit}
.brand-mark{height:48px;width:auto;flex:0 0 auto;filter:drop-shadow(0 1px 3px rgba(0,0,0,.45)) drop-shadow(0 6px 18px rgba(0,0,0,.22));transition:height .3s var(--ease)}
.page-light .brand-mark,.is-stuck .brand-mark{filter:none}
.is-stuck .brand-mark{height:44px}
.site-nav{margin-left:auto;display:flex;align-items:center;gap:1.9rem}
.site-nav a{font:500 .92rem/1.2 var(--sans);text-decoration:none;color:inherit;min-height:44px;display:inline-flex;align-items:center;border-bottom:1px solid transparent;transition:border-color .25s var(--ease)}
.site-nav a:hover{border-bottom-color:currentColor}
.site-nav a[aria-current]:not(.btn){border-bottom-color:currentColor}
.site-nav .btn{min-height:44px;padding:.6rem 1.3rem;background:var(--white);border-color:var(--white);color:var(--ink)}
.site-nav .btn:hover{background:#eef0ec;border-color:#eef0ec}
.page-light .site-nav .btn,.is-stuck .site-nav .btn{background:var(--teal);border-color:var(--teal);color:#fffdf9}
.page-light .site-nav .btn:hover,.is-stuck .site-nav .btn:hover{background:var(--teal-deep);border-color:var(--teal-deep)}
.menu-button{display:none;margin-left:auto;min-height:44px;padding:.5rem .2rem;background:transparent;border:0;border-bottom:1px solid currentColor;color:inherit;font:500 .95rem/1.2 var(--sans);cursor:pointer}
.nav-close,.nav-note{display:none}
@media (max-width:80em){.site-nav{gap:1.5rem}}
/* Header breakpoints in em, so larger browser text sizes switch to the full-screen menu instead of overflowing. */
@media (max-width:68.75em){
  .site-nav{display:none}
  .js .menu-button{display:inline-flex;align-items:center;gap:.6rem}
  .js .site-nav.open{display:flex;position:fixed;inset:0;z-index:40;flex-direction:column;align-items:flex-start;justify-content:center;gap:0;padding:var(--gutter);background:var(--ivory);color:var(--ink);overflow:auto}
  .js .site-nav.open>a{font:400 clamp(2rem,7.5vw,2.8rem)/1.15 var(--serif);letter-spacing:-.02em;padding:.5rem 0;border:0;min-height:0}
  .js .site-nav.open>a[aria-current]{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;text-decoration-color:var(--tide)}
  .js .site-nav.open .btn{margin-top:1.75rem;font:500 1rem/1.2 var(--sans);padding:1rem 1.6rem;background:var(--teal);border-color:var(--teal);color:#fffdf9;width:100%;max-width:22rem}
  .js .site-nav.open .nav-close{display:block;position:absolute;top:1.25rem;right:var(--gutter);font:500 .95rem/1.2 var(--sans);padding:.6rem .2rem;border:0;border-bottom:1px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer;min-height:44px}
  .js .site-nav.open .nav-note{display:block;margin-top:2.5rem;font-size:.95rem;color:var(--text-2);max-width:26rem}
  .js .site-nav.open .nav-note a{display:inline;font:inherit;color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;border:0;padding:0;min-height:0}
  .js .site-nav.open :focus-visible{outline-color:var(--tide)}
  body.menu-open{overflow:hidden}
}
@media (scripting:none){.site-header{position:relative;background:var(--teal)}}

/* ---------- Home opening (accepted image and wording) ---------- */
.immersive-hero{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;text-align:center;color:#fffefa;min-height:min(66svh,580px);background:#233a3d}
.immersive-hero>img,.immersive-hero>picture>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--focus,50% 50%);z-index:-2}
.immersive-hero::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(8,24,27,.66),rgba(8,24,27,.18) 28%,rgba(8,24,27,.42) 48%,rgba(8,24,27,.6) 76%,rgba(8,24,27,.7))}
.immersive-copy{width:min(100% - 4rem,1060px);padding:calc(var(--header-h) + 2.5rem) 0 3.25rem}
.immersive-copy h1{color:#fffefa;font-size:clamp(3rem,5.4vw,4.9rem);letter-spacing:-.032em;line-height:1.04;margin:0 auto 1.1rem;max-width:16ch;text-shadow:0 2px 24px rgba(8,24,27,.35)}
.immersive-copy>p{font-size:1.15rem;margin:0 auto 1.6rem;color:#fffefa;max-width:none;text-shadow:0 1px 14px rgba(8,24,27,.4)}
.immersive-copy .hero-place{font:500 .78rem/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;margin-bottom:1.2rem;color:#fffefa;text-shadow:0 0 3px rgba(8,24,27,.55),0 1px 12px rgba(8,24,27,.6)}
.immersive-copy .button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:.9rem 2.2rem;border:1px solid var(--white);border-radius:var(--radius);color:var(--ink);background:var(--white);font:500 .95rem/1.2 var(--sans);text-decoration:none;transition:background .25s var(--ease)}
.immersive-copy .button:hover{background:#eef0ec}
.image-credit{font-size:.8rem;color:var(--meta);padding:.6rem 0 0}
@media (max-width:960px){.immersive-copy h1{font-size:3.4rem}}
@media (max-width:700px){
  .immersive-hero{min-height:min(50svh,420px)}
  .immersive-copy{width:calc(100% - 3rem);padding:6rem 0 3rem}
  .immersive-copy h1{font-size:2.7rem;max-width:12ch;line-height:1.08;margin-bottom:1rem}
  .immersive-copy .hero-place{font-size:.72rem;margin:0 auto 1.4rem}
  .immersive-copy>p{font-size:1.02rem;max-width:20rem;margin:0 auto 1.6rem}
  .immersive-copy .button{width:100%;max-width:22rem}
}
@media (max-width:374px){.immersive-copy h1{font-size:2.35rem}}

/* ---------- scenes (photographic openings and closings) ---------- */
.scene{position:relative;isolation:isolate;display:grid;color:#fffdf9;min-height:min(54svh,500px);background:var(--teal);overflow:hidden}
.scene--band,.scene--short,.scene--closing{min-height:0}
.scene-media{position:absolute;inset:0;z-index:-2;background:var(--teal)}
.scene-media img,.scene-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--focus,50% 50%);filter:saturate(.86) contrast(.97)}
.scene::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(9,25,32,.42) 0%,rgba(9,25,32,.24) 22%,rgba(9,25,32,.5) 48%,rgba(9,25,32,.8) 100%)}
.scene--centre::before{background:linear-gradient(180deg,rgba(9,25,32,.46),rgba(9,25,32,.56) 45%,rgba(9,25,32,.74))}
.scene-copy{position:relative;z-index:1;width:var(--wide);margin:auto auto 0;padding:calc(var(--header-h) + 2rem) 0 clamp(2.25rem,4vw,3.25rem)}
.scene--centre .scene-copy{margin:auto;text-align:center;padding-top:calc(var(--header-h) + 2rem)}
.scene--closing .scene-copy,.scene--short .scene-copy{padding-top:clamp(2.75rem,4.5vw,3.75rem);padding-bottom:clamp(2.75rem,4.5vw,3.75rem)}
.scene--centre .scene-copy>*{margin-inline:auto}
.scene--centre .scene-copy p{max-width:34rem}
.scene--centre .actions{justify-content:center}
.scene h1,.scene h2{color:#fffdf9;max-width:14ch;text-shadow:0 1px 24px rgba(0,0,0,.3);margin-bottom:.6rem}
.scene .place{color:#fffdf9;text-shadow:0 0 3px rgba(8,24,27,.55),0 1px 12px rgba(8,24,27,.6)}
/* Contrast (WCAG 1.4.3, 17 Sep 2026): a soft shade behind the left-aligned hero copy, measured 4.7–8:1 on every hero. */
.scene--opening::after,.scene--band::after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,rgba(9,25,32,.5) 0%,rgba(9,25,32,.32) 50%,rgba(9,25,32,0) 85%)}
@media (max-width:700px){.scene--opening::after,.scene--band::after{background:linear-gradient(180deg,rgba(9,25,32,.45) 0%,rgba(9,25,32,.3) 60%,rgba(9,25,32,.1) 100%)}}
.scene p{color:#fffdf9;max-width:36rem;font-size:1.15rem;text-shadow:0 1px 14px rgba(0,0,0,.35)}
.scene .note{font-size:.88rem;color:rgba(255,253,249,.8)}
.scene p a{color:inherit;text-decoration-color:rgba(255,253,249,.7)}
.scene .lede{color:#fffdf9;max-width:30ch}
.scene .next{position:absolute;right:var(--gutter);bottom:.8rem;z-index:1;font-size:.88rem;min-height:0;padding:.35rem 0}

/* ---------- introduction (editorial split) ---------- */
.letter{width:var(--wide);margin-inline:auto;padding-block:var(--s-norm) var(--s-tight);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:1.25rem 4rem;align-items:start}
.letter h2{max-width:13ch;margin-bottom:0}
.letter .prose{max-width:52ch;padding-top:.4rem}
.letter .prose>p:first-child{font-family:var(--serif);font-size:clamp(1.3rem,1.8vw,1.6rem);line-height:1.42;letter-spacing:-.01em;color:var(--ink);margin-bottom:1.2rem}
.letter--tight{padding-block:var(--s-tight)}
.letter .actions{margin-top:.5rem;margin-bottom:.5rem}
.letter .gtk{margin-top:1.25rem}
.statement{width:var(--wide);margin-inline:auto;padding-block:var(--s-norm);display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:.75rem 4rem;align-items:start}
.statement .place{grid-column:1/-1}
.statement h2{max-width:16ch;margin-bottom:0}
.statement p:not(.place){max-width:var(--measure);font-size:1.15rem;padding-top:.5rem}
.statement .actions{grid-column:2;margin-top:0}
.statement>p:not(.place){margin-bottom:0}
.stone>.statement{width:var(--wide)}

/* ---------- pathway panels (signature) ---------- */
.pathways{padding-block:var(--s-norm)}
.pathways-head{width:var(--wide);margin-inline:auto;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:.5rem 4rem;align-items:end;margin-bottom:1.5rem}
.pathways-head p{max-width:var(--measure-sm);color:var(--text-2)}
.panels{width:var(--wide);margin-inline:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem}
.panel{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr);align-content:end;aspect-ratio:3/2;max-height:min(60svh,480px);padding:clamp(1.5rem,2.5vw,2.25rem);color:#fffdf9;text-decoration:none;overflow:hidden;background:var(--teal)}
.panel img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:var(--focus,50% 50%);filter:saturate(.86) contrast(.97);transition:transform 1.4s var(--ease)}
.panel::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(9,25,32,.15) 20%,rgba(9,25,32,.6) 50%,rgba(9,25,32,.85) 100%)}
.panel:hover img{transform:scale(1.02)}
.panel .place{color:#fffdf9;margin-bottom:.7rem;text-shadow:0 0 3px rgba(8,24,27,.55),0 1px 12px rgba(8,24,27,.6)}
.panel h3{color:#fffdf9;font-size:clamp(1.6rem,2.3vw,2.2rem);line-height:1.1;max-width:16ch;margin-bottom:.5rem;text-shadow:0 1px 18px rgba(0,0,0,.3)}
.panel p{color:#fffdf9;max-width:34ch;overflow-wrap:anywhere;font-size:1.02rem;margin-bottom:.7rem;text-shadow:0 1px 12px rgba(0,0,0,.35)}
.panel .link{padding:0;min-height:0}

/* ---------- editorial split: photograph beside words (asymmetric) ---------- */
.plate{width:var(--wide);margin-inline:auto;padding-block:var(--s-norm);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:1.5rem 4rem;align-items:start}
.plate+.plate{padding-top:0}
.plate figure{position:relative}
.plate img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;object-position:var(--focus,50% 50%);background:var(--stone)}
.plate--portrait img{aspect-ratio:5/4}
.plate>div{padding-top:clamp(.25rem,1.5vw,1.25rem)}
.plate .prose{max-width:48ch}
.plate--flip figure{order:2}
.plate--flip{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
.plate--flip>div{padding-top:clamp(.25rem,1.5vw,1.25rem)}
.plate h2{max-width:16ch}
.plate--large h2{font-size:clamp(2rem,3.1vw,2.9rem);letter-spacing:-.02em;line-height:1.06}
.plate .gtk{margin-top:1.25rem}

/* ---------- experience mosaic ---------- */
.mosaic-section{padding-block:var(--s-norm)}
.mosaic-head{width:var(--wide);margin-inline:auto;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:.5rem 4rem;align-items:end;margin-bottom:1.5rem}
.mosaic-head p{max-width:var(--measure-sm);color:var(--text-2)}
.mosaic{width:var(--wide);margin-inline:auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:clamp(184px,15.5vw,200px);gap:.75rem;list-style:none;padding:0;margin-inline:auto}
.mosaic li{position:relative;isolation:isolate;overflow:hidden;background:var(--stone);min-width:0}
.mosaic li a{display:grid;align-content:end;height:100%;padding:1.1rem 1.2rem;color:#fffdf9;text-decoration:none;position:relative}
.mosaic li img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:var(--focus,50% 50%);filter:saturate(.88) contrast(.97);transition:transform 1.4s var(--ease)}
.mosaic li a::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(9,25,32,0) 40%,rgba(9,25,32,.7))}
.mosaic li a:hover img{transform:scale(1.02)}
.mosaic .tile-title{font-family:var(--serif);font-size:clamp(1.15rem,1.6vw,1.45rem);line-height:1.2;letter-spacing:-.01em}
.mosaic .tile-sub{font:400 .78rem/1.4 var(--sans);opacity:.85;margin-top:.25rem}
.mosaic .span-2{grid-column:span 2}
.mosaic .tall{grid-row:span 2}
.mosaic .big{grid-column:span 2;grid-row:span 2}
.mosaic .type-tile a{color:var(--ink);align-content:center;background:var(--stone)}
.mosaic .type-tile a::before{display:none}
.mosaic .type-tile .tile-title{font-size:clamp(1.3rem,1.9vw,1.7rem);max-width:10ch}
.mosaic .type-tile .tile-sub{color:var(--text-2);opacity:1}
.mosaic .type-tile a:hover{background:#e7e1d5}
.mosaic-note{width:var(--wide);margin:.9rem auto 0}

/* ---------- Deb and Ian ---------- */
.hosts{width:var(--wide);margin-inline:auto;padding-block:var(--s-norm);display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:0;align-items:center}
.hosts figure{position:relative;z-index:1;margin-right:-4rem}
.hosts img{width:100%;height:auto;aspect-ratio:5/4;object-fit:cover;object-position:var(--focus,50% 25%);background:#d9d5cf}
.hosts>div{background:var(--stone);padding:clamp(2rem,3.5vw,3rem) clamp(1.75rem,4vw,3.5rem) clamp(2rem,3.5vw,3rem) clamp(4.5rem,7vw,6.5rem);margin-top:1.5rem}
.hosts h2{font-size:clamp(2rem,3.1vw,2.9rem);letter-spacing:-.02em;line-height:1.06;max-width:12ch}
.hosts .prose{max-width:46ch}
.hosts .prose p{font-size:1.0625rem}

/* ---------- galleries ---------- */
.gallery-section{padding-block:var(--s-tight)}
.gallery-section+.gallery-section{border-top:1px solid var(--line)}
.gallery-head{width:var(--wide);margin-inline:auto;display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:.5rem 4rem;align-items:end;padding-bottom:1rem}
.gallery-head p{max-width:var(--measure);color:var(--text-2)}
.gallery-head.in-wide{width:auto}
.feature{width:var(--wide);margin-inline:auto;display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);grid-template-rows:auto auto;gap:1rem}
.feature figure{display:grid;grid-template-rows:1fr auto}
.feature figure:first-child{grid-row:1/span 2}
.feature img{width:100%;height:100%;aspect-ratio:16/9;object-fit:cover;object-position:var(--focus,50% 50%);background:var(--stone)}
.gallery-photo{display:block;position:relative;overflow:hidden;text-decoration:none;color:inherit;height:100%}
.gallery-photo img{transition:transform 1.4s var(--ease)}
.gallery-photo:hover img{transform:scale(1.02)}
.gallery-more{width:var(--wide);margin:.75rem auto 0}
.gallery-more[open]>summary::after{content:'−'}
.gallery-more[open]>summary{margin-bottom:1rem}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:0 0 .5rem}
.gallery-grid img{width:100%;aspect-ratio:3/2;object-fit:cover;background:var(--stone)}

#photo-dialog{width:min(96vw,1400px);max-width:none;max-height:96vh;margin:auto;padding:0;border:0;background:transparent;color:#fffdf9;overflow:visible}
#photo-dialog::backdrop{background:rgba(12,24,30,.95)}
#photo-dialog img{width:100%;max-height:76vh;object-fit:contain;margin-inline:auto}
.lightbox-top{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:0 0 .8rem}
.lightbox-top p{margin:0;font:400 1rem/1 var(--serif);letter-spacing:.06em;color:#dfe5e2}
.lightbox-close,.lightbox-controls button{min-height:44px;min-width:44px;padding:.6rem 1rem;border:1px solid rgba(255,253,249,.55);border-radius:var(--radius);background:transparent;color:#fffdf9;font:500 .95rem/1.2 var(--sans);cursor:pointer;transition:background .25s var(--ease)}
.lightbox-close:hover,.lightbox-controls button:hover{background:rgba(255,253,249,.12)}
#photo-title{margin:.9rem 0 0;font-size:.95rem;color:#e6ebe8}
.lightbox-controls{display:flex;justify-content:space-between;margin-top:.9rem}
body.modal-open{overflow:hidden}

/* ---------- film ---------- */
.film{padding:var(--s-norm) max(1.5rem,(100% - 1280px)/2);display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:1.5rem 3.5rem;align-items:start}
.film-head{margin:0}
.film-head h2{max-width:12ch}
.film:has(.tours) .film-head{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:.5rem 3.5rem;align-items:end}
.film-head p{max-width:var(--measure-sm);color:var(--text-2)}
.film-head p+p{margin-top:.5rem}
.tour{width:100%;min-width:0}
.tour video{width:100%;aspect-ratio:16/9;background:#0f2228;object-fit:contain}
.tour-meta{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem 1.5rem;margin-top:.7rem}
.tour-meta h3{font:500 .95rem/1.5 var(--sans);letter-spacing:0;margin:0;color:var(--ink)}
.tour-meta h3 span{color:var(--meta);font-weight:400}
.tour-more{flex:1 1 100%;font-size:.9rem;color:var(--text-2)}
.tour-more summary{display:inline-flex;align-items:center;gap:.4rem;min-height:40px;padding:.3rem 0;cursor:pointer;list-style:none;font:500 .88rem/1.2 var(--sans);color:var(--text-2);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.3em;text-decoration-color:var(--tide)}
.tour-more summary::-webkit-details-marker{display:none}
.tour-more summary::after{content:none}
.tour-more[open] summary{color:var(--ink)}
.tour-more>div{padding:.6rem 0 1rem;max-width:66ch}
.tour-more p{font-size:.9rem;color:var(--text-2)}
.tour-placeholder{color:var(--tide)}
.tour-more .transcript{margin-top:.9rem;padding-top:.9rem;border-top:1px solid var(--line)}
.tour-more .transcript p{max-width:65ch}
.tour-more a{display:inline-block;margin:.25rem 0 .5rem}
.tours{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2rem}

/* ---------- questions, interests, notes ---------- */
.two-col{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:1.25rem 4rem;align-items:start;width:var(--wide);margin-inline:auto;padding-block:var(--s-norm)}
.two-col .prose{max-width:var(--measure)}
.two-col h2{max-width:14ch}
.faq details,.interests details{border-top:1px solid var(--line-strong)}
.faq details:last-child{border-bottom:1px solid var(--line-strong)}
.faq summary,.interests summary{position:relative;list-style:none;cursor:pointer;font-family:var(--serif);font-size:clamp(1.15rem,1.55vw,1.35rem);line-height:1.3;color:var(--ink);padding:.9rem 2.75rem .9rem .25rem;min-height:48px;transition:background .25s var(--ease)}
.faq summary::-webkit-details-marker,.interests summary::-webkit-details-marker{display:none}
.faq summary:hover,.interests summary:hover{background:rgba(0,0,0,.03)}
.faq summary::after,.interests summary::after{content:'+';position:absolute;right:.3rem;top:50%;transform:translateY(-50%);font:300 1.6rem/1 var(--sans);color:var(--tide)}
details[open]>summary::after{content:'−'}
.faq details>div,.interests details>p{padding:.1rem .25rem 1.1rem;max-width:var(--measure);font-size:1rem;color:var(--text-2)}
.interests{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 4rem}
.interests details:nth-last-child(-n+2){border-bottom:1px solid var(--line-strong)}
.interests details[open]>summary{background:rgba(0,0,0,.03);color:var(--tide)}
.tag{display:inline-block;font:500 .74rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--tide);border:1px solid rgba(60,107,103,.45);border-radius:var(--radius);padding:.35rem .5rem;vertical-align:middle;margin-left:.6rem}
.gtk{border-top:1px solid var(--line);padding-top:.75rem;margin-top:1.25rem;max-width:var(--measure-sm)}
.gtk b{display:block;font:500 .72rem/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--meta);margin-bottom:.35rem}
.gtk p{font-size:.9rem;line-height:1.55;color:var(--text-2)}
.small-details{border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);margin-top:1.5rem}
.small-details p{font-size:.95rem;color:var(--text-2);padding-bottom:.9rem}
.small-details summary,.gallery-more>summary{position:relative;list-style:none;cursor:pointer;padding:.9rem 2.75rem .9rem .25rem;min-height:48px;font:500 .95rem/1.4 var(--sans);color:var(--ink);transition:background .25s var(--ease)}
.small-details summary::-webkit-details-marker,.gallery-more>summary::-webkit-details-marker{display:none}
.small-details summary::after,.gallery-more>summary::after{content:'+';position:absolute;right:.3rem;top:50%;transform:translateY(-50%);font:300 1.6rem/1 var(--sans);color:var(--tide)}
.small-details summary:hover,.gallery-more>summary:hover{background:rgba(0,0,0,.03)}
.gallery-more{border-top:1px solid var(--line-strong)}

/* ---------- process steps, rhythm, choices ---------- */
.steps{list-style:none;margin:0;padding:0;counter-reset:step;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem 2.5rem}
.steps li{counter-increment:step;border-top:1px solid var(--line-strong);padding-top:1rem}
.steps li::before{content:'0' counter(step);display:block;font:400 1rem/1 var(--serif);letter-spacing:.04em;color:var(--tide);margin-bottom:.8rem}
.steps h3{font-size:1.3rem;margin-bottom:.4rem}
.steps p{font-size:.98rem;color:var(--text-2);margin:0}
.rhythm{list-style:none;padding:0;margin:0;counter-reset:day}
.rhythm li{display:grid;grid-template-columns:3rem 1fr;gap:.75rem 1rem;padding:.85rem 0;border-top:1px solid var(--line);counter-increment:day}
.rhythm li:last-child{border-bottom:1px solid var(--line)}
.rhythm li::before{content:counter(day);font:400 1.4rem/1 var(--serif);color:var(--tide);padding-top:.2rem;grid-row:1/span 2}
.rhythm h3,.rhythm p{grid-column:2}
.rhythm h3{font-size:1.25rem;margin-bottom:.3rem}
.rhythm p{font-size:.98rem;color:var(--text-2);margin:0}
.choices{display:flex;flex-wrap:wrap;gap:.7rem;margin:1.2rem 0 .9rem}
.choices a{display:inline-flex;align-items:center;justify-content:center;min-width:7rem;min-height:48px;padding:.7rem 1.1rem;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--white);text-decoration:none;font:500 .95rem/1.2 var(--sans);color:var(--ink);transition:border-color .25s var(--ease),background .25s var(--ease)}
.choices a:hover{border-color:var(--teal);background:var(--sea)}

/* ---------- testimonials (one at a time) ---------- */
.quote-stage{width:var(--wide);margin-inline:auto;padding-block:var(--s-norm);display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:1.25rem 4rem;align-items:start}
.quote-stage h2{font-size:clamp(1.5rem,2.2vw,1.9rem);margin-bottom:.5rem}
.quote-stage .note{max-width:26ch}
.quote-list{margin:0;padding:0;list-style:none;border-top:1px solid var(--line-strong);padding-top:1.25rem}
.quote-list blockquote{margin:0}
.quote-list p{overflow-wrap:anywhere;font-family:var(--serif);font-size:clamp(1.5rem,2.3vw,2.15rem);line-height:1.25;letter-spacing:-.016em;color:var(--ink);max-width:26ch;margin-bottom:.9rem}
.quote-list footer{font:500 .82rem/1.3 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--text-2)}
.js .quote-list li{display:none}
.js .quote-list li.is-active{display:block}
html:not(.js) .quote-list li+li{margin-top:2rem}
.quote-nav{display:none;align-items:center;gap:.6rem;margin-top:1.25rem}
.js .quote-nav{display:flex}
.quote-nav button{min-width:44px;min-height:44px;border:1px solid var(--line-strong);border-radius:var(--radius);background:transparent;color:var(--ink);font:400 1.1rem/1 var(--sans);cursor:pointer;transition:border-color .25s var(--ease),background .25s var(--ease)}
.quote-nav button:hover{border-color:var(--teal);background:var(--sea)}
.quote-nav output{font:400 .95rem/1 var(--serif);letter-spacing:.08em;color:var(--meta);margin-left:.5rem}

.facts{list-style:none;padding:0;margin:0;columns:2;column-gap:3rem}
.facts li{padding:.6rem 0;border-top:1px solid var(--line);break-inside:avoid;font-size:1rem}

/* ---------- portrait, bios (About) ---------- */
.portrait{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);align-items:center;width:var(--wide);margin-inline:auto;padding-block:var(--s-tight) var(--s-norm);gap:1.5rem 4rem}
.portrait img{width:100%;height:auto;aspect-ratio:5/4;object-fit:cover;background:#d9d5cf}
.portrait--top{padding-top:calc(var(--header-h) + var(--s-tight))}
.portrait .prose{max-width:44ch;padding-bottom:.5rem}
.bios{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.5rem 4rem;width:var(--wide);margin-inline:auto;padding-block:var(--s-norm)}
.bios h2{font-size:clamp(1.7rem,2.3vw,2.1rem);margin-bottom:.25rem}
.bios article>p:first-of-type{font-family:var(--serif);font-size:1.3rem;line-height:1.35;color:var(--ink);margin-bottom:.8rem}
.bios article p{max-width:52ch}

/* ---------- planner ---------- */
.planner{width:var(--wide);margin-inline:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,30%);min-width:0;gap:2rem 3.5rem;padding-block:var(--s-tight) var(--s-norm);align-items:start}
#demo-fields{border:0;padding:0;margin:0;min-inline-size:0}
.planner-main{min-width:0}
.form-notice{border-top:1px solid var(--line);padding:.75rem 0 0;margin-bottom:1.25rem;font-size:.92rem;color:var(--text-2);max-width:var(--measure)}
.form-notice strong{display:block;font:500 .72rem/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--meta);margin-bottom:.35rem}
.form-notice p{margin:0;font-size:.92rem}
.step-nav ol{list-style:none;margin:0 0 .35rem;padding:0;display:flex;gap:.15rem;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--line-strong)}
.step-nav ol::-webkit-scrollbar{display:none}
.step-nav li{flex:0 0 auto}
.step-nav button{display:inline-flex;align-items:center;gap:.55rem;min-height:48px;padding:.6rem .85rem;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;background:transparent;color:var(--text-2);font:500 .9rem/1.2 var(--sans);cursor:pointer;white-space:nowrap}
.step-nav button span:first-child{font:400 1.05rem/1 var(--serif);color:var(--tide)}
.step-nav button[aria-current]{color:var(--ink);border-bottom-color:var(--teal)}
.step-nav button[aria-current] span:first-child{color:var(--ink)}
.step-nav button.completed{color:var(--ink)}
.step-nav button:disabled{color:#737f7c;cursor:default}
.step-nav button:disabled span:first-child{color:#737f7c}
.step-nav button:not(:disabled):not([aria-current]):hover{color:var(--ink);border-bottom-color:var(--line-strong)}
.step-nav button.completed span:first-child::after{content:' ✓';font-family:var(--sans);font-size:.75rem;color:var(--tide)}
progress{appearance:none;-webkit-appearance:none;display:block;width:100%;height:3px;border:0;background:var(--line);margin:0 0 1.25rem}
progress::-webkit-progress-bar{background:var(--line)}
progress::-webkit-progress-value{background:var(--tide)}
progress::-moz-progress-bar{background:var(--tide)}
.step-topline{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;scroll-margin-top:calc(var(--header-h) + 1rem);margin-bottom:1rem}
.step-topline p{margin:0;font:500 .875rem/1.3 var(--sans);color:var(--text-2)}
.reset-link{background:none;border:0;padding:.4rem 0;min-height:44px;font:500 .875rem/1.2 var(--sans);color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.3em;text-decoration-color:var(--tide);cursor:pointer}
.reset-link:hover,.menu-button:hover,.nav-close:hover{opacity:.8}
.error-summary{border-left:3px solid var(--error);padding:.8rem 1rem;margin:0 0 1.25rem;background:#faf0ec;color:var(--error);font-size:.95rem;font-weight:500}
.form-step h2{font-size:clamp(1.7rem,2.4vw,2.1rem);margin-bottom:.4rem}
.form-step h2:focus{outline:0}
.form-step>p{color:var(--text-2);margin-bottom:1.25rem}
.option-group{border:0;padding:0;margin:0 0 1.5rem}
.option-group legend{font:500 1.05rem/1.4 var(--sans);color:var(--ink);padding:0;margin-bottom:.7rem}
.option-group legend span{display:block;font-weight:400;font-size:.9rem;color:var(--text-2)}
.choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.7rem}
.choice-grid--compact{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.choice{position:relative;display:flex;gap:.85rem;align-items:flex-start;padding:.85rem 1rem;min-height:52px;border:1px solid var(--field-border);border-radius:var(--radius);background:var(--white);cursor:pointer;transition:border-color .2s var(--ease),background .2s var(--ease),box-shadow .2s var(--ease)}
.choice:hover{border-color:var(--teal)}
.choice:has(input:checked){border-color:var(--teal);background:var(--sea);box-shadow:inset 0 0 0 1px var(--teal)}
.choice:has(input:checked)::after{content:'✓';position:absolute;right:.9rem;top:.85rem;font:500 .9rem/1 var(--sans);color:var(--tide)}
.choice:has(input:focus-visible){outline:2px solid var(--tide);outline-offset:2px}
.choice input{margin:.3rem 0 0;accent-color:var(--teal);flex:0 0 auto}
.choice span{display:block;padding-right:1.25rem}
.choice strong{display:block;font-weight:500;font-size:1rem;color:var(--ink)}
.choice small{display:block;font-size:.9rem;color:var(--text-2);margin-top:.15rem}
.check-grid{display:flex;flex-wrap:wrap;gap:.5rem .55rem}
.check-choice{display:inline-flex;gap:.55rem;align-items:center;padding:.5rem 1rem .5rem .8rem;min-height:44px;border:1px solid var(--field-border);border-radius:999px;background:var(--white);font-size:.95rem;line-height:1.3;color:var(--ink);cursor:pointer;transition:border-color .2s var(--ease),background .2s var(--ease)}
.check-choice:hover{border-color:var(--teal)}
.check-choice:has(input:checked){border-color:var(--teal);background:var(--sea);color:var(--teal-deep);font-weight:500}
.check-choice:has(input:focus-visible){outline:2px solid var(--tide);outline-offset:2px}
.check-choice input{margin:0;accent-color:var(--teal);width:1rem;height:1rem;flex:0 0 auto}
.form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem 1.5rem}
.field{margin:0 0 1rem}
.field label{display:block;font:500 .95rem/1.4 var(--sans);color:var(--ink);margin-bottom:.4rem}
.field input,.field select,.field textarea{width:100%;max-width:100%;min-width:0;min-height:50px;padding:.7rem .9rem;border:1px solid var(--field-border);border-radius:var(--radius);background:var(--white);color:var(--ink);font:400 1rem/1.4 var(--sans);transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--teal);box-shadow:0 0 0 2px rgba(60,107,103,.25)}
.field textarea{resize:vertical;min-height:6rem}
.field input[aria-invalid="true"],.field select[aria-invalid="true"],.field textarea[aria-invalid="true"]{border-color:var(--error);box-shadow:0 0 0 2px rgba(151,56,38,.18)}
.field small{display:block;font-size:.88rem;color:var(--meta);margin-top:.4rem}
.field-error{display:block;color:var(--error);font-size:.9rem;font-weight:500;margin-top:.4rem}
.field-error:empty{display:none}
.suitability-note{border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);padding:1.25rem 0;margin:0 0 1.5rem}
.suitability-note h3{font-size:1.25rem;margin-bottom:.5rem}
.suitability-note p{font-size:.95rem;color:var(--text-2)}
.confirm-check{display:flex;gap:.9rem;align-items:flex-start;padding:1.1rem 0;border-top:1px solid var(--line-strong);margin-top:1rem;font-size:.95rem;color:var(--text-2);cursor:pointer}
.confirm-check input{margin:.3rem 0 0;accent-color:var(--teal);flex:0 0 auto}
.wizard-actions{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--line-strong)}
.success{background:var(--stone);padding:1.75rem clamp(1.25rem,3vw,2.25rem) 2rem;border-radius:var(--radius)}
.success h3{font:500 .78rem/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--meta);margin:1.5rem 0 .5rem}
.success:focus{outline:0}
.success h2{font-size:clamp(1.8rem,3vw,2.5rem)}
.success .place{margin-bottom:.6rem}
.success>p{max-width:56ch}
.success-status{font-weight:500;color:var(--tide)}
#retreat-summary{display:grid;grid-template-columns:minmax(9rem,auto) 1fr;gap:.55rem 1.5rem;margin:0 0 1.25rem;font-size:1rem;background:var(--white);padding:1.25rem 1.4rem;border-radius:var(--radius)}
#retreat-summary dt{color:var(--text-2)}
#retreat-summary dd{margin:0;color:var(--ink)}
.success .actions{margin-top:1.25rem}
.planner-aside{position:sticky;top:calc(var(--header-h) + 1rem)}
.plan-overview{background:var(--stone);padding:1.5rem 1.5rem 1.6rem;border-radius:var(--radius)}
.plan-overview h2{font-size:1.55rem;margin-bottom:.9rem}
.plan-overview dl{display:grid;grid-template-columns:auto 1fr;gap:.6rem 1.1rem;margin:0 0 1.1rem;font-size:.98rem;border-top:1px solid var(--line-strong);padding-top:.9rem}
.plan-overview dt{color:var(--text-2)}
.plan-overview dd{margin:0;color:var(--ink);font-weight:500}
.plan-overview .note{font-size:.9rem}
.planner-aside figure{margin:1.5rem 0 0}
.planner-aside figure img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 60%}
.aside-help{margin-top:1.25rem;font-size:.95rem}
.aside-contact{margin:1.5rem 0 0;font-size:.98rem;color:var(--text);max-width:none}
.aside-contact a{white-space:nowrap}
.reassure{font-size:.92rem;color:var(--text-2);margin:1rem 0 0}
.interest-group{margin:0 0 1.5rem}
.interest-group legend span:not(.tag){display:block;font:400 .9rem/1.4 var(--sans);color:var(--meta);letter-spacing:0;text-transform:none}
.interests summary .tag,.option-group legend .tag{display:inline-block;margin-left:.5rem;vertical-align:.15em}
.option-group legend .tag{margin-left:.6rem}
.next-steps{list-style:none;margin:0;padding:0;counter-reset:step;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem 2.5rem}
.next-steps li{counter-increment:step;border-top:1px solid var(--line-strong);padding-top:1rem}
.next-steps li::before{content:'0' counter(step);display:block;font:400 1rem/1 var(--serif);letter-spacing:.04em;color:var(--tide);margin-bottom:.8rem}
.next-steps h3{font-size:1.3rem;margin-bottom:.35rem}
.next-steps p{font-size:.98rem;color:var(--text-2);margin:0}

/* ---------- in-page anchors ---------- */
.anchors{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--ivory)}
.anchors>div{display:flex;flex-wrap:wrap;align-items:center;gap:0 1.75rem;min-height:52px}
.anchors span{font:500 .72rem/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--meta);margin-right:.25rem}
.anchors a{font:500 .95rem/1.2 var(--sans);text-decoration:none;color:var(--ink);padding:.9rem 0;border-bottom:1px solid transparent;transition:border-color .25s var(--ease)}
.anchors a:hover{border-bottom-color:var(--tide)}
.site-nav a:active,.link:active{opacity:.75}
.choices a:focus-visible,.anchors a:focus-visible{outline-offset:2px}

/* ---------- footer ---------- */
.site-footer{background:#2b746f;color:#e8f0ee;padding-block:clamp(2rem,3vw,2.5rem) 1.25rem}
.footer-grid{width:var(--wide);margin-inline:auto;display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:2rem 3rem;align-items:start}
.footer-brand a{display:block;text-decoration:none;margin-bottom:1rem}
.footer-logo{box-sizing:content-box;height:120px;width:auto;max-width:calc(100% - 1.2rem);padding:.55rem .6rem;background:var(--ivory);border-radius:var(--radius)}
.footer-brand .tagline{font-family:var(--serif);font-size:1.15rem;color:#fffdf9;letter-spacing:.02em;margin-bottom:.7rem}
.footer-brand p{font-size:.98rem;color:#e8f0ee;max-width:24rem}
.site-footer h2{font:500 .72rem/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#e8f0ee;margin-bottom:.6rem}
.site-footer a{display:block;text-decoration:none;color:#f3f6f4;padding:.25rem 0;min-height:36px;font-size:.98rem}
.site-footer a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.25em}
.site-footer p{font-size:.98rem;color:#e8f0ee;max-width:24rem}
.footer-bottom{width:var(--wide);margin:1.5rem auto 0;padding-top:.9rem;border-top:1px solid rgba(255,253,249,.18);display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 2rem;font-size:.82rem;color:#e8f0ee}

/* ---------- responsive ---------- */
@media (max-width:1200px){
  .hosts figure{margin-right:-2.5rem}
  .hosts>div{padding-left:clamp(3.5rem,7vw,5rem)}
}
@media (max-width:1100px){
  .letter,.two-col,.film-head,.gallery-head,.pathways-head,.mosaic-head,.quote-stage,.statement,.film{gap:1.25rem 2.5rem}
  .planner{grid-template-columns:minmax(0,1fr) minmax(280px,30%);gap:2rem}
  .plate,.plate--flip{gap:1.5rem 2.5rem}
}
@media (max-width:900px){
  .letter,.two-col,.film-head,.gallery-head,.pathways-head,.mosaic-head,.quote-stage,.statement,.film,.film:has(.tours) .film-head{grid-template-columns:minmax(0,1fr);gap:.75rem}
  .film{gap:1.25rem}
  .statement .actions{grid-column:1}
  .letter h2,.two-col h2,.plate h2{max-width:16ch}
  .letter .prose{padding-top:0}
  .panels{gap:.75rem}
  .panel{max-height:none;min-height:0;padding:1.25rem}
  .panel h3{font-size:clamp(1.35rem,2.6vw,1.7rem)}
  .feature{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto}
  .feature figure:first-child{grid-column:1/-1;grid-row:auto}
  .tours{grid-template-columns:minmax(0,1fr)}
  .interests{grid-template-columns:minmax(0,1fr)}
  .interests details:nth-last-child(-n+2){border-bottom:0}
  .interests details:last-child{border-bottom:1px solid var(--line-strong)}
  .portrait,.plate,.plate--flip{grid-template-columns:minmax(0,1fr);gap:1.25rem}
  .plate>div,.plate--flip>div{padding-top:0}
  .plate--flip figure{order:0}
  .hosts{grid-template-columns:minmax(0,1fr);padding-block:var(--s-norm)}
  .hosts figure{margin:0 0 -2.5rem;width:min(100%,460px)}
  .hosts>div{margin:0 0 0 clamp(1.5rem,8vw,4rem);padding:3.25rem clamp(1.5rem,5vw,2.5rem) 2rem}
  .bios{grid-template-columns:minmax(0,1fr);gap:1.5rem}
  .planner{grid-template-columns:minmax(0,1fr);gap:1.5rem}
  .planner-aside{position:static}
  .planner-aside figure{display:none}
  .steps,.next-steps{grid-template-columns:minmax(0,1fr);gap:1.25rem}
  .gallery-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .footer-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.75rem 2.5rem}
  .facts{columns:1}
  .mosaic{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:.75rem;padding-bottom:.5rem;scrollbar-width:none;width:auto;margin-inline:0;padding-inline:var(--gutter)}
  .mosaic::-webkit-scrollbar{display:none}
  .mosaic li{flex:0 0 min(62vw,300px);aspect-ratio:4/5;scroll-snap-align:start}
  .mosaic .big,.mosaic .span-2{flex-basis:min(80vw,420px)}
  .mosaic-note{width:var(--wide)}
}
@media (max-width:700px){
  :root{--gutter:1.25rem;--s-sig:clamp(2.5rem,9vw,3.5rem);--s-norm:clamp(1.75rem,7vw,2.5rem);--s-tight:clamp(1rem,4vw,1.5rem);--header-h:3.75rem}
  body{font-size:1.0625rem}
  h1{font-size:clamp(2.2rem,9vw,2.8rem)}
  h2{font-size:clamp(1.65rem,6.5vw,2rem)}
  .h-statement{font-size:clamp(1.9rem,8vw,2.4rem)}
  .plate--large h2,.hosts h2{font-size:clamp(1.85rem,7.5vw,2.3rem)}
  .lede,.prose .lede{font-size:1.2rem}
  .scene{min-height:min(48svh,420px)}
  .scene--band,.scene--short,.scene--closing{min-height:0}
  .scene-copy{padding:calc(var(--header-h) + 1.5rem) 0 1.5rem}
  .scene--closing .scene-copy,.scene--short .scene-copy{padding-top:2.25rem;padding-bottom:2.25rem}
  .brand-mark{height:44px}
  .scene h1,.scene h2{max-width:12ch}
  .scene p{font-size:1.02rem}
  .scene .next{position:static;justify-self:start;margin:0 1.25rem 1rem;font-size:.92rem}
  .scene .btn,.wizard-actions .btn{width:100%;max-width:26rem}
  .letter{padding-block:var(--s-norm) var(--s-tight)}
  .feature{grid-template-columns:minmax(0,1fr)}
  .panels{grid-template-columns:minmax(0,1fr)}
  .panel{padding:1.15rem 1.15rem 1.2rem}
  .panel h3{font-size:1.5rem}
  .panel p{font-size:.95rem;max-width:32ch}
  .form-grid,.choice-grid{grid-template-columns:minmax(0,1fr)}
  .choice-grid--compact{grid-template-columns:repeat(2,minmax(0,1fr))}
  .choice-grid--compact .choice{padding:.75rem .85rem}
  .gallery-grid{grid-template-columns:minmax(0,1fr);gap:1rem}
  .footer-grid{grid-template-columns:minmax(0,1fr);gap:1.75rem}
  .quote-list p{font-size:1.5rem}
  #retreat-summary{grid-template-columns:minmax(0,1fr);gap:.2rem .5rem}
  #retreat-summary dd{margin-bottom:.6rem}
  .rhythm li{grid-template-columns:2.4rem 1fr}
  .plan-overview{padding:1.25rem}
  .anchors>div{gap:0 1.2rem;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}
  .anchors>div::-webkit-scrollbar{display:none}
  .anchors a{white-space:nowrap}
  .interests summary .tag{display:block;margin:.5rem 0 0;width:max-content}
  .success{padding:1.5rem 1.1rem}
  .hosts figure{margin-bottom:-1.5rem}
  .hosts>div{margin-left:1rem;padding:2.5rem 1.25rem 1.75rem 1.5rem}
  .tour-meta{margin-top:.75rem}
}
@media (max-height:920px){.planner-aside figure{display:none}}
@media (max-width:374px){
  h1{font-size:2.25rem}
  h2{font-size:1.7rem}
  .brand{gap:.6rem}
  .brand-mark{height:40px}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
  .gallery-photo:hover img,.panel:hover img,.mosaic li a:hover img{transform:none}
}
@media print{
  .site-header,.site-footer,.skip,.wizard-actions,.quote-nav{display:none!important}
  .scene{min-height:0;color:var(--ink)}
  .scene::before{display:none}
  .scene h1,.scene h2,.scene p{color:var(--ink);text-shadow:none}
  .js .quote-list li{display:block}
  body{background:#fff}
}
/* Enquiry form: the field only a script would fill, and the sending state. */
.hp{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
form[aria-busy=true] .wizard-actions .btn{opacity:.7;cursor:progress}
.error-summary:focus{outline:2px solid var(--error);outline-offset:2px}

/* ---------- pathway identities (page-scoped tokens) ----------
   The coastal page and the botanical page swap the accent, band and button tokens; the
   shared header, footer, buttons, links, tags and notes pick them up automatically. */
.theme-coast{--teal:#1f4e79;--teal-deep:#173d5f;--tide:#2b6a94;--sea:#dce9f2;--stone:#f0ebe0;--sand:#e4d8c2}
.theme-botanical{--teal:#2f5d3a;--teal-deep:#24492d;--tide:#44693f;--sea:#e2ebd7;--stone:#f0ede2;--sun:#e3b93f;--sun-pale:#fbf1cc}
.theme-coast .place,.theme-coast .rhythm li::before,.theme-coast .steps li::before{color:var(--tide)}
.theme-coast .scene::before{background:linear-gradient(180deg,rgba(10,34,58,.34) 0%,rgba(10,34,58,.1) 24%,rgba(10,34,58,.3) 50%,rgba(8,30,52,.78) 100%)}
.theme-coast .scene-media img{filter:saturate(1) contrast(1)}
.theme-coast .scene .place,.theme-botanical .scene .place{color:#fffdf9}
.theme-botanical .scene .place::before{background:var(--sun)}
.theme-coast .scene--centre::before{background:linear-gradient(180deg,rgba(10,34,58,.46),rgba(10,34,58,.56) 45%,rgba(8,30,52,.76))}
.theme-coast .gtk{border-top-color:#a9c6da}
.theme-coast .letter .prose>p:first-child{color:#173d5f}
.theme-coast .tag{color:#2b6a94;border-color:rgba(43,106,148,.5)}
.theme-botanical .scene::before{background:linear-gradient(180deg,rgba(22,44,26,.4) 0%,rgba(22,44,26,.2) 22%,rgba(22,44,26,.5) 48%,rgba(18,38,22,.82) 100%)}
.theme-botanical .scene--centre::before{background:linear-gradient(180deg,rgba(22,44,26,.46),rgba(22,44,26,.56) 45%,rgba(18,38,22,.76))}
.theme-botanical .place{color:var(--tide)}
.theme-botanical main .place::before{content:'';display:inline-block;width:.55rem;height:.55rem;border-radius:50%;background:var(--sun);margin-right:.55rem;vertical-align:.05em}
.theme-botanical .scene .place::before{background:var(--sun)}
.theme-botanical .tag{color:#6a5410;border-color:#d9b23b;background:var(--sun-pale)}
.theme-botanical .gtk{border-top-color:#cfd8bf}
.theme-botanical .letter .prose>p:first-child{color:#24492d}
.theme-botanical .choices a:hover{background:var(--sun-pale);border-color:#c9a23a}
.theme-botanical .small-details summary::after{color:#b48f1e}
.theme-botanical .scene-media img{filter:saturate(.94) contrast(.98) sepia(.06)}

/* practices grid (botanical page): information groups on the sage band */
.practices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem 2.5rem;margin:0 0 1.25rem}
.practices article{position:relative;border-top:1px solid #b6c8a8;padding:1rem 0 .25rem}
.practices article::before{content:'';position:absolute;top:-1px;left:0;width:2.25rem;height:3px;background:var(--sun)}
.practices h3{font-size:1.25rem;line-height:1.25;margin-bottom:.35rem}
.practices h3 .tag{display:inline-block;margin:.35rem 0 0;font-size:.68rem}
.practices p{font-size:.98rem;line-height:1.55;color:var(--text-2);margin:0}

/* the discreet cross-link near the introduction, and the compact one near the end */
.other-path{font-size:.98rem;color:var(--text-2);border-top:1px solid var(--line);padding-top:.9rem;margin-top:1.1rem}
.other-path a{color:var(--ink)}
.crosslink{width:var(--wide);margin-inline:auto;padding-block:var(--s-tight)}
.crosslink>div{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 2rem;padding:1.1rem 1.5rem;border-left:4px solid var(--x-accent);background:var(--x-bg)}
.crosslink p{margin:0;font-family:var(--serif);font-size:clamp(1.15rem,1.6vw,1.35rem);line-height:1.3;color:var(--ink)}
.crosslink .link{color:var(--x-accent);padding:.25rem 0;min-height:40px}
.crosslink .link span{text-decoration-color:var(--x-accent)}
.theme-coast .crosslink{--x-accent:#3f6b3c;--x-bg:#e6ecdb}
.theme-botanical .crosslink{--x-accent:#2b6a94;--x-bg:#dfe9f1}

/* homepage choices carry each identity */
.panel--coast::before{background:linear-gradient(180deg,rgba(10,34,58,.12) 20%,rgba(10,34,58,.62) 52%,rgba(8,30,52,.9) 100%)}
.panel--botanical{align-content:start}
.panel--botanical::before{background:linear-gradient(180deg,rgba(18,38,22,.86) 0%,rgba(22,44,26,.55) 42%,rgba(22,44,26,.12) 75%,rgba(22,44,26,.2) 100%)}
.panel--botanical img{object-position:var(--focus,50% 50%)}
.panel--coast::after{content:'';position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,#8ec5ec,#e4d8c2)}
.panel--botanical::after{content:'';position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,#e3b93f,#9bbf8a)}
.panel .place{position:relative;padding-left:1rem}
.panel .place::before{content:'';position:absolute;left:0;top:.35em;width:.55rem;height:.55rem;border-radius:50%}
.panel--coast .place::before{background:#8ec5ec}
.panel--botanical .place::before{background:#e3b93f}
.panel:focus-visible{outline:3px solid #fffdf9;outline-offset:-6px}
.panel:hover .link::after{transform:translateX(4px)}
.panel:hover .link span{text-decoration-color:#fffdf9}
@media (max-width:900px){
  .practices{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
}
@media (max-width:700px){
  .practices{grid-template-columns:minmax(0,1fr);gap:.75rem}
  .crosslink>div{padding:1rem 1.1rem}
}

/* Retired bridge panel styles (unused) */
.blend{position:relative;width:var(--wide);margin:1rem auto 0;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:1rem 3rem;align-items:center;padding:1.4rem clamp(1.25rem,2.5vw,2rem) 1.5rem;background:var(--stone)}
.blend::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#2b6a94 0%,#2b6a94 48%,#4a7446 52%,#4a7446 100%)}
.blend h3{font-size:clamp(1.4rem,2vw,1.75rem);margin-bottom:.4rem}
.blend p{margin:0;max-width:58ch;font-size:1rem;line-height:1.55;color:var(--text-2)}
.blend-action{display:grid;justify-items:start;gap:.7rem}
.blend-action .note{font-size:.88rem;max-width:34ch}
.mix-invite{font-size:.98rem;color:var(--text-2);margin:1.1rem 0 0;max-width:var(--measure-sm)}
.mix-invite .link{display:inline-flex;min-height:0;padding:0;font-size:.95rem;margin-left:.2rem}
@media (max-width:900px){
  .blend{grid-template-columns:minmax(0,1fr);gap:1rem;margin-top:.75rem}
}
@media (max-width:700px){
  .blend{padding:1.2rem 1.1rem 1.3rem}
  .blend-action .btn{width:100%;max-width:26rem}
  .blend-action .note{max-width:none}
}

/* Pathway index cards (unused since the three-retreat comparison) */
.pathway-index{width:var(--wide);margin-inline:auto;padding-block:var(--s-tight) var(--s-norm);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.5rem 3rem}
.index-card{display:block;position:relative;text-decoration:none;color:inherit;border-top:3px solid var(--x);padding-top:1.1rem}
.index-card--coast{--x:#2b6a94}
.index-card--botanical{--x:#4a7446}
.index-card .place{color:var(--x);padding-left:1rem}
.index-card .place::before{content:'';position:absolute;left:0;top:1.45rem;width:.55rem;height:.55rem;border-radius:50%;background:var(--x)}
.index-card--botanical .place::before{background:#e3b93f}
.index-card h2{font-size:clamp(1.55rem,2.2vw,2rem);max-width:16ch;margin-bottom:.5rem}
.index-card>p:not(.place){max-width:44ch;color:var(--text-2);margin-bottom:.9rem}
.index-card .link{padding:0;min-height:0;color:var(--x)}
.index-card .link span{text-decoration-color:var(--x)}
.index-card:hover .link::after{transform:translateX(4px)}
.index-card:hover h2{color:var(--x)}
.index-card:focus-visible{outline:2px solid var(--x);outline-offset:6px}
.index-mix{grid-column:1/-1;border-top:1px solid var(--line);padding-top:.25rem}
.index-mix .mix-invite{margin-top:.75rem}
.choice-grid--pair{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
@media (max-width:900px){
  .pathway-index{grid-template-columns:minmax(0,1fr);gap:1.5rem}
}

/* the two long retreat titles break where they read best, at every size */
.t-line{display:block}
.panel h3 .t-line,.index-card h2 .t-line{display:block}
@media (max-width:1000px){
  .panels{grid-template-columns:minmax(0,1fr)}
  .panel{aspect-ratio:16/10;max-height:none;min-height:0;padding:1.25rem 1.5rem 1.4rem}
}
@media (max-width:700px){
  .panel{aspect-ratio:auto;min-height:15rem;padding:1.25rem 1.25rem 1.3rem}
  .panel--coast{padding-top:4.5rem}
  .panel--botanical{padding-bottom:4.5rem}
}
.scene h1:has(.t-line){max-width:24ch}

/* the footer's small print link (column links are block-level; this one sits inline) */
.footer-bottom a{display:inline;min-height:0;padding:0;margin-left:.5rem;font-size:inherit;color:#fffdf9;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}

/* ---------- privacy policy page ---------- */
.policy{width:var(--wide);margin-inline:auto;padding-block:calc(var(--header-h) + var(--s-norm)) var(--s-norm);display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:1.5rem 4rem;align-items:start}
.policy-head{grid-column:1/-1;max-width:var(--measure)}
.policy-head h1{font-size:clamp(2.3rem,3.8vw,3.4rem);margin-bottom:.6rem}
.policy-head p{color:var(--text-2)}
.policy-toc{position:sticky;top:calc(var(--header-h) + 1rem)}
.policy-toc h2{font:500 .78rem/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--text-2);margin:0 0 .5rem}
.policy-toc ol{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.policy-toc li{border-bottom:1px solid var(--line)}
.policy-toc a{display:block;padding:.5rem 0;font-size:.95rem;line-height:1.35;color:var(--text);text-decoration:none}
.policy-toc a:hover{color:var(--tide);text-decoration:underline}
.policy-body{max-width:52ch;min-width:0}
.policy-body section+section{margin-top:1.9rem;padding-top:1.5rem;border-top:1px solid var(--line)}
.policy-body h2{font-size:clamp(1.45rem,2.1vw,1.8rem);margin-bottom:.55rem}
.policy-body p,.policy-body li{font-size:1.0625rem;line-height:1.65}
.policy-body ul{margin:0 0 1rem;padding-left:1.2rem}
.policy-body li+li{margin-top:.35rem}
.policy-body a{overflow-wrap:anywhere}
.policy-updated{margin-top:2rem;font-size:.95rem;color:var(--meta)}
.privacy-link{white-space:nowrap}
@media (max-width:900px){
  .policy{grid-template-columns:minmax(0,1fr);gap:1.25rem}
  .policy-toc{position:static}
}
/* conditional consent on the Interests step, and the collection notice on the Contact step */
.consent-note .confirm-check{border-top:0;margin-top:.25rem;padding:.4rem 0 .5rem;color:var(--text)}
.consent-list{font-weight:500;color:var(--ink)}
.collection-notice{max-width:none;margin:0 0 1.25rem}


/* ---------- Pass 1–5 composition clean-up (15 Sep 2026) ----------
   Selective: only where two sections' padding and a heading margin stack into a large optical gap.
   Heroes, galleries, mosaic, planner controls and FAQ touch targets are unchanged. */
.page-index .letter{padding-top:calc(var(--s-norm) * .8)}
.letter+.pathways{padding-top:var(--s-join)}
.plate--large{padding-bottom:var(--s-join)}
.page-beach .letter{padding-block:calc(var(--s-norm) * .85) calc(var(--s-tight) * .85)}
.plate+.two-col,.pathway-index+.two-col{padding-top:var(--s-tight)}
.joined>.plate{padding-top:var(--s-tight)}
.quote-stage:has(+.scene--closing),.two-col:has(+.scene--closing){padding-bottom:var(--s-join)}
#faqs{padding-top:calc(var(--s-norm) * .85)}
.page-accommodation .stone>.plate{padding-block:var(--s-join)}
/* a related statement continuing the section above it, on the same ground */
.statement--joined{width:auto;margin-top:var(--s-tight);padding:var(--s-tight) 0 0;border-top:1px solid var(--line-strong)}
/* short introductions beside a heading: a slightly wider measure so they don't stack into narrow columns */
.pathways-head p,.mosaic-head p{max-width:54ch}
/* Retired bridge panel styles (unused) */
.blend{margin-top:.75rem;padding:1.05rem clamp(1.1rem,2vw,1.6rem) 1.15rem;gap:.75rem 2.5rem}
.blend h3{font-size:clamp(1.25rem,1.6vw,1.45rem);margin-bottom:.3rem}
.blend p{font-size:.98rem}
.blend-action{gap:.5rem}
/* holistic interests: heading + one line; a little less dead space, same separation */
.practices{row-gap:1rem}
.practices article{padding:.9rem 0 0}
/* privacy: an editorial opening, not a hero */
.policy{padding-top:calc(var(--header-h) + var(--s-tight))}
.policy-head h1{margin-bottom:.5rem}
@media (max-width:700px){
  /* planner on phones: progress → step heading → copy sits closer, so more of the first choices show */
  .step-nav ol{margin-bottom:.2rem}
  progress{margin-bottom:.6rem}
  .step-topline{margin-bottom:.25rem}
  .form-step h2{margin-bottom:.3rem}
  .form-step>p{margin-bottom:1rem}
  .form-notice{margin-bottom:1rem}
  .blend{padding:1rem 1.1rem 1.1rem}
}

/* ---------- Pass 12–14 micro-polish (15 Sep 2026) ---------- */
/* accordion "+" sits beside the first line of a question, not between two wrapped lines (single-line rows unchanged) */
.faq summary::after,.interests summary::after{top:calc(.9rem + .65 * clamp(1.15rem,1.55vw,1.35rem))}
.small-details summary::after,.gallery-more>summary::after{top:calc(.9rem + .665rem)}
/* short statement bands on a tint: less ceremony around two or three lines of copy (phones unchanged) */
.stone>.statement,.sea>.statement{padding-block:clamp(1.75rem,3vw,2.5rem)}

/* ---------- Pass 15 photography (15 Sep 2026) ---------- */
/* a photograph under the opening heading (Beach, The Retreat): the words run beside both */
.letter-figure{grid-column:1;margin-top:1.75rem;max-width:30rem}
.letter-figure img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:var(--focus,50% 50%);background:var(--stone)}
.letter:has(.letter-figure) .prose{grid-column:2;grid-row:1 / span 2}
.plate--about h2{max-width:14ch}
@media (max-width:900px){
  .letter:has(.letter-figure) .prose{grid-column:1;grid-row:auto}
  .letter-figure{margin-top:.5rem;max-width:none}
  .letter-figure img{aspect-ratio:3/2}
}

/* ---------- Header wordmark, phone number and tall host portrait (16 Sep 2026) ---------- */
.brand-mark{height:52px}
.is-stuck .brand-mark{height:46px}
.brand-name{font-family:var(--serif);font-size:clamp(1.2rem,1.55vw,1.5rem);line-height:1.05;letter-spacing:.005em;white-space:nowrap;text-shadow:0 1px 10px rgba(0,0,0,.45)}
.page-light .brand-name,.is-stuck .brand-name{text-shadow:none}
.contact-phone{display:inline-block;white-space:nowrap;word-break:normal;overflow-wrap:normal}
@media (min-width:901px){
  .portrait--tall{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
  .portrait--tall figure{width:100%;max-width:30rem;justify-self:end}
}
.portrait--tall img{aspect-ratio:4/5;object-position:var(--focus,50% 30%)}
@media (max-width:80em) and (min-width:68.8125em){.brand-name{font-size:1.15rem}.site-nav{gap:1.2rem}}
@media (max-width:700px){.brand-mark,.is-stuck .brand-mark{height:44px}.brand-name{font-size:1.12rem}}
@media (max-width:374px){.brand{gap:.5rem}.brand-mark,.is-stuck .brand-mark{height:38px}.brand-name{font-size:1rem;white-space:normal;max-width:7.2em}}
.rhythm+p{margin-top:1.25rem}
/* Large text sizes on phones: the business name wraps instead of being cut off; long email addresses may break. */
@media (max-width:700px){.brand{min-width:0;flex:1 1 auto}.brand-name{white-space:normal;min-width:0}}
a[href^="mailto:"]{overflow-wrap:anywhere}

/* ---------- Three retreat pathways (16 Sep 2026) ---------- */
.theme-counsel{--teal:#1d3a5c;--teal-deep:#142b45;--tide:#35597a;--sea:#e4e8ec;--stone:#eee7dc;--sand:#d6c3a1}
.theme-counsel .place{color:var(--tide)}
.theme-counsel main .place::before{content:'';display:inline-block;width:.55rem;height:.55rem;border-radius:50%;background:var(--sand);margin-right:.55rem;vertical-align:.05em}
.theme-counsel .scene::before{background:linear-gradient(180deg,rgba(14,28,48,.46) 0%,rgba(14,28,48,.26) 24%,rgba(14,28,48,.46) 50%,rgba(10,22,40,.86) 100%)}
.theme-counsel .scene--centre::before{background:linear-gradient(180deg,rgba(14,28,48,.5),rgba(14,28,48,.6) 45%,rgba(10,22,40,.8))}
.theme-counsel .scene .place{color:#fffdf9}
.theme-counsel .scene-media img{filter:saturate(.9) contrast(.98)}
.theme-counsel .tag{color:#35597a;border-color:rgba(53,89,122,.45)}
.theme-counsel .gtk{border-top-color:#c9d2dc}
.theme-counsel .letter .prose>p:first-child{color:#142b45}
.theme-counsel .crosslink{--x-accent:#35597a;--x-bg:#ebe4d7}
.crosslink-links{display:flex;flex-wrap:wrap;gap:.25rem 1.75rem}

.panels--three{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem;align-items:start}
.panels--three .panel{aspect-ratio:auto;min-height:clamp(31rem,40vw,37rem);max-height:none;align-content:end;padding:clamp(1.4rem,2vw,2rem)}
.panels--three .panel--counsel{margin-top:2.5rem}
.panels--three .panel h3{font-size:clamp(1.5rem,1.9vw,2rem);max-width:22ch}
.panels--three .panel .panel-idea{font-family:var(--serif);font-size:clamp(1.1rem,1.3vw,1.25rem);line-height:1.35;margin-bottom:.55rem;max-width:26ch}
.panels--three .panel p:not(.place):not(.panel-idea){font-size:.98rem;max-width:36ch}
.panel-cta{justify-self:start;display:inline-flex;align-items:center;min-height:46px;margin-top:.45rem;padding:.7rem 1.2rem;border:1px solid rgba(255,253,249,.85);border-radius:var(--radius);font:500 .92rem/1.2 var(--sans);color:#fffdf9;background:rgba(255,253,249,.08);transition:background .25s var(--ease),color .25s var(--ease)}
.panel:hover .panel-cta,.panel:focus-visible .panel-cta{background:#fffdf9;color:var(--ink)}
.panels--three .panel--botanical{align-content:end;padding-bottom:clamp(1.4rem,2vw,2rem)}
/* Mirrored photograph (17 Sep 2026): the wellness objects sit on the right, so the shade is held on the left behind the
   left-aligned text and eases over the objects. Checked for at least 5.4:1 behind every line at 1440/768/375/320px. */
.panels--three .panel--botanical::before{background:linear-gradient(90deg,rgba(16,34,20,.6) 0%,rgba(16,34,20,.4) 45%,rgba(16,34,20,0) 90%),linear-gradient(180deg,rgba(18,38,22,.08) 12%,rgba(22,44,26,.62) 44%,rgba(22,44,26,.4) 64%,rgba(16,34,20,.7) 100%)}
.panel--counsel::before{background:linear-gradient(180deg,rgba(38,24,16,.55) 0%,rgba(46,30,20,.42) 32%,rgba(52,34,22,.6) 52%,rgba(38,24,16,.92) 100%)}
.panel--counsel::after{content:'';position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,#e3cfa8,#c08a6a)}
.panel--counsel .place::before{background:#d6c3a1}
.pathways-note{width:var(--wide);margin:1.6rem auto 0;color:var(--text-2);font-size:1rem}
.pathways-note .link{display:inline;min-height:0;padding:0}
@media (max-width:1000px){.panels--three{grid-template-columns:minmax(0,1fr);gap:1rem}.panels--three .panel{min-height:0;aspect-ratio:16/10}.panels--three .panel--counsel{margin-top:0}}
@media (max-width:700px){.panels--three .panel{aspect-ratio:auto;min-height:29rem;padding:1.25rem 1.25rem 1.4rem}.panels--three .panel--coast{padding-top:1.25rem}}

.included{width:var(--wide);margin-inline:auto;padding-block:var(--s-norm);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:1.25rem 4rem;align-items:start}
.included-head h2{max-width:14ch}
.included-head p{color:var(--text-2);max-width:40ch;font-size:1.05rem}
.included-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 2.5rem;border-bottom:1px solid var(--line)}
.included-list li{position:relative;padding:.85rem 0 .85rem 1.5rem;border-top:1px solid var(--line);font-size:1.02rem;line-height:1.45;color:var(--ink)}
.included-list li::before{content:'';position:absolute;left:0;top:1.28rem;width:.7rem;height:2px;background:var(--tide)}
.included-note{grid-column:2;margin:.25rem 0 0;max-width:62ch}
.length-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.length-list a{display:grid;align-content:start;gap:.35rem;height:100%;padding:1.1rem 1.25rem;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--white);text-decoration:none;color:var(--text);transition:border-color .25s var(--ease),background .25s var(--ease)}
.length-list a:hover{border-color:var(--teal);background:var(--sea)}
.len-n{font:400 1.35rem/1.2 var(--serif);color:var(--ink)}
.len-d{font-size:.98rem;line-height:1.5;color:var(--text-2)}
.lengths .note{margin-top:.75rem;max-width:34ch}
.plan-steps{list-style:none;margin:0 0 1rem;padding:0;counter-reset:step}
.plan-steps li{counter-increment:step;display:grid;grid-template-columns:2.6rem minmax(0,1fr);column-gap:.5rem;padding:1rem 0;border-top:1px solid var(--line)}
.plan-steps li::before{content:'0' counter(step);grid-row:span 2;font:400 1.05rem/1.6 var(--serif);color:var(--tide)}
.plan-steps h3{font-size:1.25rem;margin:0 0 .2rem}
.plan-steps p{margin:0;font-size:1rem;color:var(--text-2)}
.optional-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem 2.5rem}
.optional-grid article{border-top:1px solid var(--line-strong);padding-top:.9rem}
.optional-grid h3{font-size:1.2rem;margin-bottom:.3rem}
.optional-grid p{margin:0;font-size:.97rem;line-height:1.55;color:var(--text-2)}
.difference{width:var(--wide);margin-inline:auto;padding-block:var(--s-tight) var(--s-norm);display:grid;grid-template-columns:minmax(0,4fr) minmax(0,4fr) minmax(0,4fr);gap:1rem 1.5rem;align-items:stretch}
.difference-head h2{max-width:12ch}
.difference-item{padding:1.3rem 1.4rem 1.4rem;background:var(--stone);border-top:3px solid var(--line-strong)}
.difference-item p:not(.place){margin:0;font:400 clamp(1.2rem,1.6vw,1.4rem)/1.35 var(--serif);color:var(--ink)}
.difference .difference-item--this{background:var(--teal);border-top-color:#d6c3a1}
.difference .difference-item--this .place{color:#e9dcc4}
.difference .difference-item--this p:not(.place){color:#fffdf9}
.difference--three{grid-template-columns:repeat(3,minmax(0,1fr))}
.difference--three .difference-head{grid-column:1/-1}
.difference-item .link{margin-top:.6rem;padding:0;min-height:0}
@media (max-width:900px){.included,.difference,.difference--three{grid-template-columns:minmax(0,1fr)}.included-note{grid-column:1}.included-list{grid-template-columns:minmax(0,1fr)}.optional-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.length-list,.optional-grid{grid-template-columns:minmax(0,1fr)}}

/* ---------- Retreats menu ---------- */
.nav-group{position:relative;display:flex;align-items:center}
.nav-group-toggle{display:inline-flex;align-items:center;gap:.45rem;min-height:44px;padding:0;border:0;border-bottom:1px solid transparent;background:transparent;color:inherit;font:500 .92rem/1.2 var(--sans);cursor:pointer}
.nav-group-toggle::after{content:'';width:.38rem;height:.38rem;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-25%) rotate(45deg);transition:transform .2s var(--ease)}
.nav-group.open .nav-group-toggle::after{transform:translateY(20%) rotate(-135deg)}
.nav-group.is-current .nav-group-toggle,.nav-group-toggle:hover{border-bottom-color:currentColor}
.nav-group-panel{display:none;position:absolute;top:calc(100% + .4rem);left:-1.25rem;z-index:5;min-width:21rem;padding:.5rem 1.25rem .6rem;background:var(--ivory);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 14px 34px rgba(9,25,32,.18)}
.nav-group.open .nav-group-panel{display:grid}
html:not(.js) .nav-group:hover .nav-group-panel,html:not(.js) .nav-group:focus-within .nav-group-panel{display:grid}
.site-nav .nav-group-panel a{color:var(--ink);border-bottom:1px solid var(--line)}
.site-nav .nav-group-panel a:last-child{border-bottom:0;color:var(--text-2)}
.site-nav .nav-group-panel a[aria-current]{text-decoration:underline;text-underline-offset:.22em}
.site-nav .nav-group-panel :focus-visible{outline-color:var(--tide)}
.nav-group-label{display:none}
@media (max-width:68.75em){
  .js .site-nav.open{justify-content:flex-start;padding-top:4.75rem;padding-bottom:2rem}
  .js .site-nav.open .nav-group{display:block;width:100%;margin-bottom:.9rem}
  .js .site-nav.open .nav-group-toggle{display:none}
  .js .site-nav.open .nav-group-panel{display:grid;position:static;min-width:0;padding:0;border:0;border-radius:0;box-shadow:none;background:transparent}
  .js .site-nav.open .nav-group-label{display:block;font:500 .78rem/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--text-2);margin:0 0 .3rem}
  .js .site-nav.open .nav-group-panel a{font:400 clamp(1.3rem,4.6vw,1.7rem)/1.2 var(--serif);padding:.4rem 0;border:0;min-height:0;color:var(--ink)}
  .js .site-nav.open .nav-group-panel a:last-child{font:500 1rem/1.3 var(--sans);padding-top:.55rem;color:var(--ink);text-decoration:underline;text-underline-offset:.2em}
}

/* ---------- Retreat comparison (How our retreats work) ---------- */
.difference--three .compare-item{display:grid;align-content:start;gap:.55rem;background:var(--white);border:1px solid var(--line);border-top:3px solid var(--x)}
.compare-item--coast{--x:#2b6a94}
.compare-item--counsel{--x:#1d3a5c}
.compare-item--botanical{--x:#4a7446}
.difference--three .compare-item .place{color:var(--x);margin:0}
.difference--three .compare-item h3{font-size:clamp(1.3rem,1.7vw,1.55rem);line-height:1.2;margin:0}
.difference--three .compare-item p:not(.place){font:400 1rem/1.55 var(--sans);color:var(--text-2)}
.difference--three .compare-item .link{color:var(--x);align-self:end}
.difference-head .note{max-width:60ch}

/* The same full-screen menu when the navigation would not fit at a wide width (large text): site.js adds .nav-compact. */
.nav-compact .site-nav{display:none}
.js.nav-compact .menu-button{display:inline-flex;align-items:center;gap:.6rem}
.js.nav-compact .site-nav.open{display:flex;position:fixed;inset:0;z-index:40;flex-direction:column;align-items:flex-start;justify-content:center;gap:0;padding:var(--gutter);background:var(--ivory);color:var(--ink);overflow:auto}
.js.nav-compact .site-nav.open>a{font:400 clamp(2rem,7.5vw,2.8rem)/1.15 var(--serif);letter-spacing:-.02em;padding:.5rem 0;border:0;min-height:0}
.js.nav-compact .site-nav.open>a[aria-current]{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;text-decoration-color:var(--tide)}
.js.nav-compact .site-nav.open .btn{margin-top:1.75rem;font:500 1rem/1.2 var(--sans);padding:1rem 1.6rem;background:var(--teal);border-color:var(--teal);color:#fffdf9;width:100%;max-width:22rem}
.js.nav-compact .site-nav.open .nav-close{display:block;position:absolute;top:1.25rem;right:var(--gutter);font:500 .95rem/1.2 var(--sans);padding:.6rem .2rem;border:0;border-bottom:1px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer;min-height:44px}
.js.nav-compact .site-nav.open .nav-note{display:block;margin-top:2.5rem;font-size:.95rem;color:var(--text-2);max-width:26rem}
.js.nav-compact .site-nav.open .nav-note a{display:inline;font:inherit;color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;border:0;padding:0;min-height:0}
.js.nav-compact .site-nav.open :focus-visible{outline-color:var(--tide)}
body.menu-open{overflow:hidden}
.js.nav-compact .site-nav.open{justify-content:flex-start;padding-top:4.75rem;padding-bottom:2rem}
.js.nav-compact .site-nav.open .nav-group{display:block;width:100%;margin-bottom:.9rem}
.js.nav-compact .site-nav.open .nav-group-toggle{display:none}
.js.nav-compact .site-nav.open .nav-group-panel{display:grid;position:static;min-width:0;padding:0;border:0;border-radius:0;box-shadow:none;background:transparent}
.js.nav-compact .site-nav.open .nav-group-label{display:block;font:500 .78rem/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--text-2);margin:0 0 .3rem}
.js.nav-compact .site-nav.open .nav-group-panel a{font:400 clamp(1.3rem,4.6vw,1.7rem)/1.2 var(--serif);padding:.4rem 0;border:0;min-height:0;color:var(--ink)}
.js.nav-compact .site-nav.open .nav-group-panel a:last-child{font:500 1rem/1.3 var(--sans);padding-top:.55rem;color:var(--ink);text-decoration:underline;text-underline-offset:.2em}
/* Full-screen menu: items keep their size and the menu scrolls, rather than squeezing together on short screens. */
.js .site-nav.open>*{flex-shrink:0}
/* Eighth experience card: a discreet third line (cost and availability), readable without hover. */
.mosaic .tile-note{font:400 .7rem/1.3 var(--sans);opacity:.82;margin-top:.25rem;max-width:30ch}
@media (max-width:700px){.mosaic .tile-note{font-size:.72rem}}
.mosaic li:has(.tile-note) a{padding-bottom:.95rem}
.mosaic li:has(.tile-note) .tile-title{line-height:1.15}

/* ---------- Pre-launch pass (17 Sep 2026) ---------- */
/* Experience cards: a dependable dark surface behind the words at every crop (contrast checked over each photograph). */
.mosaic li a::before{background:linear-gradient(180deg,rgba(9,25,32,0) 22%,rgba(9,25,32,.5) 48%,rgba(9,25,32,.82) 72%,rgba(9,25,32,.9) 100%)}
.mosaic .tile-title{text-shadow:0 1px 10px rgba(0,0,0,.35)}
.mosaic .tile-sub{opacity:1;font-size:.82rem}
.mosaic .tile-note{opacity:1;font-size:.8rem;line-height:1.35;max-width:32ch}
@media (max-width:700px){.mosaic .tile-note{font-size:.8rem}}
.mosaic-nav{display:none}
@media (max-width:900px){
  .mosaic-nav:not([hidden]){display:flex;align-items:center;gap:.6rem;width:var(--wide);margin:.6rem auto 0}
  .mosaic-nav button{min-width:44px;min-height:44px;border:1px solid var(--line-strong);border-radius:var(--radius);background:transparent;color:var(--ink);font:400 1.1rem/1 var(--sans);cursor:pointer}
  .mosaic-nav button:disabled{opacity:.4;cursor:default}
  .mosaic-nav output{font:400 .95rem/1 var(--serif);letter-spacing:.08em;color:var(--meta);margin-left:.4rem}
}
/* About: individual portraits beside each introduction. */
.bios article{display:grid;grid-template-columns:minmax(0,9rem) minmax(0,1fr);gap:0 1.5rem;align-items:start}
.bio-portrait{margin:.35rem 0 0}
.bio-portrait img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:var(--focus,50% 30%);border-radius:var(--radius);background:#1a1a1a}
@media (max-width:420px){.bios article{grid-template-columns:minmax(0,1fr)}.bio-portrait{max-width:11rem;margin-bottom:1rem}}
.who-list{padding-left:1.1rem;margin:0 0 1rem}
.who-list li{margin-bottom:.6rem;max-width:62ch}
/* Planner: numbers only in the step strip on phones; the status line names the step. */
@media (max-width:700px){.step-nav .step-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.step-nav button{padding-inline:.8rem}}
.not-found{padding-block:calc(var(--header-h) + var(--s-norm)) var(--s-sig)}
/* Home hero, sunrise photograph (17 Sep 2026): a soft shade centred on the words instead of darkening the whole
   picture, so the sunrise keeps its glow. Measured over the brightest pixels behind each line at 1440/768/375/320px. */
.sunrise-opening::before{background:radial-gradient(ellipse 72% 70% at 50% 52%,rgba(20,24,30,.68),rgba(20,24,30,.34) 62%,rgba(20,24,30,.18) 100%),linear-gradient(180deg,rgba(8,24,27,.5),rgba(8,24,27,0) 30%)}
.sunrise-opening .hero-place{font-weight:500}
.sunrise-opening .hero-place,.sunrise-opening h1{text-shadow:0 1px 16px rgba(20,18,16,.45)}
.sunrise-opening .immersive-copy>p{text-shadow:0 1px 10px rgba(20,18,16,.55)}
/* ---------- Enquiry questionnaire (17 Sep 2026): five starting directions, four stages, review ---------- */
.choice-grid--directions{grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr))}
.choice-grid--directions .choice{padding:1rem 1.1rem;min-height:5.5rem}
.choice-grid--directions .choice strong{font-size:1.05rem}
.preset-note{border-left:3px solid var(--tide);padding:.55rem .9rem;background:var(--sea);color:var(--ink);font-size:.95rem;margin:0 0 1.1rem}
.reassure-note{margin:-.4rem 0 0;font:400 1.08rem/1.45 var(--serif);color:var(--tide)}
.conditional{margin:-.6rem 0 1.4rem}
.conditional[hidden]{display:none}
#goals-group[hidden],#interests-group[hidden],.check-choice[hidden]{display:none}
.option-group legend span{margin-top:.1rem}
.more-experiences{border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);margin:0 0 1.5rem}
.more-experiences>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:52px;padding:.7rem 0;font:500 1rem/1.3 var(--sans);color:var(--ink)}
.more-experiences>summary::-webkit-details-marker{display:none}
.more-experiences>summary::after{content:'+';font:400 1.4rem/1 var(--sans);color:var(--tide)}
.more-experiences[open]>summary::after{content:'−'}
.more-experiences>summary:focus-visible{outline:2px solid var(--tide);outline-offset:2px}
.more-body{padding:.25rem 0 1.1rem}
.more-body #interests-more{margin-bottom:1.25rem}
.more-body .option-group{margin-bottom:.5rem}
.check-choice--block{display:flex;border-radius:var(--radius);margin-top:.9rem;max-width:40rem}
.review{background:var(--stone);border-radius:var(--radius);padding:1.1rem 1.25rem 1.2rem;margin:.5rem 0 1.25rem}
.review h3{font:500 .78rem/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--meta);margin:0 0 .6rem}
.review-group{border-top:1px solid var(--line-strong);padding:.75rem 0 .35rem}
.review-group:first-child{border-top:0;padding-top:.2rem}
.review-head{display:flex;justify-content:space-between;align-items:center;gap:1rem}
.review-head p{margin:0;font:400 1.1rem/1.3 var(--serif);color:var(--ink)}
.review dl,#retreat-summary dl{display:grid;grid-template-columns:minmax(8.5rem,auto) minmax(0,1fr);gap:.35rem 1.25rem;margin:.35rem 0 0;font-size:.97rem}
.review dt,#retreat-summary dt{color:var(--text-2)}
.review dd,#retreat-summary dd{margin:0;color:var(--ink);overflow-wrap:anywhere;white-space:pre-line}
.review dd.is-open,#retreat-summary dd.is-open{color:var(--meta);font-style:italic}
.edit-link{min-height:44px;padding:.3rem 0}
#retreat-summary{display:block;background:var(--white);padding:1rem 1.25rem;border-radius:var(--radius)}
#retreat-summary .review-group:first-child{padding-top:0}
.send-note{flex-basis:100%;margin:0;font-size:.95rem;color:var(--text-2);max-width:52ch}
.preview-note{border-left:3px solid var(--error);background:#faf0ec;color:var(--ink);padding:.7rem 1rem;font-size:.95rem;margin:1rem 0 0}
@media (max-width:700px){
  .review dl,#retreat-summary dl{grid-template-columns:minmax(0,1fr);gap:.1rem}
  .review dd,#retreat-summary dd{margin-bottom:.45rem}
  .choice-grid--directions .choice{min-height:0}
}
@media (prefers-reduced-motion:reduce){.choice,.check-choice{transition:none}}
/* Home tour film (17 Sep 2026): the full 16:9 frame, reserved before loading, on the cream/sea band. */
.tour--home video{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;border-radius:var(--radius);background:#dfe7e6}
.tour-hint{margin:0;font-size:.9rem;color:var(--text-2)}
.tour--home .tour-more>div p{margin:0 0 .35rem}
/* Second-pass review (17 Sep 2026): planner progress stays below the fixed header; quiet enquiry link in the Home hero. */
.step-nav{scroll-margin-top:calc(var(--header-h) + .75rem)}
.immersive-copy .hero-plan{margin:.75rem 0 0}
.immersive-copy .hero-plan .link{color:#fffefa;text-shadow:0 0 3px rgba(8,24,27,.55),0 1px 12px rgba(8,24,27,.6)}
/* About: historical recognition (17 Sep 2026). Archival photo kept small (never wider than its 485px file), quote in the
   editorial serif used for guest quotes; no card, border or large quotation marks. */
.heritage{width:var(--wide);margin-inline:auto;padding-block:var(--s-norm);display:grid;grid-template-columns:minmax(0,360px) minmax(0,1fr);grid-template-areas:'photo label' 'photo copy';grid-template-rows:auto 1fr;column-gap:clamp(2rem,5vw,4.5rem);align-items:end}
.heritage>h2{grid-area:label;align-self:end}.heritage-photo{grid-area:photo;align-self:center}.heritage-copy{grid-area:copy;align-self:start}
.heritage-photo{margin:0;max-width:360px}
.heritage-photo img{display:block;width:100%;height:auto;aspect-ratio:485/323;filter:saturate(.92)}
.heritage-photo figcaption{margin-top:.7rem;font:400 .9rem/1.45 var(--sans);color:var(--text-2);max-width:34ch}
.heritage .place{margin-bottom:1rem}
.heritage-quote{margin:0;padding-top:1.1rem;border-top:1px solid var(--line)}
.heritage-quote p{font-family:var(--serif);font-size:clamp(1.55rem,2.5vw,2.3rem);line-height:1.22;letter-spacing:-.016em;color:var(--ink);max-width:24ch;margin:0 0 1rem;text-wrap:balance}
.heritage-quote footer{display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem .7rem}
.heritage-quote cite{font:500 .95rem/1.3 var(--sans);font-style:normal;color:var(--ink)}
.heritage-quote footer span{font:500 .78rem/1.3 var(--sans);letter-spacing:.12em;color:var(--text-2)}
@media (max-width:760px){.heritage{grid-template-columns:minmax(0,1fr);grid-template-areas:'label' 'photo' 'copy';grid-template-rows:auto;row-gap:1rem}.heritage-photo{max-width:340px}.heritage-copy{margin-top:.5rem}}
/* Home hero heading (SEO pass, 17 Sep 2026): the eyebrow is part of the H1; the width limit moves to the title line so the
   heading looks exactly as before. */
.immersive-copy h1.hero-h1{max-width:none}
.hero-h1 .hero-place{display:block}
.hero-place-part{white-space:nowrap}
.hero-h1 .hero-title{display:block;max-width:16ch;margin-inline:auto}
@media (max-width:700px){.hero-h1 .hero-title{max-width:12ch}.hero-place-sep{display:block;font-size:0;line-height:0}}
/* Planner: optional extras (17 Sep 2026). Each extra is a card with a short benefit line; the opt-out uses the same card so
   it is equally easy to find. Continue looks unavailable until a choice is made but stays focusable to explain why. */
.extras-group .extras-cat{margin:1.4rem 0 .6rem}
.choice-grid--extras{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.extras-none{margin-top:1.4rem;padding-top:1.1rem;border-top:1px solid var(--line)}
.extras-none .choice{max-width:420px}
#extras-error:not(:empty){display:block;margin-top:.8rem}
#next-step[aria-disabled="true"]{opacity:.55;cursor:not-allowed}

