:root{
    --primary:#E11D2E;
    --secondary:#1D4ED8;
    --accent:#3B82F6;
    --bg:#0A0D0E;
    --surface:#14191B;
    --surface-2:#1B2124;
    --dark:#1B2B3A;
    --light:#FFFFFF;
    --text:#F2F6F5;
    --muted:#93A3A8;
    --error:#EF4444;
    --success:#22C55E;
    --warning:#F59E0B;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    font-family:'Nunito',sans-serif;
    background:var(--bg);
    color:var(--text);
    overflow-x:hidden;
  }
  h1,h2,h3,h4,.font-display{font-family:'Poppins',sans-serif;}
  .font-ui{font-family:'Inter',sans-serif;}

  ::selection{background:var(--accent);color:var(--light);}

  /* ---------- Loader ---------- */
  #loader{
    position:fixed;inset:0;z-index:9999;background:var(--bg);
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    transition:opacity .6s ease, visibility .6s ease;
  }
  #loader.hide{opacity:0;visibility:hidden;pointer-events:none;}
  .loader-logo{
    width:78px;height:78px;border-radius:24px;
    background:linear-gradient(135deg,var(--primary),var(--accent));
    display:flex;align-items:center;justify-content:center;
    overflow:hidden;
    animation:pulseLogo 1.6s ease-in-out infinite;
    box-shadow:0 10px 40px rgba(225,29,46,.35);
  }
  @keyframes pulseLogo{
    0%,100%{transform:scale(1);}
    50%{transform:scale(1.08);}
  }
  .heartbeat-line{width:220px;height:40px;margin-top:22px;}
  .heartbeat-path{
    stroke:var(--primary);stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round;
    stroke-dasharray:300;stroke-dashoffset:300;
    animation:draw 1.8s ease-in-out infinite;
  }
  @keyframes draw{
    0%{stroke-dashoffset:300;}
    50%{stroke-dashoffset:0;}
    100%{stroke-dashoffset:-300;}
  }
  .loader-text{margin-top:14px;font-family:'Inter',sans-serif;font-size:13px;letter-spacing:.14em;color:#8AA0A8;text-transform:uppercase;}

  /* ---------- Glass utilities ---------- */
  .glass{
    background:rgba(20,25,27,.66);
    backdrop-filter:blur(18px) saturate(160%);
    -webkit-backdrop-filter:blur(18px) saturate(160%);
    border:1px solid rgba(255,255,255,.08);
  }
  header#site-header{transition:background .4s ease, box-shadow .4s ease, border-color .4s ease;}
  header#site-header.solid{
    background:rgba(10,13,14,.78);
    backdrop-filter:blur(18px) saturate(160%);
    -webkit-backdrop-filter:blur(18px) saturate(160%);
    box-shadow:0 8px 30px rgba(0,0,0,.35);
    border-bottom:1px solid rgba(255,255,255,.06);
  }

  .rounded-card{border-radius:30px;}

  .grad-primary{background:linear-gradient(135deg,var(--primary),var(--secondary));}
  .grad-accent{background:linear-gradient(135deg,var(--secondary),var(--accent));}
  .text-grad{
    background:linear-gradient(135deg,var(--primary),var(--accent));
    -webkit-background-clip:text;background-clip:text;color:transparent;
  }

  /* Floating blobs */
  .blob{position:absolute;border-radius:50%;filter:blur(60px);opacity:.35;z-index:0;}
  @keyframes floatY{0%,100%{transform:translateY(0px) translateX(0px);}50%{transform:translateY(-26px) translateX(14px);}}
  .float-slow{animation:floatY 8s ease-in-out infinite;}
  .float-slower{animation:floatY 11s ease-in-out infinite;}

  /* Waveform divider (signature motif) */
  .wave-divider{width:100%;height:46px;display:block;}
  .wave-divider path{stroke:var(--primary);stroke-width:2;fill:none;opacity:.28;}

  /* Ripple */
  .ripple{position:relative;overflow:hidden;}
  .ripple:after{
    content:"";position:absolute;inset:0;border-radius:inherit;
    background:radial-gradient(circle at var(--rx,50%) var(--ry,50%), rgba(255,255,255,.55) 0%, rgba(255,255,255,0) 60%);
    opacity:0;transition:opacity .5s ease;
  }
  .ripple:active:after{opacity:1;transition:opacity 0s;}

  /* Card lift */
  .lift{transition:transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease;}
  .lift:hover{transform:translateY(-8px);box-shadow:0 22px 45px rgba(225,29,46,.15);}

  /* Bottom nav (mobile app style) */
  #bottom-nav{
    position:fixed;left:12px;right:12px;bottom:12px;z-index:50;
    border-radius:26px;
    box-shadow:0 12px 34px rgba(225,29,46,.18);
  }
  #bottom-nav .nav-item{color:#7C8E96;}
  #bottom-nav .nav-item.active{color:var(--primary);}
  #bottom-nav .nav-dot{
    position:absolute;top:6px;left:50%;transform:translateX(-50%);
    width:5px;height:5px;border-radius:50%;background:var(--primary);
    opacity:0;transition:opacity .25s ease;
  }
  #bottom-nav .nav-item.active .nav-dot{opacity:1;}

  /* Floating action buttons */
  .fab{
    width:56px;height:56px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    box-shadow:0 12px 28px rgba(0,0,0,.18);
    transition:transform .25s ease;
  }
  .fab:hover{transform:scale(1.08) translateY(-2px);}

  /* Counter number */
  .stat-num{font-family:'Poppins',sans-serif;font-weight:700;}

  /* Accordion */
  .faq-panel{max-height:0;overflow:hidden;transition:max-height .4s ease;}
  .faq-item.open .faq-panel{max-height:600px;}
  .faq-item.open .faq-chevron{transform:rotate(180deg);}
  .faq-chevron{transition:transform .3s ease;}

  /* Testimonial slider */
  .t-track{display:flex;transition:transform .55s cubic-bezier(.2,.8,.2,1);}
  .t-slide{flex:0 0 100%;}
  @media(min-width:768px){.t-slide{flex:0 0 33.3333%;}}

  input:focus, textarea:focus, select:focus{outline:2px solid var(--accent);outline-offset:2px;}

  @media (prefers-reduced-motion: reduce){
    *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important;}
  }

