/* ==========================================================================
   VET-SCAN · Hoja de estilos principal
   Sistema de diseño:
   - Color: violeta (marca/confianza) + blanco + acento turquesa (tecnología/salud)
   - Tipografía: Fraunces (display, cálida) + Plus Jakarta Sans (texto, clara)
   - El elemento "firma" del sitio es el haz de escaneo animado del hero
     y del panel de la sección de ecografía, que representa literalmente
     el servicio diferencial del negocio.
   ========================================================================== */

/* ---------- 1. Tokens (variables de diseño) ---------- */
:root{
  /* Paleta violeta */
  --violet-900:#32105F;
  --violet-700:#6A2FD0;
  --violet-500:#8750DA;
  --violet-400:#A979E5;
  --violet-300:#CEB5F0;
  --violet-200:#E1D5F6;
  --violet-100:#F1E9FC;
  --violet-50:#F8F4FF;

  /* Neutros */
  --white:#FFFFFF;
  --ink-900:#221A34;
  --ink-700:#4A4360;
  --gray-500:#77708A;
  --gray-300:#D8D3E4;
  --bg:#FCFBFF;

  /* Acento (tecnología / escaneo) */
  --teal-500:#22B6A8;
  --teal-600:#1B9C90;

  /* Tipografía */
  --font-display:'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-body:'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  /* Layout */
  --container-w:1180px;
  --radius-sm:10px;
  --radius-md:16px;
  --radius-lg:26px;
  --shadow-sm:0 2px 10px rgba(43,30,77,0.06);
  --shadow-md:0 12px 32px rgba(43,30,77,0.12);
  --shadow-lg:0 24px 60px rgba(43,30,77,0.18);

  --header-h:76px;
}

/* ---------- 2. Reset básico ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--font-body);
  color:var(--ink-900);
  background:var(--bg);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit;}
input,select,textarea{font:inherit;color:inherit;}

/* Accesibilidad: foco visible siempre */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible{
  outline:3px solid var(--teal-500);
  outline-offset:2px;
  border-radius:4px;
}

/* Respeta preferencia de movimiento reducido */
@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important;animation-iteration-count:1 !important;transition-duration:0.001ms !important;scroll-behavior:auto !important;}
}

.container{
  width:100%;
  max-width:var(--container-w);
  margin-inline:auto;
  padding-inline:24px;
}

/* ---------- 3. Tipografía ---------- */
h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:600;
  color:var(--violet-900);
  line-height:1.15;
  letter-spacing:-0.01em;
}
h2{font-size:clamp(1.9rem,3.4vw,2.6rem);}
h3{font-size:1.25rem;}
h4{font-size:1.05rem;}

.eyebrow{
  display:inline-block;
  font-size:0.8rem;
  font-weight:700;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--teal-600);
  margin-bottom:10px;
}

.section__lead{
  color:var(--ink-700);
  font-size:1.05rem;
  max-width:56ch;
}

/* ---------- 4. Botones ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:14px 26px;
  border-radius:999px;
  font-weight:700;
  font-size:0.98rem;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
  white-space:nowrap;
}
.btn--primary{
  background:var(--violet-700);
  color:#fff;
  box-shadow:var(--shadow-sm);
}
.btn--primary:hover{background:var(--violet-900);transform:translateY(-2px);box-shadow:var(--shadow-md);}
.btn--ghost{
  background:transparent;
  color:var(--violet-700);
  border:1.6px solid var(--violet-400);
}
.btn--ghost:hover{background:var(--violet-100);transform:translateY(-2px);}
.btn--lg{padding:16px 30px;font-size:1.02rem;}
.btn--sm{padding:10px 18px;font-size:0.88rem;}
.btn--block{width:100%;}

/* ---------- 5. Barra superior ---------- */
.topbar{
  background:var(--violet-900);
  color:#fff;
  font-size:0.82rem;
}
.topbar__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-block:8px;
  gap:16px;
}
.topbar__text{opacity:.9;}
.topbar__links{display:flex;align-items:center;gap:16px;}
.topbar__links a{opacity:.9;transition:opacity .15s;}
.topbar__links a:hover{opacity:1;color:var(--teal-500);}
.topbar__phone{display:flex;align-items:center;gap:6px;font-weight:600;}

/* ---------- 6. Encabezado ---------- */
.header{
  position:sticky;
  top:0;
  z-index:100;
  background:rgba(252,251,255,0.9);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--gray-300);
}
.header__inner{
  display:flex;
  align-items:center;
  gap:24px;
  height:var(--header-h);
}
.logo{display:flex;align-items:center;gap:10px;flex-shrink:0;}
.logo__text{
  font-family:var(--font-display);
  font-size:1.25rem;
  color:var(--violet-900);
  font-weight:500;
}
.logo__text b{font-weight:700;color:var(--violet-700);}
.logo--light .logo__text{color:#fff;}
.logo--light .logo__text b{color:var(--teal-500);}

.nav{
  display:flex;
  align-items:center;
  gap:28px;
  margin-inline:auto;
}
.nav__link{
  font-size:0.95rem;
  font-weight:600;
  color:var(--ink-700);
  position:relative;
  padding-block:6px;
  transition:color .15s;
}
.nav__link:hover,
.nav__link.active-link{color:var(--violet-700);}
.nav__link.active-link::after{
  content:'';
  position:absolute;
  left:0;right:0;bottom:-2px;
  height:2px;
  background:var(--teal-500);
  border-radius:2px;
}

.header__cta{flex-shrink:0;}

.nav__toggle{
  display:none;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  width:38px;height:38px;
  flex-shrink:0;
}
.nav__toggle span{
  display:block;height:2px;width:100%;
  background:var(--violet-900);
  border-radius:2px;
  transition:transform .25s ease, opacity .25s ease;
}
.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);}

/* ---------- 7. Hero ---------- */
.hero{
  padding-block:64px 90px;
  background:
    radial-gradient(560px 380px at 88% 8%, var(--violet-100), transparent 60%),
    var(--bg);
  position:relative;
  overflow:hidden;
}
.hero__inner{
  display:grid;
  grid-template-columns:1.05fr 0.95fr;
  gap:56px;
  align-items:center;
}
.hero__title{
  font-size:clamp(2.2rem,4.4vw,3.4rem);
  margin-block:14px 20px;
}
.hero__title span{color:var(--violet-700);}
.hero__lead{
  color:var(--ink-700);
  font-size:1.08rem;
  max-width:52ch;
  margin-bottom:30px;
}
.hero__actions{display:flex;flex-wrap:wrap;align-items:stretch;gap:14px;margin-bottom:34px;}
.hero__actions .btn{min-height:54px;}

.hero__badges{
  display:flex;flex-wrap:wrap;gap:22px;
  color:var(--ink-700);
  font-size:0.92rem;
  font-weight:600;
}
.hero__badges li{display:flex;align-items:center;gap:8px;}
.hero__badges svg{color:var(--violet-500);flex-shrink:0;}

/* --- Visual del hero: tarjeta de escaneo (elemento firma) --- */
.hero__visual{position:relative;display:flex;justify-content:center;}
.scan-card{
  background:#fff;
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);
  padding:20px;
  width:100%;
  max-width:400px;
  border:1px solid var(--violet-100);
}
.scan-card__frame{
  position:relative;
  background:var(--violet-50);
  border-radius:var(--radius-md);
  overflow:hidden;
  aspect-ratio:340/260;
}
.scan-card__pet{width:100%;height:100%;}
.scan-card__frame--photo{background:#eeeaf8;}
.scan-card__photo{width:100%;height:100%;object-fit:cover;object-position:center center;}
.scan-beam--photo{height:28%;background:linear-gradient(180deg, rgba(34,182,168,0) 0%, rgba(34,182,168,0.10) 45%, rgba(34,182,168,0.34) 100%);border-bottom:2px solid rgba(34,182,168,0.9);}

/* Haz de escaneo: barra turquesa que recorre la tarjeta verticalmente */
.scan-beam{
  position:absolute;
  left:0;right:0;top:0;
  height:34%;
  background:linear-gradient(180deg, rgba(34,182,168,0) 0%, rgba(34,182,168,0.22) 45%, rgba(34,182,168,0.55) 100%);
  border-bottom:2px solid var(--teal-500);
  animation:scanSweep 3.2s ease-in-out infinite;
}
@keyframes scanSweep{
  0%{transform:translateY(-10%);}
  50%{transform:translateY(190%);}
  100%{transform:translateY(-10%);}
}

.scan-card__readout{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:16px;
  font-size:0.85rem;
  font-weight:700;
  color:var(--violet-900);
}
.scan-card__wave{margin-left:auto;}
.dot{width:9px;height:9px;border-radius:50%;background:var(--gray-300);flex-shrink:0;}
.dot--live{background:var(--teal-500);box-shadow:0 0 0 4px rgba(34,182,168,0.2);animation:pulse 1.6s ease-in-out infinite;}
@keyframes pulse{
  0%,100%{box-shadow:0 0 0 4px rgba(34,182,168,0.2);}
  50%{box-shadow:0 0 0 8px rgba(34,182,168,0.08);}
}

.floating-chip{
  position:absolute;
  display:flex;
  align-items:center;
  gap:8px;
  background:#fff;
  padding:10px 16px;
  border-radius:999px;
  font-size:0.82rem;
  font-weight:700;
  color:var(--ink-900);
  box-shadow:var(--shadow-md);
}
.floating-chip--top{top:6%;left:-6%;}
.floating-chip--bottom{bottom:8%;right:-8%;}

/* ---------- 8. Secciones genéricas ---------- */
.section{padding-block:88px;}
.section--muted{background:var(--violet-50);}
.section__head{max-width:680px;margin-bottom:48px;}
.section__head h2{margin-bottom:14px;}

/* ---------- 9. Grid de servicios ---------- */
.services-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:22px;
}
.service-card{
  background:#fff;
  border:1px solid var(--gray-300);
  border-radius:var(--radius-md);
  padding:28px 24px;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.service-card:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow-md);
  border-color:var(--violet-300);
}
.service-card--highlight{
  background:linear-gradient(160deg, var(--violet-700), var(--violet-900));
  border-color:transparent;
  color:#fff;
}
.service-card--highlight h3,
.service-card--highlight p{color:#fff;}
.service-card--highlight .service-card__icon{background:rgba(255,255,255,0.14);color:#fff;}
.service-card__icon{
  width:52px;height:52px;
  border-radius:14px;
  background:var(--violet-100);
  color:var(--violet-700);
  display:flex;align-items:center;justify-content:center;
  margin-bottom:16px;
}
.service-card h3{margin-bottom:8px;font-size:1.12rem;}
.service-card p{color:var(--ink-700);font-size:0.94rem;}
.service-card--highlight p{opacity:.9;}
.service-card__link{
  display:inline-block;
  margin-top:14px;
  font-weight:700;
  font-size:0.9rem;
  color:var(--teal-500);
}

/* ---------- 10. Sección de ecografía destacada ---------- */
.section--scan{
  background:var(--violet-900);
  color:#fff;
  position:relative;
  overflow:hidden;
}
.section--scan::before{
  content:'';
  position:absolute;
  inset:0;
  background:radial-gradient(700px 400px at 10% 90%, rgba(34,182,168,0.14), transparent 60%);
  pointer-events:none;
}
.scan-section__grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  align-items:center;
  position:relative;
}
.section--scan h2{color:#fff;}
.section--scan .eyebrow{color:var(--teal-500);}
.section--scan .section__lead{color:var(--violet-200);}

.check-list{margin-block:26px;display:flex;flex-direction:column;gap:12px;}
.check-list li{display:flex;align-items:flex-start;gap:10px;font-size:0.98rem;color:var(--violet-100);}
.check-icon{
  flex-shrink:0;
  width:22px;height:22px;
  border-radius:50%;
  background:var(--teal-500);
  color:var(--violet-900);
  font-size:0.75rem;
  font-weight:900;
  display:flex;align-items:center;justify-content:center;
}

.scan-panel{
  background:#181129;
  border-radius:var(--radius-lg);
  padding:18px;
  border:1px solid rgba(255,255,255,0.08);
  box-shadow:var(--shadow-lg);
}
.scan-panel__header{
  display:flex;align-items:center;gap:8px;
  font-size:0.82rem;font-weight:700;
  color:var(--violet-200);
  margin-bottom:14px;
}
.scan-panel__body{border-radius:var(--radius-md);overflow:hidden;}
.scan-panel__img{width:100%;height:auto;}
.scan-panel__scanline{animation:scanline 2.6s linear infinite;}
@keyframes scanline{
  0%{transform:translateY(-70px);opacity:0;}
  15%{opacity:.9;}
  85%{opacity:.9;}
  100%{transform:translateY(70px);opacity:0;}
}
.scan-panel__footer{
  display:flex;justify-content:space-between;
  margin-top:14px;
  font-size:0.82rem;
  color:var(--violet-200);
}
.scan-panel__footer strong{color:#fff;}

/* ---------- 11. Sobre nosotros ---------- */
.about__grid{
  display:grid;
  grid-template-columns:1.2fr 0.8fr;
  gap:60px;
  align-items:start;
}
.reasons{margin-top:28px;display:flex;flex-direction:column;gap:17px;}
.reason{display:flex;gap:16px;}
.reason__num{
  font-family:var(--font-display);
  font-size:1.4rem;
  color:var(--violet-300);
  font-weight:700;
  flex-shrink:0;
  width:40px;
}
.reason h4{margin-bottom:4px;}
.reason p{color:var(--ink-700);font-size:0.94rem;}

.about__stats{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  margin-top:148px;
  align-self:start;
}
.stat-card{
  background:var(--violet-50);
  border:1px solid var(--violet-200);
  border-radius:var(--radius-md);
  padding:26px 20px;
  text-align:center;
}
.stat-card__num{
  display:block;
  font-family:var(--font-body);
  font-size:2.15rem;
  color:var(--violet-700);
  font-weight:800;
  letter-spacing:-.03em;
  font-variant-numeric:tabular-nums;
}
.stat-card__label{font-size:0.86rem;color:var(--ink-700);font-weight:600;}

/* ---------- 12. Zonas de cobertura ---------- */
.zones__grid{
  display:grid;
  grid-template-columns:1fr 0.85fr;
  gap:56px;
  align-items:center;
}
.zones-list{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px 18px;
  margin-block:26px;
}
.zones-list li{
  padding:12px 16px;
  background:#fff;
  border:1px solid var(--gray-300);
  border-radius:10px;
  font-weight:600;
  font-size:0.92rem;
}
.zones__map{display:flex;justify-content:center;}
.zones__map-svg{width:100%;max-width:320px;}
.pin{animation:bob 2.4s ease-in-out infinite;transform-origin:160px 194px;}
@keyframes bob{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-6px);}
}

/* ---------- 13. Booking / formulario ---------- */
.booking{
  background:linear-gradient(150deg, var(--violet-700), var(--violet-900));
  color:#fff;
}
.booking__grid{
  display:grid;
  grid-template-columns:0.9fr 1.1fr;
  gap:56px;
  align-items:center;
}
.booking__copy h2{color:#fff;margin-bottom:14px;}
.booking__copy p{color:var(--violet-200);max-width:44ch;}
.booking__phone{
  display:inline-flex;align-items:center;gap:12px;
  font-size:1.6rem;font-weight:800;
  color:#fff;
  margin-block:22px 10px;
}
.booking__phone svg{color:var(--teal-500);}
.booking__note{font-size:0.9rem;color:var(--violet-200);}

.booking-form{
  background:#fff;
  border-radius:var(--radius-lg);
  padding:32px;
  color:var(--ink-900);
  box-shadow:var(--shadow-lg);
}
.booking-form h3{margin-bottom:18px;}
.booking-form__row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}
.field{margin-bottom:16px;}
.field label{
  display:block;
  font-size:0.85rem;
  font-weight:700;
  margin-bottom:6px;
  color:var(--ink-700);
}
.field input,
.field select,
.field textarea{
  width:100%;
  padding:12px 14px;
  border:1.5px solid var(--gray-300);
  border-radius:10px;
  background:var(--bg);
  transition:border-color .15s;
}
.field input:focus,
.field select:focus,
.field textarea:focus{
  border-color:var(--violet-500);
  outline:none;
}
.field textarea{resize:vertical;min-height:80px;}
.booking-form__privacy{
  text-align:center;
  font-size:0.8rem;
  color:var(--gray-500);
  margin-top:12px;
}

/* ---------- 14. Footer ---------- */
.footer{background:var(--violet-900);color:var(--violet-200);padding-top:64px;}
.footer__grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:36px;
  padding-bottom:44px;
  border-bottom:1px solid rgba(255,255,255,0.1);
}
.footer__brand p{font-size:0.9rem;margin-top:14px;max-width:32ch;}
.footer__copy{margin-top:18px;font-size:0.8rem;opacity:.7;}
.footer__col h5{color:#fff;font-size:0.9rem;margin-bottom:14px;letter-spacing:.03em;text-transform:uppercase;}
.footer__col{display:flex;flex-direction:column;gap:10px;font-size:0.9rem;}
.footer__col a:hover{color:var(--teal-500);}
.footer__bottom{
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:8px;
  padding-block:22px;
  font-size:0.82rem;
  opacity:.75;
}

/* ---------- 15. Flotantes ---------- */
.whatsapp-float{
  position:fixed;
  right:22px;bottom:22px;
  width:58px;height:58px;
  border-radius:50%;
  background:#25D366;
  color:#fff;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 26px rgba(37,211,102,0.45);
  z-index:90;
  transition:transform .2s ease;
}
.whatsapp-float:hover{transform:scale(1.08);}

.back-to-top{
  position:fixed;
  right:22px;bottom:92px;
  width:44px;height:44px;
  border-radius:50%;
  background:#fff;
  color:var(--violet-700);
  display:flex;align-items:center;justify-content:center;
  box-shadow:var(--shadow-md);
  z-index:90;
  opacity:0;
  pointer-events:none;
  transform:translateY(10px);
  transition:opacity .25s ease, transform .25s ease;
}
.back-to-top.is-visible{opacity:1;pointer-events:auto;transform:translateY(0);}

/* ---------- 16. Animaciones de entrada (scroll reveal) ---------- */
[data-reveal]{
  opacity:0;
  transform:translateY(24px);
  transition:opacity .7s ease, transform .7s ease;
}
[data-reveal].is-visible{
  opacity:1;
  transform:translateY(0);
}

/* ==========================================================================
   17. RESPONSIVE
   ========================================================================== */

/* Tablets */
@media (max-width:1024px){
  .about__stats{margin-top:10px;}
  .hero__inner,
  .scan-section__grid,
  .about__grid,
  .zones__grid,
  .booking__grid{
    grid-template-columns:1fr;
  }
  .hero__visual{order:-1;max-width:440px;margin-inline:auto;}
  .about__stats{margin-top:10px;}
  .floating-chip--top{left:2%;}
  .floating-chip--bottom{right:2%;}
}

/* Menú móvil + ajustes generales */
@media (max-width:860px){
  .topbar__text{display:none;}

  .nav{
    position:fixed;
    top:var(--header-h);
    left:0;right:0;
    background:#fff;
    flex-direction:column;
    align-items:flex-start;
    gap:0;
    padding:10px 24px 20px;
    box-shadow:var(--shadow-md);
    transform:translateY(-12px);
    opacity:0;
    visibility:hidden;
    transition:opacity .2s ease, transform .2s ease, visibility .2s;
  }
  .nav.is-open{
    transform:translateY(0);
    opacity:1;
    visibility:visible;
  }
  .nav__link{width:100%;padding-block:12px;border-bottom:1px solid var(--gray-300);}

  .nav__toggle{display:flex;}
  .header__cta{display:none;}

  .hero{padding-block:44px 64px;}
  .hero__actions{width:100%;}
  .hero__actions .btn{width:100%;}
  .scan-card__photo{object-position:center center;}
  .section{padding-block:64px;}

  .booking-form__row{grid-template-columns:1fr;}
  .zones-list{grid-template-columns:1fr;}
  .footer__grid{grid-template-columns:1fr 1fr;}
}

/* Móviles */
@media (max-width:560px){
  .container{padding-inline:18px;}
  .hero__actions{flex-direction:column;align-items:stretch;}
  .hero__actions .btn{width:100%;}
  .hero__badges{flex-direction:column;gap:10px;}
  .footer__grid{grid-template-columns:1fr;}
  .booking-form{padding:22px;}
  .floating-chip{font-size:0.72rem;padding:8px 12px;}
  .floating-chip--top{top:-4%;}
  .floating-chip--bottom{bottom:-4%;}
  .whatsapp-float{width:52px;height:52px;right:16px;bottom:16px;}
  .back-to-top{right:16px;bottom:80px;width:40px;height:40px;}
}

/* ========================================================================== 
   18. CARRUSEL DE SERVICIOS — paso 1
   ========================================================================== */
.services-section{
  overflow:hidden;
}

.services-section__head{
  margin-bottom:34px;
}

.services-carousel{
  position:relative;
  width:100%;
}

.services-carousel__viewport{
  position:relative;
  overflow-x:auto;
  overflow-y:hidden;
  scroll-behavior:auto;
  scrollbar-width:none;
  -ms-overflow-style:none;
  cursor:grab;
  overscroll-behavior-x:contain;
  touch-action:pan-x;
  padding:4px 2px 18px;
}

.services-carousel__viewport::-webkit-scrollbar{
  display:none;
}

.services-carousel__viewport.is-dragging{
  cursor:grabbing;
  scroll-behavior:auto;
}

.services-carousel__track{
  display:flex;
  align-items:stretch;
  gap:18px;
  width:max-content;
  padding-right:2px;
}

.services-carousel .service-card{
  display:flex;
  flex:0 0 clamp(245px, 28vw, 315px);
  min-height:292px;
  flex-direction:column;
  align-items:flex-start;
  padding:22px 20px 20px;
  border-radius:20px;
  border:1px solid var(--gray-300);
  box-shadow:none;
  transform:none;
  position:relative;
  overflow:hidden;
}

.services-carousel .service-card::after{
  content:'';
  position:absolute;
  inset:auto 18px 0;
  height:2px;
  background:linear-gradient(90deg, var(--teal-500), transparent);
  opacity:.65;
}

.services-carousel .service-card:hover{
  transform:translateY(-3px);
  box-shadow:var(--shadow-md);
  border-color:var(--violet-300);
}

.services-carousel .service-card:focus-visible{
  outline:3px solid var(--teal-500);
  outline-offset:3px;
}

.services-carousel .service-card__icon{
  width:56px;
  height:56px;
  border-radius:16px;
  margin-bottom:14px;
  background:var(--violet-100);
  color:var(--violet-700);
}

.services-carousel .service-card__tag{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  margin-bottom:8px;
  padding:4px 9px;
  border-radius:999px;
  background:var(--violet-50);
  color:var(--violet-700);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.services-carousel .service-card h3{
  margin-bottom:8px;
  font-size:1.13rem;
}

.services-carousel .service-card p{
  color:var(--ink-700);
  font-size:.89rem;
  line-height:1.65;
}

.services-carousel .service-card__price{display:inline-flex;align-items:center;margin-top:12px;color:var(--violet-700);font-size:.98rem;font-weight:800;}

.services-carousel .service-card--highlight .service-card__price{color:#fff;}

.services-carousel .service-card__link{
  margin-top:auto;
  padding-top:16px;
  color:var(--teal-600);
  font-size:.86rem;
  font-weight:800;
}

.services-carousel .service-card__link span{
  display:inline-block;
  margin-left:5px;
  transition:transform .18s ease;
}

.services-carousel .service-card:hover .service-card__link span{
  transform:translateX(4px);
}

.services-carousel .service-card--highlight{
  background:linear-gradient(160deg, var(--violet-700), var(--violet-900));
  border-color:transparent;
}

.services-carousel .service-card--highlight::after{
  background:linear-gradient(90deg, var(--teal-500), rgba(255,255,255,.15), transparent);
}

.services-carousel .service-card--highlight .service-card__icon{
  background:rgba(255,255,255,.14);
  color:#fff;
}

.services-carousel .service-card--highlight .service-card__tag,
.services-carousel .service-card--highlight h3,
.services-carousel .service-card--highlight p{
  color:#fff;
}

.services-carousel .service-card--highlight .service-card__tag{
  background:rgba(255,255,255,.12);
}

.services-carousel .service-card--highlight p{
  opacity:.9;
}

.services-carousel .service-card--highlight .service-card__link{
  color:var(--teal-500);
}

.services-carousel__controls{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-top:2px;
}

.services-carousel__hint{
  color:var(--gray-500);
  font-size:.78rem;
  font-weight:700;
  text-align:center;
  flex:1;
}

.services-carousel__button{
  width:42px;
  height:42px;
  flex:0 0 42px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--gray-300);
  border-radius:50%;
  background:#fff;
  color:var(--violet-700);
  box-shadow:var(--shadow-sm);
  transition:transform .18s ease, border-color .18s ease, background .18s ease;
}

.services-carousel__button:hover{
  transform:translateY(-2px);
  border-color:var(--violet-300);
  background:var(--violet-50);
}

@media (max-width:1024px){
  .services-carousel .service-card{
    flex-basis:280px;
  }
}

@media (max-width:860px){
  .services-carousel__viewport{
    padding-bottom:14px;
  }

  .services-carousel .service-card{
    flex-basis:min(78vw, 292px);
    min-height:278px;
  }

  .services-carousel__hint{
    font-size:.72rem;
  }
}

@media (max-width:560px){
  .services-carousel__track{
    gap:14px;
  }

  .services-carousel .service-card{
    flex-basis:82vw;
    min-height:270px;
    padding:20px 18px 18px;
  }

  .services-carousel__controls{
    gap:10px;
  }

  .services-carousel__button{
    width:40px;
    height:40px;
    flex-basis:40px;
  }

  .services-carousel__hint{
    padding-inline:4px;
  }
}


/* ========================================================================
   19. VISTA SERVICIOS — GALERÍA / CATÁLOGO
   ======================================================================== */
.services-page__hero{
  padding-block:36px 46px;
  background:
    radial-gradient(680px 340px at 86% 0%, var(--violet-100), transparent 62%),
    var(--bg);
}

.services-page__hero-inner{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(300px,.65fr);
  gap:54px;
  align-items:center;
}

.services-page__intro h1{
  max-width:760px;
  font-size:clamp(2.35rem,5vw,4rem);
  margin-block:12px 20px;
}

.services-page__hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:28px;
}

.services-page__hero-media{
  position:relative;
  min-height:360px;
  border-radius:28px;
  overflow:hidden;
  border:1px solid var(--violet-200);
  box-shadow:var(--shadow-lg);
  background:var(--violet-50);
}

.services-page__hero-media img{
  display:block;
  width:100%;
  height:100%;
  min-height:360px;
  object-fit:cover;
  object-position:center;
}

.services-page__hero-media-overlay{
  position:absolute;
  inset:auto 0 0;
  height:42%;
  background:linear-gradient(180deg,transparent,rgba(48,0,112,.56));
  pointer-events:none;
}

.services-page__hero-media-badge{
  position:absolute;
  left:18px;
  bottom:18px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.96);
  color:var(--violet-700);
  font-size:.8rem;
  font-weight:800;
  box-shadow:var(--shadow-sm);
}

