/* ============================================================================
   VILLANUEVA · CSS BASE  (Sistema de diseño Universidad Villanueva)
   ----------------------------------------------------------------------------
   Hoja de estilos de partida para cualquier interfaz web de la Universidad.
   Copia este archivo + la carpeta assets/ (fuentes y logo) a tu proyecto y
   enlázalo:  <link rel="stylesheet" href="villanueva-base.css">
   (o pega su contenido dentro de un <style> si prefieres un HTML autónomo).

   Contiene: fuentes, variables de marca, reset, tipografía y los componentes
   base (botones, tarjetas, KPI, eyebrow, section-label, tabs, chips/estados,
   formularios, modal, tooltip informativo, cabecera y pie).
   ============================================================================ */

/* ---------- FUENTE CORPORATIVA · AKKURAT ---------- */
@font-face{font-family:'Akkurat';src:url('assets/fonts/AkkuratLL-Light.woff2')  format('woff2');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:'Akkurat';src:url('assets/fonts/AkkuratLL-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Akkurat';src:url('assets/fonts/AkkuratLL-Bold.woff2')    format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Akkurat';src:url('assets/fonts/AkkuratLL-Italic.woff2')  format('woff2');font-weight:400;font-style:italic;font-display:swap}

/* ---------- VARIABLES DE MARCA (design tokens) ---------- */
:root{
  /* Amarillo corporativo — ACCIÓN (CTA, franjas de acento) */
  --uv-amarillo:       #ffbc00;
  --uv-amarillo-osc:   #e0a500;
  --uv-amarillo-claro: #fff4d6;
  /* Azul corporativo — ACENTO / interacción (eyebrows, enlaces, foco, activo) */
  --uv-azul:           #5058ff;
  --uv-azul-osc:       #3d43d6;
  --uv-azul-claro:     #ecedff;
  /* Neutros */
  --uv-negro:          #111111;   /* titulares y secciones oscuras */
  --uv-tinta:          #1a1a1a;   /* texto base */
  --uv-gris-medio:     #5c5c66;   /* texto secundario */
  --uv-gris-suave:     #9a9aa4;   /* texto terciario / iconos */
  --uv-blanco:         #ffffff;   /* fondo POR DEFECTO de la página */
  --uv-fondo:          #f3f3f5;   /* superficie de CONTRASTE: úsala solo cuando un bloque o elemento deba destacar sobre el blanco */
  --uv-borde:          #e4e4e8;
  /* Estados semánticos */
  --uv-verde:          #1a7f43;   /* positivo / correcto */
  --uv-verde-bg:       #e2f3e9;
  --uv-rojo:           #b3261e;   /* negativo / atención */
  --uv-rojo-bg:        #fdecec;
  --uv-ambar:          #6b5100;   /* aviso */
  --uv-ambar-bg:       #fff8e6;
  /* Elevación y forma */
  --uv-sombra:         none;                        /* SIN sombra en reposo: las superficies se definen con el borde */
  --uv-sombra-hover:   0 4px 12px rgba(0,0,0,.10);  /* elevación solo al pasar el ratón (opcional) */
  --uv-radio:          0;         /* ESQUINAS RECTAS: rasgo de marca */
  /* Tipografía */
  --uv-font: 'Akkurat', 'Segoe UI', system-ui, -apple-system, 'Helvetica Neue', Arial, sans-serif;
  /* Layout */
  --uv-ancho: 1200px;
}

/* ---------- RESET ---------- */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--uv-font);background:var(--uv-blanco);color:var(--uv-tinta);line-height:1.5;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--uv-azul-osc)}

/* ---------- TIPOGRAFÍA ---------- */
h1,h2,h3,h4,h5{color:var(--uv-negro);font-weight:700;line-height:1.15}
.uv-eyebrow{display:inline-flex;align-items:center;gap:8px;background:var(--uv-azul-claro);color:var(--uv-azul-osc);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:5px 12px;border-radius:var(--uv-radio)}
.uv-section-label{font-size:15px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin:34px 0 16px;display:flex;align-items:center;gap:10px}
.uv-section-label::before{content:"";width:4px;height:18px;background:var(--uv-azul)}

/* ---------- LAYOUT ---------- */
.uv-wrap{max-width:var(--uv-ancho);margin:0 auto;padding:26px 40px 60px}

