.site-header {
    --header-height: 5.75rem;
    --partner-bar-height: 0rem;
    position: sticky;
    z-index: 100;
    top: 0;
    background: rgba(255, 255, 255, .9);
    border-bottom: 1px solid rgba(219, 228, 238, .72);
    box-shadow: 0 .6rem 2rem rgba(10, 27, 45, .035);
    backdrop-filter: blur(1.1rem) saturate(150%);
    transition: background-color 220ms ease, box-shadow 220ms ease;
}

.site-header:has(.header-partners-bar) {
    --partner-bar-height: 2.75rem;
}

.header-partners-bar {
    min-height: var(--partner-bar-height);
    color: #fff;
    background: var(--primary);
    border-bottom: 1px solid rgba(0, 76, 164, .28);
    box-shadow: inset 0 -1px rgba(255, 255, 255, .1);
}

.header-partners-bar__inner {
    width: min(calc(100% - 2.5rem), 86rem);
    min-height: var(--partner-bar-height);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .65rem;
    margin-inline: auto;
}

.header-partners-bar__label {
    flex: 0 0 auto;
    color: #fff;
    font-size: .58rem;
    font-weight: 900;
    letter-spacing: .14em;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
    opacity: 1;
}

.header-partners-bar__label:hover,
.header-partners-bar__label:focus-visible {
    color: #fff;
    opacity: 1;
}

.header-partners-bar__divider {
    width: 1px;
    height: .9rem;
    flex: 0 0 auto;
    background: rgba(255, 255, 255, .34);
}

.header-partners-bar__rail {
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: .35rem;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    padding-block: .25rem;
}

.header-partners-bar__rail::-webkit-scrollbar {
    display: none;
}

.header-partners-bar__rail:focus-visible,
.header-partners-bar__partner:focus-visible {
    outline: 2px solid rgba(255, 255, 255, .85);
    outline-offset: -2px;
}

.header-partners-bar__partner {
    flex: 0 0 auto;
    min-width: 0;
    height: calc(var(--partner-bar-height) - .5rem);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .25rem .5rem;
    color: #fff;
    text-decoration: none;
    border-radius: .4rem;
    opacity: .82;
    transition: opacity 180ms ease, background-color 180ms ease;
}

.header-partners-bar__partner img {
    width: auto;
    max-width: 6rem;
    height: .78rem;
    display: block;
    object-fit: contain;
    filter: brightness(0) invert(1);
    transform: translateY(var(--partner-logo-offset, 0%));
}

.header-partners-bar__partner--dekom img {
    max-width: 7.6rem;
    height: .9rem;
}

.header-partners-bar__partner--pultar img {
    max-width: 6rem;
    height: .95rem;
}

.header-partners-bar__partner:hover,
.header-partners-bar__partner:focus-visible {
    color: #fff;
    background: rgba(255, 255, 255, .12);
    opacity: 1;
}

.site-header.is-scrolled,
.site-header.is-menu-open {
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 .7rem 2rem rgba(10, 27, 45, .08);
}

.header-shell {
    width: min(calc(100% - 2.5rem), 86rem);
    min-height: var(--header-height);
    display: grid;
    grid-template-columns: minmax(12rem, 1fr) auto minmax(12rem, 1fr);
    align-items: center;
    gap: 2rem;
    margin-inline: auto;
}

.header-brand {
    justify-self: start;
    display: inline-flex;
    align-items: center;
    width: clamp(10.75rem, 13vw, 13.5rem);
    min-width: 0;
    text-decoration: none;
}

.header-brand__logo {
    width: 100%;
    height: auto;
    display: block;
}

.header-navigation {
    position: static;
    display: block;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.header-navigation__links {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(1.75rem, 2.7vw, 3.25rem);
}

.header-navigation__links a {
    position: relative;
    padding: .55rem 0;
    color: var(--ink);
    font-size: .88rem;
    font-weight: 760;
    letter-spacing: .015em;
    text-decoration: none;
    white-space: nowrap;
    transition: color 180ms ease;
}

.header-navigation__links a::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: .22rem;
    left: 0;
    height: 2px;
    background: var(--primary);
    border-radius: 999px;
    transform: scaleX(0);
    transform-origin: center;
    transition: transform 220ms cubic-bezier(.22, 1, .36, 1);
}

