/* Zen Boutique Retreat — "Paper Minimal" · papierweiß + ink + EIN earthy-zen accent
   Space Grotesk + Inter · burnt orange #C75B2A on warm sand · numbered sections, calm whitespace */
:root{
  --paper:#FBF8F2; --sand:#EFE7D8; --sand2:#E6DCC9; --card:#FFFFFF;
  --ink:#2E2A24; --ink2:#4A4034; --soft:#6A6051; --muted:#938875;
  --accent:#C75B2A; --accent-d:#A8481F; --accent-lt:#E07a45;
  --line:rgba(46,42,36,.14); --line2:rgba(46,42,36,.22);
  --wa:#1faa53; --wa-d:#178a43;
  --disp:"Space Grotesk",system-ui,sans-serif; --sans:"Inter",system-ui,sans-serif;
  --r:4px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--paper);color:var(--ink);line-height:1.66;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--disp);font-weight:600;line-height:1.06;letter-spacing:-.02em}
h2{font-size:clamp(1.85rem,4.4vw,3.1rem)}
.wrap{max-width:1200px;margin:0 auto;padding:0 1.5rem}
.kick{display:inline-block;font:600 .7rem var(--sans);letter-spacing:.28em;text-transform:uppercase;color:var(--accent);margin-bottom:1.1rem}
.num{display:block;font:500 .82rem var(--disp);letter-spacing:.22em;color:var(--muted);margin-bottom:.7rem}
.num::before{content:"";display:inline-block;width:1.6rem;height:1px;background:var(--accent);vertical-align:middle;margin-right:.65rem;transform:translateY(-1px)}
.brand__dot{color:var(--accent)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font:600 .9rem var(--sans);padding:.82rem 1.5rem;border-radius:999px;transition:transform .15s,background .2s,box-shadow .2s,color .2s;white-space:nowrap;cursor:pointer;border:0}
.btn:active{transform:scale(.97)}
.btn--ink{background:var(--ink);color:var(--paper)}.btn--ink:hover{background:var(--accent)}
.btn--wa{background:var(--wa);color:#fff}.btn--wa:hover{background:var(--wa-d)}
.btn--ghost{background:transparent;border:1.5px solid var(--line2);color:var(--ink)}.btn--ghost:hover{border-color:var(--accent);color:var(--accent)}
.btn--block{width:100%}.btn--lg{padding:1rem 2rem;font-size:1rem}

/* nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:60;transition:background .3s,box-shadow .3s,border-color .3s;border-bottom:1px solid transparent}
.nav.scrolled{background:rgba(251,248,242,.86);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.nav__in{max-width:1200px;margin:0 auto;padding:1.05rem 1.5rem;display:flex;align-items:center;gap:1.4rem}
.brand{font:600 1.3rem var(--disp);color:var(--ink);line-height:1;letter-spacing:-.02em}
.brand small{display:block;font:600 .56rem var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-top:.2rem}
.nav__links{display:flex;gap:1.7rem;margin-left:auto;font:500 .9rem var(--sans);color:var(--ink2)}
.nav__links a{position:relative;transition:color .2s}.nav__links a:hover{color:var(--accent)}
.nav__links a::after{content:"";position:absolute;left:0;right:100%;bottom:-4px;height:1.5px;background:var(--accent);transition:right .25s}
.nav__links a:hover::after{right:0}
.nav__act{display:flex;align-items:center;gap:.8rem}
.lang{display:flex;border:1px solid var(--line2);border-radius:999px;overflow:hidden}
.lang__btn{border:0;background:transparent;font:600 .72rem var(--sans);padding:.42rem .58rem;cursor:pointer;color:var(--muted)}
.lang__btn.is-active{background:var(--ink);color:var(--paper)}
.navtog{display:none;background:none;border:0;cursor:pointer;padding:.4rem}.navtog span{display:block;width:22px;height:2px;background:var(--ink);margin:4.5px 0;border-radius:2px;transition:transform .25s,opacity .25s}

/* HERO — typo hero, small photo window, calc */
.hero{position:relative;padding:8.5rem 0 3.5rem;background:linear-gradient(180deg,var(--paper),var(--sand) 220%)}
.hero__in{max-width:1200px;margin:0 auto;padding:0 1.5rem;display:grid;grid-template-columns:1.06fr .94fr;grid-template-areas:"copy frame" "copy calc";gap:1.4rem 3rem;align-items:start}
.hero__copy{grid-area:copy;align-self:center}
.eyebrow{display:inline-flex;align-items:center;gap:.55rem;font:600 .66rem var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--soft);border:1px solid var(--line);border-radius:999px;padding:.42rem .9rem;background:rgba(255,255,255,.5)}
.eyebrow__dot{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px rgba(199,91,42,.18)}
.hero__title{font-size:clamp(2.8rem,7.2vw,5.6rem);font-weight:700;letter-spacing:-.035em;margin-top:1.5rem;color:var(--ink)}
.hero__title em{font-style:normal;color:var(--accent)}
.hero__sub{margin-top:1.4rem;max-width:34rem;color:var(--ink2);font-size:1.08rem}
.hero__meta{display:flex;align-items:center;gap:1.1rem;margin-top:1.8rem;flex-wrap:wrap}
.hero__rate{display:inline-flex;align-items:baseline;gap:.45rem}
.hero__rate strong{font:700 1.5rem var(--disp);color:var(--accent)}
.hero__rate span{font:600 .72rem var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--soft)}
.hero__sep{width:1px;height:22px;background:var(--line2)}
.hero__line{font:500 .9rem var(--sans);color:var(--soft)}
.hero__frame{grid-area:frame;position:relative}
.hero__frame img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:var(--r);box-shadow:0 26px 60px rgba(46,42,36,.16)}
.hero__frame figcaption{font:500 .75rem var(--sans);color:var(--muted);margin-top:.7rem;padding-left:.1rem}
.hero__frame::before{content:"";position:absolute;left:-.9rem;top:-.9rem;width:46%;height:46%;border-left:1.5px solid var(--accent);border-top:1.5px solid var(--accent);border-radius:6px 0 0 0;opacity:.5}

