* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

:root {
    --azul: #27cde2;
    --azul-2: #dff8fc;
    --amarillo: #ffe95a;
    --rosa: #ff3ea5;
    --rosa-suave: #ffe5f3;
    --texto: #1f2937;
    --texto-suave: #5b6472;
    --blanco: #ffffff;
    --gris: #f5f7fb;
    --gris-2: #eef4f8;
    --borde: #d9e3ea;
    --sombra: 0 12px 30px rgba(17, 24, 39, 0.08);
    --sombra-suave: 0 8px 18px rgba(17, 24, 39, 0.05);
    --verde: #19b66c;
    --rojo: #ef5350;
    --negro: #111111;
    --rusure-rosa: #ff3ea5;
    --rusure-amarillo: #ffe95a;
    --rusure-azul: #27cde2;
    --rusure-tinta: #1f2937;
}

html {
    scroll-behavior: smooth;
    min-height: 100%;
    background: #fff8fd;
}

body {
    position: relative;
    overflow-x: hidden;
    font-family: Arial, Helvetica, sans-serif;
    color: var(--texto);
    min-height: 100vh;
    line-height: 1.5;
    background:
        radial-gradient(circle at 10% 18%, rgba(255, 62, 165, 0.36), transparent 28%),
        radial-gradient(circle at 36% 78%, rgba(255, 233, 90, 0.34), transparent 32%),
        radial-gradient(circle at 82% 20%, rgba(39, 205, 226, 0.38), transparent 30%),
        radial-gradient(circle at 88% 86%, rgba(255, 62, 165, 0.25), transparent 34%),
        linear-gradient(135deg, #fff0f9 0%, #fff9cb 34%, #dcfff8 66%, #dff4ff 100%);
    background-size: 260% 260%;
    animation: rusureFondoVideo 18s ease-in-out infinite alternate;
}

body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -2;
    pointer-events: none;
    background:
        linear-gradient(115deg,
            rgba(255, 62, 165, 0.22) 0%,
            rgba(255, 233, 90, 0.18) 32%,
            rgba(39, 205, 226, 0.22) 64%,
            rgba(255, 62, 165, 0.16) 100%
        );
    background-size: 300% 300%;
    animation: rusureCapaColor 20s ease-in-out infinite alternate;
}

body::after {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background:
        radial-gradient(circle at 18% 28%, rgba(255,255,255,0.48), transparent 18%),
        radial-gradient(circle at 70% 34%, rgba(255,255,255,0.32), transparent 16%),
        radial-gradient(circle at 55% 78%, rgba(255,255,255,0.28), transparent 18%);
    opacity: 0.72;
}

@keyframes rusureFondoVideo {
    0% { background-position: 0% 40%; }
    50% { background-position: 88% 55%; }
    100% { background-position: 100% 70%; }
}

@keyframes rusureCapaColor {
    0% { background-position: 0% 50%; }
    100% { background-position: 100% 50%; }
}

a {
    text-decoration: none;
    color: inherit;
}

img {
    max-width: 100%;
    display: block;
}

code {
    background: rgba(17, 24, 39, 0.06);
    padding: 3px 7px;
    border-radius: 6px;
    font-size: 0.95rem;
}

.contenedor {
    width: min(1180px, 92%);
    margin: 0 auto;
}

.mt-20 {
    margin-top: 20px;
}

.w-full {
    width: 100%;
}

/* NAVBAR */
.navbar,
.panel-navbar {
    position: sticky;
    top: 0;
    z-index: 100;
    background:
        linear-gradient(120deg,
            rgba(255, 62, 165, 0.26),
            rgba(255, 233, 90, 0.22),
            rgba(39, 205, 226, 0.28),
            rgba(255, 62, 165, 0.16)
        );
    background-size: 260% 260%;
    animation: rusureMenuVideo 14s ease-in-out infinite alternate;
    backdrop-filter: blur(22px) saturate(150%);
    -webkit-backdrop-filter: blur(22px) saturate(150%);
    border-bottom: 1px solid rgba(255, 255, 255, 0.65);
    box-shadow: 0 10px 30px rgba(31, 41, 55, 0.10);
    overflow: visible;
    padding: 0;
}

@keyframes rusureMenuVideo {
    0% { background-position: 0% 50%; }
    100% { background-position: 100% 50%; }
}

.navbar::before,
.panel-navbar::before {
    display: none !important;
}

.nav-flex {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    flex-wrap: nowrap;
    gap: 18px;
    padding: 14px 0;
    overflow: visible;
}

.logo {
    font-weight: 900;
    font-size: 1.65rem;
    color: var(--texto);
    letter-spacing: 2.5px;
    white-space: nowrap;
}

