/* =========================================================================
   Grupo Lantero · Memoria de Sostenibilidad 2025 — Microsite
   Tipografía: Inter · Paleta exacta de la memoria
   ========================================================================= */
:root {
    --navy: #002b49;
    /* azul corporativo (texto/títulos) */
    --navy-2: #002b49;
    --cover-a: #3a3d72;
    --cover-b: #23244c;
    --cover-c: #171833;

    --coral: #f07e60;
    --coral-d: #e3603f;
    --coral-l: #f6b6a3;
    /* Personas */
    --green: #12a27e;
    --green-d: #0e8e6c;
    --green-l: #7fcab2;
    /* Planeta */
    --grey: #86909a;
    --grey-d: #69727b;
    --grey-l: #c3c9cf;
    /* Producto */
    --lime: #a2c660;
    --lime-d: #86ab44;
    /* numeración */
    --blue: #2ab4e4;
    --blue-d: #1b97c4;
    /* Innotech */
    --red: #d80028;
    --gold: #efad1a;
    /* operadores */

    --paper: #ffffff;
    --paper-2: #f4f7f8;
    --paper-3: #eaf0f1;
    --line: #e2e8ea;
    --body: #46606f;
    --body-strong: #000000;

    --maxw: 1180px;
    --gutter: clamp(20px, 5vw, 64px);
    --r: 10px;
    --shadow: 0 18px 50px -22px rgba(6, 32, 52, .30);
    --shadow-soft: 0 10px 30px -18px rgba(6, 32, 52, .20);
    --ease: cubic-bezier(.22, 1, .36, 1);
    /* Acento corporativo por defecto = LIMA. El verde solo se usa en Planeta (ver [data-theme="planeta"]). */
    --accent: var(--lime);
    --accent-d: var(--lime-d);
}

[data-theme="personas"] {
    --accent: var(--coral);
    --accent-d: var(--coral-d);
}

[data-theme="planeta"] {
    --accent: var(--green);
    --accent-d: var(--green-d);
}

[data-theme="producto"] {
    --accent: var(--grey);
    --accent-d: var(--grey-d);
}

[data-theme="grupo"] {
    --accent: var(--lime);
    --accent-d: var(--lime-d);
}

[data-theme="innotech"] {
    --accent: var(--blue);
    --accent-d: var(--blue-d);
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
}

@media (prefers-reduced-motion:reduce) {
    html {
        scroll-behavior: auto;
    }
}

body {
    margin: 0;
    font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    color: var(--navy);
    background: var(--paper);
    line-height: 1.6;
    font-size: 17px;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    overflow-x: hidden;
}

img {
    max-width: 100%;
    display: block;
}

a {
    color: inherit;
    text-decoration: none;
}

h1,
h2,
h3,
h4 {
    font-weight: 700;
    line-height: 1.08;
    letter-spacing: -.02em;
    color: var(--navy);
    margin: 0 0 .4em;
}

h2 {
    font-size: clamp(1.9rem, 4vw, 3rem);
}

h3 {
    font-size: clamp(1.5rem, 2.6vw, 2.05rem);
    letter-spacing: -.015em;
}

h4 {
    font-size: clamp(1.12rem, 1.5vw, 1.3rem);
}

p {
    margin: 0 0 1.1em;
}

.lead {
    font-size: clamp(1.05rem, 1.6vw, 1.28rem);
    color: var(--navy);
    line-height: 1.55;
}

.lh-05{
    line-height: .5 !important;
}

.container {
    width: 100%;
    max-width: var(--maxw);
    margin-inline: auto;
    padding-inline: var(--gutter);
}

.section {
    padding: clamp(60px, 8vw, 116px) 0;
    position: relative;
}

.section--tight {
    padding: clamp(40px, 6vw, 72px) 0;
}

.t-coral {
    color: var(--coral)
}

.t-green {
    color: var(--green)
}

.t-grey {
    color: var(--grey)
}

.t-lime {
    color: var(--lime-d)
}

.t-navy {
    color: var(--navy)
}

.t-blue {
    color: var(--blue)
}

.t-gold {
    color: var(--gold)
}

.t-accent {
    color: var(--accent)
}

/* ================= NAV ================= */
.nav {
    position: fixed;
    inset: 0 0 auto 0;
    z-index: 60;
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 12px var(--gutter);
    transform: translateY(-110%);
    transition: transform .5s var(--ease), background .4s, box-shadow .4s;
    background: rgba(255, 255, 255, .88);
    backdrop-filter: saturate(140%) blur(14px);
    -webkit-backdrop-filter: saturate(140%) blur(14px);
}

