:root {
    --lph-primary: #102B2A;
    --lph-primary-2: #173D3B;
    --lph-primary-dark: #081817;
    --lph-cream: #F8F4EC;
    --lph-cream-2: #EEE5D8;
    --lph-gold: #C7A66A;
    --lph-gold-light: #E6D1A7;
    --lph-white: #FFFFFF;
    --lph-dark: #15201E;
    --lph-text: #66706D;
    --lph-border: rgba(16, 43, 42, 0.14);
}

.lph-header,
.lph-header *,
.lph-header *::before,
.lph-header *::after,
.lph-header-spacer {
    box-sizing: border-box;
}

/* =====================================================
   FESTER HEADER + FESTER PLATZHALTER
   Der Spacer verhindert jede Layoutverschiebung beim Verkleinern.
===================================================== */

.lph-header {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    z-index: 999999;

    width: 100%;

    color: var(--lph-dark);

    font-family: "Manrope", Arial, Helvetica, sans-serif;

    transform: translateZ(0);
    will-change: box-shadow;

    transition:
        box-shadow 0.34s ease,
        background-color 0.34s ease;
}

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

.lph-header.lph-measuring,
.lph-header.lph-measuring * {
    transition: none !important;
}

.lph-header-spacer {
    display: block;
    width: 100%;
    height: 102px;
    background: transparent;
}

.lph-header[data-lph-has-topbar="1"] + .lph-header-spacer {
    height: 145px;
}

.lph-shell {
    width: min(1400px, calc(100% - 64px));
    margin: 0 auto;
}

/* =====================================================
   TOPBAR
===================================================== */

.lph-topbar {
    position: relative;

    height: 43px;
    overflow: hidden;

    border-bottom: 1px solid rgba(230, 209, 167, 0.18);

    background:
        linear-gradient(
            110deg,
            var(--lph-primary-dark),
            var(--lph-primary)
        );

    color: rgba(255, 255, 255, 0.78);

    opacity: 1;
    transform: translateY(0);

    transition:
        height 0.34s cubic-bezier(.22, 1, .36, 1),
        opacity 0.24s ease,
        transform 0.34s cubic-bezier(.22, 1, .36, 1);
}

.lph-topbar::after {
    content: "";

    position: absolute;
    right: 0;
    bottom: 0;

    width: 120px;
    height: 1px;

    background: var(--lph-gold-light);
}

.lph-topbar__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;

    min-height: 43px;

    font-size: 10px;
    font-weight: 500;
    line-height: 1.4;
}

.lph-topbar__left,
.lph-topbar__right,
.lph-topbar__notice,
.lph-topbar__right > a,
.lph-topbar__right > span {
    display: flex;
    align-items: center;
}

.lph-topbar__right {
    gap: 20px;
}

.lph-topbar__notice,
.lph-topbar__right > a,
.lph-topbar__right > span {
    gap: 9px;
}

.lph-topbar__notice {
    color: rgba(255, 255, 255, 0.78);

    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.03em;
}

.lph-topbar a,
.lph-topbar a:hover,
.lph-topbar a:focus,
.lph-topbar a:visited {
    color: rgba(255, 255, 255, 0.78) !important;
    text-decoration: none !important;
}

.lph-topbar i {
    color: var(--lph-gold-light);
    font-size: 10px;
}

/* =====================================================
   HAUPTBEREICH
===================================================== */

.lph-mainbar {
    position: relative;

    background: rgba(248, 244, 236, 0.97);
    border-bottom: 1px solid rgba(16, 43, 42, 0.11);

    box-shadow: 0 10px 35px rgba(8, 24, 23, 0.035);

    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);

    transition:
        background-color 0.34s ease,
        border-color 0.34s ease,
        box-shadow 0.34s ease;
}

.lph-mainbar::after {
    content: "";

    position: absolute;
    right: 0;
    bottom: -1px;
    left: 0;

    height: 1px;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(199, 166, 106, 0.52) 20%,
            rgba(199, 166, 106, 0.52) 80%,
            transparent
        );

    pointer-events: none;
}

