/* =========================================================
   COMMON / GLOBAL BANNER BASE
   ALL COLORS COME FROM THEME VARIABLES
========================================================= */

.banner{
    position:relative;
    overflow:hidden;
    min-height:0;
    background:var(--background);
    color:var(--text-dark);
    cursor:pointer;
    border-top:1px solid var(--border-color);
}

.banner img{
    max-width:1200px;
    margin: auto;
}

.banner-edit{
    position:absolute;
    right:13px;
    top:13px;
    z-index:50;
    background:var(--white);
    color:var(--text-dark);
    border:1px solid var(--border-color);
    border-radius:var(--radius);
    padding:8px 10px;
    opacity:0;
    transition:var(--transition-fast);
    box-shadow:var(--shadow-sm);
    font:700 11px Inter,Arial,sans-serif;
}

.banner:hover .banner-edit{
    opacity:1;
}

.banner-image-placeholder{
    width:100%;
    height:100%;
    min-height:180px;
    background:var(--extra-light);
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--text-muted);
    font:600 11px Inter,Arial,sans-serif;
}

.hso-store-banner__picture{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    display:block;
    z-index:0;
}

.hso-store-banner__image{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}

.hso-store-banners .banner picture{
    display:block;
}

.hso-store-banners .banner picture img{
    display:block;
}

.hso-store-banners .banner a{
    cursor:pointer;
}

.hso-store-banners .banner-edit{
    font-family:Inter,Arial,sans-serif;
}

@media(max-width:768px){

    .hso-store-banners{
        gap:16px;
    }

    .hso-store-banners .banner-edit,
    .banner-edit{
        opacity:1;
    }

    .banner-image-placeholder{
        min-height:220px;
    }
}


/* =========================================================
   BANNER 01 — EDITORIAL DESIGN
========================================================= */

.banner.editorial-design{
    min-height:650px;
    padding:90px 20px;
    overflow:hidden;

    background:
        radial-gradient(
            circle at 15% 20%,
            rgba(var(--primary-rgb),.10),
            transparent 32%
        ),
        radial-gradient(
            circle at 85% 80%,
            rgba(var(--primary-rgb),.07),
            transparent 30%
        ),
        linear-gradient(
            135deg,
            var(--background) 0%,
            var(--extra-light) 45%,
            var(--bg-gradient-end) 100%
        );

    color:var(--text-dark);
}

.banner.editorial-design .editorial-inner{
    width:100%;
    max-width:1180px;
    min-height:650px;
    margin:0 auto;

    display:grid;
    grid-template-columns:1.05fr .95fr;
    gap:80px;
    align-items:center;
}

.banner.editorial-design .editorial-image{
    position:relative;
    width:100%;
    height:650px;
    overflow:hidden;
    background:var(--extra-light);
}

.banner.editorial-design .editorial-image .banner-picture{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
}

.banner.editorial-design .editorial-image .banner-real-image{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    transition:transform .8s cubic-bezier(.2,.65,.3,1);
}

.banner.editorial-design .editorial-image:hover .banner-real-image{
    transform:scale(1.035);
}

.banner.editorial-design .editorial-image-label{
    position:absolute;
    left:25px;
    bottom:25px;

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

    min-height:36px;
    padding:10px 15px;

    color:var(--white);
    background:var(--overlay);

    font-size:10px;
    font-weight:600;
    letter-spacing:2px;
    line-height:1;

    backdrop-filter:blur(5px);
    -webkit-backdrop-filter:blur(5px);
}

.banner.editorial-design .editorial-content{
    width:100%;
    padding-right:30px;
}

.banner.editorial-design .editorial-eyebrow{
    display:block;
    color:var(--primary-color);
    font-size:11px;
    font-weight:700;
    letter-spacing:3px;
    line-height:1.5;
    text-transform:uppercase;
}

.banner.editorial-design .editorial-title{
    margin:20px 0 25px;
    font-size:clamp(50px,6vw,82px);
    line-height:.95;
    letter-spacing:-4px;
    font-weight:400;
    color:var(--text-dark);
}

.banner.editorial-design .editorial-description{
    max-width:470px;
    margin:0;
    color:var(--text-light);
    font-size:15px;
    line-height:1.9;
}

.banner.editorial-design .editorial-line{
    width:100%;
    height:1px;
    margin:35px 0;
    background:var(--border-color);
}

.banner.editorial-design .editorial-meta{
    display:flex;
    flex-direction:column;
    gap:10px;
    margin-bottom:35px;
}

.banner.editorial-design .editorial-meta span{
    display:block;
    color:var(--text-muted);
    font-size:11px;
    font-weight:500;
    letter-spacing:1px;
    line-height:1.5;

    transition:
        color .25s ease,
        transform .25s ease;
}

.banner.editorial-design .editorial-meta span:hover{
    color:var(--primary-color);
    transform:translateX(5px);
}

.banner.editorial-design .editorial-link{
    display:inline-flex;
    align-items:center;
    gap:20px;
    width:max-content;

    color:var(--text-dark);
    font-size:13px;
    font-weight:700;
    line-height:1;
    text-decoration:none;

    transition:
        color .25s ease,
        gap .3s ease;
}

.banner.editorial-design .editorial-link span{
    display:inline-flex;
    align-items:center;
    justify-content:center;

    color:var(--primary-color);
    font-size:20px;
    line-height:1;

    transition:transform .3s ease;
}

.banner.editorial-design .editorial-link:hover{
    color:var(--primary-color);
    gap:26px;
}

.banner.editorial-design .editorial-link:hover span{
    transform:translate(4px,-4px);
}

.banner.editorial-design .editorial-link-secondary{
    margin-left:24px;
}

.banner.editorial-design .banner-edit{
    top:15px;
    right:15px;
}

/* =========================================================
   EDITORIAL DESIGN — RESPONSIVE 992px
========================================================= */

@media (max-width: 992px){

    .banner.editorial-design{
        min-height:auto;
        padding:60px 20px;
    }

    .banner.editorial-design .editorial-inner{
        max-width:850px;
        min-height:auto;
        grid-template-columns:1fr 1fr;
        gap:40px;
    }

    .banner.editorial-design .editorial-image{
        height:520px;
    }

    .banner.editorial-design .editorial-content{
        padding-right:0;
    }

    .banner.editorial-design .editorial-title{
        margin:16px 0 20px;
        font-size:clamp(44px,6vw,64px);
        letter-spacing:-3px;
    }

    .banner.editorial-design .editorial-description{
        max-width:100%;
        font-size:14px;
        line-height:1.8;
    }

    .banner.editorial-design .editorial-line{
        margin:28px 0;
    }

    .banner.editorial-design .editorial-meta{
        margin-bottom:28px;
    }

}


/* =========================================================
   EDITORIAL DESIGN — RESPONSIVE 768px
========================================================= */

@media (max-width: 768px){

    .banner.editorial-design{
        min-height:auto;
        padding:45px 18px 50px;
    }

    .banner.editorial-design .editorial-inner{
        width:100%;
        max-width:620px;
        min-height:auto;

        grid-template-columns:1fr;
        gap:35px;
        align-items:stretch;
    }

    .banner.editorial-design .editorial-image{
        width:100%;
        height:480px;
        order:1;
    }

    .banner.editorial-design .editorial-content{
        width:100%;
        padding:0;
        order:2;
    }

    .banner.editorial-design .editorial-eyebrow{
        font-size:10px;
        letter-spacing:2.5px;
    }

    .banner.editorial-design .editorial-title{
        margin:14px 0 18px;
        font-size:clamp(42px,8vw,58px);
        line-height:.95;
        letter-spacing:-2.5px;
    }

    .banner.editorial-design .editorial-description{
        max-width:560px;
        font-size:14px;
        line-height:1.8;
    }

    .banner.editorial-design .editorial-line{
        margin:25px 0;
    }

    .banner.editorial-design .editorial-meta{
        gap:8px;
        margin-bottom:25px;
    }

    .banner.editorial-design .editorial-link{
        gap:16px;
        font-size:12px;
    }

    .banner.editorial-design .editorial-link-secondary{
        margin-left:18px;
    }

}


/* =========================================================
   EDITORIAL DESIGN — RESPONSIVE 480px
========================================================= */

