:root{
  --ink: rgb(52,52,59);
  --bg: rgb(242,241,238);
  --line: rgba(52,52,59,.14);
  --line-solid: rgb(215,214,212);
  --line-strong: rgba(52,52,59,.28);
  --muted: #555555;
  --text: rgb(16,16,20);
  --accent: rgb(66,148,223);
  --page: rgb(242,241,238);
  --display: "Space Grotesk", "Inter", system-ui, sans-serif;
  --body: "Manrope", system-ui, -apple-system, sans-serif;
  --serif: "Fraunces", Georgia, serif;
  --mono: "IBM Plex Mono", "SFMono-Regular", ui-monospace, monospace;
  --maxw: 1280px;
  --pad: 24px;
}
html[data-theme="dark"]{
  --ink: rgb(242,241,238);
  --bg: #0b0b0c;
  --page: #0b0b0c;
  --line: rgba(242,241,238,.16);
  --line-solid: rgb(48,48,48);
  --line-strong: rgba(242,241,238,.3);
  --muted: rgba(242,241,238,.62);
  --text: rgb(242,241,238);
  --accent: rgb(110,175,235);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--page);color:var(--text);
  font:400 16px/24px var(--body);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
ul{margin:0;padding:0;list-style:none}
::selection{background:var(--ink);color:var(--bg)}

::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-track{background:var(--bg);border-left:1px solid var(--line)}
::-webkit-scrollbar-thumb{background:var(--line-strong);border:2px solid var(--bg);border-radius:0}
::-webkit-scrollbar-thumb:hover{background:var(--ink)}
html{scrollbar-width:thin;scrollbar-color:var(--line-strong) var(--bg)}

.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--bg);padding:10px 16px;z-index:200;font:500 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase}
.skip:focus{left:12px;top:12px}

/* ---------- primitives ---------- */
.frame{
  width:100%;max-width:var(--maxw);margin:0 auto;
  padding:0 var(--pad);
  border-left:1px solid var(--line);border-right:1px solid var(--line);
}
.eyebrow{
  display:inline-block;font:500 11px/1 var(--mono);letter-spacing:.16em;
  text-transform:uppercase;color:var(--muted);
}
h1,h2,h3{margin:0;font-family:var(--display);font-weight:600;letter-spacing:-.02em;color:var(--ink)}
h2{font-size:clamp(28px,4.4vw,60px);line-height:1;letter-spacing:-.035em}
h3{font-size:clamp(19px,2.2vw,24px);line-height:1.15;letter-spacing:-.02em}
p{margin:0}
.lede{max-width:66ch;color:var(--muted);font-size:clamp(16px,1.5vw,18px);line-height:1.6}
.link{
  display:inline-flex;align-items:center;gap:8px;margin-top:auto;padding-top:18px;
  font:500 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;
  border-bottom:1px solid transparent;transition:border-color .15s ease,color .15s ease;
}
.link::after{content:"\2192";transition:transform .15s ease}
.link:hover{border-bottom-color:var(--ink)}
.link:hover::after{transform:translateX(4px)}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  height:48px;padding:0 22px;border:1px solid var(--ink);border-radius:0;
  font:600 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;
  transition:opacity .15s ease,background-color .15s ease,color .15s ease,border-color .15s ease;
  cursor:pointer;
}
.btn--solid{background:var(--ink);color:var(--bg)}
.btn--solid:hover{opacity:.82}
.btn--ghost{background:transparent;color:var(--ink)}
.btn--ghost:hover{background:var(--ink);color:var(--bg)}
.btn:focus-visible,.link:focus-visible,.icon-btn:focus-visible,.burger:focus-visible,a:focus-visible{
  outline:2px solid var(--accent);outline-offset:3px;
}

.icon-btn{
  display:inline-flex;align-items:center;justify-content:center;
  width:42px;height:42px;border:0;background:transparent;color:var(--ink);
  border-left:1px solid var(--line);cursor:pointer;
  transition:opacity .15s ease,background-color .15s ease;
}
.icon-btn:hover{background:color-mix(in srgb,var(--ink) 7%,transparent)}
.icon-moon{display:none}
html[data-theme="dark"] .icon-sun{display:none}
html[data-theme="dark"] .icon-moon{display:inline}

