/*
Theme Name: Lima Vanguard
Description: Tema propio ligero, sin Elementor.
Version: 0.1.0
Text Domain: lv-theme
*/

@font-face { font-family: "IBM Plex Sans"; font-weight: 500; font-display: swap; src: url(assets/fonts/ibm-plex-sans-latin-500-normal.woff2) format("woff2"); }
@font-face { font-family: "IBM Plex Sans"; font-weight: 600; font-display: swap; src: url(assets/fonts/ibm-plex-sans-latin-600-normal.woff2) format("woff2"); }
@font-face { font-family: "IBM Plex Sans"; font-weight: 700; font-display: swap; src: url(assets/fonts/ibm-plex-sans-latin-700-normal.woff2) format("woff2"); }
@font-face { font-family: Inter; font-weight: 400; font-display: swap; src: url(assets/fonts/inter-latin-400-normal.woff2) format("woff2"); }
@font-face { font-family: Inter; font-weight: 500; font-display: swap; src: url(assets/fonts/inter-latin-500-normal.woff2) format("woff2"); }
@font-face { font-family: Inter; font-weight: 600; font-display: swap; src: url(assets/fonts/inter-latin-600-normal.woff2) format("woff2"); }

:root {
  --lv-night: #0C2238;
  --lv-steel: #234B70;
  --lv-green: #438C65; /* solo acento del CTA, nunca texto pequeño sobre blanco */
  --lv-cool: #E8EEF2;
  --lv-white: #FFFFFF;
  --lv-font-title: "IBM Plex Sans", system-ui, sans-serif;
  --lv-font-text: Inter, system-ui, sans-serif;
  --lv-max: 1200px;
  --lv-gap: 1.5rem;
}
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; font-family: var(--lv-font-text); font-size: 1rem; line-height: 1.6; color: var(--lv-night); background: var(--lv-white); }
h1, h2, h3, h4 { font-family: var(--lv-font-title); font-weight: 600; line-height: 1.2; margin: 0 0 .6em; }
h1 { font-size: clamp(2rem, 5vw, 3.25rem); font-weight: 700; }
h2 { font-size: clamp(1.5rem, 3vw, 2.25rem); }
a { color: var(--lv-steel); }
img { max-width: 100%; height: auto; }
.lv-container { max-width: var(--lv-max); margin: 0 auto; padding: 0 var(--lv-gap); }
.lv-section { padding: 4rem 0; }
.lv-section--alt { background: var(--lv-cool); }
.lv-section--dark { background: var(--lv-night); color: var(--lv-white); }
.lv-btn { display: inline-block; padding: .85rem 1.5rem; font: 600 1rem var(--lv-font-text); text-decoration: none; border-radius: 4px; border: 2px solid transparent; cursor: pointer; }
.lv-btn--cta { background: var(--lv-green); color: var(--lv-night); }
.lv-btn--outline { border-color: var(--lv-steel); color: var(--lv-steel); background: transparent; }
.lv-skip { position: absolute; left: -999px; }
.lv-skip:focus { left: 1rem; top: 1rem; background: var(--lv-white); padding: .5rem; z-index: 100; }
:focus-visible { outline: 3px solid var(--lv-steel); outline-offset: 2px; }

/* Header fijo y menú */
.lv-header { position: sticky; top: 0; z-index: 50; background: var(--lv-white); border-bottom: 1px solid var(--lv-cool); }
.lv-header__in { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 72px; }
.lv-header__logo { display: flex; }
.lv-nav, .lv-nav ul { list-style: none; margin: 0; padding: 0; }
.lv-nav { display: flex; align-items: center; gap: 1.5rem; }
.lv-nav > ul { display: flex; gap: 1.5rem; }
.lv-nav a { text-decoration: none; color: var(--lv-night); font-weight: 500; }
.lv-nav__sub { position: relative; }
.lv-nav__sub > ul { display: none; position: absolute; top: 100%; left: 0; min-width: 18rem; background: var(--lv-white); border: 1px solid var(--lv-cool); box-shadow: 0 8px 24px rgba(12,34,56,.12); padding: .5rem 0; }
.lv-nav__sub:hover > ul, .lv-nav__sub:focus-within > ul { display: block; }
.lv-nav__sub > ul a { display: block; padding: .5rem 1rem; }
.lv-nav__sub > ul a:hover { background: var(--lv-cool); }
.lv-nav-toggle { display: none; background: none; border: 2px solid var(--lv-steel); color: var(--lv-steel); padding: .5rem 1rem; font: 600 1rem var(--lv-font-text); border-radius: 4px; cursor: pointer; }
@media (max-width: 900px) {
  .lv-nav-toggle { display: block; }
  .lv-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; flex-direction: column; align-items: stretch; background: var(--lv-white); padding: 1rem var(--lv-gap); border-bottom: 1px solid var(--lv-cool); }
  .lv-nav.is-open { display: flex; }
  .lv-nav > ul { flex-direction: column; gap: .75rem; }
  .lv-nav__sub > ul { display: block; position: static; border: 0; box-shadow: none; padding: 0 0 0 1rem; }
  .lv-nav .lv-btn { text-align: center; }
}

/* WhatsApp flotante (solo se imprime si hay número del bot) */
.lv-wa { position: fixed; right: 1rem; bottom: 1rem; z-index: 60; background: var(--lv-green); color: var(--lv-night); font-weight: 600; text-decoration: none; padding: .85rem 1.25rem; border-radius: 999px; box-shadow: 0 4px 16px rgba(12,34,56,.3); }

/* Hero */
.lv-hero { background: var(--lv-night); color: var(--lv-white); padding: 4rem 0; }
.lv-hero__grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 3rem; align-items: center; }
.lv-hero__etiqueta { display: inline-block; margin: 0 0 1rem; padding: .3rem .75rem; border: 1px solid var(--lv-steel); border-radius: 999px; font-size: .875rem; color: var(--lv-cool); }
.lv-hero h1 { font-size: clamp(2rem, 4.5vw, 3.25rem); font-weight: 700; }
.lv-hero__sub { font-size: 1.125rem; color: var(--lv-cool); max-width: 38rem; }
.lv-hero__ctas { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1.75rem; }
.lv-btn--ghost { border-color: var(--lv-cool); color: var(--lv-white); background: transparent; }
.lv-hero__foto { min-height: 320px; display: flex; align-items: center; justify-content: center; text-align: center; padding: 1rem; background: var(--lv-steel); border: 2px dashed var(--lv-cool); border-radius: 6px; color: var(--lv-white); font-size: .9rem; }
@media (max-width: 900px) {
  .lv-hero { padding: 2.5rem 0; }
  .lv-hero__grid { grid-template-columns: 1fr; gap: 2rem; }
  .lv-hero__foto { min-height: 200px; }
  .lv-hero__ctas .lv-btn { flex: 1 1 100%; text-align: center; }
}

/* Rejilla de especialidades */
.lv-esp { padding: 4rem 0; background: var(--lv-white); }
.lv-esp__intro { color: var(--lv-steel); margin: 0 0 2rem; }
.lv-esp__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; }
.lv-esp__card { display: flex; flex-direction: column; gap: .5rem; height: 100%; padding: 1.5rem; background: var(--lv-cool); border: 1px solid var(--lv-cool); border-top: 4px solid var(--lv-steel); border-radius: 6px; color: var(--lv-night); text-decoration: none; transition: transform .15s, box-shadow .15s; }
.lv-esp__card:hover, .lv-esp__card:focus-visible { transform: translateY(-3px); box-shadow: 0 8px 24px rgba(12,34,56,.14); }
.lv-esp__num { font: 600 .875rem var(--lv-font-text); color: var(--lv-steel); }
.lv-esp__nombre { font: 600 1.2rem/1.3 var(--lv-font-title); }
.lv-esp__ver { margin-top: auto; padding-top: .75rem; font-weight: 600; color: var(--lv-steel); }
@media (max-width: 1100px) { .lv-esp__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .lv-esp { padding: 2.5rem 0; } .lv-esp__grid { grid-template-columns: 1fr; } }

/* Contacto y formulario de cotización */
.lv-contacto { padding: 4rem 0; background: var(--lv-cool); }
.lv-contacto__grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 3rem; align-items: start; }
.lv-form { background: var(--lv-white); padding: 2rem; border-radius: 6px; border-top: 4px solid var(--lv-steel); }
.lv-form label, .lv-form legend { display: block; margin: 1rem 0 .3rem; font-weight: 600; }
.lv-form input[type=text], .lv-form input[type=email], .lv-form textarea { width: 100%; padding: .7rem .8rem; font: 400 1rem var(--lv-font-text); color: var(--lv-night); border: 1px solid var(--lv-steel); border-radius: 4px; }
.lv-form fieldset { border: 0; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; }
.lv-form legend { grid-column: 1 / -1; padding: 0; }
.lv-form .lv-form__check { display: flex; gap: .5rem; align-items: center; margin: .25rem 0; font-weight: 400; }
.lv-form button { margin-top: 1.5rem; }
.lv-form__trampa { position: absolute; left: -9999px; }
.lv-form__msg { padding: .75rem 1rem; border-radius: 4px; font-weight: 600; }
.lv-form__msg--ok { background: var(--lv-cool); border-left: 4px solid var(--lv-steel); }
.lv-form__msg--error { background: #fff; border: 2px solid #8a1c1c; color: #8a1c1c; }
@media (max-width: 900px) { .lv-contacto { padding: 2.5rem 0; } .lv-contacto__grid { grid-template-columns: 1fr; gap: 2rem; } .lv-form fieldset { grid-template-columns: 1fr; } .lv-form { padding: 1.25rem; } }

/* Footer (B.6) */
.lv-footer { padding: 3rem 0 1.5rem; }
.lv-footer__grid { display: grid; grid-template-columns: 1.2fr 1.2fr 1fr 1.2fr; gap: 2rem; }
.lv-footer__title { font-size: 1rem; text-transform: uppercase; letter-spacing: .06em; margin-bottom: .8rem; }
.lv-footer ul { list-style: none; margin: 0; padding: 0; }
.lv-footer li { margin-bottom: .4rem; }
.lv-footer a { color: var(--lv-cool); }
.lv-footer a:hover { color: var(--lv-white); }
.lv-footer__legal { border-top: 1px solid var(--lv-steel); margin-top: 2rem; padding-top: 1rem; font-size: .875rem; }
@media (max-width: 900px) { .lv-footer__grid { grid-template-columns: 1fr; } }

/* Página de especialidad */
.lv-esp-hero { padding: 3rem 0; background: var(--lv-night); color: var(--lv-white); }
.lv-esp-hero__etq { margin: 0 0 .5rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--lv-cool); }
.lv-esp-hero h1 { margin: 0; }
.lv-esp-pag { padding: 3rem 0; }
.lv-esp-pag__grid { display: grid; grid-template-columns: 1.3fr .7fr; gap: 3rem; align-items: start; }
.lv-resumen { background: var(--lv-cool); border-left: 4px solid var(--lv-steel); padding: 1.25rem 1.5rem; border-radius: 4px; margin-bottom: 2rem; }
.lv-resumen h2 { font-size: 1.1rem; margin-bottom: .4rem; }
.lv-resumen p { margin: 0; }
.lv-lista { margin: 0 0 1.5rem; padding-left: 1.25rem; }
.lv-lista li { margin-bottom: .5rem; }
.lv-esp-pag__ctas { display: flex; gap: .75rem; flex-wrap: wrap; margin-top: 1.5rem; }
.lv-esp-pag__foto { background: var(--lv-cool); border: 1px dashed var(--lv-steel); border-radius: 6px; min-height: 220px; display: flex; align-items: center; justify-content: center; text-align: center; padding: 1rem; color: var(--lv-steel); font-weight: 600; }
.lv-esp-pag__otras h2 { font-size: 1.1rem; margin-top: 1.5rem; }
.lv-esp-pag__otras ul { list-style: none; margin: 0; padding: 0; }
.lv-esp-pag__otras li { margin-bottom: .35rem; }
@media (max-width: 900px) { .lv-esp-pag__grid { grid-template-columns: 1fr; gap: 2rem; } .lv-esp-pag__ctas .lv-btn { flex: 1 1 100%; text-align: center; } }

