@font-face {
    font-family: 'futura-bold';
    src: url('../css/Futura LT Condensed Bold.otf') format('opentype');
    font-weight: 900;
}

@font-face {
    font-family: 'futura';
    src: url('../css/FuturaLT-Condensed.ttf') format('truetype');
    font-weight: 400;
}

:root {
    --blue: #142f9b;
    --blue-dark: #081b4a;
    --yellow: #ffd400;
    --paper: #f4f4f4;
}



html,
body {
    margin: 0;
    padding: 0;
}

body {
    background: #07142e;
    font-family: 'futura', 'futura-bold', "Arial Narrow", "Trebuchet MS", Arial, sans-serif;
}

img {
    display: block;
    width: 100%;
    height: auto;
}

.poster {
    width: 100%;
    background: #fff;
    overflow: hidden;
}

/* =========================
BANNERS
========================= */

.banner {
    width: 100%;
    display: block;
}

.banner-incluye {
    width: 100%;
    display: block;
    overflow: hidden;
}

.banner-incluye source,
.banner-incluye img {
    width: 100%;
    display: block;
}

.banner-incluye img {
    width: 100%;
    height: 120px;
    display: block;
    object-fit: cover;
    object-position: center center;
}

.banner-paises {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    margin-top: auto;
    padding-right: 10px;
    gap: 1rem;
}

.banner-paises img {
    width: 100%;
    max-width: 800px;
    margin: auto;
}

/* =========================
INTRO
========================= */

.intro {
    text-align: center;
    padding: 1.5rem 1rem 1.8rem;
    background: #f1f1f1;
}

.kicker {
    margin: 0;
    color: #061d9e;
    font-weight: 900;
    line-height: 0.85;
    font-family: "futura-bold", "Arial Narrow", "Trebuchet MS", Arial, sans-serif;
    font-size: clamp(3.6rem, 8vw, 1.5rem);
}

.headline {
    margin: .6rem 0 .6rem;
    font-size: clamp(1.9rem, 3vw, 1.5rem);
    text-transform: uppercase;
    font-family: "futura-bold", "Arial Narrow", "Trebuchet MS", Arial, sans-serif;
    font-weight: 900;
    color: #000;
    line-height: 1;
}

.headline .accent {
    display: block;
    color: #061d9e;
    font-size: 1.2em;
}

.subhead {
    max-width: 900px;
    margin: auto;
    font-size: clamp(.9rem, 1.8vw, 1.5rem);
    line-height: 1.2;
    font-weight: 900;
    color: #111;
    text-align: center;
}

/* =========================
BOTONES
========================= */

.cta,
.terms-btn {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    margin-top: 1.2rem;
    background: #12279d;
    color: #fff;
    text-decoration: none;
    padding: 1.3rem 2.5rem;
    border-radius: 120px;
    font-weight: 900;
    font-family: 'futura-bold', sans-serif;
    font-size: clamp(1.2rem, 2vw, 2rem);
    letter-spacing: 0.12em;
    /* separar letras en el botón */
    transition: .2s ease;
    gap: .6rem;
    text-transform: none;
}

.cta:hover,
.terms-btn:hover {
    transform: scale(1.03);
}

.cta-image {
    position: relative;
    z-index: 20;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: -55px;
    /* acercar el botón hacia la parte inferior/solaparlo más */
    margin-bottom: 0;
    width: 100%;
}

/* Ajustes finos del solapamiento para distintas anchuras */
@media (max-width: 640px) {
    .cta-image {
        margin-top: -65px;
    }
}

@media (min-width: 1200px) {
    .cta-image {
        margin-top: -110px;
    }
}

.cta-image img {
    width: 330px;
    height: auto;
    display: block;
}

.terms-btn-download {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    margin-top: 1.2rem;
    background: #12279d;
    color: #fff;
    text-decoration: none;
    padding: .7rem 1.5rem;
    border-radius: 8px;
    font-weight: 900;
    font-family: 'futura-bold', sans-serif;
    font-size: clamp(.8rem, 1.2vw, 1rem);
    transition: .2s ease;
}

