/* Massage Saranda concept, modelled on goldustspa.com (structure, type scale, motion).
   Palette shifted from rose-sand to Ionian sea-glass; rem scale is fluid like the reference. */
:root{
  --bg:#F4F0E8;          /* sand cream (ref #F4F0E7) */
  --alt:#EAEFEC;         /* sea-mist section (ref #F1E7DD) */
  --card:#F8F6F1;        /* cards (ref #F7F2EC) */
  --emph:#EEF0EA;        /* pill circles, tabs (ref #F2EBE1) */
  --menu:#EEEDE6;        /* menu overlay (ref #F2EBE1) */
  --primary:#64939A;     /* display type (ref #D0B09C) */
  --band:#789FA3;        /* header band, help panel (ref #D5B8A6) */
  --deep:#46777E;        /* small labels, focus */
  --dark:#4E5A5B;        /* body copy (ref #605E5B) */
  --light:#F8F5EF;       /* text on photos / band */
  --line:rgba(100,147,154,.42);
  --serif:'Fraunces',Georgia,'Times New Roman',serif;
  --sans:'Open Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --ease:cubic-bezier(.4,0,.2,1);
  --gap:6.5rem;
}
/* fluid root size, as in the reference */
html{font-size:3.86vw}
@media (min-width:650px){html{font-size:2.083vw}:root{--gap:9rem}}
@media (min-width:1024px){html{font-size:1.562vw}}
@media (min-width:1280px){html{font-size:1.11vw}:root{--gap:13rem}}
@media (min-width:1536px){html{font-size:.9vw}}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:auto}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-stopped{overflow:clip}
.lenis [data-lenis-prevent]{overscroll-behavior:contain}
body{margin:0;background:var(--bg);color:var(--primary);font-family:var(--sans);font-size:1.0625rem;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
@media (min-width:650px){body{font-size:.9375rem}}
@media (min-width:1280px){body{font-size:1rem}}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure,blockquote{margin:0;padding:0}
ul,ol{list-style:none}
em{font-style:italic}
:focus-visible{outline:2px solid var(--deep);outline-offset:3px;border-radius:4px}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;left:1rem;top:-4rem;z-index:200;background:var(--deep);color:var(--light);padding:.6rem 1rem;border-radius:999px;transition:top .3s}
.skip:focus{top:1rem}
.show-sm{display:none}
@media (max-width:649px){.hide-sm{display:none}.show-sm{display:inline}}

/* ---------- type ---------- */
.display-1,.display-2,.display-5,.welcome,.favs-title,.treat-list a,.cta-text,.q-text,.fav-name,.sp-name,.gate-text,.help-title,.menu-links a,.ftr-nav a,.fv-h,.marquee,.wordmark{font-family:var(--serif);font-weight:250;font-optical-sizing:auto;letter-spacing:-.005em}
.display-1{font-size:3.125rem;line-height:1.25}
.display-2{font-size:2.0625rem;line-height:1.25}
.display-5{font-size:2rem;line-height:1.25}
@media (min-width:650px){.display-1{font-size:3.75rem}.display-2{font-size:2.5rem}}
@media (min-width:1024px){.display-1{font-size:4.375rem}.display-2{font-size:2.8125rem}}
@media (min-width:1280px){.display-2{font-size:3.125rem}}
.label{font-family:var(--sans);font-style:italic;font-weight:600;font-size:.6875rem;line-height:1.4;letter-spacing:.02em;color:var(--deep);text-transform:uppercase}
@media (min-width:650px){.label{font-size:.75rem}}
@media (min-width:1280px){.label{font-size:.8125rem}}
.divider{border-top:1px solid var(--line);padding-top:1.25rem}
.wide{padding-inline:1.25rem}
@media (min-width:650px){.wide{padding-inline:1.875rem}}
@media (min-width:1024px){.wide{padding-inline:2.5rem}}
.app{padding-inline:1.375rem}
@media (min-width:650px){.app{padding-inline:2.1875rem}}
@media (min-width:1024px){.app{padding-inline:3.75rem}}
@media (min-width:1280px){.app{padding-inline:6.25rem}}
.split-line{overflow:hidden;padding-bottom:.08em}