/* ---------- topbar ---------- */
.topbar{
  position:sticky;top:0;z-index:60;height:48px;
  display:grid;grid-template-columns:auto 1fr auto;
  align-items:stretch;background:var(--bg);
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(8px);
}
.topbar__cell{display:flex;align-items:center;border-right:1px solid var(--line)}
.topbar__brand{padding-left:calc((100vw - var(--maxw))/2 > 0px ? (100vw - var(--maxw))/2 : 0px)}
.topbar__brand a{display:flex;align-items:center;gap:14px;padding:0 16px;height:100%}
.topbar__logo{width:26px;height:26px;object-fit:contain}
.topbar__name{font:600 12px/1 var(--mono);letter-spacing:.2em}
.topbar__nav{border-right:0;justify-content:flex-start;overflow:hidden;padding-left:24px}
.topbar__nav ul{display:flex;align-items:center;height:100%}
.topbar__nav li{display:flex;align-items:center;height:100%}
.topbar__nav li + li::before{content:"\00b7";color:var(--muted);padding:0 12px;font-size:13px}
.topbar__nav a{
  display:inline-flex;align-items:center;height:100%;
  font:500 11px/1 var(--mono);letter-spacing:.14em;color:var(--muted);
  transition:color .15s ease;
}
.topbar__nav a:hover{color:var(--ink)}
.topbar__actions{border-right:0;margin-left:auto}
.topbar__cta{height:48px;border-width:0;border-left:1px solid var(--line)}
.burger{
  display:none;width:48px;height:47px;border:0;border-left:1px solid var(--line);
  background:transparent;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:4px;
}
.burger span{display:block;width:18px;height:1px;background:var(--ink);transition:transform .2s ease,opacity .2s ease}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(5px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}

.mobile-menu{
  position:absolute;top:48px;left:0;right:0;background:var(--bg);
  border-bottom:1px solid var(--line);padding:12px var(--pad) 20px;
}
.mobile-menu ul{display:grid}
.mobile-menu a{display:block;padding:14px 2px;border-bottom:1px solid var(--line);font:500 12px/1 var(--mono);letter-spacing:.14em;color:var(--muted)}
.mobile-menu a:hover{color:var(--ink)}
.mobile-menu .btn{width:100%;margin-top:18px;border-left:0}

/* ---------- hero ---------- */
.hero{
  position:relative;overflow:hidden;
  border-top:1px solid var(--line);
  padding:80px 0 96px;
  text-align:center;
}
.hero__canvas{
  position:absolute;inset:0;width:100%;height:100%;
  opacity:.85;pointer-events:none;z-index:0;
}
.hero__inner{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:18px}
.wordmark{
  font-family:var(--display);font-weight:700;
  font-size:clamp(46px,13vw,168px);line-height:.92;letter-spacing:-.055em;
  margin:8px 0 2px;display:flex;flex-wrap:wrap;justify-content:center;
}
.wordmark .lt{display:inline-block;opacity:0;transform:translateY(.35em) rotate(2deg);filter:blur(8px);
  animation:letterIn .8s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:var(--i,0s)}
@keyframes letterIn{to{opacity:1;transform:none;filter:blur(0)}}
.hero__serif{font-family:var(--serif);font-style:italic;font-size:clamp(19px,2.6vw,30px);color:var(--muted)}
.hero__serif em{color:var(--accent);font-style:italic}
.hero__sub{max-width:56ch;color:var(--muted);font-size:clamp(16px,1.6vw,17px);line-height:1.6}
.hero__cta{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:8px}
.hero__links{display:flex;gap:0;margin-top:14px;border:1px solid var(--line)}
.hero__links a{display:flex;align-items:center;justify-content:center;width:44px;height:44px;color:var(--muted);transition:color .15s ease,background-color .15s ease}
.hero__links a + a{border-left:1px solid var(--line)}
.hero__links a:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 6%,transparent)}

.tick{position:absolute;width:9px;height:9px;pointer-events:none;z-index:2}
.tick--tl{top:10px;left:10px;border-top:1px solid var(--ink);border-left:1px solid var(--ink)}
.tick--tr{top:10px;right:10px;border-top:1px solid var(--ink);border-right:1px solid var(--ink)}
.tick--bl{bottom:10px;left:10px;border-bottom:1px solid var(--ink);border-left:1px solid var(--ink)}
.tick--br{bottom:10px;right:10px;border-bottom:1px solid var(--ink);border-right:1px solid var(--ink)}

