/* ==========================================================================
   CENTERLAB — Newsite design system
   Fuente única de estilos para el rediseño (header, footer y todas las
   páginas). No se usan estilos inline salvo casos puntuales (imágenes de
   fondo con URL dinámica).
   ========================================================================== */

/* ---- Fuentes (self-hosted) --------------------------------------------- */

@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("../fonts/newsite/hanken-grotesk-variable-3Rrkxtk.woff2") format('woff2');
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/newsite/ibm-plex-mono-400--Imvmox.woff2") format('woff2');
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/newsite/ibm-plex-mono-500-J35NZ7_.woff2") format('woff2');
}

/* ---- Tokens -------------------------------------------------------------- */

:root {
  --cl-navy: #163A5A;
  --cl-blue: #0D6AAE;
  --cl-blue-dark: #0a568c;
  --cl-cyan: #38AFC8;
  --cl-ink: #1A1A2E;
  --cl-text: #27313a;
  --cl-muted: #667;
  --cl-muted-2: #778;
  --cl-border: #e8ecee;
  --cl-border-2: #e3e8ea;
  --cl-tint: #eaf4fa;
  --cl-tint-border: #cce3f1;
  --cl-bg-soft: #F2F4F5;
  --cl-bg-soft-2: #F8FAFB;
  --cl-green: #16a34a;
  --cl-mp: #009EE3;

  --cl-font: 'Hanken Grotesk', sans-serif;
  --cl-font-mono: 'IBM Plex Mono', monospace;

  --cl-radius-sm: 10px;
  --cl-radius: 14px;
  --cl-radius-lg: 18px;
  --cl-radius-pill: 100px;

  --cl-shadow-sm: 0 1px 3px rgba(22, 58, 90, .05);
  --cl-shadow-card-hover: 0 16px 34px rgba(22, 58, 90, .12);
  --cl-shadow-pill-hover: 0 10px 22px rgba(13, 106, 174, .22);

  --cl-container: 1280px;
  --cl-pad-x: clamp(16px, 4vw, 48px);
}

/* ---- Reset / base -------------------------------------------------------- */

.cl-site { font-family: var(--cl-font); color: var(--cl-ink); background: #fff; overflow-x: hidden; }
.cl-site * { box-sizing: border-box; }
.cl-site img { max-width: 100%; }
.cl-container { max-width: var(--cl-container); margin: 0 auto; padding-left: var(--cl-pad-x); padding-right: var(--cl-pad-x); }

@keyframes cl-pulse { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.08); opacity: .85; } }

/* Entrada de página (JS agrega/quita clases; sin JS queda visible) */
.cl-reveal { opacity: 0; transform: translateY(18px); }
.cl-reveal.cl-in { opacity: 1; transform: none; transition: opacity .6s ease, transform .66s cubic-bezier(.22, .72, .2, 1); }
@media (prefers-reduced-motion: reduce) {
  .cl-reveal { opacity: 1 !important; transform: none !important; }
  .cl-site *, .cl-site *::before, .cl-site *::after { transition: none !important; }
}

/* ---- Tipografía utilitaria ------------------------------------------------ */

.cl-eyebrow { display: inline-flex; align-items: center; gap: 8px; font: 500 11px/1 var(--cl-font-mono); letter-spacing: .22em; text-transform: uppercase; }
.cl-eyebrow--pill { font: 600 11px/1 var(--cl-font-mono); letter-spacing: .18em; color: var(--cl-blue); background: var(--cl-tint); border-radius: var(--cl-radius-pill); padding: 9px 14px; }
.cl-badge-mono { font: 700 9px/1 var(--cl-font-mono); letter-spacing: .12em; text-transform: uppercase; border-radius: var(--cl-radius-pill); padding: 5px 9px; }
.cl-badge-soon { font: 700 9px/1 var(--cl-font-mono); letter-spacing: .14em; color: var(--cl-blue); background: var(--cl-tint); border: 1px solid var(--cl-tint-border); border-radius: var(--cl-radius-pill); padding: 5px 9px; }