.nav.is-on {
    transform: translateY(0);
    box-shadow: 0 1px 0 var(--line), 0 10px 30px -24px rgba(6, 32, 52, .5);
}

.nav__brand {
    display: flex;
    align-items: center;
    flex: none;
}

.nav__brand img {
    height: 26px;
    width: auto;
    display: block;
}

.nav__links {
    margin-left: auto;
    display: flex;
    gap: 3px;
    flex-wrap: wrap;
    align-items: center;
}

.nav__links a {
    font-size: .78rem;
    font-weight: 600;
    padding: 8px 11px;
    border-radius: 999px;
    color: var(--body-strong);
    transition: .25s;
    white-space: nowrap;
}

.nav__links a:hover {
    color: var(--navy);
    background: var(--paper-3);
}

.nav__links a.is-active {
    color: #fff;
    background: var(--navy);
}

.nav__pdf {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: .78rem;
    font-weight: 700;
    color: var(--navy) !important;
    background: var(--lime);
    padding: 9px 16px;
    border-radius: 999px;
    transition: .25s;
}

.nav__pdf:hover {
    background: var(--lime-d);
    color: #fff !important;
    transform: translateY(-1px);
}

.nav__pdf svg {
    width: 15px;
    height: 15px;
}

/* ---- Selector de idioma / Language switch ---- */
.nav__lang {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    flex: none;
    margin-left: 8px;
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 2px;
}

.nav__lang a {
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .03em;
    padding: 5px 10px;
    border-radius: 999px;
    color: var(--body-strong);
    transition: .25s;
}

.nav__lang a:hover {
    color: var(--navy);
    background: var(--paper-3);
}

.nav__lang a.is-current {
    color: #fff;
    background: var(--navy);
    pointer-events: none;
}

.nav__progress {
    position: absolute;
    left: 0;
    bottom: 0;
    height: 3px;
    width: 0;
    background: linear-gradient(90deg, var(--coral), var(--green), var(--blue));
    transition: width .1s linear;
}

.nav__burger {
    display: none;
    margin-left: auto;
    width: 42px;
    height: 42px;
    border: 0;
    background: var(--paper-3);
    border-radius: 12px;
    cursor: pointer;
    align-items: center;
    justify-content: center;
}

.nav__burger span,
.nav__burger span::before,
.nav__burger span::after {
    content: '';
    display: block;
    width: 18px;
    height: 2px;
    background: var(--navy);
    position: relative;
}

.nav__burger span::before {
    position: absolute;
    top: -6px;
}

.nav__burger span::after {
    position: absolute;
    top: 6px;
}

@media (max-width:980px) {
    .nav__links {
        position: fixed;
        inset: 62px 12px auto 12px;
        flex-direction: column;
        align-items: stretch;
        background: #fff;
        padding: 12px;
        border-radius: 16px;
        box-shadow: var(--shadow);
        transform: translateY(-12px);
        opacity: 0;
        pointer-events: none;
        transition: .3s;
    }

    .nav__links.is-open {
        opacity: 1;
        transform: none;
        pointer-events: auto;
    }

    .nav__burger {
        display: flex;
    }

    .nav__pdf {
        justify-content: center;
    }
}

/* ================= HERO ================= */
.hero {
    position: relative;
    min-height: 100svh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    overflow: hidden;
    color: var(--navy);
    background: var(--paper);
}