.services-page__hero-card{
  background:#fff;
  border:1px solid var(--violet-200);
  border-radius:28px;
  padding:30px;
  box-shadow:var(--shadow-lg);
  position:relative;
  overflow:hidden;
}

.services-page__hero-card::after{
  content:'';
  position:absolute;
  width:180px;
  height:180px;
  border-radius:50%;
  right:-80px;
  bottom:-80px;
  background:var(--violet-50);
}

.services-page__hero-card-icon{
  width:68px;
  height:68px;
  border-radius:20px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:22px;
  background:var(--violet-100);
  color:var(--violet-700);
}

.services-page__hero-card-label{
  display:block;
  color:var(--teal-600);
  font-size:.75rem;
  font-weight:800;
  letter-spacing:.07em;
  text-transform:uppercase;
  margin-bottom:7px;
}

.services-page__hero-card strong{
  display:block;
  font-family:var(--font-display);
  font-size:1.75rem;
  line-height:1.18;
  color:var(--violet-900);
  max-width:13ch;
  position:relative;
  z-index:1;
}

.services-page__hero-card p{
  color:var(--ink-700);
  font-size:.95rem;
  margin-top:12px;
  max-width:34ch;
  position:relative;
  z-index:1;
}

.services-catalog{
  background:#fff;
  padding-top:46px;
}

.services-catalog__head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:28px;
  margin-bottom:30px;
}

.services-catalog__head h2{margin-bottom:12px;}

.catalog-tabs{
  display:inline-flex;
  padding:5px;
  border:1px solid var(--gray-300);
  border-radius:999px;
  background:var(--bg);
  flex-shrink:0;
}

.catalog-tab{
  min-width:110px;
  padding:10px 16px;
  border-radius:999px;
  color:var(--ink-700);
  font-size:.84rem;
  font-weight:800;
  transition:background .18s ease,color .18s ease,box-shadow .18s ease;
}

.catalog-tab:hover{color:var(--violet-700);}

.catalog-tab.is-active{
  background:#fff;
  color:var(--violet-700);
  box-shadow:var(--shadow-sm);
}

.catalog-panel[hidden]{display:none;}

.services-gallery{
  display:grid;
  grid-template-columns:48px minmax(0,1fr) 48px;
  gap:16px;
  align-items:center;
}

.services-gallery__viewport{
  overflow-x:auto;
  overflow-y:hidden;
  scrollbar-width:none;
  -ms-overflow-style:none;
  scroll-behavior:smooth;
  overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;
  cursor:grab;
  touch-action:pan-x;
  border-radius:24px;
}

.services-gallery__viewport::-webkit-scrollbar{display:none;}
.services-gallery__viewport.is-dragging{cursor:grabbing;scroll-behavior:auto;}

.services-gallery__track{
  display:flex;
  gap:22px;
  width:max-content;
  padding:5px 2px 16px;
}

.catalog-card{
  width:min(390px,calc(85vw - 30px));
  min-height:500px;
  flex:0 0 min(390px,calc(85vw - 30px));
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:#fff;
  border:1px solid var(--gray-300);
  border-radius:24px;
  box-shadow:0 12px 34px rgba(43,30,77,.08);
  scroll-snap-align:start;
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}

.catalog-card:hover{
  transform:translateY(-5px);
  border-color:var(--violet-300);
  box-shadow:var(--shadow-md);
}

.catalog-card__visual{
  min-height:190px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:26px;
  position:relative;
  background:linear-gradient(145deg,var(--violet-700),var(--violet-900));
  color:#fff;
  overflow:hidden;
}

.catalog-card__visual::before{
  content:'';
  position:absolute;
  width:220px;
  height:220px;
  border-radius:50%;
  right:-85px;
  top:-100px;
  border:1px solid rgba(255,255,255,.14);
}

.catalog-card__visual--soft{
  background:var(--violet-50);
  color:var(--violet-700);
}

.catalog-card__visual--soft::before{border-color:var(--violet-200);}

.catalog-card__icon{
  width:80px;
  height:80px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:22px;
  background:rgba(255,255,255,.14);
  position:relative;
  z-index:1;
}

.catalog-card__visual--soft .catalog-card__icon{background:#fff;box-shadow:var(--shadow-sm);}

.catalog-card__badge{
  align-self:flex-start;
  padding:7px 11px;
  border-radius:999px;
  background:rgba(255,255,255,.12);
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  position:relative;
  z-index:1;
}

.catalog-card__body{
  display:flex;
  flex:1;
  flex-direction:column;
  padding:24px 24px 22px;
}

.catalog-card__tag{
  display:inline-flex;
  width:max-content;
  margin-bottom:9px;
  padding:5px 9px;
  border-radius:999px;
  background:var(--violet-50);
  color:var(--violet-700);
  font-size:.7rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.05em;
}

.catalog-card h3{
  font-size:1.42rem;
  margin-bottom:10px;
}

.catalog-card p{
  color:var(--ink-700);
  font-size:.9rem;
  line-height:1.65;
}

.catalog-card__features{
  display:flex;
  flex-direction:column;
  gap:7px;
  margin-top:18px;
}

.catalog-card__features li{
  display:flex;
  align-items:center;
  gap:8px;
  color:var(--ink-700);
  font-size:.78rem;
  font-weight:700;
}

.catalog-card__features li::before{
  content:'✓';
  width:18px;
  height:18px;
  border-radius:50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 18px;
  background:var(--violet-100);
  color:var(--violet-700);
  font-size:.65rem;
  font-weight:900;
}

.catalog-card__bottom{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  margin-top:auto;
  padding-top:22px;
  border-top:1px solid var(--gray-300);
}

.catalog-card__price-label{
  display:block;
  margin-bottom:2px;
  color:var(--gray-500);
  font-size:.72rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.05em;
}

.catalog-card__bottom strong{
  display:block;
  color:var(--violet-900);
  font-family:var(--font-display);
  font-size:1.15rem;
}

.catalog-card__action{flex-shrink:0;}

.catalog-card--featured{
  border-color:var(--violet-300);
}

.services-gallery__arrow{
  width:48px;
  height:48px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--gray-300);
  border-radius:50%;
  background:#fff;
  color:var(--violet-700);
  box-shadow:var(--shadow-sm);
  transition:transform .18s ease,background .18s ease,border-color .18s ease,opacity .18s ease;
  z-index:2;
}

.services-gallery__arrow:hover:not(:disabled){
  transform:translateY(-2px);
  background:var(--violet-50);
  border-color:var(--violet-300);
}

.services-gallery__arrow:disabled{opacity:.38;cursor:not-allowed;}

.services-gallery__footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-top:14px;
  padding-inline:66px;
}

.services-gallery__footer p{
  color:var(--gray-500);
  font-size:.76rem;
  font-weight:700;
  text-align:right;
}

.services-gallery__counter{
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--violet-700);
  font-family:var(--font-display);
  font-weight:700;
  font-size:.96rem;
}

.services-gallery__counter-line{
  width:42px;
  height:1px;
  background:var(--violet-300);
}

.products-empty{
  min-height:420px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:70px 24px;
  border:1px dashed var(--violet-300);
  border-radius:28px;
  background:var(--violet-50);
}

.products-empty__icon{
  width:78px;
  height:78px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:20px;
  border-radius:24px;
  background:#fff;
  color:var(--violet-700);
  box-shadow:var(--shadow-sm);
}

.products-empty h3{font-size:1.65rem;margin-bottom:10px;}
.products-empty p:not(.eyebrow){max-width:620px;color:var(--ink-700);font-size:.92rem;}
.products-empty .btn{margin-top:22px;}

.services-page__cta-section{background:var(--violet-50);}

.services-page__cta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  padding:48px;
  border:1px solid var(--violet-200);
  border-radius:28px;
  background:#fff;
  box-shadow:var(--shadow-sm);
}

.services-page__cta h2{margin-bottom:10px;}
.services-page__cta p:not(.eyebrow){color:var(--ink-700);max-width:55ch;}

@media (max-width:1024px){
  .services-page__hero-inner{grid-template-columns:1fr;}
  .services-page__hero-card{max-width:520px;}
  .services-catalog__head{align-items:flex-start;flex-direction:column;}
  .services-gallery__footer{padding-inline:4px;}
}

@media (max-width:860px){
  .services-page__hero{padding-block:54px 48px;}
  .services-page__hero-actions{flex-direction:column;align-items:stretch;}
  .services-page__hero-actions .btn{width:100%;}
  .services-gallery{grid-template-columns:42px minmax(0,1fr) 42px;gap:10px;}
  .services-gallery__arrow{width:42px;height:42px;}
  .catalog-card{min-height:540px;}
  .services-page__cta{flex-direction:column;align-items:flex-start;padding:34px 26px;}
}

@media (max-width:560px){
  .services-page__intro h1{font-size:clamp(2.15rem,10vw,3rem);}
  .services-page__hero-card{padding:24px;}
  .catalog-tabs{width:100%;}
  .catalog-tab{flex:1;min-width:0;}
  .services-gallery{grid-template-columns:36px minmax(0,1fr) 36px;gap:6px;}
  .services-gallery__arrow{width:36px;height:36px;}
  .catalog-card{width:calc(100vw - 92px);flex-basis:calc(100vw - 92px);min-height:525px;border-radius:20px;}
  .catalog-card__visual{min-height:164px;padding:20px;}
  .catalog-card__icon{width:68px;height:68px;border-radius:18px;}
  .catalog-card__body{padding:20px 18px 18px;}
  .catalog-card h3{font-size:1.25rem;}
  .catalog-card__bottom{align-items:stretch;flex-direction:column;}
  .catalog-card__action{width:100%;}
  .services-gallery__footer{align-items:flex-start;flex-direction:column;gap:9px;margin-top:10px;}
  .services-gallery__footer p{text-align:left;}
  .products-empty{padding:46px 18px;min-height:360px;}
  .services-page__cta{padding:28px 20px;}
}


/* ========================================================================
   20. GALERÍA DE SERVICIOS · COMPOSICIÓN 4 COLUMNAS / 7 TARJETAS
   - La ecografía funciona como pieza principal 2x2.
   - Dos tarjetas normales acompañan la primera fila.
   - Las cuatro restantes completan una segunda fila simétrica.
   ======================================================================== */
.services-gallery{
  display:block;
  width:100%;
}

.services-gallery__track{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  grid-auto-rows:minmax(270px,auto);
  gap:22px;
  width:100%;
  padding:4px 2px 10px;
}

.catalog-card{
  width:auto;
  min-width:0;
  min-height:0;
  height:100%;
  flex:none;
  scroll-snap-align:none;
  border-radius:22px;
}

.catalog-card--featured{
  grid-column:span 2;
  grid-row:span 2;
}

.catalog-card--featured .catalog-card__visual{
  min-height:235px;
}

.catalog-card--featured .catalog-card__icon{
  width:92px;
  height:92px;
  border-radius:26px;
}

.catalog-card--featured .catalog-card__body{
  padding:26px 26px 24px;
}

.catalog-card--featured h3{
  font-size:1.65rem;
}

.catalog-card.is-selected{
  border-color:var(--teal-500);
  box-shadow:0 0 0 4px rgba(34,182,168,.12),var(--shadow-md);
}

@media (max-width:1024px){
  .services-gallery__track{
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-auto-rows:minmax(250px,auto);
  }

  .catalog-card--featured{
    grid-column:span 2;
    grid-row:span 1;
  }

  .catalog-card--featured .catalog-card__visual{
    min-height:205px;
  }
}

@media (max-width:560px){
  .services-gallery__track{
    grid-template-columns:1fr;
    grid-auto-rows:auto;
    gap:16px;
    padding-inline:0;
  }

  .catalog-card,
  .catalog-card--featured{
    grid-column:span 1;
    grid-row:span 1;
    width:100%;
    min-height:0;
  }

  .catalog-card--featured .catalog-card__visual{
    min-height:170px;
  }

  .catalog-card--featured .catalog-card__body{
    padding:20px 18px 18px;
  }

  .catalog-card--featured h3{
    font-size:1.3rem;
  }
}


/* ========================================================================
   21. GALERÍA FINAL · 4 COLUMNAS / ECÓGRAFIA DESTACADA SOLO EN ANCHO
   - La ecografía ocupa 2 columnas y conserva una sola altura de tarjeta.
   - Las tarjetas restantes completan la primera fila.
   - Las otras cuatro tarjetas completan la segunda fila.
   - Todas las tarjetas mantienen la misma altura en escritorio.
   ======================================================================== */
.services-gallery{
  display:block;
  width:100%;
}

.services-gallery__track{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  grid-auto-rows:555px;
  gap:22px;
  width:100%;
  padding:4px 2px 10px;
}

.catalog-card,
.catalog-card--featured{
  width:auto;
  min-width:0;
  min-height:0;
  height:100%;
  flex:none;
  border-radius:22px;
}

.catalog-card--featured{
  grid-column:span 2;
  grid-row:span 1;
  border-color:var(--violet-300);
  box-shadow:0 16px 40px rgba(43,30,77,.14);
}

.catalog-card--featured .catalog-card__visual{
  min-height:190px;
  background:linear-gradient(145deg,var(--violet-700),var(--violet-900));
  color:#fff;
}

.catalog-card--featured .catalog-card__icon{
  width:80px;
  height:80px;
  border-radius:22px;
  background:rgba(255,255,255,.14);
  box-shadow:none;
}

.catalog-card--featured .catalog-card__body{
  padding:24px 24px 22px;
}

.catalog-card--featured .catalog-card__tag{
  background:var(--violet-50);
  color:var(--violet-700);
}

@media (max-width:1024px){
  .services-gallery__track{
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-auto-rows:minmax(540px,auto);
  }

  .catalog-card--featured{
    grid-column:span 2;
    grid-row:span 1;
  }
}

@media (max-width:560px){
  .services-gallery__track{
    grid-template-columns:1fr;
    grid-auto-rows:auto;
    gap:18px;
    padding-inline:0;
  }

  .catalog-card,
  .catalog-card--featured{
    width:100%;
    height:auto;
    min-height:525px;
  }

  .catalog-card--featured{
    grid-column:span 1;
  }
}

