/* Base */
*{margin:0;padding:0;box-sizing:border-box;font-family:'Poppins',sans-serif}

body{
  min-height: 100dvh;                 /* mejor en mobile (barra de URL variable) */
  display: grid;
  grid-template-rows: auto auto auto 1fr auto; /* h1 | h2 | carrusel | panel | footer */
  align-items: start;
  justify-items: center;
  color: #fff;
  text-align: center;
  position: relative;

  /* ðŸ‘‡ permite desplazarse hacia el footer */
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;

  /* mÃ¡s aire y safe-area en iOS */
  padding: clamp(4px, 4vh, 48px) 16px calc(clamp(12px, 5vh, 56px) + env(safe-area-inset-bottom));
  row-gap: 16px;
}

:root{
  --modal-surface: linear-gradient(135deg, #111833, #35247c);
  --modal-surface-bright: radial-gradient(circle at top right, rgba(56,189,248,.25), transparent 45%);
  --modal-border: rgba(255,255,255,.16);
  --modal-card: rgba(15,23,42,.7);
  --modal-card-border: rgba(148,163,184,.2);
  --modal-cta: linear-gradient(135deg,#38bdf8,#22d3ee);
  --modal-cta-text: #041724;
  --modal-muted: rgba(226,232,240,.78);
}


/* Fondo y overlay (igual) */
.bg-video{ position:fixed; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2;
  filter:saturate(.9) brightness(.65); opacity:0; transition:opacity 1.2s ease }
.bg-video.visible{ opacity:1 }
.overlay{ position:fixed; inset:0; z-index:-1;
  background: radial-gradient(transparent 30%, rgba(0,0,0,.6) 80%),
              linear-gradient(rgba(0,0,0,.35), rgba(0,0,0,.65)); pointer-events:none }

/* TÃ­tulos */
h1{ font-size:2.8rem; font-weight:600; margin-bottom:4px; text-shadow:0 2px 10px rgba(0,0,0,.5) }
h2{ font-size:1.1rem; font-weight:400; color:#ccc; margin-bottom:6px; letter-spacing:1px }

/* === Carrusel transparente === */
.hero-carousel{
  width:min(96vw,1200px);
  position:relative;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:10px;
  /* separaciÃ³n superior/inferior */
  margin-top:8px;
}

.hc-viewport{
  overflow:hidden;
  border-radius:18px;
  /* vidrio muy sutil */
  background:rgba(255,255,255,.06);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  padding:18px 10px;
}

.hc-track{
  display:flex;
  gap:18px;
  will-change:transform;
}
.hero-carousel.is-single-page .hc-track{
  justify-content:center;
}

.hc-card{
  flex:0 0 calc((100% - (18px * (var(--perView,1)-1))) / var(--perView,1));
  /* fallback a 1 por defecto; JS mueve por viewport */
}
.hc-card figure{
  width:clamp(210px, 22vw, 260px);
  aspect-ratio: 1 / 1.05;
  margin:0 auto; padding:16px;
  border-radius:16px;
  background:rgba(0,0,0,.25);
  box-shadow:0 12px 30px rgba(0,0,0,.25) inset, 0 8px 20px rgba(0,0,0,.25);
  display:grid; place-items:center; gap:14px;
}
.hc-card img{
  width:72%; aspect-ratio:1/1; object-fit:cover;
  border-radius:50%; border:3px solid rgba(255,255,255,.65);
  box-shadow:0 6px 18px rgba(0,0,0,.35);
}
.hc-card figcaption{
  font-weight:600; font-size:1rem; letter-spacing:.2px;
  text-shadow:0 1px 6px rgba(0,0,0,.5);
}

  /* Boton alineado a la izquierda */
.hc-btn{
  --size:42px;
  width:var(--size); height:var(--size);
  border-radius:50%; border:0; cursor:pointer;
  display:grid; place-items:center;
  color:#fff; background:rgba(0,0,0,.35);
  backdrop-filter:blur(6px);
  box-shadow:0 6px 18px rgba(0,0,0,.35);
  transition:transform .2s ease, background .2s ease, opacity .2s ease;
}
.hc-btn:hover{ transform:translateY(-1px); background:rgba(255,255,255,.2) }
.hc-btn:active{ transform:scale(.96) }

/* Dots */
.hc-dots{ display:flex; justify-content:center; gap:8px; margin-top:10px; grid-column:1 / -1 }
.hc-dots .dot{
  width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,.35);
  border:0; cursor:pointer; transition:transform .2s ease, background .2s ease;
}
.hc-dots .dot.active{ background:#fff; transform:scale(1.25) }

.trust-banner-section{
  width: min(92vw, 1100px);
  margin: 28px auto 10px;
}
.trust-banner{
  padding: clamp(16px, 2.6vw, 26px) clamp(18px, 3.5vw, 32px);
  border-radius: 20px;
  background: linear-gradient(115deg,#7c3aed,#5b21b6);
  color:#fff;
  border:1px solid rgba(255,255,255,.12);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:clamp(0.8rem,1.8vw,1.4rem);
  flex-wrap:wrap;
  box-shadow:0 30px 45px rgba(0,0,0,.45);
}
.trust-banner__text{
  flex:1 1 240px;
}
.trust-banner__eyebrow{
  margin:0 0 .35rem;
  text-transform:uppercase;
  letter-spacing:.15em;
  font-size:.78rem;
  font-weight:600;
  color:rgba(255,255,255,.85);
}
.trust-banner__text h3{
  margin:0;
  font-size:clamp(1.1rem,1vw + 1rem,1.8rem);
  font-weight:700;
}
.trust-banner__avatars{
  display:flex;
  align-items:center;
  gap:.45rem;
  flex-wrap:nowrap;
  margin-top:.4rem;
}
.trust-banner__avatar{
  width:52px;
  height:52px;
  border-radius:999px;
  border:3px solid rgba(255,255,255,.55);
  overflow:hidden;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:rgba(3,7,18,.35);
  font-weight:600;
  font-size:.95rem;
  box-shadow:0 12px 24px rgba(0,0,0,.45);
  color:#fff;
  margin-left:-12px;
}
.trust-banner__avatar:first-child{ margin-left:0; }
.trust-banner__avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.trust-banner__count{
  width:56px;
  height:56px;
  border-radius:999px;
  background:rgba(0,0,0,.65);
  border:3px solid rgba(255,255,255,.65);
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:700;
  font-size:1rem;
  color:#fff;
  margin-left:-10px;
  box-shadow:0 14px 26px rgba(0,0,0,.45);
}
@media (max-width:640px){
  .trust-banner{
    flex-direction:column;
    text-align:center;
    padding:18px 20px 16px;
    gap:.65rem;
  }
  .trust-banner__text{
    flex:0 1 auto;
  }
  .trust-banner__avatars{
    flex-wrap:wrap;
    justify-content:center;
    margin-top:.15rem;
  }
  .trust-banner__avatar,
  .trust-banner__count{
    margin-left:0;
  }
  .trust-banner__text h3{
    font-size:1.2rem;
  }
}

/* Panel principal (iconos) */
.container{
  background: rgba(255,255,255,.08);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-radius: 18px;
  padding: 32px 28px;

  /* Grid que se reparte equitativamente */
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  justify-items: center;     /* centra cada tarjeta */
  align-content: start;
  gap: clamp(20px, 3vw, 36px);

  width: min(92vw, 1100px);
  margin-top: 12px;
}


/* Items */
.category{
  width: 100%;
  text-align: center;
  cursor: pointer;
  transition: transform .3s ease, opacity .3s ease;
  padding: 12px 8px;         /* aire vertical */
}
.category:hover{ transform: translateY(-8px); opacity: .9; }
.category i{ font-size: 2.5rem; color: #fff; margin-bottom: 10px; }
.category p{ font-size: 1rem; color: #fff; }

/* Footer */
footer{ margin-top:20px; align-self:end; display:flex; gap:30px; justify-content:center;
   }
footer a{ color:#fff; font-size:1.5rem; text-decoration:none; transition:color .3s ease }
footer a:hover{ color:#1DA1F2 }

/* Accesibilidad */
@media (prefers-reduced-motion: reduce){ .bg-video{ display:none } }

/* Breakpoints carrusel (per-view visual) */
@media (min-width: 600px){ .hero-carousel{ --perView:2 } }
@media (min-width: 900px){ .hero-carousel{ --perView:3 } }
@media (min-width:1200px){ .hero-carousel{ --perView:3 } }

/* Breakpoints panel de iconos */
@media (max-width: 768px){
  h1{ font-size:2rem }
  .container{ padding:25px; gap:25px; grid-template-columns:1fr; width:min(94vw,700px) }
  .category i{ font-size:2rem }
}
@media (min-width: 768px){ .container{ grid-template-columns: repeat(2,1fr) } }
@media (min-width:1024px){ .container{ grid-template-columns: repeat(3,1fr) } }

/* === Typewriter === */
#typewrap {
  min-height: 1.4em;              /* evita saltos al cambiar frases */
  letter-spacing: 1px;
  color: #ddd;
}

#typewriter {
  white-space: nowrap;
  display: inline-block;
  text-shadow: 0 2px 10px rgba(0,0,0,.4);
}

/* cursor */
.caret {
  display: inline-block;
  width: 2px;
  height: 1.1em;
  margin-left: 6px;
  background: #fff;
  opacity: .9;
  animation: blink 1s step-end infinite;
  vertical-align: -2px;
}

@keyframes blink { 50% { opacity: 0; } }

/* opcional: en mÃ³viles, letra un poco mÃ¡s chica */
@media (max-width: 480px) {
  #typewrap { font-size: .95rem; }
}

/* --- BotÃ³n "Ver Planes" en el carrusel --- */
.hc-card figure{
  display: grid;
  grid-template-rows: auto auto auto; /* img | tÃ­tulo | botÃ³n */
  gap: 12px;
}

  /* Boton alineado a la izquierda */
.plan-btn{
  justify-self: center;
  padding: 10px 16px;
  border-radius: 999px;
  font-weight: 600;
  font-size: .95rem;
  color: #fff;
  text-decoration: none;
  border: 1px solid rgba(255,255,255,.35);
  background: #008000;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 6px 16px rgba(0,0,0,.25), inset 0 1px 0 rgba(255,255,255,.25);
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}

.plan-btn:hover{
  transform: translateY(-2px);
  background: #0a5c0a;
  box-shadow: 0 10px 24px rgba(0,0,0,.32), inset 0 1px 0 rgba(255,255,255,.35);
}

.plan-btn:active{ transform: translateY(0); }
.plan-btn:focus{ outline: 2px solid rgba(255,255,255,.55); outline-offset: 2px; }

.hc-highlight{
  justify-self: center;
  margin-bottom: .4rem;
  padding: .2rem .75rem;
  border-radius: 999px;
  font-size: .95rem;
  font-weight: 600;
  color: #f8fafc;
  background: linear-gradient(135deg, #2563eb, #4c1d95);
  letter-spacing: .02em;
}

.hc-perks{
  display: grid;
  gap: .35rem;
  margin-top: .35rem;
  margin-bottom: .75rem;
}

.hc-perk{
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  font-size: .9rem;
  color: rgba(226, 232, 240, 0.95);
}


.hc-perk i{
  font-size: 1rem;
}


/* MÃ³vil estrecho */
@media (max-width: 420px){
  .hero-carousel{ width: 100vw; margin-left: -16px; margin-right: -16px; } /* ocupa todo el ancho */
  .hc-viewport{ padding: 12px 8px; border-radius: 14px; }
  .hc-track{ gap: 12px; }
  .hc-card figure{
    width: clamp(160px, 68vw, 210px); /* antes min 210: demasiado grande para 360px */
    padding: 12px;
    border-radius: 14px;
    gap: 10px;
  }
  .hc-card img{ width: 68%; border-width: 2px; }
  .hc-btn{ --size: 36px; }            /* flechas mÃ¡s chicas */
  .hc-dots{ gap: 6px; margin-top: 8px; }
  h1{ font-size: 1.9rem; }
  #typewrap{ font-size: .95rem; }
}

/* ===== Mobile: una debajo de otra, con buena separaciÃ³n ===== */
@media (max-width: 768px){
  .container{
    grid-template-columns: 1fr;   /* stack */
    row-gap: 26px;                /* separaciÃ³n entre Ã­tems */
    padding: 22px 22px 26px;
    width: min(94vw, 700px);
  }
  .category i{ font-size: 2rem; margin-bottom: 8px; }
  .category p{ line-height: 1.2; }
  .category{ border-bottom: 1px solid rgba(255,255,255,.08); }
  .category:last-child{ border-bottom: 0; }
}

/* ===== Desktop grande: 3 columnas â€œperfectasâ€ ===== */
@media (min-width: 1200px){
  .container{
    grid-template-columns: repeat(3, minmax(240px, 1fr));
    column-gap: clamp(28px, 4vw, 48px);
    row-gap: clamp(20px, 3vw, 36px);
  }
}

/* ===== Modal rubros (override) ===== */
#modal-rubros .cat-modal{
  position:relative;
  padding: clamp(24px, 4vw, 40px);
  border-radius:24px;
  background: var(--modal-surface);
  border:1px solid var(--modal-border);
  box-shadow:0 26px 55px rgba(3,7,18,.65);
  width:min(1020px, 96vw);
  max-height:min(84vh, 860px);
  overflow:hidden;
}
#modal-rubros .cat-modal::after{
  content:'';
  position:absolute;
  inset:-40% -60% auto 35%;
  width:220%;
  height:220%;
  background: var(--modal-surface-bright);
  opacity:.7;
  pointer-events:none;
}
#modal-rubros .cat-modal > *{ position:relative; z-index:1; }

#modal-rubros .cat-header{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
  margin-bottom: clamp(16px, 2vw, 24px);
}
#modal-rubros .cat-header h3{
  margin:0;
  font-size: clamp(1rem, 1.15vw + .6rem, 1.2rem);
  letter-spacing:.35px;
  text-align:center;
}
#modal-rubros .cat-header__text{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  text-align:center;
}
#modal-rubros .cat-subtitle{
  margin:0;
  font-size: clamp(.78rem, .9vw + .3rem, .95rem);
  color:rgba(226,232,240,.8);
}
#modal-rubros .cat-close{
  position:absolute;
  top:50%;
  right: clamp(12px, 2vw, 20px);
  border-radius:999px;
  border:1px solid rgba(255,255,255,.35);
  background:rgba(15,23,42,.65);
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  transform:translateY(-50%);
  transition:none;
  z-index:5;
}
#modal-rubros .cat-header h3{
  margin:0;
  font-size: clamp(1rem, 1.15vw + .6rem, 1.2rem);
  letter-spacing:.35px;
  width:100%;
  text-align:center;
}
#modal-rubros .cat-close:hover{ background:rgba(33,41,61,.85); }

#modal-rubros .cat-grid{
  grid-template-columns:repeat(auto-fit, minmax(260px,1fr));
  gap: clamp(16px, 2vw, 24px);
  padding: clamp(16px, 2vw, 24px) 4px 4px;
  scrollbar-width:thin;
  scrollbar-color:rgba(255,255,255,.2) transparent;
}
#modal-rubros .cat-grid::-webkit-scrollbar{ width:10px; }
#modal-rubros .cat-grid::-webkit-scrollbar-thumb{ background:rgba(255,255,255,.25); border-radius:999px; }

#modal-rubros .cat-card{
  border-radius:18px;
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 20px 32px rgba(3,7,18,.45);
  min-height:210px;
}
#modal-rubros .cat-imgfill::after{
  background:linear-gradient(180deg, rgba(9,11,25,.08) 0%, rgba(2,7,20,.85) 85%);
}
#modal-rubros .cat-overlay{
  padding: clamp(16px, 2.4vw, 24px);
  justify-content:flex-end;
  gap:10px;
}
#modal-rubros .cat-ttl{
  font-size: clamp(1rem, 1.2vw + .5rem, 1.25rem);
  text-shadow:0 10px 20px rgba(3,7,18,.65);
}
#modal-rubros .cat-desc.small{
  color:rgba(226,232,240,.92);
  font-size: clamp(.82rem, .8vw + .45rem, 1rem);
}
#modal-rubros .cat-planline{
  align-items:center;
  width:100%;
  margin-top:6px;
}
#modal-rubros .btn-contratar{
  padding: clamp(6px, .8vw, 9px) clamp(14px, 1.1vw, 22px);
  font-size: clamp(.78rem, .85vw + .4rem, .95rem);
  background:var(--modal-cta);
  color:var(--modal-cta-text);
  border:1px solid rgba(255,255,255,.25);
  min-width:max-content;
}

@media (max-width:640px){
  #modal-rubros .cat-modal{
    padding: clamp(18px, 6vw, 28px);
  }
  #modal-rubros .cat-grid{
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  }
  #modal-rubros .cat-overlay{
    padding: clamp(14px, 3vw, 20px);
  }
  #modal-rubros .btn-contratar{
    width:100%;
    justify-content:center;
  }
}

/* ===== Modal selector inicial ===== */
.lead-modal{
  display:grid;
  gap:clamp(18px, 3vw, 28px);
  padding:clamp(26px, 4vw, 38px);
  background: linear-gradient(135deg,#121c3b,#4627a7);
  border:1px solid var(--modal-border);
  box-shadow:0 24px 48px rgba(6,9,26,.6);
}
.lead-modal__header{
  display:grid;
  gap:10px;
  text-align:left;
}
.lead-modal__badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:6px 14px;
  border-radius:999px;
  background:rgba(56,189,248,.22);
  color:#e0f2fe;
  font-size:.75rem;
  font-weight:600;
  letter-spacing:.6px;
  text-transform:uppercase;
}
.lead-modal__title{ margin:0; font-size: clamp(1.2rem, 1vw + 1rem, 1.6rem); }
.lead-modal__text{
  margin:0;
  color:var(--modal-muted);
  font-size:.95rem;
}
.lead-modal__form{
  display:grid;
  gap:clamp(14px, 2vw, 22px);
  padding: clamp(18px, 3vw, 26px);
  border-radius:18px;
  background: rgba(15,23,42,.45);
  border:1px solid rgba(255,255,255,.1);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.08);
}
.lead-modal__label{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-weight:600;
  color:#f8fafc;
  font-size:.9rem;
}
.lead-modal__select{
  width:100%;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.25);
  background: rgba(8,13,28,.7);
  color:#fff;
  padding:12px 16px;
  font-size:1rem;
  font-weight:600;
  box-shadow:0 16px 32px rgba(5,8,20,.4);
}
.lead-modal__select:focus{
  outline:3px solid rgba(56,189,248,.35);
  outline-offset:2px;
}
.lead-modal__actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  justify-content:flex-end;
}
.lead-modal__btn{
  border:0;
  border-radius:999px;
  padding:12px 26px;
  font-weight:600;
  font-size:.95rem;
  cursor:pointer;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.lead-modal__btn--primary{
  background:var(--modal-cta);
  color:var(--modal-cta-text);
  box-shadow:0 18px 32px rgba(34,211,238,.32);
}
.lead-modal__btn--ghost{
  background:rgba(255,255,255,.08);
  color:#f8fafc;
  border:1px solid rgba(255,255,255,.18);
}
.lead-modal__btn:hover{ transform:translateY(-1px); }

/* ===== Modal marketing ===== */
.marketing-modal{
  position:relative;
  margin: clamp(16px, 4vw, 32px) auto;
  display:grid;
  gap:clamp(18px, 3vw, 30px);
  padding:clamp(28px, 5vw, 44px);
  padding-top: clamp(48px, 6vw, 62px);
  padding-right: clamp(48px, 6vw, 72px);
  background: linear-gradient(135deg,#0f142c,#471f8f);
  border:1px solid var(--modal-border);
  border-radius: 32px;
  color:#fff;
  overflow:hidden;
  min-width:min(520px, 94vw);
  max-width: min(900px, 92vw);
  box-shadow: 0 35px 65px rgba(5, 8, 20, 0.55);
}
.marketing-modal::after{
  content:'';
  position:absolute;
  inset:-50% -20% auto 20%;
  width:200%;
  height:200%;
  background: radial-gradient(circle, rgba(56,189,248,.3), transparent 40%);
  opacity:.85;
  pointer-events:none;
}
.marketing-modal > *{ position:relative; z-index:1; }
.marketing-modal__close{
  position:absolute;
  top: clamp(10px, 1.6vw, 20px);
  right: clamp(10px, 1.6vw, 20px);
  width:44px;
  height:44px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.35);
  background:rgba(15,23,42,.6);
  color:#fff;
  font-size:1.4rem;
  cursor:pointer;
  display:grid;
  place-items:center;
  transition:transform .2s ease, background .2s ease;
  z-index:2;
}
.marketing-modal__close:hover{ transform:translateY(-1px); background:rgba(33,41,61,.85); }
.marketing-modal__tag{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 16px;
  border-radius:999px;
  background:rgba(56,189,248,.2);
  font-weight:600;
}
.marketing-modal__headline{
  margin:0;
  font-size: clamp(1.4rem, 1vw + 1.1rem, 1.9rem);
}
.marketing-modal__message{
  display:none; /* oculto ya no se utiliza */
}
.marketing-modal__benefits{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:10px;
}
.marketing-modal__benefits li{
  font-weight:600;
  color:rgba(226,232,240,.92);
}
.marketing-modal__actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
}
.marketing-modal__cta{
  border:0;
  border-radius:999px;
  padding:12px 28px;
  font-weight:700;
  font-size:1rem;
  cursor:pointer;
  background:var(--modal-cta);
  color:var(--modal-cta-text);
  box-shadow:0 18px 32px rgba(34,211,238,.32);
}
.marketing-modal__ghost{
  border-radius:999px;
  padding:12px 28px;
  border:1px solid rgba(255,255,255,.35);
  background:transparent;
  color:#fff;
  font-weight:600;
  cursor:pointer;
}

