/* ------------------------------------------------------------------ fonts
   Playfair Display for the headings, Poppins for everything else, served
   from this site rather than from Google: one less third-party request, no
   render-blocking stylesheet, and the page keeps working where Google Fonts
   is blocked. Latin only, and only the weights actually used. swap means
   text is readable while they load rather than invisible. */
@font-face{font-family:"Playfair Display";font-style:normal;font-weight:400;font-display:swap;
  src:url("fonts/playfair-display-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Playfair Display";font-style:normal;font-weight:500;font-display:swap;
  src:url("fonts/playfair-display-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Playfair Display";font-style:normal;font-weight:600;font-display:swap;
  src:url("fonts/playfair-display-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"Playfair Display";font-style:italic;font-weight:400;font-display:swap;
  src:url("fonts/playfair-display-latin-400-italic.woff2") format("woff2")}
@font-face{font-family:"Playfair Display";font-style:italic;font-weight:500;font-display:swap;
  src:url("fonts/playfair-display-latin-500-italic.woff2") format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:300;font-display:swap;
  src:url("fonts/poppins-latin-300-normal.woff2") format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:400;font-display:swap;
  src:url("fonts/poppins-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:500;font-display:swap;
  src:url("fonts/poppins-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:600;font-display:swap;
  src:url("fonts/poppins-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"Poppins";font-style:italic;font-weight:400;font-display:swap;
  src:url("fonts/poppins-latin-400-italic.woff2") format("woff2")}

:root{
  --ink:#10231D; --ink-2:#17302A; --ink-3:#1F3B33;
  --ivory:#F6F1E8; --paper:#FBF8F2; --sand:#EDE4D6;
  /* gold-lo carries small text: the italic kicker, section numbers, footer
     headings, the saved-money lines. At #9C7A45 it measured 3.75:1 on the
     page, under the 4.5:1 a reader needs at those sizes, so it is darkened
     here. The bright --gold is untouched, so buttons and dark sections look
     exactly as designed. */
  --gold:#C8A46A; --gold-hi:#EAD3A2; --gold-lo:#7A5C2E;
  --t:#1A1E1B; --t-mute:#5F625C; --d:#F0EADF; --d-mute:#B3AD9F;
  --hair:rgba(var(--t-rgb),.14); --hair-d:rgba(var(--d-rgb),.16);
  /* The same colours as numbers, so anything that needs one of them at an
     opacity follows the theme too. Before these existed, the scrolled header,
     every photo overlay and sixteen gold tints were written as fixed values,
     so they kept the original colours whichever colour set was chosen. */
  --ink-rgb:16,35,29;
  --shade-rgb:9,20,17;        /* ink, darkened: the wash over a photo */
  --gold-rgb:200,164,106;
  --paper-rgb:251,248,242;
  --ivory-rgb:246,241,230;
  --d-rgb:240,234,223;
  --t-rgb:26,30,27;
  --gold-dp:#B38D52;          /* the foot of the gold button's gradient, as first drawn */
  --card:#FFFFFF;             /* a panel sitting on the page */
  --card-2:#FFFDF9;
  --serif:"Playfair Display", Georgia, serif;
  --sans:"Poppins", Arial, sans-serif;
  --ease:cubic-bezier(.22,.7,.2,1);
  --wrap:1152px;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + 90px);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--t);font:400 15.3px/1.75 var(--sans);-webkit-font-smoothing:antialiased;letter-spacing:.005em;overflow-wrap:break-word}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:1.5px solid var(--gold);outline-offset:3.6px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:10.8px;top:-60px;z-index:300;background:var(--ink);color:var(--d);padding:9px 14.4px;border-radius:7.2px}
.skip:focus{top:10.8px}

/* ---------- type ---------- */
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;margin:0;line-height:1.04;letter-spacing:-.015em}
h1{font-size:clamp(43.2px,6.84vw,100.8px)}
h2{font-size:clamp(34.2px,4.5vw,64.8px)}
h3{font-size:clamp(21.6px,1.98vw,28.8px);line-height:1.15;letter-spacing:-.01em}
h4{font-size:18.9px}
p{margin:0 0 1.1em}
em.it,.it{font-style:italic}
.kick{font:italic 400 clamp(17.1px,1.44vw,19.8px)/1.3 var(--serif);color:var(--gold-lo);margin:0 0 19.8px;display:block}
.dark .kick{color:var(--gold)}
.lede{font-size:clamp(16.2px,1.35vw,18.9px);line-height:1.7;color:var(--t-mute);max-width:58ch;font-weight:300}
.dark .lede{color:var(--d-mute)}
.mute{color:var(--t-mute)}.dark .mute{color:var(--d-mute)}
.small{font-size:12.6px}
.meta{font-size:11.7px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;color:var(--t-mute)}
.dark .meta{color:var(--d-mute)}

/* ---------- layout ---------- */
.wrap{width:min(var(--wrap),100% - 43.2px);margin-inline:auto}
.narrow{width:min(702px,100% - 43.2px);margin-inline:auto}
section{padding:clamp(79.2px,9.9vw,144px) 0;position:relative}
section.s-tight{padding:clamp(50.4px,6.3vw,86.4px) 0}
.dark{background:var(--ink);color:var(--d)}
.ivory{background:var(--ivory)}
.sandbg{background:var(--sand)}
.grid{display:grid;gap:clamp(18px,2.16vw,32.4px)}
.c2{grid-template-columns:repeat(2,minmax(0,1fr))}
.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.c4{grid-template-columns:repeat(4,minmax(0,1fr))}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(36px,6.3vw,108px);align-items:center}
.split.r{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
.split.l{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}
.head{display:flex;justify-content:space-between;align-items:flex-end;gap:27px;flex-wrap:wrap;margin-bottom:clamp(39.6px,5.4vw,72px)}
.head h2{max-width:14ch}
.head .lede{margin:0;max-width:44ch}
.center{text-align:center}.center .lede{margin-inline:auto}
@media (max-width:1000px){.c4{grid-template-columns:repeat(2,minmax(0,1fr))}.c3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.c2,.c3,.c4,.split,.split.r,.split.l{grid-template-columns:minmax(0,1fr)}}

/* ---------- buttons (glossy) ---------- */
.btn{position:relative;overflow:hidden;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:10.8px;min-height:50.4px;padding:0 30.6px;border-radius:899.1px;font:600 11.7px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;text-decoration:none;border:1px solid transparent;cursor:pointer;white-space:nowrap;transition:transform .2s var(--ease),box-shadow .2s var(--ease),background-color .2s,color .2s,border-color .2s}
.btn::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.55) 48%,transparent 66%);transform:translateX(-120%);transition:transform .5s var(--ease)}
.btn:hover::after{transform:translateX(120%)}
.btn:hover{transform:translateY(-2px)}
.b-gold{color:#1D1A12;background:linear-gradient(180deg,var(--gold-hi) 0%,var(--gold) 52%,var(--gold-dp,#B38D52) 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 9px 27px -10px rgba(var(--gold-rgb),.7)}
.b-gold:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 16.2px 36px -12px rgba(var(--gold-rgb),.8)}
.b-ink{color:var(--d);background:linear-gradient(180deg,var(--ink-3),var(--ink));box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 9px 27px -12px rgba(var(--ink-rgb),.6)}
.b-line{color:var(--t);border-color:var(--hair);background:rgba(255,255,255,.3)}
.b-line:hover{border-color:var(--t)}
.b-glass{color:#fff;border-color:rgba(255,255,255,.35);background:rgba(255,255,255,.08);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px)}
.b-glass:hover{background:rgba(255,255,255,.16)}
.dark .b-line{color:var(--d);border-color:var(--hair-d);background:rgba(255,255,255,.03)}
.b-sm{min-height:39.6px;padding:0 19.8px;font-size:10.8px}
.btns{display:flex;flex-wrap:wrap;gap:12.6px;align-items:center}
/* at 320px a nowrap pill with 30px padding is wider than the column, so let it wrap */
@media (max-width:380px){
  .btn{white-space:normal;text-align:center;line-height:1.35;padding:11px 18px;max-width:100%}
  .btn.b-sm{padding:9px 14px}
}
.lnk{display:inline-flex;align-items:center;gap:10.8px;font:600 10.8px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;text-decoration:none;padding:9px 0;position:relative}
.lnk::after{content:"";position:absolute;left:0;right:30.6px;bottom:2px;height:1px;background:currentColor;transform:scaleX(.35);transform-origin:left;transition:transform .25s var(--ease);opacity:.6}
.lnk:hover::after{transform:scaleX(1)}
.lnk svg{width:16.2px;height:16.2px;transition:transform .25s var(--ease)}
.lnk:hover svg{transform:translateX(4.5px)}

/* ---------- header ---------- */
.hdr{position:fixed;inset:0 0 auto 0;z-index:60;padding-top:env(safe-area-inset-top,0px);transition:background-color .6s var(--ease),box-shadow .6s var(--ease),color .4s}
.hdr-in{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:79.2px;width:min(1296px,100% - 43.2px);margin:0 auto;transition:height .5s var(--ease)}
.hdr.on-hero{color:#fff}
.hdr.solid{background:rgba(var(--paper-rgb),.78);backdrop-filter:blur(19.8px) saturate(1.4);-webkit-backdrop-filter:blur(19.8px) saturate(1.4);box-shadow:0 1px 0 var(--hair);color:var(--t)}
.hdr.solid .hdr-in{height:64.8px}
.hl,.hr{display:flex;align-items:center;gap:27px}
.hr{justify-content:flex-end;gap:19.8px}
.hlink{font:500 11.7px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;background:none;border:0;color:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:10.8px;padding:7.2px 0;min-height:44px}
.burger{display:inline-flex;flex-direction:column;gap:5.4px;width:23.4px}
.burger i{display:block;height:1.5px;background:currentColor;transition:transform .5s var(--ease)}
.burger i:last-child{width:62%}
.hlink:hover .burger i:last-child{transform:scaleX(1.6);transform-origin:left}
.brand{text-decoration:none;text-align:center;line-height:1}
.brand b{display:block;font:400 27px/1 var(--serif);letter-spacing:.32em;margin-right:-.32em}
.brand small{display:block;font:500 9px/1 var(--sans);letter-spacing:.5em;margin:7.2px -.5em 0 0;opacity:.75}
.hdr .btn{min-height:41.4px;padding:0 21.6px}
.cartn{display:inline-flex;min-width:18px;height:18px;border-radius:9px;background:var(--gold);color:#1D1A12;font-size:9.9px;align-items:center;justify-content:center;padding:0 4.5px;letter-spacing:0}
.cartn.pop{animation:cartpop .36s var(--ease)}
@keyframes cartpop{0%{transform:scale(1)}38%{transform:scale(1.32)}100%{transform:scale(1)}}
@media (max-width:980px){.hide-m{display:none!important}.hdr-in{grid-template-columns:auto 1fr auto;height:64.8px}.brand{text-align:left;padding-left:16.2px}.brand b{font-size:21.6px}}

/* full-screen menu */
.menu{position:fixed;inset:0;z-index:80;background:var(--ink);color:var(--d);display:grid;grid-template-columns:1.1fr .9fr;opacity:0;visibility:hidden;transition:opacity .6s var(--ease),visibility 0s .6s}
.menu.open{opacity:1;visibility:visible;transition:opacity .6s var(--ease)}
.menu-l{padding:calc(env(safe-area-inset-top,0px) + 27px) clamp(21.6px,4.5vw,72px) calc(env(safe-area-inset-bottom,0px) + 27px);display:flex;flex-direction:column;overflow:auto}
.menu-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:clamp(27px,6vh,63px)}
.menu-cols{display:grid;grid-template-columns:1.3fr 1fr;gap:36px;flex:1}
.menu-big a{display:block;white-space:nowrap;font:400 clamp(27px,2.97vw,45px)/1.2 var(--serif);text-decoration:none;opacity:0;transform:translateY(16.2px);transition:opacity .7s var(--ease),transform .7s var(--ease),color .3s}
.menu-big a:hover{color:var(--gold-hi)}
.menu-big a:hover::after{content:" —";color:var(--gold)}
.menu.open .menu-big a{opacity:1;transform:none}
.menu-small h4{font:500 10.8px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin:5.4px 0 16.2px}
.menu-small a{display:block;text-decoration:none;color:var(--d-mute);padding:4.5px 0;font-size:14.4px}
.menu-small a:hover{color:var(--d)}
.menu-small div+div{margin-top:30.6px}
.menu-foot{display:flex;flex-wrap:wrap;gap:10.8px 27px;margin-top:36px;font-size:12.6px;color:var(--d-mute)}
.menu-foot a{text-decoration:none}
.menu-r{position:relative;overflow:hidden}
.menu-r img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.08);transition:transform 1.6s var(--ease),opacity .6s}
.menu.open .menu-r img{transform:scale(1)}
.menu-r::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--ink) 0%,rgba(var(--ink-rgb),.1) 40%)}
.x{width:43.2px;height:43.2px;border-radius:50%;border:1px solid var(--hair-d);background:rgba(255,255,255,.04);color:inherit;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .5s var(--ease),border-color .3s}
.x:hover{transform:rotate(90deg);border-color:var(--gold)}
.x svg{width:16.2px;height:16.2px}
.paper .x,.drawer .x,.modal .x{border-color:var(--hair);background:var(--card)}
@media (max-width:900px){.menu{grid-template-columns:1fr}.menu-r{display:none}.menu-cols{grid-template-columns:1fr}}

/* ---------- hero ---------- */
.hero{position:relative;min-height:100svh;min-height:100vh;display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:var(--ink)}
.hero .slides{position:absolute;inset:0}
.hero .slides img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.12);transition:opacity 1.6s var(--ease),transform 7s linear}   /* transform matches the 7s slide interval */
.hero .slides img.on{opacity:1;transform:scale(1)}
.hero::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(var(--shade-rgb),.55) 0%,rgba(var(--shade-rgb),.1) 30%,rgba(var(--shade-rgb),.25) 55%,rgba(var(--shade-rgb),.82) 100%)}
.hero-in{position:relative;z-index:2;padding:153px 0 clamp(63px,10vh,108px)}
.hero h1{max-width:13ch;margin-bottom:27px;font-size:clamp(45px,6.48vw,104.4px);line-height:.98}
.hero h1 .ln{display:block;overflow:hidden;padding-bottom:.06em}
.hero h1 .ln span{display:inline-block;transform:translateY(105%);transition:transform 1.3s var(--ease)}
.ready .hero h1 .ln span{transform:none}
.hero h1 .ln:nth-child(2) span{transition-delay:.12s}.hero h1 .ln:nth-child(3) span{transition-delay:.24s}
.hero-row{display:grid;grid-template-columns:1fr auto;gap:36px;align-items:end}
.hero .kick{color:var(--gold-hi)}
.hero .lede{color:rgba(255,255,255,.86);margin:0 0 30.6px;max-width:46ch}
.hero-fade{opacity:0;transform:translateY(12.6px);transition:opacity 1.2s var(--ease) .55s,transform 1.2s var(--ease) .55s}
.ready .hero-fade{opacity:1;transform:none}
.hero-card{width:288px;padding:21.6px 23.4px;border-radius:19.8px}
.hero-card .meta{color:rgba(255,255,255,.7)}
.hero-card h4{margin:9px 0 5.4px;font-size:21.6px;line-height:1.2}
.hero-card p{margin:0 0 12.6px;color:rgba(255,255,255,.75);font-size:13.5px}
/* the gathering chooser. A form, so it works with the script off; the script
   only rewrites the card as the choice changes. */
.hero-pick{display:block;width:320px;text-align:left}
.hero-pick select{width:100%;margin:12px 0 14px;padding:10px 34px 10px 12px;
  font:400 13.5px/1.4 var(--sans);color:#fff;cursor:pointer;
  background:rgba(var(--shade-rgb),.45);border:1px solid rgba(255,255,255,.28);border-radius:10px;
  appearance:none;-webkit-appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,rgba(255,255,255,.75) 50%),linear-gradient(135deg,rgba(255,255,255,.75) 50%,transparent 50%);
  background-position:right 15px center,right 10px center;background-size:5px 5px,5px 5px;background-repeat:no-repeat}