/* BLOQUE DEL LOGO Y BRAND */
.brand-link {
    text-decoration: none;
    color: inherit;
    flex: 0 0 auto;
}

.logo-wrap,
.logo-area {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    flex: 0 0 auto;
}

.logo-img {
    width: 58px;
    height: 58px;
    object-fit: contain;
    flex-shrink: 0;
    display: block;
    border-radius: 12px;
    filter: drop-shadow(0 8px 18px rgba(39, 205, 226, 0.25));
    transition: transform 0.25s ease;
}

.logo-img:hover {
    transform: scale(1.06) rotate(-2deg);
}

.logo-text {
    font-weight: 900;
    font-size: 1.65rem;
    letter-spacing: 3px;
    white-space: nowrap;
    line-height: 1;
    color: var(--texto);
    text-shadow: 0 2px 0 rgba(255,255,255,0.45);
}

.panel-navbar .logo-text {
    color: var(--texto);
}

.menu {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 8px;
    align-items: center;
    justify-content: center;
    width: auto;
    flex: 1 1 auto;
    min-width: 0;
    overflow: visible;
}

.menu a {
    white-space: nowrap;
    flex: 0 0 auto;
    color: var(--texto);
    font-weight: 900;
    font-size: 0.88rem;
    padding: 8px 11px;
    border-radius: 14px;
    transition: 0.22s ease;
    background: rgba(255, 255, 255, 0.58);
    border: 1px solid rgba(255, 255, 255, 0.80);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}

.menu a:hover {
    background: linear-gradient(135deg, var(--rusure-rosa), var(--rusure-amarillo), var(--rusure-azul));
    color: #ffffff;
    border-color: rgba(255,255,255,0.90);
    transform: translateY(-2px);
    box-shadow: 0 10px 22px rgba(255, 62, 165, 0.18);
}

.panel-navbar .menu a {
    color: var(--texto);
}

.acciones,
.acciones-panel {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 10px;
    flex-wrap: nowrap;
    justify-content: flex-end;
    width: auto;
    flex: 0 0 auto;
}

.usuario-chip {
    background: rgba(255,255,255,0.72);
    color: #1f2937;
    padding: 8px 12px;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,0.85);
    font-size: 0.9rem;
    font-weight: 700;
}

.panel-navbar .usuario-chip {
    background: rgba(255,255,255,0.72);
    color: #1f2937;
    border: 1px solid rgba(255,255,255,0.85);
}

/* BLOQUE DEL PERFIL */
.perfil-link {
    display: inline-flex;
    align-items: center;
    flex-direction: row;
    gap: 10px;
    text-decoration: none;
    white-space: nowrap;
    min-width: 0;
}

.perfil-foto {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid rgba(255,255,255,0.85);
    flex-shrink: 0;
}

.perfil-inicial {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--rusure-rosa), var(--rusure-amarillo), var(--rusure-azul));
    color: #fff;
    font-weight: 800;
    font-size: 16px;
    line-height: 1;
    flex-shrink: 0;
}

.perfil-texto {
    display: inline-flex;
    align-items: center;
    flex-direction: row;
    gap: 4px;
    white-space: nowrap;
    line-height: 1;
}

.perfil-nombre {
    font-size: 0.92rem;
    font-weight: 700;
    color: #1f2937;
    line-height: 1;
    white-space: nowrap;
}

.perfil-rol {
    font-size: 0.88rem;
    color: #5b6472;
    line-height: 1;
    white-space: nowrap;
}

/* BANDERAS */
.lang-switch {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    gap: 8px;
}

.flag-img {
    width: 42px;
    height: 42px;
    flex: 0 0 auto;
    border-radius: 50%;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 3px solid rgba(255, 255, 255, 0.88);
    background: #fff;
    box-shadow: 0 8px 18px rgba(31, 41, 55, 0.16);
    transition: transform 0.24s ease, box-shadow 0.24s ease;
}

.flag-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.flag-img:hover {
    transform: translateY(-2px) scale(1.08);
    box-shadow: 0 12px 26px rgba(255, 62, 165, 0.22);
}

.flag-img.active {
    border: 3px solid #ffffff;
    box-shadow: 0 0 0 3px rgba(39,205,226,0.2);
}

/* BOTONES */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 16px;
    border-radius: 16px;
    font-weight: 900;
    transition: 0.24s ease;
    cursor: pointer;
    font-size: 0.94rem;
    border: 2px solid rgba(255, 62, 165, 0.75);
    background: rgba(255,255,255,0.92);
    color: var(--texto);
    box-shadow: 0 8px 18px rgba(255, 62, 165, 0.12);
}

