/* =========================================================
   HAVAN COTTAGES — BRAND SYSTEM
========================================================= */

:root {
    /* Primary brand colours derived from the Havan logo */
    /* Rebrand palette derived from the Havan poster:
       wine is retained as a signature accent, while warm
       neutrals, champagne gold and charcoal carry the UI. */
    --havan-burgundy: #4A1016;
    --havan-burgundy-dark: #211C19;
    --havan-burgundy-light: #7A4146;

    --havan-gold: #C89A42;
    --havan-gold-light: #D8B56A;
    --havan-gold-pale: #EAD9B8;

    /* Premium warm neutral surfaces */
    --havan-ivory: #FBF9F5;
    --havan-cream: #F7F3EC;
    --havan-beige: #ECE4D8;

    /* Typography + UI */
    --havan-charcoal: #24211F;
    --havan-text: #5E5853;
    --havan-muted: #817970;
    --havan-border: #E7DED2;
    --havan-white: #FFFFFF;

    --havan-shadow:
        0 14px 40px rgba(36, 33, 31, .08);

    --havan-shadow-hover:
        0 20px 48px rgba(36, 33, 31, .12);
}


/* =========================================================
   GLOBAL
========================================================= */

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;

    background:
        var(--havan-white);

    color:
        var(--havan-charcoal);
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

.havan-container {
    width:
        min(
            1180px,
            calc(100% - 40px)
        );

    margin-left:
        auto;

    margin-right:
        auto;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    color:
        var(--havan-burgundy-dark);
}

p {
    color:
        var(--havan-text);
}


/* =========================================================
   HEADER
========================================================= */

.staybook-header-top {
    background:
        var(--havan-burgundy) !important;
}

.top-address p a,
.top-address p span,
.top-right-menu span,
.top-right-menu ul.social-icons li a {
    color:
        #FFFFFF !important;
}

.staybook_nav_area {
    background:
        #FFFFFF !important;
}

.staybook_menu > ul > li > a {
    color:
        var(--havan-burgundy) !important;

    font-size:
        13px !important;

    font-weight:
        600 !important;
}

.staybook_menu > ul > li > a:hover,
.staybook_menu > ul > li.current-menu-item > a {
    color:
        var(--havan-gold) !important;
}

a.dtbtn {
    padding:
        13px 25px !important;

    background:
        var(--havan-burgundy) !important;

    border:
        1px solid
        var(--havan-burgundy) !important;

    border-radius:
        6px !important;

    color:
        #FFFFFF !important;
}

.sticky-nav {
    background:
        #FFFFFF !important;

    box-shadow:
        0 6px 24px
        rgba(45, 38, 34, .08);
}


/* =========================================================
   STAYS PAGE
========================================================= */

.havan-stays-page {
    background:
        #FFFFFF;
}


/* =========================================================
   STAYS LANDMARK HERO
========================================================= */

.havan-stays-hero {
    position:
        relative;

    isolation:
        isolate;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    min-height:
        335px;

    overflow:
        hidden;

    background:
        var(--havan-burgundy-dark);

    text-align:
        center;
}

.havan-stays-hero-slides {
    position:
        absolute;

    inset:
        0;

    z-index:
        -3;
}

.havan-stays-hero-slide {
    position:
        absolute;

    inset:
        0;

    background-position:
        center;

    background-repeat:
        no-repeat;

    background-size:
        cover;

    opacity:
        0;

    transform:
        none;

    filter:
        none;

    transition:
        opacity .9s ease;
}

.havan-stays-hero-slide.is-active {
    opacity:
        1;

    transform:
        none;
}

