/**
 * Header and primary navigation styles for HCC Theme (Olivero sub-theme).
 */

/* --------------------------------------------------------------------------
   Desktop header — keep main navigation visible when scrolled
   -------------------------------------------------------------------------- */
@media (min-width: 75rem) {
  /*
   * Olivero switches to position:fixed on scroll, which reflows the header
   * (menu shifts left). Sticky keeps the same in-flow layout as at page top.
   */
  body:not(.is-always-mobile-nav) .site-header__fixable {
    position: sticky;
    top: var(--drupal-displace-offset-top, 0);
    z-index: 102;
  }

  body:not(.is-always-mobile-nav) .site-header__fixable.is-fixed {
    position: sticky;
    inset-block-start: unset;
    max-width: none;
  }

  body:not(.is-always-mobile-nav) .site-header__fixable.is-fixed:not(.is-expanded) .site-header__inner {
    transform: none;
    opacity: 1;
  }

  body:not(.is-always-mobile-nav) .site-header__fixable.is-fixed:not(.is-expanded) {
    pointer-events: auto;
  }
}

/* ============================================================================
   Primary nav: desktop level-1 hover (text color on li hover)
   ============================================================================ */

@media (min-width: 75rem) {
  body:not(.is-always-mobile-nav) .primary-nav__menu--level-1 > .primary-nav__menu-item--level-1:hover > .primary-nav__menu-link--level-1 {
    color: var(--color--primary-50);
  }
}

/* ============================================================================
   Primary nav: level-2 group labels (<nolink> with children)
   Competition type headers (Leagues, Tournaments) use <nolink>; Olivero grays
   them out. Match clickable level-2 links (no chevron — unlike level-1).
   ============================================================================ */

.primary-nav__menu-item--level-2.primary-nav__menu-item--nolink.primary-nav__menu-item--has-children > .primary-nav__menu-link--nolink {
  display: block;
  width: 100%;
  color: var(--color-text-neutral-loud);
  font-weight: normal;
}

/* ============================================================================
   Primary nav: mobile level-2 / level-3 typography
   Olivero sizes level-2 only; level-3 inherits the large level-1 link styles.
   ============================================================================ */

@media (max-width: 74.999rem) {
  .primary-nav__menu--level-2 .primary-nav__menu-link--level-2,
  .primary-nav__menu--level-2 .primary-nav__menu-item--level-2.primary-nav__menu-item--nolink > .primary-nav__menu-link--nolink {
    font-size: 1rem;
    font-weight: bold;
    line-height: var(--sp);
  }

  .primary-nav__menu--level-3 .primary-nav__menu-link--level-3 {
    font-size: 1rem;
    font-weight: bold;
    line-height: var(--sp);
  }
}

@media (min-width: 75rem) {
  body.is-always-mobile-nav .primary-nav__menu--level-2 .primary-nav__menu-link--level-2,
  body.is-always-mobile-nav .primary-nav__menu--level-2 .primary-nav__menu-item--level-2.primary-nav__menu-item--nolink > .primary-nav__menu-link--nolink {
    font-size: 1rem;
    font-weight: bold;
    line-height: var(--sp);
  }

  body.is-always-mobile-nav .primary-nav__menu--level-3 .primary-nav__menu-link--level-3 {
    font-size: 1rem;
    font-weight: bold;
    line-height: var(--sp);
  }
}

/* ============================================================================
   Primary nav: desktop flyout density (level-2 panel)
   Tighter spacing, separators between level-2 rows, level-2/3 link styling.
   ============================================================================ */