/* ========================================================================
   21. GALERÍA COMPACTA Y SIMÉTRICA · 7 TARJETAS
   - Ecografía: única tarjeta protagonista, doble ancho pero misma altura.
   - Primera fila: Ecografía (2 columnas) + 2 tarjetas normales.
   - Segunda fila: 4 tarjetas normales.
   - Todas las tarjetas comparten altura y estructura interna.
   ======================================================================== */
.services-page .services-gallery{
  display:block;
  width:100%;
}

.services-page .services-gallery__track{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  grid-template-rows:390px 390px;
  grid-auto-rows:390px;
  gap:18px;
  width:100%;
  padding:4px 2px 12px;
}

.services-page .catalog-card{
  width:auto;
  min-width:0;
  min-height:0;
  height:390px;
  flex:none;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border-radius:20px;
}

.services-page .catalog-card--featured{
  grid-column:span 2;
  grid-row:auto;
  border-color:var(--violet-300);
  box-shadow:0 14px 34px rgba(43,30,77,.10);
}

.services-page .catalog-card__visual,
.services-page .catalog-card--featured .catalog-card__visual{
  height:112px;
  min-height:112px;
  flex:0 0 112px;
  padding:18px;
}

.services-page .catalog-card__icon,
.services-page .catalog-card--featured .catalog-card__icon{
  width:60px;
  height:60px;
  border-radius:18px;
}

.services-page .catalog-card--featured .catalog-card__icon{
  background:rgba(255,255,255,.14);
}

.services-page .catalog-card__badge{
  padding:6px 9px;
  font-size:.58rem;
  line-height:1.1;
}

.services-page .catalog-card__body,
.services-page .catalog-card--featured .catalog-card__body{
  min-height:0;
  height:278px;
  padding:16px 17px 15px;
}

.services-page .catalog-card__tag{
  margin-bottom:6px;
  padding:4px 8px;
  font-size:.61rem;
  line-height:1.1;
}

.services-page .catalog-card h3,
.services-page .catalog-card--featured h3{
  margin-bottom:6px;
  font-size:1.08rem;
  line-height:1.16;
  min-height:2.32em;
}

.services-page .catalog-card--featured h3{
  font-size:1.34rem;
}

.services-page .catalog-card p{
  font-size:.75rem;
  line-height:1.43;
  min-height:4.3em;
}

.services-page .catalog-card__features{
  gap:5px;
  margin-top:11px;
  min-height:60px;
}

.services-page .catalog-card__features li{
  gap:7px;
  font-size:.67rem;
  line-height:1.25;
}

.services-page .catalog-card__features li::before{
  width:16px;
  height:16px;
  flex-basis:16px;
  font-size:.58rem;
}

.services-page .catalog-card__bottom{
  min-height:48px;
  margin-top:auto;
  padding-top:11px;
  gap:10px;
}

.services-page .catalog-card__price-label{
  font-size:.60rem;
  line-height:1;
  margin-bottom:3px;
}

.services-page .catalog-card__bottom strong{
  font-size:.93rem;
  line-height:1.05;
}

.services-page .catalog-card__action{
  padding:9px 14px;
  min-height:38px;
  font-size:.75rem;
}

/* El protagonismo visual queda reservado a Ecografía. */
.services-page .catalog-card:not(.catalog-card--featured) .catalog-card__visual{
  background:var(--violet-50);
  color:var(--violet-700);
}

.services-page .catalog-card:not(.catalog-card--featured) .catalog-card__visual::before{
  border-color:var(--violet-200);
}

@media (max-width:1024px){
  .services-page .services-gallery__track{
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-rows:auto;
    grid-auto-rows:360px;
  }

  .services-page .catalog-card,
  .services-page .catalog-card--featured{
    height:360px;
  }

  .services-page .catalog-card--featured{
    grid-column:span 2;
  }

  .services-page .catalog-card__visual,
  .services-page .catalog-card--featured .catalog-card__visual{
    height:108px;
    min-height:108px;
    flex-basis:108px;
  }

  .services-page .catalog-card__body,
  .services-page .catalog-card--featured .catalog-card__body{
    height:252px;
  }
}

@media (max-width:640px){
  .services-page__hero{
    padding-block:46px 40px;
  }

  .services-page .services-gallery__track{
    grid-template-columns:1fr;
    gap:16px;
  }

  .services-page .catalog-card,
  .services-page .catalog-card--featured{
    grid-column:auto;
    height:350px;
  }

  .services-page .catalog-card__visual,
  .services-page .catalog-card--featured .catalog-card__visual{
    height:102px;
    min-height:102px;
    flex-basis:102px;
  }

  .services-page .catalog-card__body,
  .services-page .catalog-card--featured .catalog-card__body{
    height:248px;
    padding:15px 16px 14px;
  }

  .services-page .catalog-card h3,
  .services-page .catalog-card--featured h3{
    font-size:1.05rem;
  }

  .services-page .catalog-card--featured h3{
    font-size:1.22rem;
  }
}



/* ========================================================================
   22. PULIDO VISUAL · HERO, SOBRE VET-SCAN, MAPA INTERACTIVO Y AGENDA
   ======================================================================== */

/* --- Hero: halo difuminado detrás del contenido textual --- */
.hero{
  isolation:isolate;
  background:
    radial-gradient(620px 420px at 18% 48%, rgba(255,255,255,.96), rgba(255,255,255,.80) 45%, transparent 72%),
    radial-gradient(620px 420px at 88% 8%, var(--violet-100), transparent 62%),
    var(--bg);
}
.hero::before{
  content:'';
  position:absolute;
  left:-12%;
  top:8%;
  width:62%;
  height:84%;
  background:radial-gradient(ellipse at center, rgba(255,255,255,.94) 0%, rgba(255,255,255,.72) 48%, rgba(255,255,255,0) 76%);
  filter:blur(14px);
  pointer-events:none;
  z-index:-1;
}
.hero__copy{position:relative;z-index:1;}
.hero__actions--aligned .btn{
  width:clamp(210px, 22vw, 248px);
  min-width:210px;
  min-height:54px;
}
.hero__actions--aligned{align-items:stretch;}
.scan-card{
  position:relative;
  z-index:2;
}
.scan-beam--photo{
  animation-duration:3.2s;
}

/* --- Sobre VET-SCAN: indicadores alineados visualmente con los puntos --- */
.about__grid{
  grid-template-columns:minmax(0,1.24fr) minmax(340px,.76fr);
  align-items:start;
}
.about__stats{
  align-self:start;
  margin-top:clamp(108px, 8vw, 128px);
  gap:20px;
}
.stat-card{
  min-height:116px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}
.reason{
  min-height:54px;
  align-items:flex-start;
}

