/* Untitled, shared by the English, Russian and document pages. */
*,*::before,*::after { box-sizing:border-box; margin:var(--space-zero); padding:var(--space-zero); }
html { scroll-behavior:smooth; color-scheme:light; scroll-padding-top:var(--space-l); }
body { background:var(--cte-canvas); color:var(--cte-text); font-family:var(--font-ui); font-size:var(--size-m); line-height:var(--line-m); letter-spacing:var(--letter-spacing-m); font-weight:var(--weight-ui-regular); -webkit-font-smoothing:antialiased; text-wrap:pretty; }
img { display:block; max-width:100%; height:auto; }
svg { display:block; }
a { color:inherit; }
em { font-style:normal; }
strong { font-weight:var(--weight-ui-heavy); }
button,a,summary { -webkit-tap-highlight-color:transparent; }
a:focus-visible,button:focus-visible,summary:focus-visible,.reviews-grid:focus-visible { outline:var(--border-l) solid var(--cte-focus); outline-offset:var(--space-xxs); }
.wrap { width:min(calc(100% - 2 * var(--page-gutter)),var(--content-width)); margin-inline:auto; padding:var(--space-zero); }
.narrow { width:min(calc(100% - 2 * var(--page-gutter)),var(--content-width)); margin-inline:auto; padding:var(--space-zero); }
.icon { width:var(--line-m); height:var(--line-m); flex:0 0 var(--line-m); stroke-width:var(--icon-stroke-width); }
.visually-hidden { position:absolute; width:1px; height:1px; clip-path:inset(50%); overflow:hidden; white-space:nowrap; }
.mono,.host-role,.host-creds,.price-kind,.review-byline,.updated { font-family:var(--font-ui); font-size:var(--size-s); line-height:var(--line-s); letter-spacing:var(--letter-spacing-s); font-weight:var(--weight-ui-regular); color:var(--neutral-7); }
.display,.section-title,.host-name,.doc h1 { font-family:var(--font-brand); font-size:var(--size-xl); line-height:var(--line-xl); letter-spacing:var(--letter-spacing-xl); font-weight:var(--weight-brand-regular); }
.section-title { max-width:30ch; margin-bottom:var(--space-s); }
.lede { max-width:62ch; color:var(--neutral-8); margin-bottom:var(--space-xl); }
.rule { height:var(--border-s); width:100%; background:var(--neutral-4); margin-block:var(--space-xl); }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:var(--space-xs); min-height:calc(var(--space-xl) + var(--space-s)); padding:var(--space-xs) var(--space-m); border:var(--border-none); border-radius:var(--radius-s); font-family:var(--font-ui); font-size:var(--size-s); line-height:var(--line-s); letter-spacing:var(--letter-spacing-s); font-weight:var(--weight-ui-medium); text-decoration:none; cursor:pointer; transition:background-color var(--motion-duration) var(--motion-easing),box-shadow var(--motion-duration) var(--motion-easing); }
.btn { background:var(--neutral-3); color:var(--neutral-10); box-shadow:var(--shadow-none); }
.btn:hover { background:var(--neutral-4); box-shadow:var(--shadow-s); }
.btn:active { transform:translateY(var(--motion-press-distance)); }
.btn-primary { background:var(--color-1); color:var(--neutral-1); }
.btn-primary:hover { background:var(--color-1); box-shadow:var(--shadow-s); }
.btn-light { background:var(--neutral-2); color:var(--neutral-10); box-shadow:var(--border-shadow-s); }
.btn:focus-visible { box-shadow:0 0 0 var(--border-l) color-mix(in srgb,var(--color-1-transparent) 24%,transparent); }
.btn .icon { width:var(--line-s); height:var(--line-s); flex-basis:var(--line-s); }