.btn:hover,
.btn:focus {
    background: #ffffff;
    border-color: var(--rosa);
    color: var(--rosa);
    transform: translateY(-2px) scale(1.02);
    box-shadow: 0 12px 26px rgba(255, 62, 165, 0.20);
}

.btn-primary,
.btn-secondary,
.btn-outline {
    background: rgba(255,255,255,0.92);
    color: var(--texto);
    border: 2px solid rgba(255, 62, 165, 0.75);
    box-shadow: 0 8px 18px rgba(255, 62, 165, 0.12);
}

/* ALERTAS */
.alerta {
    padding: 14px 16px;
    border-radius: 14px;
    font-weight: 700;
    margin-bottom: 10px;
    box-shadow: var(--sombra-suave);
}

.alerta-error {
    background: #fff1f1;
    border: 1px solid rgba(239, 83, 80, 0.28);
    color: #973737;
}

.alerta-ok {
    background: #eefcf5;
    border: 1px solid rgba(25, 182, 108, 0.28);
    color: #146443;
}

/* SECCIONES */
.hero,
.seccion,
.panel-section,
.auth-section,
section,
main {
    padding: 58px 0;
    background: transparent !important;
}

/* HOME */
.hero-grid {
    display: grid;
    grid-template-columns: 1.2fr 0.85fr;
    gap: 28px;
    align-items: center;
}

.badge {
    display: inline-block;
    background: var(--amarillo);
    color: #222;
    font-weight: 900;
    padding: 8px 14px;
    border-radius: 999px;
    margin-bottom: 16px;
}

.hero h1 {
    font-size: clamp(2.2rem, 5vw, 4.3rem);
    line-height: 1.02;
    margin-bottom: 14px;
    color: #111827;
}

.hero p {
    color: var(--texto-suave);
    font-size: 1.08rem;
    margin-bottom: 20px;
    max-width: 680px;
}

.hero-botones {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 18px;
}

