/* Logo subset from Google Fonts. License: /licenses/cormorant-garamond-OFL.txt */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/assets/fonts/cormorant-garamond-logo-500.woff2') format('woff2');
  unicode-range: U+20, U+41, U+48-49, U+4B, U+4F, U+52, U+54;
}
/* Shared, centered masthead. The name stays with its monogram, not at the page edge. */
.site-header,
.interior-page .site-header {
  position: absolute; inset: 0 0 auto; z-index: 30;
  display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center; gap: 24px; height: 84px; padding: 0 clamp(20px, 5.5vw, 96px);
  background: #faf9f5; border: 0; border-bottom: 1px solid #001a2f18; box-shadow: none;
}
body:not(.interior-page) .site-header { position: relative; }
.site-header .identity {
  grid-column: 2; grid-row: 1; justify-self: center;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  min-width: 126px; min-height: 64px; margin: 0; padding: 0; border: 0; color: var(--navy);
}
.identity-mark { display: flex; align-items: center; gap: 5px; font: 500 40px/.9 'Cormorant Garamond', Georgia, serif; }
.identity-mark i { display: block; width: 1px; height: 29px; background: #a58a55; transform: rotate(22deg); }
.site-header .identity-name { display: block; margin-top: 6px; font: 500 9.5px/1.2 'Cormorant Garamond', Georgia, serif; letter-spacing: .21em; white-space: nowrap; }
.site-header .identity:focus-visible { outline: 2px solid #a58a55; outline-offset: 2px; }
.desktop-nav { display: none; }
.site-header .menu-button {
  position: fixed; top: 20px; right: clamp(18px, 4vw, 40px); z-index: 32;
  display: flex; width: 44px; height: 44px; gap: 0; padding: 0;
  border: 1px solid #a58a553d; border-radius: 2px; background: #faf9f5f2;
  color: var(--navy); box-shadow: none; backdrop-filter: blur(8px);
}
.site-header .menu-button:hover { transform: none; background: #ece8dd; box-shadow: none; }
.site-header .menu-lines { width: 20px; }
.site-header .menu-label { display: none; }

@media (min-width: 1100px) {
  .site-header .menu-button { display: none; }
  .desktop-nav { display: contents; }
  .desktop-nav-group { --nav-gap: clamp(18px, 2.5vw, 40px); grid-row: 1; display: flex; align-items: center; gap: var(--nav-gap); min-width: 0; }
  .desktop-nav-group--left { grid-column: 1; justify-content: flex-start; }
  .desktop-nav-group--right { grid-column: 3; justify-content: flex-end; }
  .desktop-nav a { position: relative; display: inline-flex; align-items: center; justify-content: center; min-width: 64px; min-height: 62px; padding: 9px 4px; color: var(--navy); white-space: nowrap; }
  .header-nav-text { display: flex; flex-direction: column; align-items: center; gap: 5px; }
  .header-nav-caption { color: #7b7465; font: 400 9px/1.2 Georgia, serif; letter-spacing: .16em; transition: color .2s ease; }
  .header-nav-label { font: 500 15px/1.5 var(--serif); letter-spacing: .065em; transition: color .2s ease; }
  .desktop-nav a + a::before { content: ''; position: absolute; top: 23px; left: calc(var(--nav-gap) / -2); width: 1px; height: 16px; background: #a58a5547; transform: rotate(22deg); }
  .desktop-nav a::after { content: ''; position: absolute; bottom: 4px; left: 50%; width: 24px; height: 1px; background: #a58a55; transform: translateX(-50%) scaleX(0); transition: transform .2s ease; }
  .desktop-nav a:is(:hover, :focus-visible, [aria-current="page"])::after { transform: translateX(-50%) scaleX(1); }
  .desktop-nav a:is(:hover, :focus-visible, [aria-current="page"]) .header-nav-caption { color: #80682e; }
  .desktop-nav a:is(:hover, :focus-visible, [aria-current="page"]) .header-nav-label { color: #80682e; }
  .desktop-nav a:focus-visible { outline: 1px solid #a58a55; outline-offset: 2px; }
  .site-header .desktop-nav .header-contact-link { gap: 13px; padding-inline: 4px 0; border: 0; background: transparent; }
  .desktop-nav .header-contact-link::after { display: none; }
  .header-contact-arrow { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; border: 1px solid #a58a5575; border-radius: 50%; color: #80682e; font: 400 19px/1 var(--sans); transition: color .2s ease, background-color .2s ease, border-color .2s ease; }
  .header-contact-link:is(:hover, :focus-visible, [aria-current="page"]) .header-contact-arrow { border-color: var(--navy); background: var(--navy); color: #f6edd9; }
}
@media (prefers-reduced-motion: reduce) {
  .header-nav-caption, .header-nav-label, .header-contact-arrow, .desktop-nav a::after { transition: none; }
}
@media (max-width: 760px) {
  .site-header, .interior-page .site-header { height: 76px; padding-inline: 16px; }
  body:not(.interior-page) .site-header { position: absolute; background: transparent; border: 0; }
  .site-header .identity { min-height: 60px; }
  .identity-mark { font-size: 36px; }
  .identity-mark i { height: 26px; }
  .site-header .identity-name { margin-top: 5px; font-size: 9px; letter-spacing: .2em; }
  .site-header .menu-button { top: 16px; right: 16px; }
}