.hero__bg {
    position: absolute;
    inset: 0;
    z-index: 1;
    background-image: var(--hero-img, url(../assets/img/extracted/hero-blocks.png));
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.hero__inner {
    position: relative;
    z-index: 3;
    text-align: right;
}

.hero__brand {
    width: clamp(190px, 22vw, 280px);
    height: auto;
    display: block;
    margin: 0 0 18px auto;
}

.hero__brand small {
    display: block;
    font-weight: 500;
    letter-spacing: .16em;
    font-size: .62em;
    opacity: .7;
    margin-top: 4px;
}

.hero h1 {
    color: var(--navy);
    font-size: clamp(2.6rem, 8vw, 5.6rem);
    font-weight: 300;
    line-height: .98;
    margin: .5em 0 .1em;
}

.hero h1 b {
    font-weight: 700;
    display: block;
}

.hero__tag {
    font-size: clamp(1.3rem, 3.4vw, 2.2rem);
    font-weight: 800;
    color: var(--navy);
}

.hero__year {
    position: absolute;
    z-index: 3;
    left: var(--gutter);
    bottom: clamp(28px, 7vw, 70px);
    font-weight: 800;
    font-size: clamp(3.4rem, 11vw, 7rem);
    line-height: .82;
    letter-spacing: -.03em;
    color: #fff;
}

.hero__year span {
    display: block;
}

.hero__scroll {
    position: absolute;
    z-index: 4;
    right: var(--gutter);
    bottom: 34px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: .72rem;
    letter-spacing: .2em;
    text-transform: uppercase;
    opacity: .85;
}

.hero__scroll i {
    width: 1px;
    height: 46px;
    background: linear-gradient(var(--navy), transparent);
    animation: scrollPulse 1.8s var(--ease) infinite;
}

@keyframes scrollPulse {

    0%,
    100% {
        transform: scaleY(.4);
        transform-origin: top;
        opacity: .4
    }

    50% {
        transform: scaleY(1);
        opacity: 1
    }
}

/* ================= REVEAL ================= */
[data-reveal] {
    opacity: 0;
    transform: translateY(32px);
    transition: opacity .9s var(--ease), transform .9s var(--ease);
    will-change: opacity, transform;
}

[data-reveal="left"] {
    transform: translateX(-42px);
}

[data-reveal="right"] {
    transform: translateX(42px);
}

[data-reveal="scale"] {
    transform: scale(.93);
}

[data-reveal].is-visible {
    opacity: 1;
    transform: none;
}

[data-reveal][data-delay="1"] {
    transition-delay: .08s
}

[data-reveal][data-delay="2"] {
    transition-delay: .16s
}

[data-reveal][data-delay="3"] {
    transition-delay: .24s
}

[data-reveal][data-delay="4"] {
    transition-delay: .32s
}

[data-reveal][data-delay="5"] {
    transition-delay: .4s
}

[data-reveal][data-delay="6"] {
    transition-delay: .48s
}

@media (prefers-reduced-motion:reduce) {
    [data-reveal] {
        opacity: 1 !important;
        transform: none !important;
    }
}

/* ================= ENCABEZADOS / DIVIDERS ================= */
.kicker {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
    font-size: .74rem;
    color: var(--accent);
    margin-bottom: 18px;
}

.kicker::before {
    content: '';
    width: 26px;
    height: 2px;
    background: var(--accent);
}

.divider {
    position: relative;
    overflow: hidden;
}

.divider__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: min(86vh, 720px);
}

.divider__media {
    position: relative;
    overflow: hidden;
    background: var(--paper-3);
}

.divider__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.divider__body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(40px, 6vw, 90px);
}

.divider__body .num {
    font-weight: 300;
    font-size: clamp(3.4rem, 8vw, 6rem);
    color: var(--accent);
    line-height: .9;
}

.divider__body h2 {
    font-size: clamp(2rem, 4.4vw, 3.4rem);
    margin-top: .1em;
}

.divider__body .lead {
    max-width: 42ch;
}

@media (max-width:820px) {
    .divider__grid {
        grid-template-columns: 1fr;
    }

    .divider__media {
        min-height: 300px;
    }
}

/* Aperturas de pilar (con imagen de fondo de bloques) */
.opener {
    position: relative;
    overflow: hidden;
    color: #fff;
    padding: clamp(60px, 9vw, 120px) 0;
}

.opener--personas {
    background: linear-gradient(135deg, var(--coral), var(--coral-d));
}

.opener--planeta {
    background: linear-gradient(135deg, var(--green), var(--green-d));
}