/* ---------- Hero video background ---------- */
.hero-video-wrap{position:absolute;inset:0;z-index:0;overflow:hidden;border-radius:0;}
.hero-video-wrap video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.hero-video-overlay{position:absolute;inset:0;background:linear-gradient(180deg, rgba(10,13,14,.55) 0%, rgba(10,13,14,.85) 100%);}

/* ---------- Brands marquee ---------- */
.marquee-track{
  display:flex;
  gap:2.5rem;
  width:max-content;
  animation:marqueeScroll 26s linear infinite;
}
.marquee-viewport:hover .marquee-track{animation-play-state:paused;}
@keyframes marqueeScroll{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}
.marquee-logo{
  flex:0 0 auto;
  min-width:150px;
  display:flex;align-items:center;justify-content:center;
  background:var(--surface);border:1px solid rgba(255,255,255,.08);
  border-radius:18px;padding:1.1rem 1.6rem;
  transition:transform .3s ease, border-color .3s ease;
}
.marquee-logo:hover{transform:translateY(-4px);border-color:var(--primary);}

/* ---------- Section "view all" link ---------- */
.view-all-link{
  display:inline-flex;align-items:center;gap:.35rem;
  font-family:'Inter',sans-serif;font-weight:600;font-size:13.5px;
  color:var(--primary);
}

/* ---------- Gallery ---------- */
.gallery-card{position:relative;border-radius:22px;overflow:hidden;aspect-ratio:4/3;background:var(--surface);}
.gallery-card img{width:100%;height:100%;object-fit:cover;}
.gallery-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.25);}

/* ---------- Branch card ---------- */
.branch-card{background:var(--surface);border:1px solid rgba(255,255,255,.06);border-radius:26px;overflow:hidden;}
.branch-card .branch-image{aspect-ratio:16/10;background:var(--surface-2);}
.branch-card .branch-image img{width:100%;height:100%;object-fit:cover;}

/* ---------- Video modal (gallery lightbox) ---------- */
#video-modal{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.85);display:none;align-items:center;justify-content:center;padding:1.25rem;}
#video-modal.open{display:flex;}
#video-modal .modal-frame{width:100%;max-width:900px;aspect-ratio:16/9;border-radius:16px;overflow:hidden;}
#video-modal .modal-close{position:absolute;top:20px;right:20px;width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;color:#fff;}

