.manifesto{

    background:#f5f1e8;

    padding:160px 0 130px;

}

.pass-facts{
    background:#111;
    color:#fff;
    border-top:1px solid rgba(255,255,255,.1);
}

.pass-facts-inner{
    width:min(92%,1320px);
    margin:auto;
    display:grid;
    grid-template-columns:repeat(4,1fr);
}

.pass-facts-inner div{
    min-width:0;
    padding:34px 30px;
    border-right:1px solid rgba(255,255,255,.1);
}

.pass-facts-inner div:first-child{
    border-left:1px solid rgba(255,255,255,.1);
}

.pass-facts strong,
.pass-facts span{
    display:block;
}

.pass-facts strong{
    margin-bottom:5px;
    color:var(--color-gold-light);
    font-family:var(--font-title);
    font-size:28px;
    font-weight:400;
}

.pass-facts span{
    color:rgba(255,255,255,.62);
    font-size:12px;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.manifesto-container{
    width:min(88%,1100px);
    margin:auto;
}

.manifesto-label{
    display:inline-block;
    margin-bottom:35px;
    letter-spacing:.35em;
    color:#b99155;
    font-size:13px;
    font-weight:700;
    text-transform:uppercase;
}

.manifesto h2{

    font-size:clamp(58px,7.5vw,120px);

    line-height:1.04;

    letter-spacing:-.045em;

    color:#111;

    margin-bottom:42px;

}

.manifesto h2 span{
    display:inline-block;
    padding-block:.035em;
}

.manifesto p{
    max-width:650px;
    font-size:23px;
    line-height:1.9;
    color:#666;
}

.full-bleed-image{

    height:90vh;

    min-height:620px;

    overflow:hidden;

}

.full-bleed-image img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.pass-portrait{
    overflow:hidden;
    padding:100px 0 120px;
    background:#111;
    color:#fff;
}

.pass-portrait__inner{
    position:relative;
    width:min(86%,1180px);
    margin:auto;
    display:grid;
    grid-template-columns:minmax(0,3fr) minmax(240px,1fr);
    gap:clamp(42px,6vw,90px);
    align-items:end;
}

.pass-portrait__image{
    position:relative;
}

.pass-portrait__image::before{
    content:"";
    position:absolute;
    inset:-18px 18px 18px -18px;
    border:1px solid rgba(203,168,103,.55);
    pointer-events:none;
}

.pass-portrait__image picture,
.pass-portrait__image img{
    display:block;
    width:100%;
}

.pass-portrait__image img{
    height:auto;
    aspect-ratio:4 / 3;
    object-fit:cover;
}

.pass-portrait__altitude{
    position:absolute;
    right:-20px;
    bottom:28px;
    padding:14px 19px;
    background:var(--color-gold-light);
    color:#111;
    font-size:12px;
    font-weight:700;
    letter-spacing:.18em;
    text-transform:uppercase;
}

.pass-portrait__caption{
    padding-bottom:25px;
}

.pass-portrait__number,
.pass-portrait__eyebrow,
.pass-portrait__caption strong{
    display:block;
}

.pass-portrait__number{
    margin-bottom:58px;
    color:rgba(255,255,255,.24);
    font-family:var(--font-title);
    font-size:70px;
    line-height:1;
}

.pass-portrait__eyebrow{
    margin-bottom:18px;
    color:var(--color-gold-light);
    font-size:11px;
    font-weight:700;
    letter-spacing:.2em;
    text-transform:uppercase;
}

.pass-portrait__caption strong{
    margin-bottom:22px;
    font-family:var(--font-title);
    font-size:clamp(30px,3vw,46px);
    font-weight:400;
    line-height:1.05;
}

.pass-portrait__caption p{
    color:rgba(255,255,255,.62);
    font-size:15px;
    line-height:1.8;
}

@media (max-width:900px){
    .pass-portrait{
        padding:80px 0 90px;
    }

    .pass-portrait__inner{
        width:min(86%,760px);
        grid-template-columns:1fr;
        gap:52px;
    }

    .pass-portrait__caption{
        width:min(100%,520px);
        padding:0;
    }

    .pass-portrait__number{
        margin-bottom:24px;
        font-size:54px;
    }
}

@media (max-width:560px){
    .pass-portrait{
        padding:58px 0 70px;
    }

    .pass-portrait__inner{
        width:84%;
        gap:40px;
    }

    .pass-portrait__image::before{
        inset:-10px 10px 10px -10px;
    }

    .pass-portrait__altitude{
        right:-10px;
        bottom:16px;
        padding:10px 12px;
    }
}


.hotel-showcase{
    background:#111;
    color:#fff;
    padding:160px 0;
}

.lodge-shop{
    padding:150px 0;
    overflow:hidden;
    background:#f5f1e8;
    color:#171714;
}

.lodge-shop__inner{
    width:min(88%,1180px);
    margin:auto;
    display:grid;
    grid-template-columns:minmax(320px,.82fr) minmax(0,1.18fr);
    gap:clamp(65px,9vw,135px);
    align-items:center;
}

.lodge-shop__visual{
    position:relative;
    margin:0;
}

.lodge-shop__visual::before{
    content:"";
    position:absolute;
    inset:20px -20px -20px 20px;
    border:1px solid rgba(143,103,50,.55);
    pointer-events:none;
}

.lodge-shop__visual picture,
.lodge-shop__visual img{
    display:block;
    width:100%;
}

.lodge-shop__visual img{
    height:auto;
    aspect-ratio:3 / 4;
    object-fit:cover;
}

.lodge-shop__stamp{
    position:absolute;
    right:-38px;
    top:42px;
    max-width:170px;
    padding:15px 18px;
    background:#1d2e20;
    color:#f0d19a;
    font-size:10px;
    font-weight:700;
    letter-spacing:.16em;
    line-height:1.45;
    text-align:center;
    text-transform:uppercase;
}

.lodge-shop__content .section-kicker{
    margin-bottom:27px;
    color:#9a713a;
}

.lodge-shop__content h2{
    max-width:650px;
    margin-bottom:34px;
    font-size:clamp(52px,6vw,92px);
    line-height:.96;
    letter-spacing:-.055em;
}

.lodge-shop__content p{
    max-width:650px;
    color:#625f58;
    font-size:16px;
    line-height:1.8;
}

.lodge-shop__content .lodge-shop__lead{
    margin-bottom:18px;
    color:#2d2c28;
    font-size:20px;
}

.lodge-shop__highlights{
    max-width:650px;
    margin:42px 0 0;
    padding:0;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    list-style:none;
    border-top:1px solid rgba(23,23,20,.18);
}

.lodge-shop__highlights li{
    padding:20px 16px 0 0;
    color:#72532b;
    font-size:11px;
    font-weight:700;
    letter-spacing:.1em;
    line-height:1.45;
    text-transform:uppercase;
}

@media(max-width:900px){
    .lodge-shop{
        padding:110px 0;
    }

    .lodge-shop__inner{
        grid-template-columns:minmax(260px,.75fr) minmax(0,1.25fr);
        gap:55px;
    }

    .lodge-shop__stamp{
        right:-20px;
    }

    .lodge-shop__highlights{
        grid-template-columns:1fr;
        gap:12px;
    }

    .lodge-shop__highlights li{
        padding-top:12px;
    }
}

@media(max-width:680px){
    .lodge-shop{
        padding:80px 0 90px;
    }

    .lodge-shop__inner{
        width:84%;
        grid-template-columns:1fr;
        gap:70px;
    }

    .lodge-shop__visual{
        width:88%;
    }

    .lodge-shop__visual::before{
        inset:12px -12px -12px 12px;
    }

    .lodge-shop__content h2{
        font-size:clamp(48px,14vw,68px);
    }
}

.hotel-intro{
    width:min(88%,1100px);
    margin:0 auto 68px;
}

.hotel-intro .section-kicker{
    display:inline-block;
    margin-bottom:28px;
}

.hotel-intro h2{
    max-width:760px;
    font-size:clamp(54px,6.4vw,102px);
    line-height:1.02;
    letter-spacing:-.055em;
    margin-bottom:30px;
}

.hotel-intro p{
    max-width:760px;
    font-size:19px;
    line-height:1.75;
    color:rgba(255,255,255,.68);
}

.room-grid{
    width:min(92%,1320px);
    margin:auto;
    display:grid;
    grid-template-columns:1.25fr .75fr;
    gap:24px;
}

.section-link-row{
    width:min(92%,1320px);
    margin:42px auto 0;
    display:flex;
    align-items:center;
    gap:28px;
    flex-wrap:wrap;
}

.text-link{
    color:rgba(255,255,255,.76);
    font-size:14px;
    letter-spacing:.05em;
}

.text-link:hover{
    color:var(--color-gold);
}

.room-card{
    position:relative;
    height:540px;
    overflow:hidden;
    background:#222;
}

.room-card.large{
    height:650px;
}

.room-card picture,
.room-card img{
    display:block;
    width:100%;
    height:100%;
}

.room-card img{
    object-fit:cover;
    transition:transform 1.2s ease;
}

.room-card.large img{object-position:center 48%}
.room-card:not(.large) img{object-position:center 46%}

.room-card::after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(180deg, transparent 35%, rgba(0,0,0,.72));
}