/* ---------- BOTONES ---------- */
.uv-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:inherit;font-weight:700;font-size:14px;line-height:1;cursor:pointer;padding:12px 22px;border:2px solid transparent;border-radius:var(--uv-radio);transition:background .15s,color .15s,border-color .15s,transform .12s,box-shadow .18s}
.uv-btn:hover{transform:translateY(-2px);text-decoration:none}
.uv-btn svg{width:16px;height:16px}
.uv-btn--primary{background:var(--uv-amarillo);color:var(--uv-negro);border-color:var(--uv-amarillo)}
.uv-btn--primary:hover{background:var(--uv-amarillo-osc);border-color:var(--uv-amarillo-osc)}
.uv-btn--dark{background:var(--uv-negro);color:#fff;border-color:var(--uv-negro)}
.uv-btn--dark:hover{background:#000}
.uv-btn--ghost{background:var(--uv-blanco);color:var(--uv-negro);border:1.5px solid var(--uv-borde)}
.uv-btn--ghost:hover{border-color:var(--uv-negro)}

/* ---------- TARJETAS ---------- */
.uv-card{background:var(--uv-blanco);border:1px solid var(--uv-borde);border-radius:var(--uv-radio);box-shadow:var(--uv-sombra);padding:20px 24px}
.uv-card--accent{border-top:3px solid var(--uv-amarillo)}          /* franja de acento superior */
.uv-card--hover{transition:transform .18s,box-shadow .18s}
.uv-card--hover:hover{transform:translateY(-3px);box-shadow:var(--uv-sombra-hover)}

/* KPI (tarjeta de dato destacado) */
.uv-kpi{background:var(--uv-blanco);border:1px solid var(--uv-borde);border-top:3px solid var(--uv-amarillo);box-shadow:var(--uv-sombra);padding:20px 24px 22px;transition:transform .18s,box-shadow .18s}
.uv-kpi:hover{transform:translateY(-3px);box-shadow:var(--uv-sombra-hover)}
.uv-kpi__ico{width:42px;height:42px;background:var(--uv-amarillo-claro);color:var(--uv-amarillo-osc);display:flex;align-items:center;justify-content:center}
.uv-kpi__valor{font-size:34px;font-weight:700;line-height:1}
.uv-kpi__valor .u{font-size:15px;font-weight:600;color:var(--uv-gris-suave)}
.uv-kpi__lbl{font-size:13px;font-weight:600;color:var(--uv-gris-medio);margin-top:8px}

/* ---------- PÍLDORAS DE ESTADO / DELTA ---------- */
.uv-delta{font-size:12px;font-weight:700;padding:3px 9px;border-radius:20px}
.uv-delta--up{color:var(--uv-verde);background:rgba(26,127,67,.12)}
.uv-delta--down{color:var(--uv-rojo);background:rgba(179,38,30,.12)}
.uv-delta--flat{color:var(--uv-gris-medio);background:rgba(92,92,102,.12)}

/* ---------- ETIQUETAS DE ESTADO (abierto/vencido/etc.) ---------- */
.uv-tag{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:.14rem .5rem;display:inline-block}
.uv-tag--ok{background:var(--uv-verde-bg);color:var(--uv-verde)}
.uv-tag--info{background:var(--uv-azul-claro);color:var(--uv-azul-osc)}
.uv-tag--off{background:var(--uv-borde);color:var(--uv-gris-medio)}

/* ---------- AVISOS / BANNERS ---------- */
.uv-banner{display:flex;align-items:flex-start;gap:12px;padding:14px 18px;border:1px solid;font-size:13.5px;line-height:1.5}
.uv-banner--ok{background:var(--uv-verde-bg);border-color:#b7e2c6;color:#0f5a2e}
.uv-banner--warn{background:var(--uv-ambar-bg);border-color:#ffe08a;color:var(--uv-ambar)}
.uv-banner--error{background:var(--uv-rojo-bg);border-color:#f3b7b2;color:#7a1c16}

/* ---------- FORMULARIOS ---------- */
.uv-label{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--uv-gris-medio)}
.uv-input,.uv-select{width:100%;font-family:inherit;font-size:14px;color:var(--uv-negro);background:var(--uv-blanco);border:1.5px solid var(--uv-borde);border-radius:var(--uv-radio);padding:11px 13px;transition:border-color .15s,box-shadow .15s}
.uv-input:hover,.uv-select:hover{border-color:var(--uv-azul)}
.uv-input:focus,.uv-select:focus{outline:none;border-color:var(--uv-azul);box-shadow:0 0 0 3px rgba(80,88,255,.25)}

/* ---------- PESTAÑAS ---------- */
.uv-tabs{display:inline-flex;gap:6px;background:var(--uv-fondo);padding:4px;border:1px solid var(--uv-borde);border-radius:var(--uv-radio)}
.uv-tab{border:none;background:transparent;padding:7px 14px;font-family:inherit;font-size:12.5px;font-weight:700;color:var(--uv-gris-medio);cursor:pointer}
.uv-tab.is-active{background:var(--uv-blanco);color:var(--uv-azul);box-shadow:0 1px 2px rgba(0,0,0,.12)}

/* ---------- CHIPS / AVATAR (excepción circular permitida) ---------- */
.uv-chip{display:inline-flex;align-items:center;gap:12px;background:var(--uv-fondo);border:1px solid var(--uv-borde);padding:8px 16px;border-radius:40px}
.uv-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--uv-amarillo),var(--uv-amarillo-osc));color:var(--uv-negro);font-weight:700;display:flex;align-items:center;justify-content:center}

/* ---------- CABECERA ---------- */
.uv-header{background:var(--uv-blanco);border-bottom:3px solid var(--uv-amarillo);padding:16px 40px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:50}
.uv-header__logo{height:46px;width:auto}
/* logo blanco sobre fondo oscuro: filtrar el SVG negro */
.uv-on-dark .uv-header__logo,.uv-logo--white{filter:brightness(0) invert(1)}

/* ---------- MODAL ---------- */
.uv-modal{position:fixed;inset:0;z-index:5000;background:rgba(17,17,17,.5);display:grid;place-items:center;padding:20px}
.uv-modal[hidden]{display:none}
.uv-modal__box{background:var(--uv-blanco);border-top:4px solid var(--uv-amarillo);box-shadow:0 20px 60px rgba(0,0,0,.32);width:100%;max-width:540px;max-height:90vh;overflow:auto;padding:26px 28px;position:relative}
.uv-modal__close{position:absolute;top:.6rem;right:.8rem;background:none;border:0;font-size:1.9rem;line-height:1;color:var(--uv-gris-medio);cursor:pointer}

/* ---------- TOOLTIP INFORMATIVO (icono ⓘ) ---------- */
.uv-info{position:relative;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;border:1.4px solid var(--uv-gris-suave);color:var(--uv-gris-medio);font-size:10px;font-weight:700;font-style:italic;cursor:help}
.uv-info:hover,.uv-info:focus{border-color:var(--uv-azul);color:var(--uv-azul);outline:none}
.uv-info__tip{position:absolute;z-index:2000;top:calc(100% + 9px);left:50%;transform:translateX(-50%) translateY(4px);width:280px;max-width:80vw;background:var(--uv-negro);color:#eef0f3;font-size:12px;font-weight:400;font-style:normal;line-height:1.55;text-align:left;padding:12px 14px;border-radius:10px;box-shadow:0 12px 34px rgba(0,0,0,.28);opacity:0;visibility:hidden;transition:opacity .15s,transform .15s;pointer-events:none}
.uv-info:hover .uv-info__tip,.uv-info:focus .uv-info__tip{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.uv-info__tip b{color:var(--uv-amarillo)}

/* ---------- PIE ---------- */
.uv-footer{background:var(--uv-negro);color:#fff;padding:2.5rem 0}
.uv-footer a{color:rgba(255,255,255,.82);font-weight:700}
.uv-footer a:hover{color:var(--uv-amarillo)}

/* ============================================================================
   PATRONES DE BLOQUE (landing)  ·  secciones compuestas listas para usar
   ============================================================================ */

/* Envoltorio de sección + cabecera de sección centrada */
.uv-section{padding:clamp(3rem,7vw,5.5rem) 0}
.uv-section--alt{background:var(--uv-fondo)}
.uv-section__head{text-align:center;max-width:640px;margin:0 auto 2.5rem}
.uv-section__head .uv-eyebrow{margin-bottom:.75rem}
.uv-section__title{font-size:clamp(1.7rem,4vw,2.4rem);margin-bottom:.5rem}
.uv-section__sub{color:var(--uv-gris-medio);font-size:1.05rem}

/* HERO (imagen + degradado oscuro + título + CTA) */
.uv-hero{position:relative;color:#fff;background:linear-gradient(90deg,rgba(0,0,0,.82) 0%,rgba(0,0,0,.55) 45%,rgba(0,0,0,.25) 100%),var(--uv-hero-img,#111) center/cover no-repeat}
.uv-hero__inner{max-width:var(--uv-ancho);margin:0 auto;padding:clamp(3.5rem,9vw,6.5rem) 40px}
.uv-hero h1{color:#fff;font-size:clamp(2.4rem,7vw,4rem);margin-bottom:.35rem}
.uv-hero__accent{width:64px;height:5px;background:var(--uv-amarillo);margin:1rem 0 1.5rem}
.uv-hero p{font-size:clamp(1.05rem,2.5vw,1.3rem);max-width:34rem;margin-bottom:2rem;color:rgba(255,255,255,.92)}

/* Rejilla de tarjetas de recurso (accesos rápidos) */
.uv-cardgrid{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.uv-links{display:flex;flex-direction:column;gap:.35rem;margin-top:.5rem}
.uv-links a{font-weight:700;font-size:.95rem;color:var(--uv-negro);text-decoration:none}
.uv-links a:hover{color:var(--uv-azul)}
.uv-links a::before{content:"›";margin-right:.45rem;color:var(--uv-amarillo-osc);font-weight:700}

/* CALENDARIO (tarjeta con franja amarilla + periodos con estado) */
.uv-calgrid{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.uv-calcard{background:var(--uv-blanco);border:1px solid var(--uv-borde);border-top:5px solid var(--uv-amarillo);padding:0}
.uv-calcard h3{font-size:1.2rem;padding:1.4rem 1.6rem;margin:0;border-bottom:1px solid var(--uv-borde)}
.uv-calcard__body{padding:.4rem 1.6rem 1.2rem}
.uv-periodo{padding:1rem 0;border-bottom:1px solid var(--uv-borde)}
.uv-periodo:last-child{border-bottom:0}
.uv-periodo__nombre{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--uv-azul)}
.uv-periodo__fechas{font-size:1.2rem;font-weight:700;color:var(--uv-negro)}
.uv-calcard.is-cerrada{opacity:.75;border-top-color:var(--uv-borde)}
.uv-calcard.is-cerrada h3{color:var(--uv-gris-medio)}
.uv-periodo.is-vencido .uv-periodo__fechas{color:var(--uv-gris-medio);text-decoration:line-through}

/* PESTAÑAS tipo píldora + panel (ayuda) */
.uv-pills{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-bottom:2rem}
.uv-pill{border:1px solid var(--uv-borde);background:var(--uv-blanco);color:var(--uv-tinta);font-family:inherit;font-weight:700;font-size:.95rem;padding:.7rem 1.4rem;cursor:pointer}
.uv-pill:hover{border-color:var(--uv-negro)}
.uv-pill.is-active{background:var(--uv-negro);color:#fff;border-color:var(--uv-negro)}
.uv-panel{background:var(--uv-fondo);border:1px solid var(--uv-borde);padding:clamp(1.5rem,4vw,2.5rem);max-width:760px;margin:0 auto}
.uv-panel[hidden]{display:none}

/* BUSCADOR (caja destacada con franja amarilla) */
.uv-finder{max-width:720px;margin:0 auto;background:var(--uv-blanco);border:1px solid var(--uv-borde);border-top:5px solid var(--uv-amarillo);padding:clamp(1.5rem,4vw,2.25rem)}
.uv-finder__label{display:block;font-size:1.35rem;font-weight:700;color:var(--uv-negro);margin-bottom:.35rem}
.uv-finder__help{color:var(--uv-gris-medio);font-size:.98rem;margin-bottom:1.1rem}

/* FAQ (acordeón) */
.uv-faq{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:.75rem}
.uv-faq__item{border:1px solid var(--uv-borde);background:var(--uv-blanco)}
.uv-faq__q{width:100%;text-align:left;background:none;border:0;cursor:pointer;font-family:inherit;font-size:1.05rem;font-weight:700;color:var(--uv-negro);padding:1.15rem 1.35rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.uv-faq__q:hover{color:var(--uv-azul)}
.uv-faq__q .chev{transition:transform .25s;color:var(--uv-amarillo-osc)}
.uv-faq__item.is-open .chev{transform:rotate(180deg)}
.uv-faq__a{max-height:0;overflow:hidden;transition:max-height .3s;padding:0 1.35rem}
.uv-faq__item.is-open .uv-faq__a{max-height:800px;padding-bottom:1.35rem}
.uv-faq__a p{color:var(--uv-gris-medio);margin-bottom:.6rem}

/* BOTÓN FLOTANTE (ayuda / acción persistente) */
.uv-fab{position:fixed;right:1.25rem;bottom:1.25rem;z-index:90;display:inline-flex;align-items:center;gap:.55rem;background:var(--uv-amarillo);color:var(--uv-negro);font-weight:700;font-size:.95rem;padding:.85rem 1.25rem;border:2px solid var(--uv-amarillo);cursor:pointer;font-family:inherit;transition:background .15s,transform .15s}
.uv-fab:hover{background:var(--uv-amarillo-osc);border-color:var(--uv-amarillo-osc);transform:translateY(-2px)}
.uv-fab svg{width:22px;height:22px}
@media (max-width:560px){.uv-fab .uv-fab__txt{display:none}.uv-fab{padding:.8rem;border-radius:50%}}

/* Cinta de aviso global (arriba del todo) */
.uv-notice{background:var(--uv-negro);color:#fff;font-size:13.5px;text-align:center;padding:10px 40px}
.uv-notice a{color:var(--uv-amarillo);font-weight:700}
.uv-notice--warn{background:var(--uv-ambar-bg);color:var(--uv-ambar)}

/* Pasos del proceso (timeline horizontal numerado) */
.uv-steps{display:grid;grid-template-columns:repeat(4,1fr);counter-reset:paso}
.uv-step{position:relative;padding:0 16px;text-align:center}
.uv-step::before{counter-increment:paso;content:counter(paso);display:grid;place-items:center;width:44px;height:44px;margin:0 auto 12px;background:var(--uv-amarillo);color:var(--uv-negro);font-weight:700;font-size:18px}
.uv-step::after{content:"";position:absolute;top:22px;left:calc(-50% + 22px);width:calc(100% - 44px);height:2px;background:var(--uv-borde);z-index:-1}
.uv-step:first-child::after{display:none}
.uv-step h4{font-size:15px;margin-bottom:4px}
.uv-step p{font-size:13px;color:var(--uv-gris-medio)}

/* Franja de cifras */
.uv-stats{background:var(--uv-negro);color:#fff;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding:40px}
.uv-stat{text-align:center}
.uv-stat .n{font-size:40px;font-weight:700;color:var(--uv-amarillo);line-height:1}
.uv-stat .l{font-size:13px;color:#c9cad1;margin-top:6px}

/* Franja CTA a ancho completo */
.uv-ctaband{background:var(--uv-amarillo);padding:40px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.uv-ctaband h3{font-size:24px;color:var(--uv-negro)}
.uv-ctaband p{color:#5a4a00;font-size:14px}

/* Feature con imagen (split) */
.uv-split{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--uv-borde)}
.uv-split__media{background:var(--uv-fondo) center/cover;min-height:260px}
.uv-split__body{padding:36px}
.uv-split__body h3{font-size:22px;margin-bottom:10px}
.uv-split__body p{color:var(--uv-gris-medio);margin-bottom:16px}

/* Timeline vertical de hitos */
.uv-timeline{position:relative;margin-left:8px;padding-left:26px;border-left:2px solid var(--uv-borde)}
.uv-tl{position:relative;padding:0 0 22px}
.uv-tl::before{content:"";position:absolute;left:-33px;top:2px;width:12px;height:12px;background:var(--uv-amarillo);border:2px solid #fff;border-radius:50%}
.uv-tl .fecha{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--uv-azul)}
.uv-tl h4{font-size:15px;margin:2px 0}
.uv-tl p{font-size:13px;color:var(--uv-gris-medio)}

/* Comparativa tipo "planes" */
.uv-plans{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.uv-plan{border:1px solid var(--uv-borde);padding:24px;background:#fff}
.uv-plan.is-dest{border-top:4px solid var(--uv-amarillo)}
.uv-plan h4{font-size:16px;margin-bottom:4px}
.uv-plan .precio{font-size:30px;font-weight:700;margin:8px 0}
.uv-plan ul{list-style:none;margin:14px 0;padding:0}
.uv-plan li{font-size:13.5px;color:var(--uv-gris-medio);padding:6px 0;border-bottom:1px solid var(--uv-borde)}

/* Testimonio / cita */
.uv-quote{border-left:4px solid var(--uv-amarillo);background:var(--uv-fondo);padding:24px 26px}
.uv-quote p{font-size:17px;line-height:1.5;margin-bottom:14px}
.uv-quote .autor{display:flex;align-items:center;gap:12px}

/* Banda de logos / acreditaciones */
.uv-logos{display:flex;flex-wrap:wrap;gap:32px;align-items:center;justify-content:center;padding:28px;background:var(--uv-fondo)}
.uv-logos .l{font-weight:700;color:var(--uv-gris-suave);font-size:18px}

/* Lista de descargas */
.uv-download{display:flex;align-items:center;gap:14px;border:1px solid var(--uv-borde);padding:14px 16px;margin-bottom:10px}
.uv-download svg{color:var(--uv-azul);flex:0 0 auto}
.uv-download .meta{font-size:12px;color:var(--uv-gris-suave)}
.uv-download a{margin-left:auto;font-weight:700;color:var(--uv-azul)}

/* Contacto / ubicación */
.uv-contact{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--uv-borde)}
.uv-contact__info{padding:32px}
.uv-contact__info li{list-style:none;padding:8px 0;font-size:14px}
.uv-contact__map{background:var(--uv-fondo);min-height:240px;display:grid;place-items:center;color:var(--uv-gris-suave)}

/* Cuenta atrás / estado de plazo */
.uv-countdown{display:flex;align-items:center;gap:18px;flex-wrap:wrap;border:1px solid var(--uv-borde);border-left:5px solid var(--uv-amarillo);padding:18px 22px;background:#fff}
.uv-countdown .estado{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--uv-verde)}
.uv-countdown .dias{font-size:30px;font-weight:700}

/* Banner de cookies */
.uv-cookie{position:fixed;left:20px;bottom:20px;z-index:70;max-width:420px;background:var(--uv-negro);color:#fff;padding:18px 20px;font-size:13px}
.uv-cookie a{color:var(--uv-amarillo)}
.uv-cookie .row{display:flex;gap:8px;margin-top:12px}

/* Índice por anclas (barra horizontal) */
.uv-anchornav{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid var(--uv-borde);padding-bottom:10px;margin-bottom:20px}
.uv-anchornav a{font-size:13px;font-weight:700;color:var(--uv-gris-medio);text-decoration:none;padding:6px 10px}
.uv-anchornav a.is-active{color:var(--uv-azul);border-bottom:2px solid var(--uv-azul)}

/* Navegación lateral tipo índice con indicador (scrollspy).
   Aparece solo en pantallas anchas (>=1500px). El indicador lo mueve villanueva-ui.js. */
.uv-sidenav{display:none}
@media (min-width:1500px){
  .uv-sidenav{display:block;position:fixed;top:50%;transform:translateY(-50%);left:26px;width:140px;z-index:40;padding-right:14px;border-right:1px solid var(--uv-borde)}
  .uv-sidenav__title{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--uv-gris-suave);text-align:right;margin-bottom:8px}
  .uv-sidenav a{display:block;text-align:right;font-size:12.5px;font-weight:600;color:var(--uv-gris-medio);text-decoration:none;padding:7px 0;line-height:1.25;transition:color .15s}
  .uv-sidenav a:hover{color:var(--uv-negro)}
  .uv-sidenav a.is-active{color:var(--uv-azul);font-weight:700}
  .uv-sidenav__ind{position:absolute;right:-1px;width:3px;background:var(--uv-azul);top:0;height:0;transition:top .25s ease,height .25s ease}
}

/* ---------- RESPONSIVE (puntos de corte recomendados) ---------- */
@media (max-width:1000px){
  .uv-wrap{padding:22px 22px 48px}
  .uv-steps,.uv-stats,.uv-plans{grid-template-columns:1fr 1fr}
  .uv-split,.uv-contact{grid-template-columns:1fr}
}
@media (max-width:600px){
  .uv-header,.uv-wrap{padding-left:16px;padding-right:16px}
  .uv-steps,.uv-stats,.uv-plans{grid-template-columns:1fr}
  .uv-step::after{display:none}
}