/* ============ MOBILE / NO HORIZONTAL SCROLL FIXES ============ */
html, body{max-width:100%;overflow-x:hidden;}
.marquee-viewport{overflow:hidden;width:100%;}
img{max-width:100%;}
* { min-width:0; }

/* Header logo: truncate gracefully on small screens instead of overflowing */
.brand-name{
  max-width:38vw;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:14px;
}
@media (min-width:480px){ .brand-name{ max-width:52vw; font-size:15px; } }
@media (min-width:768px){ .brand-name{ max-width:none; font-size:17px; } }

/* ============ Centered section headline utility ============ */
.section-head{ text-align:center; max-width:640px; margin-left:auto; margin-right:auto; }

/* ============ Image hover zoom (modern micro-interaction) ============ */
.img-zoom{ overflow:hidden; }
.img-zoom img{ transition:transform .6s cubic-bezier(.2,.8,.2,1); }
.img-zoom:hover img{ transform:scale(1.08); }

/* ============ Upload hint text (admin) ============ */
.upload-hint{ font-size:11px; color:var(--muted); margin-top:4px; line-height:1.4; }

/* ============ Success popup modal ============ */
.success-modal-overlay{
  position:fixed; inset:0; z-index:300;
  background:rgba(5,7,8,.7);
  backdrop-filter:blur(6px);
  display:flex; align-items:center; justify-content:center;
  padding:1.25rem;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .3s ease, visibility .3s ease;
}
.success-modal-overlay.open{ opacity:1; visibility:visible; pointer-events:auto; }
.success-modal-card{
  position:relative;
  width:100%; max-width:380px;
  background:var(--surface);
  border:1px solid rgba(255,255,255,.08);
  border-radius:28px;
  padding:2.25rem 1.75rem 1.75rem;
  text-align:center;
  transform:scale(.85) translateY(16px);
  transition:transform .35s cubic-bezier(.2,.8,.2,1);
  box-shadow:0 30px 70px rgba(0,0,0,.45);
}
.success-modal-overlay.open .success-modal-card{ transform:scale(1) translateY(0); }
.success-modal-close{
  position:absolute; top:14px; right:14px;
  width:30px; height:30px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.06); color:var(--muted);
}
.success-modal-icon{
  width:66px; height:66px; border-radius:50%;
  margin:0 auto 18px;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,var(--success),#16a34a);
  animation:successPop .5s cubic-bezier(.2,.8,.2,1) .1s both;
}
@keyframes successPop{
  0%{ transform:scale(0); opacity:0; }
  70%{ transform:scale(1.12); opacity:1; }
  100%{ transform:scale(1); }
}
.success-check-path{
  stroke-dasharray:24; stroke-dashoffset:24;
  animation:successCheckDraw .5s ease .35s forwards;
}
@keyframes successCheckDraw{ to{ stroke-dashoffset:0; } }
.success-modal-title{ font-family:'Poppins',sans-serif; font-weight:700; font-size:19px; color:var(--text); }
.success-modal-message{ margin-top:8px; font-size:13.5px; color:var(--muted); line-height:1.5; }
.success-modal-ok{
  margin-top:22px; width:100%; padding:12px 0; border-radius:14px;
  color:#fff; font-family:'Inter',sans-serif; font-weight:600; font-size:13.5px;
}

/* ============ Loader quote fade ============ */
.loader-text{ transition:opacity .3s ease; max-width:260px; text-align:center; }

/* ============ Extra modern touches ============ */
.grad-primary, .lift, .ripple { will-change:transform; }
.lift:active{ transform:translateY(-2px) scale(.99); }

/* ============ AMBIENT SITE-WIDE BACKGROUND ANIMATION (decorative, non-interactive) ============ */
.ambient-bg{
  position:fixed;
  inset:0;
  z-index:-1;
  overflow:hidden;
  pointer-events:none;
}

