
.parallaxFrame{
    width:100%;
    height:100%;
    overflow:hidden;
    background-size:cover;
    background-position:center center;
    background-repeat:no-repeat;
    background-attachment:scroll;
    will-change:background-position;
}

@media(max-width:768px){
    .parallaxFrame{
        inset:auto;
        height:100%;
        background-position:center center;
    }
}

/*======================================
                HERO
======================================*/

.hero{
    position:relative;
    width:100%;
    height:100vh;
    overflow:hidden;
    font-weight:bold;
    background:#000;
}

.hero video{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center center;

    filter:
        brightness(.95)
        contrast(1.10)
        saturate(.95);
}

/* Mobile */
@media (max-width:768px){
    .hero video{
        width:100%;
        height:100%;
        object-fit:cover;
        object-position:center center;
    }
}

.hero_overlay{
    position:absolute;
    inset:0;
    background:linear-gradient(
        to bottom,
        rgba(0,0,0,.08),
        rgba(0,0,0,.18)
    );
}

.hero_content{
    position:relative;
    z-index:2;
    width:100%;
    height:100%;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    text-align:center;
    color:#fff;
    padding:0 20px;
}

.hero_content span{
    text-transform:uppercase;
    letter-spacing:6px;
    opacity:.9;
    margin-bottom:25px;
}

.hero_content h1{
    font-weight:200;
    letter-spacing:14px;
    text-transform:uppercase;
    font-size:1.5rem;
}

.hero_content p{
    margin:35px 0 55px;
    font-weight:300;
    color:rgba(255,255,255,.9);
}

.hero_content .primaryBtn{
    display:inline-flex;
    justify-content:center;
    align-items:center;
    width:200px;
    height:58px;
    color:#fff;
    text-transform:uppercase;
    letter-spacing:3px;
    transition:.35s;
    background-color:#000;
}

.hero_content .primaryBtn:hover{
    background:#fff;
    color:#111;
}

@media(max-width:992px){
    .hero_content h1{
        letter-spacing:8px;
    }

    .hero_content p{
        margin:25px 0 45px;
    }
}

@media(max-width:600px){
    .hero_content span{
        letter-spacing:4px;
    }

    .hero_content h1{
        letter-spacing:5px;
    }

    .hero_content .primaryBtn{
        width:170px;
        height:52px;
    }
}

/*======================================
                GALLERY
======================================*/

.galleryHeader{
    width:100%;
    padding:32px 30px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:7px;
    text-align:center;
    border-top:1px solid #e8e8e8;
    border-bottom:1px solid #e8e8e8;
    background:#fff;
}

.galleryHeader .galleryLabel{
    margin:0;
    font-size:11px;
    font-weight:600;
    letter-spacing:2.5px;
    text-transform:uppercase;
    color:#777;
}

.galleryHeader h2{
    margin:0;
    font-size:24px;
    font-weight:500;
    line-height:1.25;
    letter-spacing:.3px;
    color:#111;
}

.galleryHeader span{
    max-width:520px;
    margin-top:2px;
    font-size:14px;
    font-weight:400;
    line-height:1.6;
    color:#777;
}

.gallery{
    width:100%;
    overflow:hidden;
    padding:0;
    margin:15px 0;
    direction:ltr;
    background:#fff;
}

.galleryTrack{
    display:flex;
    width:max-content;
    animation:gallerySlide 20s linear infinite;
    will-change:transform;
}

.galleryGroup{
    display:flex;
    gap:2px;
    padding-right:2px;
    flex-shrink:0;
}

.galleryGroup img{
    width:420px;
    height:520px;
    display:block;
    flex-shrink:0;
    object-fit:cover;
    user-select:none;
    pointer-events:none;
}

.gallery:hover .galleryTrack{
    animation-play-state:paused;
}

@keyframes gallerySlide{
    from{
        transform:translateX(0);
    }

    to{
        transform:translateX(-50%);
    }
}

@media(max-width:900px){
    .galleryGroup img{
        width:320px;
        height:420px;
    }

    .galleryTrack{
        animation:gallerySlide 20s linear infinite;
    }
}

@media(max-width:600px){

    .galleryGroup{
        gap:1px;
        padding-right:1px;
    }

    .galleryGroup img{
        width:240px;
        height:320px;
    }
}

/*======================================
           GALLERY - VIDEOS
======================================*/

.abMoments{
    overflow:hidden;
    padding:130px 0 105px;
    background:#fff;
    color:#111;
}

.abMomentsHeading{
    width:min(620px, calc(100% - 40px));
    margin:0 auto 68px;
    text-align:center;
}