.hero-pick select:focus-visible{outline:2px solid var(--gold-hi);outline-offset:2px}
.hero-pick select option{color:var(--ink);background:#fff}
.hero-pick h4{margin:4px 0 5.4px}
.hero-pick .hpick-price{margin:0 0 16px;color:var(--gold-hi);font-weight:500}
.hero-pick .btn{width:100%;justify-content:center}
@media (max-width:900px){.hero-pick{width:100%}}
/* for a label that a screen reader should read and nobody should see */
.vh{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.dots{position:absolute;z-index:3;right:clamp(21.6px,3.6vw,54px);top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:10.8px}
.dots button{width:2px;height:30.6px;border:0;padding:0 9px;background:rgba(255,255,255,.35);background-clip:content-box;box-sizing:content-box;cursor:pointer;transition:background .4s,height .4s var(--ease)}
.dots button[aria-current="true"]{background:var(--gold-hi);height:50.4px}
.scrollcue{position:absolute;z-index:3;left:50%;bottom:23.4px;transform:translateX(-50%);width:1px;height:50.4px;background:rgba(255,255,255,.25);overflow:hidden}
.scrollcue::after{content:"";position:absolute;left:0;top:0;width:1px;height:50%;background:#fff;will-change:transform;animation:cue 2.4s var(--ease) infinite}
@keyframes cue{from{transform:translateY(-100%)}to{transform:translateY(220%)}}
@media (max-width:900px){.hero-row{grid-template-columns:1fr}.hero-card{width:100%}.dots{display:none}}

/* page hero */
.phero{position:relative;min-height:78vh;display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:var(--ink)}
.phero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.08);transition:transform 2.4s var(--ease)}
.ready .phero>img{transform:scale(1)}
.phero::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(var(--shade-rgb),.6) 0%,rgba(var(--shade-rgb),.15) 35%,rgba(var(--shade-rgb),.85) 100%)}
.phero .wrap{position:relative;z-index:2;padding:171px 0 clamp(45px,6.3vw,81px)}
.phero h1{max-width:13ch;margin-bottom:21.6px;font-size:clamp(41.4px,6.3vw,90px)}
.phero .lede{color:rgba(255,255,255,.85)}
.phero .kick{color:var(--gold-hi)}
.phero.plain{min-height:auto;background:var(--ink)}
.phero.plain::before{display:none}
.phero.checkout-hero{min-height:clamp(300px,43vh,460px)}
.phero.checkout-hero>img{object-position:55% 44%}
.phero.checkout-hero .wrap{padding-top:150px;padding-bottom:48px}
.phero.checkout-hero h1{margin-bottom:0}
.facts{display:flex;flex-wrap:wrap;gap:0;margin:27px 0 30.6px;border-top:1px solid rgba(255,255,255,.2);border-bottom:1px solid rgba(255,255,255,.2)}
.facts span{display:flex;flex-direction:column;gap:3.6px;padding:16.2px 30.6px 16.2px 0;margin-right:30.6px;border-right:1px solid rgba(255,255,255,.14);font-size:14.4px}
.facts span:last-child{border-right:0}
.facts small{font-size:9.9px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.6)}
@media (max-width:640px){.facts span{border-right:0;padding-right:0;width:50%;margin-right:0}}

/* ---------- glass & gloss ---------- */
.glass{position:relative;background:linear-gradient(160deg,rgba(255,255,255,.14),rgba(255,255,255,.04));border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(16.2px) saturate(1.3);-webkit-backdrop-filter:blur(16.2px) saturate(1.3);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 27px 54px -30px rgba(0,0,0,.5)}
.glass::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(120deg,rgba(255,255,255,.18),transparent 40%)}
.panel{background:var(--card);border:1px solid var(--hair);border-radius:21.6px;padding:clamp(25.2px,2.7vw,39.6px);box-shadow:0 1px 0 rgba(255,255,255,.8) inset,0 27px 54px -40px rgba(var(--shade-rgb),.25)}
.dark .panel{background:linear-gradient(160deg,rgba(255,255,255,.07),rgba(255,255,255,.02));border-color:var(--hair-d);box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.panel h3{margin-bottom:10.8px}
.panel p{color:var(--t-mute);margin-bottom:0}
.dark .panel p{color:var(--d-mute)}
.goldline{width:50.4px;height:1px;background:linear-gradient(90deg,var(--gold),transparent);margin:0 0 23.4px}

/* ---------- photo cards ---------- */
.ph{position:relative;overflow:hidden;border-radius:3.6px;background:linear-gradient(160deg,#2A3F37,#3E4F44)}
.ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--ease)}
.r43{aspect-ratio:4/3}.r45{aspect-ratio:4/5}.r34{aspect-ratio:3/4}.r11{aspect-ratio:1}.r169{aspect-ratio:16/9}.r23{aspect-ratio:2/3}
.pcard{position:relative;display:block;text-decoration:none;color:#fff;overflow:hidden;border-radius:3.6px;isolation:isolate}
.pcard .ph{border-radius:0}
.pcard::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,transparent 35%,rgba(var(--shade-rgb),.86) 100%);transition:opacity .6s}
.pcard .cap{position:absolute;z-index:2;left:0;right:0;bottom:0;padding:clamp(19.8px,2.16vw,30.6px)}
.pcard .cap .meta{color:rgba(255,255,255,.72)}
.pcard .cap h3{margin:9px 0 0}
.pcard .cap p{margin:10.8px 0 0;color:rgba(255,255,255,.8);font-size:13.5px;max-height:0;opacity:0;overflow:hidden;transition:max-height .7s var(--ease),opacity .6s}
.pcard .cap .bar{display:block;height:1px;background:var(--gold-hi);width:36px;margin-top:16.2px;transition:width .8s var(--ease)}
.pcard .location-enquire-label{display:block;margin-top:14px;font-size:12px;letter-spacing:.06em;color:#fff}
.location-enquiry{scroll-margin-top:100px}
.pcard:hover .ph img,.pcard:focus-visible .ph img{transform:scale(1.07)}
.pcard:hover .cap p,.pcard:focus-visible .cap p{max-height:108px;opacity:1}
.pcard:hover .cap .bar{width:100%}
@media (hover:none){.pcard .cap p{max-height:none;opacity:1}}
.card{display:flex;flex-direction:column;text-decoration:none;color:inherit}
.card .ph{margin-bottom:21.6px}
.card:hover .ph img{transform:scale(1.05)}
.card h3{margin:9px 0 9px}
.card p{color:var(--t-mute);font-size:14.4px}
.dark .card p{color:var(--d-mute)}
.card .foot{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:12.6px;flex-wrap:wrap;padding-top:16.2px;border-top:1px solid var(--hair)}
.dark .card .foot{border-color:var(--hair-d)}
.price{font-family:var(--serif);font-size:18.9px}
.count{font-size:11.7px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-lo);font-weight:600}
.dark .count{color:var(--gold)}

/* ---------- editorial bits ---------- */
.statement{font:400 clamp(27px,3.24vw,46.8px)/1.25 var(--serif);letter-spacing:-.01em;max-width:24ch}
.statement .it{color:var(--gold-lo)}
.dark .statement .it{color:var(--gold)}
.sig{display:flex;align-items:center;gap:14.4px;margin-top:30.6px}
.sig::before{content:"";width:43.2px;height:1px;background:var(--gold)}
.sig span{font:italic 400 18px var(--serif)}
.overlap{position:relative}
.overlap{max-width:100%}
.overlap .ph:nth-child(2){position:absolute;width:48%;right:-4%;bottom:-12%;box-shadow:0 36px 72px -30px rgba(0,0,0,.45);border:7.2px solid var(--paper)}
.dark .overlap .ph:nth-child(2){border-color:var(--ink)}
@media (max-width:1100px){.overlap .ph:nth-child(2){right:0}}
@media (max-width:760px){.overlap .ph:nth-child(2){right:4%;bottom:-8%}}
.marquee{overflow:hidden;border-top:1px solid var(--hair-d);border-bottom:1px solid var(--hair-d);background:var(--ink);color:var(--d);padding:23.4px 0}
.marquee div{display:flex;gap:54px;width:max-content;animation:mq 40s linear infinite;font:italic 400 clamp(23.4px,2.7vw,36px)/1 var(--serif)}
.marquee span{display:flex;align-items:center;gap:54px;white-space:nowrap}
.marquee span::after{content:"";width:7.2px;height:7.2px;border-radius:50%;background:var(--gold)}
@keyframes mq{to{transform:translateX(-50%)}}
.num-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--hair)}
.dark .num-list{border-color:var(--hair-d)}
.num-list li{display:grid;grid-template-columns:72px 1fr 1.4fr;gap:21.6px;padding:27px 0;border-bottom:1px solid var(--hair);align-items:baseline}
.dark .num-list li{border-color:var(--hair-d)}
.num-list .n{font:italic 400 19.8px var(--serif);color:var(--gold-lo)}
.dark .num-list .n{color:var(--gold)}
.num-list b{font:400 clamp(21.6px,1.98vw,27px)/1.2 var(--serif)}
.num-list span{color:var(--t-mute)}
.dark .num-list span{color:var(--d-mute)}
@media (max-width:700px){
  /* two columns: the number, then title over description.
     The old rule targeted every span, which caught .n as well and shunted
     the title into the 45px number track, where its text spilled sideways. */
  .num-list li{grid-template-columns:45px minmax(0,1fr);gap:5px 14px;align-items:start}
  .num-list .n{grid-column:1;grid-row:1}
  .num-list b{grid-column:2;grid-row:1;min-width:0}
  .num-list li > span:not(.n){grid-column:2;grid-row:2;min-width:0}
}
.ticks{list-style:none;margin:0;padding:0}
.ticks li{padding:14.4px 0;border-bottom:1px solid var(--hair);display:flex;gap:14.4px;align-items:baseline}
.dark .ticks li{border-color:var(--hair-d)}
.ticks li::before{content:"";flex:0 0 6.3px;height:6.3px;border-radius:50%;background:var(--gold);transform:translateY(-2px)}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--hair-d);border-bottom:1px solid var(--hair-d)}
.stats div{padding:36px 21.6px;border-right:1px solid var(--hair-d);text-align:center}
.stats div:last-child{border-right:0}
.stats b{display:block;font:400 clamp(41.4px,4.5vw,68.4px)/1 var(--serif);background:linear-gradient(180deg,var(--gold-hi),var(--gold) 60%,var(--gold-lo));-webkit-background-clip:text;background-clip:text;color:transparent}
.stats span{display:block;margin-top:10.8px;font-size:11.7px;letter-spacing:.14em;text-transform:uppercase;color:var(--d-mute)}
@media (max-width:760px){.stats{grid-template-columns:repeat(2,1fr)}.stats div:nth-child(2){border-right:0}.stats div:nth-child(-n+2){border-bottom:1px solid var(--hair-d)}}

/* reviews */
.quote-rail{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,2.16vw,32.4px)}
.q{border-radius:21.6px;padding:clamp(27px,2.7vw,41.4px);display:flex;flex-direction:column;min-height:306px}
.q blockquote{margin:0 0 27px;font:400 clamp(18.9px,1.62vw,22.5px)/1.5 var(--serif)}
.q cite{margin-top:auto;font-style:normal;font-size:11.7px;letter-spacing:.14em;text-transform:uppercase;color:var(--d-mute)}
.q cite b{display:block;color:var(--d);letter-spacing:.04em;text-transform:none;font-size:14.4px;font-weight:500;margin-bottom:3.6px}
.stars{display:flex;gap:4.5px;color:var(--gold);margin-bottom:19.8px}
.stars svg{width:13.5px;height:13.5px}
@media (max-width:900px){.quote-rail{grid-template-columns:1fr}}
.gbadge{display:inline-flex;align-items:center;gap:12.6px;text-decoration:none;padding:12.6px 19.8px;border-radius:899.1px}
.gbadge .stars{margin:0}

/* events */
.erows{border-top:1px solid var(--hair)}
.dark .erows{border-color:var(--hair-d)}
.erow{display:grid;grid-template-columns:117px minmax(0,1.4fr) minmax(0,1fr) auto;gap:27px;align-items:center;padding:27px 0;border-bottom:1px solid var(--hair);transition:padding .5s var(--ease),background-color .5s}
.dark .erow{border-color:var(--hair-d)}
.erow:hover{padding-left:14.4px;padding-right:14.4px;background:rgba(var(--gold-rgb),.07)}
.edate b{display:block;font:400 48.6px/1 var(--serif)}
.edate span{font-size:10.8px;letter-spacing:.2em;text-transform:uppercase;color:var(--t-mute)}
.dark .edate span{color:var(--d-mute)}
.erow h3{font-size:clamp(21.6px,1.98vw,27px)}
.erow .where{color:var(--t-mute);font-size:13.5px}
.dark .erow .where{color:var(--d-mute)}
@media (max-width:820px){.erow{grid-template-columns:81px 1fr}.erow>:nth-child(3),.erow>:nth-child(4){grid-column:2}.edate b{font-size:36px}}

/* filters */
.filters{display:flex;flex-wrap:wrap;gap:7.2px;align-items:center;margin-bottom:39.6px}
.fb{min-height:37.8px;padding:0 18px;border-radius:899.1px;border:1px solid var(--hair);background:transparent;color:inherit;font:500 10.8px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:background-color .22s var(--ease),border-color .22s var(--ease),color .22s var(--ease)}
.dark .fb{border-color:var(--hair-d)}
.fb[aria-pressed="true"]{background:var(--ink);color:var(--d);border-color:var(--ink)}
.dark .fb[aria-pressed="true"]{background:var(--gold);color:#1D1A12;border-color:var(--gold)}
.filters select{margin-left:auto;min-height:37.8px;border-radius:899.1px;border:1px solid var(--hair);background:transparent;padding:0 16.2px;font:500 11.7px var(--sans);color:inherit}

/* faq */
.faq-page-content{padding-block:clamp(40px,5vw,64px)}
.faq-page-content>.wrap{max-width:1100px}
.faq-page-group{display:grid;grid-template-columns:180px minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:start;margin-bottom:36px}
.faq-page-group:last-child{margin-bottom:0}
.faq-page-label{margin:0;padding-top:20px;font:400 23px/1.35 var(--serif);color:var(--gold-lo)}
.faq-page-group .faq summary{padding-block:20px}
.faq-page-group .faq .a{padding-bottom:20px}
@media(max-width:700px){.faq-page-group{grid-template-columns:1fr;gap:12px;margin-bottom:32px}.faq-page-label{padding-top:0}.faq-page-group .faq summary{padding-block:18px}}
.faq{border-top:1px solid var(--hair)}
.dark .faq{border-color:var(--hair-d)}
.faq details{border-bottom:1px solid var(--hair)}
.dark .faq details{border-color:var(--hair-d)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:27px;align-items:center;padding:25.2px 0;font:400 clamp(18.9px,1.71vw,24.3px)/1.3 var(--serif)}
.faq summary::-webkit-details-marker{display:none}
.faq summary i{flex:0 0 19.8px;height:19.8px;position:relative}
.faq summary i::before,.faq summary i::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:currentColor;transition:transform .5s var(--ease)}
.faq summary i::after{transform:rotate(90deg)}
.faq details[open] summary i::after{transform:rotate(0)}
.faq .a{padding:0 54px 27px 0;color:var(--t-mute);animation:open .6s var(--ease)}
.dark .faq .a{color:var(--d-mute)}
.faq .a a{color:var(--gold-lo)}
@keyframes open{from{opacity:0;transform:translateY(-6px)}}