/* --- Mapa interactivo de cobertura --- */
.zones-section .section__lead{max-width:62ch;}
.zones__grid--interactive{
  grid-template-columns:minmax(0,.87fr) minmax(0,1.13fr);
  gap:44px;
  align-items:center;
}
.zones__copy{min-width:0;}
.zones-legend{
  display:flex;
  flex-wrap:wrap;
  gap:10px 18px;
  margin:18px 0 16px;
  color:var(--ink-700);
  font-size:.78rem;
  font-weight:700;
}
.zones-legend span{display:inline-flex;align-items:center;gap:7px;}
.zones-legend__dot{
  width:10px;height:10px;border-radius:50%;display:inline-block;flex:none;
  border:1px solid var(--violet-300);
}
.zones-legend__dot--confirmed{background:var(--violet-500);}
.zones-legend__dot--consult{background:var(--violet-100);}
.zone-info{
  background:#fff;
  border:1px solid var(--violet-200);
  border-radius:18px;
  padding:18px 18px 16px;
  box-shadow:var(--shadow-sm);
  margin-bottom:14px;
}
.zone-info__eyebrow{
  display:block;
  text-transform:uppercase;
  letter-spacing:.06em;
  font-weight:800;
  font-size:.66rem;
  color:var(--teal-600);
  margin-bottom:5px;
}
.zone-info h3{
  font-size:1.32rem;
  margin-bottom:4px;
}
.zone-info p{
  font-size:.86rem;
  color:var(--ink-700);
  margin-bottom:12px;
}
.zone-info .btn{padding:10px 15px;font-size:.78rem;}
.zones__question{margin-top:2px;}
.zones__map--interactive{justify-content:stretch;}
.coverage-map{
  width:100%;
  border:1px solid var(--violet-200);
  border-radius:24px;
  padding:12px;
  background:rgba(255,255,255,.66);
  box-shadow:var(--shadow-md);
  backdrop-filter:blur(8px);
}
.coverage-map__header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:7px 8px 10px;
}
.coverage-map__header strong{
  display:block;
  font-size:.86rem;
  color:var(--violet-900);
}
.coverage-map__kicker{
  display:block;
  font-size:.63rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:800;
  color:var(--teal-600);
  margin-bottom:2px;
}
.coverage-map__pulse{
  display:inline-flex;
  align-items:center;
  gap:7px;
  font-size:.68rem;
  font-weight:800;
  color:var(--ink-700);
  white-space:nowrap;
}
.coverage-map__pulse i{
  width:7px;height:7px;border-radius:50%;background:var(--teal-500);
  box-shadow:0 0 0 5px rgba(34,182,168,.12);
  animation:pulse 1.6s ease-in-out infinite;
}
.coverage-map__svg{display:block;width:100%;height:auto;}
.coverage-map__region{cursor:pointer;outline:none;}
.coverage-map__region path{
  fill:url(#mapRegionConsult);
  stroke:#c7b9e9;
  stroke-width:1.7;
  transition:fill .18s ease, stroke .18s ease, transform .18s ease, filter .18s ease;
  transform-origin:center;
}
.coverage-map__region text{
  pointer-events:none;
  fill:var(--violet-900);
  text-anchor:middle;
  dominant-baseline:middle;
  font-family:var(--font-body);
  font-size:12px;
  font-weight:800;
}
.coverage-map__region--confirmed path{fill:url(#mapRegionConfirmed);stroke:#8467c7;}
.coverage-map__region--confirmed text{fill:#fff;}
.coverage-map__region--bogota path{stroke:#5b3e8e;stroke-width:2.4;}
.coverage-map__region--bogota text{font-size:13px;letter-spacing:.05em;}
.coverage-map__region:hover path,
.coverage-map__region:focus path,
.coverage-map__region.is-active path{
  stroke:var(--teal-500);
  filter:drop-shadow(0 6px 10px rgba(43,30,77,.16));
  transform:scale(1.035);
}
.coverage-map__region--confirmed:hover path,
.coverage-map__region--confirmed:focus path,
.coverage-map__region--confirmed.is-active path{fill:#6e4eab;}
.coverage-map__region--consult:hover path,
.coverage-map__region--consult:focus path,
.coverage-map__region--consult.is-active path{fill:#c9b8ec;}
.coverage-map__pulse-ring circle:first-child{animation:mapPulse 2.4s ease-out infinite;}
@keyframes mapPulse{
  0%{transform:scale(.82);opacity:.12;transform-origin:520px 387px;}
  50%{transform:scale(1.08);opacity:.44;}
  100%{transform:scale(1.28);opacity:0;}
}

/* --- Formulario más compacto --- */
.booking{padding-block:56px;}
.booking__grid{gap:42px;}
.booking-form{
  padding:23px 24px 19px;
  border-radius:22px;
}
.booking-form h3{margin-bottom:12px;}
.booking-form__row{gap:12px;}
.booking-form__row--compact{margin-bottom:0;}
.field{margin-bottom:10px;}
.field label{font-size:.76rem;margin-bottom:4px;}
.field input,
.field select,
.field textarea{padding:9px 11px;border-radius:9px;font-size:.84rem;}
.field textarea{min-height:60px;}
.booking-form__privacy{margin-top:8px;font-size:.72rem;}
.booking-form .btn{min-height:44px;padding-block:10px;}

@media (max-width:1024px){
  .about__stats{margin-top:16px;}
  .zones__grid--interactive{grid-template-columns:1fr;}
  .zones__map--interactive{max-width:760px;margin-inline:auto;width:100%;}
}

@media (max-width:860px){
  .hero__actions--aligned .btn{width:100%;min-width:0;}
  .hero::before{left:-28%;width:92%;height:74%;top:4%;}
  .about__stats{margin-top:18px;}
  .booking{padding-block:48px;}
  .booking-form{padding:21px 20px 17px;}
}

@media (max-width:560px){
  .hero__actions--aligned{gap:10px;}
  .hero__actions--aligned .btn{min-height:50px;}
  .coverage-map{padding:8px;border-radius:20px;}
  .coverage-map__header{padding-inline:6px;}
  .coverage-map__header strong{font-size:.78rem;}
  .coverage-map__svg{min-height:420px;}
  .coverage-map__region text{font-size:10px;}
  .coverage-map__region--bogota text{font-size:11px;}
  .booking{padding-block:42px;}
  .booking-form__row--compact{grid-template-columns:1fr 1fr;}
  .booking-form{padding:18px 16px 15px;}
}


/* ========================================================================
   23. VET-SCAN · PULIDO VISUAL AVANZADO
   - Morado más puro y profundo
   - Hero fotográfico detrás del contenido
   - Animación de escaneo conservada sobre la fotografía
   - Indicadores de Sobre VET-SCAN perfectamente alineados
   - Mapa real con Leaflet + límites municipales IGAC
   - Agenda compacta
   ======================================================================== */

:root{
  --violet-900:#2D145C;
  --violet-700:#6D00D9;
  --violet-500:#8A2BE2;
  --violet-400:#A95CFF;
  --violet-300:#CDB0FF;
  --violet-200:#E2D4FA;
  --violet-100:#F0E6FF;
  --violet-50:#FAF6FF;
}

/* --- Hero: fotografía protagonista, integrada al fondo --- */
.hero{
  min-height:clamp(500px, 62vw, 620px);
  padding-block:54px 74px;
  background:
    radial-gradient(600px 440px at 12% 50%, rgba(255,255,255,.99) 0%, rgba(255,255,255,.95) 44%, rgba(255,255,255,0) 78%),
    radial-gradient(500px 320px at 74% 0%, rgba(240,233,252,.92), transparent 72%),
    var(--bg);
  overflow:hidden;
}
.hero__inner{
  position:relative;
  min-height:clamp(370px, 49vw, 510px);
  display:block;
}
.hero__copy{
  position:relative;
  z-index:4;
  width:min(560px, 53%);
  padding-top:clamp(20px, 4vw, 52px);
}
.hero__title{max-width:13ch;}
.hero__lead{max-width:50ch;}
.hero__actions--aligned{gap:12px;}
.hero__actions--aligned .btn{
  width:auto;
  min-width:238px;
  min-height:52px;
  padding-inline:22px;
}
.hero__visual--background{
  position:absolute;
  inset:-16px -10vw -20px 38%;
  z-index:1;
  display:block;
  max-width:none;
  margin:0;
  pointer-events:none;
}
.hero-photo-stage{
  position:absolute;
  inset:0;
  overflow:hidden;
  border-radius:0;
}
.hero-photo{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 42%;
  filter:saturate(.94) contrast(1.02);
  -webkit-mask-image:linear-gradient(90deg, transparent 0%, rgba(0,0,0,.4) 7%, #000 24%, #000 100%);
  mask-image:linear-gradient(90deg, transparent 0%, rgba(0,0,0,.4) 7%, #000 24%, #000 100%);
}
.hero-photo-overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, rgba(252,251,255,1) 0%, rgba(252,251,255,.95) 8%, rgba(252,251,255,.34) 31%, rgba(45,20,92,0) 58%),
    linear-gradient(0deg, rgba(45,20,92,.15), rgba(255,255,255,0) 34%, rgba(255,255,255,.08));
}
.hero-photo-stage::after{
  content:'';
  position:absolute;
  inset:auto 0 0 0;
  height:18%;
  background:linear-gradient(180deg, rgba(255,255,255,0), rgba(252,251,255,.78));
}
.scan-beam--photo{
  left:18%;
  right:0;
  height:26%;
  background:linear-gradient(180deg, rgba(34,182,168,0) 0%, rgba(34,182,168,.07) 38%, rgba(34,182,168,.26) 86%, rgba(34,182,168,.48) 100%);
  border-bottom:2px solid rgba(34,182,168,.88);
  animation-duration:3.4s;
}
.hero__visual--background .floating-chip{pointer-events:auto;}
.hero__visual--background .floating-chip--top{left:2%;top:10%;}
.hero__visual--background .floating-chip--bottom{right:4%;bottom:8%;}

/* --- Sobre VET-SCAN: indicadores a la altura visual de los motivos --- */
#nosotros .about__grid{
  grid-template-columns:minmax(0,1.2fr) minmax(360px,.8fr);
  column-gap:48px;
  align-items:start;
}
#nosotros .about__copy{min-width:0;}
#nosotros .reasons{margin-top:34px;gap:20px;}
#nosotros .reason{min-height:66px;align-items:flex-start;}
#nosotros .about__stats{
  align-self:start;
  margin-top:108px;
  gap:18px;
}
#nosotros .stat-card{
  min-height:122px;
  padding:22px 18px;
}

/* --- Mapa real --- */
.zones-section{overflow:hidden;}
.zones__grid--interactive{
  grid-template-columns:minmax(0,.82fr) minmax(520px,1.18fr);
  gap:38px;
  align-items:center;
}
.coverage-map--leaflet{
  padding:10px;
  border-radius:24px;
  background:rgba(255,255,255,.78);
}
.coverage-map__canvas{
  width:100%;
  height:560px;
  min-height:560px;
  border:1px solid var(--violet-200);
  border-radius:18px;
  overflow:hidden;
  background:#f6f3fa;
}
.coverage-map--leaflet .leaflet-container{
  width:100%;
  height:100%;
  background:#f4f0fa;
  font-family:var(--font-body);
}
.coverage-map--leaflet .leaflet-control-zoom{
  border:1px solid rgba(103,61,183,.22)!important;
  box-shadow:0 8px 18px rgba(45,20,92,.08)!important;
}
.coverage-map--leaflet .leaflet-control-zoom a{
  color:var(--violet-700)!important;
}
.coverage-map--leaflet .leaflet-popup-content-wrapper,
.coverage-map--leaflet .leaflet-popup-tip{
  border:1px solid var(--violet-200);
}
.coverage-map--leaflet .leaflet-popup-content-wrapper{
  border-radius:14px;
  box-shadow:0 12px 32px rgba(45,20,92,.12);
}
.coverage-map--leaflet .leaflet-popup-content{
  margin:14px 16px;
  font-size:.82rem;
  color:var(--ink-700);
}
.map-place-label{
  background:rgba(255,255,255,.88);
  border:0;
  box-shadow:0 2px 8px rgba(45,20,92,.08);
  border-radius:8px;
  padding:3px 6px;
  color:var(--violet-900);
  font-size:10px;
  font-weight:800;
  letter-spacing:.01em;
}
.map-place-label::before{display:none;}
.coverage-map__footer{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 16px;
  padding:10px 6px 2px;
  color:var(--ink-700);
  font-size:.68rem;
  font-weight:700;
}
.coverage-map__footer span{display:inline-flex;align-items:center;gap:6px;}
.coverage-map__footer small{margin-left:auto;font-size:.62rem;color:var(--gray-500);font-weight:600;}
.coverage-map__legend-dot{
  width:9px;height:9px;border-radius:50%;display:inline-block;
  border:1px solid var(--violet-300);
}
.coverage-map__legend-dot--confirmed{background:var(--violet-700);}
.coverage-map__legend-dot--consult{background:#ece7f7;}

/* --- Agenda: una tarjeta más compacta sin perder campos --- */
.booking{padding-block:62px;}
.booking__grid{gap:38px;}
.booking-form{padding:24px 26px 20px;}
.booking-form h3{margin-bottom:13px;}
.booking-form__row{gap:12px;}
.field{margin-bottom:10px;}
.field label{font-size:.79rem;margin-bottom:4px;}
.field input,.field select,.field textarea{padding:9px 12px;font-size:.84rem;}
.field textarea{min-height:56px;}
.booking-form__privacy{margin-top:8px;font-size:.72rem;}
.booking-form .btn{min-height:44px;padding-block:9px;}

@media (max-width:1100px){
  .hero__copy{width:min(560px,56%);}
  .hero__visual--background{inset:-16px -8vw -20px 34%;}
  .zones__grid--interactive{grid-template-columns:1fr 1fr;}
}

@media (max-width:1024px){
  #nosotros .about__stats{margin-top:22px;}
  .zones__grid--interactive{grid-template-columns:1fr;}
  .coverage-map__canvas{height:520px;min-height:520px;}
}

@media (max-width:860px){
  .hero{min-height:auto;padding-block:34px 54px;}
  .hero__inner{min-height:auto;display:grid;grid-template-columns:1fr;gap:24px;}
  .hero__copy{width:100%;padding-top:8px;max-width:660px;}
  .hero__title{max-width:none;}
  .hero__visual--background{
    position:relative;
    inset:auto;
    height:370px;
    order:-1;
    margin-inline:-24px;
    pointer-events:none;
  }
  .hero-photo{
    -webkit-mask-image:none;
    mask-image:none;
    object-position:center 42%;
  }
  .hero-photo-overlay{
    background:
      linear-gradient(180deg, rgba(252,251,255,.08) 0%, rgba(252,251,255,0) 46%, rgba(252,251,255,.95) 100%),
      linear-gradient(90deg, rgba(252,251,255,.2), rgba(252,251,255,0) 55%);
  }
  .hero__visual--background .floating-chip--top{left:14px;top:18px;}
  .hero__visual--background .floating-chip--bottom{right:14px;bottom:18px;}
  .hero__actions--aligned .btn{width:100%;min-width:0;}
  .coverage-map__canvas{height:450px;min-height:450px;}
}

@media (max-width:560px){
  .hero__visual--background{height:300px;margin-inline:-18px;}
  .floating-chip{padding:9px 12px;font-size:.72rem;}
  .hero__visual--background .floating-chip--top{top:14px;left:10px;}
  .hero__visual--background .floating-chip--bottom{right:10px;bottom:12px;}
  #nosotros .about__stats{grid-template-columns:1fr 1fr;}
  #nosotros .stat-card{min-height:102px;padding:18px 12px;}
  .coverage-map__canvas{height:390px;min-height:390px;}
  .coverage-map__footer small{width:100%;margin-left:0;}
  .booking{padding-block:46px;}
  .booking-form{padding:20px 17px 16px;}
}

.coverage-map__unavailable{position:absolute;inset:18px;display:flex;align-items:center;justify-content:center;z-index:700;background:rgba(248,245,254,.94);border:1px dashed var(--violet-300);border-radius:14px;color:var(--ink-700);font-size:.84rem;font-weight:700;text-align:center;padding:24px;}
.coverage-map__canvas{position:relative;}


/* Último ajuste: la fotografía también se percibe detrás del texto, pero muy suavizada. */
.hero-photo-overlay{
  background:
    linear-gradient(90deg, rgba(252,251,255,1) 0%, rgba(252,251,255,.98) 11%, rgba(252,251,255,.82) 24%, rgba(252,251,255,.30) 44%, rgba(252,251,255,0) 63%),
    linear-gradient(0deg, rgba(45,20,92,.18), rgba(255,255,255,0) 36%, rgba(255,255,255,.06));
}
.hero__visual--background::before{
  content:'';
  position:absolute;
  inset:0 38% 0 0;
  z-index:3;
  pointer-events:none;
  background:linear-gradient(90deg, rgba(252,251,255,.94), rgba(252,251,255,.76) 56%, rgba(252,251,255,0));
  filter:blur(10px);
}


/* ========================================================================
   24. AJUSTE FINAL · PÁGINA COMPACTA Y ZONAS VISIBLES
   - Reduce espacios verticales entre secciones
   - Hace el mapa visible desde el primer render
   - Reduce la altura del mapa sin perder usabilidad
   - Evita que las animaciones de reveal oculten la sección Zonas
   ======================================================================== */
.section{padding-block:62px;}

.hero{
  min-height:clamp(440px, 52vw, 570px);
  padding-block:42px 54px;
}
.hero__inner{min-height:clamp(330px, 43vw, 460px);}
.hero__copy{padding-top:clamp(16px, 3vw, 38px);}

#nosotros.section{padding-block:58px 60px;}
#nosotros .about__stats{margin-top:102px;}

.zones-section{
  padding-block:54px;
  overflow:hidden;
}
.zones-section [data-reveal]{
  opacity:1;
  transform:none;
}
.zones__grid--interactive{
  grid-template-columns:minmax(300px,.82fr) minmax(460px,1.18fr);
  gap:30px;
  align-items:center;
}
.zone-info{
  padding:15px 16px 14px;
  margin-bottom:12px;
}
.zone-info p{margin-bottom:9px;}
.coverage-map{
  padding:8px;
  border-radius:20px;
}
.coverage-map__canvas{
  height:430px;
  min-height:430px;
  border-radius:15px;
}
.coverage-map__header{padding:3px 4px 7px;}
.coverage-map__footer{padding:8px 4px 0;}

.booking{padding-block:50px;}
.booking-form{padding:21px 22px 17px;}

@media (max-width:1100px){
  .zones__grid--interactive{grid-template-columns:1fr 1fr;}
  .coverage-map__canvas{height:400px;min-height:400px;}
}

@media (max-width:1024px){
  .section{padding-block:54px;}
  .hero{min-height:auto;padding-block:38px 50px;}
  .hero__inner{min-height:auto;}
  .zones-section{padding-block:48px;}
  .zones__grid--interactive{grid-template-columns:1fr;gap:28px;}
  .zones__map--interactive{max-width:860px;margin-inline:auto;width:100%;}
  .coverage-map__canvas{height:400px;min-height:400px;}
  #nosotros .about__stats{margin-top:18px;}
  #nosotros.section{padding-block:52px;}
}

@media (max-width:860px){
  .section{padding-block:48px;}
  .hero{padding-block:30px 46px;}
  .hero__visual--background{height:330px;}
  .zones-section{padding-block:44px;}
  .coverage-map__canvas{height:380px;min-height:380px;}
  .booking{padding-block:42px;}
}

@media (max-width:560px){
  .section{padding-block:42px;}
  .hero__visual--background{height:285px;}
  .zones-section{padding-block:38px;}
  .coverage-map__canvas{height:340px;min-height:340px;}
  .coverage-map__header strong{font-size:.74rem;}
  .coverage-map__footer{font-size:.62rem;}
  .booking{padding-block:38px;}
}


/* ========================================================================
   25. AJUSTE MAPA · compacto, estable y compatible con el reset global
   ======================================================================== */
.zones-section{
  padding-block:44px 48px;
}
.zones__grid--interactive{
  grid-template-columns:minmax(0,.9fr) minmax(440px,1.1fr);
  gap:28px;
  align-items:center;
}
.coverage-map--leaflet{
  padding:8px;
  border-radius:20px;
  overflow:hidden;
}
.coverage-map__canvas{
  width:100%;
  height:390px;
  min-height:390px;
  position:relative;
  border-radius:14px;
  overflow:hidden;
  background:#f4effc;
}
/* Leaflet CSS esencial: evita que el reset global de img rompa las teselas. */
.coverage-map__canvas .leaflet-container{
  width:100%;
  height:100%;
  position:relative;
  overflow:hidden;
  font-family:var(--font-body);
  background:#f4effc;
}
.coverage-map__canvas .leaflet-pane,
.coverage-map__canvas .leaflet-tile,
.coverage-map__canvas .leaflet-marker-icon,
.coverage-map__canvas .leaflet-marker-shadow,
.coverage-map__canvas .leaflet-overlay-pane,
.coverage-map__canvas .leaflet-shadow-pane,
.coverage-map__canvas .leaflet-marker-pane,
.coverage-map__canvas .leaflet-tooltip-pane,
.coverage-map__canvas .leaflet-popup-pane{
  position:absolute;
  left:0;
  top:0;
}
.coverage-map__canvas .leaflet-map-pane{position:absolute;left:0;top:0;}
.coverage-map__canvas .leaflet-tile-pane,
.coverage-map__canvas .leaflet-tile-container{
  position:absolute;
  left:0;
  top:0;
}
.coverage-map__canvas .leaflet-tile{
  position:absolute;
  visibility:inherit;
  width:256px;
  height:256px;
  max-width:none !important;
  max-height:none !important;
  display:block;
}
.coverage-map__canvas .leaflet-container img,
.coverage-map__canvas .leaflet-container svg,
.coverage-map__canvas .leaflet-container canvas{
  max-width:none !important;
}
.coverage-map__canvas .leaflet-control-container{
  position:absolute;
  inset:0;
  pointer-events:none;
}
.coverage-map__canvas .leaflet-top,
.coverage-map__canvas .leaflet-bottom{
  position:absolute;
  z-index:1000;
  pointer-events:none;
}
.coverage-map__canvas .leaflet-top{top:0;}
.coverage-map__canvas .leaflet-bottom{bottom:0;}
.coverage-map__canvas .leaflet-left{left:0;}
.coverage-map__canvas .leaflet-right{right:0;}
.coverage-map__canvas .leaflet-control{float:left;clear:both;pointer-events:auto;}
.coverage-map__canvas .leaflet-right .leaflet-control{float:right;}
.coverage-map__canvas .leaflet-control-zoom a{
  width:30px !important;
  height:30px !important;
  line-height:30px !important;
  text-align:center;
  display:block;
}
.coverage-map__canvas .leaflet-control-attribution{
  font-size:9px;
  line-height:1.3;
  padding:2px 5px;
}
.coverage-map__footer{
  padding:7px 5px 1px;
  font-size:.64rem;
  gap:7px 13px;
}
.coverage-map__footer small{font-size:.58rem;}
.zone-info{
  padding:15px 16px 13px;
  margin-bottom:11px;
}
.zones-legend{margin:15px 0 13px;}

@media (max-width:1100px){
  .zones__grid--interactive{grid-template-columns:1fr 1fr;gap:22px;}
  .coverage-map__canvas{height:360px;min-height:360px;}
}
@media (max-width:1024px){
  .zones-section{padding-block:42px 44px;}
  .zones__grid--interactive{grid-template-columns:1fr;gap:24px;}
  .zones__map--interactive{max-width:800px;width:100%;margin-inline:auto;}
  .coverage-map__canvas{height:360px;min-height:360px;}
}
@media (max-width:860px){
  .zones-section{padding-block:38px 40px;}
  .coverage-map__canvas{height:350px;min-height:350px;}
}
@media (max-width:560px){
  .zones-section{padding-block:34px 36px;}
  .coverage-map__canvas{height:315px;min-height:315px;}
  .coverage-map{padding:6px;border-radius:18px;}
  .coverage-map__header{padding:2px 3px 6px;}
}


/* ========================================================================
   PASO 11 · ACABADO FINAL DE MARCA Y HERO
   - Morado más puro/violeta, menos azulado
   - Fotografía propia generada para VET-SCAN (sin recurso externo)
   - Chips del hero fuera del foco principal de la fotografía
   - Cabecera de mapa estable al hacer zoom / usar anclas
   - Bordes municipales uniformemente morados
   ======================================================================== */
:root{
  --violet-900:#3B0A75;
  --violet-700:#6D28D9;
  --violet-500:#8B5CF6;
  --violet-400:#A970F2;
  --violet-300:#D0B8FA;
  --violet-200:#E5D7FC;
  --violet-100:#F0E7FE;
  --violet-50:#F8F5FF;
  --ink-900:#201230;
  --shadow-sm:0 2px 10px rgba(59,10,117,.07);
  --shadow-md:0 12px 32px rgba(59,10,117,.14);
  --shadow-lg:0 24px 60px rgba(59,10,117,.20);
}

.hero-photo{
  object-position:center center;
  filter:saturate(1.02) contrast(1.02);
}
.hero-photo-overlay{
  background:
    linear-gradient(90deg,
      rgba(252,251,255,1) 0%,
      rgba(252,251,255,.985) 9%,
      rgba(252,251,255,.88) 21%,
      rgba(252,251,255,.46) 36%,
      rgba(252,251,255,.08) 56%,
      rgba(252,251,255,0) 70%),
    linear-gradient(0deg,
      rgba(59,10,117,.14),
      rgba(255,255,255,0) 38%,
      rgba(255,255,255,.05));
}
.hero__visual--background::before{
  inset:0 44% 0 0;
  background:linear-gradient(90deg, rgba(252,251,255,.97), rgba(252,251,255,.80) 62%, rgba(252,251,255,0));
  filter:blur(13px);
}
.hero__visual--background .floating-chip{
  background:rgba(255,255,255,.96);
  color:var(--violet-900);
  box-shadow:0 12px 30px rgba(59,10,117,.15);
  z-index:8;
}
.hero__visual--background .floating-chip--top{
  left:50%;
  top:10%;
  transform:translateX(-8%);
}
.hero__visual--background .floating-chip--bottom{
  right:4%;
  bottom:8%;
}
.hero__visual--background .floating-chip svg{color:var(--violet-700)!important;}

/* Evita que el ancla de Zonas quede debajo del header sticky al cambiar zoom. */
#zonas,
#nosotros,
#ecografias,
#servicios,
#contacto{scroll-margin-top:calc(var(--header-h) + 18px);}

/* Mapa compacto, con cabecera siempre visible y consistente. */
.coverage-map{
  display:flex;
  flex-direction:column;
  overflow:visible;
  border:1px solid var(--violet-200);
  background:rgba(255,255,255,.86);
}
.coverage-map__header{
  position:relative;
  z-index:5;
  min-height:44px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:5px 8px 9px;
  color:var(--violet-900);
  background:rgba(255,255,255,.96);
}
.coverage-map__header > div{min-width:0;}
.coverage-map__header strong{
  display:block;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  color:var(--violet-700);
  font-size:clamp(.82rem,1vw,.98rem);
}
.coverage-map__kicker{color:var(--teal-600);}
.coverage-map__pulse{flex:0 0 auto;}
.coverage-map__canvas{
  flex:0 0 auto;
  height:410px;
  min-height:410px;
  width:100%;
  border:1px solid var(--violet-300);
}
.coverage-map__canvas .leaflet-container{font-size:inherit;}
.coverage-map__canvas .leaflet-tile{max-width:none!important;height:auto!important;display:block!important;}
.coverage-map__canvas .leaflet-container img{max-width:none!important;}

/* Todos los municipios tienen borde violeta, incluso los de consulta. */
.coverage-map--leaflet .leaflet-interactive{
  stroke:var(--violet-700)!important;
  stroke-opacity:1!important;
}
.map-place-label{
  color:var(--violet-900);
  border:1px solid rgba(109,40,217,.18);
}
.coverage-map__footer{color:var(--ink-700);}
.coverage-map__legend-dot--confirmed{background:var(--violet-700);border-color:var(--violet-700);}
.coverage-map__legend-dot--consult{background:var(--violet-100);border-color:var(--violet-400);}

/* Reduce un poco más la distancia visual entre bloques. */
.section{padding-block:56px;}
.zones-section{padding-block:52px;}

@media (max-width:1100px){
  .coverage-map__canvas{height:390px;min-height:390px;}
}
@media (max-width:860px){
  .hero__visual--background .floating-chip--top{
    left:16px;
    top:16px;
    transform:none;
  }
  .hero__visual--background .floating-chip--bottom{
    right:16px;
    bottom:14px;
  }
  .coverage-map__canvas{height:370px;min-height:370px;}
}
@media (max-width:560px){
  .coverage-map__header{align-items:flex-start;}
  .coverage-map__pulse{display:none;}
  .coverage-map__canvas{height:340px;min-height:340px;}
  .hero__visual--background .floating-chip--top{top:12px;left:10px;}
  .hero__visual--background .floating-chip--bottom{right:10px;bottom:10px;}
}


/* ========================================================================
   24. VET-SCAN · AJUSTE FINAL DE CONTRASTE, BADGES Y ZONAS
   ======================================================================== */
:root{
  --violet-900:#32005E;
  --violet-700:#6D00D9;
  --violet-500:#8A2BE2;
  --violet-400:#A95CFF;
  --violet-300:#CDB0FF;
  --violet-200:#E2D4FA;
  --violet-100:#F0E6FF;
  --violet-50:#FAF6FF;
}

.hero__top-notes{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  margin-bottom:14px;
}
.hero-note{
  display:inline-flex;
  align-items:center;
  gap:9px;
  min-height:38px;
  padding:8px 14px;
  border:1px solid rgba(109,0,217,.16);
  border-radius:999px;
  background:rgba(255,255,255,.88);
  box-shadow:0 8px 24px rgba(50,0,94,.08);
  color:var(--violet-900);
  font-size:.79rem;
  font-weight:800;
  backdrop-filter:blur(8px);
}
.hero-note svg{flex:none;}

.hero__visual--background .floating-chip{display:none!important;}

.coverage-map{
  display:flex;
  flex-direction:column;
  min-height:0;
}
.coverage-map__header{
  min-height:42px;
  padding:4px 8px 8px;
}
.coverage-map__header > div{
  flex:1 1 auto;
  display:flex;
  justify-content:center;
}
.coverage-map__header strong{
  width:100%;
  text-align:center;
  font-size:.92rem;
  color:var(--violet-700);
}
.coverage-map__kicker{display:none;}
.coverage-map__pulse{flex:0 0 auto;}
.coverage-map__canvas{
  height:clamp(340px, 49vh, 430px);
  min-height:0;
  flex:1 1 auto;
}
.coverage-map__footer{
  min-height:34px;
  padding-top:7px;
}

.zone-info__status{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin:1px 0 8px;
  padding:5px 9px;
  border-radius:999px;
  font-size:.67rem;
  font-weight:800;
  letter-spacing:.01em;
}
.zone-info__status::before{
  content:'';
  width:7px;
  height:7px;
  border-radius:50%;
  background:currentColor;
  flex:none;
}
.zone-info__status--confirmed{
  color:var(--violet-700);
  background:var(--violet-100);
}
.zone-info__status--consult{
  color:var(--gray-500);
  background:#F1EDF7;
}

.coverage-map--leaflet .leaflet-interactive{
  stroke:var(--violet-700)!important;
  stroke-width:2px!important;
  stroke-opacity:1!important;
}
.coverage-map--leaflet .leaflet-interactive:hover{
  stroke:var(--violet-500)!important;
  stroke-width:3px!important;
}

.zones-section{
  padding-block:30px 34px;
  min-height:calc(100vh - var(--header-h) - 34px);
  display:flex;
  align-items:center;
}
.zones-section > .container{width:100%;}
.zones__grid--interactive{
  align-items:center;
  gap:32px;
}
.zone-info{
  padding:15px 16px 14px;
  margin-bottom:10px;
}
.zones-legend{
  margin:14px 0 12px;
}
.zones__question{
  margin-top:0;
}

@media (max-width:1024px){
  .zones-section{min-height:auto;display:block;}
  .coverage-map__canvas{height:clamp(390px, 58vh, 500px);}
}

@media (max-width:860px){
  .hero__top-notes{margin-bottom:10px;}
  .hero-note{font-size:.74rem;padding:7px 11px;min-height:36px;}
  .zones-section{padding-block:42px 44px;}
}

@media (max-width:560px){
  .hero__top-notes{gap:8px;}
  .hero-note{width:100%;justify-content:center;}
  .coverage-map__header strong{font-size:.8rem;}
  .coverage-map__pulse{font-size:.6rem;}
  .coverage-map__canvas{height:390px;}
}


/* PASO 13 · Mapa resiliente: fallback local si el CDN de Leaflet no está disponible. */
.coverage-map__stage{position:relative;width:100%;height:clamp(330px,48vh,410px);min-height:330px;border:1px solid var(--violet-300);border-radius:14px;overflow:hidden;background:#f4effc;}
.coverage-map__canvas{position:absolute !important;inset:0;width:100% !important;height:100% !important;min-height:0 !important;border:0 !important;border-radius:0 !important;background:transparent;z-index:1;}
.coverage-map__fallback{position:absolute;inset:0;z-index:2;background:#f4effc;transition:opacity .25s ease;pointer-events:none;}
.coverage-map__fallback img{width:100% !important;height:100% !important;max-width:none !important;object-fit:cover;object-position:center 54%;display:block;filter:saturate(.82) contrast(.97);}
.coverage-map__fallback-badge{position:absolute;left:12px;bottom:12px;padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.92);color:var(--violet-900);border:1px solid var(--violet-200);box-shadow:0 8px 20px rgba(50,0,94,.12);font-size:.68rem;font-weight:800;}
.coverage-map__stage.is-live .coverage-map__fallback{opacity:0;visibility:hidden;}
.coverage-map__stage.is-live .coverage-map__canvas{z-index:3;}
@media (max-width:860px){.coverage-map__stage{height:360px;min-height:360px;}}
@media (max-width:560px){.coverage-map__stage{height:315px;min-height:315px;}}


/* ========================================================================
   26. AJUSTE DE TIPOGRAFÍA + HERO COMPACTO + GALERÍA DE SERVICIOS
   ======================================================================== */
:root{
  /* La jerarquía serif se reemplaza por una sans moderna, más limpia y digital. */
  --font-display:var(--font-body);
}

h1,h2,h3,h4,
.logo__text,
.reason__num,
.stat-card__num,
.catalog-card__bottom strong,
.services-gallery__counter,
.services-page__hero-card strong{
  font-family:var(--font-body);
}

/* Elimina el espacio muerto entre header y portada y arranca el hero inmediatamente. */
.hero{
  padding-block:0 40px;
  min-height:0;
}
.hero__inner{
  min-height:clamp(430px,45vw,540px);
  align-items:start;
}
.hero__copy{
  padding-top:24px;
}
.hero__visual--background{
  inset:0 -10vw 0 38%;
}

/* Las tarjetas de servicios del inicio se sienten y responden como enlaces. */
.services-carousel .service-card{
  cursor:pointer;
  user-select:none;
}

/* ========================================================================
   LIGHTBOX / GALERÍA TIPO FOTO
   ======================================================================== */
body.lightbox-open{overflow:hidden;}

.service-lightbox{
  position:fixed;
  inset:0;
  z-index:1000;
  display:grid;
  place-items:center;
  padding:24px;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .22s ease,visibility .22s ease;
}

.service-lightbox.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.service-lightbox__backdrop{
  position:absolute;
  inset:0;
  background:rgba(24,8,52,.76);
  backdrop-filter:blur(8px);
}

.service-lightbox__dialog{
  position:relative;
  z-index:1;
  width:min(980px,calc(100vw - 48px));
  max-height:min(760px,calc(100vh - 48px));
  display:grid;
  align-items:stretch;
  background:#fff;
  border:1px solid rgba(255,255,255,.2);
  border-radius:28px;
  box-shadow:0 30px 80px rgba(24,8,52,.35);
  outline:none;
  overflow:hidden;
}

.service-lightbox__grid{
  min-height:520px;
  display:grid;
  grid-template-columns:.88fr 1.12fr;
}

.service-lightbox__visual{
  min-height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:44px;
  position:relative;
  overflow:hidden;
  background:linear-gradient(145deg,var(--violet-700),var(--violet-900));
  color:#fff;
}

.service-lightbox__visual::before{
  content:'';
  position:absolute;
  width:360px;
  height:360px;
  border-radius:50%;
  right:-170px;
  top:-170px;
  border:1px solid rgba(255,255,255,.18);
}

.service-lightbox__visual--soft{
  background:var(--violet-50);
  color:var(--violet-700);
}

.service-lightbox__visual--soft::before{border-color:var(--violet-200);}

.service-lightbox__visual .catalog-card__icon{
  width:120px;
  height:120px;
  border-radius:32px;
  position:relative;
  z-index:1;
  transform:scale(1.05);
}

.service-lightbox__visual--soft .catalog-card__icon{
  box-shadow:0 14px 30px rgba(45,20,92,.08);
}

.service-lightbox__visual .catalog-card__badge{
  position:absolute;
  top:34px;
  right:34px;
  z-index:2;
  font-size:.72rem;
  padding:8px 12px;
}

.service-lightbox__content{
  min-width:0;
  display:flex;
  flex-direction:column;
  padding:42px 48px 40px;
  overflow:auto;
}

.service-lightbox__eyebrow{
  margin-bottom:10px;
  color:var(--teal-600);
  font-size:.72rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.service-lightbox__content h2{
  margin-bottom:14px;
  font-size:clamp(1.9rem,3.4vw,3rem);
}

.service-lightbox__content > p{
  color:var(--ink-700);
  font-size:1rem;
  line-height:1.7;
  max-width:52ch;
}

.service-lightbox__features{
  display:flex;
  flex-direction:column;
  gap:9px;
  margin-top:22px;
}

.service-lightbox__features li{
  display:flex;
  align-items:center;
  gap:9px;
  color:var(--ink-700);
  font-size:.88rem;
  font-weight:700;
}

.service-lightbox__features li::before{
  content:'✓';
  width:20px;
  height:20px;
  flex:0 0 20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:var(--violet-100);
  color:var(--violet-700);
  font-size:.7rem;
  font-weight:900;
}

.service-lightbox__bottom{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  margin-top:auto;
  padding-top:24px;
  border-top:1px solid var(--gray-300);
}

.service-lightbox__bottom strong{
  display:block;
  color:var(--violet-900);
  font-size:1.35rem;
  font-weight:800;
}

.service-lightbox__close{
  position:absolute;
  top:16px;
  right:16px;
  z-index:4;
  width:42px;
  height:42px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:rgba(255,255,255,.94);
  color:var(--violet-900);
  box-shadow:0 8px 24px rgba(24,8,52,.12);
}

.service-lightbox__close:hover{background:#fff;transform:translateY(-1px);}

.service-lightbox__arrow{
  position:absolute;
  top:50%;
  z-index:4;
  width:48px;
  height:48px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:#fff;
  color:var(--violet-700);
  box-shadow:0 12px 28px rgba(24,8,52,.16);
  transform:translateY(-50%);
  transition:transform .18s ease,background .18s ease,opacity .18s ease;
}

.service-lightbox__arrow:hover:not(:disabled){
  transform:translateY(-50%) scale(1.04);
  background:var(--violet-50);
}

.service-lightbox__arrow:disabled{opacity:.35;cursor:not-allowed;}
.service-lightbox__arrow--prev{left:-24px;}
.service-lightbox__arrow--next{right:-24px;}

.service-lightbox__counter{
  position:absolute;
  left:50%;
  bottom:12px;
  z-index:4;
  transform:translateX(-50%);
  display:flex;
  align-items:center;
  gap:6px;
  padding:6px 11px;
  border-radius:999px;
  background:rgba(255,255,255,.93);
  color:var(--violet-900);
  font-size:.75rem;
  font-weight:800;
  box-shadow:0 8px 24px rgba(24,8,52,.1);
}

@media (max-width:860px){
  .hero{padding-bottom:28px;}
  .hero__inner{min-height:0;align-items:start;}
  .hero__copy{padding-top:12px;}
  .hero__visual--background{inset:auto;height:360px;margin-inline:-24px;}

  .service-lightbox{padding:12px;}
  .service-lightbox__dialog{width:100%;max-height:calc(100vh - 24px);border-radius:24px;}
  .service-lightbox__grid{grid-template-columns:1fr;min-height:0;}
  .service-lightbox__visual{min-height:220px;padding:34px;}
  .service-lightbox__visual .catalog-card__icon{width:88px;height:88px;border-radius:24px;}
  .service-lightbox__visual .catalog-card__badge{top:18px;right:56px;}
  .service-lightbox__content{padding:28px 24px 26px;max-height:58vh;}
  .service-lightbox__arrow--prev{left:10px;}
  .service-lightbox__arrow--next{right:10px;}
}

@media (max-width:560px){
  .hero{padding-bottom:18px;}
  .hero__visual--background{height:300px;margin-inline:-18px;}
  .service-lightbox__content h2{font-size:1.75rem;}
  .service-lightbox__content > p{font-size:.92rem;}
  .service-lightbox__bottom{align-items:stretch;flex-direction:column;gap:14px;}
  .service-lightbox__bottom .btn{width:100%;}
  .service-lightbox__visual{min-height:190px;}
}


/* ========================================================================
   PASO 15 · HERO MÁS COMPACTO · TIPOGRAFÍA MODERNA · NAVEGACIÓN DIRECTA
   ======================================================================== */
:root{
  /* Violeta más saturado y contemporáneo, manteniendo el contraste de marca. */
  --violet-700:#6D00D9;
  --violet-500:#8127EE;
  --violet-900:#31005F;
  --violet-400:#9C63F2;
  --violet-300:#C9A8F7;
  --violet-200:#E3D2FA;
  --violet-100:#F0E7FC;
  --violet-50:#F7F2FE;

  /* Plus Jakarta Sans para toda la interfaz: moderna, más gruesa y legible. */
  --font-display:var(--font-body);
}

h1,h2,h3,h4,
.logo__text,
.reason__num,
.stat-card__num,
.catalog-card__bottom strong,
.services-gallery__counter,
.services-page__hero-card strong{
  font-family:var(--font-body);
}

h1,h2,h3,h4{font-weight:800;}
h1{letter-spacing:-0.03em;}
h2{letter-spacing:-0.025em;}
h3,h4{letter-spacing:-0.015em;}

.hero{
  padding:0 0 30px;
  min-height:0;
}
.hero__inner{
  min-height:clamp(430px, 45vw, 520px);
  align-items:start;
}
.hero__copy{
  padding-top:18px;
}
.hero__title{
  font-size:clamp(2.55rem,4vw,3.15rem);
  line-height:1.04;
  margin-block:12px 17px;
  font-weight:800;
}
.hero__lead{
  font-size:1rem;
  line-height:1.58;
  margin-bottom:24px;
}
.hero__visual--background{
  inset:0 -10vw 0 38%;
}

/* Los indicadores del hero viven fuera de la fotografía. */
.hero__top-notes{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:14px;
}
.hero-note{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:42px;
  padding:8px 13px;
  border:1px solid var(--violet-200);
  border-radius:999px;
  background:#fff;
  color:var(--violet-900);
  box-shadow:0 8px 22px rgba(49,0,95,.06);
  font-size:.78rem;
  font-weight:800;
}

/* La llamada "Ver servicio" siempre se percibe como acción y navega al catálogo. */
.services-carousel .service-card,
.services-carousel .service-card__link{
  cursor:pointer;
}
.services-carousel .service-card__link{
  user-select:none;
}

/* Sobre VET-SCAN: enumeraciones más juntas y alineadas. */
#nosotros .reasons{
  margin-top:26px;
  gap:12px;
}
#nosotros .reason{
  min-height:0;
  gap:14px;
  align-items:flex-start;
  padding-block:3px;
}
#nosotros .reason__num{
  line-height:1;
  padding-top:2px;
}
#nosotros .reason p{
  line-height:1.45;
}
#nosotros .about__stats{
  margin-top:92px;
}

/* Evita que el enlace interno del carousel sea tratado como un simple gesto. */
.services-carousel__viewport{
  -webkit-tap-highlight-color:transparent;
}

@media (max-width:1024px){
  .hero__inner{min-height:auto;}
  .hero__visual--background{inset:auto;}
  #nosotros .about__stats{margin-top:18px;}
}

@media (max-width:860px){
  .services-page__hero-media{min-height:290px;}
  .services-page__hero-media img{min-height:290px;}
}

@media (max-width:860px){
  .hero{padding:0 0 34px;}
  .hero__copy{padding-top:12px;}
  .hero__top-notes{margin-bottom:10px;}
  .hero__title{font-size:clamp(2.1rem,7vw,2.7rem);}
  #nosotros .reasons{gap:10px;}
}

@media (max-width:560px){
  .hero__top-notes{gap:8px;}
  .hero-note{width:auto;min-height:38px;padding:7px 11px;font-size:.72rem;}
  .hero__title{font-size:clamp(2rem,9vw,2.45rem);}
  #nosotros .reason{gap:11px;}
}


/* ========================================================================
   PASO 17 · SERVICIOS SIN PRECIO EN INICIO · INDICADORES · ZONAS SIMÉTRICAS
   ======================================================================== */

/* En el inicio el precio vive únicamente en servicios.html. */
.services-carousel .service-card__price{display:none !important;}

/* La tarjeta sigue siendo un enlace completo; el CTA es su acción visible. */
.services-carousel .service-card{
  text-decoration:none;
  -webkit-user-select:none;
  user-select:none;
}
.services-carousel .service-card__link{
  margin-top:auto;
}

/* Indicadores: un poco más abajo para alinearlos visualmente con el bloque 01. */
#nosotros .about__stats{
  margin-top:170px;
}

/* Mantiene el conteo numérico legible durante la animación. */
#nosotros .stat-card__num{
  min-width:5ch;
  font-variant-numeric:tabular-nums;
}

/* Botones de zona: misma dimensión, colores diferentes y siempre en una fila. */
.zones-actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  width:100%;
  margin-top:2px;
}
.zones-actions .btn{
  width:100%;
  min-height:46px;
  padding:10px 12px;
  font-size:.78rem;
}
.zones__question{margin-top:0 !important;}