/* ===== Modal planes ===== */
.plan-modal{
  display:grid;
  gap:clamp(12px, 2.5vw, 20px);
  background: transparent;
  border:0;
  padding:0;
}
.plan-header{
  position:static;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding: clamp(6px, 1vw, 10px) 0;
  background: transparent;
  border:0;
  border-radius:0;
}
.plan-close{
  appearance:none;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.35);
  background:rgba(15,23,42,.65);
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  color:#fff;
  font-size: clamp(22px, 2vw + 12px, 30px);
  line-height:1;
  cursor:pointer;
  transition:background .2s ease;
}
.plan-close:hover{
  background:rgba(33,41,61,.85);
}
.plan-body{
  padding:0;
}

.plan-list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:10px;
}
.plan-item{
  position:relative;
  padding-left:0;
  font-size:.95rem;
  color:#f8fafc;
  line-height:1.5;
}
.plan-item::before{
  display:none;
}
@media (max-width:640px){.plan-item{font-size:.9rem;}}

/* ===== Modal registro ===== */
#modal-registro .u-modal__content{
  background: linear-gradient(135deg,#0c1228,#2b1c66);
  border:1px solid var(--modal-border);
}
.reg-modal__header,
.reg-stepper,
.reg-field,
.reg-summary,
.reg-card{
  backdrop-filter:blur(4px);
}

/* Logo + titular */
.brand-identity{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:clamp(6px, 1.5vw, 16px);
  margin:clamp(12px, 2vh, 28px) auto clamp(8px, 1.5vh, 18px);
  max-width:90vw;
  flex-wrap:nowrap;
}
.brand-logo{
  display:block;
  width:clamp(36px, 4.5vw, 58px);
  height:auto;
  object-fit:contain;
  filter:drop-shadow(0 6px 14px rgba(0,0,0,.35));
  user-select:none;
  pointer-events:none;
}
.brand-title{
  font-size:clamp(1.1rem, 2.8vw, 1.8rem);
  letter-spacing:.06em;
  margin:0;
  font-family:'Poppins',sans-serif;
  font-weight:700;
}
.brand-subtitle{
  margin:0 0 clamp(10px, 2vh, 18px);
  font-size:clamp(.78rem, 1.9vw, 1.1rem);
  letter-spacing:.04em;
  word-spacing:.08em;
}

/* ===== Modal base ===== */
.u-modal { position: fixed; inset: 0; z-index: 999; display: grid; place-items: center; }
.u-modal.hidden { display: none; }
.u-modal__overlay { position: absolute; inset: 0; backdrop-filter: blur(4px); background: rgba(0,0,0,.55); }
.u-modal__dialog { position: relative; width: min(1100px, 96vw); max-height: 90vh; }
.u-modal__content {
  position:relative;
  background: var(--modal-surface);
  border: 1px solid var(--modal-border);
  border-radius: 24px;
  box-shadow: 0 25px 60px rgba(4,7,25,.65);
  overflow: hidden;
  padding: clamp(22px, 3vw, 36px);
  backdrop-filter: blur(8px);
}

.u-modal:not(.hidden) .u-modal__overlay{
  animation:modalOverlayIn .18s ease-out both;
}

.u-modal:not(.hidden) .u-modal__dialog{
  animation:modalDialogIn .2s ease-out both;
}

.u-modal.is-closing{
  pointer-events:none;
}

.u-modal.is-closing .u-modal__overlay{
  animation:modalOverlayOut .16s ease-in both;
}

.u-modal.is-closing .u-modal__dialog{
  animation:modalDialogOut .16s ease-in both;
}

@keyframes modalOverlayIn{
  from{ opacity:0; }
  to{ opacity:1; }
}

@keyframes modalOverlayOut{
  from{ opacity:1; }
  to{ opacity:0; }
}

@keyframes modalDialogIn{
  from{ opacity:0; transform:translateY(10px) scale(.985); }
  to{ opacity:1; transform:translateY(0) scale(1); }
}

@keyframes modalDialogOut{
  from{ opacity:1; transform:translateY(0) scale(1); }
  to{ opacity:0; transform:translateY(8px) scale(.985); }
}

@media (prefers-reduced-motion: reduce){
  .u-modal:not(.hidden) .u-modal__overlay,
  .u-modal:not(.hidden) .u-modal__dialog,
  .u-modal.is-closing .u-modal__overlay,
  .u-modal.is-closing .u-modal__dialog{
    animation:none;
  }
}

#modal-cursos .u-modal__content{
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
}

.courses-modal{
  width: min(540px, 92vw);
  margin: 0 auto;
  padding: clamp(24px, 3vw, 36px);
  border-radius: 24px;
  background: linear-gradient(145deg, rgba(15,23,42,.92), rgba(49,46,129,.92));
  border: 1px solid rgba(255,255,255,.08);
  box-shadow: 0 18px 45px rgba(3,7,18,.55);
  display: flex;
  flex-direction: column;
  gap: clamp(18px, 2vw, 24px);
}
.courses-modal__header{
  display: grid;
  gap: 6px;
  position: relative;
}
.courses-modal__eyebrow{
  font-size: .8rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  opacity: .8;
  color: #c7d2fe;
}
.courses-modal__title{
  margin: 0;
  font-size: clamp(1.3rem, 1.2vw + 1rem, 1.6rem);
  color: #fff;
}
.courses-modal__close{
  position: absolute;
  top: 0;
  right: 0;
  appearance: none;
  border: 1px solid rgba(255,255,255,.25);
  background: rgba(15,23,42,.3);
  color: #fff;
  border-radius: 999px;
  width: 38px;
  height: 38px;
  font-size: 1.4rem;
  line-height: 1;
  cursor: pointer;
}
.courses-modal__body{
  color: #e2e8f0;
  font-size: clamp(1rem, 1vw + .8rem, 1.1rem);
  line-height: 1.6;
}
.courses-modal__footer{
  display: flex;
  justify-content: flex-end;
}
.courses-modal__dismiss{
  border: 0;
  border-radius: 999px;
  padding: 10px 20px;
  font-weight: 600;
  font-size: .95rem;
  background: linear-gradient(120deg,#6366f1,#8b5cf6);
  color: #fff;
  cursor: pointer;
  box-shadow: 0 10px 25px rgba(99,102,241,.35);
}

#modal-beneficios .u-modal__content{
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
}

.benefits-modal{
  width: min(520px, 92vw);
  margin: 0 auto;
  padding: clamp(26px, 3vw, 38px);
  border-radius: 24px;
  background: linear-gradient(150deg, rgba(20,24,47,.95), rgba(6,78,59,.92));
  border: 1px solid rgba(94,234,212,.25);
  box-shadow: 0 20px 55px rgba(2,6,23,.65);
  display: flex;
  flex-direction: column;
  gap: clamp(18px, 2vw, 26px);
}
.benefits-modal__header{
  display:flex;
  align-items:center;
  gap:10px;
  padding-right:48px;
  position: relative;
}
.benefits-modal__eyebrow{
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .22em;
  color: #5eead4;
  opacity: .85;
}
.benefits-modal__title{
  margin: 0;
  color: #f0fdfa;
  font-size: clamp(1.35rem, 1.2vw + 1rem, 1.7rem);
}
.benefits-modal__close{
  position: absolute;
  top: 0;
  right: 0;
  appearance: none;
  border: 1px solid rgba(94,234,212,.45);
  background: rgba(6,78,59,.35);
  color: #f0fdfa;
  border-radius: 999px;
  width: 38px;
  height: 38px;
  font-size: 1.4rem;
  cursor: pointer;
}
.benefits-modal__body{
  color: #ccfbf1;
  font-size: clamp(1rem, 1vw + .8rem, 1.15rem);
  line-height: 1.65;
}
.benefits-modal__footer{
  display: flex;
  justify-content: flex-end;
}
.benefits-modal__cta{
  border: 0;
  border-radius: 999px;
  padding: 12px 28px;
  font-weight: 600;
  font-size: .98rem;
  background: linear-gradient(120deg,#34d399,#10b981);
  color: #06281f;
  cursor: pointer;
  box-shadow: 0 15px 30px rgba(16,185,129,.35);
}

#modal-about .u-modal__content{
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
}

.about-modal{
  width: min(520px, 92vw);
  margin: 0 auto;
  padding: clamp(24px, 3vw, 36px);
  border-radius: 24px;
  background: linear-gradient(150deg, rgba(15,23,42,.95), rgba(59,130,246,.9));
  border: 1px solid rgba(147,197,253,.35);
  box-shadow: 0 22px 55px rgba(8,14,35,.6);
  display: flex;
  flex-direction: column;
  gap: clamp(16px, 1.8vw, 24px);
}
.about-modal__header{
  display: grid;
  gap: 6px;
  position: relative;
}
.about-modal__eyebrow{
  font-size: .78rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #bae6fd;
  opacity: .85;
}
.about-modal__title{
  margin: 0;
  color: #e0f2fe;
  font-size: clamp(1.35rem, 1.1vw + 1rem, 1.65rem);
}
.about-modal__close{
  position: absolute;
  top: 0;
  right: 0;
  border: 1px solid rgba(191,219,254,.5);
  background: rgba(30,64,175,.45);
  color: #e0f2fe;
  border-radius: 999px;
  width: 38px;
  height: 38px;
  font-size: 1.35rem;
  cursor: pointer;
}
.about-modal__body{
  color: #f0f9ff;
  font-size: clamp(1rem, 1vw + .8rem, 1.15rem);
  line-height: 1.65;
}
.about-modal__intro{
  margin-top: 12px;
  font-weight: 600;
  color: #bae6fd;
}
.about-modal__list{
  margin: 10px 0 0;
  padding-left: 20px;
  color: #e0f2fe;
  display: grid;
  gap: 6px;
  font-size: clamp(.95rem, 1vw + .7rem, 1.05rem);
}
.about-modal__list li::marker{
  color: #7dd3fc;
}

#modal-buscar .u-modal__content{
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
}

.search-modal{
  width: min(960px, 95vw);
  margin: 0 auto;
  padding: clamp(22px, 4vw, 40px);
  border-radius: 26px;
  background: linear-gradient(140deg, rgba(12, 19, 36, .94), rgba(15, 23, 42, .88));
  border:1px solid rgba(148,163,184,.24);
  box-shadow:0 24px 60px rgba(3,7,18,.55);
  display:flex;
  flex-direction:column;
  gap: clamp(18px, 2vw, 28px);
}
.search-modal__header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}
.search-modal__eyebrow{
  text-transform:uppercase;
  letter-spacing:.25em;
  font-size:.75rem;
  color:#bae6fd;
  margin-bottom:6px;
}
.search-modal__header h3{
  margin:0;
  font-size:clamp(1.3rem, 1.2vw + 1rem, 1.7rem);
  color:#f8fafc;
}
.search-modal__hint{
  margin:.35rem 0 0;
  color:rgba(226,232,240,.8);
  font-size:.95rem;
}
.search-modal__filter{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 14px;
  border-radius:999px;
  border:1px solid rgba(148,163,184,.3);
  background:rgba(15,23,42,.6);
}
.search-modal__filter i{
  font-size:1.2rem;
  color:#94a3b8;
}
.search-modal__input{
  flex:1;
  border:0;
  background:transparent;
  color:#f8fafc;
  font-size:1rem;
}
.search-modal__input:focus{
  outline:none;
}
.search-modal__close{
  appearance:none;
  border:1px solid rgba(148,163,184,.35);
  background:rgba(15,23,42,.4);
  border-radius:999px;
  width:42px;
  height:42px;
  font-size:1.6rem;
  color:#f8fafc;
  cursor:pointer;
}
.search-modal__empty{
  padding:32px;
  border-radius:18px;
  background:rgba(15,23,42,.6);
  border:1px solid rgba(148,163,184,.2);
  text-align:center;
  color:#e2e8f0;
}
.search-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:clamp(16px, 2vw, 24px);
}
.search-card{
  border-radius:22px;
  border:1px solid rgba(59,130,246,.25);
  background:rgba(11,16,30,.85);
  padding:18px;
  transition:transform .2s ease, border-color .2s ease;
}
.search-card[hidden]{
  display:none;
}
.search-card:hover{
  transform:translateY(-4px);
  border-color:#38bdf8;
}
.search-card__link{
  text-decoration:none;
  color:inherit;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:14px;
}
.search-card__avatar{
  width:90px;
  height:90px;
  border-radius:50%;
  background:radial-gradient(circle at top, rgba(59,130,246,.9), rgba(59,130,246,.4));
  display:grid;
  place-items:center;
  overflow:hidden;
  position:relative;
  font-weight:700;
  font-size:1.4rem;
  color:#e0f2fe;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.search-card__avatar-img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}
.search-card__avatar.has-logo .search-card__initials{
  display:none;
}
.search-card__avatar.has-fallback-logo{
  background:transparent;
  border-radius:0;
  overflow:visible;
}
.search-card__avatar.has-fallback-logo .search-card__avatar-img{
  object-fit:cover;
  transform:scale(1.12);
}
.search-card__avatar.has-custom-logo{
  border-radius:50%;
}
.search-card__initials{
  grid-area:1 / 1;
  transition:opacity .2s ease;
}
.search-card__meta h4{
  margin:0 0 6px;
  font-size:1rem;
}
.search-card__meta p{
  margin:0;
  font-size:.9rem;
  color:rgba(226,232,240,.8);
}

#modal-rubros .u-modal__content{
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
}

/* Evitar scroll del fondo cuando el modal estÃ¡ abierto */
body.modal-open { overflow: hidden; }

/* ===== Contenido planes.php ===== */
.plan-modal{
  display:grid;
  grid-template-rows:auto 1fr;
  max-height:min(82vh, 720px);
}
.plan-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding: clamp(12px, 2vw, 18px);
  background: transparent;
  border:0;
  position:sticky;
  top:0;
  z-index:2;
}
.plan-header h3{
  margin:0;
  font-size: clamp(1rem, 1.4vw + .6rem, 1.2rem);
  letter-spacing:.4px;
}
.plan-body{
  padding: clamp(18px, 3vw, 30px) clamp(20px, 3.2vw, 38px);
  display:flex;
  justify-content:center;
  align-items:center;
}
.plan-empty{
  margin:0;
  color:#ddd;
  font-size: clamp(.9rem, 1vw + .5rem, 1.05rem);
  text-align:center;
}

.plan-list{list-style:none;margin:0;padding:0;display:grid;gap:10px;}
.plan-item{display:flex;align-items:flex-start;gap:10px;font-size:.95rem;color:#f8fafc;line-height:1.5;}
.plan-item::before{display:none;}
@media (max-width:640px){.plan-item{font-size:.9rem;}}
plan-list{
    gap: clamp(14px, 3vw, 20px);
  }
  .plan-item{
    border-radius:14px;
  }


/* ===== Contenido categorias.php ===== */
.cat-header{
  display:flex; align-items:center; justify-content:space-between;
  padding: clamp(10px, 1.2vw, 16px) clamp(12px, 1.6vw, 20px);
  position: sticky; top: 0; z-index: 2;
  background: transparent;
  border-bottom: none;
}
.cat-header h3{ margin:0; font-size: clamp(1rem, 1.2vw + .6rem, 1.1rem); letter-spacing:.3px; }
.cat-close{ appearance:none; border:0; background:transparent; color:#fff; font-size: clamp(22px, 1.6vw + 12px, 28px); line-height:1; cursor:pointer; }
.cat-empty{ padding:28px 22px; color:#ddd; }

.cat-modal{
  display:grid;
  grid-template-rows:auto 1fr;
  max-height:min(82vh, 820px);
  width:min(96vw, 1040px);
  margin:0 auto;
}

/* ===== Grid ===== */
.cat-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(min(280px, 100%), 1fr));
  gap: clamp(12px, 1.2vw, 20px);
  padding: clamp(12px, 1.4vw, 18px);
  overflow-y:auto; min-height:0; scroll-behavior:smooth;
}
.cat-grid::-webkit-scrollbar{ width:10px; }
.cat-grid::-webkit-scrollbar-track{ background:transparent; }
.cat-grid::-webkit-scrollbar-thumb{ background:rgba(255,255,255,.15); border-radius:999px; }
.cat-grid{ scrollbar-width:thin; scrollbar-color:rgba(255,255,255,.15) transparent; }

/* ===== Card ===== */
.cat-card{
  position: relative;
  background: rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.06);
  border-radius:14px;
  overflow:hidden;
  isolation:isolate;
}

/* Imagen + capa oscura */
.cat-imgfill{
  position: relative;
  width: 100%;
  height: 100%;
  min-height: clamp(160px, 26vh, 260px);
  display: block;
  border-radius: inherit;
  overflow: hidden;
}
.cat-imgfill img{
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; display: block; z-index: 0;
}
.cat-imgfill::after{
  content:"";
  position:absolute; inset:0;
  border-radius: inherit;
  background:
    linear-gradient(to top,
      rgba(0,0,0,.80) 16%,
      rgba(0,0,0,.50) 55%,
      rgba(0,0,0,.28) 100%
    ),
    rgba(0,0,0,.18);
  z-index: 1;
  pointer-events:none;
}

/* ========= Overlay general ========= */
.cat-overlay{
  position:absolute; inset:0;
  display:flex;
  flex-direction: column;
  justify-content:flex-start;
  align-items:flex-start;
  gap:12px;
  padding: 16px;
  color:#fff;
  z-index: 2;
}

/* Bloque de texto (tÃ­tulo + descripciÃ³n) */
.cat-overlay__text{
  text-align:left;
}
.cat-ttl{ margin:0 0 4px; font-size: clamp(.9rem, 1.1vw + .55rem, 1.05rem); font-weight:800; text-shadow:0 1px 2px rgba(0,0,0,.6); }
.cat-desc.small{ margin:0; font-size: clamp(.78rem, .9vw + .45rem, .95rem); opacity:.9; }

/* LÃ­nea del chip */
.cat-planline{
  display:flex;
  justify-content:flex-start;
  margin-bottom: 4px;
}
.pill{
  display:inline-block;
  padding: clamp(4px, .6vw, 6px) clamp(8px, .9vw, 10px);
  border-radius:999px;
  border:1px solid rgba(255,255,255,.22);
  background: rgba(255,255,255,.10);
  font-size: clamp(.72rem, .9vw + .4rem, .85rem);
  color:#f3f3f3;
  white-space: nowrap;
}

  /* Boton alineado a la izquierda */
