: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}
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::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:hover{opacity:.82}
.btn--ghost{background:transparent}
.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);display:flex;flex-direction:column;min-height:150px}
.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;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}
.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}
.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,.btn--heart:hover{background:radial-gradient(circle,var(--btn) 2.5px,transparent 3px) 50% 50%/7px 7px,rgba(66,148,223,.10);color:var(--ink);font-weight:700;opacity:1;text-shadow:0 0 2px var(--bg),0 0 4px var(--bg),0 0 6px var(--bg),0 0 9px var(--bg),0 0 12px var(--bg)}
.btn--heart:hover{animation:heart-beat 1.1s ease-in-out infinite;background:radial-gradient(circle,var(--bg) 1.6px,transparent 2.1px) 50% 50%/7px 7px,var(--btn);color:#fff;text-shadow:0 0 3px var(--btn),0 0 6px var(--btn),0 0 10px var(--btn),0 0 14px var(--btn)}
.btn--heart.is-popping{animation:heart-pop .6s cubic-bezier(.17,.89,.32,1.49)}
@keyframes heart-beat{0%,40%,100%{transform:scale(1)}15%{transform:scale(1.08)}28%{transform:scale(1.03)}}
@keyframes heart-pop{0%{transform:scale(1)}20%{transform:scale(.55)}60%{transform:scale(1.15)}100%{transform:scale(1)}}
.heart-burst{position:absolute;width:0;height:0;pointer-events:none;z-index:50}
.heart-burst i{position:absolute;border-radius:50%;background:var(--btn);opacity:0;animation:heart-dot .75s cubic-bezier(.2,.7,.3,1) forwards}
@keyframes heart-dot{0%{opacity:1;transform:translate(0,0) scale(1)}70%{opacity:.9}100%{opacity:0;transform:translate(var(--x),var(--y)) scale(.4)}}
@media (prefers-reduced-motion:reduce){.btn--heart:hover,.btn--heart.is-popping{animation:none}}
.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}
/* Retreats prices: on phones Book + WhatsApp stack as equal full-width buttons */
@media (max-width:640px){.page-retreats .section--prices .hero__cta{flex-direction:column;align-items:stretch}.page-retreats .section--prices .hero__cta .btn{width:100%;height:auto;min-height:48px;padding:14px 22px;text-align:center}}
/* Retreat schedule: past dates faded, next retreat pulses on a blue square grid */
.contact--dates li.is-past,.contact--dates li.is-past *{color:#333333;text-decoration:line-through;text-decoration-color:rgb(66,148,223);text-decoration-thickness:2px}
html[data-theme="dark"] .contact--dates li.is-past,html[data-theme="dark"] .contact--dates li.is-past *{color:#8a8a8a}
.contact--dates li.is-next{position:relative;overflow:hidden;color:var(--btn)}
.contact--dates li.is-next>*{position:relative}
@media (prefers-reduced-motion:reduce){.contact--dates li.is-next::before{animation:none}}
/* Next retreat: a card as large as the price cards */
.contact--dates li.is-next{grid-column:span 2;padding:32px 28px;align-items:flex-start;justify-content:center}
@media (max-width:640px){.contact--dates li.is-next{grid-column:auto}}
/* Retreat dates with a next retreat: two columns like the price cards; next on the left, the rest listed compactly on the right */
.contact--dates.has-next{grid-template-columns:1fr 1fr}
.contact--dates.has-next li.is-next{grid-column:1;grid-row:1/span var(--rows,4)}
.contact--dates.has-next li:not(.is-next){grid-column:2;flex-direction:row;justify-content:space-between;align-items:center;gap:12px}
@media (max-width:1080px){.contact--dates.has-next{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.contact--dates.has-next{grid-template-columns:1fr}.contact--dates.has-next li.is-next,.contact--dates.has-next li:not(.is-next){grid-column:auto;grid-row:auto}}
.contact--dates.has-next li:not(.is-next){padding:4px 18px;min-height:0}.contact--dates.has-next li:not(.is-next) span:not(.eyebrow){font-size:13px}
/* Next retreat: date sized like the price text; the site's sun icon rises from behind, grows and passes toward the viewer */
.contact--dates li.is-next span:not(.eyebrow){font-family:var(--display);font-weight:600;font-size:clamp(20px,2.2vw,26px);line-height:1.25;letter-spacing:-.01em}
.contact--dates li.is-next{background:rgba(66,148,223,.08)}
/* Next retreat: dotted sun in the world map style; card goes from tinted to page colour as the sun shines */
.contact--dates li.is-next{animation:rh-sky 4.5s ease-in infinite}
@keyframes rh-sky{0%{background:rgba(66,148,223,.16)}55%{background:rgba(66,148,223,.05)}80%,100%{background:var(--page)}}
@media (prefers-reduced-motion:reduce){.contact--dates li.is-next{animation:none}}
/* Next retreat sun v2: dotted disc rises and passes toward the viewer; its rays stretch out and spin on their own layer */
.contact--dates li.is-next::before,.contact--dates li.is-next::after{content:"";position:absolute;width:120px;height:120px;top:50%;margin-top:-60px;pointer-events:none}
.contact--dates li.is-next::before{inset:auto;right:10%;top:50%;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='rgb%2866%2C148%2C223%29'%3E%3Ccircle cx='34.0' cy='43.6' r='1.05'/%3E%3Ccircle cx='34.0' cy='46.8' r='1.05'/%3E%3Ccircle cx='34.0' cy='50.0' r='1.05'/%3E%3Ccircle cx='34.0' cy='53.2' r='1.05'/%3E%3Ccircle cx='34.0' cy='56.4' r='1.05'/%3E%3Ccircle cx='37.2' cy='40.4' r='1.05'/%3E%3Ccircle cx='37.2' cy='43.6' r='1.05'/%3E%3Ccircle cx='37.2' cy='46.8' r='1.05'/%3E%3Ccircle cx='37.2' cy='50.0' r='1.05'/%3E%3Ccircle cx='37.2' cy='53.2' r='1.05'/%3E%3Ccircle cx='37.2' cy='56.4' r='1.05'/%3E%3Ccircle cx='37.2' cy='59.6' r='1.05'/%3E%3Ccircle cx='40.4' cy='37.2' r='1.05'/%3E%3Ccircle cx='40.4' cy='40.4' r='1.05'/%3E%3Ccircle cx='40.4' cy='43.6' r='1.05'/%3E%3Ccircle cx='40.4' cy='46.8' r='1.05'/%3E%3Ccircle cx='40.4' cy='50.0' r='1.05'/%3E%3Ccircle cx='40.4' cy='53.2' r='1.05'/%3E%3Ccircle cx='40.4' cy='56.4' r='1.05'/%3E%3Ccircle cx='40.4' cy='59.6' r='1.05'/%3E%3Ccircle cx='40.4' cy='62.8' r='1.05'/%3E%3Ccircle cx='43.6' cy='34.0' r='1.05'/%3E%3Ccircle cx='43.6' cy='37.2' r='1.05'/%3E%3Ccircle cx='43.6' cy='40.4' r='1.05'/%3E%3Ccircle cx='43.6' cy='43.6' r='1.05'/%3E%3Ccircle cx='43.6' cy='46.8' r='1.05'/%3E%3Ccircle cx='43.6' cy='50.0' r='1.05'/%3E%3Ccircle cx='43.6' cy='53.2' r='1.05'/%3E%3Ccircle cx='43.6' cy='56.4' r='1.05'/%3E%3Ccircle cx='43.6' cy='59.6' r='1.05'/%3E%3Ccircle cx='43.6' cy='62.8' r='1.05'/%3E%3Ccircle cx='43.6' cy='66.0' r='1.05'/%3E%3Ccircle cx='46.8' cy='34.0' r='1.05'/%3E%3Ccircle cx='46.8' cy='37.2' r='1.05'/%3E%3Ccircle cx='46.8' cy='40.4' r='1.05'/%3E%3Ccircle cx='46.8' cy='43.6' r='1.05'/%3E%3Ccircle cx='46.8' cy='46.8' r='1.05'/%3E%3Ccircle cx='46.8' cy='50.0' r='1.05'/%3E%3Ccircle cx='46.8' cy='53.2' r='1.05'/%3E%3Ccircle cx='46.8' cy='56.4' r='1.05'/%3E%3Ccircle cx='46.8' cy='59.6' r='1.05'/%3E%3Ccircle cx='46.8' cy='62.8' r='1.05'/%3E%3Ccircle cx='46.8' cy='66.0' r='1.05'/%3E%3Ccircle cx='50.0' cy='34.0' r='1.05'/%3E%3Ccircle cx='50.0' cy='37.2' r='1.05'/%3E%3Ccircle cx='50.0' cy='40.4' r='1.05'/%3E%3Ccircle cx='50.0' cy='43.6' r='1.05'/%3E%3Ccircle cx='50.0' cy='46.8' r='1.05'/%3E%3Ccircle cx='50.0' cy='50.0' r='1.05'/%3E%3Ccircle cx='50.0' cy='53.2' r='1.05'/%3E%3Ccircle cx='50.0' cy='56.4' r='1.05'/%3E%3Ccircle cx='50.0' cy='59.6' r='1.05'/%3E%3Ccircle cx='50.0' cy='62.8' r='1.05'/%3E%3Ccircle cx='50.0' cy='66.0' r='1.05'/%3E%3Ccircle cx='53.2' cy='34.0' r='1.05'/%3E%3Ccircle cx='53.2' cy='37.2' r='1.05'/%3E%3Ccircle cx='53.2' cy='40.4' r='1.05'/%3E%3Ccircle cx='53.2' cy='43.6' r='1.05'/%3E%3Ccircle cx='53.2' cy='46.8' r='1.05'/%3E%3Ccircle cx='53.2' cy='50.0' r='1.05'/%3E%3Ccircle cx='53.2' cy='53.2' r='1.05'/%3E%3Ccircle cx='53.2' cy='56.4' r='1.05'/%3E%3Ccircle cx='53.2' cy='59.6' r='1.05'/%3E%3Ccircle cx='53.2' cy='62.8' r='1.05'/%3E%3Ccircle cx='53.2' cy='66.0' r='1.05'/%3E%3Ccircle cx='56.4' cy='34.0' r='1.05'/%3E%3Ccircle cx='56.4' cy='37.2' r='1.05'/%3E%3Ccircle cx='56.4' cy='40.4' r='1.05'/%3E%3Ccircle cx='56.4' cy='43.6' r='1.05'/%3E%3Ccircle cx='56.4' cy='46.8' r='1.05'/%3E%3Ccircle cx='56.4' cy='50.0' r='1.05'/%3E%3Ccircle cx='56.4' cy='53.2' r='1.05'/%3E%3Ccircle cx='56.4' cy='56.4' r='1.05'/%3E%3Ccircle cx='56.4' cy='59.6' r='1.05'/%3E%3Ccircle cx='56.4' cy='62.8' r='1.05'/%3E%3Ccircle cx='56.4' cy='66.0' r='1.05'/%3E%3Ccircle cx='59.6' cy='37.2' r='1.05'/%3E%3Ccircle cx='59.6' cy='40.4' r='1.05'/%3E%3Ccircle cx='59.6' cy='43.6' r='1.05'/%3E%3Ccircle cx='59.6' cy='46.8' r='1.05'/%3E%3Ccircle cx='59.6' cy='50.0' r='1.05'/%3E%3Ccircle cx='59.6' cy='53.2' r='1.05'/%3E%3Ccircle cx='59.6' cy='56.4' r='1.05'/%3E%3Ccircle cx='59.6' cy='59.6' r='1.05'/%3E%3Ccircle cx='59.6' cy='62.8' r='1.05'/%3E%3Ccircle cx='62.8' cy='40.4' r='1.05'/%3E%3Ccircle cx='62.8' cy='43.6' r='1.05'/%3E%3Ccircle cx='62.8' cy='46.8' r='1.05'/%3E%3Ccircle cx='62.8' cy='50.0' r='1.05'/%3E%3Ccircle cx='62.8' cy='53.2' r='1.05'/%3E%3Ccircle cx='62.8' cy='56.4' r='1.05'/%3E%3Ccircle cx='62.8' cy='59.6' r='1.05'/%3E%3Ccircle cx='66.0' cy='43.6' r='1.05'/%3E%3Ccircle cx='66.0' cy='46.8' r='1.05'/%3E%3Ccircle cx='66.0' cy='50.0' r='1.05'/%3E%3Ccircle cx='66.0' cy='53.2' r='1.05'/%3E%3Ccircle cx='66.0' cy='56.4' r='1.05'/%3E%3C/svg%3E") center/contain no-repeat;animation:rh-sun 5s cubic-bezier(.45,0,.25,1) infinite}
.contact--dates li.is-next::after{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='rgb%2866%2C148%2C223%29'%3E%3Ccircle cx='76.0' cy='50.0' r='1.30'/%3E%3Ccircle cx='81.0' cy='50.0' r='1.15'/%3E%3Ccircle cx='86.0' cy='50.0' r='1.00'/%3E%3Ccircle cx='91.0' cy='50.0' r='0.85'/%3E%3Ccircle cx='96.0' cy='50.0' r='0.70'/%3E%3Ccircle cx='75.9' cy='60.7' r='1.30'/%3E%3Ccircle cx='80.5' cy='62.6' r='1.15'/%3E%3Ccircle cx='85.1' cy='64.5' r='1.00'/%3E%3Ccircle cx='68.4' cy='68.4' r='1.30'/%3E%3Ccircle cx='71.9' cy='71.9' r='1.15'/%3E%3Ccircle cx='75.5' cy='75.5' r='1.00'/%3E%3Ccircle cx='79.0' cy='79.0' r='0.85'/%3E%3Ccircle cx='82.5' cy='82.5' r='0.70'/%3E%3Ccircle cx='60.7' cy='75.9' r='1.30'/%3E%3Ccircle cx='62.6' cy='80.5' r='1.15'/%3E%3Ccircle cx='64.5' cy='85.1' r='1.00'/%3E%3Ccircle cx='50.0' cy='76.0' r='1.30'/%3E%3Ccircle cx='50.0' cy='81.0' r='1.15'/%3E%3Ccircle cx='50.0' cy='86.0' r='1.00'/%3E%3Ccircle cx='50.0' cy='91.0' r='0.85'/%3E%3Ccircle cx='50.0' cy='96.0' r='0.70'/%3E%3Ccircle cx='39.3' cy='75.9' r='1.30'/%3E%3Ccircle cx='37.4' cy='80.5' r='1.15'/%3E%3Ccircle cx='35.5' cy='85.1' r='1.00'/%3E%3Ccircle cx='31.6' cy='68.4' r='1.30'/%3E%3Ccircle cx='28.1' cy='71.9' r='1.15'/%3E%3Ccircle cx='24.5' cy='75.5' r='1.00'/%3E%3Ccircle cx='21.0' cy='79.0' r='0.85'/%3E%3Ccircle cx='17.5' cy='82.5' r='0.70'/%3E%3Ccircle cx='24.1' cy='60.7' r='1.30'/%3E%3Ccircle cx='19.5' cy='62.6' r='1.15'/%3E%3Ccircle cx='14.9' cy='64.5' r='1.00'/%3E%3Ccircle cx='24.0' cy='50.0' r='1.30'/%3E%3Ccircle cx='19.0' cy='50.0' r='1.15'/%3E%3Ccircle cx='14.0' cy='50.0' r='1.00'/%3E%3Ccircle cx='9.0' cy='50.0' r='0.85'/%3E%3Ccircle cx='4.0' cy='50.0' r='0.70'/%3E%3Ccircle cx='24.1' cy='39.3' r='1.30'/%3E%3Ccircle cx='19.5' cy='37.4' r='1.15'/%3E%3Ccircle cx='14.9' cy='35.5' r='1.00'/%3E%3Ccircle cx='31.6' cy='31.6' r='1.30'/%3E%3Ccircle cx='28.1' cy='28.1' r='1.15'/%3E%3Ccircle cx='24.5' cy='24.5' r='1.00'/%3E%3Ccircle cx='21.0' cy='21.0' r='0.85'/%3E%3Ccircle cx='17.5' cy='17.5' r='0.70'/%3E%3Ccircle cx='39.3' cy='24.1' r='1.30'/%3E%3Ccircle cx='37.4' cy='19.5' r='1.15'/%3E%3Ccircle cx='35.5' cy='14.9' r='1.00'/%3E%3Ccircle cx='50.0' cy='24.0' r='1.30'/%3E%3Ccircle cx='50.0' cy='19.0' r='1.15'/%3E%3Ccircle cx='50.0' cy='14.0' r='1.00'/%3E%3Ccircle cx='50.0' cy='9.0' r='0.85'/%3E%3Ccircle cx='50.0' cy='4.0' r='0.70'/%3E%3Ccircle cx='60.7' cy='24.1' r='1.30'/%3E%3Ccircle cx='62.6' cy='19.5' r='1.15'/%3E%3Ccircle cx='64.5' cy='14.9' r='1.00'/%3E%3Ccircle cx='68.4' cy='31.6' r='1.30'/%3E%3Ccircle cx='71.9' cy='28.1' r='1.15'/%3E%3Ccircle cx='75.5' cy='24.5' r='1.00'/%3E%3Ccircle cx='79.0' cy='21.0' r='0.85'/%3E%3Ccircle cx='82.5' cy='17.5' r='0.70'/%3E%3Ccircle cx='75.9' cy='39.3' r='1.30'/%3E%3Ccircle cx='80.5' cy='37.4' r='1.15'/%3E%3Ccircle cx='85.1' cy='35.5' r='1.00'/%3E%3C/svg%3E") center/contain no-repeat;animation:rh-rays 5s cubic-bezier(.45,0,.25,1) infinite}
@keyframes rh-sun{0%{transform:translateY(55px) scale(.3);opacity:0}20%{opacity:.7}55%{transform:translateY(0) scale(1);opacity:.85}100%{transform:translateY(-8px) scale(3);opacity:0}}
@keyframes rh-rays{0%{transform:translateY(55px) scale(.2) rotate(0);opacity:0}25%{opacity:.5}55%{transform:translateY(0) scale(1.25) rotate(45deg);opacity:.8}70%{transform:translateY(-2px) scale(1.9) rotate(70deg);opacity:.7}100%{transform:translateY(-8px) scale(4.2) rotate(120deg);opacity:0}}
@media (prefers-reduced-motion:reduce){.contact--dates li.is-next::after{animation:none}}
.contact--dates li.is-next::before,.contact--dates li.is-next::after{z-index:0;right:6%}.contact--dates li.is-next>*{z-index:1}
/* Packages page: Packages and Payment side by side on desktop */
@media (min-width:1081px){#main:has(>#packages+#payment){display:grid;grid-template-columns:1fr 1fr}#main:has(>#packages+#payment)>:not(#packages,#payment){grid-column:1/-1}}

/* video testimonials + footer social */
.vids{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.vid{margin:0;display:flex;flex-direction:column;gap:10px}
.vid__play,.vid iframe{position:relative;display:block;width:100%;aspect-ratio:16/9;border:1px solid var(--line);background:var(--bg);padding:0;cursor:pointer;overflow:hidden}
.vid iframe{background:#000}
.vid__dots{position:absolute;inset:0;width:100%;height:100%;display:block}
.vid__play img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .35s ease}
.vid__play.is-thumb:hover img,.vid__play.is-thumb:focus-visible img{opacity:1}
.vid__play::after{content:"";position:absolute;left:50%;top:50%;width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:50%;background:var(--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M9 7v10l8-5z'/%3E%3C/svg%3E") center/28px no-repeat;box-shadow:0 4px 16px rgba(0,0,0,.3)}
.vid__play:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.vids__more{margin-top:28px;font-size:14px}
.social{display:flex;gap:28px;align-items:center;justify-content:center;flex-basis:100%;order:1;margin:0;padding:22px 0 4px;list-style:none;border-top:1px solid var(--line,rgba(127,127,127,.2))}
.social a{display:inline-flex;color:var(--accent);transition:color .15s ease}
.social a:hover{color:var(--btn)}
@media (max-width:900px){.vids{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.vids{grid-template-columns:1fr}}
.voices__more{margin-top:32px}
.stars{align-self:center;margin-top:12px;color:var(--accent);font-size:22px;letter-spacing:.18em;line-height:1}
/* dark theme: video cards sit on a soft light panel, not black (reads like an x-ray otherwise) */
html[data-theme="dark"] .vid__play{background:rgba(242,241,238,.92);--accent:rgb(66,148,223)}
.social svg{width:22px;height:22px}
.section__head:has(.stars){max-width:none}

/* Ruth section, dark theme: real photo instead of dots */
.ruth-dark{display:none}
html[data-theme="dark"] .photodots--framed{display:none}
html[data-theme="dark"] .ruth-dark{display:block;position:absolute;top:0;right:max(0px,(100% - var(--maxw)) / 2 + 1px);width:50%;height:100%;object-fit:cover;object-position:50% 25%;-webkit-mask-image:linear-gradient(to right,transparent,#000 25%);mask-image:linear-gradient(to right,transparent,#000 25%);opacity:1;pointer-events:none}
@media (max-width:900px){html[data-theme="dark"] .ruth-dark{width:100%;opacity:.3}}