.opener--producto {
    background: linear-gradient(135deg, #9aa1a7, var(--grey-d));
}

.opener--navy {
    background: linear-gradient(150deg, var(--cover-a), var(--cover-c));
}

.opener__bg {
    position: absolute;
    inset: 0;
    z-index: 1;
    background-size: auto 116%;
    background-position: left center;
    background-repeat: no-repeat;
    opacity: .5;
    mix-blend-mode: soft-light;
}

.opener__deco {
    position: absolute;
    inset: 0;
    opacity: .12;
    background: radial-gradient(60% 60% at 100% 0, #fff, transparent), radial-gradient(50% 50% at 0 100%, #fff, transparent);
}

.opener .container {
    position: relative;
    z-index: 2;
}

.opener h2,
.opener h3 {
    color: #fff;
}

.opener .lead {
    color: rgba(255, 255, 255, .94);
}

/* ================= GRIDS ================= */
.grid {
    display: grid;
    gap: clamp(18px, 2.5vw, 30px);
}

.g-2 {
    grid-template-columns: repeat(2, 1fr)
}

.g-3 {
    grid-template-columns: repeat(3, 1fr)
}

.g-4 {
    grid-template-columns: repeat(4, 1fr)
}

@media (max-width:900px) {

    .g-3,
    .g-4 {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width:560px) {

    .g-2,
    .g-3,
    .g-4 {
        grid-template-columns: 1fr;
    }
}

.split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(28px, 5vw, 70px);
    align-items: center;
}

.split--wide-r {
    grid-template-columns: 1fr 1.25fr;
}

.split--wide-l {
    grid-template-columns: 1.25fr 1fr;
}

@media (max-width:820px) {

    .split,
    .split--wide-r,
    .split--wide-l {
        grid-template-columns: 1fr;
    }
}

/* ================= FOTOS (limpias, sin tarjeta gris, sin radios) ================= */
.shot {
    border-radius: 0;
    overflow: hidden;
    background: transparent;
}

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

.shot--tall img {
    aspect-ratio: 3/4;
}

.shot--wide img {
    aspect-ratio: 16/10;
}

.shot--sq img {
    aspect-ratio: 1/1;
}

.shot--free img {
    aspect-ratio: auto;
}

.figcap {
    font-size: .9rem;
    color: var(--body);
    margin-top: 10px;
}

/* Circularidad: 3 imágenes a la misma altura, alineadas a la izquierda de su columna */
.circ__img {
    height: 180px;
    width: auto;
    max-width: 100%;
    display: block;
    margin: 0 0 16px 0;
    object-fit: contain;
}

@media (max-width:560px) {
    .circ__img { height: 150px; }
}

.chart {
    width: 100%;
    height: auto;
}

.chart--c {
    display: block;
    margin: 0 auto;
}

/* Tarjetas de TEXTO (sin foto) */
.card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--r);
    padding: clamp(22px, 3vw, 32px);
}

.card--soft {
    background: var(--paper-2);
    border-color: transparent;
}

.card__ic {
    height: 74px;
    margin-bottom: 14px;
    display: flex;
    align-items: flex-end;
}

.card__ic img {
    height: 100%;
    width: auto;
}

/* Cita / pull quote */
.quote {
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 1.35;
    letter-spacing: -.015em;
    color: var(--accent);
}

.quote b {
    font-weight: 700;
}

.quote--bar {
    border-left: 3px solid var(--accent);
    padding-left: clamp(18px, 2.4vw, 30px);
}

.quote--blue {
    color: var(--blue);
}

.quote--blue.quote--bar {
    border-color: var(--blue);
}

/* cita en azul navy (texto + barra). Definido tras .quote para ganar por orden. */
.quote--navy {
    color: var(--navy);
}

.quote--navy.quote--bar {
    border-color: var(--navy);
}

.opener .quote {
    color: #fff;
}

/* ================= CIFRAS (sin contador, con color) ================= */
.stat__ic {
    height: 88px;
    margin-bottom: 8px;
    display: flex;
    align-items: flex-end;
}

.stat__ic img {
    height: 100%;
    width: auto;
}

.stat__num {
    font-size: clamp(2.1rem, 4.4vw, 3rem);
    font-weight: 300;
    color: var(--accent);
    line-height: 1;
    letter-spacing: -.02em;
}

.stat__num b {
    font-weight: 600;
}

.stat__num small {
    font-size: .5em;
    font-weight: 500;
    color: var(--body);
}

.stat__label {
    font-weight: 600;
    color: var(--navy);
    margin-top: 6px;
}

.stat__sub {
    font-size: .92rem;
    color: var(--body);
    margin-top: 4px;
}

.n-gold .stat__num,
.stat__num.n-gold {
    color: var(--gold)
}

.n-green .stat__num,
.stat__num.n-green {
    color: var(--green)
}

.n-blue .stat__num,
.stat__num.n-blue {
    color: var(--blue)
}

.n-lime .stat__num,
.stat__num.n-lime {
    color: var(--lime-d)
}

.n-coral .stat__num,
.stat__num.n-coral {
    color: var(--coral)
}

.n-navy .stat__num,
.stat__num.n-navy {
    color: var(--navy)
}

.n-grey .stat__num,
.stat__num.n-grey {
    color: var(--grey-d)
}

.n-gold .trend {
    color: var(--gold)
}

.n-green .trend {
    color: var(--green)
}

.n-blue .trend {
    color: var(--blue)
}

.n-lime .trend {
    color: var(--lime-d)
}

.n-coral .trend {
    color: var(--coral)
}

.n-navy .trend {
    color: var(--navy)
}