.havan-stays-hero-overlay {
    position:
        absolute;

    inset:
        0;

    z-index:
        -2;

    background:
        linear-gradient(
            90deg,
            rgba(20,18,17,.44) 0%,
            rgba(20,18,17,.24) 48%,
            rgba(20,18,17,.10) 100%
        );

    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

.havan-stays-hero::after {
    content:
        '';

    position:
        absolute;

    inset:
        0;

    z-index:
        -1;

    background:
        linear-gradient(
            180deg,
            rgba(0,0,0,.05) 0%,
            rgba(0,0,0,.10) 100%
        );

    pointer-events:
        none;
}

.havan-stays-hero-inner {
    position:
        relative;

    z-index:
        2;

    width:
        100%;

    padding:
        48px 20px;

    text-align:
        center;
}

.havan-stays-hero-eyebrow {
    display:
        inline-flex;

    align-items:
        center;

    margin-bottom:
        14px;

    color:
        rgba(255,255,255,.80);

    font-size:
        9px;

    font-weight:
        750;

    letter-spacing:
        2.1px;

    text-transform:
        uppercase;
}

.havan-stays-hero h1 {
    max-width:
        820px;

    margin:
        0 auto 15px;

    color:
        #FFFFFF;

    font-size:
        clamp(
            46px,
            5.2vw,
            68px
        );

    line-height:
        1;

    letter-spacing:
        -1.3px;

    text-shadow:
        0 3px 24px
        rgba(0,0,0,.15);
}

.havan-stays-hero p {
    max-width:
        620px;

    margin:
        0 auto;

    color:
        rgba(255,255,255,.82);

    font-size:
        14px;

    line-height:
        1.65;
}


/* =========================================================
   HERO SLIDER CONTROLS
========================================================= */

.havan-stays-hero-controls {
    position:
        absolute;

    z-index:
        5;

    left:
        50%;

    bottom:
        21px;

    display:
        flex;

    align-items:
        center;

    gap:
        7px;

    transform:
        translateX(-50%);
}

.havan-stays-hero-dot {
    width:
        6px;

    height:
        6px;

    padding:
        0;

    border:
        0;

    border-radius:
        50%;

    background:
        rgba(255,255,255,.42);

    cursor:
        pointer;

    transition:
        width .25s ease,
        border-radius .25s ease,
        background .25s ease;
}

.havan-stays-hero-dot:hover {
    background:
        rgba(255,255,255,.72);
}

.havan-stays-hero-dot.is-active {
    width:
        25px;

    border-radius:
        20px;

    background:
        #FFFFFF;
}

.havan-stays-hero-city {
    position:
        absolute;

    z-index:
        5;

    right:
        max(
            24px,
            calc((100vw - 1180px) / 2)
        );

    bottom:
        19px;

    color:
        rgba(255,255,255,.73);

    font-size:
        8px;

    font-weight:
        700;

    letter-spacing:
        1.6px;

    text-transform:
        uppercase;
}


/* =========================================================
   STAYS DIRECTORY
========================================================= */

.havan-stays-section {
    padding:
        72px 0 88px;

    background:
        #FCFAF5;
}


/* =========================================================
   DIRECTORY TOOLBAR
========================================================= */

.havan-stays-toolbar {
    display:
        grid;

    grid-template-columns:
        .85fr 1.15fr;

    align-items:
        end;

    gap:
        58px;

    margin-bottom:
        38px;
}

.havan-section-kicker {
    display:
        block;

    margin-bottom:
        9px;

    color:
        var(--havan-gold);

    font-size:
        8px;

    font-weight:
        750;

    letter-spacing:
        1.7px;

    text-transform:
        uppercase;
}

.havan-stays-toolbar-copy h2 {
    margin:
        0 0 9px;

    color:
        var(--havan-burgundy-dark);

    font-size:
        clamp(
            30px,
            3vw,
            42px
        );

    line-height:
        1.08;

    letter-spacing:
        -.6px;
}

.havan-stays-toolbar-copy p {
    max-width:
        410px;

    margin:
        0;

    color:
        var(--havan-muted);

    font-size:
        12px;

    line-height:
        1.65;
}


/* =========================================================
   LOCATION FILTER
========================================================= */

.havan-location-filter {
    display:
        grid;

    grid-template-columns:
        repeat(4, 1fr);

    gap:
        4px;

    margin:
        0;

    padding:
        5px;

    background:
        #FFFFFF;

    border:
        1px solid
        rgba(45,38,34,.10);

    border-radius:
        12px;

    box-shadow:
        0 8px 28px
        rgba(45,38,34,.05);
}

.havan-filter {
    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        8px;

    min-height:
        47px;

    padding:
        9px 13px;

    background:
        transparent;

    border:
        0;

    border-radius:
        8px;

    color:
        var(--havan-burgundy-dark);

    font-size:
        11px;

    font-weight:
        650;

    cursor:
        pointer;

    transition:
        background .2s ease,
        color .2s ease,
        transform .2s ease;
}

.havan-filter:hover {
    background:
        rgba(45,38,34,.05);
}

.havan-filter small {
    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    min-width:
        21px;

    height:
        21px;

    padding:
        0 5px;

    border-radius:
        20px;

    background:
        rgba(45,38,34,.07);

    color:
        var(--havan-muted);

    font-size:
        8px;

    font-weight:
        700;
}

.havan-filter.active {
    background:
        var(--havan-burgundy);

    color:
        #FFFFFF;
}

.havan-filter.active small {
    background:
        rgba(255,255,255,.16);

    color:
        #FFFFFF;
}


/* =========================================================
   RESULTS ROW
========================================================= */

.havan-results-row {
    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        24px;

    margin-bottom:
        22px;

    padding-bottom:
        15px;

    border-bottom:
        1px solid
        rgba(45,38,34,.09);
}

.havan-results-count {
    display:
        flex;

    align-items:
        baseline;

    gap:
        5px;

    color:
        var(--havan-burgundy-dark);

    font-size:
        11px;
}

.havan-results-count strong {
    font-size:
        13px;

    font-weight:
        750;
}

.havan-results-note {
    color:
        var(--havan-muted);

    font-size:
        9px;

    letter-spacing:
        .35px;
}


/* =========================================================
   STAYS GRID
========================================================= */

.havan-stays-grid {
    display:
        grid;

    grid-template-columns:
        repeat(
            3,
            minmax(0,1fr)
        );

    gap:
        26px;
}


/* =========================================================
   PROPERTY CARD
========================================================= */

.havan-stay-card {
    min-width:
        0;

    overflow:
        hidden;

    display:
        flex;

    flex-direction:
        column;

    background:
        #FFFFFF;

    border:
        1px solid
        rgba(45,38,34,.08);

    border-radius:
        14px;

    box-shadow:
        0 4px 18px
        rgba(45,38,34,.035);

    transition:
        transform .28s ease,
        box-shadow .28s ease,
        border-color .28s ease;
}

.havan-stay-card:hover {
    transform:
        translateY(-5px);

    border-color:
        rgba(45,38,34,.14);

    box-shadow:
        0 18px 42px
        rgba(45,38,34,.10);
}

.havan-stay-card.havan-hidden {
    display:
        none;
}


/* =========================================================
   PROPERTY IMAGE
========================================================= */

.havan-stay-image {
    position:
        relative;

    display:
        block;

    aspect-ratio:
        1.42 / 1;

    overflow:
        hidden;

    background:
        var(--havan-beige);

    text-decoration:
        none;
}

.havan-stay-image img {
    display:
        block;

    width:
        100%;

    height:
        100%;

    object-fit:
        cover;

    transition:
        transform .6s
        cubic-bezier(.22,.61,.36,1);
}

.havan-stay-card:hover
.havan-stay-image img {
    transform:
        scale(1.045);
}

.havan-stay-image::after {
    content:
        '';

    position:
        absolute;

    inset:
        0;

    background:
        linear-gradient(
            180deg,
            transparent 58%,
            rgba(29,24,21,.20) 100%
        );

    pointer-events:
        none;
}

.havan-stay-city-badge {
    position:
        absolute;

    z-index:
        2;

    top:
        14px;

    left:
        14px;

    display:
        inline-flex;

    align-items:
        center;

    min-height:
        28px;

    padding:
        6px 10px;

    border:
        1px solid
        rgba(255,255,255,.30);

    border-radius:
        20px;

    background:
        rgba(255,255,255,.90);

    color:
        var(--havan-burgundy-dark);

    font-size:
        8px;

    font-weight:
        750;

    letter-spacing:
        .8px;

    text-transform:
        uppercase;

    backdrop-filter:
        blur(8px);

    -webkit-backdrop-filter:
        blur(8px);
}

.havan-placeholder-image {
    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    width:
        100%;

    height:
        100%;

    background:
        var(--havan-beige);

    color:
        var(--havan-burgundy);

    font-size:
        10px;

    font-weight:
        700;

    letter-spacing:
        1.3px;

    text-transform:
        uppercase;
}


/* =========================================================
   PROPERTY CARD CONTENT
========================================================= */

.havan-stay-content {
    display:
        flex;

    flex:
        1;

    flex-direction:
        column;

    padding:
        22px 22px 19px;
}

.havan-property-area {
    margin-bottom:
        7px;

    color:
        var(--havan-gold);

    font-size:
        8px;

    font-weight:
        750;

    letter-spacing:
        1.15px;

    text-transform:
        uppercase;
}

.havan-stay-title {
    margin:
        0 0 10px;

    font-size:
        22px;

    line-height:
        1.15;

    letter-spacing:
        -.35px;
}

.havan-stay-title a {
    color:
        var(--havan-burgundy-dark);

    text-decoration:
        none;
}

.havan-stay-title a:hover {
    color:
        var(--havan-burgundy);
}

.havan-stay-excerpt {
    margin:
        0;

    color:
        var(--havan-muted);

    font-size:
        11px;

    line-height:
        1.65;
}


/* =========================================================
   PROPERTY META
========================================================= */

.havan-stay-meta {
    display:
        flex;

    flex-wrap:
        wrap;

    gap:
        7px;

    margin-top:
        17px;
}

.havan-stay-meta span {
    display:
        inline-flex;

    align-items:
        center;

    min-height:
        27px;

    padding:
        5px 9px;

    border-radius:
        6px;

    background:
        var(--havan-cream);

    color:
        var(--havan-burgundy-dark);

    font-size:
        9px;

    font-weight:
        600;
}


/* =========================================================
   CARD FOOTER
========================================================= */

.havan-stay-footer {
    margin-top:
        auto;

    padding-top:
        18px;
}

.havan-view-stay {
    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    padding-top:
        14px;

    border-top:
        1px solid
        rgba(45,38,34,.08);

    color:
        var(--havan-burgundy) !important;

    font-size:
        10.5px;

    font-weight:
        750;

    text-decoration:
        none;
}

.havan-view-stay span {
    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    width:
        29px;

    height:
        29px;

    border-radius:
        50%;

    background:
        var(--havan-cream);

    transition:
        background .2s ease,
        color .2s ease,
        transform .2s ease;
}

.havan-stay-card:hover
.havan-view-stay span {
    background:
        var(--havan-burgundy);

    color:
        #FFFFFF;

    transform:
        translateX(2px);
}


/* =========================================================
   STAYS HELP CTA
========================================================= */

.havan-stays-help {
    display:
        grid;

    grid-template-columns:
        1fr 1fr;

    align-items:
        center;

    gap:
        55px;

    margin-top:
        70px;

    padding:
        40px 44px;

    border-radius:
        14px;

    background:
        var(--havan-burgundy-dark);

    color:
        #FFFFFF;
}

.havan-stays-help
.havan-section-kicker {
    color:
        var(--havan-beige);
}

.havan-stays-help h2 {
    max-width:
        480px;

    margin:
        0;

    color:
        #FFFFFF;

    font-size:
        clamp(
            30px,
            3.2vw,
            43px
        );

    line-height:
        1.06;
}

.havan-stays-help-action p {
    max-width:
        430px;

    margin:
        0 0 17px;

    color:
        rgba(255,255,255,.66);

    font-size:
        12px;

    line-height:
        1.65;
}

.havan-stays-help-action a {
    display:
        inline-flex;

    align-items:
        center;

    gap:
        18px;

    min-height:
        43px;

    padding:
        9px 15px;

    border-radius:
        7px;

    background:
        #FFFFFF;

    color:
        var(--havan-burgundy-dark)
        !important;

    font-size:
        10.5px;

    font-weight:
        750;

    text-decoration:
        none;
}


/* =========================================================
   SINGLE ACCOMMODATION PAGE — MODERN
========================================================= */

.havan-single-stay {
    background:
        #FFFFFF;
}


/* =========================================================
   SINGLE HEADER
========================================================= */

.havan-single-header {
    position:
        relative;

    padding:
        43px 0 31px;

    background:
        #FFFFFF;

    border-bottom:
        1px solid
        rgba(45,38,34,.07);
}

.havan-single-header::after {
    content:
        '';

    position:
        absolute;

    left:
        50%;

    bottom:
        -1px;

    width:
        min(
            1180px,
            calc(100% - 40px)
        );

    height:
        1px;

    transform:
        translateX(-50%);

    background:
        linear-gradient(
            90deg,
            rgba(45,38,34,0),
            rgba(45,38,34,.12) 14%,
            rgba(45,38,34,.12) 86%,
            rgba(45,38,34,0)
        );
}

.havan-back-stays {
    display:
        inline-flex;

    align-items:
        center;

    gap:
        7px;

    margin-bottom:
        23px;

    color:
        var(--havan-muted);

    font-size:
        12px;

    font-weight:
        650;

    text-decoration:
        none;

    transition:
        color .2s ease,
        transform .2s ease;
}

.havan-back-stays:hover {
    color:
        var(--havan-burgundy);

    transform:
        translateX(-2px);
}

.havan-single-location {
    display:
        flex;

    flex-wrap:
        wrap;

    align-items:
        center;

    gap:
        8px;

    margin-bottom:
        10px;

    color:
        var(--havan-gold);

    font-size:
        9px;

    font-weight:
        750;

    letter-spacing:
        1.35px;

    text-transform:
        uppercase;
}

.havan-location-dot {
    color:
        rgba(184,92,69,.55);
}

.havan-single-header h1 {
    max-width:
        900px;

    margin:
        0 0 21px;

    color:
        var(--havan-burgundy-dark);

    font-size:
        clamp(
            39px,
            4.6vw,
            58px
        );

    font-weight:
        700;

    line-height:
        1.04;

    letter-spacing:
        -1.15px;
}

.havan-single-facts {
    display:
        flex;

    flex-wrap:
        wrap;

    gap:
        8px;
}

.havan-single-facts span {
    display:
        inline-flex;

    align-items:
        center;

    min-height:
        34px;

    padding:
        7px 12px;

    background:
        #FFFFFF;

    border:
        1px solid
        rgba(45,38,34,.12);

    border-radius:
        999px;

    box-shadow:
        0 4px 14px
        rgba(45,38,34,.035);

    color:
        var(--havan-burgundy-dark);

    font-size:
        11px;

    font-weight:
        650;
}


/* =========================================================
   SINGLE MAIN LAYOUT
========================================================= */

.havan-single-body {
    padding:
        38px 0 94px;

    background:
        #FFFFFF;

    overflow:
        visible !important;
}

.havan-single-body
.havan-container {
    overflow:
        visible !important;
}

.havan-single-body-grid {
    display:
        grid;

    grid-template-columns:
        minmax(0, 1fr)
        360px;

    gap:
        39px;

    align-items:
        start;

    overflow:
        visible !important;
}

.havan-single-primary {
    min-width:
        0;
}


/* =========================================================
   STICKY BOOKING SIDEBAR
========================================================= */

.havan-single-sidebar {
    position:
        sticky;

    top:
        105px;

    align-self:
        start;

    height:
        fit-content;

    min-width:
        0;

    overflow:
        visible !important;

    z-index:
        20;
}

.havan-sidebar-stack {
    display:
        grid;

    gap:
        19px;

    position:
        static;
}


/* =========================================================
   MAIN GALLERY
========================================================= */

.havan-single-gallery {
    margin:
        0 0 39px;

    padding:
        0;
}

.havan-booking-gallery {
    display:
        grid;

    grid-template-columns:
        2fr 1fr;

    gap:
        8px;

    height:
        468px;

    overflow:
        hidden;

    border:
        1px solid
        rgba(45,38,34,.07);

    border-radius:
        16px;

    background:
        var(--havan-cream);

    box-shadow:
        0 18px 46px
        rgba(45,38,34,.075);
}

.havan-booking-gallery-side {
    display:
        grid;

    grid-template-rows:
        1fr 1fr;

    gap:
        8px;
}

.havan-booking-gallery-main,
.havan-booking-gallery-side-item,
.havan-gallery-thumb {
    position:
        relative;

    padding:
        0;

    border:
        0;

    overflow:
        hidden;

    background:
        var(--havan-beige);

    cursor:
        pointer;
}

.havan-booking-gallery-main img,
.havan-booking-gallery-side-item img,
.havan-gallery-thumb img {
    width:
        100%;

    height:
        100%;

    display:
        block;

    object-fit:
        cover;

    transition:
        transform .55s
        cubic-bezier(.22,.61,.36,1);
}

.havan-booking-gallery-main:hover img,
.havan-booking-gallery-side-item:hover img,
.havan-gallery-thumb:hover img {
    transform:
        scale(1.025);
}

.havan-gallery-thumbnails {
    display:
        grid;

    grid-template-columns:
        repeat(
            5,
            minmax(0, 1fr)
        );

    gap:
        8px;

    margin-top:
        8px;
}

.havan-gallery-thumb {
    position:
        relative;

    aspect-ratio:
        1.55 / 1;

    border:
        1px solid
        rgba(45,38,34,.06);

    border-radius:
        9px;
}

.havan-more-photos {
    position:
        absolute;

    inset:
        0;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    padding:
        10px;

    background:
        rgba(29,24,21,.67);

    color:
        #FFFFFF;

    font-size:
        14px;

    font-weight:
        700;

    backdrop-filter:
        blur(2px);

    -webkit-backdrop-filter:
        blur(2px);
}


/* =========================================================
   SINGLE CONTENT CARDS
========================================================= */

.havan-single-section {
    position:
        relative;

    margin:
        0 0 22px;

    padding:
        29px 30px 30px;

    background:
        #FFFFFF;

    border:
        1px solid
        rgba(45,38,34,.085);

    border-radius:
        15px;

    box-shadow:
        0 8px 28px
        rgba(45,38,34,.035);
}

.havan-single-section:last-child {
    margin-bottom:
        0;
}

.havan-single-section
.havan-eyebrow {
    display:
        inline-block;

    margin-bottom:
        8px;

    color:
        var(--havan-gold);

    font-size:
        8px;

    font-weight:
        750;

    letter-spacing:
        1.4px;

    text-transform:
        uppercase;
}

.havan-single-section h2 {
    margin:
        0 0 18px;

    color:
        var(--havan-burgundy-dark);

    font-size:
        clamp(
            27px,
            2.8vw,
            32px
        );

    line-height:
        1.12;

    letter-spacing:
        -.45px;
}

.havan-single-description {
    max-width:
        760px;

    color:
        var(--havan-text);

    font-size:
        15px;

    line-height:
        1.82;
}

.havan-single-description p {
    margin:
        0 0 15px;

    color:
        var(--havan-text);
}

.havan-single-description p:last-child {
    margin-bottom:
        0;
}

.havan-section-intro {
    margin:
        -7px 0 20px;

    color:
        var(--havan-muted);

    font-size:
        12px;

    line-height:
        1.65;
}


/* =========================================================
   AMENITIES
========================================================= */

.havan-amenities-wrap {
    display:
        grid;

    grid-template-columns:
        repeat(
            2,
            minmax(0, 1fr)
        );

    gap:
        10px;
}

.havan-amenity-card {
    display:
        flex;

    align-items:
        center;

    gap:
        13px;

    min-height:
        64px;

    padding:
        12px 14px;

    background:
        #FCFBF7;

    border:
        1px solid
        rgba(45,38,34,.075);

    border-radius:
        10px;

    transition:
        background .2s ease,
        border-color .2s ease,
        transform .2s ease;
}

.havan-amenity-card:hover {
    background:
        #FFFFFF;

    border-color:
        rgba(45,38,34,.15);

    transform:
        translateY(-1px);
}

.havan-amenity-icon {
    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    flex:
        0 0 38px;

    width:
        38px;

    height:
        38px;

    border-radius:
        9px;

    background:
        rgba(201,145,52,.11);

    color:
        var(--havan-gold);
}

.havan-amenity-icon svg {
    width:
        23px;

    height:
        23px;

    fill:
        none;

    stroke:
        var(--havan-gold);

    stroke-width:
        1.65;

    stroke-linecap:
        round;

    stroke-linejoin:
        round;
}

.havan-amenity-name {
    color:
        var(--havan-charcoal);

    font-size:
        12px;

    font-weight:
        600;

    line-height:
        1.35;
}


/* =========================================================
   AVAILABILITY PANEL
========================================================= */

.havan-availability-section {
    padding:
        30px;

    background:
        linear-gradient(
            145deg,
            #FBF8F0 0%,
            var(--havan-cream) 100%
        );

    border-color:
        rgba(45,38,34,.09);

    box-shadow:
        none;
}

.havan-availability-section::before {
    content:
        '';

    position:
        absolute;

    top:
        0;

    left:
        29px;

    width:
        42px;

    height:
        3px;

    border-radius:
        0 0 4px 4px;

    background:
        var(--havan-burgundy);
}


/* =========================================================
   BOOKING + MAP CARDS
========================================================= */

.havan-booking-card,
.havan-map-card {
    position:
        relative;

    background:
        #FFFFFF;

    border:
        1px solid
        rgba(45,38,34,.10);

    border-radius:
        16px;

    box-shadow:
        0 18px 46px
        rgba(45,38,34,.095);

    overflow:
        hidden;
}

.havan-booking-card::before,
.havan-map-card::before {
    content:
        '';

    position:
        absolute;

    top:
        0;

    left:
        0;

    right:
        0;

    height:
        4px;

    background:
        linear-gradient(
            90deg,
            var(--havan-gold),
            var(--havan-gold-light)
        );
}

.havan-booking-card {
    padding:
        28px 26px 26px;
}

.havan-booking-label {
    display:
        block;

    margin-bottom:
        8px;

    color:
        var(--havan-gold);

    font-size:
        8px;

    font-weight:
        750;

    letter-spacing:
        1.45px;

    text-transform:
        uppercase;
}

.havan-booking-card h3,
.havan-map-card h3 {
    margin:
        0 0 10px;

    color:
        var(--havan-burgundy-dark);

    font-size:
        24px;

    line-height:
        1.12;

    letter-spacing:
        -.35px;
}

.havan-booking-card > p {
    margin:
        0;

    color:
        var(--havan-muted);

    font-size:
        12px;

    line-height:
        1.65;
}

.havan-static-booking-form {
    margin-top:
        22px;

    padding-top:
        21px;

    border-top:
        1px solid
        rgba(45,38,34,.075);
}


/* =========================================================
   BOOKING INPUTS
========================================================= */

.havan-booking-field {
    margin-bottom:
        14px;
}

.havan-booking-field label {
    display:
        block;

    margin-bottom:
        6px;

    color:
        var(--havan-charcoal);

    font-size:
        11px;

    font-weight:
        650;
}

.havan-booking-field
input[type="text"],
.havan-booking-field
input[type="tel"],
.havan-booking-field select {
    width:
        100%;

    min-height:
        50px;

    padding:
        0 13px;

    background:
        #FCFCFA;

    border:
        1px solid
        rgba(45,38,34,.12);

    border-radius:
        9px;

    color:
        var(--havan-charcoal);

    font-size:
        13px;

    transition:
        background .2s ease,
        border-color .2s ease,
        box-shadow .2s ease;
}

.havan-booking-field
input[type="text"]:hover,
.havan-booking-field
input[type="tel"]:hover,
.havan-booking-field select:hover {
    border-color:
        rgba(45,38,34,.22);
}

.havan-booking-field
input:focus,
.havan-booking-field
select:focus {
    background:
        #FFFFFF;

    border-color:
        var(--havan-burgundy);

    outline:
        none;

    box-shadow:
        0 0 0 3px
        rgba(45,38,34,.07);
}

.havan-booking-dates,
.havan-booking-guests {
    display:
        grid;

    grid-template-columns:
        repeat(
            2,
            minmax(0,1fr)
        );

    gap:
        10px;
}


/* =========================================================
   DATE FIELDS
========================================================= */

.havan-date-field {
    position:
        relative;

    display:
        flex;

    align-items:
        center;

    min-height:
        50px;

    background:
        #FCFCFA;

    border:
        1px solid
        rgba(45,38,34,.12);

    border-radius:
        9px;

    overflow:
        hidden;

    transition:
        border-color .2s ease,
        box-shadow .2s ease,
        background .2s ease;
}

.havan-date-field:hover {
    border-color:
        rgba(45,38,34,.22);
}

.havan-date-field:focus-within {
    background:
        #FFFFFF;

    border-color:
        var(--havan-burgundy);

    box-shadow:
        0 0 0 3px
        rgba(45,38,34,.07);
}

.havan-date-icon {
    position:
        absolute;

    left:
        11px;

    top:
        50%;

    transform:
        translateY(-50%);

    z-index:
        3;

    pointer-events:
        none;
}

.havan-date-icon svg {
    display:
        block;

    width:
        19px;

    height:
        19px;

    fill:
        none;

    stroke:
        var(--havan-burgundy);

    stroke-width:
        1.7;

    stroke-linecap:
        round;

    stroke-linejoin:
        round;
}

.havan-date-field
input[type="date"] {
    position:
        absolute;

    inset:
        0;

    z-index:
        4;

    width:
        100%;

    height:
        100%;

    min-width:
        0;

    min-height:
        50px;

    margin:
        0;

    padding:
        0;

    background:
        transparent !important;

    border:
        0 !important;

    outline:
        0 !important;

    box-shadow:
        none !important;

    color:
        transparent !important;

    -webkit-text-fill-color:
        transparent !important;

    opacity:
        .01;

    cursor:
        pointer;
}

.havan-date-field
input[type="date"]::-webkit-calendar-picker-indicator {
    position:
        absolute;

    inset:
        0;

    width:
        100%;

    height:
        100%;

    margin:
        0;

    padding:
        0;

    opacity:
        0;

    cursor:
        pointer;
}

.havan-date-placeholder {
    position:
        absolute;

    left:
        40px;

    right:
        9px;

    top:
        50%;

    z-index:
        2;

    overflow:
        hidden;

    transform:
        translateY(-50%);

    color:
        var(--havan-muted);

    font-size:
        11px;

    font-weight:
        400;

    line-height:
        1.2;

    text-overflow:
        ellipsis;

    white-space:
        nowrap;

    pointer-events:
        none;
}

.havan-date-field.has-date {
    background:
        #FFFFFF;

    border-color:
        rgba(45,38,34,.25);
}

.havan-date-field.has-date
.havan-date-placeholder {
    display:
        block;

    color:
        var(--havan-charcoal);

    font-weight:
        650;
}

.havan-date-field.has-date
.havan-date-icon svg {
    stroke:
        var(--havan-burgundy-dark);
}


/* =========================================================
   BOOKING ERROR
========================================================= */

.havan-booking-error {
    display:
        none;

    margin:
        0 0 12px;

    padding:
        10px 12px;

    background:
        #FFF3EF;

    border:
        1px solid
        #F0D4CA;

    border-radius:
        8px;

    color:
        #944A38;

    font-size:
        11px;

    line-height:
        1.45;
}

.havan-booking-error.is-visible {
    display:
        block;
}


/* =========================================================
   BOOKING BUTTONS
========================================================= */

.havan-direct-booking-buttons {
    display:
        grid;

    gap:
        9px;

    margin-top:
        4px;
}

.havan-direct-booking-btn {
    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        9px;

    min-height:
        50px;

    padding:
        11px 14px;

    border-radius:
        9px;

    color:
        #FFFFFF !important;

    font-size:
        12px;

    font-weight:
        700;

    text-decoration:
        none;

    cursor:
        pointer;

    transition:
        transform .2s ease,
        box-shadow .2s ease,
        background .2s ease;
}

.havan-direct-booking-btn:hover {
    transform:
        translateY(-1px);
}

.havan-whatsapp-btn {
    background:
        #25D366;

    box-shadow:
        0 8px 19px
        rgba(37,211,102,.15);
}

.havan-whatsapp-btn:hover {
    background:
        #1EBE5D;

    color:
        #FFFFFF !important;

    box-shadow:
        0 11px 24px
        rgba(37,211,102,.20);
}

.havan-bookingcom-btn {
    background:
        #003B95;

    box-shadow:
        0 8px 19px
        rgba(0,59,149,.12);
}

.havan-bookingcom-btn:hover {
    background:
        #002F76;

    color:
        #FFFFFF !important;
}

.havan-booking-btn-icon {
    display:
        inline-flex;
}

.havan-booking-btn-icon svg {
    width:
        21px;

    height:
        21px;

    fill:
        none;

    stroke:
        currentColor;

    stroke-width:
        1.8;

    stroke-linecap:
        round;

    stroke-linejoin:
        round;
}

.havan-bookingcom-mark {
    font-size:
        15px;

    font-weight:
        800;
}

.havan-booking-disabled {
    opacity:
        .45;

    cursor:
        not-allowed;
}


/* =========================================================
   MAP
========================================================= */

.havan-map-card-header {
    padding:
        27px 22px 14px;
}

.havan-map-card-header p {
    margin:
        0;

    color:
        var(--havan-muted);

    font-size:
        11px;

    line-height:
        1.55;
}

.havan-map-preview-wrap {
    position:
        relative;

    padding:
        0 14px 14px;
}

.havan-sidebar-map {
    width:
        100%;

    height:
        220px;

    border:
        1px solid
        rgba(45,38,34,.07);

    border-radius:
        12px;

    overflow:
        hidden;

    background:
        var(--havan-cream);
}

.havan-sidebar-map
.leaflet-control-zoom {
    display:
        none;
}

.havan-map-directions-copy {
    margin:
        8px 0 0;

    color:
        var(--havan-muted);

    font-size:
        11px;

    line-height:
        1.55;
}

.havan-sidebar-map.is-directions-ready {
    cursor:
        pointer;
}

.havan-sidebar-map.is-directions-ready:focus {
    outline:
        3px solid
        rgba(45,38,34,.18);

    outline-offset:
        3px;
}

.havan-show-map-btn {
    position:
        absolute;

    left:
        50%;

    bottom:
        27px;

    transform:
        translateX(-50%);

    z-index:
        500;

    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        8px;

    min-height:
        43px;

    padding:
        9px 17px;

    background:
        var(--havan-burgundy);

    border:
        1px solid
        rgba(255,255,255,.25);

    border-radius:
        9px;

    box-shadow:
        0 9px 24px
        rgba(29,24,21,.22);

    color:
        #FFFFFF !important;

    font-size:
        11px;

    font-weight:
        700;

    line-height:
        1;

    text-decoration:
        none;

    white-space:
        nowrap;

    transition:
        background .2s ease,
        transform .2s ease,
        box-shadow .2s ease;
}

.havan-show-map-btn:hover {
    background:
        var(--havan-burgundy-dark);

    color:
        #FFFFFF !important;

    transform:
        translateX(-50%)
        translateY(-2px);

    box-shadow:
        0 12px 29px
        rgba(29,24,21,.27);
}

.havan-directions-icon {
    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    flex:
        0 0 auto;
}

.havan-directions-icon svg {
    display:
        block;

    width:
        17px;

    height:
        17px;

    fill:
        none;

    stroke:
        currentColor;

    stroke-width:
        1.8;

    stroke-linecap:
        round;

    stroke-linejoin:
        round;
}

.havan-map-note {
    margin:
        0;

    padding:
        0 22px 19px;

    color:
        var(--havan-muted);

    font-size:
        10px;

    line-height:
        1.5;
}


/* =========================================================
   MOTOPRESS CALENDAR
========================================================= */

.havan-availability-section
.datepick {
    width:
        100% !important;

    overflow:
        hidden;

    background:
        #FFFFFF;

    border:
        1px solid
        rgba(45,38,34,.10) !important;

    border-radius:
        10px;

    box-shadow:
        0 7px 22px
        rgba(45,38,34,.035);
}

.havan-availability-section
.datepick-nav,
.havan-availability-section
.datepick-ctrl {
    background:
        var(--havan-burgundy) !important;
}

.havan-availability-section
.datepick-nav a,
.havan-availability-section
.datepick-ctrl a {
    color:
        #FFFFFF !important;
}

.havan-availability-section
.datepick-month-header {
    background:
        var(--havan-burgundy-dark) !important;

    color:
        #FFFFFF !important;
}

.havan-availability-section
.datepick-month {
    width:
        50% !important;
}


/* =========================================================
   RELATED STAYS
========================================================= */

.havan-related-stays {
    padding:
        82px 0 94px;

    background:
        var(--havan-cream);

    border-top:
        1px solid
        rgba(45,38,34,.055);
}

.havan-related-heading {
    margin-bottom:
        29px;
}

.havan-related-heading h2 {
    margin:
        5px 0 0;

    color:
        var(--havan-burgundy-dark);

    font-size:
        clamp(
            32px,
            3.6vw,
            46px
        );

    line-height:
        1.08;

    letter-spacing:
        -.7px;
}

.havan-related-grid {
    display:
        grid;

    grid-template-columns:
        repeat(
            3,
            minmax(0,1fr)
        );

    gap:
        22px;
}

.havan-related-card {
    overflow:
        hidden;

    background:
        #FFFFFF;

    border:
        1px solid
        rgba(45,38,34,.08);

    border-radius:
        14px;

    box-shadow:
        0 8px 27px
        rgba(45,38,34,.04);

    transition:
        transform .25s ease,
        box-shadow .25s ease,
        border-color .25s ease;
}

.havan-related-card:hover {
    transform:
        translateY(-4px);

    border-color:
        rgba(45,38,34,.14);

    box-shadow:
        0 18px 40px
        rgba(45,38,34,.09);
}

.havan-related-image {
    display:
        block;

    aspect-ratio:
        4 / 3;

    overflow:
        hidden;

    background:
        var(--havan-beige);
}

.havan-related-image img {
    width:
        100%;

    height:
        100%;

    object-fit:
        cover;

    transition:
        transform .5s ease;
}

.havan-related-card:hover
.havan-related-image img {
    transform:
        scale(1.035);
}

.havan-related-placeholder {
    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    height:
        100%;

    min-height:
        240px;

    background:
        var(--havan-beige);

    color:
        var(--havan-burgundy);

    font-size:
        12px;

    font-weight:
        700;
}

.havan-related-content {
    padding:
        19px;
}

.havan-related-content h3 {
    margin:
        0 0 17px;

    color:
        var(--havan-burgundy-dark);

    font-size:
        19px;

    line-height:
        1.25;
}

.havan-related-content h3 a {
    color:
        inherit;

    text-decoration:
        none;
}


/* =========================================================
   LIGHTBOX
========================================================= */

.havan-lightbox {
    position:
        fixed;

    inset:
        0;

    z-index:
        999999;

    display:
        none;

    align-items:
        center;

    justify-content:
        center;
}

.havan-lightbox.is-open {
    display:
        flex;
}

.havan-lightbox-backdrop {
    position:
        absolute;

    inset:
        0;

    background:
        rgba(8,12,10,.93);
}

.havan-lightbox-dialog {
    position:
        relative;

    z-index:
        2;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    width:
        min(94vw,1400px);

    height:
        min(92vh,900px);
}

.havan-lightbox-image-wrap {
    position:
        relative;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    width:
        calc(100% - 140px);

    height:
        100%;
}

#havan-lightbox-image {
    max-width:
        100%;

    max-height:
        88vh;

    object-fit:
        contain;
}