.room-card:hover img{
    transform:scale(1.06);
}

.room-card-content{
    position:absolute;
    left:34px;
    bottom:34px;
    z-index:2;
}

.room-card-content span{
    display:block;
    margin-bottom:10px;
    color:var(--color-gold);
    font-size:12px;
    font-weight:700;
    letter-spacing:.22em;
    text-transform:uppercase;
}

.room-card-content h3{
    font-size:42px;
    line-height:1;
}

.hotel-lounge{
    position:relative;
    width:min(92%,1320px);
    min-height:560px;
    margin:24px auto 0;
    display:grid;
    grid-template-columns:minmax(0,1.55fr) minmax(300px,.65fr);
    overflow:hidden;
    background:#f1ece3;
    color:#171714;
}

.hotel-lounge-section{
    padding:40px 0 130px;
    background:#111;
}

.hotel-lounge-section .hotel-lounge + .hotel-lounge{
    margin-top:24px;
}

.hotel-lounge--reverse{
    grid-template-columns:minmax(300px,.65fr) minmax(0,1.55fr);
}

.hotel-lounge--reverse .hotel-lounge__visual{
    grid-column:2;
    grid-row:1;
}

.hotel-lounge--reverse .hotel-lounge__content{
    grid-column:1;
    grid-row:1;
}

