/* ============ TOKENS ============
   Palette sampled directly from the Oris Bloom Dental logo:
   blue ~ #307BB2, purple ~ #9C3CC2 / #C26CE7.
   Variable NAMES kept from the earlier build (--pine, --coral, --mint...)
   so the rest of this stylesheet didn't need touching — only the values
   changed, to the real brand colors.
*/
:root{
  --ink:#1B2333;
  --paper:#FAFBFE;
  --pine:#2C6FA0;        /* was wine — now brand blue (primary) */
  --pine-light:#3C86BC;
  --mint:#E3EEF8;        /* was blush — now soft brand blue */
  --mint-soft:#F3F8FC;   /* was light blush — now lighter brand blue */
  --coral:#9B3CC2;       /* was gold — now brand purple (CTA/accent) */
  --coral-dark:#7E2CA1;
  --gold:#C9932E;        /* kept only for neutral "internal/warning" flags */
  --line:rgba(44,111,160,.14);
  --line-strong:rgba(44,111,160,.28);
  --shadow:0 30px 60px -14px rgba(44,111,160,.28), 0 10px 24px -8px rgba(155,60,194,.16);
  --shadow-sm:0 14px 30px -10px rgba(44,111,160,.24);
  --grad-brand:linear-gradient(135deg, var(--pine) 0%, var(--coral) 100%);
  --grad-cta:linear-gradient(135deg, var(--coral) 0%, #6C2288 100%);
  --grad-wash:linear-gradient(180deg, #EFF4FC 0%, #F7EFFB 100%);
  --radius:18px;
  --serif:'Fraunces', serif;
  --sans:'Manrope', sans-serif;
  --mono:'IBM Plex Mono', monospace;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0; background:var(--paper) radial-gradient(ellipse 900px 500px at 15% -8%, rgba(44,111,160,.08), transparent 60%), radial-gradient(ellipse 700px 500px at 100% 12%, rgba(155,60,194,.07), transparent 55%); background-attachment:fixed; color:var(--ink); font-family:var(--sans); font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:hidden;}
img,svg,video{display:block; max-width:100%;}
a{color:inherit;}
h1,h2,h3,h4{font-family:var(--serif); font-weight:600; margin:0 0 .4em; letter-spacing:-.015em; color:var(--ink);}
h1 em, h2 em{font-style:italic; font-weight:500; background:var(--grad-cta); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:var(--coral-dark);}
p{margin:0 0 1em;}
button{font-family:var(--sans); cursor:pointer;}
.container{max-width:1180px; margin:0 auto; padding:0 28px;}
.eyebrow{font-family:var(--mono); font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--coral-dark); display:inline-flex; align-items:center; gap:10px; margin-bottom:14px;}
.eyebrow::before, .eyebrow::after{content:"\2726"; font-size:11px; line-height:1;}
.center .eyebrow{justify-content:center;}
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:15px 28px; border-radius:100px; border:1px solid transparent; font-weight:600; font-size:14.5px; text-decoration:none; transition:transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s ease, background .25s ease; position:relative; overflow:hidden;}
.btn-primary{background:var(--grad-cta); color:#fff; box-shadow:0 10px 24px -6px rgba(155,60,194,.4);}
.btn-primary:hover{transform:translateY(-3px); box-shadow:0 20px 36px -8px rgba(155,60,194,.5);}
.btn-primary:active{transform:translateY(-1px);}
.btn-outline{background:transparent; border-color:rgba(255,255,255,.5); color:#fff;}
.btn-outline:hover{background:rgba(255,255,255,.14); transform:translateY(-2px);}
.btn-dark{background:var(--grad-brand); color:#fff; box-shadow:0 10px 24px -6px rgba(44,111,160,.4);}
.btn-dark:hover{transform:translateY(-3px); box-shadow:0 20px 36px -8px rgba(44,111,160,.5);}
.btn-gold{background:#F4D35E; color:#241A00; box-shadow:0 8px 18px -4px rgba(244,211,94,.6);}
.btn-gold:hover{background:#F0C532; transform:translateY(-2px);}
.btn-sm{padding:10px 20px; font-size:13px;}
:focus-visible{outline:2px solid var(--coral-dark); outline-offset:3px;}

/* ============ REVEAL ANIMATION ============ */
.reveal{opacity:0; transform:translateY(28px); transition:opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1);}
.reveal.in-view{opacity:1; transform:none;}
@media (prefers-reduced-motion: reduce){ .reveal{opacity:1; transform:none; transition:none;} }

/* ============ TOP UTILITY BAR ============ */
.topbar{background:var(--pine); color:#E8CDBE; font-size:12.5px; padding:9px 0;}
.topbar .container{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px;}
.topbar-links{display:flex; gap:22px; flex-wrap:wrap;}
.topbar a{text-decoration:none; color:inherit;}
.topbar .socials{display:flex; gap:12px;}
.topbar .socials a{width:26px; height:26px; border-radius:50%; border:1px solid rgba(232,205,190,.4); display:flex; align-items:center; justify-content:center; font-size:11px;}

/* ============ NAV ============ */
header.site-nav{position:sticky; top:0; z-index:200; background:rgba(251,247,244,.9); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); transition:padding .25s ease, box-shadow .25s ease;}
header.site-nav.scrolled{box-shadow:0 8px 24px rgba(44,111,160,.08);}
.nav-inner{display:flex; align-items:center; justify-content:space-between; padding:18px 28px; max-width:1180px; margin:0 auto; transition:padding .25s ease;}
.scrolled .nav-inner{padding:12px 28px;}
.logo{font-family:var(--serif); font-size:21px; letter-spacing:.14em; color:var(--pine); text-decoration:none; font-weight:500; display:flex; align-items:center;}
.logo-img{height:44px; width:auto; display:block;}
.logo b{color:var(--coral-dark); font-style:italic;}
.nav-links{display:flex; gap:30px; list-style:none; margin:0; padding:0; align-items:center;}
.nav-links a{text-decoration:none; font-size:14px; font-weight:600; color:var(--ink); position:relative; padding:6px 0;}
.nav-links a::after{content:""; position:absolute; left:0; bottom:0; width:0; height:2px; background:var(--coral); transition:width .25s ease;}
.nav-links a:hover::after, .nav-links a.active::after{width:100%;}
.nav-links a.active{color:var(--pine);}
.nav-links a.portal-link{font-family:var(--mono); font-size:12.5px; color:var(--pine-light); font-weight:500;}
.nav-cta{display:flex; align-items:center; gap:14px;}
.hamburger{display:none; background:none; border:none; padding:6px;}
.hamburger span{display:block; width:22px; height:2px; background:var(--pine); margin:5px 0; border-radius:2px;}
@media(max-width:920px){ .nav-links{display:none;} .hamburger{display:block;} }

/* ============ HERO SLIDER ============ */
/* ============ INTRO BANNER ============ */
.intro-banner{padding:64px 0 20px;}
.intro-banner-grid{display:grid; grid-template-columns:.8fr 1.2fr; gap:50px; align-items:center;}
.intro-banner-art{position:relative;}
.intro-banner-art img{width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:24px; box-shadow:var(--shadow); position:relative; z-index:1;}
.intro-banner-shape{position:absolute; width:70%; height:70%; bottom:-18px; right:-18px; border-radius:24px; background:var(--mint); z-index:0;}
.intro-banner-heading{font-size:clamp(28px,3.6vw,42px); line-height:1.1; margin-bottom:14px;}
@media(max-width:820px){ .intro-banner-grid{grid-template-columns:1fr;} .intro-banner-art{order:-1;} }

.hero-slider{position:relative; height:100vh; min-height:600px; max-height:920px; overflow:hidden; background:var(--ink);}
.slide{position:absolute; inset:0; opacity:0; transition:opacity 1.4s ease; z-index:1;}
.slide.active{opacity:1; z-index:2;}
.slide video{width:100%; height:100%; object-fit:cover;}
.slide-overlay{position:absolute; inset:0; background:linear-gradient(180deg, rgba(27,35,51,.4) 0%, rgba(27,35,51,.5) 55%, rgba(27,35,51,.75) 100%);}
.hero-floating-art{position:absolute; bottom:0; right:4%; width:180px; z-index:4; opacity:.9; pointer-events:none; animation:heroFloat 5s ease-in-out infinite;}
@keyframes heroFloat{0%,100%{transform:translateY(0);} 50%{transform:translateY(-16px);}}
@media(max-width:700px){ .hero-floating-art{display:none;} }
.hero-content{position:absolute; inset:0; z-index:5; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; color:#fff; padding:0 28px;}
.hero-content .eyebrow{color:var(--mint); justify-content:center;}
.hero-content .eyebrow::before{background:var(--mint);}
.hero-headline{font-size:clamp(34px,5.4vw,62px); line-height:1.08; max-width:820px; color:#fff; margin-bottom:20px; transition:opacity .5s ease, transform .5s ease;}
.hero-headline em{color:#E7B6F5;}
.hero-lede{max-width:520px; font-size:17px; color:rgba(255,255,255,.86); transition:opacity .5s ease;}
.hero-actions{display:flex; gap:16px; margin-top:30px; flex-wrap:wrap; justify-content:center;}
.slide-dots{position:absolute; bottom:100px; left:50%; transform:translateX(-50%); display:flex; gap:10px; z-index:6;}
.dot{width:36px; height:4px; border-radius:3px; background:rgba(255,255,255,.32); border:none; padding:0;}
.dot.active{background:var(--coral);}
.scroll-cue{position:absolute; bottom:28px; left:50%; transform:translateX(-50%); color:rgba(255,255,255,.8); font-family:var(--mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; display:flex; flex-direction:column; align-items:center; gap:9px; z-index:6;}
.scroll-cue .line{width:1px; height:34px; background:rgba(255,255,255,.35); position:relative; overflow:hidden;}
.scroll-cue .line::after{content:""; position:absolute; top:-100%; left:0; width:100%; height:100%; background:#fff; animation:scrollLine 1.9s infinite;}
@keyframes scrollLine{0%{top:-100%;} 60%{top:100%;} 100%{top:100%;}}
@media(max-width:600px){ .slide-dots{bottom:76px;} }

/* ============ ABOUT ============ */
.about{padding:110px 0;}
.about-grid{display:grid; grid-template-columns:.85fr 1.15fr; gap:64px; align-items:center;}
.about-art{position:relative;}
.about-art .blob{border-radius:62% 38% 55% 45% / 45% 55% 45% 55%; overflow:hidden; box-shadow:var(--shadow); aspect-ratio:4/5;}
.about-art .blob img{width:100%; height:100%; object-fit:cover;}
.about-art .petal-accent{position:absolute; width:130px; height:130px; top:-30px; right:-24px; z-index:-1;}
.about-list{list-style:none; margin:20px 0 0; padding:0; display:grid; gap:0;}
.stats-row{display:flex; gap:44px; margin-top:40px; flex-wrap:wrap;}
.stat b{display:block; font-family:var(--serif); font-size:36px; color:var(--pine);}

/* ============ BOLD GRADIENT STATS BAND ============ */
.stats-band{background:var(--grad-brand); padding:56px 0; position:relative; overflow:hidden;}
.stats-band::before{content:""; position:absolute; inset:0; background:radial-gradient(circle at 15% 20%, rgba(255,255,255,.12), transparent 45%), radial-gradient(circle at 85% 80%, rgba(255,255,255,.1), transparent 45%);}
.stats-band-row{position:relative; z-index:1; display:flex; justify-content:space-around; flex-wrap:wrap; gap:30px; text-align:center;}
.stats-band-item b{display:block; font-family:var(--serif); font-size:44px; font-weight:600; color:#fff;}
.stats-band-item span{font-size:12.5px; color:rgba(255,255,255,.85); font-family:var(--mono); text-transform:uppercase; letter-spacing:.06em;}
.stats-band-divider{width:1px; background:rgba(255,255,255,.25); align-self:stretch;}
@media(max-width:700px){ .stats-band-divider{display:none;} }
.stat span{font-size:12.5px; color:#6E5A5F; font-family:var(--mono); text-transform:uppercase; letter-spacing:.04em;}

/* ============ DOCTORS ============ */
.doctor-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:24px;}
.doctor-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:26px; text-align:left; transition:box-shadow .2s ease, transform .2s ease;}
.doctor-card:hover{box-shadow:var(--shadow); transform:translateY(-4px);}
.doctor-photo{width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:14px; margin-bottom:16px;}
.avatar{width:64px; height:64px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-size:22px; color:#fff; margin-bottom:16px;}
.doctor-card h4{font-size:19px; margin-bottom:2px;}
.doctor-card .role{font-family:var(--mono); font-size:12px; color:var(--coral-dark); text-transform:uppercase; letter-spacing:.06em; margin-bottom:12px; display:block;}
.doctor-card p{font-size:14px; color:#45516B; margin-bottom:8px;}
.doctor-card .creds{font-size:12.5px; color:#6E7A94; border-top:1px dashed var(--line); padding-top:10px; margin-top:10px;}
@media(max-width:920px){ .doctor-grid{grid-template-columns:repeat(2,1fr);} }
@media(max-width:560px){ .doctor-grid{grid-template-columns:1fr;} }

/* ============ SERVICES ============ */
.services{padding:110px 0; background:var(--grad-wash);}

/* ============ SERVICES v2 (homepage — all services + doctor photo) ============ */
.services-v2{padding:0 0 110px; position:relative;}
.services-v2-header{background:var(--grad-brand); padding:80px 0 130px; position:relative; overflow:hidden;}
.services-v2-header::before{content:""; position:absolute; inset:0; background:radial-gradient(circle at 15% 20%, rgba(255,255,255,.12), transparent 45%), radial-gradient(circle at 85% 80%, rgba(255,255,255,.1), transparent 45%);}
.services-v2-header .container{position:relative; z-index:1;}
.services-v2-header h2, .services-v2-header .eyebrow{color:#fff;}
.services-v2-grid{display:grid; grid-template-columns:1.5fr 1fr; gap:40px; margin-top:-90px; position:relative; z-index:2;}
.services-v2-list{display:grid; grid-template-columns:repeat(2,1fr); grid-auto-rows:1fr; gap:18px; align-content:start;}
.service-card-v2{position:relative; display:block; background:#fff; border:1px solid var(--line); border-radius:20px; padding:26px 50px 22px 22px; text-decoration:none; overflow:hidden; transition:transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s ease, background .3s ease;}
.service-card-v2:hover{transform:translateY(-6px); box-shadow:var(--shadow); background:var(--svc-color);}
.service-card-v2-icon{width:44px; height:44px; border-radius:12px; background:color-mix(in srgb, var(--svc-color) 14%, #fff); display:flex; align-items:center; justify-content:center; margin-bottom:14px; transition:background .3s ease;}
.service-card-v2:hover .service-card-v2-icon{background:rgba(255,255,255,.2);}
.service-card-v2:hover .service-card-v2-icon svg path{stroke:#fff;}
.service-card-v2 h4{font-size:16px; margin-bottom:6px; color:var(--ink); transition:color .3s ease;}
.service-card-v2:hover h4{color:#fff;}
.service-card-v2 p{font-size:12.5px; color:#45516B; margin:0; line-height:1.5; transition:color .3s ease;}
.service-card-v2:hover p{color:rgba(255,255,255,.9);}
.service-card-v2-arrow{position:absolute; bottom:0; right:0; width:38px; height:38px; border-radius:20px 0 20px 0; background:var(--svc-color); color:#fff; display:flex; align-items:center; justify-content:center; font-size:16px; transition:background .3s ease, color .3s ease;}
.service-card-v2:hover .service-card-v2-arrow{background:#fff; color:var(--svc-color);}
.services-v2-photo{position:relative; border-radius:24px; overflow:hidden; box-shadow:var(--shadow); min-height:340px;}
.services-v2-photo img{width:100%; height:100%; object-fit:cover; position:absolute; inset:0;}
.services-v2-photo-card{position:absolute; left:16px; right:16px; bottom:16px; background:rgba(255,255,255,.92); backdrop-filter:blur(6px); border-radius:16px; padding:14px 18px; display:flex; flex-direction:column;}
.services-v2-photo-name{font-family:var(--serif); font-weight:600; font-size:15px; color:var(--ink);}
.services-v2-photo-role{font-family:var(--mono); font-size:11px; color:var(--coral-dark); text-transform:uppercase; letter-spacing:.04em;}
@media(max-width:900px){ .services-v2-grid{grid-template-columns:1fr; margin-top:-60px;} .services-v2-photo{order:-1; min-height:220px;} .services-v2-header{padding:60px 0 90px;} }
@media(max-width:560px){ .services-v2-list{grid-template-columns:1fr;} .services-v2-grid{margin-top:-40px;} .services-v2-header{padding:50px 0 70px;} }
.services-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.service-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:30px; transition:box-shadow .3s ease, transform .3s ease, border-color .3s ease; position:relative; overflow:hidden;}
.service-card::before{content:""; position:absolute; top:0; left:0; right:0; height:4px; background:var(--grad-cta); transform:scaleX(0); transform-origin:left; transition:transform .35s ease;}
.service-card:hover::before{transform:scaleX(1);}
.service-card:hover{box-shadow:var(--shadow); transform:translateY(-8px);}
.service-card .icon-wrap{width:64px; height:64px; border-radius:20px; display:flex; align-items:center; justify-content:center; margin-bottom:18px; transition:transform .35s cubic-bezier(.2,.8,.2,1);}
.service-card:hover .icon-wrap{transform:rotate(-6deg) scale(1.08);}
.service-card .icon-wrap-inner{width:44px; height:44px; border-radius:14px; display:flex; align-items:center; justify-content:center; box-shadow:0 8px 16px -6px rgba(0,0,0,.25);}
.service-card h4{font-size:18.5px; margin-bottom:6px;}
.service-card p{font-size:14px; color:#45516B; margin-bottom:10px;}
.service-card .read-more{font-family:var(--mono); font-size:12px; text-decoration:none; text-transform:uppercase; letter-spacing:.04em; font-weight:600;}

/* ============ VIDEO INTERSTITIAL ============ */


/* ============ WHY CHOOSE (v2 — matches reference) ============ */
.why-v2{padding:110px 0 70px; position:relative;}
.why-v2.bg-mint{background:var(--mint-soft);}
.why-v2-grid{display:grid; grid-template-columns:.85fr 1.15fr; gap:60px; align-items:center; margin-bottom:80px;}
.why-v2-art{border-radius:28px; overflow:hidden; box-shadow:var(--shadow); aspect-ratio:4/4.4;}
.why-v2-art img, .why-v2-art video{width:100%; height:100%; object-fit:cover;}
.why-v2-list{margin-top:26px; display:flex; flex-direction:column; gap:10px;}
.why-v2-item{display:flex; gap:18px; padding:16px 18px; border-radius:16px; transition:background .3s ease, transform .3s ease, box-shadow .3s ease;}
.why-v2-item.is-active, .why-v2-item:hover{background:#fff; box-shadow:var(--shadow-sm); transform:translateX(6px);}
.why-v2-icon{width:52px; height:52px; border-radius:50%; background:#fff; border:1px solid var(--line-strong); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.why-v2-item.is-active .why-v2-icon, .why-v2-item:hover .why-v2-icon{background:var(--grad-brand); border-color:transparent;}
.why-v2-item.is-active .why-v2-icon svg path, .why-v2-item:hover .why-v2-icon svg path{stroke:#fff;}
.why-v2-item h4{font-size:16.5px; margin-bottom:4px; color:var(--ink);}
.why-v2-item p{font-size:13.5px; color:#45516B; margin:0;}
@media(max-width:820px){ .why-v2-grid{grid-template-columns:1fr;} }

.gallery-blob-row{position:relative; max-width:1000px; margin:60px auto 0; height:380px; border-radius:32px; background:linear-gradient(135deg, rgba(44,111,160,.06), rgba(155,60,194,.06));}
.gallery-swirl{position:absolute; inset:0; width:100%; height:100%; z-index:0;}
.g-blob{position:absolute; border-radius:45% 55% 60% 40% / 55% 45% 55% 45%; overflow:hidden; box-shadow:var(--shadow-sm); z-index:1; transition:border-radius .6s ease; border:5px solid #fff;}
.g-blob img{width:100%; height:100%; object-fit:cover;}
.g-blob-1{width:230px; height:270px; left:4%; top:110px;}
.g-blob-2{width:210px; height:250px; left:32%; top:20px;}
.g-blob-3{width:240px; height:280px; left:60%; top:80px;}
.g-badge{position:absolute; right:5%; top:40px; width:120px; height:120px; border-radius:50%; background:radial-gradient(circle, #F4D35E 0%, #F4D35E 34%, #9B3CC2 62%, #1B2333 88%); box-shadow:var(--shadow); z-index:1; border:5px solid #fff;}
@media(max-width:900px){
  .gallery-blob-row{height:auto; display:flex; flex-wrap:wrap; gap:20px; justify-content:center; padding:30px 20px; border-radius:20px;}
  .g-blob, .g-badge{position:static; width:160px; height:190px;}
  .g-badge{width:90px; height:90px;}
}

/* ============ TESTIMONIALS (v2 — dark textured, photo collage) ============ */
.testimonials-v2{padding:120px 0; background:#161F30; color:#F4E7E0; position:relative; overflow:hidden;}
.testimonials-v2 h2, .testimonials-v2 .eyebrow{color:#fff;}
.testi-swirl-bg{position:absolute; inset:0; width:100%; height:100%;}

.testi-feature-grid{position:relative; max-width:1000px; margin:0 auto; min-height:420px;}
.testi-slide-pair{display:none; grid-template-columns:.9fr 1.1fr; gap:50px; align-items:center;}
.testi-feature-grid .testi-slide-pair.active{display:grid; animation:testiFadeIn .5s ease;}
@keyframes testiFadeIn{from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:translateY(0);}}
.testi-pair-image{position:relative; border-radius:28px; overflow:hidden; box-shadow:0 30px 60px rgba(0,0,0,.4); border:6px solid #fff; aspect-ratio:4/5;}
.testi-pair-image img{width:100%; height:100%; object-fit:cover;}
.testi-pair-sticker{position:absolute; bottom:16px; left:16px; background:#fff; color:var(--gold); font-size:15px; letter-spacing:2px; padding:8px 14px; border-radius:100px; box-shadow:var(--shadow-sm);}
@media(max-width:640px){ .testi-slide-pair.active{grid-template-columns:1fr;} .testi-pair-image{aspect-ratio:16/10;} }

.testi-card-v2{background:#fff; border-radius:24px; padding:44px; box-shadow:0 30px 60px rgba(0,0,0,.3);}
.testi-stars{color:var(--gold); font-size:15px; letter-spacing:2px; margin-bottom:12px;}
.testi-headline-v2{font-family:var(--serif); font-weight:700; font-size:22px; color:var(--ink); margin:0 0 16px; line-height:1.25;}
.testi-quote-v2{font-size:14.5px; line-height:1.7; color:#45516B; margin-bottom:22px;}
.testi-name-v2{font-weight:700; font-size:14.5px; color:var(--ink);}
.testi-role-v2{font-size:12.5px; color:#6E7A94; font-family:var(--mono);}
.testi-person{display:flex; align-items:center; gap:12px;}
.testi-avatar{width:44px; height:44px; border-radius:50%; object-fit:cover; flex-shrink:0;}
.testi-avatar-fallback{display:flex; align-items:center; justify-content:center; background:var(--coral); color:#fff; font-family:var(--serif); font-weight:600; border-radius:50%;}

.testi-nav-row{display:flex; align-items:center; justify-content:center; gap:18px; margin-top:26px;}
.testi-nav{display:flex; gap:10px;}
.testi-dot{width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,.3); border:none; padding:0;}
.testi-dot.active{background:var(--gold); width:22px; border-radius:4px; transition:all .3s ease;}
.testi-arrow-v2{background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.25); width:40px; height:40px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; flex-shrink:0; transition:background .2s ease;}
.testi-arrow-v2:hover{background:rgba(255,255,255,.18);}
.testi-slide{display:none;}
.testi-slide.active{display:block;}
.site-flash{background:var(--pine); color:#fff; text-align:center; padding:12px 0; font-size:14px;}
.site-flash.error{background:#7E2CA1;}

/* ============ TESTIMONIALS (shared classes — used by the full Testimonials page) ============ */
.testi-wrap{position:relative; max-width:760px; margin:0 auto;}
.testi-card{border-radius:24px; padding:44px; text-align:center;}
.testi-quote{font-family:var(--serif); font-style:italic; font-size:19px; line-height:1.55; margin-bottom:20px;}
.testi-headline{font-family:var(--serif); font-weight:700; font-size:19px; margin:0 0 12px; line-height:1.3;}
.testi-name{font-weight:700; font-size:14.5px;}
.testi-role{font-size:12.5px; font-family:var(--mono);}
.testi-card .testi-person{justify-content:center; margin-top:16px;}
.testi-wrap .testi-arrow.left{position:absolute; left:-64px; top:50%; transform:translateY(-50%); background:#fff; border:1px solid var(--line-strong); width:44px; height:44px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--pine);}
.testi-wrap .testi-arrow.right{position:absolute; right:-64px; top:50%; transform:translateY(-50%); background:#fff; border:1px solid var(--line-strong); width:44px; height:44px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--pine);}
@media(max-width:900px){ .testi-wrap .testi-arrow.left, .testi-wrap .testi-arrow.right{display:none;} }

/* ============ STANDALONE PAGES (booking / portal / admin login) ============ */
.page-hero{background:var(--grad-brand); color:#fff; padding:70px 0 46px; text-align:center; position:relative; overflow:hidden;}
.page-hero::before{content:""; position:absolute; inset:0; background:radial-gradient(circle at 20% 30%, rgba(255,255,255,.12), transparent 45%), radial-gradient(circle at 80% 70%, rgba(255,255,255,.1), transparent 45%);}
.page-hero .container{position:relative; z-index:1;}
.page-hero .eyebrow{justify-content:center; color:var(--mint);}
.page-hero .eyebrow::before{background:var(--mint);}
.page-hero h1{color:#fff; font-size:clamp(30px,4vw,44px);}
.page-wrap{padding:60px 0 100px;}
.wizard-card{max-width:880px; margin:0 auto; background:#fff; border-radius:22px; box-shadow:var(--shadow); overflow:hidden;}
.wizard-card.wide{max-width:1120px;}
.payment-note{background:#FBF3E4; border:1px dashed var(--gold); color:#8C6A1E; padding:12px 16px; border-radius:10px; font-size:12.5px; font-family:var(--mono); margin-bottom:20px;}
.consent-check{display:flex; align-items:flex-start; gap:10px; margin-top:18px; font-size:12.5px; color:#45516B; line-height:1.5;}
.consent-check input{margin-top:3px; flex-shrink:0;}
.consent-check a{color:var(--coral-dark); text-decoration:underline;}

/* ============ AWARDS TIMELINE ============ */
.awards{padding:110px 0;}
.timeline-wrap{position:relative; max-width:760px; margin:0 auto; padding-left:44px;}
.timeline-track{position:absolute; left:9px; top:6px; bottom:6px; width:2px; background:var(--line-strong);}
.timeline-track .fill{position:absolute; left:0; top:0; width:100%; height:0%; background:var(--coral); transition:height 1.6s cubic-bezier(.2,.7,.2,1);}
.timeline-track.in-view .fill{height:100%;}
.award-item{position:relative; margin-bottom:48px;}
.award-item:last-child{margin-bottom:0;}
.award-item .a-dot{position:absolute; left:-44px; top:4px; width:20px; height:20px; border-radius:50%; background:#fff; border:2px solid var(--line-strong); transition:background .3s ease, border-color .3s ease;}
.award-item.in-view .a-dot{background:var(--coral); border-color:var(--coral);}
.award-item .year{font-family:var(--mono); font-size:13px; color:var(--coral-dark); letter-spacing:.06em;}
.award-item h4{font-size:18px; margin:4px 0 6px;}
.award-item p{font-size:14px; color:#45516B; margin:0;}

/* ============ CONTACT / FOOTER ============ */
.contact-cta{background:var(--grad-wash); padding:90px 0; text-align:center;}
.contact-cta h2{font-size:clamp(30px,4.4vw,48px);}

/* ============ CONTACT PAGE ============ */
.bg-pine{background:var(--pine); color:#EAF1FA;}
.bg-pine h1, .bg-pine h2, .bg-pine .eyebrow{color:#fff;}
.bg-pine .eyebrow::before{background:var(--coral);}
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start;}
.contact-info dl{display:grid; grid-template-columns:auto 1fr; gap:12px 20px; margin-top:24px;}
.contact-info dt{font-family:var(--mono); font-size:11.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--mint); padding-top:2px;}
.contact-info dd{margin:0; font-size:14.5px; color:#EAF1FA;}
.mini-form{display:flex; flex-direction:column; gap:14px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.16); border-radius:20px; padding:28px;}
.mini-form input, .mini-form textarea{width:100%; padding:13px 15px; border-radius:10px; border:1px solid rgba(255,255,255,.25); background:rgba(255,255,255,.08); color:#fff; font-family:var(--sans); font-size:14.5px;}
.mini-form input::placeholder, .mini-form textarea::placeholder{color:rgba(255,255,255,.55);}
.mini-form input:focus, .mini-form textarea:focus{outline:2px solid var(--coral); background:rgba(255,255,255,.14);}
@media(max-width:900px){ .contact-grid{grid-template-columns:1fr;} }

/* ============ LEGAL PAGES ============ */
.legal-page{padding:70px 0 100px;}
.legal-content{max-width:760px; margin:0 auto;}
.legal-content h2{font-size:19px; margin-top:36px; margin-bottom:12px; padding-top:20px; border-top:1px solid var(--line);}
.legal-content h2:first-child{margin-top:0; padding-top:0; border-top:none;}
.legal-content p{font-size:14.5px; line-height:1.7; color:#45516B; margin-bottom:14px;}
.legal-content ul{margin:0 0 14px; padding-left:22px;}
.legal-content li{font-size:14.5px; line-height:1.7; color:#45516B; margin-bottom:6px;}
.legal-content a{color:var(--coral-dark); text-decoration:underline;}
.legal-content b{color:var(--pine);}

/* ============ BEFORE / AFTER SLIDER ============ */
.ba-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:36px; max-width:1000px; margin:0 auto;}
.ba-wrap{text-align:center;}
.ba-slider{position:relative; aspect-ratio:1/1; border-radius:22px; overflow:hidden; box-shadow:var(--shadow); background:#EFF2FB; cursor:ew-resize; user-select:none;}
.ba-img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.ba-after{clip-path:inset(0 50% 0 0); transition:clip-path .05s linear;}
.ba-handle{position:absolute; top:0; bottom:0; left:50%; width:3px; background:#fff; box-shadow:0 0 0 1px rgba(0,0,0,.08); transform:translateX(-50%); pointer-events:none;}
.ba-handle span{position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:38px; height:38px; border-radius:50%; background:#fff; box-shadow:var(--shadow); display:flex; align-items:center; justify-content:center; font-size:16px; color:var(--pine);}
.ba-tag{position:absolute; top:14px; font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:.06em; background:rgba(27,35,51,.65); color:#fff; padding:5px 12px; border-radius:100px; pointer-events:none;}
.ba-tag-before{left:14px;}
.ba-tag-after{right:14px;}
.ba-range-input{width:100%; margin-top:16px; accent-color:var(--coral);}
.ba-placeholder{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; cursor:default;}
.ba-placeholder-icon{width:56px; height:56px; border-radius:50%; background:#fff; display:flex; align-items:center; justify-content:center;}
.ba-placeholder p{color:#6E7A94; font-size:13px; margin:0;}
.ba-case-title{font-size:13.5px; color:var(--pine); font-weight:600; margin-top:14px;}
.ba-case-title span{color:#6E7A94; font-weight:400; font-family:var(--mono); font-size:12px;}
.ba-caption{font-size:12.5px; color:#6E7A94; text-align:center; max-width:620px; margin-left:auto; margin-right:auto;}
.ba-caption a{color:var(--coral-dark);}

/* ============ BEFORE & AFTER SLIDER ============ */
.ba-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.ba-card{display:flex; flex-direction:column; gap:12px;}
.ba-slider{position:relative; width:100%; aspect-ratio:4/3; border-radius:16px; overflow:hidden; cursor:ew-resize; user-select:none; box-shadow:var(--shadow); background:var(--mint-soft);}
.ba-layer{position:absolute; inset:0; overflow:hidden;}
.ba-layer.ba-before{z-index:2; width:50%; border-right:2px solid #fff;}
.ba-layer.ba-after{z-index:1;}
.ba-fill{position:absolute; top:0; left:0; height:100%; width:100%;}
.ba-fill img{width:100%; height:100%; object-fit:cover; display:block;}
.ba-placeholder{width:100%; height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; background:linear-gradient(135deg, var(--mint) 0%, var(--mint-soft) 100%);}
.ba-placeholder-after{background:linear-gradient(135deg, #F5EAFB 0%, var(--mint-soft) 100%);}
.ba-placeholder b{font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--pine);}
.ba-handle{position:absolute; top:0; bottom:0; left:50%; width:0; z-index:3; display:flex; align-items:center; justify-content:center; pointer-events:none;}
.ba-handle span{pointer-events:auto; cursor:ew-resize; width:38px; height:38px; border-radius:50%; background:#fff; box-shadow:0 4px 14px rgba(0,0,0,.2); display:flex; align-items:center; justify-content:center; font-size:16px; color:var(--pine); transform:translateX(-50%);}
.ba-tag{position:absolute; bottom:12px; z-index:4; font-family:var(--mono); font-size:10.5px; text-transform:uppercase; letter-spacing:.06em; background:rgba(27,35,51,.65); color:#fff; padding:4px 10px; border-radius:100px;}
.ba-tag-before{left:12px;} .ba-tag-after{right:12px;}
.ba-caption{display:flex; justify-content:space-between; align-items:baseline; font-size:13.5px;}
.ba-caption b{color:var(--pine);}
.ba-caption span{font-size:12px; color:#6E7A94; font-family:var(--mono);}
@media(max-width:920px){ .ba-grid{grid-template-columns:1fr 1fr;} }
@media(max-width:560px){ .ba-grid{grid-template-columns:1fr;} }
footer.site-footer{background:var(--ink); color:#B9C4D6; padding:60px 0 26px;}
.footer-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:40px; padding-bottom:40px; border-bottom:1px solid rgba(255,255,255,.1);}
.footer-grid h5{font-family:var(--mono); font-size:11.5px; text-transform:uppercase; letter-spacing:.1em; color:var(--coral); margin-bottom:16px;}
.footer-grid p, .footer-grid a{font-size:13.5px; color:#B9C4D6; text-decoration:none; display:block; margin-bottom:8px;}
.footer-logo-img{height:40px; width:auto; background:#fff; padding:8px 14px; border-radius:12px; margin-bottom:12px;}
.footer-socials{display:flex; gap:10px; margin-top:14px;}
.footer-socials a{width:32px; height:32px; border-radius:50%; border:1px solid rgba(255,255,255,.2); display:flex; align-items:center; justify-content:center; font-size:12px;}
.foot-bottom{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; padding-top:22px; font-size:12.5px;}
.foot-bottom .links{display:flex; gap:18px; flex-wrap:wrap;}
.foot-bottom a{text-decoration:none; color:#B9C4D6;}
.foot-bottom a.staff{font-family:var(--mono); color:var(--coral);}

@media(max-width:920px){
  .about-grid, .why-grid, .footer-grid{grid-template-columns:1fr;}
  .services-grid{grid-template-columns:repeat(2,1fr);}
  .why-cards{grid-template-columns:1fr;}
  .gallery-row{grid-template-columns:repeat(3,1fr);}
}
@media(max-width:600px){
  .services-grid{grid-template-columns:1fr;}
  .gallery-row{grid-template-columns:1fr 1fr;}
  .stats-row{gap:28px;}
}

/* =========================================================================
   REUSED BOOKING / PORTAL / ADMIN OVERLAY STYLES (variables remapped above)
========================================================================= */
.overlay{position:fixed; inset:0; background:rgba(27,35,51,.6); backdrop-filter:blur(3px); display:none; align-items:flex-start; justify-content:center; z-index:1000; padding:26px; overflow-y:auto;}
.overlay.open{display:flex;}
.overlay-panel{background:var(--paper); width:100%; max-width:880px; border-radius:22px; box-shadow:0 30px 80px rgba(0,0,0,.4); margin:24px 0; overflow:hidden;}
.overlay-panel.wide{max-width:1120px;}
.overlay-head{display:flex; align-items:center; justify-content:space-between; padding:22px 30px; border-bottom:1px solid var(--line);}
.overlay-head h3{margin:0; font-size:20px;}
.overlay-close{background:var(--mint-soft); border:none; width:36px; height:36px; border-radius:50%; font-size:18px; color:var(--pine); display:flex; align-items:center; justify-content:center; line-height:1;}
.overlay-body{padding:30px;}
.wizard-progress{padding:22px 30px 4px;}
.wizard-arc{display:flex; align-items:center; gap:0;}
.wizard-step-dot{width:34px; height:34px; border-radius:50%; border:2px solid var(--line-strong); display:flex; align-items:center; justify-content:center; font-family:var(--mono); font-size:13px; color:#6E7A94; background:#fff; flex-shrink:0; transition:all .25s ease;}
.wizard-step-line{flex-grow:1; height:2px; background:var(--line-strong); position:relative; margin:0 6px;}
.wizard-step-line::after{content:""; position:absolute; left:0; top:0; height:100%; background:var(--coral); width:0%; transition:width .35s ease;}
.wizard-step-dot.done{background:var(--pine); border-color:var(--pine); color:#fff;}
.wizard-step-dot.active{background:var(--coral); border-color:var(--coral); color:#fff; box-shadow:0 0 0 5px rgba(155,60,194,.2);}
.wizard-step-line.filled::after{width:100%;}
.wizard-labels{display:flex; justify-content:space-between; margin-top:8px; font-size:11.5px; color:#6E7A94; font-family:var(--mono);}
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
.form-field{display:flex; flex-direction:column; gap:6px;}
.form-field.full{grid-column:1/-1;}
.form-field label{font-size:13px; font-weight:700; color:var(--pine);}
.form-field .hint{font-size:12px; color:#6E7A94; font-weight:400;}
.form-field input, .form-field select, .form-field textarea{padding:12px 14px; border-radius:10px; border:1px solid var(--line-strong); font-family:var(--sans); font-size:14.5px; background:#fff; color:var(--ink);}
.form-field textarea{resize:vertical; min-height:90px;}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{outline:2px solid var(--coral); outline-offset:1px;}
.form-section-title{font-family:var(--serif); font-size:16px; color:var(--pine); margin:26px 0 14px; padding-bottom:8px; border-bottom:1px solid var(--line);}
.form-section-title:first-child{margin-top:0;}
.checkbox-row{display:flex; flex-wrap:wrap; gap:10px;}
.checkbox-chip{display:flex; align-items:center; gap:7px; padding:9px 14px; border:1px solid var(--line-strong); border-radius:100px; font-size:13px; cursor:pointer; background:#fff;}
.checkbox-chip input{margin:0;}
.checkbox-chip:has(input:checked){background:var(--mint-soft); border-color:var(--pine); color:var(--pine); font-weight:600;}
.dropzone{border:2px dashed var(--line-strong); border-radius:16px; padding:30px; text-align:center; background:var(--mint-soft); cursor:pointer; transition:border-color .2s ease, background .2s ease;}
.dropzone.drag{border-color:var(--coral); background:#fff;}
.dropzone svg{margin:0 auto 10px;}
.dropzone .dz-title{font-weight:700; color:var(--pine); margin-bottom:4px;}
.dropzone .dz-sub{font-size:12.5px; color:#6E7A94;}
.file-list{display:grid; grid-template-columns:repeat(auto-fill,minmax(96px,1fr)); gap:12px; margin-top:16px;}
.file-thumb{position:relative; border-radius:12px; overflow:hidden; border:1px solid var(--line); background:#fff; aspect-ratio:1/1;}
.file-thumb img{width:100%; height:100%; object-fit:cover;}
.file-thumb .file-icon{width:100%; height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; padding:6px; text-align:center;}
.file-thumb .file-icon span{font-size:10px; color:#6E7A94; word-break:break-all;}
.file-thumb .remove-file{position:absolute; top:5px; right:5px; width:20px; height:20px; border-radius:50%; background:rgba(0,0,0,.55); color:#fff; border:none; font-size:12px; display:flex; align-items:center; justify-content:center; line-height:1;}
.calendar-wrap{display:grid; grid-template-columns:1fr 1fr; gap:30px;}
.cal-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:14px;}
.cal-head button{background:var(--mint-soft); border:none; width:32px; height:32px; border-radius:50%; color:var(--pine); font-size:15px;}
.cal-head span{font-family:var(--serif); font-size:17px; color:var(--pine);}
.cal-grid{display:grid; grid-template-columns:repeat(7,1fr); gap:6px; text-align:center;}
.cal-dow{font-size:11px; font-family:var(--mono); color:#6E7A94; padding-bottom:6px;}
.cal-day{aspect-ratio:1/1; display:flex; align-items:center; justify-content:center; border-radius:10px; font-size:13.5px; border:1px solid transparent; background:none; color:var(--ink);}
.cal-day.disabled{color:#B9C4D6; cursor:not-allowed;}
.cal-day.available:hover{background:var(--mint-soft); border-color:var(--line-strong);}
.cal-day.selected{background:var(--pine); color:#fff;}
.cal-day.empty{visibility:hidden;}
.slot-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:10px; max-height:340px; overflow-y:auto; padding-right:4px;}
.slot-btn{padding:11px 6px; border-radius:10px; border:1px solid var(--line-strong); background:#fff; font-size:13px; font-family:var(--mono); color:var(--pine);}
.slot-btn:hover:not(:disabled){border-color:var(--pine);}
.slot-btn.selected{background:var(--coral); border-color:var(--coral); color:#fff;}
.slot-btn:disabled{background:#F1EFE9; color:#B9C4D6; text-decoration:line-through; cursor:not-allowed;}
.slot-empty-msg{grid-column:1/-1; text-align:center; color:#6E7A94; font-size:13.5px; padding:30px 0;}
.summary-card{background:var(--mint-soft); border-radius:16px; padding:22px; margin-bottom:24px;}
.summary-row{display:flex; justify-content:space-between; font-size:14px; padding:8px 0; border-bottom:1px dashed var(--line-strong);}
.summary-row:last-child{border-bottom:none;}
.summary-row b{color:var(--pine);}
.pay-tabs{display:flex; gap:8px; margin-bottom:18px;}
.pay-tab{flex:1; padding:11px; border-radius:10px; border:1px solid var(--line-strong); background:#fff; font-size:13.5px; font-weight:700; color:var(--pine);}
.pay-tab.active{background:var(--pine); color:#fff; border-color:var(--pine);}
.wizard-footer{display:flex; justify-content:space-between; align-items:center; padding:22px 30px; border-top:1px solid var(--line); background:var(--mint-soft);}
.field-error{border-color:var(--coral-dark) !important;}
.confirm-wrap{text-align:center; padding:10px 0 20px;}
.confirm-check{width:74px; height:74px; margin:0 auto 20px;}
.appt-id{font-family:var(--mono); background:var(--mint-soft); display:inline-block; padding:8px 16px; border-radius:100px; font-size:13.5px; margin:10px 0 24px;}
.confirm-actions{display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-top:24px;}
.call-shell{background:#0D1B26; border-radius:18px; padding:20px; color:#fff;}
.call-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:18px;}
.call-tile{background:linear-gradient(160deg,#16324A,#0D1B26); border-radius:14px; aspect-ratio:16/10; position:relative; display:flex; align-items:center; justify-content:center; overflow:hidden; border:1px solid rgba(255,255,255,.08);}
.call-tile .call-avatar{width:64px; height:64px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-size:22px;}
.call-tile .tag{position:absolute; bottom:10px; left:12px; font-size:12px; background:rgba(0,0,0,.45); padding:4px 10px; border-radius:100px;}
.call-timer{position:absolute; top:12px; right:14px; font-family:var(--mono); font-size:13px; background:rgba(0,0,0,.4); padding:4px 10px; border-radius:100px;}
.call-controls{display:flex; justify-content:center; gap:14px;}
.call-btn{width:50px; height:50px; border-radius:50%; border:none; background:rgba(255,255,255,.1); color:#fff; display:flex; align-items:center; justify-content:center;}
.call-btn.end{background:var(--coral-dark); width:64px; border-radius:32px;}
.call-btn.off{background:rgba(155,60,194,.85);}
.timeline{list-style:none; margin:0; padding:0; display:grid; gap:0;}
.timeline li{display:flex; gap:16px; padding-bottom:26px; position:relative;}
.timeline li:not(:last-child)::before{content:""; position:absolute; left:11px; top:26px; bottom:0; width:2px; background:var(--line-strong);}
.timeline .dot{width:24px; height:24px; border-radius:50%; background:#fff; border:2px solid var(--line-strong); flex-shrink:0; display:flex; align-items:center; justify-content:center; z-index:1;}
.timeline li.done .dot{background:var(--pine); border-color:var(--pine);}
.timeline li.done .dot::after{content:"✓"; color:#fff; font-size:12px;}
.timeline li.current .dot{background:var(--coral); border-color:var(--coral); box-shadow:0 0 0 4px rgba(155,60,194,.2);}
.timeline .t-title{font-weight:700; color:var(--pine); font-size:14.5px;}
.timeline .t-desc{font-size:13px; color:#45516B; margin-top:2px;}
.badge{display:inline-block; font-family:var(--mono); font-size:11px; padding:3px 10px; border-radius:100px; text-transform:uppercase; letter-spacing:.04em;}
.badge.blue{background:#E4EEF9; color:#2C5A8C;}
.badge.gold{background:#F6EAD1; color:#8C6A1E;}
.badge.green{background:#DCEFE3; color:#1E7A48;}
.badge.gray{background:#EDEBE4; color:#6B6558;}
.treatment-card{border:1px solid var(--line); border-radius:16px; padding:20px; background:#fff; margin-top:14px;}
.treatment-card h4{margin-bottom:4px;}
.fee-tag{font-family:var(--mono); font-size:20px; color:var(--coral-dark); font-weight:700;}
.login-wrap{max-width:360px; margin:20px auto; text-align:center;}
.login-wrap .lock{width:52px; height:52px; margin:0 auto 16px; background:var(--pine); border-radius:14px; display:flex; align-items:center; justify-content:center;}
.login-hint{font-size:12px; color:#6E7A94; font-family:var(--mono); margin-top:14px; background:var(--mint-soft); padding:10px; border-radius:10px;}
.admin-shell{display:grid; grid-template-columns:260px 1fr; min-height:520px;}
.admin-side{background:var(--pine); color:#F4E7E0; padding:26px 20px;}
.admin-side .a-logo{font-family:var(--serif); font-size:18px; margin-bottom:26px; display:flex; align-items:center; gap:8px;}
.admin-side .a-badge{font-family:var(--mono); font-size:10.5px; background:rgba(255,255,255,.12); padding:6px 10px; border-radius:8px; margin-bottom:24px; display:inline-block; letter-spacing:.05em;}
.admin-side nav a{display:block; padding:10px 12px; border-radius:8px; text-decoration:none; color:#E8CDBE; font-size:13.5px; margin-bottom:4px;}
.admin-side nav a.active, .admin-side nav a:hover{background:rgba(255,255,255,.1); color:#fff;}
.admin-main{padding:26px 30px; max-height:640px; overflow-y:auto;}
.admin-table{width:100%; border-collapse:collapse; font-size:13.5px;}
.admin-table th{text-align:left; font-family:var(--mono); font-size:11px; text-transform:uppercase; color:#6E7A94; padding:8px 10px; border-bottom:1px solid var(--line-strong);}
.admin-table td{padding:12px 10px; border-bottom:1px solid var(--line);}
.admin-table tr.clickable{cursor:pointer;}
.admin-table tr.clickable:hover{background:var(--mint-soft);}
.internal-flag{display:flex; align-items:center; gap:8px; background:#FBF3E4; border:1px dashed var(--gold); color:#8C6A1E; padding:10px 14px; border-radius:10px; font-size:12.5px; margin-bottom:16px; font-family:var(--mono);}
.admin-section-block{border:1px solid var(--line); border-radius:14px; padding:20px; margin-bottom:18px; background:#fff;}
.admin-section-block h4{display:flex; align-items:center; gap:10px; font-size:15px;}
.step-num{width:24px; height:24px; border-radius:50%; background:var(--pine); color:#fff; font-family:var(--mono); font-size:12px; display:inline-flex; align-items:center; justify-content:center;}
.session-row{display:flex; align-items:center; justify-content:space-between; padding:9px 12px; background:var(--mint-soft); border-radius:10px; margin-bottom:8px; font-size:13px;}
.session-row button{background:none; border:none; color:var(--coral-dark); font-size:13px;}
.mini-btn-row{display:flex; gap:10px; flex-wrap:wrap; margin-top:10px;}
.stars-input{display:flex; gap:6px; font-size:26px; color:var(--line-strong); cursor:pointer;}
.stars-input span.active{color:var(--gold);}
.consult-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:12px 20px; margin-top:14px; padding:14px; background:var(--mint-soft); border-radius:12px;}
.consult-grid > div{display:flex; flex-direction:column; gap:2px;}
.consult-grid .hint{font-size:11px; text-transform:uppercase; letter-spacing:.04em; color:#6E7A94; font-family:var(--mono);}
.consult-grid b{font-size:13.5px; color:var(--ink); font-weight:600;}
.ai-summary-box{background:var(--mint-soft); border:1px dashed var(--pine); border-radius:12px; padding:16px; font-size:13.5px; line-height:1.6; color:var(--ink);}
@media(max-width:920px){ .consult-grid{grid-template-columns:1fr 1fr;} }
@media(max-width:560px){ .consult-grid{grid-template-columns:1fr;} }
@media(max-width:920px){
  .calendar-wrap{grid-template-columns:1fr;}
  .form-grid{grid-template-columns:1fr;}
  .call-grid{grid-template-columns:1fr;}
  .admin-shell{grid-template-columns:1fr;}
  .admin-side{display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px;}
  .admin-side nav{display:flex; gap:6px;}
}
@media(max-width:560px){
  .overlay{padding:0;}
  .overlay-panel{border-radius:0; min-height:100vh; margin:0;}
}

/* ============ CELEBRITY WALL — auto-scrolling marquee, gold-frame prestige cards ============ */
.celeb-wall{padding:100px 0 110px; background:#161F30; position:relative; overflow:hidden;}
.celeb-wall::before{content:""; position:absolute; inset:0; background:
  radial-gradient(circle at 12% 15%, rgba(155,60,194,.18), transparent 45%),
  radial-gradient(circle at 88% 85%, rgba(44,111,160,.22), transparent 45%);}
.celeb-wall .section-head{position:relative; z-index:1;}
.celeb-wall .section-head .eyebrow{color:var(--gold);}
.celeb-wall .section-head h2{color:#fff;}
.celeb-wall .section-head p{color:rgba(255,255,255,.6);}
.celeb-marquee{position:relative; z-index:1; margin-top:56px; overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);}
.celeb-track{display:flex; gap:26px; width:max-content; animation:celebScroll 42s linear infinite;}
.celeb-marquee:hover .celeb-track{animation-play-state:paused;}
@keyframes celebScroll{from{transform:translateX(0);} to{transform:translateX(-50%);}}
.celeb-card{position:relative; width:210px; height:270px; border-radius:6px; overflow:hidden; flex-shrink:0;
  border:1px solid rgba(244,211,94,.35); box-shadow:0 20px 40px rgba(0,0,0,.35);
  transition:transform .4s cubic-bezier(.2,.8,.2,1), border-color .4s;}
.celeb-card::after{content:""; position:absolute; inset:0; border:1px solid rgba(244,211,94,.7); margin:6px; pointer-events:none; opacity:0; transition:opacity .4s;}
.celeb-card:hover{transform:translateY(-10px) scale(1.02); border-color:rgba(244,211,94,.8);}
.celeb-card:hover::after{opacity:1;}
.celeb-card img{width:100%; height:100%; object-fit:cover; filter:grayscale(65%) contrast(1.05); transition:filter .5s;}
.celeb-card:hover img{filter:grayscale(0%) contrast(1.05);}
.celeb-wall-note{position:relative; z-index:1; text-align:center; margin-top:40px; color:rgba(255,255,255,.45); font-size:12.5px; letter-spacing:.03em;}

/* ============ CELEBRITY TESTIMONIAL QUOTES ============ */
.celeb-quotes{padding:100px 0; background:var(--grad-wash);}
.celeb-quote-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px; margin-top:56px;}
.celeb-quote-card{background:#fff; border-radius:20px; padding:32px 28px; box-shadow:var(--shadow-sm); position:relative;}
.celeb-quote-card::before{content:"\201C"; position:absolute; top:14px; right:24px; font-family:Georgia,serif; font-size:64px; color:var(--mint-soft); line-height:1; z-index:0;}
.celeb-quote-text{position:relative; z-index:1; font-size:14.5px; line-height:1.7; color:#45516B; margin-bottom:18px;
  display:-webkit-box; -webkit-line-clamp:6; -webkit-box-orient:vertical; overflow:hidden;}
.celeb-quote-name{font-weight:700; color:var(--ink); font-size:14px;}
.celeb-quote-role{font-size:12px; color:var(--gold); text-transform:uppercase; letter-spacing:.05em; margin-top:2px;}
@media(max-width:920px){ .celeb-quote-grid{grid-template-columns:1fr;} .celeb-card{width:170px; height:220px;} }

/* ============ SMILE TRANSFORMATIONS GALLERY ============ */
.transform-gallery{padding:100px 0;}
.transform-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:22px; margin-top:56px;}
.transform-item{position:relative; border-radius:18px; overflow:hidden; aspect-ratio:3/4; box-shadow:var(--shadow-sm); cursor:pointer;}
.transform-item img{width:100%; height:100%; object-fit:cover; transition:transform .6s cubic-bezier(.2,.8,.2,1);}
.transform-item:hover img{transform:scale(1.08);}
.transform-item::after{content:"Before & After"; position:absolute; left:0; right:0; bottom:0; padding:16px 18px;
  background:linear-gradient(0deg, rgba(0,0,0,.75), transparent); color:#fff; font-size:13px; font-weight:600;
  letter-spacing:.02em; transform:translateY(100%); transition:transform .35s;}
.transform-item:hover::after{transform:translateY(0);}
@media(max-width:920px){ .transform-grid{grid-template-columns:repeat(2,1fr);} }
@media(max-width:560px){ .transform-grid{grid-template-columns:1fr;} .celeb-card{width:150px; height:195px;} }

