/* Shared navigation for public pages and account entry pages. */
@font-face { font-family: 'Trauklar Header'; src: url('../fonts/weddingdir/nunito-400.woff') format('woff'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Trauklar Header'; src: url('../fonts/weddingdir/nunito-600.woff') format('woff'); font-weight: 600 800; font-display: swap; }
.trauklar-site-header.tk-site-header { position: sticky; top: 0; z-index: 60; flex: none; width: 100%; margin: 0; border-bottom: 1px solid #e5e8e9; background: #fff; color: #252428; box-shadow: 0 2px 14px #25242806; font-family: 'Trauklar Header', Arial, sans-serif; font-size: 14px; line-height: 1.4; color-scheme: light; }
.tk-site-header *, .tk-site-header *::before, .tk-site-header *::after { box-sizing: border-box; }
.tk-site-header a { color: inherit; text-decoration: none; }
.tk-site-header :is(a, summary):focus-visible { outline: 2px solid #007e80; outline-offset: 3px; border-radius: 4px; }
.tk-site-header-inner { display: grid; grid-template-columns: minmax(0, 1fr) max-content minmax(0, 1fr); align-items: center; gap: 24px; width: min(1600px, 100%); min-height: 84px; margin-inline: auto; padding: 12px 24px; }
.tk-site-logo { display: flex; justify-self: start; align-items: center; width: 158px; min-height: 44px; }
.tk-site-logo img { display: block; width: 158px; max-width: 100%; height: auto; max-height: 56px; object-fit: contain; filter: none; }
.tk-site-nav { display: flex; align-items: center; justify-content: center; gap: 22px; justify-self: center; }
.tk-site-nav > a { position: relative; display: inline-flex; align-items: center; min-height: 46px; padding: 12px 0; white-space: nowrap; font-size: 14px; font-weight: 600; }
.tk-site-nav > a:is(:hover, [aria-current="page"]) { color: #007e80; }
.tk-site-nav > a[aria-current="page"]::after { content: ''; position: absolute; height: 3px; background: #b96f57; border-radius: 3px; bottom: 0; left: 0; right: 0; }
.tk-site-actions { display: flex; align-items: center; justify-self: end; gap: 16px; white-space: nowrap; }
.tk-site-header .tk-site-register { display: inline-flex; justify-content: center; align-items: center; min-height: 46px; padding: 12px 18px; border: 1px solid #007e80; border-radius: 4px; background: #007e80; color: #fff; font-size: 13px; font-weight: 600; line-height: 1.4; }
.tk-site-header .tk-site-register:hover { background: #005b5c; border-color: #005b5c; color: #fff; }
.tk-site-login, .tk-site-access > summary { display: inline-flex; align-items: center; gap: 8px; min-height: 46px; font-size: 13px; font-weight: 600; }
.tk-site-header summary { cursor: pointer; list-style: none; }
.tk-site-header summary::-webkit-details-marker { display: none; }
.tk-site-access, .tk-site-mobile { position: relative; }
.tk-site-access > nav { position: absolute; top: calc(100% + 8px); right: 0; width: 290px; padding: 8px; border: 1px solid #e5e8e9; border-radius: 6px; background: #fff; box-shadow: 0 12px 35px #203d3420; }
.tk-site-access > nav a { display: block; padding: 16px; border-radius: 4px; white-space: normal; }
.tk-site-access > nav a:hover { background: #eff8f8; }
.tk-site-access strong { display: block; font-size: 15px; font-weight: 600; }
.tk-site-access nav span { display: block; margin-top: 5px; font-size: 12px; line-height: 1.6; color: #62646b; }
.tk-site-header .trauklar-language-switcher { display: block; position: relative; margin: 0; padding: 0; font: inherit; }
.tk-site-header .trauklar-language-switcher > summary { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 9px 12px; border: 1px solid #d3dddd; border-radius: 24px; background: #fff; color: #252428; font-size: 13px; font-weight: 400; box-shadow: 0 2px 8px #203d340a; }
.tk-site-header :is(.trauklar-language-current-flag, .trauklar-language-flag) { display: inline-flex; flex: 0 0 24px; width: 24px; height: 16px; overflow: hidden; border-radius: 2px; box-shadow: 0 0 0 1px #0000000d; }
.tk-site-header :is(.trauklar-language-current-flag, .trauklar-language-flag) svg { display: block; width: 24px; height: 16px; }
.tk-site-header .trauklar-language-chevron { color: #607575; font-size: 11px; }
.tk-site-header .trauklar-language-menu { position: absolute; top: calc(100% + 8px); right: 0; z-index: 2; width: 242px; max-width: calc(100vw - 32px); padding: 7px; margin: 0; border: 1px solid #e5e8e9; border-radius: 6px; background: #fff; color: #252428; box-shadow: 0 12px 35px #203d3420; }
.tk-site-header .trauklar-language-menu > a { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; padding: 9px 10px; border-radius: 4px; font-size: 14px; }
.tk-site-header .trauklar-language-menu > a:is(:hover, .is-active) { background: #eff8f8; color: #006668; }
.tk-site-header :is(.trauklar-language-option-main, .trauklar-language-option-meta) { display: inline-flex; align-items: center; gap: 10px; }
.tk-site-header .trauklar-language-code { color: #62646b; font-size: 11px; }
.tk-site-mobile { display: none; justify-self: end; }
.tk-site-mobile > summary { display: flex; width: 44px; height: 44px; flex-direction: column; justify-content: center; gap: 5px; padding: 10px; border: 1px solid #d3dddd; border-radius: 4px; background: #fff; }
.tk-site-mobile > summary > span { display: block; width: 22px; height: 2px; background: #252428; }
.tk-site-mobile > nav { position: absolute; top: calc(100% + 12px); right: 0; width: min(370px, calc(100vw - 32px)); max-height: calc(100dvh - 90px); overflow-y: auto; overscroll-behavior: contain; padding: 12px; border: 1px solid #e5e8e9; border-radius: 6px; background: #fff; box-shadow: 0 12px 35px #203d3420; }
.tk-site-mobile nav > a, .tk-site-mobile-access > a { display: flex; align-items: center; min-height: 46px; padding: 11px 12px; white-space: normal; font-size: 14px; font-weight: 600; }
.tk-site-mobile nav a:hover, .tk-site-mobile nav a[aria-current="page"] { color: #007e80; background: #eff8f8; }
.tk-site-mobile .trauklar-language-switcher { margin: 10px 0; }
.tk-site-mobile .trauklar-language-menu { position: static; width: 100%; margin-top: 8px; box-shadow: none; }
.tk-site-mobile-access { border-top: 1px solid #e5e8e9; padding-top: 8px; margin-top: 8px; }
.tk-site-mobile .tk-site-register { margin-top: 8px; }
@media (max-width: 1599px) {
    .tk-site-header-inner { gap: 18px; }
    .tk-site-nav { gap: 16px; }
    .tk-site-nav > a { font-size: 13px; }
    .tk-site-actions { gap: 12px; }
    .tk-site-actions .tk-site-register { max-width: 180px; padding-inline: 12px; white-space: normal; text-align: center; }
    .tk-site-actions .trauklar-language-current-name { display: none; }
}
@media (min-width: 1001px) and (max-width: 1379px) {
    .tk-site-header-inner { grid-template-columns: 1fr auto; gap: 0 24px; padding-block: 8px; }
    .tk-site-logo { grid-column: 1; grid-row: 1; }
    .tk-site-actions { grid-column: 2; grid-row: 1; }
    .tk-site-nav { grid-column: 1 / -1; grid-row: 2; gap: 24px; }
    .tk-site-actions .trauklar-language-current-name { display: inline; }
}
@media (max-width: 1000px) {
    .tk-site-header-inner { grid-template-columns: 1fr auto; min-height: 70px; padding: 10px 16px; }
    .tk-site-nav, .tk-site-actions { display: none; }
    .tk-site-mobile { display: block; position: static; }
    .tk-site-mobile > nav { top: 100%; right: 16px; width: min(370px, calc(100% - 32px)); }
    .tk-site-logo, .tk-site-logo img { width: 145px; }
}
