@charset "UTF-8";
/* =========================================================================
   D`PENARIK BALI VILLA — SITE CHROME
   File: assets/css/dpbv-chrome.css
   Header · navigation · footer · back-to-top · icon set
   -------------------------------------------------------------------------
   Works WITH the parent theme's navigation.js, which toggles:
       #site-navigation.toggled      and  #masthead.menu-toggled
   Parent desktop breakpoint is 992px — matched here exactly.
   ========================================================================= */

/* -------------------------------------------------------------------------
   0. GLOBAL FONT MAPPING
   The parent's Google Fonts request (Noto Serif + Open Sans) is dequeued for
   performance; these declarations make sure every element inherits the
   house pair instead of falling back to a system serif.
   ---------------------------------------------------------------------- */
body,
button, input, select, optgroup, textarea,
.widget, .site-info, .footer-menu {
    font-family: var(--dpbv-font-body);
}
h1, h2, h3, h4, h5, h6,
.site-title, .widget-title, .entry-title {
    font-family: var(--dpbv-font-display);
}

/* -------------------------------------------------------------------------
   1. ICON SET — CSS masks, one data-URI each, zero extra requests
   ---------------------------------------------------------------------- */
.dpbv-ico {
    display: inline-block;
    inline-size: 1.05em;
    block-size: 1.05em;
    flex: 0 0 auto;
    background-color: currentColor;
    -webkit-mask-position: center;
            mask-position: center;
    -webkit-mask-repeat: no-repeat;
            mask-repeat: no-repeat;
    -webkit-mask-size: contain;
            mask-size: contain;
    vertical-align: -.14em;
}
.dpbv-ico--lock     { -webkit-mask-image: var(--i-lock);     mask-image: var(--i-lock); }
.dpbv-ico--calendar { -webkit-mask-image: var(--i-calendar); mask-image: var(--i-calendar); }
.dpbv-ico--book     { -webkit-mask-image: var(--i-book);     mask-image: var(--i-book); }
.dpbv-ico--scale    { -webkit-mask-image: var(--i-scale);    mask-image: var(--i-scale); }
.dpbv-ico--leaf     { -webkit-mask-image: var(--i-leaf);     mask-image: var(--i-leaf); }
.dpbv-ico--island   { -webkit-mask-image: var(--i-island);   mask-image: var(--i-island); }
.dpbv-ico--bed      { -webkit-mask-image: var(--i-bed);      mask-image: var(--i-bed); }
.dpbv-ico--help     { -webkit-mask-image: var(--i-help);     mask-image: var(--i-help); }
.dpbv-ico--pin      { -webkit-mask-image: var(--i-pin);      mask-image: var(--i-pin); }
.dpbv-ico--mail     { -webkit-mask-image: var(--i-mail);     mask-image: var(--i-mail); }
.dpbv-ico--chat     { -webkit-mask-image: var(--i-chat);     mask-image: var(--i-chat); }
.dpbv-ico--clock    { -webkit-mask-image: var(--i-clock);    mask-image: var(--i-clock); }
.dpbv-ico--star     { -webkit-mask-image: var(--i-star);     mask-image: var(--i-star); }
.dpbv-ico--check    { -webkit-mask-image: var(--i-check);    mask-image: var(--i-check); }
.dpbv-ico--wave     { -webkit-mask-image: var(--i-wave);     mask-image: var(--i-wave); }
.dpbv-ico--spa      { -webkit-mask-image: var(--i-spa);      mask-image: var(--i-spa); }
.dpbv-ico--car      { -webkit-mask-image: var(--i-car);      mask-image: var(--i-car); }
.dpbv-ico--food     { -webkit-mask-image: var(--i-food);     mask-image: var(--i-food); }
.dpbv-ico--gift     { -webkit-mask-image: var(--i-gift);     mask-image: var(--i-gift); }
.dpbv-ico--shield   { -webkit-mask-image: var(--i-shield);   mask-image: var(--i-shield); }