.cat-overlay__cta{
  display:flex;
  justify-content:flex-start;
  align-items:flex-start;
  width:auto;
  margin-top: clamp(4px, 1.2vh, 10px);
  align-self:flex-start;
}
.btn-contratar{
  appearance:none; border:0; cursor:pointer;
  border-radius:999px;
  padding: clamp(6px, .85vw, 9px) clamp(12px, 1vw, 18px);
  font-weight:700;
  font-size: clamp(.78rem, .8vw + .45rem, .9rem);
  background:#10b981; color:#0b1d16;
  box-shadow:0 4px 14px rgba(16,185,129,.28);
  min-width: max-content;
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.btn-contratar:hover{ transform:translateY(-1px); filter:brightness(1.05); }
.btn-contratar:active{ transform:translateY(0); filter:brightness(.98); }

/* ===== Responsive ===== */
@media (max-width:640px){
  .cat-overlay{
    padding: clamp(12px, 2vw, 16px);
    text-align:left;
    gap:10px;
  }
  .cat-overlay__text{
    max-width: 100%;
  }
  .cat-overlay__cta{
    width:auto;
    margin-top:6px;
    align-self:flex-end;
  }
  .btn-contratar{
    width:auto;
    min-width: clamp(150px, 42vw, 220px);
    text-align:center;
  }
}

@media (max-width:480px){
  .cat-grid{
    grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
    padding:12px 10px;
    gap:14px;
  }
  .cat-card{
    border-radius:12px;
  }
  .cat-imgfill{
    min-height:220px;
  }
  .cat-overlay{
    flex-direction:column;
    align-items:flex-start;
    gap:10px;
  }
  .cat-overlay__text{
    max-width:100%;
  }
  .cat-planline{
    justify-content:flex-start;
    margin-bottom:4px;
  }
  .cat-overlay__cta{
    align-items:flex-start;
    width:auto;
    margin-top:6px;
    align-self:flex-end;
  }
  .btn-contratar{
    width:auto;
    min-width: clamp(140px, 60vw, 200px);
    text-align:center;
  }
}

/* Desktop (>=641px): layout left aligned */
@media (min-width:641px){
  .cat-overlay{
    justify-content:flex-start;
    align-items:flex-start;
    text-align:left;
    padding: clamp(14px, 2vh, 20px);
    gap:16px;
  }

  .cat-overlay__text{
    max-width: 88%;
    margin: 0;
  }

  /* Chip alineado con el texto */
  .cat-planline{
    margin-top: 4px;
    margin-bottom: 12px;
    justify-content:flex-start;
  }

  /* Boton alineado a la izquierda */
  .cat-overlay__cta{
    justify-content:flex-start;
    margin-top: clamp(6px, 1.6vh, 14px);
  }

  .btn-contratar{
    width:auto;
  }
}

/* Hover extra (opcional) */
@media (hover:hover){
  .cat-card:hover .cat-imgfill::after{
    background:
      linear-gradient(to top,
        rgba(0,0,0,.86) 16%,
        rgba(0,0,0,.60) 55%,
        rgba(0,0,0,.42) 100%
      ),
      rgba(0,0,0,.20);
  }
}
/* === Modal registro === */
#modal-registro .u-modal__dialog{
  width: min(720px, 94vw);
  height: auto;
  max-height: calc(100dvh - clamp(18px, 5dvh, 56px));
  display: flex;
  flex-direction: column;
}
#modal-registro .u-modal__content{
  background: rgba(15, 23, 42, 0.95);
  color: #e2e8f0;
  border-radius: 20px;
  padding: clamp(20px, 3vw, 28px);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: clamp(18px, 2vw, 28px);
  box-shadow: 0 24px 60px rgba(2, 6, 23, 0.45);
  max-height: inherit;
  min-height: 0;
  flex: 1 1 auto;
}
#modal-registro .reg-modal {
  position: relative;
}
.reg-progress {
  position: absolute;
  inset: clamp(10px, 1.5vw, 20px);
  background: rgba(15, 23, 42, 0.92);
  border: 1px solid rgba(148, 163, 184, 0.2);
  border-radius: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 1.5rem;
  padding: clamp(24px, 3vw, 40px);
  backdrop-filter: blur(6px);
  box-shadow: 0 20px 40px rgba(2, 6, 23, 0.45);
  z-index: 12;
}
.reg-progress.hidden {
  display: none;
}
.reg-progress__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  max-width: 28rem;
}
.reg-progress__bar{
  width: min(320px, 60vw);
  height: 10px;
  border-radius: 999px;
  background: rgba(148,163,184,0.25);
  overflow: hidden;
  position: relative;
}
.reg-progress__bar-fill{
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg,#06b6d4 0%, #3b82f6 40%, #8b5cf6 100%);
  transform: translateX(-100%);
  animation: reg-progress-bar 1.5s ease-in-out infinite;
  animation-play-state: paused;
}
.reg-progress__bar-fill.is-animating{
  animation-play-state: running;
}
.reg-progress__message {
  font-size: clamp(1rem, 0.9rem + 0.4vw, 1.1rem);
  font-weight: 600;
  color: #e2e8f0;
  line-height: 1.4;
}
.reg-modal--loading .reg-close,
.reg-modal--loading [data-step-prev],
.reg-modal--loading [data-step-next],
.reg-modal--loading [data-reg-submit] {
  pointer-events: none;
  opacity: 0.5;
}

@keyframes reg-progress-bar {
  0% { transform: translateX(-100%); }
  50% { transform: translateX(-10%); }
  100% { transform: translateX(100%); }
}
.reg-modal__header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  flex:0 0 auto;
}
.reg-modal__header h3{
  margin-top:6px;
  font-size: clamp(1.08rem, 1.2vw + .8rem, 1.5rem);
  color:#f8fafc;
}
.reg-modal__header .reg-subtitle{
  margin-top:6px;
  font-size:.92rem;
  color: var(--cliseek-text);
}
.reg-plan{
  margin-top:6px;
  font-size:.85rem;
  color: rgba(94, 234, 212, .85);
}
.reg-plan-note{
  margin-top:4px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:.82rem;
  color: rgba(226, 232, 240, 0.9);
  font-weight:500;
}
.reg-plan-note .bx{
  font-size:1rem;
  color:#22d3ee;
}
.reg-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:6px 14px;
  border-radius:999px;
  background: rgba(16,185,129,.18);
  color:#6ee7b7;
  font-weight:600;
  letter-spacing:.6px;
  text-transform:uppercase;
  font-size:.75rem;
}
.reg-close{
  background: transparent;
  border:0;
  color:#f8fafc;
  font-size:1.6rem;
  line-height:1;
  cursor:pointer;
  transition: transform .15s ease, color .15s ease;
}
.reg-close:hover{
  color:#fda4af;
  transform: scale(1.05);
}
.reg-stepper{
  list-style:none;
  display:flex;
  justify-content:space-between;
  margin:0;
  padding:0;
  gap: clamp(8px, 1vw, 16px);
  position:relative;
  flex:0 0 auto;
}
.reg-stepper li{
  flex:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  font-size:.75rem;
  color:#94a3b8;
  text-transform:uppercase;
  letter-spacing:.5px;
  position:relative;
}
.reg-stepper li::after{
  content:'';
  position:absolute;
  top:14px;
  left:calc(50% + 18px);
  width:calc(100% - 36px);
  height:2px;
  background: rgba(148,163,184,.25);
}
.reg-stepper li:last-child::after{ display:none; }
.reg-stepper li span{
  width:32px;
  height:32px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background: rgba(148,163,184,.25);
  color:#94a3b8;
  font-weight:600;
}
.reg-stepper li.active span{
  background:#38bdf8;
  color:#0f172a;
  box-shadow:0 0 0 4px rgba(56,189,248,.18);
}
.reg-stepper li.completed span{
  background:#10b981;
  color:#022c22;
}
.reg-form{
  display:flex;
  flex-direction:column;
  gap:clamp(12px, 2dvh, 20px);
  flex:1 1 auto;
  min-height:0;
}
.reg-step{
  display:block;
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  padding-right:4px;
  overscroll-behavior:contain;
}
.reg-step[hidden]{ display:none !important; }
.reg-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:16px;
  margin-top:16px;
}
.reg-field{
  display:flex;
  flex-direction:column;
  gap:6px;
  align-items:flex-start;
  text-align:left;
  font-size:.9rem;
  color:#cbd5f5;
}
.reg-field span{
  font-weight:600;
  font-size:.83rem;
  color:#e2e8f0;
}
.reg-field small{
  font-weight:400;
  color: rgba(203, 213, 225, 0.75);
}
.reg-field input,
.reg-field select{
  width:100%;
  border-radius:12px;
  border:1px solid rgba(148,163,184,.28);
  background: rgba(15,23,42,.8);
  color:#f8fafc;
  padding:12px 14px;
  font-size:.92rem;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.reg-phone-field{
  display:flex;
  gap:8px;
  align-items:center;
}
.reg-phone-field select{
  min-width:120px;
  flex:0 0 38%;
  max-width:160px;
}
.reg-phone-field input{
  flex:1;
}
.reg-field [data-reg-phone-hint]{
  display:block;
  margin-top:6px;
  font-size:.78rem;
  color:rgba(226,232,240,.7);
}
.reg-field input:focus,
.reg-field select:focus{
  outline:none;
  border-color:#38bdf8;
  box-shadow:0 0 0 3px rgba(56,189,248,.25);
}
.reg-field--file input{
  padding:10px;
  background: rgba(15,23,42,.6);
}

#modal-registro .admin-form__grid{
  display:grid;
  gap:clamp(12px, 1vw + 6px, 18px);
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
}
#modal-registro .admin-form__field{
  display:flex;
  flex-direction:column;
  gap:6px;
  text-align:left;
}
#modal-registro .admin-form__label{
  font-weight:600;
  font-size:.85rem;
  letter-spacing:.01em;
  color:#e2e8f0;
}
#modal-registro .admin-form__field input,
#modal-registro .admin-form__field select{
  width:100%;
  border-radius:12px;
  border:1px solid rgba(148,163,184,.28);
  background: rgba(15,23,42,.82);
  color:#f8fafc;
  padding:.65rem .9rem;
  font-size:1rem;
  transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
#modal-registro .admin-form__field input:focus,
#modal-registro .admin-form__field select:focus{
  outline:none;
  border-color:#38bdf8;
  box-shadow:0 0 0 3px rgba(56,189,248,.25);
  transform:translateY(-1px);
}
#modal-registro .admin-form__hint{
  font-size:.82rem;
  color:rgba(226,232,240,.7);
}
#modal-registro .admin-form__error{
  margin-top:.5rem;
  color:#fca5a5;
  font-weight:600;
}

.reg-collection-card{
  margin-top:1rem;
  padding:clamp(18px, 2vw, 28px);
  border-radius:22px;
  background:rgba(8,13,28,.9);
  border:1px solid rgba(148,163,184,.2);
  box-shadow:0 25px 60px rgba(2,6,23,.55);
  display:grid;
  gap:clamp(18px, 1.5vw, 26px);
}
.reg-service-form{
  display:grid;
  gap:clamp(16px, 1.4vw, 24px);
}
.reg-service-entry{
  display:flex;
  justify-content:center;
}
.reg-service-entry .reg-btn{
  min-width:min(100%, 260px);
}
.reg-service-modal[hidden]{
  display:none !important;
}
.reg-service-modal{
  position:absolute;
  inset:0;
  z-index:12;
  display:grid;
  place-items:center;
  padding:clamp(16px, 3vw, 28px);
}
.reg-service-modal__overlay{
  position:absolute;
  inset:0;
  background:rgba(15,23,42,.5);
  backdrop-filter:blur(3px);
}
.reg-service-modal__panel{
  position:relative;
  z-index:1;
  width:min(620px, 96%);
  max-height:min(78vh, 680px);
  overflow:auto;
  border-radius:18px;
  border:1px solid rgba(148,163,184,.28);
  background:rgba(8,13,28,.96);
  box-shadow:0 30px 70px rgba(2,6,23,.55);
  padding:clamp(18px, 2vw, 26px);
}
.reg-service-modal__header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:18px;
}
.reg-service-modal__header h5{
  margin:0;
  color:#f8fafc;
  font-size:1.05rem;
}
.reg-collection-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  justify-content:flex-end;
}
.reg-collection{
  display:grid;
  gap:12px;
}
.reg-collection__item{
  border:1px solid rgba(148,163,184,.25);
  border-radius:18px;
  padding:14px 16px;
  background:rgba(9,14,27,.85);
  display:grid;
  gap:10px;
}
.reg-collection__item header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.reg-collection__title{
  margin:0;
  font-size:1rem;
  color:#f8fafc;
}
.reg-collection__remove{
  border:0;
  border-radius:999px;
  padding:6px 16px;
  font-weight:600;
  font-size:.85rem;
  background:rgba(248,113,113,.15);
  color:#fecaca;
  cursor:pointer;
  transition:background .2s ease, transform .2s ease;
}
.reg-collection__remove:hover{
  background:#ef4444;
  color:#fff;
  transform:translateY(-1px);
}
.reg-collection__meta{
  margin:0;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  font-size:.85rem;
}
.reg-collection__meta span{
  padding:4px 12px;
  border-radius:999px;
  background:rgba(59,130,246,.18);
  color:#bfdbfe;
  border:1px solid rgba(59,130,246,.35);
}

#modal-registro input[type="file"]{
  border-radius:12px;
  border:1px solid rgba(148,163,184,.28);
  background:rgba(15,23,42,.82);
  padding:.35rem;
  color:#e2e8f0;
}
#modal-registro input[type="file"]::file-selector-button,
#modal-registro input[type="file"]::-webkit-file-upload-button{
  border:0;
  margin-right:.9rem;
  border-radius:10px;
  padding:.45rem 1.1rem;
  background:linear-gradient(135deg,#06b6d4,#3b82f6);
  color:#fff;
  font-weight:600;
  cursor:pointer;
  transition:transform .2s ease, box-shadow .2s ease;
}
#modal-registro input[type="file"]::file-selector-button:hover,
#modal-registro input[type="file"]::-webkit-file-upload-button:hover{
  transform:translateY(-1px);
  box-shadow:0 10px 20px rgba(6,182,212,.35);
}
.reg-checkbox{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin-top:18px;
  font-size:.85rem;
  color:#e2e8f0;
}
.reg-checkbox input{
  margin-top:3px;
  width:18px;
  height:18px;
}
.reg-summary{
  background: rgba(15,118,110,.14);
  border:1px solid rgba(45,212,191,.34);
  border-radius:16px;
  padding:16px;
  text-align:left;
  color:#ccfbf1;
  margin-bottom:18px;
}
.reg-summary__empty{
  margin:0;
  font-size:.9rem;
  color:rgba(226,232,240,.82);
}
.reg-summary__list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:10px;
}
.reg-summary__list li{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  font-size:.9rem;
}
.reg-summary__list span{
  color:rgba(204,251,241,.82);
  font-weight:500;
}
.reg-summary__list strong{
  color:#f8fafc;
  font-weight:600;
}
.reg-payment > p{
  margin-bottom:12px;
  font-size:.9rem;
  color:rgba(226,232,240,.82);
}
.reg-card{
  margin-top:16px;
  padding:16px;
  border-radius:14px;
  border:1px solid rgba(148,163,184,.3);
  background: rgba(15,23,42,.65);
}
.reg-card__info{
  margin:0 0 12px 0;
  font-size:.8rem;
  color:rgba(226,232,240,.7);
}
.reg-card__grid{
  display:grid;
  gap:14px;
  grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
}
.reg-field--full{
  grid-column:1 / -1;
}
.reg-field--compact span{
  font-size:.78rem;
}
.reg-card__grid select:empty{
  color:rgba(148,163,184,.7);
}
.reg-status{
  margin-top:16px;
  padding:12px 14px;
  border-radius:12px;
  font-size:.85rem;
  font-weight:500;
  background: rgba(148,163,184,.12);
  color:#e2e8f0;
}
.reg-status--info{ background: rgba(56,189,248,.18); color:#e0f2fe; }
.reg-status--error{ background: rgba(248,113,113,.22); color:#fee2e2; }
.reg-status--success{ background: rgba(16,185,129,.2); color:#d1fae5; }
.reg-error{
  font-size:.85rem;
  color:#fecaca;
  text-align:left;
  margin-bottom:-6px;
}
.reg-footer{
  flex:0 0 auto;
  display:grid;
  gap:10px;
  margin-top:auto;
  padding-top:clamp(8px, 1.5dvh, 14px);
  background:linear-gradient(180deg, rgba(15,23,42,0), rgba(15,23,42,.95) 34%);
}
.reg-actions{
  display:flex;
  justify-content:flex-end;
  gap:12px;
  flex-wrap:wrap;
  margin-top:0;
}
.reg-btn{
  border:0;
  border-radius:12px;
  padding:12px 20px;
  font-weight:600;
  font-size:.9rem;
  cursor:pointer;
  transition:transform .15s ease, filter .15s ease, box-shadow .15s ease;
}
.reg-btn[disabled]{
  opacity:.6;
  cursor:not-allowed;
}
.reg-btn--ghost{
  background: transparent;
  color:#e2e8f0;
  border:1px solid rgba(148,163,184,.4);
}
.reg-btn--primary{
  background: linear-gradient(135deg,#38bdf8,#22d3ee);
  color:#041724;
  box-shadow:0 10px 22px rgba(34,211,238,.28);
}
.reg-btn--accent{
  background: linear-gradient(135deg,#10b981,#0ea5e9);
  color:#041724;
  box-shadow:0 12px 24px rgba(16,185,129,.28);
}
.reg-btn:hover{
  transform:translateY(-1px);
  filter:brightness(1.05);
}
.reg-btn:active{
  transform:translateY(0);
  filter:brightness(.97);
}
/* P�gina loader */
@media (max-height: 760px){
  #modal-registro .u-modal__dialog{
    max-height:calc(100dvh - 16px);
  }

  #modal-registro .u-modal__content{
    gap:clamp(10px, 1.7dvh, 16px);
    padding:clamp(14px, 2.6dvh, 22px);
  }

  #modal-registro .reg-modal__header h3{
    margin-top:0;
    font-size:clamp(1rem, 2.7dvh, 1.25rem);
    line-height:1.2;
  }

  #modal-registro .reg-subtitle,
  #modal-registro .reg-plan{
    margin-top:4px;
    font-size:.78rem;
    line-height:1.25;
  }

  #modal-registro .reg-stepper li span{
    width:28px;
    height:28px;
    font-size:.78rem;
  }

  #modal-registro .reg-stepper li small{
    font-size:.64rem;
  }

  #modal-registro .reg-grid,
  #modal-registro .admin-form__grid{
    gap:10px 14px;
    margin-top:10px;
  }

  #modal-registro .reg-field{
    gap:4px;
  }

  #modal-registro .reg-field input,
  #modal-registro .reg-field select,
  #modal-registro .admin-form__field input,
  #modal-registro .admin-form__field select,
  #modal-registro .reg-phone-field input,
  #modal-registro .reg-phone-field select,
  #modal-registro input[type="file"]{
    min-height:40px;
    padding:9px 12px;
  }

  #modal-registro .reg-actions .reg-btn{
    min-height:40px;
    padding:9px 16px;
  }
}

#page-loader{
  position:fixed;
  inset:0;
  z-index:9999;
  display:flex;
  align-items:center;
  justify-content:center;
  background: radial-gradient(circle at top, rgba(14,165,233,.25), transparent 45%), #030814;
  backdrop-filter: blur(6px);
  transition: opacity .6s ease, visibility .6s ease;
}
#page-loader.page-loader--hidden{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.page-loader__glow{
  position:absolute;
  width:320px;
  height:320px;
  border-radius:50%;
  background: radial-gradient(circle, rgba(16,185,129,.35), transparent 70%);
  animation:pulseGlow 3s ease-in-out infinite;
}
.page-loader__card{
  position:relative;
  padding:32px;
  border-radius:28px;
  background: rgba(15,23,42,.9);
  border:1px solid rgba(94,234,212,.25);
  box-shadow:0 25px 55px rgba(2,6,23,.7);
  max-width:320px;
  width:90%;
  text-align:center;
  color:#e2e8f0;
  display:grid;
  gap:16px;
}
.page-loader__logo{
  display:block;
  width:82px;
  height:82px;
  margin:0 auto;
  object-fit:contain;
  filter:drop-shadow(0 8px 16px rgba(56,189,248,.28));
}
.page-loader__title{
  font-size:1.1rem;
  font-weight:600;
}
.page-loader__hint{
  font-size:.9rem;
  color:rgba(226,232,240,.8);
  margin:0;
}
.page-loader__progress{
  width:100%;
  height:8px;
  border-radius:999px;
  background: rgba(148,163,184,.2);
  overflow:hidden;
}
.page-loader__progress-bar{
  width:30%;
  height:100%;
  border-radius:999px;
  background: linear-gradient(90deg,#0ea5e9,#38bdf8,#a855f7);
  animation:progressRun 1.6s ease-in-out infinite;
}
@keyframes progressRun{
  0%{ transform:translateX(-120%); }
  50%{ transform:translateX(20%); }
  100%{ transform:translateX(220%); }
}
@keyframes pulseGlow{
  0%,100%{ transform:scale(1); opacity:.45; }
  50%{ transform:scale(1.2); opacity:.2; }
}
@media (max-width: 768px){
  #modal-registro .reg-modal{
    padding:clamp(16px,4vw,24px);
    border-radius:18px;
    max-height:calc(100vh - 24px);
  }
  .reg-grid{
    grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
    gap:12px;
  }
  .reg-field{
    font-size:.85rem;
    gap:4px;
  }
  .reg-field span{
    font-size:.78rem;
  }
  .reg-field input,
  .reg-field select{
    padding:10px 12px;
    font-size:.88rem;
  }
  .reg-phone-field select{
    flex:0 0 34%;
    max-width:140px;
  }
  .reg-actions{
    justify-content:center;
    gap:10px;
  }
  .reg-btn{
    flex:1 1 auto;
    min-width:140px;
  }
}
@media (max-width: 520px){
  .reg-modal__header{ flex-direction:column; align-items:flex-start; }
  .reg-actions{ justify-content:center; }
  .reg-stepper{
    flex-wrap:wrap;
    justify-content:center;
    gap:12px 18px;
  }
  .reg-stepper li{
    flex:0 1 45%;
    flex-direction:column;
    align-items:center;
    text-align:center;
  }
  .reg-stepper li::after{ display:none; }
  .reg-grid{
    grid-template-columns:1fr;
  }
  .reg-field{
    width:100%;
  }
  .reg-phone-field{
    flex-direction:column;
    align-items:stretch;
  }
  .reg-phone-field select,
  .reg-phone-field input{
    max-width:none;
    flex:1 1 auto;
    width:100%;
  }
  .reg-actions{
    flex-direction:row;
    flex-wrap:wrap;
    gap:10px;
  }
  .reg-actions [data-step-prev],
  .reg-actions [data-step-next]{
    flex:1 1 calc(50% - 10px);
    min-width:140px;
  }
}

