/* Puna — Hero Slider Vue 3 (imagenes de Setting > Banners > puna-hero).
   El contenido del hero (H1, descripcion y CTA) queda fijo; solo cambia la foto.
   El primer <picture> se renderiza desde Blade como fallback sin JavaScript y LCP. */
.pn-hero-carousel,
.pn-hero-carousel__stage {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
}
.pn-hero-carousel__slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 800ms ease, visibility 0s linear 800ms;
}
.pn-hero-carousel__slide.is-active {
    opacity: 1;
    visibility: visible;
    transition: opacity 800ms ease;
}
.pn-hero-carousel__picture,
.pn-hero-carousel__picture img {
    display: block;
    width: 100%;
    height: 100%;
}
.pn-hero-carousel__picture img {
    object-fit: cover;
    /* Las fotos industriales dejan el sujeto al extremo derecho.
       El recorte centrado mostraba solo cielo/estructura y cortaba al trabajador. */
    object-position: right center;
}
/* Sin scale/zoom: no interpolar los pixels de las fotografias (evita desenfoque). */
.pn-hero__media { z-index: 0; }
.pn-hero__content { z-index: 2; }
.pn-hero__tagline { z-index: 2; }
@media (max-width: 767px) {
    .pn-hero-carousel__picture img { object-position: center center; }
}
.pn-hero__photo-overlay { z-index: 1; pointer-events: none; }
.pn-hero-carousel__controls {
    position: absolute;
    z-index: 4;
    left: clamp(12px, 2.5vw, 36px);
    bottom: 16px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 11px;
    color: #fff;
    border: 1px solid rgba(255, 255, 255, .32);
    border-radius: 999px;
    background: rgba(5, 39, 51, .75);
    box-shadow: 0 10px 25px rgba(0, 0, 0, .15);
    backdrop-filter: blur(10px);
}
.pn-hero-carousel__arrow,
.pn-hero-carousel__dot {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    cursor: pointer;
    border: 0;
    color: #fff;
}
.pn-hero-carousel__arrow {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .08);
    transition: background 200ms ease, color 200ms ease, transform 200ms ease;
}
.pn-hero-carousel__arrow:hover { background: #3ddc97; color: #0b2f45; transform: scale(1.06); }
.pn-hero-carousel__dots { display: flex; align-items: center; justify-content: center; gap: 6px; }
.pn-hero-carousel__dot {
    width: 8px;
    height: 8px;
    padding: 0;
    border-radius: 100px;
    background: rgba(255, 255, 255, .45);
    transition: width 260ms ease, background 260ms ease;
}
.pn-hero-carousel__dot.is-active { width: 24px; background: #3ddc97; }
.pn-hero-carousel__progress-track {
    position: absolute;
    left: 16px;
    right: 16px;
    bottom: 2px;
    height: 2px;
    overflow: hidden;
    border-radius: 2px;
    background: rgba(255, 255, 255, .28);
}
.pn-hero-carousel__progress {
    display: block;
    height: 100%;
    width: 100%;
    transform: scaleX(0);
    transform-origin: left center;
    background: #3ddc97;
    animation-name: pn-hero-timer;
    animation-timing-function: linear;
    animation-iteration-count: 1;
    animation-fill-mode: forwards;
}
@keyframes pn-hero-timer {
    from { transform: scaleX(0); }
    to { transform: scaleX(1); }
}
.pn-hero-carousel__counter {
    min-width: 38px;
    text-align: right;
    font: 600 11px/1.2 "Barlow", sans-serif;
    letter-spacing: .07em;
    font-variant-numeric: tabular-nums;
    color: rgba(255, 255, 255, .9);
}
.pn-hero-carousel__arrow:focus-visible,
.pn-hero-carousel__dot:focus-visible {
    outline: 2px solid #3ddc97;
    outline-offset: 3px;
}
@media (max-width: 639px) {
    .pn-hero-carousel__controls { bottom: 10px; left: 10px; gap: 8px; padding: 6px 9px; }
    .pn-hero-carousel__arrow { width: 30px; height: 30px; }
}
@media (prefers-reduced-motion: reduce) {
    .pn-hero-carousel__slide,
    .pn-hero-carousel__slide.is-active,
    .pn-hero-carousel__slide img,
    .pn-hero-carousel__arrow,
    .pn-hero-carousel__dot {
        animation: none;
        transition: none;
        transform: none;
    }
}
