/* ==========================================================================
   ALCORPS — sistema de diseño (complementa el tema Bootstrap tema.min.css)
   Paleta: la misma del sitio. Naranja #FB734D (acción), tinta #111827,
   grises slate y negro en el footer.
   ========================================================================== */

:root {
    --alc-primario: #FB734D;
    --alc-primario-hover: #f45d33;
    --alc-tinta: #111827;
    --alc-tinta-2: #0f172a;
    --alc-texto: #1f2937;
    --alc-gris: #6b7280;
    --alc-slate: #64748b;
    --alc-gris-claro: #9ca3af;
    --alc-linea: #e2e8f0;
    --alc-linea-oscura: #1f2937;
    --alc-fondo: #f8fafc;
    --alc-texto-sobre-oscuro: #cbd5e1;
    --alc-oscuro: #111827; /* alias usado en vistas antiguas */

    --alc-font-display: 'Barlow Condensed', 'Arial Narrow', sans-serif;
    --alc-font-texto: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    --alc-font-mono: 'IBM Plex Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;

    --alc-radio: 4px;
    --alc-ancho: 1240px;
}

body {
    font-family: var(--alc-font-texto);
    color: var(--alc-texto);
    background: #fff;
}

/* Las imágenes llevan width/height (evita saltos de diseño); la altura se ajusta sola */
img[width][height] {
    height: auto;
}

a {
    color: var(--alc-tinta);
}
a:hover {
    color: var(--alc-primario-hover);
}

:focus-visible {
    outline: 3px solid var(--alc-primario);
    outline-offset: 2px;
}

/* ---------- Tipografía ---------- */
.display,
.titulo-display {
    font-family: var(--alc-font-display);
    font-weight: 700;
    line-height: 1.02;
    letter-spacing: -0.005em;
    color: inherit;
}
.display-xl { font-size: clamp(2.6rem, 5.4vw, 4.5rem); line-height: .98; }
.display-lg { font-size: clamp(2.2rem, 4vw, 3.25rem); }
.display-md { font-size: clamp(1.8rem, 3vw, 2.5rem); }
.display-sm { font-size: clamp(1.4rem, 2.2vw, 1.75rem); line-height: 1.1; }

.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .75rem;
    font-family: var(--alc-font-mono);
    font-size: .8125rem;
    font-weight: 500;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--alc-slate);
}
.eyebrow::before {
    content: "";
    width: 10px;
    height: 10px;
    background: var(--alc-primario);
    flex: none;
}
.eyebrow.sin-marca::before { display: none; }
.seccion-oscura .eyebrow,
.eyebrow.naranja { color: var(--alc-primario); }

.mono {
    font-family: var(--alc-font-mono);
    font-weight: 500;
    letter-spacing: .04em;
}
.lead-alc {
    font-size: clamp(1.0625rem, 1.4vw, 1.1875rem);
    line-height: 1.6;
}

/* ---------- Estructura ---------- */
.contenedor {
    width: 100%;
    max-width: var(--alc-ancho);
    margin-inline: auto;
    padding-inline: 1.5rem;
}
.seccion { padding-block: clamp(4rem, 8vw, 6.5rem); }
.seccion-sm { padding-block: clamp(2.5rem, 5vw, 4rem); }
.seccion-oscura {
    background: var(--alc-tinta);
    color: #fff;
}
.seccion-oscura p,
.texto-suave-oscuro { color: var(--alc-texto-sobre-oscuro); }
.seccion-gris { background: var(--alc-fondo); }
.texto-gris { color: var(--alc-gris); }
.cabecera-seccion {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem 4rem;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 3rem;
}
.cabecera-seccion > div { display: flex; flex-direction: column; gap: 1rem; max-width: 46rem; }
.cabecera-seccion h2 { margin: 0; }

