*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --v:#3a302a;--vm:#5c4e45;--g:#b6734a;--gl:#d4956e;
  --ol:#6e7b5b;--oll:#8a9971;--s:#f3eeeb;--sd:#e8e0d9;--sky:#ccd7d8;
  --sp:cubic-bezier(.34,1.56,.64,1);
  --rt-avail:#6e7b5b;--rt-filling:#c4892a;--rt-almostfull:#b6734a;--rt-soldout:#8a3a2a;
  --ab:#0f0e0d;--as:#1a1815;--ab2:#2a2420;--aa:#b6734a;--at:#e8e0d9;--am:#7a6a60;
}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;background:var(--v)}
body{font-family:"DM Sans",system-ui,sans-serif;background:var(--s);color:var(--v);overflow-x:hidden;min-height:100vh;display:flex;flex-direction:column}
body > main,body > .sec,body > section{flex:1 0 auto}
body > footer{flex:0 0 auto}
::selection{background:var(--g);color:var(--s)}
img{display:block;max-width:100%}
button,a{cursor:pointer;font-family:inherit;text-decoration:none;color:inherit}
input,select,textarea{font-family:inherit}
.fd{font-family:"Playfair Display",Georgia,serif}
.ey{font-size:.75rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase}
.dxl{font-family:"Playfair Display",serif;font-size:clamp(2.4rem,5vw,4.2rem);font-weight:500;line-height:1.06;letter-spacing:-.02em}
.dlg{font-family:"Playfair Display",serif;font-size:clamp(1.6rem,3vw,2.6rem);font-weight:500;line-height:1.1}
.dmd{font-family:"Playfair Display",serif;font-size:clamp(1.1rem,2vw,1.5rem);font-weight:400;line-height:1.3}
.blg{font-size:1.0625rem;font-weight:300;line-height:1.8}
.wrap{max-width:1280px;margin:0 auto;padding:0 3rem}
@media(max-width:768px){.wrap{padding:0 1.25rem}}
.sp{padding:clamp(1.5rem,3.5vw,3rem) 0}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:.6875rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;border-radius:9999px;padding:12px 28px;transition:all .2s var(--sp);border:1px solid transparent;cursor:pointer}
.btn-p{background:var(--v);color:var(--s)}.btn-p:hover{background:var(--g);transform:translateY(-1px)}
.btn-s{background:transparent;color:var(--v);border-color:var(--v)}.btn-s:hover{background:var(--sd)}
.btn-g{background:var(--g);color:var(--s)}.btn-g:hover{background:var(--gl);transform:translateY(-1px)}
.btn-sand{background:var(--s);color:var(--v)}.btn-sand:hover{background:var(--sd)}
.btn-ghost{background:transparent;color:var(--s);border:none;text-decoration:underline;text-underline-offset:4px;padding:12px 8px}.btn-ghost:hover{color:var(--gl)}
.btn-sm{font-size:.625rem;padding:8px 18px}.btn-lg{font-size:.75rem;padding:15px 36px}.btn-full{width:100%}
.bdg{display:inline-flex;align-items:center;gap:5px;font-size:.6rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;padding:4px 11px;border-radius:9999px}
.bdg::before{content:"";display:block;width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.7}
.b-mod{background:rgba(182,115,74,.15);color:#7a3f22}.b-chal{background:rgba(58,48,42,.1);color:var(--vm)}
.b-easy{background:rgba(110,123,91,.2);color:var(--ol)}.b-exp{background:var(--v);color:var(--s)}.b-exp::before{display:none}.b-sky{background:rgba(204,215,216,.4);color:var(--vm)}
.gnav{position:sticky;top:0;z-index:60;background:rgba(243,238,235,.95);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);display:flex;align-items:center;justify-content:space-between;padding:1rem 3rem;border-bottom:1px solid var(--sd)}
@media(max-width:768px){.gnav{padding:1.25rem}}
.gnl{font-size:.8rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--vm);transition:color .2s}.gnl:hover{color:var(--g)}
.wm{font-size:.75rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:rgba(243,238,235,.95)}
.lnav{display:flex;align-items:center;justify-content:space-between;padding:.875rem 3rem;background:var(--s);border-bottom:1px solid var(--sd);position:sticky;top:44px;z-index:30}
@media(max-width:768px){.lnav{padding:.875rem 1.25rem}}
.lnl{font-size:.65rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--vm);transition:color .2s}.lnl:hover{color:var(--v)}
.lnav-links{display:flex;gap:1.5rem}@media(max-width:960px){.lnav-links{display:none}}
.lnav-wm{font-size:.6875rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--v)}
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;overflow:hidden}
.hero-bg{position:absolute;inset:0}
.hov1{position:absolute;inset:0;background:linear-gradient(160deg,rgba(58,48,42,.88) 0%,rgba(58,48,42,.28) 55%,transparent 100%)}
.hov2{position:absolute;bottom:0;left:0;right:0;height:45%;background:linear-gradient(to top,rgba(58,48,42,.65),transparent)}
.hgrain{position:absolute;inset:0;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");pointer-events:none}
.hbody{position:relative;z-index:10;flex:1;display:flex;flex-direction:column;justify-content:flex-end;padding:0 3rem 5rem}
@media(max-width:768px){.hbody{padding:0 1.25rem 3rem}}
.hgrid{display:grid;grid-template-columns:7fr 5fr;gap:2rem;max-width:1280px}
@media(max-width:1100px){.hgrid{grid-template-columns:1fr}}
.hstats{display:flex;gap:2rem;border-top:1px solid rgba(243,238,235,.18);padding-top:1.5rem;margin-top:2rem}
.sv{font-family:"Playfair Display",serif;font-size:1.5rem;font-weight:500;color:var(--s)}
.sl{font-size:.625rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:rgba(243,238,235,.55);margin-top:2px}
.shero{position:relative;height:clamp(300px,42vw,500px);overflow:hidden}
.shero img{width:100%;height:100%;object-fit:cover;object-position:center 38%}
.shero-ov{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(58,48,42,.5),rgba(58,48,42,.7))}
.shero-content{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:3rem}
@media(max-width:768px){.shero-content{padding:1.5rem}}
@keyframes fu{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:translateY(0)}}
@keyframes sc{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}
.fu{animation:fu .75s ease both}.d1{animation-delay:.1s}.d2{animation-delay:.25s}.d3{animation-delay:.4s}.d4{animation-delay:.55s}.d5{animation-delay:.7s}

/* === DESIGN UPGRADE: Pro Max Motion System === */

/* Scroll-triggered reveal animations */
@keyframes revealUp{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}
@keyframes revealScale{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}
@keyframes revealLeft{from{opacity:0;transform:translateX(-40px)}to{opacity:1;transform:translateX(0)}}
@keyframes revealRight{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:translateX(0)}}
@keyframes clipReveal{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
@keyframes floatBadge{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes scrollBounce{0%,20%,50%,80%,100%{transform:translateY(0) translateX(-50%)}40%{transform:translateY(-8px) translateX(-50%)}60%{transform:translateY(-4px) translateX(-50%)}}
@keyframes lineGrow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes counterUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}

/* Scroll reveal base — visible by default; only hidden when JS is on (so
   no-JS clients and crawlers without IntersectionObserver always see content) */
.reveal{transition:opacity .55s cubic-bezier(.25,.46,.45,.94),transform .55s cubic-bezier(.25,.46,.45,.94)}
.js .reveal{opacity:0;transform:translateY(28px)}
.js .reveal.from-left{transform:translateX(-40px)}
.js .reveal.from-right{transform:translateX(40px)}
.js .reveal.from-scale{transform:scale(.92)}
.js .reveal.visible{opacity:1;transform:translateY(0) translateX(0) scale(1)}
.js .reveal.visible.from-left{transform:translateX(0)}
.js .reveal.visible.from-right{transform:translateX(0)}
.js .reveal.visible.from-scale{transform:scale(1)}
@media(max-width:768px){.js .reveal{transform:translateY(16px);transition-duration:.4s}}
@media(prefers-reduced-motion:reduce){.js .reveal{opacity:1!important;transform:none!important;transition:none!important}}

/* Stagger children */
.js .stagger-children .reveal:nth-child(1){transition-delay:.05s}
.js .stagger-children .reveal:nth-child(2){transition-delay:.12s}
.js .stagger-children .reveal:nth-child(3){transition-delay:.19s}
.js .stagger-children .reveal:nth-child(4){transition-delay:.26s}
.js .stagger-children .reveal:nth-child(5){transition-delay:.33s}
.js .stagger-children .reveal:nth-child(6){transition-delay:.4s}

/* Nav shrink-on-scroll */
.gnav{transition:padding .35s ease,background .35s ease,box-shadow .35s ease}
.gnav.scrolled{padding-top:.75rem;padding-bottom:.75rem;background:rgba(243,238,235,.98);box-shadow:0 2px 20px rgba(58,48,42,.08)}
@media(max-width:768px){.gnav.scrolled{padding-top:.625rem;padding-bottom:.625rem}}

/* Nav link hover underline slide */
.gnl{position:relative}
.gnl::after{content:"";position:absolute;bottom:-4px;left:0;width:100%;height:1px;background:var(--g);transform:scaleX(0);transform-origin:right;transition:transform .35s cubic-bezier(.25,.46,.45,.94)}
.gnl:hover::after{transform:scaleX(1);transform-origin:left}

/* Hero parallax layer */
.hero-bg{transition:transform .1s linear;will-change:transform}

/* Hero scroll indicator */
.hero-scroll-hint{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;z-index:15;animation:scrollBounce 2.5s ease infinite}
.hero-scroll-hint span{font-size:.5rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:rgba(243,238,235,.35)}
.hero-scroll-hint svg{width:16px;height:16px;color:rgba(243,238,235,.35)}

/* Hero title clip-path reveal — gated behind .js so no-JS clients see it immediately */
.js .hero-title-reveal{animation:clipReveal .9s cubic-bezier(.25,.46,.45,.94) .2s both}

/* Enhanced card hover — lift + glow */
.card{transition:transform .35s cubic-bezier(.34,1.56,.64,1),box-shadow .35s ease}
.card:hover{transform:translateY(-6px) scale(1.01);box-shadow:0 20px 50px rgba(58,48,42,.22)}
.card:active{transform:translateY(-2px) scale(.99);transition-duration:.1s}

/* Card image zoom enhanced */
.ci img{transition:transform .8s cubic-bezier(.25,.46,.45,.94)}
.card:hover .ci img{transform:scale(1.08)}

/* Button press/focus states */
.btn{transition:all .25s cubic-bezier(.34,1.56,.64,1)}
.btn:active{transform:translateY(1px) scale(.97);transition-duration:.08s}
.btn:focus-visible{outline:2px solid var(--g);outline-offset:3px}
/* shimmer removed — requires overflow:hidden which breaks dropdowns */

/* CTA button glow pulse */
.btn-g{box-shadow:0 0 0 0 rgba(182,115,74,.4)}
.btn-g:hover{box-shadow:0 4px 20px rgba(182,115,74,.35)}

/* Testimonial card hover */
.tc{transition:border-color .3s ease,transform .35s cubic-bezier(.34,1.56,.64,1),box-shadow .3s ease}
.tc:hover{border-color:rgba(182,115,74,.3);transform:translateY(-3px);box-shadow:0 12px 32px rgba(0,0,0,.15)}

/* Featured retreat shimmer */
.feat-retreat-badge{animation:floatBadge 3s ease-in-out infinite}

/* Section header line accent */
.se{position:relative;display:inline-block}
.se::after{content:"";display:block;width:2rem;height:1px;background:currentColor;margin-top:.5rem;transform:scaleX(0);transform-origin:left;transition:transform .6s cubic-bezier(.25,.46,.45,.94) .2s}
.reveal.visible .se::after,.fu .se::after{transform:scaleX(1)}

/* Stats counter animation */
.hstats .sv{animation:counterUp .7s ease both}
.hstats div:nth-child(1) .sv{animation-delay:.5s}
.hstats div:nth-child(2) .sv{animation-delay:.65s}
.hstats div:nth-child(3) .sv{animation-delay:.8s}

/* Mobile drawer slide animation */
/* Mobile drawer: enhance existing opacity transition with slide for the inner panel */
.gnav-mobile-drawer .gnav-mobile-panel{transition:transform .4s cubic-bezier(.32,.72,0,1)}
.gnav-mobile-bd{opacity:0;transition:opacity .35s ease}
.gnav-mobile-drawer.open .gnav-mobile-bd,.gnav-mobile-drawer.open~.gnav-mobile-bd{opacity:1}

/* Footer link hover lift */
.fla{transition:color .2s ease,transform .2s ease}
.fla:hover{transform:translateX(3px)}

/* Newsletter input focus glow */
.newsletter-input{transition:border-color .3s ease,box-shadow .3s ease}
.newsletter-input:focus{border-color:var(--g);box-shadow:0 0 0 3px rgba(182,115,74,.15)}

/* Image reveal on scroll */
.img-reveal{overflow:hidden}
.img-reveal img{transition:transform 1.2s cubic-bezier(.25,.46,.45,.94),opacity .8s ease}
.img-reveal:not(.visible) img{transform:scale(1.1);opacity:0}
.img-reveal.visible img{transform:scale(1);opacity:1}

/* Smooth section dividers */
.section-glow{position:relative}
.section-glow::before{content:"";position:absolute;top:0;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent,var(--sd),transparent)}

/* Reduced motion: respect user preference */
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .hero-scroll-hint{animation:none}
  .feat-retreat-badge{animation:none}
  .btn::before{animation:none}
  .hstats .sv{animation:none}
  .gnav{transition:none}
  .gnav-mobile-drawer{transition:none}
}

/* === END DESIGN UPGRADE === */

/* === DESIGN POLISH === */

/* Hero — taller, richer overlay, better typography hierarchy */
.shero{height:clamp(420px,56vw,680px)}
.shero img{transition:transform 8s ease}
.shero:hover img{transform:scale(1.03)}
.shero-ov{background:linear-gradient(160deg,rgba(58,48,42,.85) 0%,rgba(58,48,42,.35) 45%,rgba(58,48,42,.55) 100%)}
.shero-content .dxl{font-size:clamp(2.8rem,6vw,5rem);letter-spacing:-.03em;line-height:1.16;text-shadow:0 2px 40px rgba(0,0,0,.15)}
.shero-content .ey{font-size:.65rem;letter-spacing:.2em}

/* Cards — refined shadows and spacing */
.card{border-radius:20px;box-shadow:0 1px 8px rgba(58,48,42,.06);border:1px solid rgba(232,224,217,.6)}
.card:hover{box-shadow:0 24px 64px rgba(58,48,42,.16);border-color:transparent}
a.card{display:flex;flex-direction:column;text-decoration:none;color:inherit}
.cbody{padding:1.125rem 1.375rem}
.cfoot{margin-top:1rem;padding-top:1rem}
.ccta{font-size:.6rem;padding:8px 16px;transition:all .25s cubic-bezier(.34,1.56,.64,1)}
a.card:hover .ccta{background:var(--g);color:var(--s);border-color:var(--g)}

/* Section spacing — tighter vertical rhythm */
.sp{padding:clamp(1.75rem,4vw,3.5rem) 0}

/* Philosophy section — refined grid */
.agrid{gap:clamp(2rem,5vw,5rem)}