/* bandas verticales entre cifras */
.divcols {
    display: grid;
    gap: 0;
}

.divcols > * {
    padding: 6px clamp(16px, 2.4vw, 30px);
    border-left: 1px solid var(--line);
}

.divcols > *:first-child {
    border-left: 0;
    padding-left: 0;
}

@media (max-width:760px) {
    .divcols > * {
        border-left: 0;
        padding-left: 0;
        border-top: 1px solid var(--line);
        padding-top: 18px;
    }

    .divcols > *:first-child {
        border-top: 0;
    }
}

/* cifra estilo memoria: título arriba, nº grande con flecha + nota a la derecha */
.fig__title {
    font-weight: 600;
    color: var(--navy);
    margin-bottom: 14px;
    line-height:1.2rem;
}

.fig__row {
    display: flex;
    align-items: center;
    gap: 16px;
}

.fig .stat__num {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex: none;
}

.fig .stat__num svg {
    width: 15px;
    height: 28px;
}

.fig__note {
    font-size: .92rem;
    color: #000000;
    line-height: 1.3;
}

/* leyenda: título con círculo de color ENCIMA de la cifra (funciona como leyenda del gráfico) */
.stat__legend {
    display: flex;
    align-items: center;
    gap: 9px;
    font-weight: 700;
    color: var(--navy);
    margin-bottom: 8px;
}

.stat__legend::before {
    content: '';
    width: 13px;
    height: 13px;
    border-radius: 50%;
    background: var(--accent);
    flex: none;
}

.n-gold .stat__legend::before { background: var(--gold); }
.n-green .stat__legend::before { background: var(--green); }
.n-blue .stat__legend::before { background: var(--blue); }
.n-lime .stat__legend::before { background: var(--lime); }
.n-navy .stat__legend::before { background: var(--navy); }
.n-coral .stat__legend::before { background: var(--coral); }

/* gauges de emisiones en la columna izquierda: 2 por fila (3º cae en la fila siguiente) */
.gauges-2x {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: clamp(12px, 2vw, 26px);
    align-items: end;
}

.gauges-2x img {
    max-height: 210px;
    width: auto;
    max-width: 100%;
    margin: 0 auto;
}

@media (max-width: 560px) {
    .gauges-2x img { max-height: 165px; }
}

/* flecha de tendencia (estilo memoria) */
.trend {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 700;
    font-size: 1.25rem;
    color: var(--accent);
    margin-top: 12px;
}

.trend svg {
    width: 16px;
    height: 30px;
}

.trend small {
    display: block;
    font-size: .62rem;
    font-weight: 600;
    color: var(--body);
    letter-spacing: .04em;
}

/* cifra grande con flecha (residuos/agua) */
.bignum {
    display: flex;
    align-items: center;
    gap: 18px;
}

.bignum img {
    width: 120px;
    flex: none;
    height: auto;
}

/* ================= PROCESO TALENT CONNECT (01-04) ================= */
.steps {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
    position: relative;
}

@media (max-width:760px) {
    .steps {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width:440px) {
    .steps {
        grid-template-columns: 1fr;
    }
}

.step {
    position: relative;
    padding-top: 58px;
}

.step__n {
    position: absolute;
    top: 0;
    left: 0;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: var(--c, var(--accent));
    color: #fff;
    font-weight: 700;
    display: grid;
    place-items: center;
    box-shadow: 0 8px 18px -8px var(--c, var(--accent));
}

.step h4 {
    font-size: 1.02rem;
    margin-bottom: 8px;
    color: var(--c, var(--navy));
}

.step p {
    font-size: .92rem;
    color: var(--body);
    margin: 0;
}

.step--1 {
    --c: var(--coral)
}

.step--2 {
    --c: var(--lime)
}

.step--3 {
    --c: var(--gold)
}

.step--4 {
    --c: var(--blue)
}

/* listas */
.bul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.bul li {
    position: relative;
    padding: 6px 0 6px 22px;
}

.bul li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 14px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--accent);
}

.leverbox {
    border-left: 4px solid var(--accent);
    padding-left: 22px;
}