/* ---------- buttons ---------- */
.btn-glass{background:rgba(248,245,239,.2);border:1px solid rgba(248,245,239,.45);color:var(--light);border-radius:999px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:background-color .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease)}
.btn-glass:hover{background:rgba(248,245,239,.36)}
.pill{display:inline-flex;align-items:center;justify-content:center;line-height:1.25;padding:.5rem 1.25rem;border-radius:999px}
/* circle-arrow pill: the circle grows into a full pill on hover (reference "Learn more") */
.arrow-btn{position:relative;display:inline-flex;align-items:center;height:3rem;padding:0 2rem 0 2.25rem;border-radius:999px;color:var(--primary);font-size:1rem;isolation:isolate;white-space:nowrap}
.ab-bg{position:absolute;left:0;top:0;width:3rem;height:3rem;border-radius:999px;background:var(--emph);border:1px solid var(--line);z-index:-1;transition:width .5s var(--ease)}
.ab-ico{position:absolute;left:0;top:0;width:3rem;height:3rem;display:flex;align-items:center;justify-content:center;transition:opacity .5s var(--ease)}
.ab-ico svg{width:1.5rem;height:auto}
.ab-txt{display:flex;align-items:center;gap:.625rem}
.ab-txt i{width:.5rem;height:.5rem;border-radius:50%;background:currentColor;opacity:0;transform:translateX(-1rem);transition:opacity .5s var(--ease),transform .5s var(--ease)}
.ab-txt span{transform:translateX(1rem);transition:transform .5s var(--ease)}
.arrow-btn:hover .ab-bg,.arrow-btn:focus-visible .ab-bg{width:100%}
.arrow-btn:hover .ab-ico,.arrow-btn:focus-visible .ab-ico{opacity:0}
.arrow-btn:hover .ab-txt i,.arrow-btn:focus-visible .ab-txt i{opacity:1;transform:none}
.arrow-btn:hover .ab-txt span,.arrow-btn:focus-visible .ab-txt span{transform:none}
.pill-btn{display:flex;align-items:center;justify-content:center;padding:1rem 1.25rem;border-radius:999px;background:var(--emph);border:1px solid var(--line);color:var(--primary);transition:background-color .3s var(--ease),color .3s var(--ease)}
.pill-btn:hover{background:var(--primary);color:var(--light)}
.pill-btn.ghost{background:transparent}
.pill-btn.ghost:hover{background:var(--primary)}

/* ---------- header ---------- */
.hdr{position:fixed;inset:0 0 auto;z-index:50;display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1rem;color:var(--light);transition:padding .5s var(--ease),background-color .5s var(--ease),color .5s var(--ease)}
@media (min-width:650px){.hdr{padding:2rem 1.25rem}}
@media (min-width:1280px){.hdr{padding:2.75rem 2.75rem}}
.hdr.is-scrolled{background:var(--band);padding-block:.75rem}
.hdr-book{height:2.5rem;padding:0 1rem;display:inline-flex;align-items:center;font-size:.9375rem;line-height:1}
@media (min-width:650px){.hdr-book{height:3rem;padding:0 1.75rem;font-size:1rem}}
@media (min-width:1024px){.hdr-book{font-size:1.125rem}}
.wordmark{position:absolute;left:50%;top:50%;display:flex;flex-direction:column;align-items:center;font-size:1.45rem;line-height:.98;font-weight:300;transform:translate(-50%,-50%);transform-origin:center;transition:transform .5s var(--ease);white-space:nowrap}
.wordmark span:last-child{font-style:italic}
@media (min-width:650px){.wordmark{font-size:2.25rem}}
.hdr.is-scrolled .wordmark{transform:translate(-50%,-50%) scale(.62)}
.hdr-right{display:flex;align-items:center;gap:.75rem}
@media (min-width:650px){.hdr-right{gap:1.75rem}}
.lang-btn{display:flex;gap:.3rem;font-size:.8125rem;letter-spacing:.04em;padding:.4rem .2rem}
.lang-btn .lang-off{opacity:.55}
.lang-btn:hover .lang-off{opacity:1}
.lang-sep{opacity:.45}
.menu-btn{display:flex;align-items:center;gap:.75rem;font-size:1rem}
@media (min-width:1024px){.menu-btn{font-size:1.0625rem}}
.menu-label{display:none}
@media (min-width:650px){.menu-btn .menu-label:first-child{display:inline}}
.lines{position:relative;display:block;width:2rem;height:.5rem}
@media (min-width:650px){.lines{width:4rem}}
.lines b{position:absolute;left:0;right:0;height:1px;background:currentColor;transition:transform .4s var(--ease),opacity .4s}
.lines b:first-child{top:0}.lines b:last-child{bottom:0}
.sound-btn{display:none;width:4rem;height:3rem;align-items:center;justify-content:center}
@media (min-width:650px){.sound-btn{display:inline-flex}}
.sound-btn svg{width:1.6rem;height:auto}
.sound-btn .wave{opacity:.35;transition:opacity .3s}
.sound-btn[aria-pressed="true"] .wave{opacity:1}
.sound-btn[aria-pressed="true"] .mute{opacity:0}
.sound-btn[aria-pressed="true"] .wave{animation:wv 2.4s ease-in-out infinite}
@keyframes wv{50%{opacity:.45}}
@media (min-width:650px) and (max-width:1023px){.menu-btn .menu-label{display:none!important}.wordmark{font-size:1.9rem}.hdr-right{gap:1.25rem}}
/* menu-open header */
.menu-open .hdr{background:transparent;color:var(--primary)}
.menu-open .hdr .btn-glass{border-color:var(--line);background:transparent;color:var(--primary)}
@media (min-width:650px){.menu-open .menu-btn .menu-label:first-child{display:none}.menu-open .menu-btn .menu-close{display:inline}}
.menu-open .lines b:first-child{transform:translateY(.22rem)}
.menu-open .lines b:last-child{opacity:0}

