/* Askómedas Slider Bridge 1.1.0 */
.asb-hero,
.asb-album-carousel { box-sizing: border-box; }
.asb-hero *,
.asb-album-carousel * { box-sizing: border-box; }

/* Break out of any inherited Legacy Bridge / Croma content container. */
.asb-hero,
.asb-album-carousel {
    position: relative;
    width: 100vw;
    max-width: none;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}

.asb-hero { overflow: hidden; isolation: isolate; }
.asb-hero-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: var(--asb-object-position, center center);
    transform: scale(1.002);
}

/* -------------------------------------------------------------------------
 * HOME — reproduction of Revolution Slider "Askomedas Atontados"
 * Original layer data:
 * Title: Shadows Into Light / 160px / lh 208 / ls -3 / y -51 / parallax 2
 * Subtitle: Bebas Neue / 24px / lh 22 / ls 3 / y +69 / parallax 4
 * ---------------------------------------------------------------------- */
.asb-hero-home {
    min-height: 100vh;
    height: 100vh;
    background: #000;
}
.asb-hero-home .asb-hero-bg { object-fit: cover; }

.asb-home-title-layer,
.asb-home-subtitle-layer {
    position: absolute;
    z-index: 13;
    left: 50%;
    top: 50%;
    color: #fff;
    text-align: center;
    pointer-events: none;
    will-change: transform;
    /* JS supplies the smooth inverse-mouse movement. */
    --asb-parallax-x: 0px;
    --asb-parallax-y: 0px;
}

.asb-home-title-layer {
    z-index: 9;
    transform: translate(
        calc(-50% + 7px + var(--asb-parallax-x)),
        calc(-50% - 51px + var(--asb-parallax-y))
    );
}
.asb-home-subtitle-layer {
    z-index: 13;
    width: 817px;
    max-width: 92vw;
    min-height: 110px;
    transform: translate(
        calc(-50% + 5px + var(--asb-parallax-x)),
        calc(-50% + 69px + var(--asb-parallax-y))
    );
}

.asb-home-title {
    font-family: "Shadows Into Light", cursive;
    font-weight: 400;
    font-size: 160px;
    line-height: 208px;
    letter-spacing: -3px;
    white-space: nowrap;
    color: #fff;
    text-shadow: 7px 7px 10px rgba(0,0,0,.75);
    visibility: hidden;
}
.asb-home-subtitle {
    font-family: "Bebas Neue", sans-serif;
    font-weight: 400;
    font-size: 24px;
    line-height: 22px;
    letter-spacing: 3px;
    white-space: normal;
    color: #fff;
    text-align: center;
    visibility: hidden;
}

/* Revolution splits words first, then characters. We do the same to retain
   the spacing/shape of the original typography during the intro. */
.asb-word {
    display: inline-block;
    white-space: nowrap;
}
.asb-char {
    display: inline-block;
    will-change: opacity, transform;
}
.asb-space {
    display: inline-block;
    white-space: pre;
}

.asb-home-title.is-asb-split,
.asb-home-subtitle.is-asb-split { visibility: visible; }

/* The exact Revolution timeline was mechanically harsh when reproduced 1:1.
   These timings preserve its intent as observed on production: the title
   builds character-by-character, the subtitle joins before it has finished,
   runs faster left-to-right, and completes just before the title. */
.asb-home-title .asb-char {
    opacity: 0;
    transform: translateY(-0.93em);
    transition:
        opacity 1500ms cubic-bezier(.45,0,.55,1) var(--asb-delay, 0ms),
        transform 1500ms cubic-bezier(.45,0,.55,1) var(--asb-delay, 0ms);
}
.asb-home-title.is-asb-playing .asb-char {
    opacity: 1;
    transform: translateY(0);
}