/* Fotos aprobadas (13 oct 2026) */
.lv-hero__foto { padding: 0; border: 0; overflow: hidden; background: var(--lv-steel); }
.lv-hero__foto img { width: 100%; height: 100%; max-height: 420px; object-fit: cover; display: block; }
.lv-esp__grid { grid-template-columns: repeat(5, 1fr); }
.lv-esp__card { padding: 0 0 1.25rem; overflow: hidden; }
.lv-esp__card > span { padding: 0 1.25rem; }
.lv-esp__img { width: 100%; height: 150px; object-fit: cover; display: block; margin-bottom: .75rem; }
@media (max-width: 1100px) { .lv-esp__grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 800px) { .lv-esp__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .lv-esp__grid { grid-template-columns: 1fr; } }
.lv-esp-pag__portada { margin: 0 0 1.5rem; }
.lv-esp-pag__portada img { width: 100%; height: auto; max-height: 420px; object-fit: cover; border-radius: 6px; display: block; }
.lv-esp-pag__portada figcaption { font-size: .8rem; color: var(--lv-steel); margin-top: .35rem; }
.lv-galeria { list-style: none; margin: 0 0 2rem; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .6rem; }
.lv-galeria img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 4px; display: block; }
.lv-galeria a:hover img, .lv-galeria a:focus-visible img { opacity: .85; }

/* ===== Diseño v2 (13 oct 2026, ORD-017): hacia el nivel del referente. Anula reglas anteriores. ===== */
:root { --lv-sky: #7FC4F0; --lv-ink: #0A1B2C; }
.lv-eyebrow { margin: 0 0 .6rem; font: 600 .78rem var(--lv-font-text); letter-spacing: .14em; text-transform: uppercase; color: var(--lv-steel); }
.lv-eyebrow--sky { color: var(--lv-sky); }
.lv-lead { font-size: 1.2rem; color: var(--lv-steel); }
.lv-link { font-weight: 600; text-decoration: none; border-bottom: 2px solid var(--lv-steel); }
.lv-btn--nav { border-color: var(--lv-cool); color: var(--lv-white); background: transparent; padding: .6rem 1.1rem; }
.lv-btn--nav:hover { background: var(--lv-white); color: var(--lv-night); }
/* barra superior y header oscuro */
.lv-topbar { background: var(--lv-ink); color: var(--lv-cool); font-size: .82rem; }
.lv-topbar__in { display: flex; justify-content: space-between; gap: 1rem; padding-top: .45rem; padding-bottom: .45rem; }
.lv-topbar a { color: var(--lv-cool); text-decoration: none; margin-right: 1.25rem; }
.lv-topbar a:hover { color: var(--lv-white); }
.lv-header { background: var(--lv-night); border-bottom: 1px solid rgba(255,255,255,.08); }
.lv-nav a { color: var(--lv-white); }
.lv-nav__sub > ul { background: var(--lv-night); border-color: rgba(255,255,255,.12); }
.lv-nav__sub > ul a:hover { background: var(--lv-steel); }
.lv-nav-toggle { border-color: var(--lv-cool); color: var(--lv-white); }
@media (max-width: 900px) { .lv-nav { background: var(--lv-night); border-bottom-color: rgba(255,255,255,.12); } .lv-topbar__loc { display: none; } }
/* hero con foto */
.lv-hero2 { position: relative; min-height: min(78vh, 640px); display: flex; align-items: center; background: var(--lv-night) center / cover no-repeat; color: var(--lv-white); }
.lv-hero2__vel, .lv-ehero__vel { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10,27,44,.94) 0%, rgba(10,27,44,.78) 45%, rgba(10,27,44,.35) 100%); }
.lv-hero2__in { position: relative; padding-top: 4rem; padding-bottom: 4rem; }
.lv-hero2 h1 { max-width: 46rem; font-size: clamp(2.1rem, 5.2vw, 3.75rem); }
.lv-hero2__sub { max-width: 38rem; font-size: 1.15rem; color: var(--lv-cool); }
.lv-hero2__ctas { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1.75rem; }
@media (max-width: 600px) { .lv-hero2__ctas .lv-btn { flex: 1 1 100%; text-align: center; } }
/* enfoque */
.lv-enfoque { padding: 4.5rem 0; background: var(--lv-white); }
.lv-enfoque__in { display: grid; grid-template-columns: 1fr 1fr; gap: 3.5rem; align-items: center; }
.lv-enfoque__img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 6px; }
@media (max-width: 900px) { .lv-enfoque { padding: 3rem 0; } .lv-enfoque__in { grid-template-columns: 1fr; gap: 2rem; } }
/* especialidades: tarjetas con foto sobre fondo oscuro */
.lv-esp2 { padding: 4.5rem 0; background: var(--lv-night); color: var(--lv-white); }
.lv-esp2__grid { list-style: none; margin: 2rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 1rem; }
.lv-esp2__card { position: relative; display: flex; align-items: flex-end; min-height: 380px; border-radius: 6px; overflow: hidden; background: var(--lv-steel) center / cover no-repeat; color: var(--lv-white); text-decoration: none; transition: transform .2s; }
.lv-esp2__card:hover, .lv-esp2__card:focus-visible { transform: translateY(-4px); }
.lv-esp2__vel { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,27,44,.05) 20%, rgba(10,27,44,.92) 100%); }
.lv-esp2__txt { position: relative; display: block; padding: 1.25rem; }
.lv-esp2__nombre { display: block; font: 600 1.15rem/1.25 var(--lv-font-title); margin-bottom: .6rem; }
.lv-esp2__ver { display: block; font-size: .9rem; font-weight: 600; color: var(--lv-sky); }
@media (max-width: 1100px) { .lv-esp2__grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 800px) { .lv-esp2__grid { grid-template-columns: repeat(2, 1fr); } .lv-esp2__card { min-height: 280px; } }
@media (max-width: 520px) { .lv-esp2 { padding: 3rem 0; } .lv-esp2__grid { grid-template-columns: 1fr; } }
/* pasos */
.lv-pasos { padding: 4.5rem 0; background: var(--lv-cool); }
.lv-pasos__lista { list-style: none; margin: 2rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; }
.lv-pasos__lista li { display: flex; flex-direction: column; gap: .5rem; padding: 1.5rem; background: var(--lv-white); border-top: 4px solid var(--lv-steel); border-radius: 4px; }
.lv-pasos__num { font: 600 1.6rem var(--lv-font-title); color: var(--lv-steel); }
.lv-pasos__lista--osc li { background: rgba(255,255,255,.06); border-top-color: var(--lv-sky); color: var(--lv-white); }
.lv-pasos__lista--osc .lv-pasos__num { color: var(--lv-sky); }
@media (max-width: 900px) { .lv-pasos__lista { grid-template-columns: repeat(2, 1fr); } .lv-pasos { padding: 3rem 0; } }
@media (max-width: 520px) { .lv-pasos__lista { grid-template-columns: 1fr; } }
/* fotos de obra */
.lv-obras { padding: 4.5rem 0; background: var(--lv-night); color: var(--lv-white); }
.lv-obras__grid, .lv-obras .lv-galeria { list-style: none; margin: 2rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; }
.lv-obras__grid img, .lv-obras .lv-galeria img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 4px; display: block; }
@media (max-width: 700px) { .lv-obras { padding: 3rem 0; } .lv-obras__grid, .lv-obras .lv-galeria { grid-template-columns: repeat(2, 1fr); } }
/* banda CTA */
.lv-cta { padding: 3.5rem 0; background: var(--lv-cool); }
.lv-cta__in { display: flex; align-items: center; justify-content: space-between; gap: 2rem; flex-wrap: wrap; }
.lv-cta h2 { margin-bottom: .4rem; }
.lv-cta p { margin: 0; }
.lv-cta__btns { display: flex; gap: .75rem; flex-wrap: wrap; }
/* página de especialidad */
.lv-ehero { position: relative; min-height: min(72vh, 560px); display: flex; align-items: center; background: var(--lv-night) center / cover no-repeat; color: var(--lv-white); }
.lv-ehero__in { position: relative; padding-top: 3.5rem; padding-bottom: 3.5rem; }
.lv-ehero h1 { max-width: 46rem; font-size: clamp(2rem, 4.6vw, 3.4rem); }
.lv-ehero__sub { max-width: 40rem; font-size: 1.15rem; color: var(--lv-cool); }
.lv-ehero__ver { color: var(--lv-white); text-decoration: none; font-weight: 600; border-bottom: 2px solid var(--lv-sky); padding-bottom: .15rem; }
.lv-ehero__ilus { margin-left: 1rem; font-size: .8rem; color: var(--lv-cool); opacity: .8; }
.lv-migas { margin-bottom: 1.5rem; font-size: .9rem; color: var(--lv-cool); }
.lv-migas a { color: var(--lv-cool); text-decoration: none; }
.lv-migas a:hover { color: var(--lv-white); }
.lv-migas span { opacity: .6; margin: 0 .25rem; }
.lv-esp-info { padding: 4.5rem 0; background: var(--lv-white); }
.lv-esp-info__grid { display: grid; grid-template-columns: 1.4fr .8fr; gap: 3.5rem; align-items: start; }
.lv-resumen2 { background: var(--lv-cool); border-radius: 6px; padding: 1.75rem; }
.lv-resumen2 h3 { margin-bottom: 1rem; font-size: 1.15rem; }
.lv-resumen2 dl { margin: 0 0 1.5rem; }
.lv-resumen2 dl div { display: flex; justify-content: space-between; gap: 1rem; padding: .7rem 0; border-top: 1px solid rgba(35,75,112,.25); }
.lv-resumen2 dt { font-weight: 600; font-size: .9rem; }
.lv-resumen2 dd { margin: 0; text-align: right; color: var(--lv-steel); font-size: .9rem; }
.lv-resumen2 .lv-btn { display: block; text-align: center; }
.lv-alcance { padding: 4.5rem 0; background: var(--lv-cool); }
.lv-alcance h3 { margin: 1.5rem 0 .75rem; }
.lv-alcance__lista { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: .9rem 2rem; }
.lv-alcance__lista li { position: relative; padding-left: 1.5rem; }
.lv-alcance__lista li::before { content: ""; position: absolute; left: 0; top: .55em; width: .55rem; height: .55rem; background: var(--lv-steel); transform: rotate(45deg); }
.lv-metodo { padding: 4.5rem 0; background: var(--lv-night); color: var(--lv-white); }
.lv-entregables { padding: 4.5rem 0; background: var(--lv-white); }
.lv-obras--esp { background: var(--lv-ink); }
.lv-otras { padding: 3rem 0; background: var(--lv-white); border-top: 1px solid var(--lv-cool); }
.lv-otras__lista { list-style: none; margin: 1rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .75rem; }
.lv-otras__lista a { display: inline-block; padding: .7rem 1.1rem; border: 1px solid var(--lv-steel); border-radius: 999px; text-decoration: none; font-weight: 500; }
.lv-otras__lista a:hover { background: var(--lv-steel); color: var(--lv-white); }
@media (max-width: 900px) { .lv-esp-info, .lv-alcance, .lv-metodo, .lv-entregables { padding: 3rem 0; } .lv-esp-info__grid { grid-template-columns: 1fr; gap: 2rem; } .lv-alcance__lista { grid-template-columns: 1fr; } }
/* páginas internas (Nosotros, Proceso, Privacidad) con cabecera oscura */
.lv-esp-hero { background: var(--lv-night); }
.lv-esp-hero__etq { color: var(--lv-sky); }
/* footer: tono más oscuro */
.lv-footer { background: var(--lv-ink); }