/* ---------- hero ---------- */
.hero{position:relative;aspect-ratio:1/2;overflow:hidden;background:#33494c}
@media (min-width:650px){.hero{aspect-ratio:10/13}}
@media (min-width:1280px){.hero{aspect-ratio:15/10}}
@media (min-width:1536px){.hero{aspect-ratio:16/9}}
.hero-media{position:absolute;inset:0}
.hero-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.8s var(--ease)}
.hero-slide.is-on{opacity:1}
.hero-slide.is-on.kb{animation:kb 9s linear both}
@keyframes kb{from{transform:scale(1.08)}to{transform:scale(1)}}
.hero::after{content:"";position:absolute;inset:0 0 auto;height:28%;background:linear-gradient(rgba(25,40,42,.28),transparent);pointer-events:none}

main>section,main>.alt-bg{margin-top:var(--gap)}
main>.hero{margin-top:0}

/* ---------- welcome banner ---------- */
.welcome{overflow:hidden;font-size:2.7rem;font-weight:200;line-height:1.25;color:var(--primary)}
@media (min-width:650px){.welcome{font-size:3.75rem}}
@media (min-width:1024px){.welcome{font-size:4.375rem}}
@media (min-width:1280px){.welcome{font-size:5rem}}
.wl{display:flex;justify-content:center}
.wl p{white-space:nowrap}

/* ---------- collage ---------- */
.collage{padding-bottom:11rem}
@media (min-width:650px){.collage{padding-bottom:14rem}}
@media (min-width:1280px){.collage{padding-bottom:19rem}}
.col-wrap{position:relative;display:flex;align-items:center;justify-content:center;margin-inline:auto}
.col-primary{position:relative;right:-.625rem;width:15rem;aspect-ratio:10/14}
@media (min-width:650px){.col-primary{width:15rem;aspect-ratio:10/13.3}}
@media (min-width:1280px){.col-primary{width:28rem}}
.col-primary>img{width:100%;height:100%;object-fit:cover;border-radius:1.875rem}
@media (min-width:1024px){.col-primary>img{border-radius:3.125rem}}
@media (min-width:1280px){.col-primary>img{border-radius:3.75rem}}
.col-secondary{position:absolute;width:9rem;aspect-ratio:10/12;bottom:-6rem;left:-3rem}
@media (min-width:650px){.col-secondary{aspect-ratio:11/10;left:-5rem;width:11rem}}
@media (min-width:1280px){.col-secondary{width:20rem;bottom:-13rem;left:-9rem}}
.col-secondary img{width:100%;height:100%;object-fit:cover;border-radius:1.25rem}
@media (min-width:1024px){.col-secondary img{border-radius:1.875rem}}
@media (min-width:1280px){.col-secondary img{border-radius:2.5rem}}
.col-left,.col-right{display:none}
@media (min-width:650px){
  .col-left,.col-right{display:block;position:absolute;width:9rem}
  .col-left{left:1.25rem;top:5rem}
  .col-right{right:1.25rem;top:2rem}
}
@media (min-width:1280px){.col-left{width:17rem;top:10rem;left:2.5rem}.col-right{width:17rem;top:6rem;right:2.5rem}}
.col-left img,.col-right img{width:100%;border-radius:1.5625rem}
@media (min-width:1024px){.col-left img{border-radius:1.875rem}.col-right img{border-radius:2.5rem}}
@media (min-width:1280px){.col-left img{border-radius:2.5rem}.col-right img{border-radius:3.125rem}}
.collage+.about{margin-top:0}

/* ---------- about ---------- */
.about-head{display:flex;flex-direction:column;gap:1.25rem}
@media (min-width:650px){.about-head{gap:2.5rem}}
.about-head h3{max-width:75rem;font-weight:200}
.about-body{margin-top:2.5rem;max-width:28.5rem}
@media (min-width:650px){.about-body{margin-left:40%}}
.about-body p{color:var(--dark)}
.about-body .arrow-btn{margin-top:2.25rem}