/* Navigation is part of the page, rather than sitting over the photograph. */
body > header { margin-inline:auto; padding:var(--space-m) var(--page-gutter); display:flex; align-items:center; justify-content:space-between; gap:var(--space-l); }
.logo { display:inline-flex; align-items:center; color:var(--neutral-10); text-decoration:none; flex:0 0 auto; }
.logo svg { width:80px; height:auto; }
.header-right { position:relative; display:flex; align-items:center; gap:var(--space-xs); }
/* Samudera menu component copied at the user's request. */
.hero-menu-toggle{position:fixed;z-index:40;left:max(var(--page-gutter),env(safe-area-inset-left));top:max(16px,env(safe-area-inset-top));display:grid;place-items:center;width:48px;height:48px;padding:12px;border:1px solid var(--neutral-4);border-radius:999px;background:rgb(255 255 255 / 55%);-webkit-backdrop-filter:blur(16px) saturate(140%);backdrop-filter:blur(16px) saturate(140%);color:#171717}
.hero-menu-toggle svg{width:22px;height:22px}
.hero-menu-toggle[aria-expanded="true"] .menu-open-icon,.hero-menu-toggle[aria-expanded="false"] .menu-close-icon{display:none}

.hero-menu{position:fixed;inset:0;margin:0;width:100%;max-width:none;height:100svh;height:100dvh;max-height:none;padding:calc(max(16px,env(safe-area-inset-top)) + 72px) max(var(--page-gutter),env(safe-area-inset-right)) max(28px,env(safe-area-inset-bottom)) max(var(--page-gutter),env(safe-area-inset-left));border:0;border-radius:0;background:var(--cte-canvas);color:var(--cte-text);overflow-y:auto;overscroll-behavior:contain;opacity:0;transform:translateY(8px);transition:opacity 200ms ease,transform 240ms var(--motion-easing)}
.hero-menu[open]{display:flex;flex-direction:column;gap:24px}
.hero-menu.is-open{opacity:1;transform:translateY(0)}
.hero-menu::backdrop{background:var(--cte-canvas)}
.menu-dismiss{position:absolute;left:max(var(--page-gutter),env(safe-area-inset-left));top:max(16px,env(safe-area-inset-top));display:grid;place-items:center;width:48px;height:48px;padding:12px;border:1px solid var(--neutral-4);border-radius:50%;background:var(--cte-canvas);color:var(--cte-text);cursor:pointer}
.hero-menu.pointer-open .menu-dismiss:focus-visible{outline:none}
.menu-dismiss svg{width:22px;height:22px}
.menu-links{display:flex;flex:1;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:clamp(8px,2vh,20px);width:min(100%,760px);margin-inline:auto}
.menu-links a{display:block;width:fit-content;padding:4px 0;text-decoration:none;font-size:clamp(32px,5vw,56px);line-height:1.15;letter-spacing:-.04em;opacity:0;transform:translateY(12px);transition:opacity 220ms ease,transform 260ms var(--motion-easing)}
.hero-menu.is-open .menu-links a{opacity:1;transform:translateY(0);transition-delay:calc(var(--menu-order) * 35ms)}
.menu-links a:hover{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}
.menu-cta{flex:none;align-self:center;width:auto;max-width:100%;min-height:56px;padding:14px 26px;background:var(--color-1);color:var(--neutral-1);border-color:var(--color-1);font-size:18px;font-weight:600;box-shadow:var(--shadow-s)}
.menu-cta:active{transform:translate(2px,3px);box-shadow:var(--shadow-s)}
@media(max-height:500px){.hero-menu{gap:16px;padding-top:72px;padding-bottom:20px}.menu-links{gap:0}.menu-links a{font-size:24px;min-height:40px}.menu-cta{min-height:48px;padding:10px 26px}}

.hero-menu,.menu-links { font-family:var(--font-ui); }
.menu-languages { display:flex; justify-content:center; align-self:center; gap:var(--space-m); }
.menu-languages a { display:grid; place-items:center; min-width:44px; min-height:44px; text-decoration:none; font-size:var(--size-s); font-weight:var(--weight-ui-medium); }
.menu-languages a[aria-current="page"] { text-decoration:underline; text-underline-offset:var(--space-xxs); }
.header-cta { position:fixed; z-index:40; right:max(var(--page-gutter),env(safe-area-inset-right)); top:max(var(--space-m),env(safe-area-inset-top)); }
.header-cta,.retreat-book { min-height:var(--space-xxl); padding:var(--space-xs) calc(var(--space-l) - 2px); border-radius:var(--radius-full); white-space:nowrap; font-size:var(--size-m); font-weight:var(--weight-ui-heavy); }
.menu-cta { border-radius:var(--radius-full); }
.menu-cta .icon { width:var(--line-s); height:var(--line-s); }
body > header { min-height:calc(var(--space-xxl) + var(--space-m) * 2); }
body > header .logo { margin-left:calc(var(--space-xxl) + var(--space-m)); }

/* Samudera inset film frame with the mobile retreat montage. */
.hero { padding:var(--space-xxs) var(--page-gutter) var(--space-m); }
.hero-media { position:relative; height:calc(100svh - 100px); height:calc(100dvh - 100px); min-height:420px; overflow:hidden; border-radius:var(--radius-l); background:var(--neutral-3); }
.hero-media > img:not(.hero-brand) { width:100%; height:100%; object-fit:cover; object-position:center 55%; }
.hero-brand { position:absolute; z-index:1; left:50%; top:50%; transform:translate(-50%,-50%); width:min(75%,320px); height:auto; filter:brightness(0) invert(1); }
section { padding-block:var(--space-xxl); }
section.cream { background:var(--neutral-2); }
.retreat-page > header .logo { display:none; }
.retreat-page > header .header-right { width:100%; }
.retreat-page > header .menu-group { margin-right:auto; }
.retreat-intro { padding-bottom:var(--space-xxl); }
.hero-inner { margin-bottom:var(--space-s); }
.hero-inner h1 { max-width:27ch; font-family:var(--font-brand); font-size:var(--size-xl); line-height:var(--line-xl); letter-spacing:var(--letter-spacing-xl); font-weight:var(--weight-brand-regular); }
.hero-sub { max-width:750px; margin-top:var(--space-s); color:var(--neutral-8); font-size:var(--size-subtitle); line-height:var(--line-subtitle); letter-spacing:var(--tracking-subtitle); }
.experience-carousel { position:relative; }
.experience-rail { display:flex; gap:var(--space-xs); overflow-x:auto; scroll-snap-type:x mandatory; scroll-padding-inline:max(var(--page-gutter),calc((100vw - var(--content-width)) / 2)); padding-inline:max(var(--page-gutter),calc((100vw - var(--content-width)) / 2)); scrollbar-width:none; overscroll-behavior-inline:contain; }
.experience-rail::-webkit-scrollbar { display:none; }
.experience-card { position:relative; isolation:isolate; flex:0 0 min(420px,calc(100vw - 2 * var(--page-gutter))); aspect-ratio:608/1080; min-width:0; display:flex; align-items:flex-end; overflow:hidden; border-radius:var(--radius-l); background:var(--photo-surface); color:var(--photo-ink); scroll-snap-align:start; }
.experience-card::after,.coach-card::after { content:""; position:absolute; inset:0; background:var(--photo-scrim); pointer-events:none; }
.experience-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.experience-card img[src$="practice.webp"] { object-position:50% 35%; }
.experience-card figcaption { position:relative; z-index:1; padding:var(--space-l) var(--space-l) calc(var(--space-xl) * 2); }
.experience-card h2 { font-family:var(--font-brand); font-weight:var(--weight-brand-regular); font-size:var(--size-coach); line-height:var(--line-coach); letter-spacing:var(--letter-spacing-xl); }
.experience-card p { max-width:32ch; margin-top:var(--space-s); font-size:var(--size-s); line-height:var(--line-coach-copy); letter-spacing:var(--letter-spacing-m); }
.experience-navigation { position:absolute; bottom:var(--space-xs); left:50%; transform:translateX(-50%); }
.experience-navigation .carousel-indicator { background:color-mix(in srgb,var(--photo-ink) 40%,transparent); }
.experience-navigation .carousel-indicator-fill { background:var(--photo-ink); }
.experience-navigation .review-dot:focus-visible { outline-color:var(--photo-ink); }

/* Time rows remain inside the full programme disclosures. */
.schedule-row { display:grid; grid-template-columns:80px minmax(0,1fr); gap:var(--space-l); padding-block:var(--space-m); box-shadow:inset 0 var(--border-s) 0 var(--neutral-4); }
.schedule-row:last-child { box-shadow:inset 0 var(--border-s) 0 var(--neutral-4),inset 0 calc(-1 * var(--border-s)) 0 var(--neutral-4); }
.schedule-time { font-family:var(--font-data); font-variant-numeric:tabular-nums; }
.schedule-activity { color:var(--neutral-8); }
.schedule-activity em { color:var(--neutral-7); }
#programme > .wrap { max-width:900px; }
.retreat-summary { max-width:48ch; margin-top:var(--space-m); font-size:var(--size-m); line-height:var(--line-m); color:var(--neutral-8); }
.retreat-dates { margin-bottom:var(--space-m); }
.retreat-dates,.pricing-badge { display:inline-flex; padding:var(--space-xs) var(--space-m); border-radius:var(--radius-full); background:var(--color-1); color:var(--neutral-1); font-size:var(--size-s); line-height:var(--line-s); font-weight:var(--weight-ui-medium); }
.programme { max-width:900px; margin:calc(var(--space-xl) + var(--space-xs)) auto var(--space-zero); }
.programme details,.faq details { box-shadow:inset 0 calc(-1 * var(--border-s)) 0 var(--neutral-4); }
.programme details[open],.faq details[open] { background:var(--neutral-2); border-radius:var(--radius-s); }
.programme summary { list-style:none; cursor:pointer; padding:var(--space-m); display:grid; grid-template-columns:48px minmax(0,1fr) 24px; align-items:center; gap:var(--space-l); border-radius:var(--radius-s); font-family:var(--font-ui); font-size:var(--size-row); line-height:var(--line-row); letter-spacing:var(--letter-spacing-m); font-weight:var(--weight-ui-medium); }
summary::-webkit-details-marker { display:none; }
.programme summary:hover { background:var(--neutral-3); }
.day-num { font-size:var(--size-xs); color:var(--color-1); font-variant-numeric:tabular-nums; }
.day-title { color:var(--neutral-10); }
.day-toggle { display:grid; place-items:center; transition:transform var(--motion-duration) var(--motion-easing); }
.programme details[open] .day-toggle { transform:rotate(45deg); }
.day-body { padding:var(--space-zero) var(--space-m) var(--space-m) calc(48px + var(--space-l) + var(--space-m)); font-size:var(--size-s); line-height:var(--line-s); letter-spacing:var(--letter-spacing-s); }
.day-body .schedule-row { padding-block:var(--space-s); box-shadow:var(--shadow-none); }
/* Jacka's card composition, with Anna's existing photograph. */
#host { background:var(--neutral-2); }
.coach-card { position:relative; isolation:isolate; display:flex; align-items:flex-end; width:100%; max-width:480px; margin-inline:auto; aspect-ratio:608/1080; overflow:hidden; border-radius:var(--radius-l); background:var(--photo-surface); color:var(--photo-ink); }
.coach-card img,.coach-card video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.coach-card video { opacity:0; object-position:50% 35%; }
.coach-card .coach-poster { object-position:50% 35%; }
.coach-card.has-video-frame video { opacity:1; }
.coach-card.has-video-frame .coach-poster { visibility:hidden; }
.coach-card figcaption { position:relative; z-index:1; padding:var(--space-l) var(--space-l) calc(var(--space-xl) + var(--space-s)); }
.coach-card h2 { font-family:var(--font-brand); font-size:var(--size-coach); line-height:var(--line-coach); letter-spacing:var(--letter-spacing-xl); font-weight:var(--weight-brand-regular); }
.coach-card p { max-width:32ch; margin-top:var(--space-s); font-size:var(--size-coach-copy); line-height:var(--line-coach-copy); letter-spacing:var(--letter-spacing-m); }

/* The same swipe, snap and filling timer used on the hotel page. */
.guest-reviews { background:var(--neutral-2); color:var(--neutral-10); }
.guest-reviews > .wrap { max-width:var(--content-width); }
.review-carousel { position:relative; width:100vw; margin-top:var(--space-l); margin-inline-start:calc((100% - 100vw) / 2); }
.reviews-grid { position:relative; display:flex; gap:var(--space-xs); width:100%; max-width:none; margin-inline:auto; padding:var(--space-xxs) var(--page-gutter); overflow-x:auto; overflow-anchor:none; scroll-snap-type:x mandatory; scroll-padding-inline:var(--page-gutter); scrollbar-width:none; overscroll-behavior-x:contain; }

.reviews-grid::-webkit-scrollbar { display:none; }
.review { flex:0 0 min(760px,calc(100% - var(--space-m))); min-width:0; min-height:calc(var(--line-l) * 16); display:flex; flex-direction:column; align-items:stretch; justify-content:center; padding:var(--space-xxl) var(--space-l); scroll-snap-align:start; background:var(--neutral-1); border-radius:var(--radius-m); box-shadow:var(--border-shadow-s),var(--shadow-s); }
.review blockquote { max-width:none; font-family:var(--font-editorial); font-weight:var(--weight-editorial-regular); font-size:var(--size-l); line-height:var(--line-review); letter-spacing:var(--letter-spacing-m); text-align:center; color:var(--neutral-9); }
.review figcaption { display:flex; align-items:center; justify-content:center; gap:var(--space-s); margin-top:var(--space-l); font-size:var(--size-xs); line-height:var(--line-byline); letter-spacing:var(--letter-spacing-m); color:var(--neutral-7); }
.review-photo { overflow:hidden; width:calc(var(--space-xl) + var(--space-xs)); height:calc(var(--space-xl) + var(--space-xs)); flex:0 0 calc(var(--space-xl) + var(--space-xs)); border-radius:var(--radius-full); background:var(--neutral-3); }
.review-photo img { width:100%; height:100%; object-fit:cover; }
.review-navigation { display:flex; justify-content:center; margin-top:var(--space-m); }
.review-dots { display:flex; }
.review-dot { display:flex; align-items:center; justify-content:center; width:var(--space-m); height:calc(var(--space-xl) + var(--space-s)); border:var(--border-none); background:var(--color-none); cursor:pointer; transition:width var(--motion-duration) var(--motion-easing); }
.review-dot[aria-pressed="true"] { width:calc(var(--space-xl) + var(--space-xs)); }
.carousel-indicator { position:relative; display:block; overflow:hidden; width:var(--space-xs); height:var(--space-xs); border-radius:var(--radius-full); background:var(--neutral-5); transition:width var(--motion-duration) var(--motion-easing); }
.review-dot[aria-pressed="true"] .carousel-indicator { width:var(--space-xl); }
.carousel-indicator-fill { position:absolute; inset:0; border-radius:inherit; background:var(--neutral-10); transform:scaleX(0); transform-origin:left center; }
/* Samudera's restrained question rows and rotating chevrons. */
#faq .narrow { max-width:var(--content-width); }
.faq { margin-top:var(--space-zero); box-shadow:inset 0 var(--border-s) 0 var(--neutral-4); }
.faq details { padding-inline:var(--space-zero); }
.faq details[open] { background:var(--color-none); }
.faq summary { position:relative; list-style:none; cursor:pointer; padding:calc(var(--space-m) + var(--space-xxs)) var(--space-xl) calc(var(--space-m) + var(--space-xxs)) var(--space-zero); min-height:60px; font-family:var(--font-ui); font-size:var(--size-question); line-height:var(--line-question); letter-spacing:var(--letter-spacing-m); font-weight:var(--weight-ui-medium); }
.faq-chevron { position:absolute; right:0; top:50%; width:var(--line-s); height:var(--line-s); color:var(--neutral-7); transform:translateY(-50%); transition:transform var(--motion-duration) var(--motion-easing); }
.faq details[open] .faq-chevron { transform:translateY(-50%) rotate(180deg); }
.faq-body { padding:var(--space-zero) var(--space-xl) calc(var(--space-m) + var(--space-xxs)) var(--space-zero); color:var(--neutral-8); font-size:var(--size-answer); line-height:var(--line-answer); letter-spacing:var(--letter-spacing-m); }
#pricing .wrap { max-width:var(--content-width); }
.pricing-heading { display:flex; align-items:center; gap:var(--space-xs); }
.pricing-badge { min-width:0; text-align:center; }
.pricing-heading .section-title { margin-bottom:var(--space-zero); }
.pricing-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-l); margin-top:var(--space-xl); }
.pricing-card { min-width:0; padding:var(--space-xl); background:var(--neutral-3); border-radius:var(--radius-l); box-shadow:var(--shadow-none); }
.room-title { font-family:var(--font-ui); font-size:var(--size-m); line-height:var(--line-m); letter-spacing:var(--letter-spacing-m); font-weight:var(--weight-ui-medium); margin-bottom:var(--space-m); }
.price-name,.doc h2 { font-family:var(--font-brand); font-size:var(--size-l); line-height:var(--line-l); letter-spacing:var(--letter-spacing-l); font-weight:var(--weight-brand-regular); margin-bottom:var(--space-m); }
.price-name { margin-bottom:var(--space-l); }
.price-amount { display:flex; align-items:baseline; flex-wrap:wrap; gap:var(--space-s); font-family:var(--font-brand); font-size:var(--size-l); line-height:var(--line-l); letter-spacing:var(--letter-spacing-l); font-weight:var(--weight-brand-regular); margin-bottom:var(--space-s); }
.price-was,.price-per { font-family:var(--font-ui); font-size:var(--size-s); line-height:var(--line-s); letter-spacing:var(--letter-spacing-s); color:var(--neutral-7); }
.price-was { text-decoration:line-through; }
.included { margin-top:var(--space-xxl); display:grid; grid-template-columns:minmax(0,1fr); gap:var(--space-xxl); }
.included h4 { font-size:var(--size-m); line-height:var(--line-m); letter-spacing:var(--letter-spacing-m); font-weight:var(--weight-ui-medium); margin-bottom:var(--space-m); }
.included ul { list-style:none; display:grid; gap:var(--space-s); }
.price-per,.included li { font-size:var(--size-card-copy); line-height:var(--line-card-copy); letter-spacing:var(--letter-spacing-m); }
.included li { display:grid; grid-template-columns:var(--line-s) minmax(0,1fr); align-items:start; gap:var(--space-xs); padding:var(--space-zero); color:var(--neutral-8); }
.included-tick { width:var(--line-s); height:var(--line-s); color:var(--color-1); }


