/* Shared navigation for the homepage and independent offer pages. */
:root { --header-height: 5.25rem; }
html { scroll-padding-top: calc(var(--measured-header-height, var(--header-height)) + 1rem); }
[id], a, button, input, textarea, summary { scroll-margin-top: 1rem; }
.site-header { position: sticky; top: 0; z-index: 20; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 2rem; min-height: var(--header-height); padding: .75rem clamp(1.25rem, 4vw, 5rem); background: #183634; color: white; border-bottom: 1px solid rgb(255 255 255 / 16%); }
.site-header .brand { display: block; width: 9rem; }
.site-header .brand img { display: block; width: 100%; height: auto; mix-blend-mode: screen; }
.site-header .desktop-nav { justify-self: center; }
.site-header nav ul { list-style: none; padding: 0; margin: 0; }
.site-header .desktop-nav ul { display: flex; align-items: center; gap: clamp(1.25rem, 2vw, 2rem); }
.site-header .desktop-nav a, .site-header .header-cta { white-space: nowrap; }
.site-header a[aria-current="page"] { text-decoration: underline; text-underline-offset: .4em; text-decoration-thickness: 2px; }
.site-header a { color: inherit; }
.site-header .desktop-nav a, .site-header .header-cta { display: inline-flex; align-items: center; min-height: 2.75rem; padding: .5rem 0; font-size: 1.0625rem; font-weight: 500; line-height: 1.4; letter-spacing: .01em; opacity: 1; }
.site-header .header-cta { justify-self: end; border-bottom: 1px solid rgb(255 255 255 / 60%); }
.site-header a:hover { text-decoration: underline; text-underline-offset: .3em; }
.site-header a:focus-visible, .site-header summary:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.site-header .mobile-menu { display: none; }
.skip-link { position: fixed; z-index: 40; left: 1rem; top: -10rem; padding: .75rem 1rem; background: #f6f5f0; color: #183634; font: 1rem/1.5 Arial, sans-serif; text-decoration: underline; }
.skip-link:focus { top: .5rem; outline: 2px solid #183634; outline-offset: 2px; }
@media (max-width: 75rem) {
  :root { --header-height: 4.5rem; }
  .site-header { grid-template-columns: 1fr auto; padding-block: .5rem; gap: 1rem; }
  .site-header .brand { width: 8.4rem; }
  .site-header .desktop-nav, .site-header .header-cta { display: none; }
  .site-header .mobile-menu { display: block; justify-self: end; }
  .mobile-menu summary { display: flex; align-items: center; gap: .65rem; min-height: 2.75rem; padding: .5rem .25rem; font: 500 1rem/1.4 Arial, sans-serif; cursor: pointer; list-style: none; }
  .mobile-menu summary::-webkit-details-marker { display: none; }
  .menu-icon { width: 1.4rem; height: 1.4rem; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; }
  .menu-close, .mobile-menu[open] .menu-lines { display: none; }
  .mobile-menu[open] .menu-close { display: block; }
  .site-header .mobile-nav { position: absolute; top: 100%; left: 0; right: 0; display: flex; flex-direction: column; gap: 0; max-height: calc(100vh - var(--menu-top, var(--header-height)) - 1rem); max-height: calc(100svh - var(--menu-top, var(--header-height)) - 1rem); overflow-y: auto; overscroll-behavior: contain; padding: .5rem clamp(1.25rem, 4vw, 5rem) 1.25rem; background: #183634; border-bottom: 1px solid rgb(255 255 255 / 30%); }
  .site-header .mobile-nav a { display: flex; align-items: center; min-height: 3rem; padding: .75rem .25rem; font-size: 1.0625rem; font-weight: 400; line-height: 1.5; opacity: 1; border-bottom: 1px solid rgb(255 255 255 / 16%); }
  .site-header .mobile-nav .mobile-contact { margin-top: .75rem; padding: .75rem 1rem; background: #f6f5f0; color: #183634; justify-content: center; border: 0; }
}
.site-footer { display:flex; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; gap:1rem 3rem; }
.site-footer .footer-brand { display:flex; flex-direction:column; gap:.25rem; flex-shrink:0; }
.site-footer nav { display:flex; flex-wrap:wrap; gap:.25rem 1.5rem; max-width:58rem; }
.site-footer nav a { display:inline-flex; align-items:center; min-height:2.75rem; line-height:1.5; padding:.25rem 0; }
.site-footer a:hover { text-decoration:underline; text-underline-offset:.25em; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto !important; } }