/* cta */
.cta{position:relative;overflow:hidden;color:#fff;text-align:center;padding:clamp(99px,12.6vw,180px) 0}
.cta>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cta::before{content:"";position:absolute;inset:0;z-index:1;background:radial-gradient(80% 90% at 50% 50%,rgba(var(--shade-rgb),.55),rgba(var(--shade-rgb),.85))}
.cta .narrow{position:relative;z-index:2}
.cta h2{font-size:clamp(39.6px,5.4vw,82.8px);margin-bottom:21.6px}
.cta .lede{color:rgba(255,255,255,.82);margin:0 auto 36px}
.cta .btns{justify-content:center}
.cta .kick{color:var(--gold-hi)}
.cta .contact{margin-top:39.6px;font-size:12.6px;letter-spacing:.08em;color:rgba(255,255,255,.7)}
.cta .contact a{text-decoration:none}

/* forms */
.form{display:grid;gap:23.4px}
.form .two{display:grid;grid-template-columns:1fr 1fr;gap:23.4px}
@media (max-width:600px){.form .two{grid-template-columns:1fr}}
.field{position:relative}
.field label{display:block;font-size:10.8px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--t-mute);margin-bottom:7.2px}
.dark .field label{color:var(--d-mute)}
.field input,.field select,.field textarea{width:100%;border:0;border-bottom:1px solid var(--hair);background:transparent;color:inherit;padding:10.8px 0;font:400 16.2px/1.4 var(--sans);border-radius:0;transition:border-color .4s}
.dark .field input,.dark .field select,.dark .field textarea{border-color:var(--hair-d)}
.dark .field select option{color:#111}
.field textarea{min-height:99px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--gold)}
.field .err{display:none;color:#C2553F;font-size:11.7px;margin-top:5.4px}
.field.bad input,.field.bad select,.field.bad textarea{border-color:#C2553F}
.field.bad .err{display:block}
.fnote{font-size:11.7px;color:var(--t-mute);margin:0}
.dark .fnote{color:var(--d-mute)}

/* shop */
.pgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(21.6px,2.7vw,39.6px) clamp(18px,2.16vw,32.4px)}
@media (max-width:900px){.pgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.pgrid{grid-template-columns:1fr}}
.prod .ph{margin-bottom:18px;cursor:pointer}
.prod .ph button{position:absolute;inset:0;border:0;background:none;cursor:zoom-in}
/* the whole photo opens the product's own page; the Add button sits above it */
.prod .prod-go{position:absolute;inset:0;z-index:1}
.prod h3 a{text-decoration:none}
.prod h3 a:hover{color:var(--gold-lo)}
.prod .add{position:relative;display:flex;width:100%;margin-top:18px;opacity:1;transform:none}
.prod .ph img{transition:transform .6s var(--ease)}
.prod .ph:hover img{transform:scale(1.05)}
.prod h3{font-size:21.6px}
.prod .row{display:flex;justify-content:space-between;align-items:baseline;gap:10.8px;margin-top:5.4px}
.scrim{position:fixed;inset:0;z-index:90;background:rgba(var(--shade-rgb),.5);backdrop-filter:blur(3.6px);-webkit-backdrop-filter:blur(3.6px);opacity:0;pointer-events:none;transition:opacity .5s var(--ease)}
.scrim.open{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;bottom:0;z-index:95;width:min(414px,100%);background:var(--paper);transform:translateX(100%);visibility:hidden;transition:transform .7s var(--ease),visibility 0s .7s;display:flex;flex-direction:column;padding:calc(env(safe-area-inset-top,0px) + 25.2px) 28.8px calc(env(safe-area-inset-bottom,0px) + 25.2px)}
.drawer.open{transform:none;visibility:visible;transition:transform .7s var(--ease)}
.drawer-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:23.4px}
.citems{flex:1;overflow:auto}
.citem{display:grid;grid-template-columns:64.8px 1fr auto;gap:14.4px;align-items:center;padding:14.4px 0;border-bottom:1px solid var(--hair)}
.citem .ph{aspect-ratio:1}
.qty{display:inline-flex;align-items:center;border:1px solid var(--hair);border-radius:899.1px}
.qty button{width:30.6px;height:30.6px;border:0;background:none;cursor:pointer;font-size:15.3px;color:inherit}
.qty span{min-width:18px;text-align:center;font-size:12.6px}
.ctotal{display:flex;justify-content:space-between;align-items:baseline;padding:21.6px 0;font:400 27px var(--serif)}
.modal{position:fixed;inset:0;z-index:96;display:flex;align-items:center;justify-content:center;padding:18px;opacity:0;visibility:hidden;transition:opacity .5s var(--ease),visibility 0s .5s}
.modal.open{opacity:1;visibility:visible;transition:opacity .5s var(--ease)}
.mbox{position:relative;background:var(--paper);width:min(882px,100%);max-height:calc(100vh - 36px);overflow:auto;display:grid;grid-template-columns:1fr 1fr;transform:translateY(18px) scale(.98);transition:transform .7s var(--ease)}
.modal.open .mbox{transform:none}
.mbox .ph{border-radius:0;min-height:100%}
.mbox .in{padding:clamp(27px,3.6vw,50.4px)}
.mbox .x{position:absolute;top:14.4px;right:14.4px;z-index:3}
.lb .mbox{grid-template-columns:1fr;background:var(--ink);color:var(--d);width:min(990px,100%)}
.lb figcaption{padding:18px 25.2px;font:italic 400 19.8px var(--serif)}
@media (max-width:700px){.mbox{grid-template-columns:1fr}}

/* gallery */
.masonry{columns:3 270px;column-gap:21.6px}
.masonry button{display:block;width:100%;break-inside:avoid;border:0;padding:0;margin:0 0 21.6px;background:none;color:inherit;text-align:left;cursor:zoom-in}
.masonry .ph:hover img{transform:scale(1.05)}
.masonry .capt{display:block;padding:10.8px 2px 0;font-size:12.6px;color:var(--t-mute)}

/* article */
.article{font-size:17.1px;line-height:1.85}
.article h2{font-size:clamp(27px,2.7vw,36px);margin:48.6px 0 16.2px}
.article blockquote{margin:45px 0;padding:0 0 0 27px;border-left:1px solid var(--gold);font:italic 400 clamp(21.6px,2.16vw,28.8px)/1.4 var(--serif)}
.legal h2{font-size:27px;margin:43.2px 0 12.6px}
.legal ul{padding-left:18px}.legal li{margin-bottom:7.2px}

/* footer */
footer{background:var(--ink);color:var(--d);padding:clamp(72px,8.1vw,117px) 0 calc(env(safe-area-inset-bottom,0px) + 30.6px)}
.fbig{display:flex;justify-content:space-between;align-items:flex-end;gap:36px;flex-wrap:wrap;padding-bottom:63px;border-bottom:1px solid var(--hair-d);margin-bottom:54px}
.fbig h2{max-width:12ch}
.fgrid{display:grid;grid-template-columns:1.1fr .9fr .9fr .9fr .9fr 1fr;gap:36px}
@media (max-width:1100px){.fgrid{grid-template-columns:1fr 1fr 1fr}}
@media (max-width:860px){.fgrid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.fgrid{grid-template-columns:1fr}}
footer h4{font:600 10.8px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:19.8px}
footer ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
/* footer links are the main way round the site on a phone, so give them a real hit area */
@media (max-width:820px){footer ul{gap:2px}footer ul a{display:inline-block;padding:7px 0}}
footer a{text-decoration:none;color:var(--d-mute);transition:color .3s}
footer a:hover{color:var(--d)}
.social{display:flex;gap:9px;margin-top:21.6px}
.social a{width:39.6px;height:39.6px;border-radius:50%;border:1px solid var(--hair-d);display:inline-flex;align-items:center;justify-content:center;color:var(--d);transition:border-color .3s,background .3s}
.social a:hover{border-color:var(--gold);background:rgba(var(--gold-rgb),.12)}
.social svg{width:15.3px;height:15.3px}
.fbot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12.6px 27px;margin-top:63px;padding-top:25.2px;border-top:1px solid var(--hair-d);font-size:11.7px;color:var(--d-mute)}
.fbot nav{display:flex;gap:21.6px;flex-wrap:wrap}
.fbot nav a{padding:7px 0;display:inline-block}

/* whatsapp */
.wa{position:fixed;right:21.6px;bottom:calc(env(safe-area-inset-bottom,0px) + 21.6px);z-index:70;width:52.2px;height:52.2px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#1D1A12;text-decoration:none;background:linear-gradient(180deg,var(--gold-hi),var(--gold) 55%,#B38D52);box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 14.4px 32.4px -12px rgba(var(--gold-rgb),.7);transition:transform .22s var(--ease),opacity .5s var(--ease)}
.wa{opacity:0;transform:scale(.8)}
.booted .wa{opacity:1;transform:none;transition:opacity .5s var(--ease) .8s,transform .5s var(--ease) .8s}
.wa:hover{transform:translateY(-3px) scale(1.04)}
.wa svg{width:23.4px;height:23.4px}

/* transitions */
#view{transition:opacity .22s var(--ease),transform .22s var(--ease)}
#view.leaving{opacity:0;transform:translateY(4px);transition:opacity .12s var(--ease),transform .12s var(--ease)}
.rv{opacity:0;transform:translateY(23.4px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}
.rv.in{opacity:1;transform:none}
.rv-img{clip-path:inset(12% 0 0 0);transition:clip-path 1.4s var(--ease)}
.rv-img img{transform:scale(1.15);transition:transform 1.8s var(--ease)}
.rv-img.in{clip-path:inset(0 0 0 0)}
.rv-img.in img{transform:scale(1)}
.hide{display:none!important}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.rv,.rv-img{opacity:1;transform:none;clip-path:none}.rv-img img{transform:none}.hero h1 .ln span,.hero-fade{transform:none;opacity:1}.wa,.fstep{opacity:1;transform:none}}

/* keep card rows balanced */
.notify{display:flex;flex-direction:column;justify-content:center;min-height:100%}
.notify-links{display:flex;flex-direction:column;align-items:flex-start;gap:5.4px;margin-top:18px}
.grid.c3 > .panel{align-self:stretch}

/* press article cards */
.presscard{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:stretch;text-decoration:none;color:inherit;background:var(--card);border:1px solid var(--hair);overflow:hidden;transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.presscard:hover{transform:translateY(-6px);box-shadow:0 30.6px 54px -34px rgba(var(--shade-rgb),.35)}
.presscard .ph{border-radius:0;aspect-ratio:auto!important;width:100%;height:100%;min-height:198px}
.presscard:hover .ph img{transform:scale(1.05)}
.presscard .pb{padding:clamp(19px,1.94vw,29px);display:flex;flex-direction:column;gap:9px}
.presscard .pub{font:italic 400 clamp(16px,1.46vw,19px)/1.1 var(--serif);color:var(--gold-lo)}
.presscard .meta{margin:-4px 0 2px}
.presscard h3{font-size:clamp(16px,1.38vw,19px);margin:0}
.presscard p{color:var(--t-mute);font-size:13.5px;margin:0}
.presscard .lnk{margin-top:auto;color:var(--t)}
@media (max-width:560px){.presscard{grid-template-columns:1fr}.presscard .ph{min-height:180px;aspect-ratio:16/9!important}}

/* readable floors after scaling */
body{font-size:15.5px}
.lede{font-size:clamp(15.5px,1.35vw,18.5px)}
.meta,.small{font-size:12.5px}
.btn{font-size:12px}
.field input,.field select,.field textarea{font-size:16px}




/* giving-back slider */
.gslide{position:relative}
.gviewport{overflow:hidden;background:var(--sand)}
.gtrack{display:flex;transition:transform .9s var(--ease)}
.gitem{flex:0 0 100%;margin:0;position:relative}
.gitem img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.gitem figcaption{position:absolute;left:0;right:0;bottom:0;padding:54px 22px 18px;color:#fff;font-size:13.5px;
  background:linear-gradient(0deg,rgba(var(--shade-rgb),.82),rgba(var(--shade-rgb),0))}
.gnav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.5);
  background:rgba(var(--shade-rgb),.35);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .3s,transform .4s var(--ease);z-index:2}
.gnav:hover{background:rgba(var(--shade-rgb),.6)}
.gnav svg{width:17px;height:17px}
.gnav.prev{left:14px;transform:translateY(-50%) rotate(90deg)}
.gnav.next{right:14px;transform:translateY(-50%) rotate(-90deg)}
.gdots{position:absolute;left:0;right:0;bottom:-26px;display:flex;justify-content:center;gap:8px}
.gdots button{width:22px;height:2px;border:0;padding:9px 0;background:rgba(var(--t-rgb),.22);background-clip:content-box;box-sizing:content-box;cursor:pointer;transition:background .4s,width .4s var(--ease)}
.gdots button[aria-current="true"]{background:var(--gold-lo);width:34px}
@media (max-width:760px){.gnav{width:38px;height:38px}}


/* testimonials: auto-scrolling rail */
.qrail{overflow:hidden;margin-top:6px;padding:8px 0 10px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.qtrack{display:flex;gap:clamp(18px,2.2vw,32px);width:max-content;animation:qscroll 60s linear infinite}
.qrail:hover .qtrack,.qrail:focus-within .qtrack{animation-play-state:paused}
.qtrack .q{width:min(420px,78vw);flex:0 0 auto;min-height:0;transition:transform .6s var(--ease),border-color .4s}
.qtrack .q:hover{transform:translateY(-6px);border-color:rgba(var(--gold-rgb),.5)}
@keyframes qscroll{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.qrail{overflow-x:auto}.qtrack{animation:none}}

/* past gatherings */
.card.past .ph img{filter:saturate(.85) brightness(.95)}
.card.past .where{color:var(--t-mute);font-size:14px}
.tagdone{font:600 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--t-mute);border:1px solid var(--hair);border-radius:999px;padding:7px 12px}

/* Sunday date strip */
.sun-days{display:grid;grid-template-columns:repeat(4,1fr);border-left:1px solid var(--hair-d)}
.sun-day{border-right:1px solid var(--hair-d);padding:18px 14px 20px;text-align:center}
.sun-day .sun-arc{display:block;width:44px;height:22px;margin:0 auto 14px;border-radius:44px 44px 0 0;background:linear-gradient(180deg,var(--gold-hi),var(--gold));opacity:.85}
.sun-day b{display:block;font:400 clamp(34px,4.4vw,52px)/1 var(--serif);color:var(--d)}
.sun-day span{display:block;margin-top:6px;font-size:14px;color:var(--d-mute)}
.sun-day em{display:block;height:18px;margin-top:8px;font-style:normal;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.sun-day.done{opacity:.42}
.sun-day.done b{text-decoration:line-through;text-decoration-thickness:1px}
.sun-day.next .sun-arc{opacity:1;box-shadow:0 0 22px rgba(var(--gold-rgb),.5)}
@media (max-width:620px){.sun-days{grid-template-columns:repeat(2,1fr)}.sun-day{border-bottom:1px solid var(--hair-d)}}

/* credentials */
.creds .panel h3{margin-top:10px;font-size:clamp(21px,2vw,26px)}
.cred-i{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  margin-bottom:19px;color:var(--gold-lo);background:rgba(var(--gold-rgb),.13);border:1px solid rgba(var(--gold-rgb),.34);
  transition:background-color .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease)}
.cred-i svg{width:22px;height:22px}
.creds .panel:hover .cred-i{background:var(--gold);border-color:var(--gold);color:var(--ink)}
@media (max-width:520px){.cred-i{width:40px;height:40px;margin-bottom:15px}.cred-i svg{width:19px;height:19px}}
.credlist{list-style:none;margin:0;padding:0}
.credlist li{padding:12px 0;border-bottom:1px solid var(--hair)}
.credlist li:last-child{border-bottom:0;padding-bottom:0}
.credlist a{text-decoration:none;display:block;font:italic 400 19px/1.2 var(--serif);color:var(--gold-lo);transition:color .3s}
.credlist a:hover{color:var(--t)}
.credlist a span{display:block;margin-top:5px;font:400 14.5px/1.45 var(--sans);font-style:normal;color:var(--t-mute)}
.credlist.plain li{font:400 clamp(18px,1.7vw,21px)/1.3 var(--serif)}

/* animated figures */
.stats div{position:relative;padding:40px 24px}
.stats b{font-variant-numeric:tabular-nums}
.stats b::after{content:"";display:block;width:34px;height:1px;background:var(--gold);margin:16px auto 0}
.stats em{display:block;margin-top:8px;font-style:normal;font-size:13px;color:var(--d-mute);opacity:.85;text-transform:none;letter-spacing:0}
.stats{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:760px){.stats{grid-template-columns:1fr}.stats div{border-right:0;border-bottom:1px solid var(--hair-d)}.stats div:last-child{border-bottom:0}}

/* ============================================================
   Lighter chrome: the forest-green bands stay, but the menu and
   footer are warm and bright so the page as a whole reads lighter.
   ============================================================ */
/* These two were fixed values, so the footer and the quote cards stayed the
   original ivory and off-white in every colour set. They follow the set now. */
:root{--band-2:var(--ivory);--card-w:var(--card-2)}

/* footer: ivory with deep green type */
footer{background:var(--band-2);color:var(--t)}
footer h4{color:var(--gold-lo)}
footer a{color:var(--t-mute)}
footer a:hover{color:var(--ink)}
footer .fbig,footer .fbot{border-color:var(--hair)}
footer .mute,.fbot{color:var(--t-mute)}
footer .brand{color:var(--ink)}
.social a{border-color:var(--hair);color:var(--t)}
.social a:hover{border-color:var(--gold-lo);background:rgba(var(--gold-rgb),.08)}