:root {
    --i-lock:     url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='10.5' width='16' height='10.5' rx='2.2'/%3E%3Cpath d='M8 10.5V7.6a4 4 0 0 1 8 0v2.9'/%3E%3Ccircle cx='12' cy='15.7' r='1.3' fill='%23000' stroke='none'/%3E%3C/svg%3E");
    --i-calendar: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.2' y='5' width='17.6' height='16' rx='2.4'/%3E%3Cpath d='M3.2 10h17.6M8.4 3v4M15.6 3v4'/%3E%3Ccircle cx='8.6' cy='14.6' r='1.15' fill='%23000' stroke='none'/%3E%3C/svg%3E");
    --i-book:     url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5.2A2.2 2.2 0 0 1 6.2 3H19v18H6.2A2.2 2.2 0 0 1 4 18.8z'/%3E%3Cpath d='M4 17.2h15M8 7.4h7M8 11h5'/%3E%3C/svg%3E");
    --i-scale:    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3.4v17.2M6.6 20.6h10.8M4 7.6h16M4 7.6 1.8 13h4.4zM20 7.6 17.8 13h4.4z'/%3E%3C/svg%3E");
    --i-leaf:     url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.4 3.6C11 3.6 5.4 8 5.4 15a6 6 0 0 0 .5 2.4C9.3 10.8 14 8.6 20.4 3.6z'/%3E%3Cpath d='M3.6 20.4C6 14 11 9.6 18 7.2'/%3E%3C/svg%3E");
    --i-island:   url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 19.4c2-1.4 4-1.4 6 0s4 1.4 6 0 4-1.4 6 0'/%3E%3Cpath d='M12 16V9'/%3E%3Cpath d='M12 9c-3 0-5 1.4-6 3 1-3.6 3.4-5.6 6-5.6s5 2 6 5.6c-1-1.6-3-3-6-3z'/%3E%3C/svg%3E");
    --i-bed:      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.6 18.6v-6.2h18.8v6.2M2.6 12.4V7.4M21.4 18.6v1.6M2.6 18.6v1.6'/%3E%3Cpath d='M6.6 12.4V9.8h5.2v2.6'/%3E%3C/svg%3E");
    --i-help:     url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.2'/%3E%3Cpath d='M9.5 9.4a2.6 2.6 0 1 1 3.7 2.4c-.8.4-1.2 1-1.2 1.9v.5'/%3E%3Ccircle cx='12' cy='17.2' r='1.1' fill='%23000' stroke='none'/%3E%3C/svg%3E");
    --i-pin:      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21.6s7-6.2 7-11.2a7 7 0 1 0-14 0c0 5 7 11.2 7 11.2z'/%3E%3Ccircle cx='12' cy='10.2' r='2.6'/%3E%3C/svg%3E");
    --i-mail:     url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.6' y='5' width='18.8' height='14' rx='2.4'/%3E%3Cpath d='m3.4 7 8.6 6 8.6-6'/%3E%3C/svg%3E");
    --i-chat:     url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 11.6a8.4 8.4 0 0 1-12.3 7.4L3.4 20.6l1.7-5.2A8.4 8.4 0 1 1 21 11.6z'/%3E%3C/svg%3E");
    --i-clock:    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.2'/%3E%3Cpath d='M12 6.8V12l3.6 2.2'/%3E%3C/svg%3E");
    --i-star:     url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 2.6l2.9 6 6.5.9-4.7 4.6 1.1 6.5L12 17.5l-5.8 3.1 1.1-6.5-4.7-4.6 6.5-.9z'/%3E%3C/svg%3E");
    --i-check:    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4.6 12.6 4.8 4.8L19.4 7.4'/%3E%3C/svg%3E");
    --i-wave:     url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 8.4c2-1.6 4-1.6 6 0s4 1.6 6 0 4-1.6 6 0M2 13.2c2-1.6 4-1.6 6 0s4 1.6 6 0 4-1.6 6 0M2 18c2-1.6 4-1.6 6 0s4 1.6 6 0 4-1.6 6 0'/%3E%3C/svg%3E");
    --i-spa:      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 12.6c0-4 1.4-7.2 3.2-9.2 1.6 2 2.2 4.8 1.6 7.2-.7 2.6-2.8 3.4-4.8 2z'/%3E%3Cpath d='M12 12.6c-2 1.4-4.1.6-4.8-2-.6-2.4 0-5.2 1.6-7.2C10.6 5.4 12 8.6 12 12.6z'/%3E%3Cpath d='M12 12.6v8.8'/%3E%3C/svg%3E");
    --i-car:      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 16.4v-3l1.8-4.6A2.2 2.2 0 0 1 6.9 7.4h10.2a2.2 2.2 0 0 1 2.1 1.4L21 13.4v3'/%3E%3Cpath d='M3 16.4h18M4.6 9.6h14.8'/%3E%3Ccircle cx='7.2' cy='18' r='1.5'/%3E%3Ccircle cx='16.8' cy='18' r='1.5'/%3E%3C/svg%3E");
    --i-food:     url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 3v8.2a2.4 2.4 0 0 0 4.8 0V3M9.4 11.2V21M17 3c-1.6 0-2.6 1.4-2.6 3.4S15.4 10 17 10V21'/%3E%3C/svg%3E");
    --i-gift:     url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.2' y='8.6' width='17.6' height='12.4' rx='2'/%3E%3Cpath d='M3.2 13h17.6M12 8.6V21'/%3E%3Cpath d='M12 8.6C10.6 6 9.4 4.6 8 4.6a2 2 0 0 0 0 4zM12 8.6c1.4-2.6 2.6-4 4-4a2 2 0 0 1 0 4z'/%3E%3C/svg%3E");
    --i-shield:   url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2.8 4.6 5.6v6c0 4.4 3 8.4 7.4 9.6 4.4-1.2 7.4-5.2 7.4-9.6v-6z'/%3E%3Cpath d='m8.8 12 2.4 2.4 4-4.4'/%3E%3C/svg%3E");
}

/* -------------------------------------------------------------------------
   2. HEADER SHELL
   ---------------------------------------------------------------------- */
.site-header,
.site-header-container {
    background: transparent;
}

#masthead.site-header {
    position: relative;
    z-index: 900;
    background: rgba(251, 247, 240, .97);
    border-bottom: 1px solid var(--dpbv-line);
    box-shadow: 0 1px 0 rgba(201,162,39,.18), var(--dpbv-e1);
    transition: background-color .38s var(--dpbv-ease),
                box-shadow .38s var(--dpbv-ease),
                border-color .38s var(--dpbv-ease);
    -webkit-backdrop-filter: blur(10px) saturate(1.15);
            backdrop-filter: blur(10px) saturate(1.15);
}

/* gold hairline detail under the bar */
#masthead.site-header::after {
    content: "";
    position: absolute;
    inset-inline: 0;
    inset-block-end: -1px;
    height: 1px;
    background: linear-gradient(90deg,
        transparent, var(--dpbv-line-gold) 22%, var(--dpbv-brass) 50%,
        var(--dpbv-line-gold) 78%, transparent);
    opacity: .55;
    pointer-events: none;
}

.site-header-wrapper {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--dpbv-s3);
    width: 100%;
    max-width: 1340px;          /* wider than content so 8 nav items fit on one row */
    margin-inline: auto;
    padding: .55rem var(--dpbv-gutter);
}