.terms-btn-download:hover {
    transform: scale(1.03);
}

/* Icon inside buttons */
.terms-btn svg,
.terms-btn-download svg {
    width: 18px;
    height: 18px;
    display: block;
    flex: 0 0 18px;
    fill: currentColor;
}

.terms-btn span,
.terms-btn-download span {
    display: inline-block;
}

/* =========================
HOW
========================= */

.how {
    background: #f1f1f1;
    text-align: center;
    padding: 1.25rem 1rem 1.8rem;
    /* menos espacio inferior para acercar secciones */
}

.section-label {
    margin: 0 0 2rem;
    font-size: clamp(1.5rem, 3vw, 2.6rem);
    color: #0f2085;
    font-weight: 600;
}

.steps {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    justify-content: center;
    gap: clamp(0.5rem, 2vw, 2rem);
    align-items: start;
    padding: 0 1rem;
}

.step {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.step-icon {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    margin-bottom: 1.5rem;
}

.step-icon img {
    width: min(140px, 100%);
    height: auto;
    object-fit: contain;
}

.step-title {
    margin: 0 0 .5rem;
    font-size: clamp(1.2rem, 2.2vw, 1.5rem);
    font-family: 'futura-bold', sans-serif;
    color: #000;
    font-weight: 900;
}

.step-copy {
    max-width: 220px;
    margin: 0 auto;
    line-height: 1.35;
    font-size: clamp(1rem, 2vw, 1.2rem);
    color: #333;
    font-family: 'futura', sans-serif;
    font-weight: 400;
}

/* =========================
FECHA
========================= */

.how .subhead {
    max-width: 60ch;
    font-size: clamp(1.15rem, 2.4vw, 1.6rem);
    /* más grande en desktop */
    line-height: 1.5;
    text-align: center;
    margin: 1rem auto 0;
}

/* =========================
FOOTER
========================= */

.footer-box {
    background: #f1f1f1;
    padding: 2rem 1rem;
}

.footer-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .5rem;
    align-items: center;
}

.brands {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 1rem;
    text-align: center;
    padding-left: 0;
}

.brands img {
    width: auto;
    max-width: 420px;
    max-height: 90px;
    gap: 1rem;
}

/* Reducir especificamente el logo de SuperRifas a la mitad */
.brands img[src*="superrifas"] {
    max-width: 210px;
    max-height: 45px;
}