/* ---------- fixed-background photo ---------- */
.fixed-img{position:relative;aspect-ratio:1/1.35}
@media (min-width:650px){.fixed-img{aspect-ratio:10/13}}
@media (min-width:1280px){.fixed-img{aspect-ratio:15/10}}
@media (min-width:1536px){.fixed-img{aspect-ratio:16/9}}
.fi-clip{position:absolute;inset:0;overflow:hidden;background:#cfd9d8}
.fi-clip img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media (min-width:650px){
  .fi-clip{clip-path:inset(0)}
  .fi-clip img{position:fixed;inset:0;height:100vh;height:100lvh}
}

/* ---------- treatments (massages) ---------- */
.alt-bg{background:var(--alt);padding-bottom:1px}
.fixed-img+.alt-bg{margin-top:0}
.treat{padding-top:var(--gap)}
.treat-intro{margin-top:1.25rem;max-width:62rem}
@media (min-width:650px){.treat-intro{margin-top:2.5rem}}
@media (min-width:1280px){.treat-intro{display:none}}
.treat-list{display:flex;flex-wrap:wrap;column-gap:.9rem;margin-top:1.75rem}
@media (min-width:1280px){.treat-list{column-gap:1.25rem;margin-top:2.25rem}}
.treat-list li{display:flex;align-items:center;gap:.9rem;transition:opacity .3s var(--ease)}
@media (min-width:1280px){.treat-list li{gap:1.25rem}}
.treat-list li:not(:last-child)::after{content:"";width:.4rem;height:.4rem;border-radius:50%;background:var(--primary)}
.treat-list a{font-size:1.75rem;line-height:1.3;font-style:italic;font-weight:200}
@media (min-width:650px){.treat-list a{font-size:2.5rem}}
@media (min-width:1280px){.treat-list a{font-size:3.75rem;line-height:1.25}}
.treat-list:hover li{opacity:.6}
.treat-list li:hover{opacity:1}
.treat>.arrow-btn{margin-top:2.75rem}

/* ---------- favorites (sticky title, cards pass by) ---------- */
.favs{position:relative;text-align:center;padding-inline:1.375rem;margin-top:var(--gap)}
@media (min-width:650px){.favs{padding-inline:2.1875rem;margin-top:calc(var(--gap) - 10rem)}}
@media (min-width:1024px){.favs{padding-inline:3.75rem}}
@media (min-width:1280px){.favs{padding-inline:6.25rem}}
.favs-sticky{position:sticky;top:0;z-index:0;padding-top:9rem;pointer-events:none}
@media (min-width:650px){.favs-sticky{height:100vh;height:100svh;padding-top:0;display:flex;align-items:center;justify-content:center}}
.favs-title{font-size:3.4375rem;font-weight:200;line-height:1.25}
@media (min-width:650px){.favs-title{font-size:4.375rem}}
@media (min-width:1024px){.favs-title{font-size:5rem}}
.favs-list{position:relative;z-index:10;display:flex;flex-direction:column;gap:7rem;padding:8rem 0}
@media (min-width:650px){.favs-list{padding:0 0 6rem}}
@media (min-width:1024px){.favs-list{padding-bottom:13rem}}
@media (min-width:1280px){.favs-list{padding-bottom:9rem}}
@media (min-width:650px){.favs-list li{display:flex}.favs-list li:nth-child(even){justify-content:flex-end}}
.fav-card{background:var(--card);border-radius:1.25rem;padding:2.25rem 2rem;color:var(--primary);box-shadow:0 1px 0 rgba(100,147,154,.06)}
@media (min-width:650px){.fav-card{width:25rem;padding:2.5rem 1.5rem 2rem}}
@media (min-width:1280px){.fav-card{width:29.3rem;padding:3.75rem 3.75rem 3rem}}
.fav-name{font-size:2.1875rem;line-height:1.2;font-style:italic;font-weight:200;margin-top:.5rem}
.fav-meta{font-style:italic;font-size:.875rem;margin-top:1rem}
@media (min-width:1280px){.fav-meta{font-size:.9375rem}}
.fav-desc{color:var(--dark);font-size:.875rem;line-height:1.55;margin-top:1rem}
.fav-card .arrow-btn{margin-top:1.5rem}

/* ---------- quotes + group signature ---------- */
.quotes{position:relative}
.q-sticky{position:relative;padding:4rem 0}
.q-list{display:flex;flex-direction:column;gap:5rem}
.q-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;text-align:center;padding-inline:1.25rem}
@media (min-width:650px){.q-item{gap:1.75rem}}
.q-text{max-width:36rem;font-size:1.9rem;line-height:1.3;font-weight:200}
@media (min-width:650px){.q-text{max-width:42rem;font-size:2.4rem}}
@media (min-width:1280px){.q-text{font-size:2.5rem}}
.q-cite{font-style:italic;font-size:.75rem;color:var(--deep)}
.q-badge{font-size:.875rem;color:var(--dark)}
.q-star{color:var(--primary)}
.grow{position:relative}
.grow-fig{width:100%;aspect-ratio:1/1.6}
@media (min-width:650px){.grow-fig{aspect-ratio:10/13}}
@media (min-width:1280px){.grow-fig{aspect-ratio:15/10}}
@media (min-width:1536px){.grow-fig{aspect-ratio:16/9}}
.grow-img{width:100%;height:100%;will-change:transform}
.grow-img img{width:100%;height:100%;object-fit:cover}
.grow-card-wrap{position:absolute;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;padding-inline:1.375rem}
.grow-card{display:flex;flex-direction:column;align-items:center;gap:1.1rem;text-align:center;background:var(--bg);border-radius:1.25rem;padding:2rem 1.5rem 2.25rem;max-width:26.8rem}
@media (min-width:650px){.grow-card{padding:2rem 2.5rem 3rem}}
@media (min-width:1024px){.grow-card{max-width:29.6rem;padding:3rem 3rem 3.5rem}}
.glass-ico{width:1.4rem;height:auto;transform:rotate(-12deg);color:var(--primary)}
.grow-title{font-size:2.2rem;font-weight:200}
@media (min-width:1280px){.grow-title{font-size:2.5rem}}
.grow-text{color:var(--dark);font-size:.9375rem;max-width:22rem}
.q-images{display:none}
/* motion layout (only when JS + GSAP are running) */
.anim .q-sticky{position:sticky;top:0;height:100vh;height:100svh;padding:0;overflow:hidden}
.anim .q-list{position:absolute;inset:0;display:block}
.anim .q-item{position:absolute;inset:0;opacity:0}
.anim .grow{position:absolute;top:0;left:0;right:0;z-index:10}
.anim .grow-img img{border-radius:2.5rem}
.anim .grow-card{opacity:0}
.anim .q-images{display:block;position:relative;z-index:10;pointer-events:none}
.q-images ul{display:flex;flex-direction:column;gap:22rem;padding:24rem 1.25rem 0}
@media (min-width:650px){.q-images ul{gap:28rem;padding-inline:1.875rem}}
@media (min-width:1024px){.q-images ul{gap:30rem;padding-inline:2.5rem}}
@media (min-width:1280px){.q-images ul{gap:20rem}}
.q-images li{display:flex}
.q-images li:nth-child(even){justify-content:flex-end}
.q-images img{width:7.5rem;aspect-ratio:10/11;object-fit:cover;border-radius:1.875rem}
@media (min-width:650px){.q-images img{width:15rem;aspect-ratio:11/10}}
@media (min-width:1024px){.q-images img{width:20rem;border-radius:2.5rem}}
@media (min-width:1280px){.q-images img{width:24rem;aspect-ratio:1}}

