/* 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 control: an obvious pill with an icon and the word "Menu", legible over any hero photograph. */
.menu-button{display:none;margin-left:auto;align-items:center;gap:.5rem;min-height:44px;min-width:44px;padding:.5rem 1.05rem;
  background:rgba(9,25,32,.55);border:1px solid rgba(255,253,249,.92);border-radius:999px;color:#fffdf9;
  font:500 .95rem/1.2 var(--sans);cursor:pointer;transition:background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease)}
.menu-button .menu-icon{flex:none;display:block}
.page-light .menu-button,.is-stuck .menu-button{background:var(--white);border-color:var(--ink);color:var(--ink)}
.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){
  /* Without JavaScript the navigation stays on the page as a plain wrapped list, so a phone is never left
     with no way through the site. With JavaScript it collapses behind the Menu button instead. */
  html:not(.js) .site-nav{flex-wrap:wrap;width:100%;margin-left:0;gap:.1rem 1.15rem;padding:.2rem 0 .4rem}
  html:not(.js) .site-nav .nav-group{display:contents}
  html:not(.js) .site-nav .nav-group-toggle{display:none}
  html:not(.js) .site-nav .nav-group-panel{display:contents;position:static;min-width:0;padding:0;border:0;border-radius:0;box-shadow:none;background:transparent;color:inherit}
  html:not(.js) .site-nav a,html:not(.js) .site-nav .nav-group-panel a{color:inherit;border-bottom:1px solid transparent;font:500 .92rem/1.2 var(--sans);min-height:40px}
  html:not(.js) .site-nav .nav-group-panel a:last-child{color:inherit}
  html:not(.js) .site-nav .btn{min-height:40px;padding:.45rem 1.1rem}
  .js .site-nav{display:none}
  .js .menu-button{display:inline-flex}
  /* Brand and Menu share one line: the name wraps rather than pushing the control onto a second row. */
  .js .nav-row{flex-wrap:nowrap}
  .js .brand{min-width:0}
  .js .brand-name{white-space:normal}
  .js .site-nav.open{display:flex;position:fixed;inset:0;z-index:40;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:0;
    width:100%;height:100dvh;padding:calc(var(--gutter) + 3.25rem) var(--gutter) calc(var(--gutter) + env(safe-area-inset-bottom));
    background:var(--ivory);color:var(--ink);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .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:50ch}
.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:52ch;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(--field-border);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(--field-border);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)}
/* Steps not yet reached. WCAG 1.4.3 exempts inactive controls, but these carry the visible step names, so they
   are held to 4.5:1 anyway: #66716e on --ivory is 4.68:1, still clearly lighter than the current step. */
.step-nav button:disabled{color:#66716e;cursor:default}
.step-nav button:disabled span:first-child{color:#66716e}
.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 input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:2px solid var(--tide);outline-offset:2px}
.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}
/* Footnote under a .next-steps sequence. The columns are muted body text, so without this separation the note
   reads as a fourth paragraph of the first column rather than as a note about all three. */
.next-steps-note{margin-top:2.25rem;max-width:var(--measure);color:var(--meta);font-size:.95rem}

/* ---------- 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(--field-border);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:var(--white)}
.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-heading{display:flex;align-items:center;width:100%;gap:.15rem}
.nav-group-toggle{display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;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-link,.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 .nav-group{display:block;width:100%;margin-bottom:.9rem}
  .js .site-nav.open .nav-group-link{flex:1;min-width:0;font:400 clamp(1.6rem,6.5vw,2.4rem)/1.2 var(--serif);letter-spacing:-.02em;padding:.55rem 0;min-height:44px}
.js .site-nav.open .nav-group-toggle{width:44px;min-height:44px;margin-left:auto}
  .js .site-nav.open .nav-group-panel{display:none;position:static;min-width:0;padding:0;border:0;border-radius:0;box-shadow:none;background:transparent}
  .js .site-nav.open .nav-group.open .nav-group-panel{display:grid}
.js .site-nav.open .nav-group-label{display:none}
  .js .site-nav.open .nav-group-panel a{font:500 1rem/1.4 var(--sans);padding:.5rem .75rem;border:0;min-height:44px;display:flex;align-items:center;color:var(--ink)}
  .js .site-nav.open .nav-group-panel a:last-child{color:var(--ink)}
}

/* ---------- 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:flex-start;gap:0;
  width:100%;height:100dvh;padding:calc(var(--gutter) + 3.25rem) var(--gutter) calc(var(--gutter) + env(safe-area-inset-bottom));
  background:var(--ivory);color:var(--ink);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.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 .nav-group{display:block;width:100%;margin-bottom:.9rem}
.js.nav-compact .site-nav.open .nav-group-link{flex:1;min-width:0;font:400 clamp(1.6rem,6.5vw,2.4rem)/1.2 var(--serif);letter-spacing:-.02em;padding:.55rem 0;min-height:44px}
.js.nav-compact .site-nav.open .nav-group-toggle{width:44px;min-height:44px;margin-left:auto}
.js.nav-compact .site-nav.open .nav-group-panel{display:none;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.open .nav-group-panel{display:grid}
.js.nav-compact .site-nav.open .nav-group-label{display:none}
.js.nav-compact .site-nav.open .nav-group-panel a{font:500 1rem/1.4 var(--sans);padding:.5rem .75rem;border:0;min-height:44px;display:flex;align-items:center;color:var(--ink)}
.js.nav-compact .site-nav.open .nav-group-panel a:last-child{color:var(--ink)}
/* 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(--field-border);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 2px rgba(20,18,16,.72),0 1px 14px rgba(20,18,16,.6)}
/* The hero copy crosses the sun's reflection, the brightest part of the photograph. Rather than darkening
   the image (which flattens the sunrise), a soft elliptical scrim sits behind the copy block only, fading
   to nothing well inside the frame so the coast, sky and water keep their light. It reads as atmosphere,
   not as a panel. z-index:0 on the copy makes its own stacking context so the scrim stays above the
   photograph but behind the text. */
.sunrise-opening .immersive-copy{position:relative;z-index:0}
.sunrise-opening .immersive-copy::before{content:'';position:absolute;inset:-1rem -1.5rem;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 50% 50% at 50% 46%,rgba(14,18,24,.48),rgba(14,18,24,.32) 50%,rgba(14,18,24,.12) 82%,rgba(14,18,24,0) 100%)}
/* ---------- 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}.mosaic{scroll-snap-type: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}


/* ---------- Guest reviews (18 September 2026) ----------
   Cards in the cream editorial style: full-size body text, clear attribution, an honest source line and no
   star ratings, because no rating could be verified at its source. Works without JavaScript. */
.reviews{width:var(--wide);margin-inline:auto;padding:clamp(3rem,7vw,5.5rem) 0}
.reviews-head{max-width:60ch;margin-bottom:clamp(1.6rem,3vw,2.4rem)}
.reviews-head h2{font:400 clamp(1.9rem,3.4vw,2.7rem)/1.1 var(--serif);letter-spacing:-.015em;margin:0 0 .7rem}
.reviews-head .note{font:400 1rem/1.6 var(--sans);color:var(--text-2);margin:0}
.review-list{list-style:none;margin:0;padding:0;display:grid;gap:clamp(1rem,2vw,1.5rem);grid-template-columns:repeat(auto-fit,minmax(19rem,1fr))}
.review-card{display:flex;flex-direction:column;gap:1.1rem;padding:clamp(1.5rem,2.6vw,2rem);background:var(--white);border:1px solid var(--line);border-radius:var(--radius)}
.review-card blockquote{margin:0}
.review-card blockquote p{font:400 1.06rem/1.62 var(--sans);color:var(--ink);margin:0}
.review-card footer{margin-top:auto;display:flex;flex-direction:column;gap:.2rem}
.review-card cite{font:500 .98rem/1.3 var(--sans);font-style:normal;color:var(--ink)}
.review-src{font:400 .84rem/1.4 var(--sans);color:var(--text-2)}
.reviews-more{margin:clamp(1.5rem,3vw,2.2rem) 0 0}
/* Home page guest reviews: four curated cards in a 2x2 editorial block rather than a wide feed, with the
   remaining ones behind a native disclosure so they stay secondary. Single column below 760px, where two
   columns of quotes get too narrow to read. */
