
.sef-vote{
    --sef-bg:#F8F5F0;
    --sef-text:#101010;
    --sef-line:rgba(16,16,16,.16);
    background:var(--sef-bg);
    color:var(--sef-text);
    padding:72px 3.2vw 58px;
    font-family:inherit;
}
.sef-vote__intro{
    max-width:1440px;
    margin:0 auto 42px;
    border-bottom:1px solid var(--sef-line);
    padding-bottom:28px;
}
.sef-vote__eyebrow{
    margin:0 0 12px;
    font-size:10px;
    letter-spacing:.3em;
    font-weight:700;
}
.sef-vote__intro h1{
    margin:0;
    font-size:clamp(62px,7.2vw,118px);
    line-height:.82;
    font-weight:500;
    letter-spacing:-.05em;
}
.sef-vote__lead{
    max-width:540px;
    margin:-10px 0 0 auto;
    font-size:13px;
    line-height:1.65;
}
.sef-vote__grid{
    max-width:1440px;
    margin:0 auto;
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:40px 18px;
}
.sef-vote-card{
    min-width:0;
}
.sef-vote-card__gallery{
    position:relative;
    overflow:hidden;
    background:#e9e6e1;
    aspect-ratio:4/5;
}
.sef-vote-card__track{
    display:flex;
    width:100%;
    height:100%;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scroll-behavior:smooth;
    scrollbar-width:none;
}
.sef-vote-card__track::-webkit-scrollbar{display:none}
.sef-vote-card__slide{
    flex:0 0 100%;
    width:100%;
    height:100%;
    scroll-snap-align:start;
}
.sef-vote-card__slide img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}
.sef-vote-card__placeholder{
    display:grid;
    place-items:center;
    font-size:54px;
}
.sef-gallery-arrow{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    width:32px;
    height:42px;
    border:0;
    background:rgba(248,245,240,.88);
    color:#111;
    font-size:24px;
    line-height:1;
    cursor:pointer;
    opacity:0;
    transition:opacity .2s ease;
    z-index:3;
}
.sef-vote-card__gallery:hover .sef-gallery-arrow{opacity:1}
.sef-gallery-arrow--prev{left:7px}
.sef-gallery-arrow--next{right:7px}
.sef-gallery-dots{
    position:absolute;
    left:50%;
    bottom:10px;
    transform:translateX(-50%);
    display:flex;
    gap:6px;
    z-index:3;
}
.sef-gallery-dots button{
    width:6px;
    height:6px;
    padding:0;
    border:0;
    border-radius:50%;
    background:rgba(255,255,255,.55);
    box-shadow:0 0 0 1px rgba(0,0,0,.15);
}
.sef-gallery-dots button.is-active{background:#fff}
.sef-vote-card__body{padding-top:12px}
.sef-vote-card__collection{
    margin:0 0 8px;
    font-size:9px;
    line-height:1.3;
    letter-spacing:.2em;
    font-weight:700;
}
.sef-vote-card__topline{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
}
.sef-vote-card h2{
    margin:0;
    font-size:17px;
    line-height:1.12;
    font-weight:500;
}
.sef-vote-card__count{
    flex:0 0 auto;
    white-space:nowrap;
    font-size:10px;
    letter-spacing:.05em;
}
.sef-vote-card__description{
    margin:9px 0 12px;
    font-size:11px;
    line-height:1.5;
    opacity:.7;
}
.sef-vote-card__button{
    width:100%;
    min-height:42px;
    border:1px solid #111;
    background:#111;
    color:#fff;
    font-size:10px;
    font-weight:700;
    letter-spacing:.2em;
    cursor:pointer;
    transition:all .2s ease;
}
.sef-vote-card__button:hover{
    background:transparent;
    color:#111;
}
.sef-vote-card__button.is-voted,
.sef-vote-card__button:disabled{
    background:transparent;
    color:#111;
    cursor:default;
}
.sef-vote-card__message{
    min-height:14px;
    margin:6px 0 0;
    font-size:10px;
}
.sef-vote__empty{
    max-width:1440px;
    min-height:390px;
    margin:0 auto;
    background:#111;
    color:#fff;
    display:grid;
    place-items:center;
    text-align:center;
    padding:30px;
    font-size:10px;
    font-weight:700;
    letter-spacing:.2em;
}
.sef-vote__closing{
    max-width:1440px;
    margin:66px auto 0;
    padding-top:24px;
    border-top:1px solid var(--sef-line);
    text-align:center;
}
.sef-vote__closing p{
    margin:0;
    font-size:clamp(22px,2.6vw,38px);
    line-height:1.1;
    letter-spacing:-.025em;
}

/* 3 columnas */
@media (max-width:1199px){
    .sef-vote__grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* 2 columnas */
@media (max-width:899px){
    .sef-vote__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Móvil: mantiene 2 tarjetas */
@media (max-width:767px){
    .sef-vote{
        padding:44px 14px 42px;
    }
    .sef-vote__intro{
        margin-bottom:28px;
        padding-bottom:22px;
    }
    .sef-vote__eyebrow{
        font-size:9px;
        margin-bottom:12px;
    }
    .sef-vote__intro h1{
        font-size:clamp(46px,15vw,68px);
        line-height:.84;
        letter-spacing:-.055em;
    }
    .sef-vote__lead{
        margin:24px 0 0;
        max-width:100%;
        font-size:12px;
        line-height:1.6;
    }
    .sef-vote__grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:30px 10px;
    }
    .sef-vote-card__gallery{
        aspect-ratio:4/5;
    }
    .sef-gallery-arrow{display:none}
    .sef-gallery-dots{bottom:7px}
    .sef-gallery-dots button{width:5px;height:5px}
    .sef-vote-card__body{padding-top:9px}
    .sef-vote-card__collection{
        font-size:7px;
        letter-spacing:.14em;
        margin-bottom:6px;
    }
    .sef-vote-card h2{
        font-size:13px;
        line-height:1.15;
    }
    .sef-vote-card__count{
        font-size:8px;
    }
    .sef-vote-card__description{
        font-size:9px;
        line-height:1.45;
        margin:7px 0 9px;
    }
    .sef-vote-card__button{
        min-height:38px;
        font-size:8px;
        letter-spacing:.16em;
    }
    .sef-vote__closing{
        margin-top:44px;
    }
    .sef-vote__closing p{
        font-size:22px;
    }
}

/* Solo equipos extremadamente angostos */
@media (max-width:319px){
    .sef-vote__grid{grid-template-columns:1fr}
}


/* =========================================================
   TARJETA / GALERÍA · HOVER ELEGANTE
========================================================= */
.sef-vote-card{
    min-width:0;
    transition:transform .42s cubic-bezier(.22,.61,.36,1);
}

.sef-vote-card__gallery{
    transform:translateZ(0);
    transform-origin:center center;
    transition:
        transform .48s cubic-bezier(.22,.61,.36,1),
        box-shadow .48s ease;
    will-change:transform;
}

.sef-vote-card__zoom{
    width:100%;
    height:100%;
    padding:0;
    margin:0;
    border:0;
    background:transparent;
    display:block;
    cursor:zoom-in;
    overflow:hidden;
}

.sef-vote-card__zoom img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    transform:scale(1);
    transition:transform .62s cubic-bezier(.22,.61,.36,1);
    will-change:transform;
}

@media (hover:hover) and (pointer:fine){
    .sef-vote-card:hover .sef-vote-card__gallery{
        transform:translateY(-7px) scale(1.012);
        box-shadow:0 22px 48px rgba(0,0,0,.14);
    }

    .sef-vote-card:hover .sef-vote-card__zoom img{
        transform:scale(1.045);
    }
}

/* =========================================================
   LIGHTBOX · PREMIUM
========================================================= */
.sef-vote-lightbox[hidden]{
    display:none !important;
}

.sef-vote-lightbox{
    position:fixed !important;
    inset:0 !important;
    z-index:2147483000 !important;

    display:grid !important;
    place-items:center !important;

    padding:26px !important;

    opacity:0;
    visibility:hidden;
    pointer-events:none;

    transition:
        opacity .32s ease,
        visibility .32s linear;
}

.sef-vote-lightbox.is-open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
}

