/* =========================================================
   ROOT — v6 stylesheet
   Earthy palette: beige, white, warm terracotta tints.
   Type: Nunito (titles + ROOT wordmark) and Libre Caslon Condensed (all other text) only.
   Cormorant Garamond italic (accents), Homemade Apple / Caveat (handwriting),
   IBM Plex Mono (day-at-the-retreat timeline only).
   ========================================================= */
@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@200;300;400&family=Libre+Caslon+Condensed:ital@0;1&family=Homemade+Apple&family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;1,300;1,400&display=swap');

:root{
  --paper:#F8F4EE;
  --sand:#EEE6DB;
  --butter:#E9CBB6;   /* warm terracotta tint */
  --butter-soft:#F1DDCE; /* light warm terracotta */
  --clay:#ECD3BE;
  --terracotta:#B4552E;
  --orange:#C66A2C;
  --ink:#2E241D;
  --ink-soft:#5B4D41;
  --ink-faint:#94857A;
  --line:rgba(46,36,29,.16);
  --white:#FFFDF8;

  --title:'Nunito', ui-sans-serif, 'Helvetica Neue', Arial, sans-serif;
  --logo:'Nunito', ui-sans-serif, 'Helvetica Neue', Arial, sans-serif;
  --text:'Libre Caslon Condensed', Georgia, 'Times New Roman', serif;
  --serif:'Libre Caslon Condensed', Georgia, 'Times New Roman', serif;
  --hand:'Libre Caslon Condensed', Georgia, serif;
  --hand2:'Libre Caslon Condensed', Georgia, serif;
  --mono:'Libre Caslon Condensed', Georgia, serif;

  --pad:clamp(20px,5vw,72px);
  --max:1240px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%;}
body{margin:0; background:var(--paper); color:var(--ink); font-family:var(--text); font-size:17px; line-height:1.7; letter-spacing:.005em; -webkit-font-smoothing:antialiased; overflow-x:hidden;}
img{display:block; max-width:100%;}
a{color:inherit;}
p{margin:0 0 1.1em;}
p:last-child{margin-bottom:0;}
h1,h2,h3,h4{margin:0; font-weight:200; font-family:var(--logo); line-height:1.15; color:var(--ink);}
button{font:inherit;}
::selection{background:var(--clay); color:var(--ink);}
:focus-visible{outline:1px solid var(--terracotta); outline-offset:4px;}
.sr{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;}

/* ---------- type helpers ---------- */
.rt{font-family:var(--logo); font-weight:200; letter-spacing:.34em; margin-right:-.12em; font-style:normal; text-transform:uppercase;}
.eyebrow{display:inline-block; font-family:var(--serif); font-weight:500; font-size:.76rem; letter-spacing:.3em; text-transform:uppercase; color:var(--terracotta);}
.display{font-family:var(--title); font-weight:200; font-size:clamp(2.1rem,4.4vw,3.6rem); letter-spacing:.01em; line-height:1.12;}
.display .rt{letter-spacing:.3em; font-size:.8em;}
.ital{font-family:var(--serif); font-style:italic; font-weight:300; font-size:clamp(1.3rem,2vw,1.65rem); line-height:1.45; color:var(--ink);}
.lede{font-size:clamp(1.05rem,1.4vw,1.2rem); color:var(--ink-soft); max-width:58ch;}
.center{text-align:center; margin-left:auto; margin-right:auto;}
.link{display:inline-block; font-family:var(--serif); font-weight:500; font-size:.78rem; letter-spacing:.26em; text-transform:uppercase; text-decoration:none; color:var(--ink); padding-bottom:6px; background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat; transition:background-size .5s var(--ease), color .3s;}
.link:hover{color:var(--terracotta); background-size:40% 1px;}
.btn{display:inline-block; border:1px solid var(--ink); background:transparent; color:var(--ink); padding:15px 34px; font-family:var(--serif); font-weight:500; font-size:.78rem; letter-spacing:.26em; text-transform:uppercase; text-decoration:none; cursor:pointer; border-radius:999px; transition:background .4s, color .4s, border-color .4s;}
.btn:hover{background:var(--terracotta); border-color:var(--terracotta); color:var(--white);}
.btn.fill{background:var(--terracotta); border-color:var(--terracotta); color:var(--white);}
.btn.fill:hover{background:var(--orange); border-color:var(--orange);}
.btn.ghost{border-color:var(--line);}

/* ---------- header (Sonblanc-style) ---------- */
.hdr{position:fixed; inset:0 0 auto 0; z-index:50; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:26px var(--pad); color:var(--white); transition:background .5s var(--ease), color .5s var(--ease), padding .5s var(--ease), box-shadow .5s;}
.hdr .l{display:flex; align-items:center; gap:28px;}
.hdr .r{display:flex; justify-content:flex-end;}
.burger{width:26px; height:14px; position:relative; background:none; border:none; padding:0; cursor:pointer; color:inherit;}
.burger span{position:absolute; left:0; right:0; height:1px; background:currentColor; transition:transform .4s var(--ease), opacity .3s;}
.burger span:nth-child(1){top:0;} .burger span:nth-child(2){top:6.5px;} .burger span:nth-child(3){bottom:0;}
.langs{display:flex; align-items:center; gap:10px; font-family:var(--serif); font-weight:500; font-size:.78rem; letter-spacing:.2em;}
.langs span{opacity:.6;}
.lang-btn{background:none; border:none; padding:2px 0; cursor:pointer; color:inherit; font:inherit; letter-spacing:inherit; opacity:.55; transition:opacity .3s;}
.lang-btn.active, .lang-btn:hover{opacity:1;}
.hdr .logo{font-family:var(--logo); font-weight:200; font-size:1.25rem; letter-spacing:.55em; margin-right:-.55em; text-decoration:none; color:inherit; opacity:0; transform:translateY(-6px); transition:opacity .5s, transform .5s var(--ease);}
.hdr .reserve{font-family:var(--serif); font-weight:500; font-size:.78rem; letter-spacing:.26em; text-transform:uppercase; text-decoration:none; color:inherit; padding-bottom:6px; border-bottom:1px solid currentColor;}
.hdr.solid, body.no-hero .hdr{background:rgba(248,244,238,.94); color:var(--ink); padding-top:18px; padding-bottom:18px; box-shadow:0 1px 0 var(--line); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);}
.hdr.solid .logo, body.no-hero .hdr .logo{opacity:1; transform:none;}
@media (max-width:640px){ .hdr .l{gap:16px;} .hdr .langs{font-size:.7rem; gap:6px; letter-spacing:.12em;} .hdr .reserve{font-size:.66rem; letter-spacing:.2em;} .hdr .logo{font-size:1.05rem; letter-spacing:.45em; margin-right:-.45em;} }

/* full-screen menu */
.menu{position:fixed; inset:0; z-index:60; display:grid; grid-template-columns:1.1fr .9fr; background:var(--paper); visibility:hidden; opacity:0; transition:opacity .6s var(--ease), visibility 0s .6s;}
.menu.open{visibility:visible; opacity:1; transition:opacity .6s var(--ease);}
.menu .mpanel{padding:28px var(--pad) 40px; display:flex; flex-direction:column;}
.menu .mtop{display:flex; align-items:center; justify-content:space-between;}
.menu .mclose{background:none; border:none; cursor:pointer; font-family:var(--serif); font-weight:500; font-size:.78rem; letter-spacing:.26em; text-transform:uppercase; color:var(--ink); padding:4px 0;}
.menu nav{margin:auto 0;}
.menu ul{list-style:none; margin:0; padding:0;}
.menu li{overflow:hidden;}
.menu nav a{display:inline-block; font-family:var(--title); font-weight:200; font-size:clamp(1.9rem,4.2vw,3.3rem); letter-spacing:.01em; line-height:1.35; text-decoration:none; color:var(--ink); transform:translateY(110%); transition:transform .8s var(--ease), color .3s;}
.menu.open nav a{transform:none;}
.menu nav li:nth-child(2) a{transition-delay:.05s;} .menu nav li:nth-child(3) a{transition-delay:.1s;} .menu nav li:nth-child(4) a{transition-delay:.15s;} .menu nav li:nth-child(5) a{transition-delay:.2s;} .menu nav li:nth-child(6) a{transition-delay:.25s;} .menu nav li:nth-child(7) a{transition-delay:.3s;}
.menu nav a:hover, .menu nav a[aria-current="page"]{color:var(--terracotta);}
.menu nav a[aria-current="page"]{font-style:italic;}
.menu .mfoot{display:flex; flex-wrap:wrap; gap:10px 34px; font-family:var(--text); font-weight:400; font-size:.78rem; letter-spacing:.12em; color:var(--ink-soft);}
.menu .mfoot a{text-decoration:none;}
.menu .mfoot .langs{color:var(--ink);}
.menu .mimg{position:relative; overflow:hidden;}
.menu .mimg img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transform:scale(1.08); transition:transform 1.6s var(--ease);}
.menu.open .mimg img{transform:scale(1);}
@media (max-width:800px){ .menu{grid-template-columns:1fr; grid-template-rows:1fr 26vh;} .menu .mimg{display:block;} }

/* ---------- hero ---------- */
.hero{position:relative; height:100vh; height:100svh; min-height:560px; overflow:hidden; color:var(--white); display:flex; align-items:center; justify-content:center; text-align:center; background:#5b5a46;}
.hero .bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transform:scale(1.06); animation:heroZoom 14s var(--ease) forwards;}
@keyframes heroZoom{to{transform:scale(1);}}
.hero::after{content:""; position:absolute; inset:0; background:radial-gradient(ellipse 62% 50% at 50% 55%, rgba(30,24,18,.38), transparent 72%), linear-gradient(180deg, rgba(30,24,18,.38) 0%, rgba(30,24,18,.10) 28%, rgba(30,24,18,.12) 62%, rgba(30,24,18,.45) 100%);}
.hero h1, .hero h2{color:inherit;}
.hero .inner{position:relative; z-index:2; padding:0 var(--pad); animation:fadeUp 1.6s .3s var(--ease) both;}
.hero .mark{font-family:var(--logo); font-weight:200; font-size:clamp(3.4rem,11vw,8.4rem); letter-spacing:.42em; margin-right:-.42em; line-height:1; text-shadow:0 1px 30px rgba(0,0,0,.12);}
.hero .sub{text-shadow:0 1px 14px rgba(0,0,0,.3); display:block; margin-top:18px; font-family:var(--serif); font-weight:500; font-size:clamp(.92rem,1.2vw,1.08rem); letter-spacing:.38em; text-transform:uppercase;}
.hero .tag{text-shadow:0 1px 18px rgba(0,0,0,.35); margin:clamp(26px,4vw,40px) auto 0; font-family:var(--serif); font-style:italic; font-weight:300; font-size:clamp(1.6rem,3vw,2.4rem); letter-spacing:.02em; max-width:34ch; line-height:1.35;}
.hero .scroll{position:absolute; z-index:2; left:50%; bottom:30px; transform:translateX(-50%); width:20px; height:64px; color:var(--white);}
.hero .scroll svg{width:100%; height:100%; animation:drift 2.8s ease-in-out infinite;}
@keyframes drift{0%,100%{transform:translateY(0);} 50%{transform:translateY(8px);}}
@keyframes fadeUp{from{opacity:0; transform:translateY(18px);} to{opacity:1; transform:none;}}

/* page hero (inner pages) */
.hero.page{height:78vh; height:78svh; min-height:480px;}
.hero.page .title{font-family:var(--title); font-weight:200; font-size:clamp(2.8rem,7vw,5.6rem); letter-spacing:.01em; line-height:1.05;}
.hero.page .title .rt{letter-spacing:.32em; font-size:.78em;}
.hero.page .meta{display:block; margin-top:22px; font-family:var(--serif); font-style:italic; font-weight:400; font-size:clamp(1.3rem,2.2vw,1.75rem);}

/* ---------- sections ---------- */
main{display:block;}
.sec{padding:clamp(80px,11vw,150px) var(--pad); position:relative;}
.sec.tight{padding-top:clamp(56px,7vw,96px); padding-bottom:clamp(56px,7vw,96px);}
.sec.butter{background:var(--butter-soft);}
.sec.yellow{background:var(--sand);}
.sec.sand{background:var(--sand);}
.sec.clay{background:var(--clay);}
.sec.terra{background:var(--terracotta); color:var(--white);}
.sec.terra h2,.sec.terra h3,.sec.terra .ital{color:var(--white);}
.wrap{max-width:var(--max); margin:0 auto;}
.narrow{max-width:640px; margin-left:auto; margin-right:auto;}
.head-block{text-align:center; max-width:760px; margin:0 auto clamp(46px,6vw,80px);}
.head-block .display{margin-top:18px;}
.head-block .lede{margin:22px auto 0;}

/* intro statement */
.statement{max-width:900px; margin:0 auto; text-align:center;}
.statement p{font-family:var(--title); font-weight:200; font-size:clamp(1.4rem,2.5vw,2.05rem); line-height:1.5; letter-spacing:0; color:var(--ink);}
.statement .rt{letter-spacing:.3em; font-size:.82em;}
.statement .eyebrow{margin-bottom:28px;}

/* split (image + text) */
.split{display:grid; grid-template-columns:1fr 1fr; gap:clamp(36px,7vw,110px); align-items:center; max-width:var(--max); margin:0 auto;}
.split.rev .ph{order:2;}
.split .ph{position:relative; overflow:hidden; border-radius:2px;}
.split .ph img{width:100%; height:100%; object-fit:cover; aspect-ratio:4/5;}
.split .txt .display{margin:18px 0 26px;}
.split .txt .meta{font-family:var(--serif); font-style:italic; font-size:1.2rem; color:var(--terracotta); margin:-8px 0 22px;}
.split .txt .btns{display:flex; flex-wrap:wrap; gap:18px 30px; align-items:center; margin-top:34px;}
.ph figcaption, .cap{font-family:var(--serif); font-style:italic; font-size:1.02rem; color:var(--ink-soft); margin-top:14px;}
@media (max-width:860px){ .split{grid-template-columns:1fr;} .split.rev .ph{order:0;} }


/* manifesto */
.manifesto{text-align:center; max-width:720px; margin:0 auto;}
.manifesto h3{font-family:var(--title); font-weight:200; font-size:clamp(2rem,4vw,3rem); letter-spacing:0; margin-bottom:30px; color:var(--terracotta);}
.manifesto p{font-family:var(--serif); font-style:italic; font-weight:300; font-size:clamp(1.2rem,1.9vw,1.5rem); line-height:1.9; color:var(--ink);}