.b-ink,.b-ink:link,.b-ink:visited{color:var(--paper)}
.b-ink:hover{color:#fff}
.drawer{background:var(--paper)}


/* testimonials: warm sand, white cards */
.revs{background:var(--sand)}
.revs .gbadge{background:var(--card-2);border:1px solid var(--hair);color:var(--t)}
.revs .qrail{-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.revs .q{background:var(--card-2);border:1px solid var(--hair);box-shadow:0 26px 48px -40px rgba(var(--shade-rgb),.45)}
.revs .q::before{display:none}
.revs .q blockquote{color:var(--ink)}
.revs .q cite{color:var(--t-mute)}
.revs .q cite b{color:var(--ink)}
.revs .qtrack .q:hover{border-color:rgba(var(--gold-rgb),.5)}

/* ===== expanding service panels ===== */
.panels{display:flex;gap:0;margin-top:clamp(34px,4vw,56px);height:clamp(420px,46vw,560px);padding:0}
.panel-i{position:relative;flex:1 1 0;min-width:0;overflow:hidden;text-decoration:none;color:#fff;border-radius:0;
  contain:layout paint;transition:flex-grow .42s var(--ease)}
.panel-i img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease),filter .42s var(--ease);filter:brightness(.62) saturate(.95)}
.panel-i::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(var(--shade-rgb),.1) 30%,rgba(var(--shade-rgb),.86) 100%)}
.panel-n{position:absolute;top:22px;left:22px;z-index:2;font:500 11px/1 var(--sans);letter-spacing:.2em;color:rgba(255,255,255,.65)}
.panel-b{position:absolute;z-index:2;left:0;right:0;bottom:0;padding:clamp(20px,2.4vw,34px)}
.panel-b h3{font-size:clamp(20px,2vw,28px);white-space:nowrap}
.panel-b p{margin:12px 0 0;max-width:34ch;font-size:15px;color:rgba(255,255,255,.84);opacity:0;transform:translateY(10px);
  transition:opacity .18s var(--ease),transform .18s var(--ease)}
.panel-go{display:inline-flex;align-items:center;gap:10px;margin-top:16px;font:600 11.5px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-hi);opacity:0;transform:translateY(10px);transition:opacity .18s var(--ease),transform .18s var(--ease)}
.panel-go svg{width:16px;height:16px}
.panel-i.open{flex-grow:2.6}
.panel-i.open img{filter:brightness(.78) saturate(1);transform:scale(1.04)}
.panel-i.open .panel-b p,.panel-i.open .panel-go{opacity:1;transform:none}
/* the stagger belongs to the entrance only; leaving, the copy goes straight away */
.panel-i.open .panel-b p{transition:opacity .34s var(--ease) .1s,transform .34s var(--ease) .1s}
.panel-i.open .panel-go{transition:opacity .34s var(--ease) .18s,transform .34s var(--ease) .18s}
@media (max-width:820px){
  .panels{flex-direction:column;height:auto;gap:0}
  .panel-i{flex:0 0 auto;height:170px;transition:height .42s var(--ease)}
  .panel-i.open{flex:0 0 auto;height:330px}
  .panel-b p,.panel-go{opacity:1;transform:none}
}

/* ===== numbered section labels, two-tone headings ===== */
.secnum{display:block;font:500 11px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--gold-lo);margin-bottom:14px}
.dark .secnum,.revs .secnum{color:var(--gold)}
.mute-head{color:var(--t-mute)}
.dark .mute-head{color:rgba(var(--d-rgb),.45)}

/* ===== the brand, large, across the foot of the page ===== */
.fmark{position:relative;margin-top:clamp(60px,7vw,90px);height:clamp(150px,20vw,260px);overflow:hidden;isolation:isolate}
.fmark img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.52)}
.fmark::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,var(--band-2) 0%,rgba(var(--ivory-rgb),0) 36%,rgba(var(--ink-rgb),.35) 100%)}
.fmark span{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);white-space:nowrap;
  font:400 clamp(58px,14vw,200px)/1 var(--serif);letter-spacing:.14em;margin-right:-.14em;color:rgba(255,255,255,.94)}

/* ===== events carousel ===== */
.car{overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:0 clamp(18px,4vw,48px) 6px;margin-top:clamp(28px,3vw,44px)}
.car::-webkit-scrollbar{display:none}
.car-track{display:flex;gap:24px;width:max-content}
.car-i{flex:0 0 clamp(260px,26vw,340px);scroll-snap-align:start;text-decoration:none;color:inherit;display:flex;flex-direction:column}
.car-i .ph{margin-bottom:20px}
.car-i:hover .ph img{transform:scale(1.05)}
.car-i h3{margin:10px 0}
.car-i p{color:var(--t-mute);font-size:15.5px}
.dark .car-i p{color:var(--d-mute)}
.car-i .foot{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;padding-top:18px;border-top:1px solid var(--hair)}
.dark .car-i .foot{border-color:var(--hair-d)}
.car-i.held .ph img{filter:saturate(.85) brightness(.95)}
.car-nav{display:flex;gap:10px}
.car-nav .gnav{position:static;transform:none}
.car-nav .gnav:first-child{transform:rotate(90deg)}
.car-nav .gnav:last-child{transform:rotate(-90deg)}
.car-dots{display:flex;gap:7px;justify-content:center;margin-top:30px}
.car-dots button{width:22px;height:2px;border:0;padding:9px 0;background:rgba(var(--t-rgb),.2);background-clip:content-box;box-sizing:content-box;cursor:pointer;transition:background .4s,width .4s var(--ease)}
.dark .car-dots button{background:rgba(var(--d-rgb),.25)}
.car-dots button[aria-current="true"]{background:var(--gold);width:34px}
@media (max-width:620px){.car-i{flex-basis:78vw}.car-nav{display:none}}

/* ===== trust lines ===== */
.trust{padding:clamp(70px,9vw,120px) 0;background:var(--paper);text-align:center}
.trust-l{font:400 clamp(21px,2.4vw,32px)/1.45 var(--serif);color:var(--ink);max-width:30ch;margin:0 auto 26px}
.trust-l:last-child{margin-bottom:0}
.trust.in .trust-l{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.trust-l{opacity:1;transform:none}}

/* trust lines rise out of a mask, one after another */
.trust-l{overflow:hidden;padding-bottom:.12em}
.trust-l span{display:block;opacity:0;transform:translateY(105%);
  transition:transform 1.1s var(--ease),opacity .9s var(--ease)}
.trust.in .trust-l span{opacity:1;transform:none}

/* the photo under the footer drifts, the wordmark rises into it */
.fmark img{transform:scale(1.14);transition:transform 2.4s var(--ease)}
.fmark.in img{transform:scale(1)}
.fmark span{opacity:0;transform:translate(-50%,-38%);transition:opacity 1.3s var(--ease) .15s,transform 1.4s var(--ease) .15s}
.fmark.in span{opacity:1;transform:translate(-50%,-50%)}
@media (prefers-reduced-motion:reduce){
  .trust-l span,.fmark span{opacity:1;transform:none}
  .fmark img{transform:none}
  .fmark.in span{transform:translate(-50%,-50%)}
}

/* enquiry form */
.eq-rail{height:2px;background:var(--hair);margin-bottom:12px}
.eq-rail i{display:block;height:100%;background:var(--gold);transition:width .6s var(--ease)}
.eq-step{margin:0 0 22px;font:600 11px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--t-mute)}
.dark .eq-step{color:var(--d-mute)}
.form.eq{min-width:0;max-width:100%;width:100%;grid-template-columns:minmax(0,1fr)}
.panel{min-width:0}
.split > *{min-width:0}
.fstep{display:grid;grid-template-columns:minmax(0,1fr);gap:26px;min-width:0;
  transition:opacity .24s var(--ease),transform .24s var(--ease)}
.fstep.in-from{opacity:0;transform:translateY(7px);transition:none}
.fstep .field,.fstep .two{min-width:0;max-width:100%}
.fstep select,.fstep option{text-overflow:ellipsis}
.fstep input,.fstep select,.fstep textarea{max-width:100%}
@media (max-width:560px){.fstep .two{grid-template-columns:1fr}.eq-nav{flex-wrap:wrap}}
.fstep.hide{display:none!important}
.fhint{display:block;margin-top:8px;font-size:13.5px;line-height:1.5;color:var(--t-mute)}
.dark .fhint{color:var(--d-mute)}
.eq-check{display:flex;align-items:center;gap:10px;font-size:15px;color:var(--t-mute)}
.eq-check input{width:18px;height:18px;accent-color:var(--gold-lo)}
.eq-nav{display:flex;gap:12px;align-items:center;margin-top:28px}
.eq-nav .btn[hidden]{display:none!important}
[hidden]{display:none!important}
.eq-nav .btn{min-height:50px}

/* weekly schedule */
.wk-tabs{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 26px}
.wk-tab{min-height:44px;padding:0 20px;border-radius:999px;border:1px solid var(--hair);background:transparent;color:inherit;
  font:500 13px/1 var(--sans);letter-spacing:.06em;cursor:pointer;transition:background-color .22s var(--ease),border-color .22s var(--ease),color .22s var(--ease)}
.wk-table{transition:opacity .18s var(--ease)}
.wk-tab:hover{border-color:var(--gold-lo)}
.wk-tab[aria-selected="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.wk-table{transition:opacity .25s var(--ease);border-top:1px solid var(--hair)}
.wk-head,.wk-row{display:grid;grid-template-columns:1.1fr .7fr 1.5fr 1.2fr auto;gap:22px;align-items:center;padding:20px 14px}
.wk-head{background:rgba(var(--ink-rgb),.05);border-radius:3px;font:600 11px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--t-mute);padding:16px 14px}
.wk-row{border-bottom:1px solid var(--hair);text-decoration:none;color:inherit;transition:background .4s var(--ease),padding .4s var(--ease)}
.wk-row:hover{background:rgba(var(--ink-rgb),.04);padding-left:22px}
.wk-time{font:400 17px/1.3 var(--serif)}
.wk-name{font:400 clamp(18px,1.7vw,22px)/1.25 var(--serif)}
.wk-where{font-size:15px;color:var(--t-mute)}
.wk-kind{display:inline-block;font:600 10.5px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;font-style:normal;
  padding:7px 12px;border-radius:999px;background:rgba(var(--ink-rgb),.08);color:var(--ink)}
.k-sound{background:rgba(var(--gold-rgb),.2);color:var(--gold-lo)}
.k-move{background:rgba(110,140,120,.2);color:#3F5A4A}
.k-moon{background:rgba(60,70,110,.14);color:#3C466E}
.k-work{background:rgba(160,110,80,.16);color:#8A5A3C}
.wk-go{display:flex;align-items:center;gap:12px;white-space:nowrap;font:400 16px/1 var(--serif)}
.wk-go em{font-style:normal}
.wk-go svg{width:17px;height:17px;color:var(--gold-lo);transition:transform .4s var(--ease)}
.wk-row:hover .wk-go svg{transform:translateX(5px)}
.wk-empty{padding:46px 14px;text-align:center;border-bottom:1px solid var(--hair)}
.wk-empty p{margin:0 0 10px;font:400 clamp(19px,2vw,24px)/1.3 var(--serif)}
.wk-empty p.mute{font:400 16px/1.6 var(--sans);margin-bottom:24px}
@media (max-width:860px){
  .wk-head{display:none}
  .wk-row{grid-template-columns:1fr auto;gap:8px 16px;padding:20px 2px}
  .wk-time{grid-column:1;order:1}
  .wk-row > span:nth-child(2){grid-column:2;order:2;justify-self:end}
  .wk-name{grid-column:1 / -1;order:3}
  .wk-where{grid-column:1;order:4}
  .wk-go{grid-column:2;order:5;justify-self:end}
  .wk-row:hover{padding-left:2px}
  .wk-tabs{gap:7px}
  .wk-tab{padding:0 15px;font-size:12.5px}
}

/* weekly schedule: link, today marker, per-row booking */
.wk-link{display:inline-flex;align-items:center;gap:10px;align-self:end;text-decoration:none;
  font:400 17px/1.4 var(--sans);color:var(--t);transition:color .3s}
.wk-link svg{width:18px;height:18px;transition:transform .4s var(--ease)}
.wk-link:hover{color:var(--gold-lo)}
.wk-link:hover svg{transform:translateX(6px)}
.wk-tab{position:relative}
.wk-tab.is-today i{position:absolute;top:9px;right:11px;width:5px;height:5px;border-radius:50%;background:var(--gold)}
.wk-tab.is-today[aria-selected="true"] i{background:var(--gold-hi)}
.wk-head,.wk-row{grid-template-columns:1fr .6fr 1.5fr 1.1fr .8fr auto}
.wk-row{position:relative}
.wk-name a{text-decoration:none;color:inherit}
.wk-name a::after{content:"";position:absolute;inset:0;z-index:1}
.wk-book{position:relative;z-index:2;opacity:0;transform:translateX(-6px);transition:opacity .35s var(--ease),transform .35s var(--ease)}
.wk-row:hover .wk-book,.wk-row:focus-within .wk-book{opacity:1;transform:none}
.wk-go em{font-style:normal}
@media (hover:none){.wk-book{opacity:1;transform:none}}
@media (max-width:860px){
  .wk-head{display:none}
  .wk-row{grid-template-columns:1fr auto;row-gap:10px;padding:22px 14px;align-items:center}
  .wk-row .wk-time{order:1}
  .wk-row span:nth-child(2){order:2;justify-self:end}
  .wk-name{order:3;grid-column:1 / -1}
  .wk-where{order:4;grid-column:1 / -1}
  .wk-go{order:5;grid-column:1;justify-self:start;align-self:center;text-align:left}
  .wk-book{order:6;grid-column:2;grid-row:auto;justify-self:end;align-self:center;opacity:1;transform:none}
  .wk-link{align-self:start;margin-top:14px}
}

/* ===== morphing mega menu in the header bar ===== */
.mega-nav{display:flex;align-items:center;gap:22px}
.trig{background:none;border:0;cursor:pointer}
.trig svg.chev{width:8px;height:5px;transition:transform .35s var(--ease)}
.trig[aria-expanded="true"] svg.chev{transform:rotate(180deg)}
.trig[aria-expanded="true"],.trig:hover{color:var(--gold-hi)}
.hdr.solid .trig[aria-expanded="true"],.hdr.solid .trig:hover{color:var(--gold-lo)}

.dd{--x:0px;--w:420px;--h:300px;--s:.975;--morph:.5s;
  position:absolute;top:calc(100% - 6px);left:0;width:var(--w);height:var(--h);
  transform:translateX(var(--x)) scale(var(--s));transform-origin:50% 0;
  opacity:0;pointer-events:none;border-radius:16px;overflow:hidden;
  background:rgba(var(--ink-rgb),.9);border:1px solid rgba(var(--d-rgb),.14);
  box-shadow:0 36px 80px -28px rgba(0,0,0,.6),0 2px 10px rgba(0,0,0,.22);
  backdrop-filter:blur(22px) saturate(140%);-webkit-backdrop-filter:blur(22px) saturate(140%);
  transition:transform var(--morph) var(--ease),width var(--morph) var(--ease),height var(--morph) var(--ease),opacity .3s ease}
.dd.open{--s:1;opacity:1;pointer-events:auto}
.dd.instant{transition:opacity .3s ease,transform var(--morph) var(--ease)}
.dd.instant.snap{transition:none}

.mp{position:absolute;top:0;left:0;opacity:0;visibility:hidden;filter:blur(8px);transform:translateX(0);color:var(--d);
  transition:opacity .26s ease,transform var(--morph) var(--ease),filter .4s ease,visibility 0s linear var(--morph)}
.mp[data-state="exit-left"]{transform:translateX(-56px)}
.mp[data-state="exit-right"]{transform:translateX(56px)}
.mp[data-state="active"]{opacity:1;visibility:visible;filter:blur(0);transform:translateX(0);
  transition:opacity .36s ease .06s,transform var(--morph) var(--ease),filter .45s ease .04s,visibility 0s}
.mp.snap{transition:none!important}

/* panel A: a list that drives a preview photo */
.mp-list{display:grid;grid-template-columns:302px 1fr}
.d-list{display:flex;flex-direction:column;padding:8px;gap:2px}
.d-item{flex:1;display:flex;flex-direction:column;justify-content:center;padding:0 13px;border-radius:10px;
  text-decoration:none;color:inherit;transition:background-color .3s var(--ease)}
.d-item.is-active{background:rgba(255,255,255,.07)}
.d-item strong{font:400 17px/1.15 var(--serif);margin-bottom:4px}
.d-item.is-active strong{color:var(--gold-hi)}
.d-item span{font-size:12.6px;line-height:1.42;color:var(--d-mute)}
.d-media{position:relative;overflow:hidden;border-radius:0 15px 15px 0}
.d-media::before{content:"";position:absolute;left:0;top:0;bottom:0;width:70px;z-index:2;pointer-events:none;
  background:linear-gradient(to right,rgba(var(--ink-rgb),.6),rgba(var(--ink-rgb),0))}
.d-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.06);filter:blur(10px);
  transition:opacity .6s ease,transform .9s var(--ease),filter .6s ease}
.d-media img.is-active{opacity:1;transform:scale(1);filter:blur(0);z-index:1}

/* panel B: two photo cards */
.mp-cards{padding:7px;display:grid;grid-template-columns:1fr 1fr;gap:7px}
.mcard{position:relative;overflow:hidden;border-radius:10px;display:flex;flex-direction:column;justify-content:flex-end;
  padding:15px;isolation:isolate;text-decoration:none;color:var(--d)}
.mcard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;
  transition:transform .9s var(--ease),filter .5s}
