/* ===================================================================
   Tanvir A. Pasha, MD — primary stylesheet
   Palette:  Harbor Navy #0E3A56 / Clinical Blue #1E6FA8 / Sky Mist #EAF4FB
             Paper White #FFFFFF / Ink #16242F / Star Gold #F2A93B (ratings only)
   Type:     Fraunces (display) + Inter (body/UI)
=================================================================== */

:root{
  --navy: #0E3A56;
  --navy-deep: #0A2940;
  --blue: #1E6FA8;
  --blue-light: #4F95C4;
  --blue-soft: #6FAED4;
  --mist: #EAF4FB;
  --mist-deep: #D9EAF5;
  --white: #FFFFFF;
  --ink: #16242F;
  --ink-soft: #44525C;
  --line: #D7E6F0;
  --gold: #F2A93B;

  --font-display: "Fraunces", Georgia, serif;
  --font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --container: 1180px;
  --radius: 14px;
  --radius-lg: 24px;
  --shadow-sm: 0 2px 10px rgba(14,58,86,0.07);
  --shadow-md: 0 18px 40px -12px rgba(14,58,86,0.25);
  --shadow-lg: 0 30px 60px -20px rgba(14,58,86,0.35);
  --ease: cubic-bezier(.22,.61,.36,1);
  --ease-bounce: cubic-bezier(.34,1.45,.5,1);
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--white);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
.is-loading{ overflow:hidden; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4{ font-family:var(--font-display); margin:0 0 .5em; color:var(--navy); font-weight:600; line-height:1.15; }
p{ margin:0 0 1em; }
button{ font-family:inherit; cursor:pointer; }

.skip-link{
  position:absolute; left:-9999px; top:0; background:var(--navy); color:#fff;
  padding:.75rem 1.25rem; z-index:999; border-radius:0 0 8px 0;
}
.skip-link:focus{ left:0; }

:focus-visible{ outline:3px solid var(--blue-light); outline-offset:2px; }

.container{ max-width:var(--container); margin:0 auto; padding:0 24px; }

/* ---------- Eyebrow / headings ---------- */
.eyebrow{
  font-family:var(--font-body); font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  font-size:.78rem; color:var(--blue); margin-bottom:.9rem;
  display:inline-flex; align-items:center; gap:.7rem;
}
.eyebrow::before{
  content:""; width:24px; height:2px; background:currentColor; border-radius:2px;
}
.hero .eyebrow::before{
  display:none;
}
.eyebrow--light{ color:#BBD9EC; }
h2.light{ color:#fff; }

.section__head{ max-width:640px; margin-bottom:3.5rem; }
.section__head h2{ font-size:clamp(1.9rem,3.2vw,2.6rem); }
.section__sub{ color:var(--ink-soft); font-size:1.05rem; }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  border:2px solid transparent; border-radius:999px; font-weight:600;
  padding:.85rem 1.6rem; font-size:.98rem; transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease), color .25s var(--ease);
  white-space:nowrap;
}
.btn--primary{ background:var(--blue); color:#fff; box-shadow:var(--shadow-sm); }
.btn--primary:hover{ background:var(--navy); transform:translateY(-2px); box-shadow:var(--shadow-md); }
.btn--ghost{ background:rgba(255,255,255,.08); color:#fff; border-color:rgba(255,255,255,.55); backdrop-filter:blur(4px); }
.btn--ghost:hover{ background:#fff; color:var(--navy); transform:translateY(-2px); }
.btn--outline-light{ background:transparent; color:#fff; border-color:rgba(255,255,255,.6); }
.btn--outline-light:hover{ background:#fff; color:var(--navy); }
.btn--large{ padding:1.05rem 2.1rem; font-size:1.05rem; }
.btn--small{ padding:.6rem 1.2rem; font-size:.88rem; }
.btn--full{ width:100%; }

/* ===================================================================
   HEADER
=================================================================== */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:200;
  padding:18px 0;
  transition:background .35s var(--ease), box-shadow .35s var(--ease), padding .35s var(--ease);
}
.site-header.is-scrolled{
  background:rgba(255,255,255,.92); backdrop-filter:blur(10px);
  box-shadow:0 4px 24px rgba(14,58,86,.08); padding:10px 0;
}
.site-header__inner{ display:flex; align-items:center; justify-content:space-between; gap:1.5rem; }

.brand{ display:flex; align-items:center; gap:.7rem; flex-shrink:0; position:relative; z-index:160; }
.brand__mark{
  width:42px; height:42px; border-radius:11px; background:var(--navy); color:#fff;
  display:flex; align-items:center; justify-content:center; font-family:var(--font-display);
  font-weight:600; font-size:1.05rem; flex-shrink:0;
}
.brand__text{ display:flex; flex-direction:column; line-height:1.2; }
.brand__name{ font-family:var(--font-display); font-weight:600; font-size:1.05rem; color:var(--navy); transition:color .35s; }
.brand__tagline{ font-size:.72rem; color:var(--ink-soft); letter-spacing:.04em; transition:color .35s; }
.site-header:not(.is-scrolled) .brand__name,
.site-header:not(.is-scrolled) .brand__tagline{ color:#fff; }
.brand__name--light, .brand__tagline--light{ color:#fff !important; }

.primary-nav ul{ display:flex; gap:1.9rem; }
.primary-nav a{
  font-weight:600; font-size:.93rem; color:var(--navy); position:relative; padding:.3rem 0;
  white-space:nowrap;
}
.site-header:not(.is-scrolled) .primary-nav a{ color:#fff; }
.primary-nav a::after{
  content:""; position:absolute; left:0; bottom:-3px; width:0; height:2px; background:currentColor;
  transition:width .25s var(--ease);
}
.primary-nav a:hover::after{ width:100%; }

.site-header__actions{ display:flex; align-items:center; gap:1.2rem; position:relative; z-index:160; }
.header-phone{ display:flex; align-items:center; gap:.4rem; font-weight:600; font-size:.92rem; color:var(--navy); }
.site-header:not(.is-scrolled) .header-phone{ color:#fff; }
.header-phone .icon{ width:17px; height:17px; }

.nav-toggle{
  display:none; flex-direction:column; justify-content:center; gap:5px;
  width:38px; height:38px; background:none; border:none; padding:0;
}
.nav-toggle span{ height:2px; width:100%; background:var(--navy); border-radius:2px; transition:.3s; transform-origin:center; }
.site-header:not(.is-scrolled) .nav-toggle span{ background:#fff; }
.nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
.nav-toggle[aria-expanded="true"] span{ background:#fff; }

/* ===================================================================
   HERO
=================================================================== */
.hero{
  position:relative; min-height:100vh; display:flex; align-items:center;
  overflow:hidden; isolation:isolate;
}
.hero__media{ position:absolute; inset:0; z-index:0; will-change:transform;
    background: url(/assets/img/doctorimage.jpg);
    background-size: cover;
    background-repeat: no-repeat; }
.hero__video{
  position:absolute; inset:0; width:100%; height:115%; object-fit:cover; top:-7%;
}
.hero__scrim{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,41,64,.78) 0%, rgba(10,41,64,.62) 45%, rgba(10,41,64,.85) 100%);
}
.hero__pulse-watermark{
  position:absolute; left:0; right:0; bottom:14%; height:140px; width:100%;
  z-index:1; opacity:.16; pointer-events:none;
}
.hero__pulse-watermark polyline{ fill:none; stroke:#fff; stroke-width:2.5; }

.hero__inner{ position:relative; z-index:2; max-width:760px; padding-top:90px; text-align:center; margin:0 auto; }
.hero__headline{
  font-size:clamp(2.6rem,5.4vw,4.3rem); color:#fff; margin-bottom:1.1rem; font-weight:600;
}
.hero__sub{ font-size:1.18rem; color:#E7F0F6; max-width:100%; margin:0 auto 2rem; }
.hero__actions{ display:flex; gap:1rem; flex-wrap:wrap; margin-bottom:2.6rem; justify-content:center; }
.hero__trust{ display:flex; gap:1.8rem; flex-wrap:wrap; font-size:.88rem; color:#cfe3ef; font-weight:600; justify-content:center; }
.hero__trust li{ display:flex; align-items:center; gap:.5rem; }
.hero__trust li::before{
  content:""; width:7px; height:7px; border-radius:50%; background:var(--blue-light); display:inline-block;
}

/* Hide trust list and call button on mobile */
@media (max-width:640px){
  .hero{ min-height:auto; padding:5.5rem 0 3.5rem; }
  .hero__inner{ padding-top:3rem; padding-bottom:2rem; }
  .hero__headline{ font-size:clamp(1.6rem, 4vw, 2.4rem); margin-bottom:.8rem; }
  .hero__sub{ font-size:0.95rem; margin-bottom:1.5rem; }
  .hero__actions{ margin-bottom:1.5rem; gap:.8rem; }
  .hero__actions .btn{ padding:0.85rem 1.6rem; font-size:0.95rem; }
  .hero__actions .btn--ghost{ display:none; }
  .hero__trust{ display:none; }
  a.hero__scroll-cue {
    display: none;
}

section#hero {
    padding-bottom: 8px;
}
}

.hero__scroll-cue{
  position:absolute; bottom:34px; left:50%; transform:translateX(-50%); z-index:2;
  width:30px; height:46px; border:2px solid rgba(255,255,255,.6); border-radius:20px;
}
.hero__scroll-cue span{
  position:absolute; top:7px; left:50%; width:4px; height:8px; margin-left:-2px;
  background:#fff; border-radius:3px; animation:scrollCue 2s infinite;
}
@keyframes scrollCue{ 0%{ opacity:1; transform:translateY(0); } 70%{ opacity:0; transform:translateY(14px); } 100%{ opacity:0; } }

/* ===================================================================
   SECTIONS — generic full-height rhythm
=================================================================== */
/* Offset sections below fixed header when navigating via anchor links */
section[id]{ scroll-margin-top:82px; }

.section{ position:relative; padding:7.5rem 0; min-height:90vh; display:flex; align-items:center; }
.section--light{ background:var(--white); }
.section--mist{ background:var(--mist); }
.section--navy{ background:var(--navy); color:#fff; }
.section--about{ background:var(--white); }

@media (max-width:760px){
  .section{ min-height:auto; padding:5rem 0; }
}

/* ===================================================================
   SERVICES — full-width 4×2 image grid, B&W → colour on hover
=================================================================== */
.svc-grid-section{ background:var(--white); }

.svc-grid-header{
  display:flex; justify-content:space-between; align-items:flex-end;
  padding-top:5rem; padding-bottom:3rem; flex-wrap:wrap; gap:1.5rem;
}
.svc-grid-header h2{ font-size:clamp(1.9rem,3vw,2.6rem); margin:0; }

.svc-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  grid-auto-rows:380px;
  gap:0; width:100%;
}

.svc-cell{
  position:relative; overflow:hidden; cursor:pointer;
}

/* Background image layer */
.svc-cell__bg{
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  filter:grayscale(0) brightness(.75);
  transform:scale(1);
  transition:filter 1.4s cubic-bezier(.25,.46,.45,.94), transform 1.4s cubic-bezier(.25,.46,.45,.94);
  will-change:filter,transform;
}
.svc-cell:hover .svc-cell__bg{
  filter:grayscale(0) brightness(.88);
  transform:scale(1.12);
}

/* Dark-to-transparent overlay — deepens to navy tint on hover */
.svc-cell__overlay{
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(0,0,0,.78) 0%, rgba(0,0,0,.2) 55%, transparent 100%);
  transition:background 1.2s ease;
  will-change:background;
}
.svc-cell:hover .svc-cell__overlay{
  background:linear-gradient(to top, rgba(10,41,64,.88) 0%, rgba(10,41,64,.32) 55%, transparent 100%);
}

/* Text content at bottom */
.svc-cell__content{
  position:absolute; bottom:0; left:0; right:0; padding:1.5rem 1.8rem; z-index:1;
}
.svc-cell__num{
  display:block; font-family:var(--font-body); font-size:.68rem; font-weight:700;
  color:rgba(255,255,255,.45); letter-spacing:.14em; text-transform:uppercase;
  margin-bottom:.35rem;
  opacity:0; transform:translateY(12px);
  transition:opacity .6s ease, transform .6s ease;
  will-change:opacity,transform;
}
.svc-cell:hover .svc-cell__num{ opacity:1; transform:translateY(0); }

.svc-cell__title{
  font-family:var(--font-display); font-size:clamp(1.1rem,1.5vw,1.35rem);
  font-weight:600; color:#fff; margin:0; line-height:1.2;
  transform:translateY(8px);
  transition:transform .6s ease, color .6s ease;
  will-change:transform,color;
}
.svc-cell:hover .svc-cell__title{ transform:translateY(0); color:var(--blue-light); }

/* Thin blue accent line that draws in from left on hover */
.svc-cell__content::before{
  content:""; position:absolute; left:0; bottom:0; height:3px; width:100%;
  background:linear-gradient(90deg, var(--blue) 0%, var(--blue-light) 100%);
  transform:scaleX(0); transform-origin:left center;
  transition:transform .55s var(--ease);
}
.svc-cell:hover .svc-cell__content::before{ transform:scaleX(1); }

/* Stagger reveal-fade on cells */
.svc-cell.reveal-fade{ transition-delay:calc(var(--delay,0) * 60ms); }

@media (max-width:1100px){ .svc-grid{ grid-template-columns:repeat(2,1fr); grid-template-rows:repeat(5,300px); } }
@media (max-width:560px){
  .svc-grid{ grid-template-columns:1fr 1fr; grid-template-rows:repeat(5,220px); }
  .svc-cell__title{ font-size:1rem; }
  .svc-grid-header{ padding-top:3.5rem; padding-bottom:2rem; flex-direction:column; align-items:flex-start; }
}

/* ===================================================================
   ABOUT / DOCTOR — advanced split layout with stats & credentials
=================================================================== */
.section--about{ background:var(--white); overflow:hidden; }
.about__bg-ring{
  position:absolute; top:50%; right:-180px; width:440px; height:440px; border-radius:50%;
  border:55px solid var(--mist); transform:translateY(-50%); pointer-events:none; z-index:0;
}
.about__grid{
  display:grid; grid-template-columns:.92fr 1.08fr; gap:5rem; align-items:start;
  position:relative; z-index:1;
}

/* Visual column */
.about__visual{ display:flex; flex-direction:column; gap:1.5rem; }
.about__img-wrap{ position:relative; border-radius:var(--radius-lg); overflow:visible; }
.about__img-wrap img{
  width:100%; height:560px; object-fit:cover; border-radius:var(--radius-lg);
  display:block; box-shadow:var(--shadow-md); position:relative; z-index:1;
}
.about__img-corner{
  position:absolute; width:52px; height:52px; z-index:0;
}
.about__img-corner--tl{
  top:-13px; left:-13px;
  border-top:4px solid var(--blue); border-left:4px solid var(--blue); border-radius:6px 0 0 0;
}
.about__img-corner--br{
  bottom:-13px; right:-13px;
  border-bottom:4px solid var(--blue-light); border-right:4px solid var(--blue-light); border-radius:0 0 6px 0;
}
.about__badge{
  position:absolute; bottom:1.6rem; right:-1.8rem;
  background:var(--navy); color:#fff; border-radius:16px; padding:1rem 1.4rem;
  display:flex; flex-direction:column; align-items:center; box-shadow:var(--shadow-md); z-index:3;
  text-align:center;
}
.about__badge-num{
  font-family:var(--font-display); font-size:1.9rem; font-weight:600; line-height:1;
  color:var(--blue-light);
}
.about__badge-label{
  font-size:.68rem; letter-spacing:.06em; text-transform:uppercase;
  color:#9fc0d4; margin-top:.25rem; white-space:nowrap;
}
.about__cred-chips{ display:flex; flex-wrap:wrap; gap:.65rem; padding-left:.2rem; }
.cred-chip{
  display:inline-flex; align-items:center; gap:.45rem;
  background:var(--mist); border:1px solid var(--line); border-radius:999px;
  padding:.5rem 1rem; font-size:.8rem; font-weight:600; color:var(--navy);
}
.cred-chip svg{ width:13px; height:13px; color:var(--blue); flex-shrink:0; }

/* Content column */
.about__content h2{ font-size:clamp(2rem,3.5vw,2.8rem); line-height:1.1; margin-bottom:1.5rem; }
.about__content p{ color:var(--ink-soft); font-size:1.02rem; }

/* Stats */
.about__stats{
  display:grid; grid-template-columns:repeat(3,1fr); gap:.8rem;
  padding:1.4rem 0; margin-bottom:1.5rem;
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.about__stat{ text-align:center; }
.about__stat strong{
  display:block; font-family:var(--font-display); font-size:2rem; font-weight:600;
  color:var(--navy); line-height:1; margin-bottom:.3rem;
}
.about__stat strong sup{ font-size:.9rem; vertical-align:super; }
.about__stat strong .about__stat-suffix{
  display:block; font-size:.62rem; font-weight:700; letter-spacing:.03em;
  text-transform:uppercase; color:var(--ink-soft); margin-top:.15rem;
}
.about__stat span{ font-size:.72rem; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.06em; font-weight:600; }

/* Pillars */
.about__pillars{ margin-top:2rem; display:flex; flex-direction:column; gap:1.2rem; }
.about__pillars li{ display:flex; gap:1rem; align-items:flex-start; }
.about__pillar-icon{
  flex-shrink:0; width:40px; height:40px; border-radius:11px; background:var(--mist);
  color:var(--blue); display:flex; align-items:center; justify-content:center;
}
.about__pillar-icon svg{ width:20px; height:20px; }
.about__pillars strong{ display:block; color:var(--navy); font-size:.96rem; margin-bottom:.1rem; }
.about__pillars span{ color:var(--ink-soft); font-size:.89rem; }

/* Actions */
.about__actions{ display:flex; gap:1rem; flex-wrap:wrap; margin-top:2.4rem; }
.btn--outline-navy{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  border:2px solid var(--navy); border-radius:999px; padding:.85rem 1.6rem;
  font-weight:600; font-size:.98rem; color:var(--navy); background:transparent;
  transition:background .25s, color .25s, transform .25s;
}
.btn--outline-navy:hover{ background:var(--navy); color:#fff; transform:translateY(-2px); }

@media (max-width:940px){
  .about__grid{ grid-template-columns:1fr; gap:3rem; }
  .about__img-wrap img{ height:360px; }
  .about__badge{ right:1rem; bottom:1rem; }
  .about__bg-ring{ display:none; }
}
@media (max-width:480px){
  .about__actions{ flex-direction:column; }
}

/* ---------- Pulse divider band ---------- */
.pulse-band{
  position:relative; background:var(--navy-deep); padding:3.5rem 0; overflow:hidden;
}
.pulse-band__line{
  position:absolute; top:0; left:0; width:100%; height:100%; opacity:.5;
}
.pulse-band__line polyline{
  fill:none; stroke:var(--blue-light); stroke-width:2;
  stroke-dasharray:1600; stroke-dashoffset:1600;
  transition:stroke-dashoffset 1.8s var(--ease);
}
.pulse-band__line polyline.is-drawn{ stroke-dashoffset:0; }
.pulse-band__inner{
  position:relative; z-index:1; display:flex; align-items:center; justify-content:space-between;
  gap:2rem; flex-wrap:wrap;
}
.pulse-band__inner p{ color:#fff; font-size:1.15rem; max-width:560px; margin:0; font-family:var(--font-display); }

/* ===================================================================
   TESTIMONIALS — full-width RAF marquee (border-to-border)
=================================================================== */
.reviews-section{
  background:var(--mist); padding:7.5rem 0 0; overflow:hidden;
}
@media (max-width:760px){ .reviews-section{ padding:5rem 0 0; } }
/* Center the section header in reviews */
.reviews-section .section__head{ text-align:center; margin:0 auto 3.5rem; }
.reviews-section .section__head .rating-badge{ justify-content:center; }

.rating-badge{
  display:inline-flex; align-items:center; gap:.7rem; background:#fff; border:1px solid var(--line);
  padding:.7rem 1.2rem; border-radius:999px; font-size:.92rem; font-weight:600; color:var(--ink-soft);
  box-shadow:var(--shadow-sm); margin-top:.4rem;
}
.rating-badge__stars{ color:var(--gold); letter-spacing:1px; }
.rating-badge a{ color:var(--blue); text-decoration:underline; }

/* Outer wrapper: full-width, clips the scrolling track, adds edge fades */
.testimonial-marquee-wrap{
  position:relative; overflow:hidden; width:100%;
  padding:3rem 0 5rem; cursor:default;
}
.testimonial-marquee-wrap::before,
.testimonial-marquee-wrap::after{
  content:""; position:absolute; top:0; bottom:0; width:130px; z-index:2; pointer-events:none;
}
.testimonial-marquee-wrap::before{
  left:0; background:linear-gradient(to right, var(--mist) 0%, transparent 100%);
}
.testimonial-marquee-wrap::after{
  right:0; background:linear-gradient(to left, var(--mist) 0%, transparent 100%);
}

/* The scrolling track — JS drives its translateX */
.testimonial-marquee-track{
  display:flex; gap:1.5rem; width:max-content; will-change:transform; padding:0 1.5rem;
}

/* Individual testimonial card */
.testimonial-card{
  flex:0 0 340px; background:#fff; border-radius:var(--radius-lg);
  padding:2rem 1.8rem 1.7rem; margin:0;
  border:1px solid var(--line); box-shadow:var(--shadow-sm);
  display:flex; flex-direction:column; position:relative;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.testimonial-card:hover{ transform:translateY(-5px); box-shadow:var(--shadow-md); }

.testimonial-card__stars{
  color:var(--gold); letter-spacing:2px; font-size:.88rem; margin-bottom:.9rem; display:block;
}
.testimonial-card p{
  font-family:var(--font-display); font-size:1rem; color:var(--navy);
  line-height:1.5; margin-bottom:1.3rem; flex:1;
}
.testimonial-card cite{
  font-size:.74rem; color:var(--ink-soft); font-style:normal;
  letter-spacing:.05em; text-transform:uppercase; font-weight:600; margin-top:auto;
}

@media (max-width:760px){
  .testimonial-card{ flex:0 0 272px; padding:1.6rem 1.3rem 1.3rem; }
}

/* ===================================================================
   NEW PATIENTS — step cards + insurance banner
=================================================================== */
.np-section{ background:var(--mist); overflow:hidden; padding:7.5rem 0 0; }

.np-header{ text-align:center; max-width:640px; margin:0 auto 4rem; }
.np-header h2{ margin-bottom:.75rem; }
.np-header__sub{ color:var(--ink-soft); font-size:1.05rem; line-height:1.75; margin:0; }

/* Three step cards in a row */
.np-steps{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem;
  position:relative; padding-bottom:5.5rem;
}
/* Dashed connector line between cards */
.np-steps::after{
  content:""; position:absolute;
  top:5.2rem; left:calc(33.33% + .75rem); right:calc(33.33% + .75rem);
  height:0; border-top:2px dashed var(--line); z-index:0;
}
.np-step{
  background:#fff; border-radius:var(--radius-lg); padding:2.4rem 2rem;
  position:relative; overflow:visible; z-index:1;
  box-shadow:0 4px 24px rgba(14,58,86,.07);
  transition:transform .35s var(--ease), box-shadow .35s;
  display:block; width:100%; min-height:auto;
}
.np-step:hover{ transform:translateY(-5px); box-shadow:0 18px 50px rgba(14,58,86,.13); }

.np-step__num{
  position:absolute; top:.8rem; right:1.4rem;
  font-family:var(--font-display); font-size:5.5rem; font-weight:700;
  line-height:1; color:rgba(14,58,86,.055); pointer-events:none; user-select:none;
}
.np-step__icon{
  width:54px; height:54px; border-radius:14px;
  background:var(--mist-deep); color:var(--blue);
  display:flex; align-items:center; justify-content:center; margin-bottom:1.5rem;
  transition:background .35s var(--ease), color .35s, transform .4s var(--ease-bounce);
}
.np-step__icon svg{ width:24px; height:24px; }
.np-step:hover .np-step__icon{ background:var(--blue); color:#fff; transform:rotate(-8deg) scale(1.1); }
.np-step h3{ font-size:1.12rem; color:var(--navy); margin-bottom:.55rem; }
.np-step p{ font-size:.93rem; color:var(--ink-soft); line-height:1.65; margin:0; }

/* Insurance banner — dark navy band at bottom of .np-section */
.np-insurance-banner{
  background:var(--navy); padding:5.5rem 0;
  position:relative; overflow:hidden;
}
.np-insurance-banner__glow{
  position:absolute; top:-30%; right:-8%; width:600px; height:600px; border-radius:50%;
  background:radial-gradient(circle, rgba(30,111,168,.22) 0%, transparent 65%);
  pointer-events:none;
}
.np-insurance-wrap{
  display:grid; grid-template-columns:1fr 1.3fr; gap:5rem; align-items:center;
}
.np-insurance-info h3{ font-size:clamp(1.7rem,2.8vw,2.4rem); color:#fff; margin-bottom:.9rem; }
.np-insurance-info p{ color:#8fb3c9; font-size:1rem; line-height:1.75; margin-bottom:2rem; max-width:460px; }

.np-plans{ display:flex; flex-wrap:wrap; gap:.6rem; margin-bottom:1.4rem; }
.np-plan-chip{
  background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.14);
  border-radius:999px; padding:.45rem 1.1rem; color:#d6e8f4;
  font-size:.84rem; font-weight:500;
  transition:background .25s, border-color .25s, color .25s;
}
.np-plan-chip:hover{ background:rgba(79,149,196,.22); border-color:rgba(79,149,196,.45); color:#fff; }
.np-plans__note{ font-size:.82rem; color:rgba(255,255,255,.35); margin:0; }

@media (max-width:960px){
  .np-steps{ display:grid; grid-template-columns:1fr; gap:1.2rem; padding-bottom:4rem; width:100%; }
  .np-steps::after{ display:none; }
  .np-insurance-wrap{ grid-template-columns:1fr; gap:3rem; }
}
@media (max-width:560px){
  .np-section{ padding-top:5rem; }
  .np-step{ display:block; padding:1.8rem 1.5rem; min-height:auto; }
  .np-header__sub{ font-size:.98rem; }
}

/* ===================================================================
   CONTACT — unique split design with info tiles
=================================================================== */
.contact-section{
  background:var(--navy); position:relative; overflow:hidden; padding:7.5rem 0;
}
.contact-section__ring{
  position:absolute; top:50%; right:-6%; width:520px; height:520px; border-radius:50%;
  border:70px solid rgba(30,111,168,.1); transform:translateY(-50%); pointer-events:none;
}
.contact-section__ring::after{
  content:""; position:absolute; top:50%; left:50%; width:310px; height:310px;
  border-radius:50%; border:44px solid rgba(30,111,168,.07);
  transform:translate(-50%,-50%);
}

.contact-wrap{
  display:grid; grid-template-columns:1fr 1fr; gap:5.5rem; align-items:start;
}

/* Info side */
.contact-info h2{ font-size:clamp(2rem,3.2vw,2.8rem); line-height:1.1; margin-bottom:1rem; }
.contact__lead{ color:#8fb3c9; font-size:1rem; line-height:1.7; max-width:400px; margin-bottom:0; }

.contact-tiles{
  display:grid; grid-template-columns:1fr 1fr; gap:.85rem; margin-top:2.5rem;
}
.contact-tile{
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.09);
  border-radius:var(--radius); padding:1.25rem 1.1rem;
  display:flex; flex-direction:column; gap:.3rem; color:#fff;
  text-decoration:none; transition:background .3s var(--ease), border-color .3s, transform .3s var(--ease);
}
a.contact-tile:hover{
  background:rgba(79,149,196,.18); border-color:rgba(79,149,196,.45); transform:translateY(-3px);
}
.contact-tile__icon{
  width:38px; height:38px; border-radius:10px; background:rgba(30,111,168,.28);
  color:var(--blue-light); display:flex; align-items:center; justify-content:center; margin-bottom:.45rem;
}
.contact-tile__icon svg{ width:17px; height:17px; }
.contact-tile strong{
  font-size:.7rem; color:rgba(255,255,255,.4); font-weight:700;
  letter-spacing:.09em; text-transform:uppercase;
}
.contact-tile span{ font-size:.9rem; color:#d6e8f4; font-weight:500; line-height:1.4; }

/* Form side */
.contact-form-side{ position:relative; }
.contact-form-card{
  background:#fff; color:var(--ink); border-radius:var(--radius-lg); padding:2.8rem;
  box-shadow:0 40px 80px -20px rgba(0,0,0,.55); position:relative; overflow:hidden;
}
.contact-form-card::before{
  content:""; position:absolute; top:0; left:0; right:0; height:4px;
  background:linear-gradient(90deg, var(--blue), var(--blue-light), var(--blue));
}
.contact-form-card__watermark{
  position:absolute; top:-28px; right:16px;
  font-family:var(--font-display); font-size:11rem; font-weight:700; line-height:1;
  color:rgba(14,58,86,.04); pointer-events:none; user-select:none;
}
.contact-form-card h3{
  font-size:1.6rem; margin-bottom:.4rem; color:var(--navy); position:relative; z-index:1;
}
.contact-form-card__sub{
  color:var(--ink-soft); font-size:.95rem; margin-bottom:1.6rem; position:relative; z-index:1;
}
.contact-form-card .form-row{ position:relative; z-index:1; }
.contact-form-card .form-row label{
  font-size:.82rem; font-weight:600; color:var(--navy); letter-spacing:.02em;
}
.contact-form-card .form-row input,
.contact-form-card .form-row textarea{
  font-family:inherit; font-size:.95rem; padding:.8rem 1rem; width:100%;
  border:1.5px solid var(--line); border-radius:10px;
  background:#fbfdfe; transition:border-color .25s, background .25s, box-shadow .25s;
}
.contact-form-card .form-row input:focus,
.contact-form-card .form-row textarea:focus{
  border-color:var(--blue); background:#fff; outline:none; box-shadow:0 0 0 4px rgba(30,111,168,.1);
}
.contact-form-card__fineprint{
  font-size:.77rem; color:var(--ink-soft); text-align:center; margin:.9rem 0 0;
}
.contact-form-card__success{
  text-align:center; padding:2rem 0; position:relative; z-index:1;
}
.contact-form-card__success svg{
  width:56px; height:56px; color:var(--blue); margin:0 auto 1rem;
}
.contact-form-card__success p{ color:var(--ink); }
.contact-form-card__success strong{ color:var(--navy); font-size:1.1rem; }
.form-feedback{ min-height:1.2em; margin:.8rem 0 0; color:var(--blue); font-size:.86rem; text-align:center; }
.form-feedback.is-error{ color:#a53b35; }
button:disabled{ cursor:wait; opacity:.7; }

@media (max-width:960px){
  .contact-wrap{ grid-template-columns:1fr; gap:3rem; }
  .contact-form-card{ padding:2.2rem 1.6rem; }
  .contact-section__ring{ display:none; }
}
@media (max-width:480px){
  .contact-tiles{ grid-template-columns:1fr; }
}

/* ===================================================================
   FOOTER
=================================================================== */
.site-footer{ background:var(--navy-deep); color:#cfe3ef; padding:5rem 0 0; }
.site-footer__top{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:3rem; padding-bottom:3.5rem; border-bottom:1px solid rgba(255,255,255,.1); }
.site-footer__note{ color:#9fc0d4; font-size:.92rem; margin-top:1rem; max-width:280px; }
.site-footer__col h3{ color:#fff; font-size:.85rem; letter-spacing:.08em; text-transform:uppercase; font-family:var(--font-body); margin-bottom:1.1rem; }
.site-footer__col ul{ display:flex; flex-direction:column; gap:.7rem; font-size:.92rem; color:#bcd6e6; }
.site-footer__col a{ transition:color .2s; }
.site-footer__col a:hover{ color:#fff; }
.hours-list li{ display:flex; justify-content:space-between; gap:1rem; }

.site-footer__bottom{
  display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap;
  padding:1.8rem 0 2.2rem; font-size:.82rem; color:#7fa3ba;
}

@media (max-width:900px){
  .site-footer__top{ grid-template-columns:1fr 1fr; }
}
@media (max-width:560px){
  .site-footer__top{ grid-template-columns:1fr; }
}

/* ===================================================================
   MODAL — appointment request
=================================================================== */
.modal{ position:fixed; inset:0; z-index:500; display:none; }
.modal.is-open{ display:block; }
.modal__overlay{ position:absolute; inset:0; background:rgba(10,41,64,.6); backdrop-filter:blur(3px); }
.modal__panel{
  position:relative; z-index:1; background:#fff; max-width:560px; width:92%;
  margin:5vh auto; border-radius:var(--radius-lg); padding:2.6rem; max-height:90vh; overflow-y:auto;
  box-shadow:var(--shadow-md); animation:modalIn .3s var(--ease);
}
@keyframes modalIn{ from{ opacity:0; transform:translateY(14px) scale(.98); } to{ opacity:1; transform:none; } }
.modal__close{
  position:absolute; top:1.2rem; right:1.2rem; background:none; border:none; font-size:1.8rem;
  line-height:1; color:var(--ink-soft);
}
.modal__sub{ color:var(--ink-soft); margin-bottom:1.6rem; }
.modal__fineprint{ font-size:.78rem; color:var(--ink-soft); text-align:center; margin:1rem 0 0; }
.modal__success{ text-align:center; padding:1.5rem 0; }
.modal__success p{ color:var(--ink); }

.form-row{ margin-bottom:1.1rem; display:flex; flex-direction:column; gap:.4rem; }
.form-row--split{ flex-direction:row; gap:1rem; }
.form-row--split > div{ flex:1; display:flex; flex-direction:column; gap:.4rem; }
.form-row label{ font-size:.85rem; font-weight:600; color:var(--navy); }
.form-row input, .form-row select, .form-row textarea{
  font-family:inherit; font-size:.95rem; padding:.7rem .9rem; border:1.5px solid var(--line);
  border-radius:9px; background:#fbfdfe; transition:border-color .2s;
}
.form-row input:focus, .form-row select:focus, .form-row textarea:focus{ border-color:var(--blue); outline:none; }
.hp-field{ position:absolute; left:-9999px; opacity:0; }

@media (max-width:520px){ .form-row--split{ flex-direction:column; } .modal__panel{ padding:2rem 1.4rem; } }

/* ===================================================================
   PAGE LOADER — split-panel reveal on page load
=================================================================== */
.page-loader{
  position:fixed; inset:0; z-index:9999;
  display:flex; align-items:center; justify-content:center;
  pointer-events:all;
}
.page-loader__panel{
  position:absolute; top:0; bottom:0; width:50%;
  background:var(--navy-deep);
  will-change:transform;
  transition:transform .9s cubic-bezier(.76,0,.24,1);
}
.page-loader__panel--left{ left:0; }
.page-loader__panel--right{ right:0; left:auto; }

.page-loader__center{
  position:relative; z-index:1;
  display:flex; flex-direction:column; align-items:center; gap:.9rem;
  text-align:center;
  transition:opacity .3s ease, transform .3s ease;
}
.page-loader__mark{
  width:62px; height:62px; border-radius:18px;
  background:#fff; color:var(--navy);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-weight:700; font-size:1.4rem;
  animation:ldMark 1.6s ease-in-out infinite;
}
@keyframes ldMark{
  0%,100%{ transform:scale(1); box-shadow:0 0 0 0 rgba(255,255,255,.3); }
  50%{ transform:scale(1.06); box-shadow:0 0 0 18px rgba(255,255,255,0); }
}
.page-loader__name{
  color:rgba(255,255,255,.55); font-family:var(--font-display);
  font-size:.88rem; letter-spacing:.07em; margin:0;
}
/* ECG polyline draw animation */
.page-loader__ecg{ width:165px; height:33px; display:block; overflow:visible; }
.page-loader__ecg polyline{
  fill:none; stroke:var(--blue-light); stroke-width:1.8;
  stroke-linecap:round; stroke-linejoin:round;
  stroke-dasharray:500; stroke-dashoffset:500;
  animation:ldEcg 1.6s ease-in-out infinite;
}
@keyframes ldEcg{
  0%{ stroke-dashoffset:500; opacity:1; }
  55%{ stroke-dashoffset:0; opacity:1; }
  85%{ stroke-dashoffset:-500; opacity:0; }
  100%{ stroke-dashoffset:-500; opacity:0; }
}
.page-loader__bar{
  width:130px; height:2px;
  background:rgba(255,255,255,.1); border-radius:2px; overflow:hidden;
}
.page-loader__bar-fill{
  height:100%; width:0;
  background:linear-gradient(90deg,var(--blue),var(--blue-light));
  border-radius:2px;
  animation:ldBar 1.6s ease-in-out forwards;
}
@keyframes ldBar{ from{ width:0; } to{ width:100%; } }

/* Dismiss state */
.page-loader.is-done .page-loader__center{ opacity:0; transform:scale(.92); }
.page-loader.is-done .page-loader__panel--left{ transform:translateX(-100%); }
.page-loader.is-done .page-loader__panel--right{ transform:translateX(100%); }

@media (prefers-reduced-motion:reduce){
  .page-loader{ display:none !important; }
  .is-loading{ overflow:auto; }
}

/* ===================================================================
   SCROLL-REVEAL ANIMATIONS
=================================================================== */
/* Base reveal classes (fallback for no-JS or AOS-disabled) */
[data-aos] {
  pointer-events: none;
}
[data-aos].aos-animate {
  pointer-events: auto;
}

.reveal, .reveal-left, .reveal-right, .reveal-top, .reveal-fade {
  will-change: transform, opacity;
}

/* Specific animations for our reveal classes when AOS is active */
[data-aos="fade-up"] { transform: translateY(40px); opacity: 0; transition-property: transform, opacity; }
[data-aos="fade-right"] { transform: translateX(-40px); opacity: 0; transition-property: transform, opacity; }
[data-aos="fade-left"] { transform: translateX(40px); opacity: 0; transition-property: transform, opacity; }
[data-aos="fade-down"] { transform: translateY(-40px); opacity: 0; transition-property: transform, opacity; }
[data-aos="fade"] { opacity: 0; transition-property: opacity; }

.aos-animate { transform: translate(0) !important; opacity: 1 !important; }

/* ===================================================================
   CTA SECTION — deep navy + expanding rings + glow button
=================================================================== */
.cta-section{
  background:var(--navy-deep); padding:9rem 2rem;
  text-align:center; position:relative; overflow:hidden;
}
/* Dot grid overlay */
.cta-section::before{
  content:""; position:absolute; inset:0;
  background-image:radial-gradient(rgba(79,149,196,.18) 1.5px, transparent 1.5px);
  background-size:28px 28px;
  pointer-events:none; z-index:0;
}
/* Central radial bloom */
.cta-section::after{
  content:""; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:800px; height:800px; border-radius:50%;
  background:radial-gradient(circle, rgba(30,111,168,.3) 0%, transparent 60%);
  pointer-events:none; z-index:0;
}
/* Animated concentric rings */
.cta-deco{ position:absolute; inset:0; z-index:1; pointer-events:none; }
.cta-deco__ring{
  position:absolute; top:50%; left:50%; border-radius:50%;
  border:1px solid rgba(79,149,196,.22);
}
.cta-deco__ring--1{ width:340px; height:340px; margin-top:-170px; margin-left:-170px;
  animation:ctaRingExpand 6s ease-out infinite; }
.cta-deco__ring--2{ width:600px; height:600px; margin-top:-300px; margin-left:-300px;
  animation:ctaRingExpand 6s ease-out infinite 1.4s; }
.cta-deco__ring--3{ width:920px; height:920px; margin-top:-460px; margin-left:-460px;
  animation:ctaRingExpand 6s ease-out infinite 2.8s; }
@keyframes ctaRingExpand{
  0%{ transform:scale(.65); opacity:0; }
  12%{ opacity:1; }
  100%{ transform:scale(1.3); opacity:0; }
}

.cta-section__content{ position:relative; z-index:2; max-width:680px; margin:0 auto; }
.cta-section .eyebrow{ color:#7db8d8; }
.cta-section h2{ color:#fff; font-size:clamp(2rem,3.5vw,3rem); line-height:1.1; margin-bottom:1rem; }
.cta-section__content > p{ color:#9fc8e0; font-size:1.1rem; line-height:1.75; margin-bottom:2.8rem; }

/* Glow button */
.cta-btn-wrap{ display:flex; justify-content:center; }
.btn--animated-blink{
  position:relative; display:inline-flex; align-items:center; justify-content:center;
  border:none; border-radius:999px; font-weight:700;
  padding:1.15rem 2.6rem; font-size:1.08rem; letter-spacing:.01em;
  background:linear-gradient(135deg, var(--blue) 0%, var(--blue-light) 100%);
  color:#fff; font-family:inherit; cursor:pointer; z-index:1;
  transition:transform .3s var(--ease), filter .3s var(--ease);
}
.btn--animated-blink:hover{
  transform:translateY(-3px) scale(1.04);
  filter:brightness(1.12);
}
/* Expanding glow rings on button */
.btn__glow-ring{
  position:absolute; inset:-2px; border-radius:inherit;
  border:2px solid rgba(111,174,212,.7);
  pointer-events:none;
  animation:btnGlowRing 2.6s ease-out infinite;
}
.btn__glow-ring--2{ animation-delay:1.3s; }
@keyframes btnGlowRing{
  0%{ transform:scale(1); opacity:.85; }
  100%{ transform:scale(2.1); opacity:0; }
}

@media (max-width:640px){
  .cta-section{ padding:5.5rem 1.5rem; }
  .cta-section h2{ font-size:1.85rem; }
}



@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  /* Keep animations but make them instant for accessibility */
  [data-aos]{ transition-duration:0 !important; }
  .reveal{ opacity:1; transform:none; transition:none; }
  .reveal-left, .reveal-right, .reveal-top, .reveal-fade{
    opacity:1; transform:none; transition:none;
  }
}

/* ===================================================================
   RESPONSIVE NAV
=================================================================== */
@media (max-width:880px){
  .primary-nav{
    position:fixed; inset:0; top:0; background:var(--navy); padding:110px 2rem 2rem;
    transform:translateX(100%); transition:transform .35s var(--ease); z-index:150;
  }
  .primary-nav.is-open{ transform:translateX(0); }
  .primary-nav ul{ flex-direction:column; gap:1.6rem; }
  .primary-nav a{ color:#fff !important; font-size:1.3rem; }
  .header-phone{ display:none; }
  .nav-toggle{ display:flex; }
  .site-header__actions .btn--small{ display:none; }
}
@media (min-width:881px){
  .primary-nav{ display:block; }
}

/* ===================================================================
   SECONDARY HERO — for services, about, contact pages
=================================================================== */
.hero--secondary{
  min-height:auto; padding:6.5rem 0 3.5rem; background:var(--navy);
}
.hero--secondary .hero__inner{
  padding-top:2rem; text-align:center; max-width:680px;
}
.hero--secondary .hero__headline{ font-size:clamp(2rem,3vw,2.8rem); margin-bottom:.9rem; }
.hero--secondary .hero__sub{ font-size:1.05rem; max-width:100%; }
.hero--secondary .eyebrow{ justify-content:center; }

@media (max-width:640px){
  .hero--secondary{ padding:4.5rem 0 2.5rem; }
  .hero--secondary .hero__inner{ padding-top:1rem; }
}

/* ===================================================================
   SERVICES DETAIL PAGE — alternating layout with image + text
=================================================================== */
.services-detail-section{
  background:var(--white); padding:7.5rem 0;
}

.service-detail{
  display:grid; grid-template-columns:1fr 1fr; gap:5rem;
  align-items:center; margin-bottom:5.5rem;
}
.service-detail:nth-child(even) .service-detail__image{
  order:2;
}
.service-detail:nth-child(even) .service-detail__content{
  order:1;
}

.service-detail__image{
  border-radius:var(--radius-lg); overflow:hidden;
  box-shadow:var(--shadow-md);
}
.service-detail__image img{
  width:100%; height:380px; object-fit:cover; display:block;
  transition:transform .6s var(--ease);
}
.service-detail:hover .service-detail__image img{
  transform:scale(1.06);
}

.service-detail__content h2{
  font-size:clamp(1.6rem,2.5vw,2.2rem); margin-bottom:1rem; color:var(--navy);
}
.service-detail__content p{
  color:var(--ink-soft); font-size:1.02rem; line-height:1.8; margin-bottom:1.5rem;
}
.service-detail__content .btn{ margin-top:.5rem; }

@media (max-width:940px){
  .service-detail{
    grid-template-columns:1fr; gap:3rem;
  }
  .service-detail:nth-child(even) .service-detail__image{
    order:unset;
  }
  .service-detail:nth-child(even) .service-detail__content{
    order:unset;
  }
  .service-detail__image img{ height:300px; }
}

@media (max-width:560px){
  .services-detail-section{ padding:5rem 0; }
  .service-detail{ margin-bottom:3.5rem; }
}

/* ===================================================================
   ABOUT PAGE
=================================================================== */
.about-page-section{ background:var(--white); padding:7.5rem 0; }

.about-page-grid{
  display:grid; grid-template-columns:1fr 1.15fr; gap:5.5rem; align-items:start;
}

.about-page__image{
  position:relative; border-radius:var(--radius-lg); overflow:hidden;
  box-shadow:var(--shadow-md);
}
.about-page__image img{
  width:100%; height:500px; object-fit:cover; display:block;
}

.about-page__badge{
  position:absolute; bottom:2rem; right:-1.5rem;
  background:var(--blue); color:#fff; border-radius:16px;
  padding:.95rem 1.3rem; display:flex; flex-direction:column;
  align-items:center; text-align:center; box-shadow:var(--shadow-md); z-index:2;
}
.about-page__badge-num{
  font-family:var(--font-display); font-size:1.8rem; font-weight:600;
  color:#fff; line-height:1;
}
.about-page__badge-label{
  font-size:.65rem; color:rgba(255,255,255,.9); text-transform:uppercase;
  letter-spacing:.08em; margin-top:.3rem;
}

.about-page__content h2{ font-size:clamp(1.9rem,3vw,2.6rem); margin-bottom:1.3rem; }
.about-page__content p{ color:var(--ink-soft); font-size:1.02rem; line-height:1.8; margin-bottom:1.3rem; }
.about-page__content h3{ font-size:1.2rem; margin-top:2rem; margin-bottom:.9rem; }

.about-page__credentials{
  list-style:none; margin:1rem 0 1.5rem;
}
.about-page__credentials li{
  padding:.5rem 0; color:var(--ink-soft); font-size:1rem;
  position:relative; padding-left:1.5rem;
}
.about-page__credentials li::before{
  content:"✓"; position:absolute; left:0; color:var(--blue); font-weight:700;
}

.about-page-highlights{
  margin-top:5rem; padding-top:4rem; border-top:1px solid var(--line);
}
.about-page-highlights h2{ text-align:center; margin-bottom:3rem; font-size:clamp(1.8rem,2.8vw,2.4rem); }

.highlights-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1.8rem;
}

.highlight-card{
  background:var(--mist); border-radius:var(--radius-lg); padding:2rem 1.6rem;
  text-align:center; transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.highlight-card:hover{
  transform:translateY(-6px); box-shadow:var(--shadow-md);
}

.highlight-card__icon{
  width:52px; height:52px; border-radius:12px; background:rgba(30,111,168,.15);
  color:var(--blue); display:flex; align-items:center; justify-content:center;
  margin:0 auto 1.2rem;
}
.highlight-card__icon svg{ width:24px; height:24px; }

.highlight-card h3{ font-size:1.05rem; margin-bottom:.6rem; }
.highlight-card p{ font-size:.93rem; color:var(--ink-soft); margin:0; line-height:1.6; }

@media (max-width:940px){
  .about-page-grid{ grid-template-columns:1fr; gap:3rem; }
  .about-page__image img{ height:360px; }
  .highlights-grid{ grid-template-columns:repeat(2,1fr); }
}

@media (max-width:640px){
  .about-page-section{ padding:5rem 0; }
  .about-page__badge{ right:.5rem; bottom:.5rem; }
  .highlights-grid{ grid-template-columns:1fr; }
}

/* ===================================================================
   CONTACT PAGE
=================================================================== */
.contact-page-section{ background:var(--white); padding:7.5rem 0; }

.contact-page-grid{
  display:grid; grid-template-columns:1fr; gap:6rem; align-items:start;
}

.contact-page-info{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem;
}

.contact-page-info h2{
  grid-column:1/-1; font-size:clamp(1.9rem,3vw,2.6rem); margin-bottom:0.5rem; color:var(--navy);
}

.contact-info-card{
  background:var(--mist); border-radius:var(--radius-lg);
  padding:1.8rem; margin-bottom:0;
  border:1px solid var(--line);
}

.contact-info-card__icon{
  width:44px; height:44px; border-radius:11px; background:rgba(30,111,168,.18);
  color:var(--blue); display:flex; align-items:center; justify-content:center;
  margin-bottom:.9rem;
}
.contact-info-card__icon svg{ width:20px; height:20px; }

.contact-info-card h3{ font-size:1.05rem; margin-bottom:.4rem; }
.contact-info-card p{ margin:0 0 .4rem; font-size:.96rem; color:var(--ink-soft); }
.contact-info-card a{ color:var(--blue); text-decoration:none; font-weight:600; }
.contact-info-card a:hover{ text-decoration:underline; }

.contact-info-card__note{
  display:block; font-size:.82rem; color:var(--ink-soft); margin-top:.4rem;
}

.contact-info-card__link{
  display:inline-block; margin-top:.6rem;
}

.contact-page-service-area{
  background:rgba(30,111,168,.08); border-radius:var(--radius-lg);
  padding:1.6rem; margin-top:2rem; border:1px solid rgba(30,111,168,.15);
}
.contact-page-service-area h3{ font-size:1rem; margin-bottom:.7rem; }
.contact-page-service-area p{ margin:0 0 .8rem; font-size:.93rem; }
.contact-page-service-area ul{ margin-left:1.5rem; }
.contact-page-service-area li{ margin:.4rem 0; font-size:.96rem; color:var(--ink-soft); }

.contact-form-card--large{
  padding:3rem;
}
.contact-form-card--large h2{ font-size:1.6rem; margin-bottom:.5rem; }
.contact-form-card--large .form-row select{
  font-family:inherit; font-size:.95rem; padding:.7rem .9rem;
  border:1.5px solid var(--line); border-radius:9px; background:#fbfdfe;
  cursor:pointer; appearance:none; padding-right:2.2rem;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%231E6FA8' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right .7rem center;
  background-size:1.2em auto, 100%;
  padding-right:2.5rem;
}
.contact-form-card--large .form-row select:focus{ border-color:var(--blue); outline:none; }
.conditions-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem;
}
.conditions-grid .condition-card{
  background:#f1f1f1; padding:1.5rem; border-radius:22px;
}
.conditions-grid .condition-card svg{
  display:none;
}
.conditions-grid .condition-card h3{
  font-size:1.05rem; margin:0 0 .6rem; color:var(--navy);
}
.conditions-grid .condition-card p{
  margin:0; font-size:.93rem; color:var(--ink-soft); line-height:1.6;
}

section.conditions-section{
  padding-top:69px; padding-bottom:5rem;
}

.approach-grid{
  display:grid; grid-template-columns:repeat(2,1fr); gap:1.8rem; margin-top:2rem;
}
.approach-card{
  background:var(--mist); border-radius:var(--radius-lg); padding:2rem;
}
.approach-card__number{
  font-family:var(--font-display); font-size:1.7rem; color:var(--blue); margin-bottom:.6rem;
}
.approach-card h3{ font-size:1.1rem; margin:0 0 .6rem; color:var(--navy); }
.approach-card p{ margin:0; font-size:.93rem; color:var(--ink-soft); line-height:1.6; }

section.section.section--approach{
  display:block; padding:5rem 0;
}

@media (max-width:940px){
  .conditions-grid{ grid-template-columns:repeat(2,1fr); }
  .approach-grid{ grid-template-columns:1fr; }
}

@media (max-width:640px){
  .conditions-grid{ grid-template-columns:1fr; gap:1.2rem; }
  .conditions-grid .condition-card{ padding:1.3rem; }
  section.conditions-section{ padding-top:4rem; padding-bottom:3.5rem; }
  section.section.section--approach{ padding:3.5rem 0; }
}
@media (max-width:960px){
  .contact-page-info{ grid-template-columns:repeat(2,1fr); }
  .contact-form-card--large{ padding:2.2rem; }
}

@media (max-width:640px){
  .contact-page-section{ padding:5rem 0; }
  .contact-page-info{ grid-template-columns:1fr; }
  .contact-page-service-area{ grid-column:1/-1; }
  .contact-form-card--large{ padding:1.8rem 1.4rem; }
}

/* ===================================================================
   FORM SELECT ENHANCEMENT
=================================================================== */
select{
  font-family:inherit; cursor:pointer; appearance:none;
}

/* ===================================================================
   MISC
=================================================================== */
::selection{ background:var(--blue); color:#fff; }