/* Samudera's rounded inset footer, in OOMM green. */
.site-footer { width:calc(100% - 2 * var(--page-gutter)); margin:var(--space-xs) auto var(--page-gutter); padding:calc(var(--space-xl) + var(--space-xs)) var(--space-l); border-radius:var(--radius-l); background:var(--footer-surface); color:var(--footer-ink); font-size:var(--size-s); line-height:var(--line-s); letter-spacing:var(--letter-spacing-m); }
.footer-grid { width:min(100%,var(--content-width)); display:grid; gap:var(--space-l); }
.footer-link-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-l); min-width:0; }
.footer-links-single { grid-template-columns:minmax(0,1fr); }
.footer-brand img { width:110px; height:auto; filter:brightness(0) invert(1); margin-bottom:var(--space-l); }
.footer-brand h2,.footer-column h3 { font-family:var(--font-ui); font-size:var(--size-s); line-height:var(--line-byline); letter-spacing:var(--letter-spacing-m); font-weight:var(--weight-ui-medium); margin-bottom:var(--space-xs); }
.footer-brand p { font-size:var(--size-s); line-height:var(--line-footer); }
.footer-column > a { font-size:var(--size-footer-link); line-height:var(--line-byline); }
.footer-column { display:flex; flex-direction:column; gap:var(--space-s); align-items:flex-start; min-width:0; overflow-wrap:anywhere; }
.site-footer a { text-decoration:none; }
.site-footer a:hover { text-decoration:underline; text-underline-offset:var(--space-xxs); }
.site-footer a:focus-visible { outline-color:var(--footer-ink); }
.social-links { display:flex; gap:var(--space-xs); margin-top:var(--space-l); }
.social-links a { display:grid; place-items:center; width:44px; height:44px; border-radius:var(--radius-full); background:var(--footer-ink); color:var(--footer-surface); }
.social-links .icon { width:var(--line-s); height:var(--line-s); }
.footer-copyright { margin:var(--space-l) var(--space-m); text-align:center; font-size:var(--size-xs); line-height:var(--line-byline); letter-spacing:var(--letter-spacing-m); color:var(--neutral-8); }

