/* =====================================================================
   NEW ELITE HOSPITAL — premium homepage
   Palette: Lavender + Slate (light, airy, luxury execution)
   ===================================================================== */

:root{
  --navy:#2E2157;      /* deep violet primary */
  --navy-2:#3B2C74;
  --blue:#7C5CD6;      /* lavender primary */
  --blue-2:#9D86EA;    /* bright lavender accent */
  --sky:#F1ECFB;       /* light lavender tint */
  --sky-2:#E5DCF8;
  --ink:#1A1330;       /* headings */
  --slate:#524C67;     /* body text */
  --slate-2:#7A7191;   /* muted */
  --line:#E9E3F4;
  --cloud:#F8F6FD;
  --white:#FFFFFF;
  --red:#E23B3B;       /* medical cross / emergency accent */

  --shadow-sm:0 2px 8px rgba(46,33,87,.07);
  --shadow:0 18px 40px -18px rgba(46,33,87,.28);
  --shadow-lg:0 40px 80px -30px rgba(46,33,87,.40);

  --r-sm:12px; --r:18px; --r-lg:26px; --r-xl:34px;
  --wrap:1200px;
  --ff-body:"Plus Jakarta Sans",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --ff-head:"Fraunces","Plus Jakarta Sans",Georgia,serif;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
html{scroll-behavior:smooth;overflow-x:clip}
body{
  font-family:var(--ff-body);
  color:var(--slate);
  background:var(--white);
  line-height:1.65;
  font-size:16.5px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.ic{width:20px;height:20px;fill:currentColor}
.wrap{width:min(var(--wrap),92%);margin-inline:auto}

/* ---------- Typography ---------- */
h1,h2,h3,h4{font-family:var(--ff-head);color:var(--ink);line-height:1.1;font-weight:600;letter-spacing:-.01em}
.eyebrow{
  display:inline-block;font-family:var(--ff-body);font-weight:700;
  font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--blue);margin-bottom:16px;
}
.section__title{font-size:clamp(1.9rem,3.6vw,2.9rem);margin-bottom:16px}
.section__title em{font-style:italic;color:var(--blue)}
.section__lede{font-size:1.08rem;color:var(--slate);max-width:56ch}
.section__lede--center{margin-inline:auto;text-align:center}

/* ---------- Buttons ---------- */
.btn{
  --pad:14px 26px;
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font-family:var(--ff-body);font-weight:700;font-size:.95rem;
  padding:var(--pad);border-radius:100px;border:1.5px solid transparent;
  cursor:pointer;transition:.35s var(--ease);white-space:nowrap;
}
.btn .ic{width:18px;height:18px}
.btn--sm{--pad:10px 18px;font-size:.88rem}
.btn--lg{--pad:16px 32px;font-size:1rem}
.btn--block{width:100%}
.btn--primary{background:linear-gradient(135deg,var(--blue),var(--navy-2));color:#fff;box-shadow:0 14px 26px -12px rgba(124,92,214,.7)}
.btn--primary:hover{transform:translateY(-2px);box-shadow:0 22px 38px -14px rgba(124,92,214,.75)}
.btn--wa{background:linear-gradient(135deg,#25D366,#128C7E);color:#fff;box-shadow:0 14px 26px -12px rgba(18,140,126,.7)}
.btn--wa:hover{transform:translateY(-2px);box-shadow:0 22px 38px -14px rgba(18,140,126,.75)}
.btn--wa svg{width:20px;height:20px;fill:currentColor}
.btn--outline{background:#fff;border-color:var(--line);color:var(--navy)}
.btn--outline:hover{border-color:var(--blue);color:var(--blue);transform:translateY(-2px)}
.btn--ghost{background:transparent;color:var(--navy)}
.btn--ghost:hover{background:var(--sky)}
.btn--white{background:#fff;color:var(--navy)}
.btn--white:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.btn--outline-white{background:transparent;border-color:rgba(255,255,255,.5);color:#fff}
.btn--outline-white:hover{background:rgba(255,255,255,.12);border-color:#fff}

/* ---------- Top bar ---------- */
.topbar{background:var(--navy);color:#ddd3f2;font-size:.86rem}
.topbar__inner{display:flex;align-items:center;justify-content:space-between;gap:20px;height:42px}
.topbar__left{display:flex;align-items:center;gap:22px}
.topbar__item{display:inline-flex;align-items:center;gap:8px;color:#e2daf4;transition:.3s}
.topbar__item:hover{color:#fff}
.topbar__item .ic{width:15px;height:15px;fill:var(--blue-2)}
.topbar__item strong{color:#fff}
.topbar__right{display:flex;align-items:center;gap:20px}
.topbar__note{color:#b4a8d2}
.topbar__social{display:flex;gap:6px}
.topbar__social a{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;background:rgba(255,255,255,.08);transition:.3s}
.topbar__social a:hover{background:var(--blue);transform:translateY(-2px)}
.topbar__social .ic{width:15px;height:15px;fill:#fff}

/* ---------- Header ---------- */
.header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.86);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);transition:.4s var(--ease)}
.header.shrink{box-shadow:0 10px 30px -18px rgba(46,33,87,.35)}
.header__inner{display:flex;align-items:center;justify-content:space-between;gap:24px;height:80px;transition:.4s}
.header.shrink .header__inner{height:66px}

.brand{display:flex;align-items:center;gap:13px;flex-shrink:0}
.brand__mark{position:relative;width:46px;height:46px;border-radius:13px;background:linear-gradient(140deg,var(--blue),var(--navy));display:grid;place-items:center;box-shadow:0 10px 20px -8px rgba(124,92,214,.6)}
.brand__mark svg{width:26px;height:26px;fill:#fff}
.brand__mark::after{content:"";position:absolute;inset:0;border-radius:13px;border:1px solid rgba(255,255,255,.35)}
.brand__text{display:flex;flex-direction:column;line-height:1.1}
.brand__name{font-family:var(--ff-head);font-weight:600;font-size:1.28rem;color:var(--ink);letter-spacing:-.01em;white-space:nowrap}
.brand__name em{font-style:italic;color:var(--blue);font-weight:500}
.brand__tag{font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;color:var(--slate-2);font-weight:600;white-space:nowrap}

.nav{display:flex;gap:2px;flex-shrink:1;min-width:0}
.nav a{position:relative;padding:9px 11px;font-weight:600;font-size:.94rem;color:var(--navy);border-radius:10px;transition:.3s;white-space:nowrap}
.nav a::after{content:"";position:absolute;left:11px;right:11px;bottom:4px;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:.3s var(--ease)}
.nav a:hover{color:var(--blue)}
.nav a:hover::after{transform:scaleX(1)}

.header__actions{display:flex;align-items:center;gap:10px}
.hamburger{display:none;flex-direction:column;gap:5px;width:46px;height:46px;border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;align-items:center;justify-content:center;transition:.3s}
.hamburger:hover{border-color:var(--blue);box-shadow:var(--shadow-sm)}
.hamburger span{width:20px;height:2px;background:var(--navy);border-radius:2px;transition:.3s}
.hamburger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger[aria-expanded="true"] span:nth-child(2){opacity:0}
.hamburger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ---------- Off-canvas drawer menu ---------- */
body.menu-open{overflow:hidden}
.drawer-overlay{position:fixed;inset:0;background:rgba(8,20,36,.55);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:.4s var(--ease);z-index:60}
body.menu-open .drawer-overlay{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;height:100%;width:min(410px,90vw);background:#fff;z-index:61;transform:translateX(100%);visibility:hidden;transition:transform .45s var(--ease),visibility 0s .45s;display:flex;flex-direction:column;box-shadow:-24px 0 70px -24px rgba(46,33,87,.5);overflow-y:auto}
body.menu-open .drawer{transform:none;visibility:visible;transition:transform .45s var(--ease),visibility 0s 0s}
.drawer__head{display:flex;align-items:center;justify-content:space-between;padding:22px 28px;border-bottom:1px solid var(--line)}
.drawer__brand{font-family:var(--ff-head);font-weight:600;font-size:1.3rem;color:var(--ink)}
.drawer__brand em{color:var(--blue);font-style:italic;font-weight:500}
.drawer__close{width:42px;height:42px;border-radius:11px;border:1px solid var(--line);background:var(--cloud);color:var(--navy);cursor:pointer;display:grid;place-items:center;transition:.3s}
.drawer__close:hover{background:var(--blue);color:#fff;border-color:var(--blue);transform:rotate(90deg)}
.drawer__close svg{width:20px;height:20px}
.drawer__nav{display:flex;flex-direction:column;padding:8px 0}
.drawer__nav a{display:flex;align-items:center;gap:16px;padding:16px 28px;font-family:var(--ff-head);font-size:1.22rem;font-weight:500;color:var(--ink);border-bottom:1px solid var(--line);transition:.3s var(--ease)}
.drawer__num{font-family:var(--ff-body);font-size:.72rem;font-weight:700;letter-spacing:.05em;color:var(--blue);width:22px;flex:none}
.drawer__nav a .drawer__label{flex:1}
.drawer__arw{margin-left:auto;opacity:0;transform:translateX(-8px);transition:.3s var(--ease);color:var(--blue);font-size:1.1rem}
.drawer__nav a:hover{background:var(--sky);color:var(--blue);padding-left:36px}
.drawer__nav a:hover .drawer__arw{opacity:1;transform:none}
.drawer__nav a.is-active{color:var(--blue);background:linear-gradient(90deg,var(--sky),transparent)}
.drawer__foot{margin-top:auto;padding:24px 28px 28px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:16px}
.drawer__contact{display:flex;align-items:center;gap:13px;color:var(--ink)}
.drawer__contact .info-ic{flex:none;width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,var(--blue),var(--navy));display:grid;place-items:center}
.drawer__contact .info-ic svg{width:20px;height:20px;fill:#fff}
.drawer__contact small{display:block;font-size:.74rem;color:var(--slate-2);font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.drawer__contact strong{font-size:1.05rem;color:var(--ink)}
.drawer__meta{font-size:.86rem;color:var(--slate);display:flex;align-items:center;gap:10px}
.drawer__meta svg{width:16px;height:16px;fill:var(--blue);flex:none}
.drawer__social{display:flex;gap:10px}
.drawer__social a{width:40px;height:40px;border-radius:11px;background:var(--cloud);border:1px solid var(--line);display:grid;place-items:center;color:var(--navy);transition:.3s}
.drawer__social a:hover{background:var(--blue);color:#fff;border-color:var(--blue);transform:translateY(-3px)}
.drawer__social svg{width:18px;height:18px;fill:currentColor}

/* ---------- Hero ---------- */
.hero{position:relative;padding:clamp(50px,7vw,96px) 0 clamp(60px,7vw,100px);background:linear-gradient(180deg,var(--cloud),#fff);overflow:hidden}
.hero__bg{position:absolute;inset:0;z-index:0}
.blob{position:absolute;border-radius:50%;filter:blur(60px);opacity:.5}
.blob--1{width:520px;height:520px;background:radial-gradient(circle,#d4c6f3,transparent 70%);top:-160px;right:-120px}
.blob--2{width:440px;height:440px;background:radial-gradient(circle,#e8e0fb,transparent 70%);bottom:-160px;left:-120px}
.grid-lines{position:absolute;inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:52px 52px;opacity:.35;mask-image:radial-gradient(circle at 70% 40%,#000,transparent 75%)}
.hero__inner{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.hero__title{font-size:clamp(2.5rem,5.2vw,4.1rem);letter-spacing:-.02em;margin-bottom:22px}
.hero__title em{font-style:italic;color:var(--blue)}
.hero__lede{font-size:1.15rem;max-width:50ch;margin-bottom:32px}
.hero__cta{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:38px}
.hero__chips{display:flex;gap:14px;flex-wrap:wrap}
.chip{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:14px 18px;box-shadow:var(--shadow-sm)}
.chip__num{font-family:var(--ff-head);font-weight:600;font-size:1.55rem;color:var(--navy);line-height:1}
.chip__num .star{color:#F5A623;font-size:1rem}
.chip__num .plus{color:var(--blue)}
.chip__lbl{font-size:.78rem;color:var(--slate-2);font-weight:600;line-height:1.25}

.hero__media{position:relative}
.hero__frame{position:relative;border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--shadow-lg);border:6px solid #fff;aspect-ratio:4/4.4}
.hero__frame img{width:100%;height:100%;object-fit:cover}
.hero__frame-glow{position:absolute;inset:0;z-index:2;background:linear-gradient(180deg,transparent 40%,rgba(46,33,87,.28));pointer-events:none}
.kenburns{animation:kenburns 20s ease-in-out infinite alternate}
/* hero frame as a carousel (desktop) */
.hero__slide{position:absolute;inset:0;opacity:0;transition:opacity 1s ease}
.hero__slide.is-active{opacity:1;z-index:1}
.hero__slide img{width:100%;height:100%;object-fit:cover}
.hero__slide.is-active img{animation:kenburns 9s ease-out both}
.hero__dots{position:absolute;bottom:14px;left:0;right:0;z-index:3;display:flex;gap:7px;justify-content:center}
.hero__dots button{width:7px;height:7px;border-radius:50%;border:none;background:rgba(255,255,255,.55);padding:0;cursor:pointer;transition:.35s var(--ease)}
.hero__dots button.is-active{background:#fff;width:22px;border-radius:4px}
@keyframes kenburns{from{transform:scale(1) translate(0,0)}to{transform:scale(1.1) translate(-2%,-2%)}}

.floatcard{position:absolute;display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:16px;padding:13px 16px;box-shadow:var(--shadow);animation:floaty 5s ease-in-out infinite}
.floatcard strong{display:block;color:var(--ink);font-size:.92rem;font-family:var(--ff-body)}
.floatcard small{color:var(--slate-2);font-size:.76rem}
.floatcard__ic{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,var(--blue),var(--navy));display:grid;place-items:center;flex:none}
.floatcard__ic svg{width:22px;height:22px;fill:#fff}
.floatcard__ic--soft{background:linear-gradient(135deg,#ff7a8a,var(--red))}
.floatcard--tl{top:22px;left:-34px}
.floatcard--br{bottom:34px;right:-30px;animation-delay:1.5s}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-11px)}}

/* ---------- Stripe stats ---------- */
.stripe{background:linear-gradient(120deg,var(--navy),var(--navy-2));color:#fff}
.stripe__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding:38px 0}
.stat{text-align:center;position:relative}
.stat::after{content:"";position:absolute;right:-10px;top:20%;height:60%;width:1px;background:rgba(255,255,255,.16)}
.stat:last-child::after{display:none}
.stat__num{display:block;font-family:var(--ff-head);font-weight:600;font-size:clamp(2rem,3.4vw,2.7rem);line-height:1}
.stat__lbl{font-size:.9rem;color:#c1b6df;font-weight:600;letter-spacing:.02em}

/* ---------- Sections ---------- */
.section{padding:clamp(64px,8vw,112px) 0}
.section--tint{background:var(--cloud)}
.section__head{text-align:center;max-width:720px;margin:0 auto 56px}

/* ---------- About ---------- */
.about__grid{display:grid;grid-template-columns:1fr 1.05fr;gap:64px;align-items:center}
.about__collage{position:relative;padding-bottom:30px}
.about__img{border-radius:var(--r-lg);box-shadow:var(--shadow);object-fit:cover}
.about__img--main{width:86%;aspect-ratio:4/3}
.about__img--sub{position:absolute;right:0;bottom:0;width:52%;aspect-ratio:4/3.2;border:6px solid #fff}
.about__badge{position:absolute;top:18px;right:12px;background:linear-gradient(135deg,var(--blue),var(--navy));color:#fff;border-radius:16px;padding:14px 18px;box-shadow:var(--shadow);text-align:center}
.about__badge-num{display:block;font-family:var(--ff-head);font-weight:600;font-size:1.3rem}
.about__badge-lbl{font-size:.72rem;color:#ded4f4;letter-spacing:.08em;text-transform:uppercase}
.ticklist{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:12px 22px;margin:26px 0 32px}
.ticklist li{display:flex;align-items:flex-start;gap:11px;font-weight:600;color:var(--ink);font-size:.98rem}
.tick{flex:none;width:22px;height:22px;border-radius:50%;background:var(--sky);position:relative;margin-top:2px}
.tick::after{content:"";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--blue);border-width:0 2px 2px 0;transform:rotate(45deg)}

/* ---------- Departments ---------- */
.deptgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.dept{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:28px 24px;transition:.4s var(--ease);position:relative;overflow:hidden}
.dept::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,var(--blue),var(--navy));opacity:0;transition:.4s;z-index:0}
.dept>*{position:relative;z-index:1}
.dept__ic{width:56px;height:56px;border-radius:16px;background:var(--sky);display:grid;place-items:center;margin-bottom:18px;transition:.4s}
.dept__ic svg{width:28px;height:28px;fill:none;stroke:var(--blue);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:.4s}
.dept h3{font-size:1.16rem;margin-bottom:8px;font-family:var(--ff-body);font-weight:700;color:var(--ink);transition:.4s}
.dept p{font-size:.9rem;color:var(--slate-2);transition:.4s}
.dept:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg);border-color:transparent}
.dept:hover::before{opacity:1}
.dept:hover .dept__ic{background:rgba(255,255,255,.16)}
.dept:hover .dept__ic svg{stroke:#fff}
.dept:hover h3{color:#fff}
.dept:hover p{color:#ded5f4}

/* ---------- Bento facilities ---------- */
.bento{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;gap:18px}
.bento__item{position:relative;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm)}
.bento__item img{width:100%;height:100%;object-fit:cover;transition:.7s var(--ease)}
.bento__item::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(8,24,44,.82))}
.bento__item figcaption{position:absolute;left:0;right:0;bottom:0;padding:20px;color:#fff;z-index:2}
.bento__tag{display:inline-block;background:rgba(255,255,255,.18);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.3);padding:4px 12px;border-radius:100px;font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px}
.bento__item figcaption p{font-size:.88rem;color:#ece6f9;margin:0;max-width:34ch}
.bento__item:hover img{transform:scale(1.08)}
.bento__item--lg{grid-column:span 2;grid-row:span 2}
.bento__item--wide{grid-column:span 2}

/* ---------- Band ---------- */
.band{background:linear-gradient(120deg,var(--blue),var(--navy));position:relative;overflow:hidden}
.band::before{content:"";position:absolute;top:-40%;right:-5%;width:420px;height:420px;border-radius:50%;background:rgba(255,255,255,.07)}
.band__inner{position:relative;display:flex;align-items:center;justify-content:space-between;gap:30px;padding:56px 0;color:#fff;flex-wrap:wrap}
.band__title{color:#fff;font-size:clamp(1.7rem,3vw,2.4rem)}
.band__sub{color:#e1daf6;max-width:52ch;margin-top:8px}
.band__cta{display:flex;gap:14px;flex-wrap:wrap}

/* ---------- Doctors ---------- */
.docgrid{display:grid;grid-template-columns:1fr;gap:24px;max-width:880px;margin-inline:auto}
.doc{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;transition:.4s var(--ease)}
.doc:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.doc--feature{display:grid;grid-template-columns:.9fr 1.1fr;align-items:stretch}
.doc__photo img{width:100%;height:100%;object-fit:cover;object-position:top center;min-height:320px}
.doc__body{padding:30px}
.doc__spec{display:inline-block;background:var(--sky);color:var(--blue);font-weight:700;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;padding:5px 12px;border-radius:100px;margin-bottom:12px}
.doc__name{font-size:1.5rem;color:var(--ink);margin-bottom:4px}
.doc__qual{color:var(--blue);font-weight:600;font-size:.95rem;margin-bottom:14px}
.doc__bio{font-size:.94rem;color:var(--slate);margin-bottom:20px}
.doc--soon{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 20px;background:var(--cloud);border-style:dashed}
.doc__ph{width:78px;height:78px;border-radius:50%;background:#fff;border:1px solid var(--line);display:grid;place-items:center;margin-bottom:16px}
.doc__ph svg{width:38px;height:38px;fill:none;stroke:var(--slate-2);stroke-width:1.6}
.doc--soon .doc__name{font-family:var(--ff-body);font-size:1.15rem}
.doc--soon .doc__qual{color:var(--slate-2);font-weight:600}

/* ---------- Testimonials ---------- */
.testi__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.quote{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:32px;box-shadow:var(--shadow-sm);position:relative}
.quote::before{content:"\201C";position:absolute;top:6px;right:24px;font-family:var(--ff-head);font-size:5rem;color:var(--sky-2);line-height:1}
.quote__stars{color:#F5A623;letter-spacing:2px;margin-bottom:14px}
.quote p{color:var(--ink);font-size:1rem;position:relative;z-index:1}
.quote footer{margin-top:20px;display:flex;flex-direction:column}
.quote footer span{font-weight:700;color:var(--ink)}
.quote footer small{color:var(--slate-2)}
.testi__note{text-align:center;margin-top:24px;font-size:.85rem;color:var(--slate-2)}

/* ---------- Contact / form ---------- */
.contact__grid{display:grid;grid-template-columns:1.1fr .9fr;gap:44px;align-items:start}
.contact__form-wrap{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:40px;box-shadow:var(--shadow)}
.form{margin-top:24px;display:flex;flex-direction:column;gap:16px}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{display:flex;flex-direction:column;gap:7px}
.field span{font-weight:600;font-size:.85rem;color:var(--ink)}
.field input,.field select,.field textarea{
  font-family:var(--ff-body);font-size:.95rem;color:var(--ink);
  padding:13px 15px;border:1.5px solid var(--line);border-radius:12px;background:var(--cloud);transition:.3s;width:100%;
}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--blue);background:#fff;box-shadow:0 0 0 4px rgba(124,92,214,.1)}
.form__note{background:var(--sky);color:var(--navy);padding:12px 16px;border-radius:12px;font-size:.9rem;font-weight:600}

.info-card{background:linear-gradient(140deg,var(--navy),var(--navy-2));color:#fff;border-radius:var(--r-lg);padding:34px;box-shadow:var(--shadow)}
.info-card h3{color:#fff;font-size:1.4rem;margin-bottom:20px}
.info-list{list-style:none;display:flex;flex-direction:column;gap:18px}
.info-list li{display:flex;gap:14px;align-items:flex-start;font-size:.94rem;color:#e2daf4}
.info-list a{color:#fff;font-weight:600}
.info-list a:hover{text-decoration:underline}
.info-ic{flex:none;width:40px;height:40px;border-radius:11px;background:rgba(255,255,255,.1);display:grid;place-items:center}
.info-ic svg{width:20px;height:20px;fill:var(--blue-2)}
.map{margin-top:20px;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--line)}
.map iframe{width:100%;height:240px;border:0;display:block;filter:grayscale(.2)}

/* ---------- Footer ---------- */
.footer{background:var(--ink);color:#ada4c4;padding-top:64px}
.footer__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:40px;padding-bottom:48px}
.brand--light .brand__name{color:#fff}
.brand--light .brand__tag{color:#8a7fa2}
.footer__about{margin:20px 0;max-width:36ch;font-size:.92rem;line-height:1.7}
.footer__social{display:flex;gap:10px}
.footer__social a{width:38px;height:38px;border-radius:11px;background:rgba(255,255,255,.07);display:grid;place-items:center;transition:.3s}
.footer__social a:hover{background:var(--blue);transform:translateY(-3px)}
.footer__social .ic{width:18px;height:18px;fill:#fff}
.footer__col h4{color:#fff;font-family:var(--ff-body);font-size:1rem;margin-bottom:18px}
.footer__col a{display:block;padding:6px 0;font-size:.92rem;transition:.3s}
.footer__col a:hover{color:#fff;padding-left:5px}
.footer__addr{display:block;margin-top:10px;font-size:.88rem;line-height:1.6}
.footer__bar{border-top:1px solid rgba(255,255,255,.08)}
.footer__bar-inner{display:flex;justify-content:space-between;padding:22px 0;font-size:.84rem;color:#8a7fa2;flex-wrap:wrap;gap:8px}
.footer__made a{color:#c1b6df;font-weight:600;transition:.3s}
.footer__made a:hover{color:#fff}

/* ---------- Floating social rail ---------- */
.social-rail{position:fixed;left:18px;top:50%;transform:translateY(-50%);z-index:40;display:flex;flex-direction:column;gap:10px}
.social-rail a{position:relative;width:44px;height:44px;border-radius:13px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;box-shadow:var(--shadow-sm);color:var(--navy);transition:.3s var(--ease)}
.social-rail a:hover{background:var(--blue);color:#fff;transform:translateX(4px) scale(1.05)}
.social-rail__wa:hover{background:#25D366}
.social-rail a .ic{width:20px;height:20px}
.social-rail a::after{content:attr(data-tip);position:absolute;left:56px;top:50%;transform:translateY(-50%);background:var(--ink);color:#fff;font-size:.76rem;font-weight:600;padding:5px 11px;border-radius:8px;white-space:nowrap;opacity:0;pointer-events:none;transition:.3s}
.social-rail a:hover::after{opacity:1}

/* ---------- Floating FAB ---------- */
.fab{position:fixed;right:22px;bottom:96px;z-index:45;display:flex;flex-direction:column;align-items:flex-end;gap:12px}
.fab__menu{display:flex;flex-direction:column;gap:10px;animation:fabIn .3s var(--ease)}
.fab__item{display:inline-flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);padding:11px 18px;border-radius:100px;font-weight:600;font-size:.9rem;color:var(--navy);box-shadow:var(--shadow);transition:.3s}
.fab__item:hover{color:var(--blue);transform:translateX(-4px)}
.fab__item .ic{width:18px;height:18px;fill:var(--blue)}
@keyframes fabIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.fab__btn{width:60px;height:60px;border-radius:50%;border:none;cursor:pointer;background:linear-gradient(135deg,var(--blue),var(--navy));box-shadow:0 16px 30px -10px rgba(124,92,214,.7);position:relative;display:grid;place-items:center;transition:.4s var(--ease)}
.fab__btn .ic{width:28px;height:28px;fill:#fff;position:absolute;transition:.35s var(--ease)}
.fab__ic-close{opacity:0;transform:rotate(-90deg) scale(.5)}
.fab.open .fab__btn{transform:rotate(90deg)}
.fab.open .fab__ic-open{opacity:0;transform:rotate(90deg) scale(.5)}
.fab.open .fab__ic-close{opacity:1;transform:rotate(0) scale(1)}
.fab__btn::before{content:"";position:absolute;inset:0;border-radius:50%;background:var(--blue);animation:pulse 2.4s ease-out infinite;z-index:-1}
@keyframes pulse{0%{transform:scale(1);opacity:.5}100%{transform:scale(1.8);opacity:0}}

/* ---------- Chatbot ---------- */
.chat{position:fixed;right:22px;bottom:22px;z-index:46}
.chat__toggle{width:60px;height:60px;border-radius:50%;border:none;cursor:pointer;background:linear-gradient(135deg,var(--navy),var(--blue));box-shadow:0 16px 30px -10px rgba(46,33,87,.7);display:grid;place-items:center;position:relative;transition:.35s var(--ease)}
.chat__toggle:hover{transform:scale(1.06)}
.chat__toggle .ic{width:28px;height:28px;fill:#fff;stroke:none}
.chat__badge{position:absolute;top:-3px;right:-3px;width:22px;height:22px;background:var(--red);color:#fff;border-radius:50%;font-size:.72rem;font-weight:700;display:grid;place-items:center;border:2px solid #fff}
.chat.open .chat__toggle{transform:scale(0);opacity:0}

.chat__panel{position:absolute;right:0;bottom:0;width:min(370px,86vw);height:min(560px,78vh);background:#fff;border-radius:22px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--line);animation:chatIn .35s var(--ease)}
@keyframes chatIn{from{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
.chat__head{background:linear-gradient(135deg,var(--navy),var(--blue));color:#fff;padding:16px 18px;display:flex;align-items:center;justify-content:space-between}
.chat__id{display:flex;align-items:center;gap:12px}
.chat__avatar{width:42px;height:42px;border-radius:12px;background:rgba(255,255,255,.16);display:grid;place-items:center}
.chat__avatar svg{width:24px;height:24px;fill:#fff}
.chat__id strong{display:block;font-family:var(--ff-body);font-size:1rem}
.chat__id small{display:flex;align-items:center;gap:6px;font-size:.78rem;color:#ded4f4}
.dot{width:8px;height:8px;border-radius:50%;background:#39d98a;box-shadow:0 0 0 0 rgba(57,217,138,.6);animation:dot 1.8s infinite}
@keyframes dot{0%{box-shadow:0 0 0 0 rgba(57,217,138,.6)}70%{box-shadow:0 0 0 7px rgba(57,217,138,0)}100%{box-shadow:0 0 0 0 rgba(57,217,138,0)}}
.chat__close{background:rgba(255,255,255,.14);border:none;width:32px;height:32px;border-radius:9px;color:#fff;cursor:pointer;display:grid;place-items:center}
.chat__close:hover{background:rgba(255,255,255,.28)}
.chat__body{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:12px;background:var(--cloud)}
.msg{max-width:82%;padding:11px 15px;border-radius:16px;font-size:.92rem;line-height:1.5;animation:msgIn .3s var(--ease)}
@keyframes msgIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.msg--bot{background:#fff;border:1px solid var(--line);color:var(--ink);border-bottom-left-radius:5px;align-self:flex-start}
.msg--user{background:linear-gradient(135deg,var(--blue),var(--navy));color:#fff;border-bottom-right-radius:5px;align-self:flex-end}
.msg a{color:var(--blue);font-weight:700;text-decoration:underline}
.msg--user a{color:#fff}
.chat__quick{display:flex;gap:8px;flex-wrap:wrap;padding:12px 16px;border-top:1px solid var(--line);background:#fff}
.chat__quick button{background:var(--sky);border:1px solid var(--sky-2);color:var(--navy);font-family:var(--ff-body);font-weight:600;font-size:.82rem;padding:7px 13px;border-radius:100px;cursor:pointer;transition:.25s}
.chat__quick button:hover{background:var(--blue);color:#fff;border-color:var(--blue)}
.chat__input{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--line);background:#fff}
.chat__input input{flex:1;border:1.5px solid var(--line);border-radius:100px;padding:11px 16px;font-family:var(--ff-body);font-size:.92rem;outline:none;transition:.3s}
.chat__input input:focus{border-color:var(--blue)}
.chat__input button{width:44px;height:44px;flex:none;border:none;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--navy));cursor:pointer;display:grid;place-items:center}
.chat__input button .ic{fill:#fff;width:20px;height:20px}

/* ---------- Active nav ---------- */
.nav a.is-active{color:var(--blue)}
.nav a.is-active::after{transform:scaleX(1)}

/* ---------- Section CTA row ---------- */
.section__cta{display:flex;justify-content:center;margin-top:40px}

/* ---------- Technology grid ---------- */
.tech{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.tech__item{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;transition:.4s var(--ease)}
.tech__item:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.tech__img{aspect-ratio:4/3;overflow:hidden;background:var(--sky)}
.tech__img img{width:100%;height:100%;object-fit:cover;transition:.6s var(--ease)}
.tech__item:hover .tech__img img{transform:scale(1.07)}
.tech__item h3{font-family:var(--ff-body);font-weight:700;font-size:1.08rem;color:var(--ink);margin:18px 22px 6px}
.tech__item p{font-size:.88rem;color:var(--slate-2);margin:0 22px 22px}

/* ---------- Gallery preview strip ---------- */
.gallery-preview{overflow:hidden}
.gp-track{display:flex;gap:18px;padding:8px 6vw 8px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.gp-track::-webkit-scrollbar{display:none}
.gp-item{position:relative;flex:0 0 auto;width:320px;height:220px;border-radius:var(--r-lg);overflow:hidden;scroll-snap-align:start;box-shadow:var(--shadow-sm)}
.gp-item img{width:100%;height:100%;object-fit:cover;transition:.6s var(--ease)}
.gp-item::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(8,24,44,.8))}
.gp-item span{position:absolute;left:18px;bottom:16px;z-index:2;color:#fff;font-weight:700;font-size:.95rem}
.gp-item:hover img{transform:scale(1.08)}

/* ---------- Reveal animation ---------- */
.reveal{opacity:0;transform:translateY(34px);transition:.8s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal[data-delay="1"]{transition-delay:.1s}
.reveal[data-delay="2"]{transition-delay:.2s}
.reveal[data-delay="3"]{transition-delay:.3s}

/* ---------- Responsive ---------- */
@media(max-width:1024px){
  .hero__inner{grid-template-columns:1fr;gap:48px}
  .hero__media{max-width:520px;margin-inline:auto;width:100%}
  .deptgrid{grid-template-columns:repeat(2,1fr)}
  .bento{grid-template-columns:repeat(2,1fr);grid-auto-rows:200px}
  .bento__item--lg{grid-column:span 2;grid-row:span 1}
  .bento__item--wide{grid-column:span 2}
  .docgrid{grid-template-columns:1fr}
  .doc--feature{grid-column:span 2}
  .about__grid{grid-template-columns:1fr;gap:48px}
  .contact__grid{grid-template-columns:1fr}
  .testi__grid{grid-template-columns:1fr}
}
@media(max-width:1080px){
  .nav{display:none}
  .hamburger{display:flex}
}
@media(max-width:820px){
  .header__actions .btn--ghost{display:none}
  .topbar__left{gap:12px}
  .stripe__grid{grid-template-columns:repeat(2,1fr);gap:28px}
  .stat::after{display:none}
  .ticklist{grid-template-columns:1fr}
  .social-rail{display:none}
  .band__inner{flex-direction:column;align-items:flex-start}
}
@media(max-width:560px){
  body{font-size:15.5px}
  .topbar__note,.topbar__hide{display:none}
  .deptgrid{grid-template-columns:1fr}
  .bento{grid-template-columns:1fr;grid-auto-rows:200px}
  .bento__item--lg,.bento__item--wide{grid-column:auto;grid-row:auto}
  .docgrid,.doc--feature{grid-template-columns:1fr}
  .form__row{grid-template-columns:1fr}
  .hero__chips{gap:10px}
  .chip{padding:11px 14px}
  .fab{bottom:88px}
  /* header: keep brand compact so the hamburger is never clipped */
  .header__inner{gap:10px}
  .brand{gap:10px}
  .brand__tag{display:none}
  .brand__name{font-size:1.12rem}
  .brand__mark{width:40px;height:40px;border-radius:11px}
  .brand__mark svg{width:22px;height:22px}
  /* top bar: emergency number stays on one line */
  .topbar{font-size:.78rem}
  .topbar__inner{gap:10px}
  .topbar__item span{white-space:nowrap}
  .topbar__item .ic{width:14px;height:14px}
  /* footer: left-aligned single column on mobile */
  .footer{padding-top:46px}
  .footer__grid{grid-template-columns:1fr;gap:26px;text-align:left}
  .footer__brand{display:flex;flex-direction:column;align-items:flex-start}
  .footer__about{margin:16px 0 18px;max-width:40ch}
  .footer__social{justify-content:flex-start}
  .footer__col h4{margin-bottom:12px}
  .footer__col a{padding:6px 0}
  .footer__col a:hover{padding-left:0;color:#fff}
  .footer__addr{margin:10px 0 0}
  .footer__bar-inner{flex-direction:column;text-align:left;align-items:flex-start;gap:6px}
}

/* ================= SUBPAGE COMPONENTS ================= */

/* Page hero banner */
.pagehero{position:relative;padding:clamp(70px,9vw,120px) 0 clamp(50px,6vw,80px);background:linear-gradient(120deg,var(--navy),var(--navy-2));color:#fff;overflow:hidden}
.pagehero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:52px 52px;mask-image:radial-gradient(circle at 75% 30%,#000,transparent 72%)}
.pagehero::after{content:"";position:absolute;top:-120px;right:-80px;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(157,134,234,.4),transparent 70%);filter:blur(30px)}
.pagehero__inner{position:relative;z-index:1;max-width:760px}
.pagehero .eyebrow{color:#b8a8ee}
.pagehero h1{color:#fff;font-size:clamp(2.2rem,4.6vw,3.4rem);margin-bottom:14px}
.pagehero h1 em{font-style:italic;color:#b8a8ee}
.pagehero p{color:#ddd3f2;font-size:1.1rem;max-width:60ch}
.crumb{display:flex;gap:8px;align-items:center;font-size:.85rem;color:#b4a8d2;margin-bottom:18px}
.crumb a{color:#b4a8d2}.crumb a:hover{color:#fff}
.crumb span{opacity:.6}

/* Prose / split content */
.split{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.split--media-first .split__media{order:-1}
.split__media img{width:100%;border-radius:var(--r-lg);box-shadow:var(--shadow)}
.prose p{margin-bottom:16px}
.prose h3{font-size:1.4rem;margin:26px 0 12px}
.lead{font-size:1.15rem;color:var(--ink);font-weight:500}

/* Value / feature cards */
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.value{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:30px 26px;transition:.4s var(--ease)}
.value:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.value__ic{width:54px;height:54px;border-radius:15px;background:var(--sky);display:grid;place-items:center;margin-bottom:16px}
.value__ic svg{width:28px;height:28px;fill:none;stroke:var(--blue);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.value h3{font-family:var(--ff-body);font-weight:700;font-size:1.12rem;color:var(--ink);margin-bottom:8px}
.value p{font-size:.92rem;color:var(--slate-2)}

/* Department detail list */
.deptlist{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.dcard{display:flex;gap:20px;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:26px;transition:.4s var(--ease)}
.dcard:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:transparent}
.dcard__ic{flex:none;width:60px;height:60px;border-radius:16px;background:linear-gradient(135deg,var(--blue),var(--navy));display:grid;place-items:center}
.dcard__ic svg{width:30px;height:30px;fill:none;stroke:#fff;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.dcard h3{font-family:var(--ff-body);font-weight:700;font-size:1.18rem;color:var(--ink);margin-bottom:6px}
.dcard p{font-size:.92rem;color:var(--slate-2);margin-bottom:10px}
.dcard ul{list-style:none;display:flex;flex-wrap:wrap;gap:6px}
.dcard li{font-size:.78rem;font-weight:600;color:var(--blue);background:var(--sky);padding:4px 11px;border-radius:100px}

/* Facilities detailed rows */
.facrow{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;margin-bottom:70px}
.facrow:last-child{margin-bottom:0}
.facrow:nth-child(even) .facrow__media{order:-1}
.facrow__media{position:relative;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow)}
.facrow__media img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.facrow__tag{display:inline-block;background:var(--sky);color:var(--blue);font-weight:700;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;padding:5px 13px;border-radius:100px;margin-bottom:14px}
.facrow h3{font-size:1.7rem;margin-bottom:12px}
.facrow p{color:var(--slate);margin-bottom:14px}

/* ---------- Lightbox gallery grid ---------- */
.ggrid{columns:3;column-gap:18px}
.ggrid figure{break-inside:avoid;margin:0 0 18px;border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow-sm);cursor:pointer;position:relative}
.ggrid img{width:100%;display:block;transition:.5s var(--ease)}
.ggrid figure::after{content:"";position:absolute;inset:0;background:rgba(46,33,87,0);transition:.4s}
.ggrid figure:hover::after{background:rgba(46,33,87,.18)}
.ggrid figure:hover img{transform:scale(1.05)}
.ggrid figcaption{position:absolute;left:14px;bottom:12px;z-index:2;color:#fff;font-weight:700;font-size:.9rem;opacity:0;transform:translateY(6px);transition:.4s}
.ggrid figure:hover figcaption{opacity:1;transform:none}
.lightbox{position:fixed;inset:0;z-index:100;background:rgba(6,16,30,.92);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:.35s}
.lightbox.open{opacity:1;pointer-events:auto}
.lightbox img{max-width:90vw;max-height:82vh;border-radius:12px;box-shadow:var(--shadow-lg)}
.lightbox__close,.lightbox__nav{position:absolute;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);color:#fff;width:52px;height:52px;border-radius:50%;cursor:pointer;font-size:1.4rem;display:grid;place-items:center;transition:.3s}
.lightbox__close:hover,.lightbox__nav:hover{background:rgba(255,255,255,.25)}
.lightbox__close{top:22px;right:22px}
.lightbox__nav--prev{left:22px;top:50%;transform:translateY(-50%)}
.lightbox__nav--next{right:22px;top:50%;transform:translateY(-50%)}
.lightbox__cap{position:absolute;bottom:24px;left:0;right:0;text-align:center;color:#e2daf4;font-weight:600}

@media(max-width:1024px){
  .tech{grid-template-columns:repeat(2,1fr)}
  .split,.facrow{grid-template-columns:1fr;gap:32px}
  .split--media-first .split__media,.facrow:nth-child(even) .facrow__media{order:0}
  .values,.deptlist{grid-template-columns:1fr 1fr}
  .ggrid{columns:2}
}
@media(max-width:560px){
  .tech{grid-template-columns:1fr}
  .values,.deptlist{grid-template-columns:1fr}
  .ggrid{columns:1}
  .gp-item{width:260px;height:180px}
}

/* ---------- Mobile hero carousel (mobile only) ---------- */
.mcarousel{display:none}
@media(max-width:820px){
  .mcarousel{display:block;position:relative;width:100%;height:56vh;min-height:300px;max-height:440px;overflow:hidden;background:var(--navy)}
  .mcarousel__slide{position:absolute;inset:0;opacity:0;transition:opacity 1s ease}
  .mcarousel__slide.is-active{opacity:1;z-index:1}
  .mcarousel__slide img{width:100%;height:100%;object-fit:cover}
  .mcarousel__slide.is-active img{animation:kenburns 6s ease-out both}
  .mcarousel__overlay{position:absolute;inset:0;z-index:2;background:linear-gradient(180deg,rgba(46,33,87,.12) 0%,rgba(46,33,87,.28) 55%,rgba(46,33,87,.62) 100%)}
  .mcarousel__badge{position:absolute;left:16px;top:16px;z-index:3;display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.16);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.32);color:#fff;font-size:.7rem;font-weight:700;letter-spacing:.04em;padding:7px 14px;border-radius:100px}
  .mcarousel__badge::before{content:"";width:7px;height:7px;border-radius:50%;background:#39d98a;box-shadow:0 0 0 0 rgba(57,217,138,.6);animation:dot 1.8s infinite}
  .mcarousel__dots{position:absolute;bottom:14px;left:0;right:0;z-index:3;display:flex;gap:7px;justify-content:center}
  .mcarousel__dots button{width:7px;height:7px;border-radius:50%;border:none;background:rgba(255,255,255,.5);padding:0;cursor:pointer;transition:.35s var(--ease)}
  .mcarousel__dots button.is-active{background:#fff;width:22px;border-radius:4px}
  /* hide desktop hero image on mobile; keep the copy */
  .hero__media{display:none}
  .hero{padding-top:30px}
}

/* ---------- Mobile bottom navigation ---------- */
.botnav{display:none}
@media(max-width:820px){
  body{padding-bottom:68px}
  .botnav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:55;background:rgba(255,255,255,.97);backdrop-filter:blur(14px);border-top:1px solid var(--line);box-shadow:0 -8px 26px -14px rgba(46,33,87,.35);padding:7px 4px calc(7px + env(safe-area-inset-bottom))}
  .botnav__item{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:5px 2px;font-family:var(--ff-body);font-size:.63rem;font-weight:700;color:var(--slate);background:none;border:none;cursor:pointer;text-decoration:none;transition:.2s}
  .botnav__item svg{width:23px;height:23px;fill:none;stroke:var(--navy);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:.2s}
  .botnav__item:active{transform:scale(.92)}
  .botnav__item--wa svg{fill:#25D366;stroke:none}
  .botnav__item--book svg{stroke:var(--blue)}
  .botnav__item--book{color:var(--blue)}
  .fab{display:none}
  .chat{bottom:80px;right:14px}
  .chat__toggle{width:54px;height:54px}
  .chat__panel{bottom:0;height:min(540px,72vh)}
}

/* ---------- Mobile refinements ---------- */
@media(max-width:600px){
  body{font-size:15.5px}
  .section{padding:54px 0}
  .section__head{margin-bottom:36px}
  .pagehero{padding:54px 0 40px}
  .pagehero p{font-size:1rem}
  .hero{padding:34px 0 48px}
  .hero__title{font-size:2.2rem;line-height:1.14;margin-bottom:16px}
  .hero__lede{font-size:1.02rem;margin-bottom:26px}
  .hero__cta{flex-direction:column;align-items:stretch;gap:10px}
  .hero__cta .btn{width:100%}
  .hero__frame{aspect-ratio:4/3.7}
  .floatcard{display:none}
  .section__title{font-size:1.72rem}
  .section__lede{font-size:1rem}
  .about__img--sub{display:none}
  .about__img--main{width:100%}
  .about__collage{padding-bottom:0}
  .about__badge{top:12px;right:12px;padding:11px 15px}
  .band__title{font-size:1.55rem}
  .band__cta{width:100%}
  .band__cta .btn{flex:1;justify-content:center}
  .btn--lg{--pad:14px 22px}
  .header__book{display:none}
  .doc__photo img{min-height:260px}
  .info-card,.contact__form-wrap{padding:26px}
  .quote{padding:26px}
}
@media(max-width:400px){
  .hero__chips{gap:8px}
  .chip{padding:10px 12px;gap:8px}
  .chip__num{font-size:1.3rem}
}

@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition-duration:.01ms!important;scroll-behavior:auto}
  .reveal{opacity:1;transform:none}
}
