:root{
  --ink:#16181F; --ink-soft:#4C5B72; --paper:#F5F9FF; --card:#FFFFFF;
  --blue:#2E7CF0; --blue-deep:#0B3D66; --blue-tint:#C9E1FA;
  --pink:#FF0099; --pink-deep:#C2007A; --pink-tint:#FFDCF0;
  --line:#DCEAF7; --shadow:0 22px 44px -26px rgba(11,61,102,.35);
  --radius:16px; --maxw:1220px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;} *{animation-duration:.001ms !important; transition-duration:.001ms !important;}}
body{margin:0; background:var(--paper); color:var(--ink); font-family:'Inter',sans-serif; line-height:1.6; -webkit-font-smoothing:antialiased;}
h1,h2,h3,h4{font-family:'Fraunces',serif; font-weight:600; line-height:1.12; margin:0 0 .5em; color:var(--blue-deep); letter-spacing:-.01em;}
p{margin:0 0 1em; color:var(--ink-soft);}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
ul.plain{list-style:none; margin:0; padding:0;}
.mono{font-family:'IBM Plex Mono',monospace;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 24px;}
.eyebrow{font-family:'IBM Plex Mono',monospace; text-transform:uppercase; font-size:.78rem; font-weight:700; letter-spacing:.14em; color:var(--pink); display:flex; align-items:center; gap:8px; margin-bottom:14px;}
.eyebrow::before{content:''; width:28px; height:3px; border-radius:2px; background:var(--pink);}
.btn{display:inline-flex; align-items:center; gap:8px; padding:13px 26px; border-radius:100px; font-weight:700; font-size:.94rem; cursor:pointer; border:1px solid transparent; transition:.25s ease;}
.btn:hover{transform:translateY(-2px);}
.btn-blue{background:var(--blue); color:#fff; box-shadow:0 14px 28px -14px rgba(47,119,240,.6);}
.btn-blue:hover{background:var(--blue-deep);}
.btn-pink{background:var(--pink); color:#fff; box-shadow:0 14px 28px -14px rgba(234,79,156,.55);}
.btn-pink:hover{background:var(--pink-deep);}
.btn-ghost{background:#fff; border-color:var(--line); color:var(--ink);}
.btn-ghost:hover{border-color:var(--blue);}
.btn-ghost-invert{background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.4); color:#fff;}
.btn-ghost-invert:hover{border-color:#fff; background:rgba(255,255,255,.16);}
section{padding:80px 0;}
.section-head{max-width:640px; margin-bottom:44px;}
.section-head.center{margin-inline:auto; text-align:center;}
.bg-tint{background:var(--blue-tint);}
.bg-deep{background:linear-gradient(160deg, var(--blue-tint), #FFFFFF); color:var(--ink);}
.bg-deep h2,.bg-deep h3{color:var(--blue-deep);}
.bg-deep p{color:var(--ink-soft);}

/* Logo */
.logo{display:flex; align-items:center; gap:12px;}
.logo svg{flex-shrink:0;}
.logo .word{display:flex; flex-direction:column; line-height:1;}
.logo .word b{font-family:'Fraunces',serif; font-weight:700; font-size:1.32rem; color:var(--blue-deep); letter-spacing:.01em;}
.logo .word b span{color:var(--pink);}
.logo .word small{font-family:'IBM Plex Mono',monospace; font-size:.6rem; letter-spacing:.05em; color:var(--ink-soft); text-transform:uppercase; margin-top:2px;}

/* Top strip */
.topstrip{background:var(--blue-deep); color:#DAE1EC; font-family:'IBM Plex Mono',monospace; font-size:.75rem;}
.topstrip .wrap{display:flex; justify-content:space-between; align-items:center; padding:8px 24px; gap:16px; flex-wrap:wrap;}
.topstrip a:hover{color:#fff;}
.topstrip .emg{color:#ffb3d9; display:flex; align-items:center; gap:6px;}
.topstrip .emg .dot{width:6px; height:6px; border-radius:50%; background:var(--pink); animation:pulse 1.6s infinite;}
@keyframes pulse{0%,100%{opacity:1; transform:scale(1);} 50%{opacity:.3; transform:scale(1.6);}}

/* Header */
header.site{position:sticky; top:0; z-index:60; background:rgba(246,249,255,.97); border-bottom:1px solid var(--line);}
.nav{display:flex; align-items:center; justify-content:space-between; padding:12px 24px;}
nav.links{display:flex; align-items:center; gap:24px;}
nav.links a{font-size:.88rem; font-weight:600; color:var(--ink-soft); position:relative; padding:4px 0;}
nav.links a:hover, nav.links a.active{color:var(--blue-deep);}
nav.links a::after{content:''; position:absolute; left:0; bottom:-2px; width:0; height:2px; background:var(--pink); transition:.25s;}
nav.links a:hover::after, nav.links a.active::after{width:100%;}
.nav-actions{display:flex; align-items:center; gap:12px;}
.burger{display:none; background:none; border:none; cursor:pointer; padding:6px;}
.burger span{display:block; width:24px; height:2px; background:var(--ink); margin:5px 0;}

/* Page hero (subpages) */
.page-hero{position:relative; padding:64px 0 48px; color:var(--ink); overflow:hidden; background:linear-gradient(160deg, var(--blue-tint), #FFFFFF);}
.page-hero::after{content:''; position:absolute; inset:0; background:radial-gradient(60% 100% at 90% 0%, rgba(255,0,153,.14), transparent 60%);}
.page-hero .wrap{position:relative; z-index:2;}
.breadcrumb{font-family:'IBM Plex Mono',monospace; font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; color:var(--blue); margin-bottom:14px;}
.breadcrumb a:hover{color:var(--pink);}
.page-hero h1{color:var(--blue-deep); font-size:clamp(1.8rem,3.4vw,2.6rem); max-width:20ch;}
.page-hero p{color:var(--ink-soft); max-width:52ch; margin:0;}

/* Hero carousel (home only) */
.hero{position:relative; overflow:hidden; height:600px; color:#fff;}
.hero-slide{position:absolute; inset:0; opacity:0; transition:opacity 1s ease; display:flex; align-items:center;}
.hero-slide.active{opacity:1;}
.hero-slide .bgimg{position:absolute; inset:0; background-size:cover; background-position:center;}
.hero-slide .bgimg::after{content:''; position:absolute; inset:0; background:linear-gradient(100deg, rgba(11,61,102,.82) 0%, rgba(11,61,102,.5) 32%, rgba(11,61,102,.15) 55%, rgba(11,61,102,0) 72%);}
.hero-slide .bgimg.bgimg-soft{filter:blur(2px) brightness(.7) saturate(.9);}
.hero-slide .bgimg.bgimg-soft::after{background:linear-gradient(100deg, rgba(11,61,102,.9) 0%, rgba(11,61,102,.68) 32%, rgba(11,61,102,.38) 55%, rgba(11,61,102,.12) 78%, rgba(11,61,102,.12) 100%);}
.hero-inner{position:relative; z-index:2; max-width:640px; padding:0 24px; margin:0 auto; width:100%;}
.hero-eyebrow{font-family:'IBM Plex Mono',monospace; text-transform:uppercase; font-size:.88rem; font-weight:700; letter-spacing:.14em; color:#ff5fa8; margin-bottom:18px; display:flex; gap:10px; align-items:center; text-shadow:0 2px 10px rgba(0,0,0,.35);}
.hero-eyebrow::before{content:''; width:30px; height:3px; border-radius:2px; background:#ff5fa8;}
.hero h1{color:#fff; font-size:clamp(2.1rem,4.2vw,3.1rem); max-width:14ch; margin-bottom:16px; text-shadow:0 2px 14px rgba(0,0,0,.3);}
.hero p.lead{color:#F1F4FA; font-size:1.08rem; max-width:44ch; text-shadow:0 1px 8px rgba(0,0,0,.3);}
.hero-ctas{display:flex; gap:14px; margin-top:26px; flex-wrap:wrap;}
.hero-dots{position:absolute; bottom:26px; left:0; right:0; display:flex; justify-content:center; gap:8px; z-index:3;}
.hero-dots button{width:8px; height:8px; border-radius:50%; border:none; background:rgba(255,255,255,.4); cursor:pointer; padding:0;}
.hero-dots button.active{background:#fff; width:24px; border-radius:5px; transition:.3s;}
.hero-arrow{position:absolute; top:50%; transform:translateY(-50%); z-index:3; width:42px; height:42px; border-radius:50%; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.3); color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer;}
.hero-arrow:hover{background:rgba(255,255,255,.28);}
.hero-arrow.prev{left:20px;} .hero-arrow.next{right:20px;}
@media (max-width:680px){.hero-arrow{display:none;}}

/* Stats strip */
.statstrip{position:relative; margin-top:-56px; z-index:5;}
.statcard{background:#fff; border-radius:20px; box-shadow:var(--shadow); display:grid; grid-template-columns:repeat(4,1fr);}
.statitem{padding:26px 20px; text-align:center; border-left:1px solid var(--line);}
.statitem:first-child{border-left:none;}
.statitem .num{font-family:'Fraunces',serif; font-size:1.9rem; color:var(--pink); display:block;}
.statitem .lbl{font-family:'IBM Plex Mono',monospace; font-size:.68rem; text-transform:uppercase; letter-spacing:.06em; color:var(--ink-soft);}
@media (max-width:780px){.statcard{grid-template-columns:1fr 1fr;} .statitem{border-left:none; border-top:1px solid var(--line);} .statitem:nth-child(1),.statitem:nth-child(2){border-top:none;}}

/* Centres of excellence / cards grids */
.coe-grid,.spec-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.coe-card{background:var(--card); border-radius:var(--radius); padding:30px 26px; border:1px solid var(--line); transition:.25s ease;}
.coe-card:hover{border-color:var(--pink); transform:translateY(-4px); box-shadow:var(--shadow);}
.coe-ic{width:56px; height:56px; border-radius:16px; background:var(--pink-tint); color:var(--pink); display:flex; align-items:center; justify-content:center; margin-bottom:18px;}
.coe-card h4{font-size:1.12rem; margin-bottom:8px;}
.coe-card p{font-size:.9rem; margin-bottom:14px;}
.coe-card .more{font-family:'IBM Plex Mono',monospace; font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; color:var(--blue); display:inline-flex; align-items:center; gap:6px;}

/* Why choose */
.why-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px;}
.why-card{background:#fff; color:var(--ink); border-radius:var(--radius); padding:26px; position:relative; overflow:hidden; border:1px solid var(--line); box-shadow:0 14px 30px -22px rgba(11,61,102,.35); transition:transform .25s ease, box-shadow .25s ease;}
.why-card:hover{transform:translateY(-4px); box-shadow:0 20px 36px -20px rgba(11,61,102,.45);}
.why-card::before{content:''; position:absolute; top:-30px; right:-30px; width:110px; height:110px; border-radius:50%; background:rgba(255,0,153,.4);}
.why-card .ic{width:46px; height:46px; border-radius:13px; background:linear-gradient(135deg, var(--blue-tint), #eaf3ff); color:var(--blue); display:flex; align-items:center; justify-content:center; margin-bottom:16px; position:relative; z-index:1; box-shadow:inset 0 0 0 1px rgba(46,124,240,.18);}
.why-card h4{color:var(--blue-deep); font-size:1.04rem; margin-bottom:8px; position:relative; z-index:1;}
.why-card p{color:var(--ink-soft); font-size:.85rem; margin:0; position:relative; z-index:1;}
.why-ticker{padding:8px 0 44px;}
.ticker-mask{width:100%; overflow:hidden; padding:18px 0; background:linear-gradient(100deg, #3E8CF5, #6FADF8); -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 40px, #000 calc(100% - 40px), transparent 100%); mask-image:linear-gradient(90deg, transparent 0, #000 40px, #000 calc(100% - 40px), transparent 100%);}
.ticker-track{display:flex; align-items:center; gap:40px; width:max-content; animation:tickerScroll 26s linear infinite;}
.why-ticker:hover .ticker-track{animation-play-state:paused;}
.ticker-item{display:flex; align-items:center; gap:12px; flex-shrink:0;}
.ticker-item .ic{width:34px; height:34px; border-radius:10px; background:rgba(255,255,255,.14); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.ticker-item span{color:#fff; font-weight:700; font-size:.98rem; white-space:nowrap;}
.ticker-div{width:1px; height:26px; background:rgba(255,255,255,.3); flex-shrink:0;}
@keyframes tickerScroll{from{transform:translateX(0);} to{transform:translateX(-50%);}}
@media (max-width:680px){
  .ticker-track{gap:24px; animation-duration:18s;}
  .ticker-item span{font-size:.86rem;}
}
@media (prefers-reduced-motion:reduce){.ticker-track{animation:none;}}

/* Pills */
.pill-grid{display:flex; flex-wrap:wrap; gap:10px;}
.pill{background:#fff; border:1px solid var(--line); padding:10px 18px; border-radius:100px; font-size:.86rem; font-weight:600; color:var(--ink); transition:.2s; display:inline-block;}
.pill:hover{border-color:var(--pink); color:var(--pink); background:var(--pink-tint);}
.pill-pink{background:var(--pink-tint); border:1px solid rgba(255,0,153,.15); color:var(--pink-deep);}
.pill-pink:hover{background:var(--pink-tint); color:var(--pink-deep);}

/* Doctors */
.doc-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
.doc-card{background:var(--card); border-radius:var(--radius); overflow:hidden; border:1px solid var(--line); transition:.25s;}
.doc-card:hover{box-shadow:var(--shadow); transform:translateY(-4px);}
.doc-photo{height:230px; overflow:hidden; background:var(--blue-tint); position:relative;}
.doc-photo img{width:100%; height:100%; object-fit:cover; object-position:top center;}
.doc-photo .tag{position:absolute; top:12px; left:12px; background:var(--pink); color:#fff; font-family:'IBM Plex Mono',monospace; font-size:.64rem; text-transform:uppercase; letter-spacing:.05em; padding:5px 10px; border-radius:100px;}
.doc-body{padding:18px;}
.doc-body h4{font-size:1.02rem; margin-bottom:4px;}
.doc-body .role{font-family:'IBM Plex Mono',monospace; font-size:.7rem; color:var(--blue); text-transform:uppercase; letter-spacing:.04em; margin-bottom:8px; display:block;}
.doc-body p{font-size:.82rem; margin:0;}
.doc-grid-home .doc-photo{height:230px; padding:34px; display:flex; align-items:center; justify-content:center; background:var(--blue-tint);}
.doc-grid-home .doc-photo img{width:auto; height:100%; max-width:100%; object-fit:contain;}
.doc-card-placeholder{border:1.5px dashed var(--line); background:var(--card);}
.doc-photo-placeholder{background:#EEF3F9 !important; padding:0 !important; display:flex; align-items:center; justify-content:center;}
.doc-card-placeholder .doc-body h4,.doc-card-placeholder .doc-body .role,.doc-card-placeholder .doc-body p{color:var(--ink-soft); font-style:italic;}
@media (max-width:680px){
  .doc-grid-home .doc-photo{height:190px; padding:22px;}
}

/* Doctor profile page */
.doc-profile{display:grid; grid-template-columns:.8fr 1.2fr; gap:44px; align-items:start;}
.doc-profile-photo{border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow);}
.doc-profile-photo img{width:100%; height:auto; object-fit:cover;}
.doc-facts{list-style:none; margin:20px 0; padding:0; display:grid; gap:12px;}
.doc-facts li{display:flex; gap:10px; font-size:.92rem; color:var(--ink-soft);}
.doc-facts li b{color:var(--ink); min-width:140px; display:inline-block;}

/* Facilities bento */
.bento{display:grid; grid-template-columns:repeat(4,1fr); gap:14px;}
.fac-card{position:relative; border-radius:var(--radius); overflow:hidden; height:210px; box-shadow:var(--shadow);}
.fac-card img{width:100%; height:100%; object-fit:cover; position:absolute; inset:0; transition:transform .6s ease;}
.fac-card:hover img{transform:scale(1.06);}
.fac-card::after{content:''; position:absolute; inset:0; background:linear-gradient(0deg, rgba(20,23,29,.86) 0%, rgba(20,23,29,.1) 60%);}
.fac-card .cap{position:absolute; left:0; right:0; bottom:0; padding:16px; z-index:2;}
.fac-card .cap h4{color:#fff; margin-bottom:2px; font-size:1rem;}
.fac-card .cap p{color:#D6DDEA; font-size:.78rem; margin:0;}

/* Facility detail block (facilities.html) */
.fac-detail{display:grid; grid-template-columns:.9fr 1.1fr; gap:36px; align-items:center; padding:36px 0; border-bottom:1px solid var(--line);}
.fac-detail:last-child{border-bottom:none;}
.fac-detail img{border-radius:var(--radius); box-shadow:var(--shadow); width:100%; height:280px; object-fit:cover;}
.fac-detail.rev{direction:rtl;}
.fac-detail.rev > *{direction:ltr;}

/* Awards */
.awards-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px;}
.award-card{border:1.5px dashed var(--line); border-radius:var(--radius); padding:26px 18px; text-align:center; background:#fff;}
.award-card .ic{width:52px; height:52px; margin:0 auto 12px; border-radius:50%; background:var(--blue-tint); color:var(--blue); display:flex; align-items:center; justify-content:center;}
.award-card h5{font-size:.86rem; font-weight:700; margin:0 0 4px; color:var(--ink);}
.award-card span{font-family:'IBM Plex Mono',monospace; font-size:.68rem; color:var(--ink-soft); text-transform:uppercase;}

/* Blog cards */
.blog-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.blog-card{background:#fff; border-radius:var(--radius); overflow:hidden; border:1px solid var(--line); transition:.25s;}
.blog-card:hover{box-shadow:var(--shadow); transform:translateY(-3px);}
.blog-thumb{height:170px; background-size:cover; background-position:center;}
.blog-body{padding:20px;}
.blog-body .date{font-family:'IBM Plex Mono',monospace; font-size:.68rem; color:var(--pink); text-transform:uppercase; letter-spacing:.05em; margin-bottom:8px; display:block;}
.blog-body h4{font-size:1rem; margin-bottom:8px;}
.blog-body p{font-size:.85rem; margin:0;}
.blog-article{max-width:760px; margin:0 auto;}
.blog-article img{border-radius:var(--radius); box-shadow:var(--shadow); margin-bottom:28px; width:100%; height:320px; object-fit:cover;}
.blog-article h2{font-size:1.6rem;}
.blog-article p{color:var(--ink-soft); font-size:1rem; line-height:1.75;}

/* Testimonials */
.testi-wrap{position:relative; max-width:780px; margin:0 auto;}
.testi-track{overflow:hidden;}
.testi-slides{display:flex; transition:transform .5s ease;}
.testi-slide{min-width:100%; padding:8px;}
.testi-card{background:#fff; border-radius:20px; padding:40px; text-align:center; border:1px solid var(--line);}
.testi-card .quote{font-family:'Fraunces',serif; font-size:1.24rem; color:var(--blue-deep); line-height:1.45; font-style:italic;}
.testi-card .who{margin-top:18px; font-family:'IBM Plex Mono',monospace; font-size:.78rem; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.04em;}
.testi-dots{display:flex; justify-content:center; gap:8px; margin-top:22px;}
.testi-dots button{width:8px; height:8px; border-radius:50%; border:none; background:#C3D6E8; cursor:pointer; padding:0;}
.testi-dots button.active{background:var(--pink); width:22px; border-radius:5px; transition:.3s;}

/* Gallery */
.gal-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:14px;}
.gal-item{margin:0; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); background:var(--card); display:flex; flex-direction:column;}
.gal-img{height:200px; overflow:hidden;}
.gal-item img{width:100%; height:100%; object-fit:cover; transition:transform .6s ease;}
.gal-item figcaption{padding:12px 14px; font-size:.92rem; font-weight:600; color:var(--navy,#0B3D66); line-height:1.35; min-height:2.9em;}
.gal-item:hover img{transform:scale(1.07);}

/* Insurance banner */
.insure{position:relative; border-radius:24px; overflow:hidden; padding:56px; background-size:cover; background-repeat:no-repeat;}
.insure h2{color:#fff; max-width:20ch;}
.insure p{color:#D8DFEC; max-width:52ch;}
.insure .tags{display:flex; gap:10px; flex-wrap:wrap; margin:20px 0 26px;}
.insure .tags span{font-family:'IBM Plex Mono',monospace; font-size:.72rem; padding:7px 14px; border:1px solid rgba(255,255,255,.4); border-radius:100px; color:#fff;}

/* Contact */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:44px; align-items:start;}
.contact-info .item{display:flex; gap:14px; padding:16px 0; border-bottom:1px solid var(--line);}
.contact-info .item:first-child{padding-top:0;}
.contact-info .ic{width:40px; height:40px; border-radius:10px; background:var(--blue-tint); color:var(--blue); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.contact-info .tt{font-weight:700; font-size:.92rem;}
.contact-info .dd{font-size:.85rem; color:var(--ink-soft);}
.map-embed{margin-top:20px; border-radius:var(--radius); overflow:hidden; border:1px solid var(--line); height:220px;}
.map-embed iframe{width:100%; height:100%; border:0;}
form.appt{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:28px; box-shadow:var(--shadow);}
form.appt .row2{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
form.appt label{display:block; font-size:.74rem; font-family:'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-soft); margin-bottom:6px;}
form.appt input, form.appt select, form.appt textarea{width:100%; padding:11px 13px; border-radius:9px; border:1px solid var(--line); background:#fff; font-family:'Inter',sans-serif; font-size:.92rem; margin-bottom:16px; color:var(--ink);}
form.appt input:focus, form.appt select:focus, form.appt textarea:focus{outline:2px solid var(--blue); outline-offset:1px; border-color:var(--blue);}
form.appt .note{font-size:.78rem; color:var(--ink-soft); margin-top:6px;}

/* About page extras */
.about-grid{display:grid; grid-template-columns:.9fr 1.1fr; gap:56px; align-items:center;}
.about-photo{position:relative;}
.about-photo img{border-radius:20px; box-shadow:var(--shadow);}
.about-photo .badge{position:absolute; top:-18px; left:-18px; background:var(--pink-tint); color:var(--pink-deep); border-radius:14px; padding:12px 16px; box-shadow:0 12px 24px -14px rgba(255,0,153,.35); max-width:170px; border:1px solid rgba(255,0,153,.15);}
.about-photo .badge .num{font-family:'Fraunces',serif; font-size:1.4rem; display:block; color:var(--pink-deep);}
.about-photo .badge .lbl{font-family:'IBM Plex Mono',monospace; font-size:.62rem; text-transform:uppercase; letter-spacing:.06em; color:var(--pink-deep); opacity:.85;}
.values-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}

/* Footer */
footer{background:var(--blue-tint); color:var(--ink-soft); padding:60px 0 26px; border-top:1px solid var(--line);}
footer .fgrid{display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr 1fr; gap:32px;}
footer h5{font-family:'IBM Plex Mono',monospace; font-size:.7rem; text-transform:uppercase; letter-spacing:.08em; color:var(--blue); margin-bottom:16px;}
footer ul{list-style:none; margin:0; padding:0; display:grid; gap:10px;}
footer a{font-size:.86rem; color:var(--ink-soft);}
footer a:hover{color:var(--pink);}
footer p{color:#93A3BA; font-size:.85rem;}
.social{display:flex; gap:10px; margin-top:16px;}
.social a{width:34px; height:34px; border-radius:50%; border:1px solid var(--line); color:var(--blue-deep); display:flex; align-items:center; justify-content:center;}
.social a:hover{border-color:var(--pink); color:var(--pink);}
.fbottom{border-top:1px solid var(--line); margin-top:44px; padding-top:20px; display:flex; justify-content:space-between; font-size:.78rem; color:#7A8CA3; flex-wrap:wrap; gap:10px;}
.social a:hover{border-color:#fff;}

/* Floating actions */
.float-cta{position:fixed; right:22px; bottom:22px; display:flex; flex-direction:column; gap:12px; z-index:70;}
.fab{width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow); border:none; cursor:pointer; color:#fff;}
.fab.wa{background:#25D366;}
.fab.up{background:var(--blue); opacity:0; pointer-events:none; transition:.3s;}
.fab.up.show{opacity:1; pointer-events:auto;}

/* Reveal */
.reveal{opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1; transform:none;}

/* Responsive */
@media (max-width:980px){
  .coe-grid,.spec-grid,.why-grid,.doc-grid,.bento,.awards-grid,.blog-grid,.gal-grid,.values-grid{grid-template-columns:1fr 1fr;}
  .contact-grid,.about-grid,.doc-profile,.fac-detail{grid-template-columns:1fr;}
  .fac-detail.rev{direction:ltr;}
  footer .fgrid{grid-template-columns:1fr 1fr;}
  .hero{height:660px;}
}
@media (max-width:680px){
  nav.links{position:fixed; top:94px; left:0; right:0; bottom:0; background:var(--paper); flex-direction:column; align-items:flex-start; padding:30px 24px; gap:22px; transform:translateX(100%); transition:.3s; overflow-y:auto;}
  nav.links.open{transform:translateX(0);}
  nav.links a{font-size:1.1rem;}
  .burger{display:block;}
  .topstrip .wrap{font-size:.66rem; justify-content:center; gap:14px;}
  .hero{height:640px;}
  .statcard{grid-template-columns:1fr 1fr;}
  .coe-grid,.why-grid,.doc-grid,.bento,.awards-grid,.blog-grid,.gal-grid,.values-grid{grid-template-columns:1fr;}
  form.appt .row2{grid-template-columns:1fr;}
  .insure{padding:32px 22px;}
  footer .fgrid{grid-template-columns:1fr;}
}