.header-navigation__links a:hover,
.header-navigation__links a:focus-visible {
    color: var(--primary-dark);
    background: transparent;
}

.header-navigation__links a:hover::after,
.header-navigation__links a:focus-visible::after,
.header-navigation__links a.is-active::after {
    transform: scaleX(1);
}

.header-navigation__links a.is-active {
    color: var(--primary-dark);
}

.header-navigation__item {
    position: relative;
}

.header-navigation__trigger {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: .38rem;
    padding: .55rem 0;
    color: var(--ink);
    background: transparent;
    border: 0;
    font-size: .88rem;
    font-weight: 760;
    line-height: 1.65;
    letter-spacing: .015em;
    white-space: nowrap;
    cursor: pointer;
    transition: color 180ms ease;
}

.header-navigation__trigger::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: .22rem;
    left: 0;
    height: 2px;
    background: var(--primary);
    border-radius: 999px;
    transform: scaleX(0);
    transform-origin: center;
    transition: transform 220ms cubic-bezier(.22, 1, .36, 1);
}

.header-navigation__trigger svg {
    width: .8rem;
    height: .8rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
    transition: transform 200ms cubic-bezier(.22, 1, .36, 1);
}

.header-navigation__trigger:hover,
.header-navigation__trigger:focus-visible,
.header-navigation__trigger.is-active {
    color: var(--primary-dark);
}

.header-navigation__trigger:hover::after,
.header-navigation__trigger:focus-visible::after,
.header-navigation__trigger.is-active::after,
.header-navigation__item.is-open .header-navigation__trigger::after {
    transform: scaleX(1);
}

.header-navigation__item.is-open .header-navigation__trigger svg,
.header-navigation__item:hover .header-navigation__trigger svg,
.header-navigation__item:focus-within .header-navigation__trigger svg {
    transform: rotate(180deg);
}

.header-navigation__dropdown {
    position: absolute;
    z-index: 5;
    top: calc(100% + .8rem);
    left: 50%;
    width: 18rem;
    display: grid;
    gap: .18rem;
    padding: .55rem;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    background: rgba(255, 255, 255, .985);
    border: 1px solid rgba(211, 224, 237, .94);
    border-radius: 1.1rem;
    box-shadow: 0 1.25rem 3rem rgba(10, 27, 45, .16);
    backdrop-filter: blur(1.1rem) saturate(150%);
    transform: translate(-50%, -.45rem) scale(.985);
    transform-origin: top center;
    transition: visibility 180ms ease, opacity 180ms ease, transform 220ms cubic-bezier(.22, 1, .36, 1);
}

.header-navigation__dropdown--wide {
    width: 21rem;
}

.header-navigation__dropdown::before {
    content: "";
    position: absolute;
    right: 0;
    bottom: 100%;
    left: 0;
    height: .85rem;
}

.header-navigation__item:hover .header-navigation__dropdown,
.header-navigation__item:focus-within .header-navigation__dropdown,
.header-navigation__item.is-open .header-navigation__dropdown {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transform: translate(-50%, 0) scale(1);
}

.header-navigation__dropdown a {
    display: grid;
    gap: .12rem;
    padding: .72rem .78rem;
    color: var(--ink);
    background: transparent;
    border-radius: .78rem;
    text-decoration: none;
    white-space: normal;
    transition: color 180ms ease, background-color 180ms ease, transform 180ms ease;
}

.header-navigation__dropdown a::after,
.header-navigation__dropdown a::before {
    display: none;
    content: none;
}

.header-navigation__dropdown a span {
    font-size: .9rem;
    font-weight: 790;
    line-height: 1.25;
}

.header-navigation__dropdown a small {
    color: #6c7d90;
    font-size: .73rem;
    font-weight: 620;
    line-height: 1.35;
}

.header-navigation__dropdown a:hover,
.header-navigation__dropdown a:focus-visible,
.header-navigation__dropdown a.is-active {
    color: var(--primary-dark);
    background: #eff6ff;
    transform: translateX(.12rem);
}