.abMomentsHeading span{
    display:block;
    margin-bottom:13px;
    font-size:10px;
    font-weight:600;
    letter-spacing:2.7px;
    color:#777;
}

.abMomentsHeading h2{
    margin:0;
    font-size:clamp(32px, 3.2vw, 52px);
    font-weight:400;
    letter-spacing:-1.5px;
    line-height:1.08;
}

.abMomentsHeading p{
    max-width:470px;
    margin:18px auto 0;
    color:#707070;
    font-size:14px;
    line-height:1.75;
}

.abMomentsViewport{
    width:100%;
    overflow:hidden;
}

.abMomentsTrack{
    display:flex;
    align-items:center;
    gap:28px;
    overflow-x:auto;
    padding:35px 0;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
}

.abMomentsTrack::before,
.abMomentsTrack::after{
    content:"";
    flex:0 0 max(24px, calc(50vw - 160px));
}

.abMomentsTrack::-webkit-scrollbar{
    display:none;
}

.abMomentCard{
    position:relative;
    flex:0 0 clamp(225px, 22vw, 320px);
    aspect-ratio:9 / 13;
    overflow:hidden;
    border-radius:3px;
    background:#ececec;
    scroll-snap-align:center;
    transform:scale(.88);
    opacity:.58;
    transition:transform .55s cubic-bezier(.22,1,.36,1), opacity .45s ease, box-shadow .55s ease;
    will-change:transform;
}

.abMomentCard.isActive{
    z-index:2;
    opacity:1;
    transform:scale(1.08);
    box-shadow:0 25px 60px rgba(0,0,0,.14);
}

.abMomentCard video,
.abMomentCard img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}

.abMomentShade{
    position:absolute;
    inset:0;
    background:linear-gradient(180deg, rgba(0,0,0,.02) 45%, rgba(0,0,0,.62) 100%);
    pointer-events:none;
}

.abMomentName{
    position:absolute;
    bottom:18px;
    left:18px;
    right:18px;
    color:#fff;
    font-size:10px;
    font-weight:600;
    letter-spacing:1.5px;
    text-transform:uppercase;
    text-align:center;
}

.abMomentsControls{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:22px;
    margin-top:54px;
}

.abMomentArrow{
    width:46px;
    height:46px;
    display:grid;
    place-items:center;
    padding:0;
    cursor:pointer;
    border:1px solid #dcdcdc;
    border-radius:50%;
    background:#fff;
    color:#111;
    transition:background .25s ease, color .25s ease, border-color .25s ease, transform .25s ease;
}

.abMomentArrow span{
    font-size:21px;
    line-height:1;
    transform:translateY(-1px);
}

.abMomentArrow:hover{
    border-color:#111;
    background:#111;
    color:#fff;
    transform:scale(1.05);
}

.abMomentsCounter{
    display:flex;
    align-items:center;
    gap:9px;
    min-width:70px;
    font-size:11px;
    letter-spacing:1px;
    color:#8b8b8b;
}

.abMomentsCounter strong{
    font-weight:600;
    color:#111;
}

.abMomentsCounter i{
    width:18px;
    height:1px;
    background:#bdbdbd;
}

@media(max-width:700px){
    .abMoments{
        padding:90px 0 70px;
    }

    .abMomentsHeading{
        margin-bottom:34px;
    }

    .abMomentsTrack{
        gap:17px;
        padding:25px calc(50% - 110px);
        box-sizing:border-box;
        scroll-padding-inline:calc(50% - 110px);
    }

    .abMomentsTrack::before,
    .abMomentsTrack::after{
        display:none;
    }

    .abMomentCard{
        flex-basis:220px;
    }

    .abMomentCard.isActive{
        transform:scale(1.04);
    }

    .abMomentsControls{
        margin-top:35px;
    }
}

/*======================================
              NEWSLETTER
======================================*/

.newsletter{
    padding:140px 0;
    background:#faf9f6;
    border-top:1px solid rgba(0,0,0,.06);
}

.newsletter .container{
    max-width:700px;
    text-align:center;
}

.newsletter span{
    display:block;
    margin-bottom:12px;
    text-transform:uppercase;
    letter-spacing:3px;
    color:#777;
}

.newsletter h2{
    margin-bottom:18px;
    font-weight:500;
}

.newsletter p{
    color:#666;
    margin-bottom:45px;
}

.newsletterForm{
    display:flex;
    gap:12px;
}

.newsletterForm input{
    flex:1;
    height:54px;
    padding:0 18px;
    border:1px solid rgba(0,0,0,.12);
    background:#fff;
    outline:none;
    transition:.25s;
}