/* Testimonials — glass cards on dark bg */
.tc{border-radius:20px;padding:2rem;background:rgba(243,238,235,.04);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.tc.feat{background:rgba(182,115,74,.06)}

/* Newsletter — more spacious, refined */
.newsletter-section{padding:clamp(2.75rem,5.5vw,4.5rem) 0}
.newsletter-title{font-size:clamp(2rem,4.5vw,3rem);letter-spacing:-.01em}
.newsletter-form{gap:.75rem}
.newsletter-input{padding:16px 20px;border-radius:14px;font-size:.9rem}
.newsletter-btn{padding:16px 24px;border-radius:14px;font-size:.7rem}

/* Footer — more polish */
footer.sf{background:var(--ab)}
.fg{padding:clamp(3rem,6vw,5rem) 0}
.fb{padding:2rem 0}

/* Smooth section color transitions */
section+section{border-top:none}
.section-glow::before{height:1px;background:linear-gradient(90deg,transparent 5%,var(--sd) 30%,var(--sd) 70%,transparent 95%)}

/* Skip-to-content for accessibility */
.skip-link{position:absolute;top:-100%;left:50%;transform:translateX(-50%);background:var(--g);color:var(--s);padding:8px 20px;border-radius:0 0 8px 8px;font-size:.75rem;font-weight:600;z-index:9999;transition:top .2s}
.skip-link:focus{top:0}

/* === END DESIGN POLISH === */

.sh{margin-bottom:3rem}.sh.center{text-align:center}.sh.center .sub{margin:0 auto}
.se{margin-bottom:.875rem;color:var(--g)}.se.lt{color:var(--gl)}
.h2c{color:var(--v)}.h2c.lt{color:var(--s)}
.sub{font-size:1.0625rem;font-weight:300;line-height:1.75;color:var(--vm);max-width:42ch;margin-top:.875rem}.sub.lt{color:var(--sky)}
.card{border-radius:16px;overflow:hidden;box-shadow:0 2px 12px rgba(58,48,42,.1);transition:transform .28s var(--sp),box-shadow .28s ease;background:#fff;display:flex;flex-direction:column}
.card:hover{transform:translateY(-4px);box-shadow:0 14px 44px rgba(58,48,42,.18)}
.ci{position:relative;overflow:hidden}.ci img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}
.card:hover .ci img{transform:scale(1.06)}
.cio{position:absolute;inset:0;background:linear-gradient(to top,rgba(58,48,42,.92) 0%,rgba(58,48,42,.32) 45%,transparent 100%)}
.cib{position:absolute;top:14px;left:14px;right:14px;display:flex;justify-content:space-between;align-items:flex-start}
.cit{position:absolute;bottom:0;left:0;right:0;padding:1.25rem}
.cdest{font-size:.65rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--gl);margin-bottom:3px}
.cname{font-family:"Playfair Display",serif;font-size:1.1rem;font-weight:500;color:var(--s);line-height:1.25}
.cbody{padding:1rem 1.25rem;flex:1;display:flex;flex-direction:column}.cdate{font-size:.65rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--vm)}
.cdesc{font-size:.82rem;color:var(--vm);line-height:1.55;margin-top:.5rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cfoot{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--sd);padding-top:.875rem;margin-top:auto}
.cp{font-family:"Playfair Display",serif;font-size:1.3rem;font-weight:500;color:var(--v)}
.cpl{font-size:.6rem;letter-spacing:.06em;text-transform:uppercase;color:rgba(58,48,42,.5);margin-left:3px}
.ccta{font-size:.65rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--v);border:1px solid var(--v);border-radius:9999px;padding:7px 15px;transition:all .2s;background:transparent}
.ccta:hover{background:var(--v);color:var(--s)}
.rgrid{display:grid;grid-template-columns:2fr 1fr;gap:1.25rem}@media(max-width:900px){.rgrid{grid-template-columns:1fr}}
.rside{display:flex;flex-direction:column;gap:1.25rem}
.rrow{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-top:1.25rem}
@media(max-width:900px){.rrow{grid-template-columns:1fr 1fr}}@media(max-width:560px){.rrow{grid-template-columns:1fr}}
.agrid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}@media(max-width:900px){.agrid{grid-template-columns:1fr}}
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;border-top:1px solid var(--sd);padding-top:2rem;margin-top:2.5rem}
.aimg{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:4/5}@media(max-width:900px){.aimg{aspect-ratio:16/9}}
.aimg img{width:100%;height:100%;object-fit:cover}
.aic{position:absolute;bottom:0;left:0;right:0;padding:1.5rem;background:linear-gradient(to top,rgba(58,48,42,.85),transparent)}
.aic p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
@media(max-width:900px){.tgrid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.tgrid{grid-template-columns:1fr}}
.tc{border:1px solid rgba(243,238,235,.08);border-radius:16px;padding:1.5rem;display:flex;flex-direction:column}
.tc.feat{border-color:rgba(182,115,74,.3);background:rgba(182,115,74,.08)}
.stars{display:flex;gap:3px;margin-bottom:1rem}.star{color:var(--g);font-size:.875rem}
.tq{font-family:"Playfair Display",serif;font-size:.9rem;font-style:italic;line-height:1.6;color:rgba(243,238,235,.88);flex:1;margin-bottom:1.25rem}
.tf{display:flex;align-items:center;gap:.75rem;border-top:1px solid rgba(243,238,235,.1);padding-top:1.25rem}
.tav{width:36px;height:36px;border-radius:50%;overflow:hidden;flex-shrink:0}
.tav img{width:100%;height:100%;object-fit:cover}
.tn{font-size:.7rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--s)}
.td{font-size:.65rem;letter-spacing:.06em;text-transform:uppercase;color:rgba(243,238,235,.5);margin-top:2px}
footer.sf{background:var(--v);border-top:1px solid rgba(243,238,235,.08)}
.fg{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:2rem;padding:4rem 0}
@media(max-width:900px){.fg{grid-template-columns:1fr 1fr;padding:3rem 0}}@media(max-width:560px){.fg{grid-template-columns:1fr}}
.fbn{font-size:.65rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:rgba(243,238,235,.8);margin-bottom:.75rem}
.fbd{font-size:.875rem;font-weight:300;line-height:1.7;color:rgba(243,238,235,.4);max-width:26ch}
.fcl{font-size:.65rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:rgba(243,238,235,.5);margin-bottom:1rem}
.fl{list-style:none;display:flex;flex-direction:column;gap:.75rem}
.fla{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(243,238,235,.65);transition:color .15s}.fla:hover{color:var(--s)}
.fb{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 0;border-top:1px solid rgba(243,238,235,.08)}
.fc{font-size:.65rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(243,238,235,.4)}
.ptabs{display:flex;gap:3px;background:var(--s);border-bottom:1px solid var(--sd);padding:0 2rem;position:sticky;top:0;z-index:50;overflow-x:auto;scrollbar-width:none}
.ptabs::-webkit-scrollbar{display:none}@media(max-width:768px){.ptabs{padding:0 .75rem}}
.ptab{font-size:.65rem;font-weight:500;letter-spacing:.09em;text-transform:uppercase;color:rgba(58,48,42,.42);padding:10px 10px 12px;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .15s;background:none;border-top:none;border-left:none;border-right:none;white-space:nowrap;flex-shrink:0}
.ptab:hover{color:var(--v)}.ptab.act{color:var(--g);border-bottom-color:var(--g)}
.page{display:none}.page.act{display:block}
.itw{background:var(--v);border-radius:16px;overflow:hidden}
.ith{padding:1.25rem 1.5rem;border-bottom:1px solid rgba(243,238,235,.1)}
.ite{font-size:.65rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--gl);margin-bottom:4px}
.itt{font-family:"Playfair Display",serif;font-size:1.05rem;font-weight:500;color:var(--s)}
.dtabs{display:flex;gap:4px;padding:.75rem 1rem;border-bottom:1px solid rgba(243,238,235,.1);overflow-x:auto;scrollbar-width:none}
.dtabs::-webkit-scrollbar{display:none}
.dtab{display:flex;flex-direction:column;align-items:center;gap:1px;padding:7px 13px;border-radius:10px;border:none;background:transparent;color:rgba(243,238,235,.38);cursor:pointer;transition:all .2s;flex-shrink:0}
.dtab .dtl{font-size:.48rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;opacity:.7}
.dtab .dtn{font-size:1rem;font-weight:500}.dtab:hover{color:rgba(243,238,235,.72);background:rgba(243,238,235,.05)}.dtab.act{background:var(--g);color:var(--s)}
.ibody{padding:1.5rem}.dtt{font-family:"Playfair Display",serif;font-size:.95rem;font-style:italic;color:rgba(243,238,235,.82);margin-bottom:1.5rem}
.tl{position:relative}.tl::before{content:"";position:absolute;left:19px;top:12px;bottom:12px;width:1px;background:linear-gradient(to bottom,transparent,var(--g) 10%,var(--g) 90%,transparent)}
.ai{display:flex;gap:1rem;padding-bottom:1.2rem}
.an{width:40px;height:40px;border-radius:50%;border:1px solid;display:flex;align-items:center;justify-content:center;font-size:.875rem;flex-shrink:0;z-index:1;position:relative}
.nc{border-color:var(--g);background:rgba(182,115,74,.2);color:var(--gl)}.nw{border-color:var(--sky);background:rgba(204,215,216,.2);color:var(--sky)}
.nm{border-color:rgba(243,238,235,.22);background:rgba(243,238,235,.07);color:rgba(243,238,235,.48)}
.nf{border-color:rgba(243,238,235,.1);background:rgba(243,238,235,.03);color:rgba(243,238,235,.28)}
.nh{border-color:var(--ol);background:rgba(110,123,91,.2);color:var(--oll)}
.ac2{flex:1;padding-top:4px}.at2{font-size:.625rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--gl);margin-bottom:3px}
.an2{font-size:.85rem;font-weight:500;color:var(--s);margin-bottom:2px}.atp{font-size:.625rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(243,238,235,.45)}
.adet{margin-top:8px;background:rgba(243,238,235,.06);border-radius:8px;padding:10px 12px;display:none}.adet.open{display:block;animation:sc .2s ease}
.dr{display:flex;gap:.875rem;margin-bottom:3px}.dk{font-size:.625rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:rgba(243,238,235,.45);width:60px;flex-shrink:0}
.dv{font-size:.625rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(243,238,235,.62)}
.achev{width:16px;height:16px;color:rgba(243,238,235,.22);transition:transform .2s;flex-shrink:0;margin-top:6px}
.dnav{display:flex;align-items:center;justify-content:space-between;padding:.875rem 3rem;border-bottom:1px solid var(--sd);background:rgba(243,238,235,.96);backdrop-filter:blur(10px);position:sticky;top:44px;z-index:40}
@media(max-width:768px){.dnav{padding:.875rem 1.25rem}}
.bc{display:flex;align-items:center;gap:7px;font-size:.58rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--vm)}.bcs{color:rgba(58,48,42,.3)}
.dc{max-width:1280px;margin:0 auto;padding:3rem}@media(max-width:768px){.dc{padding:1.5rem 1.25rem}}
.gg{display:grid;grid-template-columns:2fr 1fr;gap:.75rem;margin-bottom:3.5rem;border-radius:16px;overflow:hidden}@media(max-width:768px){.gg{grid-template-columns:1fr}}
.gm{overflow:hidden;aspect-ratio:16/10}.gm img{width:100%;height:100%;object-fit:cover}
.gs{display:flex;flex-direction:column;gap:.75rem}.gsi{flex:1;overflow:hidden}.gsi img{width:100%;height:100%;object-fit:cover}
.dg{display:grid;grid-template-columns:1fr 380px;gap:4rem;align-items:start}@media(max-width:1100px){.dg{grid-template-columns:1fr}}
.dst{font-family:"Playfair Display",serif;font-size:1.4rem;font-weight:500;color:var(--v);margin-bottom:1.5rem}
.bkcard{background:#fff;border:1px solid var(--sd);border-radius:16px;padding:1.75rem;box-shadow:0 2px 12px rgba(58,48,42,.1);position:sticky;top:104px}
.bkt{font-family:"Playfair Display",serif;font-size:1.2rem;font-weight:500;color:var(--v);margin-bottom:1.25rem}
.bkpr{display:flex;align-items:baseline;gap:5px;margin-bottom:5px}.bkp{font-family:"Playfair Display",serif;font-size:1.9rem;font-weight:500;color:var(--v)}
.bkpl{font-size:.625rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(58,48,42,.42)}
.bkinc{font-size:.65rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ol);margin-bottom:1.25rem}
.bkdiv{border:none;border-top:1px solid var(--sd);margin:1.25rem 0}
.bkrow{display:flex;justify-content:space-between;padding:5px 0}
.bklbl{font-size:.58rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:rgba(58,48,42,.48)}
.bkval{font-size:.58rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--v)}
.bknote{font-size:.55rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(58,48,42,.38);text-align:center;margin-top:.75rem}
.incgrid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.inci{display:flex;align-items:center;gap:8px;background:var(--s);border-radius:8px;padding:10px 12px;border:1px solid var(--sd);font-size:.58rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--vm)}
.inci::before{content:"";display:inline-flex;width:16px;height:16px;border-radius:50%;background:rgba(110,123,91,.15);flex-shrink:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 8l2.5 2.5L12 5' stroke='%236e7b5b' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;background-position:center}
.cal-wrap{background:#fff;border:1px solid var(--sd);border-radius:16px;overflow:hidden}
.cal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid var(--sd);background:var(--s)}
.cal-title{font-family:"Playfair Display",serif;font-size:1.05rem;font-weight:500;color:var(--v)}
.cal-nav-btn{width:32px;height:32px;border-radius:50%;border:1px solid var(--sd);background:transparent;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;font-size:.875rem}.cal-nav-btn:hover{background:var(--sd)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr)}
.cal-dlbl{font-size:.55rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--vm);text-align:center;padding:.625rem .25rem}
.cal-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;border-radius:6px;position:relative;transition:background .15s}
.cal-day:hover:not(.cal-empty){background:var(--sd)}.cal-num{font-size:.75rem;font-weight:500;color:var(--v);line-height:1}
.cal-day.cal-empty{cursor:default}.cal-day.cal-retreat{background:rgba(182,115,74,.1)}.cal-day.cal-retreat .cal-num{color:var(--g);font-weight:700}
.cal-day.cal-retreat::after{content:"";display:block;width:4px;height:4px;border-radius:50%;background:var(--g);margin-top:2px}
.cal-day.cal-today .cal-num{background:var(--v);color:var(--s);width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.65rem}
.cal-legend{display:flex;gap:1.5rem;padding:.75rem 1.5rem;border-top:1px solid var(--sd);background:var(--s)}
.cal-li{display:flex;align-items:center;gap:5px;font-size:.55rem;letter-spacing:.08em;text-transform:uppercase;color:var(--vm)}
.cal-ld{width:8px;height:8px;border-radius:50%}
.seo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
@media(max-width:900px){.seo-grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.seo-grid{grid-template-columns:1fr}}
.info-card{background:#fff;border:1px solid var(--sd);border-radius:12px;padding:1.5rem}
.ic-icon{font-size:1.75rem;margin-bottom:.875rem}.ic-title{font-family:"Playfair Display",serif;font-size:1.05rem;font-weight:500;color:var(--v);margin-bottom:.5rem}
.ic-text{font-size:.875rem;line-height:1.65;color:var(--vm)}
.faq-item{border-bottom:1px solid var(--sd);padding:1.25rem 0}.faq-item:last-child{border-bottom:none}
.faq-q{font-family:"Playfair Display",serif;font-size:.975rem;font-weight:500;color:var(--v);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem}
.faq-a{font-size:.875rem;line-height:1.7;color:var(--vm);margin-top:.875rem;display:none}.faq-item.open .faq-a{display:block}
.fchev{font-size:1.1rem;color:var(--g);flex-shrink:0;transition:transform .2s;display:inline-block}
.faq-item.open .fchev{transform:rotate(90deg)}
.kw-tag{display:inline-flex;align-items:center;font-size:.58rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;padding:4px 10px;border-radius:9999px;background:var(--sd);color:var(--vm);margin:2px}
.bcbar{display:flex;align-items:center;gap:8px;font-size:.58rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--vm);padding:.875rem 0;border-bottom:1px solid var(--sd);margin-bottom:2rem}.bcsep{color:rgba(58,48,42,.3)}
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.team-grid--two{grid-template-columns:repeat(2,minmax(0,300px));justify-content:center}
/* Blog / Journal cards (used on the blog index and the homepage module) */
.blog-index{max-width:820px;margin:0 auto;display:grid;gap:1.5rem}
.blog-card{display:block;background:#fff;border:1px solid var(--sd);border-radius:16px;overflow:hidden;box-shadow:0 2px 16px rgba(58,48,42,.05);text-decoration:none}
.blog-card img{width:100%;height:200px;object-fit:cover;display:block}
.blog-card .bc-body{padding:1.25rem 1.4rem}
.blog-card h2{font-family:'Playfair Display',serif;font-size:1.25rem;color:var(--v);margin:0 0 .5rem}
.blog-card p{font-size:.9rem;line-height:1.6;color:var(--vm);margin:0}
@media(max-width:768px){.blog-index{grid-template-columns:1fr !important}}
@media(max-width:900px){.team-grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.team-grid{grid-template-columns:1fr}}
.team-card{background:#fff;border:1px solid var(--sd);border-radius:16px;overflow:hidden;text-align:center}
.team-img{height:210px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--sd)}
.team-img img{width:100%;height:100%;object-fit:cover;object-position:center 28%;display:block}
.team-body{padding:1.25rem}.team-name{font-family:"Playfair Display",serif;font-size:1.05rem;font-weight:500;color:var(--v);margin-bottom:.25rem}
.team-role{font-size:.6rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--g);margin-bottom:.75rem}
.team-bio{font-size:.8rem;line-height:1.6;color:var(--vm)}
.venue-img{border-radius:14px;overflow:hidden;aspect-ratio:4/3;margin-bottom:1rem}.venue-img img{width:100%;height:100%;object-fit:cover}
.amenity{display:flex;align-items:center;gap:.625rem;font-size:.875rem;color:var(--vm);padding:.25rem 0}.amenity::before{content:"✓";color:var(--g);font-weight:600;flex-shrink:0}
.modal-ov{position:fixed;inset:0;background:rgba(15,14,13,.75);z-index:100;display:flex;align-items:center;justify-content:center;padding:1rem;opacity:0;pointer-events:none;transition:opacity .25s;backdrop-filter:blur(4px)}
.modal-ov.open{opacity:1;pointer-events:all}
.modal{background:#fff;border-radius:20px;padding:2.25rem;width:100%;max-width:500px;max-height:90svh;overflow-y:auto;transform:translateY(16px) scale(.97);transition:transform .3s var(--sp);box-shadow:0 24px 80px rgba(58,48,42,.22)}
.modal-ov.open .modal{transform:none}
.mhdr{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.75rem}
.mtitle{font-family:"Playfair Display",serif;font-size:1.4rem;font-weight:500;color:var(--v)}.msub{font-size:.75rem;color:var(--vm);margin-top:3px}
.mclose{width:30px;height:30px;border-radius:50%;border:1px solid var(--sd);background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;flex-shrink:0}.mclose:hover{background:var(--sd)}
.mtype{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:1.75rem}
.tbtn{border:1.5px solid var(--sd);border-radius:12px;padding:1rem;text-align:center;cursor:pointer;transition:all .2s;background:transparent}
.tbtn:hover{border-color:var(--g);background:rgba(182,115,74,.05)}.tbtn.act{border-color:var(--g);background:rgba(182,115,74,.08)}
.ticon{font-size:1.4rem;margin-bottom:.4rem}.tlabel{font-size:.65rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--v)}.tdesc{font-size:.65rem;color:var(--vm);margin-top:2px}
.fg2{margin-bottom:1.1rem}.flabel{display:block;font-size:.58rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--v);margin-bottom:.4rem}
.finput{width:100%;padding:10px 13px;border:1px solid var(--sd);border-radius:8px;font-size:.875rem;color:var(--v);background:#fff;outline:none;transition:border-color .2s}
.finput:focus{border-color:var(--g)}.finput::placeholder{color:rgba(58,48,42,.35)}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.1rem}
.fsel{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23b6734a' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}
.dep-box{background:var(--s);border:1px solid var(--sd);border-radius:12px;padding:1.1rem;margin-bottom:1.1rem}
.dep-title{font-size:.58rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--vm);margin-bottom:.625rem}
.dep-row{display:flex;justify-content:space-between;align-items:center;padding:3px 0}.dep-label{font-size:.8rem;color:var(--vm)}
.dep-val{font-family:"Playfair Display",serif;font-size:.95rem;font-weight:500;color:var(--v)}
.dep-total{border-top:1px solid var(--sd);padding-top:.625rem;margin-top:.625rem}.dep-total .dep-label{font-weight:500;color:var(--v)}.dep-total .dep-val{font-size:1.2rem}
.pmethods{display:flex;gap:.5rem;margin-bottom:1.1rem}
.pm-btn{flex:1;padding:9px;border:1.5px solid var(--sd);border-radius:8px;font-size:.65rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:all .2s;background:transparent;color:var(--vm)}
.pm-btn.act{border-color:var(--g);background:rgba(182,115,74,.08);color:var(--v)}
.stripe-mock{background:linear-gradient(135deg,var(--v),#5c4e45);border-radius:12px;padding:1.1rem;color:var(--s);margin-bottom:1.1rem}
.card-field{background:rgba(243,238,235,.12);border-radius:8px;padding:10px 13px;font-size:.8rem;color:rgba(243,238,235,.5);font-family:monospace;letter-spacing:.05em;border:1px solid rgba(243,238,235,.12)}
.stripe-row{display:grid;grid-template-columns:1fr 1fr;gap:.625rem;margin-top:.625rem}
.stripe-logo{display:flex;align-items:center;gap:5px;margin-top:.625rem;opacity:.45}
.stripe-text{font-size:.55rem;text-transform:uppercase;letter-spacing:.06em;color:var(--s)}
.success-screen{text-align:center;padding:1rem 0}
.success-icon{width:60px;height:60px;border-radius:50%;background:rgba(110,123,91,.15);display:flex;align-items:center;justify-content:center;margin:0 auto 1.25rem;font-size:1.6rem}
.cms-shell{min-height:100vh;background:var(--ab);color:var(--at);display:flex}
.cms-sb{width:220px;flex-shrink:0;background:var(--as);border-right:1px solid var(--ab2);display:flex;flex-direction:column;position:sticky;top:44px;height:calc(100vh - 44px);overflow-y:auto}
@media(max-width:900px){.cms-sb{display:none}}
.cms-logo{padding:1.25rem 1.25rem .875rem;border-bottom:1px solid var(--ab2)}.cms-logo-n{font-size:.65rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--aa)}
.cms-logo-s{font-size:.55rem;color:var(--am);letter-spacing:.08em;text-transform:uppercase;margin-top:2px}
.cms-nav{padding:1rem 0;flex:1}.cms-sec{font-size:.5rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--am);padding:.625rem 1.25rem .25rem}
.cl{display:flex;align-items:center;gap:.75rem;padding:.55rem 1.25rem;font-size:.72rem;color:rgba(232,224,217,.48);cursor:pointer;transition:all .15s;border-left:2px solid transparent}
.cl:hover{color:var(--at);background:rgba(255,255,255,.03)}.cl.act{color:var(--at);border-left-color:var(--aa);background:rgba(182,115,74,.07)}
.cl svg{width:13px;height:13px;opacity:.65;flex-shrink:0}.cl.act svg{opacity:1}
.cms-status{padding:.625rem 1.25rem;border-top:1px solid var(--ab2);font-size:.55rem;color:var(--am);letter-spacing:.08em;text-transform:uppercase}
.cms-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#4ade80;margin-right:5px}
.cms-main{flex:1;min-width:0;overflow-y:auto}
.cms-top{display:flex;align-items:center;justify-content:space-between;padding:.875rem 2rem;border-bottom:1px solid var(--ab2);position:sticky;top:0;background:var(--ab);z-index:10}
.cms-pt{font-size:.85rem;font-weight:500;color:var(--at)}.cms-pbc{font-size:.58rem;color:var(--am);letter-spacing:.1em;text-transform:uppercase;margin-top:2px}
.cms-cont{padding:1.75rem}@media(max-width:768px){.cms-cont{padding:1.25rem}}
.cms-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.875rem;margin-bottom:1.75rem}@media(max-width:900px){.cms-stats{grid-template-columns:repeat(2,1fr)}}
.cms-stat{background:var(--as);border:1px solid var(--ab2);border-radius:12px;padding:1.1rem}
.csl{font-size:.58rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--am);margin-bottom:.4rem}
.csv{font-family:"Playfair Display",serif;font-size:1.9rem;font-weight:500;color:var(--at)}.css2{font-size:.58rem;color:var(--aa);margin-top:3px;letter-spacing:.08em;text-transform:uppercase}
.cms-card{background:var(--as);border:1px solid var(--ab2);border-radius:12px;overflow:hidden;margin-bottom:1.25rem}
.cms-ch{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1.25rem;border-bottom:1px solid var(--ab2)}.cms-ct{font-size:.72rem;font-weight:500;color:var(--at)}
.cms-tbl{width:100%;border-collapse:collapse}.cms-th{font-size:.55rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--am);padding:.625rem 1.25rem;text-align:left;border-bottom:1px solid var(--ab2)}
.cms-td{padding:.75rem 1.25rem;font-size:.78rem;color:rgba(232,224,217,.78);border-bottom:1px solid rgba(42,36,32,.5)}.cms-tr:last-child .cms-td{border-bottom:none}.cms-tr:hover .cms-td{background:rgba(255,255,255,.02)}
.cb2{display:inline-flex;align-items:center;gap:4px;font-size:.52rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;padding:3px 8px;border-radius:9999px}
.cb-pub{background:rgba(74,222,128,.12);color:#4ade80}.cb-draft{background:rgba(251,191,36,.12);color:#fbbf24}.cb-new{background:rgba(182,115,74,.2);color:var(--aa)}.cb-conf{background:rgba(74,222,128,.12);color:#4ade80}.cb-pend{background:rgba(251,191,36,.12);color:#fbbf24}
.cms-ab{font-size:.58rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;padding:5px 10px;border-radius:6px;border:1px solid var(--ab2);background:transparent;color:rgba(232,224,217,.6);cursor:pointer;transition:all .15s}.cms-ab:hover{border-color:var(--aa);color:var(--aa)}
.cms-fg{display:grid;grid-template-columns:2fr 1fr;gap:1.25rem;align-items:start}@media(max-width:900px){.cms-fg{grid-template-columns:1fr}}
.cms-fl{margin-bottom:1.1rem}.cms-ll{display:block;font-size:.58rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--am);margin-bottom:.4rem}
.cms-in{width:100%;padding:9px 12px;background:var(--ab);border:1px solid var(--ab2);border-radius:8px;font-size:.82rem;color:var(--at);outline:none;transition:border-color .2s}.cms-in:focus{border-color:var(--aa)}.cms-in::placeholder{color:var(--am)}
.cms-se{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23b6734a' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}
.cms-ta{resize:vertical;min-height:80px;line-height:1.5}
.cms-sc{background:var(--as);border:1px solid var(--ab2);border-radius:12px;padding:1.1rem;margin-bottom:.875rem}.cms-sct{font-size:.65rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--am);margin-bottom:.875rem}
.cms-sr{display:flex;justify-content:space-between;align-items:center;padding:4px 0}.cms-sl{font-size:.72rem;color:rgba(232,224,217,.52)}
.tgl-t{width:34px;height:18px;border-radius:9px;background:var(--ab2);position:relative;cursor:pointer;transition:background .2s}.tgl-t.on{background:var(--aa)}
.tgl-h{width:13px;height:13px;border-radius:50%;background:#fff;position:absolute;top:2.5px;left:2.5px;transition:transform .2s}.tgl-t.on .tgl-h{transform:translateX(16px)}
.cms-view{display:none}.cms-view.act{display:block}
.rc-chart{display:flex;align-items:flex-end;gap:5px;height:72px}
.rc-bar{flex:1;border-radius:3px 3px 0 0;background:linear-gradient(to top,rgba(182,115,74,.8),rgba(212,149,110,.4));min-height:3px}
.enq-item{display:flex;align-items:center;gap:.875rem;padding:.75rem 1.25rem;border-bottom:1px solid rgba(42,36,32,.5)}.enq-item:last-child{border-bottom:none}
.enq-av{width:30px;height:30px;border-radius:50%;background:rgba(182,115,74,.2);display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:500;color:var(--aa);flex-shrink:0}
.enq-n{font-size:.78rem;font-weight:500;color:var(--at)}.enq-r{font-size:.62rem;color:var(--am);margin-top:1px}
.ibb{border:1px solid var(--ab2);border-radius:12px;overflow:hidden;margin-top:.875rem}
.ibb-h{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.25rem;background:rgba(182,115,74,.08);border-bottom:1px solid var(--ab2)}
.ibd{display:flex;align-items:stretch;border-bottom:1px solid var(--ab2)}.ibd:last-child{border-bottom:none}
.ibd-n{width:55px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.02);border-right:1px solid var(--ab2);font-size:.62rem;color:var(--am);flex-shrink:0}
.ibd-c{flex:1;padding:.75rem 1.25rem}.ibd-t{font-size:.78rem;font-weight:500;color:var(--at);margin-bottom:.4rem}
.ibd-as{display:flex;flex-wrap:wrap;gap:.3rem}
.iba{display:inline-flex;align-items:center;gap:4px;font-size:.55rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;padding:3px 9px;border-radius:6px}
.ia-c{background:rgba(182,115,74,.12);border:1px solid rgba(182,115,74,.3);color:var(--aa)}.ia-h{background:rgba(110,123,91,.12);border:1px solid rgba(110,123,91,.3);color:var(--oll)}
.ia-w{background:rgba(204,215,216,.12);border:1px solid rgba(204,215,216,.3);color:var(--sky)}.ia-m{background:rgba(232,224,217,.07);border:1px solid rgba(232,224,217,.15);color:rgba(232,224,217,.55)}
.ia-f{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);color:rgba(232,224,217,.35)}
.toast{position:fixed;bottom:2rem;right:2rem;background:var(--ol);color:var(--s);border-radius:10px;padding:.75rem 1.1rem;font-size:.72rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;box-shadow:0 8px 24px rgba(58,48,42,.25);transform:translateY(20px);opacity:0;transition:all .3s var(--sp);pointer-events:none;z-index:200}