/* ---------- spaces -> places ---------- */
.spaces-labels{display:flex;justify-content:space-between;gap:1rem}
.spaces-labels h2{font:inherit}
.spaces-intro{margin-top:1.75rem;max-width:66rem;font-weight:200}
@media (min-width:650px){.spaces-intro{margin-top:2.5rem}}
.spaces-grid{display:grid;gap:2.5rem;margin-top:3rem}
@media (min-width:1024px){.spaces-grid{grid-template-columns:1fr 37.5rem;margin-top:4.375rem;align-items:start}}
.sp-list{display:flex;flex-direction:column;gap:.25rem}
.sp-item{display:flex;align-items:baseline;gap:1.5rem;text-align:left;color:var(--primary);opacity:.42;transition:opacity .45s var(--ease)}
@media (min-width:650px){.sp-item{gap:4rem}}
.sp-item.is-on,.sp-item:hover{opacity:1}
.sp-n{font-family:var(--sans);font-size:.8125rem;width:1.1rem;flex:none;color:var(--deep)}
.sp-name{font-size:1.9rem;line-height:1.35;font-weight:200}
@media (min-width:650px){.sp-name{font-size:2.6rem}}
@media (min-width:1280px){.sp-name{font-size:3.25rem}}
.sp-imgs{position:relative;aspect-ratio:1.4;border-radius:1.5625rem;overflow:hidden;background:var(--alt)}
.sp-imgs img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.04);transition:opacity .8s var(--ease),transform 1.4s var(--ease)}
.sp-imgs img.is-on{opacity:1;transform:none}
.sp-cap{margin-top:1rem;color:var(--dark);font-size:.9375rem;min-height:3em}
.sp-c{display:none}
.sp-c.is-on{display:block;animation:fadein .7s var(--ease)}
@keyframes fadein{from{opacity:0}to{opacity:1}}

/* ---------- the bed (central card) ---------- */
.gold{text-align:center}
.gold>.label{text-align:left}
.gold-media{width:15rem;aspect-ratio:10/13.2;margin:3rem auto 0;border-radius:2.5rem;overflow:hidden}
@media (min-width:1280px){.gold-media{width:17rem}}
.gold-media img{width:100%;height:100%;object-fit:cover}
.gold-text{max-width:64rem;margin:3.25rem auto 0;font-weight:200}
.gold>.arrow-btn{margin-top:3rem}

