html,
body {
  min-height: 100%;
}

body {
  display: flex;
  min-height: 100vh;
  min-height: 100svh;
  flex-direction: column;
}

body > header,
body > footer {
  flex-shrink: 0;
}

body > main {
  flex: 1 0 auto;
}

body > footer {
  margin-top: auto;
}

body > [data-shared-site-header] { min-height: 4.5rem; }

.site-header { position: sticky; top: 0; z-index: 50; border-bottom: 1px solid #e5e1da; background: rgb(255 255 255 / 96%); backdrop-filter: blur(18px); }
.site-header-inner { display: flex; width: min(100% - 2.5rem, 80rem); min-height: 4.5rem; align-items: center; justify-content: space-between; gap: 1.2rem; margin-inline: auto; }
.site-brand { display: inline-flex; flex: 0 0 auto; align-items: center; gap: .7rem; color: #181d24; text-decoration: none; }
.site-brand img { width: 2.5rem; height: 2.5rem; border-radius: 10px; }
.site-brand span { font-family: 'Playfair Display', Georgia, serif; font-size: 1.25rem; font-weight: 700; }
.site-nav { display: flex; align-items: center; gap: clamp(.7rem, 1.3vw, 1.25rem); }
.site-nav > a, .site-nav-menu > summary { color: #4b5563; font-size: .81rem; font-weight: 750; text-decoration: none; white-space: nowrap; cursor: pointer; }
.site-nav > a:hover, .site-nav > a[aria-current="page"], .site-nav-menu > summary:hover, .site-nav-menu[open] > summary { color: #995e2e; }
.site-nav-menu { position: relative; }
.site-nav-menu > summary { list-style: none; }
.site-nav-menu > summary::-webkit-details-marker { display: none; }
.site-nav-menu > summary::after { display: inline-block; width: .4rem; height: .4rem; margin: 0 0 .18rem .4rem; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; content: ''; transform: rotate(45deg); }
.site-nav-dropdown { position: absolute; top: calc(100% + 1rem); left: -.8rem; z-index: 60; display: grid; min-width: 12rem; border: 1px solid #e5e1da; border-radius: 4px; background: #fff; padding: .35rem; box-shadow: 0 12px 30px rgb(39 45 53 / 12%); }
.site-nav-dropdown a { border-radius: 3px; padding: .65rem .75rem; color: #3f4751; font-size: .82rem; font-weight: 700; text-decoration: none; }
.site-nav-dropdown a:hover, .site-nav-dropdown a[aria-current="page"] { background: #f7f5f1; color: #995e2e; }
.site-header-actions { display: flex; flex: 0 0 auto; align-items: center; gap: .7rem; }
.site-audit-link, .site-mobile-audit { border-radius: 5px; background: #181d24; padding: .7rem 1rem; color: #fff; font-size: .78rem; font-weight: 850; text-decoration: none; white-space: nowrap; }
.site-audit-link:hover, .site-mobile-audit:hover { background: #995e2e; }
.site-menu-button { display: none; width: 2.75rem; height: 2.75rem; place-items: center; border: 1px solid #d8d4cc; border-radius: 5px; background: #fff; color: #181d24; font-size: 1.25rem; cursor: pointer; }
.site-mobile-menu[hidden] { display: none; }
.site-mobile-menu { border-top: 1px solid #e5e1da; background: #fff; padding: 1rem 1.25rem 1.25rem; }
.site-mobile-inner { display: grid; width: min(100%, 80rem); gap: 1rem; margin-inline: auto; }
.site-mobile-group { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .2rem; border-bottom: 1px solid #e5e1da; padding-bottom: .8rem; }
.site-mobile-group p { grid-column: 1 / -1; margin: .2rem .65rem; color: #995e2e; font-size: .68rem; font-weight: 900; text-transform: uppercase; }
.site-mobile-group a { border-radius: 4px; padding: .7rem .65rem; color: #272d35; font-size: .86rem; font-weight: 700; text-decoration: none; }
.site-mobile-group a:hover, .site-mobile-group a[aria-current="page"] { background: #f7f5f1; color: #995e2e; }
.site-mobile-audit { text-align: center; }
.site-header-actions .admin-topbar-actions { display: flex; align-items: center; gap: .8rem; }
.site-header-actions .admin-text-link { border: 0; background: transparent; color: #4b5563; font-size: .78rem; font-weight: 750; cursor: pointer; }
.site-header-actions .admin-text-link:hover { color: #995e2e; }
@media (max-width: 1120px) { .site-nav { gap: .75rem; } .site-nav > a, .site-nav-menu > summary { font-size: .75rem; } .site-audit-link { padding-inline: .75rem; font-size: .72rem; } }
@media (max-width: 960px) { body > [data-shared-site-header] { min-height: 4.25rem; } .site-header-inner { min-height: 4.25rem; } .site-nav, .site-header-actions > .site-audit-link { display: none; } .site-header-actions:has(.admin-topbar-actions) { display: flex; margin-left: auto; } .site-menu-button { display: grid; } }
@media (max-width: 540px) { .site-header-inner { width: calc(100% - 2rem); gap: .5rem; } .site-brand span { font-size: 1.15rem; } .site-header-actions .admin-topbar-actions { gap: .4rem; } .site-header-actions .admin-text-link { font-size: .7rem; } }
