/* ============ SUBLIME PILATES – STYLES ============ */
:root{
  --bg:#faf6f0; --bg2:#f2ebe0; --ink:#2b2a28; --muted:#6d6a63;
  --sage:#7d9181; --sage-l:#b9c7bc; --deep:#34453b; --deeper:#26332b;
  --blush:#e8c9bb; --gold:#c9a36b; --gold-l:#e0c293; --white:#fff;
  --r:22px; --shadow:0 18px 50px -20px rgba(52,69,59,.35);
  --ease:cubic-bezier(.22,.8,.24,1);
  --serif:'Cormorant Garamond',Georgia,serif; --sans:'Inter',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--sans);color:var(--ink);background:var(--bg);line-height:1.65;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
h1,h2,h3,h4{font-family:var(--serif);font-weight:500;line-height:1.08;letter-spacing:-.01em;color:var(--deep)}
h1{font-size:clamp(3rem,7.5vw,6.2rem)}
h2{font-size:clamp(2.2rem,4.5vw,3.6rem)}
h3{font-size:1.7rem}
p{color:var(--muted)}
em{font-style:italic;color:var(--gold)}
::selection{background:var(--sage);color:#fff}
.container{width:min(1180px,92vw);margin-inline:auto}
.section{padding:clamp(70px,10vw,130px) 0;position:relative}
.eyebrow{display:inline-flex;align-items:center;gap:.7rem;font-size:.78rem;letter-spacing:.28em;text-transform:uppercase;color:var(--sage);font-weight:600;margin-bottom:1.1rem}
.eyebrow::before{content:"";width:34px;height:1px;background:var(--gold)}
.lead{font-size:1.15rem;max-width:58ch}
.center{text-align:center}.center .lead{margin-inline:auto}.center .eyebrow{justify-content:center}

/* page transition + progress */
.pt{position:fixed;inset:0;background:linear-gradient(160deg,var(--deep),var(--deeper));z-index:9999;display:grid;place-items:center;transform:translateY(0);transition:transform .8s cubic-bezier(.77,0,.18,1);pointer-events:none}
.pt img{width:190px;opacity:.95;transition:opacity .3s}
.pt.ready{transform:translateY(-100%)}.pt.ready img{opacity:0}
.progress{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--sage),var(--gold));z-index:1100}
.glow{position:fixed;width:420px;height:420px;border-radius:50%;pointer-events:none;z-index:0;background:radial-gradient(circle,rgba(201,163,107,.18),transparent 65%);transform:translate(-50%,-50%);left:-999px;top:-999px;transition:opacity .4s}