/* ---------- gallery carousel ---------- */
.gal-track{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;cursor:grab;padding-inline:1.25rem;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.gal-track::-webkit-scrollbar{display:none}
@media (min-width:650px){.gal-track{padding-inline:1.875rem}}
@media (min-width:1024px){.gal-track{padding-inline:2.5rem}}
.gal-track.is-drag{cursor:grabbing;user-select:none}
.gal-list{display:flex;gap:.75rem;width:max-content}
@media (min-width:1024px){.gal-list{gap:1.25rem}}
.gal-list li{width:16rem;flex:none}
@media (min-width:650px){.gal-list li{width:22rem}}
@media (min-width:1280px){.gal-list li{width:34.5rem}}
.gal-list img{width:100%;aspect-ratio:10/13;object-fit:cover;border-radius:1.875rem;pointer-events:none;user-select:none}
@media (min-width:650px){.gal-list img{border-radius:2.5rem}}
@media (min-width:1024px){.gal-list img{border-radius:3.125rem}}
.gal-list figcaption{padding-top:.5rem;font-style:italic;font-size:.6875rem;color:var(--deep)}
@media (min-width:1280px){.gal-list figcaption{font-size:.8125rem}}
.gal-track:last-child{padding-right:2.5rem}
.gal-list::after{content:"";flex:none;width:1px}

/* ---------- how to book (boutique) ---------- */
.bq-grid{display:grid;gap:3rem;margin-top:2.5rem}
@media (min-width:1024px){.bq-grid{grid-template-columns:30rem 1fr;gap:4.25rem;align-items:center;margin-top:3.375rem}}
@media (min-width:1280px){.bq-grid{grid-template-columns:34rem 1fr}}
.bq-media{position:relative;aspect-ratio:1/1.15;max-width:30rem}
@media (min-width:1024px){.bq-media{aspect-ratio:auto;max-width:none;height:32rem}}
@media (min-width:1280px){.bq-media{height:36rem}}
.bq-back{width:58%;aspect-ratio:320/440}
@media (min-width:1024px){.bq-back{width:17rem}}
@media (min-width:1280px){.bq-back{width:20rem}}
.bq-front{position:absolute;left:28%;top:52%;width:70%;aspect-ratio:395/272}
@media (min-width:1024px){.bq-front{left:5rem;top:16rem;width:22rem}}
@media (min-width:1280px){.bq-front{top:18.75rem;width:24.7rem}}
.bq-back img,.bq-front img{width:100%;height:100%;object-fit:cover;border-radius:1.5625rem}
.bq-text .display-2{font-weight:200;max-width:46rem}
.bq-p{margin-top:2.25rem;max-width:28.5rem;color:var(--dark)}
.bq-text .arrow-btn{margin-top:2.25rem}

/* ---------- CTA ---------- */
.cta{display:flex;flex-direction:column;align-items:center;gap:1.75rem;text-align:center;padding-inline:1.375rem}
@media (min-width:1280px){.cta{gap:2rem}}
.cta-text{font-size:2.75rem;line-height:1.15;font-weight:200;max-width:12.5em}
@media (min-width:650px){.cta-text{font-size:3.75rem}}
@media (min-width:1024px){.cta-text{font-size:4.375rem}}
@media (min-width:1280px){.cta-text{font-size:5.25rem}}

/* ---------- FAQ ---------- */
.faq{display:grid;gap:3rem;padding-inline:1.375rem}
@media (min-width:650px){.faq{padding-inline:2.1875rem}}
@media (min-width:1024px){.faq{grid-template-columns:1fr 38.75rem;gap:4rem;padding-inline:3.75rem}}
@media (min-width:1280px){.faq{padding-inline:6.25rem}}
.faq-head h2{font-weight:200;max-width:26rem}
.faq-tabs{display:grid;grid-template-columns:repeat(2,9rem);gap:1rem;margin-top:1.5rem}
.faq-tab{padding:.6rem 0;border-radius:999px;background:var(--emph);border:1px solid var(--line);font-size:.6875rem;font-weight:600;letter-spacing:.03em;color:var(--primary);opacity:.8;transition:opacity .3s,background-color .3s,color .3s}
@media (min-width:1280px){.faq-tab{font-size:.75rem}}
.faq-tab:hover{opacity:1}
.faq-tab.is-on{opacity:1;background:var(--card);color:var(--deep);border-color:var(--primary)}
.faq-list{display:none}
.faq-list.is-on{display:block}
.fq{border-bottom:1px solid var(--line)}
.fq button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;text-align:left;font-weight:500;color:var(--dark);font-size:1rem;transition:opacity .3s}
.faq-list:hover .fq button{opacity:.8}
.faq-list .fq button:hover,.fq.is-open button{opacity:1}
.fq.is-open button{font-style:italic}
.fq button i{flex:none;width:.45rem;height:.45rem;border-right:1.2px solid currentColor;border-bottom:1.2px solid currentColor;transform:translateY(-25%) rotate(45deg);transition:transform .35s var(--ease)}
.fq.is-open button i{transform:translateY(15%) rotate(-135deg)}
.fa{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s var(--ease)}
.fq.is-open .fa{grid-template-rows:1fr}
.fa>div{overflow:hidden}
.fa p{padding:0 2rem 1.1rem 0;color:var(--dark);font-size:.9375rem}
.fa a{text-decoration:underline;text-underline-offset:3px}

