/*
 * WAVE Spaces 0.2.0
 * Stable canvas rebuild.
 * One shared rail, no fixed content heights, no nested scrolling.
 */

.wave-spaces,
.wave-home-spaces{
    --gold:#dbab45;
    --gold-soft:#f0d28a;
    --ink:#050505;
    --panel:#0a0a0a;
    --panel-2:#0d0c0a;
    --text:#f1ece4;
    --muted:#b9b2a8;
    box-sizing:border-box;
    color:var(--text);
    font-family:Manrope,Arial,sans-serif;
}
.wave-spaces *,
.wave-home-spaces *{box-sizing:border-box}

/* =========================================================
   FULL SPACES PAGE
   ========================================================= */

.wave-spaces{
    width:min(1544px,calc(100% - 56px));
    max-width:none;
    margin:0 auto;
    padding:0 0 72px;
}
.wave-spaces svg{
    width:22px;
    height:22px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.6;
    stroke-linecap:round;
    stroke-linejoin:round;
}

/* Room switcher */
.wave-spaces__nav{
    position:relative;
    z-index:3;
    width:100%;
    margin:28px auto 0;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    background:#070707;
    border:1px solid rgba(219,171,69,.52);
    border-radius:14px;
    overflow:hidden;
}
.wave-spaces__nav a{
    min-width:0;
    min-height:68px;
    padding:12px 14px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:11px;
    color:var(--text)!important;
    text-decoration:none!important;
    border-right:1px solid rgba(219,171,69,.18);
    transition:background .2s ease,color .2s ease;
}
.wave-spaces__nav a:last-child{border-right:0}
.wave-spaces__nav a:hover,
.wave-spaces__nav a:focus-visible{
    color:var(--gold)!important;
    background:rgba(219,171,69,.065);
    outline:0;
}

/* Room cards */
.wave-room{
    scroll-margin-top:130px;
    width:100%;
    margin-top:38px;
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    align-items:stretch;
    background:linear-gradient(135deg,#0b0b0b,#050505);
    border:1px solid rgba(219,171,69,.30);
    border-radius:18px;
    overflow:hidden;
    box-shadow:0 18px 48px rgba(0,0,0,.22);
}
.wave-room--reverse .wave-room__image{order:2}
.wave-room--reverse .wave-room__content{order:1}

.wave-room__image{
    min-width:0;
    min-height:520px;
    background-position:center;
    background-size:cover;
    background-repeat:no-repeat;
}
.wave-room__image--empty{
    background:
        radial-gradient(circle at 70% 30%,rgba(219,171,69,.18),transparent 40%),
        linear-gradient(135deg,#17110a,#050505);
}

.wave-room__content{
    min-width:0;
    height:auto;
    min-height:520px;
    padding:56px clamp(34px,4vw,62px);
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:flex-start;
    overflow:visible!important;
    background:
        radial-gradient(circle at top right,rgba(219,171,69,.075),transparent 46%),
        #090909;
}
.wave-room__eyebrow,
.wave-spaces__events-copy>span,
.wave-home-spaces__eyebrow{
    display:block;
    color:var(--gold)!important;
    font-family:Manrope,Arial,sans-serif;
    font-size:13px;
    line-height:1.35;
    letter-spacing:2.2px;
    font-weight:700;
    text-transform:uppercase;
}
.wave-room__eyebrow{margin-bottom:14px}

.wave-room h2,
.wave-spaces__compare h2,
.wave-spaces__events h2,
.wave-spaces__booking-card h3{
    color:#f0e6d5;
    font-family:"Cormorant Garamond",Georgia,"Times New Roman",serif;
    font-weight:600;
}
.wave-room h2{
    max-width:720px;
    margin:0 0 26px;
    font-size:clamp(42px,4vw,62px);
    line-height:1.03;
}

.wave-room__chips{
    width:100%;
    margin:0 0 22px;
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}
.wave-room__chips span{
    padding:7px 11px;
    border:1px solid rgba(219,171,69,.45);
    border-radius:999px;
    background:rgba(219,171,69,.035);
    color:#e8dfd1;
    font-size:13px;
    line-height:1.25;
    white-space:normal;
}
.wave-room p{
    max-width:760px;
    margin:0 0 26px;
    color:var(--muted);
    font-size:17px;
    line-height:1.62;
}
.wave-room__actions{
    width:100%;
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}

/* Buttons */
.wave-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:46px;
    padding:11px 20px;
    border-radius:6px;
    text-decoration:none!important;
    font-size:15px;
    font-weight:650;
    line-height:1.1;
    transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease;
}
.wave-btn--gold{
    background:var(--gold);
    border:1px solid var(--gold);
    color:#080808!important;
}
.wave-btn--gold:hover,
.wave-btn--gold:focus-visible{
    background:#e8bb57;
    border-color:#e8bb57;
    color:#080808!important;
    transform:translateY(-1px);
    outline:0;
}
.wave-btn--outline{
    background:transparent;
    border:1px solid rgba(219,171,69,.72);
    color:#f1ece4!important;
}
.wave-btn--outline:hover,
.wave-btn--outline:focus-visible{
    background:rgba(219,171,69,.075);
    color:var(--gold)!important;
    outline:0;
}

/* Comparison */
.wave-spaces__compare{
    width:100%;
    margin-top:38px;
    padding:42px;
    background:#080808;
    border:1px solid rgba(219,171,69,.30);
    border-radius:18px;
}
.wave-spaces__compare h2{
    margin:0 0 28px;
    text-align:center;
    font-size:clamp(34px,3vw,46px);
    line-height:1.05;
}
.wave-spaces__compare-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
}
.wave-compare-card{
    min-width:0;
    min-height:150px;
    padding:25px 22px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    color:inherit!important;
    text-decoration:none!important;
    border:1px solid rgba(219,171,69,.24);
    border-radius:12px;
    background:#0b0b0b;
    cursor:pointer;
    transition:transform .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease;
}
.wave-compare-card__icon{
    display:inline-flex;
    margin-bottom:10px;
    color:var(--gold);
}
.wave-compare-card h3{
    margin:0 0 7px;
    color:#f0d28a;
    font-family:"Cormorant Garamond",Georgia,serif;
    font-size:25px;
    line-height:1;
    font-weight:600;
}
.wave-compare-card p{
    margin:0;
    color:var(--muted);
    font-size:14px;
    line-height:1.45;
}
.wave-compare-card:hover,
.wave-compare-card:focus-visible{
    transform:translateY(-2px);
    border-color:rgba(219,171,69,.62);
    background:linear-gradient(145deg,rgba(219,171,69,.085),rgba(255,255,255,.02));
    box-shadow:0 12px 28px rgba(0,0,0,.24);
    outline:0;
}

