/*
Theme Name: The Dunes House
Theme URI: https://dreamwebdesign.co.uk/
Author: Dream Web Design
Author URI: https://dreamwebdesign.co.uk/
Description: Complete direct-booking demonstration theme for The Dunes House independent Southport hotel.
Version: 1.2.0
Text Domain: dunes-house
*/
:root{--ink:#182722;--stone:#f3f0e9;--paper:#fffdf9;--moss:#536958;--sand:#d7b787;--line:#d9d6ce;--muted:#64706c;--container:1280px;--shadow:0 21px 52px rgba(20,30,25,.18)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:86px}body{margin:0;overflow-x:hidden;background:var(--paper);color:var(--ink);font-family:"DM Sans",Arial,sans-serif;-webkit-font-smoothing:antialiased}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}img{display:block;max-width:100%;height:auto}button,input,select{font:inherit}button,select,input[type=date]{appearance:none}.dunes-container{width:min(var(--container),calc(100% - 68px));margin-inline:auto}.dunes-eyebrow{margin:0 0 14px;color:var(--moss);font-size:11px;font-weight:700;letter-spacing:.15em;text-transform:uppercase}h1,h2,h3,.dunes-brand{font-family:"Playfair Display",Georgia,serif;font-weight:500;letter-spacing:-.04em}.dunes-button{display:inline-flex;min-height:46px;align-items:center;justify-content:center;gap:8px;padding:0 21px;border:1px solid transparent;background:transparent;color:inherit;font-size:12px;font-weight:700;letter-spacing:.03em;transition:.2s ease;cursor:pointer}.dunes-button:hover{transform:translateY(-1px)}.dunes-button--light{border-color:rgba(255,255,255,.65);color:#fff}.dunes-button--light:hover{background:#fff;color:var(--ink)}.dunes-button--dark{background:var(--ink);color:#fff}.dunes-button--dark:hover{background:var(--moss)}
.dunes-site-header{position:absolute;z-index:30;inset:0 0 auto;color:#fff}.dunes-nav{width:min(1280px,calc(100% - 68px));min-height:84px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:26px}.dunes-brand{display:flex;flex-direction:column;line-height:.88;font-size:27px;letter-spacing:-.06em}.dunes-brand span{margin-top:8px;font-family:"DM Sans",Arial,sans-serif;font-size:8px;font-weight:600;line-height:1.2;letter-spacing:.21em;text-transform:uppercase}.dunes-nav__links{display:flex;align-items:center;gap:28px;font-size:13px}.dunes-menu-toggle{display:none;width:46px;height:46px;padding:0;border:1px solid rgba(255,255,255,.5);background:rgba(10,20,16,.12);color:#fff;cursor:pointer}.dunes-menu-toggle span,.dunes-menu-toggle:before,.dunes-menu-toggle:after{display:block;width:20px;height:1px;margin:5px auto;background:currentColor;content:"";transition:.2s ease}.menu-open .dunes-menu-toggle span{opacity:0}.menu-open .dunes-menu-toggle:before{transform:translateY(6px) rotate(45deg)}.menu-open .dunes-menu-toggle:after{transform:translateY(-6px) rotate(-45deg)}.dunes-mobile-menu{position:fixed;z-index:25;inset:0;display:grid;align-content:center;gap:22px;padding:90px 28px 40px;background:rgba(18,31,26,.98);color:#fff;opacity:0;visibility:hidden;transform:translateY(-10px);transition:.2s ease}.menu-open .dunes-mobile-menu{opacity:1;visibility:visible;transform:none}.dunes-mobile-menu a{font-family:"Playfair Display",Georgia,serif;font-size:34px}.dunes-mobile-menu .dunes-button{width:max-content;margin-top:10px;font-family:"DM Sans",Arial,sans-serif;font-size:12px}
.dunes-hero{position:relative;display:grid;min-height:710px;align-items:end;overflow:visible;background:#31433b;color:#fff}.dunes-hero:before{position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,24,20,.76) 0%,rgba(12,24,20,.38) 52%,rgba(12,24,20,.16) 100%),linear-gradient(0deg,rgba(12,24,20,.48),transparent 45%);content:""}.dunes-hero__content{position:relative;z-index:1;width:min(var(--container),calc(100% - 68px));margin:0 auto;padding:150px 0 174px}.dunes-hero .dunes-eyebrow{color:#f4dfbd}.dunes-hero h1{max-width:740px;margin:0;font-size:clamp(56px,7.5vw,104px);line-height:.94}.dunes-hero__intro{max-width:470px;margin:26px 0 0;color:rgba(255,255,255,.9);font-size:17px;line-height:1.65}
.dunes-booking-bar{position:absolute;z-index:5;bottom:-52px;left:50%;width:min(1090px,calc(100% - 48px));display:grid;grid-template-columns:1.05fr 1fr 1fr .8fr auto;transform:translateX(-50%);background:var(--paper);color:var(--ink);box-shadow:var(--shadow)}.dunes-booking-field{min-height:104px;padding:23px 24px;border-right:1px solid var(--line)}.dunes-booking-field label{display:block;margin-bottom:7px;color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.11em;text-transform:uppercase}.dunes-booking-field small{display:block;margin-top:4px;color:var(--muted);font-size:11px}.dunes-booking-control{width:100%;min-height:34px;padding:0 22px 0 0;border:0;border-radius:0;outline:0;background:transparent;color:var(--ink);font-family:"Playfair Display",Georgia,serif;font-size:18px;font-weight:500}.dunes-booking-field--select{position:relative}.dunes-booking-field--select:after{position:absolute;right:22px;bottom:34px;width:7px;height:7px;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);content:"";transform:rotate(45deg);pointer-events:none}.dunes-booking-bar .dunes-button{align-self:stretch;min-width:158px;border-radius:0}
.dunes-main{width:min(var(--container),calc(100% - 68px));margin:0 auto;padding:170px 0 95px}.dunes-intro{display:grid;grid-template-columns:.75fr 1.25fr;gap:100px;align-items:end}.dunes-intro h2{max-width:460px;margin:0;font-size:clamp(38px,4vw,61px);line-height:1.02}.dunes-intro__copy{max-width:550px;margin:0;color:#53605b;font-size:17px;line-height:1.75}.dunes-stays{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:66px}.dunes-stay{background:#f4f1ea;transition:.24s ease}.dunes-stay:hover{transform:translateY(-5px);box-shadow:0 18px 44px rgba(24,39,34,.1)}.dunes-stay__image{height:365px;background-color:#d8d4ca;background-position:center;background-size:cover}.dunes-stay:nth-child(1) .dunes-stay__image{background-image:url("./assets/images/hotel/hotel-2.webp")}.dunes-stay:nth-child(2) .dunes-stay__image{background-image:url("./assets/images/hotel/hotel-1.webp")}.dunes-stay:nth-child(3) .dunes-stay__image{background-image:url("./assets/images/hotel/hotel-4.webp")}.dunes-stay__body{padding:25px 25px 28px}.dunes-stay h3{margin:0;font-size:29px}.dunes-stay__meta{min-height:40px;margin:13px 0 25px;color:var(--muted);font-size:13px;line-height:1.5}.dunes-stay__bottom{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-top:18px;border-top:1px solid var(--line);font-size:13px}.dunes-stay__bottom strong{font-size:15px}.dunes-stay__bottom a{font-weight:700}
.dunes-story{display:grid;grid-template-columns:1.05fr .95fr;min-height:610px;margin-top:80px;background:var(--ink);color:#fff}.dunes-story__image{min-height:500px;background:url("./assets/images/southport/southport-beach.webp") center/cover}.dunes-story__copy{display:flex;flex-direction:column;justify-content:center;padding:90px 78px}.dunes-story__copy .dunes-eyebrow{color:#dec294}.dunes-story h2{max-width:470px;margin:0;font-size:clamp(40px,4.5vw,66px);line-height:1.03}.dunes-story__copy>p:not(.dunes-eyebrow){max-width:440px;margin:26px 0 0;color:#d5dbd6;line-height:1.75}.dunes-text-link{width:max-content;margin-top:34px;font-size:13px;font-weight:700;text-decoration:underline;text-underline-offset:7px}
.dunes-book{padding:88px 0;background:var(--stone)}.dunes-book__grid{width:min(var(--container),calc(100% - 68px));margin:auto;display:grid;grid-template-columns:.85fr 1.15fr;gap:86px}.dunes-book h2{margin:0;font-size:clamp(42px,4.5vw,68px);line-height:1}.dunes-book__left>p:not(.dunes-eyebrow){max-width:500px;color:#53605b;line-height:1.7}.dunes-book__points{display:grid;gap:13px;margin-top:28px;padding:0;list-style:none}.dunes-book__points li{display:flex;align-items:center;gap:11px;color:#44534d;font-size:13px}.dunes-book__points li:before{width:7px;height:7px;border-radius:50%;background:var(--sand);content:""}.dunes-panel{padding:28px;background:var(--paper);box-shadow:0 15px 35px rgba(30,35,30,.07)}.dunes-panel__head{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-bottom:23px;border-bottom:1px solid var(--line)}.dunes-panel__head strong{font-family:"Playfair Display",Georgia,serif;font-size:23px;font-weight:500}.dunes-panel__head span{color:var(--moss);font-size:12px;font-weight:700}.dunes-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;margin:26px 0;text-align:center}.dunes-calendar__day-name{padding-bottom:8px;color:var(--muted);font-size:10px;font-weight:700;text-transform:uppercase}.dunes-calendar button{aspect-ratio:1;padding:0;border:0;background:transparent;color:var(--ink);font-size:12px;cursor:pointer}.dunes-calendar button:hover:not(:disabled),.dunes-calendar button.is-selected{background:var(--moss);color:#fff}.dunes-calendar button:disabled{color:#a8aca8;text-decoration:line-through;cursor:not-allowed}.dunes-calendar button.is-empty{pointer-events:none}.dunes-booking-summary{display:grid;grid-template-columns:1fr 1fr;gap:17px;padding-top:23px;border-top:1px solid var(--line)}.dunes-booking-summary div{padding:14px;background:#f5f2eb}.dunes-booking-summary span{display:block;color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.dunes-booking-summary strong{display:block;margin-top:7px;font-family:"Playfair Display",Georgia,serif;font-size:18px;font-weight:500}.dunes-panel .dunes-button{width:100%;margin-top:20px}.dunes-booking-note{display:none;margin:14px 0 0;color:var(--moss);font-size:12px;font-weight:700;text-align:center}.dunes-booking-note.is-visible{display:block}
.dunes-footer{padding:38px 0;background:#121f1a;color:#fff}.dunes-footer__inner{width:min(1212px,calc(100% - 68px));margin:auto;display:flex;justify-content:space-between;align-items:center;gap:30px;color:#c2cbc5;font-size:12px}.dunes-footer__inner .dunes-brand{color:#fff}.dunes-footer__right{display:flex;align-items:center;gap:24px}.dunes-footer__right a{color:#fff;text-decoration:underline;text-underline-offset:4px}.dunes-page{min-height:70vh;padding:140px 0 80px}.dunes-page h1{font-size:clamp(42px,6vw,72px)}.dunes-page__content{max-width:760px;color:#53605b;line-height:1.75}.admin-bar .dunes-site-header{top:32px}
@media(max-width:900px){.dunes-nav{width:calc(100% - 44px)}.dunes-nav__links{display:none}.dunes-menu-toggle{display:block}.dunes-hero{min-height:720px}.dunes-hero__content{width:calc(100% - 48px);padding:140px 0 240px}.dunes-booking-bar{bottom:-164px;width:calc(100% - 32px);grid-template-columns:1fr 1fr}.dunes-booking-field{min-height:92px;padding:18px}.dunes-booking-field:nth-child(even){border-right:0}.dunes-booking-bar .dunes-button{grid-column:1/-1;min-height:56px}.dunes-main{width:calc(100% - 48px);padding:250px 0 64px}.dunes-intro,.dunes-story,.dunes-book__grid{grid-template-columns:1fr}.dunes-intro{gap:28px}.dunes-stays{grid-template-columns:1fr}.dunes-stay__image{height:380px}.dunes-story{margin-top:80px}.dunes-story__image{min-height:440px}.dunes-story__copy{padding:60px 42px}.dunes-book{padding:76px 0}.dunes-book__grid{width:calc(100% - 48px);gap:44px}.dunes-panel{padding:25px 20px}.dunes-footer__inner{width:calc(100% - 48px);align-items:flex-start;flex-direction:column}}
@media(max-width:520px){.admin-bar .dunes-site-header{top:46px}.dunes-brand{font-size:22px}.dunes-mobile-menu a{font-size:30px}.dunes-hero{min-height:680px}.dunes-hero__content{padding-bottom:235px}.dunes-hero h1{font-size:clamp(52px,16vw,76px)}.dunes-hero__intro{font-size:15px}.dunes-booking-bar{bottom:-215px}.dunes-booking-field{min-height:90px;padding:16px 14px}.dunes-booking-control{font-size:15px}.dunes-booking-field small{font-size:10px}.dunes-booking-field--select:after{right:13px;bottom:35px}.dunes-main{width:calc(100% - 32px);padding-top:300px}.dunes-intro h2{font-size:43px}.dunes-stay__image{height:300px}.dunes-stay__bottom{align-items:flex-start;flex-direction:column}.dunes-story__image{min-height:330px}.dunes-story__copy{padding:48px 25px}.dunes-book__grid{width:calc(100% - 32px)}.dunes-panel__head{align-items:flex-start;flex-direction:column;gap:7px}.dunes-calendar{gap:4px}.dunes-booking-summary{grid-template-columns:1fr}.dunes-footer__inner{width:calc(100% - 32px)}.dunes-footer__right{align-items:flex-start;flex-direction:column;gap:10px}}


/* =========================================================
   V0.5 — CONTROLLED HOMEPAGE
   ========================================================= */

.admin-bar .dunes-site-header{
    top:32px;
}

.admin-bar .dunes-nav{
    padding-top:8px;
}

.dunes-trust{
    background:var(--paper);
    border-bottom:1px solid var(--line);
}

.dunes-trust__inner{
    width:min(1120px,calc(100% - 48px));
    margin:0 auto;
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
}

.dunes-trust__item{
    min-height:78px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    padding:16px 12px;
    border-right:1px solid var(--line);
}

.dunes-trust__item:first-child{
    border-left:1px solid var(--line);
}

.dunes-trust__icon{
    width:28px;
    height:28px;
    flex:0 0 28px;
    display:grid;
    place-items:center;
    border:1px solid var(--sand);
    border-radius:50%;
    color:var(--moss);
    font-size:11px;
    font-weight:700;
}

.dunes-trust__item strong{
    display:block;
    font-family:"Playfair Display",Georgia,serif;
    font-size:14px;
    font-weight:500;
}

.dunes-trust__item span:not(.dunes-trust__icon){
    display:block;
    margin-top:2px;
    color:var(--muted);
    font-size:9px;
    line-height:1.35;
}

.dunes-why{
    margin-top:64px;
}

.dunes-why__head{
    display:grid;
    grid-template-columns:.8fr 1.2fr;
    gap:80px;
    align-items:end;
}

.dunes-why__head h2{
    max-width:520px;
    margin:0;
    font-size:clamp(40px,4.5vw,60px);
    line-height:1.02;
}

.dunes-why__head p:last-child{
    max-width:560px;
    margin:0;
    color:var(--muted);
    font-size:15px;
    line-height:1.7;
}

.dunes-why__grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    margin-top:42px;
    border:1px solid var(--line);
}

.dunes-why__card{
    min-height:180px;
    padding:28px 26px;
    border-right:1px solid var(--line);
    border-bottom:1px solid var(--line);
}

.dunes-why__card:nth-child(3n){
    border-right:0;
}

.dunes-why__card:nth-last-child(-n+3){
    border-bottom:0;
}

.dunes-why__card h3{
    margin:12px 0 0;
    font-size:22px;
}

.dunes-why__card p{
    margin:9px 0 0;
    color:var(--muted);
    font-size:12px;
    line-height:1.55;
}

.dunes-why__mini{
    color:var(--moss);
    font-size:16px;
}

.dunes-gallery-lite{
    display:grid;
    grid-template-columns:1.35fr .65fr;
    gap:12px;
    margin-top:64px;
}

.dunes-gallery-lite__main{
    min-height:470px;
    background:url("./assets/images/hotel/hotel-2.webp") center/cover;
}

.dunes-gallery-lite__side{
    display:grid;
    grid-template-rows:1fr 1fr;
    gap:12px;
}

.dunes-gallery-lite__side div:first-child{
    background:url("./assets/images/hotel/hotel-1.webp") center/cover;
}

.dunes-gallery-lite__side div:last-child{
    background:url("./assets/images/hotel/hotel-4.webp") center/cover;
}

.dunes-gallery-lite__copy{
    grid-column:1/-1;
    display:flex;
    justify-content:space-between;
    gap:50px;
    align-items:end;
    padding-top:18px;
}

.dunes-gallery-lite__copy h2{
    max-width:560px;
    margin:0;
    font-size:clamp(38px,4vw,56px);
    line-height:1.02;
}

.dunes-gallery-lite__copy p{
    max-width:470px;
    margin:0;
    color:var(--muted);
    line-height:1.7;
}

.dunes-southport-lite{
    display:grid;
    grid-template-columns:.8fr 1.2fr;
    gap:70px;
    align-items:center;
    margin-top:64px;
    padding:54px;
    background:var(--ink);
    color:#fff;
}

.dunes-southport-lite .dunes-eyebrow{
    color:#dec294;
}

.dunes-southport-lite h2{
    margin:0;
    font-size:clamp(38px,4vw,58px);
    line-height:1.02;
}

.dunes-southport-lite__grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:14px;
}

.dunes-southport-lite__card{
    padding:22px;
    border:1px solid rgba(255,255,255,.14);
}

.dunes-southport-lite__card strong{
    display:block;
    font-family:"Playfair Display",Georgia,serif;
    font-size:18px;
    font-weight:500;
}

.dunes-southport-lite__card span{
    display:block;
    margin-top:7px;
    color:#c8d0cc;
    font-size:10px;
    line-height:1.45;
}

.dunes-book__badges{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    margin-top:26px;
}

.dunes-book__badge{
    padding:14px;
    border:1px solid #d2cec5;
    background:rgba(255,255,255,.35);
}

.dunes-book__badge strong{
    display:block;
    font-family:"Playfair Display",Georgia,serif;
    font-size:16px;
    font-weight:500;
}

.dunes-book__badge span{
    display:block;
    margin-top:4px;
    color:var(--muted);
    font-size:10px;
    line-height:1.45;
}

.dunes-faq{
    width:min(920px,calc(100% - 48px));
    margin:60px auto;
}

.dunes-faq__head{
    max-width:620px;
    margin:0 auto 32px;
    text-align:center;
}

.dunes-faq__head h2{
    margin:0;
    font-size:clamp(38px,4vw,56px);
}

.dunes-faq__head p{
    color:var(--muted);
    line-height:1.65;
}

.dunes-faq details{
    border-top:1px solid var(--line);
}

.dunes-faq details:last-child{
    border-bottom:1px solid var(--line);
}

.dunes-faq summary{
    position:relative;
    padding:19px 40px 19px 0;
    list-style:none;
    font-family:"Playfair Display",Georgia,serif;
    font-size:18px;
    cursor:pointer;
}

.dunes-faq summary::-webkit-details-marker{
    display:none;
}

.dunes-faq summary::after{
    position:absolute;
    right:6px;
    top:50%;
    content:"+";
    font-family:"DM Sans",Arial,sans-serif;
    font-size:20px;
    transform:translateY(-50%);
}

.dunes-faq details[open] summary::after{
    content:"–";
}

.dunes-faq details p{
    max-width:760px;
    margin:-2px 0 20px;
    color:var(--muted);
    font-size:12px;
    line-height:1.7;
}

.dunes-footer{
    padding:44px 0 26px;
    background:#121f1a;
    color:#fff;
}

.dunes-footer__inner{
    width:min(1212px,calc(100% - 68px));
    margin:auto;
    display:grid;
    grid-template-columns:1.3fr repeat(3,1fr);
    gap:44px;
    align-items:start;
}

.dunes-footer__col strong{
    display:block;
    margin-bottom:10px;
    font-family:"Playfair Display",Georgia,serif;
    font-size:16px;
    font-weight:500;
}

.dunes-footer__col a,
.dunes-footer__col span{
    display:block;
    margin-top:6px;
    color:#bfc8c3;
    font-size:10px;
    line-height:1.5;
}

.dunes-footer__bottom{
    width:min(1212px,calc(100% - 68px));
    margin:28px auto 0;
    padding-top:18px;
    display:flex;
    justify-content:space-between;
    gap:20px;
    border-top:1px solid rgba(255,255,255,.12);
    color:#89968f;
    font-size:9px;
}

@media(max-width:900px){
    .dunes-trust__inner{
        grid-template-columns:repeat(2,1fr);
        width:100%;
    }

    .dunes-trust__item{
        border-bottom:1px solid var(--line);
    }

    .dunes-trust__item:last-child{
        grid-column:1/-1;
    }

    .dunes-why__head,
    .dunes-southport-lite{
        grid-template-columns:1fr;
        gap:30px;
    }

    .dunes-why__grid{
        grid-template-columns:1fr 1fr;
    }

    .dunes-why__card:nth-child(3n){
        border-right:1px solid var(--line);
    }

    .dunes-why__card:nth-child(2n){
        border-right:0;
    }

    .dunes-why__card:nth-last-child(-n+3){
        border-bottom:1px solid var(--line);
    }

    .dunes-why__card:nth-last-child(-n+2){
        border-bottom:0;
    }

    .dunes-gallery-lite{
        grid-template-columns:1fr;
    }

    .dunes-gallery-lite__main{
        min-height:360px;
    }

    .dunes-gallery-lite__side{
        grid-template-columns:1fr 1fr;
        grid-template-rows:260px;
    }

    .dunes-gallery-lite__copy{
        flex-direction:column;
        align-items:flex-start;
    }

    .dunes-southport-lite{
        padding:40px 32px;
    }

    .dunes-footer__inner{
        grid-template-columns:1fr 1fr;
    }
}

@media(max-width:520px){
    .admin-bar .dunes-site-header{
        top:46px;
    }

    .dunes-trust__inner{
        grid-template-columns:1fr;
    }

    .dunes-trust__item:last-child{
        grid-column:auto;
    }

    .dunes-why{
        margin-top:60px;
    }

    .dunes-why__grid{
        grid-template-columns:1fr;
    }

    .dunes-why__card,
    .dunes-why__card:nth-child(2n),
    .dunes-why__card:nth-child(3n){
        border-right:0;
        border-bottom:1px solid var(--line);
    }

    .dunes-why__card:last-child{
        border-bottom:0;
    }

    .dunes-gallery-lite{
        margin-top:60px;
    }

    .dunes-gallery-lite__side{
        grid-template-columns:1fr;
        grid-template-rows:220px 220px;
    }

    .dunes-southport-lite{
        margin-top:60px;
        padding:34px 24px;
    }

    .dunes-southport-lite__grid{
        grid-template-columns:1fr;
    }

    .dunes-book__badges{
        grid-template-columns:1fr;
    }

    .dunes-footer__inner{
        width:calc(100% - 32px);
        grid-template-columns:1fr;
        gap:26px;
    }

    .dunes-footer__bottom{
        width:calc(100% - 32px);
        flex-direction:column;
    }
}


/* V0.6 homepage polish */
.dunes-hero::before{background-position:center 52%;}
.dunes-hero__intro{max-width:500px;}
.dunes-main{padding-top:122px;}
.dunes-intro{gap:82px;}
.dunes-stays{margin-top:54px;}
.dunes-why,.dunes-gallery-lite,.dunes-southport-lite{margin-top:64px;}
.dunes-book{padding-top:72px;padding-bottom:72px;}
.dunes-faq{margin-top:60px;margin-bottom:60px;}

@media(max-width:900px){
    .dunes-hero{min-height:680px;}
    .dunes-hero__content{padding-top:132px;padding-bottom:225px;}
    .dunes-main{padding-top:205px;}
    .dunes-intro{gap:24px;}
}
@media(max-width:520px){
    .dunes-hero{min-height:650px;}
    .dunes-main{padding-top:250px;}
}


/* =========================================================
   V0.7 — COPY, ICONS & SUPPORTING PAGES
   ========================================================= */

.dunes-why__svg{
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    color:var(--moss);
}

.dunes-why__svg svg{
    width:30px;
    height:30px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.dunes-book__grid{
    grid-template-columns:.95fr 1.05fr;
    gap:58px;
}

.dunes-book__contact{
    margin-top:20px;
    padding-top:18px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    border-top:1px solid #d4d0c7;
}

.dunes-book__contact .dunes-eyebrow{
    margin-bottom:5px;
}

.dunes-book__contact strong{
    display:block;
    max-width:300px;
    font-family:"Playfair Display",Georgia,serif;
    font-size:17px;
    font-weight:500;
    line-height:1.35;
}

.dunes-book__contact .dunes-button{
    margin:0;
    width:auto;
    white-space:nowrap;
}

.dunes-footer__inner{
    grid-template-columns:1.35fr repeat(4,1fr);
}

.dunes-subpage{
    min-height:70vh;
}

.dunes-subpage-hero{
    padding:170px 0 82px;
    background:var(--stone);
}

.dunes-subpage-hero--southport{
    background:
        linear-gradient(90deg,rgba(12,24,20,.75),rgba(12,24,20,.28)),
        url("./assets/images/southport/southport-beach.webp") center/cover;
    color:#fff;
}

.dunes-subpage-hero--southport .dunes-eyebrow{
    color:#f0d3a4;
}

.dunes-subpage-hero h1{
    max-width:760px;
    margin:0;
    font-size:clamp(52px,7vw,88px);
    line-height:.96;
}

.dunes-subpage-hero > .dunes-container > p:last-child{
    max-width:620px;
    margin:24px 0 0;
    color:var(--muted);
    font-size:17px;
    line-height:1.7;
}

.dunes-subpage-hero--southport > .dunes-container > p:last-child{
    color:rgba(255,255,255,.88);
}

.dunes-room-list{
    padding:72px 0 90px;
}

.dunes-room-row{
    display:grid;
    grid-template-columns:1.05fr .95fr;
    min-height:420px;
    margin-bottom:28px;
    background:var(--stone);
}

.dunes-room-row__image{
    min-height:420px;
    background:#d8d2c8 center/cover no-repeat;
}

.dunes-room-row__body{
    padding:54px;
    display:flex;
    flex-direction:column;
    justify-content:center;
}

.dunes-room-row__body h2{
    margin:0;
    font-size:45px;
}

.dunes-room-row__body > p:not(.dunes-eyebrow){
    color:var(--muted);
}

.dunes-room-row__bottom{
    margin-top:34px;
    padding-top:22px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    border-top:1px solid var(--line);
}

.dunes-local-grid{
    padding:78px 0;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1px;
    background:var(--line);
}

.dunes-local-grid article{
    min-height:240px;
    padding:34px;
    background:var(--paper);
}

.dunes-local-grid article span{
    color:var(--sand);
    font-size:11px;
    font-weight:700;
    letter-spacing:.12em;
}

.dunes-local-grid h2{
    margin:18px 0 0;
    font-size:29px;
}

.dunes-local-grid p{
    color:var(--muted);
    line-height:1.65;
}

.dunes-local-cta{
    padding:74px 0;
    background:var(--ink);
    color:#fff;
}

.dunes-local-cta .dunes-eyebrow{
    color:#f0d3a4;
}

.dunes-local-cta h2{
    max-width:650px;
    margin:0;
    font-size:52px;
}

.dunes-local-cta p{
    max-width:620px;
    color:#c6d0ca;
    line-height:1.7;
}

.dunes-contact-grid{
    padding:78px 0 90px;
    display:grid;
    grid-template-columns:.85fr 1.15fr;
    gap:72px;
}

.dunes-contact-grid h2{
    margin:0;
    font-size:52px;
}

.dunes-contact-grid > div > p{
    color:var(--muted);
    line-height:1.7;
}

.dunes-contact-points{
    margin-top:34px;
    display:grid;
    gap:12px;
}

.dunes-contact-points div{
    padding:18px;
    border:1px solid var(--line);
}

.dunes-contact-points strong{
    display:block;
    font-family:"Playfair Display",Georgia,serif;
    font-size:18px;
    font-weight:500;
}

.dunes-contact-points span{
    display:block;
    margin-top:4px;
    color:var(--muted);
    font-size:11px;
}

.dunes-contact-panel{
    padding:34px;
    background:var(--stone);
}

.dunes-contact-panel form{
    display:grid;
    gap:18px;
}

.dunes-contact-panel label span{
    display:block;
    margin-bottom:7px;
    color:var(--muted);
    font-size:10px;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.dunes-contact-panel label small{
    font-size:9px;
    font-weight:500;
    text-transform:none;
}

.dunes-contact-panel input,
.dunes-contact-panel textarea{
    width:100%;
    padding:13px 14px;
    border:1px solid #cfc9bf;
    background:var(--paper);
    color:var(--ink);
    outline:none;
}

.dunes-contact-panel input:focus,
.dunes-contact-panel textarea:focus{
    border-color:var(--moss);
}

.dunes-form-notice{
    margin-bottom:18px;
    padding:12px 14px;
    border:1px solid #c9a9a9;
    background:#fff6f6;
    font-size:12px;
}

.dunes-form-notice--success{
    border-color:#9eb2a4;
    background:#f2f7f3;
}

.dunes-hp{
    position:absolute!important;
    left:-9999px!important;
    width:1px!important;
    height:1px!important;
    overflow:hidden!important;
}

.dunes-stay-hero{
    min-height:620px;
    display:flex;
    align-items:end;
    padding:150px 0 80px;
    background:#304238 center/cover no-repeat;
    color:#fff;
}

.dunes-stay-hero .dunes-eyebrow{
    color:#f0d3a4;
}

.dunes-stay-hero h1{
    max-width:720px;
    margin:0;
    font-size:clamp(58px,7vw,94px);
    line-height:.95;
}

.dunes-stay-hero p{
    font-size:16px;
}

.dunes-stay-hero span{
    display:block;
    margin-top:22px;
}

.dunes-stay-detail{
    padding:76px 0 90px;
    display:grid;
    grid-template-columns:1.2fr .8fr;
    gap:80px;
}

.dunes-stay-detail h2{
    margin:0;
    font-size:52px;
}

.dunes-stay-detail__book{
    align-self:start;
    padding:30px;
    background:var(--stone);
}

.dunes-stay-detail__book > strong{
    display:block;
    font-family:"Playfair Display",Georgia,serif;
    font-size:24px;
    font-weight:500;
}

.dunes-stay-detail__book p{
    color:var(--muted);
    line-height:1.6;
}

.dunes-stay-detail__book .dunes-button{
    width:100%;
}

.dunes-stay-detail__book .dunes-text-link{
    display:block;
    margin:18px auto 0;
    text-align:center;
}

@media(max-width:1000px){
    .dunes-footer__inner{
        grid-template-columns:1fr 1fr 1fr;
    }

    .dunes-room-row,
    .dunes-contact-grid,
    .dunes-stay-detail{
        grid-template-columns:1fr;
    }

    .dunes-local-grid{
        grid-template-columns:1fr 1fr;
    }
}

@media(max-width:700px){
    .dunes-book__contact{
        align-items:flex-start;
        flex-direction:column;
    }

    .dunes-footer__inner{
        grid-template-columns:1fr 1fr;
    }

    .dunes-subpage-hero{
        padding-top:140px;
    }

    .dunes-room-row__body{
        padding:34px 26px;
    }

    .dunes-room-row__image{
        min-height:300px;
    }

    .dunes-local-grid{
        grid-template-columns:1fr;
    }

    .dunes-contact-grid{
        gap:38px;
    }
}

@media(max-width:520px){
    .dunes-footer__inner{
        grid-template-columns:1fr;
    }

    .dunes-subpage-hero h1{
        font-size:52px;
    }

    .dunes-local-cta h2,
    .dunes-contact-grid h2,
    .dunes-stay-detail h2{
        font-size:40px;
    }
}


/* =========================================================
   V0.8 — HOTEL HERO, MOVING GALLERY & RICHER SOUTHPORT
   ========================================================= */

.dunes-hero{
    isolation:isolate;
}

.dunes-hero:before{
    z-index:1;
    pointer-events:none;
}

.dunes-hero__slides{
    position:absolute;
    z-index:0;
    inset:0;
    overflow:hidden;
    background:#17231f;
}

.dunes-hero__slide{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    opacity:0;
    transform:scale(1.025);
    transition:opacity 1.15s ease,transform 7s ease;
}

.dunes-hero__slide.is-active{
    opacity:1;
    transform:scale(1);
}

.dunes-hero__content,
.dunes-booking-bar{
    z-index:3;
}

.dunes-hero__dots{
    position:absolute;
    z-index:4;
    right:max(34px,calc((100vw - 1280px)/2));
    bottom:102px;
    display:flex;
    gap:8px;
}

.dunes-hero__dot{
    width:28px;
    height:3px;
    padding:0;
    border:0;
    background:rgba(255,255,255,.38);
    cursor:pointer;
    transition:.25s ease;
}

.dunes-hero__dot.is-active{
    background:#fff;
}

.dunes-gallery-slider{
    position:relative;
    margin-top:64px;
}

.dunes-gallery-slider__viewport{
    overflow:hidden;
}

.dunes-gallery-slider__track{
    display:flex;
    transition:transform .8s cubic-bezier(.65,0,.2,1);
    will-change:transform;
}

.dunes-gallery-slide{
    flex:0 0 100%;
    display:grid;
    grid-template-columns:1.75fr .75fr;
    gap:12px;
    min-height:510px;
}

.dunes-gallery-slide__large,
.dunes-gallery-slide__small > div{
    min-height:0;
    background:#d8d4ca center/cover no-repeat;
}

.dunes-gallery-slide__small{
    display:grid;
    grid-template-rows:1fr 1fr;
    gap:12px;
}

.dunes-gallery-slider__controls{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:8px;
    margin-top:15px;
}

.dunes-gallery-slider__dot{
    width:30px;
    height:3px;
    padding:0;
    border:0;
    background:#d4d0c7;
    cursor:pointer;
}

.dunes-gallery-slider__dot.is-active{
    background:var(--moss);
}

.dunes-gallery-lite__copy{
    margin-top:18px;
}

.dunes-southport-lite{
    grid-template-columns:.66fr 1.34fr;
}

.dunes-southport-lite__grid{
    grid-template-columns:repeat(3,1fr);
    gap:11px;
}

.dunes-southport-lite__card{
    min-height:142px;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    padding:20px;
}

.dunes-southport-lite__card span{
    font-size:10px;
    line-height:1.5;
}

.dunes-southport-lite__link{
    display:inline-block;
    margin-top:22px;
    color:#f1d6a8;
    font-size:11px;
    font-weight:700;
    text-decoration:underline;
    text-underline-offset:6px;
}

.dunes-book__left{
    display:flex;
    min-height:100%;
    flex-direction:column;
}

.dunes-book__lead{
    margin:0 0 8px;
    color:#53605b;
    font-family:"Playfair Display",Georgia,serif;
    font-size:21px;
    line-height:1.45;
}

.dunes-book__instruction{
    max-width:500px;
    margin:0 0 24px;
    color:#53605b;
    font-size:13px;
    line-height:1.65;
}

.dunes-book__contact{
    margin-top:18px;
}

.dunes-book__filler{
    position:relative;
    min-height:210px;
    margin-top:22px;
    overflow:hidden;
    display:flex;
    align-items:flex-end;
    padding:24px;
    background:#24362f center/cover no-repeat;
    color:#fff;
}

.dunes-book__filler:before{
    position:absolute;
    inset:0;
    background:linear-gradient(0deg,rgba(12,24,20,.86),rgba(12,24,20,.10) 72%);
    content:"";
}

.dunes-book__filler > div{
    position:relative;
    z-index:1;
}

.dunes-book__filler .dunes-eyebrow{
    margin-bottom:7px;
    color:#f0d3a4;
}

.dunes-book__filler strong{
    display:block;
    max-width:350px;
    font-family:"Playfair Display",Georgia,serif;
    font-size:24px;
    font-weight:500;
    line-height:1.25;
}

.dunes-book__filler span{
    display:block;
    max-width:390px;
    margin-top:7px;
    color:rgba(255,255,255,.82);
    font-size:11px;
    line-height:1.55;
}

@media(max-width:900px){
    .dunes-hero__dots{
        right:24px;
        bottom:210px;
    }

    .dunes-gallery-slide{
        min-height:430px;
    }

    .dunes-southport-lite{
        grid-template-columns:1fr;
    }
}

@media(max-width:620px){
    .dunes-hero__dots{
        display:none;
    }

    .dunes-gallery-slide{
        grid-template-columns:1fr;
        min-height:auto;
    }

    .dunes-gallery-slide__large{
        min-height:300px;
    }

    .dunes-gallery-slide__small{
        grid-template-columns:1fr 1fr;
        grid-template-rows:190px;
    }

    .dunes-southport-lite__grid{
        grid-template-columns:1fr;
    }

    .dunes-book__filler{
        min-height:185px;
    }
}

@media(prefers-reduced-motion:reduce){
    .dunes-hero__slide,
    .dunes-gallery-slider__track{
        transition:none;
    }
}


/* =========================================================
   V0.9 — OUR ROOMS & INDIVIDUAL ROOM EXPERIENCE
   ========================================================= */

.dunes-rooms-hero{
    padding:178px 0 92px;
    background:
        linear-gradient(90deg,rgba(12,24,20,.78),rgba(12,24,20,.20)),
        url("./assets/images/hotel/hotel-1.webp") center/cover;
    color:#fff;
}

.dunes-rooms-hero .dunes-eyebrow{
    color:#f0d3a4;
}

.dunes-rooms-hero h1{
    max-width:820px;
    margin:0;
    font-size:clamp(58px,7vw,92px);
    line-height:.95;
}

.dunes-rooms-hero p{
    max-width:650px;
    margin:24px 0 0;
    color:rgba(255,255,255,.88);
    font-size:17px;
    line-height:1.7;
}

.dunes-rooms-hero__actions{
    display:flex;
    align-items:center;
    gap:24px;
    margin-top:30px;
}

.dunes-rooms-hero .dunes-text-link{
    color:#fff;
}

.dunes-room-compare{
    padding:72px 0 24px;
}

.dunes-room-compare__head{
    display:grid;
    grid-template-columns:.9fr 1.1fr;
    gap:70px;
    align-items:end;
}

.dunes-room-compare__head h2{
    margin:0;
    font-size:52px;
}

.dunes-room-compare__head > p{
    margin:0;
    color:var(--muted);
    line-height:1.7;
}

.dunes-room-compare__strip{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    margin-top:34px;
    border:1px solid var(--line);
}

.dunes-room-compare__strip span{
    padding:17px 18px;
    border-right:1px solid var(--line);
    font-size:11px;
    text-align:center;
}

.dunes-room-compare__strip span:last-child{
    border-right:0;
}

.dunes-room-list{
    padding:42px 0 78px;
}

.dunes-room-card-wide{
    display:grid;
    grid-template-columns:1.08fr .92fr;
    min-height:470px;
    margin-bottom:26px;
    background:var(--stone);
}

.dunes-room-card-wide.is-reversed{
    grid-template-columns:.92fr 1.08fr;
}

.dunes-room-card-wide.is-reversed .dunes-room-card-wide__image{
    order:2;
}

.dunes-room-card-wide__image{
    min-height:470px;
    background:#d7d2c8 center/cover no-repeat;
}

.dunes-room-card-wide__body{
    padding:48px;
    display:flex;
    flex-direction:column;
    justify-content:center;
}

.dunes-room-card-wide__body h2{
    margin:0;
    font-size:46px;
}

.dunes-room-card-wide__intro{
    margin:13px 0 0;
    color:var(--muted);
    line-height:1.65;
}

.dunes-room-card-wide__facts{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:8px;
    margin-top:28px;
}

.dunes-room-card-wide__facts span{
    padding:14px;
    border:1px solid var(--line);
}

.dunes-room-card-wide__facts small{
    display:block;
    margin-bottom:5px;
    color:var(--muted);
    font-size:9px;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.dunes-room-card-wide__facts strong{
    font-family:"Playfair Display",Georgia,serif;
    font-size:14px;
    font-weight:500;
}

.dunes-room-card-wide__footer{
    margin-top:30px;
    padding-top:22px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    border-top:1px solid var(--line);
}

.dunes-room-card-wide__footer > div{
    display:flex;
    align-items:center;
    gap:18px;
}

.dunes-room-help{
    padding:70px 0;
    background:var(--ink);
    color:#fff;
}

.dunes-room-help .dunes-container{
    display:grid;
    grid-template-columns:.8fr 1.2fr auto;
    gap:50px;
    align-items:center;
}

.dunes-room-help .dunes-eyebrow{
    color:#f0d3a4;
}

.dunes-room-help h2{
    margin:0;
    font-size:44px;
}

.dunes-room-help p{
    margin:0;
    color:#c7d0ca;
    line-height:1.7;
}

.dunes-room-hero{
    min-height:690px;
    display:flex;
    align-items:end;
    padding:170px 0 84px;
    background:#28362f center/cover no-repeat;
    color:#fff;
}

.dunes-room-hero .dunes-eyebrow{
    color:#f0d3a4;
}

.dunes-room-hero h1{
    max-width:820px;
    margin:0;
    font-size:clamp(64px,8vw,104px);
    line-height:.92;
}

.dunes-room-hero > .dunes-container > p:not(.dunes-eyebrow){
    margin:22px 0 0;
    font-size:17px;
}

.dunes-room-hero__actions{
    display:flex;
    align-items:center;
    gap:24px;
    margin-top:28px;
}

.dunes-room-facts{
    border-bottom:1px solid var(--line);
    background:var(--paper);
}

.dunes-room-facts__grid{
    display:grid;
    grid-template-columns:repeat(5,1fr);
}

.dunes-room-facts__grid > div{
    min-height:92px;
    padding:20px;
    border-right:1px solid var(--line);
}

.dunes-room-facts__grid > div:first-child{
    border-left:1px solid var(--line);
}

.dunes-room-facts small{
    display:block;
    color:var(--muted);
    font-size:9px;
    letter-spacing:.09em;
    text-transform:uppercase;
}

.dunes-room-facts strong{
    display:block;
    margin-top:5px;
    font-family:"Playfair Display",Georgia,serif;
    font-size:16px;
    font-weight:500;
}

.dunes-room-intro{
    padding:76px 0 58px;
    display:grid;
    grid-template-columns:.8fr 1.2fr;
    gap:80px;
    align-items:start;
}

.dunes-room-intro h2{
    margin:0;
    font-size:54px;
    line-height:1.02;
}

.dunes-room-intro__copy{
    color:var(--muted);
    font-size:15px;
    line-height:1.8;
}

.dunes-room-gallery{
    display:grid;
    grid-template-columns:1.55fr .75fr;
    gap:12px;
    min-height:520px;
}

.dunes-room-gallery__large,
.dunes-room-gallery__small > div{
    background:#d7d1c7 center/cover no-repeat;
}

.dunes-room-gallery__small{
    display:grid;
    grid-template-rows:1fr 1fr;
    gap:12px;
}

.dunes-room-details{
    padding:72px 0 82px;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:86px;
}

.dunes-room-details h2{
    margin:0;
    font-size:47px;
}

.dunes-room-highlights{
    margin-top:28px;
    display:grid;
    gap:10px;
}

.dunes-room-highlights div{
    display:flex;
    align-items:center;
    gap:12px;
    padding:14px 0;
    border-bottom:1px solid var(--line);
}

.dunes-room-highlights span{
    color:var(--moss);
}

.dunes-room-highlights strong{
    font-family:"Playfair Display",Georgia,serif;
    font-size:17px;
    font-weight:500;
}

.dunes-room-amenities{
    display:grid;
    grid-template-columns:1fr 1fr;
    border-top:1px solid var(--line);
    border-left:1px solid var(--line);
}

.dunes-room-amenities span{
    padding:14px;
    border-right:1px solid var(--line);
    border-bottom:1px solid var(--line);
    font-size:11px;
}

.dunes-room-book{
    padding:68px 0;
    background:var(--ink);
    color:#fff;
}

.dunes-room-book .dunes-eyebrow{
    color:#f0d3a4;
}

.dunes-room-book__grid{
    display:grid;
    grid-template-columns:1.25fr .75fr;
    gap:70px;
    align-items:center;
}

.dunes-room-book h2{
    margin:0;
    font-size:54px;
}

.dunes-room-book p{
    max-width:650px;
    color:#c6d0ca;
    line-height:1.7;
}

.dunes-room-book__actions{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:14px;
}

.dunes-room-book__actions > span{
    font-size:13px;
}

.dunes-room-book__actions .dunes-button{
    width:100%;
}

.dunes-text-link--light{
    color:#fff!important;
    text-align:center;
}

.dunes-other-rooms{
    padding:76px 0 90px;
}

.dunes-other-rooms__head{
    display:flex;
    justify-content:space-between;
    align-items:end;
    gap:30px;
}

.dunes-other-rooms__head h2{
    margin:0;
    font-size:48px;
}

.dunes-other-rooms__grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:22px;
    margin-top:34px;
}

.dunes-other-room-card{
    display:grid;
    grid-template-columns:1.1fr .9fr;
    background:var(--stone);
}

.dunes-other-room-card__image{
    min-height:290px;
    background:#d7d1c7 center/cover no-repeat;
}

.dunes-other-room-card > div{
    padding:28px;
    display:flex;
    flex-direction:column;
    justify-content:center;
}

.dunes-other-room-card h3{
    margin:0;
    font-size:27px;
}

.dunes-other-room-card > div > span{
    margin-top:14px;
    font-size:12px;
}

.dunes-other-room-card .dunes-text-link{
    margin-top:18px;
}

@media(max-width:950px){
    .dunes-room-card-wide,
    .dunes-room-card-wide.is-reversed,
    .dunes-room-help .dunes-container,
    .dunes-room-intro,
    .dunes-room-details,
    .dunes-room-book__grid{
        grid-template-columns:1fr;
    }

    .dunes-room-card-wide.is-reversed .dunes-room-card-wide__image{
        order:0;
    }

    .dunes-room-compare__head{
        grid-template-columns:1fr;
        gap:24px;
    }

    .dunes-room-facts__grid{
        grid-template-columns:repeat(3,1fr);
    }

    .dunes-room-gallery{
        grid-template-columns:1fr;
    }

    .dunes-room-gallery__large{
        min-height:390px;
    }

    .dunes-room-gallery__small{
        grid-template-columns:1fr 1fr;
        grid-template-rows:230px;
    }

    .dunes-other-rooms__grid{
        grid-template-columns:1fr;
    }
}

@media(max-width:650px){
    .dunes-rooms-hero,
    .dunes-room-hero{
        padding-top:150px;
    }

    .dunes-rooms-hero__actions,
    .dunes-room-hero__actions,
    .dunes-room-card-wide__footer,
    .dunes-other-rooms__head{
        align-items:flex-start;
        flex-direction:column;
    }

    .dunes-room-compare__strip{
        grid-template-columns:1fr 1fr;
    }

    .dunes-room-compare__strip span:nth-child(2){
        border-right:0;
    }

    .dunes-room-compare__strip span:nth-child(-n+2){
        border-bottom:1px solid var(--line);
    }

    .dunes-room-card-wide__facts{
        grid-template-columns:1fr;
    }

    .dunes-room-card-wide__image{
        min-height:320px;
    }

    .dunes-room-card-wide__body{
        padding:34px 26px;
    }

    .dunes-room-card-wide__footer > div{
        align-items:flex-start;
        flex-direction:column;
    }

    .dunes-room-facts__grid{
        grid-template-columns:1fr 1fr;
    }

    .dunes-room-gallery__small{
        grid-template-columns:1fr;
        grid-template-rows:220px 220px;
    }

    .dunes-room-amenities{
        grid-template-columns:1fr;
    }

    .dunes-other-room-card{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   V1.0 — COMPLETE HOTEL SITE
   ========================================================= */

.dunes-skip-link{
    position:fixed;
    z-index:99999;
    top:8px;
    left:8px;
    padding:10px 14px;
    background:#fff;
    color:#10211b;
    transform:translateY(-150%);
}
.dunes-skip-link:focus{transform:none;}

.dunes-footer__brand p{
    max-width:230px;
    margin:18px 0 0;
    color:#99a69f;
    font-size:10px;
    line-height:1.6;
}

/* HOTEL */
.dunes-hotel-hero{
    min-height:720px;
    display:flex;
    align-items:end;
    padding:170px 0 90px;
    background:
        linear-gradient(90deg,rgba(12,24,20,.76),rgba(12,24,20,.20)),
        url("./assets/images/hotel/hotel-3.webp") center/cover;
    color:#fff;
}
.dunes-hotel-hero .dunes-eyebrow{color:#f0d3a4;}
.dunes-hotel-hero h1{
    max-width:850px;
    margin:0;
    font-size:clamp(62px,8vw,104px);
    line-height:.92;
}
.dunes-hotel-hero p{
    max-width:650px;
    margin:22px 0 0;
    color:rgba(255,255,255,.87);
    font-size:17px;
    line-height:1.65;
}
.dunes-hotel-hero__actions{display:flex;align-items:center;gap:24px;margin-top:28px;}

.dunes-hotel-intro{
    display:grid;
    grid-template-columns:.9fr 1.1fr;
    gap:80px;
    padding:78px 0 60px;
}
.dunes-hotel-intro h2{margin:0;font-size:54px;line-height:1.02;}
.dunes-hotel-intro > div:last-child{
    color:var(--muted);
    font-size:15px;
    line-height:1.8;
}

.dunes-hotel-mosaic{
    display:grid;
    grid-template-columns:1.5fr .75fr;
    gap:12px;
    min-height:540px;
}
.dunes-hotel-mosaic__large,
.dunes-hotel-mosaic__small > div{
    background:#d5d0c7 center/cover no-repeat;
}
.dunes-hotel-mosaic__small{display:grid;grid-template-rows:1fr 1fr;gap:12px;}

.dunes-hotel-expect{padding:78px 0;}
.dunes-hotel-expect__grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    margin-top:38px;
    border:1px solid var(--line);
}
.dunes-hotel-expect__grid article{
    min-height:150px;
    padding:28px;
    border-right:1px solid var(--line);
    border-bottom:1px solid var(--line);
}
.dunes-hotel-expect__grid article:nth-child(3n){border-right:0;}
.dunes-hotel-expect__grid article:nth-last-child(-n+3){border-bottom:0;}
.dunes-hotel-expect__grid strong{
    display:block;
    font-family:"Playfair Display",Georgia,serif;
    font-size:20px;
    font-weight:500;
}
.dunes-hotel-expect__grid span{
    display:block;
    margin-top:9px;
    color:var(--muted);
    font-size:11px;
    line-height:1.55;
}

.dunes-hotel-location{padding:76px 0;background:var(--stone);}
.dunes-hotel-location__grid{
    display:grid;
    grid-template-columns:.85fr 1.15fr;
    gap:65px;
    align-items:center;
}
.dunes-hotel-location h2{margin:0;font-size:52px;line-height:1.02;}
.dunes-hotel-location p{color:var(--muted);line-height:1.75;}
.dunes-hotel-location__image{
    min-height:440px;
    background:url("./assets/images/southport/southport-beach.webp") center/cover no-repeat;
}

/* SHARED CTA */
.dunes-page-cta{padding:62px 0;background:var(--ink);color:#fff;}
.dunes-page-cta .dunes-container{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:40px;
}
.dunes-page-cta .dunes-eyebrow{color:#f0d3a4;}
.dunes-page-cta h2{margin:0;font-size:48px;}

/* BOOK DIRECT */
.dunes-book-page{background:var(--paper);}
.dunes-book-page__hero{
    padding:175px 0 86px;
    background:
        linear-gradient(90deg,rgba(12,24,20,.78),rgba(12,24,20,.22)),
        url("./assets/images/hotel/hotel-2.webp") center/cover;
    color:#fff;
}
.dunes-book-page__hero .dunes-eyebrow{color:#f0d3a4;}
.dunes-book-page__hero h1{
    max-width:850px;
    margin:0;
    font-size:clamp(58px,7vw,94px);
    line-height:.95;
}
.dunes-book-page__hero p{
    max-width:630px;
    margin:22px 0 0;
    color:rgba(255,255,255,.87);
    font-size:16px;
    line-height:1.7;
}

.dunes-book-engine{padding:70px 0 88px;}
.dunes-book-step{
    display:grid;
    grid-template-columns:90px 1fr;
    gap:30px;
    padding:50px 0;
    border-bottom:1px solid var(--line);
}
.dunes-book-step:first-child{padding-top:0;}
.dunes-book-step__number{
    width:58px;
    height:58px;
    display:grid;
    place-items:center;
    border:1px solid #d8c49e;
    border-radius:50%;
    color:var(--moss);
    font-family:"Playfair Display",Georgia,serif;
}
.dunes-book-step__content h2{margin:0;font-size:48px;}

.dunes-book-search{
    display:grid;
    grid-template-columns:1fr 1fr .8fr .8fr;
    margin-top:28px;
    border:1px solid var(--line);
}
.dunes-book-search label,
.dunes-book-search__nights{
    min-height:100px;
    padding:19px;
    border-right:1px solid var(--line);
    background:#fff;
}
.dunes-book-search > :last-child{border-right:0;}
.dunes-book-search span,
.dunes-book-guest-grid label > span{
    display:block;
    margin-bottom:8px;
    color:var(--muted);
    font-size:9px;
    font-weight:700;
    letter-spacing:.09em;
    text-transform:uppercase;
}
.dunes-book-search input,
.dunes-book-search select,
.dunes-book-guest-grid input,
.dunes-book-guest-grid textarea{
    width:100%;
    padding:11px 0;
    border:0;
    border-bottom:1px solid #d6d0c6;
    background:transparent;
    color:var(--ink);
    outline:none;
}
.dunes-book-search__nights strong{
    display:block;
    margin-top:15px;
    font-family:"Playfair Display",Georgia,serif;
    font-size:21px;
    font-weight:500;
}

.dunes-book-room-options{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:15px;
    margin-top:30px;
}
.dunes-book-room-option{
    position:relative;
    display:block;
    overflow:hidden;
    border:1px solid var(--line);
    background:var(--stone);
    cursor:pointer;
}
.dunes-book-room-option input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}
.dunes-book-room-option__image{
    display:block;
    min-height:230px;
    background:#d6d1c8 center/cover no-repeat;
}
.dunes-book-room-option__body{
    display:block;
    padding:22px;
}
.dunes-book-room-option__body small,
.dunes-book-room-option__body em,
.dunes-book-room-option__body b{
    display:block;
}
.dunes-book-room-option__body small{
    color:var(--muted);
    font-size:9px;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.dunes-book-room-option__body strong{
    display:block;
    margin-top:7px;
    font-family:"Playfair Display",Georgia,serif;
    font-size:24px;
    font-weight:500;
}
.dunes-book-room-option__body em{
    min-height:38px;
    margin-top:6px;
    color:var(--muted);
    font-size:10px;
    font-style:normal;
    line-height:1.45;
}
.dunes-book-room-option__body b{
    margin-top:15px;
    font-size:11px;
}
.dunes-book-room-option:has(input:checked){
    border-color:var(--moss);
    box-shadow:0 0 0 2px var(--moss) inset;
}

.dunes-book-live-summary{
    display:grid;
    grid-template-columns:1.4fr .5fr .8fr;
    margin-top:20px;
    border:1px solid var(--line);
}
.dunes-book-live-summary > div{padding:17px 20px;border-right:1px solid var(--line);}
.dunes-book-live-summary > div:last-child{border-right:0;}
.dunes-book-live-summary span{
    display:block;
    color:var(--muted);
    font-size:9px;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.dunes-book-live-summary strong{
    display:block;
    margin-top:5px;
    font-family:"Playfair Display",Georgia,serif;
    font-size:18px;
    font-weight:500;
}

.dunes-book-guest-grid{
    display:grid;
    grid-template-columns:1fr 1fr 1fr;
    gap:20px;
    margin-top:28px;
}
.dunes-book-guest-grid__wide{grid-column:1/-1;}
.dunes-book-terms{
    display:flex;
    align-items:flex-start;
    gap:10px;
    margin-top:22px;
    color:var(--muted);
    font-size:11px;
}
.dunes-book-terms input{margin-top:3px;}
.dunes-book-terms a{text-decoration:underline;}

.dunes-book-submit{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:25px;
    margin-top:28px;
    padding:24px;
    background:var(--stone);
}
.dunes-book-submit small{
    display:block;
    color:var(--muted);
    font-size:9px;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.dunes-book-submit strong{
    display:block;
    margin-top:4px;
    font-family:"Playfair Display",Georgia,serif;
    font-size:25px;
    font-weight:500;
}
.dunes-book-reassurance{padding:45px 0;background:var(--ink);color:#fff;}
.dunes-book-reassurance .dunes-container{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px;
}
.dunes-book-reassurance strong{
    display:block;
    font-family:"Playfair Display",Georgia,serif;
    font-size:18px;
    font-weight:500;
}
.dunes-book-reassurance span{
    display:block;
    margin-top:6px;
    color:#bdc8c2;
    font-size:10px;
    line-height:1.5;
}
.dunes-book-success{
    display:grid;
    grid-template-columns:70px 1fr;
    gap:28px;
    padding:80px 0;
}
.dunes-book-success > span{
    width:58px;height:58px;display:grid;place-items:center;
    border:1px solid var(--moss);border-radius:50%;
    color:var(--moss);font-size:22px;
}
.dunes-book-success h2{margin:0;font-size:52px;}
.dunes-book-success p{max-width:700px;color:var(--muted);line-height:1.7;}

/* GUEST INFORMATION */
.dunes-guest-hero{
    background:
        linear-gradient(90deg,rgba(250,248,243,.94),rgba(250,248,243,.62)),
        url("./assets/images/hotel/hotel-4.webp") right center/cover;
}
.dunes-guest-quick{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    padding:64px 0 30px;
}
.dunes-guest-quick article{
    min-height:160px;
    padding:26px;
    border:1px solid var(--line);
    border-right:0;
}
.dunes-guest-quick article:last-child{border-right:1px solid var(--line);}
.dunes-guest-quick span{color:#c69856;font-size:10px;letter-spacing:.1em;}
.dunes-guest-quick strong{
    display:block;margin-top:15px;
    font-family:"Playfair Display",Georgia,serif;
    font-size:22px;font-weight:500;
}
.dunes-guest-quick p{color:var(--muted);font-size:11px;line-height:1.55;}

.dunes-guest-sections{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:1px;
    margin-top:35px;
    margin-bottom:75px;
    background:var(--line);
}
.dunes-guest-sections article{padding:42px;background:var(--paper);}
.dunes-guest-sections h2{margin:0;font-size:34px;}
.dunes-guest-sections p{color:var(--muted);line-height:1.7;}

.dunes-guest-faq{padding:70px 0;background:var(--stone);}
.dunes-guest-faq .dunes-container{max-width:920px;}
.dunes-guest-faq details{border-top:1px solid #d5d0c8;}
.dunes-guest-faq details:last-child{border-bottom:1px solid #d5d0c8;}
.dunes-guest-faq summary{
    position:relative;padding:20px 40px 20px 0;
    list-style:none;font-family:"Playfair Display",Georgia,serif;
    font-size:18px;cursor:pointer;
}
.dunes-guest-faq summary::-webkit-details-marker{display:none;}
.dunes-guest-faq summary:after{
    position:absolute;right:5px;top:50%;content:"+";
    transform:translateY(-50%);
}
.dunes-guest-faq details[open] summary:after{content:"–";}
.dunes-guest-faq details p{max-width:750px;margin:0 0 20px;color:var(--muted);line-height:1.7;}

/* EXPLORE */
.dunes-explore-hero{
    min-height:650px;
    display:flex;
    align-items:end;
    padding:170px 0 86px;
    background:
        linear-gradient(90deg,rgba(12,24,20,.74),rgba(12,24,20,.25)),
        url("./assets/images/southport/southport-beach.webp") center/cover;
    color:#fff;
}
.dunes-explore-hero .dunes-eyebrow{color:#f0d3a4;}
.dunes-explore-hero h1{max-width:820px;margin:0;font-size:clamp(62px,8vw,100px);line-height:.94;}
.dunes-explore-hero p{max-width:680px;margin:22px 0 0;color:rgba(255,255,255,.87);font-size:16px;line-height:1.7;}

.dunes-explore-intro{
    display:grid;grid-template-columns:.85fr 1.15fr;gap:75px;
    padding:75px 0 55px;align-items:end;
}
.dunes-explore-intro h2{margin:0;font-size:52px;line-height:1.02;}
.dunes-explore-intro > p{margin:0;color:var(--muted);line-height:1.8;}

.dunes-explore-categories{
    display:grid;grid-template-columns:repeat(3,1fr);
    gap:1px;padding-bottom:80px;background:var(--line);
}
.dunes-explore-card{min-height:300px;padding:36px;background:var(--paper);}
.dunes-explore-card > span{color:#c69856;font-size:10px;letter-spacing:.1em;}
.dunes-explore-card h2{margin:20px 0 0;font-size:30px;}
.dunes-explore-card p{color:var(--muted);line-height:1.65;}
.dunes-explore-card em{display:block;margin-top:20px;color:var(--moss);font-size:10px;font-style:normal;font-weight:700;}

.dunes-explore-day{padding:72px 0;background:var(--ink);color:#fff;}
.dunes-explore-day .dunes-container{display:grid;grid-template-columns:.7fr 1.3fr;gap:70px;}
.dunes-explore-day .dunes-eyebrow{color:#f0d3a4;}
.dunes-explore-day h2{margin:0;font-size:50px;}
.dunes-explore-day__timeline{display:grid;gap:10px;}
.dunes-explore-day__timeline div{padding:22px;border:1px solid rgba(255,255,255,.13);}
.dunes-explore-day__timeline span{display:block;color:#d7b679;font-size:9px;letter-spacing:.1em;text-transform:uppercase;}
.dunes-explore-day__timeline strong{
    display:block;margin-top:7px;
    font-family:"Playfair Display",Georgia,serif;
    font-size:20px;font-weight:500;
}

.dunes-explore-ask{
    display:grid;grid-template-columns:.8fr 1.1fr auto;gap:50px;
    align-items:center;padding:75px 0;
}
.dunes-explore-ask h2{margin:0;font-size:45px;}
.dunes-explore-ask > p{margin:0;color:var(--muted);line-height:1.7;}

/* CONTACT */
.dunes-contact-hero{
    padding:175px 0 90px;
    background:
        linear-gradient(90deg,rgba(250,248,243,.96),rgba(250,248,243,.68)),
        url("./assets/images/hotel/hotel-3.webp") right center/cover;
}
.dunes-contact-hero h1{max-width:800px;margin:0;font-size:clamp(58px,7vw,88px);line-height:.96;}
.dunes-contact-hero p{max-width:650px;margin:22px 0 0;color:var(--muted);font-size:16px;line-height:1.7;}

.dunes-contact-details{margin-top:32px;border-top:1px solid var(--line);}
.dunes-contact-details div{padding:17px 0;border-bottom:1px solid var(--line);}
.dunes-contact-details small{display:block;color:var(--muted);font-size:9px;letter-spacing:.08em;text-transform:uppercase;}
.dunes-contact-details a,.dunes-contact-details strong{
    display:block;margin-top:5px;
    font-family:"Playfair Display",Georgia,serif;
    font-size:18px;font-weight:500;
}
.dunes-contact-links{display:flex;flex-direction:column;gap:8px;margin-top:25px;}
.dunes-contact-links a{font-size:11px;font-weight:700;}

.dunes-contact-reassurance{padding:42px 0;background:var(--stone);}
.dunes-contact-reassurance .dunes-container{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.dunes-contact-reassurance strong{display:block;font-family:"Playfair Display",Georgia,serif;font-size:18px;font-weight:500;}
.dunes-contact-reassurance span{display:block;margin-top:5px;color:var(--muted);font-size:10px;}

/* PLAIN / LEGAL */
.dunes-plain-page__hero{padding:175px 0 72px;background:var(--stone);}
.dunes-plain-page__hero h1{max-width:850px;margin:0;font-size:clamp(52px,7vw,84px);line-height:.96;}
.dunes-plain-page__content{max-width:900px;padding:65px 0 90px;}
.dunes-plain-page__content h2{margin:40px 0 8px;font-size:30px;}
.dunes-plain-page__content h2:first-child{margin-top:0;}
.dunes-plain-page__content p,.dunes-plain-page__content li{color:var(--muted);font-size:14px;line-height:1.8;}
.dunes-legal-contact{
    margin-top:55px;padding:28px;
    display:flex;justify-content:space-between;align-items:center;gap:25px;
    background:var(--stone);
}
.dunes-legal-contact strong{font-family:"Playfair Display",Georgia,serif;font-size:21px;font-weight:500;}

/* 404 */
.dunes-404{min-height:78vh;display:flex;align-items:center;padding:150px 0 80px;background:var(--stone);}
.dunes-404 h1{max-width:800px;margin:0;font-size:clamp(62px,8vw,100px);line-height:.94;}
.dunes-404 p:not(.dunes-eyebrow){max-width:600px;color:var(--muted);font-size:16px;line-height:1.7;}
.dunes-404 > .dunes-container > div{display:flex;align-items:center;gap:24px;margin-top:28px;}

@media(max-width:1000px){
    .dunes-hotel-intro,.dunes-hotel-location__grid,
    .dunes-explore-intro,.dunes-explore-day .dunes-container,
    .dunes-explore-ask{grid-template-columns:1fr;}
    .dunes-hotel-expect__grid,.dunes-explore-categories{grid-template-columns:1fr 1fr;}
    .dunes-book-room-options{grid-template-columns:1fr 1fr;}
    .dunes-book-search{grid-template-columns:1fr 1fr;}
    .dunes-book-search > *{border-bottom:1px solid var(--line);}
    .dunes-guest-quick{grid-template-columns:1fr 1fr;}
}
@media(max-width:720px){
    .dunes-hotel-hero,.dunes-book-page__hero,.dunes-explore-hero,.dunes-contact-hero{padding-top:150px;}
    .dunes-hotel-mosaic{grid-template-columns:1fr;min-height:auto;}
    .dunes-hotel-mosaic__large{min-height:360px;}
    .dunes-hotel-mosaic__small{grid-template-columns:1fr 1fr;grid-template-rows:220px;}
    .dunes-hotel-expect__grid,.dunes-explore-categories,
    .dunes-book-room-options,.dunes-guest-sections{grid-template-columns:1fr;}
    .dunes-hotel-expect__grid article{border-right:0;border-bottom:1px solid var(--line)!important;}
    .dunes-book-step{grid-template-columns:1fr;gap:15px;}
    .dunes-book-step__number{width:46px;height:46px;}
    .dunes-book-search{grid-template-columns:1fr;}
    .dunes-book-search label,.dunes-book-search__nights{border-right:0;}
    .dunes-book-live-summary{grid-template-columns:1fr;}
    .dunes-book-live-summary > div{border-right:0;border-bottom:1px solid var(--line);}
    .dunes-book-guest-grid{grid-template-columns:1fr;}
    .dunes-book-submit{align-items:flex-start;flex-direction:column;}
    .dunes-book-reassurance .dunes-container,.dunes-contact-reassurance .dunes-container{grid-template-columns:1fr;}
    .dunes-guest-quick{grid-template-columns:1fr;}
    .dunes-guest-quick article{border-right:1px solid var(--line);}
    .dunes-explore-ask{gap:25px;}
    .dunes-page-cta .dunes-container,.dunes-legal-contact,.dunes-404 > .dunes-container > div{
        align-items:flex-start;flex-direction:column;
    }
}
@media(max-width:520px){
    .dunes-hotel-mosaic__small{grid-template-columns:1fr;grid-template-rows:210px 210px;}
    .dunes-book-room-option__image{min-height:190px;}
}


/* =========================================================
   V1.1 — REVIEW CORRECTIONS
   ========================================================= */

/* Pale / text-led pages get their own header bar instead of
   allowing white navigation to disappear into the hero. */
.dunes-site-header--solid{
    position:relative;
    inset:auto;
    background:var(--ink);
    color:#fff;
}
.admin-bar .dunes-site-header--solid{top:0;}

/* Keep paired hero CTAs visually parallel. */
.dunes-hotel-hero__actions .dunes-button,
.dunes-rooms-hero__actions .dunes-button{
    min-width:150px;
}
.dunes-rooms-hero__actions .dunes-button--dark{
    border-color:#fff;
    background:#fff;
    color:var(--ink);
}
.dunes-rooms-hero__actions .dunes-button--dark:hover{
    border-color:#f0d3a4;
    background:#f0d3a4;
}

/* Southport location image supplied for this review. */
.dunes-hotel-location__grid{
    grid-template-columns:1.15fr .85fr;
}
.dunes-hotel-location__image{
    min-height:440px;
    background:url("./assets/images/southport/southport-beach.webp") center/cover no-repeat;
}

/* Remove numbering as a repeated visual device. */
.dunes-explore-card h2{margin-top:0;}
.dunes-guest-quick strong{margin-top:0;}
.dunes-book-step{
    grid-template-columns:1fr;
    gap:0;
}
.dunes-book-step__number{display:none;}

/* The category grid previously used bottom padding over its line-colour
   background, which created an unintended grey block. */
.dunes-explore-categories{
    padding-bottom:0;
    margin-bottom:80px;
}

@media(max-width:1000px){
    .dunes-hotel-location__grid{grid-template-columns:1fr;}
}