.havan-lightbox-close,
.havan-lightbox-nav {
    z-index:
        4;

    background:
        rgba(255,255,255,.12);

    border:
        1px solid
        rgba(255,255,255,.2);

    border-radius:
        50%;

    color:
        #FFFFFF;

    cursor:
        pointer;
}

.havan-lightbox-close {
    position:
        absolute;

    top:
        8px;

    right:
        8px;

    width:
        46px;

    height:
        46px;

    font-size:
        30px;
}

.havan-lightbox-nav {
    width:
        50px;

    height:
        50px;

    flex:
        0 0 50px;

    font-size:
        36px;
}

.havan-lightbox-counter {
    position:
        absolute;

    bottom:
        10px;

    left:
        50%;

    transform:
        translateX(-50%);

    padding:
        7px 12px;

    background:
        rgba(0,0,0,.55);

    border-radius:
        20px;

    color:
        #FFFFFF;
}


/* =========================================================
   SINGLE / STAYS TABLET
========================================================= */

@media (max-width: 991px) {

    .havan-stays-hero {
        min-height:
            310px;
    }

    .havan-stays-toolbar {
        grid-template-columns:
            1fr;

        gap:
            25px;
    }

    .havan-stays-grid {
        grid-template-columns:
            repeat(
                2,
                minmax(0,1fr)
            );
    }

    .havan-stays-help {
        grid-template-columns:
            1fr;

        gap:
            20px;
    }


    /* single accommodation */

    .havan-single-body {
        padding-top:
            31px;
    }

    .havan-single-body-grid {
        grid-template-columns:
            1fr;

        gap:
            32px;
    }

    .havan-single-sidebar {
        position:
            static;

        top:
            auto;

        z-index:
            auto;
    }

    .havan-sidebar-stack {
        grid-template-columns:
            minmax(0,1fr)
            minmax(0,1fr);

        align-items:
            start;
    }

    .havan-booking-gallery {
        height:
            410px;
    }

    .havan-related-grid {
        grid-template-columns:
            repeat(
                2,
                minmax(0,1fr)
            );
    }
}


/* =========================================================
   SINGLE / STAYS MOBILE
========================================================= */

@media (max-width: 650px) {

    .havan-container {
        width:
            calc(100% - 30px);
    }


    /* stays hero */

    .havan-stays-hero {
        min-height:
            275px;
    }

    .havan-stays-hero-inner {
        padding:
            42px 20px;
    }

    .havan-stays-hero-eyebrow {
        margin-bottom:
            11px;

        font-size:
            8px;
    }

    .havan-stays-hero h1 {
        font-size:
            41px;

        line-height:
            1.03;
    }

    .havan-stays-hero p {
        max-width:
            330px;

        font-size:
            11.5px;
    }

    .havan-stays-hero-controls {
        bottom:
            17px;
    }

    .havan-stays-hero-city {
        right:
            17px;

        bottom:
            15px;

        font-size:
            7px;
    }


    /* stays directory */

    .havan-stays-section {
        padding:
            52px 0 65px;
    }

    .havan-stays-toolbar {
        margin-bottom:
            28px;
    }

    .havan-stays-toolbar-copy h2 {
        font-size:
            32px;
    }

    .havan-location-filter {
        grid-template-columns:
            repeat(2,1fr);

        gap:
            4px;
    }

    .havan-filter {
        min-height:
            44px;
    }

    .havan-results-row {
        align-items:
            flex-start;

        flex-direction:
            column;

        gap:
            5px;
    }

    .havan-results-note {
        display:
            none;
    }

    .havan-stays-grid {
        grid-template-columns:
            1fr;

        gap:
            20px;
    }

    .havan-stay-image {
        aspect-ratio:
            1.48 / 1;
    }

    .havan-stay-content {
        padding:
            19px;
    }

    .havan-stay-title {
        font-size:
            21px;
    }

    .havan-stays-help {
        margin-top:
            48px;

        padding:
            31px 24px;
    }

    .havan-stays-help h2 {
        font-size:
            31px;
    }


    /* single header */

    .havan-single-header {
        padding:
            30px 0 24px;
    }

    .havan-back-stays {
        margin-bottom:
            18px;
    }

    .havan-single-location {
        font-size:
            8px;
    }

    .havan-single-header h1 {
        margin-bottom:
            17px;

        font-size:
            36px;

        line-height:
            1.06;

        letter-spacing:
            -.7px;
    }

    .havan-single-facts span {
        min-height:
            31px;

        padding:
            6px 10px;

        font-size:
            10px;
    }


    /* single body */

    .havan-single-body {
        padding:
            23px 0 65px;
    }

    .havan-single-body-grid {
        gap:
            25px;
    }


    /* gallery */

    .havan-single-gallery {
        margin-bottom:
            25px;
    }

    .havan-booking-gallery {
        grid-template-columns:
            1fr 1fr;

        grid-template-rows:
            225px 115px;

        height:
            auto;

        gap:
            6px;

        border-radius:
            13px;
    }

    .havan-booking-gallery-main {
        grid-column:
            1 / 3;
    }

    .havan-booking-gallery-side {
        display:
            contents;
    }

    .havan-gallery-thumbnails {
        grid-template-columns:
            repeat(
                3,
                minmax(0,1fr)
            );

        gap:
            6px;

        margin-top:
            6px;
    }

    .havan-gallery-thumb {
        border-radius:
            7px;
    }

    .havan-gallery-thumb:nth-child(n+4) {
        display:
            none;
    }


    /* content */

    .havan-single-section {
        margin-bottom:
            16px;

        padding:
            23px 20px 24px;

        border-radius:
            13px;
    }

    .havan-single-section h2 {
        margin-bottom:
            15px;

        font-size:
            27px;
    }

    .havan-single-description {
        font-size:
            14px;

        line-height:
            1.75;
    }


    /* amenities */

    .havan-amenities-wrap {
        grid-template-columns:
            1fr;

        gap:
            8px;
    }

    .havan-amenity-card {
        min-height:
            59px;
    }


    /* sidebar */

    .havan-sidebar-stack {
        grid-template-columns:
            1fr;

        gap:
            15px;
    }

    .havan-booking-card {
        padding:
            25px 19px 20px;
    }

    .havan-booking-card h3,
    .havan-map-card h3 {
        font-size:
            23px;
    }


    /* booking */

    .havan-booking-dates,
    .havan-booking-guests {
        grid-template-columns:
            1fr;
    }


    /* map */

    .havan-sidebar-map {
        height:
            235px;
    }

    .havan-show-map-btn {
        min-height:
            44px;

        bottom:
            24px;

        padding:
            10px 16px;

        font-size:
            11px;
    }

    .havan-map-directions-copy {
        font-size:
            11px;
    }


    /* availability */

    .havan-availability-section {
        padding:
            23px 18px;
    }

    .havan-availability-section::before {
        left:
            20px;
    }

    .havan-availability-section
    .datepick-month {
        width:
            100% !important;

        float:
            none !important;
    }


    /* related */

    .havan-related-stays {
        padding:
            60px 0 70px;
    }

    .havan-related-grid {
        grid-template-columns:
            1fr;
    }
}


/* =========================================================
   HAVAN HOMEPAGE — PREMIUM LANDING PAGE
========================================================= */


/* =========================================================
   HERO
========================================================= */

.havan-home-hero {
    position: relative;

    min-height: 760px;

    overflow: hidden;

    background:
        var(--havan-burgundy-dark);

    color: #FFFFFF;
}

.havan-hero-slider {
    position: absolute;

    inset: 0;

    z-index: 0;
}

.havan-hero-slide {
    position: absolute;

    inset: 0;

    background-size: cover;

    background-position: center;

    background-repeat: no-repeat;

    opacity: 0;

    transform: none;

    filter: none;

    transition:
        opacity .9s ease;
}

.havan-hero-slide.is-active {
    opacity: 1;

    transform: none;
}