/* ---------- Botones (texto oscuro sobre naranja: contraste 6.4:1) ---------- */
.btn-primary,
.btn-brand {
    --bs-btn-color: var(--alc-tinta);
    --bs-btn-bg: var(--alc-primario);
    --bs-btn-border-color: var(--alc-primario);
    --bs-btn-hover-color: var(--alc-tinta);
    --bs-btn-hover-bg: var(--alc-primario-hover);
    --bs-btn-hover-border-color: var(--alc-primario-hover);
    --bs-btn-active-color: var(--alc-tinta);
    --bs-btn-active-bg: var(--alc-primario-hover);
    --bs-btn-active-border-color: var(--alc-primario-hover);
    --bs-btn-disabled-color: var(--alc-tinta);
    background: var(--bs-btn-bg);
    border-color: var(--bs-btn-border-color);
    color: var(--bs-btn-color);
    font-weight: 700;
}
.btn-brand:hover,
.btn-brand:focus { background: var(--alc-primario-hover); border-color: var(--alc-primario-hover); color: var(--alc-tinta); }
.btn-alc {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    min-height: 48px;
    padding: .8rem 1.5rem;
    border-radius: var(--alc-radio);
    font-weight: 700;
    font-size: 1rem;
    text-decoration: none;
    border: 1px solid transparent;
    transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.btn-alc-primario { background: var(--alc-primario); color: var(--alc-tinta); }
.btn-alc-primario:hover { background: var(--alc-primario-hover); color: var(--alc-tinta); }
.btn-alc-oscuro { background: var(--alc-tinta); color: #fff; }
.btn-alc-oscuro:hover { background: #000; color: #fff; }
.btn-alc-borde { border-color: var(--alc-tinta); color: var(--alc-tinta); font-weight: 600; }
.btn-alc-borde:hover { background: var(--alc-tinta); color: #fff; }
.btn-alc-borde-claro { border-color: var(--alc-slate); color: #fff; font-weight: 600; }
.btn-alc-borde-claro:hover { border-color: #fff; color: #fff; }
.btn-alc-sm { min-height: 44px; padding: .6rem 1.1rem; font-size: .9375rem; }
.enlace-flecha { font-weight: 600; text-decoration: none; }
.enlace-flecha::after { content: " →"; }

/* ---------- Barra superior + navegación ---------- */
.topbar {
    background: #000;
    color: var(--alc-gris-claro);
    font-size: .8125rem;
}
.topbar .contenedor {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1.5rem;
    justify-content: space-between;
    align-items: center;
    padding-block: .55rem;
}
.topbar a { color: #fff; text-decoration: none; font-weight: 600; }
.topbar a:hover { color: var(--alc-primario); }

.nav-alc {
    background: #fff;
    border-bottom: 1px solid var(--alc-linea);
    position: sticky;
    top: 0;
    z-index: 1020;
}
.nav-alc .contenedor {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem 2rem;
    padding-block: .75rem;
}
.marca {
    display: flex;
    align-items: center;
    gap: .75rem;
    text-decoration: none;
    color: var(--alc-tinta);
}
.marca img { width: 44px; height: 44px; object-fit: contain; }
.marca span {
    font-family: var(--alc-font-display);
    font-weight: 700;
    font-size: 1.625rem;
    letter-spacing: .08em;
    line-height: 1;
}
.marca:hover { color: var(--alc-tinta); }
.menu-principal {
    display: flex;
    align-items: center;
    gap: .25rem 1.75rem;
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: .9375rem;
    font-weight: 500;
}
.menu-principal > li { position: relative; }
.menu-principal a,
.menu-principal button {
    display: inline-block;
    padding: .7rem 0;
    color: var(--alc-texto);
    text-decoration: none;
    background: none;
    border: 0;
    border-bottom: 2px solid transparent;
    font: inherit;
}
.menu-principal a:hover,
.menu-principal button:hover { color: var(--alc-tinta); border-bottom-color: var(--alc-linea); }
.menu-principal .active { color: var(--alc-tinta); border-bottom-color: var(--alc-primario); }
.menu-principal .dropdown-menu {
    border-radius: var(--alc-radio);
    border: 1px solid var(--alc-linea);
    padding: .5rem;
    min-width: 17rem;
}
.menu-principal .dropdown-item {
    padding: .6rem .75rem;
    border: 0;
    border-radius: var(--alc-radio);
    display: block;
}
.menu-principal .dropdown-item:hover { background: var(--alc-fondo); }
.nav-acciones { display: flex; align-items: center; gap: .75rem; }
.nav-burger {
    width: 48px;
    height: 48px;
    border-radius: var(--alc-radio);
    border: 1px solid var(--alc-linea);
    background: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
@media (max-width: 1099.98px) {
    .menu-principal,
    .nav-acciones .ocultar-movil { display: none; }
}
@media (min-width: 1100px) {
    .nav-burger { display: none; }
}

/* Menú móvil */
.menu-movil {
    position: fixed;
    inset: 0;
    z-index: 1060;
}
.menu-movil-fondo {
    position: absolute;
    inset: 0;
    background: rgba(17, 24, 39, .75);
}
.menu-movil-panel {
    position: relative;
    width: min(88vw, 360px);
    height: 100%;
    background: #fff;
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    overflow-y: auto;
}
.menu-movil-panel ul { list-style: none; margin: 0; padding: 0; }
.menu-movil-panel li a {
    display: block;
    padding: .7rem 0;
    border-bottom: 1px solid var(--alc-linea);
    text-decoration: none;
    font-weight: 500;
}
.menu-movil-panel .sub a { padding-left: 1rem; font-size: .9375rem; color: var(--alc-gris); }

/* ---------- Hero ---------- */
.hero {
    background: var(--alc-tinta);
    color: #fff;
}
.hero-grid {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
}
.hero-texto {
    flex: 1 1 520px;
    min-width: 0;
    padding: clamp(3.5rem, 7vw, 5.5rem) 3rem clamp(3.5rem, 7vw, 5.5rem) 0;
    display: flex;
    flex-direction: column;
    gap: 1.75rem;
}
.hero-texto h1 { margin: 0; }
.hero-texto p { margin: 0; color: var(--alc-texto-sobre-oscuro); max-width: 35rem; }
.hero-media {
    flex: 1 1 420px;
    min-width: 0;
    min-height: 420px;
    position: relative;
    overflow: hidden;
}
.hero-media picture,
.hero-media img,
.hero-media img[width][height] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 30% center;
}
.hero-media .ficha {
    position: absolute;
    left: 1.5rem;
    bottom: 1.5rem;
    max-width: 18rem;
}
.ficha {
    background: var(--alc-tinta);
    border-left: 4px solid var(--alc-primario);
    padding: 1rem 1.25rem;
    color: #fff;
    font-size: .9375rem;
    line-height: 1.4;
}
.ficha .mono { display: block; font-size: .75rem; color: var(--alc-primario); margin-bottom: .35rem; letter-spacing: .1em; }
.hero-confianza {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 1.75rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--alc-linea-oscura);
    font-size: .875rem;
    color: var(--alc-gris-claro);
}
.hero-confianza span { display: inline-flex; align-items: center; gap: .6rem; }
.hero-confianza i { color: var(--alc-primario); font-size: 1.15rem; }
.hero-confianza strong { color: #fff; }
.acciones { display: flex; flex-wrap: wrap; gap: .75rem; }
@media (max-width: 991.98px) {
    .hero-texto { padding-right: 0; }
    .hero-media { margin-inline: -1.5rem; min-height: 320px; }
}

/* Hero de páginas internas */
.hero-interno {
    background: var(--alc-tinta);
    color: #fff;
    padding-block: 2rem clamp(3rem, 6vw, 4.5rem);
}
.hero-interno h1 { margin: 1.25rem 0 1rem; }
.hero-interno .lead-alc { color: var(--alc-texto-sobre-oscuro); max-width: 44rem; margin: 0; }

/* Migas de pan */
.migas {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem .5rem;
    list-style: none;
    margin: 0;
    padding: 0;
    font-size: .875rem;
    color: var(--alc-gris-claro);
}
.migas li + li::before { content: "/"; margin-right: .5rem; color: var(--alc-slate); }
.migas a { color: var(--alc-gris-claro); text-decoration: none; }
.migas a:hover { color: #fff; text-decoration: underline; }
.migas [aria-current] { color: #fff; }
.migas-claras { color: var(--alc-gris); }
.migas-claras a { color: var(--alc-gris); }
.migas-claras a:hover { color: var(--alc-tinta); }
.migas-claras [aria-current] { color: var(--alc-tinta); }

/* ---------- Cifras ---------- */
.cifras { background: var(--alc-tinta-2); color: #fff; }
.cifras .contenedor {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1.5rem;
    padding-block: 2.25rem;
    margin: 0 auto;
}
.cifras dl { margin: 0; display: flex; flex-direction: column-reverse; gap: .25rem; }
.cifras dt { font-size: .875rem; font-weight: 400; color: var(--alc-gris-claro); }
.cifras dd { margin: 0; font-family: var(--alc-font-display); font-weight: 700; font-size: 3rem; line-height: 1; }

/* ---------- Tres frentes ---------- */
.frentes {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
    gap: 2px;
    background: var(--alc-linea);
    border: 2px solid var(--alc-linea);
}
.frente {
    background: #fff;
    padding: 2.25rem;
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
    text-decoration: none;
    color: var(--alc-texto);
    transition: background-color .15s ease;
}
.frente:hover { background: var(--alc-fondo); color: var(--alc-texto); }
.frente .mono { font-size: .8125rem; color: var(--alc-slate); }
.frente i { font-size: 2.25rem; color: var(--alc-primario); line-height: 1; }
.frente h3 { margin: 0; font-family: var(--alc-font-display); font-weight: 700; font-size: 2rem; color: var(--alc-tinta); }
.frente p { margin: 0; color: var(--alc-gris); }
.frente ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .6rem; font-weight: 500; color: var(--alc-tinta); }
.frente li { padding-top: .6rem; border-top: 1px solid var(--alc-linea); }
.frente-oscuro { background: var(--alc-tinta); color: #fff; }
.frente-oscuro:hover { background: #000; color: #fff; }
.frente-oscuro .mono { color: var(--alc-primario); }
.frente-oscuro h3,
.frente-oscuro ul { color: #fff; }
.frente-oscuro p { color: var(--alc-texto-sobre-oscuro); }
.frente-oscuro li { border-top-color: var(--alc-linea-oscura); }

/* ---------- Tarjetas de servicio con foto ---------- */
.grid-servicios {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(175px, 1fr));
    gap: 1.25rem;
}
.srv-card {
    display: flex;
    flex-direction: column;
    gap: .75rem;
    text-decoration: none;
    color: var(--alc-texto);
}
.srv-card .srv-img { overflow: hidden; border-radius: var(--alc-radio); }
.srv-card img {
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    display: block;
    transition: transform .4s ease;
}
.srv-card:hover img { transform: scale(1.04); }
.srv-card .mono { font-size: .75rem; color: var(--alc-slate); }
.srv-card h3 { margin: 0; font-family: var(--alc-font-display); font-weight: 700; font-size: 1.5rem; color: var(--alc-tinta); }
.srv-card p { margin: 0; font-size: .9375rem; color: var(--alc-gris); }
.srv-card:hover h3 { color: var(--alc-primario-hover); }

/* Tarjetas de servicio horizontales (catálogo) */
.grid-catalogo {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 1.5rem;
}
.catalogo-card {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--alc-linea);
    border-radius: var(--alc-radio);
    overflow: hidden;
    text-decoration: none;
    color: var(--alc-texto);
    background: #fff;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.catalogo-card:hover { border-color: var(--alc-tinta); box-shadow: 0 12px 24px rgba(17, 24, 39, .08); color: var(--alc-texto); }
.catalogo-card img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block; }
.catalogo-card .cuerpo { padding: 1.5rem; display: flex; flex-direction: column; gap: .75rem; flex: 1; }
.catalogo-card h3 { margin: 0; font-family: var(--alc-font-display); font-weight: 700; font-size: 1.75rem; color: var(--alc-tinta); }
.catalogo-card p { margin: 0; color: var(--alc-gris); }
.catalogo-card .enlace-flecha { margin-top: auto; color: var(--alc-tinta); }

/* ---------- Bloque detectives ---------- */
.bloque-media {
    display: flex;
    flex-wrap: wrap;
    gap: 3.5rem;
    align-items: center;
}
.bloque-media > * { flex: 1 1 440px; min-width: 0; }
.bloque-media .texto { display: flex; flex-direction: column; gap: 1.5rem; }
.bloque-media .texto h2,
.bloque-media .texto p { margin: 0; }
.media-etiquetada { position: relative; }
.media-etiquetada img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; border-radius: var(--alc-radio); display: block; }
.sello {
    position: absolute;
    top: 1.25rem;
    left: 1.25rem;
    background: var(--alc-primario);
    color: var(--alc-tinta);
    font-family: var(--alc-font-mono);
    font-size: .75rem;
    font-weight: 500;
    letter-spacing: .12em;
    padding: .5rem .75rem;
    text-transform: uppercase;
}
.grid-casos {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1px;
    background: var(--alc-linea-oscura);
    border: 1px solid var(--alc-linea-oscura);
    margin: 0;
    padding: 0;
    list-style: none;
}
.grid-casos li { background: var(--alc-tinta); padding: 1.1rem 1.25rem; font-size: .9375rem; }

/* ---------- Pasos / protocolo ---------- */
.pasos {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 1.5rem;
    list-style: none;
    margin: 0;
    padding: 0;
    counter-reset: paso;
}
.pasos li {
    display: flex;
    flex-direction: column;
    gap: .75rem;
    padding-top: 1.25rem;
    border-top: 3px solid var(--alc-tinta);
    counter-increment: paso;
}
.pasos li:first-child { border-top-color: var(--alc-primario); }
.pasos li::before {
    content: counter(paso, decimal-leading-zero);
    font-family: var(--alc-font-display);
    font-weight: 700;
    font-size: 2.5rem;
    line-height: 1;
    color: var(--alc-tinta);
}
.pasos strong { font-size: 1.125rem; color: var(--alc-tinta); }
.pasos span { color: var(--alc-gris); font-size: .9375rem; line-height: 1.6; }

/* Pasos verticales (páginas de servicio) */
.pasos-lista { list-style: none; margin: 0; padding: 0; counter-reset: paso; }
.pasos-lista li {
    display: flex;
    gap: 1.5rem;
    padding: 1.35rem 0;
    border-top: 1px solid var(--alc-linea);
    counter-increment: paso;
}
.pasos-lista li:last-child { border-bottom: 1px solid var(--alc-linea); }
.pasos-lista li::before {
    content: counter(paso, decimal-leading-zero);
    font-family: var(--alc-font-display);
    font-weight: 700;
    font-size: 2rem;
    line-height: 1;
    color: var(--alc-primario-hover);
    width: 3rem;
    flex: none;
}
.pasos-lista strong { display: block; font-size: 1.125rem; color: var(--alc-tinta); margin-bottom: .25rem; }
.pasos-lista span { color: var(--alc-gris); }

/* ---------- Listas ---------- */
.lista-check { list-style: none; padding: 0; margin: 0; }
.lista-check li { display: flex; gap: .75rem; margin-bottom: .75rem; align-items: flex-start; }
.lista-check i { color: var(--alc-primario-hover); flex-shrink: 0; margin-top: .15rem; font-size: 1.1rem; }

.caja-gris { background: var(--alc-fondo); border-radius: var(--alc-radio); padding: clamp(1.5rem, 3vw, 2.5rem); }

/* ---------- Preguntas frecuentes (details/summary: sin JS, todo en el HTML) ---------- */
.faq-lista { border-top: 1px solid var(--alc-linea); }
.faq-item { border-bottom: 1px solid var(--alc-linea); }
.faq-item summary {
    list-style: none;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    padding: 1.15rem 0;
    font-weight: 700;
    font-size: 1.0625rem;
    color: var(--alc-tinta);
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary h3 { font: inherit; margin: 0; color: inherit; }
.faq-item summary::after {
    content: "+";
    font-family: var(--alc-font-display);
    font-size: 1.75rem;
    line-height: 1;
    color: var(--alc-primario-hover);
    flex: none;
}
.faq-item[open] summary::after { content: "–"; }
.faq-item .respuesta { padding: 0 0 1.25rem; color: var(--alc-gris); line-height: 1.7; }
.faq-item .respuesta p:last-child { margin-bottom: 0; }

/* ---------- Noticias / blog ---------- */
.etiqueta {
    display: inline-block;
    font-family: var(--alc-font-mono);
    font-size: .75rem;
    font-weight: 500;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: .2rem .5rem;
    border: 1px solid var(--alc-tinta);
    color: var(--alc-tinta);
    text-decoration: none;
    line-height: 1.4;
}
.etiqueta-solida { background: var(--alc-tinta); color: #fff; }
.etiqueta-naranja { background: var(--alc-primario); border-color: var(--alc-primario); color: var(--alc-tinta); }
a.etiqueta:hover { background: var(--alc-tinta); color: #fff; }
.meta-post { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; font-size: .8125rem; color: var(--alc-gris); }

.blog-card {
    display: flex;
    flex-direction: column;
    gap: .9rem;
    height: 100%;
    text-decoration: none;
    color: var(--alc-texto);
}
.blog-card .blog-img { overflow: hidden; border-radius: var(--alc-radio); background: var(--alc-fondo); }
.blog-card img {
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    display: block;
    transition: transform .4s ease;
}
.blog-card:hover img { transform: scale(1.03); }
.blog-card h3 { margin: 0; font-size: 1.25rem; font-weight: 700; line-height: 1.35; color: var(--alc-tinta); }
.blog-card:hover h3 { color: var(--alc-primario-hover); }
.blog-card p { margin: 0; color: var(--alc-gris); font-size: .9375rem; line-height: 1.6; }
.grid-blog {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 2.5rem 1.75rem;
}

.destacado {
    display: flex;
    flex-wrap: wrap;
    gap: 2.5rem;
    align-items: center;
    text-decoration: none;
    color: var(--alc-texto);
    padding-bottom: 3.5rem;
    border-bottom: 1px solid var(--alc-linea);
}
.destacado .destacado-img { flex: 3 1 480px; min-width: 0; overflow: hidden; border-radius: var(--alc-radio); }
.destacado img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.destacado .destacado-texto { flex: 2 1 340px; min-width: 0; display: flex; flex-direction: column; gap: 1.1rem; }
.destacado h2 { margin: 0; color: var(--alc-tinta); }
.destacado:hover h2 { color: var(--alc-primario-hover); }
.destacado p { margin: 0; color: var(--alc-gris); line-height: 1.65; }

/* Lista de titulares (home) */
.titulares { display: flex; flex-direction: column; }
.titulares a {
    display: flex;
    flex-direction: column;
    gap: .6rem;
    padding: 1.35rem 0;
    border-bottom: 1px solid var(--alc-linea);
    text-decoration: none;
}
.titulares a:first-child { padding-top: 0; }
.titulares a:last-child { border-bottom: 0; }
.titulares .mono { font-size: .75rem; color: var(--alc-slate); text-transform: uppercase; }
.titulares strong { font-size: 1.125rem; line-height: 1.4; color: var(--alc-tinta); }
.titulares a:hover strong { color: var(--alc-primario-hover); }

/* Pestañas por tipo y filtros del blog */
.tabs-tipo { display: flex; flex-wrap: wrap; gap: .25rem; margin: 0; padding: 0; list-style: none; }
.tabs-tipo a {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    min-height: 48px;
    padding: 0 1.25rem;
    border-bottom: 3px solid transparent;
    border-radius: var(--alc-radio) var(--alc-radio) 0 0;
    color: var(--alc-texto-sobre-oscuro);
    font-weight: 600;
    font-size: .9375rem;
    text-decoration: none;
}
.tabs-tipo a:hover { color: #fff; border-bottom-color: var(--alc-slate); }
.tabs-tipo a[aria-current] { background: #fff; color: var(--alc-tinta); border-bottom-color: var(--alc-primario); }
.filtros-blog {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: space-between;
    align-items: flex-end;
}
.filtros-blog form { display: flex; flex-wrap: wrap; gap: .5rem; padding-bottom: .75rem; }
.campo-oscuro {
    height: 44px;
    padding: 0 .9rem;
    border: 1px solid var(--alc-slate);
    background: var(--alc-tinta-2);
    color: #fff;
    border-radius: var(--alc-radio);
    font-size: .9375rem;
}
.campo-oscuro::placeholder { color: var(--alc-gris-claro); }
.chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.chip {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .45rem .9rem;
    border-radius: 999px;
    background: #fff;
    border: 1px solid var(--alc-linea);
    font-size: .875rem;
    text-decoration: none;
    color: var(--alc-texto);
}
a.chip:hover,
.chip[aria-current] { border-color: var(--alc-tinta); color: var(--alc-tinta); }
.chip[aria-current] { background: var(--alc-tinta); color: #fff; }

/* Paginación */
.pagination { gap: .4rem; flex-wrap: wrap; justify-content: center; margin: 0; }
.pagination .page-link {
    min-width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--alc-radio) !important;
    border: 1px solid var(--alc-linea);
    color: var(--alc-tinta);
    font-weight: 600;
}
.pagination .page-link:hover { border-color: var(--alc-tinta); background: #fff; color: var(--alc-tinta); }
.pagination .active .page-link { background: var(--alc-tinta); border-color: var(--alc-tinta); color: #fff; }

/* ---------- Artículo ---------- */
.articulo-cabecera { padding-block: 2rem 0; }
.articulo-cabecera .contenedor { max-width: 960px; }
.articulo-cabecera h1 {
    margin: 1.5rem 0 1.25rem;
    font-family: var(--alc-font-display);
    font-weight: 700;
    font-size: clamp(2.2rem, 4.6vw, 3.6rem);
    line-height: 1.04;
    color: var(--alc-tinta);
}
.articulo-entradilla {
    font-size: clamp(1.125rem, 1.6vw, 1.3125rem);
    line-height: 1.6;
    color: #374151;
    margin: 0 0 1.75rem;
    max-width: 46rem;
}
.firma {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem 1.25rem;
    padding-block: 1.25rem;
    border-top: 1px solid var(--alc-linea);
    border-bottom: 1px solid var(--alc-linea);
    font-size: .875rem;
    color: var(--alc-gris);
}
.firma .autor { display: flex; align-items: center; gap: .75rem; color: var(--alc-tinta); }
.firma .autor img { width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--alc-linea); background: #fff; object-fit: contain; }
.firma .autor a { font-weight: 700; text-decoration: none; }
.firma .separador { width: 4px; height: 4px; border-radius: 50%; background: var(--alc-gris-claro); }
@media (max-width: 575.98px) {
    .firma { flex-direction: column; align-items: flex-start; }
    .firma .separador { display: none; }
}
.articulo-portada { max-width: 1240px; margin: 2rem auto 0; padding-inline: 1.5rem; }
.articulo-portada img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--alc-radio); display: block; }
.articulo-portada figcaption { font-size: .8125rem; color: var(--alc-gris); margin-top: .6rem; }

.articulo-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 3rem;
    padding-block: 3rem 4rem;
}
@media (min-width: 1100px) {
    .articulo-grid { grid-template-columns: 220px minmax(0, 700px) 280px; gap: 3rem; justify-content: space-between; }
    .articulo-grid .articulo-cuerpo { grid-column: 2; }
    .articulo-grid .articulo-lateral { grid-column: 3; }
    .articulo-grid .articulo-indice { grid-column: 1; grid-row: 1; }
}
.articulo-indice nav,
.articulo-lateral .pegajoso { position: sticky; top: 6rem; }
.indice-blog { font-size: .875rem; }
.indice-blog .mono { display: block; font-size: .75rem; color: var(--alc-slate); text-transform: uppercase; letter-spacing: .12em; margin-bottom: .75rem; }
.indice-blog ol { list-style: none; margin: 0; padding: 0; border-left: 2px solid var(--alc-linea); }
.indice-blog li a {
    display: block;
    padding: .4rem 0 .4rem 1rem;
    margin-left: -2px;
    border-left: 2px solid transparent;
    color: var(--alc-gris);
    text-decoration: none;
    line-height: 1.45;
}
.indice-blog li a:hover,
.indice-blog li a.activo { color: var(--alc-tinta); border-left-color: var(--alc-primario); }
.indice-movil { border: 1px solid var(--alc-linea); border-radius: var(--alc-radio); padding: 1rem 1.25rem; margin-bottom: 2rem; }
.indice-movil summary { font-weight: 700; cursor: pointer; color: var(--alc-tinta); }
.indice-movil ol { margin: .75rem 0 0; padding-left: 1.25rem; }
.indice-movil li { margin-bottom: .35rem; }
@media (min-width: 1100px) { .indice-movil { display: none; } }
@media (max-width: 1099.98px) { .articulo-indice { display: none; } }

/* Prosa (Markdown de Strapi) */
.contenido-blog,
.prosa {
    font-size: 1.125rem;
    line-height: 1.8;
    color: #1f2937;
}
.prosa > * + * { margin-top: 1.25em; }
.prosa > :first-child { margin-top: 0; }
.prosa p { margin-bottom: 0; }
.prosa h2 {
    font-family: var(--alc-font-display);
    font-weight: 700;
    font-size: clamp(1.75rem, 2.6vw, 2.125rem);
    line-height: 1.1;
    color: var(--alc-tinta);
    margin-top: 2.25em;
    margin-bottom: .5em;
    scroll-margin-top: 6rem;
}
.prosa h3 {
    font-size: 1.3125rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--alc-tinta);
    margin-top: 1.75em;
    margin-bottom: .4em;
    scroll-margin-top: 6rem;
}
.prosa h2 + *,
.prosa h3 + * { margin-top: 0; }
.prosa a { color: var(--alc-tinta); text-decoration: underline; text-decoration-color: var(--alc-primario); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.prosa a:hover { color: var(--alc-primario-hover); }
.prosa ul,
.prosa ol { padding-left: 1.4em; }
.prosa li { margin-bottom: .5em; }
.prosa li::marker { color: var(--alc-primario-hover); font-weight: 700; }
.prosa img { max-width: 100%; height: auto; border-radius: var(--alc-radio); }
.prosa figure { margin: 2em 0; }
.prosa figcaption { font-size: .875rem; color: var(--alc-gris); margin-top: .5rem; }
.prosa blockquote {
    margin: 2em 0;
    padding: .25rem 0 .25rem 1.5rem;
    border-left: 4px solid var(--alc-primario);
    font-size: 1.25rem;
    line-height: 1.6;
    color: var(--alc-tinta);
    font-weight: 500;
}
.prosa blockquote p { margin: 0; }
.prosa code { background: var(--alc-fondo); padding: .1em .35em; border-radius: 3px; font-size: .9em; }
.prosa hr { border: 0; border-top: 1px solid var(--alc-linea); margin: 2.5em 0; opacity: 1; }
.prosa table { font-size: .9375rem; }
.prosa strong { color: var(--alc-tinta); }

.resumen-clave {
    background: var(--alc-fondo);
    border-left: 4px solid var(--alc-primario);
    border-radius: 0 var(--alc-radio) var(--alc-radio) 0;
    padding: 1.25rem 1.5rem;
    margin-bottom: 2.5rem;
}
.resumen-clave .mono { display: block; font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--alc-slate); margin-bottom: .5rem; }
.resumen-clave p { margin: 0; font-size: 1.0625rem; line-height: 1.65; color: var(--alc-tinta); }

.articulo-pie { margin-top: 3rem; display: flex; flex-direction: column; gap: 2rem; }
.compartir { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.compartir .mono { font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--alc-slate); margin-right: .5rem; }
.compartir a,
.compartir button {
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--alc-linea);
    border-radius: var(--alc-radio);
    background: #fff;
    color: var(--alc-tinta);
    text-decoration: none;
    font-size: 1.1rem;
}
.compartir a:hover,
.compartir button:hover { border-color: var(--alc-tinta); }
.caja-autor {
    display: flex;
    gap: 1.25rem;
    align-items: flex-start;
    padding: 1.5rem;
    border: 1px solid var(--alc-linea);
    border-radius: var(--alc-radio);
}
.caja-autor img { width: 64px; height: 64px; border-radius: 50%; border: 1px solid var(--alc-linea); object-fit: contain; flex: none; }
.caja-autor .mono { font-size: .75rem; color: var(--alc-slate); text-transform: uppercase; letter-spacing: .12em; }
.caja-autor p { margin: .35rem 0 0; color: var(--alc-gris); font-size: .9375rem; line-height: 1.6; }
.caja-autor strong { display: block; font-size: 1.125rem; color: var(--alc-tinta); }

.cta-servicio {
    background: var(--alc-tinta);
    color: #fff;
    border-radius: var(--alc-radio);
    padding: clamp(1.5rem, 3vw, 2.25rem);
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.cta-servicio p { margin: 0; color: var(--alc-texto-sobre-oscuro); }
.cta-servicio .titulo { font-family: var(--alc-font-display); font-weight: 700; font-size: 1.75rem; line-height: 1.1; color: #fff; }

/* ---------- Formularios ---------- */
.form-oscuro {
    background: var(--alc-tinta);
    color: #fff;
    border-radius: var(--alc-radio);
    padding: clamp(1.5rem, 3vw, 2.25rem);
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
}
.form-oscuro label { font-size: .875rem; color: var(--alc-texto-sobre-oscuro); }
.form-oscuro .form-control,
.form-oscuro .form-select {
    height: 48px;
    background-color: var(--alc-tinta-2);
    border: 1px solid var(--alc-slate);
    color: #fff;
    border-radius: var(--alc-radio);
}
.form-oscuro .form-select {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23cbd5e1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
}
.form-oscuro .form-control::placeholder { color: var(--alc-gris-claro); }
.form-oscuro .form-control:focus,
.form-oscuro .form-select:focus { border-color: var(--alc-primario); box-shadow: 0 0 0 3px rgba(251, 115, 77, .35); background-color: var(--alc-tinta-2); color: #fff; }
.form-oscuro .form-check-input { background-color: var(--alc-tinta-2); border-color: var(--alc-slate); }
.form-oscuro .form-check-input:checked { background-color: var(--alc-primario); border-color: var(--alc-primario); }
.form-oscuro .form-check-label { color: var(--alc-gris-claro); font-size: .8125rem; line-height: 1.5; }
.form-oscuro .form-check-label a { color: #fff; }
.form-oscuro .btn { min-height: 52px; }
.form-oscuro .nota { font-size: .8125rem; color: var(--alc-gris-claro); margin: 0; text-align: center; }
.form-oscuro .titulo-form { font-family: var(--alc-font-display); font-weight: 700; font-size: 2rem; line-height: 1.05; margin: 0; color: #fff; }
.campo { display: flex; flex-direction: column; gap: .45rem; }
.campos-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 1.1rem; }

/* Bloque de contacto naranja */
.bloque-contacto { background: var(--alc-primario); color: var(--alc-tinta); }
.bloque-contacto .bloque-media { align-items: center; }
.bloque-contacto .texto { color: var(--alc-tinta); }
.bloque-contacto .eyebrow { color: var(--alc-tinta); }
.bloque-contacto .eyebrow::before { background: var(--alc-tinta); }
.bloque-contacto p { color: var(--alc-tinta); }
.bloque-contacto a { color: var(--alc-tinta); font-weight: 700; }
.datos-contacto { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; font-size: 1.125rem; }

/* Banda CTA */
.banda-cta { background: var(--alc-primario); color: var(--alc-tinta); }
.banda-cta .contenedor { display: flex; flex-wrap: wrap; gap: 1.5rem; justify-content: space-between; align-items: center; padding-block: 3.5rem; }
.banda-cta p { margin: .5rem 0 0; }

/* ---------- Footer ---------- */
.footer-alc { background: #000; color: var(--alc-gris-claro); font-size: .875rem; }
.footer-alc .contenedor { padding-block: 4.5rem 2rem; }
.footer-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 2.5rem; }
.footer-alc .titulo-col { font-family: var(--alc-font-mono); font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: #fff; margin-bottom: 1rem; }
.footer-alc ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .7rem; }
.footer-alc a { color: var(--alc-gris-claro); text-decoration: none; }
.footer-alc a:hover { color: #fff; }
.footer-alc .marca { color: #fff; }
.footer-alc .marca img { width: 40px; height: 40px; }
.footer-alc .marca span { font-size: 1.5rem; }
.footer-alc address { font-style: normal; line-height: 1.7; }
.footer-legal { margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid var(--alc-linea-oscura); display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; font-size: .8125rem; }
.form-footer { display: flex; max-width: 26rem; }
.form-footer input[type="tel"] { flex: 1; min-width: 0; height: 48px; padding: 0 .9rem; border: 1px solid var(--alc-slate); border-right: 0; background: var(--alc-tinta-2); color: #fff; border-radius: var(--alc-radio) 0 0 var(--alc-radio); }
.form-footer input[type="tel"]::placeholder { color: var(--alc-gris-claro); }
.form-footer .btn { border-radius: 0 var(--alc-radio) var(--alc-radio) 0; min-height: 48px; }
.footer-alc .form-check-label { color: var(--alc-gris-claro); font-size: .8125rem; }
.footer-alc .form-check-label a { color: #fff; text-decoration: underline; }

/* ---------- Contacto rápido ---------- */
.wa-flotante {
    position: fixed;
    right: 1.25rem;
    bottom: 1.25rem;
    z-index: 1030;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: #1DAA61;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.6rem;
    box-shadow: 0 8px 20px rgba(0, 0, 0, .2);
    text-decoration: none;
}
.wa-flotante:hover { color: #fff; background: #168a4e; }
.barra-contacto-movil {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1030;
    display: flex;
    box-shadow: 0 -2px 10px rgba(0, 0, 0, .15);
}
.barra-contacto-movil a {
    flex: 1;
    min-height: 52px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    color: #fff;
    font-weight: 600;
    text-decoration: none;
}
.barra-contacto-movil .llamar { background: var(--alc-tinta); }
.barra-contacto-movil .wa { background: #1DAA61; }
@media (min-width: 992px) {
    .barra-contacto-movil { display: none; }
}
@media (max-width: 991.98px) {
    .wa-flotante { display: none; }
    body { padding-bottom: 52px; }
}

/* ---------- Varios ---------- */
.saltar {
    position: absolute;
    left: -9999px;
    top: 0;
    z-index: 2000;
    background: #fff;
    padding: .75rem 1rem;
}
.saltar:focus { left: .5rem; top: .5rem; }
.truncate-multiline {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.legal { max-width: 52rem; }
.legal h2 { font-size: 1.375rem; margin-top: 2rem; }
.pagina-404 .display-xl { color: var(--alc-primario-hover); }

@media (max-width: 576px) {
    html,
    body { overflow-x: hidden; }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after { transition: none !important; animation: none !important; }
}