/* header */
.header{position:fixed;inset:0 0 auto 0;z-index:1000;padding:18px 0;transition:all .4s var(--ease)}
.header.scrolled{padding:10px 0;background:rgba(250,246,240,.82);backdrop-filter:blur(16px);box-shadow:0 8px 30px -18px rgba(0,0,0,.25)}
.header .container{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.brand img{height:46px;width:auto;transition:transform .4s var(--ease)}
.brand:hover img{transform:scale(1.05) rotate(-1deg)}
.nav{display:flex;gap:2rem;align-items:center}
.nav a.link{position:relative;font-size:.92rem;font-weight:500;color:var(--deep);padding:.3rem 0}
.nav a.link::after{content:"";position:absolute;left:0;bottom:-2px;height:2px;width:100%;background:var(--gold);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease)}
.nav a.link:hover::after,.nav a.link.active::after{transform:scaleX(1);transform-origin:left}
.burger{display:none;width:46px;height:46px;border-radius:50%;background:var(--deep);position:relative;z-index:1200}
.burger span{position:absolute;left:13px;right:13px;height:2px;background:#fff;border-radius:2px;transition:.4s var(--ease)}
.burger span:nth-child(1){top:18px}.burger span:nth-child(2){top:26px}
.burger.open span:nth-child(1){top:22px;transform:rotate(45deg)}.burger.open span:nth-child(2){top:22px;transform:rotate(-45deg)}

/* buttons */
.btn{--bg-btn:var(--deep);position:relative;display:inline-flex;align-items:center;gap:.6rem;padding:.95rem 1.7rem;border-radius:100px;font-weight:600;font-size:.95rem;color:#fff;background:var(--bg-btn);overflow:hidden;isolation:isolate;transition:transform .4s var(--ease),box-shadow .4s var(--ease);box-shadow:0 12px 28px -12px rgba(52,69,59,.6)}
.btn::before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translateX(-120%);transition:transform .8s var(--ease);z-index:-1}
.btn:hover::before{transform:translateX(120%)}
.btn:hover{transform:translateY(-3px);box-shadow:0 20px 34px -14px rgba(52,69,59,.65)}
.btn .arr{transition:transform .4s var(--ease)}.btn:hover .arr{transform:translateX(5px)}
.btn-gold{--bg-btn:linear-gradient(135deg,var(--gold),#b78a4a)}
.btn-ghost{background:transparent;color:var(--deep);box-shadow:inset 0 0 0 1.5px var(--deep)}
.btn-ghost:hover{background:var(--deep);color:#fff}
.btn-light{background:#fff;color:var(--deep)}
.btn-sm{padding:.65rem 1.25rem;font-size:.85rem}
.btn-pay{--bg-btn:linear-gradient(135deg,var(--gold),#b78a4a)}
.btn-pay .dot{width:8px;height:8px;border-radius:50%;background:#fff;animation:pulse 1.8s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(255,255,255,.7)}100%{box-shadow:0 0 0 12px rgba(255,255,255,0)}}

/* floating pay button */
.fab{position:fixed;right:22px;bottom:22px;z-index:900;transform:translateY(120px);opacity:0;transition:all .6s var(--ease)}
.fab.show{transform:none;opacity:1}
.fab .btn{padding:1rem 1.5rem;box-shadow:0 18px 40px -10px rgba(183,138,74,.7)}

/* reveal system */
[data-reveal]{opacity:0;transform:translateY(40px);transition:opacity 1s var(--ease),transform 1s var(--ease);transition-delay:calc(var(--d,0)*1ms)}
[data-reveal=left]{transform:translateX(-50px)}[data-reveal=right]{transform:translateX(50px)}
[data-reveal=zoom]{transform:scale(.9)}
[data-reveal].in{opacity:1;transform:none}
.split .w{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.12em}
.split .w>span{display:inline-block;transform:translateY(110%);animation:rise 1.1s var(--ease) forwards;animation-delay:calc(var(--i)*70ms + 900ms)}
@keyframes rise{to{transform:none}}

/* hero */
.hero{min-height:100vh;display:flex;align-items:center;padding:140px 0 90px;position:relative;overflow:hidden;background:radial-gradient(1200px 600px at 85% 10%,#f0e4d3,transparent 60%),var(--bg)}
.blob{position:absolute;border-radius:50%;filter:blur(60px);opacity:.55;animation:float 14s ease-in-out infinite}
.b1{width:420px;height:420px;background:var(--blush);top:-80px;right:-60px}
.b2{width:360px;height:360px;background:var(--sage-l);bottom:-100px;left:-80px;animation-delay:-5s}
.b3{width:240px;height:240px;background:var(--gold-l);top:40%;left:42%;animation-delay:-9s;opacity:.35}
@keyframes float{50%{transform:translate(30px,-40px) scale(1.1)}}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:3rem;align-items:center;position:relative;z-index:2}
.hero h1 em{display:inline}
.hero .lead{margin:1.6rem 0 2.2rem}
.hero-cta{display:flex;flex-wrap:wrap;gap:1rem}
.hero-visual{position:relative;height:560px}
.arch{position:absolute;inset:0 0 0 12%;border-radius:300px 300px 28px 28px;overflow:hidden;box-shadow:var(--shadow);background:linear-gradient(165deg,#d8c3a5,var(--sage) 55%,var(--deep));animation:archin 1.6s var(--ease) both .4s}
@keyframes archin{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0)}}
.arch::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.55),transparent 45%)}
.arch svg{position:absolute;inset:0;width:100%;height:100%;opacity:.9}
.arch img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.chip{position:absolute;background:#fff;border-radius:18px;padding:.9rem 1.2rem;box-shadow:var(--shadow);display:flex;align-items:center;gap:.8rem;animation:bob 6s ease-in-out infinite}
.chip b{display:block;font-family:var(--serif);font-size:1.5rem;color:var(--deep);line-height:1}
.chip small{color:var(--muted);font-size:.78rem}
.chip i{font-style:normal;font-size:1.5rem}
.c1{left:-4%;top:16%}.c2{right:-2%;bottom:20%;animation-delay:-3s}
@keyframes bob{50%{transform:translateY(-14px)}}
.scroll-cue{position:absolute;bottom:26px;left:50%;width:26px;height:44px;border:1.5px solid var(--deep);border-radius:20px;opacity:.5}
.scroll-cue::after{content:"";position:absolute;top:8px;left:50%;width:4px;height:8px;margin-left:-2px;background:var(--deep);border-radius:4px;animation:wheel 1.8s infinite}
@keyframes wheel{to{transform:translateY(14px);opacity:0}}

/* marquee */
.marquee{background:var(--deep);color:var(--gold-l);overflow:hidden;padding:1.1rem 0;white-space:nowrap}
.marquee .track{display:inline-flex;gap:3rem;animation:slide 32s linear infinite;font-family:var(--serif);font-size:1.7rem;font-style:italic}
.marquee span::after{content:"✦";margin-left:3rem;color:var(--sage-l);font-style:normal;font-size:1rem}
@keyframes slide{to{transform:translateX(-50%)}}

/* cards / grids */
.grid{display:grid;gap:1.6rem}.g3{grid-template-columns:repeat(3,1fr)}.g2{grid-template-columns:repeat(2,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
.card{position:relative;background:#fff;border-radius:var(--r);padding:2.2rem;box-shadow:0 10px 40px -28px rgba(0,0,0,.4);transition:transform .5s var(--ease),box-shadow .5s var(--ease);transform-style:preserve-3d;overflow:hidden}
.card:hover{box-shadow:var(--shadow)}
.tilt{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg))}
.tilt::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(201,163,107,.2),transparent 45%);opacity:0;transition:opacity .4s;pointer-events:none}
.tilt:hover::after{opacity:1}
.class-card .ico{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;font-size:1.7rem;background:linear-gradient(135deg,var(--bg2),var(--blush));margin-bottom:1.4rem;transition:transform .6s var(--ease)}
.class-card:hover .ico{transform:rotate(360deg) scale(1.1)}
.class-card h3{margin-bottom:.6rem}
.class-card .more{display:inline-flex;gap:.5rem;margin-top:1.2rem;color:var(--deep);font-weight:600;font-size:.9rem}
.class-card .more::after{content:"→";transition:transform .4s var(--ease)}.class-card:hover .more::after{transform:translateX(6px)}
.split-2{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}
.feature{display:flex;gap:1.1rem;padding:1.2rem 0;border-bottom:1px solid rgba(0,0,0,.08);transition:padding .4s var(--ease)}
.feature:hover{padding-left:.8rem}
.feature .n{font-family:var(--serif);font-size:2rem;color:var(--gold);line-height:1;min-width:2.2rem}
.feature h4{font-size:1.35rem;margin-bottom:.15rem}
.stats{background:linear-gradient(135deg,var(--deep),var(--deeper));color:#fff;border-radius:34px;padding:3.2rem 2rem;display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;text-align:center;position:relative;overflow:hidden}
.stats::before{content:"";position:absolute;width:420px;height:420px;border-radius:50%;background:rgba(201,163,107,.12);right:-120px;top:-180px}
.stats b{display:block;font-family:var(--serif);font-size:clamp(2.6rem,5vw,4rem);color:var(--gold-l);line-height:1}
.stats span{color:var(--sage-l);font-size:.9rem;letter-spacing:.06em}
.person{text-align:center}
.person .av{width:150px;height:150px;border-radius:50%;margin:0 auto 1.2rem;display:grid;place-items:center;font-family:var(--serif);font-size:3.6rem;color:#fff;background:linear-gradient(135deg,var(--sage),var(--deep));position:relative;transition:transform .6s var(--ease),border-radius .6s var(--ease)}
.person:hover .av{transform:translateY(-8px) scale(1.05);border-radius:42% 58% 55% 45%/50% 45% 55% 50%}
.person .av::after{content:"";position:absolute;inset:-8px;border:1.5px dashed var(--gold);border-radius:inherit;animation:spin 18s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.person h4{font-size:1.5rem}.person small{color:var(--sage);font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:.72rem}

/* testimonials */
.tslider{position:relative;overflow:hidden}
.ttrack{display:flex;transition:transform .9s var(--ease)}
.tslide{min-width:100%;padding:0 4%;text-align:center}
.tslide blockquote{font-family:var(--serif);font-size:clamp(1.7rem,3.2vw,2.6rem);line-height:1.25;color:var(--deep);font-style:italic;max-width:900px;margin:0 auto 1.6rem}
.tslide blockquote::before{content:"“";display:block;font-size:6rem;line-height:.6;color:var(--gold);margin-bottom:1rem}
.stars{color:var(--gold);letter-spacing:.3em;margin-bottom:.8rem}
.tdots{display:flex;gap:.6rem;justify-content:center;margin-top:2rem}
.tdots button{width:10px;height:10px;border-radius:10px;background:var(--sage-l);transition:all .5s var(--ease)}
.tdots button.on{width:38px;background:var(--gold)}
.tcard{padding:1.8rem}.tcard p{color:var(--ink);font-size:1rem;margin:.6rem 0 1.2rem}
.tcard b{color:var(--deep)}.tcard small{display:block;color:var(--muted)}

/* CTA band */
.cta{border-radius:40px;padding:clamp(3rem,7vw,6rem) 2rem;text-align:center;color:#fff;background:linear-gradient(120deg,var(--deep),var(--sage),var(--deep));background-size:220% 220%;animation:bg 12s ease infinite;position:relative;overflow:hidden}
@keyframes bg{50%{background-position:100% 50%}}
.cta h2{color:#fff}.cta p{color:#e9efe9;max-width:56ch;margin:1rem auto 2rem}
.cta .ring{position:absolute;border:1.5px solid rgba(255,255,255,.18);border-radius:50%;animation:ring 8s linear infinite}
.cta .r1{width:340px;height:340px;left:-100px;top:-120px}.cta .r2{width:520px;height:520px;right:-180px;bottom:-260px;animation-direction:reverse}
@keyframes ring{to{transform:rotate(360deg) scale(1.08)}}

/* page hero (inner pages) */
.phero{padding:170px 0 80px;text-align:center;position:relative;overflow:hidden;background:radial-gradient(900px 400px at 50% 0,#f0e4d3,transparent 70%)}
.phero h1{font-size:clamp(2.8rem,6vw,5rem)}
.phero .lead{margin:1.2rem auto 0}
.phero .blob{opacity:.35}

/* timetable */
.tt-bar{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:center;margin-bottom:1.6rem}
.tabs{position:relative;display:flex;gap:.3rem;background:#fff;border-radius:100px;padding:.35rem;box-shadow:0 10px 30px -22px rgba(0,0,0,.5);overflow-x:auto;max-width:100%}
.tabs button{position:relative;z-index:1;padding:.65rem 1.1rem;border-radius:100px;font-weight:600;font-size:.88rem;color:var(--muted);white-space:nowrap;transition:color .4s}
.tabs button.on{color:#fff}.tabs button .today{font-size:.62rem;display:block;line-height:1;letter-spacing:.14em;text-transform:uppercase;opacity:.8}
.tabs .pill{position:absolute;top:.35rem;bottom:.35rem;left:0;border-radius:100px;background:var(--deep);transition:all .5s var(--ease);z-index:0}
.chips{display:flex;gap:.5rem;flex-wrap:wrap}
.chips button{padding:.5rem 1rem;border-radius:100px;border:1.5px solid var(--sage-l);font-size:.82rem;font-weight:600;color:var(--deep);transition:all .35s var(--ease)}
.chips button:hover{border-color:var(--deep);transform:translateY(-2px)}
.chips button.on{background:var(--deep);border-color:var(--deep);color:#fff}
.viewtoggle{display:flex;gap:.4rem}
.cls{display:grid;grid-template-columns:130px 1fr auto;gap:1.5rem;align-items:center;background:#fff;border-radius:20px;padding:1.3rem 1.6rem;margin-bottom:.9rem;position:relative;overflow:hidden;box-shadow:0 8px 30px -26px rgba(0,0,0,.5);transition:transform .5s var(--ease),box-shadow .5s var(--ease);opacity:0;animation:slidein .7s var(--ease) forwards;animation-delay:calc(var(--i)*70ms)}
@keyframes slidein{from{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:none}}
.cls::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--c,var(--sage));transition:width .5s var(--ease)}
.cls:hover{transform:translateX(8px);box-shadow:var(--shadow)}.cls:hover::before{width:12px}
.cls .time b{font-family:var(--serif);font-size:1.8rem;color:var(--deep);display:block;line-height:1}
.cls .time small{color:var(--muted)}
.cls h4{font-size:1.5rem}
.meta{display:flex;flex-wrap:wrap;gap:.5rem 1rem;font-size:.85rem;color:var(--muted);margin-top:.2rem}
.tag{display:inline-block;padding:.12rem .7rem;border-radius:100px;font-size:.72rem;font-weight:700;letter-spacing:.04em;background:var(--bg2);color:var(--deep)}
.st-open{background:#dfeee2;color:#2f6b42}.st-few{background:#fbeccd;color:#8a5a0a}.st-full{background:#f6d9d6;color:#97362c}
.empty{text-align:center;padding:4rem 1rem;color:var(--muted);font-family:var(--serif);font-size:1.7rem}
.week{display:grid;grid-template-columns:repeat(6,1fr);gap:.9rem}
.wcol h5{font-family:var(--serif);font-size:1.4rem;color:var(--deep);margin-bottom:.7rem;padding-bottom:.5rem;border-bottom:2px solid var(--gold)}
.wcol.today h5{color:var(--gold)}
.wc{background:#fff;border-radius:14px;padding:.8rem .9rem;margin-bottom:.6rem;border-left:4px solid var(--c,var(--sage));font-size:.82rem;transition:transform .4s var(--ease),box-shadow .4s}
.wc:hover{transform:translateY(-4px) scale(1.03);box-shadow:var(--shadow)}
.wc b{display:block;color:var(--deep);font-size:.9rem}.wc span{color:var(--muted)}
.note{margin-top:1.6rem;padding:1.2rem 1.5rem;border-radius:18px;background:var(--bg2);color:var(--deep);display:flex;gap:.8rem;align-items:center}

/* payments */
.plan{display:flex;flex-direction:column;height:100%}
.plan .price{font-family:var(--serif);font-size:3.6rem;color:var(--deep);line-height:1;margin:.6rem 0 .2rem}
.plan .per{color:var(--sage);font-weight:600;font-size:.85rem;margin-bottom:1rem}
.plan p{flex:1;margin-bottom:1.4rem}
.plan.featured{background:linear-gradient(160deg,var(--deep),var(--deeper));color:#fff}
.plan.featured h3,.plan.featured .price{color:#fff}.plan.featured p{color:#dce6de}.plan.featured .per{color:var(--gold-l)}
.badge{position:absolute;top:1.2rem;right:1.2rem;background:var(--gold);color:#fff;font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:.3rem .8rem;border-radius:100px}
.plan.hl{animation:hl 2s var(--ease) 2}
@keyframes hl{50%{box-shadow:0 0 0 8px rgba(201,163,107,.45)}}
.row-act{display:flex;gap:.6rem;flex-wrap:wrap}
.share{background:#fff;border-radius:34px;padding:clamp(1.6rem,4vw,3rem);box-shadow:var(--shadow)}
.share select,.share textarea,.form input,.form select,.form textarea{width:100%;font:inherit;padding:.95rem 1.1rem;border:1.5px solid #e2dccf;border-radius:14px;background:#fff;color:var(--ink);transition:border-color .3s,box-shadow .3s}
.share select:focus,.share textarea:focus,.form input:focus,.form select:focus,.form textarea:focus{outline:0;border-color:var(--sage);box-shadow:0 0 0 4px rgba(125,145,129,.2)}
.share textarea{min-height:120px;resize:vertical}
.postprev{display:grid;place-items:center;background:linear-gradient(145deg,var(--bg2),var(--blush));border-radius:26px;padding:2rem;min-height:340px}
.postcard{background:#fff;border-radius:22px;padding:2rem 1.6rem;text-align:center;width:min(300px,100%);box-shadow:var(--shadow)}
.postcard img{height:36px;margin:0 auto 1rem}
.postcard b{font-family:var(--serif);font-size:3rem;color:var(--deep);display:block;line-height:1}
.postcard small{display:block;color:var(--muted);margin:.3rem 0 1.2rem}
.secure{display:flex;flex-wrap:wrap;gap:1.4rem;justify-content:center;margin-top:2rem;color:var(--muted);font-size:.9rem}
.secure span::before{content:"🔒 ";}

/* gallery */
.masonry{columns:3;column-gap:1.2rem}
.gi{break-inside:avoid;margin-bottom:1.2rem;position:relative;border-radius:22px;overflow:hidden;cursor:zoom-in;background:#ddd;aspect-ratio:4/3;transition:transform .6s var(--ease),box-shadow .6s}
.gi.tall{aspect-ratio:3/4}
.gi:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.gi .art{position:absolute;inset:0;transition:transform 1.1s var(--ease)}
.gi:hover .art,.gi:hover img{transform:scale(1.12)}
.gi img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.gi .cap{position:absolute;inset:auto 0 0 0;padding:3rem 1.3rem 1.2rem;background:linear-gradient(transparent,rgba(30,40,34,.75));color:#fff;transform:translateY(60%);opacity:0;transition:all .6s var(--ease)}
.gi:hover .cap{transform:none;opacity:1}
.gi .cap small{letter-spacing:.2em;text-transform:uppercase;font-size:.68rem;color:var(--gold-l)}
.gi .cap b{display:block;font-family:var(--serif);font-size:1.5rem;font-weight:500}
.gi.hide{display:none}
.lb{position:fixed;inset:0;background:rgba(20,28,23,.94);z-index:2000;display:grid;place-items:center;opacity:0;pointer-events:none;transition:opacity .4s}
.lb.open{opacity:1;pointer-events:auto}
.lb .stage{width:min(900px,88vw);aspect-ratio:4/3;border-radius:22px;overflow:hidden;position:relative;transform:scale(.9);transition:transform .6s var(--ease)}
.lb.open .stage{transform:none}
.lb .stage img{width:100%;height:100%;object-fit:cover}
.lb .lcap{position:absolute;bottom:26px;left:0;right:0;text-align:center;color:#fff;font-family:var(--serif);font-size:1.6rem}
.lb button{position:absolute;color:#fff;font-size:2rem;width:54px;height:54px;border-radius:50%;background:rgba(255,255,255,.1);transition:background .3s,transform .3s}
.lb button:hover{background:rgba(255,255,255,.25);transform:scale(1.1)}
.lb .x{top:24px;right:24px}.lb .pv{left:24px;top:50%}.lb .nx{right:24px;top:50%}

/* FAQ */
.faq{background:#fff;border-radius:20px;margin-bottom:.9rem;overflow:hidden;box-shadow:0 8px 30px -28px rgba(0,0,0,.5);transition:box-shadow .4s}
.faq:hover,.faq.open{box-shadow:var(--shadow)}
.faq button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:1rem;text-align:left;padding:1.4rem 1.6rem;font-family:var(--serif);font-size:1.45rem;color:var(--deep)}
.faq .pm{flex:none;width:38px;height:38px;border-radius:50%;background:var(--bg2);position:relative;transition:all .5s var(--ease)}
.faq .pm::before,.faq .pm::after{content:"";position:absolute;left:11px;right:11px;top:18px;height:2px;background:var(--deep);transition:transform .5s var(--ease)}
.faq .pm::after{transform:rotate(90deg)}
.faq.open .pm{background:var(--gold);transform:rotate(180deg)}.faq.open .pm::after{transform:rotate(0)}
.faq .ans{display:grid;grid-template-rows:0fr;transition:grid-template-rows .6s var(--ease)}
.faq.open .ans{grid-template-rows:1fr}
.faq .ans>div{overflow:hidden}.faq .ans p{padding:0 1.6rem 1.5rem}

/* contact */
.cgrid{display:grid;grid-template-columns:1.1fr .9fr;gap:2.5rem}
.form{background:#fff;border-radius:30px;padding:clamp(1.6rem,4vw,2.8rem);box-shadow:var(--shadow);display:grid;gap:1.1rem}
.form .two{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
.form label{display:block;font-size:.82rem;font-weight:600;color:var(--deep);margin-bottom:.35rem}
.form textarea{min-height:140px;resize:vertical}
.hp{position:absolute;left:-9999px}
.ok{display:none;padding:1.1rem 1.3rem;border-radius:14px;background:#dfeee2;color:#2f6b42;font-weight:500}.ok.show{display:block;animation:slidein .6s var(--ease) forwards}
.info{display:grid;gap:1rem;align-content:start}
.irow{display:flex;gap:1rem;align-items:flex-start;background:#fff;border-radius:20px;padding:1.3rem 1.4rem;transition:transform .4s var(--ease),box-shadow .4s}
.irow:hover{transform:translateX(8px);box-shadow:var(--shadow)}
.irow .i{flex:none;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--bg2);font-size:1.3rem}
.irow b{display:block;color:var(--deep)}.irow a:hover{color:var(--gold)}
.hours{display:grid;grid-template-columns:auto auto;gap:.2rem 1.4rem;font-size:.92rem;color:var(--muted)}
.map{margin-top:2rem;border-radius:30px;overflow:hidden;height:380px;box-shadow:var(--shadow)}
.map iframe{width:100%;height:100%;border:0;filter:saturate(.8) contrast(1.02)}
.socials{display:flex;gap:.7rem;flex-wrap:wrap}
.socials a{padding:.6rem 1.2rem;border-radius:100px;background:var(--deep);color:#fff;font-size:.85rem;font-weight:600;transition:all .4s var(--ease)}
.socials a:hover{background:var(--gold);transform:translateY(-4px) rotate(-2deg)}

/* footer */
.footer{background:linear-gradient(160deg,var(--deeper),#1d2721);color:#c9d3cb;padding:80px 0 30px;margin-top:0;position:relative;overflow:hidden}
.footer::before{content:"";position:absolute;width:500px;height:500px;border-radius:50%;background:rgba(201,163,107,.08);right:-160px;top:-200px}
.fgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:2.5rem;position:relative}
.footer img.fl{height:52px;margin-bottom:1rem}
.footer h5{font-family:var(--sans);font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-l);margin-bottom:1rem}
.footer a{display:block;padding:.2rem 0;color:#c9d3cb;transition:all .3s}.footer a:hover{color:var(--gold-l);transform:translateX(5px)}
.footer p{color:#9fb0a4}
.fbot{border-top:1px solid rgba(255,255,255,.1);margin-top:3rem;padding-top:1.4rem;display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6rem;font-size:.82rem;color:#8da094;position:relative}

/* editor */
.ed table{width:100%;border-collapse:separate;border-spacing:0 .5rem;min-width:900px}
.ed th{text-align:left;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sage);padding:0 .4rem}
.ed td{background:#fff;padding:.4rem}.ed td:first-child{border-radius:12px 0 0 12px}.ed td:last-child{border-radius:0 12px 12px 0}
.ed input,.ed select{width:100%;font:inherit;font-size:.88rem;padding:.55rem .6rem;border:1.5px solid #e6dfd2;border-radius:10px;background:#fff}
.ed .del{width:36px;height:36px;border-radius:50%;background:#f6d9d6;color:#97362c;font-size:1.1rem}
.edwrap{overflow-x:auto}

/* responsive */
@media(max-width:980px){
  .hero-grid,.split-2,.cgrid{grid-template-columns:1fr}
  .hero-visual{height:420px;order:-1;max-width:420px;margin-inline:auto;width:100%}
  .g3,.g4{grid-template-columns:repeat(2,1fr)}
  .stats{grid-template-columns:repeat(2,1fr);gap:2rem}
  .fgrid{grid-template-columns:1fr 1fr}
  .masonry{columns:2}
  .week{grid-template-columns:repeat(2,1fr)}
  .burger{display:block}
  .nav{position:fixed;inset:0;background:var(--bg);flex-direction:column;justify-content:center;gap:1.4rem;transform:translateY(-100%);transition:transform .7s cubic-bezier(.77,0,.18,1);z-index:1100}
  .nav.open{transform:none}
  .nav a.link{font-family:var(--serif);font-size:2.2rem}
  .header .btn-sm.hide-m{display:none}
}
@media(max-width:620px){
  .g2,.g3,.g4,.form .two{grid-template-columns:1fr}
  .masonry{columns:1}
  .cls{grid-template-columns:1fr;gap:.6rem}
  .week{grid-template-columns:1fr}
  .fgrid{grid-template-columns:1fr}
  .hero{padding-top:120px}
  .fab .lbl{display:none}.fab .btn{padding:1rem 1.2rem}
}
@media (hover:none){.glow{display:none}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}[data-reveal]{opacity:1;transform:none}.split .w>span{transform:none}}

/* tilt works together with reveal */
[data-reveal].in.done{transition-delay:0s}
.tilt[data-reveal].in.done{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .35s ease-out,box-shadow .5s var(--ease)}
.plan.featured .btn-ghost{color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.7)}
.plan.featured .btn-ghost:hover{background:#fff;color:var(--deep)}
.btn:disabled{opacity:.6;pointer-events:none}
.footer a.btn{display:inline-flex;padding:.65rem 1.25rem;color:#fff}
.footer a.btn:hover{color:#fff;transform:translateY(-3px)}