/* Document pages share the same typography and navigation. */
body > header.doc-header { box-shadow:inset 0 calc(-1 * var(--border-s)) 0 var(--neutral-4); }
.doc { max-width:856px; margin-inline:auto; padding:var(--space-xxl) var(--space-xxl) calc(var(--space-xxl) * 2); overflow-wrap:anywhere; }
.doc h1 { margin-bottom:var(--space-m); }
.doc .lede { color:var(--neutral-8); margin-bottom:var(--space-xl); }
.doc h2 { margin-top:var(--space-xl); }
.doc h3 { font-size:var(--size-m); line-height:var(--line-m); letter-spacing:var(--letter-spacing-m); font-weight:var(--weight-ui-medium); margin-block:var(--space-l) var(--space-s); }
.doc p,.doc ul { margin-bottom:var(--space-m); }
.doc ul { padding-left:var(--space-l); }
.doc li { margin-bottom:var(--space-xs); }
.doc a { color:var(--color-1); text-decoration:underline; text-underline-offset:var(--space-xxs); }
:root[data-mode="dark"] { color-scheme:dark; --cte-focus:var(--color-3); }
:root[data-mode="dark"] .btn-primary { color:var(--neutral-10); }
:root[data-mode="dark"] .doc a { color:var(--neutral-10); }
:root[data-mode="dark"] .day-num { color:var(--color-3); }

