@font-face {
    font-family: 'Avenir';
    src: url('../fonts/Avenir Light.ttf') format('truetype');
    font-weight: 300;
    font-display: swap;
}
@font-face {
    font-family: 'Avenir';
    src: url('../fonts/Avenir Regular.ttf') format('truetype');
    font-weight: 400;
    font-display: swap;
}
@font-face {
    font-family: 'Avenir';
    src: url('../fonts/Avenir Book.ttf') format('truetype');
    font-weight: 500;
    font-display: swap;
}
@font-face {
    font-family: 'Avenir';
    src: url('../fonts/Avenir Heavy.ttf') format('truetype');
    font-weight: 700;
    font-display: swap;
}
@font-face {
    font-family: 'Avenir';
    src: url('../fonts/Avenir Black.ttf') format('truetype');
    font-weight: 900;
    font-display: swap;
}
@font-face {
    font-family: 'Druk Wide Bold';
    src: url('../fonts/DrukWideBold.ttf') format('truetype');
    font-weight: 700;
    font-display: swap;
}

:root {
    --oi-morado-oscuro: #490B75;
    --oi-morado: #7C3AED;
    --oi-amarillo: #F5DA4A;
    --texto-claro: #FFFFFF;
    --card-bg: rgba(255, 255, 255, 0.07);
    --card-borde: rgba(255, 255, 255, 0.18);
    --fuente-texto: 'Avenir', 'Segoe UI', Arial, sans-serif;
    --fuente-titulo: 'Druk Wide Bold', 'Avenir', Arial, sans-serif;
}

* { box-sizing: border-box; }

body {
    margin: 0;
    font-family: var(--fuente-texto);
    color: var(--texto-claro);
    background:
        radial-gradient(ellipse 900px 500px at 15% 0%, rgba(124, 58, 237, 0.4), transparent 60%),
        radial-gradient(ellipse 700px 500px at 80% 5%, rgba(124, 58, 237, 0.3), transparent 55%),
        linear-gradient(180deg, #0d0117 0%, #642389 30%, #3a1060 100%);
    background-attachment: fixed;
    min-height: 100vh;
}

/* ---------- Barra superior ---------- */
.topbar {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: 20px 24px 0;
    max-width: 1100px;
    margin: 0 auto;
}

.topbar .eyebrow {
    margin: 0;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--oi-amarillo);
}

.topbar .dates { margin: 4px 0 0; font-size: 0.9rem; opacity: 0.9; }

.topbar-logo {
    flex-shrink: 0;
    border-radius: 12px;
    overflow: hidden;
    line-height: 0;
}

.topbar-logo img {
    display: block;
    width: 160px;
    height: auto;
}

/* ---------- Hero ---------- */
.hero {
    max-width: 1100px;
    margin: 0 auto;
    padding: 8px 24px 24px;
    text-align: left;
}

.hero-illustration {
    max-width: 260px;
    width: 100%;
    height: auto;
    margin: 0 auto;
    display: block;
}

.hero-content h1 {
    font-family: var(--fuente-titulo);
    font-size: 3rem;
    line-height: 1.05;
    margin: 4px 0 16px;
    color: var(--oi-amarillo);
    font-weight: 700;
    text-transform: uppercase;
}

.hero-sub {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
}

.badge {
    display: inline-block;
    flex-shrink: 0;
    background: var(--oi-amarillo);
    color: var(--oi-morado-oscuro);
    font-weight: 700;
    padding: 6px 18px;
    border-radius: 999px;
    font-size: 0.9rem;
}

.hero-lead { font-size: 1.15rem; opacity: 0.95; margin: 0; }

/* ---------- Sección premios ---------- */
main {
    max-width: 1100px;
    margin: 0 auto;
    padding: 16px 24px 40px;
}

.section-header {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 8px;
    border-bottom: 1px solid var(--card-borde);
    padding-bottom: 10px;
    margin-bottom: 20px;
}

.section-header h2 {
    font-family: var(--fuente-titulo);
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-size: 1.1rem;
    font-weight: 700;
    color: #fff;
}

.section-label { font-size: 0.85rem; opacity: 0.8; }

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

@media (max-width: 760px) {
    .premios-grid { grid-template-columns: repeat(2, 1fr); }
    .hero-content h1 { font-size: 2.2rem; }
}

@media (max-width: 480px) {
    .premios-grid { grid-template-columns: 1fr; }
    .topbar { flex-direction: column; gap: 12px; }
}