/* ---------- footer ---------- */
.ftr{position:relative;margin-top:8rem;padding-top:3.5rem}
@media (min-width:650px){.ftr{padding-top:9rem}}
@media (min-width:1280px){.ftr{margin-top:0}}
.ftr-book{display:flex;justify-content:center;padding-inline:1.375rem}
.ftr-book-link{position:relative;font-style:italic;font-weight:200;padding-bottom:.375rem}
.ftr-book-link::before,.ul::before{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:currentColor;transform:scaleX(1);transform-origin:left;transition:transform .5s var(--ease)}
.ftr-book-link:hover::before{transform:scaleX(0);transform-origin:right}
.ftr-nav{display:grid;grid-template-columns:1fr 1fr;gap:.6rem 2rem;max-width:62rem;margin:5rem auto 0;padding-inline:1.375rem}
@media (min-width:650px){.ftr-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem 2.25rem;margin-top:9rem}}
@media (min-width:1024px){.ftr-nav{gap:1rem 3.75rem}}
.ftr-nav a{font-size:1.5625rem;line-height:1.25;opacity:.55;transition:opacity .3s}
@media (min-width:1024px){.ftr-nav a{font-size:1.6875rem}}
.ftr-nav a:hover{opacity:1}
.ftr-visit{display:grid;gap:2.5rem;margin-top:5rem;padding-inline:1.375rem}
@media (min-width:650px){.ftr-visit{padding-inline:2.1875rem;margin-top:9rem}}
@media (min-width:1024px){.ftr-visit{grid-template-columns:1fr 38.75rem;gap:4rem;padding-inline:3.75rem}}
@media (min-width:1280px){.ftr-visit{padding-inline:6.25rem}}
.fv-h{font-size:1.85rem;line-height:1.25;font-weight:200;max-width:25rem}
@media (min-width:1024px){.fv-h{font-size:2.125rem}}
.socials{display:flex;gap:.9rem;margin-top:1.25rem}
.socials a{display:flex;align-items:center;justify-content:center;width:2.125rem;height:2.125rem;border-radius:50%;background:var(--primary);color:var(--bg);transition:background-color .3s}
.socials a:hover{background:var(--deep)}
.socials svg{width:1.05rem;height:1.05rem}
.fv-grid{display:grid;grid-template-columns:1fr;column-gap:3rem}
@media (min-width:650px){.fv-grid{grid-template-columns:1fr 1fr}}
.fv-grid>div{border-bottom:1px solid var(--line);padding:1rem 0 .75rem}
.fv-grid dt{font-size:.8125rem;color:var(--deep)}
.fv-grid dd{color:var(--primary);font-size:1rem;margin-top:.15rem}
.fv-grid dd a:hover{text-decoration:underline;text-underline-offset:3px}
.fv-btns{display:grid;grid-template-columns:1fr;gap:.9rem;margin-top:1.75rem}
@media (min-width:650px){.fv-btns{grid-template-columns:1fr 1fr}}
.marquee{overflow:hidden;margin-top:7rem;white-space:nowrap;font-size:3.5rem;font-style:italic;font-weight:200;line-height:1.3}
@media (min-width:650px){.marquee{font-size:5rem;margin-top:10rem}}
@media (min-width:1280px){.marquee{font-size:6.25rem;margin-top:13rem}}
.mq-track{display:inline-flex;gap:2ch;padding-left:2ch;animation:mq 46s linear infinite}
.mq-track span{flex:none}
@keyframes mq{to{transform:translateX(-50%)}}
.ftr-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem 2rem;margin-top:5rem;border-top:1px solid var(--line);padding:1.75rem 1.375rem 2rem;font-size:.75rem;font-weight:600;color:var(--primary)}
@media (min-width:650px){.ftr-bottom{padding-inline:2.1875rem}}
@media (min-width:1024px){.ftr-bottom{padding-inline:3.75rem}}
@media (min-width:1280px){.ftr-bottom{padding-inline:6.25rem}}
.ftr-bottom a{position:relative}
.ftr-bottom a::before{content:"";position:absolute;left:0;bottom:-2px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}
.ftr-bottom a:hover::before{transform:scaleX(1);transform-origin:left}