.havan-hero-overlay {
    position: absolute;

    inset: 0;

    /* Keep copy readable without hiding the apartment.
       The right side is almost completely unobstructed. */
    background:
        linear-gradient(
            90deg,
            rgba(20,18,17,.48) 0%,
            rgba(20,18,17,.30) 34%,
            rgba(20,18,17,.10) 63%,
            rgba(20,18,17,.03) 100%
        );

    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

.havan-home-hero-content {
    position: relative;

    z-index: 2;

    min-height: 760px;

    display: flex;

    align-items: center;

    padding:
        118px 0 72px;
}

.havan-home-hero-copy {
    max-width: 740px;

    margin-bottom: 54px;
}

.havan-home-kicker {
    display: inline-flex;

    align-items: center;

    gap: 12px;

    margin-bottom: 18px;

    color:
        rgba(255,255,255,.88);

    font-size: 11px;

    font-weight: 700;

    letter-spacing: 2.4px;

    text-transform: uppercase;
}

.havan-home-kicker::before {
    content: '';

    width: 38px;

    height: 1px;

    background:
        var(--havan-beige);
}

.havan-home-hero h1 {
    max-width: 710px;

    margin:
        0 0 22px;

    color: #FFFFFF;

    font-size:
        clamp(
            52px,
            6.2vw,
            82px
        );

    line-height: .99;

    letter-spacing:
        -2px;
}

.havan-home-hero-copy p {
    max-width: 620px;

    margin: 0;

    color:
        rgba(255,255,255,.88);

    font-size: 18px;

    line-height: 1.72;
}

.havan-hero-actions {
    display: flex;

    gap: 10px;

    margin-top: 30px;

    flex-wrap: wrap;
}

.havan-hero-primary,
.havan-hero-secondary {
    display: inline-flex;

    align-items: center;

    justify-content: center;

    min-height: 50px;

    padding:
        12px 22px;

    border-radius: 7px;

    font-size: 13px;

    font-weight: 700;

    text-decoration: none;
}

.havan-hero-primary {
    background: #FFFFFF;

    color:
        var(--havan-burgundy) !important;
}

.havan-hero-secondary {
    background:
        rgba(255,255,255,.07);

    border:
        1px solid
        rgba(255,255,255,.48);

    color:
        #FFFFFF !important;

    backdrop-filter:
        blur(6px);
}


/* =========================================================
   PREMIUM SEARCH BAR
========================================================= */

.havan-home-search {
    display: grid;

    grid-template-columns:
        1.35fr
        1fr
        1fr
        .63fr
        .63fr
        auto;

    align-items: stretch;

    max-width: 1160px;

    padding: 6px;

    background:
        rgba(255,255,255,.98);

    border-radius: 12px;

    box-shadow:
        0 25px 65px
        rgba(29,24,21,.3);

    backdrop-filter:
        blur(18px);
}

.havan-home-search-field {
    position: relative;

    min-width: 0;

    padding:
        10px 14px;

    border-right:
        1px solid
        var(--havan-border);
}

.havan-home-search-field label {
    display: block;

    margin-bottom: 3px;

    color:
        #888D88;

    font-size: 9px;

    font-weight: 700;

    letter-spacing: 1px;

    text-transform: uppercase;
}

.havan-home-search-field select {
    width: 100%;

    min-height: 31px;

    padding: 0;

    background: transparent;

    border: 0;

    box-shadow: none !important;

    color:
        var(--havan-charcoal);

    font-size: 13px;

    font-weight: 650;

    cursor: pointer;
}

.havan-home-date-field {
    position: relative;

    display: flex;

    align-items: center;

    min-height: 31px;
}

.havan-home-search-icon {
    position: absolute;

    left: 0;

    top: 50%;

    z-index: 3;

    transform:
        translateY(-50%);

    color:
        var(--havan-gold);

    pointer-events: none;
}

.havan-home-search-icon svg {
    width: 17px;

    height: 17px;

    fill: none;

    stroke: currentColor;

    stroke-width: 1.7;

    stroke-linecap: round;

    stroke-linejoin: round;
}

.havan-home-date-field
input[type="date"] {
    position: absolute;

    inset: 0;

    z-index: 4;

    width: 100%;

    height: 100%;

    min-width: 0;

    min-height: 31px;

    margin: 0;

    padding: 0;

    background:
        transparent !important;

    border:
        0 !important;

    outline:
        0 !important;

    box-shadow:
        none !important;

    color:
        transparent !important;

    -webkit-text-fill-color:
        transparent !important;

    opacity: .01;

    cursor: pointer;
}

.havan-home-date-field
input[type="date"]::-webkit-calendar-picker-indicator {
    position: absolute;

    inset: 0;

    width: 100%;

    height: 100%;

    margin: 0;

    padding: 0;

    opacity: 0;

    cursor: pointer;
}

.havan-home-date-placeholder {
    position: absolute;

    left: 25px;

    right: 0;

    top: 50%;

    z-index: 2;

    overflow: hidden;

    transform:
        translateY(-50%);

    color:
        var(--havan-charcoal);

    font-size: 12px;

    font-weight: 600;

    line-height: 1.2;

    text-overflow: ellipsis;

    white-space: nowrap;

    pointer-events: none;
}

.havan-home-date-field.has-date
.havan-home-date-placeholder {
    display: block;

    color:
        var(--havan-burgundy-dark);
}

.havan-home-search-action {
    display: flex;

    padding-left: 6px;
}

.havan-home-search-action button {
    min-width: 108px;

    border: 0;

    border-radius: 8px;

    background:
        var(--havan-burgundy);

    color: #FFFFFF;

    font-size: 13px;

    font-weight: 700;

    cursor: pointer;

    transition:
        background .2s ease,
        transform .2s ease;
}

.havan-home-search-action button:hover {
    background:
        var(--havan-burgundy-dark);

    transform:
        translateY(-1px);
}


/* =========================================================
   HERO SLIDER CONTROLS
========================================================= */

.havan-hero-slider-controls {
    display: flex;

    align-items: center;

    gap: 14px;

    margin-top: 22px;
}

.havan-hero-slider-controls > button {
    display: inline-flex;

    align-items: center;

    justify-content: center;

    width: 36px;

    height: 36px;

    padding: 0;

    background:
        rgba(255,255,255,.08);

    border:
        1px solid
        rgba(255,255,255,.32);

    border-radius: 50%;

    color: #FFFFFF;

    cursor: pointer;
}

.havan-hero-dots {
    display: flex;

    align-items: center;

    gap: 7px;
}

.havan-hero-dot {
    width: 6px;

    height: 6px;

    padding: 0;

    background:
        rgba(255,255,255,.4);

    border: 0;

    border-radius: 50%;

    cursor: pointer;

    transition:
        width .25s ease,
        background .25s ease,
        border-radius .25s ease;
}

.havan-hero-dot.is-active {
    width: 27px;

    background: #FFFFFF;

    border-radius: 20px;
}

.havan-scroll-cue {
    position: absolute;

    right: 30px;

    bottom: 38px;

    z-index: 3;

    display: flex;

    align-items: center;

    gap: 10px;

    color:
        rgba(255,255,255,.8);

    font-size: 10px;

    font-weight: 700;

    letter-spacing: 1.5px;

    text-decoration: none;

    text-transform: uppercase;

    transform:
        rotate(90deg);

    transform-origin:
        right bottom;
}


/* =========================================================
   INTRO
========================================================= */

.havan-home-intro {
    padding:
        110px 0 90px;

    background: #FFFFFF;
}

.havan-home-intro-grid {
    display: grid;

    grid-template-columns:
        1.1fr .9fr;

    gap: 100px;

    align-items: start;
}

.havan-home-intro h2 {
    max-width: 670px;

    margin: 0;

    font-size:
        clamp(
            39px,
            4.5vw,
            58px
        );

    line-height: 1.08;
}

.havan-home-intro-grid
> div:last-child {
    padding-top: 27px;
}

.havan-home-intro p {
    margin:
        0 0 17px;

    font-size: 16px;

    line-height: 1.78;
}


/* =========================================================
   SECTION HEADINGS
========================================================= */

.havan-home-section-heading {
    max-width: 850px;

    margin-bottom: 40px;
}

.havan-home-section-heading-centered {
    margin-left: auto;

    margin-right: auto;

    text-align: center;
}

.havan-home-section-heading h2,
.havan-home-why-copy h2,
.havan-home-final-inner h2 {
    margin:
        0 0 17px;

    font-size:
        clamp(
            38px,
            4.3vw,
            55px
        );

    line-height: 1.07;

    letter-spacing:
        -.8px;
}

.havan-home-heading-row {
    display: flex;

    align-items: end;

    justify-content: space-between;

    gap: 30px;
}

.havan-home-heading-row h2 {
    margin: 0;
}

.havan-home-text-link {
    flex: 0 0 auto;

    padding-bottom: 5px;

    color:
        var(--havan-burgundy);

    font-size: 13px;

    font-weight: 700;

    text-decoration: none;
}


/* =========================================================
   DESTINATIONS
========================================================= */

.havan-home-destinations {
    padding:
        100px 0 110px;

    background:
        var(--havan-cream);
}

.havan-destination-grid {
    display: grid;

    grid-template-columns:
        1.2fr .9fr .9fr;

    gap: 16px;
}

.havan-destination-card {
    position: relative;

    min-height: 500px;

    overflow: hidden;

    border-radius: 12px;

    color: #FFFFFF;

    text-decoration: none;
}

.havan-destination-card img,
.havan-destination-placeholder {
    position: absolute;

    inset: 0;

    width: 100%;

    height: 100%;

    object-fit: cover;

    transition:
        transform .6s
        cubic-bezier(.2,.7,.2,1);
}

.havan-destination-card:hover img {
    transform:
        scale(1.045);
}

.havan-destination-placeholder {
    display: flex;

    align-items: center;

    justify-content: center;

    background:
        var(--havan-beige);

    color:
        var(--havan-burgundy);

    font-weight: 700;
}

.havan-destination-overlay {
    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            to top,
            rgba(29,24,21,.82),
            rgba(29,24,21,.06) 67%
        );
}

.havan-destination-content {
    position: absolute;

    left: 0;

    right: 0;

    bottom: 0;

    z-index: 2;

    padding: 28px;
}

.havan-destination-topline {
    margin-bottom: 7px;

    color:
        rgba(255,255,255,.76);

    font-size: 10px;

    font-weight: 700;

    letter-spacing: 1.3px;

    text-transform: uppercase;
}

.havan-destination-content h3 {
    margin:
        0 0 9px;

    color: #FFFFFF;

    font-size: 38px;

    line-height: 1;
}

.havan-destination-link {
    color:
        rgba(255,255,255,.94);

    font-size: 13px;

    font-weight: 700;
}


/* =========================================================
   FEATURED STAYS
========================================================= */

.havan-home-featured {
    padding:
        110px 0;

    background: #FFFFFF;
}

.havan-home-stay-grid {
    display: grid;

    grid-template-columns:
        repeat(
            3,
            minmax(0,1fr)
        );

    gap: 24px;
}

.havan-home-stay-card {
    display: flex;

    flex-direction: column;

    overflow: hidden;

    background: #FFFFFF;

    border:
        1px solid
        var(--havan-border);

    border-radius: 12px;

    transition:
        transform .28s ease,
        box-shadow .28s ease;
}

.havan-home-stay-card:hover {
    transform:
        translateY(-5px);

    box-shadow:
        0 22px 50px
        rgba(45,38,34,.11);
}

.havan-home-stay-image {
    position: relative;

    display: block;

    aspect-ratio: 1.35 / 1;

    overflow: hidden;

    background:
        var(--havan-beige);
}

.havan-home-stay-image img {
    width: 100%;

    height: 100%;

    object-fit: cover;

    transition:
        transform .5s ease;
}

.havan-home-stay-card:hover
.havan-home-stay-image img {
    transform:
        scale(1.035);
}

.havan-home-stay-badge {
    position: absolute;

    top: 15px;

    left: 15px;

    padding:
        7px 10px;

    background:
        rgba(255,255,255,.94);

    border-radius: 5px;

    color:
        var(--havan-burgundy);

    font-size: 10px;

    font-weight: 700;

    letter-spacing: .7px;

    text-transform: uppercase;
}

.havan-home-stay-placeholder {
    display: flex;

    align-items: center;

    justify-content: center;

    height: 100%;

    color:
        var(--havan-burgundy);

    font-weight: 700;
}

.havan-home-stay-content {
    display: flex;

    flex-direction: column;

    flex: 1;

    padding:
        22px 22px 20px;
}

.havan-home-stay-location {
    margin-bottom: 8px;

    color:
        var(--havan-gold);

    font-size: 10px;

    font-weight: 700;

    letter-spacing: .9px;

    text-transform: uppercase;
}

.havan-home-stay-content h3 {
    margin:
        0 0 10px;

    font-size: 23px;

    line-height: 1.25;
}

.havan-home-stay-content h3 a {
    color:
        var(--havan-burgundy-dark);

    text-decoration: none;
}

.havan-home-stay-meta {
    margin-bottom: 22px;

    color:
        var(--havan-muted);

    font-size: 13px;
}

.havan-home-stay-link {
    display: flex;

    justify-content: space-between;

    align-items: center;

    margin-top: auto;

    padding-top: 16px;

    border-top:
        1px solid
        var(--havan-border);

    color:
        var(--havan-burgundy);

    font-size: 13px;

    font-weight: 700;

    text-decoration: none;
}


/* =========================================================
   WHY HAVAN
========================================================= */

.havan-home-why {
    padding:
        120px 0;

    background:
        var(--havan-burgundy-dark);
}

.havan-home-why-grid {
    display: grid;

    grid-template-columns:
        .86fr 1.14fr;

    gap: 95px;
}

.havan-home-why-copy {
    position: sticky;

    top: 120px;
}

.havan-home-why-copy
.havan-eyebrow {
    color:
        var(--havan-beige);
}

.havan-home-why-copy h2 {
    color: #FFFFFF;
}

.havan-home-why-copy p {
    max-width: 480px;

    margin:
        0 0 28px;

    color:
        rgba(255,255,255,.72);

    font-size: 16px;

    line-height: 1.75;
}

.havan-primary-link {
    display: inline-flex;

    padding:
        13px 21px;

    background: #FFFFFF;

    border-radius: 7px;

    color:
        var(--havan-burgundy) !important;

    font-size: 13px;

    font-weight: 700;

    text-decoration: none;
}

.havan-home-benefits {
    border-top:
        1px solid
        rgba(255,255,255,.15);
}

.havan-benefit-item {
    display: grid;

    grid-template-columns:
        50px 1fr;

    gap: 22px;

    padding:
        30px 0;

    border-bottom:
        1px solid
        rgba(255,255,255,.15);
}

.havan-benefit-number {
    color:
        var(--havan-beige);

    font-size: 11px;

    font-weight: 700;
}

.havan-benefit-item h3 {
    margin:
        0 0 8px;

    color: #FFFFFF;

    font-size: 22px;
}

.havan-benefit-item p {
    max-width: 540px;

    margin: 0;

    color:
        rgba(255,255,255,.68);

    font-size: 14px;

    line-height: 1.68;
}


/* =========================================================
   GALLERY
========================================================= */

.havan-home-gallery {
    padding:
        110px 0;

    background:
        var(--havan-cream);
}

.havan-home-gallery-grid {
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    grid-template-rows:
        260px
        260px
        220px;

    gap: 10px;
}

.havan-home-gallery-item {
    position: relative;

    display: block;

    overflow: hidden;

    border-radius: 9px;

    background:
        var(--havan-beige);
}

.havan-home-gallery-item img {
    display: block;

    width: 100%;

    height: 100%;

    object-fit: cover;

    transition:
        transform .55s
        cubic-bezier(.22,.61,.36,1);
}

.havan-home-gallery-item:hover img {
    transform:
        scale(1.045);
}

.havan-home-gallery-item-1 {
    grid-column:
        span 2;

    grid-row:
        span 2;
}

.havan-gallery-hover-label {
    position: absolute;

    left: 15px;

    bottom: 15px;

    padding:
        7px 11px;

    background:
        rgba(255,255,255,.94);

    border-radius: 5px;

    color:
        var(--havan-burgundy);

    font-size: 11px;

    font-weight: 700;

    opacity: 0;

    transform:
        translateY(6px);

    transition:
        opacity .25s ease,
        transform .25s ease;
}

.havan-home-gallery-item:hover
.havan-gallery-hover-label {
    opacity: 1;

    transform:
        translateY(0);
}


/* =========================================================
   FINAL CTA
========================================================= */

.havan-home-final-cta {
    padding:
        115px 0;

    background: #FFFFFF;
}

.havan-home-final-inner {
    max-width: 790px;

    margin: 0 auto;

    text-align: center;
}

.havan-home-final-inner h2 {
    font-size:
        clamp(
            45px,
            5vw,
            68px
        );
}

.havan-home-final-inner p {
    margin:
        0 auto 30px;

    font-size: 16px;
}

.havan-final-actions {
    display: flex;

    justify-content: center;

    gap: 10px;

    flex-wrap: wrap;
}

.havan-final-primary,
.havan-final-secondary {
    display: inline-flex;

    align-items: center;

    justify-content: center;

    min-height: 49px;

    padding:
        12px 22px;

    border-radius: 7px;

    font-size: 13px;

    font-weight: 700;

    text-decoration: none;
}

.havan-final-primary {
    background:
        var(--havan-burgundy);

    color:
        #FFFFFF !important;
}

.havan-final-secondary {
    border:
        1px solid
        var(--havan-border);

    color:
        var(--havan-burgundy) !important;
}


/* =========================================================
   HOMEPAGE TABLET
========================================================= */

@media (max-width: 1050px) {

    .havan-home-search {
        grid-template-columns:
            repeat(3,1fr);
    }

    .havan-home-search-field {
        border-bottom:
            1px solid
            var(--havan-border);
    }

    .havan-home-search-action {
        padding: 7px;
    }

    .havan-home-search-action button {
        width: 100%;

        min-height: 52px;
    }

    .havan-home-intro-grid {
        gap: 55px;
    }

    .havan-destination-grid {
        grid-template-columns:
            repeat(2,1fr);
    }

    .havan-destination-card:first-child {
        grid-column:
            1 / -1;

        min-height: 430px;
    }

    .havan-home-why-grid {
        gap: 50px;
    }
}


/* =========================================================
   HOMEPAGE MOBILE / TABLET
========================================================= */

@media (max-width: 800px) {

    .havan-home-hero {
        min-height: 760px;
    }

    .havan-home-hero-content {
        min-height: 760px;

        padding:
            90px 0 40px;
    }

    .havan-home-hero-copy {
        margin-bottom: 33px;
    }

    .havan-home-hero h1 {
        font-size:
            clamp(
                46px,
                11vw,
                65px
            );

        letter-spacing: -1px;
    }

    .havan-home-search {
        grid-template-columns:
            repeat(2,1fr);
    }

    .havan-scroll-cue {
        display: none;
    }

    .havan-home-intro-grid {
        grid-template-columns:
            1fr;

        gap: 15px;
    }

    .havan-home-intro-grid
    > div:last-child {
        padding-top: 0;
    }

    .havan-home-stay-grid {
        grid-template-columns:
            1fr;
    }

    .havan-home-why-grid {
        grid-template-columns:
            1fr;

        gap: 40px;
    }

    .havan-home-why-copy {
        position: static;
    }

    .havan-home-gallery-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        grid-template-rows:
            280px;

        grid-auto-rows:
            190px;

        gap: 8px;
    }

    .havan-home-gallery-item-1 {
        grid-column:
            1 / -1;

        grid-row:
            span 1;
    }
}


/* =========================================================
   HOMEPAGE MOBILE
========================================================= */