/* palancas: pastilla de color + texto (estilo memoria) */
.palancas {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.palancas li {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 11px;
    flex-wrap: wrap;
    text-align: center;
}

.palancas .tag {
    flex: none;
    background: var(--c, var(--green));
    color: #fff;
    font-weight: 700;
    font-size: .9rem;
    padding: 8px 18px;
    border-radius: 999px;
}

.palancas .txt {
    color: var(--body-strong);
}

.pl-green {
    --c: var(--green)
}

.pl-coral {
    --c: var(--coral)
}

.pl-blue {
    --c: var(--blue)
}

.pl-lime {
    --c: var(--lime-d)
}

.pl-gold {
    --c: var(--gold)
}

/* ================= PERTENENCIA (filetes naranja, sin marco) ================= */
.belong {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(22px, 3vw, 40px);
}

@media (max-width:860px) {
    .belong {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width:560px) {
    .belong {
        grid-template-columns: 1fr;
    }
}

.belong__item {
    border-top: 2px solid var(--coral);
    padding-top: 18px;
}

.belong__item .shot {
    border-radius: 0;
    margin-bottom: 14px;
}

.belong__item h4 {
    color: var(--coral);
    letter-spacing: 0;
    font-size: 1rem;
    margin-bottom: 6px;
}

.belong__item p {
    font-size: .93rem;
    color: var(--body-strong);
    margin: 0;
}

/* ================= SLIDER (formación) ================= */
.slider {
    position: relative;
    border-radius: var(--r);
    overflow: hidden;
}

.slider__track {
    display: flex;
    transition: transform .6s var(--ease);
}

.slider__track > figure {
    flex: 0 0 100%;
    margin: 0;
}

.slider__track img {
    width: 100%;
    aspect-ratio: 16/10;
    object-fit: cover;
}

.slider__dots {
    position: absolute;
    bottom: 14px;
    left: 0;
    right: 0;
    display: flex;
    gap: 8px;
    justify-content: center;
}

.slider__dots button {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    border: 0;
    background: rgba(255, 255, 255, .5);
    cursor: pointer;
    padding: 0;
}

.slider__dots button.is-on {
    background: #fff;
    width: 24px;
    border-radius: 999px;
}

.slider__btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, .85);
    cursor: pointer;
    font-size: 18px;
    color: var(--navy);
    display: grid;
    place-items: center;
}

.slider__btn.prev {
    left: 12px;
}

.slider__btn.next {
    right: 12px;
}

/* logos */
.logos {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
}

@media (max-width:760px) {
    .logos {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width:460px) {
    .logos {
        grid-template-columns: repeat(2, 1fr);
    }
}

.logos .lg {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 12px;
    height: 120px;
    display: grid;
    place-items: center;
    padding: 18px;
    overflow: hidden;
    transition: .4s;
}

.logos .lg:hover {
    box-shadow: var(--shadow-soft);
    transform: translateY(-3px);
}

.logos .lg img {
    max-height: 66px;
    max-width: 100%;
    width: auto;
    object-fit: contain;
}

/* alianzas: cada logo con su texto */
/* sección de alianzas con foto de hoja de fondo */
.allies-sec {
    position: relative;
    overflow: hidden;
    color: #fff;
}

.allies-sec__bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
}

.allies-sec__bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(160deg, rgba(7, 58, 44, .74), rgba(6, 38, 30, .84));
}

.allies-sec .container {
    position: relative;
    z-index: 2;
}

.allies-sec h2,
.allies-sec h3,
.allies-sec .lead,
.allies-sec .note {
    color: #fff;
}

/* cada alianza: tarjeta blanca, sin borde, esquinas redondeadas pequeñas */
.ally {
    background: #fff;
    border: 0;
    border-radius: 8px;
    padding: clamp(18px, 2.2vw, 24px);
}

.allies {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(16px, 2.2vw, 28px);
}

@media (max-width:900px) {
    .allies {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width:520px) {
    .allies {
        grid-template-columns: 1fr;
    }
}

.ally__logo {
    height: 78px;
    display: flex;
    align-items: center;
    margin-bottom: 14px;
}

.ally__logo img {
    max-height: 62px;
    max-width: 82%;
    width: auto;
    object-fit: contain;
}

.ally h4 {
    font-size: 1rem;
    letter-spacing: 0;
    margin-bottom: 6px;
}

.ally p {
    font-size: .9rem;
    color: var(--body);
    margin: 0;
}

/* banda con foto de fondo + destacado (Reciclar y reincorporar) */
.photoband {
    position: relative;
    overflow: hidden;
    color: #fff;
    padding: clamp(48px, 8vw, 90px) clamp(34px, 5vw, 60px);
    margin: clamp(34px, 5vw, 56px) 0;
    border-radius: 16px;
    background-size: cover;
    background-position: bottom right;
}

.photoband::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(2, 30, 24, .82), rgba(2, 30, 24, .34));
}

.photoband .container {
    position: relative;
    z-index: 2;
}