.asb-home-subtitle .asb-char {
    opacity: 0;
    transform: translateX(-2px);
    transition:
        opacity 720ms cubic-bezier(.22,.61,.36,1) var(--asb-delay, 0ms),
        transform 720ms cubic-bezier(.22,.61,.36,1) var(--asb-delay, 0ms);
}
.asb-home-subtitle.is-asb-playing .asb-char {
    opacity: 1;
    transform: translateX(0);
}

.asb-smoke {
    position: absolute;
    z-index: 2;
    left: -12vw;
    bottom: -28vh;
    width: 55vw;
    height: 55vw;
    max-width: 900px;
    max-height: 900px;
    border-radius: 50%;
    opacity: .18;
    filter: blur(36px);
    background:
        radial-gradient(circle at 35% 45%, rgba(255,255,255,.5), transparent 26%),
        radial-gradient(circle at 55% 58%, rgba(255,255,255,.28), transparent 34%),
        radial-gradient(circle at 60% 25%, rgba(255,255,255,.16), transparent 30%);
    animation: asb-smoke-drift 9s ease-in-out infinite alternate;
    pointer-events: none;
}
.asb-smoke-b {
    left: 8vw;
    bottom: -36vh;
    transform: rotate(26deg) scale(1.25);
    opacity: .10;
    animation-duration: 12s;
    animation-direction: alternate-reverse;
}

/* ABOUT / COOKIES — reproduction of Revolution Slider "About" / "about-1".
 * Production data (both sliders):
 *   Title: Josefin Sans 140 / 600 / y -1 / fade 500→1300ms.
 *   Subtitle: Josefin Sans 24 / 600 / y +90 / fade 1620→2310ms.
 *   Background: 1000ms fade-in. About aligns image center-top; Cookies center-center.
 */
.asb-hero-simple {
    height: 868px;
    min-height: 520px;
    background: #000;
}
.asb-hero-simple .asb-hero-bg {
    opacity: 0;
    animation: asb-simple-bg-in 1000ms ease-out 0ms forwards;
}
.asb-hero-about .asb-hero-bg { object-position: center top; }

.asb-simple-title-layer,
.asb-simple-subtitle-layer {
    position: absolute;
    z-index: 2;
    left: 50%;
    top: 50%;
    width: max-content;
    max-width: 96vw;
    color: #fff;
    text-align: center;
    pointer-events: none;
}
.asb-simple-title-layer {
    transform: translate(-50%, calc(-50% - 1px));
}
.asb-simple-subtitle-layer {
    transform: translate(-50%, calc(-50% + 90px));
}
.asb-simple-title,
.asb-simple-subtitle {
    font-family: "Josefin Sans", sans-serif;
    font-weight: 600;
    color: #fff;
    white-space: nowrap;
    opacity: 0;
    text-shadow: none;
    will-change: opacity;
}
.asb-simple-title {
    font-size: 140px;
    line-height: 22px;
    letter-spacing: 0;
    animation: asb-simple-copy-in 800ms cubic-bezier(.45,0,.55,1) 500ms forwards;
}
.asb-simple-subtitle {
    font-size: 24px;
    line-height: 22px;
    letter-spacing: 0;
    animation: asb-simple-copy-in 690ms cubic-bezier(.45,0,.55,1) 1620ms forwards;
}