/* ---------- ticker ---------- */
.ticker{overflow:hidden;border-bottom:1px solid var(--line);background:var(--bg)}
.ticker__track{display:inline-flex;align-items:center;white-space:nowrap;padding:14px 0;
  animation:marquee 34s linear infinite;will-change:transform}
.ticker__track span{font:500 11px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.ticker__dot{color:var(--accent);padding:0 22px}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- sections ---------- */
.section{border-top:1px solid var(--line);padding:56px 0}
.section--tight{padding:0}
.section__head{display:flex;flex-direction:column;gap:14px;margin-bottom:40px;max-width:70ch}
.section__head--left{margin-bottom:24px}
.section__head h2{margin-top:2px}

.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.card{display:flex;flex-direction:column;gap:14px;background:var(--bg);padding:24px}
.card__label{font:500 10px/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);padding-bottom:14px;border-bottom:1px solid var(--line)}
.media{position:relative;aspect-ratio:16/9;overflow:hidden;background:color-mix(in srgb,var(--ink) 6%,transparent);border:1px solid var(--line)}
.media img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1),filter .3s ease}
.card:hover .media img,.split__media:hover .media img{transform:scale(1.03)}
.media--tall{aspect-ratio:4/5}

.features{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line)}
.feature{background:var(--bg);padding:28px 24px;display:flex;flex-direction:column;gap:12px;min-height:150px;justify-content:space-between}
.feature strong{font-family:var(--display);font-weight:600;font-size:clamp(16px,1.7vw,19px);line-height:1.25;letter-spacing:-.01em}

.split{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1fr);gap:40px;align-items:center}
.split__media{display:flex;flex-direction:column;gap:12px}
.split__body{display:flex;flex-direction:column;gap:16px}
.split__body p{max-width:64ch;color:var(--muted);line-height:1.65}

.cards--quotes{border:1px solid var(--line)}
.quote{margin:0;background:var(--bg);padding:32px 28px;display:flex;flex-direction:column;gap:20px}
.quote::before{content:"\201C";font-family:var(--serif);font-size:44px;line-height:.6;color:var(--accent)}
.quote blockquote{margin:0;font-size:15px;line-height:1.7;color:var(--muted)}

.closing{position:relative;border-top:1px solid var(--line);padding:80px 0;text-align:center}
.closing__inner{display:flex;flex-direction:column;align-items:center;gap:18px}
.contact{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);width:100%;max-width:760px;margin-top:22px}
.contact li{background:var(--bg);padding:20px;display:flex;flex-direction:column;gap:8px;align-items:center}
.contact a,.contact span:not(.eyebrow){font-family:var(--display);font-weight:500;font-size:15px;letter-spacing:-.01em}

/* ---------- footer ---------- */
.footer{border-top:1px solid var(--line);background:var(--bg)}
.footer__grid{display:grid;grid-template-columns:1.6fr repeat(2,1fr);gap:1px;background:var(--line);border-bottom:1px solid var(--line)}
.footer__col{background:var(--bg);padding:32px 24px;display:flex;flex-direction:column;gap:14px}
.footer__col ul{display:flex;flex-direction:column;gap:10px}
.footer__col a,.footer__col span:not(.eyebrow){font-size:14px;color:var(--muted);transition:color .15s ease}
.footer__col a:hover{color:var(--ink)}
.footer__brand{display:flex;align-items:center;gap:10px;font:600 13px/1 var(--mono);letter-spacing:.16em}
.footer__brand img{width:26px;height:26px;object-fit:cover;border:1px solid var(--line)}
.footer__col--brand p{color:var(--muted);font-size:14px;line-height:1.6;max-width:40ch}
.footer__bar{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:18px 0;font:500 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}

/* ---------- reveal ---------- */
html.js .reveal{opacity:0;transform:translateY(16px);filter:blur(6px);
  transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1),filter .7s ease;
  transition-delay:var(--d,0s)}