.mcard:hover img,.mcard:focus-visible img{transform:scale(1.05);filter:brightness(1.08)}
.mcard::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(to top,rgba(var(--shade-rgb),.9) 0%,rgba(var(--shade-rgb),.35) 38%,rgba(var(--shade-rgb),0) 62%)}
.mcard strong{font:400 19px/1.15 var(--serif);margin-bottom:5px}
.mcard span{font-size:12.6px;line-height:1.42;color:var(--d-mute)}

/* panel C: plain rows */
.mp-rows{padding:8px;display:flex;flex-direction:column;gap:2px}
.r-link{flex:1;display:flex;align-items:center;padding:0 13px;border-radius:9px;font-size:14.4px;
  text-decoration:none;color:var(--d-mute);transition:background-color .25s var(--ease),color .25s var(--ease)}
.r-link:hover,.r-link:focus-visible{background:rgba(255,255,255,.07);color:var(--d)}

@media (max-width:1100px){.mega-nav{display:none}}
@media (prefers-reduced-motion:reduce){
  .dd{--morph:.01s}
  .mp{filter:none}
  .mp[data-state="active"]{filter:none}
  .d-media img{filter:none;transform:none}
}

/* ===== contact: one full-bleed card over the film ===== */
.contact-reach-grid{align-items:stretch}
.contact-reach-grid .panel{min-width:0}
.contact-reach-grid h3{margin:12px 0 16px}
.contact-reach-grid p{margin-bottom:18px}
.contact-detail-link{display:block;overflow-wrap:anywhere;color:var(--gold-lo);margin:18px 0;font-weight:500}
.contact-reach-grid .btns{margin-top:22px}
.contact-guidance .lede{margin-top:22px}
.contact-enquiry-topics article{padding:22px 0;border-bottom:1px solid var(--hair)}
.contact-enquiry-topics article:first-child{padding-top:0}
.contact-enquiry-topics h3{margin-bottom:12px}
.contact-enquiry-topics p{margin-bottom:16px}
.cwrap{padding:calc(env(safe-area-inset-top,0px) + 88px) clamp(10px,1.4vw,22px) clamp(10px,1.4vw,22px)}
.ccard{position:relative;border-radius:clamp(16px,1.8vw,26px);overflow:hidden;background:var(--ink);
  min-height:calc(100svh - 118px);display:flex;flex-direction:column}
.cc-bg{position:absolute;inset:0;z-index:0}
.cc-bg > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cc-bg::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(to top,rgba(var(--shade-rgb),.78) 0%,rgba(var(--shade-rgb),.3) 46%,rgba(var(--shade-rgb),.22) 100%)}
.cc-in{position:relative;z-index:3;flex:1;display:flex;flex-direction:column;justify-content:flex-end;
  gap:clamp(22px,3vw,40px);padding:clamp(22px,3vw,44px)}
.cc-row{display:flex;flex-direction:column;gap:clamp(22px,2.6vw,40px)}
.cc-say{color:#fff}
.cc-say .kick{color:var(--gold-hi)}
.cc-say h1{font-size:clamp(36px,4.6vw,66px);line-height:1.04;color:#fff}
.cc-say p{color:rgba(255,255,255,.82);margin:20px 0 0;max-width:40ch;font-size:clamp(15px,1.2vw,17px)}
@media (min-width:1000px){
  .cc-row{flex-direction:row;align-items:flex-end;justify-content:space-between;gap:clamp(26px,4vw,72px)}
  .cc-say{flex:1 1 auto;min-width:0}
  .cc-say h1{max-width:13ch}
  .cc-say p{max-width:36ch}
}

/* the white card */
.cform{width:100%;background:var(--paper);border-radius:clamp(14px,1.4vw,20px);overflow:hidden;
  box-shadow:0 40px 90px -38px rgba(0,0,0,.6);padding:clamp(18px,1.9vw,26px);
  display:flex;flex-direction:column;gap:17px}
@media (min-width:1000px){.cform{width:min(470px,46%);flex:0 0 auto}}
.cform h2{font-size:clamp(23px,1.9vw,28px);color:var(--ink)}
.cf-reach{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  background:var(--sand);border-radius:13px;padding:11px 15px}
.cf-reach .meta{font-size:10.4px;display:block;margin-bottom:2px}
.cf-reach a.mail{font:500 14.4px/1.2 var(--sans);color:var(--gold-lo);text-decoration:none;word-break:break-all}
.cf-reach a.mail:hover{text-decoration:underline}
.cf-soc{display:flex;gap:7px;flex-shrink:0}
.cf-soc a{width:32px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center;
  background:rgba(var(--ink-rgb),.07);color:var(--ink);transition:background-color .22s var(--ease),color .22s var(--ease)}
.cf-soc a:hover{background:var(--ink);color:var(--gold-hi)}
.cf-soc svg{width:15px;height:15px}
.cf-or{display:flex;align-items:center;gap:13px;color:var(--t-mute);font-size:11.4px;letter-spacing:.16em;text-transform:uppercase}
.cf-or::before,.cf-or::after{content:"";flex:1;height:1px;background:var(--hair)}

.cform form{display:flex;flex-direction:column;gap:13px}
.cform .lbl{font:500 12.6px/1 var(--sans);letter-spacing:.04em;color:var(--ink)}
.cf-two{display:flex;gap:9px;flex-direction:column}
@media (min-width:460px){.cf-two{flex-direction:row}}
.cform input,.cform textarea,.cform select{flex:1;min-width:0;width:100%;font:400 14px/1.5 var(--sans);color:var(--t);
  padding:11px 13px;border-radius:11px;border:1px solid var(--hair);background:#fff;
  transition:border-color .22s var(--ease),box-shadow .22s var(--ease)}
.cform textarea{resize:none;min-height:96px}
.cform input::placeholder,.cform textarea::placeholder{color:var(--d-mute)}
.cform input:focus,.cform textarea:focus,.cform select:focus{outline:0;border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(var(--gold-rgb),.26)}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{font:500 11.8px/1 var(--sans);padding:9px 12px;border-radius:9px;cursor:pointer;
  border:1px solid var(--hair);background:#fff;color:var(--t);
  transition:background-color .22s var(--ease),border-color .22s var(--ease),color .22s var(--ease)}
.chip:hover{border-color:var(--gold-lo)}
.chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--gold-hi)}
.cf-send{width:100%;justify-content:center}
.cf-note{font-size:11.6px;color:var(--t-mute);margin:0;text-align:center}
.cf-done{display:flex;flex-direction:column;align-items:center;text-align:center;gap:11px;padding:26px 0}
.cf-done i{width:48px;height:48px;border-radius:50%;background:rgba(var(--gold-rgb),.18);color:var(--gold-lo);
  display:flex;align-items:center;justify-content:center;font-style:normal;font-size:21px}
.cf-done b{font:400 21px/1.2 var(--serif);color:var(--ink)}
.cf-done span{font-size:13.4px;color:var(--t-mute);max-width:34ch}
@media (prefers-reduced-motion:reduce){.cc-bg video{opacity:0!important}}

/* ===== the film: a silent loop, no controls ===== */
.filmbox{position:relative;max-width:100%;box-shadow:0 44px 90px -46px rgba(0,0,0,.5)}
.film-media{position:relative;width:100%;aspect-ratio:4/5;overflow:hidden;border-radius:4px;background:var(--ink)}
/* the still sits underneath and shows through if the video cannot load */
.film-media > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.film-v{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;
  opacity:0;transition:opacity .9s var(--ease)}
.film-v.on{opacity:1}
@media (max-width:760px){.film-media{aspect-ratio:16/11}.filmbox{margin-top:6px}}
@media (prefers-reduced-motion:reduce){.film-v{opacity:0!important}}

/* ============================================================
   Added by the CMS: the welcome popup and the basket discount lines.
   Everything above is the finalized design, unchanged.
   ============================================================ */
/* an element with [hidden] must stay hidden even when a class sets display */
[hidden]{display:none!important}