.social-row {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.social-link {
    background: var(--blanco);
    border: 1px solid var(--borde);
    padding: 10px 14px;
    border-radius: 999px;
    box-shadow: var(--sombra-suave);
    font-weight: 700;
    color: var(--texto);
}

.social-link:hover {
    color: var(--rosa);
}

.hero-card,
.tarjeta,
.panel-card,
.auth-card,
.resultado-box,
.equipo-card,
.calendar-box,
.detalle-box,
.pdf-frame-wrap,
.youtube-wrap {
    background: rgba(255, 255, 255, 0.82);
    backdrop-filter: blur(18px) saturate(145%);
    -webkit-backdrop-filter: blur(18px) saturate(145%);
    border: 2px solid rgba(31, 41, 55, 0.82);
    border-radius: 22px;
    box-shadow: 8px 8px 0 rgba(255, 62, 165, 0.48);
}

.hero-card,
.tarjeta,
.panel-card,
.auth-card,
.resultado-box {
    padding: 24px;
}

.hero-card,
.tarjeta,
.panel-card,
.auth-card {
    position: relative;
    overflow: hidden;
}

.hero-card::before,
.tarjeta::before,
.panel-card::before,
.auth-card::before {
    display: none !important;
    content: none !important;
}

.hero-card-center {
    text-align: center;
}

.logo-home {
    width: 165px;
    max-width: 100%;
    margin: 0 auto 16px;
    border-radius: 16px;
    filter: drop-shadow(0 12px 22px rgba(39, 205, 226, 0.28));
}

.hero-card h2 {
    margin-bottom: 10px;
    font-size: 1.7rem;
    color: #111827;
}

.hero-card p {
    margin-bottom: 12px;
}

/* CARDS */
.tarjetas,
.tarjetas-panel,
.glosario-grid,
.equipo-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

.tarjeta h3,
.panel-card h3 {
    margin-bottom: 10px;
    color: #111827;
}

.tarjeta p,
.panel-card p {
    color: var(--texto-suave);
}

.promo-grid,
.grid-dos {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    align-items: start;
}

.panel-card {
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.panel-card:hover,
.tarjeta:hover,
.hero-card:hover,
.equipo-card:hover {
    border-color: rgba(31, 41, 55, 0.90);
    box-shadow: 10px 10px 0 rgba(39, 205, 226, 0.48);
    transform: translateY(-3px);
}

.tarjetas-panel .panel-card:nth-child(1),
.tarjetas .tarjeta:nth-child(1) {
    box-shadow: 8px 8px 0 rgba(255, 62, 165, 0.48);
}

.tarjetas-panel .panel-card:nth-child(2),
.tarjetas .tarjeta:nth-child(2) {
    box-shadow: 8px 8px 0 rgba(255, 233, 90, 0.70);
}

.tarjetas-panel .panel-card:nth-child(3),
.tarjetas .tarjeta:nth-child(3) {
    box-shadow: 8px 8px 0 rgba(39, 205, 226, 0.55);
}

/* FORMS */
.auth-wrap {
    display: flex;
    justify-content: center;
}

.auth-card {
    width: min(860px, 100%);
}

.formulario {
    display: grid;
    gap: 10px;
}

.formulario label {
    font-weight: 700;
    color: #172033;
}

.formulario input,
.formulario textarea,
.formulario select {
    width: 100%;
    padding: 13px 14px;
    border-radius: 14px;
    border: 2px solid rgba(31, 41, 55, 0.70);
    background: rgba(255, 255, 255, 0.92);
    color: var(--texto);
    outline: none;
}

.formulario input:focus,
.formulario textarea:focus,
.formulario select:focus {
    border-color: var(--rusure-rosa);
    box-shadow: 0 0 0 4px rgba(255, 62, 165, 0.14);
}

.formulario input::placeholder,
.formulario textarea::placeholder {
    color: #8a93a7;
}

.form-inline {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: center;
}

.form-inline input,
.form-inline select {
    padding: 10px 12px;
    border-radius: 10px;
    border: 1px solid rgba(17, 24, 39, 0.12);
    background: #fff;
    color: var(--texto);
}

.check-row {
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 700;
}

.check-row input {
    width: auto;
}

/* TABLAS */
.tabla-wrap {
    overflow-x: auto;
}

.tabla {
    width: 100%;
    border-collapse: collapse;
    background: rgba(255, 255, 255, 0.92);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: var(--sombra-suave);
}

.tabla th,
.tabla td {
    padding: 14px;
    border-bottom: 1px solid rgba(17, 24, 39, 0.08);
    text-align: left;
    color: var(--texto);
}

.tabla th {
    background: linear-gradient(135deg, rgba(255,62,165,.15), rgba(255,233,90,.20), rgba(39,205,226,.17));
    font-weight: 800;
}

/* EVENTOS / FORO / GLOSARIO */
.titulo-flex,
.tema-header,
.acciones-card,
.game-status {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
}

.tema-meta,
.detalle-meta,
.calendar-note,
.equipo-rol,
.texto-suave {
    color: var(--texto-suave);
    font-size: 0.95rem;
}

.lista-simple {
    padding-left: 18px;
    line-height: 1.8;
    color: var(--texto-suave);
}

.lista-temas {
    display: grid;
    gap: 18px;
}

.chip-like {
    background: rgba(255,255,255,0.72);
    color: #1f2937;
    padding: 6px 10px;
    border-radius: 999px;
    font-weight: 700;
    border: 1px solid rgba(255,255,255,0.85);
}

.chips-wrap {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.subtitulo-seccion {
    margin: 28px 0 14px;
}

.comentario-card {
    margin-bottom: 14px;
}

/* CALENDARIO */
.calendar-box {
    margin-top: 24px;
    margin-bottom: 28px;
    padding: 24px;
}

.calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 10px;
    margin: 16px 0;
}

.day-cell {
    background: #fff;
    border: 1px solid rgba(17,24,39,.08);
    padding: 16px 10px;
    text-align: center;
    border-radius: 12px;
    font-weight: 800;
    color: var(--texto);
}

/* DETALLE */
.detalle-box {
    padding: 24px;
}

.detalle-img {
    width: 100%;
    max-height: 520px;
    object-fit: cover;
    border-radius: 16px;
    margin: 18px 0;
    background: #fff;
}

/* RESULTADOS */
.resultado-box {
    margin-bottom: 24px;
    border: 2px solid var(--borde);
}

.resultado-posiblemente-falsa {
    border-color: rgba(239, 83, 80, 0.34);
}

.resultado-dudosa {
    border-color: rgba(255, 233, 90, 0.75);
}

.resultado-posiblemente-verdadera {
    border-color: rgba(25, 182, 108, 0.34);
}

/* JUEGO */
.opciones-juego {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 18px;
    margin-bottom: 18px;
}

.opciones-juego .btn,
.opcion-juego {
    background: rgba(255, 255, 255, 0.92);
    color: #1f2937;
    border: 2px solid rgba(39, 205, 226, 0.55);
    box-shadow: 0 8px 18px rgba(31, 41, 55, 0.10);
}

.opciones-juego .btn:hover,
.opcion-juego:hover {
    background: linear-gradient(135deg, var(--rusure-rosa), var(--rusure-amarillo), var(--rusure-azul));
    color: #ffffff;
}

.feedback-juego {
    min-height: 58px;
    margin-bottom: 12px;
}

#barra-progreso {
    background: linear-gradient(90deg, var(--rusure-rosa), var(--rusure-amarillo), var(--rusure-azul));
    background-size: 260% 260%;
    animation: rusureCapaColor 7s ease-in-out infinite alternate;
    border-radius: 999px;
}

/* EQUIPO */
.equipo-card {
    overflow: hidden;
    padding: 0;
}

.equipo-foto {
    width: 100%;
    height: 320px;
    object-fit: cover;
}

.equipo-body {
    padding: 20px;
}

.equipo-body h3 {
    margin-bottom: 6px;
    color: #111827;
}

.equipo-body blockquote {
    margin-top: 14px;
    padding-left: 14px;
    border-left: 4px solid var(--amarillo);
    font-style: italic;
    color: #374151;
}

/* PDF / YOUTUBE */
.pdf-frame-wrap,
.youtube-wrap {
    margin-top: 18px;
    overflow: hidden;
}

/* BOXES */
.info-box,
.demo-box,
.verificacion-check,
.game-status {
    margin-top: 18px;
    padding: 14px 16px;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.72);
    border: 2px solid rgba(31, 41, 55, 0.16);
    box-shadow: 0 10px 24px rgba(31, 41, 55, 0.08);
    color: var(--texto);
    line-height: 1.7;
}