.review-list--home{grid-template-columns:repeat(2,minmax(0,1fr));max-width:64rem}
.reviews-extra{margin-top:clamp(1.5rem,3vw,2.2rem)}
.reviews-extra>summary{display:inline-flex;align-items:center;gap:.55rem;list-style:none;cursor:pointer;min-height:44px;padding:.4rem .1rem;font:500 .95rem/1.3 var(--sans);color:var(--tide)}
.reviews-extra>summary::-webkit-details-marker{display:none}
.reviews-extra>summary::after{content:'+';font:300 1.3rem/1 var(--sans);color:var(--tide)}
.reviews-extra[open]>summary::after{content:'\2013'}
.reviews-extra>summary:hover{text-decoration:underline;text-underline-offset:.25em}
.reviews-extra>summary:focus-visible{outline:2px solid var(--tide);outline-offset:3px;border-radius:2px}
.reviews-extra .review-list{margin-top:clamp(1.2rem,2.5vw,1.8rem)}
@media (max-width:760px){.review-list--home{grid-template-columns:1fr}}
.reviews--band{border-top:1px solid var(--line)}
.review-list--full{grid-template-columns:repeat(auto-fit,minmax(21rem,1fr))}
.reviews-note{width:var(--wide);margin-inline:auto;padding:0 0 clamp(3.5rem,7vw,6rem);max-width:64ch}
.reviews-note h2{font:400 clamp(1.5rem,2.6vw,2rem)/1.15 var(--serif);margin:0 0 .8rem}
.reviews-note p{font:400 1rem/1.65 var(--sans);color:var(--text-2);margin:0 0 1rem}
.reviews-note .btn{margin-top:.6rem}
@media (max-width:640px){.review-list,.review-list--full{grid-template-columns:1fr}}

/* Opening block on the light pages (guest reviews, individual sessions, the enquiry chooser and its two
   questionnaires). Clears the fixed header the same way the Privacy Policy does. */
.page-opening{width:var(--wide);margin-inline:auto;padding-block:calc(var(--header-h) + var(--s-norm)) clamp(1.5rem,3.5vw,2.5rem);max-width:none}
.page-opening .place{margin:0 0 .6rem}
.page-opening h1{font:400 clamp(2.3rem,5vw,3.4rem)/1.08 var(--serif);letter-spacing:-.02em;margin:0 0 1rem;max-width:18ch}
.page-opening .lede{font:400 clamp(1.05rem,1.7vw,1.22rem)/1.6 var(--sans);color:var(--text-2);margin:0;max-width:62ch}
.page-opening .t-line{display:block}
@media (max-width:640px){.page-opening .t-line{display:inline}.page-opening h1{max-width:none}}

/* ---------- Individual sessions and the enquiry chooser (18 September 2026) ---------- */
.chooser{width:var(--wide);margin-inline:auto;padding:0 0 clamp(3rem,7vw,5rem)}
.chooser-grid{list-style:none;margin:0;padding:0;display:grid;gap:clamp(1.1rem,2.4vw,1.75rem);grid-template-columns:repeat(auto-fit,minmax(20rem,1fr))}
.chooser-card{display:flex;flex-direction:column;gap:.9rem;padding:clamp(1.6rem,3vw,2.4rem);background:var(--white);border:1px solid var(--line);border-radius:var(--radius)}
.chooser-card h3{font:400 clamp(1.4rem,2.4vw,1.85rem)/1.2 var(--serif);margin:0}
.chooser-card p{font:400 1.02rem/1.6 var(--sans);color:var(--text-2);margin:0}
.chooser-card .chooser-action{margin-top:auto;padding-top:.5rem}
.chooser-card .btn{width:100%;justify-content:center;text-align:center}
.chooser-card .note{font-size:.92rem}
/* The two chooser cards were byte-identical components, so the only decision point on the site gave the eye
   nothing to tell the paths apart. A photograph each, same treatment as .session-card--visual. 19 Sep 2026. */
.chooser-card--visual{padding:0;overflow:hidden}
.chooser-card--visual>figure{margin:0;overflow:hidden;background:var(--stone)}
.chooser-card--visual>figure img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;object-position:var(--focus,50% 50%)}
.chooser-card--visual>:not(figure){margin-inline:clamp(1.6rem,3vw,2.4rem)}
.chooser-card--visual>h3{margin-top:clamp(1.1rem,2.2vw,1.5rem)}
.chooser-card--visual>:last-child{margin-bottom:clamp(1.6rem,3vw,2.4rem)}
.chooser-help{width:min(60ch,100%);margin:clamp(1.6rem,3vw,2.2rem) 0 0;font:400 1rem/1.6 var(--sans);color:var(--text-2)}
.sessions{width:var(--wide);margin-inline:auto;padding:clamp(3rem,7vw,5.5rem) 0}
.sessions--home{border-top:1px solid var(--line)}
.session-grid{list-style:none;margin:0;padding:0;display:grid;gap:clamp(1rem,2vw,1.5rem);grid-template-columns:repeat(auto-fit,minmax(18rem,1fr))}
.session-card{display:flex;flex-direction:column;gap:.75rem;padding:clamp(1.4rem,2.6vw,2rem);background:var(--white);border:1px solid var(--line);border-radius:var(--radius)}
.session-card h3{font:400 clamp(1.25rem,2.2vw,1.6rem)/1.2 var(--serif);margin:0}
.session-card p{font:400 1rem/1.6 var(--sans);color:var(--text-2);margin:0}
.session-card .session-action{margin-top:auto;padding-top:.4rem}
/* Cards that lead with a photograph. The image runs flush to the card edge so the card reads as editorial
   rather than as a bordered box of text; the copy keeps the same inset as a plain session card. */
.session-card--visual{padding:0;overflow:hidden}
.session-card--visual>figure{margin:0;overflow:hidden;background:var(--stone)}
.session-card--visual>figure img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.session-card--visual>:not(figure){margin-inline:clamp(1.4rem,2.6vw,2rem)}
.session-card--visual>h3{margin-top:clamp(.9rem,1.8vw,1.2rem)}
.session-card--visual>:last-child{margin-bottom:clamp(1.4rem,2.6vw,2rem)}
/* The location hero has a job the other heroes do not: it has to let you SEE the place. The standard
   scene treatment stacks two overlays to roughly 70-80% darkness, which is right for a mood image and
   wrong for a photograph that is the argument. Lighter here, measured to keep the copy legible. */
.page-location .scene--opening::before{background:linear-gradient(180deg,rgba(9,25,32,.26) 0%,rgba(9,25,32,.12) 24%,rgba(9,25,32,.28) 52%,rgba(9,25,32,.58) 100%)}
.page-location .scene--opening::after{background:linear-gradient(180deg,rgba(9,25,32,.30) 0%,rgba(9,25,32,.16) 60%,rgba(9,25,32,.06) 100%)}
@media (min-width:701px){.page-location .scene--opening::after{background:linear-gradient(90deg,rgba(9,25,32,.42) 0%,rgba(9,25,32,.22) 48%,rgba(9,25,32,0) 78%)}}
/* ...and the copy carries its own soft scrim, so the words stay readable where they cross bright sand or
   the car park, without dimming the whole photograph. Same approach as the home page hero. */
/* The mid-page band is a photographic pause, so it needs height to breathe rather than collapsing to
   the height of its two lines of copy. */
.page-location .scene--band{min-height:min(42svh,380px)}
.page-location .scene--opening .scene-copy{position:relative;z-index:0}
.page-location .scene--opening .scene-copy::before{content:'';position:absolute;inset:-1.25rem -1.75rem;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 64% 66% at 40% 47%,rgba(9,22,30,.62),rgba(9,22,30,.42) 52%,rgba(9,22,30,.15) 82%,rgba(9,22,30,0) 100%)}
/* The food hero has the same problem as the location hero: the photograph IS the argument, and the
   standard two-overlay treatment turned a bright breakfast above the beach into a dark teal band with
   no visible food. Same remedy — lighten the wash, then give the copy its own local scrim. 19 Sep 2026. */
.page-food .scene--opening::before{background:linear-gradient(180deg,rgba(9,25,32,.30) 0%,rgba(9,25,32,.14) 26%,rgba(9,25,32,.30) 54%,rgba(9,25,32,.60) 100%)}
.page-food .scene--opening::after{background:linear-gradient(180deg,rgba(9,25,32,.32) 0%,rgba(9,25,32,.18) 60%,rgba(9,25,32,.06) 100%)}
@media (min-width:701px){.page-food .scene--opening::after{background:linear-gradient(90deg,rgba(9,25,32,.46) 0%,rgba(9,25,32,.24) 48%,rgba(9,25,32,0) 78%)}}
.page-food .scene--opening .scene-copy{position:relative;z-index:0}
.page-food .scene--opening .scene-copy::before{content:'';position:absolute;inset:-1.25rem -1.75rem;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 64% 66% at 38% 47%,rgba(9,22,30,.64),rgba(9,22,30,.44) 52%,rgba(9,22,30,.16) 82%,rgba(9,22,30,0) 100%)}
/* /guest-reviews stacks four review groups with nothing between them, so the boundaries between "Retreat
   guests", "Individual sessions", "From earlier years" and "About the apartments" were invisible and the
   page read as one long run of identical cards. .reviews--full had no rule at all. 19 Sep 2026. */
