/* =============================================================================
   cssm/mobile.css · ajustes responsive
   -----------------------------------------------------------------------------
   Se carga con media="(max-width: 991.98px)" desde el layout.
   ============================================================================= */

:root {
    --gutter: 22px;
}

html,
body {
    max-width: 100%;
    overflow-x: hidden;
}

.shell,
.header-bar {
    min-width: 0;
    max-width: 100%;
}

.sec {
    padding: 80px 0;
}

.sec.compact { padding: 60px 0; }
.sec.airy    { padding: 100px 0; }

/* ------------------------------------------------------------- Cabecera */

.site-nav {
    display: none;
}

.header-bar > .header-cta {
    display: none;
}

.nav-toggle {
    display: inline-flex;
}

/* Bloquea el desplazamiento del fondo con el panel abierto. */
body.nav-abierto {
    overflow: hidden;
}

/* ----------------------------------------------------------------- Hero */

.hero {
    min-height: auto;
    padding: 150px 0 70px;
}

.hero-foto img {
    object-position: 68% center;
}

.hero h1 {
    max-width: 100%;
    font-size: clamp(2.35rem, 11vw, 4rem);
    overflow-wrap: break-word;
}

.page-hero h1 {
    max-width: 100%;
    font-size: clamp(2.35rem, 10vw, 3.6rem);
    overflow-wrap: break-word;
}

.page-hero .sec-intro {
    max-width: 100%;
}

.hero-pie {
    flex-direction: column;
    align-items: stretch;
}

.hero-scroll {
    display: none;
}

.actions .btn {
    flex: 1 1 100%;
    width: 100%;
}

/* ------------------------------------------------------------- Editorial */

.editorial-row {
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 18px;
    padding: 28px 0;
}

.editorial-row:hover,
.editorial-row:focus-within {
    padding-left: 0;
    padding-right: 0;
}

.editorial-num {
    font-size: 1.8rem;
}

.editorial-go {
    display: none;
}

/* ------------------------------------------------------------- Servicios */

.servicio .shell {
    grid-template-columns: 1fr;
    gap: 30px;
}

.servicio-aside {
    position: static;
}

.servicio {
    padding: 70px 0;
}

/* --------------------------------------------------------- Otras rejillas */

.portal-bloque .shell,
.cta-final .shell,
.contacto-grid {
    grid-template-columns: 1fr;
    gap: 40px;
}

.form-grid {
    grid-template-columns: minmax(0, 1fr);
}

.contacto-form,
.field,
.input,
.textarea,
.select {
    min-width: 0;
}

.contacto-aside {
    position: static;
}

.footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 34px;
}

.footer-brand {
    grid-column: 1 / -1;
}

.foto-banda {
    height: 56vh;
    min-height: 320px;
}

.foto-caption .shell {
    flex-direction: column;
    align-items: flex-start;
}

.meta-list > li {
    flex-direction: column;
    gap: 4px;
}

.cifras {
    gap: 34px;
}

.footer-bottom {
    flex-direction: column;
    align-items: flex-start;
}