.cms-mob-bar{display:none;position:fixed;bottom:0;left:0;right:0;z-index:150;background:var(--as);border-top:1px solid var(--ab2);padding-bottom:env(safe-area-inset-bottom,0)}
@media(max-width:900px){.cms-mob-bar{display:flex}.cms-sb{display:none!important}.cms-cont{padding-bottom:80px}}
.cms-mob-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:10px 2px 8px;cursor:pointer;transition:all .15s;border:none;background:transparent;color:rgba(232,224,217,.38);font-size:.48rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.cms-mob-tab svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.cms-mob-tab.act{color:var(--aa)}.cms-mob-tab:hover{color:rgba(232,224,217,.7)}
.cms-mob-drawer{position:fixed;inset:0;z-index:200;opacity:0;pointer-events:none;transition:opacity .25s}
.cms-mob-drawer.open{opacity:1;pointer-events:all}
.cms-mob-drawer-bd{position:absolute;inset:0;background:rgba(0,0,0,.65);backdrop-filter:blur(4px)}
.cms-mob-drawer-panel{position:absolute;top:0;left:0;bottom:0;width:min(280px,85vw);background:var(--as);border-right:1px solid var(--ab2);transform:translateX(-100%);transition:transform .3s cubic-bezier(.34,1.56,.64,1);display:flex;flex-direction:column;overflow-y:auto}
.cms-mob-drawer.open .cms-mob-drawer-panel{transform:none}
.cms-mob-drawer-head{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--ab2)}
.cms-mob-drawer-title{font-size:.62rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--aa)}
.cms-mob-drawer-x{width:28px;height:28px;border-radius:50%;background:var(--ab2);display:flex;align-items:center;justify-content:center;cursor:pointer;border:none;color:var(--at)}
.ic-icon-wrap{display:flex;align-items:center;justify-content:center}
.seo-retreats-section{background:var(--sd);padding:clamp(2.25rem,4.5vw,3.75rem) 0;border-top:1px solid var(--sd)}
.seo-retreat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-top:2rem}
@media(max-width:900px){.seo-retreat-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.seo-retreat-grid{grid-template-columns:1fr}}
.seo-rcard{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 1px 8px rgba(58,48,42,.07);transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s;cursor:pointer}
.seo-rcard:hover{transform:translateY(-4px);box-shadow:0 8px 28px rgba(58,48,42,.13)}
.seo-rcard-img{position:relative;height:175px;background:linear-gradient(135deg,var(--ol),var(--v));overflow:hidden}
.seo-rcard-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s}
.seo-rcard:hover .seo-rcard-img img{transform:scale(1.05)}
.seo-rcard-ov{position:absolute;inset:0;background:linear-gradient(to top,rgba(58,48,42,.88),transparent 55%)}
.seo-rcard-bottom{position:absolute;bottom:0;left:0;right:0;padding:.875rem 1rem}
.seo-rcard-dest{font-size:.55rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--gl);margin-bottom:2px}
.seo-rcard-name{font-family:"Playfair Display",serif;font-size:1rem;font-weight:500;color:var(--s);line-height:1.2}
.seo-rcard-body{padding:.875rem 1rem}
.seo-rcard-dates{font-size:.6rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--vm);margin-bottom:.625rem}
.seo-rcard-bar{height:3px;background:var(--sd);border-radius:9999px;overflow:hidden;margin-bottom:.75rem}
.seo-rcard-bar-fill{height:100%;border-radius:9999px}
.seo-rcard-footer{display:flex;align-items:center;justify-content:space-between}
.seo-rcard-price{font-family:"Playfair Display",serif;font-size:1.15rem;font-weight:500;color:var(--v)}
.seo-rcard-pp{font-size:.5rem;color:var(--vm);letter-spacing:.06em;text-transform:uppercase;margin-left:2px}
.btn-seo-bk{font-size:.6rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;background:var(--g);color:var(--s);border-radius:9999px;padding:8px 15px;border:none;cursor:pointer;transition:all .2s cubic-bezier(.34,1.56,.64,1)}
.btn-seo-bk:hover{background:var(--gl);transform:translateY(-1px)}
.btn-seo-bk[disabled]{background:var(--sd);color:var(--vm);cursor:default;transform:none}
.seo-no-ret{text-align:center;padding:2.5rem;font-family:"Playfair Display",serif;font-size:1rem;color:var(--vm);line-height:1.6}
.btn-seo-all{display:inline-flex;align-items:center;gap:5px;margin-top:1.75rem;font-size:.6875rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--g);text-decoration:underline;text-underline-offset:4px;background:none;border:none;cursor:pointer}
.seo-lt{display:flex;align-items:center;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid rgba(42,36,32,.4)}
.seo-lt:last-child{border-bottom:none}
.seo-lt-name{font-size:.78rem;color:var(--at)}
.seo-lt-type{font-size:.55rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--am);margin-top:1px}