@media (max-width: 480px){

    .banner.editorial-design{
        padding:30px 14px 35px;
    }

    .banner.editorial-design .editorial-inner{
        width:100%;
        gap:25px;
    }

    .banner.editorial-design .editorial-image{
        height:360px;
    }

    .banner.editorial-design .editorial-image-label{
        left:15px;
        bottom:15px;

        min-height:32px;
        padding:8px 11px;

        font-size:8px;
        letter-spacing:1.5px;
    }

    .banner.editorial-design .editorial-content{
        padding:0;
    }

    .banner.editorial-design .editorial-eyebrow{
        font-size:9px;
        letter-spacing:2px;
    }

    .banner.editorial-design .editorial-title{
        margin:12px 0 16px;

        font-size:clamp(36px,11vw,48px);
        line-height:.96;
        letter-spacing:-2px;
    }

    .banner.editorial-design .editorial-description{
        font-size:13px;
        line-height:1.75;
    }

    .banner.editorial-design .editorial-line{
        margin:22px 0;
    }

    .banner.editorial-design .editorial-meta{
        gap:7px;
        margin-bottom:22px;
    }

    .banner.editorial-design .editorial-meta span{
        font-size:10px;
        letter-spacing:.8px;
    }

    .banner.editorial-design .editorial-link{
        gap:12px;
        font-size:11px;
    }

    .banner.editorial-design .editorial-link span{
        font-size:17px;
    }

    .banner.editorial-design .editorial-link-secondary{
        margin-left:12px;
    }

    .banner.editorial-design .banner-edit{
        top:10px;
        right:10px;
    }

}
/* =========================================================
   HERO DESIGN 1
========================================================= */

.hero-section.hero-design-1{
    position:relative;
    width:100%;
    min-height:680px;

    display:flex;
    align-items:center;

    overflow:hidden;

    background:
        radial-gradient(
            circle at 85% 15%,
            rgba(var(--primary-rgb),.08),
            transparent 32%
        ),
        linear-gradient(
            135deg,
            var(--background) 0%,
            var(--white) 100%
        );

    isolation:isolate;
}

.hero-section.hero-design-1::before{
    content:"";
    position:absolute;
    width:420px;
    height:420px;
    right:-180px;
    bottom:-180px;
    border-radius:50%;

    background:var(--extra-light);

    z-index:-2;
}

.hero-section.hero-design-1::after{
    content:"";
    position:absolute;
    width:220px;
    height:220px;
    left:-120px;
    top:-100px;
    border-radius:50%;

    border:1px solid rgba(var(--primary-rgb),.10);

    z-index:-1;
}

.hero-design-1 .hero-container{
    width:100%;
    max-width:var(--max-width);
    margin:0 auto;
    padding:80px 30px;

    display:grid;
    grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
    align-items:center;
    gap:70px;
}

.hero-design-1 .hero-content{
    position:relative;
    z-index:5;
    max-width:590px;
}

.hero-design-1 .hero-eyebrow{
    display:inline-flex;
    align-items:center;
    gap:10px;
    margin-bottom:20px;
    padding:8px 14px;

    border:1px solid rgba(var(--primary-rgb),.16);
    border-radius:50px;

    background:rgba(var(--primary-rgb),.07);
    color:var(--primary-color);

    font-size:11px;
    font-weight:800;
    letter-spacing:2px;
    line-height:1;
    text-transform:uppercase;
}

.hero-design-1 .hero-eyebrow::before{
    content:"";
    width:7px;
    height:7px;
    flex:0 0 7px;
    border-radius:50%;

    background:var(--primary-color);

    box-shadow:
        0 0 0 4px rgba(var(--primary-rgb),.10);
}

.hero-design-1 .hero-content h1{
    margin:0;
    color:var(--text-dark);
    font-size:clamp(48px,5.2vw,76px);
    font-weight:500;
    line-height:1.02;
    letter-spacing:-3px;
}

.hero-design-1 .hero-content h1 strong{
    display:block;
    color:var(--primary-color);
    font-weight:800;
}

.hero-design-1 .hero-content p{
    max-width:540px;
    margin:25px 0 0;

    color:var(--text-light);

    font-size:16px;
    line-height:1.8;
}

.hero-design-1 .hero-content p+p{
    margin-top:8px;
}

.hero-design-1 .hero-actions{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:13px;
    margin-top:32px;
}

.hero-design-1 .hero-btn{
    min-height:52px;

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

    padding:0 25px;

    border-radius:var(--radius);
    text-decoration:none;

    font-size:13px;
    font-weight:700;
    letter-spacing:.2px;

    transition:
        transform .3s ease,
        background .3s ease,
        color .3s ease,
        border-color .3s ease,
        box-shadow .3s ease;
}

.hero-design-1 .hero-btn-primary{
    color:var(--white);
    background:var(--primary-color);
    border:1px solid var(--primary-color);

    box-shadow:
        0 8px 20px rgba(var(--primary-rgb),.18);
}

.hero-design-1 .hero-btn-primary:hover{
    color:var(--white);
    background:var(--primary-hover);
    border-color:var(--primary-hover);

    transform:translateY(-3px);

    box-shadow:
        0 13px 28px rgba(var(--primary-rgb),.25);
}

.hero-design-1 .hero-btn-outline{
    color:var(--text-dark);
    background:var(--white);
    border:1px solid var(--border-color);
}

.hero-design-1 .hero-btn-outline:hover{
    color:var(--primary-color);
    border-color:var(--primary-color);

    transform:translateY(-3px);

    box-shadow:var(--shadow-sm);
}

.hero-design-1 .hero-features{
    display:flex;
    align-items:stretch;

    margin-top:38px;
    max-width:530px;

    border-top:1px solid var(--border-color);
    border-bottom:1px solid var(--border-color);
}

.hero-design-1 .hero-features>div{
    flex:1;
    min-width:0;

    padding:17px 18px;

    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:4px;

    border-right:1px solid var(--border-color);
}

.hero-design-1 .hero-features>div:first-child{
    padding-left:0;
}

.hero-design-1 .hero-features>div:last-child{
    border-right:0;
}

.hero-design-1 .hero-features strong{
    display:block;
    color:var(--text-dark);
    font-size:20px;
    font-weight:800;
    line-height:1.1;
}

.hero-design-1 .hero-features span{
    display:block;
    color:var(--text-muted);
    font-size:11px;
    font-weight:600;
    letter-spacing:.8px;
    text-transform:uppercase;
}

.hero-design-1 .hero-image{
    position:relative;
    width:100%;
    min-height:570px;

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

    overflow:visible;
}

.hero-design-1 .hero-image::before{
    content:"";
    position:absolute;
    width:88%;
    height:90%;
    right:2%;
    top:5%;

    border-radius:120px 30px 120px 30px;

    background:var(--extra-light);

    transform:rotate(4deg);

    z-index:-1;

    transition:transform .6s ease;
}

.hero-design-1 .hero-image:hover::before{
    transform:rotate(1deg) scale(1.02);
}

.hero-design-1 .hero-image img{
    position:relative;

    width:100%;
    max-width:540px;
    height:570px;

    display:block;

    object-fit:cover;
    object-position:center;

    border-radius:120px 24px 120px 24px;

    box-shadow:var(--shadow-lg);

    transition:
        transform .6s ease,
        box-shadow .6s ease;
}

.hero-design-1 .hero-image:hover img{
    transform:translateY(-7px);

    box-shadow:
        var(--shadow-lg);
}

.hero-design-1 .hero-floating-card{
    position:absolute;
    left:-35px;
    bottom:65px;

    width:210px;
    min-height:125px;
    padding:20px;

    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:7px;

    background:var(--white);
    border:1px solid var(--border-color);
    border-radius:var(--radius-md);

    box-shadow:var(--shadow);

    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);

    z-index:10;

    animation:heroFloatCard 4s ease-in-out infinite;
}

@keyframes heroFloatCard{

    0%,100%{
        transform:translateY(0);
    }

    50%{
        transform:translateY(-8px);
    }
}

.hero-design-1 .hero-floating-card span{
    color:var(--primary-color);
    font-size:9px;
    font-weight:800;
    letter-spacing:2px;
    text-transform:uppercase;
}

.hero-design-1 .hero-floating-card strong{
    color:var(--text-dark);
    font-size:18px;
    font-weight:800;
    line-height:1.25;
}

.hero-design-1 .hero-floating-card a{
    width:max-content;

    display:inline-flex;
    align-items:center;

    color:var(--primary-color);

    text-decoration:none;

    font-size:11px;
    font-weight:800;

    transition:
        color .25s ease,
        transform .25s ease;
}