@media (min-width: 75rem) {
  body:not(.is-always-mobile-nav) .primary-nav__menu--level-2 {
    width: 18.75rem;
    padding: 0;
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu--level-2 > .primary-nav__menu-item--level-2 {
    margin-block-end: 0;
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu--level-2 > .primary-nav__menu-item--level-2:not(:last-child) {
    border-block-end: 1px solid var(--color--primary-50);
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu--level-2 .primary-nav__menu-link--level-2,
  body:not(.is-always-mobile-nav) .primary-nav__menu--level-2 .primary-nav__menu-item--level-2.primary-nav__menu-item--nolink > .primary-nav__menu-link--nolink {
    font-size: 1rem;
    font-weight: bold;
    line-height: var(--sp1-5);
    padding-inline: var(--sp1-5);
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu--level-2 .primary-nav__menu-link--level-3 {
    font-size: 1rem;
    font-weight: bold;
    line-height: var(--sp1-5);
    padding-inline: var(--sp1-5);
    padding-inline-start: calc(var(--sp1-5) + var(--sp0-5));
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu--level-2 .primary-nav__menu-link--level-2 .primary-nav__menu-link-inner,
  body:not(.is-always-mobile-nav) .primary-nav__menu--level-2 .primary-nav__menu-link--level-3 .primary-nav__menu-link-inner {
    padding-block: var(--sp0-75);
    padding-inline: 0;
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu--level-2 .primary-nav__menu-item--level-2.primary-nav__menu-item--nolink > .primary-nav__menu-link--nolink {
    padding-block: var(--sp0-75);
    padding-inline: var(--sp1-5);
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu--level-3 {
    margin-block: 0;
    padding: 0;
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu--level-3 .primary-nav__menu-item {
    margin-block-end: 0;
  }

  /* Hoverable list items: background on li, text color on link. */
  body:not(.is-always-mobile-nav) .primary-nav__menu--level-2 > .primary-nav__menu-item--level-2:not(.primary-nav__menu-item--has-children),
  body:not(.is-always-mobile-nav) .primary-nav__menu--level-3 > .primary-nav__menu-item--level-3 {
    transition: background-color 0.15s ease;
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu--level-2 > .primary-nav__menu-item--level-2:not(.primary-nav__menu-item--has-children) > .primary-nav__menu-link--link,
  body:not(.is-always-mobile-nav) .primary-nav__menu--level-3 > .primary-nav__menu-item--level-3 > .primary-nav__menu-link--link {
    transition: color 0.15s ease;
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu--level-2 > .primary-nav__menu-item--level-2:not(.primary-nav__menu-item--has-children) > .primary-nav__menu-link--link.is-active,
  body:not(.is-always-mobile-nav) .primary-nav__menu--level-3 > .primary-nav__menu-item--level-3 > .primary-nav__menu-link--link.is-active {
    color: var(--color--primary-50);
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu--level-2 > .primary-nav__menu-item--level-2:not(.primary-nav__menu-item--has-children):hover,
  body:not(.is-always-mobile-nav) .primary-nav__menu--level-2 > .primary-nav__menu-item--level-2:not(.primary-nav__menu-item--has-children):focus-within,
  body:not(.is-always-mobile-nav) .primary-nav__menu--level-3 > .primary-nav__menu-item--level-3:hover,
  body:not(.is-always-mobile-nav) .primary-nav__menu--level-3 > .primary-nav__menu-item--level-3:focus-within {
    background-color: var(--color--primary-50);
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu--level-2 > .primary-nav__menu-item--level-2:not(.primary-nav__menu-item--has-children):hover > .primary-nav__menu-link--link,
  body:not(.is-always-mobile-nav) .primary-nav__menu--level-2 > .primary-nav__menu-item--level-2:not(.primary-nav__menu-item--has-children):focus-within > .primary-nav__menu-link--link,
  body:not(.is-always-mobile-nav) .primary-nav__menu--level-3 > .primary-nav__menu-item--level-3:hover > .primary-nav__menu-link--link,
  body:not(.is-always-mobile-nav) .primary-nav__menu--level-3 > .primary-nav__menu-item--level-3:focus-within > .primary-nav__menu-link--link {
    color: var(--color--white);
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu--level-2 > .primary-nav__menu-item--level-2:not(.primary-nav__menu-item--has-children):hover > .primary-nav__menu-link--link .primary-nav__menu-link-inner,
  body:not(.is-always-mobile-nav) .primary-nav__menu--level-2 > .primary-nav__menu-item--level-2:not(.primary-nav__menu-item--has-children):focus-within > .primary-nav__menu-link--link .primary-nav__menu-link-inner,
  body:not(.is-always-mobile-nav) .primary-nav__menu--level-3 > .primary-nav__menu-item--level-3:hover > .primary-nav__menu-link--link .primary-nav__menu-link-inner,
  body:not(.is-always-mobile-nav) .primary-nav__menu--level-3 > .primary-nav__menu-item--level-3:focus-within > .primary-nav__menu-link--link .primary-nav__menu-link-inner {
    color: inherit;
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu--level-2 > .primary-nav__menu-item--level-2:not(.primary-nav__menu-item--has-children):hover > .primary-nav__menu-link--link .primary-nav__menu-link-inner::after,
  body:not(.is-always-mobile-nav) .primary-nav__menu--level-2 > .primary-nav__menu-item--level-2:not(.primary-nav__menu-item--has-children):focus-within > .primary-nav__menu-link--link .primary-nav__menu-link-inner::after,
  body:not(.is-always-mobile-nav) .primary-nav__menu--level-3 > .primary-nav__menu-item--level-3:hover > .primary-nav__menu-link--link .primary-nav__menu-link-inner::after,
  body:not(.is-always-mobile-nav) .primary-nav__menu--level-3 > .primary-nav__menu-item--level-3:focus-within > .primary-nav__menu-link--link .primary-nav__menu-link-inner::after {
    transform: scaleX(0);
  }
}

/* ============================================================================
   Commerce cart: secondary menu on desktop, mobile_tools beside hamburger
   Olivero mobile nav breakpoint: 1200px (--nav)
   ============================================================================ */

.mobile-buttons {
  display: flex;
  align-items: center;
  gap: var(--sp1);
}

.region-mobile-tools {
  display: flex;
  align-items: center;
}

.cart-block--summary {
  display: flex;
  justify-content: center;
  align-items: center;
}

.cart-block--summary a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  color: inherit;
  border: 0;
  box-shadow: none;
  background: transparent;
}

.cart-block--summary a:hover,
.cart-block--summary a:focus,
.cart-block--summary a:focus-visible {
  text-decoration: none;
  outline: none;
}

.cart-block--summary a:focus-visible .cart-block--summary__icon-wrap {
  outline: 2px solid var(--color--primary-50);
  outline-offset: 2px;
}

.cart-block--summary__icon-wrap {
  position: relative;
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: var(--sp2);
  height: var(--sp2);
  padding: 0;
  background-color: var(--color--primary-50);
  border: 0;
  border-radius: 999px;
  box-shadow: none;
}

.cart-block--summary__icon {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
}

.cart-block--summary__icon img {
  display: block;
  width: auto;
  height: 1.5rem;
  margin: 0;
}

.region--secondary-menu .cart--cart-block,
.region--secondary-menu #block-hcc-theme-cart,
.region--secondary-menu #block-hcc-theme-cart .block,
.region--secondary-menu #block-hcc-theme-cart .cart--cart-block {
  border: 0;
  outline: 0;
  box-shadow: none;
  padding: 0;
  margin: 0;
  background: transparent;
}

@media (min-width: 75rem) {
  body:not(.is-always-mobile-nav) .region--secondary-menu #block-hcc-theme-cart.secondary-nav {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding-inline-start: var(--sp2);
    /* Balance Olivero's left gutter + the margin before the next secondary-nav divider. */
    padding-inline-end: calc(var(--sp2) - var(--sp));
  }
}

.region--secondary-menu #block-hcc-theme-cart .cart-block--summary a:hover,
.region--secondary-menu #block-hcc-theme-cart .cart-block--summary a:focus,
.region--secondary-menu #block-hcc-theme-cart .cart-block--summary a:focus-visible {
  outline: none;
}

.cart-block--summary a:hover .cart-block--summary__icon-wrap,
.cart-block--summary a:focus .cart-block--summary__icon-wrap {
  background-color: var(--color--primary-40);
}

.cart-block--summary__badge {
  position: absolute;
  z-index: 1;
  top: 0;
  right: 0;
  min-width: 1.125rem;
  height: 1.125rem;
  padding: 0 0.25rem;
  font-size: 0.6875rem;
  font-weight: 700;
  line-height: 1.125rem;
  text-align: center;
  color: var(--color--white);
  background-color: #e53935;
  border-radius: 999px;
  transform: translate(25%, -25%);
}

/* Hide drawer cart on mobile; mobile_tools copy stays visible in the top bar. */
@media (max-width: 1199px) {
  #block-hcc-theme-cart {
    display: none;
  }

  #block-hcc-theme-cart-mobile .cart-block--summary a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.75rem;
    min-height: 2.75rem;
  }
}