@media (max-width: 600px) {

    .havan-home-hero {
        min-height: auto;
    }

    .havan-home-hero-content {
        min-height: auto;

        padding:
            80px 0 30px;
    }

    .havan-hero-overlay {
        background:
            linear-gradient(
                to bottom,
                rgba(29,24,21,.53),
                rgba(29,24,21,.8)
            );
    }

    .havan-home-hero h1 {
        font-size: 47px;

        line-height: 1.01;
    }

    .havan-home-hero-copy p {
        font-size: 15px;
    }

    .havan-hero-actions {
        display: none;
    }

    .havan-home-search {
        grid-template-columns:
            1fr;

        padding: 5px;
    }

    .havan-home-search-field {
        padding:
            9px 11px;

        border-right: 0;

        border-bottom:
            1px solid
            var(--havan-border);
    }

    .havan-home-search-action {
        padding: 5px;
    }

    .havan-home-search-action button {
        min-height: 49px;
    }

    .havan-hero-slider-controls {
        margin-top: 16px;
    }

    .havan-home-intro {
        padding:
            75px 0;
    }

    .havan-home-intro h2 {
        font-size: 40px;
    }

    .havan-home-destinations {
        padding:
            75px 0;
    }

    .havan-destination-grid {
        grid-template-columns:
            1fr;
    }

    .havan-destination-card,
    .havan-destination-card:first-child {
        grid-column: auto;

        min-height: 350px;
    }

    .havan-home-featured {
        padding:
            75px 0;
    }

    .havan-home-heading-row {
        display: block;
    }

    .havan-home-text-link {
        display: inline-flex;

        margin-top: 14px;
    }

    .havan-home-why {
        padding:
            78px 0;
    }

    .havan-benefit-item {
        grid-template-columns:
            36px 1fr;

        gap: 10px;
    }

    .havan-home-gallery {
        padding:
            75px 0;
    }

    .havan-home-gallery-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        grid-template-rows:
            220px;

        grid-auto-rows:
            155px;

        gap: 7px;
    }

    .havan-home-gallery-item-1 {
        grid-column:
            1 / -1;

        grid-row:
            span 1;
    }

    .havan-home-final-cta {
        padding:
            78px 0;
    }

    .havan-home-final-inner h2 {
        font-size: 45px;
    }
}


/* =========================================================
   HAVAN REVIEWS PAGE
========================================================= */

.havan-reviews-hero {
    position: relative;

    padding:
        140px 0 125px;

    background-color:
        var(--havan-burgundy-dark);

    background-size:
        cover;

    background-position:
        center;

    background-repeat:
        no-repeat;

    color:
        #FFFFFF;
}

.havan-reviews-hero::after {
    content: '';

    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(29, 24, 21, .16),
            rgba(29, 24, 21, .02)
        );

    pointer-events:
        none;
}

.havan-reviews-hero
.havan-container {
    position: relative;

    z-index: 2;
}

.havan-reviews-hero-inner {
    max-width:
        820px;
}

.havan-reviews-hero
.havan-eyebrow {
    color:
        var(--havan-beige);
}

.havan-reviews-hero h1 {
    max-width:
        780px;

    margin:
        0 0 22px;

    color:
        #FFFFFF;

    font-size:
        clamp(
            50px,
            6vw,
            78px
        );

    line-height:
        1.01;

    letter-spacing:
        -1.8px;
}

.havan-reviews-hero p {
    max-width:
        600px;

    margin:
        0;

    color:
        rgba(255,255,255,.85);

    font-size:
        17px;

    line-height:
        1.72;
}

.havan-review-hero-rating {
    display:
        flex;

    align-items:
        center;

    flex-wrap:
        wrap;

    gap:
        10px;

    margin-top:
        30px;

    padding-top:
        23px;

    border-top:
        1px solid
        rgba(255,255,255,.22);

    max-width:
        480px;
}

.havan-review-hero-stars {
    color:
        var(--havan-gold-light);

    font-size:
        16px;

    letter-spacing:
        2px;
}

.havan-review-hero-rating strong {
    color:
        #FFFFFF;

    font-size:
        17px;
}

.havan-review-hero-rating span {
    color:
        rgba(255,255,255,.73);

    font-size:
        12px;
}


/* =========================================================
   TRUST STRIP
========================================================= */

.havan-review-trust {
    background:
        var(--havan-cream);

    border-bottom:
        1px solid
        var(--havan-border);
}

.havan-review-trust-grid {
    display:
        grid;

    grid-template-columns:
        repeat(
            4,
            minmax(0,1fr)
        );
}

.havan-review-trust-item {
    padding:
        27px 24px;

    border-right:
        1px solid
        var(--havan-border);
}

.havan-review-trust-item:last-child {
    border-right:
        0;
}

.havan-review-trust-item strong {
    display:
        block;

    margin-bottom:
        4px;

    color:
        var(--havan-burgundy-dark);

    font-size:
        17px;

    font-weight:
        700;
}

.havan-review-trust-item span {
    color:
        var(--havan-muted);

    font-size:
        12px;
}


/* =========================================================
   REVIEWS INTRO
========================================================= */

.havan-review-intro {
    padding:
        110px 0 95px;

    background:
        #FFFFFF;
}

.havan-review-intro-grid {
    display:
        grid;

    grid-template-columns:
        1.05fr
        .95fr;

    gap:
        95px;

    align-items:
        start;
}

.havan-review-intro h2 {
    max-width:
        670px;

    margin:
        0;

    font-size:
        clamp(
            39px,
            4.3vw,
            56px
        );

    line-height:
        1.08;

    letter-spacing:
        -.7px;
}

.havan-review-intro-grid
> div:last-child {
    padding-top:
        27px;
}

.havan-review-intro p {
    margin:
        0 0 17px;

    color:
        var(--havan-text);

    font-size:
        16px;

    line-height:
        1.75;
}


/* =========================================================
   REVIEWS SECTION
========================================================= */

.havan-reviews-content {
    padding:
        95px 0 115px;

    background:
        var(--havan-cream);
}

.havan-review-section-heading {
    margin-bottom:
        43px;
}

.havan-review-heading-row {
    display:
        flex;

    align-items:
        end;

    justify-content:
        space-between;

    gap:
        25px;
}

.havan-review-heading-row h2 {
    max-width:
        700px;

    margin:
        0;

    font-size:
        clamp(
            38px,
            4vw,
            53px
        );

    line-height:
        1.08;

    letter-spacing:
        -.7px;
}

.havan-review-count {
    flex:
        0 0 auto;

    margin-bottom:
        5px;

    color:
        var(--havan-muted);

    font-size:
        12px;

    font-weight:
        600;
}


/* =========================================================
   REVIEW GRID
========================================================= */

.havan-reviews-grid {
    display:
        grid;

    grid-template-columns:
        repeat(
            3,
            minmax(0,1fr)
        );

    gap:
        22px;

    align-items:
        stretch;
}

.havan-review-card {
    position:
        relative;

    display:
        flex;

    flex-direction:
        column;

    min-width:
        0;

    padding:
        27px 26px 24px;

    background:
        #FFFFFF;

    border:
        1px solid
        rgba(45,38,34,.09);

    border-radius:
        14px;

    box-shadow:
        0 14px 36px
        rgba(45,38,34,.055);

    transition:
        transform .25s ease,
        box-shadow .25s ease,
        border-color .25s ease;
}

.havan-review-card:hover {
    transform:
        translateY(-4px);

    border-color:
        rgba(45,38,34,.15);

    box-shadow:
        0 21px 47px
        rgba(45,38,34,.09);
}

.havan-review-card-top {
    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        12px;

    min-height:
        28px;
}

.havan-review-stars {
    display:
        flex;

    gap:
        2px;

    font-size:
        15px;

    line-height:
        1;
}

.havan-review-stars span {
    color:
        #D8D8D3;
}

.havan-review-stars
span.is-filled {
    color:
        var(--havan-gold);
}

.havan-review-source {
    padding:
        5px 8px;

    background:
        var(--havan-cream);

    border-radius:
        5px;

    color:
        var(--havan-burgundy);

    font-size:
        9px;

    font-weight:
        700;

    letter-spacing:
        .5px;

    text-transform:
        uppercase;

    white-space:
        nowrap;
}

.havan-review-quote-mark {
    height:
        50px;

    margin-top:
        20px;

    color:
        var(--havan-gold);

    font-family:
        Georgia,
        serif;

    font-size:
        72px;

    line-height:
        .86;
}

.havan-review-text {
    margin:
        0;

    padding:
        0;

    border:
        0;

    color:
        var(--havan-charcoal);

    font-family:
        inherit;

    font-size:
        15px;

    font-style:
        normal;

    font-weight:
        400;

    line-height:
        1.76;
}

.havan-review-person {
    display:
        flex;

    align-items:
        center;

    gap:
        12px;

    margin-top:
        auto;

    padding-top:
        24px;
}

.havan-review-person::before {
    content:
        '';

    position:
        absolute;

    left:
        26px;

    right:
        26px;

    margin-top:
        -24px;

    border-top:
        1px solid
        var(--havan-border);
}

.havan-review-avatar {
    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    flex:
        0 0 42px;

    width:
        42px;

    height:
        42px;

    background:
        var(--havan-burgundy);

    border-radius:
        50%;

    color:
        #FFFFFF;

    font-size:
        11px;

    font-weight:
        800;

    letter-spacing:
        .6px;
}

.havan-review-person-details {
    min-width:
        0;
}

.havan-review-person-details strong {
    display:
        block;

    margin-bottom:
        3px;

    overflow:
        hidden;

    color:
        var(--havan-burgundy-dark);

    font-size:
        13px;

    font-weight:
        700;

    text-overflow:
        ellipsis;

    white-space:
        nowrap;
}

.havan-review-person-details span {
    display:
        block;

    color:
        var(--havan-muted);

    font-size:
        10px;

    line-height:
        1.4;
}

.havan-reviews-empty {
    max-width:
        680px;

    margin:
        0 auto;

    padding:
        65px 42px;

    background:
        #FFFFFF;

    border:
        1px solid
        var(--havan-border);

    border-radius:
        14px;

    text-align:
        center;
}

.havan-reviews-empty h2 {
    margin:
        0 0 15px;

    color:
        var(--havan-burgundy-dark);

    font-size:
        38px;
}

.havan-reviews-empty p {
    max-width:
        500px;

    margin:
        0 auto;

    color:
        var(--havan-text);

    line-height:
        1.7;
}


/* =========================================================
   EXPERIENCE SECTION
========================================================= */

.havan-review-experience {
    padding:
        120px 0;

    background:
        #FFFFFF;
}

.havan-review-experience-grid {
    display:
        grid;

    grid-template-columns:
        .85fr
        1.15fr;

    gap:
        90px;
}

.havan-review-experience-heading {
    position:
        sticky;

    top:
        120px;

    align-self:
        start;
}

.havan-review-experience-heading h2 {
    margin:
        0;

    font-size:
        clamp(
            38px,
            4.2vw,
            53px
        );

    line-height:
        1.08;

    letter-spacing:
        -.6px;
}

.havan-review-experience-list {
    border-top:
        1px solid
        var(--havan-border);
}

.havan-review-experience-item {
    display:
        grid;

    grid-template-columns:
        45px
        1fr;

    gap:
        20px;

    padding:
        29px 0;

    border-bottom:
        1px solid
        var(--havan-border);
}

.havan-review-experience-item
> span {
    color:
        var(--havan-gold);

    font-size:
        11px;

    font-weight:
        700;
}

.havan-review-experience-item h3 {
    margin:
        0 0 7px;

    color:
        var(--havan-burgundy-dark);

    font-size:
        21px;
}

.havan-review-experience-item p {
    max-width:
        520px;

    margin:
        0;

    color:
        var(--havan-text);

    font-size:
        14px;

    line-height:
        1.65;
}


/* =========================================================
   REVIEWS FINAL CTA
========================================================= */

.havan-reviews-cta {
    padding:
        120px 0;

    background:
        var(--havan-burgundy);
}

.havan-reviews-cta-inner {
    max-width:
        760px;

    margin:
        0 auto;

    text-align:
        center;
}

.havan-reviews-cta
.havan-eyebrow {
    color:
        var(--havan-beige);
}

.havan-reviews-cta h2 {
    margin:
        0 0 18px;

    color:
        #FFFFFF;

    font-size:
        clamp(
            43px,
            5vw,
            65px
        );

    line-height:
        1.05;

    letter-spacing:
        -1px;
}

.havan-reviews-cta p {
    margin:
        0 auto 29px;

    color:
        rgba(255,255,255,.78);

    font-size:
        16px;
}

.havan-review-cta-actions {
    display:
        flex;

    justify-content:
        center;

    gap:
        10px;

    flex-wrap:
        wrap;
}

.havan-review-primary,
.havan-review-secondary {
    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    min-height:
        49px;

    padding:
        12px 22px;

    border-radius:
        7px;

    font-size:
        13px;

    font-weight:
        700;

    text-decoration:
        none;
}

.havan-review-primary {
    background:
        #FFFFFF;

    color:
        var(--havan-burgundy)
        !important;
}

.havan-review-primary:hover {
    background:
        var(--havan-cream);

    color:
        var(--havan-burgundy-dark)
        !important;
}

.havan-review-secondary {
    background:
        transparent;

    border:
        1px solid
        rgba(255,255,255,.52);

    color:
        #FFFFFF
        !important;
}

.havan-review-secondary:hover {
    background:
        rgba(255,255,255,.08);

    color:
        #FFFFFF
        !important;
}


/* =========================================================
   REVIEWS TABLET
========================================================= */

@media (max-width: 900px) {

    .havan-reviews-hero {
        padding:
            110px 0 95px;
    }

    .havan-review-trust-grid {
        grid-template-columns:
            repeat(
                2,
                minmax(0,1fr)
            );
    }

    .havan-review-intro-grid,
    .havan-review-experience-grid {
        grid-template-columns:
            1fr;

        gap:
            40px;
    }

    .havan-review-intro-grid
    > div:last-child {
        padding-top:
            0;
    }

    .havan-reviews-grid {
        grid-template-columns:
            repeat(
                2,
                minmax(0,1fr)
            );
    }

    .havan-review-experience-heading {
        position:
            static;
    }
}


/* =========================================================
   REVIEWS MOBILE
========================================================= */

@media (max-width: 600px) {

    .havan-reviews-hero {
        padding:
            82px 0 72px;

        background-position:
            center;
    }

    .havan-reviews-hero h1 {
        font-size:
            47px;

        letter-spacing:
            -1px;
    }

    .havan-reviews-hero p {
        font-size:
            15px;
    }

    .havan-review-hero-rating {
        margin-top:
            24px;
    }

    .havan-review-trust-grid {
        grid-template-columns:
            1fr 1fr;
    }

    .havan-review-trust-item {
        padding:
            20px 14px;
    }

    .havan-review-intro {
        padding:
            75px 0 60px;
    }

    .havan-review-intro h2 {
        font-size:
            39px;
    }

    .havan-reviews-content {
        padding:
            65px 0 78px;
    }

    .havan-review-heading-row {
        display:
            block;
    }

    .havan-review-count {
        display:
            inline-block;

        margin-top:
            13px;
    }

    .havan-reviews-grid {
        grid-template-columns:
            1fr;
    }

    .havan-review-card {
        padding:
            24px 21px 21px;
    }

    .havan-review-person::before {
        left:
            21px;

        right:
            21px;
    }

    .havan-reviews-empty {
        padding:
            45px 25px;
    }

    .havan-review-experience {
        padding:
            78px 0;
    }

    .havan-review-experience-item {
        grid-template-columns:
            35px
            1fr;

        gap:
            10px;
    }

    .havan-reviews-cta {
        padding:
            80px 0;
    }

    .havan-reviews-cta h2 {
        font-size:
            45px;
    }
}


/* =========================================================
   HAVAN CONTACTS PAGE
========================================================= */

.havan-contact-hero {
    position: relative;

    padding:
        140px 0 125px;

    background-color:
        var(--havan-burgundy-dark);

    background-size:
        cover;

    background-position:
        center;

    background-repeat:
        no-repeat;

    color:
        #FFFFFF;
}

.havan-contact-hero::after {
    content: '';

    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(20,18,17,.08),
            rgba(20,18,17,0)
        );

    pointer-events:
        none;
}

.havan-contact-hero .havan-container {
    position: relative;

    z-index: 2;
}

.havan-contact-hero-inner {
    max-width: 820px;
}

.havan-contact-hero .havan-eyebrow {
    color:
        var(--havan-beige);
}

.havan-contact-hero h1 {
    max-width: 760px;

    margin:
        0 0 22px;

    color:
        #FFFFFF;

    font-size:
        clamp(50px, 6vw, 78px);

    line-height:
        1.01;

    letter-spacing:
        -1.8px;
}

.havan-contact-hero p {
    max-width: 610px;

    margin: 0;

    color:
        rgba(255,255,255,.85);

    font-size: 17px;

    line-height: 1.72;
}

.havan-contact-hero-actions {
    display: flex;

    flex-wrap: wrap;

    gap: 10px;

    margin-top: 30px;
}

.havan-contact-hero-primary,
.havan-contact-hero-secondary {
    display: inline-flex;

    align-items: center;

    justify-content: center;

    min-height: 50px;

    padding:
        12px 22px;

    border-radius: 7px;

    font-size: 13px;

    font-weight: 700;

    text-decoration: none;
}

