/**
 * 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,
  body:not(.is-always-mobile-nav) .primary-nav__menu--level-1 > .primary-nav__menu-item--level-1:hover > .primary-nav__menu-link--nolink,
  body:not(.is-always-mobile-nav) .my-account-nav.is-open .my-account-nav__trigger {
    color: var(--color--primary-50);
  }
}

/* ============================================================================
   Primary nav: level-1 group labels (<nolink> with children)
   Olivero grays them out. Match clickable level-1 links.
   ============================================================================ */

.primary-nav__menu--level-1 > .primary-nav__menu-item--level-1.primary-nav__menu-item--nolink > .primary-nav__menu-link--nolink {
  color: var(--color-text-neutral-loud);
  font-weight: bold;
}

/* ============================================================================
   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);
  }

  /* Tighter gap between the teal bar and submenu text (Olivero default: sp2-5 / sp3). */
  .primary-nav__menu--level-2 {
    padding-inline-start: var(--sp1);
  }

  @media (min-width: 43.75rem) {
    .primary-nav__menu--level-2 {
      padding-inline-start: var(--sp1);
    }
  }
}

@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);
  }

  body.is-always-mobile-nav .primary-nav__menu--level-2 {
    padding-inline-start: var(--sp1);
  }
}

/* ============================================================================
   Primary nav: desktop level-1 typography (match My account / secondary nav)
   ============================================================================ */

@media (min-width: 75rem) {
  body:not(.is-always-mobile-nav) .primary-nav__menu--level-1 {
    margin-inline-end: var(--sp2);
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu--level-1 .primary-nav__menu-link--level-1,
  body:not(.is-always-mobile-nav) .primary-nav__menu--level-1 .primary-nav__menu-item--level-1.primary-nav__menu-item--nolink > .primary-nav__menu-link--nolink,
  body:not(.is-always-mobile-nav) .my-account-nav__trigger.primary-nav__menu-link--level-1,
  body:not(.is-always-mobile-nav) .my-account-nav__trigger .primary-nav__menu-link-inner--level-1 {
    font-size: var(--font-size-s);
    font-weight: 600;
    line-height: var(--sp1-5);
    color: var(--color-text-neutral-loud);
  }
}

/* ============================================================================
   Desktop dropdown menus (shared: main nav flyout + My account)
   ============================================================================ */

@media (min-width: 75rem) {
  body:not(.is-always-mobile-nav) .primary-nav__menu--level-2,
  body:not(.is-always-mobile-nav) .my-account-nav__panel {
    padding: 0;
    color: var(--color--gray-20);
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu--level-2 {
    width: 18.75rem;
  }

  body:not(.is-always-mobile-nav) .my-account-nav__panel {
    width: 18.75rem;
  }

  /* My account flyout pointer: snap in (no Olivero 0.2s transition). */
  html.js body:not(.is-always-mobile-nav) .my-account-nav__header > .primary-nav__menu-🥕 {
    transition: none;
  }

  html.js body:not(.is-always-mobile-nav) .my-account-nav.is-open > .my-account-nav__header > .primary-nav__menu-🥕 {
    visibility: visible;
    transform: translate(-50%, 0);
    opacity: 1;
  }

  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--gray-90);
  }

  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-link--level-3,
  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,
  body:not(.is-always-mobile-nav) .my-account-nav__menu-link {
    font-size: var(--font-size-s);
    font-weight: 600;
    line-height: var(--sp1-5);
    padding-inline: var(--sp1);
    color: inherit;
  }

  body:not(.is-always-mobile-nav) .my-account-nav__menu-link {
    padding-block: var(--sp0-75);
  }

  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);
    font-weight: 600;
  }

  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;
  }

  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 {
    display: block;
  }

  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: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) > .primary-nav__menu-link--link:focus,
  body:not(.is-always-mobile-nav) .primary-nav__menu--level-3 > .primary-nav__menu-item--level-3 > .primary-nav__menu-link--link:hover,
  body:not(.is-always-mobile-nav) .primary-nav__menu--level-3 > .primary-nav__menu-item--level-3 > .primary-nav__menu-link--link:focus,
  body:not(.is-always-mobile-nav) .my-account-nav__menu-link:hover,
  body:not(.is-always-mobile-nav) .my-account-nav__menu-link:focus {
    color: var(--color--primary-50);
    background-color: var(--color--gray-100);
  }

  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,
  body:not(.is-always-mobile-nav) .my-account-nav__menu-link.is-active {
    color: var(--color--primary-50);
  }

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

  body:not(.is-always-mobile-nav) .my-account-nav__divider {
    margin: 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%);
}

/* Mobile: my account continues the primary nav list in the drawer. */
@media (max-width: 74.999rem) {
  .header-nav .region--secondary-menu {
    flex: 0 0 100%;
    width: 100%;
    flex-wrap: wrap;
    margin-block-start: var(--sp0-5);
    margin-block-end: 0;
  }
}

@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;
  }
}