.sef-vote-lightbox__backdrop{
    position:absolute;
    inset:0;
    z-index:0;

    background:rgba(0,0,0,.76);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);

    opacity:0;
    transition:opacity .34s ease;
}

.sef-vote-lightbox.is-open .sef-vote-lightbox__backdrop{
    opacity:1;
}

.sef-vote-lightbox__dialog{
    position:relative !important;
    z-index:2147483002 !important;
    visibility:visible !important;

    width:min(94vw,1480px);
    height:min(91vh,980px);

    display:flex;
    align-items:center;
    justify-content:center;

    opacity:0;
    transform:translateY(18px) scale(.955);
    transition:
        opacity .38s ease,
        transform .46s cubic-bezier(.22,.61,.36,1);
}

.sef-vote-lightbox.is-open .sef-vote-lightbox__dialog{
    opacity:1 !important;
    visibility:visible !important;
    transform:translateY(0) scale(1) !important;
}

.sef-vote-lightbox__stage{
    position:relative !important;
    z-index:2147483003 !important;

    max-width:100%;
    max-height:100%;

    display:flex;
    align-items:center;
    justify-content:center;
}

.sef-vote-lightbox__image{
    position:relative !important;
    z-index:2147483004 !important;
    visibility:visible !important;

    max-width:min(88vw,1380px) !important;
    max-height:86vh !important;

    width:auto !important;
    height:auto !important;

    object-fit:contain !important;
    display:block !important;

    opacity:1;
    transform:scale(1);
    box-shadow:0 30px 80px rgba(0,0,0,.34);

    transition:
        opacity .18s ease,
        transform .30s cubic-bezier(.22,.61,.36,1);
}