.havan-contact-hero-primary {
    background: #FFFFFF;

    color:
        var(--havan-burgundy) !important;
}

.havan-contact-hero-secondary {
    border:
        1px solid
        rgba(255,255,255,.48);

    background:
        rgba(255,255,255,.06);

    color:
        #FFFFFF !important;
}


/* =========================================================
   CONTACT OPTIONS
========================================================= */

.havan-contact-options {
    background:
        var(--havan-cream);

    padding: 0;
}

.havan-contact-options-grid {
    display: grid;

    grid-template-columns:
        repeat(
            3,
            minmax(0,1fr)
        );

    gap: 18px;

    padding:
        34px 0 0;
}

.havan-contact-option-card {
    background:
        #FFFFFF;

    border:
        1px solid
        rgba(45,38,34,.08);

    border-radius:
        14px;

    padding:
        32px 28px;

    box-shadow:
        0 14px 36px
        rgba(45,38,34,.05);

    transition:
        transform .25s ease,
        box-shadow .25s ease;
}

.havan-contact-option-card:hover {
    transform:
        translateY(-4px);

    box-shadow:
        0 20px 42px
        rgba(45,38,34,.08);
}

.havan-contact-option-icon {
    display: inline-flex;

    align-items: center;

    justify-content: center;

    width: 58px;

    height: 58px;

    border-radius: 16px;

    margin-bottom: 22px;

    color: #FFFFFF;

    box-shadow:
        0 10px 24px
        rgba(0,0,0,.12);
}

.havan-contact-option-icon svg {
    width: 26px;

    height: 26px;

    display: block;
}

.havan-contact-icon-whatsapp {
    background:
        linear-gradient(
            135deg,
            #25D366,
            #129A52
        );
}

.havan-contact-icon-call {
    background:
        linear-gradient(
            135deg,
            var(--havan-burgundy-light),
            var(--havan-burgundy)
        );
}

.havan-contact-icon-email {
    background:
        linear-gradient(
            135deg,
            var(--havan-gold-light),
            var(--havan-gold)
        );
}

.havan-contact-option-card h2 {
    margin:
        0 0 11px;

    color:
        var(--havan-burgundy-dark);

    font-size:
        27px;
}

.havan-contact-option-card p {
    max-width:
        310px;

    margin:
        0 0 23px;

    color:
        var(--havan-text);

    font-size:
        13px;

    line-height:
        1.7;

    min-height:
        69px;
}

.havan-contact-option-card a {
    color:
        var(--havan-burgundy);

    font-size:
        12px;

    font-weight:
        700;

    text-decoration:
        none;

    word-break:
        break-word;
}

.havan-contact-not-set {
    color:
        var(--havan-muted);

    font-size:
        11px;
}


/* =========================================================
   CONTACT INTRO
========================================================= */

.havan-contact-intro {
    padding:
        115px 0 100px;

    background:
        #FFFFFF;
}

.havan-contact-intro-grid {
    display:
        grid;

    grid-template-columns:
        1.05fr .95fr;

    gap:
        95px;

    align-items:
        start;
}

.havan-contact-intro h2 {
    max-width:
        650px;

    margin:
        0;

    color:
        var(--havan-burgundy-dark);

    font-size:
        clamp(40px, 4.4vw, 57px);

    line-height:
        1.07;

    letter-spacing:
        -.8px;
}

.havan-contact-intro-grid > div:last-child {
    padding-top:
        28px;
}

.havan-contact-intro p {
    margin:
        0 0 22px;

    color:
        var(--havan-text);

    font-size:
        16px;

    line-height:
        1.78;
}

.havan-contact-hours {
    margin-top:
        31px;

    padding:
        19px 0;

    border-top:
        1px solid
        var(--havan-border);

    border-bottom:
        1px solid
        var(--havan-border);
}

.havan-contact-hours span {
    display:
        block;

    margin-bottom:
        5px;

    color:
        var(--havan-muted);

    font-size:
        9px;

    font-weight:
        700;

    letter-spacing:
        1px;

    text-transform:
        uppercase;
}

.havan-contact-hours strong {
    color:
        var(--havan-burgundy-dark);

    font-size:
        14px;
}


/* =========================================================
   CONTACT LOCATION SECTION
========================================================= */

.havan-contact-locations {
    padding:
        105px 0 115px;

    background:
        var(--havan-cream);
}

.havan-contact-section-heading {
    max-width:
        760px;

    margin-bottom:
        43px;
}

.havan-contact-section-heading h2 {
    margin:
        0 0 16px;

    color:
        var(--havan-burgundy-dark);

    font-size:
        clamp(39px, 4.3vw, 55px);

    line-height:
        1.07;

    letter-spacing:
        -.7px;
}

.havan-contact-section-heading p {
    max-width:
        580px;

    margin: 0;

    font-size:
        15px;

    line-height:
        1.7;
}

.havan-contact-location-grid {
    display: grid;

    grid-template-columns:
        repeat(
            3,
            minmax(0,1fr)
        );

    gap:
        18px;
}

.havan-contact-location-card {
    position: relative;

    display: flex;

    flex-direction: column;

    min-height:
        360px;

    padding:
        28px;

    border-radius:
        15px;

    overflow:
        hidden;

    background-color:
        #4A1716;

    background-size:
        cover;

    background-position:
        center;

    background-repeat:
        no-repeat;

    box-shadow:
        0 16px 42px
        rgba(45,38,34,.10);

    isolation:
        isolate;
}

.havan-contact-location-card::before {
    content:
        '';

    position:
        absolute;

    inset:
        0;

    background:
        linear-gradient(
            to bottom,
            rgba(29,24,21,.10),
            rgba(29,24,21,.74)
        );

    z-index:
        -1;
}

.havan-contact-location-card.is-nakuru:not([style]) {
    background-image:
        linear-gradient(
            rgba(29,24,21,.48),
            rgba(29,24,21,.78)
        ),
        linear-gradient(
            135deg,
            #A6752C,
            #5B1312
        );
}

.havan-contact-location-card.is-nairobi:not([style]) {
    background-image:
        linear-gradient(
            rgba(29,24,21,.48),
            rgba(29,24,21,.78)
        ),
        linear-gradient(
            135deg,
            #7C4444,
            #42100F
        );
}

.havan-contact-location-card.is-eldoret:not([style]) {
    background-image:
        linear-gradient(
            rgba(29,24,21,.48),
            rgba(29,24,21,.78)
        ),
        linear-gradient(
            135deg,
            #C99134,
            #5B1312
        );
}

.havan-contact-location-top {
    display: flex;

    align-items: center;

    justify-content: space-between;

    gap:
        15px;

    margin-bottom:
        48px;
}

.havan-contact-location-top span {
    display: inline-flex;

    align-items: center;

    min-height:
        28px;

    padding:
        6px 10px;

    border-radius:
        999px;

    background:
        rgba(255,255,255,.14);

    backdrop-filter:
        blur(8px);

    color:
        #FFFFFF;

    font-size:
        10px;

    font-weight:
        700;

    letter-spacing:
        .8px;

    text-transform:
        uppercase;
}

.havan-contact-location-card h3 {
    margin:
        0 0 12px;

    color:
        #FFFFFF;

    font-size:
        34px;

    line-height:
        1;
}

.havan-contact-location-card p {
    max-width:
        320px;

    margin:
        0 0 28px;

    color:
        rgba(255,255,255,.90);

    font-size:
        13px;

    line-height:
        1.68;
}

.havan-contact-location-actions {
    display: flex;

    align-items: center;

    justify-content: space-between;

    gap:
        13px;

    flex-wrap:
        wrap;

    margin-top:
        auto;

    padding-top:
        17px;

    border-top:
        1px solid
        rgba(255,255,255,.20);
}

.havan-contact-location-actions a {
    color:
        #FFFFFF;

    font-size:
        11px;

    font-weight:
        700;

    text-decoration:
        none;
}

.havan-contact-location-actions
.havan-location-map-link {
    color:
        rgba(255,255,255,.82);

    font-weight:
        600;
}


/* =========================================================
   CONTACT BOOKING HELP
========================================================= */

.havan-contact-help {
    padding:
        120px 0;

    background:
        var(--havan-burgundy-dark);
}

.havan-contact-help-grid {
    display: grid;

    grid-template-columns:
        .86fr 1.14fr;

    gap:
        90px;
}

.havan-contact-help-copy {
    position:
        sticky;

    top:
        120px;

    align-self:
        start;
}

.havan-contact-help-copy
.havan-eyebrow {
    color:
        var(--havan-beige);
}

.havan-contact-help-copy h2 {
    max-width:
        520px;

    margin:
        0 0 20px;

    color:
        #FFFFFF;

    font-size:
        clamp(39px, 4.2vw, 55px);

    line-height:
        1.07;
}

.havan-contact-help-copy p {
    max-width:
        470px;

    margin:
        0;

    color:
        rgba(255,255,255,.7);

    font-size:
        15px;

    line-height:
        1.75;
}

.havan-contact-help-list {
    border-top:
        1px solid
        rgba(255,255,255,.15);
}

.havan-contact-help-item {
    display: grid;

    grid-template-columns:
        45px 1fr;

    gap:
        20px;

    padding:
        29px 0;

    border-bottom:
        1px solid
        rgba(255,255,255,.15);
}

.havan-contact-help-item > span {
    color:
        var(--havan-beige);

    font-size:
        10px;

    font-weight:
        700;
}

.havan-contact-help-item h3 {
    margin:
        0 0 6px;

    color:
        #FFFFFF;

    font-size:
        21px;
}

.havan-contact-help-item p {
    margin:
        0;

    color:
        rgba(255,255,255,.65);

    font-size:
        13px;

    line-height:
        1.65;
}


/* =========================================================
   FINAL CONTACT CTA
========================================================= */

.havan-contact-final {
    padding:
        120px 0;

    background:
        #FFFFFF;
}

.havan-contact-final-inner {
    max-width:
        790px;

    margin:
        0 auto;

    text-align:
        center;
}

.havan-contact-final-inner h2 {
    margin:
        0 0 18px;

    color:
        var(--havan-burgundy-dark);

    font-size:
        clamp(44px, 5vw, 66px);

    line-height:
        1.05;

    letter-spacing:
        -1px;
}

.havan-contact-final-inner p {
    max-width:
        590px;

    margin:
        0 auto 30px;

    font-size:
        15px;

    line-height:
        1.7;
}

.havan-contact-final-actions {
    display: flex;

    justify-content: center;

    gap:
        10px;

    flex-wrap:
        wrap;
}

.havan-contact-final-primary,
.havan-contact-final-secondary {
    display: inline-flex;

    align-items: center;

    justify-content: center;

    min-height:
        49px;

    padding:
        12px 22px;

    border-radius:
        7px;

    font-size:
        13px;

    font-weight:
        700;

    text-decoration:
        none;
}

.havan-contact-final-primary {
    background:
        var(--havan-burgundy);

    color:
        #FFFFFF !important;
}

.havan-contact-final-secondary {
    border:
        1px solid
        var(--havan-border);

    color:
        var(--havan-burgundy) !important;
}


/* =========================================================
   CONTACT TABLET
========================================================= */

@media (max-width: 900px) {

    .havan-contact-hero {
        padding:
            110px 0 95px;
    }

    .havan-contact-options-grid {
        grid-template-columns:
            1fr;
    }

    .havan-contact-option-card p {
        min-height:
            0;
    }

    .havan-contact-intro-grid,
    .havan-contact-help-grid {
        grid-template-columns:
            1fr;

        gap:
            42px;
    }

    .havan-contact-intro-grid > div:last-child {
        padding-top:
            0;
    }

    .havan-contact-location-grid {
        grid-template-columns:
            1fr 1fr;
    }

    .havan-contact-location-card:first-child {
        grid-column:
            1 / -1;
    }

    .havan-contact-help-copy {
        position:
            static;
    }
}


/* =========================================================
   CONTACT MOBILE
========================================================= */

@media (max-width: 600px) {

    .havan-contact-hero {
        padding:
            82px 0 72px;
    }

    .havan-contact-hero h1 {
        font-size:
            47px;

        letter-spacing:
            -1px;
    }

    .havan-contact-hero p {
        font-size:
            15px;
    }

    .havan-contact-hero-actions {
        margin-top:
            24px;
    }

    .havan-contact-options-grid {
        grid-template-columns:
            1fr;
    }

    .havan-contact-option-card {
        padding:
            28px 22px;
    }

    .havan-contact-option-icon {
        width:
            54px;

        height:
            54px;

        border-radius:
            14px;
    }

    .havan-contact-intro {
        padding:
            75px 0;
    }

    .havan-contact-intro h2 {
        font-size:
            40px;
    }

    .havan-contact-locations {
        padding:
            75px 0;
    }

    .havan-contact-location-grid {
        grid-template-columns:
            1fr;
    }

    .havan-contact-location-card:first-child {
        grid-column:
            auto;
    }

    .havan-contact-location-card {
        min-height:
            320px;

        padding:
            24px;
    }

    .havan-contact-help {
        padding:
            78px 0;
    }

    .havan-contact-help-item {
        grid-template-columns:
            35px 1fr;

        gap:
            10px;
    }

    .havan-contact-final {
        padding:
            80px 0;
    }

    .havan-contact-final-inner h2 {
        font-size:
            44px;
    }
}


/* =========================================================
   HAVAN GLOBAL HEADER + FOOTER — FINAL
========================================================= */


/* =========================================================
   GLOBAL HEADER
========================================================= */

.havan-site-header,
.havan-site-header.havan-header-overlay,
.havan-site-header.havan-header-solid {
    position:
        sticky !important;

    top:
        0 !important;

    left:
        0;

    right:
        0;

    z-index:
        99990 !important;

    width:
        100%;

    background:
        #FFFFFF !important;

    border-bottom:
        1px solid
        rgba(45,38,34,.10);

    box-shadow:
        none;

    backdrop-filter:
        none;

    -webkit-backdrop-filter:
        none;

    transition:
        background .28s ease,
        box-shadow .28s ease,
        border-color .28s ease,
        backdrop-filter .28s ease;
}


/* =========================================================
   SCROLLED HEADER
========================================================= */

.havan-site-header.is-scrolled,
.havan-site-header.havan-header-overlay.is-scrolled,
.havan-site-header.havan-header-solid.is-scrolled {
    position:
        sticky !important;

    top:
        0 !important;

    background:
        rgba(255,255,255,.84) !important;

    border-bottom:
        1px solid
        rgba(45,38,34,.07);

    box-shadow:
        0 10px 35px
        rgba(29,24,21,.08);

    backdrop-filter:
        blur(17px);

    -webkit-backdrop-filter:
        blur(17px);
}


/* =========================================================
   HEADER CONTAINER
========================================================= */

.havan-header-container {
    width:
        min(
            1180px,
            calc(100% - 48px)
        );

    min-height:
        78px;

    margin:
        0 auto;

    display:
        grid;

    grid-template-columns:
        auto 1fr auto;

    align-items:
        center;

    gap:
        35px;
}


/* =========================================================
   HEADER LOGO
========================================================= */

.havan-header-brand {
    display:
        flex;

    align-items:
        center;

    min-width:
        0;
}

.havan-header-logo {
    display:
        inline-flex;

    align-items:
        center;

    min-width:
        0;

    color:
        inherit;

    text-decoration:
        none;
}

.havan-logo-image {
    display:
        block;

    width:
        auto;

    height:
        auto;

    max-width:
        195px;

    max-height:
        58px;

    object-fit:
        contain;
}

.havan-logo-fallback {
    display:
        flex;

    flex-direction:
        column;

    color:
        var(--havan-burgundy-dark) !important;

    line-height:
        1;
}

.havan-logo-fallback-main {
    font-size:
        25px;

    font-weight:
        800;

    letter-spacing:
        -.7px;
}

.havan-logo-fallback-sub {
    margin-top:
        3px;

    font-size:
        8px;

    font-weight:
        700;

    letter-spacing:
        2.5px;

    text-transform:
        uppercase;
}


/* =========================================================
   DESKTOP NAVIGATION
========================================================= */

.havan-desktop-navigation {
    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        38px;
}

.havan-desktop-navigation a,
.havan-header-overlay
.havan-desktop-navigation a,
.havan-site-header.is-scrolled
.havan-desktop-navigation a {
    position:
        relative;

    padding:
        28px 0 26px;

    color:
        var(--havan-burgundy-dark) !important;

    font-size:
        14px;

    font-weight:
        650;

    line-height:
        1.2;

    letter-spacing:
        .1px;

    text-decoration:
        none;

    transition:
        color .2s ease;
}

.havan-desktop-navigation a:hover {
    color:
        var(--havan-burgundy) !important;
}

.havan-desktop-navigation a::after {
    content:
        '';

    position:
        absolute;

    left:
        0;

    bottom:
        19px;

    width:
        0;

    height:
        2px;

    border-radius:
        20px;

    background:
        var(--havan-gold);

    transition:
        width .22s ease;
}