.hero-design-1 .hero-floating-card a:hover{
    color:var(--primary-hover);
    transform:translateX(4px);
}

.hero-design-1 .banner-edit{
    position:absolute;
    z-index:50;
}

.hero-design-1 .hero-image picture{
    display:block;
    width:100%;
    max-width:540px;
    height:570px;
}

.hero-design-1 .hero-image picture img{
    width:100%;
    max-width:540px;
    height:570px;
}


/* =========================================================
   BANNER 03 — HERO DESIGN 3
========================================================= */

.banner.hero-design-3{
    width:100%;
    min-height:720px;

    position:relative;
    overflow:hidden;
    box-sizing:border-box;

    background:
        linear-gradient(
            135deg,
            var(--background) 0%,
            var(--white) 55%,
            var(--extra-light) 100%
        );

    color:var(--text-dark);

    isolation:isolate;
}

.banner.hero-design-3 .hero-bold-bg-circle{
    position:absolute;
    border-radius:50%;
    pointer-events:none;
    z-index:-1;
}

.banner.hero-design-3 .hero-bold-bg-circle-1{
    width:520px;
    height:520px;
    right:-250px;
    top:-220px;

    background:rgba(var(--primary-rgb),.055);
}

.banner.hero-design-3 .hero-bold-bg-circle-2{
    width:340px;
    height:340px;
    left:-220px;
    bottom:-190px;

    border:1px solid rgba(var(--primary-rgb),.10);
}

.banner.hero-design-3 .hero-bold-wrapper{
    width:100%;
    max-width:1200px;
    min-height:650px;

    margin:0 auto;
    padding:70px 30px 105px;

    box-sizing:border-box;

    display:grid;
    grid-template-columns:.88fr 1.12fr;

    gap:35px;
    align-items:center;

    position:relative;
    z-index:2;
}

.banner.hero-design-3 .hero-bold-content{
    position:relative;
    z-index:5;

    max-width:550px;
    padding-left:10px;
}

.banner.hero-design-3 .hero-bold-eyebrow{
    display:flex;
    align-items:center;
    gap:10px;

    margin-bottom:22px;

    color:var(--primary-color);

    font-size:10px;
    font-weight:800;
    letter-spacing:3px;
    line-height:1;
    text-transform:uppercase;
}

.banner.hero-design-3 .hero-bold-eyebrow span{
    width:30px;
    height:1px;
    display:block;

    background:var(--primary-color);
}

.banner.hero-design-3 .hero-bold-title{
    margin:0;

    color:var(--text-dark);

    font-size:clamp(58px,7vw,104px);
    font-weight:400;
    line-height:.88;
    letter-spacing:-6px;
}

.banner.hero-design-3 .hero-bold-title span{
    display:block;
    font-weight:400;
}

.banner.hero-design-3 .hero-bold-title strong{
    display:block;

    color:var(--primary-color);
    font-weight:800;
    letter-spacing:-6px;
}

.banner.hero-design-3 .hero-bold-description{
    max-width:440px;

    margin:30px 0 0;

    color:var(--text-light);

    font-size:15px;
    line-height:1.85;
}

.banner.hero-design-3 .hero-bold-actions{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:12px;

    margin-top:32px;
}

.banner.hero-design-3 .hero-bold-btn{
    min-height:52px;

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

    box-sizing:border-box;

    padding:0 22px;

    border-radius:var(--radius);
    text-decoration:none;

    font-size:12px;
    font-weight:800;

    transition:
        transform .3s ease,
        background .3s ease,
        color .3s ease,
        border-color .3s ease,
        box-shadow .3s ease;
}

.banner.hero-design-3 .hero-bold-btn-primary{
    gap:18px;

    color:var(--white);
    background:var(--primary-color);
    border:1px solid var(--primary-color);

    box-shadow:
        0 12px 28px rgba(var(--primary-rgb),.18);
}

.banner.hero-design-3 .hero-bold-btn-primary span{
    font-size:18px;
    line-height:1;

    transition:transform .3s ease;
}

.banner.hero-design-3 .hero-bold-btn-primary:hover{
    color:var(--white);
    background:var(--primary-hover);
    border-color:var(--primary-hover);

    transform:translateY(-3px);

    box-shadow:
        0 17px 34px rgba(var(--primary-rgb),.25);
}

.banner.hero-design-3 .hero-bold-btn-primary:hover span{
    transform:translate(3px,-3px);
}

.banner.hero-design-3 .hero-bold-btn-secondary{
    color:var(--text-dark);
    background:transparent;
    border:1px solid var(--border-color);
}

.banner.hero-design-3 .hero-bold-btn-secondary:hover{
    color:var(--primary-color);
    border-color:var(--primary-color);
    transform:translateY(-3px);
    background:var(--white);
}

.banner.hero-design-3 .hero-bold-visual{
    width:100%;
    min-height:560px;

    position:relative;

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

    z-index:3;
}

.banner.hero-design-3 .hero-bold-image-stage{
    width:88%;
    height:570px;

    position:relative;
    overflow:hidden;

    border-radius:18px 18px 100px 18px;

    background:var(--extra-light);

    box-shadow:var(--shadow-lg);

    transform:rotate(2deg);

    transition:
        transform .7s ease,
        box-shadow .7s ease;
}

.banner.hero-design-3 .hero-bold-visual:hover .hero-bold-image-stage{
    transform:rotate(0deg) translateY(-5px);
    box-shadow:var(--shadow-lg);
}

.banner.hero-design-3 .hero-bold-picture{
    position:absolute;
    inset:0;

    display:block;

    width:100%;
    height:100%;
}

.banner.hero-design-3 .hero-bold-image{
    width:100%;
    height:100%;

    display:block;

    object-fit:cover;
    object-position:center;

    transition:
        transform 1s cubic-bezier(.2,.65,.3,1);
}

.banner.hero-design-3 .hero-bold-visual:hover .hero-bold-image{
    transform:scale(1.045);
}

.banner.hero-design-3 .hero-bold-image-label{
    position:absolute;
    left:8%;
    bottom:55px;
    z-index:7;

    padding:10px 15px;

    color:var(--white);
    background:var(--overlay);

    border:1px solid var(--border-color);

    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);

    font-size:9px;
    font-weight:800;
    letter-spacing:2px;
    text-transform:uppercase;
}

.banner.hero-design-3 .hero-bold-badge{
    position:absolute;
    right:0;
    top:85px;

    width:120px;
    height:120px;

    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:7px;

    border-radius:50%;

    color:var(--white);
    background:var(--primary-color);

    box-shadow:var(--shadow-lg);

    z-index:12;

    transform:rotate(8deg);

    transition:transform .4s ease;
}

.banner.hero-design-3 .hero-bold-visual:hover .hero-bold-badge{
    transform:rotate(0deg) scale(1.05);
}

.banner.hero-design-3 .hero-bold-badge span{
    font-size:8px;
    font-weight:700;
    letter-spacing:1.5px;
    text-transform:uppercase;
    opacity:.85;
}

.banner.hero-design-3 .hero-bold-badge strong{
    font-size:27px;
    font-weight:800;
    line-height:1;
}

.banner.hero-design-3 .hero-bold-roundel{
    position:absolute;
    left:-10px;
    bottom:25px;

    width:105px;
    height:105px;

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

    border-radius:50%;

    background:var(--white);
    border:1px solid var(--border-color);

    box-shadow:var(--shadow);

    z-index:11;

    animation:heroBoldSpin 16s linear infinite;
}

.banner.hero-design-3 .hero-bold-roundel span{
    display:block;

    width:75px;

    color:var(--primary-color);

    font-size:8px;
    font-weight:800;
    letter-spacing:1.5px;
    line-height:1.6;

    text-align:center;
    text-transform:uppercase;
}

@keyframes heroBoldSpin{

    from{
        transform:rotate(0deg);
    }

    to{
        transform:rotate(360deg);
    }
}

.banner.hero-design-3 .hero-bold-bottom{
    position:absolute;
    left:50%;
    bottom:0;

    width:calc(100% - 60px);
    max-width:1180px;
    min-height:78px;

    transform:translateX(-50%);

    display:flex;
    align-items:stretch;

    background:var(--white);

    border-top:1px solid var(--border-color);
    border-left:1px solid var(--border-color);
    border-right:1px solid var(--border-color);

    box-shadow:var(--shadow-sm);

    z-index:15;
}

.banner.hero-design-3 .hero-bold-stat{
    flex:1;
    min-width:0;

    padding:15px 25px;

    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:4px;

    border-right:1px solid var(--border-color);
}