/* --- immersive mode: transparent over a hero, solid once scrolled --- */
body.dpbv-has-hero #masthead.site-header {
    position: absolute;
    inset-inline: 0;
    inset-block-start: 0;
    background: linear-gradient(180deg, rgba(11,18,15,.52), rgba(11,18,15,0));
    border-bottom-color: transparent;
    box-shadow: none;
    -webkit-backdrop-filter: none;
            backdrop-filter: none;
}
body.dpbv-has-hero #masthead.site-header::after { opacity: 0; }
body.dpbv-has-hero .site-header-container { position: absolute; inset-inline: 0; top: 0; }

body.dpbv-has-hero #masthead .site-title a,
body.dpbv-has-hero #masthead .site-description,
body.dpbv-has-hero #masthead .main-navigation > .header-menus-wrapper > ul > li > a,
body.dpbv-has-hero #masthead .socials-menu a {
    color: var(--dpbv-shell);
    text-shadow: 0 1px 12px rgba(0,0,0,.42);
}
body.dpbv-has-hero #masthead .menu-toggle .line { background: var(--dpbv-shell); }

/* once the user scrolls past the hero, or when the mobile panel is open,
   the bar becomes an opaque sheet again */
body.dpbv-has-hero.dpbv-scrolled #masthead.site-header,
body.dpbv-has-hero #masthead.menu-toggled {
    position: fixed;
    background: rgba(251, 247, 240, .97);
    border-bottom-color: var(--dpbv-line);
    box-shadow: 0 1px 0 rgba(201,162,39,.18), var(--dpbv-e2);
    -webkit-backdrop-filter: blur(10px) saturate(1.15);
            backdrop-filter: blur(10px) saturate(1.15);
    animation: dpbv-drop .42s var(--dpbv-ease-out) both;
}
body.dpbv-has-hero.dpbv-scrolled #masthead.site-header::after,
body.dpbv-has-hero #masthead.menu-toggled::after { opacity: .55; }

body.dpbv-has-hero.dpbv-scrolled #masthead .site-title a,
body.dpbv-has-hero.dpbv-scrolled #masthead .site-description,
body.dpbv-has-hero.dpbv-scrolled #masthead .main-navigation > .header-menus-wrapper > ul > li > a,
body.dpbv-has-hero.dpbv-scrolled #masthead .socials-menu a,
body.dpbv-has-hero #masthead.menu-toggled .site-title a,
body.dpbv-has-hero #masthead.menu-toggled .main-navigation > .header-menus-wrapper > ul > li > a {
    color: var(--dpbv-ink);
    text-shadow: none;
}
body.dpbv-has-hero.dpbv-scrolled #masthead .menu-toggle .line,
body.dpbv-has-hero #masthead.menu-toggled .menu-toggle .line { background: var(--dpbv-ink); }

@keyframes dpbv-drop {
    from { transform: translateY(-100%); opacity: .4; }
    to   { transform: translateY(0);     opacity: 1; }
}

/* -------------------------------------------------------------------------
   3. BRANDING
   ---------------------------------------------------------------------- */
.site-branding {
    display: flex;
    align-items: center;
    gap: var(--dpbv-s3);
    min-width: 0;
}
.site-branding img,
.site-branding .custom-logo {
    max-height: 58px;
    width: auto;
    height: auto;
}
.site-title {
    margin: 0;
    font-family: var(--dpbv-font-display);
    font-size: clamp(1.05rem, .92rem + .55vw, 1.42rem);
    font-weight: 600;
    letter-spacing: -.008em;
    line-height: 1.16;
}
.site-title a {
    color: var(--dpbv-ink);
    text-decoration: none;
    transition: color .28s var(--dpbv-ease);
}
.site-title a:hover { color: var(--dpbv-jade); }
.site-description {
    margin: .18rem 0 0;
    font-size: .69rem;
    font-weight: 600;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--dpbv-brass-deep);
}

/* -------------------------------------------------------------------------
   4. DESKTOP NAVIGATION (>= 992px)
   ---------------------------------------------------------------------- */