.photoband .quote {
    position: relative;
    z-index: 2;
    color: #fff;
    max-width: 36ch;
    margin: 0;
}

/* palancas / líneas sin tarjeta (icono + texto limpio) */
.lever {}

.lever .card__ic {
    height: 64px;
}

.lever h4 {
    letter-spacing: 0;
}

.lever__sub {
    color: var(--body);
    margin-top: -6px;
}

/* #8 palancas con filete vertical de color a la izquierda */
.lever.lv-green,
.lever.lv-lime,
.lever.lv-blue {
    padding-left: 20px;
    border-left: 4px solid var(--grey);
}

.lever.lv-green {
    border-left-color: color-mix(in srgb, var(--green) 20%, transparent);
}

.lever.lv-lime {
    border-left-color: color-mix(in srgb, var(--lime-d) 20%, transparent);
}

.lever.lv-blue {
    border-left-color: color-mix(in srgb, var(--blue) 20%, transparent);
}

.lever.lv-green h4 {
    color: var(--green);
}

.lever.lv-lime h4 {
    color: var(--lime-d);
}

.lever.lv-blue h4 {
    color: var(--blue);
}

/* #12 líneas de innovación destacadas — filete de color, sin tarjeta */
.innolines {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}

@media (max-width:760px) {
    .innolines {
        grid-template-columns: 1fr;
    }
}

.innoline {
    padding-left: 16px;
    border-left: 2px solid var(--grey);
}

.innoline p {
    margin: 0;
    max-width: 70ch;
}

.innoline b {
    color: var(--navy);
}

.innoline.il-navy {
    border-left-color: var(--navy);
}

.innoline.il-blue {
    border-left-color: var(--blue);
}

.innoline.il-red {
    border-left-color: var(--red);
}

.innoline.il-navy b {
    color: var(--navy);
}

.innoline.il-blue b {
    color: var(--blue);
}

.innoline.il-red b {
    color: var(--red);
}

/* Seguridad y salud — cifras separadas por filete vertical coral al 20% */
.seg-figs > .fig:not(:first-child) {
    padding-left: 26px;
    border-left: 6px solid color-mix(in srgb, var(--coral) 20%, transparent);
}

/* Leer más */
.more-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 18px;
    padding: 11px 24px;
    border: 1.5px solid var(--navy);
    border-radius: 999px;
    background: transparent;
    color: var(--navy);
    font: inherit;
    font-weight: 600;
    font-size: .98rem;
    cursor: pointer;
    transition: background .2s, color .2s;
}

.more-btn:hover {
    background: var(--navy);
    color: #fff;
}

.more-content[hidden] {
    display: none;
}

/* #5 formación — cifras arriba, gráfico a la derecha (filas 2-3), destacado abajo izq. */
.formacion-chart {
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.formacion-quote {
    margin: 0;
    align-self: center;
}

@media (min-width:901px) {
    .formacion-grid .formacion-chart {
        grid-column: 3;
        grid-row: 2 / span 2;
        align-self: stretch;
    }

    .formacion-grid .formacion-quote {
        grid-column: 1 / span 2;
        grid-row: 3;
    }
}

/* índice sin viñetas */
.toc {
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 1.08rem;
}

.toc li {
    padding: 7px 0;
}

.toc li a {
    display: inline-flex;
    gap: 8px;
    align-items: baseline;
}

.toc .num {
    font-weight: 300;
}

.toc .sub {
    padding-left: 26px;
}

/* certificaciones con fondo de foto */
.cert {
    position: relative;
    color: #fff;
    overflow: hidden;
}

.cert__bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
}

.cert__bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(160deg, rgba(13, 120, 90, .55), rgba(9, 92, 69, .66));
}

.cert .container {
    position: relative;
    z-index: 2;
}

.cert h2,
.cert h3,
.cert .lead {
    color: #fff;
}

.cert .lead {
    color: rgba(255, 255, 255, .9);
}

.certcard {
    background: #fff;
    border-radius: var(--r);
    padding: 24px;
    display: flex;
    gap: 18px;
    align-items: flex-start;
    color: var(--navy);
}

.certcard img {
    width: 118px;
    height: 84px;
    object-fit: contain;
    object-position: top center;
    flex: none;
}

.certcard h4 {
    letter-spacing: 0;
    font-size: 1.02rem;
    margin-bottom: 6px;
}

.certcard p {
    font-size: .92rem;
    color: var(--body);
    margin: 0;
}

/* Venn SVG */
.vennsvg {
    width: 100%;
    max-width: 460px;
    margin: 0 auto;
    height: auto;
    display: block;
}