.reviews--full+.reviews--full{border-top:1px solid var(--line)}
/* /retreat-lengths: a continuum, not a tier grid. Every row states the same three things in the same order —
   how many nights, what that length is, what it makes room for — so the four are genuinely comparable, and the
   bar shows them relative to one another. Rows, not columns, so there is no orphan card at any width. */
.length-scale{list-style:none;margin:clamp(1.5rem,3vw,2.25rem) 0 0;padding:0;counter-reset:none}
.len-row{display:grid;grid-template-columns:minmax(0,6.5rem) minmax(0,11rem) minmax(0,1fr) auto;grid-template-areas:'count kind desc go' 'bar bar bar bar';column-gap:clamp(1.25rem,3vw,2.5rem);row-gap:.9rem;align-items:baseline;padding:clamp(1.3rem,2.6vw,1.9rem) 0;border-top:1px solid var(--line)}
.len-row:last-child{border-bottom:1px solid var(--line)}
.len-count{grid-area:count;margin:0;font:400 1rem/1.2 var(--sans);color:var(--text-2);white-space:nowrap}
.len-num{display:block;font:400 clamp(2.1rem,4vw,2.9rem)/1 var(--serif);color:var(--text)}
.len-kind{grid-area:kind;margin:0;font:400 clamp(1.05rem,1.7vw,1.22rem)/1.3 var(--serif);color:var(--text)}
.len-desc{grid-area:desc;margin:0;max-width:52ch;font:400 1rem/1.65 var(--sans);color:var(--text-2)}
.len-go{grid-area:go;margin:0;justify-self:end;white-space:nowrap}
.len-bar{grid-area:bar;height:2px;background:var(--line);margin:0}
.len-bar span{display:block;height:100%;background:var(--tide)}
.len-bar--2 span{width:28.6%}
.len-bar--3 span{width:42.9%}
.len-bar--5 span{width:71.4%}
.len-bar--7 span{width:100%}
@media (max-width:760px){
  .len-row{grid-template-columns:minmax(0,5.5rem) minmax(0,1fr);grid-template-areas:'count kind' 'bar bar' 'desc desc' 'go go';row-gap:.7rem}
  .len-go{justify-self:start}
  .len-desc{max-width:none}
}
.sessions-intro{width:var(--wide);margin-inline:auto;padding:clamp(2rem,5vw,3.5rem) 0}
.sessions-intro .prose{max-width:64ch}
.sessions-intro h2{font:400 clamp(1.7rem,3vw,2.4rem)/1.15 var(--serif);margin:0 0 1rem}
.sessions-intro p{font:400 1.05rem/1.7 var(--sans);color:var(--text-2);margin:0 0 1rem}
.enquiry-switch{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:baseline;margin:0 0 1.5rem;padding:.8rem 1.1rem;background:var(--sand,#f1eee7);border-radius:var(--radius);font:400 .96rem/1.5 var(--sans)}
.enquiry-switch span{color:var(--text-2)}
.planner--service .planner-main{max-width:44rem}
.form-subhead{font:400 clamp(1.3rem,2.2vw,1.6rem)/1.2 var(--serif);margin:2.2rem 0 .6rem}
#service-summary dl{display:grid;grid-template-columns:minmax(8rem,auto) 1fr;gap:.4rem 1.2rem;margin:0}
#service-summary dt{font:500 .92rem/1.5 var(--sans);color:var(--text-2)}
#service-summary dd{margin:0;font:400 1rem/1.5 var(--sans)}
@media (max-width:640px){.chooser-grid,.session-grid{grid-template-columns:1fr}#service-summary dl{grid-template-columns:1fr;gap:.1rem}#service-summary dd{margin-bottom:.7rem}}
/* A single guest review beside one service: keep the card to a readable measure rather than a full-width block. */
.review-list--one{grid-template-columns:minmax(0,min(46rem,100%))}
/* /guest-reviews: give the strongest retreat review the lead position instead of six cards of identical
   weight in source order. Text, name and source label are untouched — only the setting changes. 19 Sep 2026. */
.review-card--lead{grid-column:1/-1;background:var(--sand,#f1eee7);border-color:transparent}
.review-card--lead blockquote p{font:400 clamp(1.15rem,2.1vw,1.5rem)/1.5 var(--serif);color:var(--ink)}
@media (min-width:641px){.review-card--lead{padding:clamp(2rem,3.6vw,2.9rem)}}

/* Advertising preference remains available without a popup. */
.tracking-settings{font:inherit;color:inherit;background:none;border:0;padding:0;text-decoration:underline;cursor:pointer}
.tracking-settings:focus-visible{outline:3px solid #2b746f;outline-offset:3px}

/* Two-night starting offer (27 Sep 2026): prices, included / not included and hosting, laid out to scan. */
.offer{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;border-top:1px solid var(--line)}
.offer-head h2{max-width:16ch}
.offer-prices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1.25rem 0 1.5rem}
.offer-price{margin:0;padding:1rem 1.1rem;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);display:flex;flex-direction:column;gap:.2rem}
.offer-who{font:500 .78rem/1.35 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--text-2)}
.offer-amt{font:400 clamp(1.45rem,2.2vw,1.8rem)/1.2 var(--serif);color:var(--ink)}
.offer-sub{font-size:.92rem;color:var(--text-2)}
.offer .actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}
.offer-head .note{font-size:.92rem;color:var(--text-2)}
.offer-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem 2.5rem}
.offer-col h3{font-size:1.25rem;margin-bottom:.6rem}
.offer-col--wide{grid-column:1 / -1}
.offer-list{list-style:none;margin:0;padding:0}
.offer-list li{position:relative;padding:.45rem 0 .45rem 1.6rem;border-top:1px solid var(--line);font-size:.98rem;line-height:1.5}
.offer-list li::before{position:absolute;left:0;top:.45rem;font-family:var(--sans);font-weight:500}
.offer-list--in li::before{content:'✓';color:var(--teal)}
.offer-list--out li::before{content:'–';color:var(--meta)}
.offer-hosting{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 2rem}
.offer-hosting div{border-top:1px solid var(--line);padding-top:.6rem}
.offer-hosting dt{font:500 .95rem/1.3 var(--sans);color:var(--ink);margin-bottom:.25rem}
.offer-hosting dd{margin:0;font-size:.95rem;color:var(--text-2);line-height:1.5}
@media (max-width:900px){
  .offer{grid-template-columns:minmax(0,1fr)}
  .offer-body,.offer-hosting{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:420px){.offer-prices{grid-template-columns:minmax(0,1fr)}}

/* A price line beside an enquiry button. */
.price-line{font-size:.95rem;color:var(--text-2);max-width:var(--measure-sm)}
.scene p.hero-price{font-size:.98rem;margin:.9rem 0 0;max-width:34rem}
.aside-price{margin:1.5rem 0 0;padding-top:1rem;border-top:1px solid var(--line)}
.aside-price h2{font-size:1.2rem;margin-bottom:.4rem}
.aside-price p{font-size:.95rem;margin-bottom:.5rem}

/* The three retreats side by side; rows become labelled cards on narrow screens (no sideways scrolling). */
.compare-table-wrap{grid-column:1 / -1;margin-top:1.5rem}
.compare-table{width:100%;border-collapse:collapse;font-size:.97rem;line-height:1.5}
.compare-table th,.compare-table td{text-align:left;vertical-align:top;padding:.8rem 1rem;border-top:1px solid var(--line)}
.compare-table thead th{font:400 1.15rem/1.3 var(--serif);border-top:0}
.compare-table thead th a{color:var(--ink)}
.compare-table tbody th{font:500 .78rem/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--text-2);width:14%}
.compare-table-wrap .note{margin-top:1rem;font-size:.92rem}
@media (max-width:900px){
  .compare-table thead{display:none}
  .compare-table,.compare-table tbody,.compare-table tr,.compare-table th,.compare-table td{display:block;width:auto}
  .compare-table tr{padding:.5rem 0 .75rem;border-top:1px solid var(--line-strong)}
  .compare-table th,.compare-table td{border-top:0;padding:.35rem 0}
  .compare-table tbody th{width:auto;padding-top:.6rem}
  .compare-table td::before{content:attr(data-label);display:block;font-weight:500;color:var(--ink)}
}

/* Short enquiry route in the retreat planner. */
.quick-enquiry{margin-top:1.75rem;padding:1rem 1.1rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--white)}
.quick-enquiry p{font-size:.95rem;margin-bottom:.75rem}
.quick-note{padding:.8rem 1rem;background:var(--sea);border-radius:var(--radius);font-size:.95rem}

/* October 2026 homepage: existing coastal palette and photographs, editorial scale.
   Scope layout changes to Home; shared navigation keeps its existing keyboard behaviour. */