/* Correcciones (ORD-017): el logo SVG no tiene ancho propio y se colapsaba en el contenedor flex; el hero debe ocupar todo el ancho. */
.lv-header__logo img { width: 124px; height: 48px; max-width: none; }
.lv-footer img[height="48"] { width: 124px; height: 48px; max-width: none; }
.lv-hero2__in, .lv-ehero__in { width: 100%; }

/* Fondo casi negro en barra superior, header y pie, como en el referente (ORD-017) */
:root { --lv-black: #05090E; }
.lv-topbar { background: #000; }
.lv-header { background: var(--lv-black); border-bottom-color: rgba(255,255,255,.1); }
.lv-nav__sub > ul { background: var(--lv-black); }
@media (max-width: 900px) { .lv-nav { background: var(--lv-black); } }
.lv-footer { background: var(--lv-black); }

/* ===== Paleta del referente (13 oct 2026, orden de Julio). Valores tomados de las capturas de la web de referencia. ===== */
:root {
  --lv-night: #081825;
  --lv-ink: #041922;
  --lv-black: #041922;
  --lv-steel: #3770C6;
  --lv-sky: #009FEB;
  --lv-green: #FFCC00; /* ahora es el amarillo de acento; el nombre se conserva por compatibilidad */
  --lv-cool: #F3F5F7;
}
.lv-topbar { background: #020D13; }
.lv-btn--cta { background: #FFCC00; color: #041922; }
.lv-btn--cta:hover { background: #FFD83A; }
.lv-wa { background: #FFCC00; color: #041922; }
.lv-pasos__lista--osc li { background: rgba(255,255,255,.05); }
.lv-esp2__vel { background: linear-gradient(180deg, rgba(4,25,34,.05) 20%, rgba(4,25,34,.93) 100%); }
.lv-hero2__vel, .lv-ehero__vel { background: linear-gradient(90deg, rgba(4,25,34,.95) 0%, rgba(4,25,34,.8) 45%, rgba(4,25,34,.4) 100%); }
.lv-nav__sub > ul a:hover { background: rgba(0,159,235,.18); }
.lv-lead { color: #3F4B55; }
.lv-resumen2 dd { color: #3F4B55; }

/* ===== Estándar del referente: hero, menú desplegable, cifras, acabados (ORD-019) ===== */
.lv-ico { width: 1em; height: 1em; fill: currentColor; vertical-align: -.15em; margin-right: .45rem; }
.lv-ico--g { width: 1.7rem; height: 1.7rem; margin: 0; color: var(--lv-sky); flex: none; }
.lv-topbar a { display: inline-flex; align-items: center; }
/* header: botón amarillo y chevrones */
.lv-btn--nav { background: #FFCC00; color: #041922; border-color: #FFCC00; padding: .7rem 1.2rem; }
.lv-btn--nav:hover { background: #FFD83A; color: #041922; }
.lv-nav__sub > a::after { content: ""; display: inline-block; width: .4rem; height: .4rem; margin: 0 0 .15rem .45rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); }
.lv-nav__sub > ul { min-width: 26rem; padding: .5rem; border-radius: 6px; }
.lv-mega__item { display: flex !important; align-items: center; gap: .9rem; padding: .6rem !important; border-radius: 4px; }
.lv-mega__item img { width: 64px; height: 48px; object-fit: cover; border-radius: 3px; flex: none; }
.lv-mega__item strong { display: block; font-size: .95rem; }
.lv-mega__item small { display: block; font-size: .78rem; color: #A9B8C4; line-height: 1.35; }
@media (max-width: 900px) { .lv-nav__sub > ul { min-width: 0; } .lv-mega__item img { display: none; } .lv-nav__sub > a::after { display: none; } }
/* hero: foto a la derecha, titular con palabra resaltada, datos con íconos */
.lv-hero2 { background-position: 72% center; min-height: min(86vh, 700px); }
.lv-hero2__vel { background: linear-gradient(90deg, #041922 0%, rgba(4,25,34,.96) 32%, rgba(4,25,34,.55) 60%, rgba(4,25,34,.05) 100%); }
.lv-hero2 h1 { max-width: 40rem; font-size: clamp(2.2rem, 5vw, 3.6rem); letter-spacing: -.01em; }
.lv-hero2 h1 em { font-style: normal; color: #FFCC00; }
.lv-hero2__sub { max-width: 32rem; }
.lv-hero2__datos { list-style: none; margin: 2.5rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 1.5rem 2.25rem; max-width: 46rem; }
.lv-hero2__datos li { display: flex; align-items: center; gap: .7rem; font-size: .88rem; font-weight: 600; line-height: 1.3; color: var(--lv-white); }
@media (max-width: 800px) { .lv-hero2 { background-position: 60% center; } .lv-hero2__vel { background: linear-gradient(180deg, rgba(4,25,34,.88), rgba(4,25,34,.82)); } .lv-hero2__datos { gap: 1rem 1.5rem; } }
/* cifras */
.lv-cifras { padding: 3.5rem 0; background: var(--lv-white); border-bottom: 1px solid var(--lv-cool); }
.lv-cifras__lista { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
.lv-cifras__lista li { border-left: 3px solid #FFCC00; padding-left: 1rem; }
.lv-cifras__lista strong { display: block; font: 700 clamp(2.2rem, 4.5vw, 3.2rem)/1 var(--lv-font-title); color: var(--lv-night); }
.lv-cifras__lista span { display: block; margin-top: .4rem; color: #3F4B55; font-size: .95rem; }
@media (max-width: 800px) { .lv-cifras__lista { grid-template-columns: repeat(2, 1fr); } .lv-cifras { padding: 2.5rem 0; } }
/* otras capacidades con foto */
.lv-otras__lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: .9rem; }
.lv-otras__card { position: relative; display: flex; align-items: flex-end; min-height: 170px; padding: 0 !important; border: 0 !important; border-radius: 6px !important; overflow: hidden; background: var(--lv-steel) center / cover no-repeat; color: var(--lv-white); }
.lv-otras__card:hover { background-color: var(--lv-steel); color: var(--lv-white); }
.lv-otras__txt { position: relative; padding: 1rem; font-weight: 600; line-height: 1.25; }
/* acabados: aparición suave y botones */
.lv-js .lv-reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s ease; }
.lv-js .lv-reveal.is-in { opacity: 1; transform: none; }
.lv-btn { transition: background .2s, transform .2s; }
.lv-btn:hover { transform: translateY(-1px); }
.lv-esp2__card { box-shadow: 0 6px 20px rgba(0,0,0,.25); }
@media (prefers-reduced-motion: reduce) { .lv-js .lv-reveal { opacity: 1; transform: none; transition: none; } }

/* ===== Portada rotativa, tarjetas con descripción, obras y cierre (ORD-020) ===== */
.lv-hero2 { overflow: hidden; background: #041922; }
.lv-hero2__slide { position: absolute; inset: 0; background: center / cover no-repeat; opacity: 0; animation: lvslide 35s infinite; }
.lv-hero2__slide:first-of-type { opacity: 1; }
.lv-hero2__vel { z-index: 1; }
.lv-hero2__in { z-index: 2; }
.lv-hero2__pie { position: absolute; right: 1.5rem; bottom: 1rem; font-size: .78rem; color: rgba(255,255,255,.85); text-shadow: 0 1px 4px rgba(0,0,0,.7); }
@keyframes lvslide { 0% { opacity: 0; } 4% { opacity: 1; } 20% { opacity: 1; } 24% { opacity: 0; } 100% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .lv-hero2__slide { animation: none; } .lv-hero2__slide:not(:first-of-type) { display: none; } }
.lv-esp2__card { min-height: 420px; }
.lv-esp2__desc { display: block; margin: -.2rem 0 .7rem; font-size: .82rem; line-height: 1.4; color: #C9D6DF; }
.lv-obras__tarjetas { list-style: none; margin: 2rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.lv-obras__tarjetas a { position: relative; display: flex; align-items: flex-end; min-height: 340px; border-radius: 6px; overflow: hidden; background: var(--lv-steel) center / cover no-repeat; color: var(--lv-white); text-decoration: none; }
.lv-obras__txt { position: relative; padding: 1.25rem; }
.lv-obras__txt small { display: block; font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--lv-sky); margin-bottom: .3rem; }
.lv-obras__txt strong { font: 600 1.15rem/1.3 var(--lv-font-title); }
@media (max-width: 800px) { .lv-obras__tarjetas { grid-template-columns: 1fr; } .lv-obras__tarjetas a { min-height: 240px; } .lv-hero2__pie { display: none; } }
.lv-cierre { padding: 5rem 0 3.5rem; background: #F3F5F7; }
.lv-cierre__fila { display: flex; align-items: center; justify-content: space-between; gap: 2rem; flex-wrap: wrap; }
.lv-cierre h2 { margin: 0; font-size: clamp(2.2rem, 5vw, 3.6rem); line-height: 1.08; }
.lv-cierre h2 span { color: #5C6870; font-weight: 500; }
.lv-cierre__flecha { display: inline-flex; flex-direction: column; align-items: center; gap: .6rem; color: #041922; text-decoration: none; text-align: center; font-size: .85rem; font-weight: 600; }
.lv-cierre__flecha span { display: flex; align-items: center; justify-content: center; width: 5.5rem; height: 5.5rem; border-radius: 50%; background: #FFCC00; font-size: 2.2rem; transition: transform .2s; }
.lv-cierre__flecha:hover span { transform: translateX(4px); }
.lv-cierre__contacto { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; margin: 2.5rem 0 0; padding-top: 1.25rem; border-top: 1px solid #D4DBE0; color: #3F4B55; }
.lv-cierre__contacto a { color: #3F4B55; text-decoration: none; }

/* ===== Tarjetas de especialidad al estilo del referente: pegadas, con ícono y resaltado al pasar el mouse (ORD-021) ===== */
.lv-esp2__grid { gap: 1px; background: rgba(255,255,255,.18); border-radius: 6px; overflow: hidden; }
.lv-esp2__card { border-radius: 0; box-shadow: none; transition: filter .35s ease; }
.lv-esp2__card::before { content: ""; position: absolute; inset: 0; background: inherit; transition: transform .6s ease; }
.lv-esp2__card:hover, .lv-esp2__card:focus-visible { transform: none; }
.lv-esp2__card:hover::before, .lv-esp2__card:focus-visible::before { transform: scale(1.08); }
.lv-esp2__grid:hover .lv-esp2__card:not(:hover) { filter: brightness(.45) saturate(.55); }
.lv-esp2__card:hover .lv-esp2__vel, .lv-esp2__card:focus-visible .lv-esp2__vel { background: linear-gradient(180deg, rgba(4,25,34,.15) 0%, rgba(4,25,34,.95) 100%); }
.lv-esp2__vel { z-index: 1; }
.lv-esp2__txt { z-index: 2; }
.lv-esp2__ico { display: block; width: 2rem; height: 2rem; margin-bottom: .6rem; color: var(--lv-white); }
.lv-esp2__ver { transition: transform .3s, color .3s; }
.lv-esp2__card:hover .lv-esp2__ver, .lv-esp2__card:focus-visible .lv-esp2__ver { color: #FFCC00; transform: translateX(6px); }
.lv-esp2__card:hover .lv-esp2__nombre, .lv-esp2__card:focus-visible .lv-esp2__nombre { box-shadow: inset 0 -3px 0 #FFCC00; }
@media (hover: none) { .lv-esp2__grid:hover .lv-esp2__card:not(:hover) { filter: none; } }
@media (max-width: 800px) { .lv-esp2__grid { background: transparent; gap: .75rem; } .lv-esp2__card { border-radius: 6px; } }

/* ===== Resaltado al pasar el mouse como en el referente: la tarjeta sube unos milímetros y la imagen hace un zoom suave (ORD-021) ===== */
.lv-esp2__grid { overflow: visible; background: transparent; gap: 0; border-radius: 0; }
.lv-esp2__card { box-shadow: 0 0 0 .5px rgba(255,255,255,.2); transition: transform .35s ease, filter .35s ease, box-shadow .35s ease; }
.lv-esp2__card::before { transition: transform .6s ease; }
.lv-esp2__card:hover, .lv-esp2__card:focus-visible { transform: translateY(-4px); box-shadow: 0 14px 28px rgba(0,0,0,.45); z-index: 3; }
.lv-esp2__card:hover::before, .lv-esp2__card:focus-visible::before { transform: scale(1.05); }
.lv-esp2__grid:hover .lv-esp2__card:not(:hover) { filter: brightness(.6) saturate(.7); }
.lv-esp2__grid li:first-child .lv-esp2__card { border-radius: 6px 0 0 6px; }
.lv-esp2__grid li:last-child .lv-esp2__card { border-radius: 0 6px 6px 0; }
.lv-obras__tarjetas a { transition: transform .35s ease, box-shadow .35s ease; }
.lv-obras__tarjetas a::before { content: ""; position: absolute; inset: 0; background: inherit; transition: transform .6s ease; }
.lv-obras__tarjetas a:hover, .lv-obras__tarjetas a:focus-visible { transform: translateY(-4px); box-shadow: 0 14px 28px rgba(0,0,0,.45); }
.lv-obras__tarjetas a:hover::before, .lv-obras__tarjetas a:focus-visible::before { transform: scale(1.05); }
.lv-obras__tarjetas .lv-esp2__vel { z-index: 1; }
.lv-obras__tarjetas .lv-obras__txt { z-index: 2; }
@media (max-width: 800px) { .lv-esp2__grid { gap: .75rem; } .lv-esp2__grid li .lv-esp2__card { border-radius: 6px; } }
@media (prefers-reduced-motion: reduce) { .lv-esp2__card, .lv-esp2__card::before, .lv-obras__tarjetas a, .lv-obras__tarjetas a::before { transition: none; } .lv-esp2__card:hover, .lv-obras__tarjetas a:hover { transform: none; } }

/* ===== Selección al estilo del referente + mapa de cobertura (ORD-022) ===== */
.lv-esp2__card::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--lv-sky); transform: scaleX(0); transform-origin: left; transition: transform .35s ease; z-index: 3; }
.lv-esp2__card:hover::after, .lv-esp2__card:focus-visible::after { transform: scaleX(1); }
.lv-esp2__card:hover .lv-esp2__nombre, .lv-esp2__card:focus-visible .lv-esp2__nombre { color: var(--lv-sky); box-shadow: none; }
.lv-esp2__card:hover .lv-esp2__ico, .lv-esp2__card:focus-visible .lv-esp2__ico { color: var(--lv-sky); }
.lv-esp2__card:hover .lv-esp2__vel, .lv-esp2__card:focus-visible .lv-esp2__vel { background: linear-gradient(180deg, rgba(0,159,235,.12) 0%, rgba(4,25,34,.9) 100%); }
.lv-obras__tarjetas a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--lv-sky); transform: scaleX(0); transform-origin: left; transition: transform .35s ease; z-index: 3; }
.lv-obras__tarjetas a:hover::after, .lv-obras__tarjetas a:focus-visible::after { transform: scaleX(1); }
/* cobertura */
.lv-cob { padding: 4.5rem 0; background: #041922; color: var(--lv-white); }
.lv-cob__in { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; }
.lv-cob__txt p { color: #C9D6DF; max-width: 34rem; }
.lv-cob__lista { list-style: none; margin: 1.5rem 0; padding: 0; display: grid; gap: .8rem; }
.lv-cob__card { padding: 1rem 1.25rem; border: 1px solid rgba(255,255,255,.18); border-radius: 8px; background: rgba(255,255,255,.03); transition: border-color .25s, background .25s, transform .25s; cursor: default; }
.lv-cob__card strong { display: flex; align-items: center; gap: .6rem; font-size: 1.1rem; margin-bottom: .25rem; }
.lv-cob__card span:not(.lv-cob__pt) { display: block; font-size: .88rem; color: #B5C4CF; }
.lv-cob__pt { width: .6rem; height: .6rem; border-radius: 50%; background: #FFCC00; box-shadow: 0 0 10px #FFCC00; }
.lv-cob__card:hover, .lv-cob__card:focus-visible { border-color: #FFCC00; background: rgba(255,204,0,.07); transform: translateX(4px); outline: none; }
.lv-cob__mapa { max-width: 420px; margin: 0 auto; width: 100%; }
.lv-mapa { width: 100%; height: auto; display: block; filter: drop-shadow(0 0 40px rgba(0,100,200,.25)); }
.lv-mapa__dep { fill: #0B2A47; stroke: #1B4E7C; stroke-width: .8; transition: fill .3s; }
.lv-mapa__dep--on { fill: #17609C; stroke: #3A8FD6; stroke-width: 1.2; }
.lv-mapa__ruta { fill: none; stroke: rgba(127,196,240,.55); stroke-width: 1.4; stroke-dasharray: 4 5; }
.lv-mapa__luz { fill: #FFE27A; }
.lv-mapa__nodo { fill: #FFCC00; }
.lv-mapa__halo { fill: rgba(255,204,0,.25); animation: lvhalo 2.4s ease-out infinite; transform-box: fill-box; transform-origin: center; }
.lv-mapa__pt text { fill: #fff; font: 700 11px var(--lv-font-text); letter-spacing: .08em; paint-order: stroke; stroke: #041922; stroke-width: 3px; }
.lv-cob:has(.lv-cob__card--lima:hover) .lv-mapa__pt--lima .lv-mapa__nodo, .lv-cob:has(.lv-cob__card--lima:focus-visible) .lv-mapa__pt--lima .lv-mapa__nodo { r: 7; }
.lv-cob:has(.lv-cob__card--are:hover) .lv-mapa__pt--are .lv-mapa__nodo, .lv-cob:has(.lv-cob__card--are:focus-visible) .lv-mapa__pt--are .lv-mapa__nodo { r: 7; }
.lv-cob:has(.lv-cob__card--lima:hover) .lv-mapa__pt--lima .lv-mapa__halo, .lv-cob:has(.lv-cob__card--are:hover) .lv-mapa__pt--are .lv-mapa__halo { r: 14; }
@keyframes lvhalo { 0% { opacity: .9; transform: scale(.7); } 100% { opacity: 0; transform: scale(2.6); } }
@media (max-width: 900px) { .lv-cob { padding: 3rem 0; } .lv-cob__in { grid-template-columns: 1fr; gap: 2rem; } }
@media (prefers-reduced-motion: reduce) { .lv-mapa__halo { animation: none; } .lv-mapa__luz { display: none; } }

/* ===== Franja futurista, eficiencia y mapa (ORD-022) ===== */
.lv-futuro { padding: 4rem 0; background: #020D13; color: var(--lv-white); }
.lv-futuro__in { display: grid; grid-template-columns: 1fr 1.1fr .6fr; gap: 2rem; align-items: center; }
.lv-futuro__txt p { color: #C9D6DF; max-width: 28rem; }
.lv-futuro h2 { font-size: clamp(1.9rem, 3.6vw, 2.8rem); }
.lv-wire { width: 100%; height: auto; display: block; }
.lv-futuro__pasos { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.1rem; font-size: 1.05rem; }
.lv-futuro__pasos span { display: inline-block; min-width: 2rem; margin-right: .6rem; color: var(--lv-sky); font-weight: 700; }
@media (max-width: 1000px) { .lv-futuro__in { grid-template-columns: 1fr; } .lv-futuro { padding: 3rem 0; } }
.lv-btn--outline-osc { border-color: #041922; color: #041922; background: transparent; }
.lv-btn--outline-osc:hover { background: #041922; color: #fff; }
.lv-efic { background: #F3F5F7; overflow: hidden; }
.lv-efic__in { display: grid; grid-template-columns: 1fr 1.2fr; align-items: stretch; gap: 0; padding-left: var(--lv-gap); }
.lv-efic__txt { padding: 3.5rem 2rem 3.5rem 0; align-self: center; }
.lv-efic__foto { position: relative; min-height: 320px; background: #234B70 center / cover no-repeat; }
.lv-efic__chips { list-style: none; margin: 0; padding: 1.5rem; display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; height: 100%; align-content: center; background: linear-gradient(90deg, rgba(243,245,247,.92) 0%, rgba(243,245,247,.15) 100%); }
.lv-efic__chips li { padding: .9rem 1rem; border-radius: 8px; background: rgba(255,255,255,.72); backdrop-filter: blur(3px); font-size: .9rem; font-weight: 500; color: #041922; box-shadow: 0 2px 10px rgba(4,25,34,.08); }
.lv-efic__chips li::before { content: ""; display: inline-block; width: .55rem; height: .55rem; margin-right: .6rem; border-radius: 50%; background: var(--lv-sky); }
@media (max-width: 900px) { .lv-efic__in { grid-template-columns: 1fr; padding-left: 0; } .lv-efic__txt { padding: 2.5rem var(--lv-gap); } .lv-efic__chips { grid-template-columns: 1fr 1fr; background: rgba(243,245,247,.55); } }

/* ===== Banda de llamada a la acción oscura (ORD-022) ===== */
.lv-cta2 { position: relative; background: #041922 center / cover no-repeat; color: var(--lv-white); }
.lv-cta2__vel { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(2,13,19,.96) 0%, rgba(2,13,19,.88) 60%, rgba(2,13,19,.7) 100%); }
.lv-cta2__in { position: relative; display: grid; grid-template-columns: 1.6fr auto auto; gap: 2rem; align-items: center; padding-top: 2.5rem; padding-bottom: 2.5rem; }
.lv-cta2 h2 { margin: 0 0 .35rem; font-size: clamp(1.3rem, 2.4vw, 1.8rem); }
.lv-cta2 p { margin: 0; color: #C9D6DF; font-size: .95rem; }
.lv-cta2__datos { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; font-size: .88rem; }
.lv-cta2__datos a { color: var(--lv-white); text-decoration: none; }
@media (max-width: 900px) { .lv-cta2__in { grid-template-columns: 1fr; gap: 1.25rem; } }

/* ===== Pie de página al estilo del referente (ORD-022) ===== */
.lv-footer { padding: 4rem 0 0; background: #041922; }
.lv-footer__grid { grid-template-columns: 1.3fr 1fr 1.3fr 1.1fr; gap: 2.5rem; }
.lv-footer__marca p { margin: 1rem 0 0; color: #AFC0CC; max-width: 18rem; }
.lv-footer__title { color: #8CA0AF; font-size: .74rem; letter-spacing: .16em; }
.lv-footer li { margin-bottom: .7rem; }
.lv-footer__pol { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; margin-top: 2.5rem; padding: 1.25rem 0; border-top: 1px solid rgba(255,255,255,.1); }
.lv-footer__pol .lv-footer__title { margin: 0; }
.lv-footer__legal { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin: 0 calc(-1 * var(--lv-gap)); padding: 1.25rem var(--lv-gap); border-top: 0; background: #020D13; color: #8CA0AF; font-size: .85rem; }
.lv-footer__legal p { margin: 0; }
.lv-footer__arriba { color: #CFDAE2; text-decoration: none; }
@media (max-width: 900px) { .lv-footer__grid { grid-template-columns: 1fr 1fr; } .lv-footer__marca { grid-column: 1 / -1; } .lv-footer__dir { order: 3; width: 100%; } }
@media (max-width: 520px) { .lv-footer__grid { grid-template-columns: 1fr; } }

/* ===== Tipografía del referente (ORD-023): Inter en todo, títulos en peso 800 con interlineado ajustado; tamaños medidos en sus capturas ===== */
@font-face { font-family: Inter; font-weight: 300; font-display: swap; src: url(assets/fonts/inter-latin-300-normal.woff2) format("woff2"); }
@font-face { font-family: Inter; font-weight: 700; font-display: swap; src: url(assets/fonts/inter-latin-700-normal.woff2) format("woff2"); }
@font-face { font-family: Inter; font-weight: 800; font-display: swap; src: url(assets/fonts/inter-latin-800-normal.woff2) format("woff2"); }
:root { --lv-font-title: Inter, system-ui, sans-serif; }
body { font-size: 16px; line-height: 1.6; }
h1, h2, h3, h4 { font-weight: 800; letter-spacing: -.02em; line-height: 1.05; }
h1 { font-size: clamp(2.1rem, 4.2vw, 3rem); }
h2 { font-size: clamp(1.8rem, 3.2vw, 2.5rem); }
h3 { font-size: 1.25rem; letter-spacing: -.01em; line-height: 1.2; }
.lv-eyebrow { font-size: .7rem; letter-spacing: .2em; font-weight: 600; }
/* barra superior y menú */
.lv-topbar { font-size: .8rem; }
.lv-nav a { font-size: .9rem; font-weight: 600; }
.lv-nav > ul { gap: 1.6rem; }
.lv-btn { font-size: .88rem; font-weight: 700; padding: .85rem 1.5rem; letter-spacing: 0; }
.lv-btn--nav { font-size: .88rem; padding: .7rem 1.35rem; }
.lv-mega__item strong { font-size: .9rem; font-weight: 700; }
.lv-mega__item small { font-size: .75rem; }
/* portada */
.lv-hero2 h1 { font-size: clamp(2.2rem, 4.6vw, 3.1rem); line-height: 1.05; max-width: 38rem; }
.lv-hero2__sub { font-size: 1.05rem; line-height: 1.55; max-width: 32rem; }
.lv-hero2__datos li { font-size: .82rem; font-weight: 600; }
.lv-hero2__pie { font-size: .72rem; }
/* secciones */
.lv-enfoque h2, .lv-esp2 h2, .lv-obras h2, .lv-cob h2, .lv-futuro h2, .lv-efic h2 { font-size: clamp(1.8rem, 3.2vw, 2.5rem); }
.lv-enfoque p, .lv-efic p, .lv-cob__txt p, .lv-futuro__txt p { font-size: 1rem; line-height: 1.6; }
.lv-cifras__lista strong { font-size: clamp(2.2rem, 4.2vw, 3rem); font-weight: 800; letter-spacing: -.02em; }
.lv-cifras__lista span { font-size: .82rem; }
.lv-esp2__nombre { font-size: 1.25rem; font-weight: 700; letter-spacing: -.01em; line-height: 1.15; }
.lv-esp2__desc { font-size: .875rem; line-height: 1.45; }
.lv-esp2__ver { font-size: .85rem; font-weight: 600; }
.lv-obras__txt strong { font-size: 1.2rem; font-weight: 700; letter-spacing: -.01em; }
.lv-obras__txt small { font-size: .68rem; letter-spacing: .16em; }
.lv-futuro__pasos { font-size: 1rem; }
.lv-efic__chips li { font-size: .85rem; }
.lv-cob__card strong { font-size: 1.1rem; font-weight: 700; }
.lv-cob__card span:not(.lv-cob__pt) { font-size: .85rem; }
.lv-cta2 h2 { font-size: clamp(1.3rem, 2.3vw, 1.75rem); font-weight: 800; letter-spacing: -.01em; line-height: 1.15; }
.lv-cta2 p { font-size: .9rem; }
.lv-cierre h2 { font-size: clamp(2.4rem, 5.2vw, 3.75rem); font-weight: 800; letter-spacing: -.025em; line-height: 1.05; }
.lv-cierre h2 span { font-weight: 300; color: #5C6870; }
.lv-cierre__flecha { font-size: .8rem; font-weight: 700; }
.lv-cierre__contacto { font-size: .9rem; }
/* páginas de especialidad */
.lv-ehero h1 { font-size: clamp(2.1rem, 4.4vw, 3.1rem); max-width: 38rem; }
.lv-ehero__sub { font-size: 1.05rem; max-width: 36rem; }
.lv-migas { font-size: .85rem; }
.lv-esp-info h2, .lv-alcance h2, .lv-metodo h2, .lv-entregables h2 { font-size: clamp(1.8rem, 3.2vw, 2.5rem); }
.lv-lead { font-size: 1.1rem; line-height: 1.65; }
.lv-resumen2 h3 { font-size: 1.1rem; }
.lv-resumen2 dt, .lv-resumen2 dd { font-size: .85rem; }
.lv-alcance__lista li { font-size: .98rem; }
.lv-pasos__num { font-size: 1.5rem; font-weight: 800; }
.lv-pasos__lista li strong { font-size: .98rem; }
.lv-cta h2 { font-size: clamp(1.5rem, 2.8vw, 2.1rem); }
.lv-otras__txt { font-size: .95rem; font-weight: 700; }
/* pie */
.lv-footer__title { font-size: .72rem; letter-spacing: .18em; font-weight: 700; }
.lv-footer li, .lv-footer a { font-size: .94rem; }
.lv-footer__legal { font-size: .82rem; }
.lv-footer__marca p { font-size: .94rem; }
/* formulario y páginas internas */
.lv-contacto h2, .lv-esp-hero h1 { letter-spacing: -.02em; }
.lv-esp-hero h1 { font-size: clamp(2rem, 4vw, 2.8rem); }

/* ===== Medidas exactas del referente (leídas de su hoja de estilos): Inter variable, h1 38–58 px peso 750, h2 28–43 px ===== */
@font-face { font-family: "Inter Var"; font-weight: 100 900; font-display: swap; src: url(assets/fonts/inter-variable-latin.woff2) format("woff2"); }
:root { --lv-font-title: "Inter Var", Inter, system-ui, sans-serif; --lv-font-text: "Inter Var", Inter, system-ui, sans-serif; }
body { font-family: var(--lv-font-text); font-size: 16px; line-height: 1.45; }
h1, h2, h3, h4 { font-family: var(--lv-font-title); font-weight: 750; }
h1 { font-size: clamp(38px, 3.55vw, 58px); line-height: 1.02; letter-spacing: -1.7px; }
h2 { font-size: clamp(28px, 2.7vw, 43px); line-height: 1.05; letter-spacing: -1.1px; }
h3 { font-size: clamp(20px, 1.6vw, 22px); letter-spacing: -.3px; }
.lv-hero2 h1, .lv-ehero h1 { font-size: clamp(38px, 3.55vw, 58px); line-height: 1.02; letter-spacing: -1.7px; font-weight: 750; max-width: 40rem; }
.lv-enfoque h2, .lv-esp2 h2, .lv-obras h2, .lv-cob h2, .lv-futuro h2, .lv-efic h2, .lv-esp-info h2, .lv-alcance h2, .lv-metodo h2, .lv-entregables h2, .lv-contacto h2 { font-size: clamp(28px, 2.7vw, 43px); line-height: 1.05; letter-spacing: -1.1px; font-weight: 750; }
.lv-cierre h2 { font-size: clamp(2.1rem, 5vw, 3.9rem); font-weight: 750; letter-spacing: -2px; line-height: 1.02; }
.lv-cierre h2 span { font-weight: 300; }
.lv-cta2 h2 { font-size: clamp(22px, 2vw, 28px); font-weight: 750; letter-spacing: -.6px; }
.lv-cta h2 { font-size: clamp(24px, 2.35vw, 34px); font-weight: 750; letter-spacing: -.8px; }
.lv-hero2__sub, .lv-ehero__sub { font-size: 17px; line-height: 1.45; }
.lv-cifras__lista strong { font-size: clamp(2.2rem, 4.2vw, 3rem); font-weight: 750; letter-spacing: -1.5px; }
.lv-esp2__nombre { font-size: 22px; font-weight: 750; letter-spacing: -.5px; }
.lv-esp2__desc { font-size: 14px; line-height: 1.4; }
.lv-nav a, .lv-btn, .lv-btn--nav { font-size: 14px; }
.lv-topbar { font-size: 13px; }
.lv-esp2__ver { font-size: 14px; }
.lv-eyebrow { font-size: 11px; letter-spacing: .22em; }
.lv-hero2__datos li { font-size: 13px; }
.lv-cifras__lista span, .lv-footer__legal, .lv-cierre__contacto { font-size: 13px; }
.lv-footer li, .lv-footer a, .lv-footer__marca p { font-size: 15px; }
.lv-footer__title { font-size: 12px; }

p.lv-eyebrow { font-size: 11px !important; letter-spacing: .22em !important; line-height: 1.4 !important; }

/* ===== Íconos de redes sociales del pie (ORD-024) ===== */
.lv-redes { list-style: none; display: flex; gap: .6rem; margin: 1.25rem 0 0; padding: 0; }
.lv-redes li { margin: 0; }
.lv-redes a, .lv-redes__off { display: flex; align-items: center; justify-content: center; width: 2.4rem; height: 2.4rem; border: 1px solid rgba(255,255,255,.28); border-radius: 8px; color: #fff; transition: background .2s, border-color .2s; }
.lv-redes a:hover { background: rgba(255,204,0,.12); border-color: #FFCC00; color: #FFCC00; }
.lv-redes__off { opacity: .45; cursor: not-allowed; }
.lv-redes svg { width: 1.15rem; height: 1.15rem; fill: currentColor; }

/* ===== Formulario más compacto (ORD-024) ===== */
.lv-form textarea { height: 5.5rem; min-height: 4.5rem; max-height: 14rem; resize: vertical; }
.lv-form { padding: 1.5rem 2rem 1.75rem; }
.lv-form label, .lv-form legend { margin: .8rem 0 .25rem; font-size: .9rem; }
.lv-form input[type=text], .lv-form input[type=email], .lv-form textarea { padding: .55rem .75rem; font-size: .95rem; }
.lv-form fieldset { gap: 0 1rem; }
.lv-form .lv-form__check { margin: .15rem 0; font-size: .9rem; }
.lv-form button { margin-top: 1.1rem; }

/* Redes en la sección Contacto (fondo claro) */
.lv-contacto__redes { margin: 1.75rem 0 .5rem; font-size: .8rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #3F4B55; }
.lv-redes--claro a { border-color: #B8C4CE; color: #041922; }
.lv-redes--claro a:hover { background: #FFCC00; border-color: #FFCC00; color: #041922; }
.lv-redes--claro { margin-top: 0; }

/* Iteración 32: foco visible con contraste sobre fondos oscuros (azul cielo) */
.lv-topbar :focus-visible, .lv-header :focus-visible, .lv-hero2 :focus-visible, .lv-esp2 :focus-visible, .lv-obras :focus-visible, .lv-futuro :focus-visible, .lv-footer :focus-visible { outline-color: #009FEB; }

/* Formulario compacto y asistente animado (14 oct 2026, orden de Julio) */
.lv-contacto__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 27rem); gap: 3rem; justify-content: space-between; }
.lv-form { padding: 1.25rem 1.5rem 1.4rem; }
.lv-form label, .lv-form legend { margin: .65rem 0 .2rem; font-size: .82rem; }
.lv-form input[type=text], .lv-form input[type=email], .lv-form textarea { padding: .45rem .65rem; font-size: .9rem; }
.lv-form textarea { height: 4.2rem; min-height: 3.6rem; }
.lv-form__fila { display: grid; grid-template-columns: 1fr 1fr; gap: 0 .9rem; }
.lv-form fieldset { grid-template-columns: 1fr 1fr; gap: .4rem .5rem; margin-top: .35rem; }
.lv-form legend { margin-bottom: .1rem; }
.lv-form .lv-form__check { display: flex; align-items: center; gap: .5rem; margin: 0; padding: .4rem .6rem; min-height: 2.5rem; font-size: .8rem; line-height: 1.25; border: 1px solid #C9D6DF; border-radius: 6px; background: #fff; cursor: pointer; transition: border-color .15s, background .15s; }
.lv-form .lv-form__check input { margin: 0; flex: 0 0 auto; accent-color: #3770C6; }
.lv-form .lv-form__check:hover { border-color: #3770C6; }
.lv-form .lv-form__check:has(input:checked) { border-color: #3770C6; background: #EAF2FC; font-weight: 600; }
.lv-form .lv-form__check:last-of-type:nth-of-type(odd) { grid-column: 1 / -1; }
.lv-form button { margin-top: .9rem; }
@media (max-width: 900px) { .lv-contacto__grid { grid-template-columns: 1fr; } .lv-form fieldset { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .lv-form__fila, .lv-form fieldset { grid-template-columns: 1fr; } }

/* Asistente robot y fichas de especialidades (14 oct 2026, segunda versión) */
.lv-av { display: flex; align-items: flex-end; gap: .5rem; margin-top: 1.25rem; max-width: 28rem; cursor: pointer; }
.lv-av__svg { flex: 0 0 auto; width: 11rem; height: auto; overflow: visible; transform-origin: 50% 60%; }
.lv-av__burbuja { position: relative; margin-bottom: 4.8rem; padding: .65rem .9rem; background: #fff; border: 1px solid #C9D6DF; border-radius: 16px 16px 16px 4px; font-size: .88rem; font-weight: 600; line-height: 1.35; color: #041922; box-shadow: 0 3px 12px rgba(4,25,34,.1); min-height: 2.5rem; }
.lv-av__burbuja::before { content: ""; position: absolute; left: -8px; bottom: 10px; border: 8px solid transparent; border-right-color: #C9D6DF; border-left: 0; }
.lv-av__burbuja::after { content: ""; position: absolute; left: -6px; bottom: 11px; border: 7px solid transparent; border-right-color: #fff; border-left: 0; }
.lv-av .av-ojos--feliz, .lv-av .av-ojos--guino, .lv-av .av-boca--abierta { opacity: 0; }
.lv-av[data-e="saludo"] .av-ojos--normal, .lv-av[data-e="feliz"] .av-ojos--normal, .lv-av[data-e="celebra"] .av-ojos--normal, .lv-av[data-e="vuelta"] .av-ojos--normal, .lv-av[data-e="guino"] .av-ojos--normal { opacity: 0; }
.lv-av[data-e="saludo"] .av-ojos--feliz, .lv-av[data-e="feliz"] .av-ojos--feliz, .lv-av[data-e="celebra"] .av-ojos--feliz, .lv-av[data-e="vuelta"] .av-ojos--feliz { opacity: 1; }
.lv-av[data-e="llama"] .av-ojos--normal { opacity: 0; }
.lv-av[data-e="llama"] .av-ojos--guino, .lv-av[data-e="guino"] .av-ojos--guino { opacity: 1; }
.lv-av[data-e="saludo"] .av-boca--abierta, .lv-av[data-e="feliz"] .av-boca--abierta, .lv-av[data-e="celebra"] .av-boca--abierta, .lv-av[data-e="vuelta"] .av-boca--abierta, .lv-av[data-e="llama"] .av-boca--abierta { opacity: 1; }
.lv-av[data-e="saludo"] .av-boca--sonrisa, .lv-av[data-e="feliz"] .av-boca--sonrisa, .lv-av[data-e="celebra"] .av-boca--sonrisa, .lv-av[data-e="vuelta"] .av-boca--sonrisa, .lv-av[data-e="llama"] .av-boca--sonrisa { opacity: 0; }
.lv-av .av-pupilas { transition: transform .12s ease-out; }
.lv-av .av-brazo--der { transform-origin: 134px 168px; }
.lv-av .av-brazo--izq { transform-origin: 66px 168px; }
.lv-av .av-cabeza { transform-origin: 100px 142px; }
.lv-av .av-ojos--normal { transform-origin: 100px 94px; }
@media (prefers-reduced-motion: no-preference) {
	.lv-av .av-robot { animation: av-flota 3.2s ease-in-out infinite; }
	.lv-av .av-sombra { animation: av-sombra 3.2s ease-in-out infinite; transform-origin: 100px 246px; }
	.lv-av .av-ojos--normal { animation: av-parpadeo 4.6s infinite; }
	.lv-av .av-antena { animation: av-antena 1.8s ease-in-out infinite; }
	.lv-av[data-e="saludo"] .av-brazo--der, .lv-av[data-e="llama"] .av-brazo--der { animation: av-saludar 1.6s ease-in-out infinite; }
	.lv-av[data-e="llama"] .lv-av__svg { animation: av-llama .9s ease-in-out infinite; }
	.lv-av[data-e="vuelta"] .lv-av__svg { animation: av-vuelta 1.1s cubic-bezier(.4, 0, .2, 1) 1; }
	.lv-av[data-e="atento"] .av-cabeza { transform: rotate(-5deg); }
	.lv-av[data-e="escribe"] .av-cabeza { animation: av-asiente .55s ease-in-out infinite; }
	.lv-av[data-e="feliz"] .lv-av__svg { animation: av-salto .6s ease-out 1; }
	.lv-av[data-e="celebra"] .lv-av__svg { animation: av-vuelta 1.1s cubic-bezier(.4, 0, .2, 1) 2; }
	.lv-av[data-e="celebra"] .av-brazo--der { transform: rotate(-150deg); }
	.lv-av[data-e="celebra"] .av-brazo--izq { transform: rotate(150deg); }
	.lv-av__burbuja { animation: av-pop .3s ease-out; }
}
@keyframes av-flota { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-7px); } }
@keyframes av-sombra { 0%, 100% { transform: scale(1); opacity: .2; } 50% { transform: scale(.82); opacity: .12; } }
@keyframes av-parpadeo { 0%, 92%, 100% { transform: scaleY(1); } 95% { transform: scaleY(.1); } }
@keyframes av-antena { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.25); } }
@keyframes av-saludar { 0%, 100% { transform: rotate(-115deg); } 50% { transform: rotate(-145deg); } }
@keyframes av-llama { 0%, 100% { transform: rotate(0) translateY(0); } 25% { transform: rotate(-7deg) translateY(-8px); } 75% { transform: rotate(7deg) translateY(-8px); } }
@keyframes av-vuelta { 0% { transform: perspective(700px) rotateY(0) translateY(0); } 45% { transform: perspective(700px) rotateY(200deg) translateY(-14px); } 100% { transform: perspective(700px) rotateY(360deg) translateY(0); } }
@keyframes av-asiente { 0%, 100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(3px) rotate(1.5deg); } }
@keyframes av-salto { 0%, 100% { transform: translateY(0); } 40% { transform: translateY(-14px) scale(1.04); } }
@keyframes av-pop { from { transform: scale(.92); opacity: .4; } to { transform: scale(1); opacity: 1; } }
@media (max-width: 900px) { .lv-av { max-width: none; } .lv-av__svg { width: 8rem; } .lv-av__burbuja { margin-bottom: 3rem; } }

/* Especialidades: fichas para marcar, todas del mismo alto, con casilla visible */
.lv-form fieldset { grid-auto-rows: 2.9rem; gap: .45rem; }
.lv-form .lv-form__check { height: 100%; min-height: 0; padding: 0 .65rem; font-size: .78rem; line-height: 1.2; gap: .55rem; border: 1.5px solid #C9D6DF; user-select: none; }
.lv-form .lv-form__check input { appearance: none; -webkit-appearance: none; width: 1.15rem; height: 1.15rem; flex: 0 0 auto; border: 2px solid #8FA6BC; border-radius: 5px; background: #fff; display: grid; place-content: center; cursor: pointer; transition: background .15s, border-color .15s; }
.lv-form .lv-form__check input::after { content: ""; width: .5rem; height: .28rem; border: solid #fff; border-width: 0 0 2.5px 2.5px; transform: rotate(-45deg) translate(1px, -1px) scale(0); transition: transform .12s; }
.lv-form .lv-form__check input:checked { background: #3770C6; border-color: #3770C6; }
.lv-form .lv-form__check input:checked::after { transform: rotate(-45deg) translate(1px, -1px) scale(1); }
.lv-form .lv-form__check input:focus-visible { outline: 3px solid #009FEB; outline-offset: 2px; }
@media (max-width: 480px) { .lv-form fieldset { grid-auto-rows: 2.6rem; } }

/* Fondo traslúcido con foto de obra aprobada en páginas de texto (Nosotros y Proceso), 14 oct 2026 */
.lv-esp-pag--fondo { position: relative; isolation: isolate; overflow: hidden; }
.lv-esp-pag--fondo::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--lv-fondo) center / cover no-repeat; opacity: .14; filter: grayscale(.35) saturate(.85); -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 16%, #000 78%, transparent 100%); mask-image: linear-gradient(to bottom, transparent 0, #000 16%, #000 78%, transparent 100%); }
.lv-esp-pag--fondo .lv-resumen { background: rgba(243, 245, 247, .92); }

/* Página de especialidad: foto y botón de cotizar en lugar del recuadro «En resumen» (14 oct 2026) */
.lv-esp-info__lado { display: grid; gap: 1rem; }
.lv-esp-info__foto { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 8px; box-shadow: 0 6px 20px rgba(4, 25, 34, .15); }
.lv-esp-info__lado .lv-btn { display: block; text-align: center; }

/* Robot 3D (imagen generada, 14 oct 2026): flota, se inclina hacia el cursor y da vueltas */
.lv-av { align-items: center; max-width: 30rem; }
.lv-av__fig { flex: 0 0 auto; width: 12rem; }
.lv-av__tilt { transform: perspective(700px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); transition: transform .18s ease-out; }
.lv-av .lv-av__svg { width: 100%; height: auto; display: block; filter: drop-shadow(0 14px 12px rgba(4, 25, 34, .2)); }
.lv-av .lv-av__burbuja { margin-bottom: 0; }
@media (prefers-reduced-motion: no-preference) { .lv-av__fig { animation: av-flota 3.2s ease-in-out infinite; } }
@media (max-width: 900px) { .lv-av__fig { width: 9.5rem; } }

/* Robot más cerca del formulario y globo compacto que aparece y desaparece (14 oct 2026) */
.lv-av { flex-direction: row-reverse; justify-content: flex-start; align-items: center; gap: .1rem; max-width: none; margin-right: -1.5rem; }
.lv-av .lv-av__burbuja { width: fit-content; max-width: 12.5rem; min-height: 0; margin: 0; padding: .4rem .75rem; font-size: .8rem; line-height: 1.3; text-wrap: balance; border-radius: 14px 14px 4px 14px; transition: opacity .28s ease, transform .28s ease, visibility .28s; transform-origin: 100% 70%; }
.lv-av .lv-av__burbuja::before { left: auto; right: -8px; bottom: 9px; border-left-color: #C9D6DF; border-right: 0; border-right-color: transparent; }
.lv-av .lv-av__burbuja::after { left: auto; right: -6px; bottom: 10px; border-left-color: #fff; border-right: 0; border-right-color: transparent; }
.lv-av .lv-av__burbuja.is-off { opacity: 0; visibility: hidden; transform: scale(.85); }
@media (max-width: 900px) { .lv-av { margin-right: 0; justify-content: center; } }

/* Robot más arriba, junto al formulario: se posiciona sobre la columna de texto (14 oct 2026) */
.lv-contacto__info { position: relative; }
.lv-av { position: absolute; top: 10.5rem; right: -.5rem; margin: 0; width: max-content; }
@media (max-width: 900px) { .lv-contacto__info { position: static; } .lv-av { position: static; margin: 1.25rem 0 0; width: auto; justify-content: center; } }

/* Franja de cierre ajustada a la referencia de Julio (14 oct 2026): tamaños, colores y flecha de trazo; textos propios */
.lv-cierre { padding: 6.25rem 0 4rem; }
.lv-cierre .lv-eyebrow { color: #5B6B7B; letter-spacing: .2em; }
.lv-cierre h2 span { color: #2F3E4F; }
.lv-cierre__flecha { font-size: .88rem; font-weight: 700; gap: .9rem; }
.lv-cierre__flecha span { width: 5.9rem; height: 5.9rem; }
.lv-cierre__flecha span svg { width: 1.75rem; height: 1.75rem; }
.lv-cierre__contacto { font-size: 1rem; margin-top: 3.2rem; padding-top: 1.9rem; border-top-color: #D9DDDD; }
@media (max-width: 700px) { .lv-cierre { padding: 3.5rem 0 3rem; } .lv-cierre__flecha span { width: 4.6rem; height: 4.6rem; } .lv-cierre__contacto { margin-top: 2rem; padding-top: 1.25rem; font-size: .92rem; } }

/* «Nuestro enfoque»: foto con el equipo completo y botón de acción con contorno, como en la referencia (14 oct 2026) */
.lv-enfoque__img { aspect-ratio: 1 / 1; object-position: 50% 0; border-radius: 14px; }
.lv-btn-ref { display: flex; align-items: center; justify-content: space-between; gap: 2rem; width: 100%; max-width: 19rem; padding: .95rem 1.2rem; border: 1px solid #C9D3DC; border-radius: 4px; background: #fff; color: #041922; font-size: .92rem; font-weight: 600; text-decoration: none; transition: border-color .15s, box-shadow .15s; }
.lv-btn-ref span:last-child { font-size: 1.15rem; transition: transform .2s; }
.lv-btn-ref:hover { border-color: #3770C6; box-shadow: 0 2px 10px rgba(4, 25, 34, .08); }
.lv-btn-ref:hover span:last-child { transform: translateX(4px); }
.lv-btn-ref:focus-visible { outline: 3px solid #009FEB; outline-offset: 2px; }

/* Botón flotante: imagen fija del robot con el mensaje «¡Haga su consulta aquí!» en lugar del botón de WhatsApp (14 oct 2026) */
.lv-wa.lv-wa--robot { display: flex; align-items: flex-end; gap: .2rem; right: .75rem; bottom: .5rem; padding: 0; background: none; box-shadow: none; border-radius: 0; color: #041922; }
.lv-wa--robot img { width: 5.5rem; height: auto; display: block; filter: drop-shadow(0 8px 8px rgba(4, 25, 34, .25)); }
.lv-wa--robot .lv-wa__txt { position: relative; margin-bottom: 2.4rem; padding: .5rem .85rem; background: #fff; border: 1px solid #C9D6DF; border-radius: 14px 14px 4px 14px; font-size: .85rem; font-weight: 700; line-height: 1.2; box-shadow: 0 3px 12px rgba(4, 25, 34, .15); white-space: nowrap; }
.lv-wa--robot .lv-wa__txt::before { content: ""; position: absolute; right: -8px; bottom: 9px; border: 8px solid transparent; border-left-color: #C9D6DF; border-right: 0; }
.lv-wa--robot .lv-wa__txt::after { content: ""; position: absolute; right: -6px; bottom: 10px; border: 7px solid transparent; border-left-color: #fff; border-right: 0; }
.lv-wa--robot:hover .lv-wa__txt { border-color: #3770C6; }
.lv-wa--robot:focus-visible { outline: 3px solid #009FEB; outline-offset: 3px; border-radius: 12px; }
@media (max-width: 600px) { .lv-wa--robot img { width: 4.5rem; } .lv-wa--robot .lv-wa__txt { font-size: .78rem; margin-bottom: 1.9rem; padding: .4rem .65rem; } }

/* Robot flotante: más grande, mensaje sobre el casco sin tapar la antena y clic que lleva al formulario (14 oct 2026) */
.lv-wa.lv-wa--robot { flex-direction: column; align-items: flex-end; gap: .15rem; right: .6rem; bottom: .4rem; }
.lv-wa--robot img { width: 6.6rem; }
.lv-wa--robot .lv-wa__txt { margin: 0 2.2rem 0 0; border-radius: 14px 14px 14px 4px; }
.lv-wa--robot .lv-wa__txt::before { right: auto; left: auto; bottom: -9px; right: 1.6rem; border: 8px solid transparent; border-top-color: #C9D6DF; border-bottom: 0; border-left-color: transparent; }
.lv-wa--robot .lv-wa__txt::after { right: auto; left: auto; bottom: -7px; right: calc(1.6rem + 2px); border: 6px solid transparent; border-top-color: #fff; border-bottom: 0; border-left-color: transparent; }
@media (max-width: 600px) { .lv-wa--robot img { width: 5.4rem; } .lv-wa--robot .lv-wa__txt { margin-right: 1.6rem; } }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
#contacto { scroll-margin-top: 5rem; }
.lv-wa--robot { transition: opacity .25s ease, transform .25s ease, visibility .25s; }
.lv-wa--robot.is-oculto { opacity: 0; visibility: hidden; transform: translateY(14px); pointer-events: none; }

/* Robot flotante: más grande (un poco menos que el de la sección) y mensaje corto sobre el casco, a la derecha (14 oct 2026) */
.lv-wa--robot img { width: 9rem; }
.lv-wa--robot .lv-wa__txt { margin: 0 .6rem 0 0; font-size: .95rem; }
.lv-wa--robot .lv-wa__txt::before { right: 3.24rem; }
.lv-wa--robot .lv-wa__txt::after { right: calc(3.24rem + 2px); }
@media (max-width: 600px) { .lv-wa--robot img { width: 6.12rem; } .lv-wa--robot .lv-wa__txt { margin-right: .3rem; font-size: .82rem; } .lv-wa--robot .lv-wa__txt::before { right: 2.16rem; } .lv-wa--robot .lv-wa__txt::after { right: calc(2.16rem + 2px); } }

/* «Elige la especialidad que necesitas»: tarjetas más bajas, como en la referencia (14 oct 2026) */
.lv-esp2__card { min-height: 310px; }
@media (max-width: 800px) { .lv-esp2__card { min-height: 280px; } }

/* Tarjetas de especialidades: título de hasta 2 líneas y descripción de 4 para que los íconos queden a la misma altura (14 oct 2026) */
.lv-esp2__nombre { min-height: 2.9rem; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.lv-esp2__desc { min-height: 4.7rem; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; overflow: hidden; }
.lv-esp2__sub { display: block; margin-top: .1rem; font-size: .88rem; font-weight: 500; line-height: 1.3; color: #C9D6DF; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lv-esp2__sub { font: inherit; color: inherit; margin-top: 0; }

/* Robot flotante atenuado; vuelve al 100 % al pasar el cursor o enfocarlo (14 oct 2026) */
.lv-wa.lv-wa--robot { opacity: .7; }
.lv-wa.lv-wa--robot:hover, .lv-wa.lv-wa--robot:focus-visible { opacity: 1; }
.lv-wa.lv-wa--robot.is-oculto { opacity: 0; }
@media (hover: none) { .lv-wa.lv-wa--robot { opacity: .9; } }

/* Sección «Sectores que atendemos» (14 oct 2026): oficinas, industria, retail, salud, educación y comercial, según Julio */
.lv-sectores { padding: 4.5rem 0; background: #fff; }
.lv-sectores h2 { margin: 0 0 2rem; }
.lv-sectores__lista { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, 1fr); gap: 1rem; }
.lv-sectores__lista li { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .8rem; min-height: 9rem; padding: 1.25rem .75rem; border: 1px solid #DDE3E8; border-radius: 10px; background: #F7F9FA; text-align: center; font-weight: 600; font-size: 1rem; color: #041922; transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease, background .2s ease; }
.lv-sectores__lista li:hover { transform: translateY(-4px); border-color: #3770C6; background: #fff; box-shadow: 0 8px 22px rgba(4, 25, 34, .1); }
.lv-sec__ico { width: 2.4rem; height: 2.4rem; color: #3770C6; }
@media (max-width: 1000px) { .lv-sectores__lista { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px) { .lv-sectores { padding: 3rem 0; } .lv-sectores__lista { grid-template-columns: repeat(2, 1fr); } .lv-sectores__lista li { min-height: 7.5rem; } }
.lv-form__aviso { margin: .6rem 0 0; font-size: .78rem; line-height: 1.4; color: #5a6b7a; }
.lv-form__aviso a { color: #1F5FAE; text-decoration: underline; }

/* Newsletter, descarga y Libro de Reclamaciones (ORD-083) */
.lv-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.lv-boletin { margin-top: 2.5rem; padding: 1.5rem 0 0; border-top: 1px solid rgba(255,255,255,.1); }
.lv-boletin__t { font-size: 1.25rem; margin: 0 0 .8rem; color: var(--lv-white); }
.lv-boletin__fila { display: flex; gap: .6rem; flex-wrap: wrap; }
.lv-boletin__fila input[type=email] { flex: 1 1 260px; max-width: 420px; padding: .65rem .8rem; font: 400 1rem var(--lv-font-text); border: 1px solid var(--lv-cool); border-radius: 4px; }
.lv-boletin .lv-acepto { margin-top: .6rem; font-size: .85rem; color: var(--lv-cool); }
.lv-boletin .lv-acepto a { color: var(--lv-white); }
.lv-aviso { padding: .6rem .9rem; border-radius: 4px; margin: 0 0 .8rem; font-weight: 600; }
.lv-aviso--ok { background: #E3F4EA; color: #0C3B22; }
.lv-aviso--error { background: #FBE6E6; color: #5B1111; }
.lv-libro { max-width: 760px; }
.lv-libro label { display: block; margin: .8rem 0 .25rem; font-weight: 600; }
.lv-libro select, .lv-libro textarea, .lv-libro input[type=text], .lv-libro input[type=email] { width: 100%; padding: .6rem .75rem; font: 400 1rem var(--lv-font-text); border: 1px solid var(--lv-steel); border-radius: 4px; }
.lv-libro h2 { font-size: 1.25rem; margin-top: 1.8rem; }
.lv-libro .lv-form__check { display: inline-flex; font-weight: 400; margin-right: 1.2rem; }
.lv-libro fieldset { border: 0; padding: 0; margin: .8rem 0 0; }
.lv-libro__nota { font-size: .85rem; color: var(--lv-steel); }
.lv-descarga { max-width: 560px; margin: 2rem 0; }
.lv-descarga label { display: block; margin: .6rem 0 .2rem; font-weight: 600; }