@media (min-width: 992px) {
    .main-navigation:not(:last-child) {
        border-right: 1px solid var(--dpbv-line);
        margin-right: var(--dpbv-s4);
        padding-right: var(--dpbv-s4);
    }
    /* the burger belongs to the mobile sheet only */
    .menu-toggle { display: none !important; }

    .main-navigation > .header-menus-wrapper > ul,
    .main-navigation .menu {
        display: flex;
        align-items: center;
        flex-wrap: nowrap;      /* parent theme sets wrap, which broke onto 2 rows */
        gap: .1rem;
        margin: 0;
        padding: 0;
        list-style: none;
        max-width: none;
    }
    .main-navigation > .header-menus-wrapper > ul > li { position: relative; }

    .main-navigation > .header-menus-wrapper > ul > li > a {
        position: relative;
        display: flex;
        align-items: center;
        gap: .4em;
        padding: .7rem .68rem;
        font-family: var(--dpbv-font-body);
        font-size: .755rem;
        font-weight: 600;
        letter-spacing: .085em;
        text-transform: uppercase;
        color: var(--dpbv-ink);
        text-decoration: none;
        border-radius: var(--dpbv-r-sm);
        transition: color .28s var(--dpbv-ease);
        white-space: nowrap;
    }
    /* gold underline that grows from the centre */
    .main-navigation > .header-menus-wrapper > ul > li > a::after {
        content: "";
        position: absolute;
        inset-inline: .68rem;
        inset-block-end: .42rem;
        height: 1.5px;
        background: var(--dpbv-brass);
        scale: 0 1;
        transform-origin: center;
        transition: scale .34s var(--dpbv-ease-out);
    }
    .main-navigation > .header-menus-wrapper > ul > li > a:hover,
    .main-navigation > .header-menus-wrapper > ul > li > a:focus-visible {
        color: var(--dpbv-jade);
    }
    .main-navigation > .header-menus-wrapper > ul > li > a:hover::after,
    .main-navigation > .header-menus-wrapper > ul > li > a:focus-visible::after,
    .main-navigation > .header-menus-wrapper > ul > li.current-menu-item > a::after,
    .main-navigation > .header-menus-wrapper > ul > li.current_page_item > a::after,
    .main-navigation > .header-menus-wrapper > ul > li.current-menu-ancestor > a::after {
        scale: 1 1;
    }
    .main-navigation > .header-menus-wrapper > ul > li.current-menu-item > a,
    .main-navigation > .header-menus-wrapper > ul > li.current_page_item > a {
        color: var(--dpbv-jade);
    }

    /* parent items get a small caret */
    .main-navigation > .header-menus-wrapper > ul > li.menu-item-has-children > a::before {
        content: "";
        order: 2;
        width: .46em;
        height: .46em;
        border-right: 1.6px solid currentColor;
        border-bottom: 1.6px solid currentColor;
        rotate: 45deg;
        translate: 0 -.12em;
        opacity: .7;
        transition: rotate .3s var(--dpbv-ease);
    }
    .main-navigation > .header-menus-wrapper > ul > li.menu-item-has-children:hover > a::before {
        rotate: 225deg;
        translate: 0 .1em;
    }

    /* --- dropdown --- */
    .main-navigation ul ul {
        position: absolute;
        top: calc(100% + .5rem);
        left: 0;
        z-index: 950;
        display: block;
        min-width: 16rem;
        margin: 0;
        padding: .5rem;
        list-style: none;
        background: rgba(251,247,240,.99);
        border: 1px solid var(--dpbv-line);
        border-top: 2px solid var(--dpbv-brass);
        border-radius: var(--dpbv-r-md);
        box-shadow: var(--dpbv-e3);
        opacity: 0;
        visibility: hidden;
        translate: 0 8px;
        transition: opacity .28s var(--dpbv-ease), translate .28s var(--dpbv-ease-out),
                    visibility .28s;
        float: none;
    }
    .main-navigation ul li:hover > ul,
    .main-navigation ul li.focus > ul,
    .main-navigation ul li:focus-within > ul {
        opacity: 1;
        visibility: visible;
        translate: 0 0;
    }
    .main-navigation ul ul::after,
    .main-navigation ul ul::before { display: none; }
    .main-navigation ul ul li { width: 100%; }
    .main-navigation ul ul a {
        display: block;
        padding: .62rem .8rem;
        font-size: .875rem;
        font-weight: 500;
        letter-spacing: .01em;
        text-transform: none;
        color: var(--dpbv-ink-soft);
        text-decoration: none;
        border-radius: var(--dpbv-r-sm);
        transition: background-color .22s var(--dpbv-ease), color .22s var(--dpbv-ease),
                    padding-left .22s var(--dpbv-ease);
        white-space: normal;
    }
    .main-navigation ul ul a::before,
    .main-navigation ul ul a::after { display: none; }
    .main-navigation ul ul li:hover > a,
    .main-navigation ul ul a:hover,
    .main-navigation ul ul a:focus-visible,
    .main-navigation ul ul li.current-menu-item > a {
        background: var(--dpbv-jade-wash);
        color: var(--dpbv-jade);
        padding-left: 1.05rem;
    }

    /* header socials */
    .socials-menu-container .socials-menu,
    ul#socials-menu {
        display: flex;
        align-items: center;
        gap: .3rem;
        margin: 0;
        padding: 0;
        list-style: none;
    }
    .socials-menu-mobile-container { display: none; }
}

/* keep the mobile-only duplicate socials list out of the desktop bar */
@media (max-width: 991.98px) {
    .socials-menu-container:not(.socials-menu-mobile-container) { display: none; }
}

.socials-menu a {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    color: var(--dpbv-ink);
    text-decoration: none;
    transition: background-color .26s var(--dpbv-ease), color .26s var(--dpbv-ease),
                transform .26s var(--dpbv-ease-out);
}
.socials-menu a:hover {
    background: var(--dpbv-jade-wash);
    color: var(--dpbv-jade);
    transform: translateY(-2px);
}
.socials-menu .menu-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }

/* -------------------------------------------------------------------------
   5. MOBILE NAVIGATION (< 992px)
   Full-height sheet, generous tap targets, gold-rule separators.
   ---------------------------------------------------------------------- */
.menu-toggle {
    display: grid;
    place-content: center;
    gap: 7px;
    width: 48px;                 /* accessible tap target */
    height: 48px;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    border-radius: var(--dpbv-r-sm);
}
.menu-toggle .line {
    width: 26px;
    height: 1.8px;
    margin: 0;
    background: var(--dpbv-ink);
    border-radius: 2px;
    transition: transform .34s var(--dpbv-ease), opacity .22s var(--dpbv-ease);
}

