/* Shared navigation and content interactions across all page stylesheets. */
.header-desktop {
  --nav-color: #fcf7eb;
  --nav-hover: #fff;
}
.header-desktop.scrolled,
.header-desktop--mega-open {
  --nav-color: #2c2a2a;
  --nav-hover: #aa2b1d;
  background: #f3eee3;
  box-shadow: 0 1px 0 rgba(44, 42, 42, 0.12);
}
.header-desktop.scrolled .header-desktop__logo--light { opacity: 0; }
.header-desktop.scrolled .header-desktop__logo--dark { opacity: 1; }
.header-desktop.scrolled .header-desktop__chevron { filter: brightness(0) saturate(100%); }
.header-desktop .header-desktop__link-text,
.header-desktop .nav-link { color: var(--nav-color); }
.header-desktop__trigger,
.header-desktop .nav-link { min-height: 44px; }
.header-desktop .nav-link { display: inline-flex; align-items: center; }
.header-desktop__trigger:is(:hover, :focus-visible) .header-desktop__link-text,
.header-desktop__item.is-active .header-desktop__link-text,
.header-desktop .nav-link:is(:hover, :focus-visible) {
  color: var(--nav-hover);
  text-decoration: underline;
  text-underline-offset: 0.3em;
  text-decoration-thickness: 1px;
}
.header-desktop__language-switch {
  position: relative;
  top: auto;
  right: auto;
  z-index: 6;
  display: block;
  flex: 0 0 auto;
  color: var(--nav-color);
}
.header-desktop__language-switch .language-toggle { min-height: 44px; }
@media (min-width: 1201px) and (max-width: 1520px) {
  .header-desktop__language-switch .language-toggle { font-size: 1rem; }
}
.language-toggle {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  width: fit-content;
  min-height: 36px;
  cursor: pointer;
  list-style: none;
  color: inherit;
  font-family: "Roboto", sans-serif;
  font-size: 1.2rem;
  font-weight: 200;
}
.language-toggle::-webkit-details-marker { display: none; }
.language-chevron { flex-shrink: 0; transition: transform 180ms ease; }
details[open] > .language-toggle .language-chevron { transform: rotate(180deg); }
.language-toggle:is(:hover, :focus-visible) span {
  text-decoration: underline;
  text-underline-offset: 0.25em;
}
.language-options {
  position: absolute;
  top: 100%;
  right: 0;
  min-width: 112px;
  padding: 0.4rem;
  border: 1px solid rgba(44, 42, 42, 0.12);
  border-radius: 0.5rem;
  background: #f3eee3;
  box-shadow: 0 10px 25px rgba(44, 42, 42, 0.15);
}
details:not([open]) > .language-options { display: none; }
.language-options a,
.header-desktop--mega-open .language-options a {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: 0.5rem 0.8rem;
  border-radius: 0.25rem;
  font-size: 1rem;
  color: #2c2a2a;
  text-decoration: none;
  transition: background-color 160ms ease, color 160ms ease;
}
.language-options a:is(:hover, :focus-visible) { color: #aa2b1d; background: #e7dece; }
.language-options a[aria-current="page"] {
  text-decoration: underline;
  text-underline-offset: 0.25em;
}
.menu-mobile__nav > .menu-mobile__language-switch {
  position: relative;
  display: block;
  color: #fcf7eb;
}
.menu-mobile__language-switch .language-options {
  position: static;
  width: 160px;
  margin-top: 0.4rem;
}
.header-desktop__mega { transition: opacity 180ms ease; }
.header-desktop__mega-panel {
  max-height: 100vh;
  max-height: 100svh;
  overflow-y: auto;
  overscroll-behavior: contain;
  transition: clip-path 250ms ease;
}
.header-desktop__mega.is-open .header-desktop__mega-panel { clip-path: inset(0); }
.header-desktop__mega-backdrop { transition: opacity 180ms ease; }
.header-desktop__mega.is-open .header-desktop__mega-backdrop { opacity: 1; pointer-events: auto; }
.header-desktop__mega-inner { padding-top: var(--desktop-nav-height, 160px); }
.header-desktop__mega-content.is-active .header-desktop__mega-layout { animation: nav-content-in 220ms ease both; }
.header-desktop__mega-label { font-family: "PPEditorialOld", serif; color: #70665c; }
.header-desktop__mega-linkline {
  width: 100%;
  overflow: visible;
  margin-bottom: 0.2rem;
}
.header-desktop__mega-linkline a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 44px;
  padding: 0.15rem 0.6rem;
  margin-left: -0.6rem;
  border-radius: 0.3rem;
  transition: color 180ms ease, background-color 180ms ease;
}
.header-desktop__mega-linkline a::after {
  content: "\2197";
  flex-shrink: 0;
  font-family: "Roboto", sans-serif;
  font-size: 1.4rem;
  opacity: 0;
  transform: translateX(-5px);
  transition: opacity 180ms ease, transform 180ms ease;
}
.header-desktop__mega-linkline a:is(:hover, :focus-visible),
.header-desktop__mega-linkline a.is-previewed { color: #aa2b1d; background-color: #e9e0d2; }
.header-desktop__mega-linkline a:is(:hover, :focus-visible)::after,
.header-desktop__mega-linkline a.is-previewed::after { opacity: 1; transform: translateX(0); }
.header-desktop__mega-card:is(:hover, :focus-visible) .header-desktop__mega-card-title {
  color: #aa2b1d;
  text-decoration: underline;
  text-underline-offset: 0.15em;
  text-decoration-thickness: 1px;
}
.header-desktop__mega-card:focus-visible .header-desktop__mega-card-image img { transform: scale(1.03); }
.header-desktop__mega-card-text { min-height: 4.5em; }
.header-desktop :is(a, button, summary):focus-visible,
.menu-mobile :is(a, button, summary):focus-visible {
  outline: 2px solid #aa2b1d;
  outline-offset: 4px;
}
main :is(p, li, td, dd) a:not([class]),
.service-content a:not([class]) {
  color: #aa2b1d;
  text-decoration: underline;
  text-underline-offset: 0.2em;
  text-decoration-thickness: 1px;
  transition: color 160ms ease, background-color 160ms ease;
}
main :is(p, li, td, dd) a:not([class]):is(:hover, :focus-visible),
.service-content a:not([class]):is(:hover, :focus-visible) {
  color: #702014;
  background: rgba(170, 43, 29, 0.08);
  text-decoration-thickness: 2px;
}
main a:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
main [id] { scroll-margin-top: 11rem; }
.hero { overflow: hidden; background-color: #61523e; }
.hero:not(.hero-home) .hero-gradient {
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0.15) 35%, rgba(0, 0, 0, 0.6));
}
@keyframes nav-content-in {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .header-desktop *, .header-desktop *::after {
    animation: none !important;
    transition: none !important;
  }
}