/* nourish trio */
.trio{display:grid; grid-template-columns:1fr 1.25fr 1fr; gap:clamp(12px,2vw,26px); align-items:end; max-width:var(--max); margin:0 auto;}
.trio figure{margin:0; overflow:hidden;}
.trio img{width:100%; aspect-ratio:3/4; object-fit:cover; transition:transform 1.4s var(--ease);}
.trio figure:nth-child(2) img{aspect-ratio:4/5;}
.trio figure:hover img{transform:scale(1.04);}
.trio figcaption{font-family:var(--serif); font-style:italic; font-size:1rem; color:var(--ink-soft); margin-top:12px; text-align:center;}
@media (max-width:700px){ .trio{grid-template-columns:1fr 1fr;} .trio figure:nth-child(2){grid-column:1/-1; order:-1;} }

/* pillars */
.pillars{display:grid; grid-template-columns:repeat(5,1fr); gap:24px; max-width:var(--max); margin:0 auto; text-align:center;}
.pillars h4{font-family:var(--title); font-weight:200; font-size:1.45rem; letter-spacing:0; margin-bottom:8px;}
.pillars p{font-family:var(--serif); font-style:italic; font-size:1.1rem; color:var(--ink-soft);}
.pillars .n{display:block; font-family:var(--serif); font-style:italic; color:var(--terracotta); margin-bottom:10px;}
@media (max-width:820px){ .pillars{grid-template-columns:1fr 1fr; row-gap:40px;} .pillars div:last-child{grid-column:1/-1;} }

/* orbit (rotating text around an image) */
.orbit{position:relative; width:min(520px,88vw); aspect-ratio:1; margin:0 auto clamp(56px,7vw,90px);}
.orbit .photo{position:absolute; inset:15%; border-radius:50%; overflow:hidden; margin:0;}
.orbit .photo img{width:100%; height:100%; object-fit:cover;}
.orbit svg{position:absolute; inset:0; width:100%; height:100%; overflow:visible;}
.orbit text{font-family:var(--text); font-weight:400; font-size:12.5px; letter-spacing:.22em; text-transform:uppercase; fill:var(--ink);}
.slow{transform-origin:50% 50%; animation:spin 70s linear infinite;}
.slower{transform-origin:50% 50%; animation:spin 110s linear infinite reverse;}
@keyframes spin{to{transform:rotate(360deg);}}