.lph-mainbar__inner {
    display: grid;
    grid-template-columns: minmax(195px, auto) minmax(0, 1fr) auto;
    align-items: center;
    gap: 46px;

    min-height: 102px;

    transition: min-height 0.34s cubic-bezier(.22, 1, .36, 1);
}

/* =====================================================
   LOGO
===================================================== */

.lph-logo,
.lph-mobile-logo {
    display: inline-flex;
    align-items: center;

    text-decoration: none !important;
}

.lph-logo {
    position: relative;
    align-self: stretch;

    padding-right: 31px;
}

.lph-logo::after {
    content: "";

    position: absolute;
    top: 27%;
    right: 0;
    bottom: 27%;

    width: 1px;

    background:
        linear-gradient(
            180deg,
            transparent,
            rgba(199, 166, 106, 0.55),
            transparent
        );
}

.lph-logo img {
    display: block;

    width: var(--lph-logo-width, 190px);
    max-width: none;
    max-height: 76px;

    object-fit: contain;
    object-position: left center;

    transition:
        width 0.34s cubic-bezier(.22, 1, .36, 1),
        max-height 0.34s cubic-bezier(.22, 1, .36, 1);
}

.lph-logo__fallback {
    display: grid;

    color: var(--lph-primary);

    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 31px;
    font-weight: 600;
    line-height: 0.86;
    letter-spacing: -0.045em;
}

.lph-logo__fallback small {
    margin-top: 8px;

    color: #826B40;

    font-family: "Manrope", Arial, sans-serif;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 0.24em;
}

/* =====================================================
   DESKTOP-NAVIGATION
===================================================== */

.lph-nav {
    min-width: 0;
}

.lph-menu,
.lph-menu ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.lph-menu {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(20px, 2vw, 35px);
}

.lph-menu > li {
    position: relative;
}

.lph-menu a,
.lph-menu a:visited {
    position: relative;

    display: flex;
    align-items: center;

    min-height: 46px;
    padding: 0 !important;

    background: transparent !important;
    color: var(--lph-dark) !important;

    text-decoration: none !important;

    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: 0.035em;

    transition: color 0.25s ease;
}

.lph-menu > li > a::after {
    content: "";

    position: absolute;
    right: 0;
    bottom: 5px;
    left: 0;

    height: 1px;

    background: var(--lph-gold);

    transform: scaleX(0);
    transform-origin: left center;

    transition: transform 0.3s cubic-bezier(.22, 1, .36, 1);
}

.lph-menu > li:hover > a,
.lph-menu > li.current-menu-item > a,
.lph-menu > li.current-menu-ancestor > a {
    color: var(--lph-primary) !important;
}

.lph-menu > li:hover > a::after,
.lph-menu > li.current-menu-item > a::after,
.lph-menu > li.current-menu-ancestor > a::after {
    transform: scaleX(1);
}

.lph-menu .menu-item-has-children > a::before {
    content: "\f107";

    order: 2;

    margin-left: 8px;

    color: var(--lph-gold);

    font-family: "Font Awesome 6 Free";
    font-size: 8px;
    font-weight: 900;

    transition: transform 0.25s ease;
}

.lph-menu .menu-item-has-children:hover > a::before {
    transform: rotate(180deg);
}

.lph-menu .sub-menu {
    position: absolute;
    top: calc(100% + 12px);
    left: -25px;
    z-index: 20;

    min-width: 250px;
    padding: 12px;

    border: 1px solid rgba(199, 166, 106, 0.28);
    background: rgba(248, 244, 236, 0.99);

    box-shadow: 0 24px 65px rgba(8, 24, 23, 0.15);

    opacity: 0;
    visibility: hidden;
    transform: translateY(12px);

    transition:
        opacity 0.25s ease,
        visibility 0.25s ease,
        transform 0.25s ease;
}