/* Registro - horarios */
.reg-hours {
  display: grid;
  gap: 1.6rem;
  margin-bottom: 1.4rem;
}

.reg-hours__group {
  display: grid;
  gap: 1rem;
  padding: 1.2rem;
  border-radius: 1rem;
  border: 1px solid rgba(148, 163, 184, 0.18);
  background: rgba(12, 18, 28, 0.68);
}

.reg-hours__title {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
  color: #e2e8f0;
}

.reg-hours__grid {
  display: grid;
  gap: 1rem;
}

.reg-hours__grid--tz {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.reg-hours__hint,
.reg-hours-hint {
  margin: 0;
  font-size: .85rem;
  color: rgba(226, 232, 240, 0.7);
}

.reg-hours-days {
  display: grid;
  gap: 1rem;
  max-height: clamp(320px, 48vh, 520px);
  overflow-y: auto;
  padding-right: .5rem;
}
.reg-hours-days--hidden{
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  clip-path:inset(50%);
  white-space:nowrap;
}
.reg-hours-quick{
  display:grid;
  gap:1rem;
}
.reg-hours-quick__days{
  display:flex;
  flex-wrap:wrap;
  gap:.6rem;
}
.reg-hours-day-chip{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  border:1px solid rgba(148,163,184,.28);
  border-radius:8px;
  padding:.65rem .9rem;
  background:rgba(15,23,42,.68);
  color:#e2e8f0;
  font:inherit;
  font-weight:700;
  cursor:pointer;
}
.reg-hours-day-chip__box{
  width:16px;
  height:16px;
  display:grid;
  place-items:center;
  border:1px solid currentColor;
  border-radius:4px;
  background:transparent;
  flex:0 0 auto;
}
.reg-hours-day-chip.is-selected .reg-hours-day-chip__box::before{
  content:"";
  width:8px;
  height:5px;
  border-left:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:rotate(-45deg) translateY(-1px);
}
.reg-hours-day-chip.is-selected{
  border-color:#38bdf8;
  background:rgba(56,189,248,.18);
  color:#f8fafc;
}
.reg-hours-quick__row{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
  gap:.85rem;
}
.reg-hours-quick__row label{
  display:grid;
  gap:.35rem;
  color:rgba(226,232,240,.72);
  font-size:.85rem;
}
.reg-hours-quick__row input[type="time"]{
  border:1px solid rgba(148,163,184,.25);
  border-radius:.7rem;
  padding:.6rem .7rem;
  background:rgba(15,23,42,.75);
  color:#f8fafc;
}
.reg-hours-quick__apply{
  justify-self:start;
  min-width:220px;
}
.reg-hours-summary{
  display:grid;
  gap:.7rem;
}
.reg-hours-summary__empty{
  margin:0;
  color:rgba(226,232,240,.75);
  font-size:.9rem;
}
.reg-hours-summary__list{
  display:grid;
  gap:.55rem;
}
.reg-hours-summary__item{
  display:flex;
  justify-content:space-between;
  gap:.75rem;
  padding:.75rem .85rem;
  border:1px solid rgba(148,163,184,.18);
  border-radius:.8rem;
  background:rgba(9,13,22,.62);
}
.reg-hours-summary__item strong{
  color:#f8fafc;
}
.reg-hours-summary__item span{
  color:rgba(226,232,240,.78);
  text-align:right;
}

.reg-hours-day {
  border: 1px solid rgba(148, 163, 184, 0.2);
  border-radius: 1rem;
  padding: 1rem;
  background: rgba(9, 13, 22, 0.78);
  display: grid;
  gap: .8rem;
}

.reg-hours-day legend {
  font-weight: 700;
  color: #f8fafc;
  padding: 0 .2rem;
}

.reg-hours-toggle {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-weight: 600;
  color: #e2e8f0;
}

.reg-hours-slots {
  display: grid;
  gap: .75rem;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.reg-hours-slots label {
  display: grid;
  gap: .35rem;
  font-size: .85rem;
  color: rgba(226, 232, 240, 0.72);
}

.reg-hours-slots input[type="time"],
.reg-hours-holidays__input input[type="date"] {
  border: 1px solid rgba(148, 163, 184, 0.25);
  border-radius: .7rem;
  padding: .45rem .6rem;
  background: rgba(15, 23, 42, 0.75);
  color: #f8fafc;
}

.reg-hours-slots input[type="time"]:disabled {
  opacity: .45;
}

.reg-hours-break {
  display: grid;
  gap: .6rem;
  padding: .75rem .9rem;
  border-radius: .9rem;
  background: rgba(7, 12, 20, 0.8);
}

.reg-hours-holidays {
  display: grid;
  gap: .85rem;
}

.reg-hours-holidays__input {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  align-items: center;
}

.reg-hours-holidays__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: .55rem;
}

.reg-hours-holidays__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: rgba(11, 17, 26, 0.85);
  border: 1px solid rgba(148, 163, 184, 0.22);
  border-radius: .8rem;
  padding: .55rem .75rem;
  color: #e2e8f0;
}

.reg-hours-holidays__item button {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  border: 1px solid rgba(239, 68, 68, 0.45);
  background: rgba(239, 68, 68, 0.2);
  color: #fee2e2;
  font-size: 1.05rem;
  cursor: pointer;
  transition: transform .2s ease, background .2s ease, border-color .2s ease;
}

.reg-hours-holidays__item button:hover {
  transform: translateY(-1px);
  background: #ef4444;
  border-color: #ef4444;
  color: #fff;
}

.reg-btn--sm {
  padding: .4rem .9rem;
  font-size: .8rem;
}

@media (max-width: 640px) {
  .reg-hours__grid--tz {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* ===== Agenduy publico - modo claro Cliseek ===== */
:root{
  --cliseek-bg:#f8fbff;
  --cliseek-bg-blue:#d9efff;
  --cliseek-surface:#ffffff;
  --cliseek-surface-soft:#f4f8fc;
  --cliseek-card:#eef8ff;
  --cliseek-card-2:#e8f4fb;
  --cliseek-border:#dce7f2;
  --cliseek-text:#101828;
  --cliseek-muted:#66758a;
  --cliseek-primary:#2d7ed4;
  --cliseek-primary-2:#36b5ef;
  --agenduy-sky:#61b8e6;
  --cliseek-primary-dark:#0b3f84;
  --cliseek-shadow:0 24px 70px rgba(44, 108, 171, .18);
  --modal-surface:#ffffff;
  --modal-surface-bright:linear-gradient(135deg, rgba(217,239,255,.68), rgba(255,255,255,0));
  --modal-border:rgba(15, 55, 95, .12);
  --modal-card:#f7fbff;
  --modal-card-border:#dce7f2;
  --modal-cta:linear-gradient(135deg, var(--cliseek-primary), var(--cliseek-primary-2));
  --modal-cta-text:#ffffff;
  --modal-muted:#66758a;
}

#page-loader{
  background:
    radial-gradient(circle at 78% 8%, rgba(77,181,245,.28), transparent 34%),
    linear-gradient(90deg, #ffffff 0%, #f8fbff 52%, #d9efff 100%);
  backdrop-filter:blur(6px);
}

.page-loader__glow{
  background:radial-gradient(circle, rgba(54,181,239,.24), transparent 70%);
}

.page-loader__card{
  color:var(--cliseek-text);
  background:rgba(255,255,255,.94);
  border:1px solid var(--cliseek-border);
  box-shadow:var(--cliseek-shadow);
}

.page-loader__title{
  color:var(--cliseek-text);
}

.page-loader__hint{
  color:var(--cliseek-muted);
}

.page-loader__progress{
  background:#dce7f2;
}

.page-loader__progress-bar{
  background:linear-gradient(90deg, var(--cliseek-primary), var(--cliseek-primary-2), #7aa7ff);
}

body{
  color:var(--cliseek-text);
  text-align:left;
  background:
    radial-gradient(circle at 78% 8%, rgba(77,181,245,.34), transparent 32%),
    radial-gradient(circle at 34% 92%, rgba(45,126,212,.12), transparent 36%),
    linear-gradient(115deg, #ffffff 0%, #f7fbff 36%, #dff1ff 100%);
  padding-top:clamp(10px, 2vh, 22px);
  row-gap:clamp(6px, 1.2vh, 12px);
}

.bg-video{
  display:none;
}

.overlay{
  background:
    linear-gradient(90deg, rgba(255,255,255,.96) 0%, rgba(248,251,255,.92) 44%, rgba(207,232,251,.82) 100%);
}

h1,
.brand-title{
  color:var(--agenduy-sky);
  text-shadow:none;
}

h2,
.brand-subtitle{
  color:var(--agenduy-sky);
  text-shadow:none;
}

.brand-identity{
  justify-content:center;
  width:min(96vw, 1220px);
  margin-top:clamp(6px, 1.4vh, 14px);
  margin-bottom:0;
  text-align:center;
  gap:clamp(4px, .7vw, 8px);
}

.brand-logo{
  width:clamp(48px, 5vw, 68px);
  filter:drop-shadow(0 12px 20px rgba(45,126,212,.2));
}

.brand-title{
  letter-spacing:.02em;
  font-weight:700;
  color:var(--agenduy-sky);
  -webkit-text-stroke:.35px rgba(255,255,255,.9);
  text-shadow:0 1px 0 rgba(255,255,255,.55);
}

.brand-subtitle{
  width:min(96vw, 1220px);
  margin:clamp(2px, .4vh, 6px) auto clamp(10px, 2vh, 22px);
  letter-spacing:.03em;
  text-align:center;
  color:var(--agenduy-sky);
  opacity:.95;
}

#typewrap,
#typewriter{
  color:var(--cliseek-text);
  text-shadow:none;
}

.caret{
  background:var(--cliseek-text);
}

.hero-carousel{
  width:min(96vw, 1080px);
  align-self:center;
  margin-top:0;
}

.rubros-section{
  width:min(94vw, 920px);
  margin:0 auto;
}

.rubro-selector-card{
  background:rgba(255,255,255,.58);
  border:1px solid rgba(255,255,255,.75);
  border-radius:20px;
  box-shadow:var(--cliseek-shadow);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  display:grid;
  grid-template-columns:minmax(240px, .9fr) minmax(280px, 1.1fr);
  gap:clamp(18px, 3vw, 34px);
  align-items:center;
  padding:clamp(18px, 3vw, 34px);
  min-height:clamp(470px, 56vw, 560px);
}

.rubro-selector-card__media{
  position:relative;
  width:100%;
  height:clamp(320px, 38vw, 420px);
  border-radius:14px;
  overflow:hidden;
  border:1px solid var(--cliseek-border);
  background:#eaf6ff;
  box-shadow:0 18px 42px rgba(47, 91, 138, .14);
}

.rubro-selector-card__media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}

.rubro-selector-card__media .rubro-preview-slide{
  inset:0;
  opacity:0;
  position:absolute;
  transition:opacity 1s ease;
}

.rubro-selector-card__media .rubro-preview-slide.is-visible{
  opacity:1;
  z-index:1;
}

.rubro-service-feature{
  align-items:flex-end;
  background:linear-gradient(180deg,transparent,rgba(4,10,18,.9));
  bottom:0;
  color:#fff;
  display:flex;
  gap:12px;
  justify-content:space-between;
  left:0;
  padding:42px 16px 15px;
  position:absolute;
  right:0;
  text-align:left;
  z-index:3;
}

.rubro-service-feature[hidden]{display:none}
.rubro-service-feature__content{display:grid;gap:2px;min-width:0;text-shadow:0 2px 8px rgba(0,0,0,.8)}
.rubro-service-feature__content strong{font-size:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rubro-service-feature__content span{font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rubro-service-feature__content small{color:#dce8f4;font-size:.72rem}
.rubro-service-feature__book{
  align-items:center;
  background:linear-gradient(135deg,#268fd9,#43b9ec);
  border:1px solid rgba(255,255,255,.32);
  border-radius:9px;
  box-shadow:0 8px 20px rgba(0,0,0,.28);
  color:#fff;
  display:inline-flex;
  flex:0 0 auto;
  font-size:.78rem;
  font-weight:700;
  gap:6px;
  min-height:38px;
  padding:0 12px;
  text-decoration:none;
  transition:transform .18s ease,filter .18s ease;
}
.rubro-service-feature__book:hover{filter:brightness(1.08);transform:translateY(-1px)}
.rubro-service-feature__book i{font-size:1rem}

@media(prefers-reduced-motion:reduce){
  .rubro-selector-card__media .rubro-preview-slide{transition:none}
}

@media(max-width:760px){
  .rubro-service-feature{gap:7px;padding:30px 9px 8px}
  .rubro-service-feature__content strong{font-size:.78rem}
  .rubro-service-feature__content span{font-size:.64rem}
  .rubro-service-feature__content small{font-size:.6rem}
  .rubro-service-feature__book{font-size:.66rem;min-height:32px;padding:0 8px}
}

.rubro-selector-card__content{
  display:grid;
  grid-template-rows:auto auto auto 1fr auto;
  gap:clamp(12px, 1.8vw, 20px);
  align-self:stretch;
  align-content:space-between;
  text-align:left;
}

.rubro-selector-card__eyebrow{
  justify-self:start;
  margin:0;
  padding:.25rem .75rem;
  border-radius:999px;
  color:var(--cliseek-primary-dark);
  background:#eaf6ff;
  border:1px solid #d8ecfb;
  font-size:.86rem;
  font-weight:700;
}

.rubro-selector-card__content h3{
  margin:0;
  color:var(--cliseek-text);
  font-size:clamp(1.5rem, 1.7vw + 1rem, 2.25rem);
  line-height:1.1;
}

.rubro-selector-card__text{
  margin:0;
  color:var(--cliseek-muted);
  font-size:clamp(.95rem, .5vw + .85rem, 1.08rem);
  line-height:1.6;
}

.rubro-selector-field{
  display:grid;
  gap:.45rem;
}

.rubro-selector-field span{
  color:var(--cliseek-muted);
  font-size:.86rem;
  font-weight:600;
}

.rubro-selector-field select{
  width:100%;
  min-height:46px;
  border:1px solid #dce7f2;
  border-radius:8px;
  background:#fff;
  color:var(--cliseek-text);
  padding:0 .9rem;
  font:inherit;
  box-shadow:0 10px 24px rgba(47, 91, 138, .08);
}

.rubro-selector-field select:focus{
  outline:3px solid rgba(54,181,239,.22);
  border-color:var(--cliseek-primary-2);
}

.rubro-native-select{
  position:absolute;
  inline-size:1px;
  block-size:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  clip-path:inset(50%);
  white-space:nowrap;
}

.rubro-select{
  position:relative;
}

.rubro-select__button{
  width:100%;
  min-height:48px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  border:1px solid #dce7f2;
  border-radius:8px;
  background:#fff;
  color:var(--cliseek-text);
  padding:0 .9rem;
  font:inherit;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(47, 91, 138, .08);
}

.rubro-select__button:focus{
  outline:3px solid rgba(54,181,239,.22);
  border-color:var(--cliseek-primary-2);
}

.rubro-select__value{
  display:inline-flex;
  align-items:center;
  gap:.65rem;
  min-width:0;
}

.rubro-select__value i,
.rubro-select__option i{
  color:var(--cliseek-primary);
  font-size:1.15rem;
}

.rubro-select__value span,
.rubro-select__option span{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.rubro-select__menu{
  position:absolute;
  inset-inline:0;
  top:calc(100% + 6px);
  z-index:20;
  display:grid;
  gap:4px;
  max-height:260px;
  overflow:auto;
  padding:6px;
  border:1px solid #dce7f2;
  border-radius:8px;
  background:#fff;
  box-shadow:0 18px 40px rgba(47, 91, 138, .18);
}

.rubro-select__menu[hidden]{
  display:none;
}

.rubro-select__option{
  width:100%;
  display:flex;
  align-items:center;
  gap:.65rem;
  border:0;
  border-radius:8px;
  background:transparent;
  color:var(--cliseek-text);
  padding:.7rem .75rem;
  font:inherit;
  text-align:left;
  cursor:pointer;
}

.rubro-select__option:hover,
.rubro-select__option[aria-selected="true"]{
  background:#eaf6ff;
  color:var(--cliseek-primary-dark);
}

.rubro-selector-perks{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:clamp(.55rem, 1vw, .9rem) clamp(1rem, 2vw, 1.6rem);
  align-self:center;
}

.rubro-selector-card__button{
  align-items:center;
  display:inline-flex;
  gap:.45rem;
  justify-content:center;
  justify-self:stretch;
  width:100%;
  max-width:100%;
  align-self:end;
}

.rubro-selector-actions{
  display:grid;
  gap:.7rem;
  align-self:end;
}

.rubro-selector-card__registered{
  align-items:center;
  display:inline-flex;
  gap:.45rem;
  justify-content:center;
  width:100%;
  min-height:44px;
  border:1px solid rgba(16,185,129,.34);
  border-radius:8px;
  color:#064e3b;
  background:linear-gradient(135deg, #86efac, #22c55e);
  box-shadow:0 14px 28px rgba(16,185,129,.18);
  font:inherit;
  font-weight:700;
  cursor:pointer;
  transition:transform .2s ease, filter .2s ease, box-shadow .2s ease;
}

.rubro-selector-card__button > i,
.rubro-selector-card__registered > i{
  flex:0 0 auto;
  font-size:1.15em;
}

.rubro-selector-card__registered:hover{
  transform:translateY(-1px);
  filter:brightness(1.03);
  box-shadow:0 18px 34px rgba(16,185,129,.24);
}

.business-login-modal__dialog{
  width:min(460px, 94vw);
}

.business-login-modal{
  padding:clamp(1.35rem, 3vw, 2rem);
  background:#fff;
  border:1px solid rgba(15, 55, 95, .12);
  border-radius:14px;
  color:#111827;
  box-shadow:0 24px 60px rgba(15, 55, 95, .18);
}

.business-login-modal__header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:.85rem;
}

.business-login-modal__eyebrow{
  margin:0 0 .35rem;
  color:var(--cliseek-primary);
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.business-login-modal__header h3{
  margin:0;
  color:#111827;
  font-size:clamp(1.35rem, 2.5vw, 1.75rem);
  line-height:1.08;
}

.business-login-modal__close{
  width:38px;
  height:38px;
  border:1px solid #dce7f2;
  border-radius:8px;
  background:#f7fbff;
  color:#111827;
  font-size:1.35rem;
  line-height:1;
  cursor:pointer;
}

.business-login-modal__intro{
  margin:0 0 1.1rem;
  color:#5f6f85;
  line-height:1.5;
}

.business-login-form{
  display:grid;
  gap:.9rem;
}

.business-login-form__field{
  display:grid;
  gap:.35rem;
  color:#111827;
  font-weight:700;
}

.business-login-form__field input{
  width:100%;
  min-height:46px;
  border:1px solid #111827;
  border-radius:8px;
  background:#fff;
  color:#111827;
  padding:.75rem .9rem;
  font:inherit;
  outline:none;
}

.business-login-form__field input:focus{
  border-color:var(--cliseek-primary);
  box-shadow:0 0 0 3px rgba(54,181,239,.18);
}

.business-login-form__remember{
  display:flex;
  align-items:center;
  gap:.55rem;
  color:#111827;
  font-weight:700;
  line-height:1.35;
  cursor:pointer;
  user-select:none;
}

.business-login-form__remember input{
  width:17px;
  height:17px;
  accent-color:var(--cliseek-primary);
  cursor:pointer;
}

.business-login-form__message{
  margin:.15rem 0 0;
  color:#b91c1c;
  font-weight:700;
  line-height:1.4;
}

.business-login-form__message[data-type="info"]{
  color:#1d4ed8;
}

.business-login-form__message[data-type="success"]{
  color:#047857;
}

.business-login-form__submit{
  min-height:48px;
  border:0;
  border-radius:8px;
  background:linear-gradient(135deg, var(--cliseek-primary), var(--cliseek-primary-2));
  color:#fff;
  font:inherit;
  font-weight:800;
  cursor:pointer;
  box-shadow:0 14px 28px rgba(45,126,212,.2);
}

.business-login-form__submit:disabled{
  cursor:wait;
  opacity:.72;
}

.rubro-selector-card__button--pulse{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  box-shadow:0 0 0 0 rgba(54,181,239,.42), 0 14px 28px rgba(45,126,212,.22);
  animation:rubroCtaGlow 1.8s ease-in-out infinite;
}

.rubro-selector-card__button--pulse::after{
  content:"";
  position:absolute;
  inset:3px;
  border:1px solid rgba(255,255,255,.9);
  border-radius:6px;
  pointer-events:none;
}

@keyframes rubroCtaGlow{
  0%,100%{ box-shadow:0 0 0 0 rgba(54,181,239,.38), 0 14px 28px rgba(45,126,212,.22); }
  50%{ box-shadow:0 0 0 5px rgba(54,181,239,.16), 0 18px 34px rgba(45,126,212,.28); }
}

@media (max-width: 760px){
  .rubro-selector-card{
    grid-template-columns:1fr;
    text-align:center;
    min-height:auto;
  }
  .rubro-selector-card__media{
    height:clamp(220px, 62vw, 340px);
  }
  .rubro-selector-card__content{
    text-align:center;
    grid-template-rows:auto;
    align-self:auto;
  }
  .rubro-selector-card__eyebrow,
  .rubro-selector-card__button{
    justify-self:center;
  }
  .rubro-selector-perks{
    grid-template-columns:1fr;
    justify-items:center;
  }
}

.hc-viewport{
  background:rgba(255,255,255,.58);
  border:1px solid rgba(255,255,255,.75);
  border-radius:20px;
  box-shadow:var(--cliseek-shadow);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}

.hc-card figure{
  border-radius:8px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(220,231,242,.92);
  box-shadow:0 18px 42px rgba(47, 91, 138, .14);
}

.hc-card img{
  border-color:#ffffff;
  box-shadow:0 14px 28px rgba(45,126,212,.16);
}

.hc-card figcaption{
  color:var(--cliseek-text);
  text-shadow:none;
}

.hc-highlight{
  color:var(--cliseek-primary-dark);
  background:#eaf6ff;
  border-radius:999px;
}

.hc-perk{
  color:var(--cliseek-muted);
}

.hc-perk i{
  color:var(--cliseek-primary);
}

.plan-btn,
.btn-contratar,
.lead-modal__btn--primary,
.marketing-modal__cta,
.reg-btn--primary,
.reg-btn--accent,
.benefits-modal__cta,
.courses-modal__dismiss{
  color:#fff;
  background:linear-gradient(135deg, var(--cliseek-primary), var(--cliseek-primary-2));
  border:1px solid rgba(33,111,190,.28);
  border-radius:8px;
  box-shadow:0 14px 28px rgba(45,126,212,.22);
}

.plan-btn:hover,
.btn-contratar:hover,
.lead-modal__btn--primary:hover,
.marketing-modal__cta:hover,
.reg-btn--primary:hover,
.reg-btn--accent:hover,
.benefits-modal__cta:hover,
.courses-modal__dismiss:hover{
  background:linear-gradient(135deg, #236fbd, #2aa7e5);
  box-shadow:0 18px 34px rgba(45,126,212,.28);
}

.hc-btn{
  color:var(--cliseek-primary-dark);
  background:rgba(255,255,255,.82);
  border:1px solid rgba(45,126,212,.16);
  box-shadow:0 16px 32px rgba(47, 91, 138, .18);
}

.hc-btn:hover{
  background:#ffffff;
}

.hc-dots .dot{
  background:#bdd7ed;
}

.hc-dots .dot.active{
  background:var(--cliseek-primary);
}

.trust-banner{
  color:#fff;
  background:linear-gradient(135deg, var(--cliseek-primary), var(--cliseek-primary-2));
  border:1px solid rgba(255,255,255,.68);
  box-shadow:var(--cliseek-shadow);
}

.container{
  background:rgba(255,255,255,.66);
  border:1px solid rgba(255,255,255,.76);
  box-shadow:var(--cliseek-shadow);
}

.category{
  border-radius:8px;
}

.category:hover{
  background:#eef8ff;
  opacity:1;
}

.category i{
  color:var(--cliseek-primary);
}

.category p,
footer a{
  color:var(--cliseek-text);
}

footer a:hover{
  color:var(--cliseek-primary);
}

.u-modal__overlay{
  background:rgba(101, 116, 137, .68);
  backdrop-filter:blur(7px);
}

.u-modal__content,
#modal-registro .u-modal__content,
#modal-rubros .cat-modal,
.lead-modal,
.marketing-modal,
.plan-modal,
.courses-modal,
.benefits-modal,
.about-modal,
.search-modal{
  color:var(--cliseek-text);
  background:#ffffff;
  border:1px solid var(--cliseek-border);
  border-radius:18px;
  box-shadow:var(--cliseek-shadow);
}

#modal-registro .reg-progress{
  color:var(--cliseek-text);
  background:rgba(255,255,255,.94);
  border:1px solid var(--cliseek-border);
  box-shadow:0 18px 42px rgba(47, 91, 138, .18);
}

#modal-registro .reg-progress__bar{
  background:#e5edf6;
}

#modal-registro .reg-progress__message{
  color:var(--cliseek-text);
}

#modal-rubros .cat-modal::after,
.marketing-modal::after{
  background:var(--modal-surface-bright);
}

.cat-header h3,
#modal-rubros .cat-header h3,
.plan-header h3,
.courses-modal__title,
.benefits-modal__title,
.about-modal__title,
.search-modal__header h3,
.marketing-modal__headline,
.lead-modal__title,
.reg-modal__header h3,
.reg-step h4,
.reg-hours__title,
.reg-hours-day legend{
  color:var(--cliseek-text);
}

.cat-subtitle,
#modal-rubros .cat-subtitle,
.courses-modal__body,
.benefits-modal__body,
.about-modal__body,
.about-modal__intro,
.search-modal__hint,
.search-card__meta p,
.marketing-modal__message,
.lead-modal__text,
.reg-subtitle,
.reg-plan,
.reg-plan-note,
.reg-hint,
.reg-hours__hint,
.reg-field span,
.admin-form__label,
.admin-form__hint,
.reg-hours-slots label{
  color:var(--cliseek-muted);
}

.cat-close,
#modal-rubros .cat-close,
.plan-close,
.courses-modal__close,
.benefits-modal__close,
.about-modal__close,
.search-modal__close,
.reg-close,
.marketing-modal__close,
.business-login-modal__close,
.pwa-install-modal__close{
  color:var(--cliseek-text);
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
}

.cat-close:hover,
#modal-rubros .cat-close:hover,
.plan-close:hover,
.courses-modal__close:hover,
.benefits-modal__close:hover,
.about-modal__close:hover,
.search-modal__close:hover,
.reg-close:hover,
.marketing-modal__close:hover,
.business-login-modal__close:hover,
.pwa-install-modal__close:hover{
  background:transparent;
}

.plan-item,
.search-card__meta h4,
.reg-step,
.reg-checkbox,
.reg-hours-toggle{
  color:var(--cliseek-text);
}

#modal-registro .reg-hours-day-chip{
  background:#ffffff;
  border-color:var(--cliseek-border);
  color:var(--cliseek-text);
}

#modal-registro .reg-hours-day-chip.is-selected{
  background:#eaf6ff;
  border-color:var(--cliseek-primary-2);
  color:var(--cliseek-primary-dark);
}

#modal-registro .reg-hours-day-chip__box{
  color:inherit;
}

#modal-registro .reg-hours-quick__row label,
#modal-registro .reg-hours-summary__empty,
#modal-registro .reg-hours-summary__item span{
  color:var(--cliseek-muted);
}

#modal-registro .reg-hours-quick__row input[type="time"]{
  color:var(--cliseek-text);
  background:#ffffff;
  border:1px solid rgba(17,24,39,.48);
  border-radius:8px;
}

#modal-registro .reg-hours-summary__item{
  background:#ffffff;
  border-color:var(--cliseek-border);
}

