.site-header { width:100%; max-width:none; margin:0; background:#fff; border-bottom: #e4dac2 1px solid; }
.site-header-content { display:flex; align-items:center; gap:24px; flex-wrap:nowrap; }
.site-header .brand { flex-shrink:0; }
.site-header .navigation { margin-left:0; gap:22px; flex-basis:auto; order:0; white-space:nowrap; }
.desktop-header-controls { display:contents; }
.mobile-menu,.mobile-menu-panel { display:none; }
.header-search { display:flex; align-items:center; width:280px; min-width:180px; margin:0 0 0 auto; background:var(--paper); border:1px solid var(--line); border-radius:12px; }
.header-search .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.header-search input { border:0; background:transparent; color:var(--ink); font:inherit; font-size:14px; min-width:0; width:100%; padding:12px 0 12px 14px; }
.header-search button { flex-shrink:0; display:grid; place-items:center; min-width:44px; height:44px; border:0; border-radius:10px; color:var(--teal); background:transparent; cursor:pointer; }
.header-search:focus-within { outline:2px solid var(--teal); outline-offset:3px; }
.header-search input:focus { outline:0; }
.header-search button:hover { background:var(--mint); }
.site-header .account-controls { display:flex; margin-left:0; gap:12px; flex-shrink:0; }
.account-menu { position:relative; font-size:13px; font-weight:700; }
.account-menu summary { cursor:pointer; display:flex; align-items:center; gap:8px; min-height:44px; color:var(--teal); list-style:none; }
.account-menu summary::-webkit-details-marker { display:none; }
.account-menu summary:focus-visible { outline:2px solid var(--teal); outline-offset:4px; border-radius:4px; }
.account-menu-links { position:absolute; z-index:10; right:0; top:calc(100% + 8px); width:220px; padding:10px; border:1px solid var(--line); border-radius:14px; background:var(--paper); box-shadow:0 12px 32px #203b3314; }
.account-menu-links a,.account-menu-links .text-button { display:block; width:100%; padding:10px 12px; text-align:left; min-height:44px; color:var(--ink); text-decoration:none; font:inherit; border-radius:6px; }
.account-menu-links a:hover,.account-menu-links .text-button:hover { background:var(--mint); }
.account-menu-links form { border-top:1px solid var(--line); margin-top:5px; padding-top:5px; }
.footer-links { flex-wrap:wrap; }
@media(max-width:1200px) {
  .site-header-content { flex-wrap:wrap; gap:14px 24px; }
  .site-header .account-controls { margin-left:auto; }
  .header-search { order:3; width:100%; margin-left:0; }
}
@media(max-width:740px) {
  .site-header { position:relative; z-index:20; }
  .site-header-content { flex-wrap:nowrap; min-height:72px; padding:12px 20px; gap:12px; }
  .site-header .brand { font-size:18px; gap:10px; }
  .site-header .brand-mark { width:34px; height:37px; }
  .desktop-header-controls { display:none; }
  .mobile-menu { display:block; margin-left:auto; }
  .mobile-menu-toggle { display:grid; place-items:center; width:44px; height:44px; border:0; padding:0; border-radius:10px; background:transparent; color:var(--teal); cursor:pointer; }
  .mobile-menu-toggle:hover,.mobile-menu:has(:popover-open)>.mobile-menu-toggle { background:var(--mint); }
  .mobile-menu-toggle:focus-visible { outline:2px solid var(--teal); outline-offset:3px; }
  .mobile-menu .menu-close-icon,.mobile-menu:has(:popover-open) .menu-icon { display:none; }
  .mobile-menu:has(:popover-open) .menu-close-icon { display:block; }
  .mobile-menu-panel:popover-open { display:block; position:absolute; inset:72px 0 auto; width:100%; margin:0; padding:12px 20px 20px; max-height:calc(100dvh - 72px); overflow-y:auto; background:var(--paper); border:0; border-bottom:1px solid var(--line); box-shadow:0 12px 24px #203b3314; }
  .mobile-menu .navigation { display:flex; flex-direction:column; align-items:stretch; gap:2px; margin:0; width:100%; font-size:15px; }
  .mobile-menu .navigation a { display:flex; align-items:center; min-height:44px; padding:10px 12px; border-radius:8px; }
  .mobile-menu .navigation a:hover,.mobile-menu .navigation a[aria-current=page] { background:var(--mint); box-shadow:none; }
  .mobile-menu .header-search { width:100%; min-width:0; margin:16px 0; }
  .mobile-menu .header-search input { font-size:16px; }
  .site-header .mobile-menu .account-controls { display:flex; flex-direction:column; align-items:stretch; gap:12px; margin:0; padding-top:12px; border-top:1px solid var(--line); }
  .mobile-menu .account-menu { font-size:15px; }
  .mobile-menu .account-menu summary { justify-content:space-between; padding:0 12px; }
  .mobile-menu .account-menu-links { position:static; width:100%; margin-top:4px; padding:0; border:0; border-radius:0; box-shadow:none; }
  .mobile-menu .account-menu-links a,.mobile-menu .account-menu-links .text-button { padding-left:24px; }
  .mobile-menu .account-controls>.button { align-self:flex-start; min-height:44px; display:inline-flex; align-items:center; }
}
@media(max-width:360px) {
  .site-header-content { padding-right:16px; padding-left:16px; }
  .site-header .brand { font-size:16px; gap:8px; }
}
/* Keep navigation usable when the browser cannot operate native popovers. */
@supports not selector(:popover-open) {
  @media(max-width:740px) {
    .site-header-content { flex-wrap:wrap; }
    .desktop-header-controls { display:contents; }
    .mobile-menu { display:none; }
    .site-header .navigation { order:3; flex-basis:100%; flex-wrap:wrap; gap:8px 22px; white-space:normal; }
    .site-header .account-controls { margin-left:auto; }
    .site-header .account-controls>.button { min-height:44px; }
    .header-search { order:4; }
  }
}

.session-source { margin-top:24px; }

@media(max-width:740px) { .main:has(.session-source) { padding-top:12px; } }