.lph-menu .sub-menu::before {
    content: "";

    position: absolute;
    top: 0;
    right: 0;

    width: 72px;
    height: 2px;

    background: var(--lph-gold);
}

.lph-menu li:hover > .sub-menu,
.lph-menu li:focus-within > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.lph-menu .sub-menu a {
    min-height: 44px;
    padding: 0 14px !important;

    color: var(--lph-text) !important;

    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.025em;
}

.lph-menu .sub-menu a:hover {
    background: rgba(230, 209, 167, 0.18) !important;
    color: var(--lph-primary) !important;
}

.lph-menu .sub-menu .sub-menu {
    top: -12px;
    left: calc(100% + 13px);
}

/* =====================================================
   AKTIONEN UND CTA
===================================================== */

.lph-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 14px;
}

.lph-cta,
.lph-cta:visited,
.lph-cta:hover,
.lph-cta:focus {
    position: relative;

    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 13px;

    min-height: 54px;
    padding: 0 22px 0 24px;

    border: 1px solid var(--lph-primary) !important;
    background: var(--lph-primary) !important;
    color: var(--lph-white) !important;

    box-shadow: 0 15px 34px rgba(16, 43, 42, 0.17);

    text-decoration: none !important;

    font-size: 9px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.13em;
    text-transform: uppercase;

    transition:
        transform 0.3s ease,
        background-color 0.3s ease,
        border-color 0.3s ease,
        box-shadow 0.3s ease;
}

.lph-cta::before {
    content: "";

    position: absolute;
    top: -1px;
    right: -1px;

    width: 62px;
    height: 2px;

    background: var(--lph-gold-light);
}

.lph-cta:hover {
    border-color: var(--lph-primary-2) !important;
    background: var(--lph-primary-2) !important;

    box-shadow: 0 20px 43px rgba(16, 43, 42, 0.24);

    transform: translateY(-2px);
}

.lph-cta i {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 27px;
    height: 27px;

    border: 1px solid rgba(230, 209, 167, 0.45);
    border-radius: 50%;

    color: var(--lph-gold-light);

    font-size: 9px;

    transition:
        background-color 0.3s ease,
        color 0.3s ease,
        transform 0.3s ease;
}

.lph-cta:hover i {
    background: var(--lph-gold-light);
    color: var(--lph-primary);

    transform: translateX(3px);
}

/* =====================================================
   HAMBURGER
===================================================== */

.lph-menu-toggle {
    display: none;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 5px;

    width: 50px;
    height: 50px;
    padding: 0;

    border: 1px solid rgba(16, 43, 42, 0.16) !important;
    border-radius: 50% !important;
    background: transparent !important;

    box-shadow: none !important;

    cursor: pointer;
}

.lph-menu-toggle span {
    display: block;

    width: 20px;
    height: 1.5px;

    background: var(--lph-primary);

    transition:
        transform 0.3s ease,
        opacity 0.3s ease;
}

@media (min-width: 981px) {
    .lph-header .lph-mainbar .lph-actions > button.lph-menu-toggle[type="button"] {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;

        width: 0 !important;
        min-width: 0 !important;
        height: 0 !important;
        min-height: 0 !important;

        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;

        overflow: hidden !important;
        pointer-events: none !important;
    }
}

/* =====================================================
   STICKY-ZUSTAND
   Keine Höhenänderung im Dokument, da der Spacer stehen bleibt.
===================================================== */

.lph-header.is-sticky {
    box-shadow: 0 14px 42px rgba(8, 24, 23, 0.13);
}

.lph-header.is-sticky .lph-topbar {
    height: 0;
    opacity: 0;
    transform: translateY(-100%);
}

.lph-header.is-sticky .lph-mainbar {
    background: rgba(248, 244, 236, 0.985);
    box-shadow: 0 13px 42px rgba(8, 24, 23, 0.1);
}

.lph-header.is-sticky .lph-mainbar__inner {
    min-height: 78px;
}