/* Soft drifting gradient orbs, using the same brand colors already in use */
.ambient-orb{
  position:absolute;
  border-radius:50%;
  filter:blur(80px);
  opacity:.16;
  animation:ambientDrift 26s ease-in-out infinite;
}
.ambient-orb.o1{ width:440px; height:440px; background:var(--primary); top:-12%; left:-10%; animation-duration:28s; }
.ambient-orb.o2{ width:380px; height:380px; background:var(--secondary); bottom:-14%; right:-8%; animation-duration:32s; animation-delay:-8s; }
.ambient-orb.o3{ width:320px; height:320px; background:var(--accent); top:42%; left:58%; animation-duration:24s; animation-delay:-14s; }

@keyframes ambientDrift{
  0%,100%{ transform:translate(0,0) scale(1); }
  33%{ transform:translate(50px,-36px) scale(1.08); }
  66%{ transform:translate(-36px,34px) scale(.94); }
}

/* Slow-scrolling soundwave lines — nods to the clinic's speech & hearing focus */
.ambient-wave{
  position:absolute;
  bottom:8%;
  left:0;
  width:220%;
  height:120px;
  opacity:.05;
  animation:ambientWaveScroll 46s linear infinite;
}
.ambient-wave path{
  fill:none;
  stroke:var(--primary);
  stroke-width:2;
}
.ambient-wave path + path{
  stroke:var(--secondary);
}
@keyframes ambientWaveScroll{
  from{ transform:translateX(0); }
  to{ transform:translateX(-31.8%); }
}

/* Tiny equalizer-style bars drifting in a back corner — subtle audio motif */
.ambient-bars{
  position:absolute;
  bottom:6%;
  right:6%;
  display:flex;
  align-items:flex-end;
  gap:6px;
  height:60px;
  opacity:.10;
}
.ambient-bars span{
  width:5px;
  border-radius:3px;
  background:var(--primary);
  animation:ambientBar 1.6s ease-in-out infinite;
}
.ambient-bars span:nth-child(1){ height:20%; animation-delay:0s; background:var(--primary); }
.ambient-bars span:nth-child(2){ height:60%; animation-delay:.15s; background:var(--secondary); }
.ambient-bars span:nth-child(3){ height:35%; animation-delay:.3s; background:var(--accent); }
.ambient-bars span:nth-child(4){ height:80%; animation-delay:.45s; background:var(--primary); }
.ambient-bars span:nth-child(5){ height:45%; animation-delay:.6s; background:var(--secondary); }
.ambient-bars span:nth-child(6){ height:70%; animation-delay:.75s; background:var(--accent); }
.ambient-bars span:nth-child(7){ height:30%; animation-delay:.9s; background:var(--primary); }
.ambient-bars span:nth-child(8){ height:55%; animation-delay:1.05s; background:var(--secondary); }
@keyframes ambientBar{
  0%,100%{ transform:scaleY(1); }
  50%{ transform:scaleY(1.8); }
}

/* Hide the heavier decorative pieces on small screens to keep mobile snappy */
@media (max-width:640px){
  .ambient-orb.o3{ display:none; }
  .ambient-bars{ display:none; }
}

/* ============ SITE-WIDE ANIMATED BACKGROUND (every page) ============ */
.page-bg{
  position:fixed;
  inset:0;
  z-index:-1;
  overflow:hidden;
  pointer-events:none;
}
.page-bg .pb-blob{
  position:absolute;
  border-radius:50%;
  filter:blur(70px);
  opacity:.16;
}
.page-bg .pb-blob-1{ width:420px; height:420px; background:var(--primary); top:-8%; left:-10%; animation:pbFloat1 16s ease-in-out infinite; }
.page-bg .pb-blob-2{ width:360px; height:360px; background:var(--secondary); top:35%; right:-12%; animation:pbFloat2 20s ease-in-out infinite; }
.page-bg .pb-blob-3{ width:300px; height:300px; background:var(--accent); bottom:-10%; left:20%; animation:pbFloat3 18s ease-in-out infinite; }
@keyframes pbFloat1{ 0%,100%{ transform:translate(0,0) scale(1); } 50%{ transform:translate(40px,60px) scale(1.1); } }
@keyframes pbFloat2{ 0%,100%{ transform:translate(0,0) scale(1); } 50%{ transform:translate(-50px,40px) scale(.9); } }
@keyframes pbFloat3{ 0%,100%{ transform:translate(0,0) scale(1); } 50%{ transform:translate(30px,-40px) scale(1.08); } }