/* BLOQUE DEL LOGIN CON LOGO */
.auth-brand {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding-top: 8px;
    margin-bottom: 20px;
}

.auth-logo {
    width: 82px;
    height: 82px;
    object-fit: contain;
    display: block;
    filter: drop-shadow(0 10px 24px rgba(255,62,165,0.18));
}

.auth-brand-text {
    font-size: 2rem;
    font-weight: 900;
    color: var(--texto);
    letter-spacing: 0.5px;
    line-height: 1;
    white-space: nowrap;
}

.auth-brand-subtext {
    text-align: center;
    color: var(--texto-suave);
    font-size: 0.98rem;
    margin-top: 2px;
}

/* FOOTER */
.footer {
    padding: 22px 0;
    text-align: center;
    background: rgba(255, 255, 255, 0.58);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    border-top: 1px solid rgba(255, 255, 255, 0.62);
    margin-top: 30px;
    color: #374151;
}

/* VERIFICACION */
.verificacion-grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    gap: 20px;
    align-items: start;
}

.bloque-verificacion {
    margin-top: 6px;
}

.verificacion-check {
    margin-bottom: 12px;
}

.verificacion-check strong {
    display: block;
    margin-bottom: 6px;
    color: var(--texto);
}

.verificacion-check p {
    color: var(--texto-suave);
}

.resultado-verificacion-box {
    border-radius: 18px;
    padding: 18px;
    border: 2px solid var(--borde);
    background: #fff;
}

.resultado-verificacion-box.confiable {
    border-color: rgba(25, 182, 108, 0.35);
    background: #eefcf5;
}

.resultado-verificacion-box.dudoso {
    border-color: rgba(255, 233, 90, 0.9);
    background: #fffde8;
}

.resultado-verificacion-box.falso {
    border-color: rgba(239, 83, 80, 0.35);
    background: #fff1f1;
}

/* RESPONSIVE */
@media (max-width: 1180px) {
    .contenedor {
        width: min(1120px, 96%);
    }

    .nav-flex {
        gap: 10px;
    }

    .logo-img {
        width: 52px;
        height: 52px;
    }

    .logo-text,
    .logo {
        font-size: 1.45rem;
        letter-spacing: 2px;
    }

    .menu {
        gap: 6px;
    }

    .menu a {
        font-size: 0.82rem;
        padding: 7px 9px;
    }

    .btn {
        padding: 9px 12px;
        font-size: 0.86rem;
    }

    .flag-img {
        width: 38px;
        height: 38px;
    }
}

