@charset "UTF-8";

/* Supplementary desktop navigation polish; imported after navigation.css. */
@media (min-width: 1201px) {
  .site-header .primary-nav .nav-link,
  .site-header .primary-nav .nav-trigger {
    font-size: 15px;
    font-weight: 700;
    transition: color 160ms ease, background-color 160ms ease;
  }

  .site-header .primary-nav .nav-link::after,
  .site-header .primary-nav .nav-trigger::after {
    height: 2px;
    background: transparent;
    transform: scaleX(.58);
    transform-origin: center;
    transition: background-color 170ms ease, transform 170ms cubic-bezier(.23, 1, .32, 1);
  }

  .site-header .primary-nav .nav-link[aria-current="page"],
  .site-header .primary-nav .nav-link[aria-current="location"],
  .site-header .primary-nav .nav-disclosure.is-current > .nav-trigger,
  .site-header .primary-nav .nav-disclosure[open] > .nav-trigger,
  .site-header .primary-nav .nav-disclosure.is-pointer-open > .nav-trigger {
    color: var(--brass-dark);
    background: rgba(180, 138, 75, .10);
  }

  .site-header .primary-nav .nav-link[aria-current="page"]::after,
  .site-header .primary-nav .nav-link[aria-current="location"]::after,
  .site-header .primary-nav .nav-disclosure.is-current > .nav-trigger::after,
  .site-header .primary-nav .nav-disclosure[open] > .nav-trigger::after,
  .site-header .primary-nav .nav-disclosure.is-pointer-open > .nav-trigger::after {
    background: var(--brass);
    transform: scaleX(1);
  }

  /* Keep the 8px visual gap traversable while the pointer enters the panel. */
  .site-header .primary-nav .nav-panel::before {
    position: absolute;
    right: 0;
    bottom: 100%;
    left: 0;
    display: block;
    height: 10px;
    background: transparent;
    content: "";
    pointer-events: auto;
  }

  /* Closed disclosures remain out of the layout; only pointer opens get an entry transition. */
  .site-header .primary-nav .nav-disclosure:not([open]) > .nav-panel {
    display: none;
  }

  .site-header .primary-nav .nav-disclosure.is-pointer-open > .nav-panel {
    display: block;
    opacity: 0;
    transform: translateY(6px);
    transform-origin: top right;
    transition: opacity 170ms ease, transform 170ms cubic-bezier(.23, 1, .32, 1);
  }

  .site-header .primary-nav .nav-disclosure.is-pointer-open.is-revealed > .nav-panel {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Hover feedback is reserved for a desktop-quality pointing device. */
@media (min-width: 1201px) and (hover: hover) and (pointer: fine) {
  .site-header .primary-nav .nav-link:hover,
  .site-header .primary-nav .nav-trigger:hover {
    color: var(--brass-dark);
    background: rgba(180, 138, 75, .08);
    transform: translateY(-1px);
  }

  .site-header .primary-nav .nav-link:hover::after,
  .site-header .primary-nav .nav-trigger:hover::after {
    background: var(--brass);
    transform: scaleX(1);
  }

  .site-header .primary-nav .nav-card:hover {
    border-color: rgba(180, 138, 75, .65);
    color: var(--charcoal);
    background: rgba(180, 138, 75, .06);
  }
}

/* Touch devices receive deliberate focus and press feedback, never a sticky hover state. */
@media (hover: none), (pointer: coarse) {
  .site-header .primary-nav .nav-link:not([aria-current]):hover,
  .site-header .primary-nav .nav-disclosure:not([open]):not(.is-current):not(.is-pointer-open) > .nav-trigger:hover {
    color: var(--ink);
    background: transparent;
    transform: none;
  }

  .site-header .primary-nav .nav-link:not([aria-current]):hover::after,
  .site-header .primary-nav .nav-disclosure:not([open]):not(.is-current):not(.is-pointer-open) > .nav-trigger:hover::after {
    background: transparent;
  }

  .site-header .primary-nav .nav-link:focus-visible,
  .site-header .primary-nav .nav-link:active,
  .site-header .primary-nav .nav-trigger:focus-visible,
  .site-header .primary-nav .nav-trigger:active {
    color: var(--brass-dark);
    background: rgba(180, 138, 75, .10);
  }

  .site-header .primary-nav .nav-card:focus-visible,
  .site-header .primary-nav .nav-card:active {
    border-color: rgba(180, 138, 75, .65);
    color: var(--charcoal);
    background: rgba(180, 138, 75, .06);
  }

  .site-header .primary-nav .nav-appointment:hover {
    border-color: var(--ink);
    color: var(--paper);
    background: var(--ink);
    transform: none;
  }
}
@media (min-width: 1201px) and (hover: none), (min-width: 1201px) and (pointer: coarse) {
  .site-header .primary-nav .nav-card:hover { border-color: transparent; border-top-color: var(--rule); background: transparent; }
}
@media (max-width: 1200px) and (hover: none), (max-width: 1200px) and (pointer: coarse) {
  .site-header .primary-nav .nav-card:hover { border-color: var(--rule); background: var(--paper); }
}
@media (prefers-reduced-motion: reduce) {
  .site-header .primary-nav .nav-link,
  .site-header .primary-nav .nav-trigger,
  .site-header .primary-nav .nav-link::after,
  .site-header .primary-nav .nav-trigger::after,
  .site-header .primary-nav .nav-panel,
  .site-header .primary-nav .nav-card {
    transition: none;
  }

  .site-header .primary-nav .nav-link:hover,
  .site-header .primary-nav .nav-trigger:hover,
  .site-header .primary-nav .nav-disclosure.is-pointer-open > .nav-panel {
    transform: none;
  }
}

@media (min-width: 1201px) {
  .site-header .primary-nav .nav-disclosure[open]::after {
    content: "";
    position: absolute;
    top: calc(50% + 20px);
    bottom: -9px;
    right: 0;
    width: min(760px, 100%);
    z-index: 1;
    pointer-events: auto;
  }
  .site-header .primary-nav .nav-link,
  .site-header .primary-nav .nav-trigger {
    transition: color 160ms ease, background-color 160ms ease, transform 170ms cubic-bezier(.23, 1, .32, 1);
  }
}
@media (prefers-reduced-motion: reduce) {
  .site-header .primary-nav .nav-link,
  .site-header .primary-nav .nav-trigger { transition: none; }
}