@media (max-width: 991.98px) {
    .menu-toggle { display: grid; }

    /* CRITICAL: backdrop-filter on an ancestor establishes a containing block
       for position:fixed descendants, which clipped the full-screen nav sheet
       to the header's own height. The bar is already opaque here, so the
       filter buys nothing and must be off for the sheet to cover the viewport. */
    #masthead.site-header,
    .site-header-container,
    body.dpbv-has-hero #masthead.site-header,
    body.dpbv-has-hero.dpbv-scrolled #masthead.site-header,
    body.dpbv-has-hero #masthead.menu-toggled {
        -webkit-backdrop-filter: none !important;
                backdrop-filter: none !important;
    }

    .main-navigation { position: static; }

    .main-navigation .header-menus-wrapper {
        position: fixed;
        inset: 0;
        z-index: 940;
        display: flex;
        flex-direction: column;
        gap: 0;
        padding: 5.6rem var(--dpbv-gutter) 2.5rem;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior: contain;
        background: var(--dpbv-shell);
        background-image:
            radial-gradient(120% 60% at 50% 0%, rgba(31,77,61,.07), transparent 62%),
            repeating-linear-gradient(45deg, rgba(138,106,31,.028) 0 2px, transparent 2px 6px);
        opacity: 0;
        visibility: hidden;
        translate: 0 -12px;
        transition: opacity .34s var(--dpbv-ease), translate .34s var(--dpbv-ease-out),
                    visibility .34s;
    }
    .main-navigation.toggled .header-menus-wrapper {
        opacity: 1;
        visibility: visible;
        translate: 0 0;
    }

    /* The sheet is a child of the header, so it paints over the header's own
       branding and close button. Lift those above it or the visitor cannot
       see how to dismiss the menu. */
    .site-branding,
    .menu-toggle {
        position: relative;
        z-index: 960;
    }
    .main-navigation.toggled .menu-toggle { z-index: 961; }

    /* burger -> X */
    .main-navigation.toggled .menu-toggle .line:nth-child(1) { transform: translateY(8.8px) rotate(45deg); }
    .main-navigation.toggled .menu-toggle .line:nth-child(2) { opacity: 0; }
    .main-navigation.toggled .menu-toggle .line:nth-child(3) { transform: translateY(-8.8px) rotate(-45deg); }

    .main-navigation .header-menus-wrapper > ul,
    .main-navigation.toggled ul {
        display: block;
        width: 100%;
        max-width: 30rem;
        margin-inline: auto;
        padding: 0;
        list-style: none;
    }
    .main-navigation .header-menus-wrapper > ul > li { border-bottom: 1px solid var(--dpbv-line); }
    .main-navigation .header-menus-wrapper > ul > li:last-child { border-bottom: 0; }

    .main-navigation .header-menus-wrapper > ul > li > a {
        display: flex;
        align-items: center;
        justify-content: space-between;
        min-height: 56px;
        padding: .9rem .25rem;
        font-family: var(--dpbv-font-display);
        font-size: 1.24rem;
        font-weight: 600;
        letter-spacing: -.005em;
        color: var(--dpbv-ink);
        text-decoration: none;
    }
    .main-navigation .header-menus-wrapper > ul > li.current-menu-item > a,
    .main-navigation .header-menus-wrapper > ul > li.current_page_item > a { color: var(--dpbv-jade); }
    .main-navigation .header-menus-wrapper > ul > li.current-menu-item > a::after {
        content: "";
        width: 7px; height: 7px;
        rotate: 45deg;
        background: var(--dpbv-brass);
    }

    /* submenu always expanded on mobile — fewer taps, nothing hidden */
    .main-navigation ul ul,
    .main-navigation.toggled ul ul {
        display: block;
        position: static;
        opacity: 1;
        visibility: visible;
        translate: none;
        min-width: 0;
        margin: 0 0 .6rem;
        padding: 0 0 .3rem .9rem;
        background: transparent;
        border: 0;
        border-left: 1.5px solid var(--dpbv-line-gold);
        box-shadow: none;
        float: none;
    }
    .main-navigation ul ul::after, .main-navigation ul ul::before { display: none; }
    .main-navigation ul ul a {
        display: block;
        min-height: 48px;
        padding: .7rem .25rem;
        font-family: var(--dpbv-font-body);
        font-size: .98rem;
        font-weight: 500;
        color: var(--dpbv-muted);
        text-decoration: none;
    }
    .main-navigation ul ul a::before, .main-navigation ul ul a::after { display: none; }
    .main-navigation ul ul a:hover { color: var(--dpbv-jade); }

    /* socials inside the sheet */
    .socials-menu-mobile-container {
        display: block;
        width: 100%;
        max-width: 30rem;
        margin: var(--dpbv-s5) auto 0;
        padding-top: var(--dpbv-s4);
        border-top: 1px solid var(--dpbv-line);
    }
    .socials-menu-mobile-container ul,
    ul.socials-menu-mobile {
        display: flex !important;
        justify-content: center;
        gap: var(--dpbv-s3);
        margin: 0;
        padding: 0;
        list-style: none;
    }
    .socials-menu-mobile a {
        width: 52px;
        height: 52px;
        background: var(--dpbv-white);
        border: 1px solid var(--dpbv-line);
        box-shadow: var(--dpbv-e1);
    }

    /* lock the page while the sheet is open */
    body.dpbv-nav-open { overflow: hidden; }
}

/* -------------------------------------------------------------------------
   6. FOOTER
   ---------------------------------------------------------------------- */
#colophon.site-footer {
    position: relative;
    background:
        radial-gradient(140% 90% at 50% 0%, rgba(31,77,61,.42), transparent 62%),
        linear-gradient(180deg, #16211c 0%, #101a15 62%, #0c1410 100%);
    color: rgba(251,247,240,.78);
    overflow: hidden;
}
/* woven texture + candi gate hairline at the top edge */
#colophon.site-footer::before {
    content: "";
    position: absolute;
    inset-inline: 0;
    inset-block-start: 0;
    height: 100%;
    background-image:
        repeating-linear-gradient(45deg,  rgba(230,205,124,.022) 0 2px, transparent 2px 7px),
        repeating-linear-gradient(-45deg, rgba(230,205,124,.018) 0 2px, transparent 2px 7px);
    pointer-events: none;
}
#colophon.site-footer::after {
    content: "";
    position: absolute;
    inset-inline: 0;
    inset-block-start: 0;
    height: 3px;
    background:
        linear-gradient(90deg, transparent, var(--dpbv-brass) 20%, var(--dpbv-brass-lt) 50%, var(--dpbv-brass) 80%, transparent) 0 0 / 100% 1px no-repeat,
        repeating-linear-gradient(90deg, transparent 0 14px, rgba(230,205,124,.34) 14px 15px, transparent 15px 30px) 0 2px / 100% 1px no-repeat;
    pointer-events: none;
}