/* Hide dev prototype tabs by default */
.ptabs{display:none!important}
.dev-mode .ptabs{display:flex!important}

/* ── Vanilla Calendar Pro — Wild Canary brand integration ─────────── */
#wc-vcal{--vc-clr-accent:var(--g);--vc-clr-text:var(--v);--vc-clr-bg:#fff;
  --vc-clr-bg-hover:rgba(110,123,91,.07);--vc-clr-bg-selected:rgba(110,123,91,.12);
  --vc-clr-bg-today:var(--v);--vc-clr-text-today:#fff;--vc-border-radius:12px;
  --vc-font-family:"DM Sans",sans-serif;--vc-clr-weekday:var(--vm);
  font-size:.82rem;
}
#wc-vcal .vanilla-calendar{border:none;border-radius:20px;box-shadow:0 1px 12px rgba(58,48,42,.07);overflow:hidden;background:#fff}
#wc-vcal .vanilla-calendar-header{padding:1.25rem 1.5rem 1rem;border-bottom:1px solid var(--sd)}
#wc-vcal .vanilla-calendar-header__content{font-family:"Playfair Display",serif;font-size:1.05rem;font-weight:500;color:var(--v)}
#wc-vcal .vanilla-calendar-arrow{width:32px;height:32px;border-radius:50%;border:1px solid var(--sd);transition:all .2s}
#wc-vcal .vanilla-calendar-arrow:hover{background:var(--sd);border-color:var(--g)}
#wc-vcal .vanilla-calendar-day__btn{border-radius:8px;font-size:.78rem;font-weight:400;transition:all .15s}
#wc-vcal .vanilla-calendar-day__btn:hover{background:rgba(110,123,91,.08)}
#wc-vcal .vanilla-calendar-day_today .vanilla-calendar-day__btn{background:var(--v);color:#fff;font-weight:600}
#wc-vcal .vanilla-calendar-day_selected .vanilla-calendar-day__btn{background:var(--g)!important;color:#fff!important;font-weight:500}
#wc-vcal .vanilla-calendar-day_weekend .vanilla-calendar-day__btn{color:var(--vm)}
#wc-vcal .vanilla-calendar-weekdays__cell{font-size:.55rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--vm)}
/* Retreat-day highlighting — applied via JS */
#wc-vcal .vc-retreat-day .vanilla-calendar-day__btn{position:relative;background:rgba(110,123,91,.08)!important;color:var(--v)!important;font-weight:600}
#wc-vcal .vc-retreat-day .vanilla-calendar-day__btn::after{content:"";position:absolute;bottom:3px;left:50%;transform:translateX(-50%);width:4px;height:4px;border-radius:50%;background:var(--g)}
#wc-vcal .vc-retreat-start .vanilla-calendar-day__btn{background:var(--g)!important;color:#fff!important;border-radius:8px 0 0 8px}
#wc-vcal .vc-retreat-start .vanilla-calendar-day__btn::after{background:#fff}
#wc-vcal .vc-retreat-end .vanilla-calendar-day__btn{background:var(--g)!important;color:#fff!important;border-radius:0 8px 8px 0}
#wc-vcal .vc-retreat-end .vanilla-calendar-day__btn::after{background:#fff}
/* Cal sidebar card */
.wc-retreat-card{background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 2px 16px rgba(58,48,42,.08)}
.wc-retreat-card-hero{height:160px;background:linear-gradient(135deg,var(--ol),var(--v));position:relative;overflow:hidden}
.wc-retreat-card-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.wc-retreat-card-hero-ov{position:absolute;inset:0;background:linear-gradient(to top,rgba(58,48,42,.85),transparent 55%)}
.wc-retreat-card-hero-txt{position:absolute;bottom:0;left:0;right:0;padding:1rem 1.25rem}
.wc-retreat-card-body{padding:1.25rem}
.wc-retreat-card-dates{font-size:.6rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--g);margin-bottom:.5rem}
.wc-retreat-card-title{font-family:"Playfair Display",serif;font-size:1.15rem;font-weight:500;color:var(--v);margin-bottom:.375rem;line-height:1.25}
.wc-retreat-card-type{font-size:.6rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--vm);margin-bottom:1rem}
.wc-retreat-card-bar{height:4px;background:var(--sd);border-radius:9999px;overflow:hidden;margin-bottom:.75rem}
.wc-retreat-card-bar-fill{height:100%;border-radius:9999px;transition:width .4s ease}
.wc-retreat-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:.875rem}
.wc-retreat-card-price{font-family:"Playfair Display",serif;font-size:1.2rem;font-weight:500;color:var(--v)}
.wc-retreat-card-pp{font-size:.5rem;color:var(--vm);margin-left:2px;text-transform:uppercase;letter-spacing:.06em}
@media(max-width:900px){
  #wc-cal-layout{grid-template-columns:1fr!important}
  #wc-cal-detail{position:static!important}
}


.gnav-dd-wrap{position:relative}
.gnav-dd{position:absolute;top:calc(100% + 2px);left:50%;transform:translateX(-50%) translateY(-6px);min-width:180px;background:#fff;border-radius:12px;box-shadow:0 8px 32px rgba(58,48,42,.12);padding:.5rem 0;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:200}
.gnav-dd-wrap:hover .gnav-dd,.gnav-dd-wrap:focus-within .gnav-dd{opacity:1;pointer-events:all;transform:translateX(-50%) translateY(0)}
/* Invisible hover-bridge across the trigger→menu gap so the dropdown doesn't close mid-move */
.gnav-dd::before{content:"";position:absolute;left:0;right:0;top:-12px;height:14px}
.gnav-dd-link{display:block;padding:.5rem 1.25rem;font-size:.75rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--vm);transition:color .15s,background .15s;text-decoration:none}
.gnav-dd-link:hover{color:var(--g);background:rgba(232,224,217,.5)}
.gnl-arr{font-size:.5rem;margin-left:2px;opacity:.5;transition:transform .2s;display:inline-block}
.gnav-dd-wrap:hover .gnl-arr{transform:rotate(180deg)}


.seo-nav{position:sticky;top:0;z-index:60;background:rgba(243,238,235,.97);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--sd);padding:0 2rem}
@media(max-width:768px){.seo-nav{padding:0 1rem}}
.seo-nav-inner{display:flex;align-items:center;justify-content:space-between;height:44px;max-width:1200px;margin:0 auto;gap:1rem}
.seo-bc{display:flex;align-items:center;gap:.375rem;flex:1;min-width:0;overflow:hidden}
.seo-bc-item{font-size:.6rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--vm);cursor:pointer;white-space:nowrap;transition:color .15s;background:none;border:none;padding:0}
.seo-bc-item:hover{color:var(--v)}.seo-bc-item.current{color:var(--v);cursor:default}
.seo-bc-sep{font-size:.55rem;color:rgba(58,48,42,.25);flex-shrink:0}
.seo-nav-links{display:flex;align-items:center;gap:1.25rem}
@media(max-width:640px){.seo-nav-links{display:none}}
.seo-nl{font-size:.6rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--vm);cursor:pointer;white-space:nowrap;transition:color .15s;background:none;border:none;padding:0}
.seo-nl:hover{color:var(--v)}.seo-nl.active{color:var(--v)}
.seo-nav-cta{font-size:.6rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;background:var(--g);color:var(--s);border-radius:9999px;padding:7px 14px;border:none;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:all .2s cubic-bezier(.34,1.56,.64,1)}
.seo-nav-cta:hover{background:var(--gl);transform:translateY(-1px)}
.related-activity{background:linear-gradient(135deg,var(--sd),rgba(243,238,235,.5));border:1px solid var(--sd);border-radius:20px;padding:2.5rem;margin:2rem 0;display:flex;align-items:center;gap:2rem;cursor:pointer;transition:all .3s cubic-bezier(.34,1.56,.64,1);text-decoration:none;width:100%;box-sizing:border-box}
.related-activity:hover{transform:translateY(-3px);box-shadow:0 12px 40px rgba(58,48,42,.1);border-color:var(--g)}
@media(max-width:640px){.related-activity{flex-direction:column;gap:1.25rem;text-align:center}}
.related-act-icon{width:52px;height:52px;border-radius:14px;background:rgba(110,123,91,.12);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.related-act-icon svg{width:26px;height:26px;stroke:var(--g);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.related-act-label{font-size:.55rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--g);margin-bottom:.375rem}
.related-act-title{font-family:"Playfair Display",serif;font-size:1.25rem;font-weight:500;color:var(--v);margin-bottom:.375rem;line-height:1.3}
.related-act-desc{font-size:.8rem;color:var(--vm);line-height:1.55}
.related-act-arrow{margin-left:auto;flex-shrink:0;width:36px;height:36px;border-radius:50%;background:var(--g);display:flex;align-items:center;justify-content:center;transition:all .2s}
@media(max-width:640px){.related-act-arrow{margin:0 auto}}
.related-activity:hover .related-act-arrow{background:var(--gl);transform:translateX(3px)}
.related-act-arrow svg{width:14px;height:14px;stroke:#fff;fill:none;stroke-width:2;stroke-linecap:round}
.internal-links-strip{display:flex;gap:.75rem;flex-wrap:wrap;padding:1.75rem 0;border-top:1px solid var(--sd);margin-top:2.5rem}
.il-chip{display:inline-flex;align-items:center;gap:.5rem;font-size:.65rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--g);background:rgba(110,123,91,.08);border:1px solid rgba(110,123,91,.15);border-radius:9999px;padding:8px 14px;cursor:pointer;transition:all .2s;background-color:transparent}
.il-chip svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;flex-shrink:0}
.il-chip:hover{background:rgba(110,123,91,.12);transform:translateY(-1px)}


/* ── LOGO ───────────────────────────────────────────────────────────── */
.wc-logo{display:block;width:auto}
.logo-wrap{display:flex;align-items:center;gap:.75rem;cursor:pointer;flex-shrink:0}.logo-brand{font-size:.7rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:rgba(243,238,235,.92);line-height:1.2}@media(max-width:480px){.logo-brand{display:none}}
.logo-wrap .wc-logo{height:44px;width:auto}
.logo-wrap-sm .wc-logo{height:36px;width:auto}
.logo-wrap-footer .wc-logo{height:56px;width:auto}