.banner.hero-design-3 .hero-bold-stat:last-child{
    border-right:0;
}

.banner.hero-design-3 .hero-bold-stat strong{
    color:var(--text-dark);

    font-size:20px;
    font-weight:800;
    line-height:1.1;
}

.banner.hero-design-3 .hero-bold-stat span{
    color:var(--text-muted);

    font-size:9px;
    font-weight:700;
    letter-spacing:1.2px;
    text-transform:uppercase;
}

.banner.hero-design-3 .banner-edit{
    position:absolute;
    top:15px;
    right:15px;
    z-index:30;
}


/* =========================================================
   BANNER 04 — HSO COLLAGE
========================================================= */

.hso-collage{
    position:relative;
    overflow:hidden;

    width:100%;
    max-width:none;
    min-width:0;
    min-height:430px;

    background:var(--background);
    color:var(--text-dark);

    box-sizing:border-box;

    display:grid;
    grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);

    align-items:center;

    padding:55px max(30px,calc((100% - 1200px)/2));
}

.hso-collage,
.hso-collage *,
.hso-collage *::before,
.hso-collage *::after{
    box-sizing:border-box;
}

.hso-collage> *{
    min-width:0;
    max-width:100%;
}

.hso-collage-copy{
    position:relative;
    z-index:4;

    width:100%;
    max-width:430px;
    min-width:0;
}

.hso-collage-eyebrow{
    display:block;

    font-size:10px;
    letter-spacing:2.5px;
    font-weight:800;

    margin-bottom:18px;

    color:var(--primary-color);
}

.hso-collage-copy h2{
    width:100%;
    max-width:100%;

    font-size:clamp(42px,5vw,72px);
    line-height:.94;
    letter-spacing:-3px;
    font-weight:800;

    margin:0 0 18px;

    overflow-wrap:anywhere;

    color:var(--text-dark);
}

.hso-collage-copy p{
    width:100%;
    max-width:360px;

    font-size:13px;
    line-height:1.7;

    color:var(--text-light);

    margin:0 0 24px;

    overflow-wrap:anywhere;
}

.hso-collage-copy a,
.hso-grid-head-right a,
.hso-diagonal-copy a,
.hso-frame-copy a{
    display:inline-flex;
    align-items:center;
    gap:14px;

    max-width:100%;

    color:inherit;

    text-decoration:none;

    font-size:11px;
    font-weight:800;

    border-bottom:1px solid currentColor;

    padding-bottom:7px;
}

.hso-collage-copy a span,
.hso-frame-copy a span{
    flex:0 0 auto;

    color:var(--primary-color);

    font-size:17px;
}

.hso-collage-stage{
    position:relative;

    width:100%;
    max-width:100%;
    min-width:0;
    height:350px;

    overflow:hidden;
}

.hso-collage-paper{
    position:absolute;

    border:1px solid var(--border-color);

    background:var(--white);

    box-shadow:var(--shadow);
}

.hso-collage .paper-a{
    width:62%;
    height:75%;

    right:4%;
    top:10%;

    transform:rotate(7deg);
}

.hso-collage .paper-b{
    width:62%;
    height:75%;

    right:11%;
    top:5%;

    transform:rotate(-5deg);
}


/* =========================================================
   COLLAGE — DATABASE 3 IMAGE PAPER LAYOUT
========================================================= */

.hso-collage .collage-image-1{
    position:absolute;

    width:70%;
    max-width:70%;
    height:86%;

    right:17%;
    top:2%;

    z-index:5;

    overflow:hidden;

    box-shadow:var(--shadow-lg);

    transform:rotate(2deg);
}

.hso-collage .collage-image-2{
    position:absolute;

    width:62%;
    max-width:62%;
    height:75%;

    right:11%;
    top:5%;

    z-index:3;

    overflow:hidden;

    box-shadow:var(--shadow);

    transform:rotate(-5deg);
}

.hso-collage .collage-image-3{
    position:absolute;

    width:62%;
    max-width:62%;
    height:75%;

    right:4%;
    top:10%;

    z-index:2;

    overflow:hidden;

    box-shadow:var(--shadow);

    transform:rotate(7deg);
}


/* =========================================================
   ALL DATABASE IMAGES
========================================================= */

.hso-collage .collage-image-1 picture,
.hso-collage .collage-image-2 picture,
.hso-collage .collage-image-3 picture{
    display:block;
    width:100%;
    height:100%;
}

.hso-collage .collage-image-1 img,
.hso-collage .collage-image-2 img,
.hso-collage .collage-image-3 img{
    width:100%;
    height:100%;
    max-width:100%;

    display:block;

    object-fit:cover;
}


/* =========================================================
   BANNER 05 — HSO GRID
========================================================= */

.hso-grid{
    width:100%;
    max-width:none;
    min-width:0;

    padding:42px max(30px,calc((100% - 1200px)/2));

    background:var(--text-dark);
    color:var(--white);

    box-sizing:border-box;
}

.hso-grid-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;

    gap:30px;
    margin-bottom:28px;
}

.hso-grid-head span{
    font-size:9px;
    letter-spacing:2px;

    color:var(--primary-color);

    font-weight:800;
}

.hso-grid-head h2{
    margin:7px 0 0;

    font-size:36px;
    line-height:1;
    letter-spacing:-1.5px;

    color:var(--white);
}

.hso-grid-head-right{
    max-width:320px;
}

.hso-grid-head-right p{
    margin:0 0 14px;

    color:var(--text-muted);

    font-size:10px;
    line-height:1.6;
}

.hso-grid-head-right a{
    color:var(--white);
}

.hso-grid-cards{
    display:grid;
    grid-template-columns:repeat(3,1fr);

    gap:13px;
    height:250px;
}

.hso-grid-card{
    position:relative;
    overflow:hidden;

    background:var(--background);
}

.hso-grid-card-image{
    height:100%;
    overflow:hidden;
}

.hso-grid-card-image img{
    width:100%;
    height:100%;

    object-fit:cover;
    display:block;

    filter:saturate(.78);
}

.hso-grid-card::after{
    content:"";

    position:absolute;
    inset:0;

    background:
        linear-gradient(
            to top,
            var(--overlay),
            transparent 55%
        );
}

.hso-grid-card strong,
.hso-grid-card span{
    position:absolute;
    z-index:2;
    left:16px;
}

.hso-grid-card strong{
    bottom:36px;

    font-size:10px;

    color:var(--primary-color);
}

.hso-grid-card span{
    bottom:15px;

    font-size:12px;
    font-weight:800;

    color:var(--white);
}

.hso-grid .card-2{
    transform:translateY(-18px);
}

.hso-grid .card-3{
    transform:translateY(10px);
}
/* =========================================================
   HSO GRID — RESPONSIVE
   Premium mobile layout
   ========================================================= */

/* ---------- TABLET ---------- */
@media (max-width: 992px){

    .hso-grid{
        padding:36px 24px;
    }

    .hso-grid-head{
        gap:24px;
        margin-bottom:24px;
    }

    .hso-grid-head h2{
        font-size:30px;
        letter-spacing:-1.2px;
    }

    .hso-grid-head-right{
        max-width:280px;
    }

    .hso-grid-cards{
        height:230px;
        gap:10px;
    }

    .hso-grid .card-2{
        transform:translateY(-12px);
    }

    .hso-grid .card-3{
        transform:translateY(8px);
    }
}

/* =========================================================
   HSO GRID — PREMIUM MOBILE EDITORIAL
   ========================================================= */