.newsletterForm input:focus{
    border-color:#000;
}

.newsletterForm button{
    height:54px;
    padding:0 28px;
    border:none;
    background:#111;
    color:#fff;
    cursor:pointer;
    transition:.25s;
}

.newsletterForm button:hover{
    background:#000;
}

@media(max-width:768px){
    .newsletter{
        padding:90px 0;
    }

    .newsletterForm{
        flex-direction:column;
    }

    .newsletterForm button{
        width:100%;
    }

    .newsletterForm input{
        height:54px;
        padding:10px 5px;
    }

}

/*======================================
                  FAQ
======================================*/

.homeFaq{
    padding:145px 0;
    background:#f4f3f0;
}

.homeFaqInner{
    display:grid;
    grid-template-columns:minmax(260px, .72fr) minmax(0, 1.28fr);
    gap:clamp(50px, 9vw, 150px);
    width:min(1180px, calc(100% - 64px));
    margin:0 auto;
}

.homeFaqIntro{
    align-self:start;
    position:sticky;
    top:110px;
}

.homeFaqEyebrow{
    display:block;
    color:#77746d;
    font-size:10px;
    font-weight:700;
    letter-spacing:.18em;
}

.homeFaqIntro h2{
    margin:20px 0 20px;
    font-family:Georgia, "Times New Roman", serif;
    font-size:clamp(42px, 4.3vw, 64px);
    font-weight:400;
    letter-spacing:-.05em;
    line-height:1;
}

.homeFaqIntro p{
    max-width:310px;
    margin:0;
    color:#69665f;
    font-size:15px;
    line-height:1.75;
}

.homeFaqSupport{
    display:grid;
    gap:7px;
    margin-top:43px;
    padding:0;
    border:0;
    background:transparent;
    color:#141414;
    font-size:11px;
    font-weight:700;
    letter-spacing:.08em;
    text-align:left;
    text-transform:uppercase;
    cursor:pointer;
}

.homeFaqSupport span{
    color:#77746d;
    font-size:10px;
    font-weight:600;
    letter-spacing:.04em;
    text-decoration:underline;
    text-decoration-thickness:1px;
    text-underline-offset:5px;
    text-transform:none;
}

.homeFaqList{
    border-top:1px solid #cccac4;
}

.homeFaqItem{
    border-bottom:1px solid #cccac4;
}

.homeFaqItem summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:25px;
    min-height:78px;
    padding:0 4px 0 0;
    color:#181818;
    font-family:Georgia, "Times New Roman", serif;
    font-size:clamp(18px, 1.65vw, 23px);
    font-weight:400;
    letter-spacing:-.025em;
    line-height:1.25;
    list-style:none;
    cursor:pointer;
}

.homeFaqItem summary::-webkit-details-marker{
    display:none;
}

.homeFaqItem summary i{
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    width:29px;
    height:29px;
    border:1px solid #aaa79f;
    border-radius:50%;
    font-family:Arial, sans-serif;
    font-size:21px;
    font-style:normal;
    font-weight:300;
    line-height:1;
    transition:transform .22s ease, background .22s ease, color .22s ease;
}

.homeFaqItem[open] summary i{
    transform:rotate(45deg);
    background:#151515;
    color:#ffffff;
    border-color:#151515;
}

.homeFaqAnswer{
    max-width:660px;
    padding:0 55px 29px 0;
    color:#68655e;
    font-size:14px;
    line-height:1.8;
}

.homeFaqIntro h2,
.homeFaqItem summary{
    font-family:Arial, sans-serif !important;
}

@media(max-width:800px){
    .homeFaq{
        padding:90px 0;
    }

    .homeFaqInner{
        grid-template-columns:1fr;
        gap:45px;
        width:min(100% - 40px, 1180px);
    }

    .homeFaqIntro{
        position:static;
    }

    .homeFaqIntro h2{
        font-size:55px;
    }

    .homeFaqSupport{
        margin-top:25px;
    }
}

@media(max-width:500px){
    .homeFaq{
        padding:72px 0;
    }

    .homeFaqInner{
        width:min(100% - 32px, 1180px);
        gap:37px;
    }

    .homeFaqIntro h2{
        font-size:47px;
    }

    .homeFaqItem summary{
        min-height:76px;
        gap:16px;
        font-size:21px;
    }

    .homeFaqItem summary i{
        width:27px;
        height:27px;
        font-size:19px;
    }

    .homeFaqAnswer{
        padding:0 36px 24px 0;
        font-size:13px;
    }
}