/* rate calc — paper card */
.rcalc{grid-area:calc;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:1.3rem 1.4rem;box-shadow:0 18px 44px rgba(46,42,36,.1)}
.rcalc__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}
.rcalc__title{font:600 1.2rem var(--disp);color:var(--ink)}
.rcalc__ai{font:600 .58rem var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);border:1px solid var(--line2);border-radius:999px;padding:.26rem .62rem}
.rcalc label{display:block;font:600 .64rem var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--soft);margin-bottom:.7rem}
.rcalc label span{display:block;margin-bottom:.3rem}
.rcalc select,.rcalc input[type=number]{width:100%;padding:.6rem .7rem;border:1px solid var(--line2);border-radius:6px;font:500 .9rem var(--sans);color:var(--ink);background:var(--paper)}
.rcalc select:focus,.rcalc input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}
.rcalc__grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.rcalc__chk{display:flex!important;align-items:center;gap:.5rem;font:500 .82rem var(--sans)!important;letter-spacing:0!important;text-transform:none!important;color:var(--ink2)!important;cursor:pointer;margin-bottom:.5rem}
.rcalc__chk input{width:auto;accent-color:var(--accent)}.rcalc__chk span{margin:0!important}
.rcalc__total{display:flex;align-items:baseline;justify-content:space-between;border-top:1px solid var(--line);margin:.4rem 0 .9rem;padding-top:.85rem}
.rcalc__total span{font:600 .66rem var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--soft)}
.rcalc__total strong{font:700 2rem var(--disp);color:var(--accent);letter-spacing:-.02em}
.rcalc__note{font:400 .68rem var(--sans);color:var(--muted);text-align:center;margin-top:.7rem;line-height:1.45}