.sef-vote-lightbox__image.is-changing{
    opacity:0;
    transform:scale(.985);
}

.sef-vote-lightbox__close{
    position:fixed !important;
    opacity:1 !important;
    visibility:visible !important;
    top:20px !important;
    right:22px !important;
    z-index:4 !important;

    width:46px !important;
    height:46px !important;

    display:grid !important;
    place-items:center !important;

    border:1px solid rgba(255,255,255,.28) !important;
    border-radius:50% !important;

    background:rgba(0,0,0,.16) !important;
    color:#fff !important;

    font-size:30px !important;
    font-weight:300 !important;
    line-height:1 !important;

    cursor:pointer !important;
    transition:
        background .25s ease,
        transform .25s ease,
        border-color .25s ease !important;
}

.sef-vote-lightbox__close:hover{
    background:rgba(255,255,255,.14) !important;
    border-color:rgba(255,255,255,.55) !important;
    transform:rotate(90deg);
}

.sef-vote-lightbox__nav{
    position:fixed !important;
    opacity:1 !important;
    visibility:visible !important;
    top:50% !important;
    z-index:4 !important;

    transform:translateY(-50%) !important;

    width:52px !important;
    height:68px !important;

    border:1px solid rgba(255,255,255,.24) !important;
    background:rgba(0,0,0,.16) !important;
    color:#fff !important;

    font-size:34px !important;
    font-weight:300 !important;

    cursor:pointer !important;
    transition:
        background .25s ease,
        border-color .25s ease,
        transform .25s ease !important;
}

.sef-vote-lightbox__nav:hover{
    background:rgba(255,255,255,.13) !important;
    border-color:rgba(255,255,255,.48) !important;
}

.sef-vote-lightbox__nav--prev{left:18px !important;}
.sef-vote-lightbox__nav--next{right:18px !important;}

.sef-vote-lightbox__counter{
    position:fixed;
    left:50%;
    bottom:19px;
    z-index:4;

    transform:translateX(-50%);

    color:rgba(255,255,255,.88);
    font-size:10px;
    font-weight:600;
    letter-spacing:.18em;

    pointer-events:none;
}

.sef-vote-lightbox.is-single .sef-vote-lightbox__nav,
.sef-vote-lightbox.is-single .sef-vote-lightbox__counter{
    display:none !important;
}

@media(max-width:767px){
    .sef-vote-lightbox{
        padding:18px 10px !important;
    }

    .sef-vote-lightbox__dialog{
        width:100%;
        height:100%;
    }

    .sef-vote-lightbox__image{
        max-width:94vw !important;
        max-height:82vh !important;
        box-shadow:0 20px 55px rgba(0,0,0,.30);
    }

    .sef-vote-lightbox__close{
        top:14px !important;
        right:14px !important;
        width:42px !important;
        height:42px !important;
        font-size:28px !important;
    }

    .sef-vote-lightbox__nav{
        width:40px !important;
        height:56px !important;
        font-size:28px !important;
        background:rgba(0,0,0,.28) !important;
    }

    .sef-vote-lightbox__nav--prev{left:5px !important;}
    .sef-vote-lightbox__nav--next{right:5px !important;}

    .sef-vote-lightbox__counter{
        bottom:14px;
        font-size:9px;
    }
}

@media (prefers-reduced-motion:reduce){
    .sef-vote-card,
    .sef-vote-card__gallery,
    .sef-vote-card__zoom img,
    .sef-vote-lightbox,
    .sef-vote-lightbox__backdrop,
    .sef-vote-lightbox__dialog,
    .sef-vote-lightbox__image,
    .sef-vote-lightbox__close,
    .sef-vote-lightbox__nav{
        transition:none !important;
        animation:none !important;
    }
}


/* =========================================================
   LIGHTBOX 1.3.3 · BLINDAJE CONTRA CONFLICTOS DEL TEMA
========================================================= */
body > .sef-vote-lightbox{
    position:fixed !important;
    inset:0 !important;
    width:100vw !important;
    height:100vh !important;
    max-width:none !important;
    max-height:none !important;
    margin:0 !important;
    z-index:2147483000 !important;
    isolation:isolate !important;
}
body > .sef-vote-lightbox.is-open{
    display:grid !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
}
body > .sef-vote-lightbox .sef-vote-lightbox__backdrop{
    z-index:1 !important;
}
body > .sef-vote-lightbox .sef-vote-lightbox__dialog{
    z-index:2 !important;
    opacity:1 !important;
    visibility:visible !important;
}
body > .sef-vote-lightbox .sef-vote-lightbox__stage{
    z-index:3 !important;
}
body > .sef-vote-lightbox .sef-vote-lightbox__image{
    z-index:4 !important;
    opacity:1 !important;
    visibility:visible !important;
}
body > .sef-vote-lightbox .sef-vote-lightbox__close,
body > .sef-vote-lightbox .sef-vote-lightbox__nav,
body > .sef-vote-lightbox .sef-vote-lightbox__counter{
    z-index:5 !important;
}