.header-navigation__dropdown a:hover small,
.header-navigation__dropdown a:focus-visible small,
.header-navigation__dropdown a.is-active small {
    color: #4e6680;
}

.header-actions {
    display: flex;
    align-items: center;
    justify-self: end;
    gap: 1.4rem;
}

.header-community-dock {
    min-height: 2.75rem;
    display: inline-flex;
    align-items: center;
    padding: .22rem;
    background: #0b1d2d;
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 999px;
    box-shadow: 0 .45rem 1.25rem rgba(10, 27, 45, .16), inset 0 1px 0 rgba(255, 255, 255, .06);
}

.header-community-dock__link {
    min-height: 2.2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .34rem .68rem;
    border-radius: 999px;
    text-decoration: none;
    transition: background-color 180ms ease, box-shadow 180ms ease, transform 200ms cubic-bezier(.22, 1, .36, 1);
}

.header-community-dock__link:hover,
.header-community-dock__link:focus-visible {
    background: rgba(255, 255, 255, .08);
    transform: translateY(-1px);
}

.header-community-dock__link--ace:hover,
.header-community-dock__link--ace:focus-visible {
    box-shadow: inset 0 0 0 1px rgba(179, 249, 14, .16);
}

.header-community-dock__link--whatsapp:hover,
.header-community-dock__link--whatsapp:focus-visible {
    box-shadow: inset 0 0 0 1px rgba(37, 211, 102, .18);
}

.header-community-dock__divider {
    width: 1px;
    height: 1.25rem;
    flex: 0 0 auto;
    background: rgba(255, 255, 255, .14);
}

.header-community-dock__logo {
    height: auto;
    display: block;
    flex: 0 0 auto;
}

.header-community-dock__logo--ace {
    width: 2.8rem;
}

.header-community-dock__logo--whatsapp {
    width: 6rem;
}

.language-switch {
    display: inline-flex;
    align-items: center;
    gap: .15rem;
    padding: .2rem;
    background: #f1f5f9;
    border: 1px solid #dbe4ee;
    border-radius: 999px;
}

.language-switch__option {
    min-width: 2.25rem;
    min-height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .35rem .55rem;
    color: #607186;
    border-radius: 999px;
    font-size: .73rem;
    font-weight: 850;
    line-height: 1;
    letter-spacing: .04em;
    text-decoration: none;
    transition: color 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}

.language-switch__option.is-active {
    color: #fff;
    background: var(--primary);
    box-shadow: 0 .25rem .7rem rgba(0, 123, 255, .25);
}

.language-switch__option.is-disabled {
    cursor: not-allowed;
    opacity: .65;
}

.header-primary-actions {
    display: flex;
    align-items: center;
    gap: .85rem;
}

.header-primary-actions .language-switch {
    gap: .45rem;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
}

.header-primary-actions .language-switch__option {
    min-width: 1.75rem;
    min-height: 2rem;
    position: relative;
    padding: .35rem .1rem;
    color: #607186;
    background: transparent;
    border-radius: .35rem;
}

.header-primary-actions .language-switch__option:hover,
.header-primary-actions .language-switch__option:focus-visible {
    color: var(--primary-dark);
    background: transparent;
}

.header-primary-actions .language-switch__option.is-active {
    color: var(--primary-dark);
    background: transparent;
    box-shadow: none;
}

.header-primary-actions .language-switch__option.is-active::after {
    content: "";
    position: absolute;
    right: .35rem;
    bottom: .08rem;
    left: .35rem;
    height: 2px;
    background: var(--primary);
    border-radius: 999px;
}

.header-booking {
    min-height: 2.75rem;
    padding-inline: 1.35rem;
    box-shadow: 0 .45rem 1.25rem rgba(0, 123, 255, .2);
}

.header-navigation__mobile-actions,
.menu-button {
    display: none;
}