/* Mapa verdaderamente cuadrado para una composición visual simétrica. */
.zones__map--interactive{
  justify-content:flex-end;
  align-self:center;
}
.coverage-map{
  width:min(100%, 500px);
  margin-left:auto;
  margin-right:0;
}
.coverage-map__stage{
  width:100%;
  height:auto !important;
  min-height:0 !important;
  aspect-ratio:1 / 1;
}
.coverage-map__canvas{
  width:100% !important;
  height:100% !important;
  min-height:0 !important;
}
.coverage-map__footer{
  min-height:34px;
}

@media (max-width:1100px){
  #nosotros .about__stats{margin-top:150px;}
  .coverage-map{width:min(100%,460px);}
}

@media (max-width:1024px){
  #nosotros .about__stats{margin-top:20px;}
  .zones__map--interactive{justify-content:center;}
  .coverage-map{width:min(100%,500px);margin-inline:auto;}
}

@media (max-width:860px){
  .zones-actions{gap:8px;}
  .zones-actions .btn{min-height:44px;padding:9px 10px;font-size:.72rem;}
  .coverage-map{width:min(100%,460px);}
}

@media (max-width:560px){
  .zones-actions{grid-template-columns:repeat(2,minmax(0,1fr));}
  .zones-actions .btn{font-size:.68rem;padding-inline:8px;}
  .coverage-map{width:100%;}
}


/* ========================================================================
   31. IMÁGENES DE LOS SERVICIOS DE ECOGRAFÍA
   - Fotografías generadas para VET-SCAN en la vista de servicios.
   - La imagen ocupa todo el encabezado de la tarjeta sin perder proporción.
   ======================================================================== */
.catalog-card__visual--photo{
  padding:0 !important;
  background:#eeeaf8;
}
.catalog-card__visual--photo::before{
  display:none;
}
.catalog-card__image{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.services-page .catalog-card__visual--photo{
  min-height:112px;
  height:112px;
  flex:0 0 112px;
}

.service-lightbox__visual--photo{
  padding:0;
  background:#eeeaf8;
}
.service-lightbox__visual--photo::before{
  display:none;
}
.service-lightbox__visual--photo .catalog-card__image{
  width:100%;
  height:100%;
  min-height:100%;
  object-fit:cover;
  object-position:center;
}

/* La navegación del carrusel deja que los enlaces HTML funcionen de forma
   nativa en cada carga; solo se suprime el clic sintético posterior al drag. */
.services-carousel .service-card__link{
  pointer-events:none;
}


/* ========================================================================
   PASO 19 · TARJETAS DE SERVICIO, IMÁGENES Y TYPO REDONDEADA
   - CTA "Ver servicio" navegable con clic normal y sin depender del drag.
   - Imagen ocupa más de la mitad de la tarjeta en la galería.
   - Estadísticas con Nunito Sans para un acabado más redondeado.
   ======================================================================== */
:root{
  --font-rounded:'Nunito Sans',var(--font-body);
}

.services-carousel .service-card__link{
  pointer-events:auto !important;
  cursor:pointer;
  position:relative;
  z-index:4;
}

#nosotros .stat-card__num,
#nosotros .stat-card__label{
  font-family:var(--font-rounded);
  font-weight:800;
  letter-spacing:-0.02em;
}
#nosotros .stat-card__label{font-weight:700;letter-spacing:-0.01em;}

/* Galería de servicios: foto dominante, información compacta y siempre contenida. */
.services-page .services-gallery__track{
  align-items:stretch;
}
.services-page .catalog-card,
.services-page .catalog-card--featured{
  height:450px;
  min-height:450px;
}
.services-page .catalog-card__visual,
.services-page .catalog-card--featured .catalog-card__visual,
.services-page .catalog-card__visual--photo{
  height:240px;
  min-height:240px;
  flex:0 0 240px;
}
.services-page .catalog-card__body,
.services-page .catalog-card--featured .catalog-card__body{
  height:210px;
  min-height:210px;
  padding:13px 16px 12px;
}
.services-page .catalog-card__tag{
  margin-bottom:5px;
  padding:4px 8px;
  font-size:.60rem;
}
.services-page .catalog-card h3,
.services-page .catalog-card--featured h3{
  margin-bottom:4px;
  font-size:1.03rem;
  line-height:1.12;
  min-height:2.24em;
}
.services-page .catalog-card--featured h3{font-size:1.18rem;}
.services-page .catalog-card p{
  font-size:.70rem;
  line-height:1.32;
  min-height:2.64em;
}
.services-page .catalog-card__features{
  gap:3px;
  margin-top:7px;
  min-height:49px;
}
.services-page .catalog-card__features li{
  gap:6px;
  font-size:.62rem;
  line-height:1.18;
}
.services-page .catalog-card__features li::before{
  width:15px;
  height:15px;
  flex-basis:15px;
  font-size:.55rem;
}
.services-page .catalog-card__bottom{
  min-height:38px;
  padding-top:8px;
  gap:8px;
}
.services-page .catalog-card__price-label{
  font-size:.58rem;
  margin-bottom:2px;
}
.services-page .catalog-card__bottom strong{font-size:1.0rem;}
.services-page .catalog-card__action{
  padding:8px 13px;
  min-height:36px;
  font-size:.72rem;
}
.services-page .catalog-card__image{
  image-rendering:auto;
}

@media (max-width:1024px){
  .services-page .catalog-card,
  .services-page .catalog-card--featured{
    height:430px;
    min-height:430px;
  }
  .services-page .catalog-card__visual,
  .services-page .catalog-card--featured .catalog-card__visual,
  .services-page .catalog-card__visual--photo{
    height:225px;
    min-height:225px;
    flex-basis:225px;
  }
  .services-page .catalog-card__body,
  .services-page .catalog-card--featured .catalog-card__body{
    height:205px;
    min-height:205px;
  }
}

@media (max-width:640px){
  .services-page .catalog-card,
  .services-page .catalog-card--featured{
    height:395px;
    min-height:395px;
  }
  .services-page .catalog-card__visual,
  .services-page .catalog-card--featured .catalog-card__visual,
  .services-page .catalog-card__visual--photo{
    height:210px;
    min-height:210px;
    flex-basis:210px;
  }
  .services-page .catalog-card__body,
  .services-page .catalog-card--featured .catalog-card__body{
    height:185px;
    min-height:185px;
    padding:12px 14px 11px;
  }
  .services-page .catalog-card h3,
  .services-page .catalog-card--featured h3{font-size:1.0rem;}
  .services-page .catalog-card--featured h3{font-size:1.12rem;}
}

/* ========================================================================
   FIX GALERÍA SERVICIOS · FILAS SIN DESBORDES / TARJETAS SIMÉTRICAS
   - La altura real de las tarjetas coincide con la altura de cada fila.
   - La imagen ocupa ligeramente más de la mitad de la tarjeta.
   - Precio + Agendar quedan siempre contenidos en la parte inferior.
   ======================================================================== */
.services-page .services-gallery__track{
  grid-template-rows:450px 450px;
  grid-auto-rows:450px;
  align-items:stretch;
}

.services-page .catalog-card,
.services-page .catalog-card--featured{
  height:450px;
  min-height:450px;
  max-height:450px;
  overflow:hidden;
}

.services-page .catalog-card__visual,
.services-page .catalog-card--featured .catalog-card__visual,
.services-page .catalog-card__visual--photo{
  height:252px;
  min-height:252px;
  flex:0 0 252px;
}

.services-page .catalog-card__body,
.services-page .catalog-card--featured .catalog-card__body{
  height:198px;
  min-height:198px;
  max-height:198px;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}

.services-page .catalog-card__bottom{
  margin-top:auto;
  flex-shrink:0;
}

@media (max-width:1024px){
  .services-page .services-gallery__track{
    grid-template-rows:430px 430px;
    grid-auto-rows:430px;
  }

  .services-page .catalog-card,
  .services-page .catalog-card--featured{
    height:430px;
    min-height:430px;
    max-height:430px;
  }

  .services-page .catalog-card__visual,
  .services-page .catalog-card--featured .catalog-card__visual,
  .services-page .catalog-card__visual--photo{
    height:238px;
    min-height:238px;
    flex-basis:238px;
  }

  .services-page .catalog-card__body,
  .services-page .catalog-card--featured .catalog-card__body{
    height:192px;
    min-height:192px;
    max-height:192px;
  }
}

@media (max-width:560px){
  .services-page .services-gallery__track{
    grid-template-rows:none;
    grid-auto-rows:auto;
  }

  .services-page .catalog-card,
  .services-page .catalog-card--featured{
    height:395px;
    min-height:395px;
    max-height:395px;
  }

  .services-page .catalog-card__visual,
  .services-page .catalog-card--featured .catalog-card__visual,
  .services-page .catalog-card__visual--photo{
    height:220px;
    min-height:220px;
    flex-basis:220px;
  }

  .services-page .catalog-card__body,
  .services-page .catalog-card--featured .catalog-card__body{
    height:175px;
    min-height:175px;
    max-height:175px;
  }
}

/* ========================================================================
   AJUSTE FINAL DE TARJETAS · INFORMACIÓN COMPACTA Y SIN SUPERPOSICIONES
   ======================================================================== */
.services-page .services-gallery__track{
  grid-template-rows:450px 450px;
  grid-auto-rows:450px;
}