.hotel-shared-bathroom .hotel-lounge__visual img{
    object-position:center 53%;
}

.hotel-shared-bathroom{
    min-height:700px;
    grid-template-columns:minmax(300px,1fr) minmax(360px,.8fr);
}

.hotel-lounge__visual,
.hotel-lounge__visual img{
    display:block;
    width:100%;
    height:100%;
}

.hotel-lounge__visual img{
    object-fit:cover;
    object-position:center;
}

.hotel-lounge__content{
    padding:clamp(48px,6vw,86px);
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
}

.hotel-lounge__content span{
    margin-bottom:22px;
    color:#9a713a;
    font-size:10px;
    font-weight:700;
    letter-spacing:.18em;
    line-height:1.45;
    text-transform:uppercase;
}

.hotel-lounge__content h2,
.hotel-lounge__content h3{
    margin-bottom:24px;
    font-size:clamp(38px,4vw,58px);
    font-weight:400;
    line-height:1.02;
    letter-spacing:-.035em;
}

.hotel-lounge__content p{
    color:#625f58;
    font-size:15px;
    line-height:1.75;
}

.hotel-lounge__notice{
    margin-top:28px;
    padding-top:20px;
    border-top:1px solid rgba(23,23,20,.16);
    color:#72532b;
    font-size:11px;
    letter-spacing:.08em;
    line-height:1.55;
    text-transform:uppercase;
}

@media(max-width:900px){
    .hotel-lounge-section{
        padding:20px 0 100px;
    }

    .hotel-lounge{
        min-height:0;
        grid-template-columns:1fr;
    }

    .hotel-lounge--reverse .hotel-lounge__visual,
    .hotel-lounge--reverse .hotel-lounge__content{
        grid-column:1;
        grid-row:auto;
    }

    .hotel-shared-bathroom{
        grid-template-columns:1fr;
    }

    .hotel-shared-bathroom .hotel-lounge__visual{
        width:min(100%,520px);
        margin:auto;
        aspect-ratio:3 / 4;
    }

    .hotel-lounge__visual{
        aspect-ratio:16 / 10;
    }

    .hotel-lounge__content{
        padding:48px;
    }
}

@media(max-width:640px){
    .hotel-lounge-section{
        padding:10px 0 80px;
    }

    .hotel-lounge{
        width:88%;
        margin-top:14px;
    }

    .hotel-lounge__visual{
        aspect-ratio:4 / 3;
    }

    .hotel-lounge__content{
        padding:36px 28px 42px;
    }
}