@media (max-width: 76rem) and (min-width: 67.01rem) {
    .header-shell {
        grid-template-columns: minmax(9.5rem, 1fr) auto minmax(11rem, 1fr);
        gap: 1.25rem;
    }

    .header-brand {
        width: 10.25rem;
    }

    .header-navigation__links {
        gap: 1.45rem;
    }

    .header-actions {
        gap: .9rem;
    }

    .header-community-dock__link {
        padding-inline: .54rem;
    }

    .header-community-dock__logo--ace {
        width: 2.55rem;
    }

    .header-community-dock__logo--whatsapp {
        width: 5.3rem;
    }

    .header-primary-actions {
        gap: .6rem;
    }
}

@media (max-width: 67rem) {
    .header-shell {
        grid-template-columns: auto 1fr auto;
        gap: 1rem;
    }

    .header-brand {
        width: 11.25rem;
    }

    .header-actions {
        display: none;
    }

    .menu-button {
        position: relative;
        width: 3rem;
        height: 3rem;
        display: grid;
        place-items: center;
        justify-self: end;
        padding: 0;
        overflow: hidden;
        color: var(--ink);
        background: linear-gradient(145deg, #fff, #f5f9ff);
        border: 1px solid rgba(171, 192, 215, .62);
        border-radius: 1rem;
        box-shadow: 0 .45rem 1.2rem rgba(10, 27, 45, .08), inset 0 1px 0 rgba(255, 255, 255, .9);
        transition: transform 220ms cubic-bezier(.22, 1, .36, 1), border-color 220ms ease, box-shadow 220ms ease, background-color 220ms ease;
    }

    .menu-button:hover,
    .menu-button:focus-visible {
        border-color: rgba(0, 123, 255, .42);
        box-shadow: 0 .55rem 1.4rem rgba(0, 91, 191, .13), inset 0 1px 0 rgba(255, 255, 255, .95);
        transform: translateY(-1px);
    }

    .menu-button[aria-expanded="true"] {
        background: var(--primary);
        border-color: var(--primary);
        box-shadow: 0 .6rem 1.45rem rgba(0, 123, 255, .28);
    }

    .menu-button__icon {
        position: relative;
        width: 1.35rem;
        height: 1.1rem;
        display: block;
    }

    .menu-button__line {
        position: absolute;
        left: 0;
        width: 1.35rem;
        height: 2px;
        background: currentColor;
        border-radius: 999px;
        transform-origin: center;
        transition: top 280ms cubic-bezier(.22, 1, .36, 1), transform 320ms cubic-bezier(.22, 1, .36, 1), color 180ms ease;
    }

    .menu-button__line--top {
        top: .2rem;
    }

    .menu-button__line--bottom {
        top: .78rem;
    }

    .menu-button__accent {
        position: absolute;
        top: .49rem;
        right: 0;
        width: .28rem;
        height: .28rem;
        background: var(--primary);
        border-radius: 50%;
        box-shadow: 0 0 0 .18rem rgba(0, 123, 255, .12);
        transition: opacity 160ms ease, transform 220ms ease, background-color 180ms ease;
    }

    .menu-button[aria-expanded="true"] .menu-button__line {
        top: .49rem;
        color: #fff;
    }

    .menu-button[aria-expanded="true"] .menu-button__line--top {
        transform: rotate(45deg);
    }

    .menu-button[aria-expanded="true"] .menu-button__line--bottom {
        transform: rotate(-45deg);
    }

    .menu-button[aria-expanded="true"] .menu-button__accent {
        opacity: 0;
        transform: scale(.2);
        background: #fff;
    }

    .header-navigation {
        position: absolute;
        top: calc(100% + .55rem);
        right: .9rem;
        left: .9rem;
        display: none;
        padding: .8rem;
        overflow: hidden;
        background: rgba(255, 255, 255, .985);
        border: 1px solid rgba(219, 228, 238, .92);
        border-radius: 1.35rem;
        box-shadow: 0 1.35rem 3.5rem rgba(10, 27, 45, .17);
        backdrop-filter: blur(1.25rem) saturate(155%);
        transform-origin: top center;
    }

    .header-navigation.is-open {
        display: grid;
        gap: .75rem;
        animation: mobile-menu-in 260ms cubic-bezier(.22, 1, .36, 1) both;
    }

    .header-navigation__links {
        display: grid;
        gap: .16rem;
    }

    .header-navigation__links a {
        display: flex;
        min-height: 3.15rem;
        align-items: center;
        padding: .72rem .85rem;
        color: var(--ink);
        border-radius: .85rem;
        font-size: 1rem;
        font-weight: 780;
        letter-spacing: -.01em;
    }

    .header-navigation__links a::after {
        display: none;
    }

    .header-navigation__links a::before {
        content: "";
        width: .42rem;
        height: .42rem;
        margin-right: .78rem;
        background: #d8e5f3;
        border-radius: 50%;
        transition: background-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
    }

    .header-navigation__links a:hover,
    .header-navigation__links a:focus-visible {
        color: var(--primary-dark);
        background: var(--primary-soft);
    }

    .header-navigation__links a:hover::before,
    .header-navigation__links a:focus-visible::before {
        background: var(--primary);
        box-shadow: 0 0 0 .25rem rgba(0, 123, 255, .11);
        transform: scale(.9);
    }

    .header-navigation__mobile-actions {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        align-items: center;
        gap: .75rem;
        padding: .75rem .1rem .1rem;
        border-top: 1px solid var(--line);
    }

    .header-navigation__mobile-actions .header-booking {
        min-height: 3rem;
        box-shadow: 0 .65rem 1.5rem rgba(0, 123, 255, .23);
    }
}

@keyframes mobile-menu-in {
    from {
        opacity: 0;
        transform: translateY(-.55rem) scale(.985);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@media (max-width: 34rem) {
    .site-header:has(.header-partners-bar) {
        --partner-bar-height: 2.5rem;
    }

    .header-partners-bar__inner {
        width: min(calc(100% - 1rem), 86rem);
        gap: .38rem;
    }

    .header-partners-bar__label {
        font-size: .5rem;
        letter-spacing: .1em;
    }

    .header-partners-bar__divider {
        height: .72rem;
    }

    .header-partners-bar__rail {
        gap: .12rem;
    }

    .header-partners-bar__partner {
        padding: .18rem .25rem;
    }

    .header-partners-bar__partner img {
        max-width: 4.6rem;
        height: .66rem;
    }

    .header-partners-bar__partner--dekom img {
        max-width: 5.6rem;
        height: .74rem;
    }

    .header-partners-bar__partner--pultar img {
        height: .8rem;
    }

    .site-header {
        --header-height: 4.25rem;
    }

    .header-shell {
        width: min(calc(100% - 1.5rem), 86rem);
        gap: .75rem;
    }

    .header-brand {
        width: clamp(7.4rem, 36vw, 8.75rem);
    }

    .menu-button {
        width: 2.75rem;
        height: 2.75rem;
        border-radius: .85rem;
    }

    .header-navigation {
        right: .65rem;
        left: .65rem;
        padding: .7rem;
        border-radius: 1.2rem;
    }

    .header-navigation__links a {
        min-height: 2.85rem;
        padding: .62rem .72rem;
        font-size: .96rem;
    }

    .header-navigation__mobile-actions {
        grid-template-columns: auto minmax(0, 1fr);
        gap: .6rem;
        padding-top: .7rem;
    }

    .header-navigation__mobile-actions .language-switch__option {
        min-width: 2rem;
        min-height: 1.9rem;
        padding-inline: .45rem;
    }

    .header-navigation__mobile-actions .header-booking {
        min-height: 2.85rem;
        padding-inline: 1rem;
    }
}

@media (max-width: 26rem) {
    .header-partners-bar__partner img {
        height: clamp(.44rem, 2.2vw, .66rem);
    }

    .header-partners-bar__partner--dekom img {
        height: clamp(.52rem, 2.55vw, .74rem);
    }

    .header-partners-bar__partner--pultar img {
        height: clamp(.56rem, 2.8vw, .8rem);
    }
}

@media (prefers-reduced-motion: reduce) {
    .site-header,
    .header-partners-bar__partner,
    .header-navigation__links a,
    .header-navigation__links a::before,
    .header-navigation__links a::after,
    .language-switch__option,
    .menu-button,
    .menu-button__line,
    .menu-button__accent {
        transition: none;
    }

    .header-navigation.is-open {
        animation: none;
    }
}