.havan-desktop-navigation a:hover::after,
.havan-desktop-navigation a.is-active::after {
    width:
        100%;
}


/* =========================================================
   HEADER ACTIONS
========================================================= */

.havan-header-actions {
    display:
        flex;

    align-items:
        center;

    justify-content:
        flex-end;

    gap:
        10px;
}


/* =========================================================
   WHATSAPP BUTTON
========================================================= */

.havan-header-whatsapp {
    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    flex:
        0 0 43px;

    width:
        43px;

    height:
        43px;

    border-radius:
        50%;

    background:
        #25D366 !important;

    color:
        #FFFFFF !important;

    text-decoration:
        none;

    box-shadow:
        0 7px 17px
        rgba(37,211,102,.20);

    transition:
        transform .2s ease,
        box-shadow .2s ease;
}

.havan-header-whatsapp:hover {
    transform:
        translateY(-2px);

    box-shadow:
        0 10px 22px
        rgba(37,211,102,.26);
}

.havan-header-whatsapp svg {
    display:
        block;

    width:
        23px;

    height:
        23px;
}


/* =========================================================
   BOOK NOW
========================================================= */

.havan-header-book,
.havan-header-overlay
.havan-header-book,
.havan-site-header.is-scrolled
.havan-header-book {
    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    min-height:
        45px;

    padding:
        10px 21px;

    border:
        0;

    border-radius:
        8px;

    background:
        var(--havan-burgundy) !important;

    color:
        #FFFFFF !important;

    font-size:
        12.5px;

    font-weight:
        700;

    line-height:
        1;

    text-decoration:
        none;

    transition:
        background .2s ease,
        transform .2s ease;
}

.havan-header-book:hover {
    background:
        var(--havan-burgundy-dark) !important;

    color:
        #FFFFFF !important;

    transform:
        translateY(-1px);
}


/* =========================================================
   HAMBURGER
========================================================= */

.havan-menu-toggle {
    display:
        none;

    flex:
        0 0 43px;

    width:
        43px;

    height:
        43px;

    padding:
        10px;

    align-items:
        center;

    justify-content:
        center;

    flex-direction:
        column;

    gap:
        5px;

    border:
        0;

    border-radius:
        7px;

    background:
        transparent;

    appearance:
        none;

    -webkit-appearance:
        none;

    cursor:
        pointer;

    position:
        relative;

    z-index:
        100001;
}

.havan-menu-toggle span {
    display:
        block;

    width:
        22px;

    height:
        2px;

    border-radius:
        10px;

    background:
        var(--havan-burgundy-dark) !important;

    transition:
        transform .25s ease,
        opacity .25s ease;
}


/* =========================================================
   MOBILE NAVIGATION
========================================================= */

html.havan-menu-open,
body.havan-menu-open {
    overflow:
        hidden !important;
}

.havan-mobile-nav {
    display:
        block !important;

    position:
        fixed !important;

    inset:
        0 !important;

    z-index:
        999999 !important;

    visibility:
        hidden;

    opacity:
        0;

    pointer-events:
        none;

    transition:
        visibility .25s ease,
        opacity .25s ease;
}

.havan-mobile-nav.is-open {
    visibility:
        visible !important;

    opacity:
        1 !important;

    pointer-events:
        auto !important;
}

.havan-mobile-nav-backdrop {
    position:
        absolute;

    inset:
        0;

    display:
        block;

    width:
        100%;

    height:
        100%;

    padding:
        0;

    border:
        0;

    background:
        rgba(29,24,21,.58);

    opacity:
        0;

    appearance:
        none;

    -webkit-appearance:
        none;

    cursor:
        pointer;

    backdrop-filter:
        blur(4px);

    -webkit-backdrop-filter:
        blur(4px);

    transition:
        opacity .3s ease;
}

.havan-mobile-nav.is-open
.havan-mobile-nav-backdrop {
    opacity:
        1;
}

.havan-mobile-nav-panel {
    position:
        absolute !important;

    top:
        0;

    right:
        0;

    display:
        flex !important;

    flex-direction:
        column;

    width:
        min(410px,90vw);

    max-width:
        100%;

    height:
        100dvh;

    min-height:
        100vh;

    padding:
        25px 28px 30px;

    background:
        var(--havan-cream);

    box-shadow:
        -20px 0 60px
        rgba(29,24,21,.20);

    transform:
        translate3d(105%,0,0);

    transition:
        transform .35s
        cubic-bezier(.22,.7,.2,1);

    overflow-y:
        auto;

    overscroll-behavior:
        contain;
}

.havan-mobile-nav.is-open
.havan-mobile-nav-panel {
    transform:
        translate3d(0,0,0) !important;
}


/* =========================================================
   MOBILE NAV TOP
========================================================= */

.havan-mobile-nav-top {
    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        20px;

    padding-bottom:
        25px;

    border-bottom:
        1px solid
        var(--havan-border);
}

.havan-mobile-logo {
    display:
        inline-flex;

    align-items:
        center;

    color:
        var(--havan-burgundy-dark);

    text-decoration:
        none;
}

.havan-mobile-logo
.havan-logo-image {
    max-width:
        155px;

    max-height:
        52px;
}

.havan-mobile-close {
    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    flex:
        0 0 42px;

    width:
        42px;

    height:
        42px;

    padding:
        0;

    background:
        #FFFFFF;

    border:
        1px solid
        var(--havan-border);

    border-radius:
        50%;

    color:
        var(--havan-burgundy-dark);

    font-size:
        26px;

    font-weight:
        300;

    line-height:
        1;

    cursor:
        pointer;
}


/* =========================================================
   MOBILE LINKS
========================================================= */

.havan-mobile-links {
    display:
        flex;

    flex-direction:
        column;

    padding:
        25px 0;
}

.havan-mobile-links a {
    display:
        grid;

    grid-template-columns:
        38px 1fr;

    align-items:
        center;

    padding:
        18px 0;

    border-bottom:
        1px solid
        var(--havan-border);

    color:
        var(--havan-burgundy-dark) !important;

    font-size:
        25px;

    font-weight:
        650;

    letter-spacing:
        -.4px;

    text-decoration:
        none;
}

.havan-mobile-links a span {
    color:
        var(--havan-gold);

    font-size:
        9px;

    font-weight:
        700;

    letter-spacing:
        .8px;
}


/* =========================================================
   MOBILE NAV FOOTER
========================================================= */

.havan-mobile-nav-footer {
    margin-top:
        auto;

    padding-top:
        30px;
}

.havan-mobile-nav-footer p {
    max-width:
        280px;

    margin:
        0 0 18px;

    color:
        var(--havan-muted);

    font-size:
        12px;

    line-height:
        1.65;
}

.havan-mobile-book,
.havan-mobile-whatsapp {
    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    width:
        100%;

    min-height:
        50px;

    margin-top:
        8px;

    padding:
        11px 16px;

    border-radius:
        8px;

    font-size:
        12px;

    font-weight:
        700;

    text-decoration:
        none;
}

.havan-mobile-book {
    background:
        var(--havan-burgundy);

    color:
        #FFFFFF !important;
}

.havan-mobile-whatsapp {
    border:
        1px solid
        var(--havan-border);

    background:
        #FFFFFF;

    color:
        var(--havan-burgundy) !important;
}


/* =========================================================
   COMPACT HAVAN FOOTER
========================================================= */

.havan-site-footer {
    position:
        relative;

    background:
        var(--havan-burgundy-dark);

    color:
        #FFFFFF;
}

.havan-footer-lead {
    padding:
        48px 0;

    background:
        var(--havan-burgundy);

    border-bottom:
        1px solid
        rgba(255,255,255,.10);
}

.havan-footer-lead-grid {
    display:
        grid;

    grid-template-columns:
        1.05fr .95fr;

    align-items:
        center;

    gap:
        42px;
}

.havan-footer-eyebrow {
    display:
        inline-block;

    margin-bottom:
        8px;

    color:
        var(--havan-beige);

    font-size:
        8px;

    font-weight:
        700;

    letter-spacing:
        1.5px;

    text-transform:
        uppercase;
}

.havan-footer-lead h2 {
    max-width:
        520px;

    margin:
        0;

    color:
        #FFFFFF;

    font-size:
        clamp(
            34px,
            4vw,
            48px
        );

    line-height:
        1.04;

    letter-spacing:
        -.7px;
}

.havan-footer-lead-action {
    padding-bottom:
        0;
}

.havan-footer-lead-action p {
    max-width:
        420px;

    margin:
        0 0 16px;

    color:
        rgba(255,255,255,.66);

    font-size:
        12px;

    line-height:
        1.6;
}

.havan-footer-lead-action > a {
    display:
        inline-flex;

    align-items:
        center;

    gap:
        20px;

    min-height:
        44px;

    padding:
        9px 15px 9px 18px;

    background:
        #FFFFFF;

    border-radius:
        7px;

    color:
        var(--havan-burgundy)
        !important;

    font-size:
        11px;

    font-weight:
        700;

    text-decoration:
        none;
}

.havan-footer-main {
    padding:
        52px 0 42px;
}

.havan-footer-grid {
    display:
        grid;

    grid-template-columns:
        1.45fr
        .7fr
        .7fr
        1fr;

    gap:
        36px;
}

.havan-footer-logo {
    display:
        inline-flex;

    margin-bottom:
        16px;

    color:
        #FFFFFF;

    text-decoration:
        none;
}

.havan-footer-logo-image {
    display:
        block;

    max-width:
        155px;

    max-height:
        58px;

    width:
        auto;

    height:
        auto;

    object-fit:
        contain;
}

.havan-footer-wordmark {
    display:
        flex;

    flex-direction:
        column;

    line-height:
        1;
}

.havan-footer-wordmark strong {
    color:
        #FFFFFF;

    font-size:
        27px;
}

.havan-footer-wordmark span {
    margin-top:
        3px;

    color:
        rgba(255,255,255,.7);

    font-size:
        8px;

    font-weight:
        700;

    letter-spacing:
        2.5px;

    text-transform:
        uppercase;
}

.havan-footer-brand p {
    max-width:
        300px;

    margin:
        0 0 16px;

    color:
        rgba(255,255,255,.58);

    font-size:
        11px;

    line-height:
        1.65;
}

.havan-footer-whatsapp {
    display:
        inline-flex;

    align-items:
        center;

    gap:
        7px;

    color:
        #FFFFFF !important;

    font-size:
        10.5px;

    font-weight:
        700;

    text-decoration:
        none;
}

.havan-footer-whatsapp svg {
    width:
        17px;

    height:
        17px;

    color:
        #25D366;
}

.havan-footer-column h3 {
    margin:
        2px 0 14px;

    color:
        #FFFFFF;

    font-size:
        10px;

    font-weight:
        750;

    letter-spacing:
        1px;

    text-transform:
        uppercase;
}

.havan-footer-column nav {
    display:
        flex;

    flex-direction:
        column;

    gap:
        8px;
}

.havan-footer-column nav a {
    color:
        rgba(255,255,255,.60);

    font-size:
        11px;

    text-decoration:
        none;

    transition:
        color .2s ease,
        transform .2s ease;
}

.havan-footer-column nav a:hover {
    color:
        #FFFFFF;

    transform:
        translateX(2px);
}

.havan-footer-contact-item {
    margin-bottom:
        13px;
}

.havan-footer-contact-item span {
    display:
        block;

    margin-bottom:
        3px;

    color:
        rgba(255,255,255,.34);

    font-size:
        7.5px;

    font-weight:
        700;

    letter-spacing:
        .9px;

    text-transform:
        uppercase;
}

.havan-footer-contact-item a,
.havan-footer-contact-item p {
    margin:
        0;

    color:
        rgba(255,255,255,.68);

    font-size:
        10.5px;

    line-height:
        1.45;

    text-decoration:
        none;

    word-break:
        break-word;
}

.havan-footer-contact-item a:hover {
    color:
        #FFFFFF;
}

.havan-footer-bottom {
    border-top:
        1px solid
        rgba(255,255,255,.08);
}

.havan-footer-bottom-inner {
    min-height:
        50px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        24px;
}

.havan-footer-bottom p,
.havan-footer-bottom span {
    margin:
        0;

    color:
        rgba(255,255,255,.36);

    font-size:
        8.5px;

    letter-spacing:
        .15px;
}

.havan-footer-bottom-links {
    display:
        flex;

    align-items:
        center;

    gap:
        14px;
}

.havan-back-to-top {
    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    width:
        30px;

    height:
        30px;

    border:
        1px solid
        rgba(255,255,255,.15);

    border-radius:
        50%;

    color:
        #FFFFFF !important;

    font-size:
        12px;

    text-decoration:
        none;
}


/* =========================================================
   GLOBAL HEADER + FOOTER TABLET
========================================================= */

@media (max-width: 900px) {

    .havan-header-container {
        width:
            min(
                calc(100% - 34px),
                1180px
            );

        min-height:
            70px;

        grid-template-columns:
            1fr auto;

        gap:
            18px;
    }

    .havan-desktop-navigation {
        display:
            none !important;
    }

    .havan-menu-toggle {
        display:
            flex !important;
    }

    .havan-header-actions {
        gap:
            7px;
    }

    .havan-logo-image {
        max-width:
            155px;

        max-height:
            50px;
    }

    .havan-header-book {
        min-height:
            41px;

        padding:
            8px 15px;

        font-size:
            11px;
    }

    .havan-header-whatsapp {
        width:
            40px;

        height:
            40px;

        flex-basis:
            40px;
    }

    .havan-footer-lead {
        padding:
            42px 0;
    }

    .havan-footer-lead-grid {
        grid-template-columns:
            1fr;

        gap:
            20px;
    }

    .havan-footer-main {
        padding:
            44px 0 36px;
    }

    .havan-footer-grid {
        grid-template-columns:
            1.2fr 1fr 1fr;

        gap:
            30px 24px;
    }

    .havan-footer-brand {
        grid-column:
            1 / -1;

        max-width:
            420px;
    }
}


/* =========================================================
   GLOBAL HEADER + FOOTER MOBILE
========================================================= */

@media (max-width: 600px) {

    .havan-header-container {
        width:
            calc(100% - 26px);

        min-height:
            66px;

        gap:
            8px;
    }

    .havan-logo-image {
        max-width:
            135px;

        max-height:
            45px;
    }

    .havan-header-whatsapp {
        display:
            none !important;
    }

    .havan-header-book {
        min-height:
            39px;

        padding:
            7px 12px;

        font-size:
            10.5px;
    }

    .havan-menu-toggle {
        display:
            flex !important;

        width:
            39px;

        height:
            39px;

        flex-basis:
            39px;
    }

    .havan-mobile-nav-panel {
        width:
            min(360px,92vw);

        padding:
            21px 22px 26px;
    }

    .havan-mobile-links a {
        padding:
            16px 0;

        font-size:
            22px;
    }

    .havan-footer-lead {
        padding:
            38px 0;
    }

    .havan-footer-lead h2 {
        font-size:
            36px;
    }

    .havan-footer-lead-action p {
        margin-bottom:
            13px;
    }

    .havan-footer-main {
        padding:
            38px 0 30px;
    }

    .havan-footer-grid {
        grid-template-columns:
            1fr 1fr;

        gap:
            28px 20px;
    }

    .havan-footer-brand {
        grid-column:
            1 / -1;
    }

    .havan-footer-contact {
        grid-column:
            1 / -1;
    }

    .havan-footer-logo-image {
        max-width:
            140px;

        max-height:
            52px;
    }

    .havan-footer-bottom-inner {
        min-height:
            66px;

        flex-direction:
            column;

        align-items:
            flex-start;

        justify-content:
            center;

        gap:
            8px;

        padding:
            10px 0;
    }

    .havan-footer-bottom-links {
        width:
            100%;

        justify-content:
            space-between;
    }
}


/* =========================================================
   VERY SMALL PHONES
========================================================= */

@media (max-width: 390px) {

    .havan-header-book {
        display:
            none !important;
    }

    .havan-footer-grid {
        grid-template-columns:
            1fr;
    }

    .havan-footer-brand,
    .havan-footer-contact {
        grid-column:
            auto;
    }

    .havan-footer-lead h2 {
        font-size:
            33px;
    }
}

/* =========================================================
   IMAGE CLARITY — PROPERTY PHOTOGRAPHY
========================================================= */

.havan-home img,
.havan-stays-page img,
.havan-single-stay img,
.havan-reviews-page img,
.havan-contact-page img {
    filter: none !important;
    image-rendering: auto;
    -webkit-font-smoothing: antialiased;
}

.havan-home-stay-image::after,
.havan-stay-image::after {
    background:
        linear-gradient(
            180deg,
            transparent 72%,
            rgba(20,18,17,.12) 100%
        );
}

/* Keep hover movement subtle so photography stays sharp. */
.havan-home-stay-card:hover img,
.havan-stay-card:hover .havan-stay-image img,
.havan-booking-gallery-main:hover img,
.havan-booking-gallery-side-item:hover img,
.havan-gallery-thumb:hover img {
    transform: scale(1.015);
}


