.sah-carousel{
    --sah-image-height:250px;
    --sah-gap:14px;
    --sah-visible-desktop:4;
    --sah-visible-tablet-landscape:3;
    --sah-visible-tablet-portrait:2;
    --sah-visible-mobile:1;
    --sah-visible:var(--sah-visible-desktop);
    --sah-card-basis:25%;
    --sah-expand-add:4%;
    position:relative;
    width:100%;
    padding:0 46px;
    box-sizing:border-box;
}
.sah-carousel *{box-sizing:border-box;}
.sah-carousel[data-visible="1"]{--sah-visible-desktop:1;--sah-card-basis:100%;}
.sah-carousel[data-visible="2"]{--sah-visible-desktop:2;--sah-card-basis:50%;}
.sah-carousel[data-visible="3"]{--sah-visible-desktop:3;--sah-card-basis:33.3333%;}
.sah-carousel[data-visible="4"]{--sah-visible-desktop:4;--sah-card-basis:25%;}
.sah-carousel[data-visible="5"]{--sah-visible-desktop:5;--sah-card-basis:20%;}
.sah-carousel[data-visible="6"]{--sah-visible-desktop:6;--sah-card-basis:16.6667%;}
.sah-carousel[data-visible="7"]{--sah-visible-desktop:7;--sah-card-basis:14.2857%;}
.sah-carousel[data-visible="8"]{--sah-visible-desktop:8;--sah-card-basis:12.5%;}

