/* Springsan Stage 01 — V1.2 Banner layout.
   Safe for later inner pages: selectors are limited to .spr-hero.
   The image and its HTML text are separate layers; no negative translate offsets.
   Bootstrap's .container and 12-column grid remain authoritative. */
.spr-site .spr-hero {
    --spr-hero-height: clamp(37rem, 47.5vw, 51rem);
    position: relative;
    isolation: isolate;
    background: #dedbd4;
}
.spr-site .spr-hero__swiper,
.spr-site .spr-hero__swiper > .swiper-wrapper,
.spr-site .spr-hero__slide {
    width: 100%;
    height: var(--spr-hero-height);
    min-height: 0;
}
.spr-site .spr-hero__slide {
    position: relative;
    overflow: hidden;
}
.spr-site .spr-hero__picture,
.spr-site .spr-hero__image {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
}
.spr-site .spr-hero__image {
    object-fit: cover;
    object-position: center center;
}
.spr-site .spr-hero__shade {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: linear-gradient(90deg, transparent 39%, rgba(252,250,246,.025) 65%, transparent 97%);
}
/* Key fix: the copy is ALWAYS centered against the banner rectangle itself.
   It cannot be pushed behind the sticky Header by row height or transforms. */
.spr-site .spr-hero__container {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    width: 100%;
    height: 100%;
    padding-top: clamp(1.75rem, 2vw, 2rem);
    padding-bottom: clamp(5.25rem, 7vw, 8rem);
    pointer-events: none;
}
.spr-site .spr-hero__row {
    width: 100%;
    min-height: 0;
    margin: 0;
    align-items: center;
    justify-content: flex-end;
}
.spr-site .spr-hero__row.fl{
    justify-content: flex-start;
}
.spr-site .spr-hero__content {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    text-align: left;
    padding-left: 0;
    padding-right: clamp(1.25rem, 8vw, 9rem);
    padding-top: 0;
    padding-bottom: 0;
    margin: 0;
    transform: none;
}
.spr-site .spr-hero__copy {
    display: block;
    width: 100%;
    max-width: 32.75rem;
    min-width: 0;
    margin: 0;
    transform: none;
    color: #fff;
    pointer-events: auto;
    padding: 2rem ;
    background-color: rgba(0, 0, 0, .3);

}
.spr-site .spr-hero__title {
    color: #fff;
    font-family: var(--spr-font, Arial, sans-serif);
    font-size: clamp(1.75rem, 1.78vw, 2.1rem);
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -.018em;
    margin: 0 0 clamp(1.45rem, 2vw, 2rem);
    text-wrap: pretty;
    overflow-wrap: break-word;
}
.spr-site .spr-hero__title-line { display: block; }
.spr-site .spr-hero__description {
    max-width: 29.5rem;
    margin: 0 0 1.55rem auto;
    color: #fff;
    font: 400 clamp(.89rem, .91vw, 1rem)/1.63 var(--spr-font, Arial, sans-serif);
}
.spr-site .spr-hero__description ul li{
    display: block;
}
.spr-site .spr-hero__cta {
    display: inline-flex;
    min-height: 3.05rem;
    align-items: center;
    justify-content: center;
    gap: .75rem;
    padding: .83rem 1.3rem;
    background: #fff;
    color: #111;
    border: 1px solid #fff;
    box-shadow: 0 2px 15px rgba(0,0,0,.045);
    text-decoration: none;
    font: 500 .9rem/1.35 var(--spr-font, Arial, sans-serif);
    transition: background-color .2s, color .2s, border-color .2s;
}
.spr-site .spr-hero__cta:hover,
.spr-site .spr-hero__cta:focus-visible {
    background: var(--spr-primary, #159bcb);
    color: #fff;
    border-color: var(--spr-primary, #159bcb);
}
.spr-site .spr-hero__pagination {
    position: absolute;
    z-index: 4;
    width: auto !important;
    left: auto !important;
    right: clamp(1rem, 4.5vw, 4.5rem) !important;
    top: 50% !important;
    bottom: auto !important;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    align-items: center;
    transform: translateY(-50%);
}
.spr-site .spr-hero__pagination .swiper-pagination-bullet {
    width: .56rem;
    height: .56rem;
    margin: 0 !important;
    background: transparent;
    border: 1px solid #fff;
    border-radius: 50%;
    box-shadow: 0 0 0 1px rgba(0,0,0,.1);
    opacity: 1;
}
.spr-site .spr-hero__pagination .swiper-pagination-bullet-active {
    height: 1.08rem;
    border-radius: .7rem;
    background: #fff;
}
@media (max-width:1199.98px) {
    .spr-site .spr-hero { --spr-hero-height: clamp(34rem, 50vw, 43rem); }
    .spr-site .spr-hero__content { padding-right: clamp(.75rem, 4vw, 3rem); }
    .spr-site .spr-hero__copy { max-width: 29rem; }
    .spr-site .spr-hero__title { font-size: clamp(1.65rem, 2.45vw, 2rem); }
}
@media (max-width:991.98px) {
    .spr-site .spr-hero { --spr-hero-height: 39rem; }
    .spr-site .spr-hero__shade {
        background: linear-gradient(90deg, transparent 30%, rgba(251,250,246,.31) 58%, rgba(251,250,246,.58) 100%);
    }
    .spr-site .spr-hero__content { padding-right: clamp(.75rem, 3.5vw, 2rem); }
    .spr-site .spr-hero__title { font-size: clamp(1.65rem, 3.2vw, 2rem); }
    .spr-site .spr-hero__description { font-size: .88rem; }
}
@media (max-width:767.98px) {
    .spr-site .spr-hero { --spr-hero-height: 43rem; }
    .spr-site .spr-hero__image { object-position: 43% center; }
    .spr-site .spr-hero__shade {
        background: linear-gradient(0deg, rgba(246,243,238,.96) 0%, rgba(246,243,238,.85) 27%, rgba(246,243,238,.13) 68%, transparent 91%);
    }
    .spr-site .spr-hero__container {
        align-items: flex-end;
        padding-top: 2rem;
        padding-bottom: 4.1rem;
    }
    .spr-site .spr-hero__row { align-items: flex-end; }
    .spr-site .spr-hero__content {
        justify-content: center;
        text-align: center;
        padding: 0 calc(var(--bs-gutter-x, 1.5rem) * .5);
    }
    .spr-site .spr-hero__copy { max-width: 36rem; }
    .spr-site .spr-hero__title { font-size: clamp(1.7rem, 4.8vw, 2.1rem); margin-bottom: .85rem; }
    .spr-site .spr-hero__title-line { display: inline; }
    .spr-site .spr-hero__description { max-width: 34rem; margin: .75rem auto 1.2rem; }
    .spr-site .spr-hero__pagination {
        top: auto !important;
        right: 50% !important;
        bottom: 1.35rem !important;
        flex-direction: row;
        gap: .65rem;
        transform: translateX(50%);
    }
    .spr-site .spr-hero__pagination .swiper-pagination-bullet-active { width: 1.1rem; height: .56rem; }
}
@media (max-width:575.98px) {
    .spr-site .spr-hero { --spr-hero-height: 40rem; }
    .spr-site .spr-hero__image { object-position: 38% center; }
    .spr-site .spr-hero__container { padding-top: 1.5rem; padding-bottom: 3.9rem; }
    .spr-site .spr-hero__title { font-size: clamp(1.55rem, 6.1vw, 1.94rem); }
    .spr-site .spr-hero__description { font-size: .83rem; line-height: 1.65; }
    .spr-site .spr-hero__cta { min-height: 2.9rem; font-size: .81rem; }
}
@media (prefers-reduced-motion: reduce) { .spr-site .spr-hero__cta { transition: none; } }