/* =========================================================
   IMAGE QUALITY — SHARP, UNFILTERED PROPERTY PHOTOGRAPHY
========================================================= */

/* Homepage hero now uses a real responsive <img> instead of
   relying only on a CSS background. This allows WordPress
   srcset/sizes to deliver a sharper source on retina screens. */
.havan-hero-slide-image {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    filter: none !important;
    transform: none !important;
    image-rendering: auto;
}

/* Do not zoom accommodation photography on hover. Scaling can
   make otherwise sharp images appear soft in some browsers. */
.havan-home-stay-card:hover img,
.havan-stay-card:hover .havan-stay-image img,
.havan-booking-gallery-main:hover img,
.havan-booking-gallery-side-item:hover img,
.havan-gallery-thumb:hover img,
.havan-destination-card:hover img,
.havan-home-gallery-item:hover img {
    transform: none !important;
}

.havan-home-stay-image img,
.havan-stay-image img,
.havan-booking-gallery-main img,
.havan-booking-gallery-side-item img,
.havan-gallery-thumb img,
.havan-destination-card img,
.havan-home-gallery-item img {
    filter: none !important;
    image-rendering: auto;
    backface-visibility: hidden;
}

/* Keep overlays light: enough contrast for labels without
   obscuring interior detail. */
.havan-home-stay-image::after,
.havan-stay-image::after {
    background: linear-gradient(
        180deg,
        transparent 80%,
        rgba(20,18,17,.08) 100%
    ) !important;
}


/* =========================================================
   HOMEPAGE — PREMIUM REFINEMENT
   Cleaner hierarchy, lighter surfaces, sharper imagery and
   a more editorial luxury feel without overusing wine tones.
========================================================= */

.havan-home {
    background:
        var(--havan-ivory);
}


/* HERO */

.havan-home-hero {
    min-height:
        735px;

    background:
        var(--havan-charcoal);
}

.havan-home-hero-content {
    min-height:
        735px;

    padding:
        120px 0 76px;
}

.havan-home-hero-copy {
    max-width:
        660px;

    margin-bottom:
        46px;
}

.havan-home-hero h1 {
    max-width:
        650px;

    font-size:
        clamp(
            50px,
            5.7vw,
            76px
        );

    line-height:
        1.01;

    letter-spacing:
        -1.7px;

    text-shadow:
        0 3px 24px
        rgba(0,0,0,.16);
}

.havan-home-hero-copy p {
    max-width:
        560px;

    font-size:
        16px;

    line-height:
        1.72;
}

.havan-hero-overlay {
    background:
        linear-gradient(
            90deg,
            rgba(19,18,17,.55) 0%,
            rgba(19,18,17,.34) 34%,
            rgba(19,18,17,.12) 62%,
            rgba(19,18,17,.025) 100%
        );
}

.havan-hero-primary,
.havan-hero-secondary {
    min-height:
        48px;

    border-radius:
        999px;

    padding:
        11px 21px;
}

.havan-hero-primary {
    background:
        var(--havan-white);

    color:
        var(--havan-charcoal) !important;
}

.havan-hero-secondary {
    background:
        rgba(255,255,255,.05);

    border-color:
        rgba(255,255,255,.42);

    backdrop-filter:
        none;

    -webkit-backdrop-filter:
        none;
}


/* SEARCH */

.havan-home-search {
    max-width:
        1140px;

    padding:
        7px;

    background:
        rgba(255,255,255,.985);

    border:
        1px solid
        rgba(255,255,255,.76);

    border-radius:
        16px;

    box-shadow:
        0 22px 54px
        rgba(23,20,18,.20);

    backdrop-filter:
        none;

    -webkit-backdrop-filter:
        none;
}

.havan-home-search-action button {
    border-radius:
        11px;

    background:
        var(--havan-charcoal);
}

.havan-home-search-action button:hover {
    background:
        var(--havan-burgundy);
}


/* INTRO */

.havan-home-intro {
    padding:
        105px 0 92px;

    background:
        var(--havan-white);
}

.havan-home-intro-grid {
    grid-template-columns:
        .96fr 1.04fr;

    gap:
        96px;
}

.havan-home-intro-grid > div:first-child {
    position:
        relative;

    padding-left:
        28px;
}

.havan-home-intro-grid > div:first-child::before {
    content:
        '';

    position:
        absolute;

    left:
        0;

    top:
        4px;

    width:
        2px;

    height:
        72px;

    background:
        var(--havan-gold);
}

.havan-home-intro h2 {
    max-width:
        610px;

    font-size:
        clamp(
            37px,
            4vw,
            52px
        );
}

.havan-home-intro-grid > div:last-child {
    max-width:
        540px;

    padding-top:
        20px;
}

.havan-home-intro p {
    font-size:
        15px;

    line-height:
        1.82;
}


/* SECTION HEADINGS */

.havan-home-section-heading {
    max-width:
        800px;

    margin-bottom:
        34px;
}

.havan-home-section-heading h2,
.havan-home-why-copy h2,
.havan-home-final-inner h2 {
    letter-spacing:
        -1px;
}

.havan-home-text-link {
    color:
        var(--havan-charcoal);
}


/* DESTINATIONS */

.havan-home-destinations {
    padding:
        94px 0 104px;

    background:
        var(--havan-ivory);

    border-top:
        1px solid
        rgba(36,33,31,.05);

    border-bottom:
        1px solid
        rgba(36,33,31,.05);
}

.havan-destination-grid {
    grid-template-columns:
        repeat(3,minmax(0,1fr));

    gap:
        18px;
}

.havan-destination-card {
    min-height:
        455px;

    border-radius:
        18px;

    box-shadow:
        0 10px 28px
        rgba(28,24,22,.06);
}

.havan-destination-card img {
    transform:
        none !important;

    filter:
        none !important;
}

.havan-destination-card:hover img {
    transform:
        none !important;
}

.havan-destination-overlay {
    background:
        linear-gradient(
            to top,
            rgba(20,18,17,.74) 0%,
            rgba(20,18,17,.18) 46%,
            rgba(20,18,17,.02) 73%
        );
}

.havan-destination-content {
    padding:
        27px 28px;
}

.havan-destination-content h3 {
    font-size:
        35px;
}


/* FEATURED STAYS */

.havan-home-featured {
    padding:
        105px 0 112px;

    background:
        var(--havan-white);
}

.havan-home-stay-grid {
    gap:
        22px;
}

.havan-home-stay-card {
    border-color:
        rgba(36,33,31,.08);

    border-radius:
        17px;

    box-shadow:
        0 8px 28px
        rgba(28,24,22,.045);
}

.havan-home-stay-card:hover {
    transform:
        translateY(-3px);

    box-shadow:
        0 18px 42px
        rgba(28,24,22,.085);
}

.havan-home-stay-image {
    aspect-ratio:
        1.46 / 1;
}

.havan-home-stay-image img,
.havan-home-stay-card:hover .havan-home-stay-image img {
    transform:
        none !important;

    filter:
        none !important;
}

.havan-home-stay-badge {
    top:
        14px;

    left:
        14px;

    padding:
        7px 11px;

    border-radius:
        999px;

    background:
        rgba(255,255,255,.94);

    color:
        var(--havan-charcoal);
}

.havan-home-stay-content {
    padding:
        23px 23px 21px;
}

.havan-home-stay-location {
    color:
        var(--havan-gold);

    letter-spacing:
        1.05px;
}

.havan-home-stay-content h3 {
    font-size:
        22px;
}

.havan-home-stay-content h3 a,
.havan-home-stay-link {
    color:
        var(--havan-charcoal);
}


/* EXPERIENCE */

.havan-home-why {
    padding:
        112px 0;

    background:
        var(--havan-charcoal);
}

.havan-home-why-grid {
    gap:
        88px;
}

.havan-home-why-copy .havan-eyebrow,
.havan-benefit-number {
    color:
        var(--havan-gold-light);
}

.havan-primary-link {
    border-radius:
        999px;

    color:
        var(--havan-charcoal) !important;
}

.havan-home-benefits,
.havan-benefit-item {
    border-color:
        rgba(255,255,255,.11);
}


/* INSIDE HAVAN */

.havan-home-gallery {
    padding:
        104px 0 112px;

    background:
        var(--havan-ivory);
}

.havan-home-gallery-grid {
    grid-template-rows:
        250px
        250px
        215px;

    gap:
        14px;
}

.havan-home-gallery-item {
    border-radius:
        15px;

    box-shadow:
        0 8px 24px
        rgba(28,24,22,.045);
}

.havan-home-gallery-item img,
.havan-home-gallery-item:hover img {
    transform:
        none !important;

    filter:
        none !important;
}

.havan-gallery-hover-label {
    left:
        14px;

    bottom:
        14px;

    border-radius:
        999px;

    color:
        var(--havan-charcoal);
}


/* FINAL CTA */

.havan-home-final-cta {
    padding:
        105px 0 112px;

    background:
        var(--havan-white);

    border-top:
        1px solid
        rgba(36,33,31,.06);
}

.havan-home-final-inner {
    max-width:
        760px;
}

.havan-final-primary,
.havan-final-secondary {
    border-radius:
        999px;
}


/* RESPONSIVE REFINEMENTS */

@media (max-width: 900px) {

    .havan-home-hero,
    .havan-home-hero-content {
        min-height:
            690px;
    }

    .havan-home-intro-grid {
        gap:
            52px;
    }

    .havan-destination-grid {
        grid-template-columns:
            1fr;
    }

    .havan-destination-card {
        min-height:
            390px;
    }
}


@media (max-width: 680px) {

    .havan-home-hero,
    .havan-home-hero-content {
        min-height:
            720px;
    }

    .havan-home-hero-content {
        padding:
            108px 0 64px;
    }

    .havan-home-intro {
        padding:
            78px 0 68px;
    }

    .havan-home-intro-grid > div:first-child {
        padding-left:
            20px;
    }

    .havan-home-destinations,
    .havan-home-featured,
    .havan-home-gallery,
    .havan-home-final-cta {
        padding-top:
            78px;

        padding-bottom:
            82px;
    }

    .havan-home-why {
        padding:
            82px 0;
    }

    .havan-destination-card {
        min-height:
            340px;
    }
}

/* =========================================================
   SINGLE STAY GALLERY — MAXIMUM PHOTO CLARITY
   Final overrides intentionally remove GPU/scale effects from
   accommodation photography and keep the lightbox pixel-clean.
========================================================= */

.havan-single-stay .havan-booking-gallery-main img,
.havan-single-stay .havan-booking-gallery-side-item img,
.havan-single-stay .havan-gallery-thumb img,
.havan-single-stay #havan-lightbox-image {
    filter: none !important;
    transform: none !important;
    transition: none !important;
    backface-visibility: visible !important;
    -webkit-backface-visibility: visible !important;
    image-rendering: auto !important;
    opacity: 1 !important;
}

.havan-single-stay .havan-booking-gallery-main:hover img,
.havan-single-stay .havan-booking-gallery-side-item:hover img,
.havan-single-stay .havan-gallery-thumb:hover img {
    transform: none !important;
    filter: none !important;
}

.havan-single-stay .havan-booking-gallery-main img,
.havan-single-stay .havan-booking-gallery-side-item img {
    object-fit: cover;
    object-position: center;
}

.havan-single-stay .havan-gallery-thumb img {
    object-fit: cover;
    object-position: center;
}

.havan-single-stay #havan-lightbox-image {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 88vh;
    object-fit: contain;
    object-position: center;
}

/* Remove translucent effects from the photo plane itself. */
.havan-single-stay .havan-booking-gallery-main,
.havan-single-stay .havan-booking-gallery-side-item,
.havan-single-stay .havan-gallery-thumb,
.havan-single-stay .havan-lightbox-image-wrap {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

/* Keep thumbnail overlays limited to the explicit +photos tile. */
.havan-single-stay .havan-gallery-thumb::before,
.havan-single-stay .havan-gallery-thumb::after,
.havan-single-stay .havan-booking-gallery-main::before,
.havan-single-stay .havan-booking-gallery-main::after,
.havan-single-stay .havan-booking-gallery-side-item::before,
.havan-single-stay .havan-booking-gallery-side-item::after {
    filter: none !important;
}


/* =========================================================
   HOMEPAGE HERO — MOBILE UNIFORM CINEMATIC CROP
   Keep every slide at one predictable height on mobile.
   Images fill the screen width; excess height is cropped from
   the lower portion by anchoring the photograph at the top.
========================================================= */

@media (max-width: 680px) {

    .havan-home-hero {
        --havan-mobile-hero-height: clamp(235px, 57vw, 320px);

        position: relative;
        min-height: auto !important;
        overflow: hidden;
        background: #211F1D;
    }

    .havan-home-hero .havan-hero-slider {
        position: absolute;
        z-index: 1 !important;
        top: 0;
        right: 0;
        bottom: auto;
        left: 0;

        width: 100%;
        height: var(--havan-mobile-hero-height) !important;
        overflow: hidden;
        background: #171513;
    }

    .havan-home-hero .havan-hero-slide {
        position: absolute;
        z-index: 1;
        inset: 0;
        background: #171513;
    }

    .havan-home-hero .havan-hero-slide.is-active {
        z-index: 2;
    }

    /*
     * Uniform edge-to-edge image treatment.
     * object-position top means any necessary crop is taken
     * primarily from the bottom rather than cutting the ceiling,
     * roofline, headboard or upper architectural details.
     */
    .havan-home-hero .havan-hero-slide-image {
        position: absolute;
        inset: 0;

        display: block !important;
        width: 100% !important;
        height: 100% !important;

        object-fit: cover !important;
        object-position: center top !important;

        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
        filter: none !important;
        background: transparent !important;
    }

    /*
     * A subtle fade at the lower edge provides enough contrast
     * for the overlapping heading without muting the photograph.
     */
    .havan-home-hero .havan-hero-overlay {
        z-index: 3;
        background:
            linear-gradient(
                180deg,
                rgba(24,21,19,0) 0%,
                rgba(24,21,19,0) 58%,
                rgba(24,21,19,.18) 76%,
                rgba(24,21,19,.78) 100%
            ) !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
        pointer-events: none;
    }

    /*
     * Content begins slightly before the photograph ends.
     * This gives the headline a premium editorial overlap while
     * all following content remains on the charcoal section.
     */
    .havan-home-hero .havan-home-hero-content {
        position: relative;
        z-index: 4;
        min-height: auto !important;
        align-items: flex-start;

        padding:
            calc(var(--havan-mobile-hero-height) - 54px)
            0
            36px !important;

        background:
            linear-gradient(
                180deg,
                transparent 0,
                transparent var(--havan-mobile-hero-height),
                #211F1D var(--havan-mobile-hero-height),
                #252220 100%
            ) !important;

        pointer-events: none;
    }

    .havan-home-hero .havan-home-hero-content .havan-container,
    .havan-home-hero .havan-home-search,
    .havan-home-hero .havan-hero-slider-controls,
    .havan-home-hero .havan-hero-actions,
    .havan-home-hero .havan-scroll-cue {
        pointer-events: auto;
    }

    .havan-home-hero .havan-home-hero-copy {
        position: relative;
        z-index: 5;
        max-width: 100%;
        margin-bottom: 28px;
    }

    .havan-home-hero .havan-home-kicker {
        margin-bottom: 12px;
        color: rgba(255,255,255,.86);
        font-size: 9px;
        letter-spacing: 1.8px;
        text-shadow: 0 2px 12px rgba(0,0,0,.28);
    }

    .havan-home-hero h1 {
        max-width: 100%;
        margin-bottom: 16px;
        color: #FFFFFF !important;
        font-size: clamp(38px, 11.5vw, 50px) !important;
        line-height: 1.02;
        letter-spacing: -1px;
        text-shadow: 0 3px 18px rgba(0,0,0,.28);
    }

    .havan-home-hero-copy p {
        max-width: 100%;
        font-size: 14px !important;
        line-height: 1.62;
        color: rgba(255,255,255,.80);
        text-shadow: none;
    }

    .havan-home-search {
        margin-top: 0;
        border: 1px solid rgba(255,255,255,.10);
        box-shadow: 0 18px 46px rgba(0,0,0,.16);
    }

    .havan-hero-slider-controls {
        justify-content: center;
        margin-top: 18px;
    }
}


/* Smaller phones: retain the same visual rhythm without making
   the image panel too short. */
@media (max-width: 420px) {

    .havan-home-hero {
        --havan-mobile-hero-height: clamp(225px, 60vw, 265px);
    }

    .havan-home-hero .havan-home-hero-content {
        padding-top:
            calc(var(--havan-mobile-hero-height) - 46px) !important;
    }
}


/* Larger phones / small tablets get a little more photographic
   presence while keeping every slide exactly the same height. */
@media (min-width: 481px) and (max-width: 680px) {

    .havan-home-hero {
        --havan-mobile-hero-height: clamp(280px, 54vw, 345px);
    }
}