@media (max-width: 1050px) {
    .nav-flex {
        flex-direction: column;
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .acciones,
    .acciones-panel {
        width: 100%;
        justify-content: flex-start;
        flex-wrap: wrap;
    }

    .menu {
        width: 100%;
        flex-wrap: wrap;
        justify-content: flex-start;
    }

    .perfil-link {
        flex-direction: row;
        align-items: center;
    }

    .perfil-texto {
        display: inline-flex;
        flex-direction: row;
        align-items: center;
    }
}

@media (max-width: 900px) {
    body {
        background-size: 360% 360%;
    }

    .hero-grid,
    .promo-grid,
    .grid-dos,
    .tarjetas,
    .tarjetas-panel,
    .glosario-grid,
    .equipo-grid {
        grid-template-columns: 1fr;
    }

    .calendar-grid {
        grid-template-columns: repeat(4, 1fr);
    }

    .logo-home {
        width: 140px;
    }

    .hero {
        padding: 40px 0;
    }

    .seccion,
    .panel-section,
    .auth-section {
        padding: 42px 0;
    }

    .logo-text,
    .logo {
        font-size: 1.25rem;
        letter-spacing: 1.5px;
    }

    .auth-brand-text {
        font-size: 1.7rem;
    }

    .acciones-panel {
        gap: 10px;
        flex-wrap: wrap;
    }

    .perfil-link {
        flex-direction: row;
        align-items: center;
    }

    .perfil-texto {
        display: inline-flex;
        flex-direction: row;
        align-items: center;
    }

    .verificacion-grid {
        grid-template-columns: 1fr;
    }

    .opciones-juego .btn,
    .opcion-juego {
        width: 100%;
    }
}
/* =========================================
   FIX: evitar que el menú se encime con el logo
   ========================================= */

/* El logo ocupa su espacio real */
.logo-wrap,
.logo-area {
    flex: 0 0 auto !important;
    margin-right: 20px !important;
}

/* El menú YA NO invade el logo */
.menu {
    flex: 0 1 auto !important;
    justify-content: flex-start !important;
    margin-left: 10px !important;
}

/* Empuja las acciones a la derecha */
.acciones,
.acciones-panel {
    margin-left: auto !important;
}

/* Seguridad extra: que nunca se monten */
.nav-flex {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 20px !important;
}
/* =====================================================
   FIX FINAL NAVBAR: ancho completo sin encimar nada
   ===================================================== */

.navbar .contenedor,
.panel-navbar .contenedor {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 22px !important;
}

.nav-flex {
    width: 100% !important;
    max-width: none !important;
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) auto !important;
    align-items: center !important;
    column-gap: 18px !important;
    padding: 14px 0 !important;
}

.logo-wrap,
.logo-area,
.brand-link {
    min-width: max-content !important;
    margin-right: 0 !important;
}

.menu {
    min-width: 0 !important;
    width: 100% !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 7px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scrollbar-width: none !important;
}

.menu::-webkit-scrollbar {
    display: none !important;
}

.menu a {
    white-space: nowrap !important;
    flex: 0 0 auto !important;
    font-size: 0.82rem !important;
    padding: 8px 10px !important;
}

.acciones,
.acciones-panel {
    min-width: max-content !important;
    margin-left: 0 !important;
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 8px !important;
}

.acciones .btn,
.acciones-panel .btn {
    white-space: nowrap !important;
    flex: 0 0 auto !important;
    padding: 9px 14px !important;
}

.lang-switch {
    flex: 0 0 auto !important;
    display: flex !important;
    flex-wrap: nowrap !important;
}

/* Para pantallas medianas: reduce sin romper */
@media (max-width: 1180px) {
    .navbar .contenedor,
    .panel-navbar .contenedor {
        padding: 0 12px !important;
    }

    .nav-flex {
        column-gap: 10px !important;
    }

    .logo-text,
    .logo {
        font-size: 1.35rem !important;
        letter-spacing: 2px !important;
    }

    .logo-img {
        width: 50px !important;
        height: 50px !important;
    }

    .menu a {
        font-size: 0.78rem !important;
        padding: 7px 8px !important;
    }

    .acciones .btn,
    .acciones-panel .btn {
        font-size: 0.82rem !important;
        padding: 8px 10px !important;
    }

    .flag-img {
        width: 36px !important;
        height: 36px !important;
    }
}
/* Fotos completas en Quiénes somos */
.equipo-foto {
    width: 100% !important;
    height: 360px !important;
    object-fit: contain !important;
    object-position: center !important;
    background: rgba(255, 255, 255, 0.72) !important;
    padding: 10px !important;
}
/* =========================
   FIX RESPONSIVO HEADER R U SURE
========================= */

