/* ============ BUTTONS ============ */
.btn {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--font-display); font-weight: 700; font-size: 16px;
  padding: 17px 30px; border-radius: 999px; line-height: 1;
  transition: transform .18s ease, box-shadow .25s ease, background .25s ease, color .2s ease;
  white-space: nowrap;
}
.btn svg { width: 18px; height: 18px; }
.btn-teal { background: var(--teal); color: #fff; box-shadow: 0 14px 30px -12px rgba(60,123,166,0.7); }
.btn-teal:hover { background: var(--teal-bright); transform: translateY(-3px); box-shadow: 0 20px 40px -14px rgba(60,123,166,0.8); }
.btn-coral { background: var(--coral); color: #fff; box-shadow: 0 14px 30px -12px rgba(255,111,94,0.6); }
.btn-coral:hover { transform: translateY(-3px); filter: brightness(1.05); }
.btn-ghost { background: rgba(255,255,255,0.08); color: #fff; border: 1.5px solid rgba(255,255,255,0.28); }
.btn-ghost:hover { background: rgba(255,255,255,0.16); transform: translateY(-3px); }
.btn-navy { background: var(--navy-900); color: #fff; }
.btn-gold { background: var(--gold); color: var(--navy-950); box-shadow: 0 14px 30px -12px rgba(250,214,76,0.6); }
.btn-gold:hover { background: var(--gold-deep); transform: translateY(-3px); box-shadow: 0 20px 40px -14px rgba(250,214,76,0.7); }
.btn-navy:hover { background: var(--navy-800); transform: translateY(-3px); }
.btn-outline { border: 1.5px solid var(--navy-900); color: var(--navy-900); }
.btn-outline:hover { background: var(--navy-900); color: #fff; transform: translateY(-3px); }
.btn-light { background: #fff; color: var(--navy-900); box-shadow: 0 14px 30px -16px rgba(0,0,0,0.5); }
.btn-light:hover { transform: translateY(-3px); box-shadow: 0 20px 40px -18px rgba(0,0,0,0.6); }
.btn-lg { padding: 20px 38px; font-size: 18px; }

.eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--font-display); font-weight: 700; font-size: 13px;
  letter-spacing: 0.18em; text-transform: uppercase; color: var(--teal-deep);
}
.eyebrow.on-dark { color: var(--teal); }
.eyebrow-icon { width: 56px; height: 56px; border-radius: 50%; justify-content: center; gap: 0; background: rgba(250,214,76,0.14); border: 1px solid rgba(250,214,76,0.32); color: var(--gold); margin: 0 auto; }
.eyebrow-icon::before { display: none; }
.eyebrow-icon svg { width: 26px; height: 26px; }
.eyebrow::before { content: ""; width: 26px; height: 3px; border-radius: 2px; background: currentColor; }

/* ============ NAV ============ */
.topbar-accent { height: 4px; width: 100%; background: var(--gold); }
.topbar { background: var(--navy-950); color: rgba(255,255,255,0.78); font-size: 13px; font-weight: 600; }
.topbar .wrap { display: flex; align-items: center; justify-content: space-between; min-height: 42px; gap: 18px; flex-wrap: nowrap; }
.topbar a { color: rgba(255,255,255,0.78); transition: color .2s; white-space: nowrap; }
.topbar a:hover { color: var(--teal-bright); }
.topbar span { white-space: nowrap; }
.topbar .tb-left { display: flex; gap: 24px; align-items: center; min-width: 0; }
.topbar .tb-right { display: flex; gap: 24px; align-items: center; }
.topbar .tag { color: var(--teal); }
@media (max-width: 1080px){ .topbar .tb-left { display:none; } }
@media (max-width: 600px){ .topbar .tb-right { gap: 16px; font-size: 12px; } }

/* nav is transparent and OVERLAPS the navy hero (see .hero margin-top) so its
   white logo + links sit on the hero's navy — no background added. */
.nav {
  position: sticky; top: 0; z-index: 100;
  background: transparent;
  transition: background .3s ease, box-shadow .3s ease, padding .3s ease;
  padding: 18px 0;
}
.nav.scrolled { background: rgba(255,255,255,0.92); backdrop-filter: blur(14px); box-shadow: 0 10px 30px -22px rgba(8,26,52,0.5); padding: 12px 0; }
.nav .wrap { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: flex; align-items: center; }
.brand img.logo { height: 60px; width: auto; display: block; transition: height .3s ease; }
.nav .brand img.logo-dark { display: none; }
.nav .brand img.logo-light { display: block; }
.nav.scrolled .brand img.logo { height: 50px; }
.nav.scrolled .brand img.logo-light { display: none; }
.nav.scrolled .brand img.logo-dark { display: block; }
@media (max-width: 420px){ .brand img.logo { height: 38px; } }

.navlinks { display: flex; align-items: center; gap: 30px; }
.navlinks a { font-weight: 700; font-size: 14px; white-space: nowrap; color: rgba(255,255,255,0.86); transition: color .28s ease; position: relative; }
.navlinks a:hover { color: var(--teal-bright); }
.nav.scrolled .navlinks a { color: var(--ink-soft); }
.nav.scrolled .navlinks a:hover { color: var(--teal-deep); }
/* animated gold underline on top-level nav items */
.navlinks > a::after, .navmore-btn::after { content: ""; position: absolute; left: 0; right: 0; bottom: -7px; height: 2px; border-radius: 2px; background: var(--gold); transform: scaleX(0); transform-origin: left center; transition: transform .45s cubic-bezier(.16,1,.3,1); pointer-events: none; }
.navlinks > a:hover::after, .navmore:hover .navmore-btn::after, .navmore:focus-within .navmore-btn::after { transform: scaleX(1); }
.nav-cta { display: flex; align-items: center; gap: 14px; }
.nav-phone { display:flex; align-items:center; gap:7px; white-space:nowrap; font-family: var(--font-display); font-weight:800; font-size:15px; color:#fff; }
.nav.scrolled .nav-phone { color: var(--navy-900); }
.nav-phone .pic { width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,0.12);color:var(--gold) !important;}
.nav-phone .pic svg { width:15px; height:15px; }
.nav-cta .btn { padding: 13px 18px; font-size: 15px; }
.nav.scrolled .nav-phone .pic { background: var(--teal-soft); color: var(--navy-950) !important; }
.burger { display:none; width:46px;height:46px;border-radius:14px;background:rgba(255,255,255,0.12);color:#fff; align-items:center;justify-content:center;}
.burger-lines { width: 28px; height: 22px; display: flex; flex-direction: column; justify-content: space-between; }
.burger-lines span { display: block; width: 100%; height: 3px; border-radius: 999px; background: currentColor; box-shadow: 0 0 0 1px rgba(255,255,255,0.02); }
.burger svg { width:30px; height:30px; display:block; color:currentColor; stroke:currentColor; stroke-width:2.8; }
.burger svg path { stroke:currentColor; }
.nav.scrolled .burger { background: var(--paper-2); color: var(--navy-900); }
@media (max-width: 1080px){
  .nav .wrap { position: relative; min-height: 60px; padding-right: 146px; }
  .nav .brand { max-width: calc(100% - 120px); }
  .navlinks { display:none; }
  .nav-phone span { display:none; }
  .nav-cta { position: absolute; right: 28px; top: 50%; transform: translateY(-50%); display: block; width: 100px; height: 46px; margin-left: 0; z-index: 2; }
  .nav-cta .btn { display:none; }
  .nav-phone { position: absolute; left: 0; top: 50%; transform: translateY(-50%); }
  .nav-phone,
  .nav-phone .pic,
  .burger { flex: 0 0 auto; }
  .burger { display:flex !important; position: absolute; right: 0; top: 50%; transform: translateY(-50%); }
}
@media (max-width: 640px){
  .nav { padding: 14px 0; }
  .nav .wrap { max-width: 100%; min-height: 60px; padding: 0 18px; gap: 12px; position: relative; }
  .nav .brand { min-width: 0; max-width: calc(100vw - 154px); flex: 0 1 auto; }
  .nav .brand img.logo { height: clamp(48px, 12vw, 60px); max-width: min(220px, calc(100vw - 154px)); object-fit: contain; object-position: left center; }
  .nav-cta { position: absolute; right: 18px; top: 50%; transform: translateY(-50%); display: block; width: 100px; height: 46px; margin-left: 0; z-index: 2; }
  .nav-phone,
  .nav-phone .pic,
  .burger { flex: 0 0 auto; }
  .nav-phone { position: absolute; left: 0; top: 50%; transform: translateY(-50%); }
  .burger { display: flex !important; position: absolute; right: 0; top: 50%; transform: translateY(-50%); }
  .nav-phone .pic { width: 44px; height: 44px; }
}
@media (max-width: 420px){
  .nav .wrap { gap: 8px; }
  .nav .brand { max-width: calc(100vw - 144px); }
  .nav .brand img.logo { height: 46px; max-width: calc(100vw - 144px); }
  .nav-cta { width: 94px; height: 42px; }
  .nav-phone .pic,
  .burger { width: 42px; height: 42px; }
  .burger svg { width: 27px; height: 27px; }
}

/* mobile drawer — premium */
.drawer { position: fixed; inset: 0; z-index: 200; pointer-events: none; }
.drawer .scrim { position:absolute; inset:0; background: rgba(6,21,43,0.55); opacity:0; transition: opacity .45s ease; -webkit-backdrop-filter: blur(0px); backdrop-filter: blur(0px); }
.drawer.open .scrim { opacity:1; -webkit-backdrop-filter: blur(7px); backdrop-filter: blur(7px); }
.drawer .panel { position:absolute; top:10px; right:10px; bottom:auto; max-height:calc(100dvh - 20px); width:min(92vw,400px); border-radius:26px; background: linear-gradient(165deg, #16455c 0%, var(--navy-900) 46%, #06202b 100%); transform: translateX(calc(100% + 22px)); transition: transform .55s cubic-bezier(.16,.84,.34,1); padding: 14px 16px calc(14px + env(safe-area-inset-bottom)); display:flex; flex-direction:column; overflow:hidden; box-shadow: -30px 34px 80px -34px rgba(0,0,0,.7); border: 1px solid rgba(255,255,255,.08); }
.drawer.open { pointer-events:auto; }
.drawer.open .panel { transform:none; }
/* decorative glows */
.drawer .panel::before { content:""; position:absolute; top:-90px; right:-70px; width:300px; height:300px; border-radius:50%; background: radial-gradient(circle, rgba(90,154,196,.4), transparent 68%); pointer-events:none; }
.drawer .panel::after { content:""; position:absolute; bottom:-70px; left:-60px; width:260px; height:260px; border-radius:50%; background: radial-gradient(circle, rgba(250,214,76,.14), transparent 70%); pointer-events:none; }

.drawer .dhead { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:4px 6px 12px; margin-bottom:10px; border-bottom:1px solid rgba(255,255,255,0.1); position:relative; z-index:1; }
.drawer .dhead .brand { display:flex; }
.drawer .dhead .logo { height:40px; width:auto; }
.drawer .dclose { width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,0.1);color:#fff;display:grid;place-items:center; flex:none; border:1px solid rgba(255,255,255,.1); transition: background .22s, transform .22s; }
.drawer .dclose:active { transform: rotate(90deg) scale(.92); background:rgba(255,255,255,0.2); }
.drawer .dclose svg { width:20px; height:20px; }

.drawer .dintro { position:relative; z-index:1; padding: 10px 8px 8px; }
.drawer .deyebrow { display:block; font-family:var(--font-display); font-weight:700; font-size:10px; letter-spacing:0.16em; text-transform:uppercase; color: rgba(120,180,214,.95); margin-bottom:5px;
  opacity:0; transform: translateY(8px); transition: opacity .5s ease .12s, transform .5s cubic-bezier(.16,.84,.34,1) .12s; }
.drawer .dtitle { font-family:var(--font-display); font-weight:800; font-size:18px; line-height:1.15; letter-spacing:-0.02em; color:#fff; margin:0;
  opacity:0; transform: translateY(12px); transition: opacity .55s ease .18s, transform .6s cubic-bezier(.16,.84,.34,1) .18s; }
.drawer.open .deyebrow, .drawer.open .dtitle { opacity:1; transform:none; }

.drawer .dlinks { display:flex; flex-direction:column; gap:8px; flex:0 1 auto; min-height:0; max-height:calc(100dvh - 190px); overflow-y:auto; overflow-x:hidden; padding:2px 4px 6px; margin: 0; -webkit-overflow-scrolling:touch; scrollbar-width:none; position:relative; z-index:1; }
.drawer .dlinks::-webkit-scrollbar { display:none; }
.drawer .dlinks a { display:flex; align-items:center; gap:12px; min-height:54px; color:#fff; font-family:var(--font-display); font-weight:700; font-size:13.5px; letter-spacing:-0.01em; padding:8px 13px 8px 9px; border-radius:14px; background: rgba(255,255,255,0.055); border:1px solid rgba(255,255,255,0.1); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); will-change: transform, background, box-shadow;
  opacity:0; transform: translateX(30px);
  transition: opacity .5s ease, transform .55s cubic-bezier(.16,.84,.34,1), background .35s cubic-bezier(.4,0,.2,1), border-color .35s cubic-bezier(.4,0,.2,1), box-shadow .35s cubic-bezier(.4,0,.2,1); }
.drawer.open .dlinks a { opacity:1; transform:none; transition-delay: calc(.22s + var(--i) * .055s), calc(.22s + var(--i) * .055s), 0s, 0s, 0s; }
.drawer .di-ic { width:34px; height:34px; border-radius:10px; flex:none; display:grid; place-items:center; background:#fff; color: var(--teal-deep); box-shadow: 0 6px 16px -8px rgba(0,0,0,.4); transition: background .35s cubic-bezier(.4,0,.2,1), color .35s cubic-bezier(.4,0,.2,1), transform .45s cubic-bezier(.34,1.56,.64,1), box-shadow .35s ease; }
.drawer .di-ic svg { width:17px; height:17px; }
.drawer .di-lbl { flex:1; transition: transform .45s cubic-bezier(.16,.84,.34,1); }
.drawer .di-chev { display:flex; color: rgba(255,255,255,0.4); transition: transform .45s cubic-bezier(.34,1.56,.64,1), color .35s ease; }
.drawer .di-chev svg { width:19px; height:19px; }
.drawer .dlinks a:hover, .drawer .dlinks a:active { background: linear-gradient(100deg, rgba(90,154,196,0.28), rgba(90,154,196,0.1)); border-color: rgba(120,180,214,.55); box-shadow: 0 16px 36px -16px rgba(60,123,166,.7), inset 0 1px 0 rgba(255,255,255,.1); }
.drawer .dlinks a:active { transform: scale(.98); transition-duration: .12s; }
.drawer .dlinks a:hover .di-ic, .drawer .dlinks a:active .di-ic { background: var(--gold); color: var(--navy-950); transform: scale(1.08) rotate(-4deg); box-shadow: 0 10px 22px -8px rgba(250,214,76,.7); }
.drawer .dlinks a:hover .di-lbl { transform: translateX(3px); }
.drawer .dlinks a:hover .di-chev, .drawer .dlinks a:active .di-chev { color: var(--gold); transform: translateX(5px); }

.drawer .dcta { display:flex; flex-direction:column; align-items:stretch; gap:4px; margin-top:10px; padding:12px 6px 2px; border-top:1px solid rgba(255,255,255,0.1); position:relative; z-index:1; }
.drawer .dbook { display:flex; align-items:center; justify-content:center; gap:10px; width:100%; padding:13px 24px; border-radius:999px; background:#fff; color:var(--navy-900); font-family:var(--font-display); font-weight:800; font-size:14.5px; letter-spacing:-0.01em; box-shadow: 0 18px 40px -16px rgba(0,0,0,.55);
  opacity:0; transform: translateY(14px); transition: opacity .5s ease .5s, transform .5s cubic-bezier(.16,.84,.34,1) .5s, box-shadow .3s ease, filter .25s ease; }
.drawer .dbook svg { width:19px; height:19px; transition: transform .35s cubic-bezier(.34,1.56,.64,1); }
.drawer .dbook:hover { filter: brightness(1.02); box-shadow: 0 24px 50px -16px rgba(250,214,76,.5), 0 0 0 2px rgba(250,214,76,.4) inset; transform: translateY(-2px); }
.drawer .dbook:hover svg { transform: translateX(4px); }
.drawer .dbook:active { transform: translateY(0) scale(.985); transition-duration:.12s; }
.drawer.open .dbook { opacity:1; transform:none; }
.drawer .dcall { display:flex; align-items:center; justify-content:center; gap:9px; padding:9px; color:rgba(255,255,255,0.9); font-family:var(--font-display); font-weight:700; font-size:13px; letter-spacing:-0.01em;
  opacity:0; transition: opacity .5s ease .58s, color .25s ease; }
.drawer .dcall svg { width:17px; height:17px; color: var(--gold); }
.drawer .dcall:hover { color:#fff; }
.drawer.open .dcall { opacity:1; }
@media (prefers-reduced-motion: reduce){
  .drawer .panel, .drawer .dlinks a, .drawer .dbook, .drawer .dcall, .drawer .deyebrow, .drawer .dtitle, .drawer .scrim { transition-duration: .15s !important; transition-delay: 0s !important; }
  .drawer .dlinks a, .drawer .deyebrow, .drawer .dtitle { transform:none; }
}
@media (max-width: 480px){
  .drawer .panel { left:8px; right:8px; top:8px; width:auto; max-height:calc(100dvh - 16px); border-radius:24px; }
  .drawer .dhead .logo { height:auto; max-height:40px; max-width:190px; }
  .drawer .dlinks { max-height:calc(100dvh - 188px); }
}
@media (max-height: 620px){
  .drawer .panel { top:8px; padding:10px 12px calc(10px + env(safe-area-inset-bottom)); max-height:calc(100dvh - 16px); }
  .drawer .dhead { padding-bottom:9px; margin-bottom:8px; }
  .drawer .dhead .logo { max-height:34px; max-width:170px; }
  .drawer .dclose { width:38px; height:38px; }
  .drawer .dlinks { gap:6px; max-height:calc(100dvh - 156px); }
  .drawer .dlinks a { min-height:45px; padding:6px 10px 6px 8px; font-size:13px; border-radius:12px; }
  .drawer .di-ic { width:30px; height:30px; border-radius:9px; }
  .drawer .dcta { margin-top:8px; padding-top:10px; }
  .drawer .dbook { padding:11px 18px; font-size:13.5px; }
  .drawer .dcall { padding:7px; font-size:12.5px; }
}

/* ============ HERO ============ */
.hero { position: relative; background: var(--navy-900); color: #fff; overflow: hidden; margin-top: -100px; padding: 140px 0 200px; }
.hero .hero-bg { position:absolute; inset:0; z-index:0; }
.hero .hero-bg img, .hero .hero-bg video { width:100%; height:100%; object-fit:cover; display:block; }
.hero .hero-overlay { position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(to bottom, rgba(11,42,57,0) 64%, var(--navy-900) 100%),
    linear-gradient(95deg, rgba(8,28,38,0.82) 0%, rgba(9,32,43,0.66) 46%, rgba(9,32,43,0.42) 100%); }
.hero .wrap { position: relative; z-index: 2; display: grid; grid-template-columns: 1.08fr 0.92fr; gap: 56px; align-items: center; padding-top: 30px; }
.hero .eyebrow { color: #fff; }
.hero-copy h1 { font-size: clamp(46px, 7vw, 92px); letter-spacing: -0.035em; font-weight: 600; }
.hero-copy h1 .fix { position: relative; display:inline-block; color: var(--navy-950); padding: 0 8px; font-weight: 800; }
.hero-copy h1 .fix .hl { position:absolute; inset: 6% -2% 8% -2%; background: var(--gold); border-radius: 14px; z-index:-1; box-shadow: 0 0 28px 2px rgba(250,214,76,0.55), 0 0 64px 8px rgba(250,214,76,0.32), 0 14px 30px -12px rgba(250,214,76,0.55); }
.hero-copy h1 .tw { display: inline; }
.hero-copy h1 .tw-caret { display: inline-block; width: 0.06em; height: 0.82em; margin-left: 0.04em; background: var(--gold); vertical-align: baseline; transform: translateY(0.08em); animation: tw-blink 1s steps(1) infinite; }
@keyframes tw-blink { 0%, 50% { opacity: 1; } 50.01%, 100% { opacity: 0; } }
.hero-copy .lede { font-size: clamp(17px, 1.6vw, 21px); line-height: 1.55; color: rgba(255,255,255,0.82); max-width: 540px; margin-top: 26px; font-weight: 500; }
.hero-cta { display:flex; align-items:center; gap:16px; margin-top: 36px; flex-wrap: nowrap; }
.hero-trust { display:flex; gap: 26px; margin-top: 40px; flex-wrap: wrap; }
.hero-trust .t { display:flex; flex-direction:column; gap:2px; }
.hero-trust .t b { font-family:var(--font-display); font-weight:800; font-size: 30px; color: var(--teal-bright); letter-spacing:-0.02em; }
.hero-trust .t span { font-size:13.5px; font-weight:600; color: rgba(255,255,255,0.66); }
.hero-trust .div { width:1px; background: rgba(255,255,255,0.14); }

/* hero CTA card (replaces the doctor photo) */
.hero-cta-card { position:relative; z-index:2; background:var(--paper-2); color:var(--ink); border-radius: var(--r-lg); padding: 38px; box-shadow: 0 44px 90px -34px rgba(0,0,0,0.55); }
.hero-cta-card .hc-badge { position:absolute; top:-18px; right:26px; background:var(--gold); color:var(--navy-950); font-family:var(--font-display); font-weight:900; font-size:15.5px; letter-spacing:0.06em; padding:11px 22px; border-radius:999px; box-shadow:0 14px 28px -10px rgba(250,214,76,0.85); }
.hero-cta-card .hc-top { display:flex; flex-direction:column; align-items:center; text-align:center; gap:14px; padding-bottom:22px; border-bottom:1px solid var(--line); margin-bottom:22px; }
.hero-cta-card .hc-ic { width:54px;height:54px;border-radius:16px; background: linear-gradient(135deg,var(--teal),var(--teal-deep)); color:#fff; display:grid;place-items:center; flex:none; }
.hero-cta-card .hc-top b { font-family:var(--font-display); font-weight:800; font-size:30px; color:var(--navy-900); display:block; line-height:1.15; letter-spacing:-0.02em; }
.hero-cta-card .hc-top span { font-size:15px; color:var(--ink-soft); font-weight:700; }
.hero-cta-card ul { list-style:none; display:flex; flex-direction:column; align-items:center; gap:14px; margin-bottom:26px; }
.hero-cta-card li { display:flex; align-items:center; gap:12px; font-size:15px; font-weight:600; color:var(--ink); }
.hero-cta-card li .ck { width:26px;height:26px;border-radius:50%; background:var(--teal-soft); color:var(--teal-deep); display:grid;place-items:center; flex:none; }
.hero-cta-card .hc-btn { width:100%; justify-content:center; }
.hero-cta-card .hc-or { text-align:center; margin-top:16px; font-size:13.5px; color:var(--ink-soft); font-weight:600; }
.hero-cta-card .hc-or a { color:var(--teal-deep); font-weight:800; }

@media (max-width: 960px){
  .hero { margin-top: -96px; padding: 124px 0 120px; }
  .hero .wrap { grid-template-columns: 1fr; gap: 40px; }
  .hero-cta-card { max-width: 460px; }
}

@media (min-width: 641px) and (max-width: 1240px){
  .hero-cta { gap: 12px; }
  .hero-cta .btn-lg { padding: 18px 24px; font-size: 16px; }
  .hero-cta .btn svg { width: 17px; height: 17px; }
}

/* wave divider */
.wave { display:block; width:100%; height: auto; position: relative; z-index:1; margin-top: -1px; }

/* ============ QUICK TRIO ============ */
.trio { position: relative; margin-top: -130px; z-index: 5; }
.trio .grid { display:grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.qcard {
  background:#fff; border-radius: var(--r-lg); padding: 40px 30px; box-shadow: var(--shadow-card);
  border: 1px solid var(--line); transition: transform .25s ease, box-shadow .25s ease;
  position: relative; overflow: hidden; text-align: center;
}
.qcard:hover { transform: translateY(-8px); box-shadow: 0 34px 60px -28px rgba(8,26,52,0.5); }
.qcard .qi { width:66px;height:66px;border-radius:20px; display:grid;place-items:center; margin:0 auto 22px; background: var(--gold); color: var(--navy-950); }
.qcard.c1 .qi, .qcard.c2 .qi, .qcard.c3 .qi { background: var(--gold); color: var(--navy-950); }
.qcard h3 { font-size: 22px; margin-bottom: 10px; color: var(--ink); }
.qcard p { font-size: 15px; line-height:1.55; color: var(--ink-soft); margin-bottom: 18px; }
.qcard .qlink { font-family:var(--font-display); font-weight:700; font-size:15px; color: var(--teal-deep); display:inline-flex; align-items:center; justify-content:center; gap:7px; transition: gap .2s; }
.qcard:hover .qlink { gap: 12px; }
.qcard .deco { display:none; }
.qcard > * { position: relative; z-index:1; }
@media (max-width: 900px){ .trio .grid { grid-template-columns: 1fr; } }

/* ============ SECTION SHELL ============ */
.section { padding: 110px 0; position: relative; }
.section.tight { padding: 80px 0; }
.shead { max-width: 720px; margin: 0 auto 60px; text-align: center; }
.shead.left { margin-left: 0; text-align: left; }
.shead h2 { font-size: clamp(34px, 4.4vw, 56px); margin: 18px 0 0; }
.shead p { font-size: 18px; line-height:1.6; color: var(--ink-soft); margin-top: 18px; }

/* ============ AWARDS ============ */
.awards { background: var(--paper); }
.awards .logo { height: 92px; border-radius: 18px; }
.awards .stats { display:grid; grid-template-columns: repeat(4,1fr); gap: 24px; margin-top: 56px; }
.statc { position:relative; text-align:center; padding: 34px 18px 30px; border-radius: var(--r-md); background:#fff; border:1px solid var(--line); overflow:hidden; }
.statc::before { content:""; position:absolute; top:0; left:50%; transform:translateX(-50%); width:52px; height:5px; border-radius:0 0 5px 5px; background:var(--gold); }
.statc b { font-family:var(--font-display); font-weight:800; font-size: clamp(36px,4vw,52px); color: var(--navy-800); letter-spacing:-0.03em; display:block; }
.statc b em { color: inherit; font-style: normal; }
.statc b em.star { color: inherit; }
.statc span { font-size:14px; font-weight:600; color:var(--ink-soft); margin-top:8px; display:block; }
@media (max-width:860px){ .awards .stats { grid-template-columns: repeat(2,1fr);} }

/* award row + lightbox */
.awrow { margin-top: 44px; }
.awtrack { display:flex; justify-content:center; flex-wrap:wrap; gap: 16px; }
.awbadge { position:relative; width:104px; height:104px; border-radius: 20px; background:#fff; border:2px solid var(--line); padding:10px; cursor:pointer; transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease; flex:none; }
.awbadge img { width:100%; height:100%; object-fit:contain; display:block; }
.awbadge .awyear { position:absolute; bottom:-9px; left:50%; transform:translateX(-50%); background:var(--navy-900); color:#fff; font-family:var(--font-display); font-weight:800; font-size:10.5px; letter-spacing:0.04em; padding:3px 9px; border-radius:999px; opacity:0; transition:opacity .2s; }
.awbadge:hover, .awbadge.on { border-color:var(--gold); transform:translateY(-6px); box-shadow: 0 20px 40px -22px rgba(8,26,52,0.45); }
.awbadge.on { box-shadow: 0 0 0 4px rgba(250,214,76,0.28), 0 20px 40px -22px rgba(8,26,52,0.45); }
.awbadge.on .awyear, .awbadge:hover .awyear { opacity:1; }
@media (min-width: 561px) and (max-width: 980px){ .awtrack { max-width: 520px; margin: 0 auto; } }
.awcaption { text-align:center; margin-top: 26px; min-height: 64px; display:flex; flex-direction:column; align-items:center; gap:4px; animation: awfade .35s ease; }
@keyframes awfade { from { opacity:0; transform: translateY(6px);} to { opacity:1; transform:none;} }
.awcaption b { font-family:var(--font-display); font-weight:800; font-size:18px; color:var(--navy-900); }
.awcaption span { font-size:14.5px; color:var(--ink-soft); font-weight:600; }
.awcaption span em { color:var(--teal-deep); font-style:normal; font-weight:700; }
.awview { margin-top:8px; display:inline-flex; align-items:center; gap:6px; font-family:var(--font-display); font-weight:700; font-size:13.5px; color:var(--navy-900); background:var(--gold); padding:8px 16px; border-radius:999px; cursor:pointer; transition: transform .18s, background .2s; }
.awview:hover { transform:translateY(-2px); background:var(--gold-deep); }
.awlb { position:fixed; inset:0; z-index:1000; background:rgba(6,21,43,0.86); backdrop-filter:blur(6px); display:flex; align-items:center; justify-content:center; gap:14px; padding:24px; animation: awfade .25s ease; }
.awlb-card { background:#fff; border-radius:24px; padding:20px; max-width:min(90vw,460px); width:100%; box-shadow:0 40px 90px -30px rgba(0,0,0,0.7); }
.awlb-card img { width:100%; height:auto; max-height:62vh; object-fit:contain; display:block; border-radius:12px; }
.awlb-meta { text-align:center; margin-top:16px; display:flex; flex-direction:column; gap:3px; }
.awlb-meta b { font-family:var(--font-display); font-weight:800; font-size:19px; color:var(--navy-900); }
.awlb-meta span { font-size:15px; color:var(--ink); font-weight:600; }
.awlb-meta em { font-size:13px; color:var(--ink-soft); font-style:normal; font-weight:600; }
.awlb-close { position:absolute; top:22px; right:22px; width:48px; height:48px; border-radius:50%; background:rgba(255,255,255,0.14); color:#fff; display:grid; place-items:center; cursor:pointer; transition:background .2s; }
.awlb-close:hover { background:rgba(255,255,255,0.26); }
.awlb-nav { width:54px; height:54px; border-radius:50%; background:rgba(255,255,255,0.14); color:#fff; display:grid; place-items:center; cursor:pointer; flex:none; transition:background .2s, transform .2s; }
.awlb-nav:hover { background:var(--gold); color:var(--navy-950); transform:scale(1.06); }
/* see-more toggle: desktop hides it, all awards visible */
.awmore { display:none; }
@media (max-width: 560px){
  .awtrack { flex-wrap:wrap; overflow:visible; justify-content:center; gap:12px; margin:0; padding:0; scroll-snap-type:none; }
  .awbadge { scroll-snap-align:none; width:calc((100% - 24px) / 3); height:auto; aspect-ratio:1; }
  .awtrack:not(.all) .awbadge:nth-child(n+7) { display:none; }
  .awmore { display:flex; width:fit-content; align-items:center; gap:6px; margin:18px auto 0; padding:11px 20px; border-radius:999px; border:1.5px solid var(--line); background:#fff; color:var(--navy-900); font:inherit; font-weight:700; font-size:14px; letter-spacing:.01em; cursor:pointer; box-shadow:0 6px 18px -12px rgba(8,26,52,.4); }
  .awmore:active { transform:scale(.97); }
  .awlb-nav { position:absolute; bottom:28px; }
  .awlb-nav.prev { left:28px; } .awlb-nav.next { right:28px; }
}

/* ============ CONDITIONS ============ */
.conditions { position:relative; overflow:hidden; background: var(--navy-900); color:#fff; }
.conditions .cond-bg { position:absolute; inset:0; z-index:0; }
.conditions .cond-bg img { width:100%; height:100%; object-fit:cover; display:block; }
.conditions .cond-overlay { position:absolute; inset:0; z-index:1; background: linear-gradient(rgba(9,32,43,0.67), rgba(9,32,43,0.57)); }
.conditions .cond-curve { position:absolute; left:0; width:100%; height:62px; z-index:2; display:block; pointer-events:none; }
.conditions .cond-curve path { fill: var(--paper); }
.conditions .cond-curve.top { top:-1px; }
.conditions .cond-curve.bottom { bottom:-1px; transform: rotate(180deg); }
.conditions .wrap { position:relative; z-index:3; }
.conditions .shead .eyebrow { color: var(--gold); }
.conditions .shead h2 { color:#fff; }
.conditions .shead p { color: rgba(255,255,255,0.78); }
.cgrid { display:grid; grid-template-columns: repeat(4,1fr); gap: 20px; position:relative; z-index:2; }
.ccard {
  border-radius: var(--r-lg); padding: 34px 24px; position:relative; overflow:hidden;
  background: rgba(8,28,38,0.58); backdrop-filter: blur(6px); border:1px solid rgba(255,255,255,0.12);
  transition: transform .25s ease, background .25s ease, border-color .25s;
  cursor: pointer; min-height: 252px; display:flex; flex-direction:column; align-items:center; text-align:center;
}
.ccard:hover { transform: translateY(-8px); border-color: var(--gold); background: rgba(8,28,38,0.74); }
.ccard .ci { width:60px;height:60px;border-radius:18px; background:rgba(255,255,255,0.10); color:var(--gold); display:grid;place-items:center; margin:0 auto 18px; }
.ccard h3 { font-size: 21px; margin: 0 0 10px; color:#fff; }
.ccard p { font-size:14px; line-height:1.55; color: rgba(255,255,255,0.72); }
.ccard .more { margin-top:auto; padding-top:18px; font-family:var(--font-display); font-weight:700; font-size:14px; color: var(--gold); display:inline-flex; gap:7px; align-items:center; justify-content:center; transition: gap .2s; }
.ccard:hover .more { gap:12px; }
/* CTA card */
.ccard.cta { background: var(--gold); border-color: transparent; }
.ccard.cta:hover { background: var(--gold-deep); }
.ccard.cta .ci { background: rgba(6,21,43,0.14); color: var(--navy-950); }
.ccard.cta h3 { color: var(--navy-950); }
.ccard.cta p { color: rgba(6,21,43,0.78); }
.ccard.cta .more { color: var(--navy-950); }
@media (max-width: 1100px){ .cgrid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 560px){ .cgrid { grid-template-columns: repeat(2, 1fr); gap: 14px; } .ccard { padding: 22px 14px; min-height: 0; } .ccard .ci { width:50px; height:50px; border-radius:14px; margin-bottom:14px; } .ccard h3 { font-size: 17px; } .ccard p { font-size: 13px; } .ccard .more { font-size: 13px; padding-top: 14px; } }

/* ============ INJURY / URGENT CARE ============ */
.injury { background: var(--paper); }
.injury-card {
  position: relative; overflow: hidden;
  background: linear-gradient(140deg, var(--navy-900) 0%, var(--teal-deep) 100%);
  color: #fff; border-radius: 48px; padding: 72px clamp(28px, 6vw, 96px);
  text-align: center; box-shadow: var(--shadow-soft);
}
.injury-card .eyebrow { color: var(--gold); justify-content: center; }
.injury-card h2 { color: #fff; font-size: clamp(30px, 3.6vw, 46px); margin-top: 16px; }
.injury-card > p { color: rgba(255,255,255,0.84); font-size: 17px; line-height: 1.7; max-width: 760px; margin: 18px auto 0; }
.injury-card .injury-emph { color: #fff; font-family: var(--font-display); font-weight: 800; font-size: clamp(18px, 2vw, 22px); margin-top: 26px; letter-spacing: -0.01em; }

/* collapsible body (accordion on mobile, always-open on desktop) */
.injury-more { max-width: 760px; margin: 0 auto; }
.injury-more p { color: rgba(255,255,255,0.84); font-size: 17px; line-height: 1.7; margin-top: 18px; }
.injury-more p:first-of-type { margin-top: 22px; }
.injury-more summary { list-style: none; display: none; }
.injury-more summary::-webkit-details-marker { display: none; }
@media (min-width: 901px){ .injury-more > p { display: block !important; } }
@media (max-width: 900px){
  .injury-more summary { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; margin-top: 22px; color: var(--gold); font-family: var(--font-display); font-weight: 800; font-size: 15px; letter-spacing: 0.02em; }
  .injury-more summary svg { transition: transform .25s ease; }
  .injury-more[open] summary svg { transform: rotate(180deg); }
  .injury-more summary .im-hide { display: none; }
  .injury-more[open] summary .im-show { display: none; }
  .injury-more[open] summary .im-hide { display: inline; }
  .injury-more p { font-size: 15.5px; }
}
.injury-cta { margin-top: 42px; padding-top: 38px; border-top: 1px solid rgba(255,255,255,0.16); }
.injury-cta h3 { color: #fff; font-size: clamp(24px, 2.6vw, 32px); }
.injury-sub { color: rgba(255,255,255,0.82); font-size: 16px; margin-top: 10px; }
.injury-btns { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; margin-top: 28px; }

/* ============ PATIENT ACCESS ============ */
.access { background: #dbe5ef; }
.access-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; align-items: stretch; }
.access-card { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 32px 30px; box-shadow: var(--shadow-card); display: flex; flex-direction: column; min-height: 100%; }
.access-top { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 22px; }
.access-ic { width: 56px; height: 56px; border-radius: 16px; background: var(--gold); color: var(--navy-950); display: grid; place-items: center; flex: none; }
.access-ic svg { width: 27px; height: 27px; }
.access-eyebrow { font-family: var(--font-display); font-weight: 800; font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--teal-deep); background: var(--teal-soft); border-radius: 999px; padding: 7px 12px; text-align: center; }
.access-card h3 { font-size: clamp(22px, 2.1vw, 30px); color: var(--navy-900); letter-spacing: -0.02em; line-height: 1.12; }
.access-card p { color: var(--ink-soft); font-size: 15.5px; line-height: 1.62; margin-top: 14px; }
.access-card ul { list-style: none; display: grid; gap: 11px; margin-top: 22px; }
.access-card li { display: flex; align-items: flex-start; gap: 10px; font-weight: 700; color: var(--ink); font-size: 14.5px; line-height: 1.35; }
.access-card li span { width: 22px; height: 22px; border-radius: 50%; background: var(--teal-soft); color: var(--teal-deep); display: grid; place-items: center; flex: none; margin-top: -1px; }
.access-card li svg { width: 13px; height: 13px; }
.access-link { margin-top: auto; padding-top: 24px; display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-display); font-weight: 800; color: var(--teal-deep); }
.access-link svg { width: 16px; height: 16px; transition: transform .2s ease; }
.access-link:hover svg { transform: translateX(4px); }
@media (max-width: 980px){ .access-grid { grid-template-columns: 1fr; max-width: 620px; margin: 0 auto; } }

/* ============ WHY / NO-STITCH ============ */
.why { background: #ffffff; }
.why .row { display:grid; grid-template-columns: 0.92fr 1.08fr; gap: 64px; align-items:center; }
.why .vis { position: relative; }
.why .vis .main { aspect-ratio: 4/3.45; border-radius: var(--r-xl); overflow:hidden; box-shadow: var(--shadow-soft); }
.why .vis .main .photo { object-position: center top; }
.why .vis .float {
  position:absolute; bottom: -28px; right: -22px; background:#fff; border-radius: var(--r-md);
  padding: 22px 24px; box-shadow: var(--shadow-card); display:flex; gap:16px; align-items:center; max-width: 280px;
}
.why .vis .float .fi { width:54px;height:54px;border-radius:16px;background:var(--teal-soft);color:var(--teal-deep);display:grid;place-items:center; flex:none; }
.why .vis .float b { font-family:var(--font-display); font-size:16px; display:block; color:var(--ink); }
.why .vis .float span { font-size:13px; color:var(--ink-soft); font-weight:600; }
.why .feats { display:flex; flex-direction:column; gap: 18px; margin-top: 32px; }
.feati { display:flex; gap:18px; align-items:flex-start; padding: 20px; border-radius: var(--r-md); background:#fff; border:1px solid var(--line); transition: transform .2s, box-shadow .2s; }
.feati:hover { transform: translateX(6px); box-shadow: var(--shadow-card); }
.feati .fi { width:52px;height:52px;border-radius:14px; flex:none; display:grid;place-items:center; color:var(--navy-950); background: var(--gold); }
.feati h4 { font-size:19px; margin-bottom:6px; color:var(--ink); }
.feati p { font-size:14.5px; line-height:1.5; color:var(--ink-soft); }
@media (max-width: 900px){ .why .row { grid-template-columns: 1fr; gap: 60px; } .why .vis { max-width: 460px; } }

/* ============ TESTIMONIALS ============ */
/* ============ REVIEWS ============ */
.reviews { background: #dbe5ef; }
.reviews .shead { max-width: none; }
.reviews .shead h2 { white-space: nowrap; }
@media (max-width: 620px){ .reviews .shead h2 { white-space: normal; } }
.rgrid { display:grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.rcard { position:relative; background:#fff; border:1px solid var(--line); border-radius: var(--r-lg); padding: 34px 30px; box-shadow: var(--shadow-card); display:flex; flex-direction:column; gap:16px; transition: transform .25s, box-shadow .25s; overflow:hidden; }
.rcard:hover { transform: translateY(-6px); box-shadow: 0 30px 56px -30px rgba(8,26,52,0.4); }
.rcard .rquote-mark { position:absolute; top:24px; right:26px; width:46px; height:46px; border-radius:50%; background:var(--gold); color:var(--navy-950); display:grid; place-items:center; pointer-events:none; }
.rcard .rquote-mark svg { width:24px; height:24px; }
.rcard .rstars { display:flex; gap:4px; color: var(--gold); position:relative; z-index:1; }
.rcard .rstars svg { width:20px; height:20px; }
.rcard .rquote { font-size:16px; line-height:1.62; color: var(--ink); font-weight:500; flex:1; position:relative; z-index:1; }
.rcard .rfoot { display:flex; align-items:center; gap:14px; padding-top:18px; border-top:1px solid var(--line); }
.rcard .rav { width:52px; height:52px; border-radius:50%; overflow:hidden; flex:none; position:relative; border:2px solid var(--gold); }
.rcard .rwho b { font-family:var(--font-display); font-weight:800; font-size:16px; color:var(--navy-900); display:block; }
.rcard .rwho span { font-size:13px; color:var(--ink-soft); font-weight:600; }
.rmore { text-align:center; margin-top: 46px; }
@media (max-width: 980px){ .rgrid { grid-template-columns: 1fr; max-width: 540px; margin:0 auto; } }
@media (max-width: 900px){ .rgrid .rcard:nth-child(3) { display: none; } }

/* ============ APPOINTMENT / FORM ============ */
.appt { background: var(--paper); position:relative; overflow:hidden; }
.appt-grid { display:grid; grid-template-columns: 0.82fr 1fr; gap: 64px; align-items:center; }
.appt-visual { position:relative; }
.appt-visual .av-blob { position:absolute; inset: 7% -9% -9% 7%; background: var(--gold); border-radius: 54% 46% 57% 43% / 46% 55% 45% 54%; z-index:0; }
.appt-visual .av-img { position:relative; z-index:1; aspect-ratio: 4/4.2; border-radius: 47% 53% 44% 56% / 55% 48% 52% 45%; overflow:hidden; box-shadow: var(--shadow-soft); }
.appt-visual .av-img .photo { object-position: 50% 35%; }
.appt-visual .av-chip { position:absolute; z-index:2; background:#fff; border-radius: 16px; padding: 12px 16px; display:flex; align-items:center; gap:11px; box-shadow: var(--shadow-card); }
.appt-visual .av-chip .ii { width:40px;height:40px;border-radius:11px; background:var(--gold); color:var(--navy-950); display:grid;place-items:center; flex:none; }
.appt-visual .av-chip .ii svg { width:20px;height:20px; }
.appt-visual .av-chip b { font-family:var(--font-display); font-weight:800; font-size:15px; color:var(--navy-900); display:block; line-height:1.2; }
.appt-visual .av-chip span { font-size:12px; color:var(--ink-soft); font-weight:600; }
.appt-visual .av-chip.clock { top: 9%; left: -26px; }
.appt-visual .av-chip.phone { bottom: 11%; right: -22px; }
.appt-panel h2 { font-size: clamp(30px,3.4vw,48px); color: var(--navy-950); margin-top:16px; letter-spacing:-0.02em; }
.appt-panel > p { color: var(--ink-soft); font-size:17px; line-height:1.55; margin: 14px 0 28px; max-width: 470px; }
.appt-panel .fgrid { grid-template-columns: 1fr 1fr; }
.appt-submit { width:100%; justify-content:center; margin-top: 6px; }
.appt-submit[disabled] { cursor: wait; opacity: .72; transform: none; }
.fnote2 { text-align:center; font-size:14px; color:var(--ink-soft); font-weight:600; margin-top:16px; }
.fnote2 a { color: var(--teal-deep); font-weight:800; }
.form-error { margin: 0 0 12px; border: 1px solid rgba(195, 86, 72, .28); border-radius: 14px; background: #fff5f3; color: var(--coral); padding: 12px 14px; font-size: 13px; font-weight: 800; line-height: 1.4; }
.lead-hp { position:absolute; left:-10000px; top:auto; width:1px; height:1px; overflow:hidden; opacity:0; }
.perks { display:flex; flex-wrap:wrap; gap: 16px 22px; margin-top: 28px; padding-top: 26px; border-top:1px solid var(--line); }
.perk { display:flex; align-items:center; gap:9px; font-size:14px; font-weight:700; color: var(--navy-900); }
.perk .pc { width:24px;height:24px;border-radius:50%; background:var(--gold); color:var(--navy-950); display:grid;place-items:center; flex:none; }
.perk .pc svg { width:14px;height:14px; }
@media (max-width: 900px){
  .appt-grid { grid-template-columns:1fr; gap:54px; }
  .appt-visual { max-width: 400px; margin:0 auto; display: flex; flex-direction: column; align-items: center; gap: 14px; }
  .appt-visual .av-img { width: 100%; }
  .appt-visual .av-chip { position: static; top: auto; bottom: auto; left: auto; right: auto; width: 100%; max-width: 320px; justify-content: center; }
  /* show ONE decorative chip floating top-right of the heading for character */
  .appt-grid { position: relative; }
  .appt-visual { display: block; position: absolute; top: -52px; right: 0; width: auto; max-width: none; margin: 0; gap: 0; z-index: 5; pointer-events: none; }
  .appt-visual .av-img, .appt-visual .av-blob, .appt-visual .av-chip.phone { display: none; }
  .appt-visual .av-chip.clock { position: static; width: auto; max-width: none; transform: rotate(3deg) scale(0.82); transform-origin: top right; box-shadow: var(--shadow-card); }
  .appt-panel { position: relative; }
  .appt-panel h2 { max-width: none; text-align: center; }
  .appt-panel > p { margin-left: auto; margin-right: auto; text-align: center; }
  .appt-visual .av-chip b { white-space: nowrap; }
}

.fcard { background:#fff; border-radius: var(--r-xl); padding: 44px; box-shadow: var(--shadow-soft); border:1px solid var(--line); }
.fcard h3 { font-size: 26px; color:var(--ink); }
.fcard .sub { color: var(--ink-soft); font-size:15px; margin-top:8px; margin-bottom: 26px; }
.fgrid { display:grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.field { display:flex; flex-direction:column; gap:8px; }
.field.full { grid-column: 1 / -1; }
.field label { font-family:var(--font-display); font-weight:700; font-size:13.5px; color: var(--ink); }
.field input, .field select, .field textarea {
  font-family: var(--font-body); font-size:15px; font-weight:500; color: var(--ink);
  padding: 15px 16px; border-radius: 14px; border:1.5px solid var(--line); background: var(--paper);
  transition: border-color .2s, box-shadow .2s, background .2s; width:100%; resize: vertical;
}
.field input:focus, .field select:focus, .field textarea:focus { outline:none; border-color: var(--teal); background:#fff; box-shadow: 0 0 0 4px rgba(60,123,166,0.15); }
.field.err input, .field.err select, .field.err textarea { border-color: var(--coral); background: #fff5f4; }
.field .msg { font-size:12.5px; color: var(--coral); font-weight:600; min-height: 0; }
.fsubmit { margin-top: 26px; display:flex; align-items:center; gap: 18px; flex-wrap:wrap; }
.fnote { font-size:13px; color:var(--ink-soft); font-weight:600; }
.fsuccess { background: var(--teal-soft); border:1.5px solid var(--teal); border-radius: var(--r-md); padding: 30px; text-align:center; display:flex; flex-direction:column; align-items:center; gap:10px; }
.fsuccess .ok { width:64px;height:64px;border-radius:50%; background:var(--teal); color:#fff; display:grid;place-items:center; }
.fsuccess h4 { font-size:24px; color:var(--navy-900); }
.fsuccess p { color: var(--navy-700); font-weight:600; }
@media (max-width: 900px){ .appt .row { grid-template-columns: 1fr; } .fgrid { grid-template-columns: 1fr; } .appt .info, .fcard { padding: 34px; } }

/* ============ LOCATIONS ============ */
.locs { background:#fff; }
.lgrid { display:grid; grid-template-columns: repeat(3,1fr); gap: 22px; }
.loc { border-radius: var(--r-lg); padding: 30px; border:1px solid var(--line); background: var(--paper); transition: transform .22s, box-shadow .22s, background .22s; position:relative; overflow:hidden; text-align:center; }
.loc:hover { transform: translateY(-6px); box-shadow: var(--shadow-card); background:#fff; }
.loc .pin { width:48px;height:48px;border-radius:14px; background: var(--gold); color: var(--navy-950); display:grid;place-items:center; margin:0 auto 18px; }
.loc .loc-ic { width:48px; height:48px; border-radius:14px; background: var(--gold); color: var(--navy-950); display:grid; place-items:center; margin:0 auto 18px; }
.loc .loc-ic svg { width:24px; height:24px; }
.loc h4 { font-size:20px; color:var(--ink); margin-bottom:10px; }
.loc address { font-style: normal; color: var(--ink-soft); font-size:14.5px; line-height:1.55; font-weight:500; }
.loc .lp { margin-top:16px; display:inline-flex; align-items:center; justify-content:center; gap:8px; font-family:var(--font-display); font-weight:700; color: var(--teal-deep); font-size:15px; }
.loc.tag::after { content:"Flagship"; position:absolute; top:22px; right:22px; font-size:11px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--teal-deep); background:var(--teal-soft); padding:5px 11px; border-radius:999px; }
@media (max-width: 900px){ .lgrid { grid-template-columns: repeat(2, 1fr); gap: 16px; } .loc { padding: 22px 16px; } }

/* ============ CTA BAND ============ */
.ctaband { position:relative; overflow:hidden; background: var(--navy-900); color:#fff; }
.ctaband .cta-bg { position:absolute; inset:0; z-index:0; }
.ctaband .cta-bg img { width:100%; height:100%; object-fit:cover; display:block; filter: invert(1) brightness(0.98) contrast(1.08); opacity:0.6; }
.ctaband .cta-overlay { position:absolute; inset:0; z-index:1; background: linear-gradient(rgba(9,32,43,0.62), rgba(6,21,43,0.7)); }
.ctaband .cta-curve { position:absolute; left:0; width:100%; height:62px; z-index:2; display:block; pointer-events:none; }
.ctaband .cta-curve path { fill:#fff; }
.ctaband .cta-curve.top { top:-1px; }
.ctaband .wrap { position:relative; z-index:3; }
.cta-inner { max-width: 780px; margin: 0 auto; text-align:center; padding: 26px 0; }
.cta-inner h2 { color:#fff; font-size: clamp(34px,4.6vw,58px); letter-spacing:-0.02em; }
.cta-inner h2 .yh { color: var(--gold); }
.cta-inner p { color: rgba(255,255,255,0.86); font-size:18px; margin-top:16px; }
.cbtns { display:flex; gap:16px; justify-content:center; margin-top:34px; flex-wrap:wrap; }

/* ============ FOOTER ============ */
.footer { background: var(--navy-950); color: rgba(255,255,255,0.7); padding: 80px 0 30px; }
.fsocial { display:flex; justify-content:space-between; gap:40px; flex-wrap:wrap; padding-bottom: 44px; margin-bottom: 50px; border-bottom:1px solid rgba(255,255,255,0.1); }
.fs-group h5 { font-family:var(--font-display); font-weight:800; font-size:13px; color:rgba(255,255,255,0.55); letter-spacing:0.14em; text-transform:uppercase; margin-bottom:18px; }
.revrow { display:flex; gap:12px; flex-wrap:wrap; }
.revtile { width:54px; height:54px; border-radius:15px; display:grid; place-items:center; background:transparent; transition: transform .2s ease, opacity .2s ease; }
.revtile:hover { transform: translateY(-4px); opacity: 0.85; }
.revwm { font-family:var(--font-display); font-weight:800; font-size:18px; letter-spacing:-0.01em; line-height:1; white-space:nowrap; color:#fff; }
.revtile:has(.revwm) { width:auto; min-width:54px; padding:0 12px; overflow:visible; }
.socrow { display:flex; gap:12px; }
.soctile { width:48px; height:48px; border-radius:50%; display:grid; place-items:center; transition: transform .2s ease, filter .2s ease; }
.soctile:hover { transform: translateY(-4px); filter: brightness(1.1); }
@media (max-width: 600px){ .fsocial { flex-direction:column; gap:30px; } }
.footer .top { display:grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 40px; padding-bottom: 50px; border-bottom:1px solid rgba(255,255,255,0.1); }
.footer .fbrand p { margin-top: 20px; font-size:14.5px; line-height:1.6; max-width: 320px; }
.footer h5 { font-family:var(--font-display); font-weight:800; font-size:15px; color:#fff; letter-spacing:0.04em; text-transform:uppercase; margin-bottom: 20px; }
.footer ul { list-style:none; display:flex; flex-direction:column; gap:12px; }
.footer ul a { font-size:14.5px; transition: color .2s; }
.footer ul a:hover { color: var(--teal-bright); }
.footer .socials { display:flex; gap:12px; margin-top:22px; }
.footer .socials a { width:42px;height:42px;border-radius:12px; background: rgba(255,255,255,0.08); display:grid;place-items:center; color:#fff; transition: all .2s; }
.footer .socials a:hover { background: var(--teal); color:#fff; transform:translateY(-3px); }
.footer .bottom { display:grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items:center; padding-top:26px; font-size:13px; gap:16px; }
.footer .bottom > span:first-child { justify-self:start; }
.footer .bottom > span:last-child { justify-self:end; text-align:right; }
.footer-credit { justify-self:center; color:rgba(255,255,255,0.74); white-space:nowrap; }
.footer-credit a { color:#fff; font-weight:800; border-bottom:1px solid rgba(250,214,76,0.7); transition: color .2s ease, border-color .2s ease; }
.footer-credit a:hover { color:var(--gold); border-color:var(--gold); }

/* footer accordion (collapsible on mobile, always-open columns on desktop) */
.facc summary { list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.facc summary::-webkit-details-marker { display:none; }
.facc summary h5 { margin-bottom:0; }
.facc-ic { display:none; color:rgba(255,255,255,0.6); transition: transform .25s ease; }
.facc[open] .facc-ic { transform: rotate(180deg); }
.facc-body { margin-top:20px; }
.facc-viewall { display:inline-flex; align-items:center; gap:7px; color:var(--gold) !important; font-weight:800; margin-top:4px; }
@media (min-width: 901px){
  .facc .facc-body { display:flex !important; }
  .facc summary { pointer-events:none; }
}
@media (max-width: 900px){
  .footer .top { grid-template-columns: 1fr; gap:0; text-align:center; padding-bottom: 30px; }
  .footer .fbrand { text-align:center; padding-bottom: 8px; }
  .footer .fbrand .brand { justify-content:center; }
  .footer .fbrand p { margin-left:auto; margin-right:auto; }
  .facc { border-top:1px solid rgba(255,255,255,0.1); }
  .facc summary { justify-content:center; gap:10px; padding:20px 0; }
  .facc-ic { display:inline-flex; }
  .facc-body { margin-top:0; padding-bottom:22px; align-items:center; }
  .fsocial { align-items:center; text-align:center; }
  .socrow { justify-content:center; gap:10px; }
  .revrow { flex-wrap:wrap; justify-content:center; gap:7px; max-width:100%; margin:0 auto; }
  .revtile { width:42px; height:42px; border-radius:11px; flex:none; }
  .revtile svg { width:19px; height:19px; }
  .revwm { font-size:12px; }
  .revtile:has(.revwm) { width:auto; min-width:42px; padding:0 9px; overflow:visible; }
  .footer .bottom { grid-template-columns:1fr; justify-items:center; text-align:center; gap:10px; }
  .footer .bottom > span:first-child,
  .footer .bottom > span:last-child,
  .footer-credit { justify-self:center; text-align:center; }
}

/* ============================================================
   MOBILE OPTIMIZATION (phones ≤ 640px / ≤ 460px)
   ============================================================ */
@media (max-width: 640px){
  .wrap { padding: 0 18px; }

  /* tighter vertical rhythm */
  .section { padding: 64px 0; }
  .section.tight { padding: 48px 0; }
  .shead { margin-bottom: 38px; }
  .shead p { font-size: 16px; margin-top: 14px; }

  /* buttons: comfortable touch size, not oversized */
  .btn-lg { padding: 16px 26px; font-size: 16px; }

  /* HERO */
  .hero { padding: 104px 0 92px; }
  .hero .wrap { gap: 34px; }
  .hero-copy { text-align: center; }
  .hero-copy .lede { font-size: 16.5px; margin: 20px auto 0; }
  .hero-cta { width: 100%; gap: 12px; margin-top: 28px; flex-wrap: wrap; justify-content: center; }
  .hero-cta .btn { width: 100%; justify-content: center; }
  .hero-cta-card { padding: 26px 22px; max-width: none; }
  .hero-cta-card .hc-badge { font-size: 13.5px; padding: 9px 17px; right: 18px; }
  .hero-cta-card .hc-top b { font-size: 26px; }

  /* TRIO — less overlap with hero on small screens */
  .trio { margin-top: -78px; }
  .qcard { padding: 32px 24px; }

  /* AWARDS */
  .awards .stats { gap: 16px; margin-top: 40px; }
  .statc { padding: 26px 12px 22px; }

  /* WHY / NO-STITCH — pull floating badge inside the frame */
  .why .row { gap: 48px; }
  .why .vis { max-width: none; }
  .why .vis .float { right: 0; bottom: -22px; padding: 16px 18px; max-width: 250px; }
  .feats { margin-top: 26px; gap: 12px; }
  .why .shead.left { text-align: center; }
  .why .shead.left p { margin-left: auto; margin-right: auto; }
  .feati { padding: 22px 18px; gap: 12px; flex-direction: column; align-items: center; text-align: center; }
  .feati .fi { width: 44px; height: 44px; border-radius: 12px; }
  .feati .fi svg { width: 22px; height: 22px; }
  .feati h4 { font-size: 16px; margin-bottom: 4px; }
  .feati p { font-size: 13px; line-height: 1.45; }

  /* REVIEWS */
  .rcard { padding: 28px 24px; }

  /* APPOINTMENT — chips already flow below the photo via the 900px rule */
  .appt-visual { max-width: 340px; }
  .appt-visual .av-chip { padding: 12px 16px; }
  .fcard { padding: 28px 22px; }
  .appt-panel h2 { font-size: clamp(28px, 8vw, 38px); }

  /* CTA BAND — stack buttons full width */
  .cbtns { width: 100%; gap: 12px; }
  .cbtns .btn { width: 100%; justify-content: center; }
  .cta-inner p { font-size: 16px; }

  /* INJURY */
  .injury-card { border-radius: 32px; padding: 48px 22px; }
  .injury-card > p { font-size: 15.5px; }
  .injury-btns { width: 100%; gap: 12px; }
  .injury-btns .btn { width: 100%; justify-content: center; }

  /* FOOTER */
  .footer { padding: 56px 0 26px; }
  .footer .bottom { gap: 10px; text-align: center; }
  .footer-credit { white-space:normal; }
}

/* ============ NAV "MORE" DROPDOWN ============ */
.navmore { position: relative; display: flex; align-items: center; }
.navmore-btn { display: inline-flex; align-items: center; gap: 5px; font-family: inherit; font-weight: 700; font-size: 14px; color: rgba(255,255,255,0.86); background: none; padding: 0; transition: color .2s; }
.navmore-btn svg { width: 14px; height: 14px; transition: transform .4s cubic-bezier(.16,1,.3,1); }
.navmore:hover .navmore-btn, .navmore:focus-within .navmore-btn { color: var(--teal-bright); }
.navmore:hover .navmore-btn svg, .navmore:focus-within .navmore-btn svg { transform: rotate(180deg); }
.nav.scrolled .navmore-btn { color: var(--ink-soft); }
.nav.scrolled .navmore:hover .navmore-btn, .nav.scrolled .navmore:focus-within .navmore-btn { color: var(--teal-deep); }
.navmore-menu { position: absolute; top: 100%; left: 50%; margin-top: 9px; background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 24px 50px -20px rgba(8,26,52,0.4); padding: 0; min-width: 170px; display: flex; flex-direction: column; gap: 0; opacity: 0; visibility: hidden; transform-origin: top center; transform: translate(-50%, -10px) scale(.97); transition: opacity .3s ease, transform .44s cubic-bezier(.16,1,.3,1), visibility .44s; will-change: transform, opacity; z-index: 60; }
.navmore:hover .navmore-menu, .navmore:focus-within .navmore-menu { opacity: 1; visibility: visible; transform: translate(-50%, 0) scale(1); transition-delay: .05s; }
/* invisible hover bridge so the cursor can cross the gap without closing */
.navmore::after { content: ""; position: absolute; top: 100%; left: 0; right: 0; height: 14px; }
.navmore-menu a { position: relative; display: flex; align-items: center; justify-content: flex-start; gap: 11px; color: var(--ink); font-family: var(--font-display); font-weight: 600; font-size: 13.5px; letter-spacing: -0.01em; padding: 9px 14px; border-radius: 0; white-space: nowrap; transition: background .26s ease, color .22s ease; }
.navmore-menu a + a { border-top: 1px solid var(--line); border-radius: 0; }
.navmore-menu a:first-child { border-top-left-radius: 11px; border-top-right-radius: 11px; }
.navmore-menu a:last-child { border-bottom-left-radius: 11px; border-bottom-right-radius: 11px; }
.navmore-menu a::after { display: none; }
.navmore-menu a::before { display: none; }
.navmore-menu a:hover::before { display: none; }
.navmore-ic { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; flex: none; border-radius: 8px; background: var(--teal-soft); color: var(--teal-deep); transition: background .26s ease, color .26s ease, transform .32s cubic-bezier(.16,1,.3,1); }
.navmore-ic svg { width: 16px; height: 16px; }
.navmore-menu a:hover .navmore-ic { background: var(--gold); color: var(--navy-900); transform: scale(1.08); }
.navmore-lbl { transition: transform .3s cubic-bezier(.16,1,.3,1); }
.navmore-menu a:hover .navmore-lbl { transform: translateX(3px); }
.navloc-row .navmore-ic { display: none; }
.navmore-menu a:hover { background: linear-gradient(180deg, #faf4e7 0%, #f4ecd9 100%); color: var(--navy-900); }

/* ============ CONDITION ARTICLE PAGE ============ */
.cpage-head { position: relative; background: #0b2a39; background: var(--navy-900); color: #fff; margin-top: -100px; padding: 168px 0 84px; overflow: hidden; }
.cpage-head::before { content: ""; position: absolute; inset: 0; background: radial-gradient(120% 130% at 85% -10%, rgba(58,123,166,0.4) 0%, rgba(11,42,57,0) 55%); pointer-events: none; }
.cpage-head .wrap { position: relative; z-index: 1; text-align: center; }
.cpage-head .crumbs { display: flex; flex-wrap: wrap; gap: 9px; align-items: center; font-size: 13.5px; font-weight: 600; color: rgba(255,255,255,0.6); margin-bottom: 24px; }
.cpage-head .crumbs a { color: rgba(255,255,255,0.62); transition: color .2s; }
.cpage-head .crumbs a:hover { color: var(--teal-bright); }
.cpage-head .crumbs .cur { color: var(--gold); }
.cpage-head .crumbs span { opacity: 0.4; }
.cpage-head h1 { font-family: var(--font-display); font-weight: 700; font-size: clamp(40px, 6vw, 76px); letter-spacing: -0.03em; line-height: 1.03; }
.cpage-head h1 .ghl { color: var(--gold); }
.cpage-head .lede { margin: 20px auto 0; max-width: 620px; font-size: clamp(17px, 1.7vw, 20px); line-height: 1.55; color: rgba(255,255,255,0.82); font-weight: 500; }
.chead-cta { display: flex; gap: 14px; margin-top: 34px; flex-wrap: wrap; justify-content: center; }

.cnarrow { max-width: 840px; }
.cpage .ceyebrow { font-family: var(--font-display); font-weight: 800; font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--teal-deep); }
.clead { font-size: clamp(19px, 2.1vw, 24px); line-height: 1.55; color: var(--ink); font-weight: 600; margin-top: 14px; letter-spacing: -0.01em; }
.cmuted { margin-top: 22px; color: var(--ink-soft); font-weight: 600; font-size: 17px; }
.chighlights { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 0 auto; max-width: 1080px; }
.chcard { min-width: 0; background: #fff; border: 1px solid var(--line); border-radius: var(--r-md); padding: 28px 22px; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 14px; box-shadow: var(--shadow-card); }
.chcard .chi { width: 44px; height: 44px; border-radius: 12px; background: var(--gold); color: var(--navy-950); display: grid; place-items: center; }
.chcard .chi svg { width: 22px; height: 22px; }
.chcard b { font-family: var(--font-display); font-weight: 800; font-size: 17px; color: var(--navy-900); line-height: 1.25; letter-spacing: -0.01em; overflow-wrap: anywhere; }
.insurance-note { max-width: 860px; margin: 24px auto 0; padding: 16px 22px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--ink-soft); text-align: center; font-weight: 700; line-height: 1.45; box-shadow: var(--shadow-card); }

.cproc { background: #dbe5ef; padding-bottom: 80px; }
.cproc-grid { display: grid; grid-template-columns: 1fr auto 1fr; gap: 28px; align-items: center; }
.cproc-card { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 26px; box-shadow: var(--shadow-card); text-align: center; }
.cproc-tag { display: inline-block; font-family: var(--font-display); font-weight: 800; font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--teal-deep); background: var(--teal-soft); padding: 7px 15px; border-radius: 999px; }
.cproc-tag.alt { color: var(--ink-soft); background: var(--paper-2); }
.cproc-media { margin: 20px 0; border-radius: 16px; overflow: hidden; aspect-ratio: 4/3; }
.cproc-card b { font-family: var(--font-display); font-weight: 800; font-size: 19px; color: var(--navy-900); letter-spacing: -0.01em; }
.cproc-vs { font-family: var(--font-display); font-weight: 800; color: var(--gold); font-size: 20px; width: 56px; height: 56px; border-radius: 50%; background: var(--navy-900); display: grid; place-items: center; flex: none; }
.cproc-call { text-align: center; margin-top: 32px; font-size: 17px; color: var(--ink); }
.cproc-call a { color: var(--teal-deep); font-weight: 800; }
.cproc-cta { display: flex; justify-content: center; margin-top: 22px; }

.cbody .cnarrow { max-width: 860px; margin: 0 auto; text-align: center; }
.cbody h2 { font-family: var(--font-display); font-weight: 800; font-size: clamp(26px, 3vw, 38px); color: var(--navy-950); letter-spacing: -0.02em; margin-top: 50px; }
.cbody > .cnarrow > h2:first-child { margin-top: 0; }
.cbody p { font-size: 17px; line-height: 1.72; color: var(--ink); margin-top: 16px; }
.cvideo { position: relative; margin-top: 28px; border-radius: var(--r-md); overflow: hidden; aspect-ratio: 16/9; box-shadow: var(--shadow-card); background: #000; }
.cvideo iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.cpage.cbody { padding-top: 76px; }
.cvideocard { display: flex; align-items: center; justify-content: center; gap: 18px; margin: 28px auto 0; max-width: 620px; padding: 26px 32px; border-radius: var(--r-md); background: linear-gradient(140deg, var(--navy-900) 0%, var(--teal-deep) 100%); color: #fff; box-shadow: var(--shadow-card); transition: transform .2s ease, box-shadow .2s ease; }
.cvideocard:hover { transform: translateY(-4px); box-shadow: var(--shadow-soft); }
.cv-play { width: 60px; height: 60px; border-radius: 50%; background: var(--gold); color: var(--navy-950); display: grid; place-items: center; flex: none; }
.cv-play svg { width: 24px; height: 24px; margin-left: 3px; }
.cv-label { font-family: var(--font-display); font-weight: 800; font-size: 18px; letter-spacing: -0.01em; text-align: left; line-height: 1.25; }
.csymptoms { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin-top: 26px; }
.csym { display: flex; align-items: center; gap: 13px; background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 16px 18px; font-weight: 600; color: var(--ink); }
.csym .ck { width: 26px; height: 26px; border-radius: 50%; background: var(--teal-soft); color: var(--teal-deep); display: grid; place-items: center; flex: none; }
.csym .ck svg { width: 15px; height: 15px; }
.ccallout { margin-top: 44px; background: linear-gradient(140deg, var(--navy-900) 0%, var(--teal-deep) 100%); color: #fff; border-radius: var(--r-lg); padding: 38px 36px; }
.ccallout h3 { color: var(--gold); font-family: var(--font-display); font-weight: 800; font-size: 22px; }
.ccallout p { color: rgba(255,255,255,0.9); margin-top: 12px; font-size: 17px; line-height: 1.7; }

.cappt .appt-panel { max-width: 680px; margin: 0 auto; }
.cappt .appt-panel h2, .cappt .appt-panel > p { text-align: center; }
.cappt .appt-panel > p { margin-left: auto; margin-right: auto; }
.field textarea { width: 100%; font-family: inherit; font-size: 15px; color: var(--ink); background: var(--paper); border: 1.5px solid var(--line); border-radius: 14px; padding: 13px 15px; resize: vertical; min-height: 96px; transition: border-color .2s; }
.field textarea:focus { outline: none; border-color: var(--teal); }

@media (max-width: 900px){
  .cpage-head { margin-top: -96px; padding: 132px 0 64px; }
  .chighlights { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cproc-grid { grid-template-columns: 1fr; }
  .cproc-vs { margin: 0 auto; }
}
@media (max-width: 600px){
  .chighlights { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .csymptoms { grid-template-columns: 1fr; }
  .chead-cta { width: 100%; }
  .chead-cta .btn { width: 100%; justify-content: center; }
  .insurance-note { border-radius: 18px; font-size: 14.5px; padding: 15px 16px; }
}

/* ---- CTS body modules (redesigned, index-style) ---- */
.cwhat .csplit { display: grid; grid-template-columns: 1fr 1fr; gap: 52px; align-items: center; }
.csplit-text .eyebrow { margin-bottom: 14px; }
.csplit-text h2 { font-family: var(--font-display); font-weight: 800; font-size: clamp(28px, 3.2vw, 44px); color: var(--navy-950); letter-spacing: -0.02em; }
.csplit-text p { font-size: 17px; line-height: 1.72; color: var(--ink); margin-top: 16px; }
.csplit-text .btn { margin-top: 28px; }
.csplit-media .cvideo { margin-top: 0; }
.csplit-media .cphoto { border-radius: var(--r-md); overflow: hidden; box-shadow: var(--shadow-card); aspect-ratio: 4/3.2; }
.csplit-media .cphoto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cfactcard { background: #fff; border: 1px solid var(--line); border-radius: var(--r-md); padding: 32px 34px; box-shadow: var(--shadow-card); }
.cfactcard .cfc-eyebrow { display: inline-block; font-family: var(--font-display); font-weight: 800; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--teal-deep); margin-bottom: 8px; }
.cfactcard dl { display: flex; flex-direction: column; }
.cfactcard dl > div { display: flex; flex-direction: column; gap: 3px; padding: 16px 0; border-top: 1px solid var(--paper-2); }
.cfactcard dl > div:first-of-type { border-top: none; }
.cfactcard dt { font-size: 13px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--ink-soft); }
.cfactcard dd { font-family: var(--font-display); font-weight: 700; font-size: 18px; color: var(--navy-900); letter-spacing: -0.01em; }

.ccauses { position: relative; overflow: hidden; background: linear-gradient(150deg, var(--navy-900) 0%, var(--navy-800) 55%, var(--teal-deep) 125%); color: #fff; }
.ccauses .shead h2 { color: #fff; }
.ccauses .shead .eyebrow { color: var(--gold); }
.ccauses .shead p { color: rgba(255,255,255,0.82); }
.cfactors { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 8px; }
.cfactor { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.12); border-radius: var(--r-md); padding: 28px 20px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 14px; }
.cfactor .cfi { width: 52px; height: 52px; border-radius: 14px; background: var(--gold); color: var(--navy-950); display: grid; place-items: center; }
.cfactor .cfi svg { width: 26px; height: 26px; }
.cfactor b { font-family: var(--font-display); font-weight: 800; font-size: 16px; color: #fff; line-height: 1.3; }

.csymsec .csymptoms { max-width: 1080px; margin: 8px auto 0; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.cmedia { max-width: 880px; margin: 36px auto 0; }
.cmedia .cvideo { margin-top: 0; }

.ctreat-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; max-width: 880px; margin: 8px auto 0; align-items: start; }
.ctreat-pair .ctreat-card { margin: 0; max-width: none; }
@media (max-width: 700px){ .ctreat-pair { grid-template-columns: 1fr; } }

/* Sports injuries cards */
.sportgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; align-items: start; }
.sportcard { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 30px 32px; box-shadow: var(--shadow-card); }
.sportcard .sc-head { display: flex; align-items: center; gap: 14px; margin-bottom: 14px; }
.sportcard .sc-ic { width: 48px; height: 48px; flex: none; border-radius: 13px; background: var(--gold); color: var(--navy-950); display: grid; place-items: center; }
.sportcard .sc-ic svg { width: 24px; height: 24px; }
.sportcard h3 { font-family: var(--font-display); font-weight: 800; font-size: 21px; color: var(--navy-900); letter-spacing: -0.01em; }
.sportcard p { font-size: 15.5px; line-height: 1.66; color: var(--ink-soft); }
.sportcard-cta { background: linear-gradient(150deg, var(--navy-900) 0%, var(--teal-deep) 120%); border: none; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.sportcard-cta h3 { color: #fff; }
.sportcard-cta p { color: rgba(255,255,255,0.82); margin: 12px 0 22px; }
.sc-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.sc-chips span { font-family: var(--font-display); font-weight: 700; font-size: 13px; color: var(--teal-deep); background: var(--paper); border: 1px solid var(--line); border-radius: 999px; padding: 6px 13px; }
.cmini-label { font-family: var(--font-display); font-weight: 800; font-size: 13px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--ink-soft); margin-top: 22px; margin-bottom: 12px; }
.cwhat .sc-chips span { background: #fff; }
.chighlights-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); max-width: 1080px; }
.chighlights-5 .chcard { padding: 24px 14px; }
@media (max-width: 900px){ .chighlights-5 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 560px){ .chighlights-5 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.sportgrid-3 { grid-template-columns: repeat(3, 1fr); }
.cfactors-3 { grid-template-columns: repeat(3, 1fr); max-width: 1000px; margin-left: auto; margin-right: auto; }
.cfactor .cf-desc { font-family: var(--font-body); font-weight: 500; font-size: 14px; color: rgba(255,255,255,0.78); line-height: 1.5; margin-top: 4px; }
.cfactors-list { max-width: 820px; margin: 8px auto 0; display: grid; gap: 14px; }
.cfactor-line { display: flex; align-items: center; gap: 14px; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.12); border-radius: var(--r-sm); padding: 18px 22px; font-family: var(--font-display); font-weight: 700; font-size: 16px; color: #fff; }
.cfactor-line .cfl-ic { width: 30px; height: 30px; flex: none; border-radius: 50%; background: var(--gold); color: var(--navy-950); display: grid; place-items: center; }
.cfactor-line .cfl-ic svg { width: 17px; height: 17px; }
@media (max-width: 860px){ .sportgrid-3 { grid-template-columns: 1fr; } .cfactors-3 { grid-template-columns: 1fr; } }
@media (max-width: 700px){ .sportgrid { grid-template-columns: 1fr; } }
.ctreat h3 { font-family: var(--font-display); font-weight: 800; font-size: 20px; color: var(--navy-900); margin-bottom: 20px; }
.ctreat ul { list-style: none; display: grid; gap: 15px; }
.ctreat li { display: flex; align-items: center; gap: 13px; font-weight: 600; color: var(--ink); font-size: 16px; }
.ctreat li .ck { width: 27px; height: 27px; border-radius: 50%; background: var(--teal-soft); color: var(--teal-deep); display: grid; place-items: center; flex: none; }
.ctreat li .ck svg { width: 15px; height: 15px; }
.cprose { max-width: 760px; margin: 34px auto 0; }
.cstats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; max-width: 880px; margin: 36px auto 0; }
.cstat { position: relative; background: #fff; border: 1px solid var(--line); border-radius: var(--r-md); padding: 30px 18px 26px; text-align: center; box-shadow: var(--shadow-card); overflow: hidden; }
.cstat::before { content: ""; position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 48px; height: 5px; border-radius: 0 0 6px 6px; background: var(--gold); }
.cstat b { display: block; font-family: var(--font-display); font-weight: 800; font-size: clamp(26px, 2.4vw, 32px); color: var(--teal-deep); letter-spacing: -0.02em; line-height: 1; }
.cstat span { display: block; margin-top: 9px; font-size: 13.5px; color: var(--ink-soft); font-weight: 600; line-height: 1.35; }
.cprose p { font-size: 17px; line-height: 1.8; color: var(--ink-soft); margin-top: 22px; text-align: left; text-wrap: pretty; }
.cprose p:first-child { margin-top: 0; }
.cprose p strong, .cprose p b { color: var(--ink); }
.cmob-toggle { display: none; margin-top: 10px; background: none; border: none; padding: 0; font-family: var(--font-display); font-weight: 800; font-size: 13.5px; color: var(--teal-deep); cursor: pointer; }
.cmob-toggle:hover { color: var(--navy-900); }
@media (max-width: 600px){
  .cmob-clamp { display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; }
  .cmob-toggle { display: inline-block; }
  .cprose-clamp { display: -webkit-box; -webkit-line-clamp: 8; -webkit-box-orient: vertical; overflow: hidden; }
  .bio-toggle { display: block; margin: 12px auto 0; }
}

/* Location-page intro prose as clean separated cards */
.cintro .cprose { max-width: 860px; display: grid; gap: 16px; margin-top: 34px; }
.cintro .cprose p { position: relative; background: #fff; border: 1px solid var(--line); border-radius: var(--r-md); padding: 26px 32px 26px 70px; margin: 0; box-shadow: var(--shadow-card); font-size: 16.5px; line-height: 1.75; }
.cintro .cprose p::before { content: ""; position: absolute; left: 24px; top: 27px; width: 30px; height: 30px; border-radius: 50%; background: var(--teal-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232b6286' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 15px no-repeat; }
@media (max-width: 560px){
  .cintro .cprose p { padding: 22px 22px 22px 58px; }
  .cintro .cprose p::before { left: 18px; top: 23px; width: 26px; height: 26px; }
}
.ctreat-card { max-width: 540px; margin: 28px auto 0; background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 34px 40px; box-shadow: var(--shadow-card); }
.ctreat-card h3 { text-align: center; font-family: var(--font-display); font-weight: 800; font-size: 20px; color: var(--navy-900); margin-bottom: 22px; }
.ctreat-card ul { list-style: none; display: flex; flex-direction: column; align-items: center; gap: 15px; }
.ctreat-card li { display: flex; align-items: center; gap: 12px; font-family: var(--font-display); font-weight: 700; font-size: 16px; color: var(--navy-900); }
.ctreat-card li .ck { width: 26px; height: 26px; border-radius: 50%; background: var(--teal-soft); color: var(--teal-deep); display: grid; place-items: center; flex: none; }
.ctreat-card li .ck svg { width: 15px; height: 15px; }
.ctreatsec .ccallout { max-width: 720px; margin-left: auto; margin-right: auto; }

@media (max-width: 900px){
  .cwhat .csplit { grid-template-columns: 1fr; gap: 30px; }
  .cfactors { grid-template-columns: repeat(2, 1fr); }
  .csymsec .csymptoms { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px){
  .cfactors { grid-template-columns: repeat(2, 1fr); }
  .csymsec .csymptoms { grid-template-columns: repeat(2, 1fr); }
  .cstats { grid-template-columns: repeat(2, 1fr); }
  .cwhat .csplit-text { text-align: center; }
  .cwhat .csplit-text .eyebrow { justify-content: center; }
  .cwhat .csplit-text .cprose { margin-left: auto; margin-right: auto; }
}

/* ============ NO-STITCH PROCEDURE PAGE ============ */
.benefits-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 8px; }
.benefit { background: #fff; border: 1px solid var(--line); border-radius: var(--r-md); padding: 30px 26px; box-shadow: var(--shadow-card); }
.benefit .bic { width: 54px; height: 54px; border-radius: 15px; background: var(--gold); color: var(--navy-950); display: grid; place-items: center; margin-bottom: 18px; }
.benefit .bic svg { width: 26px; height: 26px; }
.benefit h3 { font-family: var(--font-display); font-weight: 800; font-size: 18px; color: var(--navy-900); letter-spacing: -0.01em; }
.benefit p { font-size: 14.5px; line-height: 1.6; color: var(--ink-soft); margin-top: 10px; }

.cbanner { margin-top: 44px; background: linear-gradient(135deg, var(--navy-900) 0%, var(--teal-deep) 100%); color: #fff; border-radius: var(--r-lg); padding: 48px; text-align: center; box-shadow: var(--shadow-soft); }
.cbanner b { display: block; font-family: var(--font-display); font-weight: 800; font-size: clamp(46px, 6.5vw, 76px); color: var(--gold); letter-spacing: -0.02em; line-height: 1; }
.cbanner span { display: block; margin-top: 12px; font-size: clamp(16px, 1.8vw, 20px); color: rgba(255,255,255,0.9); font-weight: 600; }

.cdefs { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.cdef { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 36px; box-shadow: var(--shadow-card); }
.cdef h3 { font-family: var(--font-display); font-weight: 800; font-size: 22px; color: var(--navy-900); letter-spacing: -0.01em; }
.cdef p { font-size: 16px; line-height: 1.7; color: var(--ink); margin-top: 14px; }

.cdefsec { background: #dbe5ef; }
.csteptsec { background: #dbe5ef; }
.cqa-list { display: flex; flex-direction: column; gap: 16px; max-width: 920px; margin: 40px auto 0; }
.cqacard { background: #fff; border: 1px solid var(--line); border-radius: var(--r-md); padding: 28px 32px; box-shadow: var(--shadow-card); display: flex; gap: 18px; align-items: flex-start; }
.cqacard .qn { width: 46px; height: 46px; border-radius: 13px; background: var(--teal-soft); color: var(--teal-deep); display: grid; place-items: center; flex: none; }
.cqacard .qn svg { width: 24px; height: 24px; }
.cqacard h3 { font-family: var(--font-display); font-weight: 800; font-size: 18px; color: var(--navy-900); letter-spacing: -0.01em; }
.cqacard p { font-size: 15.5px; line-height: 1.65; color: var(--ink-soft); margin-top: 8px; }

.csteps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 8px; }
.cstep { background: #fff; border: 1px solid var(--line); border-radius: var(--r-md); padding: 34px 28px; box-shadow: var(--shadow-card); }
.cstep .num { width: 50px; height: 50px; border-radius: 50%; background: var(--navy-900); color: var(--gold); font-family: var(--font-display); font-weight: 800; font-size: 21px; display: grid; place-items: center; margin-bottom: 20px; }
.cstep p { font-size: 16px; line-height: 1.6; color: var(--ink); font-weight: 500; }

.cnotalone { background: linear-gradient(150deg, var(--navy-900) 0%, var(--navy-800) 60%, var(--teal-deep) 130%); color: #fff; }
.cnotalone .shead h2 { color: #fff; }
.cnotalone .shead .eyebrow { color: var(--gold); }
.cstats.nalone .cstat { background: rgba(255,255,255,0.06); border-color: rgba(255,255,255,0.12); }
.cstats.nalone .cstat b { color: var(--gold); }
.cstats.nalone .cstat span { color: rgba(255,255,255,0.82); }

.cappt-card { max-width: 760px; margin: 0 auto; background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 40px; box-shadow: var(--shadow-soft); }
.cappt-perks { display: flex; justify-content: center; flex-wrap: wrap; gap: 14px 28px; margin-top: 30px; }

/* ============ CONDITIONS HUB ============ */
.condgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; align-items: stretch; }
.condcard { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 32px; box-shadow: var(--shadow-card); }
.condcard .ch { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.condcard .ci { width: 48px; height: 48px; border-radius: 13px; background: var(--gold); color: var(--navy-950); display: grid; place-items: center; flex: none; }
.condcard .ci svg { width: 24px; height: 24px; }
.condcard h3 { font-family: var(--font-display); font-weight: 800; font-size: 19px; color: var(--navy-900); letter-spacing: 0.06em; text-transform: uppercase; }
.condcard ul { list-style: none; display: flex; flex-direction: column; }
.condcard li a { display: flex; align-items: center; gap: 8px; padding: 11px 0; font-size: 15px; font-weight: 600; color: var(--ink); transition: color .2s; border-top: 1px solid var(--paper-2); }
.condcard li:first-child a { border-top: none; }
.condcard li a:hover { color: var(--teal-deep); }
.condcard li a .arr { margin-left: auto; color: var(--teal); opacity: 0; transform: translateX(-5px); transition: opacity .2s, transform .2s; }
.condcard li a .arr svg { width: 16px; height: 16px; }
.condcard li a:hover .arr { opacity: 1; transform: none; }
@media (max-width: 900px){ .condgrid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px){
  .condgrid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .condcard { padding: 18px 14px; }
  .condcard .ch { flex-direction: column; text-align: center; gap: 10px; margin-bottom: 14px; padding-bottom: 14px; }
  .condcard h3 { font-size: 16px; }
  .condcard li a { font-size: 13.5px; padding: 9px 0; justify-content: center; text-align: center; }
  .condcard li a .arr { display: none; }
}

/* ============ BLOG ============ */
.blogsec { background: var(--paper); }
.blogfeat { display: block; background: linear-gradient(140deg, var(--navy-900) 0%, var(--teal-deep) 120%); color: #fff; border-radius: var(--r-lg); padding: 48px clamp(28px, 5vw, 64px); box-shadow: var(--shadow-soft); margin-bottom: 28px; transition: transform .2s ease, box-shadow .2s ease; }
.blogfeat:hover { transform: translateY(-4px); box-shadow: 0 30px 60px -28px rgba(8,26,52,0.6); }
.blogfeat-body { max-width: 760px; }
.blogfeat h2 { font-size: clamp(26px, 3.2vw, 40px); color: #fff; margin: 14px 0 14px; letter-spacing: -0.02em; }
.blogfeat p { color: rgba(255,255,255,0.84); font-size: 17px; line-height: 1.66; }
.blogfeat-foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 24px; flex-wrap: wrap; }
.blogcat { display: inline-block; font-family: var(--font-display); font-weight: 800; font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--navy-950); background: var(--gold); padding: 6px 13px; border-radius: 999px; }
.blogfeat .blogcat { color: var(--navy-950); }
.blogdate { font-size: 14px; font-weight: 600; color: rgba(255,255,255,0.7); }
.blogfeat .blogread { display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-display); font-weight: 800; font-size: 14px; letter-spacing: 0.03em; text-transform: uppercase; color: var(--gold); }
.blogfeat .blogread svg { width: 17px; height: 17px; }
.bloggrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; align-items: stretch; }
.blogcard { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: var(--r-md); padding: 28px 28px 24px; box-shadow: var(--shadow-card); transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.blogcard:hover { transform: translateY(-4px); border-color: var(--teal); box-shadow: 0 24px 48px -24px rgba(8,26,52,0.5); }
.blogcard .blogcat { color: var(--navy-950); margin-bottom: 16px; align-self: flex-start; }
.blogcard h3 { font-family: var(--font-display); font-weight: 800; font-size: 20px; color: var(--navy-900); line-height: 1.25; letter-spacing: -0.01em; }
.blogcard > p { font-size: 15px; line-height: 1.62; color: var(--ink-soft); margin-top: 12px; flex: 1; }
.blogcard-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--paper-2); }
.blogcard-foot .blogdate { color: var(--ink-soft); }
.blogcard .blogread { display: inline-flex; align-items: center; gap: 5px; font-family: var(--font-display); font-weight: 800; font-size: 13px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--teal-deep); }
.blogcard .blogread svg { width: 15px; height: 15px; transition: transform .2s ease; }
.blogcard:hover .blogread svg { transform: translateX(4px); }
.blogmore { display: flex; justify-content: center; margin-top: 40px; }
.docspot { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 32px; box-shadow: var(--shadow-card); text-align: center; display: flex; flex-direction: column; align-items: center; }
.docspot-photo { position: relative; overflow: hidden; width: 100%; aspect-ratio: 1/1; border-radius: var(--r-md); background: linear-gradient(140deg, var(--navy-700) 0%, var(--teal-deep) 100%); display: grid; place-items: center; color: rgba(255,255,255,0.92); font-family: var(--font-display); font-weight: 800; font-size: clamp(44px, 6vw, 64px); letter-spacing: 2px; margin-bottom: 22px; }
.docspot-photo .photo { object-position: center top; }
.docspot h3 { font-family: var(--font-display); font-weight: 800; font-size: 22px; color: var(--navy-900); }
.docspot .cred { font-size: 14px; font-weight: 700; color: var(--teal-deep); margin-top: 6px; letter-spacing: 0.04em; }
.locservice-cta { background: linear-gradient(150deg, var(--navy-900) 0%, var(--teal-deep) 130%); }
.lsc-card { display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; }
.lsc-card h2 { color: #fff; font-size: clamp(26px, 3vw, 38px); margin-top: 12px; }
.lsc-card > div > p { color: rgba(255,255,255,0.84); font-size: 17px; margin-top: 10px; font-weight: 600; }
.lsc-actions { display: flex; gap: 14px; flex-wrap: wrap; }

/* ============ WORKERS' COMP STEPS ============ */
.wc-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-top: 8px; }
.wc-step { position: relative; background: #fff; border: 1px solid var(--line); border-radius: var(--r-md); padding: 34px 28px 30px; box-shadow: var(--shadow-card); overflow: hidden; }
.wc-step::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 5px; background: var(--gold); }
.wc-num { font-family: var(--font-display); font-weight: 800; font-size: 34px; color: var(--teal-soft); letter-spacing: -0.02em; line-height: 1; }
.wc-step h3 { font-family: var(--font-display); font-weight: 800; font-size: 19px; color: var(--navy-900); margin-top: 14px; letter-spacing: -0.01em; }
.wc-step p { font-size: 15px; line-height: 1.65; color: var(--ink-soft); margin-top: 10px; }
@media (max-width: 860px){ .wc-steps { grid-template-columns: 1fr; max-width: 480px; margin-left: auto; margin-right: auto; } }
.navmore-locs { min-width: 210px; }
.navloc { position: relative; }
.navloc-row { display: flex !important; align-items: center; justify-content: flex-start; gap: 11px; }
.navloc-row::after { display: none !important; }
.navloc-ic { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; flex: none; border-radius: 8px; background: var(--teal-soft); color: var(--teal-deep); }
.navloc-ic svg { width: 16px; height: 16px; }
.navloc-row:hover .navloc-ic { background: var(--gold); color: var(--navy-900); transition: background .26s ease, color .26s ease; }
.navloc-chev { margin-left: auto; transition: transform .32s cubic-bezier(.16,1,.3,1), opacity .26s ease; }
.navloc-row svg.navloc-chev { width: 15px; height: 15px; opacity: 0.55; }
.navloc:hover .navloc-row .navloc-chev { opacity: 1; transform: translateX(3px); }
/* keep the parent row highlighted while the cursor is in its flyout */
.navloc:hover > .navloc-row { background: linear-gradient(180deg, #faf4e7 0%, #f4ecd9 100%); color: var(--navy-900); }
.navloc:hover > .navloc-row .navloc-ic { background: var(--gold); color: var(--navy-900); }
.navloc:hover > .navloc-row .navloc-chev { color: var(--gold); }
.navloc:hover > .navloc-row::before { display: none; }
.navloc-flyout { position: absolute; top: -6px; left: 100%; margin-left: 4px; background: #fff; border-radius: 10px; box-shadow: var(--shadow-card); padding: 0; min-width: 250px; display: flex; flex-direction: column; gap: 0; opacity: 0; visibility: hidden; transform-origin: left top; transform: translateX(-10px) scale(.98); transition: opacity .3s ease, transform .44s cubic-bezier(.16,1,.3,1), visibility .44s; will-change: transform, opacity; z-index: 70; }
.navloc-flyout::before { content: ""; position: absolute; top: 0; bottom: 0; left: -14px; width: 16px; }
.navloc:hover .navloc-flyout { opacity: 1; visibility: visible; transform: none; }
.navloc-flyout a { position: relative; color: var(--ink); font-family: var(--font-display); font-weight: 600; font-size: 13.5px; letter-spacing: -0.01em; padding: 9px 14px 9px 18px; border-radius: 0; white-space: nowrap; transition: background .22s ease, color .2s ease, padding .3s cubic-bezier(.16,1,.3,1); }
.navloc-flyout a::before { display: none; }
.navloc-flyout a:hover::before { display: none; }
.navloc-flyout a:first-child { border-top-left-radius: 9px; border-top-right-radius: 9px; }
.navloc-flyout a:last-child { border-bottom-left-radius: 9px; border-bottom-right-radius: 9px; }
.navloc-flyout a:hover { background: linear-gradient(180deg, #faf4e7 0%, #f4ecd9 100%); color: var(--navy-900); padding-left: 22px; }
@media (max-width: 1040px){ .navloc-flyout { position: static; margin: 2px 0 2px 12px; box-shadow: none; opacity: 1; visibility: visible; transform: none; display: none; min-width: 0; } .navloc:hover .navloc-flyout { display: flex; } }
@media (max-width: 760px){ .lsc-actions { width: 100%; } .lsc-actions .btn { width: 100%; justify-content: center; } }
@media (max-width: 900px){ .bloggrid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px){ .bloggrid { grid-template-columns: 1fr 1fr; gap: 12px; } .blogcard { padding: 16px 14px 14px; align-items: center; } .blogcard h3 { font-size: 15px; line-height: 1.25; text-align: center; } .blogcard p { font-size: 13px; text-align: center; } .blogcard .blogcat { margin-bottom: 10px; align-self: center; } .blogcard-foot { flex-direction: column; align-items: center; gap: 8px; } }

/* ============ PHYSICIANS PAGE ============ */
.docsec { background: #dbe5ef; }
.docgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.doccard { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 30px; box-shadow: var(--shadow-card); text-align: center; display: flex; flex-direction: column; align-items: center; }
.docphoto { position: relative; width: 100%; aspect-ratio: 1 / 1; border-radius: var(--r-md); overflow: hidden; background: linear-gradient(140deg, var(--navy-700) 0%, var(--teal-deep) 100%); margin-bottom: 24px; }
.docphoto img { object-position: 50% 22%; }
.doccard h3 { font-family: var(--font-display); font-weight: 800; font-size: 22px; color: var(--navy-900); letter-spacing: -0.01em; }
.doccard .cred { font-size: 14px; font-weight: 700; color: var(--teal-deep); margin-top: 6px; letter-spacing: 0.04em; }
.doccard .btn { margin-top: 22px; width: 100%; justify-content: center; white-space: nowrap; }
@media (max-width: 1040px){ .docgrid { grid-template-columns: 1fr 1fr; max-width: 720px; margin: 0 auto; } }
@media (max-width: 560px){ .docgrid { grid-template-columns: 1fr; max-width: 420px; } }

/* Physician profile pages */
.phys-profile { background: var(--paper); }
.phys-profile-grid { display: grid; grid-template-columns: 0.86fr 1.14fr; gap: 54px; align-items: start; }
.phys-portrait { position: sticky; top: 104px; }
.phys-portrait-card { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 24px; box-shadow: var(--shadow-card); }
.phys-portrait-media { position: relative; aspect-ratio: 1 / 1.08; border-radius: var(--r-md); overflow: hidden; background: linear-gradient(140deg, var(--navy-700) 0%, var(--teal-deep) 100%); }
.phys-portrait-media img { object-position: center top; }
.phys-portrait-card h2 { font-size: 26px; color: var(--navy-900); margin-top: 22px; }
.phys-portrait-card .cred { display: block; margin-top: 6px; font-weight: 800; color: var(--teal-deep); letter-spacing: .04em; }
.phys-portrait-card .btn { width: 100%; justify-content: center; margin-top: 22px; }
.phys-body { display: grid; gap: 28px; }
.phys-panel { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 34px 38px; box-shadow: var(--shadow-card); }
.phys-panel h2, .phys-panel h3 { color: var(--navy-900); }
.phys-panel h2 { font-size: clamp(28px, 3vw, 42px); }
.phys-panel h3 { font-size: 22px; margin-bottom: 16px; }
.phys-panel p { font-size: 16.5px; line-height: 1.75; color: var(--ink-soft); margin-top: 14px; }
.phys-list { list-style: none; display: grid; gap: 12px; margin-top: 18px; }
.phys-list li { display: flex; align-items: flex-start; gap: 12px; font-weight: 700; color: var(--ink); line-height: 1.45; }
.phys-list li span { width: 26px; height: 26px; border-radius: 50%; background: var(--teal-soft); color: var(--teal-deep); display: grid; place-items: center; flex: none; }
.phys-list li svg { width: 15px; height: 15px; }
.phys-awards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 18px; }
.phys-award { border: 1px solid var(--line); border-radius: var(--r-sm); padding: 18px; background: var(--paper); }
.phys-award b { display: block; font-family: var(--font-display); color: var(--navy-900); font-size: 15px; line-height: 1.35; }
.phys-award span { display: block; color: var(--ink-soft); font-size: 13px; font-weight: 700; margin-top: 6px; }
@media (max-width: 900px){
  .phys-profile-grid { grid-template-columns: 1fr; gap: 34px; }
  .phys-portrait { position: static; max-width: 460px; margin: 0 auto; width: 100%; }
}
@media (max-width: 560px){
  .phys-panel { padding: 28px 22px; }
  .phys-awards { grid-template-columns: 1fr; }
}

/* ============ REVIEWS PAGE ============ */
.revhead-rating { display: flex; justify-content: center; margin-bottom: 22px; }
.revhead-rating .tstars { display: inline-flex; gap: 4px; }
.revhead-rating .tstars svg { width: 26px; height: 26px; color: var(--gold); fill: var(--gold); }
.revpage { background: var(--paper); }
.revmasonry { columns: 3; column-gap: 24px; margin-top: 12px; }
.revblock { break-inside: avoid; -webkit-column-break-inside: avoid; background: #fff; border: 1px solid var(--line); border-radius: var(--r-md); padding: 28px 28px 24px; margin-bottom: 24px; box-shadow: var(--shadow-card); display: inline-block; width: 100%; }
.revblock .rb-top { display: flex; align-items: center; justify-content: flex-start; margin-bottom: 14px; }
.revblock .rb-quote { font-family: var(--font-display); font-weight: 800; font-size: 52px; line-height: 0.7; color: var(--teal-soft); }
.revblock .tstars { display: inline-flex; gap: 3px; }
.revblock .tstars svg { width: 17px; height: 17px; color: var(--gold); fill: var(--gold); }
.revblock blockquote { font-size: 15.5px; line-height: 1.66; color: var(--ink-soft); font-weight: 500; }
.revblock blockquote.rb-clamp { display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; }
.revblock .rb-toggle { margin-top: 10px; background: none; border: none; padding: 0; font-family: var(--font-display); font-weight: 800; font-size: 13.5px; color: var(--teal-deep); cursor: pointer; }
.revblock .rb-toggle:hover { color: var(--navy-900); }
.revblock figcaption { display: flex; align-items: center; gap: 13px; margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--paper-2); }
.revblock .rb-av { width: 40px; height: 40px; flex: none; border-radius: 50%; background: linear-gradient(140deg, var(--navy-700), var(--teal-deep)); color: #fff; display: grid; place-items: center; font-family: var(--font-display); font-weight: 800; font-size: 16px; }
.revblock .rb-meta { display: flex; flex-direction: column; }
.revblock .rb-name { font-family: var(--font-display); font-weight: 800; font-size: 16px; color: var(--navy-900); letter-spacing: -0.01em; }
.revblock .rb-doc { font-size: 13px; font-weight: 700; color: var(--teal-deep); margin-top: 3px; }
.revmore-wrap { display: flex; justify-content: center; margin-top: 16px; }

.revcta-sec { background: var(--navy-950); }
.revcta { text-align: center; max-width: 760px; margin: 0 auto; }
.revcta h2 { color: #fff; font-size: clamp(28px, 3.4vw, 44px); }
.revcta p { color: rgba(255,255,255,0.8); font-size: 17px; margin-top: 14px; }
.revcta-btns { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-top: 30px; }
@media (max-width: 980px){ .revmasonry { columns: 2; } }
@media (max-width: 640px){ .revmasonry { columns: 2; column-gap: 14px; } .revblock { padding: 18px 16px; } .revblock blockquote { font-size: 13.5px; } .revcta-btns .btn { width: 100%; justify-content: center; } }

/* ============ LOCATION (BAYTOWN) PAGE ============ */
.locpage { background: var(--paper); }
.locsplit { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.locinfo h2 { font-size: clamp(26px, 3vw, 38px); margin-top: 14px; }
.locinfo > p { color: var(--ink-soft); font-size: 16.5px; line-height: 1.7; margin-top: 18px; }
.ilink { color: var(--teal-deep); font-weight: 700; border-bottom: 2px solid var(--gold); }
.locmeta { display: flex; flex-direction: column; gap: 18px; margin-top: 28px; }
.locmeta-row { display: flex; align-items: flex-start; gap: 14px; }
.locmeta-row .lmi { width: 44px; height: 44px; flex: none; border-radius: 12px; background: var(--teal-soft); color: var(--teal-deep); display: grid; place-items: center; }
.locmeta-row .lmi svg { width: 22px; height: 22px; }
.locmeta-row b { display: block; font-family: var(--font-display); font-size: 14px; color: var(--navy-900); letter-spacing: 0.04em; text-transform: uppercase; margin-bottom: 3px; }
.locmeta-row span, .locmeta-row a { font-size: 16px; color: var(--ink-soft); line-height: 1.5; }
.locmap { border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--shadow-soft); aspect-ratio: 4 / 3.4; border: 1px solid var(--line); }
.locmap iframe { width: 100%; height: 100%; border: 0; display: block; }

.bttreat { background: #dbe5ef; }
.treatgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.treatchip { display: flex; align-items: center; gap: 14px; background: #fff; border: 1px solid var(--line); border-radius: var(--r-sm); padding: 18px 20px; box-shadow: var(--shadow-card); transition: transform .2s ease, box-shadow .2s ease; }
.treatchip:hover { transform: translateY(-3px); box-shadow: 0 22px 44px -22px rgba(8,26,52,0.5); }
.treatchip .tc-ic { width: 40px; height: 40px; flex: none; border-radius: 11px; background: var(--gold); color: var(--navy-950); display: grid; place-items: center; }
.treatchip .tc-ic svg { width: 20px; height: 20px; }
.treatchip .tc-label { font-family: var(--font-display); font-weight: 700; font-size: 15.5px; color: var(--navy-900); line-height: 1.25; letter-spacing: -0.01em; }
.treatchip .tc-arr { margin-left: auto; color: var(--teal); opacity: 0; transform: translateX(-5px); transition: opacity .2s, transform .2s; }
.treatchip .tc-arr svg { width: 18px; height: 18px; }
.treatchip:hover .tc-arr { opacity: 1; transform: none; }

.locsall { background-color: #c9d9e6; background-image: radial-gradient(rgba(43,98,134,0.14) 1.4px, transparent 1.4px); background-size: 26px 26px; }
.locsall .loc { background: #fff; border: 1.5px solid var(--line); box-shadow: var(--shadow-card); }
.locsall .loc:hover { border-color: var(--teal); }
.locsall .lgrid { align-items: stretch; }
.locsall .loc { display: flex; flex-direction: column; align-items: center; justify-content: flex-start; min-height: 268px; }
.locsall .loc h3 { min-height: 2.4em; display: flex; align-items: center; justify-content: center; text-align: center; }
.locsall .loc p { text-align: center; line-height: 1.55; min-height: 3.2em; }
.locsall .loc-call { justify-content: center; margin-top: auto; }
.locsall .loc-visit { justify-content: center; }
.locsall .loc-closed { justify-content: center; }
.loc-active { border-color: var(--gold); box-shadow: 0 0 0 2px var(--gold), var(--shadow-card); position: relative; }
.loc-badge { position: absolute; top: 16px; right: 16px; background: var(--gold); color: var(--navy-950); font-family: var(--font-display); font-weight: 800; font-size: 11px; letter-spacing: 0.05em; text-transform: uppercase; padding: 5px 10px; border-radius: 999px; }
.loc-call { display: inline-flex; align-items: center; gap: 7px; margin-top: 14px; font-weight: 700; color: var(--teal-deep); font-size: 15px; }
.loc-call svg { width: 16px; height: 16px; }

/* Contact page — clickable office cards */
.loc-link { display: block; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.loc-link:hover { transform: translateY(-4px); border-color: var(--teal); box-shadow: 0 24px 48px -24px rgba(8,26,52,0.5); }
.loc-link .loc-call { display: flex; }
.loc-visit { display: inline-flex; align-items: center; gap: 6px; margin-top: 16px; font-family: var(--font-display); font-weight: 800; font-size: 13px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--teal-deep); }
.loc-visit svg { width: 15px; height: 15px; transition: transform .2s ease; }
.loc-link:hover .loc-visit svg { transform: translateX(4px); }
.loc-closed { opacity: 0.6; }
.loc-closedtag { display: inline-block; margin-top: 6px; font-weight: 700; color: var(--coral); font-size: 14px; }
@media (max-width: 860px){ .locsplit { grid-template-columns: 1fr; gap: 32px; } .treatgrid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px){ .treatgrid { grid-template-columns: 1fr; } }

@media (max-width: 900px){ .benefits-grid { grid-template-columns: repeat(2, 1fr); } .csteps { grid-template-columns: repeat(2, 1fr); } .csteps .cstep:last-child:nth-child(odd) { grid-column: 1 / -1; } }
@media (max-width: 760px){ .cdefs { grid-template-columns: 1fr 1fr; } .cqacard { padding: 24px; } }
@media (max-width: 600px){
  .benefits-grid { grid-template-columns: repeat(2, 1fr); }
  .benefits-grid .benefit:last-child:nth-child(odd) { grid-column: 1 / -1; max-width: 320px; margin-left: auto; margin-right: auto; }
  .benefit { text-align: center; padding: 22px 16px; }
  .benefit .bic { margin-left: auto; margin-right: auto; }
  .benefit h3 { font-size: 16px; }
  .benefit p { font-size: 14px; }
  .cappt-card { padding: 28px 22px; }
  .cdefs { gap: 12px; }
  .cdef { padding: 20px 18px; text-align: center; }
  .cstep { text-align: center; }
  .cstep .num { margin: 0 auto; }
  .cdef h3 { font-size: 17px; line-height: 1.2; }
  .cdef p, .cqacard p { font-size: 14px; line-height: 1.55; }
  .cmob-clamp { -webkit-line-clamp: 4; }
  .cqa-list { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
  .cqacard { flex-direction: column; gap: 10px; padding: 18px 16px; }
  .cqacard .qn { width: 36px; height: 36px; border-radius: 10px; }
  .cqacard .qn svg { width: 19px; height: 19px; }
  .cqacard h3 { font-size: 15px; line-height: 1.25; text-align: center; }
  .cqacard .qn { display: none; }
  .cqacard > div { text-align: center; }
  .cqacard .cmob-toggle { display: inline-block; }
  .cqa-list .cqacard:last-child:nth-child(odd) { grid-column: 1 / -1; }
}

@media (max-width: 460px){
  .hero-copy h1 { font-size: 42px; }
  .hero-cta-card .hc-top b { font-size: 23px; }
  .hero-cta-card .hc-top span { font-size: 14px; }
  .shead h2 { font-size: 30px; }
  .why .vis .float { position: static; margin: 18px auto 0; max-width: none; }
}