@media (max-width: 600px){

    .hso-grid{
        width:100%;
        padding:30px 14px 34px;
        box-sizing:border-box;
        overflow:hidden;
    }


    /* =====================================================
       HEADER
       ===================================================== */

    .hso-grid-head{
        display:flex;
        flex-direction:row;
        align-items:flex-end;
        justify-content:space-between;
        gap:14px;
        margin-bottom:24px;
    }

    .hso-grid-head > div:first-child{
        flex:1;
        min-width:0;
    }

    .hso-grid-head span{
        display:block;
        margin:0 0 7px;
        font-size:8px;
        line-height:1;
        letter-spacing:2px;
        font-weight:800;
    }

    .hso-grid-head h2{
        margin:0;
        font-size:26px;
        line-height:1.02;
        letter-spacing:-1.1px;
        max-width:250px;
    }


    /* =====================================================
       RIGHT SIDE TEXT
       ===================================================== */

    .hso-grid-head-right{
        width:auto;
        max-width:135px;
        flex:0 0 135px;
    }

    .hso-grid-head-right p{
        margin:0 0 9px;
        font-size:8px;
        line-height:1.45;
    }

    .hso-grid-head-right a{
        display:inline-flex;
        align-items:center;
        gap:6px;
        font-size:9px;
        line-height:1;
        font-weight:800;
        text-decoration:none;
        white-space:nowrap;
        padding-bottom:7px;
        border-bottom:1px solid currentColor;
    }

    .hso-grid-head-right a b{
        font-size:12px;
        line-height:1;
    }


    /* =====================================================
       EDITORIAL CARD GRID
       ===================================================== */

    .hso-grid-cards{
        display:grid;
        grid-template-columns:1fr 1fr;
        grid-template-rows:190px 145px;
        gap:9px;
        width:100%;
        height:auto;
        align-items:stretch;
    }


    /* =====================================================
       BASE CARD
       ===================================================== */

    .hso-grid-card{
        position:relative;
        width:100%;
        min-width:0;
        height:auto;
        min-height:0;
        overflow:hidden;
        transform:none !important;
    }


    /* =====================================================
       FIRST CARD — LARGE HERO
       ===================================================== */

    .hso-grid .card-1{
        grid-column:1 / -1;
        grid-row:1;
    }


    /* =====================================================
       SECOND CARD
       ===================================================== */

    .hso-grid .card-2{
        grid-column:1;
        grid-row:2;
        transform:translateY(-7px) !important;
    }


    /* =====================================================
       THIRD CARD
       ===================================================== */

    .hso-grid .card-3{
        grid-column:2;
        grid-row:2;
        transform:translateY(7px) !important;
    }


    /* =====================================================
       IMAGE
       ===================================================== */

    .hso-grid-card-image{
        width:100%;
        height:100%;
        overflow:hidden;
    }

    .hso-grid-card-image img{
        width:100%;
        height:100%;
        display:block;
        object-fit:cover;
        object-position:center;
        filter:saturate(.78);
        transition:transform .5s ease;
    }


    /* Slight editorial zoom */
    .hso-grid .card-1 .hso-grid-card-image img{
        object-position:center 42%;
    }

    .hso-grid .card-2 .hso-grid-card-image img,
    .hso-grid .card-3 .hso-grid-card-image img{
        object-position:center;
    }


    /* =====================================================
       OVERLAY
       ===================================================== */

    .hso-grid-card::after{
        content:"";
        position:absolute;
        inset:0;
        z-index:1;
        pointer-events:none;
        background:
            linear-gradient(
                to top,
                var(--overlay),
                transparent 58%
            );
    }


    /* =====================================================
       CARD TEXT
       ===================================================== */

    .hso-grid-card strong,
    .hso-grid-card span{
        position:absolute;
        z-index:2;
        left:12px;
        right:8px;
    }

    .hso-grid-card strong{
        bottom:30px;
        font-size:8px;
        line-height:1;
        letter-spacing:.6px;
    }

    .hso-grid-card span{
        bottom:11px;
        font-size:11px;
        line-height:1;
        font-weight:800;
        letter-spacing:-.1px;
    }


    /* =====================================================
       HERO CARD TEXT — SLIGHTLY LARGER
       ===================================================== */

    .hso-grid .card-1 strong{
        left:15px;
        bottom:35px;
        font-size:9px;
    }

    .hso-grid .card-1 span{
        left:15px;
        bottom:13px;
        font-size:13px;
    }
}


/* =========================================================
   SMALL MOBILE
   ========================================================= */

@media (max-width: 380px){

    .hso-grid{
        padding:27px 12px 31px;
    }

    .hso-grid-head{
        gap:10px;
        margin-bottom:20px;
    }

    .hso-grid-head h2{
        font-size:23px;
        max-width:220px;
    }

    .hso-grid-head-right{
        max-width:120px;
        flex-basis:120px;
    }

    .hso-grid-head-right p{
        font-size:7.5px;
    }

    .hso-grid-head-right a{
        font-size:8px;
    }


    .hso-grid-cards{
        grid-template-rows:175px 132px;
        gap:8px;
    }

    .hso-grid .card-2{
        transform:translateY(-6px) !important;
    }

    .hso-grid .card-3{
        transform:translateY(6px) !important;
    }


    .hso-grid-card strong{
        left:10px;
        bottom:28px;
        font-size:7px;
    }

    .hso-grid-card span{
        left:10px;
        bottom:10px;
        font-size:10px;
    }


    .hso-grid .card-1 strong{
        left:13px;
        bottom:32px;
        font-size:8px;
    }

    .hso-grid .card-1 span{
        left:13px;
        bottom:11px;
        font-size:12px;
    }
}
/* =========================================================
   BANNER 06 — HSO DIAGONAL
========================================================= */

.hso-diagonal{
    position:relative;

    display:grid;
    grid-template-columns:1fr 1fr;

    min-height:440px;
    width:100%;
    max-width:none;

    background:var(--background);

    box-sizing:border-box;

    padding-left:max(0px,calc((100% - 1200px)/2));
    padding-right:max(0px,calc((100% - 1200px)/2));
}

.hso-diagonal-color{
    position:absolute;

    left:0;
    top:0;
    bottom:0;

    width:48%;

    background:var(--primary-color);

    clip-path:polygon(
        0 0,
        100% 0,
        78% 100%,
        0 100%
    );
}

.hso-diagonal-copy{
    position:relative;
    z-index:3;

    padding:70px 50px 60px 60px;

    align-self:center;

    color:var(--white);

    max-width:570px;
}

.hso-diagonal-copy span{
    font-size:9px;
    letter-spacing:2.5px;
    font-weight:800;
}

.hso-diagonal-copy h2{
    font-size:clamp(42px,5vw,68px);

    line-height:.94;
    letter-spacing:-3px;

    margin:16px 0 18px;
}

.hso-diagonal-copy p{
    font-size:12px;
    line-height:1.7;

    max-width:360px;

    margin:0 0 22px;

    opacity:.86;
}

.hso-diagonal-copy a{
    color:var(--white);
}

.hso-diagonal-visual{
    position:relative;

    height:100%;
    min-height:440px;

    margin:30px 45px 30px 0;

    overflow:hidden;

    clip-path:polygon(
        16% 0,
        100% 0,
        84% 100%,
        0 100%
    );

    background:var(--extra-light);
}

.hso-diagonal-visual img{
    width:100%;
    height:100%;

    object-fit:cover;
    display:block;
}

.hso-diagonal-number{
    position:absolute;

    right:28px;
    bottom:18px;

    background:var(--white);
    color:var(--text-dark);

    padding:10px 12px;

    font-size:10px;
    font-weight:800;
    letter-spacing:1px;
}


/* =========================================================
   BANNER 07 — HSO FRAME
========================================================= */

.hso-frame{
    position:relative;

    width:100%;
    max-width:none;
    min-height:450px;

    background:var(--background);

    padding:30px max(30px,calc((100% - 1200px)/2));

    overflow:hidden;

    box-sizing:border-box;
}

.hso-frame-topline{
    display:flex;
    justify-content:space-between;

    font-size:8px;
    letter-spacing:2px;
    font-weight:800;

    color:var(--text-muted);
}

.hso-frame-word{
    position:absolute;
    z-index:1;

    left:50%;
    top:75px;

    transform:translateX(-50%);

    font-size:clamp(55px,8vw,110px);
    line-height:.8;
    font-weight:900;
    letter-spacing:-7px;

    color:rgba(var(--primary-rgb),.22);

    pointer-events:none;
}

.hso-frame-photo{
    position:absolute;
    z-index:2;

    left:50%;
    top:48px;

    transform:translateX(-50%);

    width:44%;
    height:345px;

    border:10px solid var(--white);

    box-shadow:var(--shadow-lg);

    overflow:hidden;
}

.hso-frame-photo img{
    width:100%;
    height:100%;

    object-fit:cover;
    display:block;
}

.hso-frame-copy{
    position:absolute;
    z-index:3;

    right:8%;
    bottom:58px;

    width:34%;

    background:var(--white);

    padding:24px 26px;

    box-shadow:var(--shadow);
}

.hso-frame-copy h2{
    margin:0 0 10px;

    font-size:30px;
    line-height:1;
    letter-spacing:-1.3px;

    color:var(--text-dark);
}