/* the widget row
   DOM: .footer-widgets > .wrapper > .footer-widgets-wrapper > .widget-area x4
   Only .footer-widgets-wrapper is the grid; the others must stay plain blocks
   or the columns collapse to a few pixels wide. */
#colophon .footer-widgets {
    position: relative;
    display: block;
    background: transparent !important;
    padding: var(--dpbv-s6) 0 var(--dpbv-s4);
}
#colophon .footer-widgets > .wrapper {
    display: block;
    width: 100%;
    max-width: var(--dpbv-max);
    margin-inline: auto;
    padding-inline: var(--dpbv-gutter);
}
#colophon .footer-widgets-wrapper {
    display: grid;
    gap: var(--dpbv-s5);
    grid-template-columns: 1fr;
    align-items: start;
    width: 100%;
    max-width: none;
    text-align: center;
}
#colophon .footer-widgets-wrapper > .widget-area {
    display: block;
    min-width: 0;               /* let grid tracks shrink without overflow */
    max-width: none;
    width: auto;
    background: transparent !important;
    padding: 0;
}
@media (min-width: 48rem) {
    #colophon .footer-widgets-wrapper {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        text-align: start;
    }
}
@media (min-width: 68rem) {
    #colophon .footer-widgets-wrapper {
        grid-template-columns: 1.6fr minmax(0, 1fr) minmax(0, 1fr) 1.15fr;
        gap: var(--dpbv-s6);
    }
}
#colophon .widget {
    margin: 0;
    padding: 0;
    background: transparent !important;
    border: 0;
    max-width: none;
}

/* --- footer column: brand --- */
.dpbv-fbrand { max-width: 30rem; }
.dpbv-fbrand__title {
    margin: 0;
    font-family: var(--dpbv-font-display);
    font-size: clamp(1.5rem, 1.3rem + .8vw, 1.95rem);
    font-weight: 600;
    line-height: 1.16;
    color: var(--dpbv-shell);
}
.dpbv-fbrand__tag {
    margin: .5rem 0 0;
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .24em;
    text-transform: uppercase;
    color: var(--dpbv-brass-lt);
}
.dpbv-fbrand__desc {
    margin: var(--dpbv-s3) 0 0;
    font-size: .95rem;
    line-height: 1.72;
    color: rgba(251,247,240,.66);
}
.dpbv-fpay { margin-top: var(--dpbv-s4); }
.dpbv-fpay__label {
    display: block;
    margin-bottom: .55rem;
    font-size: .66rem;
    font-weight: 600;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: rgba(251,247,240,.5);
}
.dpbv-fpay__card {
    display: inline-block;
    padding: .55rem .8rem;
    background: rgba(251,247,240,.95);
    border-radius: var(--dpbv-r-md);
    box-shadow: 0 6px 18px rgba(0,0,0,.22);
}
.dpbv-fpay__card img { display: block; max-width: 100%; height: auto; }

/* --- footer column: generic --- */
.dpbv-fcol__title {
    margin: 0 0 var(--dpbv-s3);
    font-family: var(--dpbv-font-display);
    font-size: 1.06rem;
    font-weight: 600;
    letter-spacing: .01em;
    color: var(--dpbv-shell);
    display: flex;
    align-items: center;
    gap: .6rem;
    justify-content: center;
}
@media (min-width: 48rem) { .dpbv-fcol__title { justify-content: flex-start; } }
.dpbv-fcol__title::after {
    content: "";
    flex: 1 1 auto;
    max-width: 46px;
    height: 1px;
    background: linear-gradient(90deg, var(--dpbv-line-gold), transparent);
}

.dpbv-flist { margin: 0; padding: 0; list-style: none; display: grid; gap: .18rem; }
.dpbv-flist a,
.dpbv-fitem {
    display: flex;
    align-items: flex-start;
    gap: .7rem;
    min-height: 44px;
    padding: .5rem .55rem;
    margin-inline: -.55rem;
    border-radius: var(--dpbv-r-sm);
    font-size: .93rem;
    line-height: 1.5;
    color: rgba(251,247,240,.72);
    text-decoration: none;
    transition: color .26s var(--dpbv-ease), background-color .26s var(--dpbv-ease),
                translate .26s var(--dpbv-ease-out);
}
@media (min-width: 48rem) {
    .dpbv-flist a, .dpbv-fitem { align-items: center; }
}
.dpbv-flist a:hover,
.dpbv-flist a:focus-visible {
    color: var(--dpbv-shell);
    background: rgba(251,247,240,.06);
    translate: 3px 0;
}
.dpbv-flist a .dpbv-ico,
.dpbv-fitem .dpbv-ico {
    color: var(--dpbv-brass);
    font-size: 1.06rem;
    margin-top: .16em;
}
@media (min-width: 48rem) {
    .dpbv-flist a .dpbv-ico, .dpbv-fitem .dpbv-ico { margin-top: 0; }
}
.dpbv-flist a:hover .dpbv-ico { color: var(--dpbv-brass-lt); }

.dpbv-fcontact { margin: 0; padding: 0; list-style: none; display: grid; gap: .18rem; }
.dpbv-fitem { cursor: default; }
.dpbv-fitem strong { display: block; color: rgba(251,247,240,.9); font-weight: 600; }
.dpbv-fitem a { color: rgba(251,247,240,.72); text-decoration: none; border-bottom: 1px solid transparent; }
.dpbv-fitem a:hover { color: var(--dpbv-brass-lt); border-bottom-color: var(--dpbv-line-gold); }

/* --- bottom bar --- */
#colophon .site-info-wrapper {
    position: relative;
    border-top: 1px solid rgba(251,247,240,.10);
    background: rgba(0,0,0,.18);
}
/* Bottom bar as an explicit two-row grid.
   DOM order is: .site-info, .dpbv-legal-menu-container, .footer-menu-container
   Three groups will not fit on one line at 1200px, so the legal links get
   their own centred row above the copyright/socials row. */