.services-page .catalog-card,
.services-page .catalog-card--featured{
  height:450px;
  min-height:450px;
  max-height:450px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
}

.services-page .catalog-card__visual,
.services-page .catalog-card--featured .catalog-card__visual,
.services-page .catalog-card__visual--photo{
  height:248px;
  min-height:248px;
  flex:0 0 248px;
  overflow:hidden;
}

.services-page .catalog-card__body,
.services-page .catalog-card--featured .catalog-card__body{
  height:202px;
  min-height:202px;
  max-height:202px;
  padding:12px 16px 10px;
  overflow:hidden;
}

.services-page .catalog-card__tag{
  margin-bottom:4px;
  padding:4px 8px;
  font-size:.60rem;
  line-height:1;
}

.services-page .catalog-card h3,
.services-page .catalog-card--featured h3{
  margin-bottom:4px;
  font-size:1.02rem;
  line-height:1.12;
  min-height:0;
  max-height:2.28em;
  overflow:hidden;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}

.services-page .catalog-card--featured h3{
  font-size:1.14rem;
}

.services-page .catalog-card p{
  font-size:.70rem;
  line-height:1.28;
  min-height:0;
  max-height:2.56em;
  overflow:hidden;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}

.services-page .catalog-card__features{
  gap:2px;
  margin-top:6px;
  min-height:0;
}

.services-page .catalog-card__features li{
  gap:6px;
  font-size:.61rem;
  line-height:1.12;
  min-height:15px;
}

.services-page .catalog-card__features li::before{
  width:14px;
  height:14px;
  flex-basis:14px;
  font-size:.52rem;
}

.services-page .catalog-card__bottom{
  margin-top:auto;
  min-height:36px;
  padding-top:7px;
  gap:8px;
}

.services-page .catalog-card__price-label{
  font-size:.57rem;
  line-height:1;
  margin-bottom:2px;
}

.services-page .catalog-card__bottom strong{
  font-size:1.0rem;
  line-height:1.1;
}

.services-page .catalog-card__action{
  padding:8px 13px;
  min-height:36px;
  font-size:.70rem;
}

@media (max-width:1024px){
  .services-page .services-gallery__track{
    grid-template-rows:430px 430px;
    grid-auto-rows:430px;
  }

  .services-page .catalog-card,
  .services-page .catalog-card--featured{
    height:430px;
    min-height:430px;
    max-height:430px;
  }

  .services-page .catalog-card__visual,
  .services-page .catalog-card--featured .catalog-card__visual,
  .services-page .catalog-card__visual--photo{
    height:235px;
    min-height:235px;
    flex-basis:235px;
  }

  .services-page .catalog-card__body,
  .services-page .catalog-card--featured .catalog-card__body{
    height:195px;
    min-height:195px;
    max-height:195px;
  }
}

@media (max-width:560px){
  .services-page .services-gallery__track{
    grid-template-rows:none;
    grid-auto-rows:auto;
  }

  .services-page .catalog-card,
  .services-page .catalog-card--featured{
    height:400px;
    min-height:400px;
    max-height:400px;
  }

  .services-page .catalog-card__visual,
  .services-page .catalog-card--featured .catalog-card__visual,
  .services-page .catalog-card__visual--photo{
    height:220px;
    min-height:220px;
    flex-basis:220px;
  }

  .services-page .catalog-card__body,
  .services-page .catalog-card--featured .catalog-card__body{
    height:180px;
    min-height:180px;
    max-height:180px;
    padding:11px 14px 10px;
  }

  .services-page .catalog-card--featured h3{font-size:1.06rem;}
}

/* ========================================================================
   PASO 21 · CORRECCIONES FINALES DE RESPONSIVE
   ======================================================================== */
@media (max-width: 860px){
  /* Barra móvil: marca centrada y hamburguesa a la derecha */
  .header__inner{
    position:relative;
    justify-content:center;
    height:var(--header-h);
    padding-inline:18px;
  }
  .header__inner > .logo{
    position:absolute;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%);
    z-index:3;
  }
  .header__inner > .logo .logo__text{font-size:1.06rem;}
  .header__inner > .logo .logo__mark{width:42px;height:42px;}
  .header__cta{display:none !important;}
  .nav__toggle{
    display:flex;
    position:absolute;
    right:17px;
    top:50%;
    transform:translateY(-50%);
    width:42px;
    height:42px;
    padding:7px;
    z-index:5;
  }
  .nav__toggle span{height:2.5px;}

  /* Hero: primero el mensaje, después la fotografía */
  .hero__inner{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    min-height:0;
  }
  .hero__copy{
    order:1;
    width:100%;
    max-width:none;
    padding-top:14px;
  }
  .hero__visual--background{
    order:2;
    position:relative;
    inset:auto;
    width:calc(100% + 36px);
    height:270px;
    margin:28px -18px 0;
    max-width:none;
    z-index:1;
  }
  .hero-photo-stage{
    position:relative;
    inset:auto;
    width:100%;
    height:100%;
    border-radius:20px 20px 0 0;
  }
  .hero-photo{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center 42%;
    -webkit-mask-image:none;
    mask-image:none;
  }
  .hero-photo-overlay{
    background:linear-gradient(180deg,rgba(255,255,255,0) 58%,rgba(252,251,255,.78) 100%);
  }
  .scan-beam--photo{left:0;right:0;height:20%;}

  /* Sobre VET-SCAN: copy + razones arriba, indicadores en bloque debajo */
  #nosotros .about__grid{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:28px;
  }
  #nosotros .about__copy,
  #nosotros .about__stats{width:100%;min-width:0;}
  #nosotros .about__stats{
    order:2;
    margin-top:0;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
  }
  #nosotros .stat-card{min-height:108px;padding:18px 12px;}
  #nosotros .stat-card__num{font-size:1.8rem;}
  #nosotros .stat-card__label{font-size:.78rem;}

  /* Flotantes */
  .whatsapp-float{
    width:64px;
    height:64px;
    right:14px;
    bottom:20px;
  }
  .back-to-top{
    width:42px;
    height:42px;
    right:14px;
    bottom:96px;
  }

  /* Footer: pie centrado y con respiración */
  .footer__bottom{
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    text-align:center;
    gap:8px;
    padding:24px 18px 32px;
  }
  .footer__bottom p{max-width:34ch;}
}

@media (max-width: 560px){
  .hero{padding:0 0 20px;}
  .hero__title{
    max-width:100%;
    font-size:clamp(2rem,9vw,2.35rem);
    line-height:1.06;
  }
  .hero__lead{font-size:.94rem;line-height:1.55;}
  .hero__visual--background{
    height:245px;
    margin-top:24px;
  }

  /* Tarjetas de servicios: imagen dominante + cuerpo legible + un solo CTA */
  .services-page .services-gallery__track{
    grid-template-columns:1fr;
    grid-template-rows:none;
    grid-auto-rows:auto;
    gap:16px;
    padding-inline:0;
  }
  .services-page .catalog-card,
  .services-page .catalog-card--featured{
    width:100%;
    height:560px;
    min-height:560px;
    max-height:560px;
    grid-column:auto;
    overflow:hidden;
  }
  .services-page .catalog-card__visual,
  .services-page .catalog-card--featured .catalog-card__visual,
  .services-page .catalog-card__visual--photo{
    height:300px;
    min-height:300px;
    max-height:300px;
    flex:0 0 300px;
    padding:0;
  }
  .services-page .catalog-card__body,
  .services-page .catalog-card--featured .catalog-card__body{
    height:260px;
    min-height:260px;
    max-height:260px;
    padding:14px 16px 14px;
    overflow:hidden;
  }
  .services-page .catalog-card h3,
  .services-page .catalog-card--featured h3{
    font-size:1.12rem;
    line-height:1.16;
    min-height:0;
    max-height:2.34em;
    margin-bottom:6px;
  }
  .services-page .catalog-card--featured h3{font-size:1.28rem;}
  .services-page .catalog-card p{
    font-size:.80rem;
    line-height:1.38;
    max-height:2.76em;
  }
  .services-page .catalog-card__features{
    gap:6px;
    margin-top:10px;
  }
  .services-page .catalog-card__features li{
    font-size:.70rem;
    line-height:1.24;
    min-height:17px;
  }
  .services-page .catalog-card__bottom{
    margin-top:auto;
    min-height:42px;
    padding-top:9px;
    border-top:1px solid var(--gray-300);
    justify-content:flex-end;
  }
  .services-page .catalog-card__action{
    width:100%;
    min-height:42px;
    padding:10px 14px;
    border-radius:12px;
    font-size:.80rem;
  }

  /* Visor: flechas dentro de la zona de foto y nunca sobre el título */
  .service-lightbox{padding:10px;}
  .service-lightbox__dialog{
    width:100%;
    max-height:calc(100vh - 20px);
    border-radius:24px;
  }
  .service-lightbox__visual,
  .service-lightbox__visual--photo{
    height:260px;
    min-height:260px;
    padding:0;
  }
  .service-lightbox__content{
    padding:24px 20px 22px;
    max-height:58vh;
    overflow:auto;
  }
  .service-lightbox__content h2{font-size:1.72rem;line-height:1.12;}
  .service-lightbox__content > p{font-size:.92rem;line-height:1.52;}
  .service-lightbox__features{gap:8px;margin-top:16px;}
  .service-lightbox__features li{font-size:.82rem;line-height:1.25;}
  .service-lightbox__arrow{
    top:238px;
    width:42px;
    height:42px;
    background:rgba(255,255,255,.90);
    box-shadow:0 8px 20px rgba(24,8,52,.13);
    backdrop-filter:blur(6px);
  }
  .service-lightbox__arrow--prev{left:12px;}
  .service-lightbox__arrow--next{right:12px;}

  #nosotros .about__stats{grid-template-columns:repeat(2,minmax(0,1fr));}
  #nosotros .stat-card{min-height:104px;padding:16px 10px;}
  #nosotros .stat-card__num{font-size:1.62rem;}
  #nosotros .stat-card__label{font-size:.74rem;line-height:1.25;}

  .footer__bottom{padding-inline:14px;}
  .whatsapp-float{width:64px;height:64px;right:14px;bottom:18px;}
}


/* ========================================================================
   PASO 22 · SERVICIOS ACTUALIZADOS · LOGO REAL · COTIZACIÓN · ECÓGRAFO
   ======================================================================== */
:root{
  --violet-700:#6D00D9;
  --violet-500:#8424F0;
  --violet-900:#32005F;
  --violet-400:#A463F3;
  --violet-300:#D1B7FA;
  --violet-200:#E9D9FC;
  --violet-100:#F3E9FD;
  --violet-50:#F9F4FE;
}