.page-index{--s-sig:clamp(3.5rem,7vw,7rem);--s-norm:clamp(3rem,6vw,6rem)}
.page-index main h2{font-size:clamp(2.2rem,3.8vw,3.6rem);line-height:1.1;letter-spacing:-.025em}
.page-index .immersive-hero{min-height:760px;min-height:min(88svh,900px);text-align:left;justify-content:flex-start}
.page-index .immersive-copy{width:var(--wide);margin-inline:auto;padding:calc(var(--header-h) + 5rem) 0 5rem}
.page-index .immersive-copy::before{display:none}
.page-index .sunrise-opening::before{background:linear-gradient(90deg,rgba(12,29,33,.83),rgba(12,29,33,.62) 44%,rgba(12,29,33,.1) 100%),linear-gradient(180deg,rgba(12,29,33,.35),transparent 30%)}
.page-index .immersive-copy h1{font-size:clamp(3.4rem,6.8vw,6.4rem);margin:0 0 1.8rem;line-height:1.04}
.page-index .hero-h1 .hero-title{max-width:13ch;margin:0}
.page-index .hero-h1 .hero-place{font-size:.82rem;margin-bottom:2rem;letter-spacing:.13em}
.page-index .immersive-copy>p{max-width:48ch;margin:0 0 2rem;font-size:1.13rem;line-height:1.7}
.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem}
.immersive-copy .hero-call{background:transparent;color:var(--white)}
.immersive-copy .hero-call:hover{background:var(--white);color:var(--ink)}
.home-trust{width:var(--wide);margin:auto;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.65rem 0;border-bottom:1px solid var(--line);font-size:.9rem;color:var(--text-2)}
.google-rating{display:inline-flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:.25rem;min-height:48px;text-decoration:none;font-size:.9rem;color:var(--ink)}
.google-rating:hover span:last-child{text-decoration:underline;text-underline-offset:.2em}
.rating-stars{color:#8a5e18;letter-spacing:.16em;font-size:1.1rem;line-height:1.2}
.page-index .letter{padding-block:var(--s-norm);gap:3rem 7rem}
.page-index .letter h2{max-width:13ch}
.page-index .pathways{padding-block:1rem var(--s-norm)}
.page-index .pathways-head{margin-bottom:2.5rem}
.page-index .panels--three{gap:2rem;align-items:start}
.page-index .panels--three .panel{display:flex;flex-direction:column;align-items:stretch;aspect-ratio:auto;min-height:0;padding:0;background:transparent;color:var(--ink);overflow:visible}
.page-index .panels--three .panel--counsel{margin-top:3rem}
.page-index .panel::before,.page-index .panel::after,.page-index .panel .place::before{display:none}
.page-index .panel img{position:static;z-index:auto;aspect-ratio:4/5;height:auto;object-fit:cover;filter:none;transform:none;margin-bottom:1.7rem}
.page-index .panel .place{padding:0;color:var(--tide);text-shadow:none;font-size:.74rem;letter-spacing:.1em}
.page-index .panel h3{color:var(--ink);text-shadow:none;font-size:clamp(1.65rem,2.4vw,2.3rem);max-width:none;margin-bottom:1rem}
.page-index .panel p{color:var(--text-2);text-shadow:none;max-width:none}
.page-index .panel .panel-idea{font-family:var(--sans);font-size:1rem;line-height:1.6;color:var(--ink)}
.page-index .panel-cta{align-self:flex-start;padding:.5rem 0;border:0;border-bottom:1px solid var(--tide);border-radius:0;color:var(--tide);background:transparent;margin-top:.7rem}
.page-index .panel:hover .panel-cta{background:transparent;color:var(--ink);border-color:var(--ink)}
.page-index .panel:focus-visible{outline:3px solid var(--tide);outline-offset:7px}
.page-index .pathways-note{margin-top:3rem;max-width:70ch;text-align:center}
.page-index #stay{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:2.5rem 5rem;padding-block:var(--s-norm)}
.page-index #stay .stay-lead img{aspect-ratio:5/4;object-fit:cover;width:100%;height:auto}
.page-index #stay h2{max-width:12ch}
.stay-support{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}
.stay-support figure{margin:0}
.page-index #stay .stay-support img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.stay-support figcaption{font-size:.88rem;color:var(--text-2);padding-top:.65rem}
.stay-note{grid-column:1/-1;max-width:78ch;margin:0}
.page-index .film{display:block;background:var(--ink);color:var(--white);padding-block:var(--s-norm)}
.page-index .film-head{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:2.4rem}
.page-index .film-head h2{color:var(--white);max-width:none;margin:0}
.page-index .film-head p{color:var(--white);max-width:32ch;margin:0}
.page-index .film .tour{width:100%;max-width:none;margin:0}
.page-index .film video{width:100%;max-height:none;aspect-ratio:16/9;object-fit:contain;background:#000}
.page-index .film .tour-meta,.page-index .film .tour-meta h3,.page-index .film .tour-meta p,.page-index .film .tour-meta span,.page-index .film summary,.page-index .film .transcript{color:var(--white)}
.page-index .film :focus-visible{outline-color:var(--white)}
.page-index #example-stay{padding-block:var(--s-norm);background:var(--ivory)}
.page-index .next-steps{gap:3rem}
.page-index .next-steps li::before{font-size:2rem;margin-bottom:1.3rem}
.page-index .next-steps h3{font-size:1.65rem;margin-bottom:.8rem}
.page-index .next-steps-note{max-width:85ch}
.page-index .hosts{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:5rem;padding-block:var(--s-norm);border-block:1px solid var(--line)}
.page-index .hosts figure{margin:0}
.page-index .hosts img{aspect-ratio:5/4;object-fit:cover}
.page-index .hosts>div{padding:0;margin:0;background:transparent}
.page-index .hosts h2{max-width:none}
.page-index .mosaic-section{padding-block:var(--s-norm)}
.experience-groups{width:var(--wide);margin:2.5rem auto 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3.2rem 2.5rem}
.experience-group h3{font-size:1.8rem;margin-bottom:1.2rem}
.experience-group ul{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem;padding:0;margin:0}
.experience-group li{min-width:0}
.experience-group a{display:flex;flex-direction:column;text-decoration:none}
.experience-group img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:var(--focus,50% 50%);margin-bottom:.85rem}
.experience-group .tile-title{font-size:1rem;color:var(--ink)}
.experience-group .tile-sub,.experience-group .tile-note{font-size:.85rem;line-height:1.5;color:var(--text-2);margin-top:.25rem}
.experience-group a:hover .tile-title{text-decoration:underline;text-underline-offset:.25em}
.page-index .reviews--home{border-top:1px solid var(--line)}
.page-index .reviews-head{max-width:65ch}
.page-index .reviews-head .google-rating{margin-top:1.2rem}
.page-index .review-list--home{grid-template-columns:repeat(3,minmax(0,1fr));max-width:none;gap:2rem}
.page-index .review-card{border:0;border-top:1px solid var(--line-strong);border-radius:0;padding:1.7rem 0;background:transparent}
.page-index .review-card blockquote p{font-size:1.02rem;line-height:1.8}
.home-value{width:var(--wide);margin:1rem auto var(--s-norm);padding:clamp(1.7rem,4.5vw,4.5rem);background:var(--stone);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:4rem}
.home-value h2{max-width:13ch;margin-bottom:2rem}
.home-value h3{font:500 1.05rem/1.5 var(--sans);margin-bottom:.7rem}
.value-price{font-size:1.2rem;color:var(--ink);margin:0 0 1rem}
.value-price strong{display:block;font:400 clamp(3.5rem,5vw,5rem)/1.2 var(--serif);letter-spacing:-.035em}
.value-intro>.btn{margin-top:1rem}
.value-inclusions{list-style:none;padding:0;margin:0 0 1.6rem}
.value-inclusions li{padding:.8rem 0 .8rem 1.6rem;border-bottom:1px solid #ccc6ba;position:relative}
.value-inclusions li::before{content:'✓';position:absolute;left:0;color:var(--teal-deep)}
.value-detail>p{font-size:.95rem;line-height:1.7}
.value-detail>.note{font-size:.87rem;max-width:none}
.page-index .sessions--home{padding-block:0 var(--s-norm);border:0}
.page-index .sessions--home h2{font-size:clamp(1.65rem,2.8vw,2.5rem);max-width:none}
.session-links{display:flex;flex-wrap:wrap;gap:.5rem 2rem;list-style:none;padding:0;margin:1.4rem 0}
.session-links a{display:inline-flex;align-items:center;min-height:44px}
.page-index .scene--closing{min-height:460px}
.page-index .scene--closing .actions{gap:1rem;flex-wrap:wrap}
.page-index .scene--closing .btn-quiet{color:var(--white);border-color:var(--white);background:transparent}
.page-index .scene--closing .btn-quiet:hover{color:var(--ink);background:var(--white)}
@media(max-width:1000px){
 .page-index .panels--three{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.3rem}
 .page-index .panel h3{font-size:1.6rem}
 .page-index .panel h3 .t-line{display:inline}
 .page-index .letter,.page-index #stay,.page-index .hosts{gap:2.5rem}
 .home-trust{display:grid;grid-template-columns:1fr 1fr;gap:1rem 2rem}
 .home-value{gap:2rem}
 .page-index .review-list--home{gap:1.3rem}
}
@media(max-width:700px){
 .page-index .immersive-hero{min-height:740px;min-height:92svh}
 .page-index .immersive-copy{padding:calc(var(--header-h) + 2.5rem) 0 3rem}
 .page-index .immersive-copy h1{font-size:clamp(2.8rem,12vw,4.4rem);margin-bottom:1.5rem}
 .page-index .hero-h1 .hero-title{max-width:12ch}
 .page-index .hero-h1 .hero-place{font-size:.68rem;letter-spacing:.08em;margin-bottom:1.4rem}
 .page-index .hero-place-sep{display:inline;font-size:inherit;line-height:inherit}
 .page-index .immersive-copy>p{font-size:1rem;line-height:1.65;max-width:34ch}
 .page-index .sunrise-opening::before{background:linear-gradient(90deg,rgba(12,29,33,.78),rgba(12,29,33,.52)),linear-gradient(180deg,rgba(12,29,33,.3),transparent)}
 .hero-actions{gap:.7rem}
 .hero-actions .button{padding:.9rem 1rem;font-size:.9rem;flex:1 1 auto}
 .home-trust{font-size:.8rem;gap:1.25rem;padding-block:1.5rem}
 .google-rating{font-size:.84rem}
 .page-index .letter{grid-template-columns:1fr;gap:1.5rem}
 .page-index .letter h2{max-width:15ch}
 .page-index .panels--three{grid-template-columns:1fr;gap:3rem}
 .page-index .panels--three .panel--counsel{margin-top:0}
 .page-index .panel img{aspect-ratio:6/5;margin-bottom:1.4rem}
 .page-index .panel h3{font-size:2rem;max-width:23ch}
 .page-index .pathways-head{margin-bottom:2rem}
 .page-index .pathways-note{text-align:left;margin-top:2rem}
 .page-index #stay{grid-template-columns:1fr;gap:1.7rem}
 .stay-support{grid-template-columns:1fr 1fr;gap:1.2rem}
 .stay-support figure:last-child{grid-column:1/-1}
 .page-index #stay .stay-support figure:last-child img{aspect-ratio:2/1}
 .page-index .film-head{display:block;margin-bottom:1.6rem}
 .page-index .film-head p{margin-top:1rem}
 .page-index .next-steps{grid-template-columns:1fr;gap:2rem}
 .page-index .hosts{grid-template-columns:1fr;gap:2rem}
 .page-index .hosts img{aspect-ratio:5/4}
 .experience-groups{grid-template-columns:1fr;gap:2.5rem}
 .experience-group h3{font-size:1.7rem}
 .experience-group img{aspect-ratio:1/1}
 .page-index .review-list--home{grid-template-columns:1fr;gap:.5rem}
 .home-value{grid-template-columns:1fr;gap:2.5rem}
 .home-value h2{max-width:15ch}
 .session-links{display:grid;grid-template-columns:1fr 1fr;gap:.5rem 1rem;font-size:.95rem}
 .page-index .scene--closing{min-height:420px}
}
/* Owner request: a more prominent homepage logo, including the compact header. */
.page-index{--header-h:6.5rem}
.page-index .brand-mark{height:84px}
.page-index .brand-name{font-size:clamp(1.4rem,1.9vw,1.8rem)}
.page-index .is-stuck .brand-mark{height:62px}
@media(max-width:700px){
 .page-index{--header-h:5.5rem}
 .page-index .brand{gap:.7rem}
 .page-index .brand-mark{height:64px}
 .page-index .brand-name{font-size:1.2rem;max-width:9ch}
 .page-index .is-stuck .brand-mark{height:54px}
}
@media(max-width:374px){.page-index .brand-mark{height:56px}.page-index .brand-name{font-size:1.08rem}}
@media(max-width:700px){.value-price strong{font-size:clamp(1.9rem,9vw,3rem);white-space:nowrap}}
/* Follow-up: a shorter mobile opening and a clearer first enquiry choice. */
.hero-rating{display:none}
.intro-price{border-top:1px solid var(--line);padding-top:1.25rem;margin-top:1.5rem}
.page-index .letter .intro-price{font:400 .96rem/1.65 var(--sans)}
.intro-price strong{font-weight:600;color:var(--ink)}
.page-index .review-card blockquote strong{font-weight:650}
.value-conditions{list-style:none;padding:0;margin:1.4rem 0 0;font-size:.92rem;color:var(--text-2)}
.value-conditions li{margin-bottom:1rem;line-height:1.65}
.value-conditions strong{font-weight:600;color:var(--ink)}
.enquiry-mode{border:0;padding:0;margin:1.5rem 0}
.enquiry-mode legend{font-weight:500;margin-bottom:.8rem}
.enquiry-mode .choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.step-nav button[hidden]{display:none}
.step-nav li:has(>button[hidden]){display:none}
@media(max-width:700px){
 .page-index .brand-name{font-size:1.08rem;max-width:12ch;text-wrap:balance}
 .page-index .immersive-hero{min-height:0;align-items:flex-start}
 .page-index .immersive-copy{padding:calc(var(--header-h) + 1.7rem) 0 1.8rem}
 .page-index .hero-h1 .hero-place{margin-bottom:1rem}
 .page-index .immersive-copy h1{font-size:clamp(2.6rem,10.5vw,4rem);margin-bottom:1.15rem}
 .page-index .immersive-copy>p{margin-bottom:1.25rem}
 .hero-rating{display:block;margin-top:1.3rem}
 .hero-rating .google-rating{color:var(--white);flex-direction:row;align-items:center;gap:.65rem}
 .hero-rating .rating-stars{color:#ffda8d}
 .home-trust .google-rating{display:none}
 .home-trust{grid-template-columns:1fr;gap:.65rem;padding-block:1.2rem}
 .page-index .hosts{padding-block:3rem}
 .enquiry-mode .choice-grid{grid-template-columns:1fr}
}

/* One-step enquiry: existing cream palette and editorial typography. */
.quick-contact { scroll-margin-top: 7rem; }
.quick-contact > div > p { max-width: 40ch; margin-top: 1rem; }
.quick-form { width: 100%; }
.quick-fields { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem 1rem; }
.quick-wide { grid-column: 1 / -1; }
.quick-form label { display: block; margin-bottom: .45rem; font-weight: 500; }
.quick-form label span { font-weight: 400; }
.quick-form input:not([type="checkbox"]), .quick-form textarea, .quick-form select { width: 100%; min-width: 0; padding: .8rem; border: 1px solid #938a7a; border-radius: 0; background: #fffdf8; color: #252823; font: inherit; }
.quick-form textarea { resize: vertical; }
.quick-form .quick-permission { display: flex; gap: .75rem; align-items: flex-start; margin-top: .8rem; }
.quick-permission input { flex: 0 0 auto; width: 1.2rem; height: 1.2rem; margin-top: .15rem; }
.quick-form .field-error { color: #8a3025; font-size: .9rem; margin: .3rem 0; }
.quick-form .note { margin: .6rem 0 1rem; }
.quick-form .honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.quick-form button[disabled] { opacity: .65; cursor: wait; }
.flagship { background: #f0ece2; }
.flagship .actions { flex-wrap: wrap; }
@media (max-width: 600px) { .quick-fields { grid-template-columns: 1fr; } .quick-form .btn { width: 100%; } }

/* Dedicated support pathways, visible in the homepage opening and immediately below it. */
.hero-support-links{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.65rem 1rem;margin:1.25rem auto 1.5rem;color:#fffefa;font:500 .95rem/1.5 var(--sans)}
.hero-support-links a{color:#fffefa;text-decoration:underline;text-underline-offset:.25em;text-decoration-thickness:1px;padding:.45rem .25rem;min-height:44px;display:inline-flex;align-items:center}
.hero-support-links a:hover{text-decoration-thickness:2px}
.home-support{background:var(--sea);padding:clamp(2rem,5vw,4rem) 0;border-bottom:1px solid var(--line)}
.home-support-inner{width:var(--wide);margin-inline:auto}
.home-support h2{font:400 clamp(2rem,4vw,3.3rem)/1.12 var(--serif);letter-spacing:-.025em;margin:.5rem 0 1rem;max-width:24ch}
.home-support-intro{font:400 1.1rem/1.65 var(--sans);max-width:65ch;margin:0 0 1.75rem;color:var(--text)}
.home-support .session-card h3{font-size:clamp(1.7rem,2.5vw,2.2rem)}
.home-support .session-card .actions{margin-top:auto;padding-top:.5rem}
.home-support-note{font:400 .9rem/1.6 var(--sans);max-width:86ch;margin:1.4rem 0 0;color:var(--text-2)}
@media(max-width:640px){.hero-support-links{gap:.3rem .8rem}.hero-support-links>span{flex-basis:100%}.home-support .actions{align-items:flex-start;flex-direction:column}.home-support .btn{max-width:100%;white-space:normal}}

/* Keep counselling directly accessible even when the full navigation uses Menu. */
.header-counselling{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.5rem .85rem;margin-left:auto;border:1px solid currentColor;border-radius:999px;color:inherit;background:rgba(9,25,32,.55);font:500 .9rem/1.2 var(--sans);text-decoration:none;white-space:nowrap}
.page-light .header-counselling,.is-stuck .header-counselling{background:var(--white);color:var(--ink)}
.header-counselling[aria-current]{text-decoration:underline;text-underline-offset:.2em}
.header-counselling + .menu-button{margin-left:0}
@media(max-width:600px){.site-header .brand-name{display:none}.site-header .nav-row{gap:.6rem}.site-header .brand{flex:0 1 auto}.header-counselling{font-size:.85rem;padding:.5rem .7rem}.site-header .menu-button{padding:.5rem .75rem}}

/* 18 Oct: simpler hierarchy, same palette, type and approved photography. */
@media(min-width:68.8125em){
 .header-counselling{display:none}.site-nav{gap:1.1rem}.nav-row{gap:1rem}.brand-name{font-size:1.35rem}
 .page-index .brand-name{font-size:1.5rem}.page-index .brand-mark{height:64px}
}
.footer-guides{margin-top:.75rem}.footer-guides summary{cursor:pointer;min-height:44px;display:list-item;padding:.65rem 0}
.page-index .hosts{padding-block:3rem}.page-index .sessions{padding-block:3rem}
.page-index .reviews--home{padding-block:3rem}.page-index .reviews--home .review-list{grid-template-columns:1fr;max-width:65ch;margin-inline:auto}
.page-chooser .quick-contact{padding-top:1.5rem}
.chooser>details>summary{cursor:pointer;font:400 1.5rem/1.3 var(--serif);min-height:44px;padding:.5rem 0}
.chooser>details>p{max-width:70ch;margin-block:1rem}

.site-footer small{color:#fffdf9;font-size:.9rem;opacity:1}

html.has-enquiry{scroll-behavior:auto}

/* Hidden enquiry modes must stay out of layout and keyboard navigation. */
#short-enquiry-panel[hidden], #detailed-enquiry-panel[hidden], #support-detail-panel[hidden] { display:none; }
.enquiry-depth { max-width:50rem; }
.enquiry-depth label { display:block; margin-bottom:.5rem; font-weight:600; }
.enquiry-depth select { width:100%; padding:.85rem; font:inherit; }

/* Four clear enquiry choices, with the whole card as its single action. */
.page-chooser .chooser-card { padding:0; gap:0; }
.chooser-route { display:grid; grid-template-columns:1fr auto; gap:.35rem .75rem; padding:1.3rem; color:var(--ink); text-decoration:none; height:100%; }
.chooser-route h2 { font:400 1.6rem/1.15 var(--serif); margin:0; }
.chooser-route p { grid-column:1; }
.chooser-arrow { grid-column:2; grid-row:1 / span 2; align-self:center; font-size:1.4rem; }
.chooser-route:hover { background:var(--stone); }
@media(max-width:640px) {
 .page-chooser .page-opening { padding-top:calc(var(--header-h) + 1.3rem); padding-bottom:.7rem; }
 .page-chooser .page-opening h1 { font-size:2rem; margin-bottom:.6rem; }
 .page-chooser .page-opening .lede { font-size:.95rem; line-height:1.45; }
 .page-chooser .chooser { padding-block:.5rem 1.5rem; }
 .page-chooser .chooser-grid { gap:.65rem; }
 .chooser-route { padding:.85rem 1rem; gap:.25rem .75rem; }
 .chooser-route h2 { font-size:1.3rem; }
 .page-chooser .chooser-card p { font-size:.88rem; line-height:1.4; }
}
/* Keep narrow and enlarged-text choices inside the available reading width. */
.page-chooser .chooser-card,.chooser-route,.chooser-route h2,.chooser-route p { min-width:0; overflow-wrap:anywhere; }
.chooser-route { grid-template-columns:minmax(0,1fr) auto; }
@media(max-width:640px) { .page-chooser .chooser-grid { grid-template-columns:minmax(0,1fr); } }
@media(max-width:374px) { .chooser-route { grid-template-columns:minmax(0,1fr); } .chooser-arrow { display:none; } }

/* Photographs belong to the content: image-led choices and joined editorial openings. */
.page-chooser .chooser-grid--photos{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}
.page-chooser .chooser-card--photo{overflow:hidden;border:0;background:var(--sand,#f0ece2)}
.chooser-route--photo{grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:0;padding:0;align-items:stretch}
.chooser-photo{display:block;position:relative;min-height:230px;overflow:hidden;background:var(--stone)}
.chooser-photo img{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 35%;transition:transform .3s ease}
.chooser-copy{display:flex;flex-direction:column;gap:.75rem;min-width:0;padding:clamp(1.2rem,2vw,2rem)}
.chooser-copy .chooser-arrow{display:block;align-self:flex-end;margin-top:auto;font-size:1.65rem}
.chooser-route--photo:hover .chooser-photo img{transform:scale(1.025)}
.chooser-route--photo:focus-visible{outline:3px solid var(--teal);outline-offset:-3px}
.page-opening--visual,.policy-head--visual,.not-found--visual{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;align-items:stretch;background:var(--sand,#f0ece2);overflow:hidden}
.page-opening--visual{padding:0;margin-top:calc(var(--header-h) + 2rem);margin-bottom:2rem}
.page-opening--visual>div,.policy-head--visual>div,.not-found--visual>div{padding:clamp(1.5rem,3.8vw,3.5rem);align-self:center}
.policy-head--visual{max-width:none}
.not-found--visual{padding:0;margin-top:calc(var(--header-h) + 2rem);margin-bottom:3rem}
.opening-photo{position:relative;margin:0;min-width:0;min-height:280px;overflow:hidden;background:var(--stone)}
.opening-photo img{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--focus,50% 35%)}
@media(max-width:1000px){.page-chooser .chooser-grid--photos{grid-template-columns:minmax(0,1fr)}.chooser-photo{min-height:185px}.chooser-route--photo{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}}
@media(max-width:700px){
 .page-opening--visual,.policy-head--visual,.not-found--visual{grid-template-columns:minmax(0,1fr)}
 .page-opening--visual{margin-top:calc(var(--header-h) + 1rem);margin-bottom:1.25rem}
 .page-opening--visual>div,.policy-head--visual>div,.not-found--visual>div{padding:1.4rem}
 .opening-photo{grid-row:1;min-height:0;height:clamp(160px,48vw,240px)}
 .page-opening--visual h1{font-size:clamp(2rem,7.7vw,3rem)}
}
@media(max-width:640px){
 .page-chooser .chooser-grid--photos{gap:.75rem}
 .chooser-route--photo{grid-template-columns:minmax(0,1fr) minmax(0,2.5fr);padding:0;gap:0}
 .chooser-photo{min-height:150px}
 .chooser-copy{padding:1rem;gap:.45rem}
 .chooser-copy .chooser-arrow{display:block;font-size:1.3rem}
}
@media(prefers-reduced-motion:reduce){.chooser-photo img{transition:none}.chooser-route--photo:hover .chooser-photo img{transform:none}}

/* Optional measurement choice; separate from the enquiry form. */
.measurement-banner{position:fixed;z-index:90;left:1rem;right:1rem;bottom:1rem;max-width:76rem;margin:auto;padding:1.1rem 1.4rem;background:#fffaf1;color:#243f39;border:1px solid #8caaa0;border-radius:.75rem;box-shadow:0 4px 24px #18352b22;display:flex;align-items:center;gap:1.5rem}
.measurement-banner[hidden]{display:none}.measurement-banner h2{font-size:1.1rem;margin:0 0 .35rem}.measurement-banner p{font-size:.9rem;line-height:1.5;margin:0;max-width:48rem}.measurement-buttons{display:flex;gap:.6rem;flex-shrink:0}.measurement-buttons button{border:1px solid #315b50;border-radius:.35rem;padding:.7rem .85rem;background:#fffaf1;color:#243f39;font:inherit;font-size:.88rem;cursor:pointer}.measurement-buttons button:focus-visible{outline:3px solid #bd8744;outline-offset:3px}
@media(max-width:700px){.measurement-banner{left:.5rem;right:.5rem;bottom:.5rem;padding:1rem;display:block}.measurement-buttons{margin-top:.8rem;flex-wrap:wrap}.measurement-banner p{font-size:.85rem}}

/* 24 Oct 2026: coastal photography at the start of every service and guide,
   with compact illustrated directories that remain readable on a phone. */
.page-opening--visual{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}
.page-opening--visual .opening-photo{min-height:360px}
.page-opening--visual h1{max-width:19ch}
.page-opening--visual .lede{max-width:48ch}
.page-opening--visual .actions{gap:.75rem;margin-top:1.5rem}
.page-opening--visual + .letter,.page-opening--visual + .two-col{padding-top:var(--s-tight)}
.session-grid--illustrated{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}
.session-card--illustrated{display:grid;grid-template-columns:minmax(120px,1fr) minmax(0,2fr);padding:0;gap:0;overflow:hidden;border:0;background:var(--white)}
.session-card--illustrated>figure{position:relative;min-width:0;overflow:hidden;background:var(--stone)}
.session-card--illustrated>figure img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--focus,50% 50%)}
.session-card-copy{display:flex;flex-direction:column;gap:.8rem;min-width:0;padding:clamp(1.1rem,2.3vw,1.75rem)}
.session-card-copy h3{font-size:clamp(1.3rem,1.8vw,1.65rem)}
.session-card-copy .session-action{margin-top:auto}
.session-card-copy .link{min-height:44px}
@media(min-width:1001px){.page-session .session-grid--illustrated{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1000px){.session-grid--illustrated{grid-template-columns:minmax(0,1fr)}.session-card--illustrated{grid-template-columns:160px minmax(0,1fr)}}
@media(max-width:700px){
 .page-opening--visual{grid-template-columns:minmax(0,1fr)}
 .page-opening--visual .opening-photo{min-height:0;height:clamp(180px,52vw,250px)}
 .page-sessions .page-opening--visual .opening-photo{height:clamp(235px,65vw,300px)}
 .page-opening--visual>div{padding:1.5rem 1.3rem}
 .page-opening--visual h1{max-width:none;font-size:clamp(1.95rem,7.5vw,3rem)}
 .page-opening--visual .t-line{display:inline}
 .page-opening--visual .actions{margin-top:1.2rem}
 .page-opening--visual .btn{max-width:100%}
}
@media(max-width:600px){
 .session-grid--illustrated{gap:1rem}
 .session-card--illustrated{grid-template-columns:80px minmax(0,1fr);gap:.8rem 1rem;padding:1.1rem}
 .session-card--illustrated>figure{width:80px;height:80px;align-self:start}
 .session-card-copy{display:contents}
 .session-card-copy h3{font-size:1.3rem;align-self:center}
 .session-card-copy p{grid-column:1/-1;font-size:.95rem;line-height:1.55}
 .session-card-copy .link{font-size:.9rem}
}

/* Owner-requested day retreats, 24 October 2026. */
.day-opening{display:grid;grid-template-columns:1fr 1.05fr;max-width:1440px;margin:0 auto;background:var(--sea)}
.day-opening-copy{padding:clamp(32px,5vw,80px);align-self:center}.day-opening h1{font-size:clamp(44px,5vw,76px);line-height:1.08;margin:16px 0 24px}.day-opening .lede{font-size:22px;max-width:26ch}.day-opening-photo{min-height:640px}.day-opening-photo img{width:100%;height:100%;object-fit:cover;object-position:55% 50%}.day-opening-prices{display:flex;gap:28px;flex-wrap:wrap;border-top:1px solid var(--line-strong);margin-top:28px;padding-top:16px}.day-opening-prices p{margin:0}.day-opening-prices strong{display:block;font-size:34px;font-weight:500}.day-opening-prices span{display:block;font-size:14px;max-width:22ch}.day-inclusions,.day-packages,.day-custom,.day-itinerary,.day-last,.day-signpost{width:var(--wide);margin:0 auto;padding:64px 0}.day-inclusions{text-align:center;max-width:1120px}.day-inclusions h2,.day-section-head h2,.day-itinerary h2,.day-last h2,.day-teaser h2{font-size:clamp(32px,3.4vw,48px);line-height:1.15}.day-inclusions ul{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;list-style:none;padding:24px 0;margin:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.day-inclusions li{font-size:18px;line-height:1.55;padding:0 14px}.day-section-head{max-width:760px;margin-bottom:34px}.day-section-head p{max-width:68ch}.day-package-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px}.day-package{background:var(--white);border:1px solid var(--line);display:flex;flex-direction:column;overflow:hidden}.day-package-photo{height:260px;overflow:hidden}.day-package-photo img{width:100%;height:100%;object-fit:cover}.day-package-copy{padding:32px;flex:1;display:flex;flex-direction:column;align-items:flex-start}.day-package-meta{font-size:14px;color:var(--text-2);margin:0 0 10px}.day-package h3{font-family:var(--serif);font-size:34px;line-height:1.15;font-weight:400;margin:0 0 18px}.day-package-copy>p{max-width:62ch}.day-value{font-weight:600;color:var(--teal-deep)}.day-package-price{margin:auto 0 22px;padding-top:20px;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.day-package-price strong{font-size:38px;line-height:1.1;font-weight:500}.day-package-price span{font-size:15px}.day-package:last-child{grid-column:1 / -1;display:grid;grid-template-columns:.8fr 1.2fr}.day-package:last-child .day-package-photo{height:100%;min-height:360px}.day-terms{max-width:86ch;margin-top:24px}.day-lunch{display:grid;grid-template-columns:1fr 2fr;gap:40px;background:var(--sea);padding:36px;align-items:start;width:var(--wide);margin:0 auto}.day-lunch h2{font-size:32px;margin:0}.day-lunch p{margin:0;max-width:60ch}.day-itinerary{display:grid;grid-template-columns:.85fr 1.15fr;gap:72px}.day-itinerary-photo{margin-top:30px}.day-itinerary-photo img{width:100%;aspect-ratio:4/3;object-fit:cover}.day-itinerary ol{margin:0;padding-left:24px}.day-itinerary li{padding:0 0 20px 16px;border-bottom:1px solid var(--line);margin:0 0 20px}.day-itinerary h3{font-size:21px;font-family:var(--sans);margin:0 0 8px}.day-itinerary li p{margin:0;max-width:60ch}.day-custom{border-top:1px solid var(--line)}.day-pick-form fieldset,#day-custom-options fieldset{border:0;padding:0;margin:0}.day-pick-form legend,#day-custom-options legend{font-weight:600;font-size:18px;margin-bottom:20px}.day-picks{display:grid;grid-template-columns:1fr 1fr;gap:12px 28px}.day-pick{display:flex;gap:12px;align-items:flex-start;font-weight:400;border-bottom:1px solid var(--line);padding:14px 0;cursor:pointer}.day-pick input{width:20px;min-width:20px;height:20px;margin:3px 0 0;accent-color:var(--teal-deep)}.day-custom-lunch{margin:24px 0;max-width:420px}.day-custom-lunch label{display:block;margin-bottom:8px}.day-custom-lunch select{width:100%;padding:12px;border:1px solid var(--field-border);background:white;color:var(--ink);font:inherit}.day-last{text-align:center;background:var(--sea);margin-bottom:60px;padding:44px 24px}.day-teaser{width:var(--wide);margin:36px auto;display:grid;grid-template-columns:.9fr 1.1fr;background:var(--sea)}.day-teaser-photo img{height:100%;width:100%;object-fit:cover}.day-teaser-copy{padding:48px}.day-teaser-copy h2{margin-top:0}.day-price-line{font-size:18px;line-height:1.7}.day-signpost{border-top:1px solid var(--line);max-width:1100px}.day-signpost p{max-width:72ch}.day-quote{background:var(--sea);padding:16px;font-size:17px;line-height:1.5}.page-day-enquiry .page-opening-photo{margin:0;max-width:440px}.page-day-enquiry .page-opening-photo img{width:100%;max-height:300px;object-fit:cover}.page-day-enquiry .quick-fields select,.page-day-enquiry .quick-fields input{max-width:100%}.page-day-enquiry #day-custom-options .day-picks{grid-template-columns:1fr}.page-day-enquiry .quick-contact{align-items:start}.day-choice-link{font-size:16px}
@media(max-width:760px){.day-opening{grid-template-columns:1fr}.day-opening-copy{padding:34px 24px}.day-opening h1{font-size:50px}.day-opening-photo{height:320px;min-height:0;grid-row:2}.day-opening-prices{gap:24px}.day-opening-prices span{max-width:19ch}.day-inclusions,.day-packages,.day-custom,.day-itinerary,.day-last,.day-signpost{padding:40px 0}.day-inclusions ul{grid-template-columns:1fr 1fr;gap:18px}.day-inclusions li{font-size:16px;padding:0 6px}.day-package-grid{grid-template-columns:1fr;gap:28px}.day-package-copy{padding:26px 22px}.day-package h3{font-size:31px}.day-package-photo{height:230px}.day-package:last-child{display:flex;grid-column:auto}.day-package:last-child .day-package-photo{height:230px;min-height:0}.day-lunch{grid-template-columns:1fr;gap:14px;padding:28px}.day-itinerary{grid-template-columns:1fr;gap:28px}.day-itinerary-photo{display:none}.day-picks{grid-template-columns:1fr}.day-last{padding:32px 20px}.day-teaser{grid-template-columns:1fr}.day-teaser-photo{height:260px}.day-teaser-copy{padding:28px}.page-day-enquiry .quick-fields{grid-template-columns:1fr}.day-package .btn{width:100%;justify-content:center}}
.day-massage-feature{width:var(--wide);margin:0 auto;padding:30px 0 56px;display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;align-items:center}.day-massage-feature figure{margin:0}.day-massage-feature img{width:100%;max-height:650px;object-fit:contain}.day-massage-feature figcaption{font-size:13px;text-align:center;margin-top:12px;color:var(--meta)}.day-massage-feature h2{font-size:clamp(38px,4vw,60px);line-height:1.08}.day-massage-feature p{max-width:62ch}.day-package#individual .day-package-photo,.day-package#ayurveda .day-package-photo{background:#e9e4dd}.day-package#individual .day-package-photo img,.day-package#ayurveda .day-package-photo img{object-fit:contain}.day-package#individual .day-package-photo{height:360px}.day-package#ayurveda .day-package-photo{max-height:620px}
@media(max-width:760px){.day-massage-feature{grid-template-columns:1fr;gap:26px;padding:20px 0 36px}.day-massage-feature figure{max-width:360px;margin:0 auto}.day-massage-feature img{max-height:480px}.day-massage-feature h2{margin-top:0}.day-package#individual .day-package-photo,.day-package#ayurveda .day-package-photo{height:330px}}

/* Timed day examples: complete sessions and breathing room between them. */
.day-package-next{width:var(--wide);margin:0 auto 40px;display:flex;align-items:center;gap:24px;flex-wrap:wrap}.day-package-next p{margin:0;font-size:19px}.day-itinerary--timed{display:block;scroll-margin-top:90px}.day-timetable-opening{display:grid;grid-template-columns:1.2fr .8fr;gap:56px;align-items:center;margin-bottom:40px}.day-timetable-opening p{max-width:64ch}.day-timetable-opening figure{margin:0}.day-timetable-opening img{width:100%;height:260px;object-fit:cover}.day-timetable-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px}.day-timetable{border:1px solid var(--line);background:var(--white)}.day-timetable>header{background:var(--sea);padding:28px 30px}.day-itinerary .day-timetable h3{font:400 34px/1.15 var(--serif);margin:0 0 12px}.day-timetable>header p{margin:0;font-weight:500}.day-itinerary .day-timetable ol{list-style:none;padding:8px 28px;margin:0}.day-itinerary .day-timetable li{display:grid;grid-template-columns:88px 1fr;gap:20px;padding:24px 0;margin:0;border-bottom:1px solid var(--line)}.day-itinerary .day-timetable li:last-child{border-bottom:0}.day-time{display:flex;flex-direction:column;gap:3px;color:var(--teal-deep);font-size:15px;line-height:1.35;font-weight:600;white-space:nowrap}.day-time span{font-size:12px;font-weight:400}.day-timetable h4{font:600 19px/1.4 var(--sans);margin:0 0 9px}.day-itinerary .day-timetable li p{font-size:16px;line-height:1.65}.day-timetable-finish{margin:0;padding:22px 28px;border-top:1px solid var(--line);font-size:15px}.day-timetable-note{max-width:90ch;margin-top:24px}
@media(max-width:760px){.day-timetable-opening{grid-template-columns:1fr;gap:24px}.day-timetable-opening img{height:200px}.day-timetable-grid{grid-template-columns:1fr;gap:28px}.day-timetable>header{padding:24px 22px}.day-itinerary .day-timetable ol{padding:0 20px}.day-itinerary .day-timetable li{grid-template-columns:72px 1fr;gap:16px}.day-itinerary .day-timetable h3{font-size:30px}.day-timetable h4{font-size:18px}.day-time{font-size:14px}.day-package-next{align-items:flex-start;flex-direction:column;gap:16px}.day-timetable-finish{padding:20px}.day-opening h1{font-size:48px}}

/* A short, single-send enquiry with the form close to the opening. */
.simple-enquiry-opening { padding-bottom: 1.5rem; }
.page-simple-enquiry .quick-contact { padding-top: 1rem; }
.page-simple-enquiry .quick-contact > div:first-child { max-width: 30rem; }
.page-simple-enquiry .quick-form { background: var(--paper, #fffdf8); border: 1px solid #d4dfdc; border-radius: 12px; padding: clamp(1rem, 3vw, 2rem); }
.simple-enquiry-more { padding-bottom: 3rem; }
.simple-enquiry-more summary { cursor: pointer; text-decoration: underline; text-underline-offset: .2em; }
@media (max-width: 760px) {
 .page-simple-enquiry .quick-contact { gap: 1.25rem; }
 .page-simple-enquiry .quick-contact > div:first-child p { margin-bottom: .65rem; }
 .page-simple-enquiry .quick-contact > div:first-child h2 { font-size: 1.7rem; }
 .page-simple-enquiry .quick-form .quick-fields { gap: .75rem; }
 .page-simple-enquiry #quick-submit { width: 100%; }
}

.quick-optional { margin: .25rem 0; }
.quick-optional summary { cursor: pointer; font-size: .95rem; text-underline-offset: .2em; }
.quick-optional[open] > .quick-fields { padding-top: 1rem; }
.page-simple-enquiry .quick-form .note { margin-bottom: .75rem; }
@media (max-width: 760px) {
 .page-simple-enquiry .quick-contact > div:first-child { order: 2; }
 .page-simple-enquiry .quick-contact > div:last-child { order: 1; }
 .simple-enquiry-opening { padding-top: calc(var(--header-h) + 1.3rem); }
}

/* Audit clarity pass, 3 November 2026. */
.page-index .sunrise-opening{min-height:0}
.page-index .immersive-copy{padding:calc(var(--header-h) + 2rem) 0 2rem}
.page-index .immersive-copy h1{font-size:clamp(2.8rem,4.6vw,4.6rem);margin-bottom:1.2rem}
.page-index .hero-h1 .hero-title{max-width:20ch}
.page-index .immersive-copy>p{max-width:52ch;margin-bottom:1.25rem;line-height:1.5}
.hero-visit-links{display:flex;flex-wrap:wrap;gap:.6rem;margin:0 0 1.4rem}
.hero-visit-links a{color:#fffefa;border:1px solid #fff9;border-radius:3px;padding:.65rem .9rem;background:#163c3e88;text-decoration:none}
.hero-visit-links a:hover,.hero-visit-links a:focus-visible{background:#fffefa;color:#173b3b}
.page-index .immersive-copy>p.hero-experience{font-size:.87rem;margin:1.2rem 0 .5rem}
.hero-rating{margin-top:.5rem}
.first-choices .session-card{display:flex;flex-direction:column}
.first-choices .session-action{margin-top:auto}
.fee-list{margin:0 0 1.5rem}
.fee-list>div{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid #cdd8d2;padding:.8rem 0}
.fee-list dt{font-weight:600}.fee-list dd{font-size:1.35rem;margin:0;white-space:nowrap}
.accommodation-compare{padding:4rem 0;background:#f1eee5}
.accommodation-options{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin:2rem 0}
.accommodation-options figure{margin:0}.accommodation-options img{width:100%;aspect-ratio:1.65;object-fit:cover}
.accommodation-options figcaption{font-size:.85rem;margin-top:.6rem}
.accommodation-options h3{margin-top:1rem}
@media(max-width:700px){.page-index .immersive-copy{padding:calc(var(--header-h) + 1.4rem) 0 1.6rem}.page-index .immersive-copy h1{font-size:clamp(2.35rem,9vw,3.3rem)}.hero-visit-links{gap:.5rem}.hero-visit-links a{padding:.55rem .65rem;font-size:.9rem}.accommodation-options{grid-template-columns:1fr}.accommodation-compare{padding:2.5rem 0}}

.hero-rating{display:block;margin-top:.4rem}.hero-rating .google-rating{color:#fffefa;flex-direction:row;align-items:center;gap:.65rem;min-height:32px}.hero-rating .rating-stars{color:#ffda8d}.session-price-note{font-weight:600}