#colophon .site-info-wrapper .wrapper {
    display: grid;
    gap: var(--dpbv-s3) var(--dpbv-s4);
    width: 100%;
    max-width: var(--dpbv-max);
    margin-inline: auto;
    padding: var(--dpbv-s4) var(--dpbv-gutter);
    text-align: center;
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
        "legal"
        "socials"
        "info";
    justify-items: center;
}
#colophon .site-info-wrapper .site-info               { grid-area: info; }
#colophon .site-info-wrapper .dpbv-legal-menu-container { grid-area: legal; }
#colophon .site-info-wrapper .footer-menu-container   { grid-area: socials; }

@media (min-width: 62rem) {
    #colophon .site-info-wrapper .wrapper {
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas:
            "legal  legal"
            "info   socials";
        text-align: start;
        align-items: center;
    }
    #colophon .site-info-wrapper .site-info { justify-self: start; }
    #colophon .site-info-wrapper .footer-menu-container { justify-self: end; }
    #colophon .site-info-wrapper .dpbv-legal-menu-container {
        justify-self: center;
        padding-bottom: var(--dpbv-s2);
        border-bottom: 1px solid rgba(251, 247, 240, .08);
        width: 100%;
        justify-content: center;
    }
}
#colophon .site-info {
    font-size: .84rem;
    color: rgba(251,247,240,.56);
    letter-spacing: .01em;
}
#colophon .site-info a { color: rgba(251,247,240,.78); text-decoration: none; }
#colophon .site-info a:hover { color: var(--dpbv-brass-lt); }

/* footer legal + social menus */
#colophon .footer-menu,
#colophon ul#footer-menu {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: .3rem var(--dpbv-s2);
    margin: 0;
    padding: 0;
    list-style: none;
}
#colophon .footer-menu a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: .35rem .6rem;
    border-radius: var(--dpbv-r-sm);
    font-size: .84rem;
    color: rgba(251,247,240,.64);
    text-decoration: none;
    transition: color .24s var(--dpbv-ease), background-color .24s var(--dpbv-ease);
}
#colophon .footer-menu a:hover,
#colophon .footer-menu a:focus-visible {
    color: var(--dpbv-shell);
    background: rgba(251,247,240,.07);
}
/* separator dots between legal links */
#colophon .footer-menu li + li::before {
    content: "";
    display: inline-block;
    width: 3px; height: 3px;
    border-radius: 50%;
    background: var(--dpbv-line-gold);
    vertical-align: middle;
}

/* social icons in the footer bottom bar keep a round chip treatment */
#colophon .theme-social-menu a {
    display: grid;
    place-items: center;
    width: 40px; height: 40px;
    min-height: 40px;
    padding: 0;
    border-radius: 50%;
    border: 1px solid rgba(251,247,240,.16);
    color: rgba(251,247,240,.8);
}
#colophon .theme-social-menu a:hover {
    background: var(--dpbv-brass);
    border-color: var(--dpbv-brass);
    color: var(--dpbv-ink);
}
#colophon .theme-social-menu li + li::before { display: none; }
#colophon .theme-social-menu .menu-text {
    position: absolute; width: 1px; height: 1px;
    overflow: hidden; clip-path: inset(50%);
}

/* -------------------------------------------------------------------------
   7. BACK TO TOP
   ---------------------------------------------------------------------- */
#back-to-top {
    position: fixed;
    inset-block-end: 1.4rem;
    inset-inline-end: 1.4rem;
    z-index: 880;
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    padding: 0;
    border: 1px solid var(--dpbv-line-gold);
    border-radius: 50%;
    background: rgba(31,77,61,.94);
    color: var(--dpbv-shell);
    cursor: pointer;
    box-shadow: var(--dpbv-e2);
    -webkit-backdrop-filter: blur(6px);
            backdrop-filter: blur(6px);
    transition: background-color .28s var(--dpbv-ease), transform .28s var(--dpbv-ease-out),
                opacity .28s var(--dpbv-ease);
}
#back-to-top:hover {
    background: var(--dpbv-brass);
    color: var(--dpbv-ink);
    transform: translateY(-3px);
}

/* the WhatsApp launcher sits bottom-right too — nudge back-to-top clear of it */
@media (max-width: 767.98px) {
    #back-to-top { inset-block-end: 5.6rem; }
}

/* -------------------------------------------------------------------------
   7b. THIRD-PARTY WIDGET LEGIBILITY
   The visitor-tracker marquee's dismiss button ships as #888 on white — a
   3.54:1 ratio that fails AA. Darkened to a compliant tone; the plugin file
   itself is untouched.
   ---------------------------------------------------------------------- */
.vt-close,
button.vt-close,
.visitor-marquee-wrapper .vt-close {
    color: #595959 !important;      /* 7.0:1 on white */
    min-width: 28px;
    min-height: 28px;
}
.vt-close:hover,
button.vt-close:hover { color: var(--dpbv-ink) !important; }

/* -------------------------------------------------------------------------
   8. BODY GROUND
   ---------------------------------------------------------------------- */
body { background: var(--dpbv-shell); }
#page.site { background: var(--dpbv-shell); overflow-x: clip; }
#content.site-content { background: var(--dpbv-shell); }

/* =========================================================================
   9. LEGACY NEUTRALISATION
   style.css carries an earlier footer treatment (~line 250 and ~line 5900)
   that uses !important, which specificity alone cannot beat. These rules
   retire only the parts the new footer replaces. style.css itself is left
   untouched so nothing outside the footer shifts.
   ========================================================================= */

/* the old bottom bar was --bali-teak-dark (brown) */
#colophon.site-footer .site-info-wrapper,
.luviana-child #colophon.site-footer .site-info-wrapper {
    background: rgba(0, 0, 0, .22) !important;
    color: rgba(251, 247, 240, .7) !important;
    border-top: 1px solid rgba(251, 247, 240, .10) !important;
    padding: 0 !important;
}
#colophon.site-footer .footer-widgets {
    background: transparent !important;
    color: inherit !important;
}