.lph-header.is-sticky .lph-logo img {
    width: var(--lph-logo-sticky-width, 160px);
    max-height: 57px;
}

.lph-header.is-sticky .lph-cta {
    min-height: 48px;
}

/* =====================================================
   SOCIAL MEDIA
===================================================== */

.lph-socials {
    display: flex;
    align-items: center;
    gap: 7px;
}

.lph-socials a,
.lph-socials a:visited {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    text-decoration: none !important;
}

.lph-socials--top a {
    width: 27px;
    height: 27px;

    border: 1px solid rgba(230, 209, 167, 0.3);
    border-radius: 50%;

    color: var(--lph-gold-light) !important;

    transition:
        background-color 0.25s ease,
        border-color 0.25s ease,
        color 0.25s ease;
}

.lph-socials--top a:hover {
    border-color: var(--lph-gold-light);
    background: var(--lph-gold-light);
    color: var(--lph-primary) !important;
}

/* =====================================================
   MOBILE PANEL – STANDARD AUS
===================================================== */

.lph-mobile-overlay,
.lph-mobile-panel {
    display: none;
}

/* =====================================================
   KLEINERE DESKTOPS
===================================================== */

@media (max-width: 1180px) {
    .lph-shell {
        width: min(1400px, calc(100% - 40px));
    }

    .lph-mainbar__inner {
        grid-template-columns: auto 1fr auto;
        gap: 26px;
    }

    .lph-logo {
        padding-right: 22px;
    }

    .lph-menu {
        gap: 18px;
    }

    .lph-menu a {
        font-size: 11px;
    }

    .lph-topbar__notice {
        display: none;
    }
}

/* =====================================================
   TABLET / MOBILE NAVIGATION
===================================================== */