@media (max-width: 768px) {

    .navbar .contenedor {
        width: 100% !important;
        padding: 8px 12px !important;
    }

    .nav-flex {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 10px !important;
    }

    .brand-link {
        width: 100% !important;
        display: flex !important;
        justify-content: center !important;
    }

    .logo-wrap {
        justify-content: center !important;
        margin: 0 !important;
        gap: 10px !important;
    }

    .logo-img {
        width: 52px !important;
        height: 52px !important;
    }

    .logo-text {
        font-size: 1.25rem !important;
        letter-spacing: 2px !important;
    }

    .menu {
        width: 100% !important;
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 8px !important;
        overflow: visible !important;
        margin: 0 !important;
    }

    .menu a {
        width: 100% !important;
        text-align: center !important;
        font-size: 0.78rem !important;
        padding: 9px 6px !important;
        white-space: normal !important;
    }

    .acciones {
        width: 100% !important;
        display: grid !important;
        grid-template-columns: 1fr 1fr auto !important;
        align-items: center !important;
        gap: 8px !important;
    }

    .acciones .btn {
        width: 100% !important;
        font-size: 0.8rem !important;
        padding: 9px 8px !important;
        margin: 0 !important;
        white-space: normal !important;
    }

    .lang-switch {
        justify-content: center !important;
        gap: 6px !important;
    }

    .flag-img {
        width: 34px !important;
        height: 34px !important;
    }

    .panel-section,
    .seccion,
    .auth-section {
        padding: 26px 0 !important;
    }

    .tarjetas-panel,
    .tarjetas,
    .glosario-grid,
    .equipo-grid {
        grid-template-columns: 1fr !important;
    }

    .panel-card {
        padding: 22px 16px !important;
        border-radius: 20px !important;
    }
}

/* =========================================================
   CERTIFICADO R U SURE - CORREGIDO FINAL
   Ruta: public/css/estilos.css
   Esta sección reemplaza todos los estilos duplicados anteriores
   del certificado. No usa .certificado-solo-pdf para no ocultarlo.
========================================================= */

#certificado {
    margin-top: 24px !important;
}