/* Private events / booking */
.wave-spaces__events{
    width:100%;
    margin-top:38px;
    min-height:350px;
    padding:48px;
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(280px,360px);
    align-items:center;
    gap:34px;
    background-size:cover;
    background-position:center;
    border:1px solid rgba(219,171,69,.30);
    border-radius:18px;
    overflow:hidden;
}
.wave-spaces__events--empty{
    background:
        radial-gradient(circle at 70% 40%,rgba(219,171,69,.13),transparent 35%),
        linear-gradient(135deg,#0e0e0e,#050505);
}
.wave-spaces__events-copy>span{margin-bottom:10px}
.wave-spaces__events h2{
    margin:0;
    font-size:clamp(36px,4vw,54px);
    line-height:1.03;
}
.wave-spaces__events-copy p{
    max-width:760px;
    margin:16px 0 24px;
    color:var(--muted);
    font-size:17px;
    line-height:1.58;
}
.wave-spaces__booking-card{
    min-width:0;
    padding:28px;
    background:rgba(8,8,8,.93);
    border:1px solid rgba(219,171,69,.36);
    border-radius:13px;
    box-shadow:0 16px 36px rgba(0,0,0,.28);
}
.wave-spaces__booking-card h3{
    margin:0 0 8px;
    font-size:29px;
    line-height:1.05;
}
.wave-spaces__booking-card p{
    margin:0 0 18px;
    color:var(--muted);
    font-size:15px;
    line-height:1.5;
}

/* Tablet: switch to vertical cards BEFORE content becomes squeezed. */
@media(max-width:1180px){
    .wave-spaces{
        width:calc(100% - 36px);
        padding-bottom:60px;
    }
    .wave-room,
    .wave-room--reverse{
        grid-template-columns:1fr;
    }
    .wave-room--reverse .wave-room__image,
    .wave-room--reverse .wave-room__content{order:initial}
    .wave-room__image{
        min-height:0;
        aspect-ratio:16/8.7;
    }
    .wave-room__content{
        min-height:0;
        padding:42px 36px 44px;
    }
    .wave-room h2{font-size:46px}
    .wave-spaces__events{
        grid-template-columns:1fr;
    }
    .wave-spaces__booking-card{max-width:520px}
}

/* Mobile */
@media(max-width:760px){
    .wave-spaces{
        width:calc(100% - 24px);
        padding:0 0 46px;
    }
    .wave-spaces__nav{
        margin-top:18px;
        border-radius:11px;
    }
    .wave-spaces__nav a{
        min-height:52px;
        padding:8px 5px;
        gap:5px;
        flex-direction:column;
        font-size:11px;
        line-height:1.15;
        text-align:center;
    }
    .wave-spaces__nav svg{width:17px;height:17px}
    .wave-room{
        scroll-margin-top:92px;
        margin-top:18px;
        border-radius:12px;
    }
    .wave-room__image{
        width:100%;
        aspect-ratio:16/10;
        min-height:0!important;
    }
    .wave-room__content{
        min-height:0!important;
        height:auto!important;
        max-height:none!important;
        overflow:visible!important;
        padding:26px 18px 28px;
        justify-content:flex-start;
    }
    .wave-room__eyebrow{
        margin-bottom:10px;
        font-size:11px;
        letter-spacing:1.9px;
    }
    .wave-room h2{
        margin-bottom:18px;
        font-size:32px;
        line-height:1.02;
    }
    .wave-room__chips{
        margin-bottom:18px;
        gap:6px;
    }
    .wave-room__chips span{
        padding:6px 8px;
        font-size:11px;
    }
    .wave-room p{
        margin-bottom:20px;
        font-size:14px;
        line-height:1.55;
    }
    .wave-room__actions{
        display:grid;
        grid-template-columns:1fr;
        gap:9px;
    }
    .wave-room__actions .wave-btn{width:100%}
    .wave-btn{
        width:100%;
        min-height:44px;
        padding:10px 15px;
        font-size:14px;
    }
    .wave-spaces__compare{
        margin-top:18px;
        padding:28px 14px 16px;
        border-radius:12px;
    }
    .wave-spaces__compare h2{
        margin-bottom:18px;
        font-size:30px;
    }
    .wave-spaces__compare-grid{
        grid-template-columns:1fr;
        gap:9px;
    }
    .wave-compare-card{
        min-height:0;
        padding:18px 14px;
    }
    .wave-compare-card h3{font-size:23px}
    .wave-spaces__events{
        margin-top:18px;
        min-height:0;
        padding:28px 18px;
        gap:22px;
        border-radius:12px;
        background-position:center;
    }
    .wave-spaces__events-copy>span{
        font-size:11px;
        letter-spacing:1.9px;
    }
    .wave-spaces__events h2{font-size:32px}
    .wave-spaces__events-copy p{
        margin:14px 0 20px;
        font-size:14px;
    }
    .wave-spaces__booking-card{
        max-width:none;
        width:100%;
        padding:21px 18px;
    }
    .wave-spaces__booking-card h3{font-size:27px}
}

/* =========================================================
   HOMEPAGE SPACES CARDS
   Same rail and same gold token as the rest of the site.
   ========================================================= */

.wp-block-shortcode:has(> .wave-home-spaces),
.wp-block-shortcode:has(.wave-home-spaces){
    margin-block-start:0!important;
    margin-top:0!important;
    padding-top:0!important;
}
.entry-content>.wp-block-shortcode:has(.wave-home-spaces){margin-top:0!important}

.wave-home-spaces{
    width:min(1544px,calc(100% - 56px));
    max-width:none;
    margin:0 auto;
    padding:56px 0 64px;
}
.wave-home-spaces__head{
    max-width:820px;
    margin:0 auto 38px;
    text-align:center;
}
.wave-home-spaces__eyebrow{
    margin-bottom:12px;
}
.wave-home-spaces__head h2{
    margin:0;
    color:#efe5d5;
    font-family:"Cormorant Garamond",Georgia,serif;
    font-size:56px;
    font-weight:600;
    line-height:1.02;
}
.wave-home-spaces__head p{
    max-width:760px;
    margin:16px auto 0;
    color:var(--muted);
    font-size:17px;
    line-height:1.58;
}
.wave-home-spaces__grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    align-items:stretch;
    gap:18px;
}
.wave-home-space-card{
    position:relative;
    isolation:isolate;
    display:block;
    height:520px;
    min-height:520px;
    overflow:hidden;
    border:1px solid rgba(219,171,69,.35);
    border-radius:18px;
    background:#080808;
    color:var(--text)!important;
    text-decoration:none!important;
    box-shadow:0 18px 46px rgba(0,0,0,.24);
    transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease;
}
.wave-home-space-card:hover,
.wave-home-space-card:focus-visible{
    transform:translateY(-4px);
    border-color:rgba(240,210,138,.76);
    box-shadow:0 24px 54px rgba(0,0,0,.34);
    outline:0;
}
.wave-home-space-card__media,
.wave-home-space-card__shade{position:absolute;inset:0}
.wave-home-space-card__media{
    z-index:-2;
    background-position:center;
    background-size:cover;
    transition:transform .45s ease;
}
.wave-home-space-card:hover .wave-home-space-card__media,
.wave-home-space-card:focus-visible .wave-home-space-card__media{transform:scale(1.035)}
.wave-home-space-card__media--empty{
    background:
        radial-gradient(circle at 70% 25%,rgba(219,171,69,.22),transparent 40%),
        linear-gradient(145deg,#1a130a,#050505);
}
.wave-home-space-card__shade{
    z-index:-1;
    background:linear-gradient(180deg,rgba(0,0,0,.04) 16%,rgba(0,0,0,.42) 49%,rgba(0,0,0,.96) 100%);
}
.wave-home-space-card__body{
    position:absolute;
    inset:auto 0 0;
    min-height:255px;
    padding:30px 28px;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    align-items:flex-start;
}
.wave-home-space-card__icon{
    display:inline-flex;
    margin-bottom:12px;
    color:var(--gold);
}
.wave-home-space-card__icon svg{
    width:25px;
    height:25px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.5;
    stroke-linecap:round;
    stroke-linejoin:round;
}
.wave-home-space-card strong{
    display:block;
    margin:0 0 6px;
    color:#f2dfb3;
    font-family:"Cormorant Garamond",Georgia,serif;
    font-size:35px;
    font-weight:600;
    line-height:1;
}
.wave-home-space-card__subtitle{
    color:#f3eee7;
    font-size:17px;
    font-weight:600;
    line-height:1.3;
}
.wave-home-space-card__text{
    margin-top:8px;
    color:#c4bdb3;
    font-size:14px;
    line-height:1.5;
}
.wave-home-space-card__cta{
    display:inline-flex;
    align-items:center;
    gap:7px;
    margin-top:16px;
    color:var(--gold-soft);
    font-size:14px;
    font-weight:700;
}

@media(max-width:1180px){
    .wave-home-spaces{
        width:calc(100% - 36px);
        padding:48px 0 56px;
    }
    .wave-home-spaces__head h2{font-size:45px}
    .wave-home-space-card{height:460px;min-height:460px}
    .wave-home-space-card__body{min-height:235px;padding:26px 22px}
    .wave-home-space-card strong{font-size:31px}
}
@media(max-width:760px){
    .wave-home-spaces{
        width:calc(100% - 24px);
        padding:38px 0 46px;
    }
    .wave-home-spaces__head{margin-bottom:26px}
    .wave-home-spaces__eyebrow{font-size:11px;letter-spacing:1.9px}
    .wave-home-spaces__head h2{font-size:34px;line-height:1.05}
    .wave-home-spaces__head p{font-size:14px;line-height:1.58}
    .wave-home-spaces__grid{grid-template-columns:1fr;gap:14px}
    .wave-home-space-card{
        height:430px;
        min-height:430px;
        border-radius:12px;
    }
    .wave-home-space-card__body{
        min-height:225px;
        padding:24px 20px;
    }
    .wave-home-space-card strong{font-size:32px}
    .wave-home-space-card__subtitle{font-size:16px}
}

/* =========================================================
   SPACES PAGE HERO — SAME DESKTOP CANVAS AS CONTENT
   0.2.1: prevents Kadence/Gutenberg full-width hero from
   expanding to viewport edges when browser zoom is reduced.
   Mobile hero behavior is intentionally left untouched.
   ========================================================= */
@media (min-width:1025px){
    .wave-spaces-page-hero-rail{
        width:min(1544px,calc(100% - 56px))!important;
        max-width:1544px!important;
        min-width:0!important;
        margin-left:auto!important;
        margin-right:auto!important;
        left:auto!important;
        right:auto!important;
        transform:none!important;
    }
    .wave-spaces-page-hero-rail.alignfull,
    .wave-spaces-page-hero-rail.alignwide{
        width:min(1544px,calc(100% - 56px))!important;
        max-width:1544px!important;
        margin-left:auto!important;
        margin-right:auto!important;
    }
}