.restaurant-experience{
    position:relative;
    min-height:100vh;
    display:flex;
    align-items:center;
    overflow:hidden;
    color:#fff;
    background:#111;
}

.restaurant-bg{
    position:absolute;
    inset:0;
    z-index:1;
}

.restaurant-bg img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.restaurant-overlay{
    position:absolute;
    inset:0;
    z-index:2;
    background:
        linear-gradient(90deg, rgba(0,0,0,.82), rgba(0,0,0,.24)),
        linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.72));
}

.restaurant-content{
    position:relative;
    z-index:3;
    width:min(88%, 1200px);
    margin:auto;
}

.restaurant-content h2{
    max-width:760px;
    font-size:clamp(58px,7vw,120px);
    line-height:.94;
    letter-spacing:-.055em;
    margin-bottom:30px;
}

.restaurant-content p{
    max-width:560px;
    font-size:20px;
    line-height:1.9;
    color:rgba(255,255,255,.78);
    margin-bottom:38px;
}



.experience-section{
    background:#f5f1e8;
    padding:170px 0;
}

.experience-head{
    width:min(88%,1100px);
    margin:0 auto 100px;
}

.experience-head h2{
    max-width:960px;
    font-size:clamp(58px,7vw,118px);
    line-height:.95;
    letter-spacing:-.055em;
    color:#111;
}

.experience-list{
    width:min(92%,1320px);
    margin:auto;
}

.experience-item{
    display:grid;
    grid-template-columns:.15fr .35fr .3fr .45fr;
    gap:34px;
    align-items:center;
    padding:54px 0;
    border-top:1px solid rgba(0,0,0,.14);
}

.experience-item:last-child{
    border-bottom:1px solid rgba(0,0,0,.14);
}

.experience-item span{
    color:var(--color-gold);
    font-size:14px;
    font-weight:700;
    letter-spacing:.18em;
}

.experience-item h3{
    font-size:clamp(36px,4vw,64px);
    line-height:1;
    color:#111;
}

.experience-item p{
    font-size:18px;
    line-height:1.8;
    color:#666;
}

.experience-item img,
.experience-item figure img{
    height:300px;
    width:100%;
    object-fit:cover;
    transition:transform 1s ease;
}

.experience-item figure{margin:0;overflow:hidden}.experience-route{display:inline-block;margin-top:14px;color:#8d6b2c;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}

.experience-item:hover img{
    transform:scale(1.04);
}


.contact-hero{
    position:relative;
    min-height:95vh;
    display:flex;
    align-items:center;
    overflow:hidden;
    color:#fff;
    background:#111;
}

.contact-bg{
    position:absolute;
    inset:0;
    z-index:1;
}

.contact-bg img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.contact-overlay{
    position:absolute;
    inset:0;
    z-index:2;
    background:
        linear-gradient(90deg, rgba(0,0,0,.82), rgba(0,0,0,.28)),
        linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.76));
}

.contact-content{
    position:relative;
    z-index:3;
    width:min(88%,1200px);
    margin:auto;
}

.contact-content h2{
    max-width:900px;
    font-size:clamp(58px,7vw,118px);
    line-height:.94;
    letter-spacing:-.055em;
    margin-bottom:28px;
}

.contact-content p{
    max-width:560px;
    font-size:20px;
    line-height:1.9;
    color:rgba(255,255,255,.78);
    margin-bottom:38px;
}

.contact-actions{
    display:flex;
    gap:16px;
    flex-wrap:wrap;
}

.premium-hotel-cta{
    position:relative;
    padding:150px 6%;
    overflow:hidden;
    background:url('../images/landscape-2.jpg') center/cover;
    color:#fff;
    text-align:center;
}

.premium-hotel-cta::before{
    content:'';
    position:absolute;
    inset:0;
    background:rgba(0,0,0,.62);
}

.premium-hotel-cta > *{
    position:relative;
    z-index:2;
}

.premium-hotel-cta h2{
    max-width:900px;
    margin:20px auto 0;
    font-size:clamp(48px,6vw,96px);
    line-height:.96;
    letter-spacing:-.05em;
}

.premium-hotel-cta p{
    max-width:640px;
    margin:24px auto 38px;
    color:rgba(255,255,255,.8);
    font-size:19px;
}

.cta-actions{
    display:flex;
    justify-content:center;
    gap:14px;
    flex-wrap:wrap;
}