.certificado-premium {
    width: 1120px !important;
    height: 760px !important;
    min-height: 760px !important;
    max-height: 760px !important;
    box-sizing: border-box !important;
    padding: 42px 70px !important;
    margin: 30px auto !important;
    position: relative !important;
    overflow: hidden !important;
    text-align: center !important;
    color: #071a33 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    border: 10px solid #071a33 !important;
    outline: 4px solid #c9a227 !important;
    outline-offset: -18px !important;
    background:
        radial-gradient(circle at 50% 50%, rgba(201, 162, 39, 0.08), transparent 34%),
        repeating-linear-gradient(
            135deg,
            rgba(201, 162, 39, 0.035) 0px,
            rgba(201, 162, 39, 0.035) 1px,
            transparent 1px,
            transparent 16px
        ),
        linear-gradient(135deg, #fffdf7 0%, #ffffff 48%, #f8fbff 100%) !important;
}

.certificado-premium::before,
.certificado-premium::after {
    content: none !important;
    display: none !important;
    background: none !important;
}

.certificado-premium > * {
    position: relative !important;
    z-index: 2 !important;
}

.cert-marca-agua {
    position: absolute !important;
    width: 500px !important;
    height: auto !important;
    opacity: 0.06 !important;

    /* 🔧 POSICIÓN FIJA PARA PDF */
    top: 130px !important;
    left: 310px !important;

    z-index: 0 !important;
    pointer-events: none !important;
    object-fit: contain !important;
}

.cert-lateral {
    position: absolute !important;
    top: 58px !important;
    left: 76px !important;
    width: 145px !important;
    text-align: center !important;
    color: #071a33 !important;
}

.cert-lateral h3,
.cert-lateral p {
    display: none !important;
}

.cert-logo {
    width: 115px !important;
    height: 115px !important;
    object-fit: contain !important;
    margin: 0 auto !important;
    border-radius: 16px !important;
    display: block !important;
}

.cert-insignia {
    position: absolute !important;
    top: 46px !important;
    right: 72px !important;
    width: 175px !important;
    height: auto !important;
    object-fit: contain !important;
    display: block !important;
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
}

.certificado-premium h1 {
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 60px !important;
    letter-spacing: 12px !important;
    margin: 28px 0 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    color: #071a33 !important;
    text-shadow: 2px 2px 0 #c9a227 !important;
}

.certificado-premium h2 {
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 28px !important;
    letter-spacing: 12px !important;
    color: #0076c9 !important;
    margin: 8px 0 5px !important;
    padding: 0 !important;
    line-height: 1.1 !important;
    font-weight: 900 !important;
}

.cert-subtitulo {
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 18px !important;
    color: #333 !important;
    margin: 0 0 27px !important;
    line-height: 1.2 !important;
}

.cert-label {
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    letter-spacing: 3px !important;
    color: #4b5563 !important;
    margin: 0 0 10px !important;
}

.cert-nombre {
    font-family: Georgia, "Times New Roman", serif !important;
    font-style: italic !important;
    font-size: 44px !important;
    font-weight: 500 !important;
    margin: 0 auto 12px !important;
    padding: 0 0 9px !important;
    max-width: 700px !important;
    border-bottom: 2px solid #c9a227 !important;
    color: #071a33 !important;
    line-height: 1.08 !important;
}

.cert-texto {
    max-width: 720px !important;
    margin: 8px auto 0 !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 17px !important;
    color: #333 !important;
    line-height: 1.45 !important;
}

.cert-rango {
    display: inline-block !important;
    margin: 13px auto 23px !important;
    padding: 13px 65px !important;
    background: linear-gradient(135deg, #06182f, #092342) !important;
    border: 3px solid #c9a227 !important;
    border-radius: 12px !important;
    color: white !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 27px !important;
    font-weight: 900 !important;
    letter-spacing: 3px !important;
    line-height: 1.1 !important;
}

.cert-datos {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 20px !important;
    max-width: 820px !important;
    margin: 0 auto 20px !important;
    padding: 14px 0 !important;
    border-top: 2px solid #c9a227 !important;
    border-bottom: 2px solid #c9a227 !important;
}

.cert-datos div {
    text-align: center !important;
}

.cert-datos span {
    display: block !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 11px !important;
    font-weight: 900 !important;
    color: #444 !important;
    margin: 0 0 5px !important;
    line-height: 1.1 !important;
}

.cert-datos strong {
    display: block !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 17px !important;
    font-weight: 900 !important;
    color: #071a33 !important;
    line-height: 1.1 !important;
}

.cert-footer {
    display: flex !important;
    justify-content: space-between !important;
    align-items: flex-end !important;
    max-width: 820px !important;
    margin: 0 auto !important;
}

.cert-firma-box {
    width: 390px !important;
    text-align: left !important;
}

.cert-firma {
    width: 220px !important;
    height: 86px !important;
    object-fit: contain !important;
    object-position: left center !important;
    margin: 0 0 -6px !important;
    display: block !important;
}

.cert-linea {
    width: 245px !important;
    height: 2px !important;
    background: #c9a227 !important;
    margin: 0 0 6px !important;
}

.cert-firma-box p,
.cert-validado {
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 13px !important;
    color: #333 !important;
    max-width: none !important;
    width: auto !important;
    white-space: nowrap !important;
    line-height: 1.3 !important;
    margin: 0 !important;
}

.cert-firma-box strong,
.cert-validado strong {
    color: #0076c9 !important;
    font-weight: 900 !important;
}

.cert-qr-box {
    width: 315px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 16px !important;
    text-align: left !important;
}

.cert-qr-real {
    width: 130px !important;
    height: 130px !important;
    padding: 8px !important;
    background: white !important;
    border: 2px solid #c9a227 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
    overflow: visible !important;
}

.cert-qr-real img,
.cert-qr-real canvas {
    width: 112px !important;
    height: 112px !important;
    display: block !important;
}

.cert-qr-box p {
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 17px !important;
    color: #333 !important;
    line-height: 1.25 !important;
    margin: 0 !important;
}

.cert-qr-box strong {
    color: #0076c9 !important;
    border-bottom: 3px solid #ff3ea5 !important;
}

.cert-folio {
    display: inline-block !important;
    margin: 9px auto 0 !important;
    padding: 10px 36px !important;
    background: #071a33 !important;
    color: white !important;
    border: 2px solid #c9a227 !important;
    border-radius: 14px !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-weight: 900 !important;
    font-size: 15px !important;
    line-height: 1.1 !important;
}

.cert-folio span {
    color: #c9a227 !important;
}

@media print {
    body * {
        visibility: hidden !important;
    }

    #certificado,
    #certificado * {
        visibility: visible !important;
    }

    #certificado {
        display: block !important;
        position: fixed !important;
        left: 0 !important;
        top: 0 !important;
        margin: 0 !important;
        transform: none !important;
    }

    @page {
        size: letter landscape;
        margin: 0;
    }
}

.certificado-solo-pdf {
    position: relative !important;
    left: auto !important;
    top: auto !important;
    display: none !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    margin: 30px auto !important;
}
.cert-goodjob {
    width: 125px !important;
    height: auto !important;
    object-fit: contain !important;
    display: block !important;
}

.cert-qr-box {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
}

/* ===== FIX CERTIFICADO GOOD JOB SIN ROMPER EL SISTEMA ===== */

.cert-goodjob {
    width: 125px !important;
    height: auto !important;
    object-fit: contain !important;
    display: block !important;
}

.cert-qr-box {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
}

#certificado {
    display: none;
}