/* Faint animated soundwave line running down the page — ties to speech/hearing theme */
.page-bg .pb-wave{
  position:absolute;
  top:0; left:50%;
  width:2400px; height:100%;
  transform:translateX(-50%);
  opacity:.05;
  background-repeat:repeat-y;
  background-size:2400px 220px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='2400' height='220' viewBox='0 0 2400 220'%3E%3Cpath d='M0 110 Q 100 20 200 110 T 400 110 T 600 110 T 800 110 T 1000 110 T 1200 110 T 1400 110 T 1600 110 T 1800 110 T 2000 110 T 2200 110 T 2400 110' stroke='%23E11D2E' stroke-width='3' fill='none'/%3E%3C/svg%3E");
  animation:pbWaveScroll 30s linear infinite;
}
@keyframes pbWaveScroll{ from{ background-position-y:0; } to{ background-position-y:-220px; } }

@media (prefers-reduced-motion: reduce){
  .page-bg .pb-blob, .page-bg .pb-wave{ animation:none; }
}
@media (max-width:640px){
  .page-bg .pb-blob-1{ width:260px; height:260px; }
  .page-bg .pb-blob-2{ width:220px; height:220px; }
  .page-bg .pb-blob-3{ width:200px; height:200px; }
}

/* ============ Footer logo ============ */
.footer-logo-badge{ width:36px; height:36px; border-radius:12px; object-fit:cover; }

/* ============ Promo Popup (image/title/description/Book Now) ============ */
.promo-popup-overlay{
  position:fixed; inset:0; z-index:290;
  background:rgba(5,7,8,.72);
  backdrop-filter:blur(6px);
  display:flex; align-items:center; justify-content:center;
  padding:1rem;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .35s ease, visibility .35s ease;
}
.promo-popup-overlay.open{ opacity:1; visibility:visible; pointer-events:auto; }
.promo-popup-card{
  position:relative;
  width:100%; max-width:400px;
  max-height:90vh;
  overflow-y:auto;
  background:var(--surface);
  border:1px solid rgba(255,255,255,.08);
  border-radius:28px;
  transform:scale(.88) translateY(20px);
  transition:transform .4s cubic-bezier(.2,.8,.2,1);
  box-shadow:0 30px 80px rgba(0,0,0,.5);
}
.promo-popup-overlay.open .promo-popup-card{ transform:scale(1) translateY(0); }
.promo-popup-close{
  position:absolute; top:14px; right:14px; z-index:2;
  width:32px; height:32px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:rgba(10,13,14,.55); color:#fff;
  backdrop-filter:blur(4px);
}
.promo-popup-image{ width:100%; aspect-ratio:3/2; overflow:hidden; border-radius:28px 28px 0 0; }
.promo-popup-image img{ width:100%; height:100%; object-fit:cover; }
.promo-popup-body{ padding:1.5rem 1.5rem 1.75rem; text-align:center; }
.promo-popup-title{ font-family:'Poppins',sans-serif; font-weight:700; font-size:19px; color:var(--text); }
.promo-popup-desc{ margin-top:8px; font-size:13.5px; color:var(--muted); line-height:1.55; }
.promo-popup-btn{
  display:block; width:100%; margin-top:18px; padding:13px 0;
  border-radius:16px; color:#fff; text-align:center;
  font-family:'Inter',sans-serif; font-weight:600; font-size:14px;
}
@media (max-width:400px){
  .promo-popup-card{ max-width:100%; border-radius:22px; }
  .promo-popup-image{ border-radius:22px 22px 0 0; }
}

/* ============ Circle animation for solid/dark sections ============ */
/* A "sonar ripple" motif — rings expanding outward from two source points,
   like sound/hearing waves — plus a slow rotating gradient ring and soft
   floating glow dots for depth. */
.section-circles{
  position:absolute; inset:0; overflow:hidden;
  pointer-events:none; z-index:0;
}