@media (max-width:1023px) {
 .doc-header .logo { display:none; }
}
@media (min-width:840px) {
 section { padding-block:calc(var(--space-xxl) + var(--space-xs)); }
 .experience-card { flex-basis:380px; }
}
@media (min-width:1024px) {
 .hero-media { min-height:0; height:auto; aspect-ratio:3/1; }
 .pricing-badge { align-self:flex-start; margin-block-start:var(--space-xs); }
 .retreat-intro .wrap { width:min(calc(100% - 64px),1000px); }
 .retreat-layout { display:grid; grid-template-columns:minmax(0,3fr) minmax(0,2fr); align-items:start; gap:clamp(var(--space-xl),5vw,72px); width:min(calc(100% - 2 * var(--page-gutter)),1320px); margin-inline:auto; padding-block:calc(var(--space-xxl) + var(--space-xs)); }
 .retreat-layout > section { padding-block:var(--space-zero); }
 .retreat-layout #programme > .wrap,.retreat-layout #host > .wrap { width:100%; max-width:none; }
 .retreat-layout #host { background:none; }
 #faq .narrow { max-width:760px; }
 .experience-rail { padding-inline:max(var(--page-gutter),calc((100vw - 1000px) / 2)); scroll-padding-inline:max(var(--page-gutter),calc((100vw - 1000px) / 2)); }
 .experience-card { height:560px; aspect-ratio:auto; }
 .experience-card p { min-block-size:3lh; }
 .hero-brand { display:none; }
 .retreat-page > header .logo { display:inline-flex; }
 .retreat-page > header .header-right { width:auto; }
 .retreat-page > header .menu-group { margin-right:var(--space-zero); }
 .coach-card { width:100%; height:auto; max-width:560px; aspect-ratio:4/5; }
 .coach-card img { object-position:50% 65%; }
 .coach-card figcaption { padding:var(--space-zero) var(--space-xl) var(--space-xl); }
}
@media (min-width:1400px) {
 .retreat-intro .wrap { width:min(calc(100% - 64px),1320px); }
 .experience-rail { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); width:min(calc(100% - 64px),1320px); gap:var(--space-m); margin-inline:auto; padding:var(--space-zero); overflow:visible; }
 .experience-card { width:100%; height:500px; }
 .experience-card[data-clone],.experience-navigation { display:none; }
 .experience-card figcaption { padding:var(--space-l) calc(var(--space-m) + var(--space-xxs)) calc(var(--space-l) + var(--space-xxs)); }
}
@media (max-width:760px) {
 .doc { padding-inline:var(--space-l); }
 body > header { gap:var(--space-m); }
 .hero-inner h1 { max-width:22ch; }
 section { padding-block:var(--space-xxl); }
 .programme { margin-top:var(--space-xl); }
 .programme summary { grid-template-columns:32px minmax(0,1fr) 20px; gap:var(--space-s); padding-inline:var(--space-s); }
 .day-body { padding-left:var(--space-s); padding-right:var(--space-s); }
 .schedule-row { grid-template-columns:80px minmax(0,1fr); gap:var(--space-m); }
 .guest-reviews .wrap { padding-inline:var(--space-zero); }
 .guest-reviews > .wrap > .section-title { margin-inline:var(--space-zero); }
 .reviews-grid { padding-inline:var(--space-zero); scroll-padding-inline:var(--space-zero); }
 .review { padding-inline:var(--space-m); }
 .pricing-grid { grid-template-columns:minmax(0,1fr); }
 .pricing-card { padding:var(--space-l); }
 .doc { padding-block:var(--space-xl) var(--space-xxl); }
}
@media (min-width:760px) {
 .footer-grid { grid-template-columns:1fr 1.5fr; gap:var(--space-xxl); }
}
@media (max-width:480px) {
 .site-footer { padding-block:calc(var(--space-l) + var(--space-xxs)); }
}
@media (prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 .btn,.day-toggle,.faq-chevron,.review-dot,.carousel-indicator { transition:none; }
 .hero-menu,.menu-links a { transition:none!important; }
}