/* ===== welcome popup ===== */
.pop[hidden]{display:none}
.pop{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;padding:20px;
  background:rgba(var(--shade-rgb),.52);opacity:0;transition:opacity .4s var(--ease);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.pop.on{opacity:1}
.pop-in{position:relative;width:min(470px,100%);background:var(--paper);border-radius:20px;padding:clamp(26px,3vw,40px);
  box-shadow:0 44px 90px -40px rgba(0,0,0,.55);transform:translateY(14px) scale(.97);transition:transform .5s var(--ease)}
.pop.on .pop-in{transform:none}
.pop-x{position:absolute;top:12px;right:12px}
.pop-in h2{font-size:clamp(25px,2.4vw,33px);margin:4px 0 0}
.pop-in .lede{margin-top:14px;font-size:15px}
.pop-form{display:flex;gap:9px;margin-top:22px;flex-wrap:wrap}
.pop-form input[type=email]{flex:1;min-width:190px;padding:12px 14px;border:1px solid var(--hair);border-radius:11px;
  background:#fff;font:400 14.5px var(--sans)}
.pop-form input[type=email]:focus{outline:0;border-color:var(--gold);box-shadow:0 0 0 3px rgba(var(--gold-rgb),.26)}
.pop-form .trap{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.pop-msg{margin:14px 0 0;font-size:14px;color:var(--t-mute)}
.pop-msg.bad{color:#9b3b2f}
.pop-fine{margin:13px 0 0;font-size:12px;color:var(--t-mute)}
.pop-code{display:inline-flex;align-items:center;gap:11px;margin-top:14px;padding:9px 9px 9px 16px;
  border:1px dashed var(--gold);border-radius:12px;background:rgba(var(--gold-rgb),.1)}
.pop-code > span{font:500 17px/1 var(--sans);letter-spacing:.18em;color:var(--ink)}
@media (prefers-reduced-motion:reduce){.pop,.pop-in{transition:none}}

/* ===== basket: discount lines ===== */
.erow-go{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.cpn{display:flex;gap:8px;margin:18px 0 6px}
.cpn input{flex:1;min-width:0;padding:10px 13px;border:1px solid var(--hair);border-radius:10px;background:#fff;
  font:400 14px var(--sans);letter-spacing:.06em;text-transform:uppercase}
.cpn input:focus{outline:0;border-color:var(--gold);box-shadow:0 0 0 3px rgba(var(--gold-rgb),.24)}
.cpn-msg{margin:4px 0 0;font-size:12.6px;color:var(--t-mute)}
.cpn-msg.bad{color:#9b3b2f}
.bline{display:flex;justify-content:space-between;gap:14px;padding:7px 0;font-size:14px;color:var(--t-mute)}
.bline.save{color:var(--gold-lo);font-weight:500}
.saved{margin:8px 0 14px;font:500 13px var(--sans);letter-spacing:.04em;color:var(--gold-lo);text-align:center}

/* ===== breadcrumbs: only on pages deep enough to need them ===== */
.crumbs{background:var(--paper);border-bottom:1px solid var(--hair)}
.crumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0;padding:14px 0;list-style:none;
  font:400 12px/1.4 var(--sans);letter-spacing:.07em;text-transform:uppercase;color:var(--t-mute)}
.crumbs li{display:flex;align-items:center;gap:8px;min-width:0}
.crumbs li+li::before{content:"";width:4px;height:4px;border-radius:50%;background:var(--gold);opacity:.55;flex:none}
.crumbs a{color:var(--t-mute);text-decoration:none;border-bottom:1px solid transparent;transition:color .2s var(--ease),border-color .2s var(--ease)}
.crumbs a:hover{color:var(--ink);border-color:var(--gold)}
.crumbs [aria-current=page]{color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:620px){
  .crumbs ol{padding:11px 0;font-size:11px;gap:6px}
  .crumbs li+li::before{width:3px;height:3px}
}

/* ===== one fix to the design, with its reason =====
   The service panels keep their title on a single line. In a narrow, closed
   panel a long title ran past the edge and was cut mid-word: "Yoga &
   Meditation" showed as "Yoga & Meditatio". A closed panel may now wrap its
   title; the open one still holds it on one line, as designed. */
.panel-i:not(.open) .panel-b h3{white-space:normal;text-wrap:balance}

/* ===== second fix to the design, with its reason =====
   Below 820px every panel shows its full text, but a closed panel was pinned
   to 170px, so the words ran up over the number in the corner. The panel now
   grows to fit whatever is in it and keeps 170px as a floor, which leaves the
   look intact and stops the collision. */
@media (max-width:820px){
  .panel-i{height:auto;min-height:170px;display:flex;align-items:flex-end}
  .panel-i.open{height:auto;min-height:330px}
  /* in the flow, so the panel takes its height from the words inside it,
     while the photo and its gradient stay behind as before */
  .panel-b{position:relative;width:100%;padding-top:clamp(54px,15vw,70px)}
}

/* ============================================================
   A video where a photo was, and editing on the page itself.
   Both sit outside the finalized design: the video fills exactly
   the box its photo filled, and the editing styles only ever load
   for a signed-in editor.
   ============================================================ */

/* ---------- a video in a photo's place ---------- */
.vbox{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;background:#0D1B17}
.ph > .vbox,.phero > .vbox{position:absolute;inset:0}
.vbox img{width:100%;height:100%;object-fit:cover;display:block}
.vbox iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.vplay{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:72px;height:72px;border-radius:50%;border:1px solid rgba(255,255,255,.5);
  background:rgba(var(--ink-rgb),.5);color:#fff;cursor:pointer;display:grid;place-items:center;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  transition:transform .3s var(--ease),background .3s var(--ease),border-color .3s var(--ease)}
.vplay svg{width:30px;height:30px;margin-left:3px}
.vbox:hover .vplay{transform:translate(-50%,-50%) scale(1.07);background:rgba(var(--gold-rgb),.85);border-color:transparent}
.vplay:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.vbox.playing .vplay,.vbox.playing img{display:none}
@media (prefers-reduced-motion:reduce){.vplay{transition:none}.vbox:hover .vplay{transform:translate(-50%,-50%)}}

/* ---------- editing on the page ---------- */
.vs-bar{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:300;
  display:flex;align-items:center;gap:13px;padding:11px 15px;border-radius:14px;
  background:rgba(var(--ink-rgb),.93);color:#fff;font:400 14px/1.3 var(--sans);
  box-shadow:0 14px 40px rgba(0,0,0,.33);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  max-width:calc(100vw - 24px);flex-wrap:wrap}
.vs-bar b{font-weight:600;letter-spacing:.01em}
.vs-dot{width:9px;height:9px;border-radius:50%;background:#7FD1A6;flex:none;
  box-shadow:0 0 0 4px rgba(127,209,166,.2)}
.vs-tip{opacity:.72;font-size:13px}
.vs-state{font-size:13px;min-width:54px}
.vs-state.ok{color:#7FD1A6}
.vs-state.bad{color:#FFB4A2}
.vs-btn{color:#fff;text-decoration:none;border:1px solid rgba(255,255,255,.28);
  border-radius:9px;padding:6px 11px;font-size:13px;white-space:nowrap}
.vs-btn:hover{border-color:var(--gold);color:var(--gold)}
.vs-done{background:var(--gold);border-color:var(--gold);color:#10231D;font-weight:600}
.vs-done:hover{background:#D9B87F;color:#10231D}
@media (max-width:620px){.vs-tip{display:none}}

.vs-ed{outline:1px dashed rgba(var(--gold-rgb),.5);outline-offset:2px;border-radius:2px;cursor:text;
  transition:background .15s,outline-color .15s}
.vs-ed:hover{background:rgba(var(--gold-rgb),.14);outline-color:var(--gold)}
.vs-ed.is-on{background:rgba(var(--gold-rgb),.2);outline:2px solid var(--gold);cursor:text}
.vs-ed.was-saved{background:rgba(127,209,166,.26);outline-color:#4F9E77}
.vs-ed:focus-visible{outline:2px solid var(--gold)}

.vs-edimg{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:5;
  padding:9px 14px;border:0;border-radius:10px;background:rgba(var(--ink-rgb),.86);color:#fff;
  font:500 13px var(--sans);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;
  opacity:0;transition:opacity .2s var(--ease)}
.ph,.phero,.filmbox,.film-media{position:relative}
.ph:hover .vs-edimg,.phero:hover .vs-edimg,.vs-edimg:focus-visible{opacity:1}
.vs-edimg:hover{background:var(--gold);color:#10231D}

.vs-sheet{position:fixed;inset:0;z-index:320;background:rgba(var(--ink-rgb),.55);
  display:flex;align-items:center;justify-content:center;padding:20px;
  -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.vs-sheet[hidden]{display:none}
.vs-sheet-in{position:relative;width:min(430px,100%);max-height:88vh;overflow:auto;
  background:var(--paper);border-radius:18px;padding:26px;box-shadow:0 26px 70px rgba(0,0,0,.32)}
.vs-sheet-in h3{margin:0 0 14px;font:400 23px var(--serif);color:var(--ink)}
.vs-sheet-in img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;background:#2A3F37}
.vs-sheet-in label{display:block;margin-top:15px;font:500 13px var(--sans);color:var(--ink)}
.vs-sheet-in input{width:100%;margin-top:6px;padding:10px 12px;border:1px solid var(--hair);
  border-radius:9px;font:400 15px var(--sans);background:#fff;color:var(--ink)}
.vs-sheet-in input:focus{outline:0;border-color:var(--gold);box-shadow:0 0 0 3px rgba(var(--gold-rgb),.25)}
.vs-note{margin:12px 0 0;font-size:13px;color:var(--t-mute);min-height:18px}
.vs-sheet-go{display:flex;gap:10px;margin-top:20px}
.vs-save{flex:1;padding:11px;border:0;border-radius:10px;background:var(--gold);color:#10231D;
  font:600 15px var(--sans);cursor:pointer}
.vs-save:hover{background:#D9B87F}
.vs-quiet{padding:11px 16px;border:1px solid var(--hair);border-radius:10px;background:none;
  color:var(--ink);font:500 15px var(--sans);cursor:pointer}
.vs-x{position:absolute;top:10px;right:12px;border:0;background:none;font-size:26px;line-height:1;
  color:var(--t-mute);cursor:pointer}
.vs-x:hover{color:var(--ink)}

/* ============================================================
   Checkout and the booking confirmation. Built from the same
   pieces as the rest of the site: the panel, the gold line, the
   buttons and the field styles the forms already use.
   ============================================================ */
.ckform{margin-top:8px}
.ckform .field{margin-bottom:20px}
.ckguests{margin:30px 0;padding-top:24px;border-top:1px solid var(--hair)}
.ckguests h3{margin:0 0 10px}
.ckguests>p{color:var(--t-mute);margin:0 0 20px}
.ckguests fieldset{border:1px solid var(--hair);border-radius:12px;padding:20px;margin:0 0 18px;min-width:0}
.ckguests legend{font:400 21px var(--serif);padding:0 8px}
.ckguests .field:last-child{margin-bottom:0}
.ckitem strong{font-weight:500}
.ckqty{display:flex;align-items:center;gap:10px;margin-top:10px;font-size:13px;color:var(--t-mute)}
.ckqty button{width:32px;height:32px;border:1px solid var(--hair);border-radius:50%;background:transparent;color:inherit;font-size:18px;line-height:1;cursor:pointer}
.ckqty button:disabled{opacity:.4;cursor:default}
.ckqty button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.ckform .trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.note-bad{margin:0 0 22px;padding:13px 16px;border-radius:11px;
  background:rgba(155,59,47,.07);border:1px solid rgba(155,59,47,.25);color:#8A3326;font-size:15px}

.cksum{position:sticky;top:104px}
.ckrow{display:flex;justify-content:space-between;gap:18px;align-items:baseline;
  margin:0;padding:11px 0;border-bottom:1px solid var(--hair);font-size:15px}
.ckrow span{min-width:0}
.ckrow small{display:block;color:var(--t-mute);font-size:13px;margin-top:2px}
.ckrow b{font-weight:500;white-space:nowrap}
.ckrow.sub{border-bottom:0;padding-bottom:4px;color:var(--t-mute)}
.ckrow.save{border-bottom:0;padding:4px 0;color:var(--gold-lo)}
.ckrow.save b{color:var(--gold-lo)}
.ckrow.total{border-bottom:0;border-top:1px solid var(--hair);margin-top:10px;padding-top:16px;
  font:400 21px/1.2 var(--serif)}
.ckrow.total b{font:400 25px/1.2 var(--serif)}
.dark .ckrow{border-color:var(--hair-d)}
@media (max-width:860px){.cksum{position:static;margin-top:32px}}

/* ---------- the Instagram strip ---------- */
.igstrip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
@media (max-width:900px){.igstrip{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:520px){.igstrip{grid-template-columns:repeat(2,minmax(0,1fr))}}
.igcell{display:block;position:relative;aspect-ratio:1;overflow:hidden;border-radius:4px}
.igcell img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.igcell:hover img{transform:scale(1.04)}

/* ---------- an uploaded logo in place of the typeset mark ---------- */
.brand-img{max-width:min(70vw,320px);object-fit:contain}

/* ============================================================
   What is on, as cards.

   The events page listed gatherings as thin rows that gave a
   visitor no way to tell one from another. These carry the photo,
   the date, what it is, when and where, the price, and a button
   that says what pressing it does.
   ============================================================ */
.ecards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(24px,3vw,42px) clamp(18px,2.2vw,32px)}
@media (max-width:980px){.ecards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.ecards{grid-template-columns:1fr}}

.ecard{display:flex;flex-direction:column;background:var(--card);
  border:1px solid var(--hair);border-radius:16px;overflow:hidden;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .4s}
.ecard:hover{transform:translateY(-4px);border-color:rgba(var(--gold-rgb),.45);
  box-shadow:0 26px 52px -34px rgba(var(--shade-rgb),.4)}
.ecard-ph{display:block;position:relative;overflow:hidden}
.ecard-ph .ph{margin:0;border-radius:0}
.ecard-ph img{transition:transform 1.1s var(--ease)}
.ecard:hover .ecard-ph img{transform:scale(1.04)}

.ecard-in{display:flex;flex-direction:column;flex:1;padding:clamp(20px,2vw,27px)}
.ecard .edate{display:block;font:600 11.2px/1 var(--sans);letter-spacing:.15em;
  text-transform:uppercase;color:var(--gold-lo);margin-bottom:13px}
.ecard .edate.is-past{color:var(--t-mute)}
.ecard .edate.is-full{color:var(--gold-lo)}
/* how many places are left, said beside the price and never louder than it */
.eprice .eleft{font-weight:400;color:var(--t-mute)}
.eprice .eleft:before{content:'· '}
.ecard h3{font-size:clamp(21px,1.7vw,25.5px);line-height:1.12;margin-bottom:11px}
.ecard h3 a{text-decoration:none}
.ecard h3 a:hover{color:var(--gold-lo)}
.ecard > .ecard-in > p{margin:0 0 17px;font-size:14.6px;line-height:1.65;color:var(--t-mute)}

.efacts{display:grid;gap:7px;margin:0 0 17px;padding:15px 0 0;border-top:1px solid var(--hair)}
.efacts > div{display:grid;grid-template-columns:62px minmax(0,1fr);gap:12px;align-items:baseline}
.efacts dt{font:600 10.6px/1.5 var(--sans);letter-spacing:.13em;text-transform:uppercase;
  color:var(--t-mute);margin:0}
.efacts dd{margin:0;font-size:14.2px;line-height:1.5}

.ecard .eprice{margin:0 0 18px;font:500 15.6px/1.3 var(--sans);color:var(--t)}
.ecard-go{margin-top:auto;display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.ecard-more{color:var(--gold-lo)}
.ecard .ebook{width:100%;justify-content:center;text-align:center}

/* a gathering that has happened is quieter than one you can come to */
.ecards.past .ecard{background:transparent}
.ecards.past .ecard h3{font-size:clamp(19px,1.4vw,22px)}
/* a gathering with nothing written about it yet: no rule above a block that
   has no paragraph above it to be separated from */
.efacts.no-rule{border-top:0;padding-top:0}

/* the break between what is coming up and what has been held */
.car-sep{flex:none;align-self:stretch;display:flex;align-items:center;justify-content:center;
  width:clamp(58px,6vw,96px);position:relative}
.car-sep::before{content:"";position:absolute;top:8%;bottom:8%;left:50%;width:1px;
  background:var(--hair)}
.car-sep span{position:relative;writing-mode:vertical-rl;transform:rotate(180deg);
  font:600 10.6px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;
  color:var(--t-mute);background:var(--paper);padding:14px 3px}
.car-i.held{opacity:.78}
.car-i.held:hover{opacity:1}

/* ---- How it works: a switch between two ways in, and the three steps ---- */
.switch{display:inline-flex;gap:4px;margin:30px auto 0;padding:5px;
  background:var(--card-2);border:1px solid var(--hair);border-radius:999px}
.switch .swt{appearance:none;border:0;cursor:pointer;border-radius:999px;
  padding:11px 22px;font:500 13.5px/1 var(--sans);color:var(--t-mute);background:transparent;
  transition:background .3s var(--ease),color .3s var(--ease)}
.switch .swt:hover{color:var(--t)}
.switch .swt[aria-selected="true"]{background:var(--ink);color:var(--paper)}
.switch .swt:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.hiw-note{margin:26px 0 0;font-size:13.5px;letter-spacing:.02em;color:var(--t-mute)}
.hiw-pane > .grid{margin-top:34px;text-align:left}
.stepcard{padding:30px 30px 34px;background:var(--card);border:1px solid var(--hair);border-radius:16px}
.stepcard-n{display:flex;align-items:center;gap:16px;margin-bottom:22px}
.stepcard-n span{flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;
  background:var(--card-2);font:500 13.5px/1 var(--sans);color:var(--t-mute)}
.stepcard-n i{display:block;flex:1;height:1px;background:var(--hair)}
.stepcard h3{font-size:19.5px;line-height:1.2;margin:0 0 10px}
.stepcard p{margin:0;font-size:14.6px;line-height:1.65;color:var(--t-mute)}
@media (max-width:760px){
  .switch{display:flex;width:100%;max-width:420px}
  .switch .swt{flex:1;padding:11px 12px}
  .stepcard{padding:24px 22px 26px}
}

/* ---- Combo offers: tick the dates, see the saving ---- */
.hero-combo{display:block;width:340px;text-align:left}
.hero-combo > p{margin:0 0 12px;color:rgba(255,255,255,.75);font-size:13.5px}
.cmb{display:block}
.cmb-list{display:grid;gap:6px;margin:0 0 12px}
.cmbo{display:flex;gap:10px;align-items:flex-start;cursor:pointer;
  padding:9px 11px;border:1px solid var(--hair);border-radius:10px;background:var(--card);
  transition:border-color .25s var(--ease),background .25s var(--ease)}
.cmbo:hover{border-color:var(--gold)}
.cmbo input{margin:2px 0 0;accent-color:var(--gold-lo);flex:none}
.cmbo span{display:block;line-height:1.3}
.cmbo b{display:block;font:500 13.6px/1.3 var(--sans);color:var(--t)}
.cmbo i{display:block;margin-top:2px;font:400 12.2px/1.3 var(--sans);font-style:normal;color:var(--t-mute)}
.cmb-sum{margin:0 0 14px;font:500 13.5px/1.4 var(--sans);color:var(--t)}
.cmb .btn{width:100%;justify-content:center}
.cmb-more{display:inline-block;margin-top:12px;font-size:12.5px;color:rgba(255,255,255,.8)}

/* inside the hero the card is dark, so the boxes are too */
.hero-combo .cmb-list{max-height:238px;overflow:auto}
.hero-combo .cmbo{background:rgba(var(--shade-rgb),.4);border-color:rgba(255,255,255,.22)}
.hero-combo .cmbo:hover{border-color:var(--gold-hi)}
.hero-combo .cmbo b{color:#fff}
.hero-combo .cmbo i{color:rgba(255,255,255,.7)}
.hero-combo .cmb-sum{color:var(--gold-hi)}

/* the section further down */
.grid.c1{grid-template-columns:minmax(0,640px);justify-content:center}
@media (max-width:900px){.hero-combo{width:100%}}
@media (max-width:620px){.cmbcard{padding:24px 22px 28px}}

/* ---- Combo offers: one wide panel per offer ---- */
.offers{background:var(--band-2);padding:clamp(66px,8vw,120px) 0}
.offer{position:relative;margin-top:40px;padding:clamp(30px,3.4vw,52px);
  background:var(--card);border:1px solid var(--hair);border-radius:20px}
.offer + .offer{margin-top:28px}
.offer-top{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:clamp(28px,3.4vw,56px);
  align-items:start}
.offer-main h3{font-size:clamp(30px,3.4vw,46px);line-height:1.06;margin:10px 0 14px}
.offer-main > .lede{margin:0;max-width:52ch}

.offer-steps{list-style:none;margin:30px 0 0;padding:0;display:grid;gap:16px;max-width:56ch}
.offer-steps li{display:flex;gap:16px;align-items:baseline}
.offer-steps span{flex:none;width:28px;font:400 13px/1 var(--serif);color:var(--gold-lo);
  letter-spacing:.04em}
.offer-steps b{display:block;font:500 15.5px/1.35 var(--sans);color:var(--t)}
.offer-steps i{display:block;margin-top:3px;font:400 13.4px/1.5 var(--sans);font-style:normal;
  color:var(--t-mute)}

.offer-rail{padding-left:clamp(22px,2.4vw,38px);border-left:1px solid var(--hair)}
.offer-big{margin:10px 0 6px;font:400 clamp(40px,4.6vw,62px)/1 var(--serif);color:var(--t);
  letter-spacing:-.02em}
.offer-sub{margin:0;font-size:14px;line-height:1.5;color:var(--t-mute)}
.offer-from{margin:14px 0 0;font:500 14.5px/1.4 var(--sans);color:var(--gold-lo)}


.offer-pick{margin-top:clamp(28px,3vw,42px);padding-top:clamp(24px,2.6vw,34px);
  border-top:1px solid var(--hair)}
.offer-picklead{margin:0 0 18px;font:400 clamp(19px,1.9vw,24px)/1.2 var(--serif);color:var(--t)}
.offer-picklead span{display:block;margin-top:6px;font:400 13.4px/1.5 var(--sans);color:var(--t-mute)}

/* the rows to tick, in the section (the hero keeps the slim version) */
.offer-pick .cmb-list{grid-template-columns:repeat(auto-fit,minmax(272px,1fr));gap:12px}
.offer-pick .cmbo{align-items:center;gap:14px;padding:12px 14px;border-radius:14px;
  background:var(--card-2)}
.offer-pick .cmbo:has(input:checked){border-color:var(--gold);background:var(--card)}
.offer-pick .cmbo-ph{flex:none;width:54px;display:block}
.offer-pick .cmbo-ph .ph{border-radius:10px}
.offer-pick .cmbo span{flex:1;min-width:0}
.offer-pick .cmbo b{font-size:14.6px}
.offer-pick .cmbo u{flex:none;text-align:right;text-decoration:none;
  font:500 14px/1.3 var(--sans);color:var(--t)}
.offer-pick .cmbo u s{display:block;margin-top:3px;text-decoration:none;
  font:400 11.6px/1.3 var(--sans);color:var(--gold-lo)}

.cmb-foot{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;
  margin-top:18px}
.cmb-foot .cmb-sum{margin:0}
.offer-pick .cmb .btn{width:auto}
.cmb .btn[disabled]{opacity:.45;cursor:not-allowed}

@media (max-width:900px){
  .offer-top{grid-template-columns:1fr}
  .offer-rail{padding-left:0;padding-top:24px;border-left:0;border-top:1px solid var(--hair)}
  .cmb-foot{flex-direction:column;align-items:stretch}
  .offer-pick .cmb .btn{width:100%;justify-content:center}
}

/* ---- Reviews in drifting columns ---- */
.qcols{display:grid;grid-template-columns:1fr;gap:clamp(16px,1.8vw,26px);margin-top:clamp(30px,3.4vw,46px);
  max-height:660px;overflow:hidden;
  -webkit-mask-image:linear-gradient(to bottom,transparent,#000 14%,#000 86%,transparent);
  mask-image:linear-gradient(to bottom,transparent,#000 14%,#000 86%,transparent)}
.qcol{overflow:hidden}
.qcol-t{display:flex;flex-direction:column;gap:clamp(16px,1.8vw,26px);
  will-change:transform;animation:qup var(--qs,56s) linear infinite}
/* the second half of a column is the first half again, so sliding by half its
   own height lands exactly where it started */
@keyframes qup{from{transform:translateY(0)}to{transform:translateY(-50%)}}
.qcols:hover .qcol-t,.qcols:focus-within .qcol-t{animation-play-state:paused}

.qc{margin:0;padding:clamp(24px,2.3vw,34px);border-radius:18px;
  background:var(--card-2);border:1px solid var(--hair);
  box-shadow:0 26px 48px -40px rgba(var(--shade-rgb),.45)}
.qc blockquote{margin:0;font:400 clamp(16.5px,1.35vw,19px)/1.55 var(--serif);color:var(--ink)}
.qc blockquote:before{content:"\201C"}
.qc blockquote:after{content:"\201D"}
.qc figcaption{display:flex;align-items:center;gap:12px;margin-top:20px}
/* an initial, because there is no photograph of the person who wrote this */
.qc-i{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;
  background:var(--card);border:1px solid var(--hair);
  font:400 16px/1 var(--serif);color:var(--gold-lo)}
.qc-w{display:block;min-width:0}
.qc-w b{display:block;font:500 14.4px/1.3 var(--sans);color:var(--ink)}
.qc-w i{display:block;margin-top:2px;font:400 12.4px/1.3 var(--sans);font-style:normal;
  color:var(--t-mute)}

/* two columns from tablet, and as many as there are from desktop */
@media (min-width:700px){.qcols{grid-template-columns:repeat(min(2,var(--qn,2)),1fr)}}
@media (min-width:1040px){.qcols{grid-template-columns:repeat(var(--qn,2),1fr)}}

/* On a phone the columns would be too narrow to read and hiding one would
   hide the reviews inside it, so the drift stops and every review is simply
   listed once. */
@media (max-width:699px){
  .qcols{max-height:none;-webkit-mask-image:none;mask-image:none}
  .qcol-t{animation:none}
  .qcol-t .qc[aria-hidden="true"]{display:none}
}

/* nothing moves, and the whole set is simply listed */
@media (prefers-reduced-motion:reduce){
  .qcols{max-height:none;-webkit-mask-image:none;mask-image:none}
  .qcol-t{animation:none}
  .qcol-t .qc[aria-hidden="true"]{display:none}
}

/* the badge lost its star row, so the arrow needs sizing and the words need
   room to stay on one line */
.gbadge{white-space:nowrap}
.gbadge svg{flex:none;width:17px;height:17px}
@media (max-width:620px){.gbadge{white-space:normal}}

/* ---- A picture that changes ---- */
.shots{position:relative;overflow:hidden}
.shots img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transition:opacity 1.2s var(--ease)}
.shots img.on{opacity:1}
/* with no script the first photograph is simply the picture */
.shots:not([data-ready]) img{opacity:0}
.shots:not([data-ready]) img.on{opacity:1}

/* ---- Where we gather ---- */
.gather-head{max-width:62ch}
.gather-head h2{margin-top:6px}
.gather-head .lede{margin-top:22px}
.places{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,2.4vw,34px);
  margin-top:clamp(34px,4vw,54px)}
.place{margin:0}
.place .ph{border-radius:14px}
.place h3{margin:20px 0 8px;font-size:clamp(20px,1.9vw,25px);line-height:1.15}
.place p{margin:0;font-size:14.6px;line-height:1.65;color:var(--d-mute)}
@media (max-width:900px){.places{grid-template-columns:1fr;gap:28px}}

/* The panels run the full width now, so the section's own padding underneath
   them showed as a band of background with nothing in it. The row is the last
   thing in that section, so the padding below goes. */
.panelsec{padding-bottom:0}

/* ---------------------------------------------------------------- basket
   The saving nudge and the row of other gatherings under the basket. The
   combo offer used to sit on the home page; this is where it lives now. */
.cknudge{margin:14px 0 0;padding:12px 14px;border-radius:14px;
  background:rgba(var(--gold-rgb),.09);border:1px solid rgba(var(--gold-rgb),.28);
  font:400 13.5px/1.55 var(--sans);color:var(--t)}
.ups{padding-top:0}
.ups-row{display:grid;grid-template-columns:repeat(4,1fr);gap:26px}
.ups-card{display:flex;flex-direction:column;gap:9px;min-width:0}
.ups-shot{display:block;text-decoration:none}
.ups-card h4{font:400 19px/1.25 var(--serif);margin:2px 0 0;overflow-wrap:break-word}
.ups-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:8px}
.ups-foot .price{font-family:var(--serif);font-size:17px;white-space:nowrap}
@media (max-width:900px){.ups-row{grid-template-columns:repeat(2,1fr);gap:20px}}
@media (max-width:460px){
  .ups-row{grid-template-columns:1fr 1fr;gap:14px}
  .ups-card h4{font-size:16px}
  .ups-foot{flex-direction:column;align-items:flex-start;gap:8px}
}

/* ------------------------------------------------- booking confirmation */
.ckrow.bref b{font-family:var(--serif);font-size:21px;letter-spacing:.04em}
.bhead{font:500 10.8px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold-lo);margin:30px 0 14px}
.ckrow small{display:block;margin-top:3px;font-size:12.6px;color:var(--t-mute)}
.community .btn svg{width:18px;height:18px}

/* ------------------------------------------------------------- reviews */
.revs-ask{margin-top:46px;display:flex;flex-wrap:wrap;align-items:center;gap:18px 26px;
  padding-top:30px;border-top:1px solid var(--hair)}
.revs-ask p{margin:0;flex:1 1 280px;font:400 14.4px/1.6 var(--sans);color:var(--t-mute)}
.soclinks{display:flex;flex-wrap:wrap;gap:10px}
.soclinks a{display:inline-flex;align-items:center;gap:8px;text-decoration:none;
  padding:9px 15px;border-radius:999px;border:1px solid var(--hair);
  font:500 11.7px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;
  color:inherit;transition:border-color .2s,background-color .2s}
.soclinks a:hover{border-color:rgba(var(--gold-rgb),.55);background:rgba(var(--gold-rgb),.08)}
.soclinks svg{width:15px;height:15px;flex:none}
.gbadge b{font-family:var(--serif);font-size:25px;line-height:1;margin-right:9px}
@media (max-width:620px){
  .revs-ask{flex-direction:column;align-items:flex-start}
  .soclinks a span{display:none}
  .soclinks a{padding:11px 13px}
}

/* ------------------------------------------------- a gathering's own page
   Every one of these sections appears only when the event carries the field
   behind it, so the same markup serves a one-line gathering and a full one. */
.ev-el{font:italic 400 clamp(17px,1.4vw,19.8px)/1.3 var(--serif);color:var(--gold-lo);margin:14px 0 0}
.ev-trio{display:grid;grid-template-columns:1fr 1.5fr 1fr;border:1px solid var(--hair);border-radius:26px;overflow:hidden;
  background:linear-gradient(180deg,rgba(var(--gold-rgb),.05),transparent)}
.ev-trio>div{padding:clamp(24px,3.2vw,42px);min-width:0}
.ev-trio>div+div{border-left:1px solid var(--hair)}
.ev-trio h3{font:500 11.7px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--gold-lo);margin:0 0 16px}
.ev-trio p{margin:0;font:400 clamp(20px,2.1vw,26px)/1.35 var(--serif);color:var(--t)}
.ev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.ev-grid.four{grid-template-columns:repeat(4,1fr)}
.ev-card{border:1px solid var(--hair);border-radius:22px;padding:26px 24px 28px;min-width:0;
  background:linear-gradient(180deg,rgba(var(--gold-rgb),.05),transparent)}
.ev-card h3{font-size:clamp(20px,2vw,25px);margin:0 0 8px;line-height:1.2}
.ev-card p{margin:0;font-size:16px;color:var(--t-mute)}
.ev-steps{counter-reset:s;list-style:none;margin:0;padding:0;border-top:1px solid var(--hair)}
.ev-steps li{counter-increment:s;display:grid;grid-template-columns:52px 1fr;gap:4px 16px;padding:22px 0;border-bottom:1px solid var(--hair)}
.ev-steps li:before{content:counter(s,decimal-leading-zero);grid-row:1/3;font:400 21px var(--serif);color:var(--gold-lo)}
.ev-steps b{font:400 clamp(20px,2.1vw,25px)/1.25 var(--serif);font-weight:400}
.ev-steps span{color:var(--t-mute);font-size:16px}
.ev-list{display:grid;grid-template-columns:1fr 1fr;gap:0 48px;list-style:none;margin:0;padding:0}
.ev-list li{position:relative;padding:15px 0 15px 28px;border-bottom:1px solid var(--hair);font-size:17.5px;line-height:1.4}
.ev-list li:before{content:"";position:absolute;left:2px;top:25px;width:8px;height:8px;border-radius:50%;background:var(--gold)}
.ev-intent{margin-top:clamp(34px,4vw,54px)}
.ev-intent p{font:400 clamp(23px,2.9vw,36px)/1.25 var(--serif);max-width:26em;margin:0}
.ev-tks{display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,3vw,32px);align-items:stretch}
.ev-tk{position:relative;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--hair);
  border-radius:28px;padding:clamp(26px,3.2vw,42px);min-width:0}
.ev-tk.is-pick{border:2px solid rgba(var(--gold-rgb),.75)}
.ev-tk-flag{position:absolute;top:-14px;left:clamp(26px,3.2vw,42px);background:var(--gold);color:#1D1A12;
  font:500 11.7px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;padding:8px 16px;border-radius:999px}
.ev-tk h3{font-size:clamp(24px,2.6vw,32px);margin:0 0 6px}
.ev-tk-price{font:400 clamp(38px,4.6vw,56px)/1 var(--serif);margin:18px 0 22px}
.ev-tk-price small{font:400 15px var(--sans);color:var(--t-mute);margin-left:9px}
.ev-tk-inc{list-style:none;margin:0 0 22px;padding:0;flex:1}
.ev-tk-inc li{position:relative;padding:11px 0 11px 30px;border-top:1px solid var(--hair);font-size:16.5px}
.ev-tk-inc li:before{content:"";position:absolute;left:3px;top:18px;width:10px;height:6px;
  border-left:2px solid var(--gold);border-bottom:2px solid var(--gold);transform:rotate(-45deg)}
.ev-tk .btn{width:100%;margin-top:auto}
@media (max-width:980px){
  .ev-trio{grid-template-columns:1fr}
  .ev-trio>div+div{border-left:0;border-top:1px solid var(--hair)}
  .ev-grid,.ev-grid.four{grid-template-columns:1fr 1fr}
  .ev-tks{grid-template-columns:1fr}
}
@media (max-width:560px){
  .ev-grid,.ev-grid.four{grid-template-columns:1fr}
  .ev-list{grid-template-columns:1fr}
  .ev-steps li{grid-template-columns:40px 1fr;gap:4px 12px}
}



/* Keep carousel indicators as slim bars and card footers aligned. */
.car{max-width:100%;box-sizing:border-box;overscroll-behavior-x:contain}
.car-i{min-width:0}
.car-i .ph{flex-shrink:0;width:100%}
.car-i .rv-img{clip-path:none}
.car-i .foot{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;min-height:64px;gap:12px}
.car-i .foot .price-note{font-family:var(--sans);font-size:13px;line-height:1.5;color:var(--t-mute);overflow-wrap:anywhere}
.car-i .foot .lnk{white-space:nowrap;font-size:10.8px}
.car-dots button,.event-luxury .car-dots button{position:relative;width:22px!important;height:24px!important;min-height:24px!important;min-width:0;padding:0!important;border:0;box-sizing:border-box;background:transparent!important;box-shadow:none;border-radius:0;flex:none}
.car-dots button::after{content:"";position:absolute;left:0;right:0;top:11px;height:2px;background:currentColor;opacity:.3;transition:opacity .25s,background-color .25s}
.car-dots button[aria-current="true"]::after{background:var(--gold);opacity:1}
.car-dots button:focus-visible{outline:1px solid var(--gold);outline-offset:3px}
@media(max-width:620px){.car-i .foot{grid-template-columns:1fr;gap:10px;align-content:start}.car-i .foot .lnk{justify-self:start}}

/* Homepage: keep the journey cards, omit their lower information strip. */
body[data-page="home"] .home-journeys .car-i .foot,
body[data-page="home"] .home-journeys .car-dots{display:none!important}
body[data-page="home"] .home-journeys{padding-bottom:clamp(28px,4vw,52px)}
/* Present the public site at the visual scale of 90% browser zoom. */
@supports (zoom: .9) { html { zoom: .9; } }

/* Sanctuary gallery: perspective scroll, followed by the complete collection. */
.journal-feature>.ph{aspect-ratio:auto!important;min-height:420px;background:transparent}
.journal-feature>.ph img{position:relative!important;display:block;width:100%;height:auto!important;max-height:650px;object-fit:contain!important}
.gallery-intro{text-align:center;padding:150px 0 35px}.gallery-intro h1{font-size:clamp(44px,6vw,84px);line-height:1.08;margin:20px 0}.gallery-intro p{max-width:650px;margin:0 auto}.gallery-intro .btns{justify-content:center;margin-top:28px}
.gallery-reels{padding:25px clamp(12px,3vw,50px) 65px}.gallery-motion-toggle{display:flex;margin:0 auto 22px}.gallery-reel-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;height:clamp(430px,65vw,800px);overflow:hidden}.gallery-reel-window{overflow:hidden;min-width:0}.gallery-reel-track{animation:gallery-reel-up 160s linear infinite;will-change:transform}.gallery-reel-window:nth-child(2) .gallery-reel-track{animation-direction:reverse;animation-duration:180s}.gallery-reel-window:nth-child(3) .gallery-reel-track{animation-duration:200s}.gallery-reel-group{display:flex;flex-direction:column;gap:12px;padding-bottom:12px}.gallery-reels button[data-act]{display:block;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in;flex:none}.gallery-reels .ph{aspect-ratio:16/9;overflow:hidden;border-radius:6px}.gallery-reels.is-paused .gallery-reel-track,.gallery-reel-window:focus-within .gallery-reel-track{animation-play-state:paused}@keyframes gallery-reel-up{from{transform:translateY(0)}to{transform:translateY(-50%)}}
@media(max-width:700px){.journal-feature>.ph{min-height:0}.gallery-intro{padding-top:120px}.gallery-reel-grid{gap:7px;height:520px}.gallery-reel-group{gap:7px;padding-bottom:7px}.gallery-reels .ph{aspect-ratio:3/4}}
@media(prefers-reduced-motion:reduce){.gallery-reel-track{animation:none;transform:none;will-change:auto}.gallery-reel-grid{height:auto;max-height:650px;overflow:auto}.gallery-reel-window{overflow:visible}.gallery-reel-group[aria-hidden]{display:none}.gallery-motion-toggle{display:none}}

/* Retain the reference perspective while the independent film reels run. */
.gallery-reels{position:relative;height:350vh;padding:0;perspective:1000px;perspective-origin:center top}.gallery-reel-sticky{position:sticky;top:0;height:100svh;padding:65px clamp(12px,3vw,50px) 20px;overflow:hidden;perspective:1000px;perspective-origin:center top}.gallery-reel-grid{height:calc(100svh - 145px);min-height:320px;transform-origin:50% 0;transform-style:preserve-3d;will-change:transform}.gallery-reel-window{transform:translateY(var(--reel-shift,0%));will-change:transform}.gallery-reel-window:nth-child(2){margin-top:-35px}.gallery-reel-window:nth-child(3) .gallery-reel-track{animation-direction:reverse;animation-delay:-50s}
@media(max-width:700px){.gallery-reels{height:280vh}.gallery-reel-sticky{padding:70px 10px 20px}}
@media(prefers-reduced-motion:reduce){.gallery-reels{height:auto;perspective:none}.gallery-reel-sticky{position:relative;height:auto;overflow:visible}.gallery-reel-grid{height:auto;max-height:650px;min-height:0;transform:none!important;will-change:auto}.gallery-reel-window{transform:none!important;will-change:auto}.gallery-reel-window:nth-child(2){margin-top:0}}

/* Consistent spacing where a section heading leads directly into body copy. */
section h2 + p,section h2 + .lede{margin-top:24px}
section h3 + p{margin-top:16px}
section .lede + .lede{margin-top:20px}
.revs-ask>.btn svg{width:20px;height:20px;flex:none}

#upcoming-journeys{scroll-margin-top:100px}

#enquire{scroll-margin-top:100px}

#journey-events{scroll-margin-top:100px}.eq-datetime,.eq-provide{border:0;padding:0;margin:24px 0}.eq-datetime legend,.eq-provide legend{font-size:16px;margin-bottom:16px}.eq-provide .eq-check{margin:12px 0}.eq input[type=date],.eq input[type=time]{min-height:50px}.eq [data-place-widget]{margin:12px 0}.eq .err{margin-top:6px}.eq fieldset{min-width:0}

.eq-picker{position:fixed;inset:auto 0 0;margin:0 auto;width:min(100%,560px);border:0;border-radius:22px 22px 0 0;background:var(--paper);color:var(--ink);padding:32px;animation:eq-picker-rise .22s ease}.eq-picker::backdrop{background:rgba(0,0,0,.45)}.eq-picker h3{margin-bottom:24px}.eq-picker input{display:block;width:100%;padding:16px;margin-bottom:24px;font:inherit}.eq-picker-open{border:0;background:transparent;color:var(--gold-lo);font:inherit;font-size:13px;text-decoration:underline;padding:8px 0;cursor:pointer}@keyframes eq-picker-rise{from{transform:translateY(100%)}to{transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.eq-picker{animation:none}}

.product-description p+p,.product-information h2+p{margin-top:24px}.product-information h2{font-size:clamp(30px,3.6vw,48px);margin-bottom:26px}.product-specifications{margin:26px 0 0}.product-specifications>div{display:grid;grid-template-columns:minmax(100px,.7fr) 1.3fr;gap:20px;padding:18px 0;border-bottom:1px solid var(--ln)}.product-specifications dt{font-size:13px;text-transform:uppercase;letter-spacing:.08em}.product-specifications dd{margin:0;color:var(--t-mute);line-height:1.6}

.cart-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:45px;align-items:start}.cart-product{display:flex;gap:24px;align-items:start;padding:24px 0;border-bottom:1px solid rgba(16,35,29,.15)}.cart-photo{width:110px;flex:none}.cart-photo img{width:100%;height:140px;object-fit:cover;border-radius:6px}.cart-product h3{font-size:24px;margin-bottom:14px}.cart-product-info{flex:1}.cart-product input[type=number]{display:block;width:80px;padding:10px;margin:8px 0}.cart-remove{background:none;border:0;text-decoration:underline;font:inherit;font-size:13px;cursor:pointer;color:inherit;padding:8px 0}.cart-summary h2{font-size:32px;margin-bottom:26px}.cart-coupon{margin:24px 0;padding:24px 0;border-top:1px solid rgba(16,35,29,.15);border-bottom:1px solid rgba(16,35,29,.15)}.cart-coupon input{display:block;width:100%;padding:14px;margin:12px 0;text-transform:uppercase}.cart-summary>.btn{width:100%;margin-top:20px}@media(max-width:800px){.cart-layout{grid-template-columns:1fr}.cart-product{gap:14px}.cart-photo{width:80px}.cart-photo img{height:110px}.cart-product h3{font-size:21px}}

/* Smooth native navigation: keeps links, POST forms and browser history intact. */
@view-transition{navigation:auto}
::view-transition-old(root){animation:vaanya-page-out .18s ease-out both}
::view-transition-new(root){animation:vaanya-page-in .24s ease-out both}
@keyframes vaanya-page-out{to{opacity:0}}
@keyframes vaanya-page-in{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
@media(prefers-reduced-motion:reduce){
 @view-transition{navigation:none}
 html{scroll-behavior:auto}
 ::view-transition-old(root),::view-transition-new(root){animation:none!important}
}

/* Product checkout address: a form section, without browser fieldset chrome. */
.ckbilling{margin:32px 0;padding:28px 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);min-width:0}
.ckbilling h3{font:400 clamp(24px,2.5vw,30px)/1.25 var(--serif);margin:0 0 10px}
.ckbilling>.fnote{margin:0 0 24px;line-height:1.6}
.ckbilling-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.ckform .ckbilling .field{margin:0;min-width:0}
.ckform .ckbilling label{font:500 13px/1.5 var(--sans);letter-spacing:0;text-transform:none;display:block;margin-bottom:8px}
.ckform .ckbilling input{width:100%;min-width:0;min-height:48px;padding:12px 14px;border:1px solid var(--hair);border-radius:8px;background:var(--card);font:400 15px/1.5 var(--sans);box-sizing:border-box}
.ckform .ckbilling input:focus{outline:2px solid var(--gold);outline-offset:2px}
@media(max-width:600px){.ckbilling-grid{grid-template-columns:1fr;gap:18px}}

#event-booking,#tickets{scroll-margin-top:110px}

.ck-remove{border:0;background:transparent;padding:6px 0;color:var(--gold-lo);font:400 12px var(--sans);text-decoration:underline;cursor:pointer;margin-left:12px}.citem .ck-remove{margin:8px 0 0}.drawer .citems{overflow-y:auto;min-height:0}.drawer .citem .qty{margin-top:10px}

/* Cart item layout works with or without a product thumbnail. */
.drawer .citem{grid-template-columns:65px minmax(0,1fr);align-items:start}
.drawer .citem-booking{grid-template-columns:minmax(0,1fr)}
.drawer .citem>div{min-width:0}
.drawer .citem b{display:block;white-space:normal;word-break:normal;overflow-wrap:break-word;line-height:1.55}
.drawer .citem p{margin:6px 0;line-height:1.6;word-break:normal}
.ckqty{flex-wrap:wrap}
.ckqty .ck-remove{width:auto;min-width:64px;height:auto;min-height:32px;flex:0 0 auto;border:0;border-radius:0;padding:6px 8px;font:400 12px/1.4 var(--sans);white-space:nowrap;text-decoration:underline;color:var(--gold-lo);margin-left:4px}
/* A calmer, clearer cart for bookings and physical products. */
.cart-heading{padding:145px 0 38px;background:var(--paper)}
.cart-heading nav{display:flex;align-items:center;gap:16px;font-size:11px;letter-spacing:.08em;color:var(--t-mute);margin-bottom:25px}
.cart-heading nav b{color:var(--ink);font-weight:500}
.cart-heading h1{font-size:clamp(38px,5vw,62px);line-height:1.1;margin-bottom:16px}
.cart-heading p{color:var(--t-mute);font-size:15px;max-width:48ch}
.cart-page{padding:10px 0 90px;background:var(--paper)}
.cart-layout{grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr);gap:40px}
.cart-items-panel{background:var(--card);border:1px solid var(--hair);border-radius:18px;padding:0 28px}
.cart-table-head{display:grid;grid-template-columns:minmax(0,1fr) 118px 110px;gap:20px;padding:24px 0 20px;border-bottom:1px solid var(--hair);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--t-mute)}
.cart-table-head span:last-child{text-align:right}
.cart-product{display:grid;grid-template-columns:minmax(0,1fr) 118px 110px;gap:20px;padding:30px 0;align-items:start;border-color:var(--hair)}
.cart-product-main{display:flex;gap:20px;min-width:0}
.cart-product .cart-photo{width:95px;flex:none;display:block}
.cart-product .cart-photo img{height:120px;border-radius:10px}
.cart-product-info{min-width:0}
.cart-kind{display:block;color:var(--gold-lo);font-size:10px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:9px}
.cart-product h3{font:400 24px/1.3 var(--serif);margin:0 0 10px;overflow-wrap:break-word}
.cart-product h3 a{text-decoration:none}
.cart-product-info p{font-size:12px;line-height:1.7;color:var(--t-mute);margin:3px 0}
.cart-product .cart-unit{margin-top:10px}
.cart-product .cart-remove{display:block;margin:14px 0 0;padding:8px 0;min-height:34px;white-space:nowrap;color:var(--t-mute);font-size:12px}
.cart-quantity label{display:block;font-size:11px;color:var(--t-mute);margin:0 0 8px}
.cart-quantity-control{display:flex;align-items:center;max-width:118px;border:1px solid var(--hair);border-radius:30px;height:42px;overflow:hidden}
.cart-quantity-control button{border:0;background:none;color:var(--ink);width:34px;min-width:30px;height:40px;cursor:pointer;font-size:18px}
.cart-product .cart-quantity input[type=number]{appearance:textfield;-moz-appearance:textfield;min-width:0;width:38px;border:0;background:transparent;padding:5px 0;margin:0;text-align:center;font:400 13px var(--sans);color:var(--ink)}
.cart-quantity input::-webkit-inner-spin-button,.cart-quantity input::-webkit-outer-spin-button{appearance:none;margin:0}
.cart-line-total{text-align:right;font-size:14px;font-weight:500;padding-top:26px;white-space:nowrap}
.cart-bottom-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;padding:24px 0}
.cart-bottom-actions .lnk{font-size:11px}.cart-bottom-actions .btn{padding:12px 18px}
.cart-summary{padding:30px;border:1px solid var(--hair);border-radius:18px;position:sticky;top:110px;box-shadow:0 15px 40px rgba(20,40,30,.035)}
.cart-summary .kick{font-size:13px;margin-bottom:12px}
.cart-summary h2{font:400 30px/1.2 var(--serif);margin:0 0 24px}
.cart-summary .ckrow{gap:16px;font-size:13px}
.cart-summary .ckrow b{font-weight:500;white-space:nowrap}
.cart-summary .ckrow.total{margin-top:20px;padding-top:20px;font-size:23px;border-top:1px solid var(--hair)}
.cart-coupon{margin:20px 0;padding:20px 0;border-color:var(--hair)}
.cart-coupon label{font-size:12px}.cart-coupon-entry{display:flex;align-items:center;gap:8px;margin-top:10px}
.cart-coupon-entry input{min-width:0;flex:1;margin:0;border:1px solid var(--hair);border-radius:7px;font:400 13px var(--sans);padding:12px}
.cart-coupon-entry .btn{flex:none;padding:14px 18px;font-size:11px}
.cart-coupon p{font-size:12px;line-height:1.6;margin-top:12px}
.cart-checkout-note{font-size:11px;line-height:1.8;color:var(--t-mute);margin:16px 0 22px}
.cart-reassurance{border-top:1px solid var(--hair);padding-top:20px;display:flex;flex-direction:column;gap:9px;font-size:11px;color:var(--t-mute)}
.cart-reassurance a{color:var(--ink);text-underline-offset:4px}
.cart-empty{padding:55px 25px;text-align:center;border:1px solid var(--hair);border-radius:18px;background:var(--card)}
.cart-empty h2{margin:15px 0}.cart-empty p{max-width:44ch;margin:0 auto 26px;color:var(--t-mute)}.cart-empty .btns{justify-content:center}
.footer-signup{margin:28px 0 24px;max-width:360px}.footer-signup h4{margin:0 0 8px}.footer-signup p{font-size:12px!important;line-height:1.7;margin:0 0 14px!important}
.footer-signup form{display:flex;align-items:start;position:relative;background:transparent;gap:0;flex-wrap:wrap}
.footer-signup .field{flex:1;min-width:130px;margin:0!important}.footer-signup input[type=email]{border:0;background:#fff;color:#182820;border-radius:0;padding:13px 12px;height:44px;width:100%;font:400 12px var(--sans)}
.footer-signup button{height:44px;border:0;border-radius:0;background:var(--gold);color:#14251e;padding:0 16px;font:500 11px var(--sans);cursor:pointer}
.footer-signup .trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.footer-signup small{display:block;font-size:10px;line-height:1.6;margin-top:11px;opacity:.7}
.footer-signup .err{font-size:10px}.footer-signup [data-submit-status]{flex-basis:100%}
.footer-payments{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 0;border-top:1px solid rgba(255,255,255,.15)}
.footer-payments>div>span{font-size:12px;letter-spacing:.02em}.footer-payments p{font-size:11px!important;margin:6px 0 0!important;opacity:.65}
.payment-badges{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.payment-badges img{display:block;width:60px;height:38px;border-radius:4px}
.ziina-badge{display:inline-flex;align-items:center;justify-content:center;min-width:70px;height:38px;border-radius:4px;background:#121212;color:#fff;font:600 18px var(--sans);letter-spacing:-.6px;border:1px solid #ffffff30}
@media(max-width:1100px){.cart-layout{grid-template-columns:minmax(0,1.3fr) minmax(280px,1fr);gap:24px}.cart-items-panel{padding:0 20px}.cart-product,.cart-table-head{grid-template-columns:minmax(0,1fr) 100px;gap:15px}.cart-table-head span:nth-child(2){display:none}.cart-line-total{grid-column:2;padding-top:0}.cart-product-main{grid-row:span 2}.cart-product .cart-photo{width:70px}.cart-product .cart-photo img{height:95px}.cart-product h3{font-size:21px}}
@media(max-width:800px){.cart-layout{grid-template-columns:1fr}.cart-summary{position:static}.cart-heading{padding-top:120px}.cart-heading nav{font-size:10px;gap:10px}.cart-heading p{font-size:13px}.cart-items-panel{padding:0 18px}.footer-payments{align-items:flex-start;flex-direction:column}}
@media(max-width:420px){.cart-product-main{gap:12px}.cart-product .cart-photo{width:56px}.cart-product .cart-photo img{height:78px}.cart-product,.cart-table-head{grid-template-columns:minmax(0,1fr) 90px}.cart-product h3{font-size:19px}.cart-quantity-control{max-width:90px}.cart-quantity-control button{min-width:26px;width:26px}.cart-line-total{font-size:12px}.cart-summary{padding:24px}.cart-bottom-actions{gap:14px}.cart-bottom-actions .btn{width:100%}}

.footer-payments .footer-signup{margin:0;max-width:420px;flex:1}.footer-payments .footer-signup h4{font-size:15px}.footer-payment-options{flex:0 1 auto}.footer-payment-options .payment-badges{margin-top:16px}.footer-payments .footer-signup form{flex-wrap:nowrap}.footer-payments .footer-signup .field{min-width:0}@media(max-width:800px){.footer-payments .footer-signup{width:100%}}

/* Separate removal from the quantity pill in the order drawer. */
.drawer .citem .qty{display:flex;width:max-content;max-width:100%;margin-bottom:0}
.drawer .citem .ck-remove{display:block;width:max-content;min-width:60px;margin:14px 0 0;padding:8px 0;min-height:36px;text-align:left;white-space:nowrap}

/* Country selection and booking availability. */
.phone-field-controls{display:grid;grid-template-columns:minmax(140px,42%) minmax(0,1fr);gap:12px;align-items:start}
.phone-field-controls select,.phone-field-controls input{width:100%;min-width:0;font:inherit}
.phone-field-controls select{padding:14px 8px;border:0;border-bottom:1px solid var(--line,#ddd);background:transparent;color:inherit;border-radius:0;min-height:48px}
.checkout-coupon{margin-top:24px;padding-top:20px;border-top:1px solid #e4dfd5}
.checkout-coupon .field{margin-bottom:16px}.checkout-coupon button{width:auto}
.ref-ticket-availability{font:13px/1.6 Poppins,Arial,sans-serif!important;color:inherit;margin:0 0 14px!important}
@media(max-width:440px){.phone-field-controls{grid-template-columns:1fr;gap:8px}}