/* Sonar ripple sources */
.section-circles .sonar-source{ position:absolute; width:10px; height:10px; }
.section-circles .sonar-source-1{ top:8%; left:6%; }
.section-circles .sonar-source-2{ bottom:10%; right:8%; }
.section-circles .sonar-source .sonar-core{
  position:absolute; inset:0; margin:auto;
  width:10px; height:10px; border-radius:50%;
  background:var(--primary);
  box-shadow:0 0 24px 6px rgba(225,29,46,.45);
}
.section-circles .sonar-source-2 .sonar-core{
  background:var(--secondary);
  box-shadow:0 0 24px 6px rgba(29,78,232,.4);
}
.section-circles .sonar-ring{
  position:absolute; inset:0; margin:auto;
  width:10px; height:10px; border-radius:50%;
  border:1.5px solid rgba(225,29,46,.5);
  transform:translate(0,0) scale(1);
  opacity:0;
  animation:sonarExpand 5s cubic-bezier(.2,.6,.4,1) infinite;
}
.section-circles .sonar-source-2 .sonar-ring{ border-color:rgba(29,78,232,.45); }
.section-circles .sonar-ring:nth-child(2){ animation-delay:1.25s; }
.section-circles .sonar-ring:nth-child(3){ animation-delay:2.5s; }
.section-circles .sonar-ring:nth-child(4){ animation-delay:3.75s; }
@keyframes sonarExpand{
  0%{ width:10px; height:10px; opacity:.75; }
  100%{ width:420px; height:420px; opacity:0; }
}

/* Slow rotating soft gradient ring for a modern accent */
.section-circles .orbit-ring{
  position:absolute; top:50%; left:50%;
  width:560px; height:560px;
  margin:-280px 0 0 -280px;
  border-radius:50%;
  background:conic-gradient(from 0deg, transparent 0%, rgba(225,29,46,.10) 12%, transparent 24%, transparent 50%, rgba(29,78,232,.10) 62%, transparent 74%);
  animation:orbitSpin 34s linear infinite;
}
@keyframes orbitSpin{ from{ transform:rotate(0deg); } to{ transform:rotate(360deg); } }

/* Floating glow dots */
.section-circles .dot{
  position:absolute; border-radius:50%;
  background:var(--primary); opacity:.4;
}
.section-circles .dot-1{ width:10px; height:10px; top:22%; left:16%; box-shadow:0 0 14px 3px rgba(225,29,46,.4); animation:dotFloat 7s ease-in-out infinite; }
.section-circles .dot-2{ width:7px; height:7px; top:68%; right:20%; background:var(--secondary); box-shadow:0 0 14px 3px rgba(29,78,232,.35); animation:dotFloat 9s ease-in-out infinite reverse; }
.section-circles .dot-3{ width:12px; height:12px; bottom:16%; left:48%; background:var(--accent); box-shadow:0 0 16px 4px rgba(59,130,246,.3); animation:dotFloat 8s ease-in-out infinite; }
.section-circles .dot-4{ width:6px; height:6px; top:40%; right:38%; background:var(--accent); opacity:.3; animation:dotFloat 6.5s ease-in-out infinite reverse; }
@keyframes dotFloat{ 0%,100%{ transform:translateY(0) scale(1); } 50%{ transform:translateY(-20px) scale(1.15); } }

/* Any direct-child content of a section using .section-circles needs to sit above it */
.section-circles ~ *{ position:relative; z-index:1; }

@media (max-width:640px){
  .section-circles .orbit-ring{ width:380px; height:380px; margin:-190px 0 0 -190px; }
  .section-circles .sonar-ring{ animation-name:sonarExpandSmall; }
}
@keyframes sonarExpandSmall{
  0%{ width:10px; height:10px; opacity:.75; }
  100%{ width:260px; height:260px; opacity:0; }
}

@media (prefers-reduced-motion: reduce){
  .section-circles .ring, .section-circles .dot, .section-circles .sonar-ring,
  .section-circles .orbit-ring{ animation:none; }
}

/* ============ Gallery card title (centered, dark backdrop for legibility) ============ */
.gallery-card-title-bar{
  position:absolute; bottom:0; left:0; right:0;
  padding:10px 12px 12px;
  text-align:center;
  background:linear-gradient(to top, rgba(0,0,0,.82) 0%, rgba(0,0,0,.45) 55%, transparent 100%);
}
.gallery-card-title{
  color:#fff;
  font-family:'Inter',sans-serif;
  font-size:11.5px;
  font-weight:500;
  display:inline-block;
}