#modal-registro .reg-hours-summary__item strong{
  color:var(--cliseek-text);
}

.plan-item::before{
  color:var(--cliseek-primary);
}

.search-modal__filter,
.search-modal__empty,
.search-card,
.reg-stepper,
.reg-field,
.reg-summary,
.reg-card,
.reg-collection-card,
.reg-hours__group,
.reg-hours-day,
.reg-hours-break,
.reg-hours-holidays__item{
  background:var(--cliseek-surface-soft);
  border:1px solid var(--cliseek-border);
  color:var(--cliseek-text);
}

.search-modal__input,
.reg-field input,
.reg-field select,
.admin-form__field input,
.admin-form__field select,
.reg-phone-field input,
.reg-phone-field select,
.lead-modal__select,
.reg-hours-slots input[type="time"],
.reg-hours-holidays__input input[type="date"]{
  color:var(--cliseek-text);
  background:#ffffff;
  border:1px solid #e5edf6;
  border-radius:8px;
}

.search-modal__input::placeholder,
.reg-field input::placeholder,
.admin-form__field input::placeholder{
  color:#8b98aa;
}

.search-card{
  box-shadow:0 14px 30px rgba(47, 91, 138, .1);
}

.search-card:hover{
  border-color:var(--cliseek-primary-2);
}

.search-card__avatar{
  color:#fff;
  background:linear-gradient(135deg, var(--cliseek-primary), var(--cliseek-primary-2));
}

.reg-badge,
.marketing-modal__tag,
.search-modal__eyebrow,
.lead-modal__badge{
  color:var(--cliseek-primary-dark);
  background:#eaf6ff;
  border:1px solid #d8ecfb;
  border-radius:999px;
}

.courses-modal__eyebrow,
.benefits-modal__eyebrow,
.about-modal__eyebrow{
  color:var(--cliseek-primary-dark);
  background:transparent;
  border:0;
  border-radius:0;
  padding:0;
}

.reg-stepper li{
  color:var(--cliseek-muted);
  background:#f7fbff;
  border:1px solid var(--cliseek-border);
  border-radius:8px;
}

.reg-stepper li.active{
  color:var(--cliseek-primary-dark);
  background:#eaf6ff;
  border-color:#b8ddf7;
}

.reg-stepper li span{
  color:#fff;
  background:linear-gradient(135deg, var(--cliseek-primary), var(--cliseek-primary-2));
}

#modal-registro .reg-stepper{
  background:transparent;
  border:0;
  backdrop-filter:none;
}

#modal-registro .reg-stepper li,
#modal-registro .reg-stepper li.active{
  background:transparent;
  border:0;
  border-radius:0;
}

#modal-registro .reg-field{
  background:transparent;
  border:0;
  padding:0;
  box-shadow:none;
  backdrop-filter:none;
}

#modal-registro .reg-access-note{
  grid-column:1 / -1;
  margin:0;
  color:var(--cliseek-text);
  font-size:.9rem;
  line-height:1.45;
}

#modal-registro .reg-footer{
  background:linear-gradient(180deg, rgba(255,255,255,0), #fff 34%);
}

#modal-registro .reg-field--file small{
  color:var(--cliseek-text);
}

#modal-registro .reg-service-modal__overlay{
  background:rgba(15,23,42,.32);
}

#modal-registro .reg-service-modal__panel{
  background:#ffffff;
  border:1px solid var(--cliseek-border);
  box-shadow:0 18px 42px rgba(47, 91, 138, .18);
}

#modal-registro .reg-service-modal__header h5{
  color:var(--cliseek-text);
}

#modal-registro .reg-collection-card{
  box-shadow:none;
}

#modal-registro .reg-service-modal .admin-form__label{
  color:var(--cliseek-text);
}

#modal-registro .reg-service-modal .admin-form__hint{
  color:var(--cliseek-text);
}

#modal-registro .reg-service-modal .admin-form__field input,
#modal-registro .reg-service-modal .admin-form__field select{
  color:var(--cliseek-text);
  background:#ffffff;
}

#modal-registro .reg-service-modal .admin-form__field input::placeholder{
  color:#8b98aa;
}

#modal-registro [data-reg-service-error]{
  color:#dc2626;
}

#modal-registro .reg-field[data-validation-field]{
  position:relative;
}

#modal-registro .reg-field[data-validation-field]::after{
  content:attr(data-validation-message);
  position:absolute;
  left:0;
  top:calc(100% + 6px);
  z-index:6;
  display:none;
  max-width:min(320px, 92vw);
  padding:8px 10px;
  border:1px solid rgba(185,28,28,.2);
  border-radius:8px;
  color:#991b1b;
  background:#fff5f5;
  box-shadow:0 12px 28px rgba(17,24,39,.14);
  font-size:.78rem;
  font-weight:600;
  line-height:1.35;
}

#modal-registro .reg-field[data-validation-field].is-invalid::after{
  display:block;
}

#modal-registro .reg-validation-control{
  position:relative;
  display:block;
  width:100%;
  color:inherit;
  font-size:inherit;
  font-weight:400;
}

#modal-registro .reg-validation-control input{
  padding-right:72px;
}

.password-toggle{
  align-items:center;
  background:transparent;
  border:0;
  color:#718096;
  cursor:pointer;
  display:inline-flex;
  font-size:1.2rem;
  height:34px;
  justify-content:center;
  padding:0;
  position:absolute;
  right:6px;
  top:50%;
  transform:translateY(-50%);
  width:34px;
  z-index:2;
}

.password-toggle:hover,
.password-toggle:focus-visible{color:var(--cliseek-primary)}
.password-toggle:focus-visible{outline:2px solid rgba(54,181,239,.45);outline-offset:-2px;border-radius:50%}

#modal-registro .reg-phone-field .reg-validation-control{
  flex:1;
  min-width:0;
}

#modal-registro .reg-validation-icon{
  position:absolute;
  right:12px;
  top:50%;
  width:18px;
  height:18px;
  display:grid;
  place-items:center;
  transform:translateY(-50%);
  pointer-events:none;
  color:transparent;
  font-size:1rem;
  font-weight:800;
  line-height:1;
}

#modal-registro .reg-field[data-validation-field="password"] .reg-validation-icon,
#modal-registro .reg-field[data-validation-field="password-repeat"] .reg-validation-icon{
  right:42px;
}

#modal-registro .reg-field.is-validating .reg-validation-icon{
  border:2px solid rgba(17,24,39,.16);
  border-top-color:var(--cliseek-primary);
  border-radius:50%;
  animation:reg-input-spin .7s linear infinite;
}

#modal-registro .reg-field.is-valid .reg-validation-icon{
  color:#16a34a;
}

#modal-registro .reg-field.is-valid .reg-validation-icon::before{
  content:"\2713";
}

#modal-registro .reg-field.is-invalid .reg-validation-icon{
  color:#dc2626;
}

#modal-registro .reg-field.is-invalid .reg-validation-icon::before{
  content:"\00D7";
}

#modal-registro .reg-field.is-valid input{
  border-color:rgba(22,163,74,.72);
}

#modal-registro .reg-field.is-invalid input{
  border-color:rgba(220,38,38,.72);
}

@keyframes reg-input-spin{
  to{ transform:translateY(-50%) rotate(360deg); }
}

#modal-registro .reg-field input,
#modal-registro .reg-field select,
#modal-registro .admin-form__field input,
#modal-registro .admin-form__field select,
#modal-registro .reg-phone-field input,
#modal-registro .reg-phone-field select,
#modal-registro .reg-hours-slots input[type="time"],
#modal-registro .reg-hours-holidays__input input[type="date"],
#modal-registro input[type="file"]{
  border:1px solid rgba(17,24,39,.48);
  box-shadow:none;
}

#modal-registro .reg-field input:focus,
#modal-registro .reg-field select:focus,
#modal-registro .admin-form__field input:focus,
#modal-registro .admin-form__field select:focus,
#modal-registro .reg-phone-field input:focus,
#modal-registro .reg-phone-field select:focus{
  outline:none;
  border-color:rgba(17,24,39,.72);
  box-shadow:none;
  transform:none;
}

.reg-btn--ghost,
.lead-modal__btn--ghost,
.marketing-modal__ghost{
  color:var(--cliseek-primary-dark);
  background:#f3f8fd;
  border:1px solid var(--cliseek-border);
  border-radius:8px;
}

.reg-status{
  color:var(--cliseek-primary-dark);
  background:#eaf6ff;
  border:1px solid #b8ddf7;
}

#modal-registro .reg-subtitle{
  color:var(--cliseek-text);
}

@media (max-width: 768px){
  .category{
    border-bottom-color:var(--cliseek-border);
  }
}