/* ---------- floating help + panel ---------- */
.help-fab{position:fixed;right:1.25rem;bottom:1.25rem;z-index:30;width:3.75rem;height:3.75rem;border-radius:50%;background:var(--band);color:var(--light);display:none;align-items:center;justify-content:center;transition:background-color .3s,opacity .3s}
@media (min-width:650px){.help-fab{display:flex}}
@media (min-width:1024px){.help-fab{width:4rem;height:4rem}}
@media (min-width:1280px){.help-fab{right:2.75rem;bottom:1.25rem}}
.help-fab:hover{background:var(--deep)}
.help-fab svg{width:1.4rem}
.gate-open .help-fab,.menu-open .help-fab{opacity:0;pointer-events:none}
.help{position:fixed;inset:0;z-index:60;display:flex;opacity:0;transition:opacity .4s var(--ease)}
.help.is-open{opacity:1}
.help[hidden]{display:none}
.help-img{flex:1;display:none;background:#cfd9d8}
@media (min-width:1024px){.help-img{display:block}}
.help-img img{width:100%;height:100%;object-fit:cover}
.help-panel{position:relative;width:100%;overflow-y:auto;background:var(--band);color:var(--light);padding:5.5rem 1.375rem 2rem;display:flex;flex-direction:column;gap:2.5rem}
@media (min-width:650px){.help-panel{padding:6rem 2.25rem 3rem}}
@media (min-width:1024px){.help-panel{width:33rem;padding:5.5rem 3rem 1.75rem}}
.help-close{position:absolute;top:1rem;right:1.25rem;width:3.75rem;height:3.75rem;border-radius:50%;background:rgba(248,245,239,.3);display:flex;align-items:center;justify-content:center}
.help-close svg{width:1.4rem}
.help-title{font-size:2.375rem;line-height:1.25;font-weight:200;max-width:24rem}
@media (min-width:1024px){.help-title{font-size:3.125rem}}
.help-search{position:relative;display:block}
.help-search input{width:100%;background:transparent;border:0;border-bottom:1px solid var(--light);padding:.6rem 2rem .6rem 0;color:var(--light);font:inherit;font-size:1rem;outline:none}
.help-search input::placeholder{color:var(--light);opacity:1;transition:opacity .3s}
.help-search input:focus::placeholder{opacity:.7}
.help-search input:focus-visible{border-bottom-width:2px}
.help-search svg{position:absolute;right:0;top:50%;width:1.25rem;transform:translateY(-50%)}
.help-pills{display:flex;flex-wrap:wrap;gap:1rem 1rem}
.help-pills .pill{border-width:2px;padding:.85rem 1.25rem;font-size:1rem}
.help-pills li[hidden]{display:none}
.help-phone{margin-top:auto;font-size:1rem}
.help :focus-visible,.gate :focus-visible{outline-color:var(--light)}

/* ---------- menu overlay ---------- */
.menu{position:fixed;inset:0;z-index:45;background:var(--menu);opacity:0;transition:opacity .45s var(--ease)}
.menu[hidden]{display:none}
.menu-open .menu{opacity:1}
.menu-inner{height:100%;overflow-y:auto;display:flex;flex-direction:column;align-items:center;padding:7.5rem 1.375rem 2rem}
@media (min-width:1280px){.menu-inner{padding:13.75rem 3.75rem 2rem}}
.menu-arch{width:9rem;aspect-ratio:192/230;border-radius:999px 999px .6rem .6rem;overflow:hidden;background:var(--alt);flex:none}
@media (min-width:650px){.menu-arch{width:12rem}}
.menu-arch img{width:100%;height:100%;object-fit:cover}
.menu-links{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.4rem .9rem;max-width:52rem;margin-top:2.25rem;text-align:center}
.menu-links a{display:inline-flex;align-items:center;gap:.9rem;font-size:1.75rem;line-height:1.2;font-weight:200;transition:opacity .3s}
@media (min-width:650px){.menu-links a{font-size:2rem}}
@media (min-width:1024px){.menu-links a{font-size:2.5rem}}
.menu-links a:not(:last-child)::after{content:"";width:.35rem;height:.35rem;border-radius:50%;background:currentColor}
.menu-links:hover a{opacity:.6}
.menu-links a:hover{opacity:1}
.menu-foot{width:100%;margin-top:auto;padding-top:3rem;display:grid;gap:1.75rem;justify-items:center;text-align:center;font-size:1rem}
@media (min-width:650px){.menu-foot{grid-template-columns:1fr auto 1fr;align-items:end;justify-items:stretch;text-align:left}.mf-right{text-align:right}}
.mf-col li{line-height:1.6}
.mf-col a,.mf-lang{opacity:.8;transition:opacity .3s}
.mf-col a:hover,.mf-lang:hover{opacity:1}
.mf-sound .snd-on{display:none}.mf-sound[aria-pressed="true"] .snd-on{display:inline}.mf-sound[aria-pressed="true"] .snd-off{display:none}
.mf-mid{display:flex;flex-direction:column;align-items:center;gap:1.25rem}
.mf-mid .socials{margin-top:0}
.mf-phone{font-size:1rem}

/* ---------- gate ---------- */
.gate{position:fixed;inset:0;z-index:100;display:none;opacity:1;transition:opacity .35s ease-out}
.js:not(.entered) .gate{display:block}
.gate.is-leaving{opacity:0}
.gate-blur{position:absolute;inset:0;background:rgba(32,48,50,.42);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);display:flex;align-items:flex-end;padding:0 1.375rem 3.75rem}
@media (min-width:1280px){.gate-blur{padding:0 5rem 3.75rem}}
.gate-box{color:var(--light);display:flex;flex-direction:column;gap:1.25rem}
.gate-text{font-size:1.75rem;line-height:1.375;font-weight:200;max-width:36.3rem}
@media (min-width:650px){.gate-text{font-size:2rem}}
.gate-btns{display:flex;flex-wrap:wrap;gap:1rem 1.75rem}
.gate-btns .pill{font-size:1rem;padding:.55rem 1.4rem}
.gate-silent{opacity:.8}
.gate-silent:hover{opacity:1}
.gate-open,.gate-open body{overflow:hidden}

/* ---------- cursor follower ---------- */
.cursor{position:fixed;inset:0;z-index:70;pointer-events:none}
.cursor-dot{position:absolute;left:0;top:0;width:6rem;height:6rem;margin:-3rem 0 0 -3rem;border-radius:50%;background:rgba(248,245,239,.35);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);color:var(--light);display:flex;align-items:center;justify-content:center;font-size:1rem;opacity:0;transition:opacity .5s var(--ease);will-change:transform;text-shadow:0 1px 6px rgba(30,45,48,.35)}
.cursor-dot.is-on{opacity:1}

/* ---------- concept toast ---------- */
.toast{position:fixed;left:1rem;bottom:1rem;z-index:80;max-width:min(23rem,calc(100vw - 2rem));background:var(--card);border:1px solid var(--line);border-radius:1rem;padding:.9rem 2.75rem .9rem 1.1rem;color:var(--dark);font-size:.8125rem;line-height:1.45;box-shadow:0 10px 30px rgba(40,60,62,.14);opacity:0;transform:translateY(12px);transition:opacity .45s var(--ease),transform .45s var(--ease)}
@media (max-width:649px){.toast{font-size:.75rem}}
.toast.is-on{opacity:1;transform:none}
.toast[hidden]{display:none}
.toast button{position:absolute;top:.5rem;right:.5rem;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--primary)}
.toast button:hover{background:var(--emph)}
.toast svg{width:1rem}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .fi-clip{clip-path:none}
  .fi-clip img{position:absolute;height:100%}
}