html.js .reveal.is-in{opacity:1;transform:none;filter:blur(0)}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .topbar__nav{display:none}
  .burger{display:flex}
  .features{grid-template-columns:repeat(2,1fr)}
  .footer__grid{grid-template-columns:repeat(2,1fr)}
  .footer__col--brand{grid-column:1 / -1}
}
@media (max-width:900px){
  .cards{grid-template-columns:repeat(2,1fr)}
  .split{grid-template-columns:1fr;gap:28px}
}
@media (max-width:640px){
  :root{--pad:16px}
  .topbar__cta{display:none}
  .topbar__brand a{padding:0 12px}
  .topbar__brand{padding-left:0}
  .hero{padding:56px 0 64px}
  .section{padding:56px 0}
  .closing{padding:56px 0}
  .cards,.features,.contact{grid-template-columns:1fr}
  .footer__grid{grid-template-columns:1fr}
  .frame{border-left:0;border-right:0}
  .wordmark{letter-spacing:-.04em}
  .contact li{align-items:flex-start}
}
@media (hover:none){
  .card:hover .media img{transform:none}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important}
  html.js .reveal{opacity:1;transform:none;filter:none}
  .wordmark .lt{opacity:1;transform:none;filter:none}
  .ticker__track{animation:none}
}
/* ---------- inner pages ---------- */
.page{border-top:1px solid var(--line);padding:56px 0;min-height:60vh}
.sched{border:1px solid var(--line);display:grid;gap:1px;background:var(--line)}
.sched li{background:var(--bg);padding:18px 20px;display:grid;grid-template-columns:1fr 1.4fr 1fr 1fr;gap:12px;align-items:center}
.sched__day,.sched__time{font:500 12px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.sched__name{font-family:var(--display);font-weight:600;font-size:18px}
.sched .link{padding-top:0;margin-top:0}
.sched__cell{display:flex;flex-direction:column;gap:3px;min-width:0}
.lt-cell{display:block;font:500 12px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.lt-zone{color:var(--accent)}
@media (max-width:760px){.sched li{grid-template-columns:1fr}}
/* base page heading */
h1 { font-size: 3rem; line-height: 1.15; margin-bottom: 24px; }
@media (max-width: 640px) {
  h1 { font-size: 2.25rem; }
}

/* Packages & Payment header: front-page hero + rotating globe (globe.js) */
.globe-hero{min-height:520px;display:flex;align-items:center}
.globe-hero__title{font-size:clamp(40px,9vw,120px)}
.globe-hero__stage{position:absolute;inset:0;z-index:0;pointer-events:none;-webkit-mask-image:linear-gradient(#000 60%,transparent);mask-image:linear-gradient(#000 60%,transparent)}
.globe-hero__canvas{position:absolute;inset:0;width:100%;height:100%}
.globe-hero .hero__inner{width:100%}
@media (max-width:700px){.globe-hero{min-height:440px}}
.globe-hero__title .lt{white-space:pre}

/* Buttons: trust blue rgb(66,148,223); hover 15% darker, click 15% darker again */
:root{--btn:rgb(66,148,223);--btn-hover:rgb(56,126,190);--btn-active:rgb(48,107,161)}
.btn--solid{background:var(--btn);border-color:var(--btn);color:#fff}
.btn--ghost{border-color:var(--btn);color:var(--btn)}
.btn--solid:hover,.btn--ghost:hover{opacity:1;background:var(--btn-hover);border-color:var(--btn-hover);color:#fff}
.btn--solid:active,.btn--ghost:active{background:var(--btn-active);border-color:var(--btn-active)}

/* Body copy and small text stay near-black for reading; rgb(52,52,59) is the ink for headings and UI */
p,blockquote,li,figcaption,small{color:var(--text)}
.lede,.hero__sub,.split__body p,.quote blockquote{color:var(--muted)}
/* Icons turn standard blue on hover */
.icon-btn:hover,.hero__links a:hover,a:hover > svg,button:hover > svg{color:var(--btn)}
.burger:hover span{background:var(--btn)}
.icon-btn,.hero__links a,.burger span{transition:color .15s ease,background-color .15s ease}
/* All link/menu hovers use standard blue (buttons keep their own darker-blue hover) */
a:not(.btn):hover,.topbar__nav a:hover,.mobile-menu a:hover,.footer__col a:hover,.link:hover{color:var(--btn)}
.link:hover{border-bottom-color:var(--btn)}
a:not(.btn){transition:color .15s ease,border-color .15s ease}
::-webkit-scrollbar-thumb:hover{background:var(--btn)}
/* Schedule: text 130% for readability; local time (blue) and timezone bold */
.sched__day,.sched__time{font-size:15.6px}
.sched__name{font-size:23.4px}
.sched .link{font-size:14.3px}
.lt-cell{font-size:15.6px;font-weight:700}
.lt-zone{font-weight:700}
.section__head--center{margin-left:auto;margin-right:auto;text-align:center;align-items:center}
.section__head--center .lt-zone{display:block;margin:6px 0}
.section__head--center .lt-zone{font-size:1.3em}
.page--map{position:relative;overflow:hidden}.page__map{position:absolute;inset:0;width:100%;height:100%;opacity:.85;pointer-events:none;z-index:0}.page--map .frame{position:relative;z-index:1}
/* Contact form (about.html) */
.cform{display:grid;grid-template-columns:1fr 1fr;gap:16px;width:100%;max-width:760px;margin-top:26px;text-align:left}
.cform label{display:flex;flex-direction:column;gap:8px}
.cform input,.cform textarea{font:400 16px/1.5 var(--body);color:var(--text);background:var(--bg);border:1px solid var(--line-strong);padding:12px 14px;border-radius:0;width:100%}
.cform input:focus,.cform textarea:focus{outline:2px solid var(--btn);outline-offset:0;border-color:var(--btn)}
.cform__full{grid-column:1 / -1}
.cform__row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.cform__status{color:var(--muted)}
.cform__status.is-bad{color:#b3261e}
.cform__trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
@media (max-width:640px){.cform{grid-template-columns:1fr}}

/* Booking popup */
.bk{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:16px}
.bk[hidden]{display:none}
.bk__backdrop{position:absolute;inset:0;background:rgba(16,16,20,.5);opacity:0;transition:opacity .2s ease}
.bk__card{position:relative;width:100%;max-width:650px;max-height:calc(100vh - 32px);overflow:auto;background:var(--bg);color:var(--text);border:1px solid var(--line-strong);padding:46px 42px 36px;opacity:0;transform:translateY(10px);transition:opacity .2s ease,transform .2s ease}
.bk.is-in .bk__backdrop{opacity:1}
.bk.is-in .bk__card{opacity:1;transform:none}
.bk__x{position:absolute;top:10px;right:12px;width:36px;height:36px;border:0;background:none;font-size:24px;line-height:1;color:var(--ink);cursor:pointer}
.bk__x:hover{color:var(--accent)}
.bk__title{font-size:clamp(30px,4.2vw,42px);margin:8px 0 26px}
.bk__form{display:grid;gap:20px;font-size:18px}
.bk__form label{display:grid;gap:6px}
.bk__form input,.bk__form textarea{width:100%;font:inherit;color:var(--text);background:transparent;border:0;border-bottom:1px solid var(--line-strong);border-radius:0;padding:10px 0}
.bk__form textarea{resize:vertical}
.bk__form input:focus,.bk__form textarea:focus{outline:none;border-bottom-color:var(--accent)}
.bk__row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.bk__send{width:100%;justify-content:center}
.bk__status{margin:0;min-height:1.2em;font-size:14px}
.bk__status.is-bad{color:#b3261e}
html.bk-open{overflow:hidden}
.bk__form ::placeholder{color:var(--muted);opacity:.7;transition:opacity .15s}
.bk__form :focus::placeholder{opacity:0}
@media (max-width:560px){.bk__card{padding:32px 18px 22px}.bk__row{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.bk__backdrop,.bk__card{transition:none}}
.bk__captcha{width:100%;display:flex;justify-content:center}
.bk__captcha>*{width:100%}

/* WhatsApp links: our blue */
.wa,.wa-btn{display:inline-flex;align-items:center;gap:8px}
.wa-ico{flex:none;color:var(--accent)}
.wa-btn:hover{background:var(--accent);color:#fff}
.wa-btn:hover .wa-ico{color:#fff}
[data-wa] .wa-ico{color:var(--accent)}
.bk__wa{width:100%;justify-content:center}

/* Retreats activities: breathing room under the top line, 6 items fill 3 columns (no empty grey cells) */
.section--activities{padding:clamp(48px,7vw,88px) 0 clamp(40px,6vw,72px)}
.section--activities .lede{margin-top:16px}
.section--activities .features{margin-top:clamp(28px,4vw,44px)}
@media (min-width:1081px){.features--3{grid-template-columns:repeat(3,1fr)}}

/* Retreats: text rhythm (paragraphs, buttons, section heads) */
.page-retreats .section .frame > p{max-width:72ch;margin:0 0 18px;line-height:1.7}
.page-retreats .section .frame > p:last-of-type{margin-bottom:0}
.page-retreats .section .frame > .hero__cta{margin-top:36px;justify-content:flex-start}
.page-retreats .section .frame > .section__head{margin-bottom:28px}
.page-retreats .section .frame > .eyebrow{display:block;margin-bottom:14px}
.page-retreats .section{padding:clamp(56px,7vw,96px) 0}

/* Grids: lines drawn by each cell, so empty grid spots show the page, not a grey block */
.cards,.features,.contact,.sched{background:transparent;border:0}
.footer__grid{background:transparent}
.cards>*,.features>*,.contact>*,.sched>*{box-shadow:0 0 0 1px var(--line-solid)}
.cards,.features,.contact,.sched{padding:1px}

/* Retreats: price options */
.features--2{grid-template-columns:repeat(2,1fr)}
.section--prices .feature{min-height:0;padding:32px 28px}
.section--prices .feature strong{font-size:clamp(20px,2.2vw,26px)}
.page-retreats .section .frame > .prices__until{margin:48px 0 16px}
.contact--dates{max-width:none;margin-top:0;grid-template-columns:repeat(5,1fr)}
.contact--dates li{padding:20px 18px;gap:8px}
.page-retreats .section .frame > .prices__note{margin-top:16px;font-size:14px;color:var(--muted)}
@media (max-width:1080px){.contact--dates{grid-template-columns:repeat(3,1fr)}}
@media (max-width:640px){.features--2,.contact--dates{grid-template-columns:1fr}}
/* Cards: label and text pinned to the top; long descriptions read as body text */
.feature{justify-content:flex-start;gap:14px;padding:30px 28px 32px}
.page-retreats .features:not(.features--2) .feature strong{font-family:var(--body,inherit);font-weight:400;font-size:16px;line-height:1.6;letter-spacing:0}
.eyebrow{font-weight:700}
/* Retreats: dotted photo banner of the resort studio */
.section--photo{position:relative;overflow:hidden}
.photodots{position:absolute;top:0;bottom:0;left:auto;right:0;width:50%;height:100%;-webkit-mask-image:linear-gradient(to right,transparent,#000 22%);mask-image:linear-gradient(to right,transparent,#000 22%);opacity:.15;transition:opacity 2.4s ease;pointer-events:none}
.photodots.is-in{opacity:.42}
.section--photo>.frame{position:relative}
@media (max-width:900px){.photodots{width:100%;opacity:.12}.photodots.is-in{opacity:.2}}
/* Ruth's portrait: full section height, right edge stops at the frame's vertical line */
.photodots--framed{right:max(0px,(100% - var(--maxw)) / 2 + 1px);-webkit-mask-image:none;mask-image:none}
/* Retreat prices: booking buttons centred */
.page-retreats .section .frame > .hero__cta{justify-content:center}
.photodots[data-photodots="kaomai"]{left:max(0px,(100% - var(--maxw)) / 2 + 1px);right:auto;width:calc(min(100%, var(--maxw)) - 2px)} /* frame width, line to line */
.section--days .hero__cta .btn{zoom:1.2}
/* The four days: heart-shaped sign-up button */
.btn--heart{width:200px;height:180px;font-size:15px;padding:0 0 34px;display:inline-flex;align-items:center;justify-content:center;text-align:center;line-height:1.3;
  clip-path:path('M100 178C40 130 0 95 0 54C0 23 24 0 55 0C77 0 92 12 100 28C108 12 123 0 145 0C176 0 200 23 200 54C200 95 160 130 100 178Z');
  transition:transform .25s ease,background .2s ease}
.btn--heart:hover{transform:scale(1.06)}
.section--days .hero__cta .btn--heart{zoom:1}
/* Heart sits in the empty right half of The four days, vertically centred */
@media (min-width:1081px){
  .section--days .frame{position:relative}
  .page-retreats .section--days .frame > .hero__cta{position:absolute;top:50%;right:12%;margin:0;transform:translateY(-50%)}
}
.media__dots{position:absolute;inset:0;width:100%;height:100%;display:block}
.media--dots{background:none;border:0}