/* ── GLOBAL NAV REDESIGN ──────────────────────────────────────────────── */
.gnav{position:sticky;top:0;z-index:60;background:rgba(243,238,235,.95);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);display:flex;align-items:center;justify-content:space-between;padding:1rem 3rem;border-bottom:1px solid var(--sd)}
@media(max-width:900px){.gnav{padding:1rem 1.25rem}}
.gnav-links{display:flex;align-items:center;gap:2rem}
@media(max-width:768px){.gnav-links{display:none}}
/* Burger menu */
.gnav-burger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:4px;z-index:101}
@media(max-width:768px){.gnav-burger{display:flex}}
.gnav-burger span{display:block;width:22px;height:2px;background:var(--v);border-radius:2px;transition:all .3s cubic-bezier(.34,1.56,.64,1);transform-origin:center}
.gnav-burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.gnav-burger.open span:nth-child(2){opacity:0;transform:scaleX(0)}
.gnav-burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
/* Mobile drawer */
.gnav-mobile-drawer{position:fixed;inset:0;z-index:100;opacity:0;pointer-events:none;transition:opacity .3s}
.gnav-mobile-drawer.open{opacity:1;pointer-events:all}
.gnav-mobile-bd{position:absolute;inset:0;background:rgba(58,48,42,.85);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.gnav-mobile-panel{position:absolute;top:0;right:0;bottom:0;width:min(320px,90vw);background:var(--s);display:flex;flex-direction:column;transform:translateX(100%);transition:transform .35s cubic-bezier(.34,1.56,.64,1);overflow-y:auto;padding-bottom:env(safe-area-inset-bottom,0)}
.gnav-mobile-drawer.open .gnav-mobile-panel{transform:none}
.gnav-mobile-head{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--sd)}
.gnav-mobile-close{width:36px;height:36px;border-radius:50%;border:1px solid var(--sd);background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--v);transition:all .2s}
.gnav-mobile-close:hover{background:var(--sd)}
.gnav-mobile-nav{padding:1rem 0;flex:1}
.gnav-mobile-link{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1.5rem;font-size:.9rem;font-weight:500;color:var(--v);cursor:pointer;transition:all .15s;border:none;background:none;width:100%;text-align:left}
.gnav-mobile-link:hover,.gnav-mobile-link.active{color:var(--g);background:var(--sd)}
.gnav-mobile-link svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;opacity:.6}
.gnav-mobile-sub{padding:0 0 .5rem;overflow:hidden;max-height:0;transition:max-height .3s ease}
.gnav-mobile-sub.open{max-height:400px}
.gnav-mobile-sub-item{display:flex;align-items:center;gap:.75rem;padding:.625rem 1.5rem .625rem 2.5rem;cursor:pointer;transition:background .15s;border:none;background:none;width:100%;text-align:left}
.gnav-mobile-sub-item:hover{background:var(--sd)}
.gnav-mobile-sub-icon{width:28px;height:28px;border-radius:7px;background:var(--sd);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.gnav-mobile-sub-icon svg{width:13px;height:13px;stroke:var(--vm);fill:none;stroke-width:1.5;stroke-linecap:round}
.gnav-mobile-sub-label{font-size:.8rem;color:var(--vm)}
.gnav-mobile-footer{padding:1.25rem 1.5rem;border-top:1px solid var(--sd)}
.gnav-mobile-cta{width:100%;padding:13px;border-radius:12px;background:var(--g);color:var(--s);border:none;cursor:pointer;font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;transition:all .2s}
.gnav-mobile-cta:hover{background:var(--gl)}

/* ── LNAV → now uses gnav logo on about/venue/retreats ────────────────── */
.lnav{position:sticky;top:0;z-index:60;background:rgba(243,238,235,.97);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--sd);padding:0 3rem;display:flex;align-items:center;justify-content:space-between;height:54px}
@media(max-width:768px){.lnav{padding:0 1.25rem}}
.lnav-logo{flex-shrink:0}
.lnav-logo .wc-logo{height:32px;width:auto}
.lnav-links{display:flex;gap:1.75rem;align-items:center}
@media(max-width:768px){.lnav-links{display:none}}
.lnl{font-size:.65rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--vm);cursor:pointer;transition:color .15s;white-space:nowrap;background:none;border:none;padding:0}
.lnl:hover,.lnl.active{color:var(--v)}
.lnav-cta{font-size:.6rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;background:var(--g);color:var(--s);border-radius:9999px;padding:8px 16px;border:none;cursor:pointer;transition:all .2s;white-space:nowrap}
.lnav-burger{display:none;flex-direction:column;gap:4px;background:none;border:none;cursor:pointer;padding:4px}
@media(max-width:768px){.lnav-burger{display:flex}}
.lnav-burger span{display:block;width:20px;height:1.5px;background:var(--v);border-radius:2px;transition:all .3s cubic-bezier(.34,1.56,.64,1);transform-origin:center}
.lnav-burger.open span:nth-child(1){transform:translateY(5.5px) rotate(45deg)}
.lnav-burger.open span:nth-child(2){opacity:0}
.lnav-burger.open span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}

/* ── NEWSLETTER COMPONENT ─────────────────────────────────────────────── */
.newsletter-section{background:var(--v);padding:clamp(2.5rem,5vw,4rem) 0}
.newsletter-inner{max-width:640px;margin:0 auto;text-align:center;padding:0 2rem}
.newsletter-eyebrow{font-size:.6rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:rgba(243,238,235,.45);margin-bottom:1rem}
.newsletter-title{font-family:"Playfair Display",serif;font-size:clamp(1.75rem,4vw,2.5rem);font-weight:400;color:var(--s);margin-bottom:.875rem;line-height:1.2}
.newsletter-sub{font-size:.875rem;color:rgba(243,238,235,.55);line-height:1.65;margin-bottom:2.25rem;max-width:480px;margin-left:auto;margin-right:auto}
.newsletter-form{display:flex;gap:.625rem;max-width:440px;margin:0 auto}
@media(max-width:560px){.newsletter-form{flex-direction:column}}
.newsletter-input{flex:1;padding:14px 18px;border-radius:12px;border:1px solid rgba(243,238,235,.15);background:rgba(243,238,235,.06);color:var(--s);font-size:.875rem;font-family:"DM Sans",sans-serif;outline:none;transition:border-color .2s}
.newsletter-input::placeholder{color:rgba(243,238,235,.35)}
.newsletter-input:focus{border-color:rgba(243,238,235,.35)}
.newsletter-btn{padding:14px 22px;border-radius:12px;background:var(--g);color:var(--s);border:none;cursor:pointer;font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;transition:all .2s cubic-bezier(.34,1.56,.64,1);flex-shrink:0}
.newsletter-btn:hover{background:var(--gl);transform:translateY(-1px)}
.newsletter-note{font-size:.625rem;color:rgba(243,238,235,.3);margin-top:1rem;letter-spacing:.04em}
.newsletter-success{display:none;text-align:center;padding:1rem}
.newsletter-success-icon{width:48px;height:48px;border-radius:50%;background:rgba(110,123,91,.2);display:flex;align-items:center;justify-content:center;margin:0 auto .875rem}
.newsletter-success p{font-family:"Playfair Display",serif;font-size:1.1rem;color:var(--s);margin-bottom:.375rem}
.newsletter-success small{font-size:.75rem;color:rgba(243,238,235,.5)}

/* ── FEATURED RETREAT COMPONENT ───────────────────────────────────────── */
.feat-retreat{background:var(--sd);padding:clamp(2.25rem,4.5vw,3.75rem) 0}
.feat-retreat-inner{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:stretch}
@media(max-width:900px){.feat-retreat-inner{grid-template-columns:1fr;gap:2rem;align-items:start}}
.feat-retreat-img{position:relative;border-radius:20px;overflow:hidden;aspect-ratio:4/3}
.feat-retreat-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s}
.feat-retreat:hover .feat-retreat-img img{transform:scale(1.04)}
.feat-retreat-img-ov{position:absolute;inset:0;background:linear-gradient(to bottom,transparent 40%,rgba(58,48,42,.6))}
.feat-retreat-badge{position:absolute;top:1.25rem;left:1.25rem;font-size:.55rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;background:var(--g);color:var(--s);padding:5px 10px;border-radius:9999px}
.feat-retreat-body{padding:.5rem 0;display:flex;flex-direction:column}
.feat-retreat-meta{margin-top:auto}
@media(max-width:900px){.feat-retreat-meta{margin-top:1.5rem}}
.feat-retreat-eyebrow{font-size:.6rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--g);margin-bottom:.875rem}
.feat-retreat-title{font-family:"Playfair Display",serif;font-size:clamp(1.75rem,3.5vw,2.5rem);font-weight:500;color:var(--v);line-height:1.15;margin-bottom:.875rem}
.feat-retreat-desc{font-size:.9rem;color:var(--vm);line-height:1.7;margin-bottom:1.5rem}
.feat-retreat-meta{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:2rem}
.feat-retreat-meta-item{display:flex;align-items:center;gap:.5rem;font-size:.72rem;color:var(--vm)}
.feat-retreat-meta-item svg{width:14px;height:14px;stroke:var(--g);fill:none;stroke-width:1.5;stroke-linecap:round;flex-shrink:0}
.feat-retreat-actions{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}
.feat-retreat-price{font-family:"Playfair Display",serif;font-size:2rem;font-weight:500;color:var(--v)}
.feat-retreat-price small{font-size:.6rem;font-weight:400;color:var(--vm);letter-spacing:.06em;text-transform:uppercase;display:block;margin-top:2px}

/* ── LAYOUT / OVERFLOW FIXES ──────────────────────────────────────────── */
* {box-sizing:border-box}
.page{overflow-x:hidden}
.wrap{max-width:1200px;margin:0 auto;padding:0 clamp(1.25rem,4vw,3rem)}
img{max-width:100%;height:auto}
/* About / Venue specific fixes */
#page-about .lnav,#page-venue .lnav,#page-retreats-page .lnav{position:sticky;top:0}
/* team cards use the photo-on-top .team-* rules defined earlier (centered card). */


/* Cross-retreat grid — responsive fix */
.xr-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
@media(max-width:768px){.xr-grid{grid-template-columns:1fr;gap:.75rem}}

/* Shero banner padding improvements */
.shero{position:relative;height:clamp(360px,46vw,560px);overflow:hidden}
.shero-content{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(1.5rem,4vw,3.5rem) clamp(1.5rem,4vw,3rem)}
@media(max-width:768px){.shero-content{padding:1.5rem 1.25rem}}
.shero-content .sh{margin-bottom:1.5rem}

.page,.page.act{display:block!important;opacity:1!important}
.seo-nav{position:sticky;top:56px;z-index:50}
a.gnl,a.gnav-dd-item,a.gnav-mobile-nav-item,a.gnav-mobile-cta,a.logo-wrap,a.seo-bc-item,a.seo-nl,a.seo-nav-cta-link{text-decoration:none}
.seo-nav-cta-link{font-size:.6rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;background:var(--g);color:var(--s);border-radius:9999px;padding:7px 14px;display:inline-block;transition:all .2s}

