/* Accessibility link-state overrides to improve hover/focus visibility sitewide. */

a,
.link {
  text-decoration-color: transparent;
  text-decoration-thickness: 0.14em;
  text-underline-offset: 0.14em;
  transition: color 200ms, text-decoration-color 200ms;
}

a:hover,
a:focus-visible,
.link:hover,
.link:focus-visible {
  text-decoration: underline;
  text-decoration-color: currentColor;
}

a:focus-visible,
.link:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

.site-header .nav-aux__container a {
  text-decoration-color: transparent;
  text-decoration-thickness: 2px;
  text-underline-offset: 0.15em;
  transition: color 0.3s ease, text-decoration-color 0.3s ease;
}

.site-header .nav-aux__container a:hover,
.site-header .nav-aux__container a:focus-visible {
  text-decoration: underline;
  text-decoration-color: currentColor;
}

.nav-main .menu-vdi > li > a:hover,
.nav-main .menu-vdi > li > a:focus-visible,
.nav-main .menu-vdi .menu-vdi__submenu .menu-vdi__item:hover,
.nav-main .menu-vdi .menu-vdi__submenu .menu-vdi__item:focus-visible,
.nav-main .menu-vdi .menu-vdi__submenu a:focus-visible {
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 0.15em;
}

.nav-main .menu-vdi > li > .menu-vdi__toggle:hover,
.nav-main .menu-vdi > li > .menu-vdi__toggle:focus-visible,
.nav-main .menu-vdi > li > .menu-vdi__toggle[aria-expanded="true"] {
  text-decoration: none;
}

.nav-main .menu-vdi .menu-vdi__submenu a:focus-visible {
  box-shadow:
    inset 0 0 0 3px #FDFBF7,
    inset 0 0 0 6px #1F2937;
  outline: 0;
}

.site-footer .site-footer__contact-item a:hover,
.site-footer .site-footer__contact-item a:focus-visible,
.site-footer .site-footer__nav-link:hover,
.site-footer .site-footer__nav-link:focus-visible {
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 0.15em;
}

.site-footer .site-footer__social-link:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

.entry-content .image-open-link,
.entry-content .image-open-link:hover,
.entry-content .image-open-link:focus-visible {
  text-decoration: none;
}

.entry-content .image-open-link .lni {
  text-decoration: none;
}

.entry-content .image-open-link > span:not(.lni) {
  text-decoration-color: transparent;
  text-decoration-line: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 0.22em;
}

.entry-content .image-open-link:hover > span:not(.lni),
.entry-content .image-open-link:focus-visible > span:not(.lni) {
  text-decoration-color: currentColor;
}