/* sections */
.sec{padding:clamp(3.8rem,8vw,6.5rem) 0;position:relative}
.sec__head{max-width:50rem;margin:0 0 3rem}
.sec__head p.lead{color:var(--soft);margin-top:1rem;font-size:1.08rem;max-width:42rem}
.sec--feat{background:var(--sand)}

/* stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.stat{padding:1.8rem 1.4rem;border-left:1px solid var(--line)}
.stat:first-child{border-left:0;padding-left:0}
.stat strong{display:block;font:700 2.4rem var(--disp);color:var(--ink);line-height:1;letter-spacing:-.02em}
.stat span{font:500 .82rem var(--sans);color:var(--soft);margin-top:.5rem;display:block}

/* stays */
.rooms{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.rcard{background:var(--card);border:1px solid var(--line);border-radius:8px;overflow:hidden;display:flex;flex-direction:column}
.rcard__img{position:relative;overflow:hidden}
.rcard__img img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .6s ease}
.rcard:hover .rcard__img img{transform:scale(1.05)}
.rcard__flag{position:absolute;top:.8rem;left:.8rem;font:600 .62rem var(--sans);letter-spacing:.08em;text-transform:uppercase;color:#fff;background:var(--accent);padding:.32rem .7rem;border-radius:999px}
.rcard--feat{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.rcard__b{padding:1.3rem 1.4rem;display:flex;flex-direction:column;flex:1}
.rcard__h{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem;margin-bottom:.5rem}
.rcard__h h3{font-size:1.32rem}
.rcard__price{font:600 1.18rem var(--disp);color:var(--accent);white-space:nowrap}.rcard__price small{font:500 .66rem var(--sans);color:var(--muted)}
.rcard__b p{color:var(--soft);font-size:.9rem}
.rcard__tags{display:flex;flex-wrap:wrap;gap:.4rem;margin:.9rem 0 1.2rem}
.rcard__tags span{font:500 .72rem var(--sans);color:var(--ink2);background:var(--sand);border-radius:999px;padding:.28rem .68rem}
.rcard__b .btn{margin-top:auto}

/* signature feature */
.feat{display:grid;grid-template-columns:1.05fr .95fr;gap:3rem;align-items:center}
.feat__media{border-radius:8px;overflow:hidden;box-shadow:0 22px 54px rgba(46,42,36,.16)}
.feat__media img{width:100%;aspect-ratio:5/4;object-fit:cover}
.feat__b h2{margin:.4rem 0 1rem}.feat__b p{color:var(--soft)}
.flist{list-style:none;margin:1.4rem 0;display:grid;gap:.6rem}
.flist li{padding-left:1.7rem;position:relative;font-weight:500;color:var(--ink2)}
.flist li::before{content:"";position:absolute;left:0;top:.55em;width:8px;height:8px;border-radius:50%;background:var(--accent)}

/* wellness grid */
.well{display:grid;grid-template-columns:1.4fr 1fr 1fr;grid-template-rows:auto auto;gap:1.2rem}
.wcard{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:1.6rem 1.5rem}
.wcard--img{grid-row:span 2;padding:0;overflow:hidden;position:relative;min-height:300px;display:flex;align-items:flex-end}
.wcard--img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.wcard--img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(46,42,36,0) 40%,rgba(46,42,36,.78))}
.wcard__t{position:relative;z-index:1;padding:1.6rem 1.5rem;color:#fff}
.wcard__t h3{color:#fff;font-size:1.35rem}.wcard__t p{color:rgba(255,255,255,.85);font-size:.88rem;margin-top:.3rem}
.wcard__ic{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:10px;background:var(--sand);color:var(--accent);margin-bottom:1rem}
.wcard__ic svg{width:22px;height:22px}
.wcard h3{font-size:1.18rem;margin-bottom:.3rem}.wcard p{color:var(--soft);font-size:.9rem}

/* retreats */
.retreats{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:1.2rem}
.ret{background:var(--sand);border:1px solid var(--line);border-radius:8px;padding:1.6rem 1.5rem;display:flex;flex-direction:column}
.sec--feat .ret{background:var(--card)}
.ret__len{font:600 .68rem var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:.7rem}
.ret h3{font-size:1.3rem;margin-bottom:.5rem}.ret p{color:var(--soft);font-size:.9rem;margin-bottom:1.3rem}
.ret .btn{margin-top:auto;align-self:flex-start}

/* gallery — editorial asymmetric */
.gal{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:200px;gap:1rem}
.gal figure{border-radius:8px;overflow:hidden}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}
.gal figure:hover img{transform:scale(1.06)}
.gal__a{grid-column:span 2;grid-row:span 2}
.gal__b{grid-column:span 2}

/* reviews */
.revs{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.rev{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:1.8rem 1.7rem}
.rev__stars{color:var(--accent);letter-spacing:.14em;margin-bottom:.9rem;font-size:.9rem}
.rev blockquote{font:500 1.08rem var(--disp);color:var(--ink);line-height:1.42;letter-spacing:-.01em}
.rev figcaption{margin-top:1.1rem;font:600 .82rem var(--sans);color:var(--muted)}
.ratepill{display:inline-flex;align-items:center;gap:.6rem;background:var(--sand);border:1px solid var(--line);border-radius:999px;padding:.45rem 1rem;margin-bottom:1.1rem}
.ratepill strong{color:var(--accent);font:700 1.1rem var(--disp)}.ratepill span{font:500 .8rem var(--sans);color:var(--soft)}
.rev__note{text-align:center;color:var(--muted);font-size:.82rem;margin-top:1.6rem}

/* location + faq */
.loc{display:grid;grid-template-columns:1.05fr .95fr;gap:3rem;align-items:center}
.loc__b h2{margin:.4rem 0 1rem}.loc__b>p{color:var(--soft);margin-bottom:1.5rem;max-width:32rem}
.loc__cta{display:flex;gap:.8rem;flex-wrap:wrap;margin-bottom:2rem}
.loc__media{border-radius:8px;overflow:hidden;box-shadow:0 22px 54px rgba(46,42,36,.16)}
.loc__media img{width:100%;height:100%;object-fit:cover;aspect-ratio:3/4;max-height:560px}
.faq{display:grid;gap:.6rem;max-width:34rem}
.faq__i{border-bottom:1px solid var(--line)}
.faq__i summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.95rem 0;font:600 1rem var(--disp);color:var(--ink)}
.faq__i summary::-webkit-details-marker{display:none}
.faq__pl{position:relative;flex:0 0 auto;width:14px;height:14px}
.faq__pl::before,.faq__pl::after{content:"";position:absolute;background:var(--accent);border-radius:2px;transition:transform .25s,opacity .25s}
.faq__pl::before{top:6px;left:0;width:14px;height:2px}
.faq__pl::after{top:0;left:6px;width:2px;height:14px}
.faq__i[open] .faq__pl::after{transform:scaleY(0);opacity:0}
.faq__i>p{color:var(--soft);font-size:.92rem;padding:0 0 1rem;margin:0;max-width:30rem}

/* CTA band */
.band{background:var(--ink);color:var(--paper);text-align:center;padding:clamp(3.8rem,8vw,6rem) 1.5rem}
.band .kick{color:var(--accent-lt)}
.band h2{color:var(--paper);max-width:18ch;margin:0 auto}
.band p{color:rgba(251,248,242,.8);margin:.9rem auto 1.8rem;max-width:38rem}

/* footer */
.footer{background:var(--sand);color:var(--soft);font-size:.9rem;border-top:1px solid var(--line)}
.footer__in{max-width:1200px;margin:0 auto;padding:3.2rem 1.5rem 2rem;display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:2rem}
.footer__brand{font:600 1.35rem var(--disp);color:var(--ink);margin-bottom:.7rem}
.footer__brand small{display:block;font:600 .56rem var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-top:.2rem}
.footer__tag{max-width:24rem}
.footer h4{color:var(--ink);font:600 .76rem var(--sans);letter-spacing:.14em;text-transform:uppercase;margin-bottom:.8rem}
.footer a:hover{color:var(--accent)}
.footer__legal{border-top:1px solid var(--line);max-width:1200px;margin:0 auto;padding:1.1rem 1.5rem 1.6rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.76rem;color:var(--muted)}.footer__demo{font-style:italic}

/* fab */
.fab{position:fixed;right:1.1rem;bottom:1.1rem;z-index:60;width:56px;height:56px;border-radius:50%;background:var(--wa);color:#fff;display:none;align-items:center;justify-content:center;box-shadow:0 12px 28px rgba(0,0,0,.25)}

/* WOW — progress, reveal, shimmer, lift */
.progress{position:fixed;top:0;left:0;height:2.5px;width:0;z-index:70;background:linear-gradient(90deg,var(--accent),var(--accent-lt));transition:width .1s linear}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
.hero__title em{background:linear-gradient(100deg,var(--accent) 30%,#F2C9A8 50%,var(--accent) 70%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:shimmer 6s linear infinite}
@keyframes shimmer{to{background-position:-220% 0}}
.card{transition:transform .28s ease,box-shadow .28s ease}
.card:hover{transform:translateY(-6px);box-shadow:0 22px 50px rgba(46,42,36,.14)}
.rcard--feat:hover{box-shadow:0 22px 50px rgba(199,91,42,.22),0 0 0 1px var(--accent)}

/* responsive */
@media(max-width:980px){
  .hero__in{grid-template-columns:1fr;grid-template-areas:"copy" "frame" "calc";gap:1.8rem}
  .hero__copy{align-self:auto}.hero__frame::before{display:none}
  .hero__frame img{aspect-ratio:16/9}
  .feat,.loc{grid-template-columns:1fr;gap:2rem}
  .loc__media{order:-1}.loc__media img{aspect-ratio:16/10;max-height:340px}
  .well{grid-template-columns:1fr 1fr}.wcard--img{grid-column:span 2;grid-row:auto;min-height:260px}
  .rooms,.retreats,.revs{grid-template-columns:1fr 1fr}
  .gal{grid-template-columns:repeat(2,1fr);grid-auto-rows:170px}.gal__a{grid-column:span 2;grid-row:span 1}.gal__b{grid-column:span 2}
}
@media(max-width:640px){
  .hero{padding-top:7rem}
  .nav__links{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:rgba(251,248,242,.98);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
  .nav__links.open{display:flex}.nav__links a{padding:.95rem 1.5rem;border-top:1px solid var(--line)}.nav__links a::after{display:none}
  .navtog{display:block}.nav__act .btn--ink{display:none}
  .fab{display:flex}
  .stats{grid-template-columns:1fr 1fr}.stat{border-left:0;border-top:1px solid var(--line);padding:1.3rem 0}.stat:first-child,.stat:nth-child(2){border-top:0}.stat:nth-child(odd){padding-right:1rem}
  .rooms,.retreats,.revs,.well{grid-template-columns:1fr}.wcard--img{grid-column:auto}
  .gal{grid-template-columns:1fr;grid-auto-rows:220px}.gal__a,.gal__b{grid-column:auto;grid-row:auto}
  .footer__in{grid-template-columns:1fr;gap:1.6rem}
  .hero__title{font-size:clamp(2.3rem,9.4vw,3.1rem)}
  .eyebrow{font-size:.6rem;letter-spacing:.12em;padding:.4rem .75rem}
}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .hero__title em{animation:none;-webkit-text-fill-color:var(--accent)}
  .card,.rcard__img img,.gal img{transition:none}
  html{scroll-behavior:auto}
}