/* legal links are text, not buttons — the pill treatment stays on socials */
#colophon .dpbv-legal-menu-container {
    display: flex;
    flex: 0 1 auto;
    min-width: 0;
}
#colophon ul.dpbv-legal-menu {
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: .1rem .3rem;
}
@media (min-width: 62rem) {
    /* enough room on desktop to keep the legal links on a single line */
    #colophon ul.dpbv-legal-menu { flex-wrap: nowrap; }
    #colophon ul.dpbv-legal-menu a { white-space: nowrap; }
}
#colophon ul.dpbv-legal-menu a,
.luviana-child #colophon .site-footer ul.dpbv-legal-menu a,
.luviana-child #colophon ul.dpbv-legal-menu a {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 40px !important;
    padding: .3rem .55rem !important;
    border: 0 !important;
    border-radius: var(--dpbv-r-sm) !important;
    background: transparent !important;
    color: rgba(251, 247, 240, .62) !important;
    font-size: .83rem !important;
    font-weight: 500 !important;
    letter-spacing: .01em;
}
#colophon ul.dpbv-legal-menu a:hover,
#colophon ul.dpbv-legal-menu a:focus-visible,
.luviana-child #colophon ul.dpbv-legal-menu a:hover {
    background: rgba(251, 247, 240, .07) !important;
    color: var(--dpbv-shell) !important;
}
#colophon ul.dpbv-legal-menu li + li::before {
    content: "";
    display: inline-block;
    width: 3px; height: 3px;
    border-radius: 50%;
    background: var(--dpbv-line-gold);
    vertical-align: middle;
}

/* socials keep a round chip, but in the house palette rather than the old one */
#colophon ul#footer-menu.footer-menu a,
.luviana-child #colophon .site-footer ul#footer-menu.footer-menu a {
    border: 1px solid rgba(251, 247, 240, .16) !important;
    background: rgba(251, 247, 240, .06) !important;
    color: rgba(251, 247, 240, .82) !important;
    font-weight: 600 !important;
    font-size: .82rem !important;
    min-height: 40px !important;
    padding: .5rem .9rem !important;
}
#colophon ul#footer-menu.footer-menu a:hover,
.luviana-child #colophon .site-footer ul#footer-menu.footer-menu a:hover {
    background: var(--dpbv-brass) !important;
    border-color: var(--dpbv-brass) !important;
    color: var(--dpbv-ink) !important;
}

/* the WhatsApp link was a saturated green gradient that clashed with the
   Balinese palette — restyle as a brass-outlined action */
#colophon .dpbv-footer-wa,
.luviana-child #colophon .site-footer .dpbv-footer-wa {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 34px !important;
    padding: 0 !important;
    border-radius: 0 !important;
    background: none !important;
    box-shadow: none !important;
    color: rgba(251, 247, 240, .74) !important;
    font-weight: 500 !important;
    border-bottom: 1px solid var(--dpbv-line-gold) !important;
}
#colophon .dpbv-footer-wa:hover,
.luviana-child #colophon .site-footer .dpbv-footer-wa:hover {
    color: var(--dpbv-brass-lt) !important;
    border-bottom-color: var(--dpbv-brass) !important;
}

/* legacy per-widget resets forced a fixed cream on every descendant */
#colophon .footer-widgets section.widget_block > div,
#colophon .footer-widgets section.widget_block > div > div {
    color: inherit !important;
    max-width: none !important;
    padding: 0 !important;
}

/* the parent theme appends a '/' after every footer menu item — unwanted now
   that socials are chips and legal links carry their own gold dot */
#colophon .site-info-wrapper .footer-menu-container .footer-menu li::after {
    content: none !important;
    display: none !important;
    margin: 0 !important;
}

/* TAP TARGETS — style.css line ~330 forces
       .site-footer .footer-widgets li a { display:inline !important; padding:0 !important }
   which collapsed every footer link to an 18px-tall hit area, well under the
   44px minimum. Restored here for the rebuilt footer lists only. */
#colophon .footer-widgets .dpbv-flist li a,
#colophon .footer-widgets .dpbv-fcontact li a,
.luviana-child #colophon .site-footer .footer-widgets .dpbv-flist li a {
    display: flex !important;
    align-items: center !important;
    min-height: 44px !important;
    padding: .5rem .55rem !important;
    line-height: 1.45 !important;
}
@media (max-width: 47.98rem) {
    /* centred single column on small screens */
    #colophon .footer-widgets .dpbv-flist li a,
    #colophon .footer-widgets .dpbv-fcontact li a {
        justify-content: center !important;
        text-align: center;
    }
}
#colophon .footer-widgets .dpbv-flist li,
#colophon .footer-widgets .dpbv-fcontact li {
    padding: 0 !important;
    margin: 0 !important;
}
#colophon .footer-widgets .dpbv-fcontact li.dpbv-fitem {
    display: flex !important;
    align-items: flex-start !important;
    min-height: 44px;
    padding: .5rem .55rem !important;
}
@media (min-width: 48rem) {
    #colophon .footer-widgets .dpbv-fcontact li.dpbv-fitem { align-items: center !important; }
}
/* inline links inside a contact row keep a comfortable hit box */
#colophon .footer-widgets .dpbv-fcontact li.dpbv-fitem a {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 32px !important;
    padding: 0 !important;
}

/* let the copyright use its full grid track instead of wrapping early */
#colophon .site-info-wrapper .site-info {
    max-width: none !important;
    width: auto;
}
#colophon .site-info-wrapper .site-info > div,
#colophon .site-info-wrapper .site-info small {
    display: block;
    max-width: none;
}