.hso-frame-copy p{
    margin:0 0 16px;

    color:var(--text-light);

    font-size:10px;
    line-height:1.6;
}

.hso-frame-copy a{
    font-size:10px;
}

.hso-frame .banner-edit{
    z-index:20;
}


/* =========================================================
   RESPONSIVE — COLLAGE
========================================================= */

@media(max-width:1200px){

    .hso-collage{
        padding-left:40px;
        padding-right:40px;

        grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);

        gap:25px;
    }

    .hso-collage-stage{
        height:330px;
    }
}


@media(max-width:992px){

    .hso-collage{
        padding:45px 30px;

        grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);

        gap:20px;
    }

    .hso-collage-copy{
        max-width:100%;
    }

    .hso-collage-copy h2{
        font-size:clamp(38px,5vw,58px);
        letter-spacing:-2.5px;
    }

    .hso-collage-copy p{
        max-width:330px;
    }

    .hso-collage-stage{
        height:320px;
    }
}


/* =========================================================
   RESPONSIVE — ALL BANNERS 768px
========================================================= */

@media(max-width:768px){

    /* COLLAGE */

    .hso-collage{
        width:100%;
        max-width:100%;

        grid-template-columns:1fr;

        padding:32px 24px;

        min-height:620px;

        gap:30px;
    }

    .hso-collage-copy{
        width:100%;
        max-width:none;
    }

    .hso-collage-copy h2{
        width:100%;
        max-width:100%;

        font-size:45px;
        line-height:.94;
        letter-spacing:-2.5px;
    }

    .hso-collage-copy p{
        width:100%;
        max-width:100%;
    }

    .hso-collage-stage{
        width:100%;
        max-width:100%;

        height:300px;

        overflow:hidden;
    }

    .hso-collage-image{
        max-width:70%;
    }



    /* DIAGONAL */

    .hso-diagonal{
        display:block;
        min-height:650px;
    }

    .hso-diagonal-color{
        width:100%;
        height:52%;

        bottom:auto;

        clip-path:polygon(
            0 0,
            100% 0,
            78% 100%,
            0 100%
        );
    }

    .hso-diagonal-copy{
        padding:45px 25px 25px;
        max-width:none;
    }

    .hso-diagonal-copy h2{
        font-size:45px;
    }

    .hso-diagonal-visual{
        height:320px;
        min-height:320px;

        margin:5px 15px 20px;

        clip-path:polygon(
            10% 0,
            100% 0,
            90% 100%,
            0 100%
        );
    }


    /* FRAME */

    .hso-frame{
        min-height:650px;
        padding:25px 20px;
    }

    .hso-frame-word{
        left:20px;
        top:80px;

        transform:none;

        font-size:60px;
        letter-spacing:-4px;
    }

    .hso-frame-photo{
        top:105px;

        width:78%;
        height:320px;
    }

    .hso-frame-copy{
        left:20px;
        right:20px;
        bottom:25px;

        width:auto;

        padding:20px;
    }

    .hso-frame-copy h2{
        font-size:27px;
    }
}


/* =========================================================
   RESPONSIVE — COLLAGE 600px
========================================================= */

@media(max-width:600px){

    .hso-collage{
        padding:30px 18px;
    }

    .hso-collage-copy h2{
        font-size:42px;
    }

    .hso-collage-stage{
        height:280px;
    }
}


/* =========================================================
   RESPONSIVE — 480px
========================================================= */

@media(max-width:480px){

    .hso-collage{
        width:100%;
        max-width:100%;

        padding:28px 14px;

        min-height:590px;

        gap:25px;
    }

    .hso-collage-copy h2{
        font-size:38px;
        letter-spacing:-2px;
    }

    .hso-collage-copy p{
        font-size:12px;
        line-height:1.7;
    }

    .hso-collage-stage{
        width:100%;
        max-width:100%;

        height:260px;
    }

    .hso-collage-image{
        width:72%;
        max-width:72%;

        right:14%;

        height:84%;
    }

    .hso-collage-stage .paper-a{
        width:64%;
        height:72%;
        right:2%;
    }

    .hso-collage-stage .paper-b{
        width:64%;
        height:72%;
        right:9%;
    }

    .hso-collage-tag{
        right:0;
        bottom:5%;

        max-width:50%;

        padding:8px 10px;

        font-size:7px;
        letter-spacing:1.5px;
    }
}


/* =========================================================
   RESPONSIVE — HERO DESIGN 1
========================================================= */

@media(max-width:992px){

    .hero-section.hero-design-1{
        min-height:auto;
    }

    .hero-design-1 .hero-container{
        padding:65px 28px;

        grid-template-columns:minmax(0,1fr) minmax(0,1fr);

        gap:40px;
    }

    .hero-design-1 .hero-content h1{
        font-size:clamp(42px,5.5vw,60px);
        letter-spacing:-2px;
    }

    .hero-design-1 .hero-content p{
        font-size:15px;
        line-height:1.7;
    }

    .hero-design-1 .hero-image{
        min-height:500px;
    }

    .hero-design-1 .hero-image img{
        height:500px;

        border-radius:90px 20px 90px 20px;
    }

    .hero-design-1 .hero-image picture{
        height:500px;
    }

    .hero-design-1 .hero-image::before{
        width:88%;
        height:88%;
        right:0;
    }

    .hero-design-1 .hero-floating-card{
        left:-18px;
        bottom:45px;

        width:190px;
        min-height:115px;

        padding:17px;
    }

    .hero-design-1 .hero-features{
        margin-top:30px;
    }

    .hero-design-1 .hero-features>div{
        padding:15px 12px;
    }

    .hero-design-1 .hero-features strong{
        font-size:17px;
    }

    .hero-design-1 .hero-features span{
        font-size:9px;
    }
}


@media(max-width:768px){

    .hero-section.hero-design-1{
        display:block;
    }

    .hero-design-1 .hero-container{
        max-width:620px;

        padding:55px 24px 65px;

        grid-template-columns:1fr;

        gap:45px;
    }

    .hero-design-1 .hero-content{
        max-width:100%;

        text-align:center;
    }

    .hero-design-1 .hero-eyebrow{
        margin-bottom:18px;
    }

    .hero-design-1 .hero-content h1{
        font-size:clamp(42px,8vw,58px);
        line-height:1.04;
        letter-spacing:-2px;
    }

    .hero-design-1 .hero-content p{
        max-width:560px;

        margin-left:auto;
        margin-right:auto;

        font-size:15px;
        line-height:1.75;
    }

    .hero-design-1 .hero-actions{
        justify-content:center;
        margin-top:28px;
    }

    .hero-design-1 .hero-btn{
        min-height:50px;
        padding:0 22px;
    }

    .hero-design-1 .hero-features{
        width:100%;
        max-width:520px;

        margin:32px auto 0;

        text-align:left;
    }

    .hero-design-1 .hero-image{
        min-height:auto;
        width:100%;
        padding:0 15px;
    }

    .hero-design-1 .hero-image img{
        width:100%;
        max-width:520px;
        height:520px;

        margin:auto;

        border-radius:90px 20px 90px 20px;
    }

    .hero-design-1 .hero-image picture{
        width:100%;
        max-width:520px;
        height:520px;

        margin:auto;
    }

    .hero-design-1 .hero-image picture img{
        width:100%;
        height:520px;
    }

    .hero-design-1 .hero-image::before{
        width:88%;
        height:92%;

        right:6%;
        top:4%;
    }

    .hero-design-1 .hero-floating-card{
        left:0;
        bottom:30px;

        width:195px;
    }
}


