:root{
  --blue:#0a56c9; --blue-d:#073f9a; --blue-l:#e8f0fc; --sky:#3aa0ff; --cyan:#12b5cb;
  --ink:#0d1b34; --ink2:#1c2b4a; --muted:#5b6880; --line:#e3e9f4; --bg:#f5f8fd; --white:#fff;
  --ok:#12945a; --warn:#c77a05; --bad:#cf3333;
  --r:18px; --shadow:0 14px 40px -18px rgba(10,60,150,.35);
  --font:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{font-family:var(--font);color:var(--ink);background:#fff;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
.container{width:min(1200px,100% - 40px);margin-inline:auto}
.ic{width:1.25em;height:1.25em;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;padding:.85rem 1.5rem;border-radius:6px;border:2px solid transparent;font-weight:700;font-size:.92rem;cursor:pointer;transition:.2s;white-space:nowrap}
.btn-primary{background:var(--blue);color:#fff}
.btn-primary:hover{background:var(--blue-d);transform:translateY(-2px);box-shadow:0 10px 24px -10px var(--blue)}
.btn-dark{background:var(--ink);color:#fff}
.btn-dark:hover{background:#000;transform:translateY(-2px)}
.btn-light{background:#fff;color:var(--blue)}
.btn-light:hover{transform:translateY(-2px);box-shadow:0 10px 24px -10px #000}
.btn-ghost{border-color:var(--line);background:#fff}
.btn-ghost:hover{border-color:var(--blue);color:var(--blue)}
.btn-outline-w{border-color:rgba(255,255,255,.5);color:#fff}
.btn-outline-w:hover{background:#fff;color:var(--blue)}
.btn-sm{padding:.55rem 1rem;font-size:.82rem}
.btn[disabled]{opacity:.5;pointer-events:none}

/* topbar */
.topbar{background:var(--ink);color:#d7e1f5;font-size:.8rem}
.topbar .container{display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:44px;flex-wrap:wrap;padding-block:6px}
.topbar .left,.topbar .right{display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap}
.topbar .item{display:flex;align-items:center;gap:.5rem}
.topbar .item .ic{color:var(--sky)}
.topbar a:hover{color:#fff}
.pill-status{display:inline-flex;align-items:center;gap:.45rem;font-weight:700}
.pill-status i{width:8px;height:8px;border-radius:50%;background:#aaa;box-shadow:0 0 0 0 currentColor}
.pill-status.open{color:#4ee3a1}.pill-status.open i{background:#4ee3a1;animation:pulse 1.8s infinite}
.pill-status.closed{color:#ff9a9a}.pill-status.closed i{background:#ff9a9a}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(78,227,161,.6)}100%{box-shadow:0 0 0 9px rgba(78,227,161,0)}}

/* header */
header.nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.nav .container{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;min-height:78px}
.logo{display:flex;align-items:center;gap:.7rem;font-weight:800;font-size:1.45rem;letter-spacing:-.02em;color:var(--ink)}
.logo .mark{width:44px;height:44px;background:var(--blue);color:#fff;display:grid;place-items:center;clip-path:polygon(25% 3%,75% 3%,100% 50%,75% 97%,25% 97%,0 50%)}
.logo .mark .ic{width:22px;height:22px}
.logo small{display:block;font-size:.66rem;font-weight:600;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-top:-4px}
.menu{display:flex;gap:.2rem;align-items:center}
.logo{white-space:nowrap}
.menu a{white-space:nowrap;padding:.5rem .8rem;font-weight:600;font-size:.88rem;color:var(--ink2);border-radius:6px;transition:.15s;text-transform:uppercase;letter-spacing:.02em}
.menu a:hover,.menu a.active{color:var(--blue)}
.nav-cta{display:flex;align-items:center;gap:.8rem}
.nav-staff{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--line);color:var(--muted)}
.nav-staff:hover{color:var(--blue);border-color:var(--blue)}
.burger{display:none;background:none;border:0;cursor:pointer;width:42px;height:42px;place-items:center}
.burger .ic{width:26px;height:26px}

/* hero */
.hero{position:relative;background:linear-gradient(115deg,#fff 0%,#f0f6ff 55%,#e0edff 100%);overflow:hidden;padding:70px 0 140px}
.hero::before{content:"";position:absolute;right:-8%;top:-30%;width:62%;aspect-ratio:1;background:radial-gradient(circle,#cfe2ff 0%,rgba(207,226,255,0) 65%);pointer-events:none}
.hero .grid{display:grid;grid-template-columns:1.05fr 1fr;gap:2rem;align-items:center;position:relative}
.eyebrow{display:inline-flex;align-items:center;gap:.6rem;font-size:.82rem;font-weight:700;color:var(--ink2);margin-bottom:1.2rem}
.eyebrow::before{content:"";width:34px;height:2px;background:var(--blue)}
.hero h1{font-size:clamp(2.5rem,5.4vw,4.4rem);line-height:1.06;letter-spacing:-.035em;font-weight:800}
.hero h1 span{color:var(--blue);display:block}
.hero p.lead{margin:1.5rem 0 2rem;max-width:520px;color:var(--muted);font-size:1.05rem}
.hero .actions{display:flex;gap:.9rem;flex-wrap:wrap}
.hero-facts{display:flex;gap:2.2rem;margin-top:2.6rem;flex-wrap:wrap}
.hero-facts div{display:flex;flex-direction:column}
.hero-facts b{font-size:1.9rem;font-weight:800;color:var(--blue);line-height:1.1}
.hero-facts span{font-size:.8rem;color:var(--muted);font-weight:600}
.hero-art{position:relative;aspect-ratio:1/1;max-width:560px;margin-inline:auto;width:100%}
.hero-art>svg,.hero-art>img.photo{width:100%;height:100%;position:absolute;inset:0}
.hero-art img.photo{object-fit:cover;clip-path:polygon(25% 4%,75% 4%,100% 50%,75% 96%,25% 96%,0 50%)}
.float{position:absolute;background:#fff;border-radius:14px;padding:.8rem 1rem;display:flex;gap:.75rem;align-items:center;box-shadow:var(--shadow);font-size:.8rem;font-weight:700;animation:bob 6s ease-in-out infinite}
.float small{display:block;color:var(--muted);font-weight:500;font-size:.72rem}
.float .bubble{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:var(--blue-l);color:var(--blue)}
.float.f1{left:-2%;top:18%}
.float.f2{right:-3%;top:46%;animation-delay:-2s}
.float.f3{left:6%;bottom:8%;animation-delay:-4s}
@keyframes bob{50%{transform:translateY(-12px)}}
.spore{position:absolute;border-radius:50%;opacity:.8;animation:bob 9s ease-in-out infinite}

/* category cards */
.cat-wrap{margin-top:-90px;position:relative;z-index:5}
.cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem}
.cat-card{background:#fff;border-radius:var(--r);padding:2rem 1.7rem;box-shadow:var(--shadow);border:1px solid var(--line);transition:.25s;display:flex;flex-direction:column;gap:.7rem;position:relative;overflow:hidden}
.cat-card::after{content:"";position:absolute;inset-inline-start:0;bottom:0;height:4px;width:0;background:var(--blue);transition:.3s}
.cat-card:hover{transform:translateY(-8px)}
.cat-card:hover::after{width:100%}
.cat-card .ci{color:var(--blue);width:46px;height:46px}
.cat-card h3{font-size:1.15rem;margin-top:.5rem}
.cat-card p{color:var(--muted);font-size:.9rem;flex:1}
.cat-card .more{font-weight:700;font-size:.8rem;text-transform:uppercase;display:inline-flex;gap:.4rem;align-items:center;margin-top:.4rem}
.cat-card:hover .more{color:var(--blue)}

/* marquee */
.marquee{overflow:hidden;padding:70px 0 30px;white-space:nowrap}
.marquee .track{display:inline-flex;animation:slide 32s linear infinite}
.marquee span{font-size:clamp(3.5rem,9vw,7rem);font-weight:800;letter-spacing:-.03em;line-height:1;padding-right:2.5rem;color:var(--blue);text-transform:uppercase}
.marquee span.o{color:transparent;-webkit-text-stroke:1.6px #5c6b86}
@keyframes slide{to{transform:translateX(-50%)}}

/* sections */
section{position:relative}
.sec{padding:80px 0}
.sec-head{max-width:640px;margin-bottom:3rem}
.sec-head.center{margin-inline:auto;text-align:center}
.sec-head.center .eyebrow{justify-content:center}
.sec-head h2,.h2{font-size:clamp(1.9rem,3.6vw,2.9rem);line-height:1.12;letter-spacing:-.03em;font-weight:800}
.sec-head h2 em,.h2 em{font-style:normal;color:var(--blue)}
.sec-head p{color:var(--muted);margin-top:1rem}

/* about */
.about .grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}
.hexes{position:relative;aspect-ratio:1/1.02;max-width:520px;width:100%;margin-inline:auto}
.hex{position:absolute;width:56%;aspect-ratio:1/1.1;clip-path:polygon(25% 3%,75% 3%,100% 50%,75% 97%,25% 97%,0 50%);overflow:hidden;background:var(--blue-l)}
.hex svg,.hex img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hex.h1{left:0;top:0}.hex.h2{right:0;top:12%}.hex.h3{left:21%;bottom:0}
.hex-ring{position:absolute;inset:auto;width:56%;aspect-ratio:1/1.1;clip-path:polygon(25% 3%,75% 3%,100% 50%,75% 97%,25% 97%,0 50%);background:var(--blue);opacity:.12}
.checks{display:grid;grid-template-columns:1fr 1fr;gap:.7rem 1.4rem;margin:1.6rem 0}
.checks li{list-style:none;display:flex;gap:.55rem;align-items:center;font-weight:600;font-size:.9rem;color:var(--ink2)}
.checks .ic{color:var(--blue);width:1.1em}
.about .sign{display:flex;gap:1.5rem;align-items:center;margin-top:2rem;flex-wrap:wrap}
.director{display:flex;align-items:center;gap:.9rem}
.director .av{width:54px;height:54px;border-radius:50%;background:var(--blue-l);color:var(--blue);display:grid;place-items:center;font-weight:800;border:3px solid #fff;box-shadow:var(--shadow)}
.director b{display:block;font-size:.95rem}.director span{font-size:.8rem;color:var(--muted)}

/* services (blue) */
.services-sec{background:var(--blue);color:#fff;padding:90px 0 130px;overflow:hidden}
.services-sec::before{content:"";position:absolute;inset:0;background:
  radial-gradient(circle at 12% 20%,rgba(255,255,255,.12) 0,transparent 24%),
  radial-gradient(circle at 90% 80%,rgba(58,160,255,.5) 0,transparent 30%);}
.services-sec .container{position:relative}
.services-sec .eyebrow{color:#cfe0ff}.services-sec .eyebrow::before{background:#cfe0ff}
.services-sec .sec-head p{color:#cfe0ff}
.tabs{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:center;margin-bottom:2.2rem}
.tab{border:1.5px solid rgba(255,255,255,.35);background:transparent;color:#fff;padding:.55rem 1.1rem;border-radius:99px;font-weight:700;font-size:.84rem;cursor:pointer;transition:.2s}
.tab:hover{background:rgba(255,255,255,.12)}
.tab.on{background:#fff;color:var(--blue);border-color:#fff}
.svc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:1rem}
.svc{background:#fff;color:var(--ink);border-radius:14px;padding:1.2rem 1.3rem;display:flex;gap:.9rem;align-items:flex-start;box-shadow:0 14px 30px -18px rgba(0,0,0,.45);transition:.2s}
.svc:hover{transform:translateY(-4px)}
.svc .si{width:40px;height:40px;border-radius:10px;background:var(--blue-l);color:var(--blue);display:grid;place-items:center;flex:none}
.svc b{display:block;font-size:.93rem;line-height:1.3}
.svc small{display:flex;gap:.35rem;margin-top:.3rem;color:var(--warn);font-weight:600;font-size:.75rem;line-height:1.35}
.svc small .ic{width:.95em;margin-top:.1em}
.svc-cta{text-align:center;margin-top:2.6rem}

/* stats */
.stats{margin-top:-70px;position:relative;z-index:4}
.stat-box{background:#fff;border-radius:var(--r);box-shadow:var(--shadow);display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line)}
.stat-box div{padding:2rem 1.5rem;text-align:center;border-right:1px solid var(--line)}
.stat-box div:last-child{border:0}
.stat-box b{display:block;font-size:2.4rem;font-weight:800;color:var(--blue);line-height:1}
.stat-box span{font-size:.85rem;color:var(--muted);font-weight:600}

/* steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem;counter-reset:s}
.step{padding:1.8rem;border-radius:var(--r);background:var(--bg);position:relative;border:1px solid var(--line)}
.step::before{counter-increment:s;content:"0" counter(s);position:absolute;right:1.2rem;top:.6rem;font-size:3.4rem;font-weight:800;color:#dbe6f8;line-height:1}
.step .ic{width:34px;height:34px;color:var(--blue);margin-bottom:1rem}
.step h3{font-size:1.05rem;margin-bottom:.4rem}
.step p{color:var(--muted);font-size:.88rem}

/* booking band */
.book-band .grid{display:grid;grid-template-columns:1.2fr 1fr;gap:2.4rem;align-items:stretch}
.cta-card{background:linear-gradient(135deg,var(--blue) 0%,var(--blue-d) 100%);color:#fff;border-radius:24px;padding:3rem;position:relative;overflow:hidden}
.cta-card::after{content:"";position:absolute;right:-60px;bottom:-60px;width:260px;aspect-ratio:1;background:rgba(255,255,255,.1);clip-path:polygon(25% 3%,75% 3%,100% 50%,75% 97%,25% 97%,0 50%)}
.cta-card h2{font-size:clamp(1.8rem,3vw,2.5rem);line-height:1.12;letter-spacing:-.03em;margin-bottom:1rem}
.cta-card p{color:#cfe0ff;max-width:440px;margin-bottom:1.8rem}
.cta-card .actions{display:flex;gap:.8rem;flex-wrap:wrap;position:relative;z-index:1}
.hours-card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:2.2rem;box-shadow:var(--shadow)}
.hours-card h3{display:flex;align-items:center;gap:.6rem;margin-bottom:1.1rem;font-size:1.15rem}
.hours-card h3 .ic{color:var(--blue)}
.hrow{display:flex;justify-content:space-between;gap:1rem;padding:.65rem 0;border-bottom:1px dashed var(--line);font-size:.92rem}
.hrow:last-of-type{border:0}
.hrow b{font-weight:700}.hrow span{color:var(--muted);text-align:end}
.hrow.today{color:var(--blue)}.hrow.today span{color:var(--blue);font-weight:700}
.hrow.off span{color:var(--bad)}
.hours-card .note{margin-top:1rem;font-size:.78rem;color:var(--muted);display:flex;gap:.5rem}

/* dark advice */
.dark{background:var(--ink);color:#fff;padding:90px 0}
.dark .eyebrow{color:#9fb6e6}.dark .eyebrow::before{background:var(--sky)}
.dark .grid{display:grid;grid-template-columns:1fr 1.1fr;gap:4rem;align-items:start}
.dark .sec-head p{color:#9fb0cf}
.tips{display:grid;gap:.9rem;margin-top:1.8rem}
.tip{display:flex;gap:1rem;align-items:flex-start;padding:1.1rem 1.2rem;border-radius:14px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08)}
.tip .ic{width:28px;height:28px;color:var(--sky)}
.tip b{display:block;margin-bottom:.1rem}.tip span{color:#9fb0cf;font-size:.88rem}
.faq details{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:1.1rem 1.3rem;margin-bottom:.8rem}
.faq summary{cursor:pointer;font-weight:700;list-style:none;display:flex;justify-content:space-between;gap:1rem}
.faq summary::after{content:"+";font-size:1.4rem;line-height:1;color:var(--sky)}
.faq details[open] summary::after{content:"–"}
.faq p{margin-top:.8rem;color:#b5c3de;font-size:.92rem}
.faq-title{font-size:1.4rem;font-weight:800;margin-bottom:1.2rem}

/* contact */
.contact .grid{display:grid;grid-template-columns:1fr 1.3fr;gap:2.4rem}
.info-list{display:grid;gap:1rem}
.info{display:flex;gap:1rem;padding:1.3rem;border:1px solid var(--line);border-radius:16px;background:#fff;align-items:flex-start}
.info .bubble{width:46px;height:46px;border-radius:12px;background:var(--blue-l);color:var(--blue);display:grid;place-items:center;flex:none}
.info b{display:block}.info span,.info a{color:var(--muted);font-size:.92rem}
.info a:hover{color:var(--blue)}
.map{border-radius:20px;overflow:hidden;min-height:380px;border:1px solid var(--line);box-shadow:var(--shadow)}
.map-wrap{display:flex;flex-direction:column;gap:1rem}
.map-actions{display:flex;gap:.8rem;flex-wrap:wrap}
.map iframe{width:100%;height:100%;min-height:380px;border:0}

/* footer */
footer{background:#08122a;color:#9fb0cf;padding:60px 0 24px;font-size:.9rem}
footer .grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2.5rem;padding-bottom:2.4rem;border-bottom:1px solid rgba(255,255,255,.1)}
footer .logo{color:#fff}
footer h4{color:#fff;margin-bottom:1rem}
footer li{list-style:none;margin:.45rem 0}
footer a:hover{color:#fff}
footer .copy{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.8rem;padding-top:1.4rem;font-size:.8rem}
.wa-fab{position:fixed;right:20px;bottom:20px;z-index:40;background:#25d366;color:#fff;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;box-shadow:0 10px 28px -8px rgba(37,211,102,.8);transition:.2s}
.wa-fab:hover{transform:scale(1.08)}
.wa-fab .ic{width:28px;height:28px;fill:#fff;stroke:none}

/* gallery + photos */
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.gal figure{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:4/5;background:var(--blue-l);box-shadow:var(--shadow)}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.gal figure:hover img{transform:scale(1.06)}
.gal figcaption{position:absolute;inset:auto 0 0 0;padding:2.4rem 1.2rem 1.1rem;color:#fff;font-weight:700;font-size:.92rem;background:linear-gradient(transparent,rgba(7,30,80,.85))}
.hero-art img.photo{object-position:62% 40%}
.hex img{object-position:50% 30%}
@media (max-width:760px){.gal{grid-template-columns:1fr}.gal figure{aspect-ratio:4/3}}

/* reveal */
.rv{opacity:0;transform:translateY(24px);transition:.7s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}.marquee .track,.float,.spore{animation:none}}

/* ===== forms / booking / sub pages ===== */
.page-hero{background:linear-gradient(115deg,#f0f6ff,#dfeaff);padding:48px 0 90px}
.page-hero h1{font-size:clamp(2rem,4vw,3rem);letter-spacing:-.03em;line-height:1.1}
.page-hero p{color:var(--muted);margin-top:.6rem;max-width:560px}
.crumbs{font-size:.8rem;color:var(--muted);margin-bottom:1rem;font-weight:600}
.crumbs a:hover{color:var(--blue)}
.wiz{margin-top:-56px;position:relative;z-index:3;padding-bottom:80px}
.wiz .grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:1.6rem;align-items:start}
.card{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:2rem}
.stepper{display:flex;gap:.5rem;margin-bottom:1.8rem}
.stepper .st{flex:1;display:flex;align-items:center;gap:.6rem;font-size:.82rem;font-weight:700;color:var(--muted)}
.stepper .n{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--bg);border:1.5px solid var(--line);font-size:.8rem;flex:none}
.stepper .st.on{color:var(--blue)}.stepper .st.on .n{background:var(--blue);border-color:var(--blue);color:#fff}
.stepper .st.done .n{background:var(--ok);border-color:var(--ok);color:#fff}
.stepper .bar{flex:1;height:2px;background:var(--line);align-self:center;min-width:12px}
.card h2{font-size:1.4rem;letter-spacing:-.02em;margin-bottom:.3rem}
.card .sub{color:var(--muted);font-size:.9rem;margin-bottom:1.4rem}
.search{position:relative;margin-bottom:1rem}
.search .ic{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted)}
.search input[type=text]{padding-left:2.7rem}
.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}
.field label{font-size:.8rem;font-weight:700;color:var(--ink2)}
.field label i{color:var(--bad);font-style:normal}
input[type=text],input[type=tel],input[type=email],input[type=password],input[type=date],input[type=time],input[type=number],select,textarea{width:100%;padding:.8rem 1rem;border:1.5px solid var(--line);border-radius:10px;background:#fff;outline:none;transition:.15s}
input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(10,86,201,.12)}
textarea{resize:vertical;min-height:84px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.catpills{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}
.cp{padding:.45rem .95rem;border-radius:99px;border:1.5px solid var(--line);background:#fff;font-weight:700;font-size:.8rem;cursor:pointer;color:var(--ink2)}
.cp.on{background:var(--blue);border-color:var(--blue);color:#fff}
.chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.7rem;max-height:430px;overflow:auto;padding:2px}
.chip{display:flex;gap:.7rem;align-items:flex-start;padding:.85rem 1rem;border:1.5px solid var(--line);border-radius:12px;cursor:pointer;transition:.15s;background:#fff;text-align:start}
.chip:hover{border-color:#9fbaf0}
.chip.on{border-color:var(--blue);background:var(--blue-l)}
.chip .box{width:20px;height:20px;border-radius:6px;border:2px solid #b8c6df;display:grid;place-items:center;flex:none;margin-top:2px;color:transparent}
.chip.on .box{background:var(--blue);border-color:var(--blue);color:#fff}
.chip .box .ic{width:13px;height:13px;stroke-width:3}
.chip b{font-size:.88rem;line-height:1.3;display:block}
.chip small{color:var(--warn);font-size:.74rem;font-weight:600;display:block;margin-top:.15rem;line-height:1.3}
.days{display:flex;gap:.6rem;overflow-x:auto;padding:4px 2px 12px;scroll-snap-type:x proximity}
.day{flex:none;width:72px;padding:.7rem .3rem;border-radius:14px;border:1.5px solid var(--line);background:#fff;text-align:center;cursor:pointer;scroll-snap-align:start;transition:.15s}
.day small{display:block;font-size:.7rem;font-weight:700;text-transform:uppercase;color:var(--muted)}
.day b{display:block;font-size:1.35rem;line-height:1.2}
.day em{font-style:normal;font-size:.68rem;color:var(--muted)}
.day:hover{border-color:#9fbaf0}
.day.on{background:var(--blue);border-color:var(--blue);color:#fff}.day.on small,.day.on em{color:#d6e5ff}
.day.off{opacity:.4;cursor:not-allowed;background:var(--bg)}
.slot-title{font-weight:800;font-size:.85rem;margin:1rem 0 .6rem;color:var(--ink2);display:flex;align-items:center;gap:.5rem}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(82px,1fr));gap:.55rem}
.slot{padding:.6rem 0;border-radius:10px;border:1.5px solid var(--line);background:#fff;font-weight:700;font-size:.88rem;cursor:pointer;transition:.15s}
.slot:hover{border-color:var(--blue);color:var(--blue)}
.slot.on{background:var(--blue);border-color:var(--blue);color:#fff}
.slot.full{opacity:.35;pointer-events:none;text-decoration:line-through}
.empty{padding:1.4rem;border-radius:12px;background:var(--bg);color:var(--muted);text-align:center;font-size:.9rem}
.switch{display:flex;align-items:center;gap:.8rem;padding:1rem 1.1rem;border-radius:12px;border:1.5px solid var(--line);cursor:pointer;margin-bottom:1rem}
.switch input{width:20px;height:20px;accent-color:var(--blue)}
.switch.on{border-color:var(--blue);background:var(--blue-l)}
.switch b{display:block;font-size:.9rem}.switch span{font-size:.8rem;color:var(--muted)}
.nav-btns{display:flex;justify-content:space-between;gap:1rem;margin-top:1.6rem;flex-wrap:wrap}
.summary{position:sticky;top:96px}
.summary h3{font-size:1.05rem;margin-bottom:1rem}
.sum-row{display:flex;gap:.7rem;padding:.7rem 0;border-bottom:1px dashed var(--line);font-size:.88rem}
.sum-row .ic{color:var(--blue);margin-top:.15rem}
.sum-row b{display:block;font-size:.78rem;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.sum-row ul{list-style:none;margin-top:.2rem}.sum-row li{padding:.1rem 0}
.err{background:#fff0f0;border:1px solid #f5c2c2;color:#a02424;padding:.8rem 1rem;border-radius:10px;font-size:.88rem;margin-bottom:1rem}
.okbox{background:#effaf4;border:1px solid #bfe8d0;color:#0b6b40;padding:.8rem 1rem;border-radius:10px;font-size:.88rem;margin-bottom:1rem}
.done-wrap{text-align:center;padding:1rem 0}
.done-wrap .tick{width:84px;height:84px;margin:0 auto 1.2rem;border-radius:50%;background:#e6f7ee;color:var(--ok);display:grid;place-items:center}
.done-wrap .tick .ic{width:42px;height:42px;stroke-width:2.4}
.refbox{display:inline-block;margin:1.2rem 0;padding:.9rem 2rem;border:2px dashed var(--blue);border-radius:14px;background:var(--blue-l)}
.refbox small{display:block;font-size:.72rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.refbox b{font-size:1.8rem;letter-spacing:.08em;color:var(--blue)}
.done-actions{display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap;margin-top:1.4rem}
.recap{max-width:420px;margin:1rem auto 0;text-align:left;background:var(--bg);border-radius:14px;padding:1rem 1.3rem;font-size:.9rem}
.recap div{display:flex;justify-content:space-between;gap:1rem;padding:.3rem 0}
.recap span{color:var(--muted)}

.badge{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .8rem;border-radius:99px;font-size:.76rem;font-weight:800}
.b-pending{background:#fff4de;color:#9a5d00}.b-confirmed{background:#e3f0ff;color:#0a4fb8}.b-arrived{background:#efe6ff;color:#5b2eb5}
.b-done{background:#e6f7ee;color:#0b6b40}.b-results_ready{background:#d9f5ef;color:#0a6a5d}.b-cancelled{background:#ffe6e6;color:#a02424}.b-no_show{background:#eceff4;color:#555e70}
.timeline{display:flex;margin:1.6rem 0 .6rem}
.tl{flex:1;text-align:center;position:relative;font-size:.74rem;font-weight:700;color:var(--muted)}
.tl::before{content:"";position:absolute;top:14px;left:-50%;right:50%;height:3px;background:var(--line)}
.tl:first-child::before{display:none}
.tl i{display:block;width:30px;height:30px;border-radius:50%;background:#fff;border:3px solid var(--line);margin:0 auto .4rem;position:relative;z-index:1}
.tl.on{color:var(--blue)}.tl.on i{border-color:var(--blue);background:var(--blue)}.tl.on::before{background:var(--blue)}

@media (max-width:1020px){
  .hero .grid,.about .grid,.dark .grid,.book-band .grid,.contact .grid{grid-template-columns:1fr}
  .hero-art{max-width:440px}
  .cat-grid{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr 1fr}
  .stat-box{grid-template-columns:1fr 1fr}.stat-box div:nth-child(2){border-right:0}.stat-box div:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .wiz .grid{grid-template-columns:minmax(0,1fr)}.summary{position:static}
  footer .grid{grid-template-columns:1fr 1fr}
}
@media (max-width:1180px){
  .menu{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;flex-direction:column;align-items:stretch;padding:1rem 20px 1.4rem;border-bottom:1px solid var(--line);box-shadow:0 20px 30px -20px rgba(0,0,0,.3)}
  .menu.open{display:flex}
  .menu a{padding:.8rem .4rem;border-bottom:1px solid var(--line)}
  .burger{display:grid}
}
@media (max-width:620px){
  .nav-cta .btn{display:none}
  .cat-grid,.steps,.checks,.row2{grid-template-columns:1fr}
  .topbar .right{display:none}
  .hero{padding:44px 0 120px}
  .card{padding:1.3rem}
  .cta-card{padding:2rem}
  footer .grid{grid-template-columns:1fr}
  .float.f2{right:0}.float{transform:scale(.9)}
  .stepper .st span{display:none}
  .stat-box b{font-size:1.9rem}
  .sec{padding:56px 0}
}
@media print{.topbar,header.nav,footer,.wa-fab,.done-actions,.wiz .summary,.page-hero{display:none!important}.wiz{margin:0}.card{box-shadow:none;border:0}}

.cta-card .eyebrow::before{background:#fff}

.logo>span:last-child{white-space:nowrap}
@media (max-width:620px){
  .logo{font-size:1.1rem}.logo .mark{width:38px;height:38px}
  .topbar .left{gap:.2rem 1rem}.topbar .item:nth-child(2){display:none}
  .nav .container{min-height:66px}
}

/* language switch */
.lang-btn{border:1.5px solid rgba(255,255,255,.35);background:transparent;color:#fff;border-radius:99px;padding:.15rem .8rem;font-weight:800;font-size:.78rem;cursor:pointer;transition:.15s;font-family:inherit}
.lang-btn:hover{background:#fff;color:var(--ink)}
.topbar .right{gap:1rem}
.lang-mobile{display:none;color:var(--blue);border-color:var(--blue);margin:.8rem 0 0;align-self:flex-start;padding:.4rem 1rem}
.lang-mobile:hover{background:var(--blue);color:#fff}
@media (max-width:620px){.topbar .right{display:flex}.topbar .pill-status{display:none}.lang-mobile{display:inline-block}.topbar .lang-btn{display:none}}

/* arabic / rtl */
html[lang=ar] body{font-family:'Cairo',var(--font)}
html[lang=ar] .hero h1,html[lang=ar] .sec-head h2,html[lang=ar] .h2,html[lang=ar] .cta-card h2{letter-spacing:0;line-height:1.35}
html[lang=ar] .eyebrow,html[lang=ar] .menu a,html[lang=ar] .more,html[lang=ar] .logo small{letter-spacing:0;text-transform:none}
html[lang=ar] .marquee span{letter-spacing:0;line-height:1.3}
html[dir=rtl] svg.ic:has(use[href="#i-arrow"]){transform:scaleX(-1)}
html[dir=rtl] .marquee{direction:ltr}
html[dir=rtl] .search .ic{left:auto;right:14px}
html[dir=rtl] .search input[type=text]{padding-left:1rem;padding-right:2.7rem}
html[dir=rtl] .float.f1{left:auto;right:-2%}
html[dir=rtl] .float.f2{right:auto;left:-3%}
html[dir=rtl] .float.f3{left:auto;right:6%}
html[dir=rtl] .hex.h1{left:auto;right:0}
html[dir=rtl] .hex.h2{right:auto;left:0}
html[dir=rtl] .hex.h3{left:auto;right:21%}
html[dir=rtl] .stat-box div{border-right:0;border-left:1px solid var(--line)}
html[dir=rtl] .stat-box div:last-child{border:0}
html[dir=rtl] .step::before{right:auto;left:1.2rem}
html[dir=rtl] .cta-card::after{right:auto;left:-60px}
html[dir=rtl] .tl::before{left:50%;right:-50%}
html[dir=rtl] .tl:first-child::before{display:none}
html[dir=rtl] input[type=tel],html[dir=rtl] input[type=email],html[dir=rtl] #ref{direction:ltr;text-align:right}
html[dir=rtl] .day small{font-size:.62rem}
html[dir=rtl] .day em{font-size:.62rem}
html[dir=rtl] .wa-fab{right:auto;left:20px}
@media (max-width:1020px){html[dir=rtl] .stat-box div:nth-child(2){border-left:0}html[dir=rtl] .stat-box div:nth-child(-n+2){border-bottom:1px solid var(--line)}}
@media (max-width:620px){html[dir=rtl] .float.f2{left:0}}

/* logo officiel (médaillon rond) */
.logo .mark{background:none!important;clip-path:none!important;width:52px;height:52px;border-radius:50%;overflow:hidden}
.logo .mark img{width:100%;height:100%;object-fit:contain;display:block}
.sb .logo .mark,.side .logo .mark{width:42px;height:42px;background:none!important}
@media(max-width:620px){.logo .mark{width:42px;height:42px}}

/* QR de rendez-vous */
.qrbox{margin:1.2rem auto 0;max-width:260px;background:#fff;border:1.5px solid var(--line);border-radius:16px;padding:1rem;text-align:center}
.qrbox svg{width:100%;height:auto;display:block}
.qrbox b{display:block;margin-top:.5rem;font-size:.9rem}
.qrbox small{display:block;color:var(--muted);font-size:.78rem;margin-top:.15rem}