/* Keep seasonal child card text readable on hover/focus. */
.season-child-card,
.season-child-card:visited,
.season-child-card:hover,
.season-child-card:focus-visible,
.season-child-card:hover .season-child-card__eyebrow,
.season-child-card:hover .season-child-card__title,
.season-child-card:hover .season-child-card__detail,
.season-child-card:focus-visible .season-child-card__eyebrow,
.season-child-card:focus-visible .season-child-card__title,
.season-child-card:focus-visible .season-child-card__detail {
  color: var(--season-card-fg, #FDFBF7);
}

/* Align inner-page hero breadcrumbs and headings with page content container. */
body:not(.home):not(.front-page) .page-hero {
  justify-content: flex-start;
  padding-left: 0;
  padding-right: 0;
}

body:not(.home):not(.front-page) .page-hero > .container {
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  padding-inline: clamp(1.5rem, 5vw, 3rem);
}

body:not(.home):not(.front-page) .page-hero .page-hero__content {
  margin-inline: 0;
  max-width: none;
  width: 100%;
}

body:not(.home):not(.front-page) .page-hero #breadcrumbs,
body:not(.home):not(.front-page) .page-hero .content-wrapper,
body:not(.home):not(.front-page) .page-hero .content-wrapper h1,
body:not(.home):not(.front-page) .page-hero .content-wrapper p {
  margin-inline: 0;
  max-width: none;
  text-align: left;
}

/* Prevent desktop header/nav wrapping and broken rows at mid-large widths. */
@media screen and (min-width: 62.5rem) {
  .site-header .header__nav-main {
    align-items: center;
    column-gap: clamp(1rem, 2vw, 2.25rem);
    grid-template-columns: minmax(7.5rem, max-content) minmax(0, 1fr);
  }

  .site-header .nav-main {
    min-width: 0;
  }

  .site-header .nav-main .menu-vdi {
    flex-wrap: nowrap;
    gap: clamp(1.5rem, 3.1vw, 3.1rem);
    justify-content: flex-end;
    width: 100%;
  }

  .site-header .nav-main .menu-vdi > li {
    flex: 0 0 auto;
  }

  .site-header .nav-main .menu-vdi > li > a,
  .site-header .nav-main .menu-vdi > li > .menu-vdi__toggle {
    font-size: clamp(1rem, 1.05vw, 1.25rem);
    margin-inline: 0;
    white-space: nowrap;
  }

  .site-header .nav-main .menu-item--search {
    display: none;
  }
}

/* Mid-size desktop tightening to avoid header breakage around 1000-1440px widths. */
@media screen and (min-width: 62.5rem) and (max-width: 90rem) {
  .site-header .header__nav-main {
    column-gap: clamp(0.75rem, 1.2vw, 1.25rem);
    grid-template-columns: minmax(6.75rem, max-content) minmax(0, 1fr);
  }

  .site-header .site-header__logo {
    min-width: 0;
    width: clamp(7rem, 9vw, 9.25rem);
  }

  .site-header .nav-main .menu-vdi {
    gap: clamp(0.25rem, 0.6vw, 0.75rem);
  }

  .site-header .nav-main .menu-vdi > li > a,
  .site-header .nav-main .menu-vdi > li > .menu-vdi__toggle {
    font-size: clamp(0.92rem, 0.9vw, 1.1rem);
    letter-spacing: -0.01em;
    padding-inline: clamp(0.2rem, 0.35vw, 0.45rem);
  }
}

@media screen and (max-width: 62.5rem) {
  .site-header .nav-main .menu-item--search {
    display: list-item;
  }

  .site-header .nav-main .menu-vdi > li > a,
  .site-header .nav-main .menu-vdi > li > a:hover,
  .site-header .nav-main .menu-vdi > li > a:focus-visible,
  .site-header .nav-main .menu-vdi > li > a[aria-current="true"],
  .site-header .nav-main .menu-vdi > li > .menu-vdi__toggle,
  .site-header .nav-main .menu-vdi > li > .menu-vdi__toggle:hover,
  .site-header .nav-main .menu-vdi > li > .menu-vdi__toggle:focus-visible,
  .site-header .nav-main .menu-vdi > li > .menu-vdi__toggle[aria-expanded="true"],
  .site-header .nav-main .menu-vdi > li > .menu-vdi__toggle[aria-expanded="true"]:hover,
  .site-header .nav-main .menu-vdi > li > .menu-vdi__toggle[aria-expanded="true"]:focus-visible {
    background: transparent;
    color: var(--Primary-White, #FDFBF7);
    text-decoration-color: currentColor;
  }

  .site-header .nav-main .menu-vdi > li > .menu-vdi__toggle svg,
  .site-header .nav-main .menu-vdi > li > .menu-vdi__toggle path,
  .site-header .nav-main .menu-vdi > li > .menu-vdi__toggle[aria-expanded="true"] svg,
  .site-header .nav-main .menu-vdi > li > .menu-vdi__toggle[aria-expanded="true"] path {
    color: var(--Primary-White, #FDFBF7);
    stroke: var(--Primary-White, #FDFBF7);
  }
}

/* Force seasonal day cards to stay in the intended two-column mobile layout. */
@media screen and (max-width: 47.999rem) {
  .season-child-cards .season-child-cards__inner,
  .season-child-cards .season-child-cards__inner--many,
  .season-child-cards .season-child-cards__inner--five-plus {
    box-sizing: border-box !important;
    display: grid !important;
    gap: 0.875rem !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    margin-inline: auto !important;
    max-width: min(calc(100vw - 3rem), 22rem) !important;
    padding-inline: 0 !important;
    width: 100% !important;
  }

  .season-child-cards .season-child-card {
    aspect-ratio: 1 / 1 !important;
    border-radius: 0.5rem !important;
    max-width: none !important;
    min-height: 0 !important;
    padding: clamp(0.875rem, 4vw, 1.15rem) !important;
    width: auto !important;
  }

  .season-child-cards .season-child-cards__inner[data-child-count="3"] .season-child-card:last-child,
  .season-child-cards .season-child-cards__inner[data-child-count="5"] .season-child-card:last-child {
    grid-column: 1 / -1 !important;
    justify-self: center !important;
    width: calc((100% - 0.875rem) / 2) !important;
  }
}