/* Footer contact icons share the top row with the logo. */
.site-footer { position:relative; }
.site-footer .social-links { position:absolute; top:calc(var(--space-xl) + var(--space-xs)); right:var(--space-l); margin:var(--space-zero); }
.footer-brand > a { display:inline-block; max-width:calc(100% - 2 * (var(--space-xl) + var(--space-s)) - var(--space-xs)); }
@media (max-width:480px) {
 .site-footer .social-links { top:calc(var(--space-l) + var(--space-xxs)); }
}

/* Samudera closing invitation, using OMM type, colour and local photography. */
.retreat-invite { text-align:center; overflow:hidden; padding-bottom:var(--space-l); }
.retreat-invite .section-title { max-width:none; }
.retreat-book { margin-top:var(--space-l); }
#retreat-gallery { margin-top:var(--space-l); text-align:left; }
.retreat-invite .review-row { overflow-x:auto; scrollbar-width:none; overscroll-behavior-x:contain; scroll-behavior:auto; cursor:grab; touch-action:pan-x pan-y pinch-zoom; -webkit-overflow-scrolling:touch; padding:var(--space-xl) var(--space-zero) calc(var(--space-xl) + var(--space-xs)); }
.retreat-invite .review-row::-webkit-scrollbar { display:none; }
.retreat-invite .review-row.is-dragging { cursor:grabbing; user-select:none; }
.retreat-invite .review-row:focus-visible { outline:var(--border-l) solid var(--cte-focus); outline-offset:calc(-1 * var(--border-l)); }
.retreat-invite .review-track,.retreat-invite .review-group { display:flex; width:max-content; align-items:center; }
.retreat-invite .review-group { flex:none; }
.retreat-photo { flex:none; width:clamp(180px,46vw,280px); aspect-ratio:2/3; margin-inline:calc(-1 * var(--space-xs)); transform:translateY(var(--photo-y)) rotate(var(--photo-turn)); border-radius:var(--radius-l); overflow:hidden; position:relative; background:var(--neutral-3); }
.retreat-photo:nth-child(3n+1) { --photo-turn:-7deg; --photo-y:8px; }
.retreat-photo:nth-child(3n+2) { --photo-turn:6deg; --photo-y:-10px; }
.retreat-photo:nth-child(3n) { --photo-turn:-3deg; --photo-y:4px; }
.retreat-photo img { width:100%; height:100%; object-fit:cover; pointer-events:none; }
@media (min-width:1024px) { .retreat-photo { width:clamp(200px,20vw,280px); } }
@media (prefers-reduced-motion:reduce) { .retreat-invite .review-group[aria-hidden="true"] { display:none; } }