/* ── RETREAT DETAIL PAGE STYLES ──────────────────────────────────────── */
.detail-grid{display:grid;grid-template-columns:1fr 380px;gap:2.5rem;align-items:start}@media(max-width:1024px){.detail-grid{grid-template-columns:1fr}}.detail-main{min-width:0}.detail-sidebar{position:sticky;top:80px}@media(max-width:1024px){.detail-sidebar{position:static}}
.detail-stats{display:flex;flex-wrap:wrap;gap:1.5rem;margin-top:1.5rem}.detail-stat{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:rgba(243,238,235,.7)}.detail-stat svg{width:14px;height:14px;stroke:var(--gl);fill:none;stroke-width:1.5}
.detail-section{margin-bottom:3rem}.detail-section-title{font-family:"Playfair Display",serif;font-size:1.3rem;font-weight:500;color:var(--v);margin-bottom:1.25rem}
.amenities-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}@media(max-width:560px){.amenities-grid{grid-template-columns:1fr}}.amenity-item{display:flex;align-items:center;gap:.625rem;padding:.75rem 1rem;background:#fff;border-radius:10px;border:1px solid var(--sd);font-size:.8rem;color:var(--v)}.amenity-item svg{width:16px;height:16px;stroke:var(--g);fill:none;stroke-width:1.5;flex-shrink:0}
.detail-tags{display:flex;flex-wrap:wrap;gap:.375rem}.detail-tag{font-size:.6rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;padding:5px 12px;border-radius:9999px;border:1px solid var(--sd);color:var(--vm);background:var(--s)}
.bk-card{background:#fff;border-radius:18px;box-shadow:0 2px 16px rgba(58,48,42,.1);overflow:hidden}.bk-header{padding:1.25rem 1.5rem;border-bottom:1px solid var(--sd)}.bk-price{font-family:"Playfair Display",serif;font-size:2rem;font-weight:500;color:var(--v)}.bk-price-label{font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--vm)}.bk-details{padding:1.25rem 1.5rem;border-bottom:1px solid var(--sd)}.bk-row{display:flex;justify-content:space-between;padding:.375rem 0}.bk-row-label{font-size:.75rem;color:var(--vm)}.bk-row-value{font-size:.75rem;font-weight:500;color:var(--v)}.bk-status{display:flex;align-items:center;gap:5px;margin-top:.5rem}.bk-status-dot{width:6px;height:6px;border-radius:50%}
.ck-body{padding:1.5rem}.ck-steps{display:flex;align-items:center;gap:0;margin-bottom:1.5rem}.ck-step{flex:1;text-align:center;position:relative}.ck-step-num{width:28px;height:28px;border-radius:50%;border:2px solid var(--sd);display:inline-flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:600;color:var(--vm);background:#fff;position:relative;z-index:1;transition:all .3s}.ck-step.active .ck-step-num{border-color:var(--g);color:var(--g);background:rgba(182,115,74,.08)}.ck-step.done .ck-step-num{border-color:var(--g);background:var(--g);color:#fff}.ck-step-label{font-size:.5rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--vm);margin-top:.375rem;display:block}.ck-step-line{position:absolute;top:14px;left:50%;right:-50%;height:2px;background:var(--sd);z-index:0}.ck-step.done .ck-step-line{background:var(--g)}.ck-step:last-child .ck-step-line{display:none}
.ck-field{margin-bottom:.875rem}.ck-label{display:block;font-size:.575rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--vm);margin-bottom:.35rem}.ck-input{width:100%;padding:10px 13px;border:1.5px solid var(--sd);border-radius:9px;font-size:.875rem;color:var(--v);background:#fff;outline:none;transition:border-color .15s,box-shadow .15s;font-family:"DM Sans",sans-serif}.ck-input:focus{border-color:var(--g);box-shadow:0 0 0 3px rgba(182,115,74,.1)}.ck-input::placeholder{color:var(--vm)}.ck-textarea{min-height:70px;resize:vertical;line-height:1.5}.ck-field-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.ck-btn{width:100%;font-size:.6875rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;background:var(--g);color:#fff;border-radius:11px;padding:13px;transition:all .2s cubic-bezier(.34,1.56,.64,1);cursor:pointer;border:none}.ck-btn:hover{background:var(--gl);transform:translateY(-1px)}.ck-btn-back{width:100%;margin-top:.5rem;font-size:.6875rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase;border:1.5px solid var(--sd);color:var(--vm);border-radius:11px;padding:11px;transition:all .15s;cursor:pointer;background:transparent}.ck-btn-back:hover{border-color:var(--vm);color:var(--v)}
.ck-enquiry-link{display:block;text-align:center;font-size:.65rem;color:var(--vm);margin-top:1rem;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.ck-enquiry-link:hover{color:var(--g)}.ck-welcome{background:rgba(110,123,91,.08);border-radius:8px;padding:.75rem 1rem;margin-bottom:1rem;font-size:.75rem;color:var(--ol);display:none}.ck-welcome.show{display:block}
.ck-type-grid{display:grid;grid-template-columns:1fr 1fr;gap:.625rem;margin-bottom:1rem}.ck-type-btn{border:1.5px solid var(--sd);border-radius:11px;padding:.75rem;text-align:center;cursor:pointer;transition:all .15s;background:transparent;font-size:.6875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--v)}.ck-type-btn:hover{border-color:var(--g)}.ck-type-btn.active{border-color:var(--g);background:rgba(182,115,74,.08)}
.ck-summary{background:var(--s);border-radius:10px;padding:.875rem;margin-bottom:1rem}.ck-sum-row{display:flex;justify-content:space-between;padding:2.5px 0;font-size:.75rem}.ck-sum-label{color:var(--vm)}.ck-sum-value{font-weight:500;color:var(--v)}.ck-sum-total{border-top:1px solid var(--sd);padding-top:.5rem;margin-top:.5rem}.ck-sum-total .ck-sum-label{font-weight:600;color:var(--v)}.ck-sum-total .ck-sum-value{font-family:"Playfair Display",serif;font-size:1rem;color:var(--g)}
.ck-stepper{display:flex;align-items:center;gap:.75rem;margin-bottom:.875rem}.ck-step-btn{width:30px;height:30px;border-radius:50%;border:1.5px solid var(--sd);background:#fff;display:flex;align-items:center;justify-content:center;font-size:.9rem;color:var(--vm);transition:all .15s;cursor:pointer}.ck-step-btn:hover{border-color:var(--g);color:var(--g)}.ck-step-val{font-size:1rem;font-weight:600;color:var(--v);min-width:22px;text-align:center}
.ck-stripe{background:linear-gradient(135deg,#2c2318,#5a4a3a);border-radius:11px;padding:1rem;margin-bottom:1rem}.ck-card-label{font-size:.48rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:rgba(245,240,235,.3);margin-bottom:.5rem}.ck-card-field{background:rgba(245,240,235,.1);border:1px solid rgba(245,240,235,.15);border-radius:7px;padding:10px 13px;font-size:.85rem;color:rgba(245,240,235,.4);font-family:monospace;letter-spacing:.06em}.ck-card-row{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-top:.5rem}
.ck-success{text-align:center;padding:.875rem 0}.ck-success-icon{width:60px;height:60px;border-radius:50%;background:rgba(110,123,91,.12);display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;font-size:1.5rem}.ck-success-title{font-family:"Playfair Display",serif;font-size:1.2rem;font-weight:500;color:var(--v);margin-bottom:.5rem}.ck-success-body{font-size:.8rem;color:var(--vm);line-height:1.6}
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}@media(max-width:900px){.related-grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.related-grid{grid-template-columns:1fr}}

/* ── RT RETREAT LISTING STYLES ───────────────────────────────────────── */
.rt-date-filter{display:flex;align-items:center;gap:1rem;padding:1rem 0;flex-wrap:wrap}
.rt-date-filter-label{font-size:.5875rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--vm);flex-shrink:0}
.rt-date-filter-inputs{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.rt-date-input{padding:9px 13px;border:1.5px solid var(--sd);border-radius:10px;font-size:.8rem;font-weight:400;color:var(--v);background:#fff;font-family:"DM Sans",sans-serif;outline:none;transition:border-color .2s,box-shadow .2s;min-width:0;width:150px;cursor:pointer}
.rt-date-input:focus{border-color:var(--g);box-shadow:0 2px 12px rgba(182,115,74,.12)}
.rt-date-input::-webkit-calendar-picker-indicator{opacity:.5;cursor:pointer}
.rt-date-sep{font-size:.7rem;color:var(--vm);flex-shrink:0}
.rt-date-clear{font-size:.6rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--g);background:none;border:1px solid var(--g);border-radius:9999px;padding:7px 14px;cursor:pointer;transition:all .2s;opacity:0;pointer-events:none}
.rt-date-clear.show{opacity:1;pointer-events:all}
.rt-date-clear:hover{background:var(--g);color:var(--s)}
.rtcard{transition:opacity .3s ease,transform .3s ease}
@media(max-width:560px){
  .rt-date-filter{flex-direction:column;align-items:flex-start;gap:.5rem}
  .rt-date-input{width:100%;max-width:180px}
}
.rt-container{max-width:1280px;margin:0 auto;padding:0 3rem}
@media(max-width:768px){.rt-container{padding:0 1.25rem}}
.rt-search-wrap{padding:1.25rem 0 0}
.rt-search-bar{display:flex;align-items:center;gap:.75rem;background:#fff;border:1.5px solid var(--sd);border-radius:14px;padding:.8125rem 1.125rem;transition:border-color .2s,box-shadow .2s;box-shadow:0 1px 6px rgba(58,48,42,.05)}
.rt-search-bar:focus-within{border-color:var(--g);box-shadow:0 4px 20px rgba(182,115,74,.14)}
.rt-search-input{flex:1;font-size:.9375rem;font-weight:300;color:var(--v);background:transparent;border:none;outline:none;min-width:0;font-family:"DM Sans",sans-serif}
.rt-search-input::placeholder{color:var(--vm)}
.rt-search-clear{width:22px;height:22px;border-radius:50%;background:var(--sd);display:none;align-items:center;justify-content:center;flex-shrink:0;font-size:.65rem;color:var(--vm);transition:background .15s;border:none;cursor:pointer}
.rt-search-clear.show{display:flex}
.rt-filter-row{display:flex;align-items:center;gap:.375rem;padding:.875rem 0;overflow-x:auto;scrollbar-width:none}
.rt-filter-row::-webkit-scrollbar{display:none}
.rt-filter-label{font-size:.5875rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--vm);flex-shrink:0;margin-right:.25rem}
.rt-chip{display:inline-flex;align-items:center;gap:5px;font-size:.6875rem;font-weight:500;letter-spacing:.04em;padding:6px 13px;border-radius:9999px;border:1.5px solid var(--sd);background:#fff;color:var(--vm);transition:all .15s;white-space:nowrap;flex-shrink:0;cursor:pointer}
.rt-chip:hover{border-color:var(--g);color:var(--g);background:rgba(182,115,74,.05)}
.rt-chip.active{background:var(--g);border-color:var(--g);color:#fff}
.rt-chip[data-rtf="all"].active{background:var(--v);border-color:var(--v)}
.rt-filter-stack{display:flex;flex-direction:column;gap:.25rem;padding:.25rem 0 .5rem}
.rt-chip-dot{width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.75}
.rt-main-grid{display:flex;flex-direction:column;gap:1.75rem;padding:1.5rem 0 4rem}
@media(min-width:1024px){.rt-main-grid{flex-direction:row;align-items:flex-start;gap:2rem}
/* The calendar sidebar moved first in the DOM so mobile (column layout) shows
   it above the retreat cards per tester feedback - restore the original
   cards-left/calendar-right order on desktop (row layout), where that DOM
   change would otherwise flip left/right too. */
.rt-col-list{order:1}.rt-col-sidebar{order:2}}
.rt-col-list{flex:1;min-width:0}
.rt-col-sidebar{width:100%}
@media(min-width:1024px){.rt-col-sidebar{width:352px;flex-shrink:0;position:sticky;top:74px}}
.rt-results-bar{display:flex;align-items:center;justify-content:space-between;padding:.625rem 0 1rem;border-bottom:1px solid var(--sd);margin-bottom:1.125rem}
.rt-results-count{font-size:.75rem;font-weight:500;color:var(--vm)}
.rt-results-count strong{color:var(--v);font-weight:600}
.rt-no-results{text-align:center;padding:3.5rem 1.5rem;font-family:"Playfair Display",serif;font-size:1.1rem;color:var(--vm);line-height:1.6}
.rt-list{display:grid;grid-template-columns:1fr;gap:1rem}
@media(min-width:720px) and (max-width:1023px){.rt-list{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.rt-list{grid-template-columns:repeat(2,1fr);gap:1.25rem}}
@media(min-width:1400px){.rt-list{grid-template-columns:repeat(3,1fr)}}
.rtcard{background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 1px 8px rgba(58,48,42,.07);transition:box-shadow .25s,border-color .25s;border:1.5px solid transparent}
.rtcard:hover{box-shadow:0 6px 28px rgba(58,48,42,.11)}
.rtcard.is-sel{border-color:var(--g);box-shadow:0 6px 28px rgba(182,115,74,.18)}
.rtcard-img{position:relative;overflow:hidden;height:196px;background:linear-gradient(135deg,var(--ol),var(--v))}
@media(min-width:480px){.rtcard-img{height:210px}}
.rtcard-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.25,.46,.45,.94)}
.rtcard:hover .rtcard-img img{transform:scale(1.04)}
.rtcard-ov{position:absolute;inset:0;background:linear-gradient(to top,rgba(58,48,42,.78) 0%,rgba(58,48,42,.12) 38%,transparent 70%)}
.rtcard-badges{position:absolute;top:12px;left:12px;right:12px;display:flex;justify-content:space-between;align-items:flex-start;gap:6px}
.rtbadge{display:inline-flex;align-items:center;gap:4px;font-size:.5875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:9999px;backdrop-filter:blur(8px)}
.rtbadge-type{background:rgba(245,240,235,.18);color:var(--s);border:1px solid rgba(245,240,235,.2)}
.rtbadge-diff{background:rgba(44,35,24,.52);color:var(--sd)}
.rtbadge-diff.easy{background:rgba(110,123,91,.45)}.rtbadge-diff.mod{background:rgba(182,115,74,.45)}.rtbadge-diff.hard{background:rgba(58,48,42,.6)}
.rtcard-title{position:absolute;bottom:0;left:0;right:0;padding:1.125rem 1.25rem}
.rtcard-dest{font-size:.5875rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--gl);margin-bottom:3px}
.rtcard-name{font-family:"Playfair Display",serif;font-size:1.175rem;font-weight:500;color:var(--s);line-height:1.2}
.rtcard-tagline{font-size:.82rem;font-weight:400;line-height:1.55;color:var(--vm);margin:0 0 .875rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.rtcard-body{padding:1.125rem 1.25rem}
.rtcard-meta{display:flex;flex-wrap:wrap;gap:.625rem 1.125rem;margin-bottom:.875rem}
.rtcard-meta-i{display:flex;align-items:center;gap:4px;font-size:.6875rem;color:var(--vm)}
.rtcard-meta-i svg{width:12px;height:12px;flex-shrink:0}
.rtcard-tags{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.875rem}
.rtcard-tag{font-size:.5875rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:9999px;border:1px solid var(--sd);color:var(--vm);background:var(--s)}
.rt-cap-wrap{margin-bottom:1rem}
.rt-cap-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:.375rem}
.rt-cap-status{display:flex;align-items:center;gap:5px;font-size:.6875rem;font-weight:600}
.rt-cap-dot{width:6px;height:6px;border-radius:50%}
.rt-cap-spots{font-size:.6875rem;color:var(--vm)}
.rt-cap-bar{height:3.5px;background:var(--sd);border-radius:9999px;overflow:hidden}
.rt-cap-fill{height:100%;border-radius:9999px;transition:width .4s cubic-bezier(.25,.46,.45,.94)}
.rt-s-avail{color:var(--rt-avail)}.rt-s-filling{color:var(--rt-filling)}.rt-s-almostfull{color:var(--rt-almostfull)}.rt-s-soldout{color:var(--rt-soldout)}
.rt-f-avail{background:var(--rt-avail)}.rt-f-filling{background:var(--rt-filling)}.rt-f-almostfull{background:var(--rt-almostfull)}.rt-f-soldout{background:var(--rt-soldout)}
.rtcard-footer{display:flex;align-items:center;justify-content:space-between;gap:.875rem;padding-top:.875rem;border-top:1px solid var(--sd);flex-wrap:wrap;row-gap:.75rem}
.rtcard-price{display:flex;align-items:baseline;gap:3px}
.rtcard-price-val{font-family:"Playfair Display",serif;font-size:1.4rem;font-weight:500;color:var(--v)}
.rtcard-price-pp{font-size:.5875rem;color:var(--vm);letter-spacing:.06em;text-transform:uppercase}
.rtcard-actions{display:flex;gap:.5rem;align-items:center;margin-left:auto;flex-shrink:0}
.btn-rt-view,.btn-rt-book{white-space:nowrap}

/* ── ROTATING RETREAT CARD (photo rolls through key data) ── */
.rtcard-stage{position:relative;overflow:hidden;height:236px;background:var(--v)}
@media(min-width:480px){.rtcard-stage{height:252px}}
.rtcard-track{display:flex;height:100%;transition:transform .55s cubic-bezier(.45,.05,.2,1);will-change:transform}
.rtcard-panel{flex:0 0 100%;height:100%;position:relative}
.rtcard-pphoto{display:block;text-decoration:none}
.rtcard-pphoto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.rtcard-pinfo{background:var(--v);color:var(--s);padding:1.5rem 1.4rem;display:flex;flex-direction:column;justify-content:center}
.rtp-eyebrow{font-size:.58rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--gl);margin:0 0 1.1rem}
.rtp-rows{display:flex;flex-direction:column;gap:.65rem}
.rtp-row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding-bottom:.6rem;border-bottom:1px solid rgba(243,238,235,.12)}
.rtp-row:last-child{padding-bottom:0;border-bottom:none}
.rtp-k{font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(243,238,235,.5);flex-shrink:0}
.rtp-v{font-family:"Playfair Display",serif;font-size:1rem;font-weight:500;color:var(--s);text-align:right}
.rtp-tags{display:flex;flex-wrap:wrap;gap:.45rem}
.rtp-chip{font-size:.72rem;padding:.4rem .75rem;border-radius:9999px;background:rgba(243,238,235,.1);color:var(--s);border:1px solid rgba(243,238,235,.16)}
.rtp-avail{display:flex;flex-direction:column;gap:.85rem}
.rtp-avail-top{display:flex;justify-content:space-between;align-items:center;gap:.75rem}
.rtp-avail-top .rt-cap-status{font-size:.8rem}
.rtp-spots{font-size:.8rem;color:rgba(243,238,235,.7)}
.rtp-avail .rt-cap-bar{background:rgba(243,238,235,.18)}
.rtp-avail-note{font-size:.72rem;color:var(--gl);margin:0}
.rtcard-dots{display:flex;justify-content:center;gap:6px;padding:.7rem 0 .15rem}
.rtcard-dot{width:6px;height:6px;border-radius:9999px;background:rgba(58,48,42,.22);border:none;padding:0;cursor:pointer;transition:width .2s,background .2s}
.rtcard-dot.is-on{width:18px;background:var(--v)}
.rtcard-foot{display:flex;align-items:center;justify-content:space-between;gap:.5rem 0;padding:.35rem 1.25rem 1.15rem;flex-wrap:wrap}
.rtcard-foot .btn-rt-view{flex-shrink:0}
.rtcard-foot .rtcard-price{flex-shrink:0}
@media(prefers-reduced-motion:reduce){.rtcard-track{transition:none}}
/* Homepage: three equal rotating cards (overrides the 2fr/1fr hero layout) */
.rgrid.rgrid--equal{grid-template-columns:repeat(3,1fr);gap:1.25rem}
@media(max-width:900px){.rgrid.rgrid--equal{grid-template-columns:1fr}}
.btn-rt-view{font-size:.6875rem;font-weight:500;letter-spacing:.06em;padding:9px 18px;border-radius:9999px;border:1.5px solid var(--sd);color:var(--vm);transition:all .15s;cursor:pointer;background:transparent}
.btn-rt-view:hover{border-color:var(--v);color:var(--v)}
.btn-rt-view.sel{border-color:var(--g);color:var(--g);background:rgba(182,115,74,.06)}
.btn-rt-book{font-size:.6875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;background:var(--v);color:var(--s);border-radius:9999px;padding:9px 18px;transition:all .2s cubic-bezier(.34,1.56,.64,1);cursor:pointer;border:none}
.btn-rt-book:hover:not([disabled]){background:var(--g);transform:translateY(-1px)}
.btn-rt-book[disabled]{background:var(--sd);color:var(--vm);cursor:default;transform:none}
.rt-cal-card{background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 1px 8px rgba(58,48,42,.07)}
.rt-cal-head{padding:1.125rem 1.25rem .875rem;border-bottom:1px solid var(--sd)}
.rt-cal-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}
.rt-cal-title{font-family:"Playfair Display",serif;font-size:.9375rem;font-weight:500;color:var(--v)}
.rt-cal-sub{font-size:.625rem;color:var(--vm);margin-top:2px}
.rt-cal-nav{display:flex;gap:.375rem;align-items:center}
.rt-cal-nav-btn{width:30px;height:30px;border-radius:50%;border:1px solid var(--sd);background:var(--s);display:flex;align-items:center;justify-content:center;font-size:.875rem;color:var(--vm);transition:all .15s;cursor:pointer}
.rt-cal-nav-btn:hover{background:var(--sd)}
.rt-cal-month{font-size:.8125rem;font-weight:600;color:var(--v);letter-spacing:.02em;min-width:115px;text-align:center}
.rt-cal-dgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;padding:.875rem 1.25rem .625rem}
.rt-cal-dlbl{text-align:center;font-size:.5rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--vm);padding:.2rem 0}
.rt-cal-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:7px;font-size:.75rem;color:var(--vm);position:relative;transition:all .15s;cursor:default;user-select:none}
.rt-cal-day.clickable{cursor:pointer;color:var(--v)}
.rt-cal-day.clickable:hover{background:var(--s)}
.rt-cal-day.today .rt-dn{width:22px;height:22px;background:var(--v);color:var(--s);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.6875rem;font-weight:600}
.rt-cal-day.past{color:var(--sd);cursor:default}
.rt-cal-day.is-sel{background:var(--g)!important}
.rt-cal-day.is-sel .rt-dn{color:#fff!important;background:transparent!important;width:auto!important;height:auto!important}
.rt-cal-day.is-sel .rt-sd{background:rgba(255,255,255,.55)!important}
.rt-dn{font-size:.75rem;color:inherit;line-height:1}
.rt-sd{width:5px;height:5px;border-radius:50%;margin-top:2px;flex-shrink:0}
.rt-cal-legend{display:flex;flex-wrap:wrap;gap:.5rem 1rem;padding:.625rem 1.25rem .875rem;border-top:1px solid var(--sd);background:var(--s)}
.rt-leg-item{display:flex;align-items:center;gap:4px;font-size:.5rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--vm)}
.rt-leg-dot{width:6px;height:6px;border-radius:50%}
.rt-sel-panel{padding:1.125rem 1.25rem;border-top:1px solid var(--sd)}
/* Calendar header: stack title + month-nav on small screens so nothing crowds or clips, and clear the sticky nav */
@media(max-width:1023px){.rt-cal-card{scroll-margin-top:88px}}
@media(max-width:440px){
  .rt-cal-title-row{flex-direction:column;align-items:stretch;gap:.7rem}
  .rt-cal-nav{justify-content:space-between;width:100%}
  .rt-cal-month{min-width:0;flex:1}
}
.rt-sel-empty{text-align:center;padding:1.25rem .5rem;font-size:.8125rem;color:var(--vm);line-height:1.6}
.rt-sel-pill{background:var(--s);border-radius:10px;padding:.875rem;margin-bottom:.875rem}
.rt-sel-name{font-family:"Playfair Display",serif;font-size:.9375rem;font-weight:500;color:var(--v);margin-bottom:.2rem}
.rt-sel-meta{font-size:.6875rem;color:var(--vm)}
.rt-sel-status-row{display:flex;align-items:center;gap:6px;margin-top:.5rem}
.rt-warn-box{display:flex;align-items:center;gap:6px;font-size:.6875rem;font-weight:500;border-radius:8px;padding:.575rem .825rem;margin-bottom:.75rem}
.rt-warn-box svg{width:13px;height:13px;flex-shrink:0}
.rt-warn-amber{color:var(--rt-almostfull);background:rgba(182,115,74,.1)}
.rt-warn-red{color:var(--rt-soldout);background:rgba(138,58,42,.08)}
.rt-guests-row{margin-bottom:.875rem}
.rt-guests-lbl{font-size:.6rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--vm);display:block;margin-bottom:.375rem}
.rt-stepper{display:flex;align-items:center;gap:.75rem}
.rt-step-btn{width:30px;height:30px;border-radius:50%;border:1.5px solid var(--sd);background:#fff;display:flex;align-items:center;justify-content:center;font-size:.9rem;color:var(--vm);transition:all .15s;cursor:pointer}
.rt-step-btn:hover:not([disabled]){border-color:var(--g);color:var(--g)}
.rt-step-btn[disabled]{opacity:.3;cursor:default}
.rt-step-val{font-size:1rem;font-weight:600;color:var(--v);min-width:22px;text-align:center}
.rt-dep-summary{background:rgba(110,123,91,.07);border-radius:10px;padding:.875rem;margin-bottom:.875rem;border:1px solid rgba(110,123,91,.15)}
.rt-dep-row{display:flex;justify-content:space-between;padding:2.5px 0}
.rt-dep-lbl{font-size:.75rem;color:var(--vm)}
.rt-dep-val{font-size:.75rem;font-weight:500;color:var(--v)}
.rt-dep-total{border-top:1px solid rgba(110,123,91,.2);padding-top:.5rem;margin-top:.5rem}
.rt-dep-total .rt-dep-lbl{font-weight:600;color:var(--v)}
.rt-dep-total .rt-dep-val{font-family:"Playfair Display",serif;font-size:.9375rem;color:var(--g)}
.btn-rt-reserve{width:100%;font-size:.6875rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;background:var(--g);color:#fff;border-radius:11px;padding:13px;transition:all .2s cubic-bezier(.34,1.56,.64,1);cursor:pointer;border:none}
.btn-rt-reserve:hover:not([disabled]){background:var(--gl);transform:translateY(-1px)}
.btn-rt-reserve[disabled]{background:var(--sd);color:var(--vm);cursor:default;transform:none}
.btn-rt-enq{width:100%;margin-top:.5rem;font-size:.6875rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase;border:1.5px solid var(--sd);color:var(--vm);border-radius:11px;padding:11px;transition:all .15s;cursor:pointer;background:transparent}
.btn-rt-enq:hover{border-color:var(--vm);color:var(--v)}
.rt-trust{text-align:center;font-size:.5875rem;color:var(--vm);margin-top:.625rem;letter-spacing:.04em;text-transform:uppercase;line-height:1.5}
.rt-modal-ov{position:fixed;inset:0;z-index:300;display:flex;align-items:flex-end;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s}
@media(min-width:600px){.rt-modal-ov{align-items:center;padding:1rem}}
.rt-modal-ov.open{opacity:1;pointer-events:all}
.rt-modal-bd{position:absolute;inset:0;background:rgba(58,48,42,.6);backdrop-filter:blur(4px)}
.rt-modal{position:relative;background:#fff;z-index:1;width:100%;max-width:460px;border-radius:22px 22px 0 0;max-height:95svh;overflow-y:auto;transform:translateY(100%);transition:transform .35s cubic-bezier(.34,1.56,.64,1);padding:1.375rem 1.375rem 2rem}
@media(min-width:600px){.rt-modal{border-radius:22px;transform:scale(.96) translateY(8px)}}
.rt-modal-ov.open .rt-modal{transform:none}
.rt-modal-handle{width:38px;height:4px;background:var(--sd);border-radius:2px;margin:0 auto 1.25rem}
@media(min-width:600px){.rt-modal-handle{display:none}}
.rt-modal-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.25rem}
.rt-modal-title{font-family:"Playfair Display",serif;font-size:1.2rem;font-weight:500;color:var(--v)}
.rt-modal-sub{font-size:.75rem;color:var(--vm);margin-top:3px}
.rt-modal-x{width:30px;height:30px;border-radius:50%;background:var(--s);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s;cursor:pointer;border:none}
.rt-modal-x:hover{background:var(--sd)}
.rt-type-grid{display:grid;grid-template-columns:1fr 1fr;gap:.625rem;margin-bottom:1.25rem}
.rt-type-btn{border:1.5px solid var(--sd);border-radius:11px;padding:.875rem;text-align:center;cursor:pointer;transition:all .15s;background:transparent}
.rt-type-btn:hover{border-color:var(--g)}.rt-type-btn.active{border-color:var(--g);background:rgba(182,115,74,.08)}
.rt-type-icon{font-size:1.25rem;margin-bottom:.375rem}
.rt-type-label{font-size:.6875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--v)}
.rt-type-desc{font-size:.625rem;color:var(--vm);margin-top:2px}
.rt-fld{margin-bottom:.9375rem}
.rt-fld-label{display:block;font-size:.5875rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--vm);margin-bottom:.35rem}
.rt-fld-input{width:100%;padding:10.5px 13px;border:1.5px solid var(--sd);border-radius:9px;font-size:.9375rem;color:var(--v);background:#fff;outline:none;transition:border-color .15s,box-shadow .15s;font-family:"DM Sans",sans-serif}
.rt-fld-input:focus{border-color:var(--g);box-shadow:0 0 0 3px rgba(182,115,74,.1)}
.rt-fld-input::placeholder{color:var(--vm)}
.rt-fld-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.rt-fld-ta{min-height:75px;resize:vertical;line-height:1.5}
.rt-m-summary{background:var(--s);border-radius:10px;padding:.9375rem;margin-bottom:1.125rem}
.rt-m-sum-title{font-size:.5875rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--vm);margin-bottom:.625rem}
.rt-m-sum-row{display:flex;justify-content:space-between;padding:2.5px 0}
.rt-m-sum-lbl{font-size:.8125rem;color:var(--vm)}
.rt-m-sum-val{font-size:.8125rem;font-weight:500;color:var(--v)}
.rt-m-sum-total{border-top:1px solid var(--sd);padding-top:.5rem;margin-top:.5rem}
.rt-m-sum-total .rt-m-sum-lbl{font-weight:600;color:var(--v)}
.rt-m-sum-total .rt-m-sum-val{font-family:"Playfair Display",serif;font-size:1rem;color:var(--g)}
.rt-pm-row{display:flex;gap:.5rem;margin-bottom:1.125rem}
.rt-pm-btn{flex:1;padding:8.5px;border:1.5px solid var(--sd);border-radius:8px;font-size:.6875rem;font-weight:500;color:var(--vm);transition:all .15s;cursor:pointer;background:transparent}
.rt-pm-btn.active{border-color:var(--g);background:rgba(182,115,74,.07);color:var(--v)}
.rt-stripe-mock{background:linear-gradient(135deg,#2c2318,#5a4a3a);border-radius:11px;padding:1.0625rem;margin-bottom:1.125rem}
.rt-card-lbl{font-size:.48rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:rgba(245,240,235,.3);margin-bottom:.5rem}
.rt-card-field{background:rgba(245,240,235,.1);border:1px solid rgba(245,240,235,.15);border-radius:7px;padding:10px 13px;font-size:.85rem;color:rgba(245,240,235,.4);font-family:monospace;letter-spacing:.06em}
.rt-card-row{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-top:.5rem}
.rt-stripe-row{display:flex;align-items:center;gap:5px;margin-top:.625rem;opacity:.35}
.rt-stripe-lbl{font-size:.52rem;text-transform:uppercase;letter-spacing:.07em;color:#f5f0eb}
.btn-rt-pay{width:100%;font-size:.6875rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;background:var(--g);color:#fff;border-radius:11px;padding:14px;transition:all .2s cubic-bezier(.34,1.56,.64,1);cursor:pointer;border:none}
.btn-rt-pay:hover:not([disabled]){background:var(--gl);transform:translateY(-1px)}
.btn-rt-pay[disabled]{opacity:.5;cursor:default;transform:none}
.rt-secure{text-align:center;font-size:.575rem;color:var(--vm);margin-top:.625rem;letter-spacing:.06em;text-transform:uppercase}
.rt-success{text-align:center;padding:.875rem 0}
.rt-success-icon{width:60px;height:60px;border-radius:50%;background:rgba(110,123,91,.12);display:flex;align-items:center;justify-content:center;margin:0 auto 1.1rem;font-size:1.625rem}
.rt-success-title{font-family:"Playfair Display",serif;font-size:1.3rem;font-weight:500;color:var(--v);margin-bottom:.5rem}
.rt-success-body{font-size:.875rem;color:var(--vm);line-height:1.6;margin-bottom:1.25rem}
.rt-next-steps{background:var(--s);border-radius:10px;padding:.875rem;text-align:left;margin-bottom:1.25rem}
.rt-n-step{display:flex;gap:.625rem;padding:.4375rem 0;border-bottom:1px solid var(--sd);align-items:flex-start}
.rt-n-step:last-child{border-bottom:none}
.rt-n-num{width:18px;height:18px;border-radius:50%;background:var(--g);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.55rem;font-weight:600;flex-shrink:0;margin-top:1px}
.rt-n-text{font-size:.8125rem;color:var(--vm)}
.rt-toast{position:fixed;bottom:1.25rem;left:50%;transform:translateX(-50%) translateY(16px);background:var(--v);color:var(--s);border-radius:9999px;padding:.6875rem 1.375rem;font-size:.75rem;font-weight:500;box-shadow:0 6px 24px rgba(58,48,42,.22);opacity:0;pointer-events:none;transition:all .3s cubic-bezier(.34,1.56,.64,1);z-index:400;white-space:nowrap}
.rt-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
@keyframes rt-fu{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}

/* ── RETREAT GALLERY + VIDEO BAND ───────────────────────────────────── */
.rt-gal{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:1fr;gap:.5rem;aspect-ratio:2/1;border-radius:14px;overflow:hidden}
.rt-gal>figure{position:relative;margin:0;overflow:hidden;background:var(--s);cursor:pointer}
.rt-gal>figure:first-child{grid-column:span 2;grid-row:span 2}
.rt-gal img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.rt-gal>figure:hover img{transform:scale(1.05)}
.rt-gal>figure::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(58,48,42,.18),transparent 45%);opacity:0;transition:opacity .25s}
.rt-gal>figure:hover::after{opacity:1}
.rt-gal>figure::before{content:"";position:absolute;top:.6rem;right:.6rem;width:26px;height:26px;background:rgba(15,14,13,.55) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 3H5a2 2 0 0 0-2 2v3M16 3h3a2 2 0 0 1 2 2v3M21 16v3a2 2 0 0 1-2 2h-3M8 21H5a2 2 0 0 1-2-2v-3'/%3E%3C/svg%3E") center/14px no-repeat;border-radius:6px;opacity:0;transition:opacity .2s;pointer-events:none}
.rt-gal>figure:hover::before{opacity:1}
/* Mobile: a swipeable horizontal strip (not a squashed static grid) that guests can
   actually scroll through, with larger single-image tiles instead of tiny tiles. */
@media(max-width:640px){
  .rt-gal{display:flex;grid-template-columns:none;aspect-ratio:auto;overflow-x:auto;overflow-y:hidden;gap:.6rem;border-radius:0;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;touch-action:pan-x;scroll-padding-left:1rem;padding:0 1rem;margin:0 -1rem}
  .rt-gal::-webkit-scrollbar{display:none}
  .rt-gal>figure{flex:0 0 82%;aspect-ratio:4/3;border-radius:14px;scroll-snap-align:start}
  .rt-gal>figure:first-child{grid-column:auto;grid-row:auto}
}
/* Gallery lightbox */
.rt-lb-ov{position:fixed;inset:0;background:rgba(15,14,13,.92);z-index:500;display:flex;align-items:center;justify-content:center;padding:1rem;opacity:0;pointer-events:none;transition:opacity .25s;backdrop-filter:blur(4px)}
.rt-lb-ov.show{opacity:1;pointer-events:auto}
.rt-lb-fig{position:relative;max-width:min(1100px,94vw);max-height:88vh;margin:0}
.rt-lb-fig img{display:block;max-width:min(1100px,94vw);max-height:88vh;width:auto;height:auto;border-radius:10px;object-fit:contain}
.rt-lb-x{position:absolute;top:-2.75rem;right:0;width:40px;height:40px;border-radius:50%;background:rgba(243,238,235,.12);border:none;color:var(--s);font-size:1.4rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}
.rt-lb-x:hover{background:rgba(243,238,235,.22)}
.rt-lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;background:rgba(15,14,13,.5);border:1px solid rgba(243,238,235,.2);color:var(--s);font-size:1.3rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}
.rt-lb-nav:hover{background:rgba(15,14,13,.75)}
.rt-lb-prev{left:.75rem}.rt-lb-next{right:.75rem}
@media(max-width:640px){.rt-lb-x{top:-2.5rem;right:0}.rt-lb-nav{width:38px;height:38px}}
.rt-vid{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:16/9;background:var(--v)}
.rt-vid video{width:100%;height:100%;object-fit:cover;display:block}
.rt-vid-cap{position:absolute;left:1.25rem;bottom:1rem;color:var(--s);text-shadow:0 1px 16px rgba(0,0,0,.45)}
.rt-vid-cap .ey{color:var(--gl);margin-bottom:.25rem}
.rt-vid-cap p{font-family:"Playfair Display",serif;font-size:1.05rem;font-weight:500}

/* ── FOOTER REDESIGN ───────────────────────────────────────────────── */
.sf-band{display:grid;grid-template-columns:repeat(4,1fr);height:160px;overflow:hidden;border-top:1px solid rgba(243,238,235,.06);border-bottom:1px solid rgba(243,238,235,.06)}
.sf-band-i{overflow:hidden;position:relative}
.sf-band-i img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.sf-band-i:hover img{transform:scale(1.05)}
@media(max-width:640px){.sf-band{grid-template-columns:repeat(2,1fr);height:auto}.sf-band-i{aspect-ratio:4/3}}
.sf-mail{display:inline-block;margin-top:1.25rem;font-size:.78rem;letter-spacing:.04em;color:rgba(243,238,235,.7);text-decoration:none;border-bottom:1px solid rgba(243,238,235,.18);padding-bottom:2px;transition:color .15s,border-color .15s}
.sf-mail:hover{color:var(--s);border-color:var(--gl)}
.sf-ig{display:flex;align-items:center;gap:.5rem;margin-top:.9rem;font-size:.78rem;letter-spacing:.04em;color:rgba(243,238,235,.7);text-decoration:none;transition:color .15s}
.sf-ig svg{flex-shrink:0}.sf-ig:hover{color:var(--s)}
.food-gal{display:grid;grid-template-columns:repeat(5,1fr);gap:.6rem;margin-top:2.25rem}
.food-gal figure{margin:0;border-radius:10px;overflow:hidden;aspect-ratio:1/1}
.food-gal img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s}
.food-gal figure:hover img{transform:scale(1.05)}
@media(max-width:640px){.food-gal{grid-template-columns:repeat(2,1fr);gap:.5rem}}
.sf-nl-copy{font-size:.78rem;font-weight:300;line-height:1.65;color:rgba(243,238,235,.55);margin-bottom:1rem;max-width:24ch}
.sf-nl{display:flex;align-items:center;background:rgba(243,238,235,.05);border:1px solid rgba(243,238,235,.14);border-radius:9999px;padding:4px 5px 4px 16px;transition:border-color .15s}
.sf-nl:focus-within{border-color:var(--gl);background:rgba(243,238,235,.08)}
.sf-nl-i{flex:1;background:transparent;border:none;outline:none;color:var(--s);font-size:.78rem;font-family:"DM Sans",sans-serif;padding:7px 0;letter-spacing:.02em}
.sf-nl-i::placeholder{color:rgba(243,238,235,.35)}
.sf-nl-b{width:32px;height:32px;border-radius:50%;border:none;background:var(--g);color:var(--s);font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,transform .25s cubic-bezier(.34,1.56,.64,1);flex-shrink:0}
.sf-nl-b:hover{background:var(--gl);transform:translateX(2px)}
.sf-nl-success{display:none;font-size:.78rem;color:var(--gl);padding:.5rem 0;letter-spacing:.02em}
.sf-nl-success::before{content:"\2713\00a0\00a0";color:var(--gl)}
.fb{flex-wrap:wrap;gap:.5rem 1.25rem}
.fb a{color:rgba(243,238,235,.5);text-decoration:none;font-size:.65rem;letter-spacing:.08em;text-transform:uppercase;transition:color .15s}
.fb a:hover{color:var(--s)}
.fb-legal{display:flex;gap:1.25rem;flex-wrap:wrap}
@media(max-width:560px){.fb{flex-direction:column;align-items:flex-start}}

/* ── HERO + STAT LEGIBILITY OVERRIDES ────────────────────────────── */
.shero-ov{background:linear-gradient(18deg,rgb(0 0 0 / 85%) 0%,rgba(58,48,42,.35) 45%,rgb(255 255 255 / 55%) 100%)}
.detail-stat{font-weight:400;color:#fff}
.sub{font-weight:400}
.se.lt{font-weight:800}

/* ── DATA-DRIVEN RETREAT TEMPLATE ── */
#r-itin-tabs{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.5rem;margin-bottom:1.25rem;scrollbar-width:none}
#r-itin-tabs::-webkit-scrollbar{display:none}
/* Day tabs sit on the LIGHT page (not the dark itinerary box), so re-skin the
   .dtab pills for a light background — otherwise the inactive days are cream-on-cream. */
#r-itin-tabs .dtab{background:#fff;border:1px solid var(--sd);color:var(--vm)}
#r-itin-tabs .dtab .dtl{opacity:.75}
#r-itin-tabs .dtab:hover{color:var(--v);border-color:var(--g);background:#fff}
#r-itin-tabs .dtab.act{background:var(--g);color:var(--s);border-color:var(--g)}
/* The template drops the day content straight into .itw (no .ibody wrapper),
   so give #r-itin-body its own padding — content was flush to the box edges. */
#r-itin-body{padding:1.75rem}
@media(max-width:560px){#r-itin-body{padding:1.25rem}}
.rt-grid{display:grid;grid-template-columns:1fr;gap:2rem}
@media(min-width:900px){.rt-grid{grid-template-columns:1fr 360px;gap:3rem;align-items:start}}
#r-included{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.25rem}
@media(max-width:560px){#r-included{grid-template-columns:1fr}}
.rt-inc{background:#fff;border:1px solid rgba(58,48,42,.08);border-radius:12px;padding:1.25rem}
.rt-inc-t{font-family:'Playfair Display',serif;font-size:1rem;font-weight:600;color:var(--v);margin:0 0 .5rem}
.rt-inc-b{font-size:.85rem;line-height:1.55;color:var(--vm);margin:0}
.rt-faq{border-top:1px solid rgba(58,48,42,.1)}
.rt-faq .faq-item{border-bottom:1px solid rgba(58,48,42,.1)}
.rt-faq summary{list-style:none;cursor:pointer;padding:1rem 2rem 1rem 0;position:relative;font-weight:500;font-size:.98rem;color:var(--v)}
.rt-faq summary::-webkit-details-marker{display:none}
.rt-faq summary::after{content:"+";position:absolute;right:.25rem;top:50%;transform:translateY(-50%);font-size:1.3rem;color:var(--g);font-weight:400;transition:transform .2s}
.rt-faq .faq-item[open] summary::after{content:"–"}
.rt-faq summary:hover{color:var(--g)}
.rt-faq .faq-a{padding:0 0 1.1rem;color:var(--vm);font-size:.9rem;line-height:1.62;display:none}
.rt-faq .faq-item[open] .faq-a{display:block}
.rt-faq .faq-a p{margin:0}
/* FAQs page (native <details>): the global .faq-a{display:none} (for the JS accordion)
   was hiding answers even when open. Higher-specificity reveal fixes the dropdown. */
.faq-wrap .faq-item[open] .faq-a{display:block}
/* Mobile formatting fixes (Annabel feedback 2026-07-24). Authored 2-col grids and
   flex rows did not collapse on small screens. !important overrides the inline styles. */
@media(max-width:768px){
  .wc-stack-m{grid-template-columns:1fr !important;gap:1.75rem !important}
  .about-diff{padding:1.75rem !important}
  /* homepage 'Explore:' filter chips: 2x2 grid so all four are visible at once.
     'Explore:' label spans the full width on its own line above the chips. */
  .hero-explore{display:grid !important;grid-template-columns:1fr 1fr;gap:.5rem;align-items:stretch}
  .hero-explore>.ey{grid-column:1 / -1;margin:0 0 .1rem !important}
  .hero-explore .bdg{display:flex;align-items:center;justify-content:center;gap:4px}
  /* homepage 'Choose your adventure' header: stack heading and the All retreats link */
  .adventure-head{flex-direction:column !important;align-items:flex-start !important;gap:1rem !important;margin-bottom:2rem !important}
}
.rt-bk{background:#fff;border:1px solid rgba(58,48,42,.1);border-radius:16px;padding:1.5rem;box-shadow:0 4px 24px rgba(58,48,42,.07)}
@media(min-width:900px){.rt-bk{position:sticky;top:90px}}
.rt-bk-in{width:100%;padding:.7rem .85rem;border:1px solid rgba(58,48,42,.16);border-radius:8px;font-family:'DM Sans',sans-serif;font-size:.9rem;color:var(--ink);margin-bottom:.6rem;box-sizing:border-box}
.rt-bk-in:focus{outline:none;border-color:var(--g)}
/* Waiver + terms consent gate on the reserve form */
.rt-bk-agree{display:flex;gap:.55rem;align-items:flex-start;margin:0 0 .9rem;cursor:pointer}
.rt-bk-agree input{margin:.15rem 0 0;flex:0 0 auto;width:15px;height:15px;accent-color:var(--g);cursor:pointer}
.rt-bk-agree span{font-size:.74rem;line-height:1.5;color:var(--vm)}
.rt-bk-agree a{color:var(--g);text-decoration:underline}
#r-bk-submit[disabled]{opacity:.45;cursor:not-allowed}
#r-more{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin-top:1.5rem}
@media(max-width:640px){#r-more{grid-template-columns:1fr}}
.rt-more-card{display:block;text-decoration:none;color:inherit;background:#fff;border-radius:14px;overflow:hidden;border:1px solid rgba(58,48,42,.08);transition:transform .2s,box-shadow .2s}
.rt-more-card:hover{transform:translateY(-3px);box-shadow:0 10px 30px rgba(58,48,42,.1)}
.rt-more-img{height:170px;overflow:hidden}
.rt-more-img img{width:100%;height:100%;object-fit:cover;display:block}
.rt-more-body{padding:1.1rem 1.25rem}
.rt-more-name{font-family:'Playfair Display',serif;font-size:1.15rem;font-weight:600;color:var(--v);margin:.25rem 0}
.rt-more-price{font-size:.82rem;color:var(--vm);margin:0}

/* ============================================================
   Mobile fixes (Annabel feedback 2026-08-24)
   - SEO landing hero (.shero) title was clipped: bottom-anchored
     content overflowed the fixed hero height under the sticky header.
   - Card grids (best hikes / key climbs) spilled off the right edge.
   - Closed mobile nav drawer added ~193px of horizontal page scroll.
   ============================================================ */
@media(max-width:768px){
  /* Let the landing hero grow to fit its content so nothing clips. */
  .shero{height:auto;min-height:clamp(360px,62vh,520px)}
  .shero>img{position:absolute;inset:0;height:100%}
  .shero-content{position:relative;justify-content:center;padding-top:2.25rem;padding-bottom:2.5rem}
  /* Two-up card grids stack to a single column on phones. */
  [style*="grid-template-columns:1fr 1fr"]{grid-template-columns:1fr!important}
  /* The "HERO + STAT LEGIBILITY OVERRIDES" .shero-ov above fades to a WHITE stop
     at the bottom of the image - fine on wide desktop heroes where the text sits
     far from that edge, but on mobile the shorter/centred hero puts the orange
     eyebrow + headline text right over that lightened area, killing contrast
     (tester-reported: orange overlay text hard to read on mobile). Swap in a
     flat dark scrim on mobile only. */
  .shero-ov{background:linear-gradient(to bottom,rgba(58,48,42,.6) 0%,rgba(58,48,42,.72) 100%)}
}
/* Off-canvas mobile drawer must never widen the page. */
.gnav-mobile-drawer{overflow-x:hidden}

/* Feature image bands — lead pages with imagery, not walls of text
   (Annabel feedback 2026-08-24: images sat too low, pages too text-heavy).
   These double as auto-rotating carousels (.wc-carousel, see main.js). */
.rt-feature{margin:2rem 0 0;border-radius:14px;overflow:hidden;position:relative;aspect-ratio:16/9}
.lp-feature{margin:.5rem 0 3.5rem;border-radius:16px;overflow:hidden;position:relative;aspect-ratio:16/9}
.wc-carousel{position:relative;overflow:hidden}
.wc-carousel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;margin:0;opacity:0;transition:opacity .9s ease}
.wc-carousel img.active{opacity:1}
/* Before JS inits, show the first slide so there is no blank flash. */
.wc-carousel:not([data-wc-init]) img:first-child{opacity:1}
.wc-dots{position:absolute;bottom:12px;left:0;right:0;display:flex;gap:6px;justify-content:center;z-index:2}
.wc-dot{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.55);border:none;padding:0;cursor:pointer;transition:background .2s}
.wc-dot.active{background:#fff}

/* Links rendered inside CMS-edited rich-text fields (hero intros, FAQ answers)
   go through wc-content.js's sanitizer, which strips all styling/attributes
   except a checked href — so give them a consistent look here instead. */
.cms-rich a{color:var(--g);text-decoration:underline;text-decoration-style:dotted;text-decoration-color:rgba(110,123,91,.5);text-underline-offset:3px;transition:color .15s,text-decoration-color .15s}
.cms-rich a:hover{color:var(--v);text-decoration-color:var(--g)}