@media (max-width: 640px){
  #modal-buscar .u-modal__dialog{
    width:calc(100vw - 18px);
    max-height:calc(100dvh - 18px);
    margin:9px auto;
  }

  #modal-buscar .u-modal__content{
    max-height:calc(100dvh - 18px);
    overflow:hidden;
  }

  #modal-buscar .search-modal{
    width:100%;
    max-height:calc(100dvh - 18px);
    padding:16px;
    border-radius:14px;
    gap:12px;
    overflow:hidden;
  }

  #modal-buscar .search-modal__header{
    flex:0 0 auto;
    gap:10px;
  }

  #modal-buscar .search-modal__header h3{
    font-size:1.15rem;
    line-height:1.25;
  }

  #modal-buscar .search-modal__hint{
    font-size:.82rem;
    line-height:1.35;
  }

  #modal-buscar .search-modal__close{
    width:34px;
    height:34px;
    font-size:1.35rem;
    flex:0 0 auto;
  }

  #modal-buscar .search-modal__filter{
    flex:0 0 auto;
    padding:8px 12px;
  }

  #modal-buscar .search-modal__input{
    font-size:.9rem;
    min-width:0;
  }

  #modal-buscar .search-grid{
    flex:1 1 auto;
    min-height:0;
    overflow:auto;
    grid-template-columns:1fr;
    gap:12px;
    padding-right:2px;
    overscroll-behavior:contain;
  }

  #modal-buscar .search-card{
    border-radius:14px;
    padding:14px;
  }

  #modal-buscar .search-card__avatar{
    width:80px;
    height:80px;
  }

  #modal-buscar .search-modal__empty{
    flex:1 1 auto;
    min-height:0;
    overflow:auto;
  }

  #modal-registro .u-modal__dialog{
    width:calc(100vw - 18px);
    height:calc(100dvh - 18px);
    max-height:calc(100dvh - 18px);
    margin:9px auto;
  }

  #modal-registro .u-modal__content{
    position:relative;
    overflow:hidden;
    gap:10px;
    padding:14px;
    border-radius:14px;
  }

  #modal-registro .reg-modal__header{
    display:flex;
    flex-direction:row;
    align-items:flex-start;
    gap:10px;
    padding-right:34px;
    flex:0 0 auto;
  }

  #modal-registro .reg-modal__header h3{
    margin:0;
    font-size:clamp(.95rem, 4.2vw, 1.08rem);
    line-height:1.18;
  }

  #modal-registro .reg-subtitle,
  #modal-registro .reg-plan{
    margin-top:4px;
    font-size:.76rem;
    line-height:1.2;
  }

  #modal-registro .reg-close{
    position:absolute;
    top:10px;
    right:10px;
    width:28px;
    height:28px;
    display:grid;
    place-items:center;
    font-size:1.15rem;
    z-index:14;
  }

  #modal-registro .reg-stepper{
    display:grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap:4px;
    flex:0 0 auto;
    margin:0;
  }

  #modal-registro .reg-stepper li,
  #modal-registro .reg-stepper li.active{
    min-width:0;
    gap:3px;
    font-size:.5rem;
    letter-spacing:.04em;
    line-height:1;
    text-align:center;
  }

  #modal-registro .reg-stepper li::after{
    display:none;
  }

  #modal-registro .reg-stepper li span{
    width:24px;
    height:24px;
    font-size:.72rem;
    box-shadow:none;
  }

  #modal-registro .reg-stepper li.active span{
    box-shadow:0 0 0 3px rgba(56,189,248,.16);
  }

  #modal-registro .reg-stepper li small{
    font-size:.52rem;
    line-height:1;
  }

  #modal-registro .reg-form{
    flex:1 1 auto;
    min-height:0;
    display:flex;
    gap:8px;
  }

  #modal-registro .reg-step{
    flex:1 1 auto;
    min-height:0;
    overflow:auto;
    padding:0 2px 4px 0;
    overscroll-behavior:contain;
  }

  #modal-registro .reg-step h4{
    margin:0 0 8px;
    font-size:.93rem;
    line-height:1.2;
  }

  #modal-registro .reg-hint,
  #modal-registro .reg-access-note,
  #modal-registro .reg-hours__hint{
    font-size:.72rem;
    line-height:1.25;
  }

  #modal-registro .reg-grid,
  #modal-registro .admin-form__grid{
    grid-template-columns:1fr;
    gap:8px;
    margin-top:8px;
  }

  #modal-registro .reg-field,
  #modal-registro .admin-form__field{
    width:100%;
    gap:3px;
    font-size:.78rem;
  }

  #modal-registro .reg-field span,
  #modal-registro .admin-form__label{
    font-size:.72rem;
  }

  #modal-registro .reg-field input,
  #modal-registro .reg-field select,
  #modal-registro .admin-form__field input,
  #modal-registro .admin-form__field select,
  #modal-registro .reg-phone-field input,
  #modal-registro .reg-phone-field select,
  #modal-registro input[type="file"]{
    min-height:36px;
    padding:8px 10px;
    font-size:.82rem;
    border-radius:7px;
  }

  #modal-registro .reg-phone-field{
    display:grid;
    grid-template-columns:minmax(105px, 38%) 1fr;
    gap:6px;
    align-items:start;
  }

  #modal-registro .reg-phone-field select,
  #modal-registro .reg-phone-field input{
    max-width:none;
    width:100%;
  }

  #modal-registro .reg-validation-icon{
    right:9px;
    width:16px;
    height:16px;
    font-size:.9rem;
  }

  #modal-registro .reg-validation-control input{
    padding-right:64px;
  }

  #modal-registro .reg-field[data-validation-field]::after{
    top:calc(100% + 3px);
    padding:6px 8px;
    font-size:.68rem;
  }

  #modal-registro .reg-collection-card,
  #modal-registro .reg-hours__group{
    margin-top:8px;
    padding:10px;
    border-radius:10px;
    gap:10px;
  }

  #modal-registro .reg-hours{
    gap:10px;
    margin-bottom:0;
  }

  #modal-registro .reg-hours-quick{
    gap:8px;
  }

  #modal-registro .reg-hours-quick__days{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:6px;
  }

  #modal-registro .reg-hours-day-chip{
    padding:7px 8px;
    gap:6px;
    font-size:.78rem;
    min-height:34px;
  }

  #modal-registro .reg-hours-day-chip__box{
    width:14px;
    height:14px;
    border-radius:3px;
  }

  #modal-registro .reg-hours-quick__row{
    grid-template-columns:1fr 1fr;
    gap:7px;
  }

  #modal-registro .reg-hours-quick__row label{
    gap:3px;
    font-size:.72rem;
  }

  #modal-registro .reg-hours-quick__row input[type="time"]{
    min-height:36px;
    padding:7px 8px;
    font-size:.8rem;
    border-radius:7px;
  }

  #modal-registro .reg-hours-quick__apply,
  #modal-registro .reg-service-entry .reg-btn{
    width:100%;
    min-width:0;
  }

  #modal-registro .reg-hours-summary{
    gap:6px;
  }

  #modal-registro .reg-hours-summary__item{
    padding:7px 8px;
    border-radius:8px;
    font-size:.75rem;
  }

  #modal-registro .reg-actions{
    position:sticky;
    bottom:0;
    z-index:8;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin:0 -2px -2px;
    padding:8px 2px 2px;
    background:linear-gradient(180deg, rgba(255,255,255,0), #fff 28%);
    flex:0 0 auto;
  }

  #modal-registro .reg-actions .reg-btn{
    width:100%;
    min-width:0;
    min-height:38px;
    padding:9px 10px;
    border-radius:7px;
    font-size:.8rem;
  }

  #modal-registro .reg-actions [data-reg-submit]{
    grid-column:2;
  }

  #modal-registro .reg-service-modal{
    padding:10px;
  }

  #modal-registro .reg-service-modal__panel{
    width:100%;
    max-height:calc(100dvh - 38px);
    padding:14px;
    border-radius:12px;
  }
}

@media (max-width: 640px) and (max-height: 700px){
  #modal-registro .u-modal__dialog{
    width:calc(100vw - 10px);
    height:calc(100dvh - 10px);
    max-height:calc(100dvh - 10px);
    margin:5px auto;
  }

  #modal-registro .u-modal__content{
    gap:7px;
    padding:10px;
  }

  #modal-registro .reg-modal__header h3{
    font-size:.9rem;
  }

  #modal-registro .reg-subtitle,
  #modal-registro .reg-plan{
    font-size:.68rem;
  }

  #modal-registro .reg-stepper li span{
    width:21px;
    height:21px;
    font-size:.65rem;
  }

  #modal-registro .reg-stepper li small{
    font-size:.46rem;
  }

  #modal-registro .reg-field input,
  #modal-registro .reg-field select,
  #modal-registro .admin-form__field input,
  #modal-registro .admin-form__field select,
  #modal-registro .reg-phone-field input,
  #modal-registro .reg-phone-field select,
  #modal-registro input[type="file"]{
    min-height:32px;
    padding:6px 8px;
  }

  #modal-registro .reg-grid,
  #modal-registro .admin-form__grid{
    gap:6px;
  }

  #modal-registro .reg-actions .reg-btn{
    min-height:34px;
    padding:7px 8px;
  }
}

@media (max-width: 760px){
  .rubros-section{
    width:min(92vw, 420px);
    margin-top:0;
  }

  .rubro-selector-card{
    gap:10px;
    padding:12px;
    border-radius:14px;
  }

  .rubro-selector-card__media{
    height:clamp(145px, 42vw, 210px);
    border-radius:10px;
  }

  .rubro-selector-card__content{
    gap:8px;
    align-content:start;
  }

  .rubro-selector-card__content h3{
    font-size:clamp(1.05rem, 5vw, 1.35rem);
    line-height:1.08;
  }

  .rubro-selector-field{
    gap:4px;
  }

  .rubro-selector-field span{
    font-size:.72rem;
  }

  .rubro-select__button{
    min-height:38px;
    padding:0 .7rem;
    font-size:.82rem;
    box-shadow:none;
  }

  .rubro-select__value{
    gap:.45rem;
  }

  .rubro-select__value i,
  .rubro-select__option i{
    font-size:1rem;
  }

  .rubro-select__menu{
    max-height:210px;
    padding:4px;
  }

  .rubro-select__option{
    padding:.55rem .6rem;
    font-size:.82rem;
  }

  .rubro-selector-card__text{
    font-size:.82rem;
    line-height:1.3;
  }

  .rubro-selector-perks{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    justify-items:start;
    align-items:start;
    gap:6px 8px;
  }

  .rubro-selector-perks .hc-perk{
    width:100%;
    align-items:flex-start;
    gap:5px;
    font-size:.68rem;
    line-height:1.18;
    text-align:left;
  }

  .rubro-selector-perks .hc-perk i{
    font-size:.86rem;
    margin-top:.08rem;
  }

  .rubro-selector-card__button{
    justify-self:stretch;
    width:100%;
    min-height:40px;
    padding:.7rem .9rem;
    font-size:.86rem;
  }

  .rubro-selector-actions{
    gap:6px;
  }

  .rubro-selector-card__registered{
    min-height:38px;
    font-size:.82rem;
  }
}

@media (max-width: 420px){
  .rubro-selector-card__media{
    height:clamp(130px, 38vw, 170px);
  }

  .rubro-selector-card{
    padding:10px;
    gap:8px;
  }

  .rubro-selector-card__content h3{
    font-size:1.05rem;
  }

  .rubro-selector-perks{
    gap:5px 7px;
  }

  .rubro-selector-perks .hc-perk{
    font-size:.64rem;
  }
}

.pwa-install-button{
  position:fixed;
  top:calc(14px + env(safe-area-inset-top));
  right:calc(16px + env(safe-area-inset-right));
  z-index:80;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:42px;
  padding:0 16px;
  border:1px solid rgba(31, 120, 190, .24);
  border-radius:8px;
  background:linear-gradient(135deg, #2f8fda, #35b2ea);
  color:#fff;
  font-size:.85rem;
  font-weight:700;
  line-height:1;
  letter-spacing:0;
  box-shadow:0 12px 30px rgba(47, 143, 218, .28);
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;
}

.pwa-install-button:hover{
  transform:translateY(-1px);
  filter:saturate(1.04);
  box-shadow:0 16px 34px rgba(47, 143, 218, .34);
}

.pwa-install-button:active{
  transform:translateY(0) scale(.98);
}

.pwa-install-button i{
  font-size:1.12rem;
}

.pwa-install-modal__dialog{
  width:min(460px, 94vw);
}

.pwa-install-modal{
  width:100%;
  margin:0 auto;
  padding:28px;
  border-radius:18px;
  background:#fff;
  border:1px solid #d8e5ef;
  box-shadow:0 24px 60px rgba(15, 23, 42, .22);
  color:#121926;
  text-align:left;
}

.pwa-install-modal__header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
}

.pwa-install-modal__eyebrow{
  margin:0 0 6px;
  color:#2f8fda;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.pwa-install-modal__header h3{
  margin:0;
  color:#121926;
  font-size:clamp(1.15rem, 4vw, 1.55rem);
  line-height:1.15;
  font-weight:800;
}

.pwa-install-modal__close{
  flex:0 0 auto;
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border:0;
  border-radius:0;
  background:transparent;
  color:#121926;
  font-size:1.2rem;
  line-height:1;
  cursor:pointer;
}

.pwa-install-modal__body{
  margin-top:18px;
}

.pwa-install-modal__intro{
  margin:0;
  color:#52627a;
  font-size:.95rem;
  line-height:1.55;
}

.pwa-install-modal__steps{
  display:grid;
  gap:10px;
  margin:16px 0 0;
  padding-left:20px;
  color:#121926;
  font-size:.9rem;
  line-height:1.45;
}

.pwa-install-modal__steps li::marker{
  color:#2f8fda;
  font-weight:800;
}

.pwa-install-modal__actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:22px;
}

.pwa-install-modal__primary,
.pwa-install-modal__secondary{
  min-height:42px;
  padding:0 18px;
  border-radius:8px;
  font-size:.86rem;
  font-weight:800;
  cursor:pointer;
}

.pwa-install-modal__primary{
  border:1px solid #2f8fda;
  background:linear-gradient(135deg, #2f8fda, #35b2ea);
  color:#fff;
  box-shadow:0 10px 24px rgba(47, 143, 218, .24);
}

.pwa-install-modal__primary:disabled{
  opacity:.65;
  cursor:wait;
}

.pwa-install-modal__secondary{
  border:1px solid #d8e5ef;
  background:#f7fbff;
  color:#0c3d6e;
}

@media (max-width: 760px){
  .pwa-install-button{
    top:calc(10px + env(safe-area-inset-top));
    right:calc(10px + env(safe-area-inset-right));
    width:38px;
    min-width:38px;
    height:38px;
    min-height:38px;
    padding:0;
    border-radius:8px;
    gap:0;
  }

  .pwa-install-button i{
    font-size:1.05rem;
  }

  .pwa-install-button span{
    position:absolute;
    width:1px;
    height:1px;
    overflow:hidden;
    clip:rect(0 0 0 0);
    white-space:nowrap;
  }

  .pwa-install-modal{
    padding:22px;
    border-radius:16px;
    max-height:calc(100dvh - 20px);
    overflow-y:auto;
  }

  .pwa-install-modal__body{ margin-top:14px; }

  .pwa-install-modal__steps{
    gap:8px;
    margin-top:12px;
    line-height:1.4;
  }

  .pwa-install-modal__actions{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
    margin-top:16px;
  }

  .pwa-install-modal__primary,
  .pwa-install-modal__secondary{
    width:100%;
  }
}

.cat-close,
#modal-rubros .cat-close,
.plan-close,
.courses-modal__close,
.benefits-modal__close,
.about-modal__close,
.search-modal__close,
.reg-close,
.marketing-modal__close,
.business-login-modal__close,
.pwa-install-modal__close{
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}

.cat-close:hover,
#modal-rubros .cat-close:hover,
.plan-close:hover,
.courses-modal__close:hover,
.benefits-modal__close:hover,
.about-modal__close:hover,
.search-modal__close:hover,
.reg-close:hover,
.marketing-modal__close:hover,
.business-login-modal__close:hover,
.pwa-install-modal__close:hover{
  color:#dc2626 !important;
  background:transparent !important;
  box-shadow:none !important;
}

#modal-business-login .business-login-modal__close{
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}

#modal-business-login .business-login-modal__close:hover{
  color:#dc2626 !important;
  background:transparent !important;
  box-shadow:none !important;
}