/* founder spread with wavy text */
.spread{display:grid; grid-template-columns:1fr 1fr; max-width:1000px; margin:0 auto; box-shadow:0 30px 60px -40px rgba(46,36,29,.35);}
.spread .pg{position:relative; background:#F3E8C3; padding:clamp(22px,3vw,34px) clamp(22px,3vw,30px) clamp(30px,4vw,44px); display:flex; flex-direction:column;}
.spread .pg header{display:flex; justify-content:space-between; font-family:var(--text); font-size:clamp(.95rem,1.3vw,1.08rem); color:var(--ink);}
.spread .photo{margin:0; position:relative; background:#ddd;}
.spread .photo img{width:100%; height:100%; object-fit:cover;}
.spread .photo figcaption{position:absolute; left:0; right:0; bottom:0; padding:60px 22px 18px; background:linear-gradient(180deg, transparent, rgba(30,24,18,.55)); color:var(--white); font-family:var(--serif); font-style:italic; font-size:1.05rem; text-align:center; letter-spacing:.02em;}
.wavy{font-family:var(--text); font-size:clamp(.98rem,1.25vw,1.08rem); line-height:1.32; text-align:center; color:var(--ink); max-width:440px; width:100%; margin:clamp(34px,5vw,60px) auto 0;}
.wavy p{margin:0;}
.wavy .wl, .wavy .wr{width:50%; height:36em;}
.wavy .wl{float:left; shape-outside:polygon(0 0, 60% 0, 44% 6%, 28% 14%, 36% 26%, 60% 38%, 76% 50%, 60% 62%, 32% 74%, 20% 86%, 40% 100%, 0 100%);}
.wavy .wr{float:right; shape-outside:polygon(4% 0, 100% 0, 100% 100%, 80% 100%, 56% 86%, 44% 74%, 60% 62%, 84% 50%, 92% 38%, 80% 26%, 60% 14%, 28% 6%);}
.wavy .rt{font-size:.92em;}
@media (max-width:1100px){ .wavy .wl, .wavy .wr{height:41em;} }
@media (max-width:800px){
  .spread{grid-template-columns:1fr;}
  .spread .photo{aspect-ratio:4/5; order:-1;}
  /* keep the wave on phones, with a gentler curve so lines stay readable */
  .wavy{max-width:100%; font-size:1rem; margin-top:28px;}
  .wavy .wl{shape-outside:polygon(0 0, 44% 0, 30% 6%, 12% 14%, 20% 26%, 46% 38%, 62% 50%, 44% 62%, 16% 74%, 8% 86%, 28% 100%, 0 100%);}
  .wavy .wr{shape-outside:polygon(8% 0, 100% 0, 100% 100%, 74% 100%, 50% 86%, 40% 74%, 58% 62%, 86% 50%, 94% 38%, 80% 26%, 52% 14%, 30% 6%);}
}
.founder-quote{max-width:760px; margin:clamp(56px,7vw,90px) auto 0; text-align:center;}
.founder-quote .ital{font-size:clamp(1.4rem,2.4vw,1.95rem);}
.founder-quote .sig{display:block; margin-top:22px; font-family:var(--serif); font-weight:500; font-size:.78rem; letter-spacing:.28em; text-transform:uppercase; color:var(--terracotta);}

/* ---------- retreat ---------- */
.ret-intro{max-width:760px; margin:0 auto; text-align:center;}
.ret-intro .display{margin:18px 0 22px;}
.ret-intro .facts{font-family:var(--serif); font-style:italic; font-weight:300; font-size:clamp(1.1rem,1.6vw,1.3rem); color:var(--terracotta); margin-bottom:clamp(30px,4vw,46px);}
.ret-intro .facts i{font-style:normal; color:var(--ink-faint); margin:0 .5em;}
.ret-intro .desc p{font-size:clamp(1.02rem,1.3vw,1.14rem); color:var(--ink-soft);}
.ret-intro .btns{display:flex; flex-wrap:wrap; gap:18px 30px; justify-content:center; align-items:center; margin-top:40px;}

/* handwritten notes */
.notes{display:grid; grid-template-columns:1fr 1fr; gap:clamp(26px,5vw,70px); max-width:1080px; margin:0 auto;}
.note{position:relative; background:var(--white); padding:clamp(34px,4.5vw,56px) clamp(28px,4vw,52px) clamp(34px,4vw,50px); box-shadow:0 22px 50px -34px rgba(46,36,29,.45); background-image:repeating-linear-gradient(180deg, transparent 0 41px, rgba(180,85,46,.12) 41px 42px); background-position:0 18px;}
.note:nth-child(1){transform:rotate(-1.2deg);} .note:nth-child(2){transform:rotate(1deg); background-color:#FFFFFF;}
.note::before{content:""; position:absolute; top:-12px; left:50%; width:96px; height:26px; transform:translateX(-50%) rotate(-3deg); background:rgba(236,211,190,.85); box-shadow:0 1px 2px rgba(0,0,0,.05);}
.note h3{font-family:var(--hand); font-style:italic; font-weight:400; font-size:clamp(1.4rem,2.1vw,1.7rem); line-height:1.6; color:var(--terracotta); margin-bottom:12px;}
.note ul{list-style:none; margin:0; padding:0;}
.note li{position:relative; padding-left:28px; font-family:var(--hand2); font-style:italic; font-size:clamp(1.05rem,1.4vw,1.18rem); line-height:42px; color:var(--ink);}
.note li::before{content:""; position:absolute; left:4px; top:19px; width:9px; height:9px; border-radius:50%; border:1.5px solid var(--terracotta); transform:rotate(20deg);}
.note li:nth-child(3n)::before{border-radius:45% 55% 50% 50%;}
@media (max-width:820px){ .notes{grid-template-columns:1fr;} .note:nth-child(n){transform:none;} }

/* day at the retreat — kept format */
.day{position:relative; padding:clamp(90px,12vw,160px) var(--pad) clamp(80px,10vw,140px); overflow:hidden; background:var(--sand);}
.day > img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 70%; filter:sepia(.25) saturate(.5) contrast(.85) brightness(1.06) blur(1px);}
.day::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(240,231,214,.82), rgba(240,231,214,.87) 60%, rgba(240,231,214,.93));}
.day > *:not(img){position:relative; z-index:1;}
.day h2{font-family:var(--title); font-weight:200; font-size:clamp(2.2rem,4.6vw,3.6rem); text-align:center; letter-spacing:.01em; color:#3A3A35;}
.day .icon{display:block; width:84px; height:84px; margin:26px auto 30px; color:#5D625B;}
.day-tabs{display:flex; flex-wrap:wrap; justify-content:center; gap:4px 22px; margin-bottom:clamp(40px,6vw,70px);}
.day-tab{background:none; border:none; padding:6px 2px; cursor:pointer; font-family:var(--mono); font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:#6E6A60; border-bottom:1px solid transparent; transition:color .3s, border-color .3s;}
.day-tab[aria-selected="true"]{color:#3A3A35; border-color:#3A3A35;}
.day-theme{text-align:center; font-family:var(--serif); font-style:italic; font-size:1.3rem; color:#3A3A35; margin:-30px 0 clamp(36px,5vw,60px);}
.snake{position:relative; max-width:860px; margin:0 auto; transition:opacity .35s;}
.snake.fade{opacity:0;}
.srow{position:relative; display:grid; height:var(--rowh,190px);}
.srow .line{position:absolute; top:46px; height:1.5px; background:#7F9BC0;}
.srow .turn{position:absolute; top:46px; height:var(--rowh,190px); width:clamp(40px,11%,100px); border:1.5px solid #7F9BC0;}
.srow .turn.r{border-left:none; border-radius:0 999px 999px 0;}
.srow .turn.l{border-right:none; border-radius:999px 0 0 999px;}
.stop{position:relative; text-align:center; padding:0 6px;}
.stop time{display:block; font-family:var(--mono); font-weight:400; font-size:.86rem; color:#3A3A35; height:30px; letter-spacing:.04em;}
.stop .dot{display:block; width:17px; height:17px; border-radius:50%; background:#5D625B; margin:8px auto 14px; position:relative; z-index:1;}
.stop.sig .dot{background:var(--terracotta); box-shadow:0 0 0 5px rgba(180,85,46,.15);}
.stop .ev{font-family:var(--mono); font-weight:400; font-size:.84rem; line-height:1.4; color:#3A3A35; letter-spacing:.01em; max-width:17ch; margin:0 auto;}
.stop .ev small{display:block; font-weight:300; font-size:.72rem; color:#6E6A60; margin-top:4px;}
.stop .tag{display:block; font-family:var(--mono); font-size:.6rem; letter-spacing:.16em; text-transform:uppercase; color:var(--terracotta); margin-top:6px;}
@media (max-width:640px){ .stop .ev{font-size:.76rem;} .stop time{font-size:.78rem;} }

/* signature workshops */
.circles{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(30px,4vw,60px); max-width:var(--max); margin:0 auto; text-align:center;}
.circ .orbit{width:min(300px,78vw); margin:0 auto 26px;}
.circ .orbit .photo{inset:11%;}
.circ .orbit text{font-size:12px;}
.circ h3{font-family:var(--title); font-weight:200; font-size:1.35rem; letter-spacing:0; line-height:1.3; margin-bottom:12px;}
.circ p{font-family:var(--serif); font-style:italic; font-size:1.12rem; line-height:1.5; color:var(--ink-soft); max-width:32ch; margin:0 auto;}
.circ .when{display:block; margin-top:16px; font-family:var(--serif); font-weight:500; font-size:.74rem; letter-spacing:.26em; text-transform:uppercase; color:var(--terracotta);}
@media (max-width:900px){ .circles{grid-template-columns:1fr; gap:70px;} }

/* gallery — tuscanfitness-style dense grid */
.gallery{display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:clamp(150px,17vw,230px); gap:12px; grid-auto-flow:dense; max-width:var(--max); margin:0 auto;}
.gallery figure{margin:0; position:relative; overflow:hidden; border-radius:3px; cursor:zoom-in; background:var(--sand);}
.gallery figure.tall{grid-row:span 2;}
.gallery figure.wide{grid-column:span 2;}
.gallery figure.big{grid-column:span 2; grid-row:span 2;}
.gallery img{width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease), filter .6s;}
.gallery figure:hover img{transform:scale(1.05);}
.gallery figcaption{position:absolute; left:14px; bottom:12px; font-family:var(--serif); font-style:italic; font-size:1rem; color:var(--white); opacity:0; transform:translateY(6px); transition:opacity .5s, transform .5s var(--ease); text-shadow:0 1px 10px rgba(0,0,0,.35);}
.gallery figure:hover figcaption, .gallery figure:focus-visible figcaption{opacity:1; transform:none;}
@media (max-width:760px){ .gallery{grid-template-columns:repeat(2,1fr); grid-auto-rows:44vw; gap:8px;} .gallery figure.big{grid-column:span 2; grid-row:span 1;} }

/* lightbox */
.lightbox{position:fixed; inset:0; z-index:80; background:rgba(248,244,238,.97); display:flex; align-items:center; justify-content:center; padding:60px 70px;}
.lightbox[hidden]{display:none;}
.lightbox figure{margin:0; max-width:100%; max-height:100%; text-align:center;}
.lightbox img{max-width:100%; max-height:calc(100vh - 160px); margin:0 auto; object-fit:contain; animation:fadeUp .5s var(--ease);}
.lightbox figcaption{font-family:var(--serif); font-style:italic; margin-top:14px; color:var(--ink-soft);}
.lightbox button{position:absolute; background:none; border:none; cursor:pointer; font-family:var(--text); font-weight:400; font-size:.74rem; letter-spacing:.3em; text-transform:uppercase; color:var(--ink); padding:12px;}
.lb-close{top:20px; right:24px;} .lb-prev{left:14px; top:50%; font-size:1.3rem !important;} .lb-next{right:14px; top:50%; font-size:1.3rem !important;}

.tags{display:flex; flex-wrap:wrap; gap:10px; margin:24px 0 6px;}
.tags span{font-family:var(--text); font-weight:400; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; border:1px solid var(--line); border-radius:999px; padding:7px 16px; color:var(--ink-soft);}
.email{font-family:var(--serif); font-style:italic; font-size:1.35rem; color:var(--terracotta); text-decoration:none; border-bottom:1px solid currentColor;}

/* ---------- testimonials: editorial spreads ---------- */
.tspreads{display:flex; flex-direction:column; gap:clamp(60px,9vw,130px); max-width:1180px; margin:0 auto;}
.tspread{display:grid; grid-template-columns:1fr 1fr; width:min(940px,100%);}
.tspread:nth-child(2){margin-left:auto;}
.tspread:nth-child(3){margin-left:clamp(0px,6vw,90px);}
.tspread .pg{position:relative; background:var(--butter); aspect-ratio:3/4; padding:clamp(16px,2.4vw,26px); display:flex; flex-direction:column;}
.tspread:nth-child(2) .pg{background:var(--sand);}
.tspread:nth-child(3) .pg{background:#F2E4D8;}
.tspread .pg header{display:flex; justify-content:space-between; font-family:var(--serif); font-size:clamp(1rem,1.4vw,1.15rem); color:var(--ink);}
.tspread .pg .num{position:absolute; right:-20px; top:16%; font-family:var(--serif); font-size:.7rem; color:var(--ink-faint);}
.tspread.rev .pg{order:2;}
.tspread.rev .pg .num{left:-20px; right:auto;}
.tspread .shape{flex:1; display:flex; align-items:center; justify-content:center; padding:6% 4%;}
.tspread .shape p{font-family:var(--text); font-size:clamp(1rem,1.55vw,1.28rem); line-height:1.3; color:var(--ink); text-align:center; max-width:24ch; margin:0 auto;}
.tspread .photo{margin:0; aspect-ratio:3/4; overflow:hidden; background:var(--sand);}
.tspread .photo img{width:100%; height:100%; object-fit:cover; transition:transform 1.6s var(--ease);}
.tspread:hover .photo img{transform:scale(1.03);}
@media (max-width:760px){
  .tspread{grid-template-columns:1fr; margin:0 !important;}
  .tspread .photo{order:1; aspect-ratio:4/3;}
  .tspread .pg, .tspread.rev .pg{order:2; aspect-ratio:auto; min-height:110vw;}
  .tspread .pg .num{display:none;}
}

.note-photo{position:relative; max-width:560px; margin:0 auto; container-type:inline-size;}
.note-photo img{width:100%;}
.note-hand{position:absolute; left:47%; top:29%; font-family:'Homemade Apple', 'Bradley Hand', cursive; font-style:normal; font-size:2.85cqw; line-height:1.75; transform:rotate(-4deg); line-height:1.5; color:#1E1B18; white-space:nowrap;}
.note-hand .l2{padding-left:3%;} .note-hand .l3{padding-left:34%;}

/* newsletter block */
.pledge{text-align:center; max-width:640px; margin:0 auto;}
.pledge h3{font-family:var(--title); font-weight:200; font-size:clamp(1.9rem,3.4vw,2.6rem); letter-spacing:0; margin:16px 0 18px;}
.pledge p{font-family:var(--serif); font-style:italic; font-size:1.22rem; line-height:1.6; color:var(--ink-soft);}
.nl-form{display:flex; flex-wrap:wrap; gap:14px 22px; justify-content:center; margin-top:30px; position:relative;}
.nl-form input{flex:1 1 240px; max-width:360px; min-width:0; font-family:var(--text); font-size:1.05rem; background:transparent; border:none; border-bottom:1px solid var(--ink); padding:10px 2px; color:var(--ink); border-radius:0;}
.nl-form input:focus{outline:none; border-color:var(--terracotta);}
.nl-form button{background:none; border:none; border-bottom:1px solid var(--ink); padding:10px 2px; font-family:var(--text); font-weight:400; font-size:.74rem; letter-spacing:.3em; text-transform:uppercase; color:var(--ink); cursor:pointer; transition:color .3s, border-color .3s;}
.nl-form button:hover{color:var(--terracotta); border-color:var(--terracotta);}
.form-msg{flex-basis:100%; min-height:1.4em; margin:0; font-family:var(--serif); font-style:italic; font-size:1.05rem;}
.form-msg.ok{color:var(--terracotta);} .form-msg.err{color:#9A3A1E;}

/* ---------- bookings ---------- */
.book{display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(40px,7vw,110px); max-width:var(--max); margin:0 auto; align-items:start;}
.price{font-family:var(--title); font-weight:200; font-size:clamp(2.6rem,5vw,3.6rem); line-height:1; margin:26px 0 6px;}
.price small{font-family:var(--serif); font-style:italic; font-size:1.05rem; color:var(--ink-faint); margin-left:10px; letter-spacing:0;}
.deposit{display:inline-block; font-family:var(--serif); font-style:italic; font-size:1.3rem; color:var(--terracotta); margin:12px 0 18px;}
.steps{list-style:none; counter-reset:s; padding:0; margin:36px 0 0;}
.steps li{counter-increment:s; display:grid; grid-template-columns:40px 1fr; padding:18px 0; border-top:1px solid var(--line);}
.steps li::before{content:counter(s, lower-roman) "."; font-family:var(--serif); font-style:italic; font-size:1.25rem; color:var(--terracotta); line-height:1.4;}
.steps h5{margin:0 0 4px; font-family:var(--serif); font-weight:500; font-size:1.15rem; letter-spacing:.01em;}
.steps p{margin:0; color:var(--ink-soft);}
.form{display:grid; grid-template-columns:1fr 1fr; gap:26px 30px; background:var(--white); padding:clamp(28px,4vw,50px); box-shadow:0 30px 60px -44px rgba(46,36,29,.5);}
.form .full{grid-column:1/-1;}
.field label{display:block; font-family:var(--text); font-weight:400; font-size:.68rem; letter-spacing:.24em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:6px;}
.field input, .field select, .field textarea{font-family:var(--text); font-size:1.05rem; color:var(--ink); background:transparent; border:none; border-bottom:1px solid var(--line); border-radius:0; padding:8px 2px; width:100%; transition:border-color .3s;}
.field input:focus, .field select:focus, .field textarea:focus{outline:none; border-color:var(--terracotta);}
.field textarea{min-height:90px; resize:vertical;}
.check{display:flex; gap:12px; align-items:flex-start; font-size:.98rem; color:var(--ink-soft); line-height:1.5; cursor:pointer;}
.check input{margin-top:5px; accent-color:var(--terracotta);}
.actions{display:flex; flex-wrap:wrap; gap:18px 26px; align-items:center;}
.actions .small{font-family:var(--serif); font-style:italic; color:var(--ink-faint);}
.done{background:var(--white); padding:clamp(30px,4vw,54px); box-shadow:0 30px 60px -44px rgba(46,36,29,.5);}
.done h3{font-family:var(--title); font-weight:200; font-size:clamp(1.9rem,3vw,2.5rem); margin-bottom:18px;}
.done .actions{margin-top:28px;}
@media (max-width:900px){ .book{grid-template-columns:1fr;} .form{grid-template-columns:1fr;} }

/* ---------- essentials ---------- */
.ess-hero{display:grid; grid-template-columns:1fr 1fr; min-height:100vh; min-height:100svh;}
.ess-hero .ph{position:relative; overflow:hidden; margin:0;}
.ess-hero .ph img{position:absolute; inset:-4%; width:108%; height:108%; object-fit:cover; animation:essDrift 18s ease-in-out infinite alternate;}
@keyframes essDrift{0%{transform:scale(1) translate(0,0);} 50%{transform:scale(1.04) translate(-1.2%,.8%);} 100%{transform:scale(1.07) translate(1%,-1%);}}
.ess-hero .ph.imgrev img{transition:none;}
.ess-hero .ph .soon{position:absolute; left:28px; bottom:26px; z-index:2; color:var(--white); font-family:var(--serif); font-style:italic; font-size:1.4rem; text-shadow:0 1px 14px rgba(0,0,0,.3);}
.ess-hero .txt{display:flex; flex-direction:column; justify-content:center; padding:140px clamp(28px,6vw,96px) 80px; background:var(--paper);}
.ess-hero .display{margin:20px 0 30px;}
.ess-list{list-style:none; margin:10px 0 0; padding:0; border-top:1px solid var(--line);}
.ess-list li{padding:22px 0; border-bottom:1px solid var(--line);}
.ess-list h4{font-family:var(--text); font-weight:400; font-size:.76rem; letter-spacing:.3em; text-transform:uppercase; color:var(--terracotta); margin-bottom:8px;}
.ess-list p{margin:0; font-family:var(--serif); font-style:italic; font-size:1.25rem; line-height:1.5; color:var(--ink);}
.ess-list .soon{color:var(--terracotta);}
@media (max-width:860px){ .ess-hero{grid-template-columns:1fr;} .ess-hero .ph{min-height:80vh;} .ess-hero .txt{padding-top:60px;} }
.next-ret{position:relative; min-height:78vh; display:flex; align-items:flex-end; overflow:hidden; color:var(--white);}
.next-ret img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.next-ret::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(30,24,18,.05) 30%, rgba(30,24,18,.62));}
.next-ret .txt{position:relative; z-index:2; padding:clamp(40px,6vw,80px) var(--pad); max-width:760px;}
.next-ret .eyebrow{color:var(--white);}
.next-ret h2{color:var(--white); margin:16px 0 14px;}
.next-ret .ital{color:var(--white);}

/* ---------- welcome pack ---------- */
.pack{display:grid; grid-template-columns:1fr 1fr; gap:clamp(36px,6vw,90px); max-width:1100px; margin:0 auto;}
.pack h4{font-family:var(--text); font-weight:400; font-size:.78rem; letter-spacing:.3em; text-transform:uppercase; color:var(--terracotta); margin:30px 0 10px;}
.pack h4:first-child{margin-top:0;}
.pack dl{margin:0; display:grid; grid-template-columns:auto 1fr; gap:12px 22px;}
.pack dt{font-family:var(--text); font-weight:400; font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-faint); padding-top:4px;}
.pack dd{margin:0;}
.checklist{list-style:none; padding:0; margin:0;}
.checklist li{border-bottom:1px solid var(--line);}
.checklist label{display:flex; gap:14px; padding:11px 0; cursor:pointer;}
.checklist input{accent-color:var(--terracotta); margin-top:6px;}
.checklist input:checked + span{text-decoration:line-through; color:var(--ink-faint);}
@media (max-width:820px){ .pack{grid-template-columns:1fr;} }
@media print{ .hdr,.menu,.site-end,.no-print{display:none !important;} body{background:#fff;} .sec{padding:20px;} }

/* ---------- end of page (image strip + prev/next + footer) ---------- */
.site-end{background:var(--sand);}
.strip{display:grid; grid-template-columns:repeat(5,1fr); gap:3px; background:var(--paper);}
.strip figure{margin:0; overflow:hidden; aspect-ratio:3/2.05;}
.strip img{width:100%; height:100%; object-fit:cover; transition:transform 1.6s var(--ease);}
.strip figure:hover img{transform:scale(1.06);}
@media (max-width:700px){ .strip{gap:2px;} .strip figure{aspect-ratio:3/4;} }
.pn{display:flex; justify-content:space-between; gap:30px; max-width:1124px; margin:0 auto; padding:clamp(46px,5vw,60px) var(--pad);}
.pn a{text-decoration:none; color:var(--ink);}
.pn small{display:block; font-family:var(--serif); font-weight:500; font-size:.7rem; letter-spacing:.26em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:10px;}
.pn span{font-family:var(--title); font-size:clamp(1.15rem,1.6vw,1.3rem); transition:color .3s;}
.pn a:hover span{color:var(--terracotta);}
.pn .next{text-align:right; margin-left:auto;}
.foot{background:var(--paper); border-top:1px solid var(--line); padding:clamp(60px,7vw,90px) var(--pad) 28px;}
.foot .grid{max-width:1124px; margin:0 auto; display:grid; grid-template-columns:1.3fr 1fr auto auto; gap:clamp(30px,5vw,70px);}
.foot .brand .logo{font-family:var(--logo); font-weight:200; font-size:1.2rem; letter-spacing:.55em; text-decoration:none; color:var(--ink); display:inline-block; margin-bottom:22px;}
.foot .brand p{font-family:var(--text); font-size:1rem; line-height:1.75; color:var(--ink-faint); max-width:32ch;}
.foot h6{margin:0 0 20px; font-family:var(--serif); font-weight:500; font-size:.7rem; letter-spacing:.26em; text-transform:uppercase; color:var(--ink-faint);}
.foot ul{list-style:none; margin:0; padding:0;}
.foot li{margin-bottom:12px;}
.foot li a{font-family:var(--text); font-size:1.02rem; text-decoration:none; color:var(--ink); transition:color .3s;}
.foot li a:hover{color:var(--terracotta);}
.foot .news p{font-family:var(--serif); font-style:italic; font-size:1.08rem; color:var(--ink-soft); margin-bottom:0;}
.foot .news .nl-form{justify-content:flex-start; margin-top:14px;}
.foot .news .nl-form input{flex-basis:160px; font-size:.98rem;}
.foot .bottom{max-width:1124px; margin:clamp(50px,6vw,80px) auto 0; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-family:var(--text); font-size:.82rem; color:var(--ink-faint);}
@media (max-width:900px){ .foot .grid{grid-template-columns:1fr 1fr;} .foot .brand, .foot .news{grid-column:1/-1;} }
.to-top{position:fixed; right:24px; bottom:24px; z-index:40; width:46px; height:46px; border-radius:50%; border:1px solid var(--line); background:rgba(248,244,238,.9); color:var(--ink); cursor:pointer; display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity .4s, transform .4s var(--ease);}
.to-top.show{opacity:1; pointer-events:auto;}
.to-top:hover{transform:translateY(-3px);}

/* ---------- reveal ---------- */
.reveal{opacity:0; transform:translateY(26px); transition:opacity 1.1s var(--ease), transform 1.1s var(--ease);}
.reveal.in{opacity:1; transform:none;}
.reveal.d1{transition-delay:.12s;} .reveal.d2{transition-delay:.24s;}
.imgrev{overflow:hidden;}
.imgrev img{transform:scale(1.12); transition:transform 1.8s var(--ease);}
.imgrev.in img{transform:scale(1);}


/* ---------- abstract art heroes (inner pages) ---------- */
.hero.art{height:auto; min-height:100vh; min-height:100svh; flex-direction:column; gap:clamp(18px,3vh,34px); padding:clamp(110px,14vh,150px) var(--pad) clamp(50px,8vh,80px); color:var(--ink); background-color:var(--paper);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .28 0 0 0 0 .2 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}
.hero.art::after{display:none;}
.hero.art.sand{background-color:var(--sand);}
.hero.art.green{background-color:var(--butter-soft);}
.art-wrap{position:relative; width:min(54vh,78vw); aspect-ratio:1; animation:fadeUp 1.6s .1s var(--ease) both;}
.art-wrap svg{width:100%; height:100%; overflow:visible;}
.hero.art .inner{animation:fadeUp 1.6s .45s var(--ease) both;}
.hero.art .title{color:var(--ink);}
.hero.art .meta{color:var(--terracotta);}
.art-wrap .spin{transform-origin:50% 50%; transform-box:view-box; animation:spin 90s linear infinite;}
.art-wrap .spin-r{transform-origin:50% 50%; transform-box:view-box; animation:spin 140s linear infinite reverse;}
.art-wrap .breathe{transform-origin:50% 50%; transform-box:fill-box; animation:breathe 7s ease-in-out infinite;}
@keyframes breathe{0%,100%{transform:scale(1);} 50%{transform:scale(1.035);}}
.art-wrap text{font-family:var(--serif); font-weight:500; font-size:15px; letter-spacing:.3em; text-transform:uppercase; fill:var(--ink);}
.art-wrap text.mono{font-family:var(--text); font-weight:400; font-size:15px; letter-spacing:.08em; text-transform:none; fill:var(--ink-soft); word-spacing:.6em;}
.hdr.dark{color:var(--ink);}

/* ---------- page heading (bookings) ---------- */
.phead{max-width:var(--max); margin:0 auto; padding:clamp(150px,15vw,200px) var(--pad) clamp(46px,6vw,80px);}
.phead h1{font-family:var(--title); font-weight:200; font-size:clamp(3.4rem,8.5vw,7rem); line-height:1; letter-spacing:.01em; margin:22px 0 30px;}
.phead .lede{max-width:46ch;}
.book .form{background:transparent; box-shadow:none; padding:0;}
.book .field input, .book .field select, .book .field textarea{border-bottom-color:var(--ink);}
.book .done{background:transparent; box-shadow:none; padding:0;}

/* ---------- essentials (small framed image) ---------- */
.ess{padding:clamp(150px,16vw,210px) var(--pad) clamp(90px,10vw,140px);}
.ess-grid{max-width:1160px; margin:0 auto; display:grid; grid-template-columns:minmax(0,1.05fr) 1fr; gap:clamp(48px,8vw,120px); align-items:center;}
.ess-img{position:relative; margin:0; justify-self:stretch; width:100%;}
.ess-img .win{overflow:hidden; aspect-ratio:4/5;}
.ess-img .win img{width:100%; height:100%; object-fit:cover;}
.ess .display{font-size:clamp(1.9rem,3.3vw,2.8rem); margin:18px 0 30px;}
@media (max-width:860px){ .ess-grid{grid-template-columns:1fr;} }
.ret-intro.left{text-align:left; margin:0; max-width:560px;}
.ret-intro.left .btns{justify-content:flex-start;}

/* ---------- scroll depth on photos ---------- */
.spread .photo, .note-photo{overflow:hidden;}
img.px{scale:1.12; will-change:translate;}
.hdr:not(.solid):not(.dark){text-shadow:0 1px 12px rgba(0,0,0,.35);} body.no-hero .hdr{text-shadow:none;}
/* landscape photo spread (third testimonial) */
.tspread.wide{grid-template-columns:1.33fr 1fr; width:min(1040px,100%); align-items:stretch;}
.tspread.wide .pg{aspect-ratio:auto; min-height:100%;}
.tspread.wide .photo{aspect-ratio:4/3;}
@media (max-width:760px){ .tspread.wide{grid-template-columns:1fr;} }

.sec.phil-top{padding-top:clamp(130px,13vw,180px);}
.pillars .n{display:none;}


/* =========================================================
   ROOT background palette (backgrounds only — text colours unchanged)
   ochre #CB832E · yellow #FFE787 · sage #9FB867 · olive #64690D
   brown #8D5A21 · tan #B78B5C · sand #E2CA9E · cream #F1E1C0
   ========================================================= */
/* softened to Tuscan-Fitness strength: each palette colour mixed with warm off-white */
:root{ --bg-ochre:#CB832E; --bg-yellow:#FDEDB5; --bg-sage:#DFE3C4; --bg-olive:#64690D; --bg-brown:#8D5A21; --bg-tan:#DFCBB2; --bg-sand:#ECDBBD; --bg-cream:#F4E7CD; }
body, .menu, .strip, .foot, .ess-hero .txt{background-color:var(--bg-cream);}
.hdr.solid, body.no-hero .hdr{background:rgba(244,231,205,.95);}
.lightbox{background:rgba(244,231,205,.97);}
.to-top{background:rgba(244,231,205,.92);}
::selection{background:var(--bg-yellow);}
.hero{background-color:var(--bg-olive);}
.hero.art, .hero.art.sand{background-color:var(--bg-sand);}
.hero.art.green{background-color:var(--bg-sand);}
.hero.art.yellow{background-color:var(--bg-yellow);}
.sec.sand, .site-end, .day{background-color:var(--bg-sand);}
.sec.butter, .sec.sage{background-color:var(--bg-sage);}
.sec.clay{background-color:var(--bg-sand);}
.sec.yellow, .sec.tan{background-color:var(--bg-tan);}
.sec.ochre{background-color:var(--bg-ochre);}
.sec.terra{background-color:var(--bg-brown);}
.day::after{background:linear-gradient(180deg, rgba(244,231,205,.84), rgba(244,231,205,.89) 60%, rgba(244,231,205,.94));}
.note, .note:nth-child(2){background-color:var(--bg-cream);}
.note::before{background:rgba(253,237,181,.95);}
.form, .done{background-color:var(--bg-cream);}
.book .form, .book .done{background:transparent;}
.spread .pg{background:var(--bg-yellow);}
.spread .photo, .gallery figure, .tspread .photo{background-color:var(--bg-sand);}
.tspread:nth-child(1) .pg{background:var(--bg-yellow);}
.tspread:nth-child(2) .pg{background:var(--bg-sand);}
.tspread:nth-child(3) .pg{background:var(--bg-sage);}
.sec.founder{background-color:var(--bg-tan);}
.stop .dot{background:var(--bg-olive);}
.stop.sig .dot{background:var(--bg-ochre); box-shadow:0 0 0 5px rgba(203,131,46,.2);}
.btn.fill{background:var(--bg-brown); border-color:var(--bg-brown);}
.btn:hover, .btn.fill:hover{background:var(--bg-ochre); border-color:var(--bg-ochre);}
.founder-cap{text-align:center; margin:0 auto clamp(44px,6vw,70px); font-family:var(--serif); font-style:italic; font-size:clamp(1.15rem,1.7vw,1.4rem); color:var(--ink);}
.hero.page .title.plain .rt{letter-spacing:0; margin-right:0; font-size:1em; text-transform:none;}
.hero.page .title.plain, .hero.page .title.plain .rt{font-family:var(--text); font-weight:400; letter-spacing:0;}
.trio figcaption{display:none;} .trio figure{cursor:zoom-in;}
@media (max-width:700px){ .lightbox{padding:70px 14px 40px;} .lightbox img{max-height:calc(100vh - 200px);} .lb-prev{left:2px;} .lb-next{right:2px;} .lb-prev, .lb-next{top:auto !important; bottom:22px;} }


/* ---------- bookings: pinterest-style board ---------- */
.bk-board{display:grid; grid-template-columns:1fr 1.05fr; gap:clamp(40px,7vw,110px); max-width:var(--max); margin:0 auto; align-items:start;}
.bk-collage{position:relative; height:clamp(420px,46vw,620px); margin-bottom:clamp(40px,5vw,64px);}
.bk-collage figure{position:absolute; margin:0; overflow:hidden; background:var(--sand); box-shadow:0 30px 60px -38px rgba(46,36,29,.55);}
.bk-collage figure img{width:100%; height:100%; object-fit:cover;}
.bk-collage .c1{left:0; top:0; width:64%; height:78%;}
.bk-collage .c2{right:0; bottom:0; width:48%; height:56%; border:10px solid var(--paper);}
.bk-collage .c3{right:6%; top:4%; width:24%; aspect-ratio:3/4; height:auto; transform:rotate(4deg); border:7px solid var(--paper); border-bottom-width:26px;}
.bk-collage .sun{position:absolute; left:52%; top:66%; width:clamp(54px,6vw,76px); aspect-ratio:1; border-radius:50%; background:var(--terracotta); z-index:2; animation:breathe 7s ease-in-out infinite;}
.bk-collage .tag{position:absolute; left:2%; bottom:2%; font-family:'Homemade Apple','Bradley Hand',cursive; font-size:clamp(.95rem,1.3vw,1.15rem); color:var(--terracotta); transform:rotate(-4deg);}
.bk-info .display{margin:14px 0 4px;}
.bk-info .price{margin-top:18px;}
.bk-card{position:relative; background:#FBF6EC; padding:clamp(30px,4.5vw,60px); border-radius:4px; box-shadow:0 40px 80px -56px rgba(46,36,29,.55);}
.bk-card::before{content:""; position:absolute; inset:12px; border:1px solid rgba(180,85,46,.2); pointer-events:none;}
.bk-card .card-h{font-family:var(--title); font-weight:200; font-size:clamp(1.6rem,2.6vw,2.1rem); margin:0 0 6px;}
.bk-card .card-sub{font-family:var(--serif); font-style:italic; color:var(--ink-soft); margin:0 0 30px;}
.bk-card .form{background:transparent; box-shadow:none; padding:0;}
.bk-card .done{background:transparent; box-shadow:none; padding:0;}
.bk-card .field input, .bk-card .field select, .bk-card .field textarea{border-bottom-color:rgba(46,36,29,.35);}
.bk-steps{display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin:34px 0 0; padding:0; list-style:none; counter-reset:s;}
.bk-steps li{counter-increment:s; background:rgba(251,246,236,.7); padding:18px 14px 16px; text-align:center; border-radius:6px;}
.bk-steps li::before{content:counter(s); display:flex; align-items:center; justify-content:center; width:30px; height:30px; margin:0 auto 10px; border-radius:50%; border:1px solid var(--terracotta); color:var(--terracotta); font-family:var(--serif); font-style:italic; font-size:.95rem;}
.bk-steps h5{margin:0 0 4px; font-family:var(--title); font-weight:300; font-size:.95rem; line-height:1.25;}
.bk-steps p{margin:0; font-family:var(--serif); font-style:italic; font-size:.88rem; line-height:1.35; color:var(--ink-soft);}
@media (max-width:900px){ .bk-board{grid-template-columns:1fr;} .bk-card .form{grid-template-columns:1fr;} }
@media (max-width:560px){ .bk-steps{grid-template-columns:1fr 1fr;} .bk-collage{height:110vw;} }
.bk-photo{margin:0 0 clamp(36px,5vw,56px); overflow:hidden; aspect-ratio:3/4; box-shadow:0 30px 60px -40px rgba(46,36,29,.5);}
.bk-photo img{width:100%; height:100%; object-fit:cover;}
/* bookings: title, price and steps in the delicate text serif */
.bk-info .display, .bk-info .display .rt{font-family:var(--text); font-weight:400; letter-spacing:0; margin-right:0; font-size:clamp(2.2rem,4vw,3.3rem); line-height:1.1;}
.bk-info .display .rt{font-size:1em;}
.bk-info .price{font-family:var(--text); font-weight:400; letter-spacing:0;}
.bk-steps h5{font-family:var(--text); font-weight:400; font-size:1.02rem; letter-spacing:0;}
.bk-card .card-h{font-family:var(--text); font-weight:400;}
/* bookings: photo and form centred side by side, details below */
.bk-board{grid-template-columns:1fr 1fr; max-width:1120px; align-items:center; row-gap:clamp(56px,7vw,96px);}
.bk-left .bk-photo{margin:0; max-width:520px; margin-left:auto;}
.bk-card{max-width:560px; width:100%;}
.bk-info{grid-column:1/-1; text-align:center;}
.bk-info-in{max-width:760px; margin:0 auto;}
.bk-info .bk-steps{max-width:760px; margin-left:auto; margin-right:auto;}
.hdr .reserve .sm{display:none;}
@media (max-width:640px){ .hdr .reserve .lg{display:none;} .hdr .reserve .sm{display:inline;} }
@media (max-width:900px){ .bk-left .bk-photo{margin:0 auto;} .bk-card{margin:0 auto;} }
.bk-board{align-items:stretch;}
.bk-left{display:flex;}
.bk-left .bk-photo{aspect-ratio:auto; width:100%; max-width:none; height:100%; min-height:420px;}
.bk-info{align-self:start;}
body[data-page="bookings"] .phead{text-align:center;}
body[data-page="bookings"] .phead .lede{margin-left:auto; margin-right:auto;}
@media (max-width:900px){ .bk-left .bk-photo{aspect-ratio:3/4; height:auto; min-height:0;} }
.bk-board > *{min-width:0;}
@media (max-width:900px){ .bk-board{grid-template-columns:1fr;} .bk-left .bk-photo{aspect-ratio:3/4; height:auto; min-height:0;} }
/* home hero tagline: thinner, softer look (same font) */
.hero .tag{font-family:var(--text); font-style:italic; font-weight:400; letter-spacing:.035em; color:rgba(255,253,248,.9); text-shadow:0 1px 16px rgba(0,0,0,.25); -webkit-font-smoothing:antialiased;}
/* home hero tagline: Libre Caslon Condensed, lighter feel (the font only has one weight, so it is thinned with size, spacing and a softer shadow) */
.hero:not(.page) .tag{font-family:var(--text); font-style:italic; font-weight:400; font-synthesis:none; font-size:clamp(1.45rem,2.7vw,2.15rem); letter-spacing:.035em; color:rgba(255,253,248,.94); text-shadow:0 0 22px rgba(0,0,0,.22); -webkit-font-smoothing:antialiased;}
.hero:not(.page) .tag{font-family:var(--text); font-style:italic; font-weight:400; font-size:clamp(1.25rem,2.2vw,1.8rem); letter-spacing:.07em; line-height:1.4; color:rgba(255,253,248,.88); text-shadow:0 0 16px rgba(0,0,0,.18); -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;}
.hero:not(.page) .tag{max-width:none; white-space:nowrap;} @media (max-width:640px){ .hero:not(.page) .tag{white-space:normal; max-width:22ch;} }
.hero:not(.page) .tag{font-family:'Cormorant Garamond', Garamond, Georgia, serif; font-style:italic; font-weight:300; font-size:clamp(1.55rem,2.8vw,2.3rem); letter-spacing:.04em; color:#FFFDF8; text-shadow:0 0 18px rgba(0,0,0,.28);}
.menu nav a{font-family:'Cormorant Garamond', Garamond, Georgia, serif; font-weight:300; letter-spacing:.01em; font-size:clamp(2.1rem,4.6vw,3.6rem);}

/* =========================================================
   TYPE SYSTEM (final): Cormorant Garamond for every title & heading,
   Nunito ExtraLight only for the ROOT logo, Libre Caslon Condensed for text.
   ========================================================= */
:root{ --title:'Cormorant Garamond', Garamond, Georgia, serif; }
h1, h2, h3, h4, h5,
.display, .hero.page .title, .hero.page .title.plain, .phead h1, .day h2, .manifesto h3, .pledge h3, .done h3,
.circ h3, .pillars h4, .ess-list h4, .pack h4, .steps h5, .bk-steps h5, .bk-card .card-h, .bk-info .display, .price, .pn span, .statement p, .note h3{
  font-family:var(--title); letter-spacing:.005em; text-transform:none;
}
/* large titles: Light */
.display, .hero.page .title, .hero.page .title.plain, .phead h1, .day h2, .manifesto h3, .pledge h3, .done h3, .bk-info .display, .price, .statement p{font-weight:300; font-style:normal;}
.display{font-size:clamp(2.4rem,4.8vw,3.9rem); line-height:1.08;}
.hero.page .title, .hero.page .title.plain{font-size:clamp(3rem,7.4vw,6rem); line-height:1.02;}
.phead h1{font-size:clamp(3.6rem,9vw,7.4rem);}
.bk-info .display{font-size:clamp(2.4rem,4.4vw,3.6rem);}
.statement p{font-size:clamp(1.6rem,2.8vw,2.3rem); line-height:1.4;}
/* smaller headings: Regular / Medium for legibility */
.circ h3, .bk-card .card-h, .pn span{font-weight:400; font-style:normal;}
.circ h3{font-size:1.55rem;}
.bk-card .card-h{font-size:clamp(1.9rem,2.9vw,2.4rem);}
.pn span{font-size:clamp(1.3rem,1.8vw,1.5rem);}
.pillars h4, .steps h5, .bk-steps h5{font-weight:500; font-style:normal;}
.pillars h4{font-size:1.6rem;}
.bk-steps h5{font-size:1.1rem;}
.ess-list h4, .pack h4{font-weight:500; font-size:.82rem; letter-spacing:.24em; text-transform:uppercase;}
.note h3{font-weight:400; font-style:italic;}
/* no logo inside titles: ROOT is written in the title's own font */
h1 .rt, h2 .rt, h3 .rt, h4 .rt, .display .rt, .title .rt{font-family:inherit; font-weight:inherit; letter-spacing:inherit; margin-right:0; font-size:1em; text-transform:none;}
/* Nunito ExtraLight only on the logo */
.hdr .logo, .foot .brand .logo, .hero .mark{font-family:var(--logo); font-weight:200;}
/* menu links in the same type as EN | DA and CLOSE */
.menu nav a{font-family:var(--text); font-weight:400; font-style:normal; text-transform:uppercase; letter-spacing:.22em; font-size:clamp(1.25rem,2.3vw,1.9rem); line-height:2.3;}
.menu nav a[aria-current="page"]{font-style:normal;}
/* bookings: room prices */
.price .from{display:inline; font-family:var(--serif); font-style:italic; font-size:1.05rem; color:var(--ink-faint); margin:0 10px 0 0; letter-spacing:0;}
.rooms{display:grid; grid-template-columns:1fr 1fr; gap:14px; max-width:620px; margin:22px auto 18px;}
.room{background:rgba(251,246,236,.75); padding:20px 18px 18px; border-radius:6px; text-align:center;}
.room h5{margin:0 0 6px; font-family:var(--title); font-weight:500; font-size:1.2rem;}
.room .rp{margin:0; font-family:var(--title); font-weight:300; font-size:2rem; line-height:1.1; color:var(--ink);}
.room .rd{margin:4px 0 8px; font-family:var(--serif); font-style:italic; color:var(--ink-soft);}
.room .rx{margin:0; font-size:.9rem; color:var(--terracotta);}
@media (max-width:520px){ .rooms{grid-template-columns:1fr;} }
.bk-info .display .rt{font-family:inherit; font-weight:inherit;} .bk-info .price{font-family:var(--title); font-weight:300;}

/* retreat highlights over the full-width terrace photo */
.hl-sec{position:relative; overflow:hidden; padding:clamp(90px,11vw,160px) var(--pad); min-height:100vh; display:flex; align-items:center;}
.hl-sec .hl-bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 55%;}
.hl-sec::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(30,24,18,.10), rgba(30,24,18,.22));}
.hl-sec .notes{position:relative; z-index:1; width:100%; max-width:1000px; gap:clamp(22px,4vw,56px);}
.hl-sec .note{background-color:rgba(251,246,236,.9); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); border-radius:4px; background-image:none; padding:clamp(30px,3.6vw,46px) clamp(26px,3.4vw,42px); box-shadow:0 30px 60px -30px rgba(30,24,18,.55);}
.hl-sec .note:nth-child(1){transform:rotate(-1.5deg);} .hl-sec .note:nth-child(2){transform:rotate(1.2deg) translateY(28px); background-color:rgba(251,246,236,.9);}
.hl-sec .note::before{background:rgba(236,211,190,.95); top:-13px;}
.hl-sec .note h3{font-size:clamp(1.7rem,2.4vw,2.1rem); margin-bottom:14px; padding-bottom:12px; border-bottom:1px solid rgba(180,85,46,.25);}
.hl-sec .note li{line-height:1.5; padding:6px 0 6px 26px; font-size:clamp(1.05rem,1.3vw,1.18rem);}
.hl-sec .note li::before{top:15px;}
@media (max-width:820px){ .hl-sec{min-height:0;} .hl-sec .note:nth-child(n){transform:none;} }
.hl-sec .notes{align-items:start;}

/* retreat highlights as an art poster (same concept as the retreat hero) */
.poster-sec{background:var(--sand); padding:clamp(80px,10vw,140px) var(--pad);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .28 0 0 0 0 .2 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}
.poster{position:relative; max-width:1180px; margin:0 auto; padding:clamp(28px,3.5vw,44px) clamp(24px,4vw,56px) clamp(26px,3vw,38px); border:1px solid rgba(46,36,29,.35); outline:1px solid rgba(46,36,29,.18); outline-offset:-10px;}
.poster-top{display:flex; justify-content:space-between; gap:20px; padding-bottom:clamp(26px,3vw,40px);}
.poster-top .eyebrow{color:var(--ink);}
.poster-grid{display:grid; grid-template-columns:1fr minmax(260px,400px) 1fr; gap:clamp(24px,3.5vw,56px); align-items:center;}
.pcol h3{font-family:var(--title); font-weight:300; font-style:italic; font-size:clamp(1.8rem,2.6vw,2.4rem); color:var(--terracotta); margin:0 0 18px;}
.pcol.left{text-align:right;} .pcol.right{text-align:left;}
.plist{list-style:none; margin:0; padding:0;}
.plist li{font-family:var(--text); font-size:clamp(1rem,1.2vw,1.1rem); line-height:1.45; color:var(--ink); padding:7px 0; border-bottom:1px solid rgba(46,36,29,.12);}
.plist li:last-child{border-bottom:none;}
.psun svg{width:100%; height:auto; display:block; overflow:visible;}
.psun circle{transform-origin:200px 200px;}
.psun text{font-family:var(--text); font-size:13px; letter-spacing:.3em; text-transform:uppercase; fill:var(--ink);}
.poster-foot{margin-top:clamp(28px,3vw,42px); padding-top:18px; border-top:1px solid rgba(46,36,29,.25); text-align:center; font-family:var(--title); font-style:italic; font-weight:300; font-size:clamp(1.25rem,1.8vw,1.6rem); color:var(--terracotta);}
@media (max-width:900px){
  .poster-grid{grid-template-columns:1fr;}
  .psun{order:-1; width:min(300px,80%); margin:0 auto;}
  .pcol.left, .pcol.right{text-align:center;}
  .poster-top{flex-direction:column; align-items:center; gap:6px;}
}
/* retreat hero title: ROOT in the same font as the rest of the title */
.hero.page .title.plain, .hero.page .title.plain .rt{font-family:var(--title); font-weight:300; letter-spacing:.005em;}
.poster-sec{background-color:var(--bg-sand, #ECDBBD);}
.pcol h3{font-style:normal;}
.hero .sub{margin-right:-.38em;} .hero:not(.page) .inner{display:flex; flex-direction:column; align-items:center;}
/* poster: bullets, no rules, upright price line, bigger sun */
.plist li{border-bottom:none; padding:6px 0;}
.plist li::before{content:""; display:inline-block; width:6px; height:6px; border-radius:50%; background:var(--terracotta); vertical-align:middle; margin:0 12px 3px 0;}
.pcol.left .plist li{display:flex; justify-content:flex-end; align-items:baseline; gap:0;}
.pcol.right .plist li{padding-left:18px; text-indent:-18px;}
.pcol.left .plist li::before{order:0; flex:none; transform:translateY(-3px);}
.poster-foot{font-style:normal;}
.poster-grid{grid-template-columns:1fr minmax(280px,460px) 1fr; gap:clamp(20px,3vw,44px);}
.poster{max-width:1260px;}
.poster-grid{grid-template-columns:1fr minmax(260px,390px) 1fr; gap:clamp(20px,3vw,48px);}
.pcol.left .plist li{display:block;}
.pcol.left .plist li::before{transform:none;}
.pcol h3{white-space:nowrap;}
@media (max-width:1100px){ .pcol h3{white-space:normal;} }
@media (max-width:900px){ .pcol.right .plist li{padding-left:0; text-indent:0;} }
@media (max-width:900px){ .poster-grid{grid-template-columns:1fr; gap:36px;} .psun{order:-1; width:min(320px,80%); margin:0 auto;} .pcol.left, .pcol.right{text-align:center;} }
/* poster without price line: balanced frame */
.poster{padding:clamp(30px,3.6vw,46px) clamp(28px,4vw,60px) clamp(46px,5vw,70px);}
.poster-top{padding-bottom:clamp(30px,3.6vw,48px);}
.poster-grid{grid-template-columns:1fr minmax(260px,380px) 1fr; justify-items:center;}
.pcol{width:100%; max-width:330px;}
.pcol.left{justify-self:end;} .pcol.right{justify-self:start;}
@media (max-width:900px){ .pcol, .pcol.left, .pcol.right{justify-self:center; max-width:none;} }
.psun{width:100%;}
@media (max-width:900px){ .poster-grid{grid-template-columns:1fr; gap:36px;} .psun{order:-1; width:min(320px,80%); margin:0 auto;} .pcol.left, .pcol.right{text-align:center;} }
.poster{border:none; outline:none;}

/* =========================================================
   Bookings: step-by-step booking card with room photos
   ========================================================= */
.rb{max-width:980px; margin:0 auto; background:#FBF6EC; padding:clamp(26px,4vw,52px); border-radius:6px; box-shadow:0 40px 80px -56px rgba(46,36,29,.55);}
.rb-head{display:flex; gap:clamp(18px,2.5vw,28px); align-items:center; padding-bottom:clamp(26px,3vw,36px);}
.rb-thumb{margin:0; flex:none; width:clamp(96px,13vw,140px); aspect-ratio:1; overflow:hidden; border-radius:3px;}
.rb-thumb img{width:100%; height:100%; object-fit:cover;}
.rb-title{font-family:var(--title); font-weight:300; font-size:clamp(1.9rem,3.4vw,2.8rem); line-height:1.05; margin:8px 0 6px;}
.rb-title .rt{font-family:inherit; font-weight:inherit; letter-spacing:inherit; margin:0; font-size:1em;}
.rb-sub{margin:0; font-family:var(--serif); font-style:italic; color:var(--ink-soft);}
.rb-step{display:flex; align-items:center; gap:12px; margin:clamp(26px,3vw,38px) 0 18px; padding-bottom:10px; border-bottom:1px solid rgba(46,36,29,.18); font-family:var(--title); font-weight:400; font-size:clamp(1.4rem,2vw,1.7rem); color:var(--terracotta);}
.rb-step span{display:inline-flex; align-items:center; justify-content:center; width:28px; height:28px; border-radius:50%; border:1px solid var(--terracotta); font-family:var(--serif); font-style:italic; font-size:.95rem;}
.rb-step em{font-style:normal;}
.rb-dates{display:flex; flex-wrap:wrap; gap:14px 18px; align-items:center;}
.rb-date{min-width:170px; border:1px solid rgba(46,36,29,.2); border-radius:4px; padding:10px 14px; background:var(--white);}
.rb-date small{display:block; font-family:var(--text); font-size:.7rem; letter-spacing:.22em; text-transform:uppercase; color:var(--ink-faint);}
.rb-date strong{font-family:var(--text); font-weight:400; font-size:1.08rem;}
.rb-nights{margin:0; font-family:var(--serif); font-style:italic; color:var(--ink-soft);}
.rb-note{margin:0 0 14px; font-family:var(--title); font-size:1.2rem;}
.rb-rooms{display:grid; grid-template-columns:1fr 1fr; gap:clamp(14px,2vw,22px);}
.rb-room{position:relative; display:flex; flex-direction:column; background:var(--white); border:1px solid rgba(46,36,29,.18); border-radius:5px; overflow:hidden; cursor:pointer; transition:border-color .3s, box-shadow .3s, transform .4s var(--ease);}
.rb-room:hover{transform:translateY(-3px); box-shadow:0 22px 40px -28px rgba(46,36,29,.5);}
.rb-room input{position:absolute; opacity:0; pointer-events:none;}
.rb-room:has(input:checked){border-color:var(--terracotta); box-shadow:0 0 0 1px var(--terracotta), 0 22px 40px -28px rgba(46,36,29,.5);}
.rb-room:has(input:focus-visible){outline:1px solid var(--terracotta); outline-offset:3px;}
.rb-room::after{content:"✓"; position:absolute; top:12px; right:12px; width:30px; height:30px; border-radius:50%; background:var(--terracotta); color:var(--white); display:flex; align-items:center; justify-content:center; font-size:.9rem; opacity:0; transform:scale(.7); transition:opacity .3s, transform .3s;}
.rb-room:has(input:checked)::after{opacity:1; transform:none;}
.rb-pics{position:relative; display:block; aspect-ratio:4/3; overflow:hidden;}
.rb-pics img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:opacity .8s ease, transform 1.4s var(--ease);}
.rb-pics img + img{opacity:0;}
.rb-room:hover .rb-pics img + img{opacity:1;}
.rb-room:hover .rb-pics img{transform:scale(1.03);}
.rb-body{display:flex; flex-direction:column; gap:6px; padding:16px 18px 16px; flex:1;}
.rb-name{font-family:var(--title); font-weight:400; font-size:1.45rem; line-height:1.15;}
.rb-desc{font-family:var(--text); color:var(--ink-soft); font-size:1rem; line-height:1.45;}
.rb-foot{display:flex; justify-content:space-between; align-items:baseline; margin-top:auto; padding-top:10px;}
.rb-who{font-family:var(--serif); font-style:italic; color:var(--terracotta);}
.rb-price{font-family:var(--title); font-weight:400; font-size:1.35rem;}
.rb-small{margin:10px 0 0; font-family:var(--serif); font-style:italic; font-size:.92rem; color:var(--ink-faint);}
.rb-fields{background:transparent; box-shadow:none; padding:0;}
.rb-sum{display:grid; grid-template-columns:1fr auto; gap:8px 20px; margin:0 0 22px; padding:16px 18px; background:var(--white); border:1px solid rgba(46,36,29,.15); border-radius:4px;}
.rb-sum dt{font-family:var(--text); color:var(--ink-soft);}
.rb-sum dd{margin:0; text-align:right; font-family:var(--title); font-size:1.15rem;}
.rb-sum dd.js-dep{color:var(--terracotta);}
.rb-form .check{margin-bottom:12px;}
.rb-send{margin-top:20px;}
.rb-send .small{font-family:var(--serif); font-style:italic; color:var(--ink-faint);}
.rb-done{background:transparent; box-shadow:none; padding:20px 0 0;}
.rb-how{max-width:980px; margin:clamp(40px,5vw,64px) auto 0;}
.rb-how .bk-steps{margin:0;}
@media (max-width:700px){ .rb-rooms{grid-template-columns:1fr;} .rb-head{flex-direction:column; align-items:flex-start;} .rb-fields{grid-template-columns:1fr;} .rb-date{flex:1 1 140px; min-width:0;} }
.rb-price s{font-size:.8em; color:var(--ink-faint); margin-right:6px; text-decoration-thickness:1px;}
.day-sub{text-align:center; margin:10px 0 0; font-family:var(--text); font-size:.82rem; letter-spacing:.2em; text-transform:uppercase; color:#6E6A60;}
.pcol h3.pnot{margin-top:30px;} .pnot-list li::before{background:transparent; border:1px solid var(--terracotta);}
.rb-policy{margin:0 0 22px; padding:16px 18px; border-left:2px solid var(--terracotta); background:rgba(180,85,46,.05);}
.rb-policy h4{margin:0 0 8px; font-family:var(--title); font-weight:500; font-size:1.15rem; color:var(--terracotta);}
.rb-policy ul{list-style:none; margin:0; padding:0;}
.rb-policy li{font-family:var(--text); font-size:.98rem; line-height:1.5; padding:3px 0; color:var(--ink);}
.rb-policy strong{font-weight:400; color:var(--terracotta);}
.hero .loc{display:block; margin-top:10px; font-family:var(--text); font-size:.82rem; letter-spacing:.24em; text-transform:uppercase; color:var(--ink-soft);}
.spread .pg .wavy{margin-top:auto; margin-bottom:auto; padding:clamp(20px,3vw,36px) 0;}
@media (min-width:801px){ .spread .pg .wavy{font-size:clamp(1.02rem,1.3vw,1.14rem); line-height:1.42;} }
.rb-sun{border-radius:0; overflow:visible; background:none;} .rb-sun svg{width:100%; height:100%; display:block;} .rb-sun circle{transform-origin:50px 50px;}
.ess-soon{margin:6px 0 34px; font-family:'Homemade Apple','Bradley Hand',cursive; font-size:clamp(1.5rem,2.4vw,2rem); line-height:1.6; color:var(--terracotta); transform:rotate(-3deg); transform-origin:left center;}
.phil-values .orbit{width:min(460px,84vw); margin-bottom:clamp(30px,4vw,48px);} .phil-values .orbit .photo{inset:11%;} .phil-values .orbit text{font-size:13px; letter-spacing:.3em;} .phil-values .founder-cap{margin-bottom:0;}
.phil-values .orbit text{font-size:16px; letter-spacing:.32em;}
.phil-values .founder-cap{font-family:var(--title); font-weight:300; font-style:normal; font-size:clamp(1.35rem,2vw,1.65rem); letter-spacing:.01em;}
.art-wrap text.ring{font-family:var(--text); font-weight:400; font-size:16px; letter-spacing:.32em; text-transform:uppercase; fill:var(--ink); word-spacing:0;}
.rb-sun{display:grid; place-items:center;} .rb-sun img{width:92%; height:92%; border-radius:50%; object-fit:cover; translate:none; scale:1;}
.split .txt .ess-soon{margin:-12px 0 20px;}
body[data-page="bookings"] *, body[data-page="bookings"] *::placeholder{font-style:normal !important;}
.pcol h3.pnot:first-child{margin-top:0;}
.hero .scroll{height:46px;}
.menu .mimg img{object-position:35% 50%;}
*, *::before, *::after, *::placeholder{font-style:normal !important;}
@media (max-width:640px){ .hdr .reserve .lg{display:inline;} .hdr .reserve .sm{display:none;} .hdr .reserve{font-size:.6rem; letter-spacing:.14em; white-space:nowrap;} }
@media (max-width:375px){ .hdr .reserve{letter-spacing:.08em;} .hdr .l{gap:12px;} }
/* room photo slider */
.rb-pics img + img{opacity:0;} .rb-room:hover .rb-pics img + img{opacity:0;} .rb-room:hover .rb-pics img{transform:none;}
.rb-pics img.on{opacity:1 !important;} .rb-pics img:not(.on){opacity:0 !important;}
.rb-pics{cursor:pointer; touch-action:pan-y;}
.rb-nav{position:absolute; top:50%; z-index:2; width:34px; height:34px; margin-top:-17px; border-radius:50%; background:rgba(255,253,248,.88); color:var(--ink); display:flex; align-items:center; justify-content:center; font-size:1.1rem; line-height:1; cursor:pointer; box-shadow:0 4px 14px -6px rgba(0,0,0,.35); transition:background .3s, transform .3s;}
.rb-nav:hover{background:var(--white); transform:scale(1.06);}
.rb-nav.prev{left:10px;} .rb-nav.next{right:10px;}
.rb-dots{position:absolute; left:0; right:0; bottom:10px; z-index:2; display:flex; justify-content:center; gap:7px; pointer-events:none;}
.rb-dots i{width:7px; height:7px; border-radius:50%; background:rgba(255,253,248,.55); transition:background .3s;}
.rb-dots i.on{background:var(--white);}
/* bookings: minimal, philosophy-style */
.bk-top .head-block{margin-bottom:clamp(30px,4vw,48px);}
.bk-orbit{width:min(400px,80vw); margin-bottom:clamp(26px,3.5vw,40px);} .bk-orbit .photo{inset:11%;} .bk-orbit text{font-size:16px; letter-spacing:.32em;}
.bk-cap{font-family:var(--title); font-weight:300; font-size:clamp(1.3rem,1.9vw,1.6rem); margin-bottom:0;}
.bk-min{max-width:860px; margin:0 auto;}
.bk-min .rb-fields{margin-top:clamp(36px,5vw,56px);}
.bk-line{margin:clamp(30px,4vw,44px) 0 0; text-align:center; font-family:var(--text); font-size:1.05rem; color:var(--ink);}
.bk-line + .bk-line{margin-top:6px;}
.bk-line strong{font-weight:400; color:var(--terracotta);}
.bk-line.soft{color:var(--ink-soft); font-size:.98rem;}
.bk-check{justify-content:center; margin:26px 0 0;}
.bk-min .rb-send{display:flex; justify-content:center; margin-top:24px;}
.bk-min .form-msg{text-align:center; margin-top:12px;}
.bk-min .rb-done{text-align:center;} .bk-min .rb-done .actions{justify-content:center;}
.bk-min .rb-room{background:var(--white);}
@media (max-width:700px){ .bk-min .rb-fields{grid-template-columns:1fr;} }
.bk-hero{max-width:var(--max); margin:0 auto; display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:clamp(36px,6vw,90px); align-items:center;}
.bk-sun{margin:0; width:min(400px,100%); aspect-ratio:1; justify-self:center; border-radius:50%; overflow:hidden;}
.bk-sun img{width:100%; height:100%; object-fit:cover; display:block;}
.bk-title{margin:0; font-family:var(--title); font-weight:300; font-size:clamp(3rem,7.4vw,6rem); line-height:1.02; letter-spacing:.005em; color:var(--ink);}
.bk-title .rt{font-family:inherit; font-weight:inherit; letter-spacing:inherit; margin:0; font-size:1em; text-transform:none;}
.bk-meta{display:block; margin-top:22px; font-family:var(--serif); font-weight:400; font-size:clamp(1.3rem,2.2vw,1.75rem); color:var(--terracotta);}
.bk-loc{display:block; margin-top:10px; font-family:var(--text); font-size:.82rem; letter-spacing:.24em; text-transform:uppercase; color:var(--ink-soft);}
.bk-hero .bk-cap{margin:clamp(24px,3vw,34px) 0 0; text-align:left; font-family:var(--title); font-weight:300; font-size:clamp(1.2rem,1.7vw,1.45rem); line-height:1.5; color:var(--ink);}
@media (max-width:800px){ .bk-hero{grid-template-columns:1fr; text-align:center;} .bk-sun{width:min(300px,72vw);} .bk-hero .bk-cap{text-align:center;} }
.bk-top{padding-top:clamp(140px,14vw,190px);}
/* bookings hero: settles smaller after 2s so the rooms rise */
.bk-top{transition:padding 1.4s var(--ease);}
.bk-sun{transition:width 1.4s var(--ease);}
.bk-title{transition:font-size 1.4s var(--ease);}
.bk-meta, .bk-loc, .bk-hero .bk-cap{transition:margin 1.4s var(--ease), font-size 1.4s var(--ease);}
.bk-hero{transition:gap 1.4s var(--ease);}
.bk-top + .sec{transition:padding 1.4s var(--ease);}
.bk-settled .bk-top{padding-top:clamp(120px,11vw,150px); padding-bottom:clamp(40px,5vw,64px);}
.bk-settled .bk-sun{width:min(280px,100%);}
.bk-settled .bk-title{font-size:clamp(2.4rem,4.8vw,4rem);}
.bk-settled .bk-meta{margin-top:14px;}
.bk-settled .bk-hero .bk-cap{margin-top:18px;}
.bk-settled .bk-top + .sec{padding-top:clamp(40px,5vw,64px);}
@media (max-width:800px){ .bk-settled .bk-sun{width:min(200px,52vw);} .bk-settled .bk-title{font-size:clamp(2.2rem,9vw,3rem);} }
@media (prefers-reduced-motion:reduce){ .bk-top, .bk-sun, .bk-title, .bk-hero, .bk-top + .sec{transition:none;} }
/* retreats + community heroes: settle smaller after 2s (same as bookings) */
.hero.art{transition:min-height 1.4s var(--ease), padding 1.4s var(--ease), gap 1.4s var(--ease);}
.hero.art .art-wrap{transition:width 1.4s var(--ease);}
.hero.art .title{transition:font-size 1.4s var(--ease);}
.hero.art .meta{transition:margin 1.4s var(--ease);}
.hero-settled .hero.art{min-height:0; padding-top:clamp(100px,11vw,130px); padding-bottom:clamp(40px,5vw,64px); gap:clamp(14px,2vh,24px);}
.hero-settled .hero.art .art-wrap{width:min(36vh,56vw);}
.hero-settled .hero.art .title{font-size:clamp(2.4rem,4.8vw,4rem);}
.hero-settled .hero.art .meta{margin-top:14px;}
@media (prefers-reduced-motion:reduce){ .hero.art, .hero.art .art-wrap, .hero.art .title{transition:none;} }
.phil-values .founder-cap{text-align:center; line-height:1.45;}
.bk-hero .bk-cap{font-family:var(--text); font-weight:400; font-size:.82rem; letter-spacing:.24em; text-transform:uppercase; line-height:1.9; color:var(--ink-soft); margin-top:10px;} .bk-settled .bk-hero .bk-cap{margin-top:10px; font-size:.82rem;}
/* retreat highlights: integrated layout (sun + one text block) */
.poster-int{display:grid; grid-template-columns:minmax(220px,340px) minmax(0,1fr); gap:clamp(36px,5vw,72px); align-items:center; max-width:1080px; margin:0 auto;}
.poster-int .psun{width:100%; order:0; margin:0;}
.pint-txt h3{font-family:var(--title); font-weight:300; font-size:clamp(1.8rem,2.6vw,2.4rem); color:var(--terracotta); margin:0 0 14px; white-space:normal;}
.pint-txt .plist{columns:2; column-gap:clamp(24px,3vw,44px);}
.pint-txt .plist li{break-inside:avoid; padding:5px 0 5px 18px; text-indent:-18px; text-align:left;}
.pint-not{margin-top:clamp(22px,2.6vw,32px); padding-top:clamp(16px,2vw,22px); border-top:1px solid rgba(46,36,29,.18); display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 18px;}
.pint-not h3.pnot{margin:0; font-size:clamp(1.25rem,1.7vw,1.5rem);}
.pint-not .plist{columns:1;}
.poster-top{max-width:1080px; margin:0 auto;}
@media (max-width:900px){ .poster-int{grid-template-columns:1fr; text-align:left;} .poster-int .psun{width:min(260px,70%); margin:0 auto;} .pint-txt .plist{columns:1;} .pint-txt h3{text-align:center;} .pint-not{justify-content:center;} }
.bk-note{margin:14px 0 0; text-align:center; font-family:var(--text); font-size:.9rem; color:var(--ink-faint);}
.note-hand{left:38.3%; top:11.9%; font-size:4.43cqw;}
/* philosophy title: opens large, settles after 2s like the other pages */
.sec.phil-top{transition:padding 1.4s var(--ease);}
.phil-top .head-block .display{font-size:clamp(3rem,7.4vw,6rem); line-height:1.02; transition:font-size 1.4s var(--ease), margin 1.4s var(--ease);}
.phil-top .head-block{transition:margin 1.4s var(--ease);}
body:not(.hero-settled) .sec.phil-top{padding-top:clamp(170px,18vw,240px);}
body:not(.hero-settled) .phil-top .head-block{margin-bottom:clamp(90px,10vw,140px);}
.hero-settled .phil-top .head-block .display{font-size:clamp(2.4rem,4.8vw,3.9rem); line-height:1.08;}
@media (prefers-reduced-motion:reduce){ .sec.phil-top, .phil-top .head-block, .phil-top .head-block .display{transition:none;} }
.hdr, .hdr.solid, body.no-hero .hdr{padding-left:max(var(--pad), calc((100% - 1300px)/2)); padding-right:max(var(--pad), calc((100% - 1300px)/2));}

/* =========================================================
   TYPE SYSTEM = SONBLANC STRUCTURE, IN LIBRE CASLON CONDENSED
   One font, one weight (400), never italic, one text colour.
   Sizes, line heights and letter spacing follow sonblancmenorca.com:
   40/50 · 33/41 · 18/32 · 17 · 16 (0.7px) · 15/32 · 14 (0.7px)
   ROOT logo: Nunito ExtraLight 200, letter spacing 0.55em everywhere.
   ========================================================= */
:root{ --title:'Libre Caslon Condensed', Georgia, serif; --text:'Libre Caslon Condensed', Georgia, serif; --serif:'Libre Caslon Condensed', Georgia, serif; --hand:'Libre Caslon Condensed', Georgia, serif; --mono:'Libre Caslon Condensed', Georgia, serif; --sb-ls:.7px; }
body, body *{font-family:'Libre Caslon Condensed', Georgia, serif !important; font-weight:400 !important; font-style:normal !important; font-synthesis:none;}
body{font-size:15px; line-height:32px; letter-spacing:normal; color:var(--ink);}

/* ROOT logo: identical proportions everywhere */
.rt, .hdr .logo, .foot .brand .logo, .hero .mark, h1 .rt, h2 .rt, h3 .rt, .display .rt, .title .rt, .bk-title .rt, .statement .rt{font-family:'Nunito', ui-sans-serif, Arial, sans-serif !important; font-weight:200 !important; letter-spacing:.55em !important; margin-right:-.55em !important; text-transform:uppercase !important; line-height:1;}
.rt{font-size:.9em !important;}
.hero .mark{font-size:clamp(3.4rem,11vw,8.4rem) !important;}

/* 40/50: page & section titles (Sonblanc "Discover") */
h1, h2, .display, .hero.page .title, .hero.page .title.plain, .bk-title, .phead h1, .day h2, .manifesto h3,
.phil-top .head-block .display, .hero-settled .phil-top .head-block .display, .hero-settled .hero.art .title, .bk-settled .bk-title{font-size:40px !important; line-height:50px !important; letter-spacing:normal !important; text-transform:none !important;}
/* 33/41: smaller headings (Sonblanc "Regenerative farming") */
h3, .pledge h3, .done h3, .pcol h3, .pint-txt h3, .circ h3, .note h3, .rb-title, .menu nav a{font-size:33px !important; line-height:41px !important; letter-spacing:normal !important; text-transform:none !important;}
.menu nav a{line-height:1.5 !important;}
/* 18/32: names, prices, statements, quotes, founder caption */
h4, h5, .rb-name, .rb-price, .statement p, .ital, .founder-quote .ital, .founder-cap, .bk-cap.founder-cap{font-size:18px !important; line-height:32px !important; letter-spacing:normal !important; text-transform:none !important;}
/* 15/32: all body text */
p, li, dd, dt, .lede, .desc p, .tspread p, .spread p, .wavy p, .manifesto p, .pledge p, .rb-desc, .bk-line, .check, .field input, .field textarea, .nl-form input, input, textarea, figcaption, .cap, .ev, .day-theme{font-size:15px !important; line-height:32px !important; letter-spacing:normal !important; text-transform:none !important;}
.wavy p{line-height:28px !important;}
/* 16 + 0.7px: numbers, dates (Sonblanc "01/") */
.tspread .pg .num, .hero.page .meta, .hero.art .meta, .bk-meta, .split .txt .meta, .meta, time, .rb-sum dd{font-size:16px !important; line-height:32px !important; letter-spacing:var(--sb-ls) !important; text-transform:none !important;}
/* 17 uppercase + 0.7px: footer & menu headings (Sonblanc "STAY WITH US") */
.foot h6, .poster-top .eyebrow{font-size:17px !important; letter-spacing:var(--sb-ls) !important; text-transform:uppercase !important;}
.foot li a, .foot .news p{font-size:17px !important; letter-spacing:normal !important;}
/* 14 uppercase + 0.7px: labels, buttons, links, languages, small nav */
.eyebrow, .btn, .link, .hdr .reserve, .hdr .reserve *, .langs, .langs *, .lang-btn, .menu .mclose, .nl-form button, .day-tab, .hero .sub, .hero .loc, .bk-loc, .bk-hero .bk-cap, .ret-intro .facts, .day-sub, .field label, .pn small, .pn span, .lightbox button, .rb-who, .tspread header span, .spread header span, .rb-send .small, .actions .small, .orbit text, .psun text{font-size:14px !important; letter-spacing:var(--sb-ls) !important; text-transform:uppercase !important;}
.field label{text-transform:none !important; font-size:15px !important; letter-spacing:normal !important;}
.tspread header span, .spread header span{text-transform:none !important; font-size:15px !important; letter-spacing:normal !important;}
/* 14 normal: small print */
.foot .bottom, .foot .bottom *, .bk-note, .rb-small, .menu .mfoot, .menu .mfoot *, .lightbox figcaption{font-size:14px !important; letter-spacing:normal !important; text-transform:none !important;}
.menu .mfoot a{font-size:16px !important; text-transform:lowercase !important;}

/* buttons: Sonblanc style, underlined text, one colour */
.btn, .btn.fill, .btn.ghost, a.btn, button.btn, .nl-form button{background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat !important; border:none !important; border-radius:0 !important; box-shadow:none !important; padding:0 0 6px !important; color:inherit !important; cursor:pointer;}
.btn:hover, .link:hover, .nl-form button:hover{background-size:40% 1px !important; color:inherit !important;}

/* handwriting now in the same font, upright */
.ess-soon, .note-hand, .note-hand *{transform:none;}
.ess-soon{font-size:18px !important; line-height:32px !important; letter-spacing:var(--sb-ls) !important; text-transform:uppercase !important;}

/* one text colour (light text on photos stays light) */
.actions .small,
.bk-card .card-sub,
.bk-collage .tag,
.bk-hero .bk-cap,
.bk-line strong,
.bk-line.soft,
.bk-loc,
.bk-meta,
.bk-note,
.bk-steps li::before,
.bk-steps p,
.cap,
.check,
.checklist input:checked + span,
.circ .when,
.circ p,
.deposit,
.email,
.ess-list .soon,
.ess-list h4,
.ess-soon,
.eyebrow,
.field label,
.foot .bottom,
.foot .brand p,
.foot .news p,
.foot h6,
.foot li a:hover,
.form-msg.err,
.form-msg.ok,
.founder-quote .sig,
.hero .loc,
.hero.art .meta,
.lede,
.lightbox figcaption,
.link:hover,
.manifesto h3,
.menu .mfoot,
.menu nav a:hover,
.menu nav a[aria-current="page"],
.nl-form button:hover,
.note h3,
.pack dt,
.pack h4,
.pcol h3,
.ph figcaption,
.pillars .n,
.pillars p,
.pint-txt h3,
.pledge p,
.pn a:hover span,
.pn small,
.poster-foot,
.price .from,
.price small,
.rb-date small,
.rb-desc,
.rb-nights,
.rb-policy h4,
.rb-policy strong,
.rb-price s,
.rb-send .small,
.rb-small,
.rb-step,
.rb-sub,
.rb-sum dd.js-dep,
.rb-sum dt,
.rb-who,
.ret-intro .desc p,
.ret-intro .facts,
.ret-intro .facts i,
.room .rd,
.room .rx,
.split .txt .meta,
.steps li::before,
.steps p,
.stop .tag,
.tags span,
.trio figcaption,
.tspread .pg .num{color:var(--ink) !important;}
.plist li::before, .bk-steps li::before, .steps li::before{background:var(--ink) !important; border-color:var(--ink) !important; color:var(--ink) !important;}
.pnot-list li::before{background:transparent !important;}
.gallery figcaption, .spread .photo figcaption{color:var(--white) !important;}
.hero .sub{margin-right:0 !important;}
.rt, h1 .rt, h2 .rt, h3 .rt, .display .rt, .title .rt, .bk-title .rt, .statement .rt{margin-right:0 !important;}
/* home hero: words back to their earlier proportions */
.hero .mark{letter-spacing:.42em !important; margin-right:-.42em !important; font-size:clamp(3.4rem,11vw,8.4rem) !important;}
.hero .sub{display:block; margin-top:18px; font-size:clamp(.92rem,1.2vw,1.08rem) !important; letter-spacing:.38em !important; margin-right:-.38em !important; text-transform:uppercase !important; line-height:1.4 !important;}
.hero h1.mark{line-height:1 !important; margin:0 !important; margin-right:-.42em !important;} .hero .sub{line-height:1.7 !important; margin-top:18px !important;}
.split .txt .ess-soon{margin:22px 0 0 !important; transform:none;} .split .txt .ess-soon + p{margin-top:19px !important; margin-bottom:0;}
.ess .ess-desc{margin:0 0 26px; max-width:42ch;}
/* scroll cue: three small circles (small, bigger, small) that light up one after another, downwards */
.hero .scroll circle{opacity:.35; animation:dotDown 2.4s ease-in-out infinite;}
.hero .scroll .d2{animation-delay:.3s;} .hero .scroll .d3{animation-delay:.6s;}
@keyframes dotDown{0%,100%{opacity:.35;} 30%{opacity:1;}}
@media (prefers-reduced-motion:reduce){ .hero .scroll circle{animation:none; opacity:1;} }
.hero .scroll circle{animation:none !important; opacity:1 !important;}
.foot .grid{grid-template-columns:1.3fr 1fr auto !important; justify-content:center;}
.foot .grid{grid-template-columns:auto auto !important; justify-content:space-between !important; max-width:900px !important;}
.foot .grid{max-width:1124px !important;}
/* selected room: site beige instead of terracotta */
.rb-room:has(input:checked){border-color:var(--bg-tan) !important; box-shadow:0 0 0 2px var(--bg-tan), 0 22px 40px -28px rgba(46,36,29,.5) !important;}
.rb-room:has(input:focus-visible){outline-color:var(--bg-tan) !important;}
.rb-room::after{background:var(--bg-tan) !important; color:var(--ink) !important;}
.rb-room:has(input:checked){border-color:var(--white) !important; box-shadow:0 0 0 2px var(--white), 0 22px 40px -28px rgba(46,36,29,.5) !important;} .rb-room:has(input:focus-visible){outline-color:var(--white) !important;} .rb-room::after{background:var(--white) !important; color:var(--ink) !important;}
.tspread:nth-child(1) .pg{background:var(--bg-sage);}
.day{background:var(--bg-cream, #F4E7CD) !important;} .day::after{display:none !important;} .day h2{margin-bottom:0;} .day-sub{margin-bottom:clamp(40px,5vw,60px) !important;}
/* day timeline: compact, evenly stacked text under each dot */
.stop .ev{font-size:15px !important; line-height:1.45 !important; max-width:18ch;}
.stop .ev small{display:block; margin-top:6px; font-size:14px !important; line-height:1.35 !important; letter-spacing:normal !important; color:var(--ink) !important;}
.stop .tag{display:block; margin-top:6px; font-size:12px !important; line-height:1.3 !important; letter-spacing:var(--sb-ls,.7px) !important; text-transform:uppercase !important; color:var(--ink) !important;}
.srow .turn{width:clamp(70px,17%,150px) !important;} .stop .ev{max-width:15ch !important;} @media (max-width:640px){ .srow .turn{width:clamp(40px,12%,70px) !important;} }
@media (max-width:640px){ .srow .turn{width:74px !important;} .stop .ev{max-width:12ch !important; font-size:14px !important;} }
/* private events: plain tags, email in body text */
#private .tags span{border-color:transparent !important;}
#private .pe-email{margin-top:22px;}
#private .email{font-size:15px !important; line-height:32px !important; letter-spacing:normal !important; color:var(--ink) !important; font-weight:400 !important; text-decoration:none; border-bottom:1px solid currentColor; padding-bottom:2px;}
#private .split{align-items:center;}
#private .email{border-bottom:none !important; text-decoration:none !important; padding-bottom:0 !important;}
.hdr, .hdr.solid, body.no-hero .hdr{padding-left:var(--pad) !important; padding-right:var(--pad) !important;}
.hdr .reserve, .hdr .reserve *{font-size:.78rem !important; letter-spacing:.26em !important; text-transform:uppercase !important;} .hdr .langs, .hdr .langs *, .hdr .lang-btn{font-size:.78rem !important; letter-spacing:.2em !important; text-transform:none !important;}
.hdr{font-size:17px !important; line-height:1.7 !important;} .hdr .reserve, .hdr .reserve *, .hdr .langs, .hdr .langs *, .hdr .lang-btn{line-height:1.7 !important;}
.hdr .logo{line-height:1.7 !important;}
/* header aligned with the content frame (photos and text columns) */
.hdr, .hdr.solid, body.no-hero .hdr{padding-left:max(var(--pad), calc((100% - var(--max))/2 + var(--pad))) !important; padding-right:max(var(--pad), calc((100% - var(--max))/2 + var(--pad))) !important;}
/* scroll cue: a small "O" from the ROOT logo, floating up and down */
.hero .scroll-o{width:auto; height:auto; bottom:34px; text-decoration:none; color:var(--white); display:block;}
.hero .scroll-o span{display:block; font-family:'Nunito', ui-sans-serif, Arial, sans-serif !important; font-weight:200 !important; font-size:30px; line-height:1; letter-spacing:0; animation:oFloat 2.6s ease-in-out infinite;}
@keyframes oFloat{0%,100%{transform:translateY(0);} 50%{transform:translateY(12px);}}
@media (prefers-reduced-motion:reduce){ .hero .scroll-o span{animation:none;} }
.hdr, .hdr.solid, body.no-hero .hdr{padding-left:max(var(--pad), calc((100% - var(--max))/2 + 40px)) !important; padding-right:max(var(--pad), calc((100% - var(--max))/2 + 40px)) !important;}
.hero .scroll-o span{font-size:18px !important;}
/* scroll cue: a small thin circle */
.hero .scroll-o span{width:12px; height:12px; border:1px solid currentColor; border-radius:50%; font-size:0 !important;}
/* header: a little wider than the content frame */
.hdr, .hdr.solid, body.no-hero .hdr{padding-left:max(var(--pad), calc((100% - var(--max))/2 - 60px)) !important; padding-right:max(var(--pad), calc((100% - var(--max))/2 - 60px)) !important;}
/* hero exactly as the live site: header at the edges, circle-and-line arrow */
.hdr, .hdr.solid, body.no-hero .hdr{padding-left:var(--pad) !important; padding-right:var(--pad) !important;}
.hero .scroll{width:20px !important; height:46px !important; bottom:30px !important;}
.hero .scroll circle{animation:none !important; opacity:1 !important;}
.hero .scroll{height:34px !important;}
/* philosophy values: words instead of the sun ring */
.phil-words{max-width:760px; margin:0 auto; text-align:center;}
.phil-words .pw-values{font-size:18px !important; line-height:32px !important; margin:0;}
.phil-words .pw-quote{font-size:18px !important; line-height:32px !important; margin:28px 0 0;}
.phil-words .pw-sign{font-size:14px !important; letter-spacing:var(--sb-ls,.7px) !important; text-transform:uppercase !important; margin:22px 0 0;}
.founder-quote{text-align:center;} .founder-quote .pw-quote{font-size:18px !important; line-height:32px !important; margin:0;} .founder-quote .pw-sign{font-size:14px !important; letter-spacing:var(--sb-ls,.7px) !important; text-transform:uppercase !important; margin:18px 0 0;}
#private .txt p{max-width:550px;} #private .tags{justify-content:center; max-width:550px;}
.pint-not{display:block !important;} .pint-not h3.pnot{margin:0 0 10px !important;} .pint-not .plist li{padding-left:18px; text-indent:-18px;}

/* anchored sections (#reserve, #gallery, ...) land just below the fixed header */
section[id]{scroll-margin-top:70px;}
@media (max-width:640px){ section[id]{scroll-margin-top:65px;} }


/* =========================================================
   Backgrounds: warm cream #F4E7CD everywhere, headers #EADBBD,
   Isabella's story pale yellow #FDEDB5, the three letters sage #DFE3C4.
   Accents: sea teal timeline line, soft olive dots, tulip orange buttons
   ========================================================= */
:root{ --p-straw:#F4E7CD; --p-head:#EADBBD; --p-paleyellow:#FDEDB5; --p-marigold:#E3BC39; --p-teal:#5F8A9D; --p-olive:#ADA064; --p-tulip:#D37C4A; --p-sage:#DFE3C4; }
html, body, .menu, .sec, .sec.sand, .sec.butter, .sec.sage, .sec.tan, .sec.yellow, .sec.clay, .sec.ochre, .sec.terra, .sec.founder,
.poster-sec, .day, .site-end, .strip, .foot, .ess, .ess-hero .txt, .form, .done{background-color:var(--p-straw) !important;}
.hdr.solid, body.no-hero .hdr{background:rgba(244,231,205,.96) !important;}
.lightbox{background:rgba(244,231,205,.97) !important;}
.to-top{background:rgba(244,231,205,.94) !important;}
::selection{background:var(--p-marigold);}
/* page headers */
.hero{background-color:var(--p-head) !important;}
.hero.page.art.green{background-color:var(--p-head) !important;}
.sec.phil-top.phil-head{background-color:var(--p-head) !important;}
.hero.page.art.yellow{background-color:var(--p-head) !important;}
.sec.phil-top.bk-top{background-color:var(--p-head) !important;}
.sec.welcome-top{background-color:var(--p-head) !important;}
/* cards and pages */
.spread .pg{background:var(--p-paleyellow) !important;}
.tspread:nth-child(1) .pg{background:var(--p-sage) !important;}
.tspread:nth-child(2) .pg{background:var(--p-sage) !important;}
.tspread:nth-child(3) .pg{background:var(--p-sage) !important;}
.spread .photo, .gallery figure, .tspread .photo, .ph, .trio figure, .bk-collage figure{background-color:var(--p-straw) !important;}
.note, .note:nth-child(2), .bk-card, .bk-steps li{background-color:var(--p-straw) !important;}
.note::before{background:var(--p-marigold) !important;}
.rb-room, .room{background:var(--p-straw) !important; box-shadow:0 0 0 1px rgba(46,36,29,.18), 0 22px 40px -30px rgba(46,36,29,.45) !important;}
.rb-room:has(input:checked){border-color:#FFFFFF !important; box-shadow:0 0 0 3px #FFFFFF, 0 22px 40px -28px rgba(46,36,29,.5) !important;}
.rb-room:has(input:focus-visible){outline-color:#FFFFFF !important;}
.rb-room::after{background:#FFFFFF !important; color:var(--ink) !important;}
/* day timeline */
.srow .line{background:var(--p-teal) !important;}
.srow .turn{border-color:var(--p-teal) !important;}
.stop .dot{background:var(--p-olive) !important; box-shadow:none !important;}
.stop.sig .dot{background:var(--p-tulip) !important; box-shadow:0 0 0 5px rgba(211,124,74,.25) !important;}
/* accents */
.btn.fill{background:var(--p-tulip); border-color:var(--p-tulip);}
/* buttons: same underline animation as links on hover, focus and click; no colour fill */
.btn, .btn.fill, .btn.ghost, a.btn, button.btn, .nl-form button{background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat !important; border:none !important; color:inherit !important; transition:background-size .5s var(--ease) !important; -webkit-tap-highlight-color:transparent;}
.link{-webkit-tap-highlight-color:transparent;}
.btn:hover, .btn:active, .btn:focus-visible, .btn.fill:hover, .btn.fill:active, .btn.fill:focus-visible,
.link:hover, .link:active, .link:focus-visible, .nl-form button:hover, .nl-form button:active{background-size:40% 1px !important; color:inherit !important; border-color:transparent !important;}
.link:hover, .menu nav a:hover, .menu nav a[aria-current="page"]{color:#2E241D !important;}
.rb-nav{background:rgba(244,231,205,.92) !important;}
.rb-room i, .rb-pics i{background:rgba(244,231,205,.6) !important;}
.rb-room i.on, .rb-pics i.on{background:var(--p-straw) !important;}
/* darker text on the sea-teal header so small text passes contrast */
.hero.page.art.green .inner, .hero.page.art.green .inner *{color:#17120E !important;}
body[data-page="retreats"] .hdr:not(.solid){color:#17120E !important;}

/* smaller page headers */
.hero.page.art{min-height:0 !important; height:auto !important; gap:18px !important; padding:calc(70px + clamp(32px,3.6vw,52px)) var(--pad) clamp(40px,4.4vw,60px) !important;}
.hero.page.art .art-wrap, .hero.page.art .art-wrap svg{width:clamp(140px,12vw,210px) !important; height:auto !important;}
.sec.phil-top.bk-top{padding-top:calc(70px + clamp(32px,3.6vw,52px)) !important; padding-bottom:clamp(40px,4.4vw,60px) !important;}
.bk-top .bk-sun{width:clamp(130px,11vw,190px) !important; height:auto !important; aspect-ratio:1;}
.bk-top .bk-hero{gap:clamp(24px,4vw,56px) !important;}
.sec.phil-top.phil-head, body:not(.hero-settled) .sec.phil-top.phil-head{padding-top:calc(70px + clamp(40px,4.4vw,64px)) !important; padding-bottom:clamp(40px,4.4vw,64px) !important;}
.sec.phil-top.phil-head .head-block, body:not(.hero-settled) .phil-top.phil-head .head-block{margin-bottom:0 !important;}
.sec.welcome-top{padding-top:calc(70px + clamp(40px,4.4vw,64px)) !important; padding-bottom:clamp(40px,4.4vw,64px) !important;}
@media (max-width:640px){ .hero.page.art, .sec.phil-top.bk-top, .sec.phil-top.phil-head, .sec.welcome-top{padding-top:calc(65px + 28px) !important;} }
.sec.welcome-top .head-block{margin-bottom:0 !important;}
.hero.page.art .art-wrap, .hero.page.art .art-wrap svg{width:clamp(120px,9.5vw,170px) !important;}
.bk-top .bk-sun{width:clamp(120px,9.5vw,170px) !important;}

/* menu: warm off-white panel instead of the photo */
.menu .mimg{background:var(--p-straw) !important;}

/* all titles in capitals, like the section labels */
h1, h2, .display, .hero.page .title, .hero.page .title.plain, .bk-title, .phead h1, .day h2, .manifesto h3,
.phil-top .head-block .display, .hero-settled .phil-top .head-block .display, .hero-settled .hero.art .title, .bk-settled .bk-title,
h3, .pledge h3, .done h3, .pcol h3, .pint-txt h3, .circ h3, .note h3, .hl-sec .note h3, .rb-title{text-transform:uppercase !important;}

/* bookings: retreat info under the page header */
.bk-intro{text-align:center; max-width:640px; margin:0 auto clamp(40px,5vw,64px);}
.bk-intro p{margin:0 !important;}
body[data-page="bookings"] #reserve{padding-top:calc(70px + clamp(40px,4.4vw,64px)) !important;}
.bk-intro h1{margin:0 0 20px !important;}
.menu .mclose, .lang-btn, .btn, .burger{-webkit-user-select:none; user-select:none;}
body[data-page="community"] .phil-head + .sec{padding-top:clamp(48px,5vw,72px) !important;}
/* early bird label over room prices */
.rb-foot{align-items:flex-end !important;}
.rb-pricebox{display:flex; flex-direction:column; align-items:flex-end; line-height:1;}
.rb-eb{font-size:12px !important; letter-spacing:var(--sb-ls) !important; text-transform:uppercase !important; line-height:18px !important; color:var(--ink);}
.bk-intro .bk-eb{margin-top:10px !important; font-size:14px !important; letter-spacing:var(--sb-ls) !important; text-transform:uppercase !important;}

/* ===== Spacing system (8 Nov): one rhythm for every page =====
   --sp  : space above and below each section (gap between two sections = 2 x --sp)
   --sp-h: space between a section label/title block and its content */
:root{ --sp:clamp(36px,4.4vw,64px); --sp-h:clamp(26px,2.8vw,40px); }
main > .sec, main > section.sec, .poster-sec, .day, .ess{padding-top:var(--sp) !important; padding-bottom:var(--sp) !important;}
/* page header bands keep the header offset, with the same inner rhythm */
.sec.phil-top.phil-head, body:not(.hero-settled) .sec.phil-top.phil-head, .sec.welcome-top{padding-top:calc(70px + var(--sp)) !important; padding-bottom:var(--sp) !important;}
@media (max-width:640px){ .sec.phil-top.phil-head, body:not(.hero-settled) .sec.phil-top.phil-head, .sec.welcome-top{padding-top:calc(65px + var(--sp)) !important;} }
/* first section on pages without a header band */
body[data-page="bookings"] #reserve, .ess{padding-top:calc(70px + var(--sp)) !important;}
body[data-page="community"] .phil-head + .sec{padding-top:var(--sp) !important;}
/* label + title blocks */
.head-block, .phil-top .head-block, body:not(.hero-settled) .phil-top .head-block{margin-bottom:var(--sp-h) !important;}
.sec.phil-top.phil-head .head-block, body:not(.hero-settled) .phil-top.phil-head .head-block, .sec.welcome-top .head-block{margin-bottom:0 !important;}
.bk-intro{margin-bottom:var(--sp-h) !important;}
/* founder: caption first, then the quote */
.founder-quote{margin-top:var(--sp-h) !important;}
.founder-quote .pw-sign{margin:0 !important;}
.founder-quote .pw-quote{margin:10px 0 0 !important;}
.day .snake .srow:last-child{height:auto !important;}
.poster-sec .poster{padding-top:0 !important; padding-bottom:0 !important;}
/* philosophy: founder caption + quote centred, equal space above (card) and below (flower strip) */
.sec.founder .founder-quote{margin-top:calc(var(--sp) * 2) !important; margin-left:auto !important; margin-right:auto !important; text-align:center !important;}
.sec.founder{padding-bottom:calc(var(--sp) * 2) !important;}
/* "What we believe": same label-to-text spacing as the founder caption and quote */
.statement .eyebrow{display:block !important; margin:0 !important; line-height:32px !important;}
.statement p{margin:10px 0 0 !important;}
.founder-quote .pw-sign{line-height:32px !important;}
/* retreats: more air between Retreat Highlights band and "A day at the retreat" */
.poster-sec + .day{padding-top:calc(var(--sp) * 2) !important;}
/* mobile header: menu left, ROOT centred, RESERVE YOUR SPOT right, nothing overlapping
   (EN | DA stays available inside the menu) */
@media (max-width:640px){
  .hdr .langs{display:none !important;}
  .hdr .logo{font-size:16px !important; letter-spacing:.42em !important; margin-right:-.42em !important;}
  .hdr .reserve, .hdr .reserve *{font-size:10px !important; letter-spacing:.07em !important; white-space:nowrap !important;}
  .hdr .reserve .lg{display:inline !important;} .hdr .reserve .sm{display:none !important;}
}
@media (max-width:374px){
  .hdr .logo{font-size:15px !important; letter-spacing:.36em !important; margin-right:-.36em !important;}
  .hdr .reserve, .hdr .reserve *{font-size:9px !important; letter-spacing:.03em !important;}
}
/* mobile: "What is not included?" centred, its item centred below with no bullet */
@media (max-width:900px){
  .pint-not, .pint-not h3.pnot{text-align:center !important;}
  .pint-not .pnot-list li{list-style:none !important; padding-left:0 !important; text-indent:0 !important; text-align:center !important;}
  .pint-not .pnot-list li::before, .pint-not .pnot-list li::marker{content:none !important; display:none !important;}
}
/* footer: ROOT + tagline on the left, contact on the right, both on the same side margins as the header */
.foot{padding-left:var(--pad) !important; padding-right:var(--pad) !important;}
.foot .grid{display:flex !important; justify-content:space-between !important; align-items:flex-start !important; gap:40px !important; max-width:none !important; margin:0 !important;}
.foot .grid > *{grid-column:auto !important; margin:0 !important;}
.foot .brand{text-align:left !important; max-width:340px;}
.foot .brand p{margin:14px 0 0 !important;}
.foot .grid > div:last-child{text-align:right !important;}
.foot h6{margin:0 0 14px !important;}
.foot ul{padding:0 !important; margin:0 !important; list-style:none !important;}
.foot .bottom{max-width:none !important; justify-content:center !important; text-align:center !important; margin-top:clamp(36px,4vw,56px) !important;}
@media (max-width:640px){
  .foot .grid{gap:20px !important;}
  .foot .brand{max-width:52%;}
  .foot .brand p, .foot li a{font-size:14px !important; line-height:24px !important;}
  .foot h6{font-size:14px !important;}
}