.logo{display:inline-flex;align-items:center;justify-content:center;}
.logo__image{display:block;width:58px;height:58px;object-fit:contain;border-radius:50%;background:#fff;box-shadow:0 7px 22px rgba(70,0,120,.08);}
.logo--light .logo__image{background:rgba(255,255,255,.96);}

/* El escaneo continúa animándose, ahora sobre una fotografía profesional del ecógrafo. */
.scan-panel__body{position:relative;overflow:hidden;min-height:280px;}
.scan-panel__image-wrap{position:relative;width:100%;height:100%;min-height:280px;border-radius:18px;overflow:hidden;background:#160c25;}
.scan-panel__photo{display:block;width:100%;height:100%;min-height:280px;object-fit:cover;object-position:center;filter:saturate(.98) contrast(1.04);}
.scan-panel__image-wrap::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(109,0,217,.20),transparent 45%,rgba(34,182,168,.10));pointer-events:none;}
.scan-panel__scan-beam{position:absolute;left:4%;right:4%;top:-8%;height:3px;background:linear-gradient(90deg,transparent,var(--teal-500),#86FFF2,var(--teal-500),transparent);box-shadow:0 0 16px rgba(34,182,168,.72);animation:scanBeam 2.6s ease-in-out infinite;z-index:3;}
@keyframes scanBeam{0%{transform:translateY(0);opacity:.45}50%{transform:translateY(280px);opacity:1}100%{transform:translateY(0);opacity:.45}}

/* Visor: el cierre y flechas se integran en la composición sin tapar la lectura. */
.service-lightbox__dialog{overflow:hidden;position:relative;}
.service-lightbox__content{position:relative;isolation:isolate;}
.service-lightbox__content::after{content:"";position:absolute;right:18px;bottom:18px;width:150px;height:150px;background:url('../assets/branding/logo.jpeg') center/contain no-repeat;opacity:.045;pointer-events:none;z-index:-1;}
.service-lightbox__close{width:38px;height:38px;top:12px;right:12px;background:rgba(255,255,255,.82);backdrop-filter:blur(10px);border:1px solid rgba(109,0,217,.10);box-shadow:0 8px 22px rgba(24,8,52,.10);}
.service-lightbox__arrow{width:44px;height:44px;background:rgba(255,255,255,.84);backdrop-filter:blur(10px);box-shadow:0 10px 24px rgba(24,8,52,.12);border:1px solid rgba(109,0,217,.10);}
.service-lightbox__arrow--prev{left:14px;}
.service-lightbox__arrow--next{right:14px;}
.service-lightbox__bottom{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:stretch;}
.service-lightbox__bottom .btn{width:100%;min-height:48px;display:flex;align-items:center;justify-content:center;border-radius:14px;font-weight:800;}
.service-lightbox__quote{background:#fff;color:var(--violet-700);border:1.5px solid var(--violet-400);box-shadow:0 7px 18px rgba(109,0,217,.06);}
.service-lightbox__quote:hover{background:var(--violet-50);}

/* Tarjetas del catálogo: imagen dominante + contenido compacto y respirable. */
.services-page .catalog-card__visual--photo{height:250px;min-height:250px;flex:0 0 250px;background:var(--violet-50);}
.services-page .catalog-card__image{object-fit:cover;width:100%;height:100%;display:block;}
.services-page .catalog-card{height:454px;min-height:454px;}
.services-page .catalog-card__body{height:204px;min-height:204px;display:flex;flex-direction:column;padding:13px 16px 12px;overflow:hidden;}
.services-page .catalog-card h3{font-size:1.06rem;line-height:1.12;margin-bottom:4px;}
.services-page .catalog-card p{font-size:.73rem;line-height:1.34;margin-bottom:5px;}
.services-page .catalog-card__features{gap:5px;margin-top:5px;}
.services-page .catalog-card__features li{font-size:.70rem;line-height:1.2;}
.services-page .catalog-card__bottom{margin-top:auto;border-top:1px solid var(--gray-300);padding-top:9px;}
.services-page .catalog-card__action{min-height:40px;width:100%;border-radius:12px;}

@media (max-width:860px){
  .header__inner{position:relative;min-height:72px;}
  .header .logo{position:absolute;left:50%;transform:translateX(-50%);}
  .header .logo__image{width:60px;height:60px;}
  .services-page .catalog-card{height:520px;min-height:520px;}
  .services-page .catalog-card__visual--photo{height:300px;min-height:300px;flex-basis:300px;}
  .services-page .catalog-card__body{height:220px;min-height:220px;padding:14px 16px 13px;}
  .service-lightbox__dialog{max-height:calc(100vh - 20px);}
  .service-lightbox__bottom{grid-template-columns:1fr;gap:10px;}
  .service-lightbox__arrow{width:40px;height:40px;top:240px;}
  .service-lightbox__arrow--prev{left:12px;}
  .service-lightbox__arrow--next{right:12px;}
  .service-lightbox__close{top:10px;right:10px;}
}

@media (max-width:560px){
  .logo__image{width:56px;height:56px;}
  .services-page .catalog-card{height:540px;min-height:540px;}
  .services-page .catalog-card__visual--photo{height:318px;min-height:318px;flex-basis:318px;}
  .services-page .catalog-card__body{height:222px;min-height:222px;padding:13px 15px 12px;}
  .services-page .catalog-card h3{font-size:1.08rem;}
  .services-page .catalog-card p{font-size:.76rem;}
  .services-page .catalog-card__features li{font-size:.72rem;}
  .service-lightbox__content{padding:23px 18px 20px;}
  .service-lightbox__content h2{font-size:1.62rem;}
  .service-lightbox__arrow{top:calc(260px - 22px);}
}


/* Ajuste final del visor: cotización arriba y agendamiento debajo, en una composición clara. */
.service-lightbox__bottom{grid-template-columns:1fr;gap:10px;}
.service-lightbox__bottom .btn{min-height:48px;}
.service-lightbox__quote{display:flex;gap:9px;align-items:center;justify-content:center;}
.service-lightbox__quote svg{flex:0 0 auto;}
.service-lightbox__content::after{right:16px;bottom:12px;width:128px;height:128px;}

/* Servicios actualizados: cinco categorías con imágenes claramente diferenciadas. */
.services-page .services-gallery__track{grid-template-columns:repeat(3,minmax(0,1fr));}
@media (max-width:1024px){
  .services-page .services-gallery__track{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:700px){
  .services-page .services-gallery__track{grid-template-columns:1fr;}
  .services-page .catalog-card{height:536px;min-height:536px;}
  .services-page .catalog-card__visual--photo{height:318px;min-height:318px;flex-basis:318px;}
  .services-page .catalog-card__body{height:218px;min-height:218px;}
}

/* ========================================================================
   PASO 23 · IDENTIDAD, IMÁGENES REALISTAS Y AJUSTES FINALES
   ======================================================================== */

/* Identidad del encabezado: logo real + nombre textual */
.header .logo{
  gap:12px;
}
.logo__image{
  width:54px;
  height:54px;
  flex:0 0 54px;
  object-fit:contain;
  border-radius:50%;
  background:#fff;
}
.logo__word{
  display:inline-flex;
  align-items:baseline;
  white-space:nowrap;
  font-family:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  font-size:1.48rem;
  line-height:1;
  font-weight:800;
  letter-spacing:-.045em;
}
.logo__word span{color:var(--violet-900);}
.logo__word b{color:var(--violet-700);font-weight:800;}

.logo--light .logo__word span,
.logo--light .logo__word b{color:#fff;}

/* El footer se siente centrado y no pegado a los bordes en escritorio. */
.footer__brand{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}
.footer__brand .logo{
  justify-content:center;
}
.footer__brand .logo__image{
  width:50px;
  height:50px;
  flex-basis:50px;
}
.footer__brand .logo__word{
  font-size:1.18rem;
}
.footer__brand p{
  max-width:34ch;
}
.footer__copy{
  max-width:36ch;
}

@media (min-width:861px){
  .footer__bottom{
    width:min(var(--container-w),calc(100% - 64px));
    margin-inline:auto;
    padding-inline:0;
  }

  /* Los indicadores suben visualmente para alinearse con el bloque textual. */
  #nosotros .about__stats{
    transform:translateY(-48px);
  }
}

@media (max-width:860px){
  .header .logo__image{
    width:48px;
    height:48px;
    flex-basis:48px;
  }
  .header .logo__word{
    font-size:1.12rem;
  }
  .header__inner > .logo{
    gap:9px;
  }
  #nosotros .about__stats{
    transform:none;
  }
  .footer__brand{
    align-items:center;
    text-align:center;
  }
  .footer__brand .logo__word{
    font-size:1.08rem;
  }
  .footer__brand .logo__image{
    width:46px;
    height:46px;
    flex-basis:46px;
  }
}

/* Formulario: labels e inputs del par de selección/ubicación con la misma altura. */
@media (min-width:861px){
  .booking-form__row--compact{
    align-items:stretch;
  }
  .booking-form__row--compact .field{
    display:flex;
    flex-direction:column;
    min-width:0;
  }
  .booking-form__row--compact .field label{
    min-height:44px;
    display:flex;
    align-items:flex-start;
  }
  .booking-form__row--compact .field input,
  .booking-form__row--compact .field select{
    min-height:48px;
    margin-top:auto;
  }
}

/* Galería: fotografía real, nítida y consistente en cada servicio. */
.services-page .catalog-card__visual--photo{
  background:#f4eefc;
}
.services-page .catalog-card__image{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
  image-rendering:auto;
}

/* En el visor, la fotografía ocupa todo el panel visual sin perder proporción. */
.service-lightbox__visual--photo{
  padding:0;
  background:#170b2a;
}
.service-lightbox__visual--photo .catalog-card__image{
  width:100%;
  height:100%;
  object-fit:cover;
}
.service-lightbox__visual--photo::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(50,0,95,0) 55%,rgba(50,0,95,.16) 100%);
  pointer-events:none;
}

/* Mejora visual de los ítems de servicio */
.services-page .catalog-card__features li::before,
.service-lightbox__features li::before{
  background:var(--teal-500);
  color:#fff;
}
.services-page .catalog-card__features li{
  color:var(--ink-900);
  font-weight:700;
}

/* Visor: controles discretos integrados sobre la fotografía. */
@media (max-width:560px){
  .service-lightbox__close{
    width:36px;
    height:36px;
    top:10px;
    right:10px;
    background:rgba(255,255,255,.72);
    border-color:rgba(255,255,255,.75);
  }
  .service-lightbox__arrow{
    width:40px;
    height:40px;
    top:226px;
    background:rgba(255,255,255,.72);
    border-color:rgba(255,255,255,.72);
  }
  .service-lightbox__arrow--prev{left:10px;}
  .service-lightbox__arrow--next{right:10px;}
}

/* ========================================================================
   PASO 24 · GALERÍA PREMIUM DE 5 SERVICIOS
   - Cinco tarjetas altas y simétricas en escritorio.
   - Imagen protagonista (más de la mitad de la tarjeta).
   - Hover elegante sin deformar el layout.
   - Scroll horizontal con snap en móvil/tablet.
   ======================================================================== */
.services-page .services-catalog{
  padding-top:56px;
  padding-bottom:70px;
  overflow:hidden;
}

.services-page .services-catalog__head{
  margin-bottom:28px;
}

.services-page .services-gallery{
  display:block;
  width:100%;
  overflow:visible;
}

.services-page .services-gallery__track{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:18px;
  width:100%;
  padding:8px 4px 18px;
  align-items:stretch;
  overflow:visible;
}

.services-page .catalog-card,
.services-page .catalog-card.catalog-card--featured{
  position:relative;
  width:100%;
  height:680px;
  min-height:680px;
  min-width:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid rgba(109,0,217,.16);
  border-radius:26px;
  background:#fff;
  box-shadow:0 12px 28px rgba(44,18,86,.08);
  cursor:pointer;
  transition:transform .28s ease, box-shadow .28s ease, border-color .28s ease, background-color .28s ease;
}

.services-page .catalog-card:hover,
.services-page .catalog-card:focus-within{
  transform:translateY(-8px);
  border-color:rgba(109,0,217,.42);
  box-shadow:0 22px 42px rgba(73,18,126,.16);
}

.services-page .catalog-card::after{
  content:"";
  position:absolute;
  inset:auto 18px 0;
  height:4px;
  border-radius:999px 999px 0 0;
  background:linear-gradient(90deg,var(--violet-700),var(--teal-500));
  transform:scaleX(.22);
  transform-origin:center;
  transition:transform .28s ease;
}

.services-page .catalog-card:hover::after,
.services-page .catalog-card:focus-within::after{
  transform:scaleX(1);
}

.services-page .catalog-card__visual,
.services-page .catalog-card--featured .catalog-card__visual{
  position:relative;
  height:390px;
  min-height:390px;
  flex:0 0 390px;
  padding:0;
  overflow:hidden;
  background:var(--violet-50);
}

.services-page .catalog-card__visual::after{
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:28%;
  background:linear-gradient(180deg,transparent,rgba(34,12,64,.18));
  pointer-events:none;
  transition:height .28s ease;
}

.services-page .catalog-card:hover .catalog-card__visual::after{
  height:38%;
}

.services-page .catalog-card__image{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
  transition:transform .5s cubic-bezier(.22,.61,.36,1),filter .35s ease;
}

.services-page .catalog-card:hover .catalog-card__image{
  transform:scale(1.055);
  filter:saturate(1.06) contrast(1.03);
}

.services-page .catalog-card__body,
.services-page .catalog-card--featured .catalog-card__body{
  height:auto;
  min-height:290px;
  flex:1 1 auto;
  display:flex;
  flex-direction:column;
  padding:20px 20px 22px;
  background:#fff;
}

.services-page .catalog-card__tag{
  align-self:flex-start;
  margin-bottom:8px;
  padding:6px 10px;
  border-radius:999px;
  background:var(--violet-50);
  color:var(--violet-700);
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.services-page .catalog-card h3,
.services-page .catalog-card--featured h3{
  margin:0 0 10px;
  color:var(--violet-900);
  font-size:1.17rem;
  line-height:1.18;
  letter-spacing:-.02em;
}

.services-page .catalog-card p{
  margin:0 0 12px;
  color:var(--ink-700);
  font-size:.82rem;
  line-height:1.46;
}

.services-page .catalog-card__features{
  display:grid;
  gap:7px;
  margin:0 0 16px;
  padding:0;
  list-style:none;
}

.services-page .catalog-card__features li{
  position:relative;
  display:grid;
  grid-template-columns:18px minmax(0,1fr);
  align-items:start;
  gap:7px;
  color:var(--ink-800);
  font-size:.73rem;
  font-weight:700;
  line-height:1.33;
}

.services-page .catalog-card__features li::before{
  content:"✓";
  width:18px;
  height:18px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--teal-100);
  color:var(--violet-700);
  font-size:.66rem;
  font-weight:900;
}

.services-page .catalog-card__bottom{
  margin-top:auto;
  display:flex;
  align-items:center;
}

.services-page .catalog-card__action{
  width:100%;
  justify-content:center;
  min-height:44px;
  border-radius:14px;
  font-size:.84rem;
  font-weight:900;
  box-shadow:none;
}

.services-page .catalog-card:hover .catalog-card__action{
  box-shadow:0 10px 20px rgba(109,0,217,.16);
}

/* Reducimos la distinción anterior de tarjeta destacada: ahora las cinco
   comparten el mismo lenguaje visual y el hover hace la jerarquía. */
.services-page .catalog-card--featured{
  border-color:rgba(109,0,217,.16);
  box-shadow:0 12px 28px rgba(44,18,86,.08);
}

.services-page .catalog-card--featured .catalog-card__icon,
.services-page .catalog-card__icon,
.services-page .catalog-card__badge{
  display:none;
}

/* En pantallas más estrechas, mantenemos la galería horizontal para evitar
   tarjetas angostas y conservar la sensación de catálogo. */
@media (max-width:1200px){
  .services-page .services-gallery__track{
    grid-template-columns:repeat(3,minmax(250px,1fr));
  }
  .services-page .catalog-card,
  .services-page .catalog-card.catalog-card--featured{
    height:650px;
    min-height:650px;
  }
  .services-page .catalog-card__visual,
  .services-page .catalog-card--featured .catalog-card__visual{
    height:360px;
    min-height:360px;
    flex-basis:360px;
  }
}

@media (max-width:860px){
  .services-page .services-catalog{
    padding-top:46px;
    padding-bottom:54px;
  }

  .services-page .services-gallery{
    overflow-x:auto;
    overflow-y:visible;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
    padding-inline:6px;
  }

  .services-page .services-gallery::-webkit-scrollbar{display:none;}

  .services-page .services-gallery__track{
    display:flex;
    gap:16px;
    width:max-content;
    padding:8px 4px 18px;
  }

  .services-page .catalog-card,
  .services-page .catalog-card.catalog-card--featured{
    flex:0 0 min(78vw,420px);
    width:min(78vw,420px);
    height:620px;
    min-height:620px;
    scroll-snap-align:start;
  }

  .services-page .catalog-card__visual,
  .services-page .catalog-card--featured .catalog-card__visual{
    height:350px;
    min-height:350px;
    flex-basis:350px;
  }

  .services-page .catalog-card__body,
  .services-page .catalog-card--featured .catalog-card__body{
    min-height:270px;
    padding:18px 18px 20px;
  }

  .services-page .catalog-card:hover,
  .services-page .catalog-card:focus-within{
    transform:none;
  }
}

@media (max-width:560px){
  .services-page .services-catalog__head{
    margin-bottom:20px;
  }

  .services-page .catalog-card,
  .services-page .catalog-card.catalog-card--featured{
    flex-basis:86vw;
    width:86vw;
    height:610px;
    min-height:610px;
    border-radius:22px;
  }

  .services-page .catalog-card__visual,
  .services-page .catalog-card--featured .catalog-card__visual{
    height:338px;
    min-height:338px;
    flex-basis:338px;
  }

  .services-page .catalog-card__body,
  .services-page .catalog-card--featured .catalog-card__body{
    min-height:272px;
    padding:17px 17px 18px;
  }

  .services-page .catalog-card h3,
  .services-page .catalog-card--featured h3{
    font-size:1.1rem;
  }

  .services-page .catalog-card p{
    font-size:.78rem;
  }

  .services-page .catalog-card__features li{
    font-size:.71rem;
  }

  .services-page .catalog-card__action{
    min-height:46px;
  }
}

/* ========================================================================
   PASO 24 · PANEL DE ECOGRAFÍA CON FONDO BLANCO
   ======================================================================== */
.scan-panel__body{
  background:#fff;
  border:1px solid rgba(109,0,217,.08);
}

.scan-panel__photo{
  background:#fff;
  object-fit:contain;
  object-position:center;
  mix-blend-mode:multiply;
}

@media (max-width:860px){
  .scan-panel__photo{object-fit:contain;}
}


/* Refuerzo de interacción visual: el hover cambia sutilmente el tono sin
   alterar las dimensiones de las tarjetas. */
.services-page .catalog-card:hover .catalog-card__body,
.services-page .catalog-card:focus-within .catalog-card__body{
  background:linear-gradient(180deg,#fff 0%,#fcf8ff 100%);
}

.services-page .catalog-card:hover .catalog-card__tag,
.services-page .catalog-card:focus-within .catalog-card__tag{
  background:rgba(109,0,217,.10);
  color:var(--violet-700);
}

.services-page .catalog-card:hover h3,
.services-page .catalog-card:focus-within h3{
  color:var(--violet-700);
}

@media (prefers-reduced-motion:reduce){
  .services-page .catalog-card,
  .services-page .catalog-card__image,
  .services-page .catalog-card__visual::after,
  .services-page .catalog-card::after{
    transition:none;
  }
}


/* ========================================================================
   PASO 25 · GALERÍA DE SERVICIOS EN UNA SOLA HILERA
   - Cinco tarjetas con la misma proporción y ancho legible.
   - Carrusel horizontal real en desktop, tablet y móvil.
   - Flechas discretas fuera del contenido de las tarjetas.
   ======================================================================== */
.services-page .services-gallery{
  position:relative;
  display:grid;
  grid-template-columns:48px minmax(0,1fr) 48px;
  align-items:center;
  gap:12px;
  width:100%;
  overflow:visible;
}

.services-page .services-gallery__viewport{
  width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  scrollbar-width:none;
  -ms-overflow-style:none;
  scroll-behavior:smooth;
  scroll-snap-type:x proximity;
  overscroll-behavior-x:contain;
  border-radius:28px;
  cursor:grab;
  touch-action:pan-x;
}
.services-page .services-gallery__viewport::-webkit-scrollbar{display:none;}
.services-page .services-gallery__viewport.is-dragging{cursor:grabbing;scroll-behavior:auto;}

.services-page .services-gallery__track{
  display:flex !important;
  flex-wrap:nowrap;
  align-items:stretch;
  gap:20px;
  width:max-content !important;
  min-width:max-content;
  padding:8px 4px 18px;
  overflow:visible;
}

.services-page .catalog-card,
.services-page .catalog-card.catalog-card--featured{
  flex:0 0 320px !important;
  width:320px !important;
  min-width:320px !important;
  height:620px !important;
  min-height:620px !important;
  max-height:620px !important;
  scroll-snap-align:start;
  overflow:hidden;
}

.services-page .catalog-card__visual,
.services-page .catalog-card.catalog-card--featured .catalog-card__visual{
  height:350px !important;
  min-height:350px !important;
  flex:0 0 350px !important;
}

.services-page .catalog-card__body,
.services-page .catalog-card.catalog-card--featured .catalog-card__body{
  min-height:270px !important;
  height:270px !important;
  padding:18px 18px 20px !important;
}

.services-page .catalog-card h3,
.services-page .catalog-card.catalog-card--featured h3{
  font-size:1.14rem;
  line-height:1.2;
}

.services-page .catalog-card p{
  font-size:.80rem;
  line-height:1.42;
}

.services-page .catalog-card__features{
  gap:6px;
  margin-top:8px;
  margin-bottom:12px;
}

.services-page .catalog-card__features li{
  font-size:.71rem;
  line-height:1.26;
}

.services-page .catalog-card__bottom{margin-top:auto;}

.services-page .services-gallery__nav{
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border:1px solid rgba(109,0,217,.20);
  border-radius:50%;
  background:#fff;
  color:var(--violet-700);
  box-shadow:0 12px 26px rgba(44,18,86,.10);
  font-size:2rem;
  line-height:1;
  cursor:pointer;
  z-index:5;
  transition:transform .18s ease,background-color .18s ease,box-shadow .18s ease,opacity .18s ease;
}
.services-page .services-gallery__nav:hover:not(:disabled){
  transform:translateY(-2px);
  background:var(--violet-50);
  box-shadow:0 16px 28px rgba(44,18,86,.14);
}
.services-page .services-gallery__nav:disabled{opacity:.35;cursor:not-allowed;}
.services-page .services-gallery__nav span{transform:translateY(-1px);}

@media (max-width:1200px){
  .services-page .services-gallery{grid-template-columns:44px minmax(0,1fr) 44px;gap:10px;}
  .services-page .catalog-card,
  .services-page .catalog-card.catalog-card--featured{
    flex-basis:300px !important;
    width:300px !important;
    min-width:300px !important;
    height:600px !important;
    min-height:600px !important;
    max-height:600px !important;
  }
  .services-page .catalog-card__visual,
  .services-page .catalog-card.catalog-card--featured .catalog-card__visual{
    height:338px !important;
    min-height:338px !important;
    flex-basis:338px !important;
  }
  .services-page .catalog-card__body,
  .services-page .catalog-card.catalog-card--featured .catalog-card__body{
    height:262px !important;
    min-height:262px !important;
  }
}

@media (max-width:860px){
  .services-page .services-gallery{grid-template-columns:40px minmax(0,1fr) 40px;gap:8px;}
  .services-page .services-gallery__nav{width:40px;height:40px;font-size:1.7rem;}
  .services-page .services-gallery__track{gap:16px;padding-inline:2px 8px;}
  .services-page .catalog-card,
  .services-page .catalog-card.catalog-card--featured{
    flex-basis:min(82vw,380px) !important;
    width:min(82vw,380px) !important;
    min-width:min(82vw,380px) !important;
    height:590px !important;
    min-height:590px !important;
    max-height:590px !important;
  }
  .services-page .catalog-card__visual,
  .services-page .catalog-card.catalog-card--featured .catalog-card__visual{
    height:330px !important;
    min-height:330px !important;
    flex-basis:330px !important;
  }
  .services-page .catalog-card__body,
  .services-page .catalog-card.catalog-card--featured .catalog-card__body{
    height:260px !important;
    min-height:260px !important;
    padding:16px 16px 18px !important;
  }
}

@media (max-width:560px){
  .services-page .services-gallery{grid-template-columns:34px minmax(0,1fr) 34px;gap:6px;}
  .services-page .services-gallery__nav{width:34px;height:34px;font-size:1.5rem;}
  .services-page .catalog-card,
  .services-page .catalog-card.catalog-card--featured{
    flex-basis:calc(100vw - 76px) !important;
    width:calc(100vw - 76px) !important;
    min-width:calc(100vw - 76px) !important;
    height:570px !important;
    min-height:570px !important;
    max-height:570px !important;
    border-radius:22px;
  }
  .services-page .catalog-card__visual,
  .services-page .catalog-card.catalog-card--featured .catalog-card__visual{
    height:315px !important;
    min-height:315px !important;
    flex-basis:315px !important;
  }
  .services-page .catalog-card__body,
  .services-page .catalog-card.catalog-card--featured .catalog-card__body{
    height:255px !important;
    min-height:255px !important;
    padding:15px 15px 17px !important;
  }
  .services-page .catalog-card h3,
  .services-page .catalog-card.catalog-card--featured h3{font-size:1.08rem;}
  .services-page .catalog-card p{font-size:.77rem;}
  .services-page .catalog-card__features li{font-size:.69rem;}
}

/* ========================================================================
   PASO 25 · ECOGRAFO PROFESIONAL CON FONDO BLANCO REAL
   Sin película morada: la única superposición es la línea de escaneo.
   ======================================================================== */
.scan-panel__image-wrap{
  position:relative;
  background:#fff !important;
  overflow:hidden;
}
.scan-panel__image-wrap::after{display:none !important;}
.scan-panel__photo{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain !important;
  object-position:center;
  background:#fff;
  mix-blend-mode:normal !important;
  filter:none !important;
}
.scan-panel__scan-beam{
  z-index:3;
  opacity:.95;
}
\n/* ========================================================================\n   PASO 26 · GALERÍA FINAL + VISOR REACTIVADO + ESCÁNER LIMPIO\n   - Cinco tarjetas en una sola hilera cuando el ancho lo permite.\n   - Si no caben: carrusel horizontal, nunca segunda fila ni solapamiento.\n   - Alturas legibles y contenido completo.\n   - Visor con botones de Cotizar y Agendar apilados.\n   - Fotografía del ecógrafo limpia, fondo blanco y solo línea de escaneo.\n   ======================================================================== */\n\n.services-page .services-gallery{\n  display:grid !important;\n  grid-template-columns:42px minmax(0,1fr) 42px !important;\n  gap:10px !important;\n  width:100% !important;\n  align-items:center !important;\n}\n\n.services-page .services-gallery__viewport{\n  width:100% !important;\n  min-width:0 !important;\n  overflow-x:auto !important;\n  overflow-y:hidden !important;\n  scrollbar-width:none !important;\n  -ms-overflow-style:none !important;\n  scroll-snap-type:x proximity !important;\n  overscroll-behavior-x:contain !important;\n  cursor:grab !important;\n  touch-action:pan-x !important;\n}\n.services-page .services-gallery__viewport::-webkit-scrollbar{display:none !important;}\n.services-page .services-gallery__viewport.is-dragging{cursor:grabbing !important;}\n\n.services-page .services-gallery__track{\n  display:flex !important;\n  flex-wrap:nowrap !important;\n  align-items:stretch !important;\n  gap:18px !important;\n  width:max-content !important;\n  min-width:100% !important;\n  padding:8px 4px 18px !important;\n}\n\n.services-page .catalog-card,\n.services-page .catalog-card.catalog-card--featured{\n  flex:0 0 272px !important;\n  width:272px !important;\n  min-width:272px !important;\n  height:548px !important;\n  min-height:548px !important;\n  max-height:548px !important;\n  border-radius:22px !important;\n  overflow:hidden !important;\n  scroll-snap-align:start !important;\n}\n\n.services-page .catalog-card__visual,\n.services-page .catalog-card.catalog-card--featured .catalog-card__visual{\n  height:248px !important;\n  min-height:248px !important;\n  flex:0 0 248px !important;\n  padding:0 !important;\n}\n\n.services-page .catalog-card__visual--photo .catalog-card__image{\n  width:100% !important;\n  height:100% !important;\n  object-fit:cover !important;\n  object-position:center !important;\n  display:block !important;\n}\n\n.services-page .catalog-card__visual::before{\n  pointer-events:none !important;\n}\n\n.services-page .catalog-card__body,\n.services-page .catalog-card.catalog-card--featured .catalog-card__body{\n  height:300px !important;\n  min-height:300px !important;\n  padding:17px 18px 18px !important;\n  display:flex !important;\n  flex-direction:column !important;\n  overflow:hidden !important;\n}\n\n.services-page .catalog-card__tag{\n  margin-bottom:7px !important;\n  padding:5px 9px !important;\n  font-size:.66rem !important;\n}\n\n.services-page .catalog-card h3,\n.services-page .catalog-card.catalog-card--featured h3{\n  margin-bottom:7px !important;\n  font-size:1.13rem !important;\n  line-height:1.18 !important;\n  display:-webkit-box !important;\n  -webkit-line-clamp:2 !important;\n  -webkit-box-orient:vertical !important;\n  overflow:hidden !important;\n}\n\n.services-page .catalog-card p{\n  margin-bottom:6px !important;\n  font-size:.79rem !important;\n  line-height:1.42 !important;\n  display:-webkit-box !important;\n  -webkit-line-clamp:3 !important;\n  -webkit-box-orient:vertical !important;\n  overflow:hidden !important;\n}\n\n.services-page .catalog-card__features{\n  gap:5px !important;\n  margin:4px 0 10px !important;\n  overflow:hidden !important;\n}\n.services-page .catalog-card__features li{\n  font-size:.70rem !important;\n  line-height:1.22 !important;\n  display:flex !important;\n  align-items:flex-start !important;\n}\n\n.services-page .catalog-card__bottom{\n  margin-top:auto !important;\n  padding-top:8px !important;\n  border-top:1px solid var(--gray-300) !important;\n}\n.services-page .catalog-card__action{\n  width:100% !important;\n  min-height:44px !important;\n  border-radius:13px !important;\n}\n\n/* Desktop grande: las 5 tarjetas entran en una sola vista, simétricas. */\n@media (min-width:1320px){\n  .services-page .services-gallery{grid-template-columns:34px minmax(0,1fr) 34px !important;}\n  .services-page .services-gallery__track{\n    width:100% !important;\n    min-width:100% !important;\n    justify-content:space-between !important;\n    gap:14px !important;\n  }\n  .services-page .catalog-card,\n  .services-page .catalog-card.catalog-card--featured{\n    flex:1 1 0 !important;\n    width:auto !important;\n    min-width:0 !important;\n    max-width:calc((100% - 56px)/5) !important;\n  }\n}\n\n/* Anchos medios: carrusel, manteniendo tarjetas completas. */\n@media (max-width:1319px) and (min-width:861px){\n  .services-page .catalog-card,\n  .services-page .catalog-card.catalog-card--featured{\n    flex-basis:300px !important;\n    width:300px !important;\n    min-width:300px !important;\n  }\n}\n\n@media (max-width:860px){\n  .services-page .services-gallery{\n    grid-template-columns:36px minmax(0,1fr) 36px !important;\n    gap:6px !important;\n  }\n  .services-page .services-gallery__nav{\n    width:36px !important;\n    height:36px !important;\n    font-size:1.4rem !important;\n  }\n  .services-page .services-gallery__track{gap:14px !important;padding:6px 2px 16px !important;}\n  .services-page .catalog-card,\n  .services-page .catalog-card.catalog-card--featured{\n    flex-basis:min(84vw,360px) !important;\n    width:min(84vw,360px) !important;\n    min-width:min(84vw,360px) !important;\n    height:560px !important;\n    min-height:560px !important;\n    max-height:560px !important;\n  }\n  .services-page .catalog-card__visual,\n  .services-page .catalog-card.catalog-card--featured .catalog-card__visual{\n    height:300px !important;\n    min-height:300px !important;\n    flex-basis:300px !important;\n  }\n  .services-page .catalog-card__body,\n  .services-page .catalog-card.catalog-card--featured .catalog-card__body{\n    height:260px !important;\n    min-height:260px !important;\n    padding:15px 16px 16px !important;\n  }\n}\n\n@media (max-width:560px){\n  .services-page .services-gallery{\n    grid-template-columns:34px minmax(0,1fr) 34px !important;\n  }\n  .services-page .services-gallery__nav{\n    width:34px !important;\n    height:34px !important;\n    font-size:1.3rem !important;\n  }\n  .services-page .catalog-card,\n  .services-page .catalog-card.catalog-card--featured{\n    flex-basis:calc(100vw - 68px) !important;\n    width:calc(100vw - 68px) !important;\n    min-width:calc(100vw - 68px) !important;\n    height:540px !important;\n    min-height:540px !important;\n    max-height:540px !important;\n  }\n  .services-page .catalog-card__visual,\n  .services-page .catalog-card.catalog-card--featured .catalog-card__visual{\n    height:292px !important;\n    min-height:292px !important;\n    flex-basis:292px !important;\n  }\n  .services-page .catalog-card__body,\n  .services-page .catalog-card.catalog-card--featured .catalog-card__body{\n    height:248px !important;\n    min-height:248px !important;\n    padding:14px 15px 15px !important;\n  }\n  .services-page .catalog-card h3,\n  .services-page .catalog-card.catalog-card--featured h3{font-size:1.06rem !important;}\n  .services-page .catalog-card p{font-size:.76rem !important;}\n  .services-page .catalog-card__features li{font-size:.68rem !important;}\n}\n\n/* Visor: dos acciones siempre una encima de la otra, como pidió el diseño final. */\n.service-lightbox__bottom{\n  display:flex !important;\n  flex-direction:column !important;\n  align-items:stretch !important;\n  gap:10px !important;\n  margin-top:auto !important;\n}\n.service-lightbox__bottom .btn{\n  width:100% !important;\n  min-height:48px !important;\n  justify-content:center !important;\n}\n.service-lightbox__quote{\n  display:flex !important;\n  align-items:center !important;\n  justify-content:center !important;\n  gap:9px !important;\n  background:#fff !important;\n}\n\n/* Scanner: blanco auténtico, sin overlay violeta ni blend mode. */\n.scan-panel__body{\n  background:#fff !important;\n  border-radius:var(--radius-md) !important;\n  overflow:hidden !important;\n}\n.scan-panel__image-wrap{\n  background:#fff !important;\n  isolation:isolate !important;\n  opacity:1 !important;\n}\n.scan-panel__image-wrap::after{display:none !important;content:none !important;}\n.scan-panel__photo{\n  background:#fff !important;\n  filter:none !important;\n  mix-blend-mode:normal !important;\n  opacity:1 !important;\n  object-fit:contain !important;\n}\n.scan-panel__scan-beam{\n  mix-blend-mode:normal !important;\n  opacity:.9 !important;\n  z-index:4 !important;\n}\n\n/* El hover solo eleva el panel; nunca altera su altura ni el flujo. */\n.services-page .catalog-card:hover{transform:translateY(-5px) !important;}\n\n@media (prefers-reduced-motion:reduce){\n  .services-page .catalog-card,\n  .services-page .catalog-card__image,\n  .service-lightbox__arrow,\n  .service-lightbox__close{transition:none !important;}\n}\n

/* ========================================================================
   PASO 27 · GALERÍA COMPACTA + INTERACCIÓN DE PRECISIÓN
   ======================================================================== */
.services-page .services-gallery__viewport{
  overflow-x:auto !important;
  overflow-y:hidden !important;
  touch-action:pan-x !important;
}
.services-page .services-gallery__track{
  display:flex !important;
  flex-wrap:nowrap !important;
  align-items:stretch !important;
  gap:16px !important;
  width:max-content !important;
  min-width:max-content !important;
  padding:6px 4px 14px !important;
}
.services-page .catalog-card,
.services-page .catalog-card.catalog-card--featured{
  flex:0 0 268px !important;
  width:268px !important;
  min-width:268px !important;
  height:530px !important;
  min-height:530px !important;
  max-height:530px !important;
  border-radius:20px !important;
}
.services-page .catalog-card__visual,
.services-page .catalog-card.catalog-card--featured .catalog-card__visual{
  height:255px !important;
  min-height:255px !important;
  flex:0 0 255px !important;
}
.services-page .catalog-card__body,
.services-page .catalog-card.catalog-card--featured .catalog-card__body{
  height:275px !important;
  min-height:275px !important;
  padding:14px 16px 15px !important;
  overflow:hidden !important;
}
.services-page .catalog-card__tag{
  margin-bottom:6px !important;
  padding:4px 8px !important;
  font-size:.62rem !important;
}
.services-page .catalog-card h3,
.services-page .catalog-card.catalog-card--featured h3{
  margin:0 0 7px !important;
  font-size:1.06rem !important;
  line-height:1.18 !important;
  letter-spacing:-.015em !important;
  display:block !important;
  overflow:visible !important;
}
.services-page .catalog-card p{
  margin:0 0 8px !important;
  font-size:.76rem !important;
  line-height:1.36 !important;
  display:block !important;
  overflow:visible !important;
}
.services-page .catalog-card__features{
  gap:5px !important;
  margin:2px 0 8px !important;
  overflow:visible !important;
}
.services-page .catalog-card__features li{
  font-size:.68rem !important;
  line-height:1.2 !important;
}
.services-page .catalog-card__features li::before{
  width:16px !important;
  height:16px !important;
  font-size:.62rem !important;
}
.services-page .catalog-card__bottom{
  margin-top:auto !important;
  padding-top:8px !important;
}
.services-page .catalog-card__action{
  min-height:42px !important;
  border-radius:12px !important;
  font-size:.79rem !important;
}

@media (min-width:1500px){
  .services-page .services-gallery{
    grid-template-columns:32px minmax(0,1fr) 32px !important;
    gap:8px !important;
  }
  .services-page .services-gallery__track{
    width:100% !important;
    min-width:100% !important;
    justify-content:space-between !important;
    gap:12px !important;
  }
  .services-page .catalog-card,
  .services-page .catalog-card.catalog-card--featured{
    flex:1 1 0 !important;
    width:auto !important;
    min-width:0 !important;
    max-width:none !important;
  }
}

@media (max-width:900px){
  .services-page .services-gallery{
    grid-template-columns:32px minmax(0,1fr) 32px !important;
    gap:6px !important;
  }
  .services-page .services-gallery__track{gap:12px !important;}
  .services-page .catalog-card,
  .services-page .catalog-card.catalog-card--featured{
    flex-basis:min(78vw,330px) !important;
    width:min(78vw,330px) !important;
    min-width:min(78vw,330px) !important;
    height:515px !important;
    min-height:515px !important;
    max-height:515px !important;
  }
  .services-page .catalog-card__visual,
  .services-page .catalog-card.catalog-card--featured .catalog-card__visual{
    height:265px !important;
    min-height:265px !important;
    flex-basis:265px !important;
  }
  .services-page .catalog-card__body,
  .services-page .catalog-card.catalog-card--featured .catalog-card__body{
    height:250px !important;
    min-height:250px !important;
    padding:13px 15px 14px !important;
  }
}

@media (max-width:560px){
  .services-page .services-gallery{grid-template-columns:30px minmax(0,1fr) 30px !important;}
  .services-page .services-gallery__nav{width:30px !important;height:30px !important;font-size:1.2rem !important;}
  .services-page .catalog-card,
  .services-page .catalog-card.catalog-card--featured{
    flex-basis:calc(100vw - 62px) !important;
    width:calc(100vw - 62px) !important;
    min-width:calc(100vw - 62px) !important;
    height:515px !important;
    min-height:515px !important;
    max-height:515px !important;
  }
  .services-page .catalog-card__visual,
  .services-page .catalog-card.catalog-card--featured .catalog-card__visual{
    height:265px !important;
    min-height:265px !important;
    flex-basis:265px !important;
  }
  .services-page .catalog-card__body,
  .services-page .catalog-card.catalog-card--featured .catalog-card__body{
    height:250px !important;
    min-height:250px !important;
  }
  .services-page .catalog-card h3,
  .services-page .catalog-card.catalog-card--featured h3{font-size:1.02rem !important;}
  .services-page .catalog-card p{font-size:.74rem !important;}
  .services-page .catalog-card__features li{font-size:.67rem !important;}
}

/* For touch-capable computers: ordinary mouse clicks remain native and open the lightbox. */
@media (pointer:fine){
  .services-page .services-gallery__viewport{cursor:grab !important;}
  .services-page .services-gallery__viewport.is-dragging{cursor:grabbing !important;}
}

/* Scanner: preserve the pure-white product photo and only the animated beam. */
.scan-panel__image-wrap{background:#fff !important;}
.scan-panel__photo{background:#fff !important;opacity:1 !important;filter:none !important;mix-blend-mode:normal !important;}
.scan-panel__image-wrap::after{display:none !important;content:none !important;}

/* ========================================================================
   PASO 28 · GALERÍA DE SERVICIOS REEQUILIBRADA
   Tarjetas iguales, compactas y con contenido sin solapamientos.
   ======================================================================== */
.services-page .services-gallery__track{
  display:flex !important;
  flex-wrap:nowrap !important;
  align-items:stretch !important;
  gap:16px !important;
  width:max-content !important;
  min-width:max-content !important;
  padding:6px 4px 14px !important;
}

.services-page .catalog-card,
.services-page .catalog-card.catalog-card--featured{
  flex:0 0 250px !important;
  width:250px !important;
  min-width:250px !important;
  max-width:250px !important;
  height:500px !important;
  min-height:500px !important;
  max-height:500px !important;
  display:flex !important;
  flex-direction:column !important;
  overflow:hidden !important;
  border-radius:20px !important;
}

.services-page .catalog-card__visual,
.services-page .catalog-card.catalog-card--featured .catalog-card__visual{
  height:232px !important;
  min-height:232px !important;
  flex:0 0 232px !important;
  overflow:hidden !important;
}

.services-page .catalog-card__body,
.services-page .catalog-card.catalog-card--featured .catalog-card__body{
  flex:1 1 auto !important;
  min-height:0 !important;
  height:auto !important;
  padding:14px 15px 15px !important;
  display:flex !important;
  flex-direction:column !important;
  overflow:hidden !important;
}

.services-page .catalog-card__tag{
  width:max-content;
  margin:0 0 6px !important;
  padding:4px 8px !important;
  font-size:.62rem !important;
  line-height:1.1 !important;
}

.services-page .catalog-card h3,
.services-page .catalog-card.catalog-card--featured h3{
  margin:0 0 7px !important;
  font-size:1.05rem !important;
  line-height:1.18 !important;
  letter-spacing:-.015em !important;
}

.services-page .catalog-card p{
  margin:0 0 9px !important;
  font-size:.75rem !important;
  line-height:1.34 !important;
}

.services-page .catalog-card__features{
  display:flex !important;
  flex-direction:column !important;
  gap:5px !important;
  margin:0 0 10px !important;
  padding:0 !important;
}

.services-page .catalog-card__features li{
  display:grid !important;
  grid-template-columns:16px minmax(0,1fr) !important;
  gap:6px !important;
  align-items:start !important;
  font-size:.68rem !important;
  line-height:1.22 !important;
  overflow:visible !important;
}

.services-page .catalog-card__features li::before{
  width:16px !important;
  height:16px !important;
  font-size:.6rem !important;
}

.services-page .catalog-card__bottom{
  margin-top:auto !important;
  padding-top:6px !important;
  flex-shrink:0 !important;
}

.services-page .catalog-card__action{
  width:100% !important;
  min-height:42px !important;
  padding-inline:12px !important;
  border-radius:12px !important;
  font-size:.78rem !important;
}

@media (min-width:1500px){
  .services-page .catalog-card,
  .services-page .catalog-card.catalog-card--featured{
    flex:0 0 250px !important;
    width:250px !important;
    min-width:250px !important;
    max-width:250px !important;
  }
  .services-page .services-gallery__track{
    width:max-content !important;
    min-width:max-content !important;
    justify-content:flex-start !important;
  }
}

@media (max-width:1200px){
  .services-page .services-gallery__track{gap:12px !important;}
  .services-page .catalog-card,
  .services-page .catalog-card.catalog-card--featured{
    flex-basis:238px !important;
    width:238px !important;
    min-width:238px !important;
    max-width:238px !important;
    height:485px !important;
    min-height:485px !important;
    max-height:485px !important;
  }
  .services-page .catalog-card__visual,
  .services-page .catalog-card.catalog-card--featured .catalog-card__visual{
    height:220px !important;
    min-height:220px !important;
    flex-basis:220px !important;
  }
}

@media (max-width:860px){
  .services-page .catalog-card,
  .services-page .catalog-card.catalog-card--featured{
    flex-basis:min(78vw,330px) !important;
    width:min(78vw,330px) !important;
    min-width:min(78vw,330px) !important;
    max-width:min(78vw,330px) !important;
    height:500px !important;
    min-height:500px !important;
    max-height:500px !important;
  }
  .services-page .catalog-card__visual,
  .services-page .catalog-card.catalog-card--featured .catalog-card__visual{
    height:248px !important;
    min-height:248px !important;
    flex-basis:248px !important;
  }
  .services-page .catalog-card__body,
  .services-page .catalog-card.catalog-card--featured .catalog-card__body{
    padding:14px 16px 15px !important;
  }
  .services-page .catalog-card h3,
  .services-page .catalog-card.catalog-card--featured h3{font-size:1.08rem !important;}
  .services-page .catalog-card p{font-size:.77rem !important;line-height:1.36 !important;}
  .services-page .catalog-card__features li{font-size:.7rem !important;line-height:1.24 !important;}
}

@media (max-width:560px){
  .services-page .services-gallery{grid-template-columns:30px minmax(0,1fr) 30px !important;gap:6px !important;}
  .services-page .services-gallery__track{gap:12px !important;padding:4px 2px 12px !important;}
  .services-page .catalog-card,
  .services-page .catalog-card.catalog-card--featured{
    flex-basis:calc(100vw - 70px) !important;
    width:calc(100vw - 70px) !important;
    min-width:calc(100vw - 70px) !important;
    max-width:calc(100vw - 70px) !important;
    height:485px !important;
    min-height:485px !important;
    max-height:485px !important;
    border-radius:20px !important;
  }
  .services-page .catalog-card__visual,
  .services-page .catalog-card.catalog-card--featured .catalog-card__visual{
    height:236px !important;
    min-height:236px !important;
    flex-basis:236px !important;
  }
  .services-page .catalog-card__body,
  .services-page .catalog-card.catalog-card--featured .catalog-card__body{
    padding:13px 14px 14px !important;
  }
  .services-page .catalog-card h3,
  .services-page .catalog-card.catalog-card--featured h3{font-size:1.02rem !important;}
  .services-page .catalog-card p{font-size:.74rem !important;line-height:1.32 !important;margin-bottom:8px !important;}
  .services-page .catalog-card__features{gap:4px !important;margin-bottom:8px !important;}
  .services-page .catalog-card__features li{font-size:.67rem !important;line-height:1.2 !important;}
  .services-page .catalog-card__action{min-height:40px !important;font-size:.76rem !important;}
}

/* ========================================================================
   PASO 29 · CORRECCIÓN DEFINITIVA DE ESPACIADO EN TARJETAS
   - La descripción conserva su altura real y nunca comparte línea con los checks.
   - El contenido utiliza un flujo de cuatro bloques: tag, título, descripción/
     beneficios y CTA.
   - Se eliminan clamps heredados que estaban cortando el párrafo y provocando
     el solapamiento visual observado.
   ======================================================================== */
.services-page .catalog-card__body,
.services-page .catalog-card.catalog-card--featured .catalog-card__body{
  box-sizing:border-box !important;
  display:grid !important;
  grid-template-rows:auto auto auto 1fr auto !important;
  align-content:start !important;
  gap:0 !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:hidden !important;
}

.services-page .catalog-card__tag{
  grid-row:1 !important;
  align-self:start !important;
  margin:0 0 6px !important;
}

.services-page .catalog-card h3,
.services-page .catalog-card.catalog-card--featured h3{
  grid-row:2 !important;
  display:block !important;
  max-height:none !important;
  overflow:visible !important;
  -webkit-line-clamp:unset !important;
  -webkit-box-orient:initial !important;
  white-space:normal !important;
  margin:0 0 8px !important;
}

.services-page .catalog-card p{
  grid-row:3 !important;
  display:block !important;
  max-height:none !important;
  height:auto !important;
  overflow:visible !important;
  -webkit-line-clamp:unset !important;
  -webkit-box-orient:initial !important;
  white-space:normal !important;
  margin:0 0 12px !important;
  line-height:1.38 !important;
}

.services-page .catalog-card__features{
  grid-row:4 !important;
  align-self:start !important;
  display:flex !important;
  flex-direction:column !important;
  width:100% !important;
  min-height:0 !important;
  height:auto !important;
  max-height:none !important;
  overflow:visible !important;
  gap:6px !important;
  margin:0 !important;
  padding:0 !important;
}

.services-page .catalog-card__features li{
  display:grid !important;
  grid-template-columns:16px minmax(0,1fr) !important;
  width:100% !important;
  min-height:18px !important;
  height:auto !important;
  overflow:visible !important;
  white-space:normal !important;
  line-height:1.25 !important;
  margin:0 !important;
}

.services-page .catalog-card__bottom{
  grid-row:5 !important;
  align-self:end !important;
  width:100% !important;
  margin-top:14px !important;
  padding-top:8px !important;
  flex-shrink:0 !important;
}

.services-page .catalog-card__action{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
}

@media (max-width:1200px){
  .services-page .catalog-card__body,
  .services-page .catalog-card.catalog-card--featured .catalog-card__body{
    padding:14px 15px 15px !important;
  }
  .services-page .catalog-card p{font-size:.77rem !important;}
  .services-page .catalog-card__features li{font-size:.69rem !important;}
}

@media (max-width:860px){
  .services-page .catalog-card__body,
  .services-page .catalog-card.catalog-card--featured .catalog-card__body{
    padding:14px 16px 15px !important;
  }
  .services-page .catalog-card h3,
  .services-page .catalog-card.catalog-card--featured h3{
    font-size:1.06rem !important;
    line-height:1.18 !important;
  }
  .services-page .catalog-card p{
    font-size:.76rem !important;
    line-height:1.36 !important;
  }
  .services-page .catalog-card__features li{
    font-size:.69rem !important;
    line-height:1.23 !important;
  }
}

@media (max-width:560px){
  .services-page .catalog-card__body,
  .services-page .catalog-card.catalog-card--featured .catalog-card__body{
    padding:13px 14px 14px !important;
  }
  .services-page .catalog-card p{
    font-size:.74rem !important;
    line-height:1.34 !important;
  }
  .services-page .catalog-card__features{
    gap:5px !important;
  }
  .services-page .catalog-card__features li{
    font-size:.68rem !important;
    line-height:1.22 !important;
  }
}
