/* ============================================================================
   SABRR &mdash; Awakening Inner Peace
   Design system + component library
   Palette derived from sabrr.org (maroon #7A1315 / cream #F4E4CC) and the
   Prana Wellness Retreats identity (forest #043939 / gold #C6A15B).
   ========================================================================= */

/* --- 1. Tokens ----------------------------------------------------------- */
:root {
  /* brand */
  --maroon:        #7A1315;
  --maroon-deep:   #5E0E11;
  --maroon-lift:   #A32226;
  --maroon-glow:   #B8352F;
  --forest:        #075143;
  --forest-deep:   #04322A;
  --forest-lift:   #0F6B57;
  --gold:          #D2A85C;
  --gold-soft:     #EBCF95;
  --peach:         #F8D2A2;
  --apricot:       #E0714A;   /* warm fill; always takes dark text */
  --apricot-ink:   #BD4920;   /* the same warmth when it must be text */

  /* surfaces &mdash; two light grounds so consecutive pale sections differ */
  --paper:         #FBF4EA;
  --paper-warm:    #F4E6D2;
  --paper-2:       #F0E1CC;
  --paper-3:       #E6D6BE;
  --ink:           #241413;
  --ink-2:         #4A3330;
  --ink-3:         #6A524D;

  /* semantic (light ground, default) */
  --bg:            var(--paper);
  --fg:            var(--ink);
  --fg-muted:      var(--ink-3);
  --accent:        var(--maroon);
  --on-accent:     var(--paper);
  --rule:          color-mix(in oklab, var(--ink) 14%, transparent);
  --card:          #FFFCF7;
  /* the deep band behind the footer and the mobile drawer */
  --deep-band:     var(--maroon-deep);
  /* text that has to read on a light surface (the cream button) */
  --on-light:      var(--maroon);
  /* headings can carry their own colour; on a dark band they fall
     back to the section's foreground */
  --heading:       var(--fg);
  --shadow-color:  28 12 10;

  /* type */
  --font-display: "Cormorant Garamond", "Iowan Old Style", Georgia, serif;
  --font-sans:    "Hanken Grotesk", "Avenir Next", "Segoe UI", system-ui, sans-serif;
  --tracking-eyebrow: .34em;

  /* fluid scale: 360px to 1600px */
  /* The ceilings came down about a tenth in September 2026. On a 1366x768
     laptop - which is what most people actually have - body text was landing
     at 18.4px and headings at 56px, so a single heading took seven per cent of
     the screen and the whole site read as though it were zoomed in. The floors
     are untouched: small phones were never the complaint, and shrinking those
     would only make it harder to read. */
  --step--1: clamp(.9rem, .86rem + .18vw, .97rem);
  --step-0:  clamp(1rem, .96rem + .18vw, 1.06rem);
  --step-1:  clamp(1.1rem, 1.05rem + .26vw, 1.22rem);
  --step-2:  clamp(1.32rem, 1.2rem + .6vw, 1.65rem);
  --step-3:  clamp(1.6rem, 1.36rem + 1.15vw, 2.3rem);
  --step-4:  clamp(1.95rem, 1.55rem + 1.85vw, 3.1rem);
  --step-5:  clamp(2.8rem, 2rem + 4.3vw, 6.2rem);

  /* rhythm */
  --gutter: clamp(1.25rem, 4vw, 3.5rem);
  --measure: 62ch;
  --section-y: clamp(2.25rem, 3.4vw, 4.25rem);
  --radius: 2px;
  --radius-lg: 6px;

  /* motion */
  --ease-out: cubic-bezier(.16, 1, .3, 1);
  --ease-in-out: cubic-bezier(.76, 0, .24, 1);
  --dur-fast: .28s;
  --dur: .6s;
  --dur-slow: 1.1s;

  --nav-h: 76px;
  --bar-h: 34px;
}

/* Dark-toned sections opt in via a class rather than a media query:
   this is intentionally a warm-light brand, not a theme-switching product. */
.on-dark {
  --heading: var(--fg);
  --bg: var(--forest-deep);
  --fg: var(--paper);
  --fg-muted: color-mix(in oklab, var(--paper) 78%, transparent);
  --accent: var(--gold);
  --eyebrow-fg: var(--gold);
  --on-accent: var(--forest-deep);
  --rule: color-mix(in oklab, var(--paper) 18%, transparent);
  --card: color-mix(in oklab, var(--paper) 6%, transparent);
  --shadow-color: 0 0 0;
}
.tone-warm {
  --bg: var(--paper-warm);
  --rule: color-mix(in oklab, var(--ink) 17%, transparent);
  --card: #FCF7EE;
}

.on-maroon {
  --heading: var(--fg);
  --bg: var(--maroon-deep);
  --fg: var(--paper);
  --fg-muted: color-mix(in oklab, var(--paper) 80%, transparent);
  --accent: var(--peach);
  --eyebrow-fg: var(--peach);
  --on-accent: var(--maroon-deep);
  --rule: color-mix(in oklab, var(--paper) 20%, transparent);
  --card: color-mix(in oklab, var(--paper) 7%, transparent);
  --shadow-color: 0 0 0;
}

/* --- 2. Reset ------------------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body {
  margin: 0;
  /* follow the ground tokens, so a palette can move the whole page */
  background: var(--bg);
  color: var(--fg);
  font-family: var(--font-sans);
  font-size: var(--step-0);
  font-weight: 400;
  line-height: 1.68;
  letter-spacing: .004em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  overflow-x: clip;
}
body.is-locked { overflow: hidden; }
img, svg, video { display: block; max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; color: inherit; }
a { color: inherit; }

/* A telephone number and an email address are each one thing, not a sentence.
   Broken across two lines — and these are underlined, so the rule breaks with
   them — they read as a typo rather than as something to ring or write to.
   +91 84484 01022 was splitting after "84484" in the safety note on the
   offerings page, in the FAQ, and in the terms. */
a[href^="tel:"], a[href^="mailto:"] { white-space: nowrap; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 2px; }
::selection { background: var(--maroon); color: var(--paper); }
.visually-hidden {
  position: absolute; width: 1px; height: 1px; margin: -1px;
  padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
/* Hidden by being nowhere, not by being moved. The old version parked itself
   off-screen with a transform and came back on :focus - and :focus fires for a
   tap and for anything that calls .focus(), not just for the Tab key, so on a
   phone the bar turned up over the header for people who never asked for it.
   Keyboard users still get it: :focus-visible is what a keyboard produces. */
.skip-link {
  /* Every hiding mechanism at once, on purpose. This turned up on a real
     phone over the header, and the old version leaned on a single transform -
     one browser that ignores it, or one rule that resets it, and the bar is
     simply on the page. A 1px box that also clips, in both the old and the new
     syntax, has nothing left to fail: a browser that drops clip-path still has
     clip, and one that drops both still has a 1px box with overflow hidden. */
  position: absolute; width: 1px; height: 1px;
  margin: -1px; padding: 0; border: 0; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%);
  white-space: nowrap;
  background: var(--accent); color: var(--on-accent);
  text-decoration: none; font-size: var(--step--1);
  letter-spacing: .06em; text-transform: uppercase;
}
.skip-link:focus-visible {
  position: fixed; top: 8px; left: 8px; z-index: 999;
  width: auto; height: auto; margin: 0; overflow: visible;
  clip: auto; clip-path: none; padding: .7rem 1.1rem;
}

/* --- 3. Typography ------------------------------------------------------- */
h1, h2, h3, h4 {
  font-family: var(--font-display);
  color: var(--heading);
  font-weight: 600;
  line-height: 1.04;
  letter-spacing: -.012em;
  margin: 0;
  text-wrap: balance;
}
h1 { font-size: var(--step-5); }
h2 { font-size: var(--step-4); }
h3 { font-size: var(--step-2); line-height: 1.14; }
h4 { font-size: var(--step-1); line-height: 1.2; }
p { margin: 0 0 1.15em; max-width: var(--measure); text-wrap: pretty; }
p:last-child { margin-bottom: 0; }

.display  { font-family: var(--font-display); font-weight: 500; }
.italic   { font-style: italic; }
.accent   { color: var(--accent); }
.lead     { font-size: var(--step-1); line-height: 1.55; font-weight: 400; color: var(--fg-muted); }
.small    { font-size: var(--step--1); }
.muted    { color: var(--fg-muted); }

.eyebrow {
  display: inline-flex; align-items: center; gap: .8em;
  font-size: clamp(.8rem, .76rem + .14vw, .88rem);
  font-weight: 500;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--eyebrow-fg, var(--accent));
  margin: 0 0 1.4rem;
}
.eyebrow::before {
  content: ""; width: clamp(24px, 4vw, 52px); height: 1px;
  background: currentColor; opacity: .55; flex: none;
}
.eyebrow.is-centred { justify-content: center; }
.eyebrow.is-centred::after {
  content: ""; width: clamp(24px, 4vw, 52px); height: 1px;
  background: currentColor; opacity: .55; flex: none;
}
.eyebrow.no-rule::before { display: none; }

/* --- 4. Paper grain ------------------------------------------------------ */
.grain::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 1;
  opacity: .3; mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.42'/%3E%3C/svg%3E");
}
.on-dark.grain::after, .on-maroon.grain::after { mix-blend-mode: overlay; opacity: .22; }

/* --- 5. Layout ----------------------------------------------------------- */
.wrap { width: min(100% - (var(--gutter) * 2), 1320px); margin-inline: auto; }
.wrap-narrow { width: min(100% - (var(--gutter) * 2), 860px); margin-inline: auto; }
.wrap-wide { width: min(100% - (var(--gutter) * 2), 1560px); margin-inline: auto; }

/* Nothing may make the page draggable sideways. `clip` and not `hidden`:
   hidden on the root turns the whole document into a scroll container and
   every position: sticky on the site stops sticking. */
html { overflow-x: clip; }

section { position: relative; }
.section {
  position: relative;
  padding-block: var(--section-y);
  background: var(--bg);
  color: var(--fg);
  isolation: isolate;
}
.section > .wrap, .section > .wrap-narrow, .section > .wrap-wide { position: relative; z-index: 2; }
.section-tight { padding-block: clamp(2.5rem, 4vw, 4.5rem); }
/* two light sections in a row shouldn't stack their full padding */
.section--flush-top { padding-top: 0; }

.grid { display: grid; gap: clamp(1.5rem, 3vw, 3rem); }
.grid-2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); }

/* An odd number of dates left the last card alone in the left column with the
   whole right half empty beside it. It sits in the middle of the row instead,
   so what is left over falls evenly on both sides. */
@media (min-width: 46rem) {
  [data-render="experiences"] > :last-child:nth-child(odd):not(:only-child) {
    grid-column: 1 / -1;
    width: calc(50% - (clamp(1.5rem, 3vw, 3rem) / 2));
    margin-inline: auto;
  }
}
.grid-3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); }
.grid-4 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); }

/* Four items in an auto-fit grid fit three across and leave the fourth alone
   in a row of its own. The four commitments are a square instead. */