@media (max-width: 980px) {
    .lph-header-spacer {
        height: 88px;
    }

    .lph-header[data-lph-has-topbar="1"] + .lph-header-spacer {
        height: 131px;
    }

    .lph-topbar__inner {
        justify-content: center;
    }

    .lph-topbar__left {
        display: none;
    }

    .lph-topbar__right {
        width: 100%;
        justify-content: center;
        gap: 18px;
    }

    .lph-topbar__right > span:nth-of-type(1) {
        display: none;
    }

    .lph-mainbar__inner {
        grid-template-columns: minmax(0, 1fr) auto;
        min-height: 88px;
    }

    .lph-logo {
        align-self: center;
        padding-right: 0;
    }

    .lph-logo::after {
        display: none;
    }

    .lph-nav {
        display: none;
    }

    .lph-actions {
        grid-column: 2;
    }

    .lph-cta {
        display: none !important;
    }

    .lph-header .lph-mainbar .lph-actions > button.lph-menu-toggle[type="button"] {
        display: flex !important;
        visibility: visible !important;
        opacity: 1 !important;

        width: 50px !important;
        min-width: 50px !important;
        height: 50px !important;
        min-height: 50px !important;

        margin: 0 !important;
        padding: 0 !important;

        border: 1px solid rgba(16, 43, 42, 0.16) !important;

        overflow: visible !important;
        pointer-events: auto !important;
    }

    .lph-logo img {
        width: min(var(--lph-logo-width, 190px), 180px);
        max-height: 66px;
    }

    .lph-header.is-sticky .lph-mainbar__inner {
        min-height: 74px;
    }

    .lph-header.is-sticky .lph-logo img {
        width: min(var(--lph-logo-sticky-width, 160px), 150px);
    }

    .lph-mobile-overlay {
        position: fixed;
        inset: 0;
        z-index: 1000000;

        display: block;

        background: rgba(5, 16, 15, 0.64);

        opacity: 0;
        visibility: hidden;

        transition:
            opacity 0.35s ease,
            visibility 0.35s ease;
    }

    .lph-mobile-panel {
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        z-index: 1000001;

        display: flex;
        flex-direction: column;

        width: min(92vw, 430px);

        border-left: 1px solid rgba(199, 166, 106, 0.25);
        background: var(--lph-cream);

        box-shadow: -25px 0 70px rgba(5, 16, 15, 0.23);

        transform: translateX(105%);
        visibility: hidden;

        transition:
            transform 0.42s cubic-bezier(.22, 1, .36, 1),
            visibility 0.42s ease;
    }

    .lph-mobile-panel::before {
        content: "";

        position: absolute;
        top: 0;
        right: 0;

        width: 100px;
        height: 2px;

        background: var(--lph-gold);
    }

    .lph-header.is-mobile-open .lph-mobile-overlay {
        opacity: 1;
        visibility: visible;
    }

    .lph-header.is-mobile-open .lph-mobile-panel {
        transform: translateX(0);
        visibility: visible;
    }

    .lph-mobile-panel__head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 20px;

        min-height: 98px;
        padding: 18px 24px;

        border-bottom: 1px solid var(--lph-border);
    }

    .lph-mobile-logo img {
        width: min(var(--lph-logo-width, 190px), 180px);
        max-height: 64px;

        object-fit: contain;
    }

    .lph-mobile-close {
        display: flex;
        align-items: center;
        justify-content: center;

        width: 45px;
        height: 45px;
        padding: 0;

        border: 1px solid rgba(16, 43, 42, 0.16) !important;
        border-radius: 50% !important;
        background: transparent !important;
        color: var(--lph-primary) !important;

        font-size: 16px;

        cursor: pointer;
    }

    .lph-mobile-panel__body {
        flex: 1;
        overflow-y: auto;

        padding: 20px 24px 35px;
    }

    .lph-mobile-menu,
    .lph-mobile-menu ul {
        margin: 0;
        padding: 0;
        list-style: none;
    }

    .lph-mobile-menu > li {
        border-bottom: 1px solid var(--lph-border);
    }

    .lph-mobile-menu a,
    .lph-mobile-menu a:visited {
        display: flex;
        align-items: center;

        min-height: 62px;

        background: transparent !important;
        color: var(--lph-primary) !important;

        text-decoration: none !important;

        font-family: "Cormorant Garamond", Georgia, serif;
        font-size: 21px;
        font-weight: 600;
        line-height: 1.2;
        letter-spacing: -0.02em;
    }

    .lph-mobile-menu .menu-item-has-children > a {
        padding-right: 44px !important;
    }

    .lph-mobile-menu .menu-item-has-children {
        position: relative;
    }

    .lph-mobile-menu .lph-submenu-toggle {
        position: absolute;
        top: 10px;
        right: 0;

        display: flex;
        align-items: center;
        justify-content: center;

        width: 40px;
        height: 40px;
        padding: 0;

        border: 1px solid rgba(16, 43, 42, 0.14) !important;
        border-radius: 50% !important;
        background: transparent !important;
        color: var(--lph-primary) !important;

        cursor: pointer;

        transition:
            background-color 0.25s ease,
            color 0.25s ease,
            transform 0.25s ease;
    }

    .lph-mobile-menu .sub-menu {
        display: none;
        padding: 0 0 15px 18px;
    }

    .lph-mobile-menu .sub-menu a {
        min-height: 43px;

        color: var(--lph-text) !important;

        font-family: "Manrope", Arial, sans-serif;
        font-size: 11px;
        font-weight: 600;
        letter-spacing: 0.025em;
    }

    .lph-mobile-menu li.is-submenu-open > .sub-menu {
        display: block;
    }

    .lph-mobile-menu li.is-submenu-open > .lph-submenu-toggle {
        background: var(--lph-primary) !important;
        color: var(--lph-gold-light) !important;

        transform: rotate(180deg);
    }

    .lph-mobile-cta,
    .lph-mobile-cta:visited,
    .lph-mobile-cta:hover {
        position: relative;

        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 15px;

        min-height: 60px;
        margin-top: 25px;
        padding: 0 20px;

        border: 1px solid var(--lph-primary) !important;
        background: var(--lph-primary) !important;
        color: var(--lph-white) !important;

        text-decoration: none !important;

        font-size: 9px;
        font-weight: 700;
        letter-spacing: 0.13em;
        text-transform: uppercase;
    }

    .lph-mobile-cta::before {
        content: "";

        position: absolute;
        top: -1px;
        right: -1px;

        width: 72px;
        height: 2px;

        background: var(--lph-gold-light);
    }

    .lph-mobile-cta i {
        color: var(--lph-gold-light);
    }

    .lph-mobile-contact {
        display: grid;
        gap: 11px;

        margin-top: 28px;
    }

    .lph-mobile-contact a,
    .lph-mobile-contact a:visited,
    .lph-mobile-contact > span {
        display: grid;
        grid-template-columns: 40px minmax(0, 1fr);
        align-items: center;
        gap: 13px;

        color: var(--lph-text) !important;

        text-decoration: none !important;

        font-size: 10px;
        font-weight: 600;
    }

    .lph-mobile-contact i {
        display: flex;
        align-items: center;
        justify-content: center;

        width: 40px;
        height: 40px;

        border: 1px solid rgba(16, 43, 42, 0.15);
        border-radius: 50%;

        color: var(--lph-primary);
    }

    .lph-socials--mobile {
        margin-top: 26px;
        gap: 9px;
    }

    .lph-socials--mobile a {
        width: 42px;
        height: 42px;

        border: 1px solid rgba(16, 43, 42, 0.15);
        border-radius: 50%;

        color: var(--lph-primary) !important;

        transition:
            background-color 0.25s ease,
            border-color 0.25s ease,
            color 0.25s ease;
    }

    .lph-socials--mobile a:hover {
        border-color: var(--lph-primary);
        background: var(--lph-primary);
        color: var(--lph-gold-light) !important;
    }

    body.lph-menu-open {
        overflow: hidden;
    }
}