@keyframes asb-simple-bg-in {
    from { opacity: 0; }
    to   { opacity: 1; }
}
@keyframes asb-simple-copy-in {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* ALBUM CAROUSEL — tuned from the actual Revolution Slider "Album-slider".
   Original module: 450x450 desktop, 5 visible items, 800ms power3.inOut,
   infinity+snap, scaleDown 40%, negative spacing (-150) and 3D rotation. */
.asb-album-carousel {
    height: 450px;
    overflow: hidden;
    background: transparent;
    touch-action: pan-y;
    outline: none;
    user-select: none;
    -webkit-user-select: none;
    cursor: grab;
}
.asb-album-carousel:active,
.asb-album-carousel.is-dragging { cursor: grabbing; }
.asb-album-carousel.is-dragging .asb-album-card {
    transition: none !important;
}
.asb-carousel-stage {
    position: absolute;
    inset: 0;
    overflow: hidden;
    perspective: 1600px;
    perspective-origin: 50% 50%;
    opacity: 0;
    transition: opacity .18s ease;
}
.asb-album-carousel.is-asb-carousel-ready .asb-carousel-stage { opacity: 1; }
.asb-album-card {
    --asb-x: 0px;
    --asb-scale: .60;
    --asb-rotate: 0deg;
    --asb-opacity: 0;
    position: absolute;
    left: 50%;
    top: 50%;
    width: 450px;
    height: 450px;
    max-width: 46vw;
    max-height: 46vw;
    display: block;
    overflow: hidden;
    background: #111;
    transform:
        translate3d(calc(-50% + var(--asb-x)), -50%, 0)
        scale(var(--asb-scale))
        rotateY(var(--asb-rotate));
    opacity: var(--asb-opacity);
    transition:
        transform 800ms cubic-bezier(.645,.045,.355,1),
        opacity 800ms cubic-bezier(.645,.045,.355,1),
        filter 800ms cubic-bezier(.645,.045,.355,1);
    transform-origin: center center;
    z-index: 2;
    box-shadow: 0 12px 28px rgba(0,0,0,.10);
    will-change: transform, opacity;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}
.asb-album-card img {
    -webkit-user-drag: none;
    user-select: none;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    pointer-events: none;
}
.asb-album-card.is-active {
    --asb-scale: 1;
    --asb-opacity: 1;
    z-index: 10;
    box-shadow: 0 15px 38px rgba(0,0,0,.12);
}
.asb-album-card.is-near { z-index: 8; }
.asb-album-card.is-far  { z-index: 6; }
.asb-play-icon {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 76px;
    height: 76px;
    transform: translate(-50%, -50%);
    border: 5px solid #fff;
    border-radius: 50%;
    opacity: 0;
    transition: opacity .25s ease, transform .25s ease;
    filter: drop-shadow(0 2px 7px rgba(0,0,0,.35));
    pointer-events: none;
}
.asb-play-icon span {
    position: absolute;
    left: 29px;
    top: 20px;
    width: 0;
    height: 0;
    border-top: 15px solid transparent;
    border-bottom: 15px solid transparent;
    border-left: 23px solid #fff;
}
.asb-album-card.is-active .asb-play-icon,
.asb-album-card:hover .asb-play-icon { opacity: 1; }
.asb-album-card:hover .asb-play-icon { transform: translate(-50%, -50%) scale(1.04); }
.asb-carousel-nav {
    position: absolute;
    z-index: 30;
    top: 50%;
    transform: translateY(-50%);
    width: 52px;
    height: 86px;
    border: 0;
    background: transparent;
    color: #fff;
    font-size: 34px;
    line-height: 1;
    cursor: pointer;
    opacity: .18;
    text-shadow: 0 2px 10px rgba(0,0,0,.65);
    transition: opacity .25s ease, transform .25s ease;
}
.asb-album-carousel:hover .asb-carousel-nav { opacity: .42; }
.asb-carousel-nav:hover { opacity: .9 !important; }
.asb-carousel-prev { left: 30px; }
.asb-carousel-next { right: 30px; }

@keyframes asb-smoke-drift {
    from { transform: translate3d(0,0,0) rotate(0deg) scale(1); }
    to   { transform: translate3d(8vw,-3vh,0) rotate(10deg) scale(1.08); }
}

/* Revolution breakpoints: desktop / notebook / tablet / mobile. */
@media (max-width: 1240px) {
    .asb-home-title {
        font-size: 148px;
        line-height: 193px;
        letter-spacing: -2px;
        text-shadow: 6px 6px 9px rgba(0,0,0,.75);
    }
    .asb-home-title-layer {
        transform: translate(
            calc(-50% + 6px + var(--asb-parallax-x)),
            calc(-50% - 47px + var(--asb-parallax-y))
        );
    }
}
@media (max-width: 1024px) {
    .asb-home-title {
        font-size: 112px;
        line-height: 146px;
        letter-spacing: -1px;
        text-shadow: 4px 4px 6px rgba(0,0,0,.75);
    }
    .asb-home-title-layer {
        transform: translate(
            calc(-50% + 4px + var(--asb-parallax-x)),
            calc(-50% - 35px + var(--asb-parallax-y))
        );
    }
    .asb-hero-simple { height: 768px; }
    .asb-simple-title { font-size: 116px; }
    .asb-album-carousel { height: 600px; }
    .asb-album-card { width: 600px; height: 600px; max-width: 58vw; max-height: 58vw; }
}
@media (max-width: 778px) {
    .asb-hero-home {
        height: calc(100svh - var(--askomedas-mobile-header-height, 62px));
        min-height: 500px;
    }
    .asb-home-title-layer {
        width: 96vw;
    }
    .asb-home-title {
        font-size: clamp(42px, 13vw, 69px);
        line-height: 1.12;
        letter-spacing: -1px;
        white-space: nowrap;
        text-shadow: 2px 2px 3px rgba(0,0,0,.75);
    }
    .asb-home-title-layer {
        transform: translate(
            calc(-50% + 2px + var(--asb-parallax-x)),
            calc(-50% - 21px + var(--asb-parallax-y))
        );
    }
    .asb-home-subtitle-layer {
        transform: translate(
            calc(-50% + var(--asb-parallax-x)),
            calc(-50% + 50px + var(--asb-parallax-y))
        );
    }
    .asb-home-subtitle { font-size: 16px; }
    .asb-hero-simple { height: min(72svh, 620px); min-height: 470px; }
    .asb-simple-title { font-size: 82px; line-height: 22px; }
    .asb-simple-subtitle-layer { transform: translate(-50%, calc(-50% + 72px)); }
    .asb-album-carousel { height: min(108vw, 520px); min-height: 360px; }
    .asb-album-card { width: min(82vw, 420px); height: min(82vw, 420px); max-width: none; max-height: none; }
    .asb-simple-title { white-space: nowrap; }
    .asb-carousel-prev { left: 8px; }
    .asb-carousel-next { right: 8px; }
}
@media (max-width: 480px) {
    .asb-hero-simple { height: min(68svh, 540px); min-height: 420px; }
    .asb-simple-title { font-size: clamp(44px, 14vw, 54px); }
    .asb-simple-subtitle { width: 88vw; font-size: 16px; line-height: 1.25; white-space: normal; }
    .asb-simple-subtitle-layer { transform: translate(-50%, calc(-50% + 56px)); }
    .asb-album-carousel { height: min(112vw, 460px); min-height: 330px; }
    .asb-album-card { width: min(86vw, 390px); height: min(86vw, 390px); }
    .asb-carousel-nav { width: 38px; height: 58px; font-size: 24px; opacity: .5; }
}

@media (hover: none) and (pointer: coarse) {
    .asb-album-carousel .asb-carousel-nav { opacity: .5; }
    .asb-album-card.is-active .asb-play-icon { opacity: .92; }
}

@media (prefers-reduced-motion: reduce) {
    .asb-home-title .asb-char,
    .asb-home-subtitle .asb-char,
    .asb-smoke,
    .asb-album-card,
    .asb-hero-simple .asb-hero-bg,
    .asb-simple-title,
    .asb-simple-subtitle { animation: none !important; transition: none !important; }
    .asb-home-title .asb-char,
    .asb-home-subtitle .asb-char { opacity: 1 !important; transform: none !important; }
    .asb-hero-simple .asb-hero-bg,
    .asb-simple-title,
    .asb-simple-subtitle { opacity: 1 !important; }
}