@media(max-width:480px){

    .hero-section.hero-design-1{
        min-height:auto;
    }

    .hero-design-1 .hero-container{
        padding:42px 18px 50px;
        gap:35px;
    }

    .hero-design-1 .hero-eyebrow{
        margin-bottom:15px;
        padding:7px 11px;

        font-size:9px;
        letter-spacing:1.5px;
    }

    .hero-design-1 .hero-content h1{
        font-size:39px;
        line-height:1.05;
        letter-spacing:-1.7px;
    }

    .hero-design-1 .hero-content p{
        margin-top:20px;

        font-size:14px;
        line-height:1.7;
    }

    .hero-design-1 .hero-actions{
        width:100%;

        flex-direction:column;

        gap:10px;

        margin-top:25px;
    }

    .hero-design-1 .hero-btn{
        width:100%;
        min-height:50px;
    }

    .hero-design-1 .hero-features{
        width:100%;
        margin-top:28px;
    }

    .hero-design-1 .hero-features>div{
        padding:13px 8px;
        text-align:center;
    }

    .hero-design-1 .hero-features strong{
        font-size:15px;
    }

    .hero-design-1 .hero-features span{
        font-size:8px;
        letter-spacing:.5px;
    }

    .hero-design-1 .hero-image{
        padding:0 7px;
        min-height:420px;
    }

    .hero-design-1 .hero-image img{
        height:420px;
        border-radius:65px 16px 65px 16px;
    }

    .hero-design-1 .hero-image picture{
        height:420px;
    }

    .hero-design-1 .hero-image picture img{
        height:420px;
    }

    .hero-design-1 .hero-floating-card{
        left:-2px;
        bottom:22px;

        width:165px;
        min-height:100px;

        padding:14px 15px;
    }

    .hero-design-1 .hero-floating-card strong{
        font-size:15px;
    }
}


@media(max-width:360px){

    .hero-design-1 .hero-container{
        padding-left:14px;
        padding-right:14px;
    }

    .hero-design-1 .hero-content h1{
        font-size:34px;
        letter-spacing:-1.3px;
    }

    .hero-design-1 .hero-content p{
        font-size:13px;
    }

    .hero-design-1 .hero-image{
        min-height:370px;
    }

    .hero-design-1 .hero-image img{
        height:370px;
        border-radius:55px 14px 55px 14px;
    }

    .hero-design-1 .hero-image picture{
        height:370px;
    }

    .hero-design-1 .hero-image picture img{
        height:370px;
    }

    .hero-design-1 .hero-floating-card{
        width:150px;
        min-height:92px;
        padding:12px;
    }
}


/* =========================================================
   RESPONSIVE — HERO DESIGN 3
========================================================= */

@media(max-width:1100px){

    .banner.hero-design-3 .hero-bold-wrapper{
        grid-template-columns:.9fr 1.1fr;

        gap:20px;

        padding-left:25px;
        padding-right:25px;
    }

    .banner.hero-design-3 .hero-bold-title{
        font-size:clamp(52px,7vw,86px);
        letter-spacing:-5px;
    }

    .banner.hero-design-3 .hero-bold-image-stage{
        width:90%;
        height:540px;
    }

    .banner.hero-design-3 .hero-bold-badge{
        width:105px;
        height:105px;

        right:-5px;
    }
}


@media(max-width:992px){

    .banner.hero-design-3{
        min-height:650px;
    }

    .banner.hero-design-3 .hero-bold-wrapper{
        min-height:580px;

        padding-top:60px;
        padding-bottom:100px;

        grid-template-columns:.95fr 1.05fr;
    }

    .banner.hero-design-3 .hero-bold-title{
        font-size:clamp(48px,7vw,72px);
        letter-spacing:-4px;
    }

    .banner.hero-design-3 .hero-bold-title strong{
        letter-spacing:-4px;
    }

    .banner.hero-design-3 .hero-bold-description{
        max-width:380px;

        font-size:14px;
        line-height:1.75;
    }

    .banner.hero-design-3 .hero-bold-image-stage{
        height:500px;

        border-radius:15px 15px 80px 15px;
    }

    .banner.hero-design-3 .hero-bold-badge{
        top:70px;

        width:95px;
        height:95px;
    }

    .banner.hero-design-3 .hero-bold-roundel{
        width:88px;
        height:88px;

        left:0;
    }
}


@media(max-width:768px){

    .banner.hero-design-3{
        min-height:auto;
    }

    .banner.hero-design-3 .hero-bold-wrapper{
        min-height:auto;

        padding:55px 22px 120px;

        grid-template-columns:1fr;

        gap:40px;
    }

    .banner.hero-design-3 .hero-bold-content{
        max-width:650px;

        padding-left:0;

        text-align:center;

        margin:0 auto;
    }

    .banner.hero-design-3 .hero-bold-eyebrow{
        justify-content:center;
        margin-bottom:20px;
    }

    .banner.hero-design-3 .hero-bold-title{
        font-size:clamp(52px,11vw,78px);
        line-height:.9;
        letter-spacing:-4px;
    }

    .banner.hero-design-3 .hero-bold-description{
        max-width:580px;

        margin:25px auto 0;

        font-size:14px;
        line-height:1.8;
    }

    .banner.hero-design-3 .hero-bold-actions{
        justify-content:center;
        margin-top:28px;
    }

    .banner.hero-design-3 .hero-bold-visual{
        min-height:500px;
        width:100%;
    }

    .banner.hero-design-3 .hero-bold-image-stage{
        width:86%;
        height:500px;

        border-radius:15px 15px 80px 15px;
    }

    .banner.hero-design-3 .hero-bold-badge{
        right:2%;
        top:45px;

        width:100px;
        height:100px;
    }

    .banner.hero-design-3 .hero-bold-roundel{
        left:1%;
        bottom:15px;

        width:90px;
        height:90px;
    }

    .banner.hero-design-3 .hero-bold-bottom{
        width:calc(100% - 30px);
        min-height:70px;
    }

    .banner.hero-design-3 .hero-bold-stat{
        padding:12px 10px;
        text-align:center;
    }

    .banner.hero-design-3 .hero-bold-stat strong{
        font-size:17px;
    }

    .banner.hero-design-3 .hero-bold-stat span{
        font-size:7px;
        letter-spacing:.7px;
    }
}


@media(max-width:480px){

    .banner.hero-design-3 .hero-bold-wrapper{
        padding:42px 15px 105px;
        gap:32px;
    }

    .banner.hero-design-3 .hero-bold-eyebrow{
        font-size:8px;
        letter-spacing:2px;
    }

    .banner.hero-design-3 .hero-bold-title{
        font-size:48px;
        line-height:.92;
        letter-spacing:-3px;
    }

    .banner.hero-design-3 .hero-bold-title strong{
        letter-spacing:-3px;
    }

    .banner.hero-design-3 .hero-bold-description{
        margin-top:20px;

        font-size:13px;
        line-height:1.75;
    }

    .banner.hero-design-3 .hero-bold-actions{
        width:100%;

        flex-direction:column;

        gap:9px;

        margin-top:24px;
    }

    .banner.hero-design-3 .hero-bold-btn{
        width:100%;
        min-height:49px;
    }

    .banner.hero-design-3 .hero-bold-visual{
        min-height:400px;
    }

    .banner.hero-design-3 .hero-bold-image-stage{
        width:88%;
        height:400px;

        border-radius:12px 12px 60px 12px;

        transform:rotate(1.5deg);
    }

    .banner.hero-design-3 .hero-bold-badge{
        top:25px;
        right:-2px;

        width:82px;
        height:82px;
    }

    .banner.hero-design-3 .hero-bold-roundel{
        width:75px;
        height:75px;

        left:-2px;
        bottom:12px;
    }

    .banner.hero-design-3 .hero-bold-image-label{
        left:9%;
        bottom:28px;

        padding:8px 10px;

        font-size:7px;
        letter-spacing:1px;
    }

    .banner.hero-design-3 .hero-bold-bottom{
        width:calc(100% - 20px);
        min-height:65px;
    }

    .banner.hero-design-3 .hero-bold-stat{
        padding:9px 5px;
    }

    .banner.hero-design-3 .hero-bold-stat strong{
        font-size:14px;
    }

    .banner.hero-design-3 .hero-bold-stat span{
        font-size:6px;
    }
}


@media(max-width:360px){

    .banner.hero-design-3 .hero-bold-wrapper{
        padding-left:10px;
        padding-right:10px;
    }

    .banner.hero-design-3 .hero-bold-title{
        font-size:42px;
        letter-spacing:-2.5px;
    }

    .banner.hero-design-3 .hero-bold-title strong{
        letter-spacing:-2.5px;
    }

    .banner.hero-design-3 .hero-bold-image-stage{
        height:360px;
    }

    .banner.hero-design-3 .hero-bold-visual{
        min-height:360px;
    }

    .banner.hero-design-3 .hero-bold-badge{
        width:70px;
        height:70px;
    }

    .banner.hero-design-3 .hero-bold-roundel{
        width:65px;
        height:65px;
    }
}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media(prefers-reduced-motion:reduce){

    .hero-design-1 *,
    .hero-design-1 *::before,
    .hero-design-1 *::after,
    .banner.hero-design-3 *,
    .banner.hero-design-3 *::before,
    .banner.hero-design-3 *::after{
        animation:none!important;
        transition:none!important;
        scroll-behavior:auto!important;
    }
}


