html { /* =========================
   BASE
========================= */

    html {
        position: relative;
        min-height: 100%;
        font-size: 14px;
    }

    @media (min-width:768px) {
        html {
            font-size: 16px;
        }
    }

    body {
        background-color: #ffffff;
        margin-bottom: 60px;
    }
    /* =========================
   BOOTSTRAP AJUSTES
========================= */

    .btn:focus,
    .btn:active:focus,
    .btn-link.nav-link:focus,
    .form-control:focus,
    .form-check-input:focus {
        box-shadow: 0 0 0 .1rem white, 0 0 0 .25rem #258cfb;
    }

    .form-floating > .form-control::placeholder,
    .form-floating > .form-control-plaintext::placeholder {
        color: var(--bs-secondary-color);
        text-align: end;
    }

    .form-floating > .form-control:focus::placeholder,
    .form-floating > .form-control-plaintext:focus::placeholder {
        text-align: start;
    }
    /* =========================
   NAVBAR / FOOTER
========================= */

    .navbar-dark.bg-dark {
        background-color: #0B2545 !important;
    }

    footer.bg-light {
        background-color: #F4F6F8 !important;
    }
    /* =========================
   CARDS
========================= */

    .card-hover {
        transition: transform .2s ease, box-shadow .2s ease;
    }

        .card-hover:hover {
            transform: translateY(-6px);
            box-shadow: 0 10px 20px rgba(0,0,0,.15);
        }
    /* =========================
   HERO
========================= */

    .hero-institucional {
        background: linear-gradient(135deg,#0B2545,#133B5C);
    }

    .hero-europa {
        background: linear-gradient(135deg,#0b1f3a,#0f2f5c);
        color: #fff;
        padding: 4rem 0 3rem;
    }

        .hero-europa .subtitle {
            opacity: .9;
            margin-top: .5rem;
        }
    /* =========================
   EUROPA CONTENT
========================= */

    .europa-content {
        padding: 2.5rem 0;
    }

    .intro,
    .analysis {
        background: #0f1f35;
        color: #e6edf7;
        padding: 1.5rem;
        border-radius: 14px;
        box-shadow: 0 10px 24px rgba(0,0,0,.25);
    }

    .europa-experience {
        background: linear-gradient(135deg,#112845,#1a3f71);
        color: #eaf2ff;
        border: 1px solid rgba(255,255,255,.12);
    }

    .timeline-filters {
        display: flex;
        flex-wrap: wrap;
        gap: .5rem;
    }

        .timeline-filters .btn.active {
            box-shadow: 0 0 0 2px rgba(255,255,255,.35) inset;
        }

    .timeline-hidden {
        display: none !important;
    }
    /* =========================
   TIMELINE SIMPLE (GIRA)
========================= */

    .timeline-simple {
        position: relative;
        margin: 40px auto;
        padding-left: 60px;
        max-width: 900px;
    }

        .timeline-simple::before {
            content: "";
            position: absolute;
            left: 20px;
            top: 0;
            bottom: 0;
            width: 4px;
            background: #1e5aa8;
            border-radius: 2px;
        }


    .timeline-item.visible {
        opacity: 1;
        transform: translateY(0);
    }

    .timeline-item .date {
        position: absolute;
        left: -6px;
        transform: translateX(-100%);
        top: 6px;
        font-weight: 600;
        font-size: 14px;
        color: #9bb7ff;
        white-space: nowrap;
    }
    /* =========================
   CARD PARTIDO
========================= */

    .card.match {
        background: linear-gradient(135deg,#0b1e33,#123b6d);
        color: #fff;
        padding: 16px 20px;
        border-radius: 12px;
        box-shadow: 0 10px 24px rgba(0,0,0,.18);
        transition: transform .2s ease, box-shadow .2s ease;
    }

        .card.match:hover {
            transform: translateY(-3px);
            box-shadow: 0 16px 28px rgba(0,0,0,.35);
        }

        .card.match.win {
            border-left: 5px solid #22c55e;
        }

        .card.match.draw {
            border-left: 5px solid #f59e0b;
        }

        .card.match.loss {
            border-left: 5px solid #ef4444;
        }
    /* =========================
   RESULTADOS
========================= */

    .dot {
        display: inline-block;
        width: 10px;
        height: 10px;
        border-radius: 50%;
        margin-right: 6px;
        vertical-align: middle;
    }

        .dot.win {
            background: #9fe3b2;
        }

        .dot.draw {
            background: #fde68a;
        }

        .dot.loss {
            background: #f7b2b2;
        }

    .row-win {
        background: #f1fbf5;
    }

    .row-draw {
        background: #fffbeb;
    }

    .row-loss {
        background: #fff1f1;
    }

    .asterisk {
        cursor: help;
        color: #6b7280;
        font-weight: 700;
        margin-left: 4px;
    }
    /* =========================
   CTA
========================= */

    .cta-gira {
        max-width: 960px;
    }

    .cta-card {
        background: linear-gradient(135deg,#0b1f3a,#0f2f5c);
        color: #e6edf7;
        border: 1px solid rgba(255,255,255,0.08);
    }

        .cta-card h3 {
            font-weight: 700;
            letter-spacing: .5px;
        }

        .cta-card p {
            opacity: .9;
            max-width: 720px;
            margin: 0 auto 1.5rem;
        }

        .cta-card .btn {
            background: #1e5aa8;
            border: none;
            box-shadow: 0 8px 20px rgba(0,0,0,.25);
        }

            .cta-card .btn:hover {
                background: #2a6fce;
                transform: translateY(-2px);
            }
    /* =========================
   HISTORIA
========================= */

    .historia-nota h1 {
        color: #0b2545;
    }

    .historia-nota h3 {
        color: #1e5aa8;
    }

    .historia-nota p {
        font-size: 1.05rem;
        line-height: 1.7;
    }

    .historia-nota blockquote {
        background: #f4f6f8;
        border-left: 6px solid #1e5aa8;
        font-style: italic;
    }
    /* =========================
   SEDE SOCIAL
========================= */

    .uniform-img {
        height: 250px;
        object-fit: cover;
    }

    .img-clickable {
        cursor: zoom-in;
    }
    /* =========================
   VIDEO
========================= */

    .video-card {
        cursor: pointer;
        transition: transform .3s ease;
    }

        .video-card:hover {
            transform: scale(1.03);
        }

    .play-button {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%,-50%);
        font-size: 60px;
        color: white;
        background: rgba(0,0,0,.6);
        width: 90px;
        height: 90px;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    /* =========================
   GALERÍA
========================= */

    .gallery-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit,minmax(350px,1fr));
        gap: 25px;
    }

    .gallery-card {
        background: #111;
        padding: 15px;
        border-radius: 12px;
        transition: transform .3s ease;
    }

        .gallery-card:hover {
            transform: translateY(-5px);
        }

    .gallery-img {
        width: 100%;
        border-radius: 10px;
    }

    .gallery-caption {
        font-size: .95rem;
        color: #ccc;
        margin-top: 8px;
    }
    /* =========================
   TIMELINE SPORTIVO BARRACAS
   ========================= */

    .timeline {
        position: relative;
        margin: 60px 0;
        padding: 40px 0;
    }
        /* Línea central */
        .timeline::before {
            content: '';
            position: absolute;
            top: 50%;
            left: 0;
            width: 100%;
            height: 4px;
            background: #8b0000;
        }
    /* Item */
    /* Punto */
    .timeline-item::before {
        content: '';
        position: absolute;
        top: calc(50% - 7px);
        left: 50%;
        transform: translateX(-50%);
        width: 14px;
        height: 14px;
        background: #8b0000;
        border-radius: 50%;
    }
    /* Caja */
    .timeline-content {
        background: #fff;
        border: 1px solid #ddd;
        border-radius: 8px;
        padding: 15px;
        width: 80%;
        margin: auto;
    }
    /* arriba */
    .timeline-item.primera .timeline-content,
    .timeline-item.tercera .timeline-content,
    .timeline-item.quinta .timeline-content {
        margin-bottom: 80px;
    }
    /* abajo */
    .timeline-item.segunda .timeline-content,
    .timeline-item.cuarta .timeline-content,
    .timeline-item.desafiliado .timeline-content,
    .timeline-item.neutral .timeline-content {
        margin-top: 80px;
    }
    /* títulos */
    .timeline-content h4 {
        color: #8b0000;
        font-weight: bold;
    }

    .timeline-content h5 {
        font-size: 16px;
    }
    /* limpiar floats */
    .timeline::after {
        content: "";
        display: block;
        clear: both;
    }
    /* =========================
   MOBILE
   ========================= */

    @media (max-width: 768px) {

        .timeline::before {
            left: 20px;
            top: 0;
            width: 4px;
            height: 100%;
        }



        .timeline-item::before {
            top: 10px;
            left: 20px;
        }

        .timeline-content {
            margin: 0 !important;
        }
    }

    .timeline {
        position: relative;
        max-width: 1000px;
        margin: auto;
        padding: 40px 0;
    }

        .timeline::after {
            content: '';
            position: absolute;
            width: 4px;
            background: #ddd;
            top: 0;
            bottom: 0;
            left: 50%;
            transform: translateX(-50%);
        }
    /* ITEM */

    .timeline-item {
        padding: 20px 40px;
        position: relative;
        width: 50%;
    }
        /* izquierda */

        .timeline-item:nth-child(odd) {
            left: 0;
            text-align: right;
        }
        /* derecha */

        .timeline-item:nth-child(even) {
            left: 50%;
        }
        /* circulo */

        .timeline-item::after {
            content: '';
            position: absolute;
            width: 18px;
            height: 18px;
            background: white;
            border: 3px solid #999;
            top: 30px;
            border-radius: 50%;
            z-index: 1;
        }

        .timeline-item:nth-child(odd)::after {
            right: -9px;
        }

        .timeline-item:nth-child(even)::after {
            left: -9px;
        }
    /* =========================
TIMELINE HISTORICA FINAL
========================= */

    .timeline {
        position: relative;
        max-width: 1200px;
        margin: auto;
        padding: 60px 0;
    }
        /* línea central azul */

        .timeline::after {
            content: '';
            position: absolute;
            width: 4px;
            background: #1e5aa8;
            top: 0;
            bottom: 0;
            left: 50%;
            margin-left: -2px;
        }
    /* item */

    .timeline-item {
        padding: 20px 40px;
        position: relative;
        width: 50%;
        opacity: 0;
        transform: translateY(40px);
        transition: all .7s ease;
    }
        /* animación scroll */

        .timeline-item.visible {
            opacity: 1;
            transform: translateY(0);
        }
        /* punto en la línea */

        .timeline-item::after {
            content: '';
            position: absolute;
            width: 20px;
            height: 20px;
            background: white;
            border: 4px solid #1e5aa8;
            top: 30px;
            border-radius: 50%;
            z-index: 2;
        }
        /* izquierda */

        .timeline-item:nth-child(odd) {
            left: 0;
        }

            .timeline-item:nth-child(odd)::after {
                right: -10px;
            }
        /* derecha */

        .timeline-item:nth-child(even) {
            left: 50%;
        }

            .timeline-item:nth-child(even)::after {
                left: -10px;
            }
    /* tarjeta */

    .timeline-content {
        background: white;
        padding: 25px;
        border-radius: 12px;
        box-shadow: 0 6px 20px rgba(0,0,0,.15);
        transition: transform .25s ease;
    }

        .timeline-content:hover {
            transform: translateY(-5px);
        }

        .timeline-content h4 {
            font-weight: 700;
            color: #0B2545;
        }

        .timeline-content h5 {
            color: #1e5aa8;
            margin-bottom: 10px;
        }
    /* imagen timeline */

    .timeline-img {
        width: 100%;
        border-radius: 8px;
        margin-top: 12px;
    }
    /* responsive */

    @media screen and (max-width: 768px) {

        .timeline::after {
            left: 20px;
        }

        .timeline-item {
            width: 100%;
            padding-left: 60px;
            padding-right: 20px;
        }

            .timeline-item:nth-child(even),
            .timeline-item:nth-child(odd) {
                left: 0;
            }

            .timeline-item::after {
                left: 12px;
            }
    }
    /* =========================
TIMELINE HISTORICA FINAL
========================= */

    .timeline {
        position: relative;
        max-width: 1200px;
        margin: auto;
        padding: 60px 0;
    }
        /* línea central azul */

        .timeline::after {
            content: '';
            position: absolute;
            width: 4px;
            background: #1e5aa8;
            top: 0;
            bottom: 0;
            left: 50%;
            margin-left: -2px;
        }
    /* item */

    .timeline-item {
        padding: 20px 40px;
        position: relative;
        width: 50%;
        opacity: 0;
        transform: translateY(40px);
        transition: all .7s ease;
    }
        /* animación scroll */

        .timeline-item.visible {
            opacity: 1;
            transform: translateY(0);
        }
        /* punto en la línea */

        .timeline-item::after {
            content: '';
            position: absolute;
            width: 20px;
            height: 20px;
            background: white;
            border: 4px solid #1e5aa8;
            top: 30px;
            border-radius: 50%;
            z-index: 2;
        }
        /* izquierda */

        .timeline-item:nth-child(odd) {
            left: 0;
        }

            .timeline-item:nth-child(odd)::after {
                right: -10px;
            }
        /* derecha */

        .timeline-item:nth-child(even) {
            left: 50%;
        }

            .timeline-item:nth-child(even)::after {
                left: -10px;
            }
    /* tarjeta */

    .timeline-content {
        background: white;
        padding: 25px;
        border-radius: 12px;
        box-shadow: 0 6px 20px rgba(0,0,0,.15);
        transition: transform .25s ease;
    }

        .timeline-content:hover {
            transform: translateY(-5px);
        }

        .timeline-content h4 {
            font-weight: 700;
            color: #0B2545;
        }

        .timeline-content h5 {
            color: #1e5aa8;
            margin-bottom: 10px;
        }
    /* imagen timeline */

    .timeline-img {
        width: 100%;
        border-radius: 8px;
        margin-top: 12px;
    }
    /* responsive */

    @media screen and (max-width: 768px) {

        .timeline::after {
            left: 20px;
        }

        .timeline-item {
            width: 100%;
            padding-left: 60px;
            padding-right: 20px;
        }

            .timeline-item:nth-child(even),
            .timeline-item:nth-child(odd) {
                left: 0;
            }

            .timeline-item::after {
                left: 12px;
            }
    }
    /* =========================
TIMELINE HISTORICA FINAL
========================= */

    .timeline {
        position: relative;
        max-width: 1200px;
        margin: auto;
        padding: 60px 0;
    }
        /* línea central azul */

        .timeline::after {
            content: '';
            position: absolute;
            width: 4px;
            background: #1e5aa8;
            top: 0;
            bottom: 0;
            left: 50%;
            margin-left: -2px;
        }
    /* item */

    .timeline-item {
        padding: 20px 40px;
        position: relative;
        width: 50%;
        opacity: 0;
        transform: translateY(40px);
        transition: all .7s ease;
    }
        /* animación scroll */

        .timeline-item.visible {
            opacity: 1;
            transform: translateY(0);
        }
        /* punto en la línea */

        .timeline-item::after {
            content: '';
            position: absolute;
            width: 20px;
            height: 20px;
            background: white;
            border: 4px solid #1e5aa8;
            top: 30px;
            border-radius: 50%;
            z-index: 2;
        }
        /* izquierda */

        .timeline-item:nth-child(odd) {
            left: 0;
        }

            .timeline-item:nth-child(odd)::after {
                right: -10px;
            }
        /* derecha */

        .timeline-item:nth-child(even) {
            left: 50%;
        }

            .timeline-item:nth-child(even)::after {
                left: -10px;
            }
    /* tarjeta */

    .timeline-content {
        background: white;
        padding: 25px;
        border-radius: 12px;
        box-shadow: 0 6px 20px rgba(0,0,0,.15);
        transition: transform .25s ease;
    }

        .timeline-content:hover {
            transform: translateY(-5px);
        }

        .timeline-content h4 {
            font-weight: 700;
            color: #0B2545;
        }

        .timeline-content h5 {
            color: #1e5aa8;
            margin-bottom: 10px;
        }
    /* imagen timeline */

    .timeline-img {
        width: 100%;
        border-radius: 8px;
        margin-top: 12px;
    }
    /* responsive */

    @media screen and (max-width: 768px) {

        .timeline::after {
            left: 20px;
        }

        .timeline-item {
            width: 100%;
            padding-left: 60px;
            padding-right: 20px;
        }

            .timeline-item:nth-child(even),
            .timeline-item:nth-child(odd) {
                left: 0;
            }

            .timeline-item::after {
                left: 12px;
            }
    }
    /* =========================
GALERIA / VISOR DE IMAGEN
========================= */

    .gallery-modal {
        display: none;
        position: fixed;
        z-index: 9999;
        left: 0;
        top: 0;
        width: 100%;
        height: 100%;
        background: rgba(0,0,0,0.85);
        /* centra perfecto */
        display: flex;
        align-items: center;
        justify-content: center;
    }

        .gallery-modal img {
            max-width: 90%;
            max-height: 90%;
            border-radius: 10px;
            box-shadow: 0 10px 40px rgba(0,0,0,.6);
        }

        .gallery-modal.active {
            display: flex;
        }
    /* =========================
Gira Europea // Imagenes
========================= */
    /* Fotos dentro del timeline */

    .timeline-photo {
        width: 100%;
        max-height: 320px;
        object-fit: cover;
        border-radius: 6px;
        cursor: pointer;
        transition: transform .25s ease, box-shadow .25s ease;
    }

        .timeline-photo:hover {
            transform: scale(1.03);
            box-shadow: 0 8px 18px rgba(0,0,0,.25);
        }
    /* contenedor de fotos */

    .timeline-gallery {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(140px,1fr));
        gap: 8px;
        margin-top: 10px;
    }
