/* =============================================================================
   HOME PAGE: header, hero + action bar, services banner and cards, about, credentials, gallery,
   locations, footer, sticky bar. Shared tokens/buttons/fonts: css/base.css. Popup: css/booking.css.
   ============================================================================= */

/* ---- Page-level tweaks on top of css/base.css ---- */
:root{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
/* keep content clear of phone notches */
h1,h2,h3{line-height:1.1}
/* tighter headings on the home page */
.wrap{max-width:1040px}
/* wider column than the content pages */

/* ---- Header: clinic name, logo and the top shortcuts ---- */
header{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1rem;padding:1.5rem 0 .5rem}
.logo{flex:1 1 0;min-width:0;overflow-wrap:anywhere;font:700 clamp(3.4rem,10vw,6.8rem)/1 "Bricolage Grotesque","Trebuchet MS",sans-serif;letter-spacing:-.02em;text-decoration:none}
.vid.mini{width:128px;aspect-ratio:1;border-radius:18px;flex:none;background:#fff;overflow:hidden;transition:transform .4s;box-shadow:0 14px 28px -12px rgba(16,36,31,.4),0 2px 6px rgba(16,36,31,.08);position:relative}
.vid.mini::after{content:"";position:absolute;inset:-4px;border-radius:22px;border:2px solid var(--pine);opacity:.22;pointer-events:none}
.vid.mini:hover{transform:rotate(-4deg) scale(1.06)}
.vid img{width:100%;height:100%;object-fit:contain;display:block}
nav{align-items:center;display:flex;white-space:nowrap;overflow-x:auto;flex:1 1 100%}
nav a{font-size:1.12rem;margin-inline-end:1.4rem;text-decoration:none;color:var(--muted);font-weight:600;padding:.35rem 0;border-bottom:3px solid transparent;transition:color .2s,border-color .2s;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
nav a:hover,nav a.on{color:var(--ink);border-color:var(--accent)}

/* ---- Hero: headline, rotating words, floating colour blobs ---- */
.hero{position:relative;isolation:isolate;padding:3rem 0 4rem}
.hero h1{font-size:clamp(2.4rem,6vw,4rem);font-weight:700;letter-spacing:-.02em}
.kicker{margin:1rem 0 0;font-size:1.25rem;color:var(--muted)}
#rot{color:var(--pine);font-weight:600}
.hero p.lead{max-width:34rem;color:var(--muted);font-size:1.2rem;margin:.8rem 0 1.8rem}
.blob{position:absolute;border-radius:50%;filter:blur(48px);opacity:.45;z-index:-1;animation:fl 9s ease-in-out infinite alternate}
.b1{width:260px;height:260px;background:var(--accent);right:5%;top:0}
.b2{width:300px;height:300px;background:var(--pine);right:25%;bottom:-40px;animation-delay:-4s}
@keyframes fl{to{transform:translate(-30px,40px) scale(1.15)}}

/* ---- Sections and service cards (tap a card to expand it) ---- */
section{padding:3.5rem 0;border-top:1px solid var(--line)}
section h2{font-size:clamp(1.8rem,4vw,2.6rem);margin-bottom:1.6rem;max-width:30rem}
.band{background:var(--surface)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:1.2rem;font-weight:600;transition:transform .25s,box-shadow .25s}
.card:hover{transform:translateY(-4px);box-shadow:0 14px 30px -14px rgba(0,0,0,.35)}
.card i{font-style:normal;font-size:1.9rem;display:block;margin-bottom:.4rem;transition:transform .3s}
.card:hover i{transform:scale(1.12)}
.sub{margin:2.2rem 0 .8rem;font-size:1.3rem}
.pills{display:flex;flex-wrap:wrap;gap:.6rem}
.pill{background:var(--surface);border:1px solid var(--line);padding:.5rem 1rem;border-radius:999px;transition:.2s}
.pill:hover{background:var(--accent);color:#10241F;transform:scale(1.05)}

/* ---- About + statistics ---- */
.about{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:start}
.about p{margin:0 0 1rem;color:var(--muted)}
.bio{display:block;width:100%;height:auto;border-radius:18px;box-shadow:0 14px 28px -12px rgba(16,36,31,.4),0 2px 6px rgba(16,36,31,.08);border:2px solid transparent;outline:2px solid color-mix(in srgb,var(--pine) 22%,transparent);outline-offset:3px}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;text-align:center;margin-top:1.5rem}
.stat b{display:block;font:700 clamp(2.2rem,6vw,3.4rem)/1 "Bricolage Grotesque",sans-serif;color:var(--pine)}
.stat span{font-size:.95rem;color:var(--muted)}

/* ---- Credentials accordion ---- */
.acc{border:1px solid var(--line);border-radius:14px;margin-bottom:.8rem;overflow:hidden;background:var(--card)}
.acc-h{width:100%;text-align:start;background:none;border:0;color:var(--ink);font:700 1.15rem "Bricolage Grotesque",sans-serif;padding:1rem 1.2rem;cursor:pointer;display:flex;justify-content:space-between}
.acc-h::after{content:"+";font-size:1.5rem;line-height:1;transition:transform .3s}
.acc-h.open::after{transform:rotate(45deg)}
.js .acc-b{display:none}
.acc-b{padding:0 1.2rem 1rem}
.acc-b li{padding:.35rem 0;color:var(--muted)}
.acc-b li::before{content:"\2713\00a0";color:var(--pine);font-weight:700}

/* ---- Mission band ---- */
.mission{background:var(--pine);color:var(--on-pine);border-radius:22px;padding:2.2rem 1.5rem;text-align:center;margin-top:2rem}
.mission q{display:block;font:700 clamp(1.3rem,3.5vw,1.9rem)/1.3 "Bricolage Grotesque",sans-serif;max-width:34rem;margin:0 auto 1.4rem;quotes:none}
.vals{display:flex;justify-content:center;gap:2rem;flex-wrap:wrap}
.vals span{display:block;font-size:.95rem}
.vals i{font-style:normal;display:block;font-size:1.8rem;transition:transform .3s}
.vals div:hover i{transform:translateY(-6px) scale(1.2)}

/* ---- Clinic gallery ---- */
.gal{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}
.ph.has img{width:100%;height:100%;object-fit:cover;display:block}
.gal .ph.has{aspect-ratio:4/3;padding:0;overflow:hidden;position:relative}
.gal .ph.has img{position:absolute;top:0;left:0;width:100%;height:100%}
.gal .ph.has img{object-position:center 55%}
.gal .ph:nth-child(2) img{object-position:center 82%}
@media (min-width:600px){.gal{grid-template-columns:repeat(2,1fr)}}
.ph{display:grid;place-items:center;text-align:center;padding:1rem;background:var(--surface) center/cover no-repeat;border:1.5px dashed var(--line);border-radius:18px;color:var(--muted);font-size:.95rem;cursor:pointer;aspect-ratio:4/3;overflow:hidden;transition:transform .25s,box-shadow .25s}
.ph:hover{transform:scale(1.03)}
.ph.has{border-style:solid;border-color:transparent;box-shadow:0 14px 28px -12px rgba(16,36,31,.4),0 2px 6px rgba(16,36,31,.08);outline:2px solid color-mix(in srgb,var(--pine) 22%,transparent);outline-offset:3px}
.ph.has span{display:none}

/* ---- Footer and scroll-reveal animation ---- */
footer{padding:2rem 0 3rem;color:var(--muted);border-top:1px solid var(--line);font-size:.95rem}
.js .rv{opacity:0;transform:translateY(26px);transition:opacity .6s ease var(--d,0s),transform .6s ease var(--d,0s)}
.js .rv.in{opacity:1;transform:none}

/* ---- Map pins ---- */
.pin{text-decoration:none;display:inline-block;font-size:2rem;line-height:1;vertical-align:middle;margin-inline-end:.3rem;transition:transform .2s;touch-action:manipulation;-webkit-tap-highlight-color:transparent;padding:.15rem}
@media (hover:hover){.pin:hover{transform:scale(1.15)}}
.pin:active{transform:scale(1.08)}

/* ---- Service cards: expanded details and photo slot ---- */
.grid{align-items:start}
.card{cursor:pointer;position:relative;padding-inline-end:2.4rem}
.card::after{content:"+";position:absolute;top:.7rem;inset-inline-end:1rem;font-size:1.5rem;line-height:1;color:var(--pine);transition:transform .25s ease;transform-origin:center center;display:grid;place-items:center;width:1.4rem;height:1.4rem}
.card.open::after{transform:rotate(45deg)}
.js .more{display:none}
.more{font-weight:400;color:var(--muted);font-size:1rem;padding-top:.8rem}
.more p{margin:0}
.more-in{display:flex;gap:.8rem;align-items:center}
.sp{flex:none;width:92px;height:92px;border-radius:16px;background:var(--surface) center/cover no-repeat;border:1.5px dashed var(--line);display:grid;place-items:center;font-size:1.4rem;cursor:pointer;overflow:hidden;position:relative}
.sp.has{border-style:solid;border-color:transparent;cursor:default;box-shadow:0 12px 24px -10px rgba(16,36,31,.4),0 2px 5px rgba(16,36,31,.08)}
.sp.has::after{content:"";position:absolute;inset:-3px;border-radius:18px;border:2px solid var(--pine);opacity:.22;pointer-events:none}
.sp img{width:100%;height:100%;object-fit:cover;display:block;border-radius:16px}
.sp.has span{display:none}

/* ---- Duration / price chips, small buttons, portrait ---- */
.meta{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.5rem}
.meta span{font-size:.82rem;font-weight:600;color:var(--pine);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:.12rem .65rem}
.btn.sm{padding:.5rem 1.1rem;font-size:.95rem;margin-top:.8rem}
.me{display:block;margin:0 auto 1.6rem;width:min(100%,220px);height:auto;border-radius:20px;box-shadow:0 16px 32px -12px rgba(16,36,31,.45),0 2px 6px rgba(16,36,31,.1);outline:3px solid rgba(255,255,255,.35);outline-offset:3px}

/* ---- EN/AR button inside the top shortcuts + Arabic overrides ---- */
.lang{margin-inline-start:auto;flex:none;border:2px solid var(--pine);background:transparent;color:var(--ink);padding:.25rem .9rem;border-radius:999px;font:600 .9rem "Source Sans 3",system-ui,sans-serif;cursor:pointer;transition:background .2s,color .2s;touch-action:manipulation;-webkit-tap-highlight-color:transparent;min-height:40px}
@media (hover:hover){.lang:hover{background:var(--pine);color:var(--on-pine)}}
.lang:active{background:var(--pine);color:var(--on-pine)}
html[lang="ar"] h1,html[lang="ar"] h2,html[lang="ar"] h3,html[lang="ar"] .logo,html[lang="ar"] .stat b,html[lang="ar"] .acc-h,html[lang="ar"] .mission q{font-family:"Cairo",sans-serif}
html[lang="ar"] .logo{line-height:1.25}
html[lang="ar"] .hero h1{line-height:1.3}

/* ---- Hero action bar helpers ---- */
.btn.ghost{background:transparent;color:var(--ink);border:2px solid var(--pine);margin-inline-start:.6rem}
.hero .btn{margin-bottom:.6rem}
@media (max-width:760px){.nav-ex{display:none}
.btn.ghost{margin-inline-start:.3rem}}

/* ---- Rotating services banner ---- */
.bn{padding:1rem 0 1.5rem}
.bn-stage{position:relative;height:200px;overflow:hidden;direction:ltr}
.bn-track{position:absolute;inset:0}
.bn-slide{position:absolute;left:50%;top:50%;width:125px;height:125px;margin:-62px 0 0 -62px;border-radius:20px;padding:0;border:0;overflow:hidden;cursor:pointer;background:var(--surface);box-shadow:0 16px 32px -12px rgba(16,36,31,.45),0 2px 6px rgba(16,36,31,.1);transform:translateX(calc(var(--p,0)*62%)) scale(calc(1.45 - var(--a,0)*.28));opacity:calc(1 - var(--a,0)*.28);z-index:calc(10 - var(--a,0));filter:blur(calc(var(--a,0)*.6px));transition:transform .7s cubic-bezier(.22,.8,.3,1),opacity .7s,filter .7s}
.bn-slide.on{outline:3px solid var(--accent);outline-offset:3px;box-shadow:0 28px 50px -20px rgba(0,0,0,.65)}
.bn-slide.hid{opacity:0!important;pointer-events:none}
.bn-slide img{width:100%;height:100%;object-fit:cover;display:block;border-radius:inherit}
.bn-btn{position:absolute;top:50%;margin-top:-18px;z-index:20;width:36px;height:36px;border-radius:50%;border:0;background:var(--pine);color:var(--on-pine);font-size:1.7rem;line-height:1;cursor:pointer;transition:transform .2s}
.bn-btn:hover{transform:scale(1.12)}
.bn-btn.prev{left:.1rem}
.bn-btn.next{right:.1rem}
.bn-cap{text-align:center;font:700 1.15rem/1.3 "Bricolage Grotesque","Cairo",sans-serif;margin:.4rem 0 .5rem;min-height:1.6em}
.bn-dots{display:flex;justify-content:center;gap:.5rem}
.bn-dots button{width:10px;height:10px;padding:0;border:0;border-radius:6px;background:var(--line);cursor:pointer;transition:.3s}
.bn-dots button.on{width:26px;background:var(--pine)}
@media (max-width:760px){.bn-stage{height:170px}
.bn-slide{width:100px;height:100px;margin:-50px 0 0 -50px}}

/* ---- Hero action bar: Book Now (highlighted) + Home exercises + Tips ---- */
.actions{display:inline-flex;align-items:center;gap:.25rem;padding:.35rem;max-width:100%;margin-bottom:.6rem;background:var(--card);border:1px solid var(--line);border-radius:999px;box-shadow:0 10px 26px -16px rgba(0,0,0,.45)}
.actions .btn{margin:0;padding:.65rem 1.05rem;font-size:.95rem;white-space:nowrap}
.actions .btn.ghost{border:0;background:transparent;color:var(--ink)}
.actions .btn.ghost:hover{background:var(--surface);transform:none}
.actions #book{background:var(--accent);color:#10241F;font-weight:700;padding:.75rem 1.35rem}
@media (max-width:760px){.actions{gap:.1rem;padding:.3rem}
.actions .btn{padding:.55rem .55rem;font-size:.8rem}
.actions #book{padding:.6rem .85rem}}

/* ---- Footer contact buttons (Call / WhatsApp) ---- */
.contact{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:1.2rem}
.contact .ct{flex:1 1 100%;font-weight:600;color:var(--ink)}
.contact .btn{padding:.5rem 1rem;font-size:.85rem;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.contact .btn.wapp{background:#25D366;color:#073B1B;font-weight:700}
.contact .num{unicode-bidi:isolate;font-weight:600;font-size:.9rem;color:var(--ink);text-decoration:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;padding:.25rem 0}

/* ---- Where & when: location cards and the week strip (highlight logic: js/locations.js) ---- */
.loc-sub{margin:-.8rem 0 1.4rem;color:var(--muted)}
.loc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}
.loc{background:var(--card);border:1px solid var(--line);border-top-width:5px;border-radius:18px;padding:1.1rem 1.2rem 1.2rem;transition:transform .25s,box-shadow .25s}
.loc:hover{transform:translateY(-4px);box-shadow:0 14px 30px -14px rgba(0,0,0,.35)}
.loc.zl{border-top-color:var(--pine)}
.loc.ze{border-top-color:var(--accent)}
.loc h3{font-size:1.3rem;margin:0 0 .3rem}
.loc p{margin:0;color:var(--muted)}
.loc .loc-hrs{font-weight:600;color:var(--ink);margin-bottom:.9rem}
.loc-btns{display:flex;gap:.5rem;flex-wrap:wrap}
.loc-btns .btn{padding:.55rem 1.1rem;font-size:.92rem}
.loc.ze .loc-btns .btn:not(.ghost){background:var(--accent);color:#10241F;font-weight:700}
.loc-wk{font-size:1.1rem;margin:1.8rem 0 .7rem}
.wk{display:grid;grid-template-columns:repeat(5,1fr);gap:.5rem}
.wk .d{position:relative;text-align:center;padding:.65rem .2rem;border-radius:14px;border:1px solid var(--line);font-size:.85rem}
.wk .d b{display:block;font-size:.95rem}
.wk .d span{color:var(--muted);font-size:.78rem}
.wk .d.zl{background:rgba(31,90,77,.14)}
.wk .d.ze{background:rgba(232,163,61,.24)}
.wk .d.today{outline:3px solid var(--accent);outline-offset:2px}
.wk .d.today::after{content:"\25CF";position:absolute;top:2px;inset-inline-end:6px;color:var(--accent);font-size:.6rem}
.loc{position:relative}
.loc-badge{display:none;position:absolute;top:-.8rem;inset-inline-end:1rem;padding:.2rem .75rem;border-radius:999px;font-size:.78rem;font-weight:700;background:var(--accent);color:#10241F;box-shadow:0 6px 14px -6px rgba(0,0,0,.45)}
.loc.is-today .b-today,.loc.is-next .b-next{display:block}
.loc.is-today{box-shadow:0 0 0 3px var(--accent),0 16px 30px -14px rgba(0,0,0,.4)}
.loc.is-next{outline:2px dashed var(--accent);outline-offset:3px}
.loc.is-next .b-next{background:var(--card);color:var(--ink);border:1px dashed var(--accent)}
.wk .d.next{outline:3px dashed var(--accent);outline-offset:2px}
.wk .d.next::after{content:"\25CB";position:absolute;top:2px;inset-inline-end:6px;color:var(--accent);font-size:.6rem}

/* ---- Floating helpers: back-to-top button and sparkles ---- */
.totop{position:fixed;inset-inline-end:1rem;bottom:calc(1rem + env(safe-area-inset-bottom,0px));width:48px;height:48px;border-radius:50%;border:0;background:var(--pine);color:var(--on-pine);font-size:1.3rem;cursor:pointer;display:none;z-index:9;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.spark{position:fixed;pointer-events:none;z-index:99;font-size:1.2rem}

/* ---- Phone adjustments ---- */
@media (max-width:760px){.about,.gal{grid-template-columns:1fr}
.logo{font-size:2.3rem}
.hero h1{font-size:2rem}
.vid.mini{width:76px}
nav a{margin-inline-end:1rem}
.stats{gap:.4rem}}
@media (max-width:760px){nav a{flex:none;font-size:.9rem;margin-inline-end:.4rem}
.lang{font-size:.74rem;padding:.1rem .5rem}}
@media (max-width:380px){nav a{font-size:.82rem}}

/* ---- Sticky Book / Call bar (shown by js/home.js after scrolling) ---- */
.stick{display:flex;gap:.6rem;position:fixed;inset-inline:0;bottom:0;z-index:20;padding:.7rem 1rem calc(.7rem + env(safe-area-inset-bottom,0px));background:var(--card);border-top:1px solid var(--line);box-shadow:0 -10px 28px -14px rgba(0,0,0,.45);transform:translateY(110%);transition:transform .3s;justify-content:center}
.stick.show{transform:none}
.stick a{flex:1;max-width:280px;text-align:center;font-weight:700;text-decoration:none;padding:.8rem 1.2rem;border-radius:999px;font-size:1rem;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.stick .sb{background:var(--accent);color:#10241F;flex:2}
.stick .sc{background:var(--pine);color:var(--on-pine);flex:1}
.totop{bottom:calc(5.6rem + env(safe-area-inset-bottom,0px))}
@media (max-width:760px){.stick{gap:.5rem;padding:.6rem .8rem calc(.6rem + env(safe-area-inset-bottom,0px))}
.stick a{max-width:none;padding:.75rem .5rem}
.totop{bottom:calc(5.4rem + env(safe-area-inset-bottom,0px))}}

/* ---- Anti-flash for Arabic, service links, touch-device overrides ---- */
.pre-ar body{opacity:0}
.card i img{display:block;width:3rem;height:3rem;object-fit:cover;border-radius:12px;box-shadow:0 6px 14px -6px rgba(16,36,31,.35)}
.svc-link{display:block;color:inherit;text-decoration:none;cursor:inherit;line-height:1.25}
.svc-link::after{content:"";opacity:0}
.svc-hint{display:block;width:fit-content;max-width:100%;font-size:.82rem;font-weight:600;color:var(--pine);margin:.35rem 0 .15rem;opacity:.95;text-decoration:none;border-bottom:1.5px solid color-mix(in srgb,var(--pine) 45%,transparent);padding-bottom:1px;line-height:1.3}
.svc-hint:hover{opacity:1;border-bottom-color:var(--accent)}
.svc-hint::after{content:" \2192";font-weight:700}
html[lang="ar"] .svc-hint::after{content:" \2190"}
.card .meta{margin-top:.45rem}
.btn.sm.outline{background:transparent;color:var(--pine);border:2px solid var(--pine)}
.btn.sm.outline:hover{background:var(--pine);color:var(--on-pine);transform:translateY(-2px)}
.more .btn.sm{margin-inline-end:.4rem;margin-top:.8rem}
@media (hover:none){.card:hover{transform:none;box-shadow:none}
.card:hover i{transform:none}
.card:active{transform:none}
.pin:hover{transform:none}}