.vennsvg text {
    font-family: 'Inter', sans-serif;
    fill: #fff;
}

/* innovación producto numerada */
.inv {
    display: grid;
    /* texto un poco más ancho que la foto (foto a la izquierda en impares) */
    grid-template-columns: 0.82fr 1.18fr;
    gap: clamp(24px, 4vw, 56px);
    align-items: start;
    --ic: var(--grey);
}

/* en pares la foto va a la derecha: invertimos los anchos para que el texto siga más ancho */
.inv:nth-child(even) {
    grid-template-columns: 1.18fr 0.82fr;
}

.inv__n {
    font-size: clamp(3rem, 7vw, 5rem);
    font-weight: 300;
    color: var(--ic);
    line-height: .8;
    margin-bottom:10px;
}

.inv h3 {
    color: var(--ic);
}

.inv.c1 {
    --ic: #2fb4e9
}

/* azul claro */
.inv.c2 {
    --ic: #8b4166
}

/* morado / granate */
.inv.c3 {
    --ic: #002b49
}

/* azul oscuro */
.inv.c4 {
    --ic: var(--lime-d)
}

/* lima */
.inv.c5 {
    --ic: #d96d42
}

/* rojo / naranja */

.inv:nth-child(even) .inv__media {
    order: 2;
}

@media (max-width:820px) {

    .inv,
    .inv:nth-child(even) {
        grid-template-columns: 1fr;
    }

    .inv:nth-child(even) .inv__media {
        order: 0;
    }
}

.awards {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    align-items: center;
    margin-top: 18px;
}

.awards img {
    height: 54px;
    width: auto;
}

/* mosaico 75 */
.y75 {
    text-align: center;
}

.y75 img {
    max-width: min(620px, 84vw);
    margin: 0 auto;
}

/* P/P/P con cubo */
.ptag {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-weight: 800;
    font-size: clamp(1.1rem, 2.4vw, 1.5rem);
}

/* nombre de pilar en la apertura = nivel H2 (grande) */
.opener .ptag {
    font-size: clamp(2rem, 5vw, 3.4rem);
    gap: 18px;
}

.opener .ptag .cube {
    width: .9em;
    height: 1.04em;
}

.ptag .cube {
    width: 1.1em;
    height: 1.27em;
}

/* footer */
.footer {
    background: var(--navy);
    color: #cdd9e2;
    padding: clamp(50px, 7vw, 90px) 0 40px;
}

.footer .container {
    text-align: center;
}

.footer__logo {
    display: block;
    height: 52px;
    width: auto;
    margin: 0 auto;
}

.footer__brand {
    font-weight: 800;
    letter-spacing: .2em;
    color: #fff;
    font-size: 1.1rem;
}

.footer__brand small {
    display: block;
    font-weight: 500;
    letter-spacing: .12em;
    opacity: .7;
    font-size: .62rem;
    margin-top: 4px;
}

.footer__logos {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    align-items: center;
    justify-content: center;
    margin: 30px 0;
}

.footer__logos img {
    height: 34px;
    width: auto;
    filter: brightness(0) invert(1);
    opacity: .92;
}

.footer a.cta {
    color: #fff;
    font-weight: 600;
    border-bottom: 1px solid var(--lime);
}

.footer__bottom {
    border-top: 1px solid rgba(255, 255, 255, .12);
    margin-top: 30px;
    padding-top: 22px;
    font-size: .82rem;
    opacity: .7;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    justify-content: center;
}

.mt0 {
    margin-top: 0
}

.mb0 {
    margin-bottom: 0
}

.center {
    text-align: center
}

.muted {
    color: var(--body)
}

.maxw-60 {
    max-width: 62ch
}

.maxw-50 {
    max-width: 52ch
}

.pill-tag {
    display: inline-block;
    background: var(--paper-3);
    color: var(--body-strong);
    font-weight: 600;
    font-size: .78rem;
    padding: 6px 14px;
    border-radius: 999px;
}

.note {
    font-size: .82rem;
    color: var(--body);
}

.cards-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

@media (max-width:760px) {
    .cards-3 {
        grid-template-columns: 1fr;
    }
}

.mini-card {
    border: 1.5px solid var(--green-l);
    border-radius: 14px;
    padding: 20px 22px;
    text-align: center;
    background: linear-gradient(180deg, #fff, var(--paper-2));
}

.mini-card h4 {
    color: var(--green);
    letter-spacing: 0;
    margin-bottom: 10px;
}