/* =====================================================
   KLEINE MOBILE GERÄTE
===================================================== */

@media (max-width: 767px) {
    .admin-bar .lph-header {
        top: 46px;
    }

    .lph-header-spacer {
        height: 80px;
    }

    .lph-header[data-lph-has-topbar="1"] + .lph-header-spacer {
        height: 123px;
    }

    .lph-shell {
        width: calc(100% - 30px);
    }

    .lph-topbar__right {
        justify-content: space-between;
        gap: 10px;
    }

    .lph-topbar__right > a,
    .lph-topbar__right > span {
        font-size: 0;
    }

    .lph-topbar__right > a i,
    .lph-topbar__right > span i {
        font-size: 11px;
    }

    .lph-topbar__right > a {
        width: 30px;
        height: 30px;

        justify-content: center;

        border: 1px solid rgba(230, 209, 167, 0.24);
        border-radius: 50%;
    }

    .lph-topbar__right > span {
        display: none;
    }

    .lph-socials--top {
        margin-left: auto;
    }

    .lph-mainbar__inner {
        min-height: 80px;
    }

    .lph-logo img {
        width: min(var(--lph-logo-width, 190px), 155px);
        max-height: 58px;
    }

    .lph-header.is-sticky .lph-logo img {
        width: min(var(--lph-logo-sticky-width, 160px), 138px);
    }

    .lph-header .lph-mainbar .lph-actions > button.lph-menu-toggle[type="button"] {
        width: 46px !important;
        min-width: 46px !important;
        height: 46px !important;
        min-height: 46px !important;
    }

    .lph-mobile-panel {
        width: min(94vw, 390px);
    }
}

@media (max-width: 420px) {
    .lph-socials--top {
        display: none;
    }

    .lph-topbar__right {
        justify-content: center;
    }

    .lph-logo img {
        width: min(var(--lph-logo-width, 190px), 145px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .lph-header *,
    .lph-header *::before,
    .lph-header *::after {
        scroll-behavior: auto !important;
        transition: none !important;
        animation: none !important;
    }
}