h1.cl-h1, .cl-h1 { font: 700 clamp(30px, 4.6vw, 50px)/1.08 var(--cl-font); letter-spacing: -.02em; margin: 0 0 16px; }
h2.cl-h2, .cl-h2 { font: 600 clamp(24px, 3.4vw, 30px)/1.12 var(--cl-font); letter-spacing: -.01em; margin: 0 0 12px; }
.cl-lead { font: 400 clamp(15px, 2vw, 18px)/1.6 var(--cl-font); color: #556; margin: 0; }

/* ---- Botones / pills ------------------------------------------------------ */

.cl-btn { display: inline-flex; align-items: center; justify-content: center; gap: 9px; cursor: pointer; font: 600 16px/1 var(--cl-font); border-radius: var(--cl-radius-pill); padding: 15px 28px; text-decoration: none; border: none; transition: transform .22s ease, box-shadow .26s ease, background-color .22s ease, filter .22s ease; }
.cl-btn:hover { transform: translateY(-2px); }
.cl-btn--primary { color: #fff; background: var(--cl-blue); }
.cl-btn--primary:hover { background: var(--cl-blue-dark); box-shadow: var(--cl-shadow-pill-hover); }
.cl-btn--on-navy { color: var(--cl-navy); background: #fff; }
.cl-btn--on-navy:hover { filter: brightness(1.04); box-shadow: 0 10px 22px rgba(0, 0, 0, .18); }
.cl-btn--whatsapp { color: #fff; background: var(--cl-green); }
.cl-btn--whatsapp:hover { filter: brightness(1.06); }
.cl-btn--outline-light { color: #fff; background: transparent; border: 1.5px solid rgba(255, 255, 255, .36); }
.cl-btn--sm { padding: 11px 20px; font-size: 14px; }
.cl-btn:disabled { opacity: .55; cursor: not-allowed; transform: none !important; }

.cl-link { cursor: pointer; font: 600 15px/1 var(--cl-font); color: var(--cl-blue); text-decoration: none; transition: transform .2s ease, color .18s ease; display: inline-flex; align-items: center; gap: 4px; }
.cl-link:hover { transform: translateX(3px); color: var(--cl-blue-dark); }

/* ---- Cards ----------------------------------------------------------------- */

.cl-card { border: 1px solid var(--cl-border); border-radius: var(--cl-radius); padding: 22px; display: flex; flex-direction: column; background: #fff; transition: transform .3s cubic-bezier(.22, .72, .2, 1), box-shadow .3s ease, border-color .3s ease; }
.cl-card:hover { transform: translateY(-4px); box-shadow: var(--cl-shadow-card-hover); border-color: #bcd9ec; }
.cl-card--clickable { cursor: pointer; }
.cl-card__icon { width: 46px; height: 46px; border-radius: 11px; background: var(--cl-tint); display: flex; align-items: center; justify-content: center; margin-bottom: 14px; }
.cl-card__title { font: 600 19px/1.25 var(--cl-font); margin: 0; }
.cl-card__desc { font: 400 14px/1.55 var(--cl-font); color: var(--cl-muted); margin: 6px 0 16px; }
.cl-card__cta-row { display: flex; flex-direction: column; gap: 12px; margin-top: auto; align-items: flex-start; }

/* ---- Header / nav ---------------------------------------------------------- */

.cl-header { position: sticky; top: 0; z-index: 50; background: #fff; border-bottom: 1px solid var(--cl-border); }
.cl-header__bar { max-width: var(--cl-container); margin: 0 auto; display: flex; align-items: center; justify-content: space-between; padding: 14px var(--cl-pad-x); }
.cl-header__logo img { height: 50px; width: auto; display: block; transition: transform .3s ease; }
.cl-header__logo:hover img { transform: scale(1.03); }
.cl-nav-desktop { display: flex; gap: 26px; align-items: center; }
.cl-nav-item { cursor: pointer; font: 500 15px/1 var(--cl-font); color: var(--cl-text); text-decoration: none; transition: color .2s ease; }
.cl-nav-item:hover { color: var(--cl-blue); }
.cl-nav-item.is-active { font: 600 15px/1 var(--cl-font); color: var(--cl-blue); }
.cl-nav-dd { position: relative; display: flex; align-items: center; gap: 5px; }
.cl-nav-dd__caret { pointer-events: none; }
.cl-nav-dd__menu { position: absolute; top: 100%; left: 0; padding-top: 14px; z-index: 60; display: none; }
.cl-nav-dd:hover .cl-nav-dd__menu, .cl-nav-dd:focus-within .cl-nav-dd__menu { display: block; }
.cl-nav-dd__panel { background: #fff; border: 1px solid var(--cl-border); border-radius: var(--cl-radius); box-shadow: 0 14px 34px rgba(22, 58, 90, .14); padding: 8px; min-width: 316px; display: flex; flex-direction: column; }
.cl-nav-dd__link { cursor: pointer; font: 500 14px/1.3 var(--cl-font); color: var(--cl-text); text-decoration: none; padding: 10px 12px; border-radius: 9px; }
.cl-nav-dd__link:hover { background: #f2f5f6; }
.cl-nav-dd__soon { display: flex; align-items: center; justify-content: space-between; gap: 12px; font: 500 14px/1.3 var(--cl-font); color: #9aa3a8; padding: 10px 12px; }
.cl-nav-dd__sep { height: 1px; background: var(--cl-border); margin: 6px 8px; }

.cl-nav-toggle { cursor: pointer; width: 42px; height: 42px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--cl-border-2); border-radius: var(--cl-radius-sm); background: none; }

.cl-nav-mobile { display: none; border-top: 1px solid var(--cl-border); padding: 8px var(--cl-pad-x) 16px; flex-direction: column; gap: 2px; }
.cl-nav-mobile.is-open { display: flex; }
.cl-nav-mobile__link { cursor: pointer; font: 500 16px/1 var(--cl-font); color: var(--cl-text); text-decoration: none; padding: 12px 4px; }
.cl-nav-mobile__link.is-active { font: 600 16px/1 var(--cl-font); color: var(--cl-blue); }
.cl-nav-mobile__sublink { cursor: pointer; font: 400 15px/1.3 var(--cl-font); color: #5a6a76; text-decoration: none; padding: 10px 4px 10px 20px; border-left: 2px solid var(--cl-border-2); margin-left: 6px; display: block; }
.cl-nav-mobile__cta { margin-top: 10px; text-align: center; }

@media (max-width: 880px) {
  .cl-nav-desktop { display: none; }
}
@media (min-width: 881px) {
  .cl-nav-toggle { display: none; }
}

/* ---- Footer ----------------------------------------------------------------- */

.cl-footer { background: var(--cl-navy); color: #c5d3df; }
.cl-footer__inner { max-width: var(--cl-container); margin: 0 auto; padding: clamp(28px, 4vw, 40px) var(--cl-pad-x); display: flex; flex-wrap: nowrap; justify-content: space-between; align-items: flex-start; gap: 20px; }
.cl-footer__col { flex: 1 1 0; min-width: 0; }
.cl-footer__brand img { height: 40px; width: auto; display: block; margin: 0 0 10px; filter: brightness(0) invert(1); }
@media (max-width: 900px) {
  .cl-footer__inner { flex-wrap: wrap; }
  .cl-footer__col { flex: 1 1 220px; }
}
.cl-footer__col-title { font: 600 13px/1 var(--cl-font); color: var(--cl-cyan); margin-bottom: 8px; }
.cl-footer__mono { font: 400 13px/1.7 var(--cl-font-mono); }
.cl-footer__nav-title { font: 600 11px/1 var(--cl-font-mono); letter-spacing: .16em; color: var(--cl-cyan); margin-bottom: 4px; }
.cl-footer__link { cursor: pointer; font: 400 13px/1 var(--cl-font); color: #c5d3df; text-decoration: none; display: block; padding: 4px 0; }
.cl-footer__link:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.cl-footer__social { display: inline-flex; align-items: center; gap: 9px; font: 400 13px/1 var(--cl-font); color: #c5d3df; text-decoration: none; }
.cl-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .12); }
.cl-footer__bottom-inner { max-width: var(--cl-container); margin: 0 auto; padding: 16px var(--cl-pad-x); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; font: 400 12.5px/1.5 var(--cl-font); color: #9fb1c2; }
.cl-footer__bottom a { color: #c5d3df; }

/* Sponsors ("Confían en nosotros") dentro del footer */
.cl-sponsors { background: var(--cl-bg-soft); border-top: 1px solid var(--cl-border); padding: clamp(24px, 3vw, 32px) 0; }
.cl-sponsors__title { text-align: center; font: 600 11px/1 var(--cl-font-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--cl-muted); margin-bottom: 18px; }
.cl-sponsors__row { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 28px; }
.cl-sponsors__row img { opacity: .75; }

/* ---- Hero (secciones de portada por página) --------------------------------- */

.cl-hero { position: relative; overflow: hidden; }
.cl-hero__inner { position: relative; max-width: var(--cl-container); margin: 0 auto; padding: clamp(40px, 5vw, 56px) var(--cl-pad-x); }
.cl-hero--navy { background: var(--cl-navy); }
.cl-hero--navy .cl-hero__inner { padding: clamp(46px, 7vw, 76px) var(--cl-pad-x); }
.cl-hero--blue { background: var(--cl-blue); }
.cl-hero__dots { position: absolute; inset: 0; background-image: radial-gradient(#ffffff14 1px, transparent 1px); background-size: 22px 22px; }
.cl-hero__arcs { position: absolute; right: -30px; bottom: -110px; width: 480px; opacity: .45; pointer-events: none; }
.cl-hero h1 { color: #fff; }
.cl-hero .cl-eyebrow { color: #9fd4e6; margin-bottom: 12px; }
.cl-hero p { color: #d6e8f3; }

/* ---- Home ------------------------------------------------------------------- */

.cl-home-hero { position: relative; background: var(--cl-navy); overflow: hidden; }
.cl-home-hero__media { position: absolute; top: 0; right: 0; bottom: 0; width: 52%; overflow: hidden; pointer-events: none; }
.cl-home-hero__media-img { position: absolute; inset: 0; background-image: url("../images/newsite/hero-home-EK9fh6Q.jpg"); background-repeat: no-repeat; background-size: cover; background-position: 52% 45%; -webkit-mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,.6) 30%, #000 58%); mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,.6) 30%, #000 58%); }
.cl-home-hero__tint-h { position: absolute; inset: 0; background: linear-gradient(90deg, var(--cl-navy) 0%, rgba(22,58,90,.82) 30%, rgba(22,58,90,.32) 72%, rgba(22,58,90,.5) 100%); }
.cl-home-hero__tint-v { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(22,58,90,.55) 0%, transparent 24%, transparent 76%, rgba(22,58,90,.62) 100%); }
.cl-home-hero__inner { position: relative; max-width: var(--cl-container); margin: 0 auto; padding: clamp(46px, 7vw, 76px) var(--cl-pad-x); }

.cl-novedad { display: flex; align-items: center; justify-content: center; gap: 14px; flex-wrap: wrap; padding: 18px var(--cl-pad-x); background: var(--cl-tint); border-bottom: 1px solid var(--cl-tint-border); }

.cl-section-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; padding-bottom: 24px; margin-bottom: 28px; border-bottom: 2px solid var(--cl-navy); }

.cl-mp-note { position: relative; overflow: hidden; border: 1px solid var(--cl-border); border-radius: var(--cl-radius); background: #fafbfb; padding: 16px clamp(16px, 2.5vw, 22px); display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.cl-mp-note__ribbon { position: absolute; top: 14px; right: -34px; transform: rotate(45deg); font: 700 9px/1 var(--cl-font-mono); letter-spacing: .16em; color: #fff; background: var(--cl-cyan); padding: 5px 40px; }

.cl-access-card { border: 1px solid var(--cl-border); border-radius: var(--cl-radius-lg); padding: 26px; display: flex; flex-direction: column; gap: 12px; text-decoration: none; color: inherit; transition: transform .3s cubic-bezier(.22,.72,.2,1), box-shadow .3s ease; }
.cl-access-card:hover { transform: translateY(-4px); box-shadow: var(--cl-shadow-card-hover); }
.cl-access-card--tint { border-color: var(--cl-tint-border); background: var(--cl-tint); }
.cl-access-card__icon { width: 48px; height: 48px; border-radius: 12px; display: flex; align-items: center; justify-content: center; }
.cl-access-card__title { font: 600 20px/1.2 var(--cl-font); }
.cl-access-card__desc { font: 400 15px/1.55 var(--cl-font); color: var(--cl-muted); }

.cl-band { background: var(--cl-blue); }
.cl-band__inner { max-width: var(--cl-container); margin: 0 auto; padding: clamp(36px, 5vw, 50px) var(--cl-pad-x); display: flex; align-items: center; justify-content: space-between; gap: 30px; flex-wrap: wrap; }

.cl-instalaciones { background: var(--cl-bg-soft); }
.cl-instalaciones__inner { max-width: var(--cl-container); margin: 0 auto; padding: clamp(40px, 5vw, 56px) var(--cl-pad-x); display: flex; gap: 36px; align-items: center; flex-wrap: wrap; }
.cl-instalaciones__img { background-image: url("../images/newsite/instalaciones-pocitos-VOi0uO7.jpg"); background-size: cover; background-position: 50% 42%; border-radius: 16px; height: 320px; }
.cl-instalaciones__badge { position: absolute; top: 16px; left: 16px; z-index: 1; display: inline-flex; align-items: center; gap: 7px; font: 700 11px/1 var(--cl-font-mono); letter-spacing: .1em; color: #fff; background: var(--cl-blue); border-radius: var(--cl-radius-pill); padding: 9px 14px; box-shadow: 0 4px 14px rgba(13,106,174,.35); }
.cl-check-item { display: flex; align-items: center; gap: 9px; background: #fff; border: 1px solid var(--cl-border-2); border-radius: 12px; padding: 12px 16px; }
.cl-check-item span { font: 600 14px/1.2 var(--cl-font); color: var(--cl-text); }

/* ---- Ver servicio ------------------------------------------------------------- */

.cl-svc-detail { display: flex; gap: 40px; flex-wrap: wrap; }
.cl-svc-detail__sidebar { flex: 1 1 300px; max-width: 340px; }
.cl-svc-detail__main { flex: 2 1 480px; min-width: 280px; }
@media (min-width: 769px) { .cl-svc-detail__sidebar { position: sticky; top: 90px; align-self: flex-start; } }

.cl-price-card { border: 1px solid var(--cl-border); border-radius: var(--cl-radius-lg); overflow: hidden; box-shadow: var(--cl-shadow-sm); margin-bottom: 16px; }
.cl-price-card__body { text-align: center; padding: 26px 20px; }
.cl-price-card__label { font: 500 11px/1 var(--cl-font-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--cl-muted); margin-bottom: 6px; }
.cl-price-card__value { font: 700 30px/1 var(--cl-font); color: var(--cl-blue); }
.cl-price-card__actions { background: var(--cl-bg-soft); padding: 16px; display: flex; flex-direction: column; gap: 8px; }

.cl-fact { border: 1px solid var(--cl-border); border-radius: var(--cl-radius); padding: 18px 20px; }
.cl-fact__k { font: 500 11px/1 var(--cl-font-mono); letter-spacing: .1em; color: #9aa3a8; margin-bottom: 8px; }
.cl-fact__v { font: 600 18px/1.15 var(--cl-font); color: var(--cl-navy); white-space: pre-line; }

/* ---- Servicios (listado dinámico) -------------------------------------------- */

.cl-svc-card { border: 1px solid var(--cl-border); border-radius: var(--cl-radius-lg); overflow: hidden; background: #fff; display: block; text-decoration: none; color: inherit; box-shadow: var(--cl-shadow-sm); transition: transform .3s cubic-bezier(.22,.72,.2,1), box-shadow .3s ease; }
.cl-svc-card:hover { transform: translateY(-4px); box-shadow: var(--cl-shadow-card-hover); }
.cl-svc-card__img-wrap { aspect-ratio: 4 / 3; overflow: hidden; background: var(--cl-bg-soft); }
.cl-svc-card__img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.cl-svc-card:hover .cl-svc-card__img { transform: scale(1.06); }
.cl-svc-card__body { padding: 14px 16px 12px; }
.cl-svc-card__title { font: 600 15px/1.3 var(--cl-font); color: var(--cl-ink); margin: 0 0 6px; }
.cl-svc-card__tag { display: inline-block; font: 500 11px/1 var(--cl-font); color: var(--cl-blue); background: var(--cl-tint); border-radius: var(--cl-radius-pill); padding: 5px 10px; }
.cl-svc-card__price { background: var(--cl-blue); color: #fff; text-align: center; font: 600 15px/1 var(--cl-font); padding: 12px; }

.cl-filter-pill { cursor: pointer; font: 600 13px/1 var(--cl-font); border-radius: var(--cl-radius-pill); padding: 10px 16px; border: 1px solid var(--cl-border-2); background: #fff; color: var(--cl-text); }
.cl-filter-pill.is-active { background: var(--cl-blue); border-color: var(--cl-blue); color: #fff; }
.cl-filter-item { transition: opacity .2s ease; }
.cl-filter-item.is-hidden { display: none !important; }

.cl-alert { border-radius: var(--cl-radius); padding: 16px 20px; display: flex; gap: 12px; align-items: flex-start; font: 400 14.5px/1.5 var(--cl-font); }
.cl-alert--success { background: #e8f5e9; color: #2e7d32; }
.cl-alert--warning { background: #fff8e1; color: #7b5800; }

/* ---- FAQ / acordeones (basados en <details>/<summary>, sin JS) --------------- */

.cl-faq { border: 1px solid var(--cl-border); border-radius: var(--cl-radius); overflow: hidden; background: #fff; }
.cl-faq + .cl-faq { margin-top: 12px; }
.cl-faq > summary { cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 22px; font: 600 16px/1.4 var(--cl-font); color: var(--cl-navy); list-style: none; transition: background-color .2s ease; }
.cl-faq > summary::-webkit-details-marker { display: none; }
.cl-faq > summary:hover { background: #f8fafb; }
.cl-faq__chevron { flex: none; transition: transform .2s ease; }
.cl-faq[open] > summary .cl-faq__chevron { transform: rotate(180deg); }
.cl-faq__a { padding: 0 22px 20px; font: 400 15px/1.65 var(--cl-font); color: #556; white-space: pre-line; }

.cl-cat { background: #fff; border: 1px solid var(--cl-border); border-radius: var(--cl-radius-lg); padding: 24px 22px 14px; box-shadow: var(--cl-shadow-sm); }
.cl-cat > summary { cursor: pointer; list-style: none; display: flex; flex-direction: column; }
.cl-cat > summary::-webkit-details-marker { display: none; }
.cl-cat__icon { width: 48px; height: 48px; border-radius: 13px; background: var(--cl-tint); display: flex; align-items: center; justify-content: center; }
.cl-cat__caret { flex: none; width: 32px; height: 32px; border-radius: 50%; background: #f2f5f6; display: flex; align-items: center; justify-content: center; margin-top: 2px; transition: transform .22s ease; }
.cl-cat[open] > summary .cl-cat__caret { transform: rotate(180deg); }
.cl-cat__title { font: 600 19px/1.25 var(--cl-font); color: var(--cl-navy); margin: 14px 0 5px; }
.cl-cat__count { font: 500 11px/1 var(--cl-font-mono); letter-spacing: .08em; color: #9aa3a8; }
.cl-cat__list { display: flex; flex-direction: column; margin-top: 12px; }
.cl-cat__study { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 11px 4px; border-top: 1px solid #f1f4f5; text-decoration: none; }
.cl-cat__study span:first-child { font: 400 14.5px/1.35 var(--cl-font); color: #3a4650; }
.cl-cat__study-wa { flex: none; width: 30px; height: 30px; border-radius: 50%; background: #f3fbf5; border: 1px solid #d6efdd; display: flex; align-items: center; justify-content: center; }

/* ---- Chequeos (Análisis Clínicos) -------------------------------------------- */

.cl-chequeo { background: #fff; border: 1px solid var(--cl-border); border-radius: 20px; padding: clamp(26px, 3vw, 36px) clamp(22px, 3vw, 34px) 30px; box-shadow: var(--cl-shadow-sm); display: flex; flex-direction: column; position: relative; }
.cl-chequeo--featured { background: var(--cl-tint); border: 1.5px solid var(--cl-tint-border); box-shadow: none; }
.cl-chequeo__badge { position: absolute; top: 24px; right: 24px; font: 600 10px/1 var(--cl-font-mono); letter-spacing: .12em; color: #fff; background: var(--cl-blue); border-radius: var(--cl-radius-pill); padding: 7px 12px; }
.cl-chequeo__icon { width: 54px; height: 54px; border-radius: 14px; background: #eaf4fa; display: flex; align-items: center; justify-content: center; margin-bottom: 18px; }
.cl-chequeo--featured .cl-chequeo__icon { background: #fff; }
.cl-chequeo h3 { font: 700 26px/1.15 var(--cl-font); color: var(--cl-navy); margin: 0 0 4px; }
.cl-chequeo__count { font: 500 11px/1 var(--cl-font-mono); letter-spacing: .08em; color: #9aa3a8; margin-bottom: 22px; }
.cl-chequeo__studies { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px 20px; margin-bottom: 28px; }
.cl-chequeo__study { display: flex; align-items: center; gap: 9px; font: 400 14.5px/1.3 var(--cl-font); color: #3a4650; }
.cl-chequeo__study svg { flex: none; }
.cl-chequeo__footer { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 16px; border-top: 1px solid #eef2f3; padding-top: 22px; }
.cl-chequeo__price-label { font: 500 10px/1 var(--cl-font-mono); letter-spacing: .1em; color: #9aa3a8; margin-bottom: 6px; }
.cl-chequeo__price { font: 700 24px/1 var(--cl-font); color: var(--cl-navy); }
.cl-chequeo__mp { display: flex; align-items: center; gap: 8px; margin-top: 12px; background: #f3f8fc; border: 1px solid #dce8f2; border-radius: 10px; padding: 9px 12px; font: 500 12px/1.4 var(--cl-font); color: #27607f; }
.cl-chequeo__mp img { flex: none; height: 22px; width: 22px; object-fit: contain; background: #fff; border-radius: 5px; }

/* ---- Formularios -------------------------------------------------------------- */

.cl-field { display: flex; flex-direction: column; gap: 7px; }
.cl-field label { font: 500 13px/1 var(--cl-font); color: #445; }
.cl-field input, .cl-field select, .cl-field textarea {
  width: 100%; font: 400 15px/1.2 var(--cl-font); color: var(--cl-ink); background: #fff;
  border: 1px solid var(--cl-border-2); border-radius: 8px; padding: 13px 14px;
}
.cl-field textarea { resize: vertical; min-height: 96px; }
.cl-field-row { display: flex; gap: 14px; flex-wrap: wrap; }
.cl-field-row > * { flex: 1 1 140px; }

/* ---- Agenda ------------------------------------------------------------------- */

.cl-agenda-steps { display: flex; align-items: center; gap: 0; max-width: 680px; flex-wrap: wrap; }
.cl-agenda-layout { max-width: var(--cl-container); margin: 0 auto; display: flex; flex-wrap: wrap; }
.cl-agenda-form { flex: 1 1 480px; min-width: 300px; padding: clamp(28px, 4vw, 40px); }
.cl-agenda-summary { flex: 1 1 360px; min-width: 300px; padding: clamp(28px, 4vw, 40px); background: var(--cl-blue); color: #fff; }
@media (min-width: 901px) { .cl-agenda-summary { position: sticky; top: 0; align-self: flex-start; } }

.cl-sede-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; }
.cl-sede-card { cursor: pointer; border: 1px solid var(--cl-border-2); background: #fff; border-radius: 12px; padding: 16px; }
.cl-sede-card__head { display: flex; align-items: center; justify-content: space-between; }
.cl-sede-card__name { font: 600 16px/1.2 var(--cl-font); color: var(--cl-ink); }
.cl-sede-card__sub { font: 400 13px/1.4 var(--cl-font); color: #667; margin-top: 4px; }
.cl-sede-card__check { display: none; flex: none; width: 18px; height: 18px; border-radius: 50%; background: var(--cl-blue); align-items: center; justify-content: center; }
.cl-sede-card.is-selected { border: 1.5px solid var(--cl-blue); background: var(--cl-tint); }
.cl-sede-card.is-selected .cl-sede-card__check { display: flex; }
.cl-sede-card.is-selected .cl-sede-card__name { color: var(--cl-blue); }
.cl-sede-card.is-selected .cl-sede-card__sub { color: var(--cl-blue); }

.cl-slots { display: grid; grid-template-columns: repeat(auto-fill, minmax(64px, 1fr)); gap: 8px; max-height: 172px; overflow-y: auto; padding: 2px 8px 2px 2px; }
.cl-slot { border: 1px solid var(--cl-border-2); background: #fff; border-radius: 9px; padding: 9px 0; text-align: center; cursor: pointer; font: 500 13px/1 var(--cl-font-mono); color: #445; }
.cl-slot:hover { border-color: var(--cl-blue); }
.cl-slot.is-selected { border: 1.5px solid var(--cl-blue); background: var(--cl-blue); color: #fff; font-weight: 600; }
.cl-slot.is-disabled { opacity: .4; cursor: not-allowed; text-decoration: line-through; }

.cl-pago-row { display: flex; flex-direction: column; gap: 10px; margin-bottom: 20px; }
.cl-pago-opt { display: flex; align-items: center; gap: 10px; border: 1px solid var(--cl-border-2); border-radius: 10px; padding: 12px 14px; cursor: pointer; }
.cl-pago-opt input { margin: 0; }

.cl-summary-row { display: flex; justify-content: space-between; align-items: center; gap: 16px; border-bottom: 1px solid rgba(255,255,255,.13); padding-bottom: 13px; margin-bottom: 14px; }
.cl-summary-row:last-of-type { border-bottom: none; margin-bottom: 0; }
.cl-summary-row__label { font: 400 14px/1 var(--cl-font); color: #cfe3f1; flex: none; }
.cl-summary-row__value { font: 600 15px/1.3 var(--cl-font); text-align: right; }
.cl-summary-mp { background: #0a527e; border: 1px solid #3d86ba; border-radius: 14px; padding: 16px 18px; margin: 20px 0; }
.cl-summary-mp__total { font: 700 26px/1 var(--cl-font); color: var(--cl-cyan); }

.cl-agenda-hint { font: 400 13px/1.5 var(--cl-font); color: var(--cl-muted-2); }
.cl-slots .cl-agenda-hint { grid-column: 1 / -1; }

.cl-agenda-form select,
.cl-agenda-form input[type="text"],
.cl-agenda-form input[type="email"],
.cl-agenda-form input[type="tel"],
.cl-agenda-form input[type="date"] {
  width: 100%; font: 400 15px/1.2 var(--cl-font); color: var(--cl-ink); background: #fff;
  border: 1px solid var(--cl-border-2); border-radius: 8px; padding: 13px 14px;
}
.cl-agenda-form select:disabled { opacity: .6; }

/* Armonizar alerts/flash de Bootstrap (siguen usándose para agenda y mensajes flash) */
.alert { border-radius: var(--cl-radius); font-family: var(--cl-font); }

/* ---- Medicina Estética ---------------------------------------------------------- */

.cl-estetica-team,
.cl-estetica-svc,
.cl-estetica-space {
  transition: transform .3s cubic-bezier(.22,.72,.2,1), box-shadow .3s ease, border-color .3s ease;
}
.cl-estetica-team:hover,
.cl-estetica-svc:hover,
.cl-estetica-space:hover {
  transform: translateY(-4px);
  box-shadow: var(--cl-shadow-card-hover);
  border-color: #bcd9ec;
}

.cl-estetica-team { border: 1px solid var(--cl-border); border-radius: 22px; overflow: hidden; display: flex; flex-wrap: wrap; align-items: stretch; }
.cl-estetica-team__photo { flex: 1 1 220px; min-width: 200px; max-width: 260px; background-size: cover; background-position: center; min-height: 280px; }
.cl-estetica-team__body { flex: 2 1 420px; min-width: 280px; padding: clamp(28px, 3.5vw, 40px) clamp(28px, 3.5vw, 42px); display: flex; flex-direction: column; justify-content: center; }

.cl-estetica-cta { position: relative; overflow: hidden; background: linear-gradient(135deg, #163A5A 0%, #0D6AAE 100%); border-radius: 22px; padding: clamp(32px, 4vw, 46px) clamp(28px, 4vw, 46px); }
.cl-estetica-cta__rings { position: absolute; right: -40px; top: -50px; width: 260px; opacity: .5; }
.cl-estetica-cta__steps { position: relative; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; padding-top: 26px; margin-top: 20px; border-top: 1px solid rgba(255,255,255,.16); }
.cl-estetica-step { display: flex; align-items: flex-start; gap: 12px; }
.cl-estetica-step__n { flex: none; width: 30px; height: 30px; border-radius: 9px; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.22); display: flex; align-items: center; justify-content: center; font: 700 13px/1 var(--cl-font); color: #fff; }

.cl-estetica-cta__btn { flex: none; font: 500 14.5px/1 var(--cl-font); color: #fff; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.4); border-radius: 100px; padding: 12px 22px; text-decoration: none; display: inline-flex; align-items: center; gap: 8px; transition: background-color .22s ease, transform .22s ease; }
.cl-estetica-cta__btn:hover { background: rgba(255,255,255,.2); transform: translateY(-2px); }

.cl-estetica-svc { background: #fff; border: 1px solid var(--cl-border); border-radius: 18px; padding: 26px 24px 22px; display: flex; flex-direction: column; }
.cl-estetica-svc__icon { width: 48px; height: 48px; border-radius: 13px; background: var(--cl-tint); display: flex; align-items: center; justify-content: center; margin-bottom: 16px; }
.cl-estetica-svc__bullet { display: flex; align-items: flex-start; gap: 9px; font: 400 14px/1.4 var(--cl-font); color: #3a4650; }
.cl-estetica-svc__bullet svg { flex: none; margin-top: 2px; }
.cl-estetica-svc__wa { margin-top: auto; font: 600 14px/1 var(--cl-font); color: #16a34a; text-decoration: none; display: inline-flex; align-items: center; gap: 7px; transition: transform .2s ease, color .18s ease; }
.cl-estetica-svc__wa:hover { transform: translateX(3px); color: #128a3e; }

.cl-estetica-space { border: 1px solid var(--cl-border); border-radius: 22px; overflow: hidden; display: flex; flex-wrap: wrap-reverse; align-items: stretch; }
.cl-estetica-space__photo { flex: 1 1 300px; min-width: 260px; max-width: 360px; background-size: cover; background-position: 75% 85%; min-height: 300px; }
.cl-estetica-space__body { flex: 2 1 340px; min-width: 280px; padding: clamp(28px, 3.5vw, 40px) clamp(28px, 3.5vw, 42px); display: flex; flex-direction: column; justify-content: center; }

/* ---- Utilidades de grid ------------------------------------------------------- */

.cl-grid { display: grid; gap: 18px; }
.cl-grid--3 { grid-template-columns: repeat(3, 1fr); }
.cl-grid--auto-280 { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.cl-grid--auto-260 { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.cl-grid--auto-220 { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
@media (max-width: 900px) {
  .cl-grid--3 { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
}