@media (min-width: 62rem) {
  .grid:has(> .pillar) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.split { display: grid; gap: clamp(2rem, 5vw, 5rem); grid-template-columns: 1fr; align-items: center; }
@media (min-width: 62rem) {
  .split { grid-template-columns: 1fr 1fr; }
  .split-lead { grid-template-columns: 1.05fr .95fr; }
  .split-trail { grid-template-columns: .95fr 1.05fr; }
  .split-sticky { align-items: start; }
  .split-sticky > .is-sticky { position: sticky; top: calc(var(--nav-h) + 3rem); }
}
.stack > * + * { margin-top: var(--stack, 1.5rem); }
.section-head { max-width: 46rem; margin-bottom: clamp(2rem, 3.2vw, 3rem); }
.section-head.is-centred { margin-inline: auto; text-align: center; }
.section-head.is-centred p { margin-inline: auto; }

hr.rule { border: 0; border-top: 1px solid var(--rule); margin: 0; }

/* --- 6. Buttons ---------------------------------------------------------- */
.btn {
  /* no --btn-* declared here on purpose: see the fallbacks below */
  position: relative;
  display: inline-flex; align-items: center; justify-content: center; gap: .7em;
  padding: 1.05em 2.1em;
  border: 1px solid transparent;
  border-radius: 999px;
  background: var(--btn-bg, var(--maroon));
  color: var(--btn-fg, var(--on-accent));
  font-size: var(--step--1);
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  overflow: hidden;
  isolation: isolate;
  transition: color var(--dur-fast) var(--ease-out),
              border-color var(--dur-fast) var(--ease-out),
              transform .45s var(--ease-out);
}
/* will-change promotes the element to its own layer and keeps it there. On
   every button that meant a dozen permanent layers per page, none of them
   moving. It is only worth paying for while the pointer is actually on one. */
.btn:hover, .btn:focus-visible { will-change: transform; }
.btn > * { position: relative; z-index: 2; }
.btn::before {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background: var(--btn-hover, var(--maroon-deep));
  transform: translateY(101%);
  transition: transform .5s var(--ease-out);
}
.btn:hover::before, .btn:focus-visible::before { transform: translateY(0); }
.btn:active { transform: scale(.975); }
.btn[disabled], .btn[aria-disabled="true"] { opacity: .45; pointer-events: none; }

.btn-ghost {
  --btn-bg: transparent;
  --btn-fg: var(--fg);
  --btn-hover: var(--fg);
  border-color: color-mix(in oklab, currentColor 38%, transparent);
}
.btn-ghost:hover, .btn-ghost:focus-visible { color: var(--bg); border-color: var(--fg); }

.btn-gold { --btn-bg: var(--gold); --btn-fg: #241a06; --btn-hover: var(--gold-soft); }
.btn-cream { --btn-bg: var(--paper); --btn-fg: var(--on-light); --btn-hover: var(--peach); }
.btn-sm { padding: .8em 1.5em; font-size: 0.82rem; }
.btn-block { display: flex; width: 100%; }

/* text link with a wiping underline */
.link {
  position: relative;
  display: inline-flex; align-items: center; gap: .5em;
  text-decoration: none;
  font-size: var(--step--1);
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 500;
  padding-bottom: .45em;
  min-height: 28px;
  color: inherit;
}
.link::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px;
  background: currentColor; transform-origin: right; transform: scaleX(1);
  transition: transform .5s var(--ease-out);
}
.link:hover::after, .link:focus-visible::after {
  transform-origin: left;
  animation: link-wipe .6s var(--ease-out) forwards;
}
@keyframes link-wipe {
  0%   { transform: scaleX(1); transform-origin: right; }
  49%  { transform: scaleX(0); transform-origin: right; }
  50%  { transform: scaleX(0); transform-origin: left; }
  100% { transform: scaleX(1); transform-origin: left; }
}
.link .arrow { transition: transform .4s var(--ease-out); }
.link:hover .arrow { transform: translateX(4px); }

/* --- 7. Announcement bar + marquees -------------------------------------- */
.announce {
  position: relative; z-index: 60;
  height: var(--bar-h);
  display: flex; align-items: center;
  background: var(--deep-band);
  color: var(--peach);
  font-size: .72rem;
  letter-spacing: .15em;
  text-transform: uppercase;
  overflow: hidden;
}
.announce a { text-decoration: none; display: inline-flex; align-items: center; min-height: var(--bar-h); }
.marquee-track {
  display: flex; align-items: center; gap: 2.5rem;
  padding-right: 2.5rem; width: max-content;
  animation: marquee 38s linear infinite;
  animation-play-state: paused;      /* JS starts it when it scrolls into view */
}
[data-live="true"] .marquee-track { animation-play-state: running; }
.announce:hover .marquee-track { animation-play-state: paused; }
.marquee-track > span { display: inline-flex; align-items: center; gap: 2.5rem; white-space: nowrap; }
.marquee-track .dot { width: 4px; height: 4px; border-radius: 50%; background: var(--gold); flex: none; }
@keyframes marquee { to { transform: translate3d(-50%, 0, 0); } }

.marquee-xl {
  overflow: hidden; border-block: 1px solid var(--rule);
  padding-block: clamp(1rem, 2vw, 1.8rem);
  background: var(--bg); color: var(--fg);
}
.marquee-xl .marquee-track { animation-duration: 46s; gap: clamp(2rem, 5vw, 5rem); }
.marquee-xl .marquee-track > span { gap: clamp(2rem, 5vw, 5rem); }
.marquee-xl .word {
  font-family: var(--font-display); font-size: var(--step-2); font-weight: 500;
  font-style: italic; white-space: nowrap; opacity: .85;
}
.marquee-xl .star { color: var(--accent); font-size: var(--step-2); }

/* --- 8. Navigation ------------------------------------------------------- */
.nav {
  position: sticky; top: 0; z-index: 50;
  height: var(--nav-h);
  display: flex; align-items: center;
  background: color-mix(in oklab, var(--bg) 97%, transparent);
  border-bottom: 1px solid transparent;
  transition: background .4s var(--ease-out), border-color .4s var(--ease-out),
              height .4s var(--ease-out), transform .5s var(--ease-out);
}
.nav.is-stuck { border-bottom-color: var(--rule); height: 64px; }
.nav.is-hidden { transform: translateY(-100%); }
.nav > .wrap-wide { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; }

.brand { display: inline-flex; align-items: center; gap: .75rem; text-decoration: none; flex: none; }
.brand-mark {
  display: block;
  width: 116px; height: 62px;
  background-color: var(--accent);
  -webkit-mask: url("data:image/webp;base64,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") no-repeat center / contain;
  mask: url("data:image/webp;base64,UklGRsAnAABXRUJQVlA4WAoAAAAQAAAAsAEA4wAAQUxQSLImAAAB8IZtm2sr0badV9WEJXkRFUyIoiiKiiAmGsyxgzm0ti1m26ydTK3YtmLqZNYO5tBmSSqSFbNgaJQgYECBBQtWYC2YVdf5Y4xRY8w5x/KeT3rfiJgA/PA22x/+75fm1NevrV8z5z+XDhFAUGoB0HXkXS9+tLa+fs3KmU9durtBlVwEfa5fzNT/vbBTiQTY96VGpl1y45YQqXaJyBl1VKZX5QdDIJkZ9HjYMUNVfnsqjFSzROQmVWatXDYENhODvu9SNQuSqrwaRqpWBr9UVZZQ+W7BSCqRmmn0LKEqD4epTonUrlBliZUnwaYoYAw9S+w5F7YaZXA6HcOL9cuXL1/eFEbP2bBBFp+qMrT1+8+nT3nz69WkahLpuZtI1amAF6iMV+X8sft0FsQW+p40tUiNI11Le5skpo93jFVl8wtHdkFiof8Fc0lNoONZkCpTAfM94z3rTqxB6iEz6TWGnlvaOJHhdIyq5/SdkFpO/IYaR8/bIFWlAr5yjFVdtw8EWba7jz6GRe5gImIOoGfU8YXOkHQQ7PEVfQyVt0KqSBbzHWM38kYYZCtS8zZ9hI7bWQBmTypJqq7qI4JsBUfRx1B5VhVJMN4ztsj+IsjcYhR9hI69LExfepIs8g5YZG/wiWqEysGmenQa432zsSipxTtUkixSakBHkkWOEkEpLe6jRuhoTJXI9KTG+GZYlNjiQjqSdGsw35OkY3+DEhucSY3QzUV1WPCNZ9Q5WJRcZCgdSRYbHEk6bmNRcpFzmXiIqQ6NUUY9e1qUo92CjsnK0RZlKHjYx/hWSBVIwDj+zKI87eZ0CcrzBWVpsMRFqL+pCt3gGdU5KFs7hJrwKMoEtgM1pgip+gioEaW1ZQM5h7HubQjKVc6LIU+qAh3PWL1BUEaY7En6BliUDxo0oitQ/V0co0Q5waDB07GdRRnLUYzvIdWeHoz7k6CsbS0997Uo79YY/T2qvedrDNuXGeR4Posyl9vjFld95jKq76HcBVMh5dYnhmqrPT6Gh0m5waCAsm+I4fZVnq0Yb9EWTow7u8ozMka/RJv487iHqjzjYvjPtmHLuHerPC/H/bxt6By3ssozK27btgHFmLoqz1dxtW1Ec8yGKs/yuEIbsTamtcrzXYyTNmJdzIYqz9cxxbaiGNNQ5ZkZ40wb4WK+r/K8HMOObUN3xi6r8twRV9s27BL3apXnsLjd2obz4+6s8mwTd1bbMDXu4CpPIe6VtqEhbssqD9bErGkLpAdjPaq9r8SwUxuA82L046rPj+NOaQsWaMyVVZ8OMfpJ/klXxm9e9cHyCNlZcu86jehaVH+vjPtr7qElbpxUfaRbjDpIvskoxtdWf4AvlCT1dzmHrzSiH6MKLIcxhgWTZzKM8XtIFQhoVZLUp5Djgq99xK9AVViuiSE3tzk2mvEHSVXIWGrEr4bklaDFR3w9qsQyLob6x/y6zjP2AFMlMkY1hlvYfLIdqBG3DFVjuSiGvhU2jwSfesbuINUjNGiE7k1IDpmTGOtfRxXZDGG8XpRDhRpqxFNMFQmY5uM4xOaN4CvP2OMNqsnG0Efo2dHmi+BOZVQ/QZXZjGa8b0EhV8wIxngWTJUJmOhj6L6HzRFboGPsERb/86zp3O/Qw39yzM+OOuzQfbbsU9OurTFY72Po5sLmhsUax6ifhP9Z9jr4hglLmpi68avP7r9yt95tBmwvagz9G7A5IZjhGHXrYf5nIIDd445PW1lCJVuXPHb45m0CzHFM1EkwuSAYq4w6drP4H6AAXcZ8xnL1cy/cMv8E/9I46njYHBA5njHK/S1++IvI0UuoLGPlxikHFwDJMRjMd3HUybCVZ/egMmYcfvgbdH7Qq7ICPz+nI0RyCxZNLo46DbbSzJZ0jPqpkB96Ih1eoLIyVfnFyQJITsEU6OLoP4atLNOVjlG/DAY/8A1uoWdlz9kTkHyC7UYXR/ctbCWZDnSM+mZY/LAX2bFZlRkX679bNu/dmTPf+3jJ8rqNpSA33NY1p2C3ooujbynYyrHt6Rh1aix+2BdwLx1TKsmmd686vF9HQXhNrz1O/vuH9RFNp8oPhkEkh2B3pouj5zamUmx77xgtsoPFD3uLb5Thqlz3yKiOKKXZ8ewJa0lqWOy6MwDJH5ihdHF0PAxSEWYTOkaLrLX4YW86q2OoKtdc3R2CMux4wDP1pKZR5d9rYHIHZne6OHqOg60A05mO0SJ7WrTpNT222mXUiRdd+ps/XHf97y+/6PTRQ7bpVSgv05uegap8tg8E5dvnwgVpSCrf2BSSNzCD6eKo+g5M2dnedIw69rBok6XzsGPvev3L5o1MVlKZuHHNnCdO2K2mPEw3OiarFn9rRFDWgvYnfErVIFL57sDcgd2SLo50G7oZKSsxg1hk1LGLRZvbZdjvZ3zrWJb1H/5m25IVDB0TVflbiKD8BTUXfU2vIaTy0yGQfIHtTpdAzyNgykhkFB2j3tUYtJkCoN1uN81qJpXlq9S5F/YGJDODFY6Jjk8bEVSoYKtHSQ2JLhoKyRWY9ht9Aj1fgCkbwZn0jPp1YtF21oy6fzkr9bsbekAkG9ztmeha+sOgggU4Yik1TLl4D0iewOJrn0C6+h5GysPib1RGdQks2kIBsPWNX7OSVTn/YIhkYPswUXUOCqh0wYDp9BpAei4aAskRFDBdNYGep8KWg8WbqiSpOgMW+S9AYb+XW6isdKW7CpBU+FDjlLfDIAcF7f9G1QBS+cWOMPkBi1voE+j5PkzprKx0jHr+BQZtYNcxn5DKXFTlHTASJlsxXnkNBPkognNbqQGk8uMBMLkBg4PpEkjPA2BLZHqoY9TxOAhyXQBs9+fVVOap59EwQXhBE+6FIDdF8JN6agCpfGcLmLwAbG/nk+g5DUZKAjpGHbcTQY4L0P6QV1tYem36bubDt5x/xL4DBmzbu0uXzr22HTBg38N+d+uEJeuyoefCDkZClLH+YwhyVbD/CvoAUjmrN0xewOBD1QTS8xCYUgxhVLXOGuS2AOj164UsoUZa5z115ohu7VDCdluc8PCCdKTyJNikIYz1hEXeCkYupwaQyje6QHICFtfSJdHzgxoj2W0RUb4Ii5wWoLDP4w0sbeOU3+66CcpUdhr3FalB9HwVhYS/xvE4ixwWjFxJH0Aqn24Pkw8wsjN9Eqn8LUxmeEdVeSQM8lgA1I75SFnKjfOvG9YR5S3ofPZSqgaQ7lvYuPdifD1yWnBgPX0A6fkvQHIBMPiQmkTVxl1gM7K4cs6j7Q3y2ez2r3VUZqtKNk86pRcqU9D3cXoNoG+BjWmK4c8lpwDB4c3UAFJ5N0RyARZn0SeRnq/BSCYQAII8rh3zkVKZecP4n9Wikg1wA30A3XrYSDFOkOMGJ6tqAOl5FyB5ADHdv/OaRHqeBZNJPhf2fqyBqsy6deYptah8EfyDmkS/DAZox9jPkO+CC+g1gFTeLZAcACz+RB9Arw0jIHknAPr9dgGzVpKLrt0aeWnQc7FqAv3DANrHXZNzEIOx9BpAKh/ZBCYHYGTT71STSM/5g2DySwB0Pf71ZiozX/fUfu0gyFGD39AlkDsbGBczOu8AEdxHH0IqJ/aCVB5gcDF9AKn8cAAkr9qP/Fc9s1Yl51/cA/krsgNdgl8HQXPMNvkHGCk8Qw0hlbMHQCoPYjZ5lz6AVM7bESK5YwaOXcZStrw8qh1y2rbb4OKoxwkWxGzdFgAGnV+nhpDKhXtBpNIAi303eA0glV+Ogkie9P/dJ47KjJVcedMWyHOLZhfnVwP3xwxuGwCDXjOpIaTn2vMAqTRAcDV9COnZcn37vNjskrmOmSup753SFXlvUXQx5KayR8yZbQVg0Hc2NYRU5VN9IVJhEJFXqCGkKt/fr/K2/u1HrVSWsPnZfQsQ5L/tQh/3O6AY+WfbARhsNosaQlK56EhUvkHvOWGx+twulWN3uOrDIkv7/Z+2AARtoxnJ+GnAU0rq2rYEMNh0BjWIVPKFQRCpKMBgm3mpSBZfGW3Kr2aPcQuVylLqR6d2gaAtfdHHNEG6MdpL2hLAoOfL9BpCUrnuti3LRwBIOkAw8ANqmuiicUNN+dQe8lgdS9349HADQdtq4DTSCuART+qTbQxgUHMfVYNIKuvuHFgOIuj0m1dv6GgyAARbTqPXVNElz5y6RYcSddzs+L/+dyNLqiQXXtYTbbIcG6OAwQZHsoNpYwABLmqmhpFUFl87tGNJBMC+71Kp/JHJAhB0upvUDGLXzf/39YfvuHlHCdqk46BdT/7b80saWGJVsuGZke0haKNQr3GwfempE9AGi2C/z6kaFv/9U4d1zaww7PlWKkl6dswGEMExS6maSbIWi61rv1+xumljsciossRKts4Z0x1tuvws0goAZi86cohpewAINnuM1HTRpoV/PnpAlxTdh9+6VBmov8kKgGDrx0tT/guv2hY/AFuV+mUEZiiLRW+lLQIE+Mkies0gfkPDF9MnvPzyyy9PnLumlanvLEHsfm/mg/v01l0Egh+C9yv1shjYjt9TH0CbLejz95bMSnx6qQA5ZE6FNb7zmy0FPxhlK/o6JFqMnjNI2ixAgN1eKz+vkJJBgKH/WkVSy6+44KFDuwKCH5RXPIJCQlTQ5o+aWVbK+k4W5dr1yGfWlFXTJ/cc0hs/RAUQ/LAUYMT4FlLLQfnBMFiUdYfdf//OitKt+ejuMQM6oaoqQP8rP1WSmp2S/Or8zhBUot1yv0uffWt588YUG9eveueFcYcP7WpQpRVg4JXvrsuu4bUTOkNQ6e369Ntyhx133GnQln17b4Jq8SZDxjzx7vKNIbpx2bSx+3fC//IsdO637XYDB267aacC/n/////+/9/sJVJoX9POAJAEASQfLA7taKpMAux+68IGRr9997w+EAFQwO9GQ/LAyEblIFNpknuSe5IrRro9VqQydPmFgACfKU/OBUz29E2ocMEBzz37yIN/u+KXp5x4/OEj9zvmxNN/f88D/3782WeffvShu8bsN6h9pdmaZz+Y88hD9951w4033X3vA/96bOLs9xatXruusbmlpblx3bK3Hvn18E4ApGJszXMfvfPIg/f+/cYb/3jXPff/49FXZr37RV39usbmlpbmhnVL3nz0kmEdAUhZGDxFr0ypvAcyjNRVyEEBo/tIZeEAKktcnHdFf4hUDOo9y7Bx/F4QqRA0eJZh08sjIFIyke2LnlEl6ZWkkqTnhR+TrMuFS5SkfogKv0pLRiobbi3AVEqrlgNJvRVGKmODlgNJvR1GSiNyDD1Jes46vNaKFHb87XJ6kkol+X0eoCFCdpaKEjy4MZ2mIlX5MExl2O5vblBSg1Rb5k6bvbjJpVCeDlsJtvatDem0Ze7UGYubXArlabClOY5KUvXTLkgUDGv0TPw2D/Zk/A2VBQPU9DtwIl0I/zF0s0033Wz3C8evp8aQ9BxkKgICmM2OXqwhnIL4fr/4iJpAes6BrQAIYPv+bKEGTUN839M/oiaQnm+hUAKzK5XRv8MmAYIJ1Lg382CuxmgTcnE3BlskD/9WNY6Oh0hFxApe8iGjEyDoPJ4ugfRfwlZArOBFHzI8AYKu4+kSSLcQNjMDepL0kyAINvhLwvTKMz2ZvKfkgTwU4hAouJUaR88hpmJgELRXEmCwJ10S/RRUrBHNBDAYzmIS/RRk/5InSSUMUhpM8zHTKg8PaIK+jVz8UZAEwOCmJHqKqRjgy5B9QgC7JTWJPFAqBfgqZM8QwG5GTSIPMBlJV8bqzYLUBq0+Mr3iBAztJHnQPSsIlmgC9RlU8PTMIKeE+EZU7qTMICcx0Dci67/4GG6NDM0IRqdV3vFB1+VCpxAfBunP0E0q6JESYIUmkftJxfynBFiuSeRIyWidxrXLAvhGSS6oOHyrIQ3INaBek3RMBf07O8iPQ3Qq8mBECsgRDNQ3kG0Pxm9ApnIgSa6ouEEMH2ry7W4GvllBD5cAlqGteQSrAWzNaL8ELWQCFEmurLiZSg3Qt5BvR4S0VNAjpcCCENZWzLMhe6XCxyHsnM0lCRxsspmm5JoKk/YkucAnkB0l17YIcZJPdwVtn0sPBA3N5v4EnYdsj1VyVaXd6KmtYLL+Pt+6hLCmch4uya+C9qmY/5Tk1KCR2dyXQB5lshC0ev24wrBBqdfiI5/UgFzrnDt7pzs46KhcOjLokGz+kuS5g8kAtusX/60xlTWKJNvLKAbuJnnWNcRLPg0POjCXDgg6IJtTk+i4l0g6GMCgsj9X6kwArZqgM5FnvUI2IJ+GBe2eS/sH7ZXNzgH0vAYmXcXL5iS5o0DuSiI3kRwbGqCzcurAoK1y6aigbbJpF0LVpX1gcgZPK/VbANKTyXo5cuwPATxS8umiEEUunRIk2WChBpCej0MkTwQkebIBgKWatC7PvtYEJSq4NPcF6IJ8eiJAFyBbOSGMVN4OSI6co1QiKscycCfJK9megWeanFqqAZfk05KQSyUjFDWMVD7WDZIXqFfqo3GiSToVOWXxvSb4/0JySTowWSl5JJswVDKCnJ2KVL49ACYfdifJTSUCPKMJZI3kksVkx3jfBIt82CfVDT7gXuTS9ZrkHxBkhRU+FamcOxAmD95V6meIly2YrBflkAi6LPKMVf0GFrlUADXBeUgOFcAk55EZTCe6dKTygz6QSpNuJDlK4oA1mlSP3HBI2nk8HWM9/waLXCpgqWe841YG+VPAIs94x60Nsre70WdAKp+GqbQ7PbUVyXJeErm95AUPG7jDHvte+7fFRSpjPd/pLoI8EpEljvGOQy1yR0QWOcY7jrAopRlJlwXpeQBsJQmU1BtMQHsm66vIC8/082oggvwRwJxLx3jP7Qzyx5xJx3jPgQalNYPoM6Hn6zCVdBRJdpAkYIYmkAXJiQzVt7w8EpDc2DOh9mdTVJWxnnPEIC8GJ9T+ZIqqMtbzHWNQaiuf0GdBug2dbOVgqZKzESpDmKzn5RZJJSdtDZMPuvBv9z80fd66ViYruXgQLPJCF//l3gemfbC2lclKLh0Mi9JbHEXVLOi5jakUGUCSgyUEaNKk1cgJ//3DDz1w/78enfVNI0mNIamcuwVMHmS57u+9YFDpIWmV5Lp7e8GgPA3Ob6ZmQMetbIVgiqeuQLjckET2l3wgAjsMvW8dfRyp/Ads/rx2XDcIcjA7vnRcN4igbEWw32f0moqONaYixJDUMSZFVybrROSDk4Do7ovp40i/UmzlKUkN0GLBIhdDlKQG6IaCRZkLev2Dqmnol0Mq4neeJFK/l0QWJBd8GsGJLCbQ+YKtOP7xp3eymMTiOhRyhjcecSuLSSyuhS0zQIDzW6gpqGdUBJqV/Oa0i3+VeMH555937vlPhZyeS4DZgT6Brgmm4vaB9GQxicWPIDkzHNKNxSS6dyDlBojguBbVFEVI+cneLPkq5BPMYQz0r6Li9gXs9tQk6j8h+bIXYPtTk6j/hJQdAMGZ9EHkSajAT7Vk3FLyCXhfk8iBkgOQMxl8Ts6MACBnMIRnVATE4DW6EF1cftKbpdfnkFOyGQP1c1TaPhGM9wHKESZ/8IpPoudwUwmAwWi6ALKm7PCop1K996pJqt57T02g2pwC1gSQXSUHYLDSJdGzu80bGKxwSfTsZksimQG2O13IPuUmIMlnICJiAkVE8NeQk3LrgaDzkQewBbokOic2b2ALdEl0KrYEBYwcDMkIZktqwEVld6qS3FqQofRk4MrcOiZoej7A7EBNoquDzRuYgdQkulWw2WEGeWpmkHtDnis3fKf0XyLjpZrEfpJTA4K+ywnI2Qz170DyBnImQ937kOyU6pC5qWHga2UmO5PkMZLRCQH6DHJq06D1uYEJPoD6ACR38IoPoN4FycooycGZAe8HTC0zzI4ga8tAL5JPfYKKkhMwqHMB5Km5A4NVLoRnZCaRy0twVcDr5SUdSOrTmWG8T9KTkE+bhiEvYNvRBXjuairp2ZC9kmALdElUDjEZoYnkzBL8KODRMrvZk9xKspLtGfBdTu0ctC4/YAZRk+jZzVbQM9nA7kBNomOtzaiO5IYSDA44vawERaVfhhI2aALZR3Lp7KBvKuLfIXuHQC5gqHMoVM5/MoKcy1BXRCGbb0lyV5PZkIBB5XUwSR4v2cnVTNankUsTg57IFYz3AXTfwuYOJvkAupWwmSwgqR8h8yOSFOW9TEmihNIlxEHyqBh0WJ7AoM4F0M+G5AwM6lwA/WxIFp8x2sdkdbfG6WtlJbuQ5NulABYkkcdUmkOGsi+DpdL2CoNtTxdA/Ruk8kaEwbSnC6DeB8ng04gugmS0hIkDpJwwX0leUJrTNcnXocLYKZ1gpQboS6jIR0JGpoAdRA3hSTmwdwqYnagB5LEmK+pp2ZiejNf3Uc6yB6ODS9ONocNtBXQLGixpRK5SJisLpiJmhJyWBnI+Qz13spXxasjRaSAXMtRzF5Nufhy3tlngNY1RdjRlZNDsI4NKg+YAXQMpv+Eh+kQakdEM4ekWFbkg5Op0eM0H0LHWVsTSkJvS4VUfQM9am2ppDB172XR2X8Yqf25QvgbPeUaHSmmWBVBvECk3uSGE7GqCDE6mZ6Lqy5BKEDD001QwWO0C6NjfSNkZMPTDVDCodwF0HGAkxZo4Ou4FEyayA33cU5CyEcGTyqh+CFMCwYog/gLlLdKJwY5bJwnQZTaViarjYVCBBg9qCPeDpIBpTxdAx0thpLwMHtAQjoCkgG1PF0DHK2AkxDDZ81lAkkRwLh1Jqk6CQXkKUHtli2e8Tq8FIOkEQIchn/kQen64iwWkHEQAdLmILoiO7x7XVwCYTY9+j57JnlfAoMwFgGz3sTLU8cHNIhIAuws1gF7XnwCYMpHIdvM0yPGePhEJgB1MDaDXxp8CJqkzSU9l1PPefkntT6hXJUnPO2BQnna7T1upymRl/Vtnw6Qp4PLPWkllSiVbPx1uymHHV+tbSGWG2trSWmSw59LeIijzAq6Z27KRnimVrY2zDoQEQC5huJL/gi2LAq6Z17yRnimVrY2zD4QEQC4JIpX8J2zCFqTzPefRM6ps/u99d469f9Y3VGXUczQEZSp0TK36JFIvUGbt2L0MhlNZnqqcvzssyv9jZdbK3yIIb/ggkso+Ug6Yp8xa+VsE4Q0fRFLZS+La0fEAi2HfUJmlcoq1KNtu1HR0Dakss1PuXga3K8v0y6tqYVCBotnRfRYEg9U+BYtvoxyF2dF/HgSDOpeC7gPE24Fv/EQAwdC5VE2jnNEHBuUrJ7fStzSuWvbm1Ddmzv2uroUkfyJpZAxjW5tXr/hsxqtTZr7/5Yq6tS2tjhsfROnFroy0NNfXrfz+uwWLlq5YWbemuaUY0rLum2euGFxApcpFJFlc37h61YoVixctXPbdilWrm1si2l+CUMDUYkRbWosxPEjK4iKS3Li+sW7ld98uWrhw6fLvV9U1t0R0KwlCAdOLEW1pLcZwlMRFBQAEXS5ekGLhuZtAUM4iKBQQvEnPfjWSTrDp5j27d0FqqQFM6VBA3017dET6zt279+rXr0+P7p1Q4SKbbNGjhyB1u569+4pBSgv06N69RzsAnWq32uXMboKykJotetQKUhd69u4rFikt0L179x7tAHSq3WrI2bWCDEUgO532rwkzZ7368q0/G2Aggv/f///fvSVOUhlAYgSQGAmQOAmSGAuYGBtnQyRBQiQiCRJjkiRGIhKRICmVxEgaiUhEEiTOApCIJNkQSZAkycyUyoZInKQSiZMkCZEUsslbEydNev1XCN1t1sRJtwHAHrMmvnouABw1beKkcxH6k6kTJ016s6eEYI9ZEyY+CQjumjj+pSlIfHxC/OuHIbHvnEmTJs0aaAB0mj3p9dOQfNobEybfguSdZk+cPPmtPgbAFnMmTzsUoRY7PvzB8uWfv3ZiJ5sNzn59wuQbkbzHzImTJs3pKgC2f3PS1NFIvvrVyZMnz4AAuGzK5DndkvDs5NiJU45A4jZvTZ786uTXbj8IRjLCHa9Pnjz51YlX7AAbsOusiRMnTpwwYcIrCPrJ6+MnTJzZQ1IY7PPKwu+/nHZ2Z0nAHyaOnzBhwvjxE3+DNL9UJXVtUEeqro7cp6pfR95V5W5B8zX6NwSPpuoSwIymOvY2CZ9rPM9M2ook/bcAUEvl1QHXkZwQMIxK6scAsC2VZ4aYjt9SSaoqkfE4KicHHEKSOh0AhlB5dMDjJKmnRe6nsmfAcpJUVZ6dNIhKjfI3kIymKqPKz2GTRpLUaF0QFmj0xhSm4wp6jXKHpBc08bE0+MyTSvYKQZ0n2wP4Sr13BQAN3lMCpB19kc7Vh42i1yWwYNHreQaJ89W7mDNSkPsYoBvJqwKuITkxDbmNAbah8owAU8siqVT1/m7JjJyYhuwjwK4pHlOSfgMEuF8Z9DVJTbEDqUVVp54XZjWFpHol/Uok70fSqyqDpBO9U+9XI7jQjkU6pTpXh+Rn1fsI/51C2tPz6Q3UW4KeITlM0I7eew4AutL7BQg9gZ6vqOemksIvAd5z3s2DhFA/mDJlylvHJvWP8ashMVeXyC1BhCGC9Y6qdbff+kI9u2V1M8lJqdyHAHYngx5nVC8T4AGSvcJ07htTp875edKOpPcX/4kb6DcgO/3mrYYiyZFhG16ZMmXK6yE4y3vOUrJHEBY7er7zx3+s4iUS4KlfT5jy+hvjUuAE9RxWr35N0JEk/wTsGtELgNH0enPQPFW2p9fbEDqa9EtwHP1GwiKIJyK8P+npqUcJalNcS3JywHCqo/ccajCA5JgknKIkr4UAGCTI+JZ0jkoOMDHHBDypVLKoEDyU4huSwxGVhJ1I3wyppZJdM5pG8ufAMpK3hNUhWgj53Ht2IPXGoOEkeToADOsS8JySlyMqKeZ5zy6vqGdvCehM6jvAWF/kRv8O8JB67hZi6P1XWO/92qD9SV0GOsfRFoGfkzw2YkM87yCLjZBuJRlBz+vUuzpguxTzlVwIQUkjk4OU1yrdMsQcG9YwwXl/m+DfKb4muXukgMTBpF8PEXrPTiX4NXA3ybuzMEnSgd4vRVHd6qAJSv0cgpTPK/nriCBYLL1vwEH0ehNC16puAD7xvIx+PbDUKwshP6HXhzDDe/YJOYDKd+YUvX8RwZ+TWrd06dK6jmEDlnuvp0htiusy6NfgvB4k29MHbSB5lhS26Nu3b99+ncrEs0urJ4fJUCqPCXhKyY70ju3lYU2ldUuXLl3RLkibgHHqi00owTnAcpJXJo0k6RYuXfrtWASepl5vw3tK9pSA5SQvQernlbp2ydKlq7cMw4/p9Tl0oHdrgp5Ssg/Us0dRWQv1fhlC3/eeI3ACvd4sQaQ6enYupPKqyg5J29DzmKH0xVaUbsRP1RfXYYcwqyT7YzBjL8hoXAbbn6bqVmIP+hSeZpbz/t94KAOvqiwE0TW0qCtyf5PRdFLnPtxQJDko6UckVVU5LuRT9RyCMUq9FoHrSe6R7gUlvapy8xQfeM/RwPee7CkBPyZ53FZUYrXnwduReneACNVT0J3UNQg8MOK9L76P4C9IVVWmOQPLil6v6ELyqsz2pOdo1DuvJ25DDSlE+mFbqlfy9IxuSXEoPXdFk/M8cHsqj05R6E7v2fHmDFSVadR773mSIDuqeq/+I2Rwe5JYqhLoQWpdSCvJYZlolFuECak87pRDpyj5h5CuVP37wfQr8KTqfWNIDgvAwaR+d9BJ+7aS7ClJB5HcSPWeg0wKPnH99X/4a7uk/vQ8WwbSO0UGk1L8SPanL7Z0IkNMkeQoDKPXEoxLRe4sP1NfXNuVTEFavOK8e/popuIjY8eOvd+GFemUbyGzGTGq/AI2bP0lN44de3TAT0muOujEES0kayWpieRh6V5U8q2rxo69q0/YQSQ3kvQkVyN0nfefXar6NH5KnTmOZCHkbaU6ko7UmxCmOz1ZVFcHCfic5KkAIEkDqDwHmF/0evtG8uoUk1OMBFYVvd7kg1BP8kERwbkkf1lGWOuot5I8JuBJktZ0ofcck8FoADBJO5O6seuaInmCyWoayeXT3np4CCzC6hCVBHxI0pF0JH8b8AWpT0smNwGAhL2tVB9Vkj1CXlRtWaA8BD3oG+uoXyGUpPooqatTLEJHKvUYk+K0SOA2JM+G9KMqPXlNZsOpHAkzjKp0YY8qlbUG+C3J08tmCMxBSqVPV4A86emo6X4UCRxMajMGUj1rTAl+CUAQGlmVQkjSR0muQPJNSrKTiXSUsJsjkCCSRVcsFotU6h9CjlRGewIbvJJ8KGR0pLVYLBY9yR6ScCDJpZB/euoGSNJ8kg+eePLJv9gxqT/JswC87Ri9NsVrAcNI7gdgWZHRAOlO0vGsXYY9XIJbMgHqHKMhT5C0MB2ojKa5/eSTTv7loDSY4eg/hWQzneSVSBtpOvSUk085HYkHk9QNxWKx6EjWJkg3Kh2PH7j7GYvfQwDJSUeffMrPD0LoKJIUAPgr6VeFdGV0A4B5SpKjQ6Yr9RNE15K8LukAUpfCtKenjg1RqpLkeWFnAtKLsdeUQCOyHdNA/qykZ3x5HEJyF8AMZ0aQ+30Wyuh5STuRrhmmI5U83mQzjeSlqUaSVJJcm/S29zoP0UalXpkAudeTniT1tRRKki8GTVevXwOADCM9u0sS1nlSPwRwrXola0Lolb+L+Y+qr0OA1yWA/EW9Z40JiOeYEM/TAWCqi1wdcC3JSQF70nNfAPivi/wywOBhqlK9Knl5RuNUOSnIc2cA+MpFfhbwuMYYS430DCO9Ks8IUd8EyI1KZXubjZK/yoT0qnVxAqrXCyTyonr/fZLBeHqSVJ0doiS9qj4aYrW5ueUvEVhtbm7+CwJfampsarkcwLANjY2NyxB46PrmZt025pDWpib2TfjZ+ubmiGltaGiYg8RFTQ2xzeclDdzY1PIrANLNNzY2Nt8ccEtTU9OcgB+1NhUPACCb+sbGxtZzAmAw+O1Wkmz8+PqOGd3d1Ng4NeDI9Y3FvQHIwGJjY2PrLwJeamrWAgC5rrmxsVF7BSxvbGpsbGxoWH9Z0p4bmpvXA4I1jU0N3yDTmc1NLVelOrilsSF2RRyOb25s1D4AIIe2NDRq7wQY7Pe5I9n88b6SNL6pqbGxsaGxcVIQohIpIGqSLGIFEEQLSSIAYCIiAGDjBFELWERtXDsESoIAgACwiJUEg6hJECQbxEoAIEDnbl1rAEG2BlGbIEgWxEqCBYAYxNqkdgiUBAGAdkABUZuFRVRSCALbxYgAgI1BtJAECNC1WxdAkGgRaABWUDgg6AAAALAZAJ0BKrEB5AA+MRiMRKIhoRAUACADBLS3cLuwjaAE9gHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIbwAA/v/3gQAAAAAAAAAAAAAAAAA=") no-repeat center / contain;
  transition: background-color var(--dur-fast) var(--ease-out), width .4s var(--ease-out), height .4s var(--ease-out);
}
.nav.is-stuck .brand-mark { width: 98px; height: 52px; }
.brand:hover .brand-mark { background-color: var(--maroon-lift); }

.nav-links { display: none; align-items: center; gap: clamp(1rem, 2.2vw, 2.4rem); list-style: none; margin: 0; padding: 0; }
@media (min-width: 62rem) { .nav-links { display: flex; } }
.nav-link {
  position: relative; text-decoration: none;
  font-size: .84rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 500;
  padding-block: .5rem;
  color: var(--fg-muted);
  transition: color var(--dur-fast) var(--ease-out);
}
.nav-link::after {
  content: ""; position: absolute; left: 0; bottom: 0; width: 100%; height: 1px;
  background: var(--accent); transform: scaleX(0); transform-origin: right;
  transition: transform .45s var(--ease-out);
}
.nav-link:hover, .nav-link[aria-current="page"] { color: var(--accent); }
.nav-link:hover::after, .nav-link[aria-current="page"]::after { transform: scaleX(1); transform-origin: left; }
.nav-actions { display: flex; align-items: center; gap: .75rem; }
.nav-actions .btn { display: none; }
@media (min-width: 48rem) { .nav-actions .btn { display: inline-flex; } }

.burger {
  display: inline-grid; place-items: center;
  width: 46px; height: 46px; border: 1px solid var(--rule); border-radius: 50%;
  background: transparent; cursor: pointer;
  transition: background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
}
@media (min-width: 62rem) { .burger { display: none; } }
.burger:hover { border-color: var(--accent); }
.burger span { display: block; width: 18px; height: 1.5px; background: var(--accent); border-radius: 2px; transition: transform .4s var(--ease-out), opacity .25s; }
.burger span + span { margin-top: 5px; }
.burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

.drawer {
  /* Above the announcement bar, which sits at 60. The drawer was at 55, so an
     open menu had the marquee scrolling across the top of it, cut off
     mid-word - the one thing on screen that was not part of the menu. */
  position: fixed; inset: 0; z-index: 80;
  background: var(--deep-band); color: var(--paper);
  display: grid; grid-template-rows: auto 1fr auto;
  padding: 1.25rem var(--gutter) 1.6rem;
  clip-path: inset(0 0 100% 0);
  transition: clip-path .7s var(--ease-in-out);
  overflow-y: auto;
}
.drawer[data-open="true"] { clip-path: inset(0 0 0 0); }
.drawer-head { display: flex; align-items: center; justify-content: space-between; height: var(--nav-h); }
.drawer .brand-mark { background-color: var(--peach); }
/* The menu, as an index rather than a list.
   It was nine links in a very large serif with 78px of air between each: no
   hierarchy, no structure, and on a laptop the same nine words already sitting
   in the header. It borrows the offerings page's own index now - a number, the
   name, and a line about where it goes - so it reads as part of the site. */
.drawer-nav {
  list-style: none; margin: 0; padding: 1rem 0 .6rem;
  display: grid; gap: 0; align-content: start;
  border-top: 1px solid color-mix(in oklab, var(--paper) 14%, transparent);
  /* Only the list scrolls. The head stays, and so does everything below. */
  min-height: 0; overflow-y: auto; -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}
.drawer-nav li { display: block; }
.drawer-nav a {
  display: grid; text-decoration: none;
  grid-template-columns: auto 1fr auto;
  column-gap: clamp(.8rem, 3vw, 1.2rem);
  align-items: baseline;
  padding: .62rem .2rem;
  border-bottom: 1px solid color-mix(in oklab, var(--paper) 12%, transparent);
  opacity: 0; transform: translateY(24px);
  transition: opacity .5s var(--ease-out), transform .5s var(--ease-out),
              padding-left .4s var(--ease-out), background .4s var(--ease-out);
}
.drawer[data-open="true"] .drawer-nav a {
  opacity: 1; transform: none;
  transition-delay: calc(.16s + var(--i, 0) * .05s);
}
.dn-num {
  grid-row: span 2;
  font-family: var(--font-display); font-size: var(--step-0);
  color: color-mix(in oklab, var(--peach) 55%, transparent);
  font-variant-numeric: tabular-nums;
  transition: color .35s var(--ease-out);
}
.dn-name {
  font-family: var(--font-display); font-weight: 300;
  font-size: var(--step-2); line-height: 1.1;
  color: var(--paper);
}
.dn-note {
  grid-column: 2;
  font-size: .78rem; letter-spacing: .02em;
  color: color-mix(in oklab, var(--paper) 58%, transparent);
  margin-top: .12rem;
}
.dn-go {
  grid-row: span 2; align-self: center;
  color: color-mix(in oklab, var(--peach) 45%, transparent);
  font-size: var(--step-0);
  transform: translateX(-4px); opacity: 0;
  transition: transform .35s var(--ease-out), opacity .35s var(--ease-out);
}
.drawer-nav a:hover,
.drawer-nav a:focus-visible {
  padding-left: .7rem;
  background: color-mix(in oklab, var(--paper) 6%, transparent);
}
.drawer-nav a:hover .dn-num,
.drawer-nav a:focus-visible .dn-num { color: var(--peach); }
.drawer-nav a:hover .dn-go,
.drawer-nav a:focus-visible .dn-go { transform: none; opacity: 1; }
.drawer-foot {
  display: grid; gap: .35rem; padding-top: 1.1rem;
  border-top: 1px solid color-mix(in oklab, var(--paper) 18%, transparent);
  font-size: var(--step--1);
}
/* Two bare links with a rule above them read as leftovers. One word says what
   they are for. */
.drawer-foot-k {
  font-size: .74rem; letter-spacing: .16em; text-transform: uppercase;
  color: color-mix(in oklab, var(--paper) 62%, transparent);
  margin-bottom: .1rem;
}

/* Book now was the ninth item in a list of nine, in the same voice as FAQ.
   It is the thing the menu exists to get people to, so it is out of the list
   and it is a button. */
.drawer-base { display: grid; }
.drawer-cta {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; margin-top: 1rem;
  padding: .95rem 1.3rem; border-radius: 999px;
  background: var(--paper); color: var(--deep-band);
  text-decoration: none;
  font-family: var(--font-sans); font-size: var(--step--1); font-weight: 500;
  letter-spacing: .06em; text-transform: uppercase;
  opacity: 0; transform: translateY(24px);
  transition: opacity .5s var(--ease-out), transform .5s var(--ease-out),
              background .35s var(--ease-out);
}
.drawer[data-open="true"] .drawer-cta {
  opacity: 1; transform: none;
  transition-delay: calc(.16s + var(--i, 0) * .05s);
}
.drawer-cta:hover { background: var(--peach); }
.drawer-cta .dc-go { transition: transform .35s var(--ease-out); }
.drawer-cta:hover .dc-go { transform: translateX(4px); }
.drawer-foot a { text-decoration: none; }
.drawer .burger { border-color: color-mix(in oklab, var(--paper) 30%, transparent); }
.drawer .burger span { background: var(--peach); }

/* --- 9. Scroll reveals --------------------------------------------------- */
[data-reveal] {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity .62s var(--ease-out), transform .62s var(--ease-out);
  transition-delay: var(--delay, 0s);
}
[data-reveal="fade"] { transform: none; }
[data-reveal="left"]  { transform: translateX(-30px); }
[data-reveal="right"] { transform: translateX(30px); }
[data-reveal="scale"] { transform: scale(.94); }
/* On a narrow screen these are full-width, so a sideways start hangs off the
   edge and widens the document. They rise instead. */
@media (max-width: 62rem) {
  [data-reveal="left"], [data-reveal="right"] { transform: translateY(26px); }
}
[data-reveal].is-in { opacity: 1; transform: none; }

/* The clip sits on the children, never on the observed element itself: a
   clipped box reports zero intersection area, so an element that hid itself
   this way could never be told to stop — it stayed invisible for good. */
[data-reveal="mask"] { opacity: 1; transform: none; }
[data-reveal="mask"] > * {
  clip-path: inset(0 0 100% 0);
  transition: clip-path .8s var(--ease-in-out);
  transition-delay: var(--delay, 0s);
}
[data-reveal="mask"].is-in > * { clip-path: inset(0 0 0 0); }

/* split-line heading reveal (lines built by JS) */
/* The mask has to clip the line while it slides up, but headings run at
   line-height 1.04 and a serif g, y or p hangs below its line box - so the
   mask was slicing the tails off every descender on the site. Give the mask
   the room the glyph actually needs and take the same amount back out of the
   flow, so nothing below moves. */
.line-wrap {
  display: block; overflow: hidden;
  padding-bottom: .22em; margin-bottom: -.22em;
}
.line-inner {
  display: block;
  transform: translateY(105%);
  transition: transform .7s var(--ease-out);
  transition-delay: calc(var(--line, 0) * .055s + var(--delay, 0s));
}
.is-in .line-inner { transform: none; }

/* --- 10. Hero ------------------------------------------------------------ */
.hero {
  position: relative;
  color: var(--fg);
  /* What is left of the first screen once the announcement bar and the nav
     have taken theirs — so the ridge along the foot of the hero is part of
     what you see on arrival rather than the first thing you have to scroll
     for. */
  min-height: min(calc(100svh - var(--nav-h) - 3.2rem), 780px);
  display: grid; align-items: center;
  padding-block: clamp(1.8rem, 4vw, 3.6rem);
  background:
    radial-gradient(70% 55% at 78% 6%, color-mix(in oklab, var(--gold) 34%, transparent) 0%, transparent 58%),
    linear-gradient(178deg,
      #FEF6F1 0%,
      var(--paper) 26%,
      var(--paper-warm) 52%,
      var(--paper-2) 84%,
      var(--paper-2) 100%);
  overflow: hidden;
  isolation: isolate;
}
.hero-inner { display: grid; gap: clamp(2.5rem, 5vw, 4rem); align-items: center; position: relative; z-index: 2; }
@media (min-width: 62rem) { .hero-inner { grid-template-columns: 1fr 1.12fr; } }
.hero h1 { margin-bottom: 1.6rem; }
/* Two words, two voices &mdash; the same face, upright and italic. That is the
   brand's own device: sabrr.org sets both words in Cormorant and leans on an
   italic for emphasis. The italic is set a shade heavier so it holds the same
   colour on the page as the roman above it. */
.hero h1 { line-height: 1.02; }
.hero h1 .em {
  font-style: italic; font-weight: 600;
  color: var(--accent);
  font-size: 1.04em; line-height: 1.06;
  display: block;
  letter-spacing: -.005em;
  padding-right: .06em;   /* the italic's overhang needs a little room */
}
.hero h1 .said { display: block; }
/* "Rejuvenate." in a script face is a single unbreakable word about a third
   wider than the roman line above it, so on a phone the headline has to be
   sized to that word rather than to the page's display step. */
@media (max-width: 46rem) {
  .hero h1 { font-size: clamp(2.5rem, 11vw, 3.8rem); }
}
.hero-lead { max-width: 34ch; }
.hero-cta { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; margin-top: 2.4rem; }
@media (max-width: 40rem) {
}

.hero-hills {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 0;
  height: clamp(200px, 40%, 400px);
  pointer-events: none;
  /* A real Himalayan range, graded into the palette: near ridges in the deep
     red, mid ground coral, and the far ones dissolving into the page. */
  background: url("../img/ridge.webp") bottom center / 100% 100% no-repeat;
}
/* a faint drawn range sits further back, so the horizon has two depths */
.hero-hills::before {
  content: ""; position: absolute; inset: auto 0 30% 0; height: 52%;
  background-color: var(--paper-3); opacity: .3;
  -webkit-mask: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNjAwIDQyMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSIiPgogIDwhLS0gTGF5ZXJlZCByaWRnZWxpbmVzIGZvciB0aGUgaGVybyBncm91bmQuIFRocmVlIHBhc3NlcywgZWFjaCBhIGxpdHRsZQogICAgICAgZGVlcGVyLCBzbyB0aGUgaG9yaXpvbiByZWFkcyBhcyBoYXplIHJhdGhlciB0aGFuIGEgaGFyZCBlZGdlLiAtLT4KICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgPHBhdGggb3BhY2l0eT0iLjE2IiBkPSJNMCA0MjBWMjM2YzcyLTkgMTI4LTQyIDE5Ni03NCA2Ni0zMSAxMTgtNTggMTg2LTQ0IDYyIDEzIDk4IDUyIDE2MCA2OCA2NiAxNyAxMTgtOCAxODItMzMgNzAtMjcgMTMwLTQ2IDIwMC0zMSA2NiAxNCAxMTIgNTEgMTc4IDY0IDcwIDE0IDEzMi05IDIwMi0zOCA2MC0yNSAyMDgtNTggMjk2LTY0djMzNnoiLz4KICAgIDxwYXRoIG9wYWNpdHk9Ii4yMiIgZD0iTTAgNDIwVjMwMGM4Ni0xNCAxNTAtNTggMjMyLTg0IDc0LTI0IDEzMC0yNyAyMDQtNiA3MCAyMCAxMTYgNjIgMTg4IDcwIDc2IDkgMTMyLTI2IDIwNC01MiA2OC0yNSAxMjgtMzMgMTk4LTE2IDc0IDE4IDEyNiA2NiAyMDIgNzQgNzYgOSAyNjItMzAgMzcyLTU2djE5MHoiLz4KICAgIDxwYXRoIG9wYWNpdHk9Ii4zMCIgZD0iTTAgNDIwVjM1NmM5Ni0xMCAxNzYtNDIgMjY4LTU4IDg0LTE1IDE0Ni04IDIyNiAxNCA3NiAyMSAxMzAgNTggMjA4IDYwIDgyIDMgMTQyLTMyIDIyMC01MiA3NC0xOSAxMzYtMTkgMjEwIDIgODQgMjQgMTU2IDY2IDI0NiA2MiA3Ni00IDE2OC0yNCAyMjItMzh2NzR6Ii8+CiAgPC9nPgo8L3N2Zz4K") bottom center / 100% 100% no-repeat;
  mask: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNjAwIDQyMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSIiPgogIDwhLS0gTGF5ZXJlZCByaWRnZWxpbmVzIGZvciB0aGUgaGVybyBncm91bmQuIFRocmVlIHBhc3NlcywgZWFjaCBhIGxpdHRsZQogICAgICAgZGVlcGVyLCBzbyB0aGUgaG9yaXpvbiByZWFkcyBhcyBoYXplIHJhdGhlciB0aGFuIGEgaGFyZCBlZGdlLiAtLT4KICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgPHBhdGggb3BhY2l0eT0iLjE2IiBkPSJNMCA0MjBWMjM2YzcyLTkgMTI4LTQyIDE5Ni03NCA2Ni0zMSAxMTgtNTggMTg2LTQ0IDYyIDEzIDk4IDUyIDE2MCA2OCA2NiAxNyAxMTgtOCAxODItMzMgNzAtMjcgMTMwLTQ2IDIwMC0zMSA2NiAxNCAxMTIgNTEgMTc4IDY0IDcwIDE0IDEzMi05IDIwMi0zOCA2MC0yNSAyMDgtNTggMjk2LTY0djMzNnoiLz4KICAgIDxwYXRoIG9wYWNpdHk9Ii4yMiIgZD0iTTAgNDIwVjMwMGM4Ni0xNCAxNTAtNTggMjMyLTg0IDc0LTI0IDEzMC0yNyAyMDQtNiA3MCAyMCAxMTYgNjIgMTg4IDcwIDc2IDkgMTMyLTI2IDIwNC01MiA2OC0yNSAxMjgtMzMgMTk4LTE2IDc0IDE4IDEyNiA2NiAyMDIgNzQgNzYgOSAyNjItMzAgMzcyLTU2djE5MHoiLz4KICAgIDxwYXRoIG9wYWNpdHk9Ii4zMCIgZD0iTTAgNDIwVjM1NmM5Ni0xMCAxNzYtNDIgMjY4LTU4IDg0LTE1IDE0Ni04IDIyNiAxNCA3NiAyMSAxMzAgNTggMjA4IDYwIDgyIDMgMTQyLTMyIDIyMC01MiA3NC0xOSAxMzYtMTkgMjEwIDIgODQgMjQgMTU2IDY2IDI0NiA2MiA3Ni00IDE2OC0yNCAyMjItMzh2NzR6Ii8+CiAgPC9nPgo8L3N2Zz4K") bottom center / 100% 100% no-repeat;
}

.hero-watermark {
  position: absolute; right: -3vw; bottom: 4vw; z-index: 1;
  width: min(46vw, 560px); aspect-ratio: 1;
  background-color: color-mix(in oklab, var(--accent) 5%, transparent);
  -webkit-mask: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMDAgMTAwIiByb2xlPSJpbWciIGFyaWEtbGFiZWw9IlNhYnJyIG1hcmsiPgogIDxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjQuMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KICAgIDxwYXRoIGNsYXNzPSJtYXJrLXN3YXNoIiBkPSJNNCA2OEMxIDYxIDkgNTYgMTYgNThjMjQgNyA0NCAyMCA2OCAxOCAyMC0yIDQ0LTE0IDY4LTE2IDIwLTIgMzggMiA0NCAxMCIvPgogICAgPHBhdGggY2xhc3M9Im1hcmstaGVhcnQiIGQ9Ik0xMDAgNThDMTAwIDU4IDcwIDQwIDcwIDI3YzAtOSA4LTE0IDE2LTE0IDcgMCAxMiA1IDE0IDExIDItNiA3LTExIDE0LTExIDggMCAxNiA1IDE2IDE0IDAgOS0xMiAxOS0yMCAyNSIvPgogIDwvZz4KPC9zdmc+Cg==") no-repeat center / contain;
  mask: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMDAgMTAwIiByb2xlPSJpbWciIGFyaWEtbGFiZWw9IlNhYnJyIG1hcmsiPgogIDxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjQuMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KICAgIDxwYXRoIGNsYXNzPSJtYXJrLXN3YXNoIiBkPSJNNCA2OEMxIDYxIDkgNTYgMTYgNThjMjQgNyA0NCAyMCA2OCAxOCAyMC0yIDQ0LTE0IDY4LTE2IDIwLTIgMzggMiA0NCAxMCIvPgogICAgPHBhdGggY2xhc3M9Im1hcmstaGVhcnQiIGQ9Ik0xMDAgNThDMTAwIDU4IDcwIDQwIDcwIDI3YzAtOSA4LTE0IDE2LTE0IDcgMCAxMiA1IDE0IDExIDItNiA3LTExIDE0LTExIDggMCAxNiA1IDE2IDE0IDAgOS0xMiAxOS0yMCAyNSIvPgogIDwvZz4KPC9zdmc+Cg==") no-repeat center / contain;
  pointer-events: none;
}

/* --- 11. Breath orb (signature interaction) ------------------------------ */
.breath { position: relative; display: grid; place-items: center; aspect-ratio: 1; width: min(100%, 440px); margin-inline: auto; }
.breath-ring {
  position: absolute; border-radius: 50%; inset: 0;
  border: 1px solid color-mix(in oklab, var(--maroon) 26%, transparent);
  animation: ring-pulse 11s var(--ease-in-out) infinite;
  animation-delay: calc(var(--r) * -2.2s);
}
@keyframes ring-pulse {
  0%, 100% { transform: scale(.62); opacity: .18; }
  38%      { transform: scale(1);   opacity: .7; }
  62%      { transform: scale(1);   opacity: .7; }
}
.breath-orb {
  position: relative; z-index: 2;
  width: 58%; aspect-ratio: 1; border-radius: 50%;
  /* the highlight sits high-left so the label lands on deep maroon, not peach &mdash;
     centred light made 'Breathe' read at 2.3:1 */
  background: radial-gradient(72% 72% at 30% 20%, #FFEFD8 0%, var(--peach) 26%, var(--maroon) 72%);
  box-shadow: 0 30px 70px -24px rgb(var(--shadow-color) / .5),
              inset 0 -14px 34px -14px rgb(0 0 0 / .35);
  display: grid; place-items: center; text-align: center;
  color: var(--paper);
  border: 0; cursor: pointer; padding: 0;
  transition: transform 4s var(--ease-in-out), box-shadow .6s var(--ease-out);
  transform: scale(var(--orb-scale, .82));
}
.breath-orb:hover { box-shadow: 0 34px 84px -22px rgb(var(--shadow-color) / .62), inset 0 -14px 34px -14px rgb(0 0 0 / .35); }
.breath-label { font-size: var(--step--1); letter-spacing: .3em; text-transform: uppercase; font-weight: 500; text-shadow: 0 1px 12px rgb(0 0 0 / .3); }
.breath-count { font-family: var(--font-display); font-size: var(--step-3); line-height: 1; display: block; margin-top: .25rem; font-variant-numeric: tabular-nums; }
.breath-hint {
  position: absolute; bottom: -2.6rem; left: 50%; transform: translateX(-50%);
  font-size: 0.8rem; letter-spacing: .17em; text-transform: uppercase; color: var(--ink-3);
  white-space: nowrap; text-align: center;
}
.breath-progress { position: absolute; inset: 0; z-index: 1; transform: rotate(-90deg); }
.breath-progress circle { fill: none; stroke-width: 1.5; }
.breath-progress .track { stroke: color-mix(in oklab, var(--maroon) 12%, transparent); }
.breath-progress .bar {
  stroke: var(--maroon); stroke-linecap: round;
  stroke-dasharray: 302; stroke-dashoffset: var(--offset, 302);
  transition: stroke-dashoffset .3s linear;
}

/* --- 12. Practice cards -------------------------------------------------- */
.practice {
  position: relative; display: block; text-decoration: none;
  border-radius: var(--radius-lg); overflow: hidden;
  background: var(--forest-deep);
  aspect-ratio: 3 / 4; isolation: isolate;
  transition: transform .7s var(--ease-out);
}
.practice:hover { transform: translateY(-6px); box-shadow: 0 30px 60px -30px rgb(0 0 0 / .55); }
.practice-media { position: absolute; inset: 0; }
.practice-media img {
  width: 100%; height: 100%; object-fit: cover;
  filter: saturate(1.2) contrast(1.16) brightness(1.06);
  transform: scale(1.04);
  transition: transform 1.2s var(--ease-out), filter .7s var(--ease-out);
}
.practice:hover .practice-media img { transform: scale(1.12); filter: saturate(1.3) contrast(1.12) brightness(1.1); }
.practice-media::after {
  content: ""; position: absolute; inset: 0;
  background:
    linear-gradient(to top,
      rgb(46 10 6 / .95) 0,
      rgb(52 12 7 / .90) 7.5rem,
      rgb(88 20 12 / .40) 13rem,
      transparent 18rem),
    linear-gradient(to top, rgb(70 18 11 / .28), rgb(120 30 18 / .10)),
    /* a corner shade so the index number always has a ground */
    radial-gradient(44% 36% at 0% 0%, rgb(34 6 3 / .82) 0%, rgb(34 6 3 / .3) 46%, transparent 74%);
}
.practice-body {
  position: relative; z-index: 2; height: 100%;
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: clamp(1.2rem, 2.4vw, 1.9rem);
  color: var(--paper);
}
.practice-index {
  position: absolute; z-index: 2;
  top: clamp(1.1rem, 2.2vw, 1.7rem); left: clamp(1.2rem, 2.4vw, 1.9rem);
  font-family: var(--font-display); font-size: var(--step-1);
  letter-spacing: .06em; color: #FFF3E4; opacity: 1;
  text-shadow: 0 2px 16px rgb(30 5 2 / .85);
}
/* the number sits on a photograph, so it brings its own ground rather than
   trusting whatever is behind it */
.practice-index::before {
  content: ""; position: absolute; z-index: -1;
  inset: -.7em -.85em;
  border-radius: 50%;
  /* Deep enough to hold the number over the brightest frame in the set — the
     art therapy panel is a pale yellow canvas, and at .72 the number fell to
     4.05:1 against it. */
  background: radial-gradient(closest-side,
                rgb(20 5 2 / .88) 0%, rgb(20 5 2 / .72) 55%, transparent 100%);
}
.practice h3 { font-size: var(--step-2); margin-bottom: .25rem; }
/* one concrete thing about the practice, visible without hovering &mdash; a card
   that only says "Ice Bath" tells a first-time visitor nothing */
.practice-fact {
  font-size: var(--step--1); letter-spacing: .03em;
  color: color-mix(in oklab, var(--gold-soft) 94%, transparent);
  text-shadow: 0 1px 10px rgb(40 8 4 / .6);
}
.practice-copy {
  font-size: var(--step--1); line-height: 1.55;
  color: color-mix(in oklab, #fff 90%, transparent);
  text-shadow: 0 1px 12px rgb(30 6 3 / .8);
  max-height: 0; opacity: 0; overflow: hidden;
  transition: max-height .7s var(--ease-out), opacity .5s var(--ease-out), margin-top .7s var(--ease-out);
}
.practice:hover .practice-copy, .practice:focus-visible .practice-copy { max-height: 10rem; opacity: 1; margin-top: .5rem; }
.practice-more { display: inline-flex; align-items: center; gap: .5em; margin-top: .9rem; font-size: .8rem; letter-spacing: .16em; text-transform: uppercase; color: var(--gold-soft); }

/* ---- The showcase ---------------------------------------------------------
   Six practices, and the hard part is that every one of them has a photograph
   worth showing. Two earlier attempts failed on that: a 3x3 grid with the
   first card spanning 2x2 gave one picture half the screen and shrank the rest
   to stamps; six expanding panels fixed the proportions but left five of the
   six as slivers with their names turned on their side, so you could not see
   what you were choosing between.

   This is the pattern that actually suits the content: the practices are an
   index down one side, each one named, numbered and described in a line, and
   the picture of whichever you are pointing at fills the other side. Every
   name is level and legible at all times, the photograph is large enough to be
   worth having, and moving down the list plays as a slideshow.

   Which one is showing: the row under the pointer, or the first when the
   pointer is elsewhere. Those two conditions cannot both be true, so the two
   rules never fight.

   Below 62rem there is no pointer to follow and no room for two columns, so it
   goes back to being ordinary cards — the photograph above its own name.
   ------------------------------------------------------------------------ */
.practice-rail { display: grid; gap: clamp(1rem, 2vw, 1.6rem); grid-template-columns: 1fr; }
@media (min-width: 40rem) { .practice-rail { grid-template-columns: repeat(2, 1fr); } }

@media (min-width: 62rem) {
  .practice-rail {
    position: relative;
    /* 46 + 4 + 50 = 100, so the stage below can start at exactly 50% */
    grid-template-columns: 46% 1fr;
    column-gap: 4%;
    gap: 0;
    align-content: start;
  }

  /* --- the index ------------------------------------------------------- */
  .practice {
    grid-column: 1;
    /* static, so the stage below anchors to the rail rather than to the row */
    position: static;
    aspect-ratio: auto; background: none; border-radius: 0;
    overflow: visible; isolation: auto;
    display: grid; grid-template-columns: auto 1fr;
    column-gap: clamp(.9rem, 1.6vw, 1.4rem);
    padding: clamp(.9rem, 1.7vw, 1.35rem) 0;
    border-top: 1px solid color-mix(in oklab, var(--paper) 20%, transparent);
    transition: none;
  }
  .practice:last-of-type { border-bottom: 1px solid color-mix(in oklab, var(--paper) 20%, transparent); }
  .practice:hover { transform: none; box-shadow: none; }

  .practice-index {
    position: static; z-index: auto;
    font-size: var(--step--1); letter-spacing: .14em;
    color: color-mix(in oklab, var(--gold-soft) 78%, transparent);
    text-shadow: none;
    padding-top: .45em;
    transition: color .4s var(--ease-out);
  }
  .practice-index::before { content: none; }

  .practice-body {
    height: auto; display: block; padding: 0;
    color: var(--paper);
  }
  .practice h3 {
    font-size: var(--step-2); margin: 0 0 .15rem;
    color: color-mix(in oklab, var(--paper) 72%, transparent);
    transition: color .4s var(--ease-out);
  }
  .practice-fact { display: block; text-shadow: none; }
  /* These are spans, and max-height does nothing to an inline box — closed
     rows kept their full description in the layout and stood 170px tall. */
  .practice-copy {
    display: block; text-shadow: none;
    max-height: 0; opacity: 0; margin-top: 0; max-width: 46ch;
    transition: max-height .6s var(--ease-out), opacity .45s var(--ease-out),
                margin-top .6s var(--ease-out);
  }
  .practice-more {
    display: flex; width: max-content;
    max-height: 0; opacity: 0; margin-top: 0; overflow: hidden;
    transition: max-height .6s var(--ease-out), opacity .45s var(--ease-out),
                margin-top .6s var(--ease-out);
  }

  /* --- the stage: all six pictures in the same place, one of them lit --- */
  .practice-media {
    position: absolute; inset: 0 0 0 50%;
    border-radius: var(--radius-lg); overflow: hidden;
    opacity: 0; visibility: hidden;
    transition: opacity .65s var(--ease-out), visibility .65s;
  }
  .practice-media img {
    transform: scale(1.02);
    transition: transform 1.6s var(--ease-out);
  }
  .practice:hover .practice-media img { transform: scale(1.06); filter: saturate(1.2) contrast(1.16) brightness(1.06); }
  /* the heavy foot gradient existed to carry text over the picture; nothing
     sits on it here, so it drops to a vignette that keeps the corners from
     glowing against the band */
  .practice-media::after {
    background:
      linear-gradient(to top, rgb(46 10 6 / .34), transparent 42%),
      radial-gradient(120% 90% at 50% 50%, transparent 58%, rgb(46 10 6 / .30) 100%);
  }

  /* --- whichever one is open ------------------------------------------- */
  .practice-rail:not(:has(> .practice:hover)) > .practice:first-child > .practice-media,
  .practice-rail > .practice:hover > .practice-media,
  .practice-rail > .practice:focus-visible > .practice-media {
    opacity: 1; visibility: visible;
  }
  .practice-rail:not(:has(> .practice:hover)) > .practice:first-child .practice-copy,
  .practice-rail > .practice:hover .practice-copy,
  .practice-rail > .practice:focus-visible .practice-copy {
    max-height: 9rem; opacity: 1; margin-top: .5rem;
  }
  .practice-rail:not(:has(> .practice:hover)) > .practice:first-child .practice-more,
  .practice-rail > .practice:hover .practice-more,
  .practice-rail > .practice:focus-visible .practice-more {
    max-height: 3rem; opacity: 1; margin-top: .8rem;
  }
  .practice-rail:not(:has(> .practice:hover)) > .practice:first-child h3,
  .practice-rail > .practice:hover h3,
  .practice-rail > .practice:focus-visible h3 { color: var(--paper); }
  .practice-rail:not(:has(> .practice:hover)) > .practice:first-child .practice-index,
  .practice-rail > .practice:hover .practice-index,
  .practice-rail > .practice:focus-visible .practice-index { color: var(--gold-soft); }
}

/* Without :has there is no way to ask "is anything hovered", so the index and
   the stage would both sit dark. Fall back to the plain card grid, which needs
   nothing but the markup. */
@supports not selector(:has(*)) {
  @media (min-width: 62rem) {
    .practice-rail { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1rem, 2vw, 1.6rem); }
    .practice { aspect-ratio: 3 / 4; background: var(--forest-deep); border-radius: var(--radius-lg); overflow: hidden; border: 0; padding: 0; display: block; }
    .practice-media { position: absolute; inset: 0; opacity: 1; visibility: visible; border-radius: 0; }
    .practice-body { height: 100%; display: flex; flex-direction: column; justify-content: flex-end; padding: clamp(1.2rem, 2.4vw, 1.9rem); }
    .practice-index { position: absolute; top: 1.4rem; left: 1.5rem; }
    .practice-fact, .practice-more { max-height: 4rem; opacity: 1; }
  }
}

/* --- 13. Pillars --------------------------------------------------------- */
.pillar { position: relative; padding-top: 1.6rem; border-top: 1px solid var(--rule); }
.pillar-num { font-size: 0.82rem; letter-spacing: .24em; color: var(--accent); display: block; margin-bottom: .9rem; }
.pillar h3 { font-size: var(--step-1); margin-bottom: .55rem; }
.pillar p { font-size: var(--step--1); color: var(--fg-muted); }

/* --- 14. Figures --------------------------------------------------------- */
.figure { position: relative; overflow: hidden; border-radius: var(--radius-lg); background: var(--paper-3); }
.figure img { width: 100%; height: 100%; object-fit: cover; }
/* the low-res placeholder is set inline as a background, so it paints
   immediately and the full image simply resolves on top of it */
img[style*="background-image"] {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
/* Capped against the viewport, not just the column. At 42vw wide on a
   1366x768 laptop the 5:6 box worked out 677px tall - eighty-eight per cent of
   the screen - so scrolling past one photograph took a whole swipe and the
   page felt endless. The image still fills its frame; object-fit crops it. */
.figure-tall { aspect-ratio: 5 / 6; max-height: 62vh; }

/* On a phone the tall frames are the page's whole weight. A practice card is
   3:4 - 471px on a 390px screen - and the text inside it comes to seventy
   pixels, so roughly three hundred and sixty of those pixels are photograph
   nobody asked for. Six of them stacked is most of the home page. Square is
   still a generous picture and gives a third of the scrolling back. */
@media (max-width: 48rem) {
  .practice { aspect-ratio: 1 / 1; }
  .figure-tall { aspect-ratio: 1 / 1; max-height: none; }
}
.figure-wide { aspect-ratio: 16 / 10; }
.figure-square { aspect-ratio: 1; }
.figure-arch { border-radius: 50vw 50vw var(--radius-lg) var(--radius-lg); }
.figure-duo { background: var(--accent); }
.figure-duo img { filter: grayscale(1) contrast(1.1); mix-blend-mode: luminosity; }
.figure-caption {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 2;
  padding: 1.4rem; color: #fff; font-size: var(--step--1);
  background: linear-gradient(to top, rgb(0 0 0 / .72), transparent);
}
.parallax-media { will-change: transform; }

.figure-pair { position: relative; padding-bottom: 8%; padding-right: 9%; }
.figure-pair .figure:last-child {
  position: absolute; right: 0; bottom: 0; width: 52%;
  border: 8px solid var(--bg);
  box-shadow: 0 24px 60px -28px rgb(var(--shadow-color) / .5);
}

/* --- 15. Stats ----------------------------------------------------------- */
.stat { text-align: center; }
.stat-num {
  font-family: var(--font-display); font-weight: 500; line-height: 1;
  font-size: var(--step-4); color: var(--accent);
  font-variant-numeric: tabular-nums; display: block; margin-bottom: .5rem;
}
.stat-label { font-size: var(--step--1); letter-spacing: .14em; text-transform: uppercase; color: var(--fg-muted); }

/* --- 16. Retreat / Prana ------------------------------------------------- */
.prana {
  --heading: var(--fg);
  /* Painting a ground and declaring its tokens are one action, never two:
     without these the section inherits the light palette and renders maroon
     text on dark green. */
  --bg: var(--forest-deep);
  --fg: var(--paper);
  --fg-muted: color-mix(in oklab, var(--paper) 78%, transparent);
  --accent: var(--gold);
  --eyebrow-fg: var(--gold);
  --on-accent: var(--forest-deep);
  --rule: color-mix(in oklab, var(--paper) 18%, transparent);
  --card: color-mix(in oklab, var(--paper) 6%, transparent);
  --shadow-color: 0 0 0;
  color: var(--fg);
  background:
    /* The glow sits on the image side, not under the copy. Behind the eyebrow
       it lifted the ground enough to drop gold text to 4.2:1; over here it
       lights the poster instead and the text keeps the deep ground at 8.8:1. */
    radial-gradient(85% 75% at 88% 4%, color-mix(in oklab, var(--forest-lift) 72%, transparent) 0%, transparent 62%),
    radial-gradient(60% 50% at 8% 104%, color-mix(in oklab, var(--gold) 13%, transparent) 0%, transparent 58%),
    var(--forest-deep);
}
.retreat-card {
  border: 1px solid var(--rule); border-radius: var(--radius-lg);
  padding: clamp(1.6rem, 3vw, 2.6rem);
  background: var(--card);
  transition: border-color .5s var(--ease-out), transform .5s var(--ease-out);
}
.retreat-card:hover { border-color: color-mix(in oklab, var(--gold) 55%, transparent); transform: translateY(-4px); }

.itinerary { list-style: none; margin: 0; padding: 0; }
.itinerary li {
  display: grid; gap: .35rem 2rem; align-items: baseline;
  grid-template-columns: 1fr; padding-block: 1.15rem;
  border-top: 1px solid var(--rule);
}
@media (min-width: 40rem) { .itinerary li { grid-template-columns: 7.5rem 1fr; } }
.itinerary li:last-child { border-bottom: 1px solid var(--rule); }
.itinerary .time { font-size: var(--step--1); letter-spacing: .16em; text-transform: uppercase; color: var(--accent); font-variant-numeric: tabular-nums; }
.itinerary .what { font-family: var(--font-display); font-size: var(--step-1); }
.itinerary .note { grid-column: 1 / -1; font-size: var(--step--1); color: var(--fg-muted); }
@media (min-width: 40rem) { .itinerary .note { grid-column: 2; } }

.day-tabs { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 2rem; }
.day-tab {
  border: 1px solid var(--rule); background: transparent; color: var(--fg-muted);
  border-radius: 999px; padding: .6em 1.3em; cursor: pointer;
  font-size: 0.82rem; letter-spacing: .16em; text-transform: uppercase;
  transition: all var(--dur-fast) var(--ease-out);
}
.day-tab:hover { color: var(--fg); border-color: color-mix(in oklab, currentColor 45%, transparent); }
.day-tab[aria-selected="true"] { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.day-panel[hidden] { display: none; }

.ticks { list-style: none; margin: 0; padding: 0; display: grid; gap: .85rem; }
.ticks li { display: grid; grid-template-columns: 1.35rem 1fr; gap: .85rem; align-items: start; font-size: var(--step--1); }
.ticks svg { width: 1.35rem; height: 1.35rem; color: var(--accent); margin-top: .12rem; flex: none; }
.ticks.is-cross svg { color: var(--fg-muted); opacity: .6; }
/* contact details in a tick list are standalone links, not prose &mdash; give them a real target */
.ticks a { display: inline-flex; align-items: center; min-height: 26px; }
/* padding on an inline link grows the hit area without disturbing line layout */
.callout a { padding-block: .35rem; }

/* --- 17. Testimonials ---------------------------------------------------- */
.quote-card {
  border-radius: var(--radius-lg); border: 1px solid var(--rule);
  padding: clamp(1.7rem, 3vw, 2.6rem);
  background: var(--card);
  display: flex; flex-direction: column; gap: 1.4rem;
  break-inside: avoid;
}
.quote-card blockquote { margin: 0; font-family: var(--font-display); font-size: var(--step-1); line-height: 1.36; font-weight: 500; max-width: none; }
.quote-card blockquote::before { content: "\201C"; color: var(--accent); }
.quote-card blockquote::after { content: "\201D"; color: var(--accent); }
.quote-who { display: flex; align-items: center; gap: .9rem; margin-top: auto; }
.avatar {
  width: 40px; height: 40px; border-radius: 50%; flex: none;
  display: grid; place-items: center;
  background: color-mix(in oklab, var(--accent) 22%, transparent);
  color: var(--accent); font-family: var(--font-display); font-size: 1.05rem;
}
.quote-who .n { font-size: var(--step--1); font-weight: 500; }
.quote-who .r { font-size: 0.86rem; color: var(--fg-muted); }
.quote-masonry { columns: 1; column-gap: clamp(1rem, 2vw, 1.6rem); }
@media (min-width: 46rem) { .quote-masonry { columns: 2; } }
@media (min-width: 72rem) { .quote-masonry { columns: 3; } }
.quote-masonry .quote-card { margin-bottom: clamp(1rem, 2vw, 1.6rem); display: inline-flex; width: 100%; }

/* --- 18. Accordion ------------------------------------------------------- */
.accordion { border-top: 1px solid var(--rule); }
.acc-item { border-bottom: 1px solid var(--rule); }
.acc-trigger {
  width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
  padding: 1.5rem 0; background: none; border: 0; cursor: pointer; text-align: left;
  font-family: var(--font-display); font-size: var(--step-1); font-weight: 500; line-height: 1.25;
  color: var(--fg);
  transition: color var(--dur-fast) var(--ease-out);
}
.acc-trigger:hover { color: var(--accent); }
.acc-icon { position: relative; width: 18px; height: 18px; flex: none; }
.acc-icon::before, .acc-icon::after {
  content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1.5px;
  background: currentColor; border-radius: 2px;
  transition: transform .45s var(--ease-out);
}
.acc-icon::after { transform: rotate(90deg); }
.acc-trigger[aria-expanded="true"] .acc-icon::after { transform: rotate(0deg); }
.acc-trigger[aria-expanded="true"] { color: var(--accent); }
.acc-panel { overflow: hidden; height: 0; transition: height .55s var(--ease-in-out); }
.acc-panel > div { padding-bottom: 1.7rem; color: var(--fg-muted); max-width: 62ch; }

/* --- 19. Forms ----------------------------------------------------------- */
.field { display: grid; gap: .5rem; }
.field > label, .fieldset-label {
  font-size: 0.82rem; letter-spacing: .16em; text-transform: uppercase; font-weight: 500;
  color: var(--fg-muted);
}
.field .req { color: var(--accent); }
.on-dark .field .req, .on-maroon .field .req { color: var(--gold); }
.input, .select, .textarea {
  width: 100%;
  background: var(--card);
  border: 1px solid color-mix(in oklab, var(--accent) 34%, transparent);
  box-shadow: inset 0 1px 2px rgb(var(--shadow-color) / .06);
  border-radius: var(--radius);
  padding: .95rem 1.05rem;
  color: var(--fg);
  font-size: var(--step-0);
  transition: border-color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast);
}
.input::placeholder, .textarea::placeholder { color: color-mix(in oklab, var(--fg) 52%, transparent); }
.input:focus, .select:focus, .textarea:focus {
  outline: none; border-color: var(--accent); background: var(--bg);
  box-shadow: 0 0 0 3px color-mix(in oklab, var(--accent) 16%, transparent);
}
.textarea { resize: vertical; min-height: 8rem; }
.select {
  appearance: none; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%237A625D' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 1rem center; background-size: 12px;
  padding-right: 2.6rem;
}
.on-dark .select, .on-maroon .select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23C6A15B' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
}
.field-error { font-size: 0.86rem; color: #C0392B; }
/* A field that has been wrong once keeps its error line, empty or not. See
   setError() in booking.js: without this, clearing the message reflows
   everything below it at the exact moment somebody is reaching for the next
   control. */
.was-invalid > .field-error, .was-invalid .field-error {
  /* One line at this element's own size and the inherited 1.68 line-height,
     which is what a message actually occupies. Guessing 1.25em left a 6px
     jump - smaller, and still a jump. */
  min-height: 1.68em;
}
.on-dark .field-error, .on-maroon .field-error { color: #F0938A; }
.field.has-error .input, .field.has-error .select, .field.has-error .textarea { border-color: #C0392B; }

.choices { display: flex; flex-wrap: wrap; gap: .6rem; }
.choice { position: relative; display: inline-flex; }
.choice input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.choice span {
  display: inline-flex; align-items: center; gap: .5em;
  border: 1px solid var(--rule); border-radius: 999px;
  padding: .62em 1.15em; font-size: var(--step--1);
  cursor: pointer; user-select: none;
  transition: all var(--dur-fast) var(--ease-out);
}
.choice input:hover + span { border-color: color-mix(in oklab, var(--fg) 40%, transparent); }
.choice input:checked + span { background: var(--accent); border-color: var(--accent); color: var(--on-accent); font-weight: 500; }
.choice input:focus-visible + span { outline: 2px solid var(--accent); outline-offset: 3px; }

.option-card { position: relative; display: block; }
.option-card input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.option-card > .oc-body {
  display: grid; gap: .5rem; align-content: start;
  border: 1px solid var(--rule); border-radius: var(--radius-lg);
  padding: clamp(1.2rem, 2.4vw, 1.7rem);
  cursor: pointer; height: 100%;
  transition: all .35s var(--ease-out);
}
.option-card input:hover + .oc-body { border-color: color-mix(in oklab, var(--fg) 35%, transparent); }
.option-card input:checked + .oc-body {
  border-color: var(--accent);
  box-shadow: inset 0 0 0 1px var(--accent);
  background: color-mix(in oklab, var(--accent) 8%, transparent);
}
.option-card input:focus-visible + .oc-body { outline: 2px solid var(--accent); outline-offset: 3px; }
.oc-top { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.oc-title { font-family: var(--font-display); font-size: var(--step-1); }
.oc-price { font-family: var(--font-display); font-size: var(--step-1); color: var(--accent); white-space: nowrap; }
.oc-note { font-size: var(--step--1); color: var(--fg-muted); }
.oc-tag {
  display: inline-block; justify-self: start;
  font-size: 0.82rem; letter-spacing: .16em; text-transform: uppercase;
  background: var(--accent); color: var(--on-accent); padding: .28em .75em; border-radius: 999px;
}

/* --- The two occupancy cards --------------------------------------------
   Client: the two titles should sit on one line and the two buttons should
   line up. They did not, because only one card carries the "Most chosen" tag
   and the two descriptions run to different lengths. The tag now hangs in the
   card's own corner instead of pushing the title down, and each card is a
   column with the button pinned to the bottom, so both land on the same line
   however long the copy is. */
.stay-pair { align-items: stretch; }
.stay-pair .retreat-card {
  position: relative;
  display: flex; flex-direction: column;
  padding-top: clamp(2rem, 3.4vw, 3rem);
}
.stay-pair .retreat-card > .oc-tag {
  position: absolute; top: clamp(1rem, 1.8vw, 1.4rem); right: clamp(1.2rem, 2.4vw, 1.8rem);
  margin: 0;
}
.stay-pair .retreat-card > h3 { margin-top: 0; }
/* the price sits on one line across both cards, and the button falls to the
   floor of whichever card is taller */
.stay-pair .retreat-card > .stay-cta { margin-top: auto; padding-top: 1.4rem; }

/* --- 20. Booking wizard -------------------------------------------------- */
.booking { display: grid; gap: clamp(2rem, 4vw, 3.5rem); align-items: start; }
@media (min-width: 68rem) { .booking { grid-template-columns: 1fr 24rem; } }

.steps { display: flex; flex-wrap: wrap; gap: .5rem 1.4rem; margin: 0 0 2.5rem; padding: 0; list-style: none; counter-reset: step; }
.steps li {
  display: flex; align-items: center; gap: .6rem;
  font-size: 0.8rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--fg-muted); counter-increment: step;
  transition: color .4s var(--ease-out);
}
.steps li::before {
  content: counter(step);
  width: 1.7rem; height: 1.7rem; flex: none;
  display: grid; place-items: center; border-radius: 50%;
  border: 1px solid var(--rule); font-size: .7rem;
  transition: all .4s var(--ease-out);
}
.steps li[data-state="active"] { color: var(--fg); font-weight: 500; }
.steps li[data-state="active"]::before { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.steps li[data-state="done"] { color: var(--accent); }
.steps li[data-state="done"]::before { content: "\2713"; border-color: var(--accent); color: var(--accent); }

.step-panel { display: none; }
.step-panel.is-active { display: block; animation: step-in .55s var(--ease-out) both; }
@keyframes step-in { from { opacity: 0; transform: translateY(16px); } }
.step-head { margin-bottom: 2rem; }
.step-head h3 { margin-bottom: .5rem; }
.step-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2.5rem; padding-top: 1.8rem; border-top: 1px solid var(--rule); }
.step-actions .spacer { flex: 1; }

.summary {
  border: 1px solid var(--rule); border-radius: var(--radius-lg);
  padding: clamp(1.4rem, 2.6vw, 2rem);
  background: var(--card);
  display: grid; gap: 1.1rem;
}
@media (min-width: 68rem) { .summary { position: sticky; top: calc(var(--nav-h) + 1.5rem); } }
.summary h4 { font-size: var(--step-1); }
.summary-rows { display: grid; gap: .7rem; font-size: var(--step--1); }
.summary-row { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.summary-row .k { color: var(--fg-muted); }
.summary-row .v { text-align: right; font-variant-numeric: tabular-nums; }
.summary-row.is-discount .v { color: var(--accent); }
.summary-total { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding-top: 1rem; border-top: 1px solid var(--rule); }
.summary-total .k { font-size: var(--step--1); letter-spacing: .14em; text-transform: uppercase; color: var(--fg-muted); }
.summary-total .v { font-family: var(--font-display); font-size: var(--step-2); color: var(--accent); font-variant-numeric: tabular-nums; }
.summary-note { font-size: 0.86rem; color: var(--fg-muted); }

.coupon { display: flex; gap: .5rem; }
.coupon .input { flex: 1; text-transform: uppercase; letter-spacing: .1em; }
.coupon-msg { font-size: 0.86rem; }
.coupon-msg[data-ok="true"] { color: var(--accent); }
.coupon-msg[data-ok="false"] { color: #C0392B; }
.on-dark .coupon-msg[data-ok="false"] { color: #F0938A; }

.booking-success { text-align: center; display: grid; gap: 1.4rem; justify-items: center; padding-block: clamp(1rem, 3vw, 2rem); }
.success-mark {
  width: 84px; height: 84px; border-radius: 50%;
  display: grid; place-items: center;
  border: 1px solid var(--accent); color: var(--accent);
  animation: pop .7s var(--ease-out) both;
}
.success-mark svg { width: 34px; height: 34px; }
.success-mark svg path { stroke-dasharray: 48; stroke-dashoffset: 48; animation: draw .8s .25s var(--ease-out) forwards; }
@keyframes pop { from { transform: scale(.7); opacity: 0; } }
@keyframes draw { to { stroke-dashoffset: 0; } }

/* --- 21. Footer ---------------------------------------------------------- */
.footer { background: var(--deep-band); color: var(--paper);
  --accent: var(--peach);
  --eyebrow-fg: var(--peach); padding-block: clamp(2.4rem, 4.5vw, 3.6rem) 1.4rem; position: relative; isolation: isolate; overflow: hidden; }
.footer a { text-decoration: none; }
.footer-top { display: grid; gap: clamp(1.6rem, 3vw, 2.4rem); }
@media (min-width: 60rem) { .footer-top { grid-template-columns: 1.4fr 1fr 1fr 1.3fr; } }
.footer .brand-mark { background-color: var(--peach); width: 118px; height: 62px; }
.footer h4 { font-family: var(--font-sans); font-size: .76rem; letter-spacing: .16em; text-transform: uppercase; color: var(--peach); margin-bottom: .8rem; font-weight: 500; }
.footer h4.footer-sub { margin-top: 2rem; }
.footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .1rem; font-size: var(--step--1); }
.footer ul a {
  display: inline-flex; align-items: center; min-height: 26px; padding-block: .2rem;
  color: color-mix(in oklab, var(--paper) 78%, transparent);
  transition: color var(--dur-fast) var(--ease-out), padding-left var(--dur-fast) var(--ease-out);
}
.footer ul a:hover { color: var(--peach); padding-left: .35rem; }
/* On a phone the footer is a wall of links a thumb has to hit, so every one of
   them gets a full 44px row rather than the height of its own text. */
@media (max-width: 40rem) {
  .footer ul { gap: 0; }
  /* a three-letter link like FAQ is a 23px-wide target without this */
  .footer ul a, .drawer-foot a { min-height: 44px; min-width: 44px; align-items: center; }
  .footer-bottom a { min-height: 44px; }
  .footer-bottom .flex { gap: 1.6rem; }
}
.footer-bottom {
  margin-top: clamp(1.4rem, 2.6vw, 2.2rem); padding-top: 1.2rem;
  border-top: 1px solid color-mix(in oklab, var(--paper) 16%, transparent);
  display: flex; flex-wrap: wrap; gap: 1rem 2rem; align-items: center; justify-content: space-between;
  font-size: .85rem; color: color-mix(in oklab, var(--paper) 72%, transparent);
}
.footer-bottom a { display: inline-flex; align-items: center; min-height: 26px; }
.footer-bottom a:hover { color: var(--peach); }
.socials { display: flex; gap: .6rem; }
.socials a {
  width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%;
  border: 1px solid color-mix(in oklab, var(--paper) 22%, transparent);
  color: var(--paper);
  transition: all var(--dur-fast) var(--ease-out);
}
.socials a:hover { background: var(--peach); color: var(--maroon-deep); border-color: var(--peach); transform: translateY(-2px); }
.socials svg { width: 17px; height: 17px; }
.newsletter { display: flex; gap: .5rem; margin-top: 1rem; }
.newsletter .btn { flex: none; }
.newsletter .input {
  background: color-mix(in oklab, var(--paper) 8%, transparent);
  border-color: color-mix(in oklab, var(--paper) 22%, transparent);
  color: var(--paper);
}
.newsletter .input::placeholder { color: color-mix(in oklab, var(--paper) 45%, transparent); }
.newsletter-msg { font-size: 0.86rem; color: var(--peach); margin-top: .6rem; min-height: 1.2em; }

.footer-wordmark {
  margin-top: clamp(1.2rem, 2.4vw, 2rem);
  font-family: var(--font-display); font-weight: 500;
  font-size: clamp(2.4rem, 10vw, 7.5rem); line-height: .85; letter-spacing: .06em;
  color: color-mix(in oklab, var(--paper) 9%, transparent);
  text-align: center; user-select: none; pointer-events: none;
}

/* --- 22. Page chrome: loader, curtain, cursor, progress ------------------ */
.loader {
  position: fixed; inset: 0; z-index: 200;
  display: grid; place-items: center; align-content: center;
  background: var(--maroon-deep); color: var(--peach);
  transition: clip-path .7s var(--ease-in-out);
  clip-path: inset(0 0 0 0);
}
.loader[data-done="true"] { clip-path: inset(0 0 100% 0); pointer-events: none; }
.loader-mark { width: min(46vw, 260px); }
.loader-mark path { stroke-dasharray: 400; stroke-dashoffset: 400; animation: draw-mark .9s var(--ease-out) forwards; }
.loader-mark .mark-swash { animation-delay: .05s; }
.loader-mark .mark-heart { animation-delay: .22s; }
@keyframes draw-mark { to { stroke-dashoffset: 0; } }
.loader-word {
  margin-top: 1.6rem; text-align: center;
  font-size: 0.82rem; letter-spacing: .42em; text-transform: uppercase;
  opacity: 0; animation: fade-up .5s .45s var(--ease-out) forwards;
}
@keyframes fade-up { from { opacity: 0; transform: translateY(10px); } to { opacity: .8; transform: none; } }

/* The slow-page indicator. Not a transition &mdash; a page that loads normally never
   shows this at all. It is deliberately small and centred rather than a
   full-screen wipe, so a fast connection never sees a flash of anything. */
.page-wait {
  position: fixed; inset: 0; z-index: 190; pointer-events: none;
  display: grid; place-items: center; align-content: center; gap: 1.1rem;
  background: color-mix(in oklab, var(--bg) 88%, transparent);
  opacity: 0; visibility: hidden;
  transition: opacity .28s var(--ease-out), visibility .28s;
}
/* The blur belongs to the visible state only. It used to sit on the base rule,
   so every page on the site kept a full-viewport compositing layer alive,
   blurring continuously, for an overlay nobody could see — the single most
   expensive thing the browser was being asked to do here. visibility:hidden
   stops it being painted; it does not free the layer. The fade is kept, which
   it would not be if the box were display:none. */
.page-wait[data-on="true"] {
  opacity: 1; visibility: visible;
  backdrop-filter: blur(3px);
}
.page-wait-mark { width: 128px; height: 68px; background-color: var(--accent); opacity: .9; }
.page-wait-dots { display: flex; gap: .5rem; }
.page-wait-dots i {
  width: 6px; height: 6px; border-radius: 50%;
  background: color-mix(in oklab, var(--accent) 55%, transparent);
}
/* only while it is actually on screen &mdash; otherwise three elements animate for
   the entire life of every page for nobody */
.page-wait[data-on="true"] .page-wait-dots i { animation: wait-pulse 1.1s ease-in-out infinite; }
.page-wait[data-on="true"] .page-wait-dots i:nth-child(2) { animation-delay: .16s; }
.page-wait[data-on="true"] .page-wait-dots i:nth-child(3) { animation-delay: .32s; }
@keyframes wait-pulse {
  0%, 100% { transform: scale(.7); opacity: .4; }
  50%      { transform: scale(1);  opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .page-wait, .page-wait-dots i { transition: none; animation: none; }
}

.progress {
  position: fixed; top: 0; left: 0; z-index: 70;
  height: 2px; width: 100%;
  background: linear-gradient(90deg, var(--maroon), var(--gold));
  transform: scaleX(var(--p, 0)); transform-origin: left;
}

.to-top {
  position: fixed; right: clamp(1rem, 3vw, 2.2rem); bottom: clamp(1rem, 3vw, 2.2rem); z-index: 45;
  width: 50px; height: 50px; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--accent); color: var(--on-accent); border: 0; cursor: pointer;
  opacity: 0; transform: translateY(14px) scale(.9); pointer-events: none;
  transition: all .5s var(--ease-out);
  box-shadow: 0 12px 30px -12px rgb(var(--shadow-color) / .6);
}
.to-top.is-on { opacity: 1; transform: none; pointer-events: auto; }
.to-top:hover { background: var(--maroon-deep); transform: translateY(-3px); }

/* --- 23. Interior page headers ------------------------------------------- */
.page-head {
  position: relative;
  padding-block: clamp(4rem, 9vw, 8.5rem) clamp(3rem, 6vw, 5rem);
  background: linear-gradient(100deg,
    var(--paper) 0%, var(--paper) 32%,
    color-mix(in oklab, var(--peach) 62%, var(--paper)) 64%,
    color-mix(in oklab, var(--maroon-glow) 34%, var(--peach)) 100%);
  overflow: hidden;
}
/* The dark head (book.html) and the retreat's own poster-derived head keep
   their existing, deliberately different treatments. */
.page-head.is-dark, .page-head.prana-deep { background: inherit; }
.page-head.is-dark { background:
    radial-gradient(66% 120% at 88% 4%, color-mix(in oklab, var(--maroon-glow) 78%, transparent) 0%, transparent 64%),
    radial-gradient(34% 60% at 94% 26%, color-mix(in oklab, var(--gold) 46%, transparent) 0%, transparent 66%),
    linear-gradient(to top, color-mix(in oklab, var(--maroon-glow) 30%, transparent) 0%, transparent 30%),
    var(--forest-deep);
}
.page-head.prana-deep { background: var(--prana-deep); }

/* The illustrated scene: a mountain range bleeding in from the right, a soft
   sun, and one small motif that changes what the page is about. Absent on the
   dark and retreat heads, which are their own thing. */
.page-head:not(.is-dark):not(.prana-deep) .page-head-scene {
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
}
.page-head-scene .scene-ridge {
  position: absolute; inset: 0 0 0 auto; width: 74%; height: 100%;
  background: url("../img/ridge.webp") center bottom / cover no-repeat;
  /* fades into the flat gradient on the left rather than showing a hard edge */
  -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 42%, #000 100%);
  mask-image: linear-gradient(to right, transparent 0%, #000 42%, #000 100%);
  opacity: .92;
}
.page-head-scene .scene-sun {
  position: absolute; top: 12%; right: 20%;
  width: clamp(56px, 7vw, 104px); aspect-ratio: 1; border-radius: 50%;
  background: radial-gradient(circle,
    #FFF8EA 0%, color-mix(in oklab, var(--gold) 75%, #fff) 38%, transparent 74%);
  opacity: .95;
}
.page-head-scene .scene-motif {
  position: absolute;
  background-color: color-mix(in oklab, #fff 66%, var(--gold));
  opacity: .6;
  mask-repeat: no-repeat; mask-position: center; mask-size: contain;
  -webkit-mask-repeat: no-repeat; -webkit-mask-position: center; -webkit-mask-size: contain;
}
.scene-birds  .scene-motif { top: 2%;   right: 3%;  width: clamp(90px, 11vw, 150px);  aspect-ratio: 200/90;
  mask-image: url("../img/scene-birds.svg");  -webkit-mask-image: url("../img/scene-birds.svg"); }
.scene-lotus  .scene-motif { bottom: 4%; right: 8%;  width: clamp(150px, 17vw, 240px); aspect-ratio: 1;
  mask-image: url("../img/scene-lotus.svg");  -webkit-mask-image: url("../img/scene-lotus.svg"); }
.scene-mandala .scene-motif{ top: 4%;   right: 5%;  width: clamp(160px, 18vw, 260px); aspect-ratio: 1;
  mask-image: url("../img/scene-mandala.svg"); -webkit-mask-image: url("../img/scene-mandala.svg"); }
.scene-trees  .scene-motif { bottom: 0; right: 7%;  width: clamp(150px, 16vw, 220px); aspect-ratio: 200/210;
  mask-image: url("../img/scene-trees.svg");  -webkit-mask-image: url("../img/scene-trees.svg"); }
.scene-leaf   .scene-motif { top: 40%;  right: 10%; width: clamp(70px, 9vw, 116px);   aspect-ratio: 1;
  mask-image: url("../img/scene-leaf.svg");   -webkit-mask-image: url("../img/scene-leaf.svg"); }
/* pages centred on the headline (404) skip the off-centre motif — it would
   compete with text that has nowhere fixed to sit beside */
.scene-plain .scene-motif, .scene-plain .scene-sun { display: none; }

.page-head > * { position: relative; z-index: 1; }
.page-head h1 { max-width: 22ch; text-wrap: balance; }
.page-head .lead { max-width: 52ch; }
.page-head.is-dark {
  --heading: var(--fg);
  /* a sunrise coming up on the right and its light catching the base; without
     them the deep band is a flat slab */
  background:
    radial-gradient(66% 120% at 88% 4%, color-mix(in oklab, var(--maroon-glow) 78%, transparent) 0%, transparent 64%),
    radial-gradient(34% 60% at 94% 26%, color-mix(in oklab, var(--gold) 46%, transparent) 0%, transparent 66%),
    linear-gradient(to top, color-mix(in oklab, var(--maroon-glow) 30%, transparent) 0%, transparent 30%),
    var(--forest-deep);
  --bg: var(--forest-deep);
  --fg: var(--paper);
  --fg-muted: color-mix(in oklab, var(--paper) 78%, transparent);
  --accent: var(--gold);
  --eyebrow-fg: var(--gold);
  --on-accent: var(--forest-deep);
  --rule: color-mix(in oklab, var(--paper) 18%, transparent);
  --card: color-mix(in oklab, var(--paper) 6%, transparent);
  color: var(--paper);
}
.page-head.is-dark .eyebrow { color: var(--gold); }
.page-head.is-dark .lead { color: color-mix(in oklab, var(--paper) 82%, transparent); }
.crumbs {
  display: flex; gap: .55rem; align-items: center; flex-wrap: wrap;
  font-size: 0.8rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--fg-muted); margin: 0 0 1.6rem; list-style: none; padding: 0;
}
.page-head.is-dark .crumbs { color: color-mix(in oklab, var(--paper) 55%, transparent); }
.crumbs a { text-decoration: none; display: inline-flex; align-items: center; min-height: 26px; }
.crumbs a:hover { color: var(--accent); }
.page-head.is-dark .crumbs a:hover { color: var(--gold); }
.crumbs li { display: flex; align-items: center; min-height: 26px; }
.crumbs li + li::before { content: "/"; margin-right: .55rem; opacity: .5; }

/* --- 24. Team ------------------------------------------------------------ */
.person { display: grid; gap: 1.2rem; align-content: start; }
.person-photo {
  aspect-ratio: 4 / 5; border-radius: var(--radius-lg); overflow: hidden;
  background: linear-gradient(160deg, var(--paper-3), var(--paper-2));
  display: grid; place-items: center; position: relative;
}
.on-dark .person-photo { background: linear-gradient(160deg, var(--forest-lift), var(--forest-deep)); }
.person-photo .initials {
  font-family: var(--font-display); font-size: clamp(3rem, 7vw, 5rem); font-weight: 300;
  color: color-mix(in oklab, var(--accent) 40%, transparent);
}
.person-photo img { width: 100%; height: 100%; object-fit: cover;
  filter: saturate(.92) contrast(1.02); transition: transform 1.1s var(--ease-out); }
.person:hover .person-photo img { transform: scale(1.04); }
/* One person in a row built for three left two thirds of the screen empty.
   The portrait grows, the text takes a comfortable measure beside it, and the
   pair sits centred with nothing pretending to be there. */
.team-solo { display: grid; gap: clamp(1.6rem, 4vw, 3.2rem); }
@media (min-width: 52rem) {
  .team-solo { grid-template-columns: minmax(0, 22rem) minmax(0, 34rem); justify-content: center; align-items: center; }
}
.team-solo .person { display: contents; }
.team-solo .person-photo { border-radius: var(--radius-lg); overflow: hidden; }
.team-solo .person-photo img { width: 100%; height: auto; display: block; }
.person-sign {
  font-family: var(--font-display); font-style: italic; font-size: var(--step-1);
  color: var(--accent); margin-top: .4rem;
}
.person-role { font-size: 0.8rem; letter-spacing: .16em; text-transform: uppercase; color: var(--accent); margin-bottom: .45rem; }
.person h3 { font-size: var(--step-1); margin-bottom: .6rem; }
.person p { font-size: var(--step--1); color: var(--fg-muted); }

/* --- 25. Timeline -------------------------------------------------------- */
.timeline { position: relative; display: grid; gap: 0; }
.timeline::before {
  content: ""; position: absolute; left: 7px; top: .6rem; bottom: .6rem; width: 1px;
  background: linear-gradient(var(--accent), transparent); opacity: .4;
}
.tl-item { position: relative; padding: 0 0 2.4rem 2.6rem; }
.tl-item::before {
  content: ""; position: absolute; left: 0; top: .45rem; width: 15px; height: 15px;
  border-radius: 50%; border: 1px solid var(--accent); background: var(--bg);
}
.tl-item::after {
  content: ""; position: absolute; left: 5px; top: .75rem; width: 5px; height: 5px;
  border-radius: 50%; background: var(--accent);
  transform: scale(0); transition: transform .5s var(--ease-out) .2s;
}
.tl-item.is-in::after { transform: scale(1); }
.tl-year { font-size: 0.8rem; letter-spacing: .16em; text-transform: uppercase; color: var(--accent); margin-bottom: .5rem; }
.tl-item h3 { font-size: var(--step-1); margin-bottom: .5rem; }
.tl-item p { font-size: var(--step--1); color: var(--fg-muted); }

/* --- 26. Utilities ------------------------------------------------------- */
.center { text-align: center; }
.mt-0 { margin-top: 0; } .mt-1 { margin-top: 1rem; } .mt-2 { margin-top: 2rem; } .mt-3 { margin-top: 3rem; }
/* mt-4 was being used in two places and had never been written, so both sat
   flush against whatever came before them - the occupancy cards on the
   retreat page were thirteen pixels below a list they should have been
   clearly separate from. */
.mt-4 { margin-top: 4rem; }
.mb-0 { margin-bottom: 0; }
.flex { display: flex; gap: 1rem; flex-wrap: wrap; align-items: center; }
.badge {
  display: inline-flex; align-items: center; gap: .5em;
  border: 1px solid var(--rule); border-radius: 999px;
  padding: .45em 1em; font-size: 0.8rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--fg-muted);
}
.badge .pip { width: 6px; height: 6px; border-radius: 50%; background: var(--accent); flex: none; }
.badge .pip.is-live { animation: pip 2s ease-in-out infinite; }
@keyframes pip {
  0%, 100% { box-shadow: 0 0 0 0 color-mix(in oklab, var(--accent) 55%, transparent); }
  70%      { box-shadow: 0 0 0 7px transparent; }
}
.callout { border-left: 2px solid var(--accent); padding: .3rem 0 .3rem 1.4rem; color: var(--fg-muted); font-size: var(--step--1); }

.countdown { display: flex; gap: clamp(.8rem, 2vw, 1.8rem); flex-wrap: wrap; }
.cd-unit { text-align: center; min-width: 4.2rem; }
.cd-num { font-family: var(--font-display); font-size: var(--step-3); line-height: 1; color: var(--accent); font-variant-numeric: tabular-nums; display: block; }
.cd-label { font-size: 0.82rem; letter-spacing: .16em; text-transform: uppercase; color: var(--fg-muted); margin-top: .4rem; display: block; }

.toast {
  position: fixed; left: 50%; bottom: 2rem; z-index: 120;
  /* purely informational &mdash; it must never intercept a click meant for the
     form control underneath it */
  pointer-events: none;
  transform: translate(-50%, 140%);
  background: var(--forest-deep); color: var(--paper);
  padding: .9rem 1.4rem; border-radius: 999px;
  font-size: var(--step--1); box-shadow: 0 18px 44px -20px rgb(0 0 0 / .6);
  transition: transform .55s var(--ease-out);
  max-width: calc(100vw - 2rem);
}
.toast.is-on { transform: translate(-50%, 0); }

/* --- 29. Pillars with Sabrr's own line icons ----------------------------- */
.pillar-icon {
  display: block;
  width: 46px; height: 46px; margin-bottom: 1.1rem;
  background-color: var(--accent);
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-position: left center; mask-position: left center;
  -webkit-mask-size: contain; mask-size: contain;
  transition: transform .5s var(--ease-out);
}
.pillar:hover .pillar-icon { transform: translateY(-3px); }
.pillar--icon { border-top: 0; padding-top: 0; }

/* --- 30. "I want to&hellip;" intent cards --------------------------------------- */
.intent-grid {
  display: grid; gap: clamp(.9rem, 1.8vw, 1.4rem);
  grid-template-columns: repeat(2, 1fr);
}
@media (min-width: 46rem) { .intent-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 72rem) { .intent-grid { grid-template-columns: repeat(6, 1fr); } }

.intent {
  position: relative;
  display: flex; flex-direction: column; align-items: center; gap: .9rem;
  text-align: center; text-decoration: none;
  padding: clamp(1.5rem, 2.6vw, 2.1rem) clamp(.7rem, 1.6vw, 1.1rem);
  border: 1px solid var(--rule); border-radius: var(--radius-lg);
  background: var(--card);
  transition: border-color .45s var(--ease-out), transform .45s var(--ease-out),
              background .45s var(--ease-out);
}
.intent:hover {
  transform: translateY(-4px);
  border-color: color-mix(in oklab, var(--accent) 55%, transparent);
  background: color-mix(in oklab, var(--accent) 6%, var(--card));
}
.intent img { width: clamp(58px, 8.5vw, 82px); height: auto; transition: transform .55s var(--ease-out); }
.intent:hover img { transform: scale(1.08) rotate(-2deg); }
.intent span {
  font-size: var(--step--1); line-height: 1.35; font-weight: 400;
  text-wrap: balance;
}

/* --- 31. Stay gallery ---------------------------------------------------- */
.stay-grid {
  display: grid; gap: clamp(.6rem, 1.4vw, 1rem);
  grid-template-columns: repeat(2, 1fr);
}
@media (min-width: 56rem) { .stay-grid { grid-template-columns: repeat(4, 1fr); } }
.stay-grid .figure { aspect-ratio: 1; }
.stay-grid .figure img { transition: transform 1.1s var(--ease-out); }
.stay-grid .figure:hover img { transform: scale(1.06); }
.stay-cap {
  font-size: 0.82rem; letter-spacing: .18em; text-transform: uppercase;
  color: var(--fg-muted); margin-top: .7rem; display: block;
}

/* --- 32. Programme list (the retreat's real syllabus) -------------------- */
.programme { display: grid; gap: 0; }
.programme-item {
  display: grid; gap: .4rem 1.4rem; align-items: baseline;
  grid-template-columns: 1fr;
  padding-block: 1.15rem;
  border-top: 1px solid var(--rule);
}
@media (min-width: 44rem) { .programme-item { grid-template-columns: 13rem 1fr; } }
.programme-item:last-child { border-bottom: 1px solid var(--rule); }
.programme-item h4 {
  font-family: var(--font-display); font-size: var(--step-1);
  color: var(--accent); font-weight: 400;
}
.programme-item p { font-size: var(--step--1); color: var(--fg-muted); }

/* --- 33. Full-bleed image band ------------------------------------------ */
.band {
  position: relative; overflow: hidden; isolation: isolate;
  min-height: clamp(20rem, 46vh, 32rem);
  display: grid; align-items: center;
}
.band-media { position: absolute; inset: 0; z-index: 0; }
.band-media img { width: 100%; height: 100%; object-fit: cover; }
.band-media::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, rgb(20 8 8 / .82) 0%, rgb(20 8 8 / .45) 55%, rgb(20 8 8 / .15) 100%);
}
.band .wrap { position: relative; z-index: 2; }
.band blockquote {
  margin: 0; color: var(--paper);
  font-family: var(--font-display); font-weight: 300; font-style: italic;
  font-size: var(--step-3); line-height: 1.18; max-width: 18ch;
  text-wrap: balance;
}
.band cite {
  display: block; margin-top: 1.4rem; font-style: normal;
  font-size: 0.82rem; letter-spacing: .17em; text-transform: uppercase;
  color: var(--peach);
}

/* A laptop screen is wide but not tall. Everything above still applies; the
   hero simply stops asking for room the screen does not have. */
@media (min-width: 62rem) and (max-height: 920px) {
  .hero { padding-block: clamp(1.2rem, 3vh, 2.4rem); }
  .hero h1 { font-size: clamp(2.6rem, 7.6vh, 4.2rem); }
  .hero .eyebrow { margin-bottom: .9rem; }
  .hero-lead { margin-bottom: 1rem; }
  .hero-cta { margin-top: 1.5rem; }
  /* Sized on the column, not the arch inside it: the quote card is centred on
     this box, so shrinking only the arch would leave the card off to one side. */
  .hero-figure { width: min(100%, calc(54svh * 4 / 5.1)); margin-inline: auto; }
  .breathe-again { margin-top: .8rem; }
}

/* --- 34. Responsive refinements ----------------------------------------- */
@media (max-width: 30rem) {
  :root { --nav-h: 66px; --gutter: 1.15rem; }
  .btn { padding: 1em 1.5em; letter-spacing: .1em; }
  .footer-bottom { flex-direction: column; align-items: flex-start; }
  /* Five labelled steps need more width than a phone has, so they wrapped to
     two rows of small caps above the form. The numbers stay — they say where
     you are and how far is left — and only the step you are on is named. */
  .steps { gap: .5rem; flex-wrap: nowrap; align-items: center; }
  .steps li { gap: 0; min-width: 0; }
  /* Only the step you are on is named. The others drop their label rather than
     shrink it to 0px — text at 0px still occupies the layout and is impossible
     to tell from a mistake. Each item carries its name in aria-label, so what
     a screen reader announces does not change with the width of the screen. */
  .steps li:not([data-state="active"]) > span { display: none; }
  .steps li::before { font-size: .7rem; }
  .steps li[data-state="active"] {
    font-size: 0.78rem; gap: .5rem; flex: 1 1 auto;
    overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
  }
  .day-tab { font-size: 0.82rem; padding: .6em 1.05em; }
  .quote-card blockquote { font-size: var(--step-0); }
}
@media (max-width: 22.5rem) {
  /* 320px &mdash; the narrowest phone still in use */
  :root { --step-5: 2.6rem; --step-4: 2.1rem; }
  /* 320px has room for the numbers alone; aria-label still carries the names */
  .steps li > span { display: none; }
  .brand-mark { width: 92px; height: 50px; }
}
@media (min-width: 120rem) {
  /* keep line lengths sane on very large displays */
  :root { --section-y: 7rem; }
  .wrap-wide { max-width: 1720px; }
}

/* --- 41. The retreat itinerary ------------------------------------------- */
/* Four days at a glance, then one large door into the full thing. The PDF was
   previously a ghost button under the countdown at the very foot of the page,
   which is after somebody has already decided rather than while they are
   deciding. */
.itin-days {
  list-style: none; margin: 0 0 clamp(1.6rem, 3vw, 2.4rem); padding: 0;
  display: grid; gap: clamp(.6rem, 1.2vw, .9rem);
  max-width: 46rem; margin-inline: auto;
}
.itin-days > li {
  display: grid; align-items: baseline;
  grid-template-columns: 4.6rem 7rem 1fr;
  gap: 0 clamp(.7rem, 1.6vw, 1.2rem);
  padding: clamp(.75rem, 1.6vw, 1rem) clamp(.9rem, 2vw, 1.3rem);
  border: 1px solid var(--rule); border-radius: var(--radius-lg);
  background: var(--card);
}
.itin-n {
  font-family: var(--font-display); font-size: var(--step-0);
  color: var(--accent);
}
.itin-date { font-size: var(--step--1); color: var(--fg-muted); white-space: nowrap; }
.itin-t { font-size: var(--step--1); }
@media (max-width: 40rem) {
  .itin-days > li { grid-template-columns: 4.4rem 1fr; }
  .itin-date { grid-column: 2; }
  .itin-t { grid-column: 1 / -1; margin-top: .35rem; }
}

/* The door itself: as large as a card, because it is the answer to the
   question people actually have. */
.itin-open {
  display: flex; align-items: center; gap: clamp(1rem, 2.4vw, 1.6rem);
  max-width: 46rem; margin-inline: auto;
  padding: clamp(1.1rem, 2.4vw, 1.6rem) clamp(1.2rem, 2.8vw, 1.9rem);
  border-radius: var(--radius-lg);
  border: 1px solid color-mix(in oklab, var(--accent) 34%, transparent);
  background: color-mix(in oklab, var(--accent) 6%, var(--card));
  text-decoration: none; color: inherit;
  box-shadow: 0 18px 40px -28px rgb(90 25 15 / .5);
  transition: transform .45s var(--ease-out), box-shadow .45s var(--ease-out),
              border-color .45s var(--ease-out), background .45s var(--ease-out);
}
.itin-open:hover {
  transform: translateY(-3px);
  border-color: var(--accent);
  background: color-mix(in oklab, var(--accent) 10%, var(--card));
  box-shadow: 0 26px 50px -26px rgb(90 25 15 / .6);
}
.itin-open:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.itin-open-icon { flex: none; color: var(--accent); }
.itin-open-icon svg { width: clamp(2rem, 4vw, 2.6rem); height: auto; display: block; }
.itin-open-text { display: grid; gap: .2rem; }
.itin-open-text strong {
  font-family: var(--font-display); font-size: var(--step-1); font-weight: 500;
  color: var(--accent);
}
.itin-open-go {
  margin-left: auto; flex: none; color: var(--accent);
  font-size: var(--step-1); transition: transform .45s var(--ease-out);
}
.itin-open:hover .itin-open-go { transform: translateX(4px); }
@media (max-width: 34rem) {
  .itin-open { flex-wrap: wrap; }
  .itin-open-go { margin-left: 0; }
}

/* --- 36. Practice index in the offerings page head ---------------------- */
.jump { display: grid; gap: 0; border-top: 1px solid var(--rule); }
/* Sitting on the illustrated scene rather than the page's own ground, the
   quick-nav needs a controlled surface under it — the gradient runs dark on
   the right, exactly where this list sits. */
.page-head .jump {
  --fg-muted: color-mix(in oklab, var(--ink) 62%, transparent);
  --rule: color-mix(in oklab, var(--ink) 12%, transparent);
  background: color-mix(in oklab, var(--paper) 88%, transparent);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid color-mix(in oklab, #fff 60%, transparent);
  border-top: 1px solid color-mix(in oklab, #fff 60%, transparent);
  border-radius: var(--radius-lg);
  padding: .4rem clamp(1rem, 2vw, 1.6rem);
  box-shadow: 0 24px 50px -24px rgb(60 20 10 / .35);
}
.page-head .jump a { border-bottom-color: color-mix(in oklab, var(--ink) 12%, transparent); }
.page-head .jump a:last-child { border-bottom: 0; }
.page-head .jump-name { color: var(--ink); }
.jump a {
  display: grid; gap: .1rem .9rem;
  grid-template-columns: auto 1fr;
  align-items: baseline;
  padding: 1rem .4rem;
  border-bottom: 1px solid var(--rule);
  text-decoration: none;
  transition: padding-left .4s var(--ease-out), background .4s var(--ease-out);
}
.jump a:hover { padding-left: 1rem; background: color-mix(in oklab, var(--accent) 6%, transparent); }
.jump-num {
  grid-row: span 2;
  font-family: var(--font-display); font-size: var(--step-1);
  color: color-mix(in oklab, var(--accent) 42%, transparent);
  transition: color .4s var(--ease-out);
}
.jump a:hover .jump-num { color: var(--accent); }
.jump-name {
  font-family: var(--font-display); font-size: var(--step-1); font-weight: 400;
  line-height: 1.15;
}
.jump a:hover .jump-name { color: var(--accent); }
.jump-note { font-size: var(--step--1); color: var(--fg-muted); letter-spacing: .01em; }

/* --- 37. Dated sessions -------------------------------------------------- */
.event {
  display: grid; grid-template-columns: auto 1fr; gap: clamp(1rem, 2.2vw, 1.6rem);
  align-items: start;
  border: 1px solid var(--rule); border-radius: var(--radius-lg);
  padding: clamp(1.3rem, 2.6vw, 1.9rem);
  background: var(--card);
  transition: border-color .45s var(--ease-out), transform .45s var(--ease-out);
}
.event:hover { border-color: color-mix(in oklab, var(--accent) 50%, transparent); transform: translateY(-3px); }
.event-when {
  display: grid; justify-items: center; align-content: center; gap: .1rem;
  min-width: 4.2rem; padding: .7rem .5rem;
  border-radius: var(--radius-lg);
  background: color-mix(in oklab, var(--accent) 12%, transparent);
  color: var(--accent);
}
.event-day { font-family: var(--font-display); font-size: var(--step-2); line-height: 1; font-variant-numeric: tabular-nums; }
.event-mon { font-size: 0.8rem; letter-spacing: .16em; text-transform: uppercase; }
.event-body h3 { font-size: var(--step-1); margin-bottom: .3rem; }
.event-meta { font-size: var(--step--1); color: var(--accent); margin-bottom: .6rem; letter-spacing: .01em; }
.event-body p { font-size: var(--step--1); color: var(--fg-muted); }

/* the partner mark, at its own colour rather than tinted */
.partner {
  display: inline-flex; align-items: center; gap: 1rem;
  padding-top: 1.4rem; border-top: 1px solid var(--rule);
}
.partner img { width: clamp(58px, 8vw, 78px); height: auto; }
.partner span { font-size: var(--step--1); color: var(--fg-muted); max-width: 22ch; }

/* --- 38. Ground depth ---------------------------------------------------- */
/* A large field of one flat value is what makes a page look dull. Each ground
   gets a soft light source instead &mdash; barely visible on its own, but it gives
   the eye somewhere to travel. */
.section::before,
.page-head::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
}
.section:not(.on-dark):not(.on-maroon):not(.prana):not(.prana-deep)::before,
.page-head:not(.is-dark):not(.prana-deep)::before {
  background:
    radial-gradient(110% 70% at 50% -10%, rgb(255 253 249 / .85) 0%, transparent 58%),
    radial-gradient(80% 60% at 88% 110%, color-mix(in oklab, var(--maroon) 4%, transparent) 0%, transparent 60%);
}
.section.on-dark::before,
.page-head.is-dark::before {
  background:
    radial-gradient(95% 65% at 18% -5%, color-mix(in oklab, var(--forest-lift) 70%, transparent) 0%, transparent 62%),
    radial-gradient(70% 55% at 92% 105%, color-mix(in oklab, var(--gold) 13%, transparent) 0%, transparent 60%);
}
.section.on-maroon::before {
  background:
    radial-gradient(95% 65% at 22% -8%, color-mix(in oklab, var(--maroon-glow) 62%, transparent) 0%, transparent 62%),
    radial-gradient(70% 55% at 90% 108%, color-mix(in oklab, var(--peach) 14%, transparent) 0%, transparent 58%);
}

/* --- 35. Pillar icon masks (inlined: see build/inline-masks.py) --------- */
.icon-tradition { -webkit-mask-image: url("data:image/webp;base64,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"); mask-image: url("data:image/webp;base64,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"); }
.icon-safe { -webkit-mask-image: url("data:image/webp;base64,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"); mask-image: url("data:image/webp;base64,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"); }
.icon-expert { -webkit-mask-image: url("data:image/webp;base64,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"); mask-image: url("data:image/webp;base64,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"); }
.icon-global { -webkit-mask-image: url("data:image/webp;base64,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"); mask-image: url("data:image/webp;base64,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"); }

/* --- 27. Motion preferences ---------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
  [data-reveal] { opacity: 1 !important; transform: none !important; clip-path: none !important; }
  [data-reveal="mask"] > * { clip-path: none !important; }
  .line-inner { transform: none !important; }
  .loader { display: none; }
  .breath-orb { transform: scale(.9) !important; }
}

/* --- 28. Print ----------------------------------------------------------- */
@media print {
  .nav, .announce, .drawer, .to-top, .loader, .page-wait, .progress, .footer-wordmark { display: none !important; }
  body { background: #fff; color: #000; }
  .section { padding-block: 1.5rem; }
}

/* --- 39. Hero figure, now that the breath has moved to the opening --------- */
.hero-figure { position: relative; }
.hero-figure .figure-arch { aspect-ratio: 4 / 5.4; }
@media (min-width: 62rem) {
  .hero-figure .figure-arch { aspect-ratio: 4 / 5.1; }
  /* held against the screen, not only its own proportions, so the hero ends
     above the fold on an ordinary laptop */
  .hero-figure { width: min(100%, calc(58svh * 4 / 5.1)); margin-inline: auto; }
}
.hero-figure .figure-arch img { width: 100%; height: 100%; object-fit: cover; }
.hero-quote {
  margin: 0; position: absolute; left: 50%; bottom: 1.4rem; transform: translateX(-50%);
  width: min(86%, 23rem);
  background: color-mix(in oklab, var(--paper) 97%, transparent);
  border: 1px solid var(--rule); border-radius: var(--radius-lg);
  padding: 1.1rem 1.4rem;
  box-shadow: 0 20px 50px -26px rgb(var(--shadow-color) / .45);
}
.hero-quote blockquote {
  margin: 0; font-family: var(--font-display); font-style: italic; font-weight: 500;
  line-height: 1.34; color: var(--fg);
  /* One line, always. It is a single short phrase and it reads as one thought;
     broken over two it reads as a sentence that ran out of room.

     The cap is why: at the browser's default text size this is var(--step-0)
     and fits easily, but a phone set to 130% text - which plenty are - pushed
     it onto a second line. min() lets the reader's own setting raise it right
     up to the point where the line would break, and no further, so the
     preference is honoured as far as it can be rather than ignored. */
  font-size: min(var(--step-0), 4.1vw);
  white-space: nowrap;
}
/* The quote belongs on the photograph at every width. It used to drop out of
   the picture and sit underneath it on anything narrower than a laptop, which
   is where most people meet this page. It stays on the image and only gets
   tighter. */
@media (max-width: 62rem) {
  .hero-quote { width: min(90%, 23rem); bottom: 1rem; padding: .85rem 1.1rem; }
}
@media (max-width: 30rem) {
  .hero-quote { width: calc(100% - 1.6rem); bottom: .8rem; padding: .75rem .95rem; }
  /* Capped the same way as the rule above, or this one undoes it and the
     line breaks again on a phone set to large text. */
  .hero-quote blockquote { font-size: min(var(--step--1), 4.1vw); line-height: 1.3; }
}

/* --- 40. The events page -------------------------------------------------- */
/* Cards size to their own content. Stretching them to match the tallest left
   a short one with a foot of empty card under its button. */
.event-grid { display: grid; gap: clamp(1rem, 2vw, 1.5rem); align-items: start; }
@media (min-width: 52rem) { .event-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 62rem) {
  /* exactly three dates make one clean row rather than two-then-one */
  .event-grid:has(> :last-child:nth-child(3)) { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 52rem) {
  /* any other odd count: the last card sits in the middle, so what is left
     over falls evenly on both sides instead of all on one */
  .event-grid:not(:has(> :last-child:nth-child(3))) > .event:last-child:nth-child(odd):not(:only-child) {
    grid-column: 1 / -1;
    width: calc(50% - (clamp(1rem, 2vw, 1.5rem) / 2));
    margin-inline: auto;
  }

  /* One date on the calendar is the normal state between retreats, and it
     should not look like a card that lost its row. It takes the full width and
     turns side-on: the photograph down one half, the date and the description
     down the other. */
  .event-grid > .event:only-child {
    grid-column: 1 / -1;
    width: 100%; margin-inline: 0;
    grid-template-columns: 1.05fr 1fr;
    grid-template-rows: auto 1fr;
    grid-template-areas: "media when" "media body";
    align-items: start;
    padding: 0; overflow: hidden;
    column-gap: clamp(1.4rem, 3vw, 2.4rem);
  }
  .event-grid > .event:only-child > .event-media {
    grid-area: media; grid-column: auto;
    margin: 0; border-radius: 0;
    aspect-ratio: auto; height: 100%; min-height: 21rem;
    position: relative;
  }
  /* The picture fills its half; it does not get to say how tall the card is.

     In normal flow it did. An event with no photograph of its own borrows one
     of the practice photographs, and those are portrait — 860x1147. At half of
     a full-width card that is 874px of image beside 312px of text, so a single
     announced date drew a card nearly a thousand pixels tall with two-thirds of
     it empty. Out of flow, the height comes from the text column and
     min-height, which is what this layout always intended. */
  .event-grid > .event:only-child > .event-media img {
    position: absolute; inset: 0;
  }
  .event-grid > .event:only-child > .event-when {
    grid-area: when; justify-self: start;
    margin: clamp(1.5rem, 3vw, 2.1rem) clamp(1.5rem, 3vw, 2.1rem) 0 0;
  }
  .event-grid > .event:only-child > .event-body {
    grid-area: body;
    padding: .9rem clamp(1.5rem, 3vw, 2.1rem) clamp(1.5rem, 3vw, 2.1rem) 0;
  }
  .event-grid > .event:only-child .event-body h3 { font-size: var(--step-2); }
  .event-grid > .event:only-child .event-body p  { font-size: var(--step-0); }
}
.event-card { grid-template-columns: auto 1fr; align-items: start; }
.event-card.is-featured { border-color: color-mix(in oklab, var(--accent) 45%, transparent); }
.event-media {
  grid-column: 1 / -1; margin: calc(-1 * clamp(1.3rem, 2.6vw, 1.9rem));
  margin-bottom: clamp(.9rem, 2vw, 1.3rem);
  border-radius: var(--radius-lg) var(--radius-lg) 0 0; overflow: hidden;
  aspect-ratio: 16 / 9; background: var(--paper-3);
}
/* photographs of people put the face in the upper third; a centred crop cut
   heads off, so the frame is biased upward */
.event-media img { width: 100%; height: 100%; object-fit: cover; object-position: center 32%; }
/* The second paragraph on a featured date: what the price actually buys.
   Quieter than the summary above it, so the card still reads in one glance. */
.event-detail {
  margin-top: .55rem;
  padding-top: .55rem;
  border-top: 1px solid var(--rule);
  font-size: var(--step--1);
  color: var(--fg-muted);
}
.event-flag {
  display: inline-block; margin-top: .6rem;
  font-size: 0.8rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--accent);
}
.event-flag.is-full { color: var(--fg-muted); }
.events-loading { padding: 2rem 0; }
/* Same reasoning for the list itself: hold roughly a card's worth of room
   while the dates are on their way, and release it once they are in. */
.event-grid[aria-busy="true"] { min-height: 34rem; }
.events-empty {
  grid-column: 1 / -1; text-align: center;
  border: 1px dashed var(--rule); border-radius: var(--radius-lg);
  padding: clamp(2rem, 5vw, 3.5rem) 1.5rem;
}
.events-empty h3 { font-size: var(--step-2); margin-bottom: .5rem; }
.events-empty p { margin-inline: auto; }
.events-empty .btn { margin-top: 1.2rem; }

/* --- 42. Aurora --------------------------------------------------------- */
/* Three slow washes of the brand reds and gold, so a large calm section is
   never a flat field of one colour.
 *
 * These were built with `filter: blur(70px)` on animated elements, which meant
 * the GPU re-blurred three surfaces of roughly a million pixels each, on six
 * sections, every frame &mdash; the page ran at 7fps in the middle. A radial gradient
 * with soft alpha stops looks the same and costs nothing to composite, so the
 * blur is gone and only `transform` animates. Sections off screen are paused
 * from JS. */
.aurora {
  position: absolute; inset: 0; z-index: 0;
  overflow: hidden; pointer-events: none;
  contain: strict;                 /* never let this affect layout elsewhere */
}
.aurora::before,
.aurora::after,
.aurora > i {
  content: ""; position: absolute; display: block;
  border-radius: 50%;
  transform: translate3d(0, 0, 0);
}
/* the animation is attached only while the section is on screen */
.aurora[data-live="true"]::before { animation: aurora-a 24s ease-in-out infinite alternate; }
.aurora[data-live="true"]::after  { animation: aurora-b 30s ease-in-out infinite alternate; }
.aurora[data-live="true"] > i     { animation: aurora-c 38s ease-in-out infinite alternate; }

/* These three drift for the whole time the band is on screen, and the grain
   sitting over them blends with mix-blend-mode — which cannot be done on the
   GPU unless what is underneath has a layer of its own. Without this the
   browser re-composited the whole band on the main thread every frame: the
   offerings page scrolled at 9fps and the gallery at 40.
   Only while they are live, so a paused aurora costs nothing. */
.aurora[data-live="true"]::before,
.aurora[data-live="true"]::after,
.aurora[data-live="true"] > i { will-change: transform; }

.aurora::before {
  width: 68vw; height: 46vw; max-width: 1000px; max-height: 680px;
  /* Offsets in vw, not in per cent of the band.
     A percentage here is a percentage of the aurora's own height, and the
     aurora stretches to whatever section it sits in - so the moment the events
     list swapped a placeholder for real cards, the band grew, both washes slid,
     and the browser counted it as layout shift. Nobody can see a gradient drift
     forty pixels, but the metric can, and it was most of what was left on that
     page. Tied to the viewport they stay put while a section resizes. */
  top: -11vw; left: -14%;
  background: radial-gradient(closest-side,
    color-mix(in oklab, var(--maroon-glow) 46%, transparent) 0%,
    color-mix(in oklab, var(--maroon-glow) 34%, transparent) 34%,
    color-mix(in oklab, var(--maroon-glow) 16%, transparent) 62%,
    color-mix(in oklab, var(--maroon-glow) 5%,  transparent) 82%,
    transparent 100%);
}
.aurora::after {
  width: 58vw; height: 44vw; max-width: 860px; max-height: 640px;
  bottom: -13vw; right: -12%;
  background: radial-gradient(closest-side,
    color-mix(in oklab, var(--gold) 58%, transparent) 0%,
    color-mix(in oklab, var(--gold) 40%, transparent) 34%,
    color-mix(in oklab, var(--gold) 18%, transparent) 62%,
    color-mix(in oklab, var(--gold) 5%,  transparent) 82%,
    transparent 100%);
}
.aurora > i {
  width: 46vw; height: 34vw; max-width: 700px; max-height: 500px;
  top: 34%; left: 42%;
  background: radial-gradient(closest-side,
    color-mix(in oklab, var(--accent) 28%, transparent) 0%,
    color-mix(in oklab, var(--accent) 16%, transparent) 46%,
    color-mix(in oklab, var(--accent) 4%,  transparent) 76%,
    transparent 100%);
}
@keyframes aurora-a {
  from { transform: translate3d(0, 0, 0) scale(1); }
  to   { transform: translate3d(16%, 14%, 0) scale(1.22); }
}
@keyframes aurora-b {
  from { transform: translate3d(0, 0, 0) scale(1.14); }
  to   { transform: translate3d(-14%, -12%, 0) scale(1); }
}
@keyframes aurora-c {
  from { transform: translate3d(-8%, 6%, 0) scale(.9); }
  to   { transform: translate3d(10%, -8%, 0) scale(1.25); }
}
/* on a deep band the washes have to lift the ground, not tint it */
.on-dark .aurora::before, .on-maroon .aurora::before, .prana .aurora::before {
  background: radial-gradient(closest-side,
    color-mix(in oklab, var(--maroon-glow) 62%, transparent) 0%,
    color-mix(in oklab, var(--maroon-glow) 24%, transparent) 52%,
    transparent 100%);
}
.on-dark .aurora > i, .on-maroon .aurora > i, .prana .aurora > i {
  background: radial-gradient(closest-side,
    color-mix(in oklab, var(--gold) 26%, transparent) 0%,
    transparent 78%);
}
@media (prefers-reduced-motion: reduce) {
  .aurora[data-live="true"]::before,
  .aurora[data-live="true"]::after,
  .aurora[data-live="true"] > i { animation: none; }
}

/* --- 43. Booking receipt ------------------------------------------------- */
/* The guest used to be told their place was held with nothing behind it. Now
   the booking is stored before this shows, and this line says whether it
   arrived &mdash; including when it did not, so nobody walks away thinking we have
   their details when we do not. */
.save-state {
  font-size: var(--step--1);
  color: var(--fg-muted);
  max-width: 44ch; margin-inline: auto;
  min-height: 1.4em;
}

/* --- 44. Booking: a reservation, not a basket ---------------------------- */
/* The first step listed three priced boxes beside a TOTAL and an Apply button,
   which is the shape of a shopping cart. What fixes that is the language and
   the weight of the type, not decoration: a form is for filling in, and a
   photograph of the thing you already chose only gets in the way. So each
   choice leads with when and where, and the money sits quietly underneath. */
.oc-rich > .oc-body { display: grid; gap: 0; padding: 0; }
.oc-text { display: grid; gap: .4rem; padding: clamp(1.2rem, 2.4vw, 1.7rem); }
.oc-when {
  font-size: var(--step--1); letter-spacing: .1em; text-transform: uppercase;
  color: var(--accent);
}
.oc-rich .oc-title { font-size: var(--step-2); line-height: 1.15; }
.oc-rich .oc-note { max-width: 52ch; }
.oc-rich .oc-price {
  font-family: var(--font-display); font-size: var(--step-1);
  color: var(--fg-muted); margin-top: .3rem;
}
/* when the guest arrived from one event, its card takes the full width */
[data-render="experiences"][data-focused="true"] { grid-template-columns: 1fr; }

.summary-eyebrow {
  font-size: var(--step--1); letter-spacing: .16em; text-transform: uppercase;
  color: var(--accent); margin: 0 0 .2rem;
}
.coupon-fold > summary {
  cursor: pointer; list-style: none;
  font-size: var(--step--1); color: var(--fg-muted);
  padding: .2rem 0;
}
.coupon-fold > summary::-webkit-details-marker { display: none; }
.coupon-fold > summary::before { content: "+ "; color: var(--accent); }
/* A minus to close, matching the plus above. Written as an escape rather
   than as the character itself: this was a real minus sign once, an
   encoding pass turned it into two stray letters, and a later pass turned
   part of that into an HTML entity - which CSS has no idea about, so the
   box ended up printing the wreckage in front of "I have a code". An
   escape is plain ASCII in the file and survives both. The trailing a0 is
   a non-breaking space, because an ordinary space straight after a hex
   escape is eaten as the escape's terminator. */
.coupon-fold[open] > summary::before { content: "\2212\00a0"; }
.coupon-fold > summary:hover { color: var(--accent); }
.coupon-fold[open] > summary { margin-bottom: .7rem; }

/* --- The other dates, offered after the one they came for ---------------- */
.also { margin-top: clamp(3rem, 6vw, 5rem); padding-top: clamp(2rem, 4vw, 3rem); border-top: 1px solid var(--rule); }
.also-head { font-size: var(--step-2); margin-bottom: .3rem; }
.also-note { color: var(--fg-muted); font-size: var(--step--1); margin-bottom: 1.4rem; max-width: 46ch; }
.also-grid { display: grid; gap: clamp(.9rem, 2vw, 1.4rem); grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); }
.also-card {
  display: grid; text-decoration: none; overflow: hidden;
  border: 1px solid var(--rule); border-radius: var(--radius-lg);
  background: var(--card);
  transition: border-color .4s var(--ease-out), transform .4s var(--ease-out);
}
.also-card:hover { border-color: color-mix(in oklab, var(--accent) 45%, transparent); transform: translateY(-3px); }
.also-body { display: grid; gap: .25rem; padding: 1.2rem 1.3rem 1.3rem; }
.also-where { font-size: var(--step--1); color: var(--fg-muted); }
.also-when { font-size: var(--step--1); letter-spacing: .08em; text-transform: uppercase; color: var(--accent); }
.also-title { font-family: var(--font-display); font-size: var(--step-1); color: var(--heading); line-height: 1.2; }
.also-price { font-size: var(--step--1); color: var(--fg-muted); }

/* --- GALLERY PAGE -------------------------------------------------------- */
.gallery-hero {
  position: relative;
  background:
    radial-gradient(60% 50% at 70% 20%, color-mix(in oklab, var(--gold) 28%, transparent) 0%, transparent 60%),
    linear-gradient(178deg, #FEF6F1 0%, var(--paper) 30%, var(--paper-warm) 60%, var(--paper-2) 100%);
  padding-block: clamp(2.5rem, 5vw, 5rem);
  isolation: isolate;
  overflow: hidden;
}

.gallery-masonry {
  columns: 4;
  column-gap: clamp(.75rem, 1.5vw, 1.25rem);
  padding-block: clamp(1.5rem, 3vw, 3rem);
}
@media (max-width: 62rem)  { .gallery-masonry { columns: 3; } }
@media (max-width: 40rem)  { .gallery-masonry { columns: 2; } }

.gallery-item {
  break-inside: avoid;
  margin-bottom: clamp(.75rem, 1.5vw, 1.25rem);
  border-radius: var(--radius-lg);
  overflow: hidden;
  position: relative;
  cursor: pointer;
  transition: transform .4s var(--ease-out), box-shadow .4s var(--ease-out);
}
.gallery-item:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px -8px rgb(var(--shadow-color) / .18);
}
.gallery-item img {
  width: 100%;
  height: auto;
  display: block;
  transition: transform .6s var(--ease-out);
}
.gallery-item:hover img { transform: scale(1.04); }
.gallery-item .gallery-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgb(0 0 0 / .5) 0%, transparent 50%);
  opacity: 0;
  transition: opacity .4s var(--ease-out);
  display: flex; align-items: flex-end;
  padding: 1.2rem;
}
.gallery-item:hover .gallery-overlay { opacity: 1; }
.gallery-overlay span {
  color: #fff; font-size: var(--step--1);
  letter-spacing: .08em; text-transform: uppercase; font-weight: 500;
}

/* A tile is a real control: the whole face is a button, so it is reachable by
   keyboard and announces what it opens. */
.gallery-item.is-hidden { display: none; }
.gallery-zoom {
  position: absolute; inset: 0;
  border: 0; padding: 0; background: transparent;
  cursor: zoom-in;
  border-radius: inherit;
}
.gallery-zoom:focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 3px;
}
.gallery-item:focus-within .gallery-overlay { opacity: 1; }

/* Lightbox */
.lightbox {
  position: fixed; inset: 0; z-index: 200;
  background: rgb(0 0 0 / .92);
  display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none;
  transition: opacity .4s var(--ease-out);
  padding: 2rem;
}
.lightbox.is-active { opacity: 1; pointer-events: auto; }
.lightbox img {
  max-width: 90vw; max-height: 85vh;
  border-radius: var(--radius-lg);
  box-shadow: 0 20px 60px rgb(0 0 0 / .5);
}
.lightbox-close {
  position: absolute; top: 1.5rem; right: 1.5rem;
  width: 48px; height: 48px; border-radius: 50%;
  background: rgb(255 255 255 / .12);
  border: 1px solid rgb(255 255 255 / .2);
  color: #fff; font-size: 1.5rem;
  display: grid; place-items: center;
  cursor: pointer;
  transition: background .3s, transform .3s;
}
.lightbox-close:hover { background: rgb(255 255 255 / .24); transform: scale(1.1); }

.lightbox-figure {
  margin: 0;
  display: flex; flex-direction: column; align-items: center; gap: 1rem;
  max-width: 92vw;
}
.lightbox-figure figcaption {
  color: color-mix(in oklab, #fff 82%, transparent);
  font-size: var(--step--1);
  letter-spacing: .08em; text-transform: uppercase;
  text-align: center;
}
.lightbox-nav {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 48px; height: 48px; border-radius: 50%;
  background: rgb(255 255 255 / .12);
  border: 1px solid rgb(255 255 255 / .2);
  color: #fff; font-size: 1.6rem; line-height: 1;
  display: grid; place-items: center;
  cursor: pointer;
  transition: background .3s var(--ease-out);
}
.lightbox-prev { left: clamp(.6rem, 3vw, 2rem); }
.lightbox-next { right: clamp(.6rem, 3vw, 2rem); }
.lightbox-nav:hover { background: rgb(255 255 255 / .24); }
.lightbox-close:focus-visible,
.lightbox-nav:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }

/* Gallery category filter */
.gallery-filters {
  display: flex; flex-wrap: wrap; gap: .6rem;
  justify-content: center;
  margin-top: 1.5rem;
}
.gallery-filter {
  padding: .6em 1.4em;
  border: 1px solid var(--rule);
  border-radius: 999px;
  background: transparent;
  color: var(--fg-muted);
  font-size: var(--step--1);
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: all .3s var(--ease-out);
}
.gallery-filter:hover {
  color: var(--fg);
  border-color: color-mix(in oklab, var(--accent) 55%, transparent);
}
.gallery-filter.is-active {
  background: var(--accent);
  color: var(--on-accent);
  border-color: var(--accent);
}
.gallery-filter:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }

.gallery-count {
  text-align: center;
  color: var(--fg-muted);
  font-size: var(--step--1);
  margin-top: 1rem;
}

/* --- PRANA RETREAT THEME ------------------------------------------------- */
/* --- THE PRANA RETREAT ---------------------------------------------------
   Taken from the client's poster: a bottle-green ground, a cream plaque edged
   in gold, white serif display, terracotta for the partner mark.

   These are literal values, not palette tokens, and deliberately so. Every
   other ground on the site reads --forest-* / --maroon-*, which themes.css
   remaps per palette — under the live palette that family is red, which is how
   a class named prana-section-green came to paint a maroon band on a page
   selling a green poster. The retreat holds its own colours. */
.prana-deep,
.prana-paper {
  --prana-deep:  #0E2020;
  --prana-deeper:#081616;
  --prana-cream: #F7E9D0;
  --prana-page:  #FDFBF7;          /* the white the poster prints on */
  --prana-gold:  #E0B978;
  --prana-gold-ink: #7A5620;
  --prana-clay:  #A8412A;
  /* the poster's orange: bright where there is room, deep where small type
     has to clear AA on white */
  --prana-orange:      #E8872D;
  --prana-orange-lift: #F2A050;
  --prana-orange-ink:  #A34A0F;
}

.prana-deep {
  --bg: var(--prana-deep);
  --fg: #F6F2E9;
  --fg-muted: color-mix(in oklab, #F6F2E9 78%, transparent);
  --heading: #FFFFFF;
  --accent: var(--prana-orange);
  /* small letter-spaced type reversed out of the green needs the lighter one */
  --eyebrow-fg: var(--prana-orange-lift);
  --on-accent: var(--prana-deep);
  --on-light: var(--prana-deep);
  --btn-bg: var(--prana-cream);
  --btn-fg: var(--prana-clay);
  --btn-hover: #FFF6E4;
  --rule: color-mix(in oklab, var(--prana-gold) 38%, transparent);
  --card: color-mix(in oklab, #F6F2E9 7%, transparent);
  --shadow-color: 0 0 0;
  background: var(--bg);
  color: var(--fg);
}

.prana-paper {
  --bg: var(--prana-page);
  --fg: #26302C;
  --fg-muted: #55635D;
  --heading: var(--prana-deep);
  --accent: var(--prana-orange-ink);
  --eyebrow-fg: var(--prana-orange-ink);
  --on-accent: var(--prana-cream);
  --btn-bg: var(--prana-deep);
  --btn-fg: var(--prana-cream);
  --btn-hover: #1A3330;
  --rule: color-mix(in oklab, var(--prana-deep) 18%, transparent);
  --card: #FFFDF7;
  background: var(--bg);
  color: var(--fg);
}

/* The poster's ground is not flat — bamboo shadows fall across it. Two soft
   washes stand in for them, so the band has depth without another image. */
.prana-deep {
  background-image:
    radial-gradient(70% 55% at 82% 8%,  color-mix(in oklab, #2F5A46 16%, transparent) 0%, transparent 62%),
    radial-gradient(60% 50% at 10% 92%, color-mix(in oklab, #1B3A31 20%, transparent) 0%, transparent 60%);
}

/* The site's page head carries the shared ridge along its base. It is a warm
   photograph, and on this ground it reads as a brown smear rather than a
   horizon, so the retreat's head goes without it. */
.page-head.prana-deep::after { display: none; }

/* The practice lists: two columns on a wide screen. One item per row left the
   band half empty, because body copy is capped at a readable measure and the
   row is far wider than that. */
/* Reversed out of the deep ground, small letter-spaced type reads thinner than
   the same setting on paper — so it carries more weight here. */
.prana-deep .eyebrow,
.prana-deep .prana-rule { font-weight: 600; }
.prana-deep .prana-rule { font-size: var(--step-0); letter-spacing: .18em; }

/* The mark, lifted off the poster. */
.prana-mark {
  width: clamp(9rem, 16vw, 13.5rem);
  height: auto;
  display: block;
  margin-bottom: 1.4rem;
}

/* The poster's framed plaque: cream, double gold rule, dates inside. */
.prana-plaque {
  display: inline-block;
  background: var(--prana-cream);
  color: #2A1B0C;
  border: 1px solid var(--prana-gold);
  padding: .5rem;
  border-radius: 2px;
  box-shadow: 0 10px 30px -18px rgb(0 0 0 / .8);
}
.prana-plaque > span {
  display: block;
  border: 1px solid color-mix(in oklab, var(--prana-gold) 70%, transparent);
  padding: .85rem clamp(1.1rem, 3vw, 2.4rem);
}
.prana-plaque .plaque-when {
  font-family: var(--font-display);
  font-size: var(--step-1);
  letter-spacing: .01em;
  white-space: nowrap;
}
.prana-plaque .plaque-rule {
  display: block;
  height: 0;
  border-top: 1px dotted color-mix(in oklab, var(--prana-gold-ink) 60%, transparent);
  margin: .5rem 0;
}
.prana-plaque .plaque-where {
  font-family: var(--font-display);
  font-size: var(--step-0);
  color: #4A3418;
}
/* What it costs, on the poster rather than nine screens below it. Somebody
   deciding whether this retreat is for them should not have to scroll past the
   whole programme to find out it is 49,000. */
.prana-plaque .plaque-price {
  display: block;
  font-family: var(--font-display);
  font-size: var(--step-0);
  color: #4A3418;
  text-decoration: none;
  white-space: nowrap;
}
.prana-plaque .plaque-price > span {
  font-family: var(--font-sans);
  font-size: .68rem; letter-spacing: .12em; text-transform: uppercase;
  color: color-mix(in oklab, #4A3418 65%, transparent);
}
.prana-plaque .plaque-price:hover { text-decoration: underline; text-underline-offset: .3em; }
.prana-plaque .plaque-price:focus-visible { outline: 2px solid var(--prana-gold-ink); outline-offset: 3px; }

/* The poster's divider: a hairline, a line of gold caps, a hairline. */
.prana-rule {
  display: flex; align-items: center; gap: clamp(.8rem, 2vw, 1.6rem);
  color: var(--eyebrow-fg);
  font-size: var(--step--1);
  letter-spacing: .22em;
  text-transform: uppercase;
  font-weight: 500;
  margin: 0 auto clamp(1.2rem, 3vw, 2rem);
  max-width: 44rem;
}
.prana-rule::before, .prana-rule::after {
  content: ""; flex: 1; height: 1px;
  background: color-mix(in oklab, currentColor 55%, transparent);
}

/* Partner lockup — the poster sets the two houses side by side. */
.prana-partners {
  display: flex; align-items: center; gap: clamp(1rem, 3vw, 2rem);
  flex-wrap: wrap;
}
.prana-partners img { width: auto; }
.prana-partners img:first-of-type { height: clamp(4.4rem, 7vw, 6rem); }   /* the triangle */
.prana-partners img:last-of-type  { height: clamp(2.9rem, 4.6vw, 4rem); } /* the wordmark */
.prana-partners p {
  flex-basis: 100%;
  margin: .2rem 0 0;
  font-size: var(--step--1);
  color: var(--fg-muted);
}
.prana-partners .x {
  font-family: var(--font-display);
  font-size: var(--step-1);
  color: var(--fg-muted);
}

/* The review, grouped, each group with the way back to its step. */
.review-group + .review-group { margin-top: clamp(1.4rem, 2.6vw, 2rem); }

/* A booking the panel would not take. It sits above the review rather than on
   the confirmation screen, because there is no confirmation to show: the date
   has run, or it is not on sale yet, or the last seat went while this form was
   open. Everything typed stays put so a different date is one tap away. */
.book-refusal {
  margin: 0 0 1.2rem;
  padding: .85rem 1.05rem;
  border: 1px solid color-mix(in srgb, var(--danger, #b3261e) 45%, transparent);
  border-left-width: 3px;
  border-radius: var(--radius-sm, .5rem);
  background: color-mix(in srgb, var(--danger, #b3261e) 8%, var(--surface, #fff));
  color: var(--danger-ink, #7a1a13);
  font-weight: 600;
  line-height: 1.5;
}
.rg-head {
  display: flex; align-items: baseline; justify-content: space-between; gap: 1rem;
  padding-bottom: .5rem; margin-bottom: .7rem;
  border-bottom: 1px solid var(--rule);
}
.rg-head h4 {
  font-size: var(--step--1); letter-spacing: .14em; text-transform: uppercase;
  color: var(--fg-muted); font-family: var(--font-sans); font-weight: 500;
}
.rg-edit {
  background: none; border: 0; padding: 0; cursor: pointer;
  font-size: var(--step--1); color: var(--accent);
  text-decoration: underline; text-underline-offset: .25em;
}
.rg-edit:hover, .rg-edit:focus-visible { color: var(--ink); }

/* How many places are left, beside the price. */
.oc-flag {
  display: inline-block; margin-left: .7rem;
  font-size: .74rem; letter-spacing: .1em; text-transform: uppercase;
  color: var(--accent);
  vertical-align: middle;
}
.oc-flag.is-full { color: var(--fg-muted); }
.option-card.is-full { opacity: .55; }
.option-card.is-full, .option-card.is-full * { cursor: not-allowed; }

/* --- Events: announced, not yet on sale ----------------------------------- */
/* The gap belongs above it now that the announced dates sit under the bookable
   ones; left below, the heading crowded the card it follows. */
.events-soon { margin-top: clamp(2.5rem, 5vw, 4rem); }
.events-soon .section-head { margin-bottom: clamp(1.4rem, 2.6vw, 2rem); }
.event.is-soon {
  border-color: color-mix(in oklab, var(--accent) 40%, transparent);
  background: color-mix(in oklab, var(--accent) 5%, var(--card));
}
.soon-tag {
  font-size: .72rem; letter-spacing: .16em; text-transform: uppercase;
  color: var(--accent); margin-bottom: .35rem;
}
.soon-when {
  font-size: var(--step--1); color: var(--fg-muted);
  margin-top: .5rem;
}
.soon-when strong { color: var(--accent); }

/* --- Booking: the phone's price bar --------------------------------------- */
.book-bar { display: none; }
@media (max-width: 68rem) {
  .book-bar {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
    display: flex; align-items: center; gap: 1rem;
    padding: .8rem clamp(1rem, 4vw, 1.4rem);
    padding-bottom: calc(.8rem + env(safe-area-inset-bottom, 0px));
    background: color-mix(in oklab, var(--paper) 94%, transparent);
    backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
    border-top: 1px solid var(--rule);
    box-shadow: 0 -12px 30px -22px rgb(60 20 10 / .5);
  }
  .book-bar[hidden] { display: none; }
  .bb-cost { display: grid; line-height: 1.2; min-width: 0; }
  /* These two swapped jobs when the amount moved onto the button: the top line
     is now what is being bought and the second is how much of it. */
  .bb-k {
    font-family: var(--font-display); font-size: var(--step-0);
    color: var(--fg); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  }
  .bb-v {
    font-size: .76rem; letter-spacing: .04em; color: var(--fg-muted);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  }
  .bb-go { margin-left: auto; flex: 0 0 auto; }
  /* the bar covers the foot of the page, so the form ends above it */
  .booking { padding-bottom: 5.5rem; }

  /* And nothing may be scrolled to rest underneath it.
     Padding at the end of the form only saves the last element. Everything in
     the middle can still be parked under the bar by the browser's own
     scrolling - focusing a field, jumping to an anchor, or scrolling an error
     into view - and whatever lands there cannot be tapped, because the tap
     hits the bar instead. Which on this page means: reaching for "None of the
     above" and submitting the form by accident. scroll-padding is the rule
     that tells the browser the bottom 5.5rem of the viewport is spoken for. */
  /* Only where the bar exists. Written without :has() this reserved the foot
     of the viewport on every page under 68rem - the FAQ, the offerings index,
     everywhere - for a bar that is only on one of them. A browser without
     :has() simply does not apply it, which is where this page was before. */
  html:has(.book-bar:not([hidden])) { scroll-padding-bottom: 5.5rem; }

  /* On a phone this card was the same figures a third time: the sticky bar
     carries the total everywhere, "What it comes to" breaks it down right
     above the button, and then this repeated both, 2,400px down the page,
     after the form it was meant to be summarising. On a laptop it is a sticky
     sidebar you can see while you type, which is worth having; on a phone
     nothing is sticky about it and it is just more page. */
  .booking > .summary { display: none; }

  /* The step's own Continue used to be hidden here, on the grounds that the
     sticky bar already had one. What that actually produced was an empty
     bordered strip where the button should be, and then the summary card — so
     after choosing a date the next thing you saw was a price panel, not a way
     forward. The button stays, close under the content it belongs to, and the
     bar stays too: one to carry on with, one that is always to hand. */
  .step-actions {
    margin-top: 1.6rem; padding-top: 1.4rem;
    gap: .7rem;
  }
  .step-actions [data-next], .step-actions [data-confirm] { flex: 1 1 12rem; justify-content: center; }
  .step-actions [data-back] { flex: 0 0 auto; }

  /* The booking bar owns the foot of the screen, and back-to-top is pinned to
     the same corner — so it was sitting on top of Continue, the one control
     on the page that matters. It rides above the bar instead, and only while
     the bar is actually showing. */
  body:has(.book-bar:not([hidden])) .to-top {
    bottom: calc(4.9rem + env(safe-area-inset-bottom, 0px));
  }
}

/* --- Booking: one card per guest ------------------------------------------ */
.guest-cards { display: grid; gap: clamp(1rem, 2vw, 1.4rem); }
.guest-card {
  /* a fieldset will not shrink below its content without this, and the card
     then pushes its own fields off the side of a phone */
  min-width: 0;
  border: 1px solid var(--rule);
  border-radius: var(--radius-lg);
  padding: clamp(1.1rem, 2.2vw, 1.6rem);
  margin: 0;
  background: var(--card);
}
.gc-head {
  display: flex; align-items: baseline; gap: .6rem; flex-wrap: wrap;
  padding: 0 .4rem; margin-bottom: .9rem;
}
.gc-you, .gc-n {
  font-family: var(--font-display); font-size: var(--step-0); color: var(--accent);
}
.gc-note { font-size: var(--step--1); color: var(--fg-muted); }
.guest-card .field + .field, .guest-card .gc-pair + .field,
.guest-card .gc-pair + .gc-pair { margin-top: clamp(.8rem, 2vw, 1.1rem); }
.gc-pair { display: grid; gap: clamp(.8rem, 2vw, 1.1rem); grid-template-columns: 1fr 1fr; }
/* a name needs the room; an age never does */
.gc-pair-name { grid-template-columns: minmax(0, 2.2fr) minmax(4.5rem, .8fr); }

/* A closing image across a two-column section, cropped to a band so it sits
   under both columns rather than lengthening one of them. */
.place-band {
  grid-column: 1 / -1;
  /* The grid it sits in already puts a gap above this row. Adding a margin on
     top of that left the band stranded a hundred-odd pixels below the text,
     looking like it had fallen off the section. */
  margin-top: 0;
  aspect-ratio: 21 / 8;
  border-radius: var(--radius-lg); overflow: hidden;
}
@media (max-width: 46rem) { .place-band { aspect-ratio: 3 / 2; } }
.place-band img { width: 100%; height: 100%; object-fit: cover; object-position: center 38%; display: block; }

/* --- An embedded map ------------------------------------------------------ */
.map-frame {
  border-radius: var(--radius-lg); overflow: hidden;
  border: 1px solid var(--rule);
  aspect-ratio: 16 / 9;
  background: var(--card);
  box-shadow: 0 24px 50px -30px rgb(20 40 30 / .45);
}
@media (max-width: 40rem) { .map-frame { aspect-ratio: 4 / 3; } }
.map-frame iframe { width: 100%; height: 100%; border: 0; display: block; }

.rc-media {
  margin: calc(-1 * clamp(1.3rem, 2.6vw, 1.9rem));
  margin-bottom: clamp(1.1rem, 2.2vw, 1.5rem);
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
  overflow: hidden;
  aspect-ratio: 16 / 10;
  background: var(--paper-3);
}
.rc-media img { width: 100%; height: 100%; object-fit: cover; object-position: center 34%; display: block; }

/* Photographs closing a practice section: three across, cropped to a band so
   the row reads as one picture rather than three unrelated shapes. */
.practice-strip {
  display: grid; gap: clamp(.7rem, 1.4vw, 1.1rem);
  grid-template-columns: repeat(3, 1fr);
  margin-top: clamp(2rem, 4vw, 3.2rem);
}
.practice-strip .figure { aspect-ratio: 4 / 3; border-radius: var(--radius-lg); overflow: hidden; }
.practice-strip img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 46rem) {
  .practice-strip { grid-template-columns: 1fr 1fr; }
  .practice-strip .figure:last-child { grid-column: 1 / -1; aspect-ratio: 16 / 9; }
}

/* --- The retreat's practices, as tiles ------------------------------------ */
.practice-grid {
  list-style: none; margin: 0; padding: 0;
  display: grid; gap: clamp(1.4rem, 3vw, 2.4rem);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
}
.practice-tile { display: grid; gap: .55rem; align-content: start; }
.pt-icon {
  width: clamp(2.6rem, 4vw, 3.2rem); height: auto;
  color: var(--accent);
  display: block;
}
.pt-icon svg { width: 100%; height: auto; display: block; }
.practice-tile h4 {
  font-family: var(--font-display); font-size: var(--step-1); font-weight: 400;
  color: var(--heading, var(--fg));
}
.practice-tile p { font-size: var(--step--1); color: var(--fg-muted); line-height: 1.5; }

/* --- Home: the retreat card ----------------------------------------------- */
.prana-card {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  aspect-ratio: 4 / 3;
  box-shadow: 0 30px 60px -34px rgb(0 0 0 / .6);
}
.prana-card .pc-photo { width: 100%; height: 100%; object-fit: cover; display: block; }
/* the mark and the dates sit on the picture, over a wash that keeps both
   readable whatever the photograph is doing underneath */
.prana-card .pc-face {
  position: absolute; inset: 0;
  display: grid; place-content: center; justify-items: center;
  gap: clamp(1rem, 2.4vw, 1.6rem);
  padding: clamp(1.2rem, 3vw, 2rem);
  text-align: center;
  background: linear-gradient(180deg, rgb(20 34 28 / .58) 0%, rgb(14 24 20 / .72) 100%);
}
.prana-card .pc-mark { width: clamp(6.5rem, 12vw, 9.5rem); height: auto; }
.prana-card .prana-plaque { --prana-cream: #F7E9D0; --prana-gold: #E0B978; --prana-gold-ink: #7A5620; }

@media (max-width: 46rem) { .prana-card { aspect-ratio: 5 / 4; } }

/* A line built on its rhythm should not break in the middle of it: it shrinks
   to fit the column rather than wrapping. */
.one-line {
  font-size: clamp(1rem, 2.6vw, var(--step-2));
  line-height: 1.2;
  white-space: nowrap;
}

/* --- About: the founder's portrait ---------------------------------------- */
.founder-card { margin: 0; display: grid; gap: .9rem; }
.founder-card figcaption { display: grid; gap: .15rem; }
.fc-name { font-family: var(--font-display); font-size: var(--step-1); color: var(--heading, var(--ink)); }
.fc-role {
  font-size: var(--step--1); letter-spacing: .14em; text-transform: uppercase;
  color: var(--accent);
}

/* --- About: vision and mission ------------------------------------------- */
.vm { display: grid; gap: clamp(1.4rem, 3vw, 2.2rem); margin-bottom: clamp(1.6rem, 3vw, 2.4rem); }
.vm-item { border-left: 2px solid color-mix(in oklab, var(--accent) 45%, transparent); padding-left: clamp(1rem, 2vw, 1.5rem); }
.vm-label {
  font-size: var(--step--1); letter-spacing: .16em; text-transform: uppercase;
  color: var(--accent); margin-bottom: .5rem;
}
.vm-text {
  font-family: var(--font-display);
  font-size: var(--step-2);
  font-weight: 500;
  line-height: 1.35;
  color: var(--ink);
}

/* --- Events: the live next-up card in the hero ---------------------------- */
.next-up {
  padding: clamp(1.2rem, 2.2vw, 1.7rem);
  background: color-mix(in oklab, var(--paper) 88%, transparent);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  border: 1px solid color-mix(in oklab, #fff 60%, transparent);
  border-radius: var(--radius-lg);
  box-shadow: 0 24px 50px -24px rgb(60 20 10 / .35);
  max-width: 24rem;
  min-height: 7.5rem;
}
.nu-label {
  font-size: var(--step--1); letter-spacing: .14em; text-transform: uppercase;
  color: color-mix(in oklab, var(--accent) 70%, transparent); margin-bottom: .9rem;
}
/* The panel says "Checking the calendar..." until the feed lands, then fills
   with the next date - and it sits above the fold, so every pixel it grew
   shoved the whole page down. That single reflow was measuring 0.365 of layout
   shift, where anything above 0.25 counts as poor. Holding the filled height
   from the start costs a little white space for a moment and moves nothing. */
.next-up [data-next-up-body] {
  display: grid; grid-template-columns: auto 1fr; gap: 1rem; align-items: start;
  min-height: 10.25rem;
}
.nu-date {
  display: grid; place-items: center; line-height: 1.05;
  width: 3.4rem; padding-block: .5rem;
  background: color-mix(in oklab, var(--accent) 10%, transparent);
  border-radius: var(--radius-md);
  color: var(--ink);
}
.nu-day { font-family: var(--font-display); font-size: var(--step-1); }
.nu-mon { font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; color: color-mix(in oklab, var(--ink) 60%, transparent); }
.nu-title { font-family: var(--font-display); font-size: var(--step-0); color: var(--ink); margin-bottom: .2rem; }
.nu-meta { font-size: var(--step--1); color: color-mix(in oklab, var(--ink) 62%, transparent); margin-bottom: .7rem; }
.nu-empty {
  grid-column: 1 / -1; font-size: var(--step--1); color: color-mix(in oklab, var(--ink) 62%, transparent);
}

/* --- About: the journey teaser in the hero --------------------------------- */
.journey-preview {
  list-style: none; margin: 0; padding: clamp(1.1rem, 2vw, 1.6rem) clamp(1.2rem, 2.2vw, 1.8rem);
  display: grid; gap: 0;
  background: color-mix(in oklab, var(--paper) 88%, transparent);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  border: 1px solid color-mix(in oklab, #fff 60%, transparent);
  border-radius: var(--radius-lg);
  box-shadow: 0 24px 50px -24px rgb(60 20 10 / .35);
  max-width: 26rem;
}
.journey-preview li {
  display: grid; grid-template-columns: auto 1fr; gap: .9rem;
  padding-block: .85rem;
  border-bottom: 1px solid color-mix(in oklab, var(--ink) 10%, transparent);
  position: relative;
}
.journey-preview li:last-child { border-bottom: 0; }
.jp-mark {
  font-family: var(--font-display); font-size: var(--step-0);
  color: color-mix(in oklab, var(--accent) 55%, transparent);
  line-height: 1.4;
}
/* a thin spine running through the markers, like the timeline it previews */
.journey-preview li:not(:last-child)::before {
  content: ""; position: absolute; left: .62rem; top: 2.1rem; bottom: -.85rem;
  width: 1px; background: color-mix(in oklab, var(--accent) 22%, transparent);
}
.jp-when {
  font-family: var(--font-display); font-size: var(--step-0); color: var(--ink);
  margin-bottom: .2rem;
}
.jp-what { font-size: var(--step--1); color: color-mix(in oklab, var(--ink) 64%, transparent); line-height: 1.45; }
.jp-more { padding-block: .9rem 0; }
.jp-more a { font-size: var(--step--1); }

/* --- Legal pages --------------------------------------------------------- */
/* A page of clauses beside a list of them. The prose track is the measure
   itself, not a wider box the text then sits at one end of, and the pair is
   centred so both margins match. */
.legal-layout {
  display: grid;
  gap: clamp(1.8rem, 5vw, 4rem);
  grid-template-columns: 1fr;
  align-items: start;
  justify-content: center;
}
@media (min-width: 62rem) {
  .legal-layout { grid-template-columns: minmax(0, 14rem) minmax(0, var(--measure)); }
  .legal-layout > .legal-index { position: sticky; top: calc(var(--nav-h) + 3rem); }
}
.legal-index ol {
  list-style: none; padding: 0; margin: .7rem 0 0;
  display: grid; gap: .55rem;
  border-left: 1px solid var(--rule);
}
.legal-index li { padding-left: .9rem; }
.legal-index a {
  text-decoration: none;
  color: var(--fg-muted);
  font-size: var(--step--1);
  line-height: 1.35;
  display: inline-block;
}
.legal-index a:hover, .legal-index a:focus-visible { color: var(--accent); }
/* an anchor jump must not tuck the heading under the fixed nav */
.legal-body h2 { scroll-margin-top: calc(var(--nav-h) + 2rem); }

/* --- SPACING ------------------------------------------------------------- */
/* Two sections of the same tone in a row read as one long block, so the second
   starts closer to the first. Sections that change ground keep their full
   padding — the change of colour is the join, and squeezing it looks wrong. */
.section + .section:not(.on-dark):not(.on-maroon):not(.tone-warm):not(.prana-paper):not(.prana-deep) {
  padding-top: clamp(1.5rem, 3vw, 3rem);
}

/* Fix page-head to content spacing */
.page-head + .section { padding-top: clamp(2rem, 3.5vw, 4rem); }

/* Intent grid (What brought you here) */
.intent-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 9rem), 1fr));
  gap: clamp(1rem, 2vw, 1.5rem);
  margin-top: clamp(1.5rem, 2.5vw, 2.5rem);
}
.intent {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .8rem;
  padding: clamp(1.2rem, 2vw, 1.8rem) clamp(.8rem, 1.5vw, 1.2rem);
  text-align: center;
  text-decoration: none;
  background: var(--card);
  border: 1px solid var(--rule);
  border-radius: var(--radius-lg);
  transition: border-color .4s var(--ease-out), transform .4s var(--ease-out), box-shadow .4s var(--ease-out);
}
.intent:hover {
  border-color: color-mix(in oklab, var(--accent) 45%, transparent);
  transform: translateY(-4px);
  box-shadow: 0 8px 24px -6px rgb(var(--shadow-color) / .12);
}
.intent img {
  width: clamp(56px, 8vw, 80px);
  height: auto;
  border-radius: 50%;
}
.intent span {
  font-size: var(--step--1);
  font-weight: 500;
  color: var(--fg);
  line-height: 1.3;
}




/* --- Paying, on the confirmation screen -----------------------------------
   Sits under the reference, once the booking exists. It is deliberately not
   the loudest thing on the screen: the place is already held, and a guest who
   would rather pay by phone should not feel they have failed to finish.
   ------------------------------------------------------------------------ */
.pay-box {
  width: 100%; max-width: 26rem;
  margin: 1.6rem auto 0;
  padding: clamp(1.1rem, 2.4vw, 1.5rem);
  border: 1px solid color-mix(in oklab, var(--accent) 34%, transparent);
  border-radius: var(--radius-lg);
  background: color-mix(in oklab, var(--accent) 5%, var(--card));
  text-align: left;
}
.pay-box[hidden] { display: none; }
.pay-due {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 1rem; margin: 0 0 .3rem;
  font-size: var(--step--1); color: var(--fg-muted);
}
.pay-due strong {
  font-family: var(--font-display); font-size: var(--step-2);
  color: var(--accent); font-variant-numeric: tabular-nums;
}
.pay-note {
  margin: 0 0 1rem;
  font-size: var(--step--1); line-height: 1.5; color: var(--fg-muted);
}
/* A failure has to be legible, not decorative */
.pay-note[data-tone="bad"] { color: var(--danger-ink, #7a1a13); font-weight: 600; }
.pay-note[data-tone="ok"]  { color: var(--accent); font-weight: 600; }

/* Paid: the panel stops being a call to action and becomes a receipt line. */
.pay-box[data-paid="true"] {
  border-color: color-mix(in oklab, var(--accent) 45%, transparent);
  background: color-mix(in oklab, var(--accent) 9%, var(--card));
}
.pay-box[data-paid="true"] .pay-note { margin-bottom: 0; }

/* --- The cookie notice -----------------------------------------------------
   Small, in the corner, and out of the way. A full-width bar across the foot
   of the screen is the usual thing and it is the wrong thing: it covers the
   first screen of a site somebody has only just arrived at, and on a phone it
   swallows a third of it. This is a card, and the page behind it stays usable
   while it is up.
   ------------------------------------------------------------------------ */
.consent {
  position: fixed; z-index: 120;
  right: clamp(1rem, 2.4vw, 1.8rem);
  bottom: clamp(1rem, 2.4vw, 1.8rem);
  width: min(21rem, calc(100vw - 2rem));
  padding: 1rem 1.05rem 1.05rem;
  border: 1px solid color-mix(in oklab, var(--accent) 22%, transparent);
  border-radius: var(--radius-lg);
  background: color-mix(in oklab, var(--paper) 97%, transparent);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 26px 60px -26px rgb(var(--shadow-color) / .5);
  animation: consent-in .5s var(--ease-out) both;
}
.consent[hidden] { display: none; }
@keyframes consent-in { from { opacity: 0; transform: translateY(14px); } }
@media (prefers-reduced-motion: reduce) { .consent { animation: none; } }

.consent-head {
  margin: 0 0 .35rem;
  font-size: .76rem; letter-spacing: .16em; text-transform: uppercase;
  color: var(--accent); font-weight: 500;
}
.consent-text {
  margin: 0 0 .85rem;
  font-size: .82rem; line-height: 1.5; color: var(--fg-muted);
  max-width: none;
}
.consent-link { color: var(--fg); text-underline-offset: .2em; }
.consent-link:hover { color: var(--accent); }

/* Both answers have to sit on one line inside a card this narrow, so the
   buttons give up the roomy padding they wear elsewhere on the page. */
.consent-row { display: flex; align-items: center; gap: .45rem; }
.consent-row .btn {
  flex: 1 1 auto; padding: .6rem .65rem;
  font-size: .78rem; letter-spacing: .06em; white-space: nowrap;
}

/* While the notice is up, the back-to-top button would sit under it in the
   same corner. It waits its turn. */
body:has(.consent:not([hidden])) .to-top { opacity: 0; pointer-events: none; }

@media (max-width: 30rem) {
  .consent { right: .7rem; left: .7rem; bottom: .7rem; width: auto; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   BOOKING — the three-step flow
   The form used to drip one or two questions per screen across six steps.
   Everything below is written for the opposite: dense, legible screens that
   ask for a whole thought at a time, the way a flight asks for a passenger.
   ═══════════════════════════════════════════════════════════════════════ */

/* --- Step 2: the person we confirm with ---------------------------------- */
.lead-grid {
  display: grid;
  gap: clamp(.9rem, 2.2vw, 1.3rem);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
/* A name needs the room a two-digit age never does. */
.lg-name  { grid-column: span 1; }
.lg-age   { grid-column: span 1; max-width: 8rem; }
.lg-email, .lg-phone { grid-column: span 1; }
.lg-city  { grid-column: 1 / -1; max-width: 24rem; }

@media (max-width: 44rem) {
  .lead-grid { grid-template-columns: 1fr 8rem; }
  .lg-email, .lg-phone, .lg-city { grid-column: 1 / -1; max-width: none; }
}

.field-hint {
  margin: .45rem 0 0;
  font-size: var(--step--1); color: var(--fg-muted);
}

/* --- The city box --------------------------------------------------------- */
.combo { position: relative; }
.combo-list {
  position: absolute; z-index: 40; inset-inline: 0; top: calc(100% + .35rem);
  margin: 0; padding: .3rem; list-style: none;
  max-height: 17rem; overflow-y: auto; overscroll-behavior: contain;
  border: 1px solid color-mix(in oklab, var(--accent) 24%, transparent);
  border-radius: var(--radius);
  background: var(--paper);
  box-shadow: 0 22px 44px -22px rgb(var(--shadow-color) / .45);
}
.combo-list[hidden] { display: none; }
.combo-item {
  display: flex; align-items: baseline; justify-content: space-between; gap: 1rem;
  padding: .55rem .7rem; border-radius: calc(var(--radius) - .25rem);
  cursor: pointer;
}
.combo-item:hover, .combo-item.is-active {
  background: color-mix(in oklab, var(--accent) 10%, transparent);
}
.ci-name   { font-size: var(--step--1); color: var(--fg); }
.ci-region { font-size: .78rem; color: var(--fg-muted); white-space: nowrap; }

/* --- The safety gate ------------------------------------------------------ */
/* This block sits in front of payment on purpose, so it is given the weight of
   something to be read rather than a row of boxes to be clicked past. */
.safety-gate {
  margin: 0; padding: clamp(1.2rem, 2.6vw, 1.8rem);
  border: 1px solid color-mix(in oklab, var(--accent) 22%, transparent);
  border-radius: var(--radius-lg);
  background: color-mix(in oklab, var(--accent) 3%, transparent);
}
.safety-gate > legend {
  padding: 0 .5rem; margin-inline-start: -.5rem;
  font-family: var(--font-display); font-size: var(--step-1); color: var(--accent);
}
.safety-gate .has-error .field-error { margin-top: .5rem; }

/* --- The consent line ------------------------------------------------------
   Written as its own rule rather than reusing .choice: .choice styles a short
   pill button and applies to any span inside it, which turned this sentence
   into three flex items stacked on top of each other. */
.consent-check {
  display: flex; gap: .8rem; align-items: flex-start;
  cursor: pointer;
}
.consent-check input[type="checkbox"] {
  position: static; opacity: 1; flex: none;
  width: 1.1rem; height: 1.1rem; margin-top: .3rem;
  accent-color: var(--accent);
}
.cc-text {
  display: block;
  font-size: var(--step--1); line-height: 1.55; color: var(--fg);
}
.cc-note { display: block; color: var(--fg-muted); }
.updates-field { margin-top: .6rem; }

/* --- Step 3: what it costs, said once and plainly ------------------------- */
.review-cost {
  border-top: 1px solid var(--rule);
  margin-top: 1.4rem; padding-top: 1.2rem;
}
.review-cost .summary-row.is-due .k,
.review-cost .summary-row.is-due .v {
  font-family: var(--font-display); font-size: var(--step-2); color: var(--accent);
}

/* --- After the money ------------------------------------------------------
   The party and the long screening, on the confirmation screen. Set apart from
   the receipt above it so it reads as a next thing to do rather than as more
   of the booking. */
.aftercare {
  margin-top: clamp(2.5rem, 5vw, 4rem);
  padding-top: clamp(2rem, 4vw, 3rem);
  border-top: 1px solid var(--rule);
  text-align: left;
}
.aftercare[hidden] { display: none; }
.ac-head { margin-bottom: clamp(1.4rem, 3vw, 2rem); }
.ac-head h3 { margin: .2rem 0 .4rem; }
.ac-head .muted { max-width: 54ch; }

.done-help {
  margin-top: clamp(2rem, 4vw, 3rem);
  padding-top: clamp(1.4rem, 3vw, 2rem);
  border-top: 1px solid var(--rule);
  text-align: center;
}
.done-help .flex { margin-top: .8rem; }

/* The legend read "You  we confirm the booking with you" — two spans with a
   gap between them and nothing to say they were separate thoughts. */
.gc-note::before { content: '— '; }

.save-state[data-tone="ok"]  { color: var(--accent); }
.save-state[data-tone="bad"] { color: #C0392B; }

/* `hidden` has to actually hide.
   The attribute works through a UA rule of `display: none`, which any author
   rule setting `display` beats — so `.summary { display: grid }` meant the
   reservation panel stayed on screen after the booking was confirmed, and
   `.steps { display: flex }` kept the step bar there with it. Every block that
   set display was quietly opting out, and each one was being patched with its
   own `[hidden]` companion rule as somebody noticed. This is the rule those
   were all approximating. */
[hidden] { display: none !important; }

/* --- 44b. One page, three sections ---------------------------------------
   The booking form was a wizard: Place, then Details, then Pay. Two of those
   were barely screens - most people arrive on a link for one date, so Place
   was a card confirming a choice already made, and Pay was a review of what
   had just been typed. They are all on one page now, which means the seams
   between them have to do the work the step indicator used to do.
   ------------------------------------------------------------------------ */
.step-panel.is-active + .step-panel.is-active {
  margin-top: clamp(2.2rem, 5vw, 3.4rem);
  padding-top: clamp(2.2rem, 5vw, 3.4rem);
  border-top: 1px solid var(--rule);
}
/* Each section used to slide in as you reached it. Three of them arriving at
   once is a page that flinches on load, so only the confirmation animates. */
.step-panel.is-active { animation: none; }
.step-panel[data-step="done"].is-active { animation: step-in .55s var(--ease-out) both; }

.step-actions.is-single { display: block; margin-top: 1.6rem; }
.step-actions.is-single .btn { width: 100%; }

/* --- 45. Booking on a phone ----------------------------------------------
   The form was laid out at desktop rhythm and then let shrink, so on a 390px
   screen every block still carried desktop air: a 2rem gap under each step
   heading, 2rem between every group, and a summary card as tall as the form
   above it. Nothing here shrinks a tap target - the inputs keep their height
   and their 16px text, because anything under 16px makes iOS zoom the page on
   focus and anything under 44px is hard to hit. What comes out is the space
   between things, which is what made it feel oversized.
   ------------------------------------------------------------------------ */
@media (max-width: 40rem) {
  #book { padding-block: 1.6rem 2rem; }

  .steps { margin-bottom: 1.5rem; }
  .step-head { margin-bottom: 1.25rem; }
  .step-head h3 { font-size: var(--step-1); }
  .step-head p { margin-top: .35rem; }

  /* the inline --stack values on the panels are desktop numbers */
  .step-panel .stack { --stack: 1.4rem !important; }

  .oc-text { padding: 1rem 1.05rem; gap: .3rem; }
  .oc-rich .oc-title { font-size: var(--step-1); }
  .oc-rich .oc-price { font-size: var(--step-0); margin-top: .15rem; }

  .safety-gate { padding: 1.1rem 1.05rem; }
  .safety-gate legend { font-size: var(--step-0); }

  .summary { padding: 1.1rem 1.15rem; gap: .8rem; }
  .summary-rows { gap: .5rem; }

  .step-actions { margin-top: 1.4rem; }

  /* The sticky bar at the foot already carries Continue and the total. The
     inline button directly above it was the same button twice on one screen,
     and the summary card under it a third copy of the same figure. Back stays
     - it has no equivalent in the bar. */
  body:has(.book-bar:not([hidden])) .step-actions .spacer { display: none; }
  /* the phone bar carries the submit, so the inline one is a second copy */
  body:has(.book-bar:not([hidden])) .step-actions.is-single { display: none; }

  /* the 4rem drop under the chosen date was sized for a desktop column */
  .step-panel .mt-4 { margin-top: 1.6rem; }
  .step-panel .mt-3 { margin-top: 1.2rem; }

  /* the bar already carries the total and the way forward on a phone, so the
     summary card below the form is a second copy of it - keep it, but stop it
     taking a screen of its own */
  .summary h4 { font-size: var(--step-0); }
}

/* --- 46. The footer on a phone -------------------------------------------
   It ran to 1,559px on a 390px screen: nearly two full screens of footer,
   because all four blocks stacked at full width with a 2.5rem gap between
   each, and every link keeps a 44px row so a thumb can hit it.

   Those 44px rows stay - they are the reason the footer is usable at all.
   What changes is that the two short link lists sit beside each other rather
   than one after the other, which is thirteen rows saved and no tap target
   touched.
   ------------------------------------------------------------------------ */
@media (max-width: 60rem) {
  .footer { padding-block: clamp(2.4rem, 6vw, 3.5rem) 1.5rem; }

  .footer-top {
    grid-template-columns: 1fr 1fr;
    gap: clamp(1.8rem, 4vw, 2.6rem) clamp(1rem, 4vw, 2rem);
  }
  /* the brand paragraph and the newsletter both need the full width; the two
     lists of short links do not */
  .footer-top > :first-child,
  .footer-top > :last-child { grid-column: 1 / -1; }

  .footer h4 { margin-bottom: .7rem; }
  .footer .brand-mark { width: 124px; height: 66px; }

  /* A wordmark two thirds the height of a phone screen is not a flourish, it
     is a scroll. */
  .footer-wordmark {
    margin-top: clamp(1.6rem, 4vw, 2.5rem);
    font-size: clamp(2.6rem, 13vw, 5rem);
  }
  .footer-bottom { margin-top: clamp(1.8rem, 4vw, 2.5rem); padding-top: 1.2rem; }

  /* Two columns halve the label width, and "Prana Wellness Retreat" and
     "Therapist Referral Panel" no longer fit on one line at body size. A step
     down keeps them whole without touching the 44px rows underneath. */
  .footer-top ul { font-size: var(--step--1); }

  /* The back-to-top button is fixed to the bottom right corner, and Join sits
     in the bottom right corner of the footer, so the two met. Stacking the
     form gets the button out from under it - and a full-width field is easier
     to type in on a phone anyway. */
  .newsletter { flex-wrap: wrap; }
  .newsletter .input { flex: 1 1 100%; }
  .newsletter .btn { flex: 0 0 auto; }
}

/* Below this the two columns start breaking the longer link labels over two
   lines, which costs more height than it saves. */
@media (max-width: 22rem) {
  .footer-top { grid-template-columns: 1fr; }
}


/* --- 47. Trust, at the point of payment ----------------------------------
   One sentence used to sit under the button in muted grey: card, UPI, secured
   by Razorpay. True, and easy to miss, and it did not answer the two other
   things somebody thinks at that moment - who is holding my card details, and
   what if I cannot come.
   ------------------------------------------------------------------------ */
.pay-trust {
  list-style: none; margin: 1.4rem 0 0; padding: 1.2rem 0 0;
  border-top: 1px solid var(--rule);
  display: grid; gap: .8rem;
  font-size: var(--step--1); color: var(--fg-muted);
}
.pay-trust li { display: grid; grid-template-columns: auto 1fr; gap: .7rem; align-items: start; }
.pay-trust svg { width: 1.15rem; height: 1.15rem; color: var(--accent); margin-top: .1rem; }
.pay-trust strong { color: var(--fg); font-weight: 500; }
.pay-trust a { color: var(--accent); }

/* --- 48. The booking page's head, on a phone -----------------------------
   Every other page opens with a full screen of maroon and a headline, which is
   right for a page somebody is deciding on. This is not one of those: whoever
   is here has already decided, usually by tapping a link for one date, and a
   screen and a half of hero before the first field is the checkout equivalent
   of a queue. It keeps its headline and loses the air around it.
   ------------------------------------------------------------------------ */
@media (max-width: 48rem) {
  #book-head.page-head { padding-block: clamp(1.6rem, 5vw, 2.6rem) clamp(1.4rem, 4vw, 2.2rem); }
  #book-head h1 { font-size: var(--step-3) !important; }
  #book-head .lead { font-size: var(--step-0); margin-top: .7rem; }
  #book-head .badge { margin-top: .9rem; }
  #book-head .crumbs { margin-bottom: .7rem; }
}

/* The code box sits in the flow of the form now rather than inside the
   sidebar card, so it needs its own space around it. */
.step-panel .coupon-fold { margin: 0 0 1.6rem; padding-bottom: 1.2rem; border-bottom: 1px solid var(--rule); }

/* The after-payment form, when it has nothing to ask.
   For a session with no cold water and one place booked there are no health
   questions and nobody else to name, so the block is empty - and an empty
   panel headed "Almost done" reads as something that failed to load. */
.aftercare[data-empty="true"] { display: none; }

/* --- 49. The retreat hero, and the price band ----------------------------
   The hero put the picture in a 5:6 frame capped at 62vh, in a row set to
   align-items:center - so beside a column carrying a logo, a headline, a
   plaque, a paragraph, two partner marks and a button, the photograph was
   far shorter than its neighbour and sat marooned with dead space above and
   below it. It fills its side of the row now.
   ------------------------------------------------------------------------ */
@media (min-width: 62rem) {
  .page-head .split-lead { align-items: stretch; }
  .page-head .split-lead > .figure-tall {
    aspect-ratio: auto;
    max-height: none;
    height: 100%;
    min-height: 30rem;
  }
}

/* The short answer to "what does it cost", halfway down the page. */
.prana-cta-band {
  display: flex; flex-wrap: wrap; align-items: center;
  justify-content: space-between; gap: clamp(1.2rem, 3vw, 2.4rem);
  padding: clamp(1.4rem, 3vw, 2.2rem) clamp(1.4rem, 3.4vw, 2.6rem);
  border: 1px solid color-mix(in oklab, var(--prana-gold) 42%, transparent);
  border-radius: var(--radius-lg);
  background: color-mix(in oklab, var(--prana-gold) 8%, transparent);
}
.pcb-price {
  margin: 0; font-family: var(--font-display);
  font-size: var(--step-2); color: var(--heading); line-height: 1.15;
}
.pcb-price span {
  font-family: var(--font-sans); font-size: var(--step--1);
  color: var(--fg-muted); letter-spacing: .02em;
}
.pcb-note {
  margin: .5rem 0 0; font-size: var(--step--1); color: var(--fg-muted);
  max-width: 40ch;
}
.pcb-actions { display: grid; gap: .7rem; justify-items: start; }
@media (max-width: 40rem) {
  .prana-cta-band { flex-direction: column; align-items: flex-start; }
  .pcb-actions { width: 100%; }
  .pcb-actions .btn { width: 100%; justify-content: center; }
}

/* --- The follow-up box under a health answer ------------------------------
   "Yes (please mention)", "Other" - an answer that asks for more opens a box
   straight under itself, and only then. */
.health-more { margin-top: .7rem; }

/* --- 50. The community ---------------------------------------------------
   An invitation into the WhatsApp group: new dates first, offers for members.
   A rich maroon card rather than another band, so it reads as an offer even
   on a page full of sections - with a glimpse of the chat itself, because
   "a WhatsApp community" means more when you can see one.
   ------------------------------------------------------------------------ */
.community {
  position: relative;
  display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
  gap: clamp(1.6rem, 4vw, 3.6rem); align-items: center;
  padding: clamp(1.7rem, 4.4vw, 3.6rem);
  border-radius: calc(var(--radius-lg) * 3);
  background:
    radial-gradient(90% 80% at 100% 0%, color-mix(in oklab, var(--gold) 30%, transparent), transparent 60%),
    radial-gradient(70% 60% at 0% 100%, color-mix(in oklab, var(--peach) 14%, transparent), transparent 65%),
    linear-gradient(150deg, var(--maroon) 0%, var(--maroon-deep) 100%);
  color: var(--paper);
  overflow: hidden;
  isolation: isolate;
  box-shadow: 0 46px 90px -52px rgb(60 12 8 / .6);
}
.community-eyebrow {
  display: inline-flex; align-items: center; gap: .55rem;
  margin: 0 0 .9rem;
  font-size: .74rem; letter-spacing: .18em; text-transform: uppercase;
  color: var(--peach); font-weight: 500;
}
.community-eyebrow svg { width: 1.15rem; height: 1.15rem; color: var(--gold); }
.community h2 {
  margin: 0; max-width: 16ch;
  font-size: var(--step-4); line-height: 1.08;
  color: var(--paper);
}
.community-lead {
  margin: 1rem 0 0; max-width: 46ch;
  font-size: var(--step-0); line-height: 1.6;
  color: color-mix(in oklab, var(--paper) 84%, transparent);
}
.community-perks {
  list-style: none; margin: 1.5rem 0 0; padding: 0;
  display: grid; gap: .8rem;
}
.community-perks li {
  display: flex; align-items: flex-start; gap: .7rem;
  font-size: .95rem; line-height: 1.5;
  color: color-mix(in oklab, var(--paper) 80%, transparent);
}
.community-perks li strong { color: var(--paper); font-weight: 500; }
.community-perks svg { flex: none; width: 1.3rem; height: 1.3rem; margin-top: .1rem; color: var(--gold); }
.community-actions {
  margin-top: 1.9rem;
  display: flex; flex-wrap: wrap; align-items: center; gap: .9rem 1.3rem;
}
.community-actions .btn svg { width: 1.2rem; height: 1.2rem; flex: none; }
.community-note { font-size: .8rem; letter-spacing: .02em; color: color-mix(in oklab, var(--paper) 66%, transparent); }

/* the glimpse of the group */
.community-chat {
  justify-self: end; width: min(100%, 21.5rem);
  border-radius: 1.5rem; overflow: hidden;
  background: #ECE3D6;
  box-shadow: 0 30px 60px -30px rgb(0 0 0 / .55), 0 0 0 7px color-mix(in oklab, var(--paper) 10%, transparent);
  transform: rotate(2.2deg);
}
.cc-top {
  display: flex; align-items: center; gap: .7rem;
  padding: .85rem 1rem;
  background: #075E54; color: #fff;
}
.cc-avatar {
  flex: none; width: 2.2rem; height: 2.2rem; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--maroon); color: var(--gold);
  font-family: var(--font-display); font-size: 1.15rem;
}
.cc-who { display: grid; line-height: 1.2; }
.cc-name { font-size: .92rem; font-weight: 600; }
.cc-sub { font-size: .72rem; opacity: .82; }
.cc-body {
  display: grid; gap: .55rem;
  padding: 1rem .9rem 1.15rem;
  background:
    radial-gradient(circle at 20% 20%, rgb(0 0 0 / .035) 1px, transparent 1.5px) 0 0 / 14px 14px,
    #ECE3D6;
}
.cc-msg {
  justify-self: start; max-width: 86%;
  margin: 0; padding: .55rem .75rem .4rem;
  border-radius: .25rem .95rem .95rem .95rem;
  background: #fff; color: #2B1A14;
  font-size: .84rem; line-height: 1.42;
  box-shadow: 0 1px 1px rgb(0 0 0 / .08);
}
.cc-msg strong { color: var(--maroon); font-weight: 600; }
.cc-msg time { display: block; margin-top: .15rem; text-align: right; font-size: .64rem; color: #8B7F76; }
.cc-msg.is-me {
  justify-self: end;
  border-radius: .95rem .25rem .95rem .95rem;
  background: #D9F5C8;
}
.cc-msg.is-me b { color: #34B7F1; font-weight: 400; letter-spacing: -.12em; }

@media (max-width: 54rem) {
  .community { grid-template-columns: 1fr; }
  /* on a phone the card stays short: the words and the button are the offer */
  .community-chat { display: none; }
}
@media (max-width: 30rem) {
  .community-actions .btn { width: 100%; }
  .community-note { width: 100%; text-align: center; }
}

/* the same offer, as one line, under a finished booking */
.community-strip {
  display: flex; align-items: center; gap: .9rem;
  margin: 1.6rem auto 0; max-width: 34rem; width: 100%;
  padding: .95rem 1rem .95rem 1.05rem;
  border-radius: calc(var(--radius-lg) * 2);
  background: linear-gradient(150deg, var(--maroon), var(--maroon-deep));
  color: var(--paper); text-align: left; text-decoration: none;
  box-shadow: 0 22px 44px -30px rgb(60 12 8 / .6);
  transition: transform .3s var(--ease-out);
}
.community-strip:hover { transform: translateY(-2px); }
.cs-icon {
  flex: none; width: 2.7rem; height: 2.7rem; border-radius: 50%;
  display: grid; place-items: center;
  background: color-mix(in oklab, var(--paper) 12%, transparent); color: var(--gold);
}
.cs-icon svg { width: 1.4rem; height: 1.4rem; }
.cs-text { flex: 1; min-width: 0; display: grid; gap: .1rem; }
.cs-text strong { font-family: var(--font-display); font-size: var(--step-1); font-weight: 500; line-height: 1.2; }
.cs-text > span { font-size: .8rem; color: color-mix(in oklab, var(--paper) 78%, transparent); }
.community-strip .btn { flex: none; pointer-events: none; }
@media (max-width: 30rem) {
  .community-strip { flex-wrap: wrap; }
  .community-strip .btn { width: 100%; }
}

/* and in the footer, on every page */
.footer-community {
  display: flex; align-items: center; gap: .75rem;
  margin: 1.1rem 0 1rem; padding: .75rem .9rem;
  border: 1px solid color-mix(in oklab, var(--gold) 45%, transparent);
  border-radius: calc(var(--radius-lg) * 2);
  color: #FAF3E9; text-decoration: none;
  transition: background .25s, border-color .25s;
}
.footer-community:hover {
  background: color-mix(in oklab, var(--gold) 14%, transparent);
  border-color: var(--gold);
}
.footer-community svg { flex: none; width: 1.55rem; height: 1.55rem; color: var(--gold); }
.footer-community span { display: grid; line-height: 1.3; }
.footer-community strong { font-size: .9rem; font-weight: 500; }
.footer-community small { font-size: .76rem; opacity: .74; }

/* --- The cookie note and the phone's pay bar ----------------------------
   On a phone both sit at the foot of the booking page, and the note sat right
   on top of the bar - so a first-time visitor tapping Pay tapped "Essentials
   only" instead. While the bar is showing, the note moves up above it. */
@media (max-width: 68rem) {
  body:has(.book-bar:not([hidden])) .consent {
    bottom: calc(6rem + env(safe-area-inset-bottom, 0px));
  }
}

/* --- The Delhi pages: one practice's dates ----------------------------------
   auto-fill, not the grid's auto-fit: a single date stays a card-sized card
   instead of stretching across the whole row. */
.practice-dates .grid-3 { grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr)); }

/* --- Retreat cancellation bands ------------------------------------------- */
.refund { max-width: 46rem; margin: clamp(2rem, 4vw, 3rem) auto 0; }
.refund .eyebrow { margin-bottom: .9rem; }
.refund-bands { list-style: none; margin: 0 0 1rem; padding: 0; }
.refund-bands li {
  display: flex; flex-wrap: wrap; gap: .3rem 1rem; align-items: baseline;
  justify-content: space-between;
  padding: .85rem 0; border-top: 1px solid var(--rule);
}
.refund-bands li:last-child { border-bottom: 1px solid var(--rule); }
.refund-bands > li > span { font-size: var(--step--1); }
.refund-bands strong { font-family: var(--font-display); font-size: var(--step-0); color: var(--heading); white-space: nowrap; }
/* On a phone the two halves wrap raggedly side by side; stacked, every row
   reads the same way down the list. */
@media (max-width: 40rem) {
  .refund-bands li { flex-direction: column; align-items: flex-start; gap: .15rem; }
}
