.public-header {
    position: relative;
    z-index: 100;
    width: 100%;
    padding-inline: env(safe-area-inset-left) env(safe-area-inset-right);
    color: var(--paper, var(--ivory, #fffdf8));
    border-bottom: 1px solid rgba(223, 202, 158, 0.18);
    background: rgba(15, 15, 15, 0.84);
}

.public-header--overlay {
    position: absolute;
    inset: 0 0 auto;
    border-bottom-color: transparent;
    background: transparent;
}

.public-header.is-sticky {
    position: fixed;
    background: rgba(15, 15, 15, 0.92);
    border-bottom-color: rgba(223, 202, 158, 0.2);
    -webkit-backdrop-filter: blur(18px);
    backdrop-filter: blur(18px);
}

.public-header__inner {
    width: min(100% - 32px, 1240px);
    min-width: 0;
    height: 88px;
    margin-inline: auto;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto auto;
    align-items: center;
    gap: clamp(12px, 1.8vw, 24px);
}

.public-brand {
    min-width: 0;
    width: max-content;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--gold, #dfca9e);
    font: 500 13px/1 var(--mono, monospace);
    letter-spacing: 0.22em;
    text-decoration: none;
}

.public-brand__mark {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    display: block;
    overflow: hidden;
    border: 1px solid rgba(223, 202, 158, 0.28);
    border-radius: 9px;
    background: #111;
}

.public-brand__mark img { display: block; width: 100%; height: 100%; object-fit: cover; }

.public-nav {
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: clamp(16px, 2vw, 28px);
}

.public-nav a,
.public-header__cta {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
    color: rgba(255, 253, 248, 0.7);
    font: 500 10px/1 var(--mono, monospace);
    letter-spacing: 0.08em;
    text-decoration: none;
    text-transform: uppercase;
    transition: color 180ms ease, border-color 180ms ease, background-color 180ms ease;
}

.public-nav a { position: relative; }
.public-nav a::after { position: absolute; inset: auto 100% 3px 0; height: 1px; content: ''; background: var(--gold, #dfca9e); transition: right 180ms ease; }
.public-nav a:hover,
.public-nav a[aria-current='page'] { color: var(--gold, #dfca9e); }
.public-nav a:hover::after,
.public-nav a[aria-current='page']::after { right: 0; }

.public-header .language-switcher {
    position: relative;
    z-index: 120;
    justify-self: end;
    color: var(--gold, #dfca9e);
    font: 500 10px/1 var(--mono, monospace);
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.public-header .language-switcher summary {
    min-height: 44px;
    padding: 0 13px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    color: inherit;
    border: 1px solid rgba(223, 202, 158, 0.3);
    border-radius: 999px;
    background: rgba(15, 15, 15, 0.78);
    cursor: pointer;
    list-style: none;
}

.public-header .language-switcher summary::-webkit-details-marker { display: none; }
.language-switcher__globe { width: 10px; height: 10px; border: 1px solid currentColor; border-radius: 50%; box-shadow: inset 3px 0 0 transparent; }
.public-header .language-switcher summary i { width: 6px; height: 6px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform 160ms ease; }
.public-header .language-switcher[open] summary i { transform: translateY(2px) rotate(225deg); }
.public-header .language-switcher nav { position: absolute; top: calc(100% + 8px); inset-inline-end: 0; width: min(280px, calc(100vw - 32px)); max-height: min(70vh, 430px); padding: 8px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px; overflow-y: auto; color: rgba(255, 253, 248, 0.74); background: rgba(15, 15, 15, 0.99); border: 1px solid rgba(223, 202, 158, 0.26); border-radius: 14px; box-shadow: 0 20px 50px rgba(0, 0, 0, 0.46); }
.public-header .language-switcher nav a { min-width: 0; padding: 10px 9px; border-radius: 8px; color: inherit; text-decoration: none; text-transform: none; overflow-wrap: anywhere; }
.public-header .language-switcher nav a:hover,
.public-header .language-switcher nav a[aria-current='page'] { color: #111; background: var(--gold, #dfca9e); }

.public-header__cta {
    justify-content: center;
    padding: 0 18px;
    color: #111;
    border: 1px solid var(--gold, #dfca9e);
    border-radius: 999px;
    background: var(--gold, #dfca9e);
}

.public-header__cta:hover { background: #f0ddb4; border-color: #f0ddb4; }
.public-menu-toggle,
.public-mobile-nav { display: none; }
.public-header a:focus-visible,
.public-header button:focus-visible,
.public-footer a:focus-visible,
.public-footer button:focus-visible { outline: 2px solid var(--gold, #dfca9e); outline-offset: 4px; }

.public-footer {
    width: 100%;
    color: rgba(255, 253, 248, 0.58);
    border-top: 1px solid rgba(223, 202, 158, 0.18);
    background: #0c0c0b;
}

.public-footer__main,
.public-footer__bottom { width: min(100% - 32px, 1240px); margin-inline: auto; }
.public-footer__main { min-height: 260px; padding: 64px 0; display: grid; grid-template-columns: auto minmax(220px, 0.8fr) minmax(360px, 1fr); align-items: start; gap: clamp(36px, 6vw, 88px); }
.public-footer__brand { align-self: start; }
.public-footer__tagline { max-width: 360px; margin: 0; color: rgba(255, 253, 248, 0.64); font: 400 clamp(20px, 2vw, 25px)/1.25 var(--serif, serif); text-wrap: balance; }
.public-footer__navigation { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(28px, 4vw, 56px); }
.public-footer__navigation > div { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.public-footer__navigation > div > span { margin-bottom: 7px; color: var(--gold, #dfca9e); font: 500 9px/1 var(--mono, monospace); letter-spacing: 0.13em; text-transform: uppercase; }
.public-footer__navigation a { min-height: 28px; display: inline-flex; align-items: center; color: rgba(255, 253, 248, 0.58); font-size: 13px; text-decoration: none; }
.public-footer__navigation a:hover { color: #fffdf8; }
.public-footer__bottom { min-height: 76px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 24px; color: rgba(255, 253, 248, 0.36); border-top: 1px solid rgba(223, 202, 158, 0.18); font: 500 8px/1.4 var(--mono, monospace); letter-spacing: 0.08em; text-transform: uppercase; }
.public-footer__bottom p { margin: 0; }
.public-footer__bottom > a { justify-self: end; color: inherit; text-decoration: none; }
.public-footer .veritas-cookie-settings { padding: 10px; color: inherit; border: 0; background: transparent; font: inherit; letter-spacing: inherit; text-transform: inherit; cursor: pointer; }
.public-footer .veritas-cookie-settings:hover,
.public-footer__bottom > a:hover { color: var(--gold, #dfca9e); }

@media (max-width: 1100px) {
    .public-header__inner { height: 76px; grid-template-columns: minmax(0, 1fr) auto auto; }
    .public-nav,
    .public-header__cta { display: none; }
    .public-menu-toggle { position: relative; z-index: 132; width: 44px; height: 44px; padding: 10px; display: flex; flex-direction: column; justify-content: center; gap: 7px; color: #fffdf8; border: 0; background: transparent; cursor: pointer; }
    .public-menu-toggle span { width: 24px; height: 1px; display: block; background: currentColor; transition: transform 180ms ease; }
    .public-menu-toggle[aria-expanded='true'] span:first-child { transform: translateY(4px) rotate(45deg); }
    .public-menu-toggle[aria-expanded='true'] span:last-child { transform: translateY(-4px) rotate(-45deg); }
    .public-mobile-nav { position: fixed; z-index: 130; inset: 0; padding: 96px 24px 40px; visibility: hidden; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 20px; overflow-y: auto; color: #fffdf8; background: radial-gradient(circle at 50% 18%, rgba(223, 202, 158, 0.13), transparent 26rem), rgba(15, 15, 15, 0.99); opacity: 0; overscroll-behavior: contain; transition: opacity 180ms ease; }
    .public-mobile-nav.is-open { visibility: visible; opacity: 1; }
    .public-mobile-nav a { color: #fffdf8; font: 500 clamp(34px, 10vw, 48px)/1 var(--serif, serif); text-decoration: none; }
    .public-mobile-nav a[aria-current='page'] { color: var(--gold, #dfca9e); }
    .public-mobile-nav .public-mobile-nav__cta { min-height: 48px; margin-top: 12px; padding: 0 24px; display: inline-flex; align-items: center; color: #111; background: var(--gold, #dfca9e); border-radius: 999px; font: 500 11px/1 var(--mono, monospace); letter-spacing: 0.08em; text-transform: uppercase; }
    .public-footer__main { grid-template-columns: auto 1fr; }
    .public-footer__tagline { display: none; }
}

@media (max-width: 620px) {
    .public-header__inner { width: calc(100% - 24px); height: 68px; gap: 8px; }
    .public-brand { font-size: 11px; }
    .public-brand__mark { width: 30px; height: 30px; flex-basis: 30px; }
    .public-header .language-switcher summary { min-height: 40px; padding-inline: 10px; }
    .public-header .language-switcher summary b { max-width: 88px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .public-footer__main { min-height: 0; padding: 54px 0; grid-template-columns: 1fr; gap: 36px; }
    .public-footer__navigation { gap: 24px; }
    .public-footer__bottom { padding: 22px 0; grid-template-columns: 1fr auto; gap: 12px; }
    .public-footer__bottom > a { grid-column: 1 / -1; justify-self: start; }
}

@media (prefers-reduced-motion: reduce) {
    .public-header *,
    .public-footer * { scroll-behavior: auto; transition-duration: 0.01ms !important; }
}