/* =========================================================
   FINAL WIDTH SAFETY
========================================================= */

.hso-store-banners{
    width:100%;
    max-width:100%;
    min-width:0;
}

.hso-store-banners .hso-collage img{
    max-width:100%;
}

@media(max-width:768px){

    .hso-store-banners{
        gap:16px;
    }

    .hso-store-banners .banner-edit{
        opacity:1;
    }
}


/* =========================================================
   PROMO BANNER
   LEFT CONTENT / FULL RIGHT IMAGE
========================================================= */

.banner.promo-banner{
    position:relative;

    width:100%;
    min-height:520px;

    padding:70px 40px;

    background:var(--background);

    overflow:hidden;

    box-sizing:border-box;
}

.banner.promo-banner *,
.banner.promo-banner *::before,
.banner.promo-banner *::after{
    box-sizing:border-box;
}

.banner.promo-banner .promo-banner-container{
    width:100%;
    max-width:1200px;

    margin:0 auto;
}

.banner.promo-banner .promo-banner-box{
    position:relative;

    width:100%;
    min-height:380px;

    display:grid;
    grid-template-columns:1fr 1fr;

    align-items:stretch;

    overflow:hidden;

    border-radius:var(--radius-xl);

    background:var(--white);

    box-shadow:var(--shadow);
}


/* =========================================================
   LEFT CONTENT
========================================================= */

.banner.promo-banner .promo-banner-content{
    position:relative;
    z-index:3;

    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:flex-start;

    width:100%;
    max-width:620px;

    padding:60px;

    background:var(--white);
}

.banner.promo-banner .promo-banner-content h4{
    margin:0 0 16px;

    font-size:12px;
    line-height:1.4;

    font-weight:700;
    letter-spacing:2px;

    text-transform:uppercase;

    color:var(--primary-color);
}

.banner.promo-banner .promo-banner-content h2{
    margin:0 0 20px;

    font-size:48px;
    line-height:1.05;

    font-weight:700;
    letter-spacing:-1.8px;

    color:var(--text-dark);
}

.banner.promo-banner .promo-banner-content p{
    margin:0 0 28px;

    max-width:500px;

    font-size:15px;
    line-height:1.8;

    color:var(--text-light);
}


/* =========================================================
   BUTTON
========================================================= */

.banner.promo-banner .promo-banner-btn{
    display:inline-flex;

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

    min-height:46px;

    padding:0 26px;

    border-radius:var(--radius);

    background:var(--primary-color);
    color:var(--white);

    text-decoration:none;

    font-size:13px;
    font-weight:600;

    transition:
        background .2s ease,
        transform .2s ease,
        box-shadow .2s ease;
}

.banner.promo-banner .promo-banner-btn:hover{
    background:var(--primary-hover);

    transform:translateY(-1px);

    box-shadow:var(--shadow-sm);
}


/* =========================================================
   RIGHT SIDE — FULL IMAGE
========================================================= */

.banner.promo-banner .promo-banner-picture{
    position:relative;

    display:block;

    width:100%;
    height:100%;
    min-height:380px;

    overflow:hidden;

    background:var(--extra-light);
}

.banner.promo-banner .promo-banner-picture img{
    display:block;

    width:100%;
    height:100%;

    min-width:100%;
    min-height:380px;

    object-fit:cover;
    object-position:center center;

    max-width:none;

    transition:transform .5s ease;
}

.banner.promo-banner .promo-banner-box:hover .promo-banner-picture img{
    transform:scale(1.025);
}


/* =========================================================
   IMAGE PLACEHOLDER
========================================================= */

.banner.promo-banner .banner-image-placeholder{
    width:100%;
    height:100%;

    min-height:380px;

    display:flex;

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

    background:var(--extra-light);

    color:var(--text-muted);

    font-size:12px;
}


/* =========================================================
   BUILDER EDIT BUTTON
========================================================= */

.banner.promo-banner .banner-edit{
    z-index:20;
}


/* =========================================================
   TABLET
========================================================= */

@media(max-width:992px){

    .banner.promo-banner{
        padding:50px 25px;
    }

    .banner.promo-banner .promo-banner-content{
        padding:45px;
    }

    .banner.promo-banner .promo-banner-content h2{
        font-size:38px;
    }

    .banner.promo-banner .promo-banner-box{
        min-height:360px;
    }

    .banner.promo-banner .promo-banner-picture{
        min-height:360px;
    }

    .banner.promo-banner .promo-banner-picture img{
        min-height:360px;
    }
}


/* =========================================================
   MOBILE
========================================================= */

@media(max-width:768px){

    .banner.promo-banner{
        min-height:auto;
        padding:25px 15px;
    }

    .banner.promo-banner .promo-banner-box{
        display:grid;

        grid-template-columns:1fr;

        min-height:auto;

        border-radius:var(--radius-lg);
    }

    .banner.promo-banner .promo-banner-content{
        order:1;

        width:100%;
        max-width:none;

        padding:35px 28px;
    }

    .banner.promo-banner .promo-banner-content h4{
        margin-bottom:12px;
    }

    .banner.promo-banner .promo-banner-content h2{
        margin-bottom:16px;

        font-size:32px;
        line-height:1.08;
        letter-spacing:-1px;
    }

    .banner.promo-banner .promo-banner-content p{
        margin-bottom:22px;

        font-size:14px;
        line-height:1.7;
    }

    .banner.promo-banner .promo-banner-picture{
        order:2;

        width:100%;
        height:280px;
        min-height:280px;
    }

    .banner.promo-banner .promo-banner-picture img{
        width:100%;
        height:280px;

        min-width:100%;
        min-height:280px;

        object-fit:cover;
        object-position:center center;
    }

    .banner.promo-banner .banner-image-placeholder{
        height:280px;
        min-height:280px;
    }
}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media(max-width:480px){

    .banner.promo-banner{
        padding:15px 10px;
    }

    .banner.promo-banner .promo-banner-content{
        padding:28px 22px;
    }

    .banner.promo-banner .promo-banner-content h4{
        font-size:10px;
        letter-spacing:1.6px;
    }

    .banner.promo-banner .promo-banner-content h2{
        font-size:27px;
        letter-spacing:-.7px;
    }

    .banner.promo-banner .promo-banner-content p{
        font-size:13px;
        line-height:1.7;
    }

    .banner.promo-banner .promo-banner-picture{
        height:230px;
        min-height:230px;
    }

    .banner.promo-banner .promo-banner-picture img{
        height:230px;
        min-height:230px;
    }

    .banner.promo-banner .banner-image-placeholder{
        height:230px;
        min-height:230px;
    }
}


/* =========================================================
   VERY SMALL MOBILE
========================================================= */

@media(max-width:360px){

    .banner.promo-banner{
        padding:10px 7px;
    }

    .banner.promo-banner .promo-banner-content{
        padding:24px 18px;
    }

    .banner.promo-banner .promo-banner-content h2{
        font-size:24px;
    }

    .banner.promo-banner .promo-banner-content p{
        font-size:12px;
    }

    .banner.promo-banner .promo-banner-picture{
        height:210px;
        min-height:210px;
    }

    .banner.promo-banner .promo-banner-picture img{
        height:210px;
        min-height:210px;
    }
}


/* =========================================================
   PROMO REDUCED MOTION
========================================================= */

@media(prefers-reduced-motion:reduce){

    .banner.promo-banner .promo-banner-picture img,
    .banner.promo-banner .promo-banner-btn{
        transition:none!important;
    }

    .banner.promo-banner .promo-banner-box:hover
    .promo-banner-picture img{
        transform:none;
    }
}
/* =========================================================
   CLICKABLE BANNER IMAGES
========================================================= */

.hso-store-banners .hso-banner-image-link {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    cursor: pointer;
    text-decoration: none;
    pointer-events: auto;
    z-index: 10;
}

.hso-store-banners .hso-banner-image-link picture {
    display: block;
    width: 100%;
    height: 100%;
}

.hso-store-banners .hso-banner-image-link img {
    display: block;
    width: 100%;
    height: 100%;
    cursor: pointer;
}

/* Make sure decorative layers don't block image clicks */
.hso-store-banners .hso-banner-image-link img {
    pointer-events: auto;
}

/* =========================================================
   IMAGE CLICK HOVER
========================================================= */

.hso-store-banners .hso-banner-image-link:hover img {
    cursor: pointer;
}