.sah-viewport{
    position:relative;
    width:100%;
    padding:1px;
    overflow:hidden;
}
.sah-carousel.sah-is-hovering .sah-viewport{overflow:visible;}
.sah-track{
    display:flex;
    gap:var(--sah-gap);
    align-items:stretch;
    transition:transform .45s ease;
    will-change:transform;
    touch-action:pan-y;
}
.sah-card{
    --sah-hover-shift:0px;
    position:relative;
    min-width:0;
    display:flex;
    flex-direction:column;
    min-height:520px;
    flex:0 0 calc(var(--sah-card-basis) - var(--sah-gap));
    overflow:hidden;
    background:#201b1d;
    border:1px solid #555;
    border-radius:18px;
    transition:flex-basis .42s ease,border-color .42s ease,box-shadow .42s ease;
    backface-visibility:hidden;
}
.sah-card::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:4;
    border:0;
    opacity:0;
    pointer-events:none;
    transition:opacity .35s ease;
}
.sah-image-link{
    display:block;
    height:var(--sah-image-height);
    min-height:var(--sah-image-height);
    flex:0 0 var(--sah-image-height);
    overflow:hidden;
    text-decoration:none;
}
.sah-image{
    height:100%;
    background-size:cover;
    background-position:center;
    transition:transform .55s ease,filter .42s ease;
}
.sah-content{
    position:relative;
    flex:1 0 auto;
    min-height:0;
    padding:34px 32px 30px;
    color:#fff;
    background:#211d1f;
    transition:padding .42s ease;
}
.sah-content h3{
    margin:0 0 24px;
    color:#fff;
    font-family:Georgia,'Times New Roman',serif;
    font-size:clamp(20px,1.45vw,24px);
    font-weight:500;
    line-height:1.08;
    overflow-wrap:anywhere;
}
.sah-content h3 a{color:inherit;text-decoration:none;}
.sah-content h3 a:hover,.sah-content h3 a:focus-visible{color:#d7ef67;}
.sah-subtitle,.sah-description{
    max-width:420px;
    margin:0 0 18px;
    color:#f4f4f4;
    font-size:13px;
    line-height:1.45;
    overflow-wrap:anywhere;
}
.sah-description{
    max-height:0;
    overflow:hidden;
    opacity:0;
    transform:translateY(12px);
    transition:opacity .35s ease,max-height .42s ease,transform .42s ease;
}
.sah-link{
    display:inline-flex;
    align-items:center;
    gap:6px;
    margin-top:6px;
    color:#cfcfcf;
    font-size:15px;
    font-weight:600;
    text-decoration:none;
    transition:gap .3s ease,color .3s ease;
}
.sah-link:hover,.sah-link:focus-visible{gap:11px;color:#d7ef67;}

@media (hover:hover) and (pointer:fine){
    .sah-card:hover{
        flex-basis:calc(var(--sah-card-basis) - var(--sah-gap) + var(--sah-expand-add));
        z-index:8;
        border-color:#a4b129;
        box-shadow:0 16px 36px rgba(0,0,0,.24);
    }
    .sah-card:hover::before{opacity:1;}
    .sah-card:hover .sah-image{transform:scale(1.035);filter:brightness(.96);}
    .sah-card:hover .sah-content{padding-right:54px;}
    .sah-card:hover .sah-subtitle,.sah-card:hover .sah-description{max-width:100%;}
    .sah-card:hover .sah-description{max-height:190px;opacity:1;transform:translateY(0);}
    .sah-card:hover .sah-link{color:#a4b129;}
}

.sah-arrow{
    position:absolute;
    top:50%;
    z-index:30;
    display:block !important;
    width:38px !important;
    height:38px !important;
    min-width:38px !important;
    min-height:38px !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:7px;
    color:transparent !important;
    background:#9fbd3b;
    font-size:0 !important;
    line-height:0 !important;
    cursor:pointer;
    appearance:none;
    -webkit-appearance:none;
    transform:translateY(-50%);
    transition:opacity .25s ease,background .25s ease,transform .25s ease;
}
.sah-arrow::before{
    content:"";
    position:absolute;
    top:50%;
    left:50%;
    width:10px;
    height:10px;
    border-top:2px solid #fff;
    border-right:2px solid #fff;
}
.sah-prev::before{transform:translate(-42%,-50%) rotate(-135deg);}
.sah-next::before{transform:translate(-58%,-50%) rotate(45deg);}
.sah-arrow:hover,.sah-arrow:focus-visible{background:#a4b129;transform:translateY(-50%) scale(1.05);}
.sah-arrow:focus-visible{outline:3px solid rgba(164,177,41,.38);outline-offset:3px;}
.sah-arrow:disabled{opacity:.35;cursor:not-allowed;}
.sah-prev{left:4px;}
.sah-next{right:4px;}
.sah-no-slider .sah-arrow{display:none !important;}
.sah-carousel.sah-no-slider{padding-right:0;padding-left:0;}

/* Tablet horizontal: 768 a 1366 px, con tres tarjetas por defecto. */
@media (min-width:768px) and (max-width:1366px) and (min-height:500px) and (orientation:landscape){
    .sah-carousel[data-visible-tablet-landscape="1"]{--sah-card-basis:100%;}
    .sah-carousel[data-visible-tablet-landscape="2"]{--sah-card-basis:50%;}
    .sah-carousel[data-visible-tablet-landscape="3"]{--sah-card-basis:33.3333%;}
    .sah-carousel[data-visible-tablet-landscape="4"]{--sah-card-basis:25%;}
    .sah-carousel[data-visible-tablet-landscape="5"]{--sah-card-basis:20%;}
    .sah-carousel[data-visible-tablet-landscape="6"]{--sah-card-basis:16.6667%;}
    .sah-carousel[data-visible-tablet-landscape="7"]{--sah-card-basis:14.2857%;}
    .sah-carousel[data-visible-tablet-landscape="8"]{--sah-card-basis:12.5%;}
    .sah-carousel{
        --sah-visible:var(--sah-visible-tablet-landscape);
        --sah-expand-add:2%;
        --sah-gap:14px;
        padding:0 44px;
    }
    .sah-card{min-height:470px;border-radius:16px;}
    .sah-content{padding:27px 24px 25px;}
    .sah-content h3{margin-bottom:19px;font-size:22px;}
    .sah-subtitle,.sah-description{margin-bottom:14px;font-size:12.5px;line-height:1.42;}
    .sah-card:hover .sah-content{padding-right:34px;}
    .sah-arrow{width:42px !important;height:42px !important;min-width:42px !important;min-height:42px !important;}
    .sah-prev{left:0;}
    .sah-next{right:0;}
}

/* Tablet vertical: 600 a 1024 px, con dos tarjetas por defecto. */
@media (min-width:600px) and (max-width:1024px) and (orientation:portrait){
    .sah-carousel[data-visible-tablet-portrait="1"]{--sah-card-basis:100%;}
    .sah-carousel[data-visible-tablet-portrait="2"]{--sah-card-basis:50%;}
    .sah-carousel[data-visible-tablet-portrait="3"]{--sah-card-basis:33.3333%;}
    .sah-carousel[data-visible-tablet-portrait="4"]{--sah-card-basis:25%;}
    .sah-carousel[data-visible-tablet-portrait="5"]{--sah-card-basis:20%;}
    .sah-carousel[data-visible-tablet-portrait="6"]{--sah-card-basis:16.6667%;}
    .sah-carousel[data-visible-tablet-portrait="7"]{--sah-card-basis:14.2857%;}
    .sah-carousel[data-visible-tablet-portrait="8"]{--sah-card-basis:12.5%;}
    .sah-carousel{
        --sah-visible:var(--sah-visible-tablet-portrait);
        --sah-expand-add:2%;
        --sah-gap:14px;
        padding:0 42px;
    }
    .sah-card{min-height:520px;border-radius:16px;}
    .sah-content{padding:28px 25px 26px;}
    .sah-content h3{margin-bottom:20px;font-size:22px;}
    .sah-subtitle,.sah-description{margin-bottom:15px;font-size:13px;}
    .sah-card:hover .sah-content{padding-right:34px;}
    .sah-arrow{width:42px !important;height:42px !important;min-width:42px !important;min-height:42px !important;}
    .sah-prev{left:0;}
    .sah-next{right:0;}
}

/* En tablets táctiles el texto no depende de un hover inexistente. */
@media (hover:none),(pointer:coarse){
    .sah-carousel.sah-is-hovering .sah-viewport{overflow:hidden;}
    .sah-description{max-height:190px;opacity:1;transform:none;}
    .sah-card{transition:border-color .25s ease,box-shadow .25s ease;}
    .sah-card:active{border-color:#a4b129;box-shadow:0 10px 24px rgba(0,0,0,.2);}
    .sah-image{transition:none;}
}

/* Móvil vertical y pantallas compactas. */
@media (max-width:599px){
    .sah-carousel[data-visible-mobile="1"]{--sah-card-basis:100%;}
    .sah-carousel[data-visible-mobile="2"]{--sah-card-basis:50%;}
    .sah-carousel[data-visible-mobile="3"]{--sah-card-basis:33.3333%;}
    .sah-carousel[data-visible-mobile="4"]{--sah-card-basis:25%;}
    .sah-carousel[data-visible-mobile="5"]{--sah-card-basis:20%;}
    .sah-carousel[data-visible-mobile="6"]{--sah-card-basis:16.6667%;}
    .sah-carousel[data-visible-mobile="7"]{--sah-card-basis:14.2857%;}
    .sah-carousel[data-visible-mobile="8"]{--sah-card-basis:12.5%;}
    .sah-carousel{
        --sah-visible:var(--sah-visible-mobile);
        --sah-expand-add:0%;
        --sah-gap:10px;
        padding:0 32px;
    }
    .sah-card{min-height:540px;border-radius:15px;}
    .sah-image{background-position:center top;}
    .sah-content{padding:26px 22px 24px;}
    .sah-content h3{margin-bottom:18px;font-size:21px;}
    .sah-subtitle,.sah-description{margin-bottom:14px;font-size:12.5px;line-height:1.45;}
    .sah-description{max-height:190px;opacity:1;transform:none;}
    .sah-arrow{width:36px !important;height:36px !important;min-width:36px !important;min-height:36px !important;}
    .sah-prev{left:-2px;}
    .sah-next{right:-2px;}
}

@media (min-width:600px) and (max-width:767px) and (min-height:500px) and (orientation:landscape),
       (max-width:1024px) and (max-height:499px) and (orientation:landscape){
    .sah-carousel[data-visible-mobile="1"]{--sah-card-basis:100%;}
    .sah-carousel[data-visible-mobile="2"]{--sah-card-basis:50%;}
    .sah-carousel[data-visible-mobile="3"]{--sah-card-basis:33.3333%;}
    .sah-carousel[data-visible-mobile="4"]{--sah-card-basis:25%;}
    .sah-carousel[data-visible-mobile="5"]{--sah-card-basis:20%;}
    .sah-carousel[data-visible-mobile="6"]{--sah-card-basis:16.6667%;}
    .sah-carousel[data-visible-mobile="7"]{--sah-card-basis:14.2857%;}
    .sah-carousel[data-visible-mobile="8"]{--sah-card-basis:12.5%;}
}

/* Tablets pequeñas en horizontal mantienen una sola tarjeta legible. */
@media (min-width:600px) and (max-width:767px) and (min-height:500px) and (orientation:landscape){
    .sah-carousel{--sah-visible:var(--sah-visible-mobile);--sah-expand-add:0%;padding:0 38px;}
    .sah-card{min-height:460px;border-radius:15px;}
    .sah-content{padding:23px 22px 21px;}
    .sah-content h3{margin-bottom:15px;font-size:21px;}
    .sah-description{max-height:160px;opacity:1;transform:none;}
}

/* Teléfonos en horizontal: evita que se cargue el diseño de tablet. */
@media (max-width:1024px) and (max-height:499px) and (orientation:landscape){
    .sah-carousel{--sah-visible:var(--sah-visible-mobile);--sah-expand-add:0%;padding:0 36px;}
    .sah-card{min-height:390px;border-radius:14px;}
    .sah-content{padding:20px 22px 18px;}
    .sah-content h3{margin-bottom:12px;font-size:20px;}
    .sah-subtitle,.sah-description{margin-bottom:10px;font-size:12px;line-height:1.35;}
    .sah-description{max-height:130px;opacity:1;transform:none;}
    .sah-arrow{width:36px !important;height:36px !important;min-width:36px !important;min-height:36px !important;}
}

@media (max-width:380px){
    .sah-carousel{padding:0 28px;}
    .sah-card{min-height:520px;}
    .sah-content{padding:23px 18px 21px;}
    .sah-content h3{font-size:20px;}
}

@media (prefers-reduced-motion:reduce){
    .sah-track,.sah-card,.sah-image,.sah-description,.sah-arrow,.sah-link{transition:none !important;}
}