.premio-card {
    position: relative;
    background: var(--card-bg);
    backdrop-filter: blur(6px);
    border: 1px solid var(--card-borde);
    border-radius: 16px;
    padding: 20px 16px 16px;
    text-align: left;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.premio-card.agotado { opacity: 0.5; }

.disp-pill {
    position: absolute;
    top: 12px;
    left: 12px;
    background: var(--oi-amarillo);
    color: var(--oi-morado-oscuro);
    font-weight: 700;
    font-size: 0.75rem;
    padding: 3px 10px;
    border-radius: 999px;
}

.disp-pill.agotado-pill { background: #cfc9de; color: #4a4458; }

.premio-img {
    width: 100%;
    height: 150px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 12px;
    border-radius: 12px;
    border: 1px solid rgba(255, 255, 255, 0.4);
    background-color: #6b2d90;
    background-image: repeating-linear-gradient(
        45deg,
        #691B95 0px,
        #691B95 10px,
        transparent 10px,
        transparent 30px
    );
    overflow: hidden;
}

.premio-img img { max-width: 85%; max-height: 85%; object-fit: contain; }

.premio-card h3 { font-size: 1.1rem; margin: 4px 0; color: #fff; font-weight: 700; }
.premio-card .meta { color: var(--oi-amarillo); font-weight: 700; margin: 0 0 14px; font-size: 1.15rem; }

.btn {
    display: inline-block;
    background: var(--oi-amarillo);
    color: var(--oi-morado-oscuro);
    text-decoration: none;
    padding: 10px 24px;
    border-radius: 8px;
    font-weight: 700;
    border: none;
    cursor: pointer;
    font-size: 1rem;
}

.btn:hover { background: #ffe873; }

.btn-disabled {
    background: rgba(255, 255, 255, 0.15);
    color: rgba(255, 255, 255, 0.6);
    cursor: not-allowed;
}

.footnote {
    font-weight: 700;
    color: var(--oi-amarillo);
    margin-top: 28px;
}

/* ---------- Hoja 2: descripción + tabla ---------- */
.hoja2 {
    max-width: 1100px;
    margin: 0 auto;
    padding: 24px 24px 40px;
    border-top: 1px solid var(--card-borde);
}

.hoja2-header {
    display: flex;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
}

.hoja2-illustration {
    max-width: 280px;
    width: 100%;
    height: auto;
    flex-shrink: 0;
}

.hoja2-text { flex: 1; min-width: 260px; }

.hoja2-text h2 {
    font-family: var(--fuente-titulo);
    color: var(--oi-amarillo);
    font-size: 2.6rem;
    line-height: 1.05;
    text-transform: uppercase;
    margin: 0 0 14px;
}

.hoja2-text p {
    margin: 0 0 12px;
    font-size: 1.1rem;
    opacity: 0.9;
    max-width: 640px;
}

.tabla-premios {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 700px;
    border-collapse: separate;
    border-spacing: 0 10px;
    margin: 28px auto 0;
}

.tabla-premios th {
    text-align: left;
    font-family: var(--fuente-titulo);
    font-weight: 700;
    font-size: 0.95rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--oi-morado-oscuro);
    background: rgba(245, 218, 74, 0.9);
    padding: 10px 20px;
}

.tabla-premios th:first-child { border-radius: 999px 0 0 999px; }
.tabla-premios th:last-child { border-radius: 0 999px 999px 0; }

.tabla-premios td {
    padding: 12px 20px;
    font-weight: 700;
    font-size: 1.05rem;
    color: #fff;
    background: var(--card-bg);
}

.tabla-premios td:first-child { border-radius: 999px 0 0 999px; }
.tabla-premios td:last-child { border-radius: 0 999px 999px 0; color: var(--oi-amarillo); }

.tabla-pill {
    display: inline-block;
    min-width: 30px;
    text-align: center;
    background: var(--oi-amarillo);
    color: var(--oi-morado-oscuro);
    border-radius: 999px;
    padding: 3px 12px;
    font-size: 1rem;
}

/* ---------- Fotos decorativas alrededor de la tabla (como en el diseño original) ---------- */
.hoja2 { position: relative; }

.hoja2-deco {
    position: absolute;
    z-index: 0;
    pointer-events: none;
    filter: drop-shadow(0 8px 16px rgba(0, 0, 0, 0.3));
}

.deco-licuadora { width: 130px; top: 10px; right: 10px; }
.deco-microondas { width: 150px; top: 160px; right: 0; }
.deco-cocina { width: 140px; top: 420px; left: 10px; }
.deco-ropero { width: 120px; top: 430px; right: 0; }
.deco-tv { width: 170px; top: 610px; left: 0; }

@media (max-width: 960px) {
    .hoja2-deco { display: none; }
}

.footnote-small {
    font-size: 0.75rem;
    opacity: 0.7;
    margin-top: 16px;
}

.error-msg, .field-error {
    color: #ff9a92;
    font-size: 0.9rem;
}

/* ---------- Formulario de reclamo / confirmación ---------- */
.form-card, .confirmacion {
    max-width: 480px;
    margin: 0 auto;
    background: var(--card-bg);
    backdrop-filter: blur(6px);
    border: 1px solid var(--card-borde);
    border-radius: 16px;
    padding: 24px;
}

.form-card label {
    display: block;
    margin-bottom: 16px;
    font-weight: 600;
    font-size: 0.95rem;
    color: #fff;
}

.form-card input {
    display: block;
    width: 100%;
    margin-top: 6px;
    padding: 10px 12px;
    border: 1px solid var(--card-borde);
    border-radius: 8px;
    font-size: 1rem;
    background: rgba(255, 255, 255, 0.9);
    color: #241333;
}

.confirmacion { text-align: center; color: #fff; }

footer {
    text-align: center;
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.8rem;
    padding: 8px 24px 32px;
}

.volver { display: inline-block; margin-top: 16px; color: var(--oi-amarillo); font-weight: 600; text-decoration: none; }