.terms-card {
    border-left: none;
    padding-left: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.terms-card h2 {
    margin: 0 0 .15rem;
    color: #12279d;
    font-size: clamp(1.2rem, 2.4vw, 2rem);
    font-weight: 900;
    border-radius: 120px;
    font-family: 'futura-bold', 'Arial Narrow', 'Trebuchet MS', Arial, sans-serif;
    -webkit-text-stroke: 0.6px rgba(0, 0, 0, 0.08);
    text-shadow: 0 0 0.6px rgba(0, 0, 0, 0.03);
}

.terms-card p {
    margin: .1rem auto 0;
    color: #111;
    line-height: 1.15;
    font-size: clamp(.9rem, 1vw, 1rem);
    font-weight: 700;
    max-width: 360px;
    /* constrain width so text wraps into ~3 lines */
}

@media (min-width: 641px) {
    .terms-card {
        border-left: 2px solid #243fb0;
        padding-left: 2rem;
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .terms-card h2 {
        margin-bottom: .3rem;
        font-family: 'futura-bold', 'Arial Narrow', 'Trebuchet MS', Arial, sans-serif;
        -webkit-text-stroke: 0.6px rgba(0, 0, 0, 0.08);
        text-shadow: 0 0 0.6px rgba(0, 0, 0, 0.03);
    }

    .terms-card p {
        font-size: .95rem;
        line-height: 1.15;
        font-weight: 700;
        max-width: 360px;
    }

    .terms-btn-download {
        margin-top: .2rem;
        padding: .45rem .9rem;
        font-size: .95rem;
    }

}

/* =========================
RESPONSIVE
========================= */

.hide-mobile {
    display: block;
}

.hide-desktop {
    display: none;
}

@media(max-width:640px) {

    .poster {
        border: none;
    }

    .intro {
        padding: 1.1rem .9rem 1.5rem;
    }

    .cta-image {
        width: min(86vw, 320px);
        margin-top: -28px;
    }

    .cta-image img {
        width: 100%;
        max-width: 260px;
        height: auto;
        display: block;
    }

    .kicker {
        font-size: 2.8rem;
        line-height: .9;
    }

    .headline {
        font-size: 1.55rem;
        line-height: 1;
    }

    .subhead {
        font-size: 1rem;
    }

    /* Ocultar texto de venta de boletería y sorteo en móvil */
    .how .subhead {
        display: none !important;
    }

    /* Ocultar también el botón de compra que sigue a las subhead en móvil */
    .how .cta {
        display: none;
    }

    .section-label {
        font-size: 2.4rem;
        margin-bottom: 1.5rem;
    }

    .steps {
        grid-template-columns: 1fr 1fr;
        gap: 1rem 0.8rem;
    }

    .step:last-child:nth-child(odd) {
        grid-column: 1 / -1;
    }

    .step-icon {
        margin-bottom: .8rem;
        /* menos espacio bajo la bola */
    }

    .step-icon img {
        width: 110px;
        /* agrandar las bolas en móvil */
        height: 110px;
    }

    .step-title {
        font-size: 1rem;
    }

    .step-copy {
        font-size: .95rem;
        max-width: 200px;
    }

    .footer-grid {
        grid-template-columns: 1fr;
    }

    .terms-card {
        border-left: none;
        border-top: none;
        padding-left: 0;
        text-align: center;
    }

    .brands img {
        max-width: 260px;
        max-height: 70px;
    }

    .brands img[src*="superrifas"] {
        max-width: 130px;
        max-height: 35px;
    }

    /* Reordenar footer en móvil: mostrar términos arriba y logos abajo */
    .footer-grid {
        display: flex;
        flex-direction: column;
        gap: .75rem;
        align-items: stretch;
    }

    .terms-card {
        order: 1;
        padding: .6rem 1rem;
    }

    .terms-card h2 {
        font-size: 1rem;
        margin-bottom: .25rem;
        font-family: 'futura-bold', 'Arial Narrow', 'Trebuchet MS', Arial, sans-serif;
        -webkit-text-stroke: 0.45px rgba(0, 0, 0, 0.06);
    }

    .terms-card p {
        font-size: .9rem;
        line-height: 1.15;
        max-width: 100%;
        font-weight: 600;
    }

    .terms-btn {
        font-size: .85rem;
        padding: .5rem .9rem;
        width: auto;
        max-width: 240px;
        margin: .5rem auto 0;
    }

    .brands {
        order: 2;
        padding-top: .25rem;
    }

    .banner-paises img {
        width: 100%;
        border-radius: 0;
    }

    /* Mostrar banner inferior en móvil (restaurado) */
    .banner-inferior {
        display: block !important;
    }

    /* Reducir espacio inferior para acercar ¿Por qué participar? */
    .how {
        padding-bottom: .8rem;
        margin-top: 1rem;
        /* espacio ligero en móvil */
    }

    .hide-mobile {
        display: none;
    }

    .hide-desktop {
        display: block;
    }

    .cta,
    .terms-btn {
        width: 100%;
        max-width: 320px;
        font-size: 1rem;
        padding: .9rem 1rem;
    }
}

/* Forzar centrado del botón de términos en móvil */
@media (max-width:640px) {
    .terms-card {
        align-items: center;
    }

    .terms-card .terms-btn {
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        width: min(86vw, 320px) !important;
        margin: .5rem auto 0 !important;
        padding: .6rem 1rem !important;
        box-sizing: border-box;
    }

    .terms-card .terms-btn span {
        display: inline-block;
        text-align: center;
        width: 100%;
    }

    .terms-card .terms-btn svg {
        margin-right: .5rem;
        flex: 0 0 18px;
    }

    /* Ocultar cualquier SVG remanente en botones (por seguridad) */
    .terms-btn svg,
    .terms-btn-download svg {
        display: none !important;
    }
}