/* Selector de tema de la portada pública. */
.public-theme-switch{
  align-items:center;
  background:rgba(255,255,255,.88);
  border:1px solid #cbddeb;
  border-radius:999px;
  box-shadow:0 8px 24px rgba(35,91,138,.14);
  color:#597087;
  cursor:pointer;
  display:flex;
  gap:5px;
  left:calc(12px + env(safe-area-inset-left));
  min-height:42px;
  padding:6px 8px;
  position:fixed;
  top:calc(12px + env(safe-area-inset-top));
  transition:background .2s,border-color .2s,color .2s;
  z-index:1200;
}
.public-theme-switch>i{font-size:17px}
.public-theme-switch__track{background:#2f9fe4;border-radius:999px;height:20px;padding:2px;position:relative;width:36px}
.public-theme-switch__track>span{background:#fff;border-radius:50%;display:block;height:16px;transform:translateX(0);transition:transform .2s;width:16px}
:root[data-theme="dark"] .public-theme-switch__track>span{transform:translateX(16px)}

/* Tema oscuro de la portada; comparte preferencia con las páginas de negocios. */
:root[data-theme="dark"]{
  --cliseek-bg:#070b12;
  --cliseek-bg-blue:#0d1725;
  --cliseek-surface:#0e1622;
  --cliseek-surface-soft:#111c2a;
  --cliseek-card:#101b29;
  --cliseek-card-2:#142235;
  --cliseek-border:#26364a;
  --cliseek-text:#f1f6fc;
  --cliseek-muted:#a9b8ca;
  --cliseek-primary:#39aaf0;
  --cliseek-primary-2:#55c5f3;
  --agenduy-sky:#61c3f1;
  --cliseek-primary-dark:#8dd7fa;
  --cliseek-shadow:0 24px 70px rgba(0,0,0,.38);
  --modal-surface:#0e1622;
  --modal-surface-bright:linear-gradient(135deg,rgba(31,91,132,.22),rgba(14,22,34,0));
  --modal-border:#2b3d52;
  --modal-card:#111d2c;
  --modal-card-border:#2a3c51;
  --modal-muted:#a9b8ca;
}
:root[data-theme="dark"] body{
  background:radial-gradient(circle at 78% 8%,rgba(38,133,190,.2),transparent 32%),radial-gradient(circle at 30% 90%,rgba(33,91,160,.15),transparent 38%),linear-gradient(120deg,#070b12,#0a111c 48%,#0d1928);
  color:var(--cliseek-text);
}
:root[data-theme="dark"] .overlay{background:linear-gradient(90deg,rgba(7,11,18,.94),rgba(9,16,26,.9) 50%,rgba(13,28,44,.88))}
:root[data-theme="dark"] .public-theme-switch{background:rgba(12,21,33,.94);border-color:#31445a;color:#c5d3e1}
:root[data-theme="dark"] .rubro-selector-card,
:root[data-theme="dark"] .trust-banner,
:root[data-theme="dark"] .category{background:var(--cliseek-surface);border-color:var(--cliseek-border);color:var(--cliseek-text);box-shadow:var(--cliseek-shadow)}
:root[data-theme="dark"] .rubro-select__button,
:root[data-theme="dark"] .rubro-select__menu,
:root[data-theme="dark"] .rubro-select__option,
:root[data-theme="dark"] .business-login-form__field input{background:#111c2a;border-color:#304158;color:var(--cliseek-text)}
:root[data-theme="dark"] .rubro-select__option:hover,
:root[data-theme="dark"] .rubro-select__option[aria-selected="true"]{background:#17283b;color:#7dd3fc}
:root[data-theme="dark"] .rubro-selector-card__registered{background:#152234;border-color:#30445c;color:#dbeafe}
:root[data-theme="dark"] .page-loader__card{background:#0e1622;border-color:#26364a;color:var(--cliseek-text)}

@media(max-width:760px){
  .public-theme-switch{left:calc(8px + env(safe-area-inset-left));min-height:38px;padding:5px 7px;top:calc(10px + env(safe-area-inset-top))}
  .public-theme-switch>i{font-size:15px}
  .public-theme-switch__track{height:18px;width:32px}
  .public-theme-switch__track>span{height:14px;width:14px}
  :root[data-theme="dark"] .public-theme-switch__track>span{transform:translateX(14px)}
}

/* Navegación principal pública: barra compacta y adaptable. */
.public-options-bar{
  align-items:stretch;
  background:rgba(255,255,255,.78);
  border:1px solid rgba(255,255,255,.88);
  border-radius:15px;
  box-shadow:0 16px 38px rgba(40,95,145,.16);
  display:grid;
  gap:6px;
  grid-template-columns:auto repeat(6,minmax(0,1fr)) auto;
  left:50%;
  margin:0;
  padding:6px;
  position:fixed;
  top:calc(8px + env(safe-area-inset-top));
  transform:translateX(-50%);
  width:min(calc(100vw - 20px),1380px);
  z-index:900;
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}
body{padding-top:calc(96px + env(safe-area-inset-top))}
.public-options-bar .public-theme-switch,
.public-options-bar .pwa-install-button{
  align-self:center;
  box-shadow:none;
  left:auto;
  margin:0;
  position:static;
  right:auto;
  top:auto;
  z-index:auto;
}
.public-options-bar .public-theme-switch{flex:0 0 auto;min-height:40px}
.public-options-bar .pwa-install-button{
  border-radius:9px;
  height:auto;
  min-height:44px;
  min-width:0;
  padding:8px 12px;
  white-space:nowrap;
}
.public-options-bar .category{
  align-items:center;
  background:transparent;
  border:1px solid transparent;
  border-radius:10px;
  color:var(--cliseek-text);
  cursor:pointer;
  display:flex;
  flex-direction:column;
  font:inherit;
  gap:3px;
  justify-content:center;
  min-height:58px;
  min-width:0;
  padding:7px 5px;
  transition:background .2s,border-color .2s,color .2s,transform .2s;
  width:100%;
}
.public-options-bar .category:hover,
.public-options-bar .category:focus-visible{
  background:#eaf6ff;
  border-color:#cfe7f7;
  color:var(--cliseek-primary-dark);
  opacity:1;
  outline:none;
  transform:translateY(-1px);
}
.public-options-bar .category i{
  color:var(--cliseek-primary);
  font-size:1.45rem;
  line-height:1;
  margin:0;
}
.public-options-bar .category span{
  color:inherit;
  font-size:.72rem;
  font-weight:700;
  line-height:1.1;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  width:100%;
}
:root[data-theme="dark"] .public-options-bar{background:rgba(12,21,33,.88);border-color:#293b50;box-shadow:0 18px 42px rgba(0,0,0,.34)}
:root[data-theme="dark"] .public-options-bar .category{background:transparent;border-color:transparent;color:#dce8f4;box-shadow:none}
:root[data-theme="dark"] .public-options-bar .category:hover,
:root[data-theme="dark"] .public-options-bar .category:focus-visible{background:#162638;border-color:#2d4962;color:#7dd3fc}

@media(max-width:760px){
  .public-options-bar{
    display:flex;
    gap:4px;
    margin:0;
    overflow-x:auto;
    padding:5px;
    scroll-snap-type:x proximity;
    scrollbar-width:none;
    top:calc(6px + env(safe-area-inset-top));
    width:calc(100vw - 12px);
  }
  body{padding-top:calc(76px + env(safe-area-inset-top))}
  .public-options-bar::-webkit-scrollbar{display:none}
  .public-options-bar .category{
    flex:1 0 72px;
    min-height:52px;
    padding:6px 3px;
    scroll-snap-align:start;
  }
  .public-options-bar .category i{font-size:1.3rem}
  .public-options-bar .category span{font-size:.58rem}
  .public-options-bar .public-theme-switch{flex:0 0 76px;min-height:38px;padding:5px 6px}
  .public-options-bar .pwa-install-button{
    flex:0 0 44px;
    height:40px;
    min-height:40px;
    min-width:44px;
    padding:0;
  }
  .public-options-bar .pwa-install-button span{
    clip:rect(0 0 0 0);
    height:1px;
    overflow:hidden;
    position:absolute;
    white-space:nowrap;
    width:1px;
  }
}

/* Marca integrada en el bloque visual del selector de rubro. */
.rubro-selector-card__visual{
  align-self:stretch;
  display:grid;
  gap:14px;
  grid-template-rows:auto 1fr;
  min-width:0;
}
.rubro-selector-card__visual .brand-identity--card{
  align-items:center;
  display:flex;
  gap:12px;
  justify-content:center;
  margin:0;
  text-align:left;
  width:100%;
}
.rubro-selector-card__visual .brand-logo{
  height:clamp(76px,7vw,96px);
  width:clamp(76px,7vw,96px);
}
.rubro-selector-card__visual .brand-title{
  font-size:clamp(2.25rem,3.5vw,3.15rem);
  line-height:1;
  margin:0;
}
.rubro-selector-card__visual .rubro-selector-card__media{height:clamp(290px,32vw,390px)}

@media(max-width:760px){
  .rubro-selector-card__visual{gap:9px}
  .rubro-selector-card__visual .brand-identity--card{gap:8px}
  .rubro-selector-card__visual .brand-logo{height:64px;width:64px}
  .rubro-selector-card__visual .brand-title{font-size:2rem}
  .rubro-selector-card__visual .rubro-selector-card__media{height:clamp(145px,42vw,210px)}
}

@media(max-width:420px){
  .rubro-selector-card__visual .brand-logo{height:56px;width:56px}
  .rubro-selector-card__visual .brand-title{font-size:1.85rem}
  .rubro-selector-card__visual .rubro-selector-card__media{height:clamp(130px,38vw,170px)}
}

/* El modal de rubros usa una única superficie, sin resplandor superpuesto. */
#modal-rubros .cat-modal::after{content:none;display:none}

/* Modales de la portada en modo oscuro.
   Estas reglas deben permanecer al final: la apariencia clara general de los
   modales se declara más arriba y, de otro modo, vuelve blancas sus superficies. */
:root[data-theme="dark"] .u-modal__overlay{
  background:rgba(2,7,14,.76);
}

:root[data-theme="dark"] .u-modal__content,
:root[data-theme="dark"] #modal-registro .u-modal__content,
:root[data-theme="dark"] #modal-rubros .cat-modal,
:root[data-theme="dark"] .lead-modal,
:root[data-theme="dark"] .marketing-modal,
:root[data-theme="dark"] .plan-modal,
:root[data-theme="dark"] .courses-modal,
:root[data-theme="dark"] .benefits-modal,
:root[data-theme="dark"] .about-modal,
:root[data-theme="dark"] .search-modal,
:root[data-theme="dark"] .business-login-modal,
:root[data-theme="dark"] .pwa-install-modal{
  background:#0e1622;
  border-color:#2b3d52;
  color:#f1f6fc;
  box-shadow:0 26px 70px rgba(0,0,0,.55);
  color-scheme:dark;
}

:root[data-theme="dark"] #modal-cursos .u-modal__content,
:root[data-theme="dark"] #modal-beneficios .u-modal__content,
:root[data-theme="dark"] #modal-about .u-modal__content,
:root[data-theme="dark"] #modal-buscar .u-modal__content{
  background:transparent;
  border:0;
  box-shadow:none;
}

:root[data-theme="dark"] :is(
  .cat-header h3,
  .plan-header h3,
  .courses-modal__title,
  .benefits-modal__title,
  .about-modal__title,
  .search-modal__header h3,
  .marketing-modal__headline,
  .lead-modal__title,
  .reg-modal__header h3,
  .reg-step h4,
  .business-login-modal__header h3,
  .pwa-install-modal__header h3,
  .pwa-install-modal__steps,
  .plan-item
){
  color:#f1f6fc;
}

:root[data-theme="dark"] :is(
  .cat-subtitle,
  .courses-modal__body,
  .benefits-modal__body,
  .about-modal__body,
  .about-modal__intro,
  .search-modal__hint,
  .marketing-modal__message,
  .lead-modal__text,
  .business-login-modal__intro,
  .pwa-install-modal__intro,
  .reg-subtitle,
  .reg-plan,
  .reg-plan-note,
  .reg-hint
){
  color:#a9b8ca;
}

:root[data-theme="dark"] :is(
  .courses-modal__eyebrow,
  .benefits-modal__eyebrow,
  .about-modal__eyebrow,
  .search-modal__eyebrow,
  .business-login-modal__eyebrow,
  .pwa-install-modal__eyebrow
){
  color:#65c8f4;
}

:root[data-theme="dark"] :is(
  .cat-close,
  .plan-close,
  .courses-modal__close,
  .benefits-modal__close,
  .about-modal__close,
  .search-modal__close,
  .reg-close,
  .marketing-modal__close,
  .business-login-modal__close,
  .pwa-install-modal__close
){
  color:#dbe8f5;
}

:root[data-theme="dark"] :is(
  .search-modal__filter,
  .search-modal__empty,
  .search-card,
  .reg-stepper,
  .reg-checkbox,
  .reg-hours-toggle,
  .reg-summary,
  .reg-card,
  .reg-collection-card,
  .reg-hours__group,
  .reg-hours-day,
  .reg-hours-break,
  .reg-hours-holidays__item,
  #modal-registro .reg-hours-day-chip,
  #modal-registro .reg-hours-summary__item,
  #modal-registro .reg-service-modal__panel
){
  background:#111d2c;
  border-color:#2a3c51;
  color:#f1f6fc;
}

:root[data-theme="dark"] :is(
  .search-modal__input,
  .reg-field input,
  .reg-field select,
  .admin-form__field input,
  .admin-form__field select,
  .reg-phone-field input,
  .reg-phone-field select,
  .lead-modal__select,
  .business-login-form__field input,
  .reg-hours-slots input[type="time"],
  .reg-hours-holidays__input input[type="date"],
  #modal-registro .reg-hours-quick__row input[type="time"]
){
  background:#0b1420;
  border-color:#344960;
  color:#f1f6fc;
}

:root[data-theme="dark"] :is(
  .search-modal__input,
  .reg-field input,
  .admin-form__field input,
  .business-login-form__field input
)::placeholder{
  color:#7f91a6;
  opacity:1;
}

:root[data-theme="dark"] .business-login-form__field,
:root[data-theme="dark"] .business-login-form__remember{
  color:#cbd8e7;
}

:root[data-theme="dark"] .business-login-form__message{
  color:#fca5a5;
}

:root[data-theme="dark"] .business-login-form__message[data-type="info"]{
  color:#93c5fd;
}

:root[data-theme="dark"] .business-login-form__message[data-type="success"]{
  color:#6ee7b7;
}

:root[data-theme="dark"] #modal-registro .reg-progress{
  background:#111d2c;
  border-color:#2a3c51;
  color:#f1f6fc;
  box-shadow:0 18px 42px rgba(0,0,0,.35);
}

:root[data-theme="dark"] #modal-registro .reg-progress__bar{
  background:#26384d;
}

:root[data-theme="dark"] #modal-registro .reg-footer{
  background:linear-gradient(180deg,rgba(14,22,34,0),#0e1622 34%);
}

:root[data-theme="dark"] #modal-registro .reg-service-modal__overlay{
  background:rgba(2,7,14,.7);
}

:root[data-theme="dark"] .pwa-install-modal__secondary{
  background:#152437;
  border-color:#344960;
  color:#dcecff;
}

/* El contenido superpuesto sobre fotografías siempre necesita texto blanco. */
:root[data-theme="dark"] #modal-rubros .cat-overlay,
:root[data-theme="dark"] #modal-rubros .cat-overlay :is(h4,p,span){
  color:#fff;
}

/* Buscador público: una sola superficie visual, sin input anidado. */
#modal-buscar .search-modal__filter{
  overflow:hidden;
}

#modal-buscar .search-modal__input,
:root[data-theme="dark"] #modal-buscar .search-modal__input{
  min-width:0;
  padding:0;
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
  outline:none;
}

#modal-buscar .search-modal__input:focus,
#modal-buscar .search-modal__input:focus-visible{
  border:0;
  box-shadow:none;
  outline:none;
}

#modal-buscar .search-modal__filter:focus-within{
  border-color:var(--cliseek-primary);
  box-shadow:0 0 0 3px rgba(57,170,240,.16);
}

/* La lista de negocios no puede superar el alto visible del dispositivo. */
#modal-buscar .u-modal__dialog{
  max-height:calc(100dvh - 32px);
}

#modal-buscar .search-modal{
  box-sizing:border-box;
  max-height:calc(100dvh - 32px);
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-color:var(--cliseek-primary) transparent;
  scrollbar-width:thin;
}

#modal-buscar .search-modal::-webkit-scrollbar{
  width:8px;
}

#modal-buscar .search-modal::-webkit-scrollbar-track{
  background:transparent;
}

#modal-buscar .search-modal::-webkit-scrollbar-thumb{
  background:var(--cliseek-primary);
  border:2px solid transparent;
  border-radius:999px;
  background-clip:padding-box;
}

#modal-buscar .search-modal::-webkit-scrollbar-thumb:hover{
  background:var(--cliseek-primary-2);
  background-clip:padding-box;
}

@media(max-width:760px){
  #modal-buscar .u-modal__dialog,
  #modal-buscar .search-modal{
    max-height:calc(100dvh - 16px);
  }
}

/* Marca pública limpia, sin halo ni contorno artificial. */
.brand-identity--card .brand-logo{
  animation:none;
  filter:none;
}

.brand-identity--card .brand-title{
  -webkit-text-stroke:0 transparent;
  animation:none;
  text-shadow:none;
}

@media(prefers-reduced-motion:reduce){
  .brand-identity--card .brand-logo,
  .brand-identity--card .brand-title{
    animation:none;
  }
}

/* Interacción suave para los clientes destacados del banner. */
.trust-banner__avatar,
.trust-banner__count{
  position:relative;
  transform:scale(1);
  transform-origin:center;
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
  will-change:transform;
}

@media(hover:hover) and (pointer:fine){
  .trust-banner__avatar:hover,
  .trust-banner__count:hover{
    z-index:2;
    transform:scale(1.1);
    border-color:rgba(255,255,255,.9);
    box-shadow:0 16px 30px rgba(0,0,0,.42),0 0 14px rgba(85,197,243,.24);
  }
}

@media(prefers-reduced-motion:reduce){
  .trust-banner__avatar,
  .trust-banner__count{
    transition:none;
  }
}

/* Icono semántico del modal de recompensas. */
.benefits-modal__icon{
  align-items:center;
  display:inline-flex;
  flex:0 0 34px;
  height:34px;
  justify-content:center;
  width:34px;
}

.benefits-modal__icon i{
  color:var(--cliseek-primary);
  font-size:1.8rem;
  line-height:1;
}

/* Buscador federado de servicios activos de todos los negocios. */
.sr-only{
  clip:rect(0 0 0 0);
  clip-path:inset(50%);
  height:1px;
  overflow:hidden;
  position:absolute;
  white-space:nowrap;
  width:1px;
}

.public-service-finder{
  margin:4px auto 12px;
  position:relative;
  width:min(94vw,920px);
  z-index:60;
}

.public-service-finder__form{
  align-items:center;
  background:rgba(255,255,255,.9);
  border:1px solid #caddeb;
  border-radius:14px;
  box-shadow:0 14px 34px rgba(35,91,138,.15);
  display:flex;
  gap:10px;
  min-height:54px;
  padding:7px 16px;
  position:relative;
  text-align:left;
  transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
}

.public-service-finder__form:focus-within{
  border-color:var(--cliseek-primary);
  box-shadow:0 0 0 3px rgba(57,170,240,.14),0 16px 36px rgba(35,91,138,.18);
}

.public-service-finder__form>i{
  color:var(--cliseek-primary);
  flex:0 0 auto;
  font-size:1.35rem;
}

.public-service-finder__form>input{
  background:transparent;
  border:0;
  color:#172235;
  flex:1 1 auto;
  font:inherit;
  font-size:.95rem;
  min-width:0;
  outline:0;
  padding:7px 0;
}