.footer-grid.footer-simple { grid-template-columns:minmax(0,1fr); }
.footer-legal { display:flex; flex-wrap:wrap; gap:var(--space-l); font-size:var(--size-footer-link); line-height:var(--line-byline); }

.coach-card video:focus-visible { outline:var(--border-l) solid var(--photo-ink); outline-offset:calc(-1 * var(--space-xs)); }

/* Mobile and tablet review tracks bleed to the viewport; cards retain the heading gutter. */
@media (max-width:1023px) {
 .guest-reviews .review-carousel { width:100vw; margin-inline-start:calc((100% - 100vw) / 2); }
 .guest-reviews .reviews-grid { max-width:none; padding-inline:var(--page-gutter); scroll-padding-inline:var(--page-gutter); }
}

.hero-still { position:absolute; inset:0; display:block; }
.hero-still img { width:100%; height:100%; object-fit:cover; object-position:center 55%; }
.hero-video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; }
.hero-media.has-video-frame .hero-video { opacity:1; }
.hero-brand { pointer-events:none; }
.hero-video:focus-visible { outline:var(--border-l) solid var(--photo-ink); outline-offset:calc(-1 * var(--space-xs)); }

/* Open editorial testimonials with two small original line drawings. */

/* Paper fibre over the films; Multiply keeps the white paper from washing them out. */
.hero-media,.coach-card { isolation:isolate; }
.hero-media::before,.coach-card::before { content:""; position:absolute; inset:0; z-index:1; background-image:url("washi-texture.webp"); background-size:cover; background-position:center; mix-blend-mode:multiply; pointer-events:none; }

/* Small label, expressive guest names and open light quotes on OMM green. */

.guest-reviews .review-navigation { margin-top:var(--space-xs); }