.public-service-finder__form>input::placeholder{color:#708299;opacity:1}

.public-service-finder__controls{
  display:flex;
  flex:0 0 auto;
  gap:7px;
}

.public-service-native-select{
  clip:rect(0 0 0 0);
  clip-path:inset(50%);
  height:1px;
  overflow:hidden;
  position:absolute;
  white-space:nowrap;
  width:1px;
}

.public-service-select{
  min-width:132px;
  position:relative;
}

.public-service-select__button{
  align-items:center;
  background:#f4f9fd;
  border:1px solid #caddeb;
  border-radius:9px;
  color:#31445a;
  cursor:pointer;
  display:flex;
  font:inherit;
  font-size:.72rem;
  gap:8px;
  justify-content:space-between;
  min-height:36px;
  max-width:160px;
  outline:0;
  padding:0 10px;
  text-align:left;
  width:100%;
}

.public-service-select__button:hover,
.public-service-select__button:focus-visible,
.public-service-select.is-open .public-service-select__button{
  border-color:var(--cliseek-primary);
  box-shadow:0 0 0 2px rgba(57,170,240,.14);
}

.public-service-select__button span{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.public-service-select__button i{
  flex:0 0 auto;
  font-size:1rem;
  transition:transform .18s ease;
}

.public-service-select.is-open .public-service-select__button i{transform:rotate(180deg)}

.public-service-select__menu{
  background:#fff;
  border:1px solid #bfd6e7;
  border-radius:10px;
  box-shadow:0 16px 34px rgba(23,55,90,.22);
  display:grid;
  gap:3px;
  left:0;
  min-width:100%;
  overflow:hidden;
  padding:5px;
  position:absolute;
  top:calc(100% + 6px);
  z-index:140;
}

.public-service-select__menu[hidden]{display:none}

.public-service-select__option{
  align-items:center;
  background:transparent;
  border:0;
  border-radius:7px;
  color:#31445a;
  cursor:pointer;
  display:flex;
  font:inherit;
  font-size:.74rem;
  gap:6px;
  min-height:32px;
  padding:6px 8px;
  text-align:left;
  white-space:nowrap;
  width:100%;
}

.public-service-select__option i{color:transparent;font-size:1rem}
.public-service-select__option:hover,
.public-service-select__option:focus-visible{background:#eaf6ff;color:#166d9f;outline:0}
.public-service-select__option.is-selected{background:#dff2fd;color:#126f9f;font-weight:700}
.public-service-select__option.is-selected i{color:#279ddd}

.public-service-results{
  background:#fff;
  border:1px solid #caddeb;
  border-radius:14px;
  box-shadow:0 22px 48px rgba(23,55,90,.24);
  left:0;
  max-height:min(calc(88px * 4 + 14px),60dvh);
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:7px;
  position:absolute;
  right:0;
  box-shadow:0 1px 0 rgba(40,95,145,.14);
  top:calc(100% + 8px);
  z-index:100;
}

.public-service-results[hidden]{display:none}

.public-service-result{
  align-items:center;
  border:1px solid transparent;
  border-radius:10px;
  color:#172235;
  display:grid;
  gap:12px;
  grid-template-columns:auto minmax(0,1fr) auto;
  min-height:88px;
  padding:11px 12px;
  text-decoration:none;
  transition:background .18s ease,border-color .18s ease,transform .18s ease;
}

.public-service-result:hover,
.public-service-result:focus-visible{
  background:#eef8ff;
  border-color:#c9e8fa;
  outline:0;
  transform:translateY(-1px);
}

.public-service-result__icon{
  align-items:center;
  background:#e7f6ff;
  border-radius:9px;
  color:#238fd2;
  display:flex;
  font-size:1.25rem;
  height:40px;
  justify-content:center;
  width:40px;
  overflow:hidden;
}

.public-service-result__icon img{
  display:block;
  height:100%;
  object-fit:cover;
  width:100%;
}

.public-service-result__icon.has-custom-logo{
  background:#fff;
  border:1px solid rgba(57,170,240,.3);
  border-radius:50%;
}

.public-service-result__icon.has-fallback-logo{
  background:transparent;
  border-radius:0;
  overflow:visible;
}

.public-service-result__icon.has-fallback-logo img{
  object-fit:contain;
}

.public-service-result__content{display:grid;gap:2px;min-width:0}
.public-service-result__content>strong{font-size:.92rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.public-service-result__content>span{align-items:center;color:#66778c;display:flex;font-size:.76rem;gap:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.public-service-result__content i{color:#329fdf;font-size:.9rem}
.public-service-result__price{color:#1687ca;font-size:.9rem;white-space:nowrap}
.public-service-results__message{align-items:center;color:#66778c;display:flex;gap:8px;justify-content:center;margin:0;padding:17px;text-align:center}
.public-service-results__message i{color:var(--cliseek-primary);font-size:1.15rem}

:root[data-theme="dark"] .public-service-finder__form,
:root[data-theme="dark"] .public-service-results{
  background:#0e1825;
  border-color:#2b4057;
  box-shadow:0 18px 42px rgba(0,0,0,.34);
}
:root[data-theme="dark"] .public-service-finder__form>input{color:#eef6ff}
:root[data-theme="dark"] .public-service-finder__form>input::placeholder{color:#8fa2b8}
:root[data-theme="dark"] .public-service-select__button{background:#132235;border-color:#31475f;color:#dbe8f5}
:root[data-theme="dark"] .public-service-select__menu{background:#101c2a;border-color:#31475f;box-shadow:0 18px 38px rgba(0,0,0,.45)}
:root[data-theme="dark"] .public-service-select__option{color:#c7d5e5}
:root[data-theme="dark"] .public-service-select__option:hover,
:root[data-theme="dark"] .public-service-select__option:focus-visible{background:#1a3044;color:#7dd3fc}
:root[data-theme="dark"] .public-service-select__option.is-selected{background:#173650;color:#89dcff}
:root[data-theme="dark"] .public-service-select__option.is-selected i{color:#62c9f5}
:root[data-theme="dark"] .public-service-result{color:#eef6ff}
:root[data-theme="dark"] .public-service-result:hover,
:root[data-theme="dark"] .public-service-result:focus-visible{background:#162638;border-color:#31506a}
:root[data-theme="dark"] .public-service-result__icon{background:#14324a;color:#62c9f5}
:root[data-theme="dark"] .public-service-result__content>span,
:root[data-theme="dark"] .public-service-results__message{color:#a9b8ca}
:root[data-theme="dark"] .public-service-result__price{color:#6ed0f7}

@media(max-width:760px){
  .public-service-finder{
    margin:0 auto 10px;
    width:min(92vw,420px);
  }
  .public-service-finder__form{border-radius:12px;display:grid;grid-template-columns:auto minmax(0,1fr);min-height:48px;padding:7px 10px}
  .public-service-finder__form>input{font-size:.8rem}
  .public-service-finder__controls{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;width:100%}
  .public-service-select{min-width:0;width:100%}
  .public-service-select__button{max-width:none;width:100%}
  .public-service-result{gap:9px;grid-template-columns:auto minmax(0,1fr);padding:10px}
  .public-service-result__price{grid-column:2;justify-self:start}
  .public-service-results{max-height:55dvh}
}

/* Pie público: redes y copyright. */
footer{
  align-items:center;
  flex-direction:column;
  gap:10px;
}

.footer-social{
  align-items:center;
  display:flex;
  gap:30px;
  justify-content:center;
}

.footer-social a{
  align-items:center;
  display:inline-flex;
  justify-content:center;
}

.footer-copyright{
  color:var(--cliseek-muted);
  font-size:clamp(.68rem,1.2vw,.8rem);
  line-height:1.45;
  margin:0;
}

.footer-copyright span{
  color:var(--cliseek-primary);
  font-weight:700;
}

/* Topbar fija al borde superior, sin apariencia de tarjeta flotante. */
.public-options-bar{
  border-left:0;
  border-radius:0;
  border-right:0;
  border-top:0;
  left:0;
  padding-top:calc(6px + env(safe-area-inset-top));
  right:0;
  top:0;
  transform:none;
  width:100%;
}

:root[data-theme="dark"] .public-options-bar{
  box-shadow:0 1px 0 #293b50;
}

@media(max-width:760px){
  .public-options-bar{
    left:0;
    padding-top:calc(5px + env(safe-area-inset-top));
    right:0;
    top:0;
    transform:none;
    width:100%;
  }
}

/* Distribución completa del topbar en celulares muy angostos. */
@media(max-width:480px){
  body{
    padding-top:calc(116px + env(safe-area-inset-top));
  }

  .public-options-bar{
    display:grid;
    gap:2px 3px;
    grid-template-columns:repeat(6,minmax(0,1fr));
    grid-template-rows:38px 48px;
    overflow:visible;
    padding:calc(4px + env(safe-area-inset-top)) 5px 5px;
  }

  .public-options-bar .public-theme-switch{
    grid-column:1/3;
    grid-row:1;
    justify-self:stretch;
    min-height:34px;
    width:100%;
  }

  .public-options-bar .pwa-install-button{
    grid-column:3/7;
    grid-row:1;
    height:34px;
    min-height:34px;
    width:100%;
  }

  .public-options-bar .pwa-install-button span{
    clip:auto;
    font-size:.64rem;
    height:auto;
    overflow:visible;
    position:static;
    white-space:nowrap;
    width:auto;
  }

  .public-options-bar .category{
    flex:none;
    grid-row:2;
    min-height:46px;
    padding:3px 1px;
    scroll-snap-align:none;
  }

  .public-options-bar .category i{
    font-size:1.05rem;
  }

  .public-options-bar .category span{
    display:-webkit-box;
    font-size:clamp(.4rem,2vw,.52rem);
    line-height:1.05;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:normal;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
  }
}

@media(max-width:300px){
  .public-options-bar .pwa-install-button span{
    font-size:.58rem;
  }

  .public-options-bar .category span{
    font-size:.4rem;
  }
}

/* Agrupa los accesos del menú en anchos móviles sin desperdiciar espacio. */
@media(min-width:481px) and (max-width:760px){
  .public-options-bar{
    gap:1px;
    justify-content:center;
  }

  .public-options-bar .category{
    flex:0 1 58px;
    min-width:48px;
    padding-left:1px;
    padding-right:1px;
  }

  .public-options-bar .public-theme-switch{
    flex-basis:66px;
  }

  .public-options-bar .pwa-install-button{
    flex-basis:40px;
    min-width:40px;
    width:40px;
  }
}

@media(max-width:480px){
  .public-options-bar{
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
    grid-template-columns:repeat(6,minmax(0,54px));
    justify-content:center;
  }
}

/* En escritorio, los accesos forman un grupo compacto centrado entre controles. */
@media(min-width:900px){
  .public-options-bar{
    column-gap:5px;
    grid-template-columns:auto minmax(12px,1fr) repeat(6,minmax(74px,96px)) minmax(12px,1fr) auto;
  }

  .public-options-bar>.public-theme-switch{grid-column:1}
  .public-options-bar>.category:nth-child(2){grid-column:3}
  .public-options-bar>.category:nth-child(3){grid-column:4}
  .public-options-bar>.category:nth-child(4){grid-column:5}
  .public-options-bar>.category:nth-child(5){grid-column:6}
  .public-options-bar>.category:nth-child(6){grid-column:7}
  .public-options-bar>.category:nth-child(7){grid-column:8}
  .public-options-bar>.pwa-install-button{grid-column:10}

  .public-options-bar>.category{
    padding-left:3px;
    padding-right:3px;
  }
}

/* Marca a la izquierda y controles generales agrupados a la derecha en PC. */
.public-options-bar__brand{
  display:none;
}

@media(min-width:900px){
  .public-options-bar{
    align-items:center;
    column-gap:4px;
    grid-template-columns:auto minmax(12px,1fr) repeat(6,minmax(74px,96px)) minmax(12px,1fr) auto auto;
    grid-template-rows:auto;
  }

  .public-options-bar>*{grid-row:1}

  .public-options-bar__brand{
    align-items:center;
    align-self:center;
    color:var(--agenduy-sky);
    display:inline-flex;
    gap:7px;
    grid-column:1;
    justify-self:start;
    min-width:max-content;
    text-decoration:none;
  }

  .public-options-bar__brand img{
    display:block;
    filter:drop-shadow(0 0 4px rgba(57,170,240,.28));
    height:42px;
    object-fit:contain;
    width:42px;
  }

  .public-options-bar__brand span{
    color:var(--agenduy-sky);
    font-size:1.08rem;
    font-weight:700;
    letter-spacing:.01em;
  }

  .public-options-bar>#btnRubrosDisponibles{grid-column:3}
  .public-options-bar>#btnCursos{grid-column:4}
  .public-options-bar>#btnPlanes{grid-column:5}
  .public-options-bar>#btnBeneficios{grid-column:6}
  .public-options-bar>#btnBuscarServicios{grid-column:7}
  .public-options-bar>#btnSobreNosotros{grid-column:8}
  .public-options-bar>.public-theme-switch{grid-column:10;margin-right:0}
  .public-options-bar>.pwa-install-button{grid-column:11}
}

:root[data-theme="dark"] .public-options-bar__brand,
:root[data-theme="dark"] .public-options-bar__brand span{
  color:#6dcbf5;
}

:root[data-theme="dark"] .rubro-selector-card__registered{
  background:linear-gradient(135deg,#62dc8b,#31bd59);
  border-color:#72e59a;
  color:#062f18;
  box-shadow:0 12px 26px rgba(34,197,94,.2);
}

:root[data-theme="dark"] .rubro-selector-card__registered:hover{
  box-shadow:0 16px 32px rgba(34,197,94,.3);
  filter:brightness(1.05);
}

/* Icono semántico del modal Sobre Nosotros. */
.about-modal__icon{
  align-items:center;
  display:inline-flex;
  height:34px;
  justify-content:center;
  width:34px;
}

.about-modal__icon i{
  color:var(--cliseek-primary);
  font-size:1.8rem;
  line-height:1;
}

.about-modal__header{
  align-items:center;
  column-gap:10px;
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  padding-right:48px;
}

.about-modal__icon,
.about-modal__title{
  grid-row:1;
}

.about-modal__icon{grid-column:1}
.about-modal__title{grid-column:2}

.search-modal__title-row{
  align-items:center;
  display:flex;
  gap:10px;
  min-width:0;
}

.search-modal__title-row>i{
  color:var(--cliseek-primary);
  flex:0 0 auto;
  font-size:1.75rem;
  line-height:1;
}

.public-options-bar .pwa-install-button{
  border-radius:999px;
}

/* Directorio de negocios presentado como lista en lugar de cuadrícula. */
#modal-buscar .search-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:8px;
  max-height:min(352px,max(140px,calc(100dvh - 245px)));
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  padding-right:5px;
  scrollbar-color:var(--cliseek-primary) transparent;
  scrollbar-width:thin;
}

#modal-buscar .search-card{
  border-radius:12px;
  min-height:82px;
  padding:10px 14px;
}

#modal-buscar .search-grid::-webkit-scrollbar{width:7px}
#modal-buscar .search-grid::-webkit-scrollbar-track{background:transparent}
#modal-buscar .search-grid::-webkit-scrollbar-thumb{
  background:var(--cliseek-primary);
  border:2px solid transparent;
  border-radius:999px;
  background-clip:padding-box;
}
#modal-buscar .search-grid::-webkit-scrollbar-thumb:hover{background:var(--cliseek-primary-2);background-clip:padding-box}

#modal-buscar .search-card:hover{
  transform:translateX(3px);
}

#modal-buscar .search-card__link{
  align-items:center;
  display:grid;
  gap:14px;
  grid-template-columns:62px minmax(0,1fr);
  text-align:left;
}

#modal-buscar .search-card__avatar{
  height:62px;
  width:62px;
}

#modal-buscar .search-card__meta h4{
  margin-bottom:3px;
}

@media(max-width:640px){
  #modal-buscar .search-grid{gap:7px;max-height:min(309px,max(120px,calc(100dvh - 220px)))}
  #modal-buscar .search-card{min-height:72px;padding:9px 10px}
  #modal-buscar .search-card__link{gap:11px;grid-template-columns:52px minmax(0,1fr)}
  #modal-buscar .search-card__avatar{height:52px;width:52px}
  #modal-buscar .search-card__meta h4{font-size:.9rem}
  #modal-buscar .search-card__meta p{font-size:.76rem}
}

@media(min-width:761px){
  .public-service-finder__form{
    border-radius:999px;
    padding-left:18px;
    padding-right:9px;
  }
}

@media(max-width:760px){
  .public-service-result{
    grid-template-columns:auto minmax(0,1fr) auto;
  }

  .public-service-result__price{
    align-self:center;
    grid-column:3;
    grid-row:1;
    justify-self:end;
    text-align:right;
  }
}

/* En teléfonos angostos, los controles generales salen del topbar y forman
   un pequeño dock flotante vertical en la esquina inferior derecha. */
@media(max-width:480px){
  body{
    padding-top:calc(46px + env(safe-area-inset-top));
  }

  .public-service-finder{
    margin-top:10px;
  }

  .public-options-bar{
    grid-template-columns:repeat(6,minmax(0,48px));
    grid-template-rows:38px;
    gap:1px;
    padding:calc(2px + env(safe-area-inset-top)) 3px 2px;
  }

  .public-options-bar .category{
    grid-row:1;
    min-height:38px;
    padding:2px 0;
    gap:1px;
  }

  .public-options-bar>#btnRubrosDisponibles{grid-column:1}
  .public-options-bar>#btnCursos{grid-column:2}
  .public-options-bar>#btnPlanes{grid-column:3}
  .public-options-bar>#btnBeneficios{grid-column:4}
  .public-options-bar>#btnBuscarServicios{grid-column:5}
  .public-options-bar>#btnSobreNosotros{grid-column:6}

  .public-options-bar .category i{
    font-size:.9rem;
  }

  .public-options-bar .category span{
    font-size:clamp(.34rem,1.8vw,.44rem);
    line-height:1;
  }

  .public-options-bar::after{
    content:"";
    position:fixed;
    right:calc(8px + env(safe-area-inset-right));
    bottom:calc(8px + env(safe-area-inset-bottom));
    width:50px;
    height:98px;
    border:1px solid rgba(70,137,190,.3);
    border-radius:999px;
    background:rgba(247,251,255,.9);
    box-shadow:0 12px 30px rgba(20,62,98,.24);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
  }

  .public-options-bar .public-theme-switch,
  .public-options-bar .pwa-install-button{
    position:fixed;
    top:auto;
    right:calc(13px + env(safe-area-inset-right));
    left:auto;
    width:40px;
    height:40px;
    min-width:40px;
    min-height:40px;
    padding:0;
    border-radius:50%;
    z-index:1;
  }

  .public-options-bar .public-theme-switch{
    bottom:calc(59px + env(safe-area-inset-bottom));
    display:grid;
    place-items:center;
  }

  .public-options-bar .public-theme-switch__track,
  .public-options-bar .public-theme-switch > .bx-sun{
    display:none;
  }

  .public-options-bar .public-theme-switch > .bx-moon{
    display:block;
    font-size:1.2rem;
  }

  :root[data-theme="dark"] .public-options-bar .public-theme-switch > .bx-sun{
    display:block;
  }

  :root[data-theme="dark"] .public-options-bar .public-theme-switch > .bx-moon{
    display:none;
  }

  .public-options-bar .pwa-install-button{
    bottom:calc(13px + env(safe-area-inset-bottom));
  }

  .public-options-bar .pwa-install-button span{
    clip:rect(0 0 0 0);
    height:1px;
    overflow:hidden;
    position:absolute;
    white-space:nowrap;
    width:1px;
  }

  :root[data-theme="dark"] .public-options-bar::after{
    background:rgba(12,21,33,.92);
    border-color:#31445a;
    box-shadow:0 12px 30px rgba(0,0,0,.42);
  }
}

/* Estado compartido mientras se obtiene el contenido de los modales públicos. */
.public-modal-loading{
  align-items:center;
  background:rgba(255,255,255,.96);
  border:1px solid #cfe0ed;
  border-radius:18px;
  box-shadow:0 22px 55px rgba(24,65,101,.22);
  color:#172235;
  display:flex;
  flex-direction:column;
  gap:14px;
  justify-content:center;
  margin:auto;
  min-height:190px;
  padding:30px;
  text-align:center;
  width:min(360px,90vw);
}

.public-modal-loading__logo{
  display:block;
  filter:drop-shadow(0 6px 12px rgba(57,170,240,.28));
  height:64px;
  object-fit:contain;
  width:64px;
}

.public-modal-loading p{
  font-size:.95rem;
  font-weight:700;
  margin:0;
}

.public-modal-loading__bar{
  background:#dce7f2;
  border-radius:999px;
  height:7px;
  overflow:hidden;
  width:min(230px,100%);
}

.public-modal-loading__bar span{
  animation:publicModalLoading 1.25s ease-in-out infinite;
  background:linear-gradient(90deg,var(--cliseek-primary),var(--cliseek-primary-2));
  border-radius:inherit;
  display:block;
  height:100%;
  width:38%;
}

:root[data-theme="dark"] .public-modal-loading{
  background:#0e1622;
  border-color:#2b3d52;
  box-shadow:0 24px 60px rgba(0,0,0,.5);
  color:#f1f6fc;
}

:root[data-theme="dark"] .public-modal-loading__bar{
  background:#243448;
}

@keyframes publicModalLoading{
  0%{transform:translateX(-110%)}
  100%{transform:translateX(270%)}
}

@media(prefers-reduced-motion:reduce){
  .public-modal-loading__bar span{animation:none}
}

/* Planes ya aporta su propia superficie: el contenedor genérico no debe
   dibujar una segunda tarjeta alrededor. */
#modal-planes .u-modal__content{
  background:transparent;
  border:0;
  box-shadow:none;
  padding:0;
}

#modal-planes .u-modal__dialog{
  width:min(720px,94vw);
}

#modal-planes .plan-modal{
  gap:8px;
  max-height:min(88dvh,560px);
}

#modal-planes .plan-header{
  justify-content:center;
  padding-left:52px;
  padding-right:52px;
  position:relative;
  text-align:center;
}

#modal-planes .plan-header h3{
  align-items:center;
  display:inline-flex;
  gap:9px;
  justify-content:center;
  text-align:center;
}

#modal-planes .plan-header h3 i{
  color:var(--cliseek-primary);
  flex:0 0 auto;
  font-size:1.45em;
  line-height:1;
}

#modal-planes .plan-close{
  position:absolute;
  right:12px;
  top:50%;
  transform:translateY(-50%);
}

#modal-planes .plan-item{
  padding-left:26px;
}

#modal-planes .plan-item::before{
  color:#22c55e;
  content:"\2713";
  display:block;
  font-size:1rem;
  font-weight:900;
  left:0;
  line-height:1.5;
  position:absolute;
  top:0;
}

#modal-planes .plan-body{
  padding:12px 26px 24px;
}

@media(max-width:600px){
  #modal-planes .u-modal__dialog{width:min(94vw,520px)}
  #modal-planes .plan-body{padding:10px 18px 20px}
}

/* Acceso de negocios: tratamiento visual moderno y coherente entre temas. */
#modal-business-login .business-login-modal{
  border-radius:24px;
  overflow:hidden;
  padding:clamp(24px,5vw,34px);
  position:relative;
}

#modal-business-login .business-login-modal::before{
  background:linear-gradient(90deg,var(--cliseek-primary),var(--cliseek-primary-2),#7aa7ff);
  content:"";
  height:4px;
  left:0;
  position:absolute;
  right:0;
  top:0;
}

#modal-business-login .business-login-modal__header{
  align-items:center;
  margin-bottom:14px;
}

#modal-business-login .business-login-modal__header h3{
  align-items:center;
  display:flex;
  gap:12px;
}

#modal-business-login .business-login-modal__header h3 i{
  align-items:center;
  background:rgba(57,170,240,.12);
  border:1px solid rgba(57,170,240,.24);
  border-radius:12px;
  color:var(--cliseek-primary);
  display:inline-flex;
  flex:0 0 42px;
  font-size:1.45rem;
  height:42px;
  justify-content:center;
}

#modal-business-login .business-login-modal__close{
  align-items:center;
  border:1px solid #d5e3ef !important;
  border-radius:50% !important;
  display:flex;
  flex:0 0 38px;
  justify-content:center;
}

#modal-business-login .business-login-modal__intro{
  margin-bottom:22px;
}

#modal-business-login .business-login-form{
  gap:16px;
}

#modal-business-login .business-login-form__field{
  gap:7px;
}

#modal-business-login .business-login-form__control{
  display:block;
  position:relative;
}

#modal-business-login .business-login-form__control>i{
  color:#7b8da2;
  font-size:1.2rem;
  left:14px;
  pointer-events:none;
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  transition:color .2s ease;
  z-index:1;
}

#modal-business-login .business-login-form__control input{
  border-color:#c8d9e7;
  border-radius:12px;
  min-height:50px;
  padding-left:44px;
  padding-right:48px;
  transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
}

#modal-business-login .password-toggle--login{right:8px}

#modal-business-login .business-login-form__control:focus-within>i{
  color:var(--cliseek-primary);
}

#modal-business-login .business-login-form__remember input{
  appearance:none;
  background:#fff;
  border:1px solid #b9cad9;
  border-radius:5px;
  display:grid;
  flex:0 0 19px;
  height:19px;
  place-content:center;
  width:19px;
}

#modal-business-login .business-login-form__remember input::before{
  color:#fff;
  content:"\2713";
  font-size:.78rem;
  font-weight:900;
  opacity:0;
  transform:scale(.5);
  transition:opacity .15s ease,transform .15s ease;
}

#modal-business-login .business-login-form__remember input:checked{
  background:var(--cliseek-primary);
  border-color:var(--cliseek-primary);
}

#modal-business-login .business-login-form__remember input:checked::before{
  opacity:1;
  transform:scale(1);
}

#modal-business-login .business-login-form__submit{
  align-items:center;
  border-radius:12px;
  display:flex;
  gap:9px;
  justify-content:center;
  margin-top:2px;
  min-height:50px;
  transition:filter .2s ease,transform .2s ease,box-shadow .2s ease;
}

#modal-business-login .business-login-form__submit i{
  font-size:1.25rem;
}

#modal-business-login .business-login-form__submit:hover{
  box-shadow:0 17px 32px rgba(45,126,212,.28);
  filter:brightness(1.04);
  transform:translateY(-1px);
}

:root[data-theme="dark"] #modal-business-login .business-login-modal__close{
  border-color:#344960 !important;
}

:root[data-theme="dark"] #modal-business-login .business-login-form__control input{
  background:#0a1420;
  border-color:#344960;
}

:root[data-theme="dark"] #modal-business-login .business-login-form__remember input{
  background:#0a1420;
  border-color:#52657a;
}

:root[data-theme="dark"] #modal-business-login .business-login-form__remember input:checked{
  background:var(--cliseek-primary);
  border-color:var(--cliseek-primary);
}

@media(max-width:480px){
  #modal-business-login .business-login-modal__header h3 i{
    flex-basis:38px;
    height:38px;
  }
}

.about-modal__company-link{
  color:var(--cliseek-primary);
  font-weight:700;
  text-decoration:none;
  text-underline-offset:3px;
  transition:color .2s ease,text-decoration-color .2s ease;
}

.about-modal__company-link:hover,
.about-modal__company-link:focus-visible{
  color:var(--cliseek-primary-2);
  text-decoration:underline;
}
