/* ========================================
   CLASH OF THE CLEATS 2026
   Navy / Charcoal / Gray / White
======================================== */


/* ========================================
   BASE
======================================== */

:root {
    --navy: #101827;
    --navy-light: #1d2a3d;
    --navy-soft: #2b394d;
  
    --black: #090a0c;
    --charcoal: #202328;
  
    --gray: #6f747c;
    --medium-gray: #a9adb3;
    --light-gray: #e5e7e9;
  
    --off-white: #f5f6f7;
    --white: #ffffff;
  
    --heading: "Oswald", sans-serif;
    --body: "Inter", sans-serif;
  
    --radius: 14px;
    --max-width: 1180px;
  }
  
  
  * {
    box-sizing: border-box;
  }
  
  
  html {
    scroll-behavior: smooth;
    scroll-padding-top: 115px;
  }
  
  
  body {
    margin: 0;
    font-family: var(--body);
    color: var(--black);
    background: var(--white);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
  }
  
  
  img {
    display: block;
    max-width: 100%;
  }
  
  
  a {
    color: inherit;
  }
  
  
  button {
    font: inherit;
  }
  
  
  .container {
    width: min(92%, var(--max-width));
    margin-inline: auto;
  }
  
  
  
  /* ========================================
     ANNOUNCEMENT BAR
  ======================================== */
  
  .announcement {
    background: var(--navy);
    color: var(--white);
    font-size: 0.85rem;
  }
  
  
  .announcement .container {
    min-height: 40px;
  
    display: flex;
    align-items: center;
    justify-content: center;
  
    gap: 18px;
  }
  
  
  .announcement strong {
    letter-spacing: 0.4px;
  }
  
  
  .announcement a {
    font-weight: 700;
    color: var(--white);
    text-decoration: underline;
    text-underline-offset: 3px;
  }
  
  
  .announcement a:hover {
    opacity: 0.8;
  }
  
  
  
  /* ========================================
     HEADER
  ======================================== */
  
  .site-header {
    position: sticky;
    top: 0;
    z-index: 100;
  
    background: rgba(255, 255, 255, 0.97);
  
    border-bottom: 1px solid var(--light-gray);
  
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
  }
  
  
  .header-inner {
    min-height: 76px;
  
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  
  
  .brand {
    display: flex;
    flex-direction: column;
  
    text-decoration: none;
    line-height: 1;
  }
  
  
  .brand-small {
    font-family: var(--heading);
  
    font-size: 0.7rem;
    font-weight: 600;
  
    letter-spacing: 3px;
  
    color: var(--gray);
  }
  
  
  .brand-main {
    margin-top: 5px;
  
    font-family: var(--heading);
  
    font-size: 1.25rem;
    font-weight: 700;
  
    color: var(--navy);
  }
  
  
  .main-nav {
    display: flex;
    align-items: center;
  
    gap: 25px;
  }
  
  
  .main-nav a {
    position: relative;
  
    font-size: 0.88rem;
    font-weight: 700;
  
    color: var(--charcoal);
  
    text-decoration: none;
  
    transition:
      color 0.2s ease,
      opacity 0.2s ease;
  }
  
  
  .main-nav a:hover {
    color: var(--navy);
  }
  
  
  .main-nav a::after {
    content: "";
  
    position: absolute;
  
    left: 0;
    bottom: -7px;
  
    width: 0;
    height: 2px;
  
    background: var(--navy);
  
    transition: width 0.2s ease;
  }
  
  
  .main-nav a:hover::after {
    width: 100%;
  }
  
  
  .menu-toggle {
    display: none;
  
    border: 0;
    padding: 5px;
  
    background: transparent;
  
    color: var(--navy);
  
    font-size: 1.7rem;
  
    cursor: pointer;
  }
  
  
  
  /* ========================================
   HERO
======================================== */

.hero {
    position: relative;
    overflow: hidden;
  
    color: var(--white);
  
    padding: 75px 0 100px;
  
    background:
      radial-gradient(
        circle at 15% 20%,
        rgba(255, 255, 255, 0.06),
        transparent 28%
      ),
      radial-gradient(
        circle at 85% 80%,
        rgba(255, 255, 255, 0.04),
        transparent 25%
      ),
      linear-gradient(
        135deg,
        #080b10 0%,
        #101827 55%,
        #1d2a3d 100%
      );
  }
  
  
  .hero::after {
    content: "";
  
    position: absolute;
    inset: 0;
  
    pointer-events: none;
  
    background:
      linear-gradient(
        120deg,
        transparent 0%,
        rgba(255, 255, 255, 0.025) 50%,
        transparent 100%
      );
  }
  
  
  .hero-content {
    position: relative;
    z-index: 2;
  
    text-align: center;
  }
  
  
  .hero .eyebrow {
    margin-bottom: 25px;
  
    color: var(--medium-gray);
  
    font-size: 0.75rem;
    font-weight: 800;
  
    letter-spacing: 4px;
  }
  
  
  /* Tournament logo */
  
  .event-logo {
    width: min(100%, 700px);
  
    margin: 0 auto 28px;
  }
  
  
  .event-logo img {
    display: block;
  
    width: 100%;
    height: auto;
  
    margin: 0 auto;
  
    object-fit: contain;
  
    filter:
      drop-shadow(0 12px 25px rgba(0, 0, 0, 0.35));
  }
  
  
  /* Full league names */
  
  .league-names {
    max-width: 900px;
  
    margin: 10px auto 35px;
  
    font-family: var(--heading);
  
    font-size: 1rem;
    font-weight: 500;
  
    letter-spacing: 1px;
  
    color: #d7dbe1;
  
    text-transform: uppercase;
  }
  
  
  .league-names span {
    padding: 0 10px;
  
    color: #7f8998;
  }
  
  
  /* Date / Location */
  
  .event-details {
    display: flex;
    justify-content: center;
  
    gap: 70px;
  
    margin: 35px 0;
  }
  
  
  .event-details div {
    min-width: 170px;
  }
  
  
  .detail-label {
    display: block;
  
    margin-bottom: 4px;
  
    font-size: 0.68rem;
    font-weight: 800;
  
    letter-spacing: 2.5px;
  
    color: var(--medium-gray);
  }
  
  
  .event-details strong {
    color: var(--white);
  
    font-size: 1.05rem;
  }
  
  
  /* Hero buttons */
  
  .hero-actions {
    display: flex;
    justify-content: center;
  
    gap: 12px;
  }
  
  
  /* ========================================
     HERO - MOBILE
  ======================================== */
  
  @media (max-width: 800px) {
  
    .hero {
      padding: 55px 0 80px;
    }
  
    .event-logo {
      width: min(100%, 560px);
  
      margin-bottom: 25px;
    }
  
    .league-names {
      max-width: 500px;
  
      font-size: 0.85rem;
  
      line-height: 1.8;
    }
  
    .event-details {
      gap: 30px;
    }
  
    .hero-actions {
      flex-direction: column;
  
      max-width: 300px;
  
      margin-inline: auto;
    }
  
  }
  
  
  @media (max-width: 500px) {
  
    .hero {
      padding: 45px 0 70px;
    }
  
    .hero .eyebrow {
      margin-bottom: 20px;
  
      font-size: 0.65rem;
  
      letter-spacing: 3px;
    }
  
    .event-logo {
      width: 100%;
    }
  
    .league-names {
      margin-bottom: 28px;
  
      font-size: 0.78rem;
    }
  
    .league-names span {
      padding: 0 5px;
    }
  
    .event-details {
      flex-direction: column;
  
      gap: 15px;
    }
  
  }
  
  
  /* ========================================
     BUTTONS
  ======================================== */
  
  .button {
    display: inline-block;
  
    padding: 13px 24px;
  
    border-radius: 6px;
  
    font-weight: 800;
  
    text-decoration: none;
  
    transition:
      background 0.2s ease,
      border-color 0.2s ease,
      transform 0.2s ease;
  }
  
  
  .button-primary {
    background: var(--white);
  
    color: var(--navy);
  }
  
  
  .button-primary:hover {
    background: var(--light-gray);
  
    transform: translateY(-2px);
  }
  
  
  .button-outline {
    border: 1px solid rgba(255, 255, 255, 0.45);
  
    color: var(--white);
  
    background: rgba(255, 255, 255, 0.03);
  }
  
  
  .button-outline:hover {
    border-color: var(--white);
  
    background: rgba(255, 255, 255, 0.08);
  
    transform: translateY(-2px);
  }
  
  
  
  /* ========================================
     QUICK LINKS
  ======================================== */
  
  .quick-links {
    position: relative;
  
    z-index: 5;
  
    margin-top: -35px;
  }
  
  
  .quick-grid {
    display: grid;
  
    grid-template-columns: repeat(4, 1fr);
  
    overflow: hidden;
  
    background: var(--white);
  
    border: 1px solid var(--light-gray);
  
    border-radius: var(--radius);
  
    box-shadow: 0 15px 45px rgba(0, 0, 0, 0.12);
  }
  
  
  .quick-card {
    padding: 27px 20px;
  
    text-align: center;
    text-decoration: none;
  
    border-right: 1px solid var(--light-gray);
  
    transition:
      background 0.2s ease,
      color 0.2s ease;
  }
  
  
  .quick-card:last-child {
    border-right: 0;
  }
  
  
  .quick-card:hover {
    background: var(--navy);
  
    color: var(--white);
  }
  
  
  .quick-icon {
    display: block;
  
    margin-bottom: 8px;
  
    font-size: 1.6rem;
  }
  
  
  .quick-card strong {
    display: block;
  
    font-family: var(--heading);
  
    font-size: 1.1rem;
    font-weight: 700;
  
    text-transform: uppercase;
  }
  
  
  .quick-card > span:last-child {
    font-size: 0.78rem;
  
    color: var(--gray);
  
    transition: color 0.2s ease;
  }
  
  
  .quick-card:hover > span:last-child {
    color: var(--light-gray);
  }
  
  
  
  /* ========================================
     GENERAL SECTIONS
  ======================================== */
  
  .section {
    padding: 100px 0;
  }
  
  
  .section-light {
    background: var(--off-white);
  }
  
  
  .section-dark {
    background:
      linear-gradient(
        135deg,
        var(--navy) 0%,
        var(--navy-light) 100%
      );
  
    color: var(--white);
  }
  
  
  .section-heading {
    max-width: 680px;
  
    margin-bottom: 50px;
  }
  
  
  .section-heading h2 {
    margin: 0 0 12px;
  
    font-family: var(--heading);
  
    font-size: clamp(2.5rem, 5vw, 4rem);
    font-weight: 700;
  
    line-height: 1;
  
    color: var(--navy);
  
    text-transform: uppercase;
  }
  
  
  .section-heading p {
    margin-bottom: 0;
  
    color: var(--gray);
  }
  
  
  .section-heading.light h2 {
    color: var(--white);
  }
  
  
  .section-heading.light .section-kicker {
    color: var(--medium-gray);
  }
  
  
  .section-heading.light p {
    color: #c1c5cb;
  }
  
  
  
  /* ========================================
     TOURNAMENT INFO
  ======================================== */
  
  .info-grid {
    display: grid;
  
    grid-template-columns: repeat(3, 1fr);
  
    gap: 22px;
  }
  
  
  .info-card {
    position: relative;
  
    padding: 35px;
  
    background: var(--off-white);
  
    border: 1px solid var(--light-gray);
  
    border-radius: var(--radius);
  
    transition:
      transform 0.2s ease,
      box-shadow 0.2s ease;
  }
  
  
  .info-card:hover {
    transform: translateY(-4px);
  
    box-shadow: 0 12px 30px rgba(16, 24, 39, 0.08);
  }
  
  
  .card-number {
    font-family: var(--heading);
  
    font-size: 3rem;
    font-weight: 700;
  
    color: #d8dbe0;
  }
  
  
  .info-card h3 {
    margin: 5px 0;
  
    font-family: var(--heading);
  
    font-size: 1.5rem;
  
    color: var(--navy);
  
    text-transform: uppercase;
  }
  
  
  .info-card p {
    color: var(--gray);
  }
  
  .host-thanks {
    margin-top: 55px;
    padding: 30px 0 0;
    max-width: 850px;
    border-top: 1px solid var(--light-gray);
  }
  
  .host-thanks h3 {
    margin: 5px 0 8px;
    font-family: var(--heading);
    font-size: 1.8rem;
    color: var(--navy);
    text-transform: uppercase;
  }
  
  .host-thanks p {
    margin: 0;
    color: var(--gray);
    line-height: 1.7;
  }
  
  
  /* ========================================
     SCHEDULE
  ======================================== */
  
  .division-tabs {
    display: flex;
  
    gap: 10px;
  
    margin-bottom: 30px;
  }
  
  
  .division-button {
    padding: 10px 28px;
  
    border: 1px solid rgba(255, 255, 255, 0.3);
  
    border-radius: 5px;
  
    background: transparent;
  
    color: var(--white);
  
    font-family: var(--heading);
  
    font-size: 1rem;
    font-weight: 600;
  
    cursor: pointer;
  
    transition:
      background 0.2s ease,
      border-color 0.2s ease,
      color 0.2s ease;
  }
  
  
  .division-button:hover {
    border-color: var(--white);
  
    background: rgba(255, 255, 255, 0.08);
  }
  
  
  .division-button.active {
    background: var(--white);
  
    border-color: var(--white);
  
    color: var(--navy);
  }
  
  
  .schedule-panel {
    display: none;
  }
  
  
  .schedule-panel.active {
    display: block;
  }
  
  
  .coming-soon {
    padding: 60px 25px;
  
    border: 1px dashed rgba(255, 255, 255, 0.35);
  
    border-radius: var(--radius);
  
    text-align: center;
  
    background: rgba(255, 255, 255, 0.025);
  }
  
  
  .coming-soon > span {
    font-size: 2.5rem;
  }
  
  
  .coming-soon h3 {
    margin-bottom: 3px;
  
    font-family: var(--heading);
  
    font-size: 1.8rem;
  
    text-transform: uppercase;
  }
  
  
  .coming-soon p {
    margin-bottom: 0;
  
    color: #c2c6cc;
  }
  
  
  .location-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 70px;
    align-items: start;
  }
  
  .info-label {
    display: block;
    margin-bottom: 8px;
    font-family: var(--heading);
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    color: var(--gray);
  }
  
  .location-info h3,
  .parking-info h3 {
    margin: 0 0 15px;
    font-family: var(--heading);
    font-size: 1.8rem;
    color: var(--navy);
    text-transform: uppercase;
  }
  
  .location-info p,
  .parking-info p {
    color: var(--gray);
    line-height: 1.7;
  }
  
  .gps-note {
    margin-top: 20px;
  }
  
  .location-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 25px;
  }
  
  .parking-notice {
    margin-top: 25px;
    padding: 20px 22px;
    border-left: 4px solid var(--navy);
    background: var(--off-white);
  }
  
  .parking-notice strong {
    display: block;
    margin-bottom: 4px;
    color: var(--navy);
  }
  
  .parking-notice p {
    margin: 0;
  }
  
  @media (max-width: 800px) {
    .location-grid {
      grid-template-columns: 1fr;
      gap: 40px;
    }
  }

  .button-outline-dark {
    background: transparent;
    color: var(--navy);
    border: 2px solid var(--navy);
  }
  
  .button-outline-dark:hover {
    background: var(--navy);
    color: var(--white);
  }

  .field-map {
    max-width: 700px;
    margin: 45px auto 0;
  }
  
  .field-map-heading {
    margin-bottom: 20px;
  }
  
  .field-map-heading h3 {
    margin: 0 0 8px;
    font-family: var(--heading);
    font-size: 1.8rem;
    color: var(--navy);
    text-transform: uppercase;
  }
  
  .field-map-heading p {
    max-width: 700px;
    margin: 0;
    color: var(--gray);
    line-height: 1.7;
  }
  
  .field-map img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: var(--radius);
  }
  
  /* ========================================
     APPAREL
  ======================================== */
  
  .apparel-section {
    background: #f1f2f4;
  }
  
  
  .apparel-layout {
    display: grid;
  
    grid-template-columns: 1.2fr 0.8fr;
  
    gap: 45px;
  
    align-items: start;
  }
  
  
  .apparel-layout {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: 45px;
    align-items: stretch;
  }
  
  .apparel-image {
    padding: 15px;
    background: var(--white);
    border: 1px solid var(--light-gray);
    border-radius: var(--radius);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
  
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
  }
  
  .apparel-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: 8px;
  }
  
  
  .apparel-details {
    padding: 35px;
  
    background: var(--white);
  
    border: 1px solid var(--light-gray);
  
    border-radius: var(--radius);
  
    box-shadow: 0 8px 25px rgba(16, 24, 39, 0.05);
  }
  
  
  .apparel-details h3 {
    margin-top: 0;
  
    font-family: var(--heading);
  
    font-size: 2rem;
  
    color: var(--navy);
  
    text-transform: uppercase;
  }
  
  
  .price-row {
    display: flex;
    justify-content: space-between;
  
    padding: 13px 0;
  
    border-bottom: 1px solid var(--light-gray);
  }
  
  
  .price-row strong {
    color: var(--navy);
  }
  
  
  .size-note {
    font-size: 0.8rem;
  
    color: var(--gray);
  }
  
  
  .payment-box {
    margin-top: 25px;
  
    padding: 22px;
  
    background:
      linear-gradient(
        135deg,
        var(--navy),
        var(--navy-light)
      );
  
    color: var(--white);
  
    border-radius: 8px;
  }
  
  
  .payment-box strong {
    color: #cbd0d7;
  
    font-size: 0.75rem;
  
    letter-spacing: 2px;
  }
  
  
  .payment-box p {
    margin-bottom: 7px;
  }
  
  
  .payment-box span {
    font-family: var(--heading);
  
    font-size: 1.7rem;
    font-weight: 700;
  }
  
  
  /* ========================================
   JOTFORM EMBED
======================================== */

.jotform-wrapper {
    width: 100%;
    margin-top: 25px;
  
    overflow: hidden;
  
    background: var(--white);
  
    border-radius: 10px;
  }
  
  
  /* Prevent the embedded form from
     creating horizontal overflow */
  .jotform-wrapper iframe {
    display: block;
  
    width: 100% !important;
    max-width: 100% !important;
  
    border: 0 !important;
  }
  
 /* ========================================
   CONCESSIONS
======================================== */

.concessions-heading {
    max-width: 850px;
    margin-bottom: 0;
  }
  
  .concessions-heading p {
    max-width: 780px;
  }
  
  /* ========================================
     TOURNAMENT UPDATES
  ======================================== */
  
  .updates {
    padding: 60px 0;
  
    background:
      linear-gradient(
        135deg,
        var(--charcoal),
        var(--black)
      );
  
    color: var(--white);
  }
  
  
  .updates-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
  
    gap: 50px;
  }
  
  
  .updates .section-kicker {
    color: var(--medium-gray);
  }
  
  
  .updates h2 {
    margin: 0;
  
    font-family: var(--heading);
  
    font-size: 2.2rem;
  
    color: var(--white);
  
    text-transform: uppercase;
  }
  
  
  .updates p {
    max-width: 500px;
  
    color: #c6c9ce;
  }
  
  
  
  /* ========================================
     FOOTER
  ======================================== */
  
  .footer {
    padding: 55px 0;
  
    background: var(--navy);
  
    color: var(--white);
  
    text-align: center;
  }
  
  
  .footer-title {
    margin: 0;
  
    font-family: var(--heading);
  
    font-size: 1.8rem;
  
    text-transform: uppercase;
  }
  
  
  .footer-leagues {
    color: #c0c5cc;
  }
  
  
  .footer-leagues span {
    padding: 0 5px;
  
    color: var(--white);
  }
  
  
  .footer-small {
    font-size: 0.75rem;
  
    color: #8f98a5;
  }
  
  
  
  /* ========================================
     MOBILE / TABLET
  ======================================== */
  
  @media (max-width: 800px) {
  
    html {
      scroll-padding-top: 100px;
    }
  
  
    .announcement .container {
      flex-direction: column;
  
      gap: 0;
  
      padding: 7px 0;
  
      text-align: center;
    }
  
  
    .menu-toggle {
      display: block;
    }
  
  
    .main-nav {
      position: absolute;
  
      top: 76px;
      left: 0;
      right: 0;
  
      display: none;
  
      flex-direction: column;
  
      gap: 0;
  
      background: var(--white);
  
      border-bottom: 1px solid var(--light-gray);
  
      box-shadow: 0 12px 25px rgba(0, 0, 0, 0.08);
    }
  
  
    .main-nav.open {
      display: flex;
    }
  
  
    .main-nav a {
      padding: 16px 5%;
  
      border-top: 1px solid var(--light-gray);
    }
  
  
    .main-nav a::after {
      display: none;
    }
  
  
    .hero {
      padding: 65px 0 80px;
    }
  
  
    .event-logo img {
      width: 140px;
    }
  
  
    .event-details {
      gap: 20px;
    }
  
  
    .hero-actions {
      flex-direction: column;
  
      max-width: 300px;
  
      margin-inline: auto;
    }
  
  
    .quick-grid {
      grid-template-columns: repeat(2, 1fr);
    }
  
  
    .quick-card {
      border-bottom: 1px solid var(--light-gray);
    }
  
  
    .quick-card:nth-child(2) {
      border-right: 0;
    }
  
  
    .section {
      padding: 75px 0;
    }
  
  
    .info-grid,
    .location-layout,
    .apparel-layout {
      grid-template-columns: 1fr;
    }
  
  
    .location-layout {
      gap: 30px;
    }
  
  
    .map-placeholder {
      min-height: 300px;
    }
  
  
    .order-form {
      padding: 30px 20px;
    }
  
  
    .updates-inner {
      flex-direction: column;
  
      align-items: flex-start;
    }
  
  }
  
  
  
  /* ========================================
     SMALL MOBILE
  ======================================== */
  
  @media (max-width: 500px) {
  
    .hero h1 {
      font-size: 3.5rem;
    }
  
  
    .hero h1 span {
      -webkit-text-stroke: 1.5px #c7cbd1;
    }
  
  
    .event-details {
      flex-direction: column;
  
      gap: 12px;
    }
  
  
    .quick-grid {
      grid-template-columns: 1fr 1fr;
    }
  
  
    .quick-card {
      padding: 20px 10px;
    }
  
  
    .quick-card strong {
      font-size: 1rem;
    }
  
  
    .division-tabs {
      width: 100%;
    }
  
  
    .division-button {
      flex: 1;
  
      padding: 10px;
    }
  
  
    .apparel-details {
      padding: 25px;
    }
  
  
    .order-form {
      margin-top: 50px;
  
      padding: 25px 15px;
    }
  
  
    .form-heading h3 {
      font-size: 2rem;
    }
  
  
    .footer-leagues span {
      display: block;
  
      height: 4px;
  
      font-size: 0;
    }
  
  }
  .league-names a {
    color: inherit;
    text-decoration: none;
    transition: opacity 0.2s ease;
  }
  
  .league-names a:hover {
    opacity: 0.7;
    text-decoration: underline;
    text-underline-offset: 4px;
  }

  .footer-leagues a {
    color: inherit;
    text-decoration: none;
    transition: opacity 0.2s ease;
  }
  
  .footer-leagues a:hover {
    opacity: 0.7;
    text-decoration: underline;
    text-underline-offset: 4px;
  }
  /* ========================================
   LIVE SCORES & TOURNAMENT BRACKETS
======================================== */

.schedule-heading {
  margin-bottom: 35px;
}


/* ----------------------------------------
   SCOREBOARD STATUS
---------------------------------------- */

.scoreboard-status {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;

  margin-bottom: 25px;
  padding: 14px 18px;

  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;

  background: rgba(255, 255, 255, 0.045);
}

.live-indicator {
  display: flex;
  align-items: center;
  gap: 9px;

  font-family: var(--heading);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 1.5px;
}

.live-dot {
  width: 9px;
  height: 9px;

  border-radius: 50%;
  background: #39d98a;

  box-shadow: 0 0 0 5px rgba(57, 217, 138, 0.12);
}

.scoreboard-update {
  display: flex;
  align-items: center;
  gap: 14px;

  color: #bfc5ce;
  font-size: 0.75rem;
}

.refresh-scores {
  padding: 6px 10px;

  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 5px;

  background: transparent;
  color: white;

  font-size: 0.75rem;
  font-weight: 700;

  cursor: pointer;
}

.refresh-scores:hover {
  background: rgba(255, 255, 255, 0.08);
}


/* ----------------------------------------
   DIVISION HEADER
---------------------------------------- */

.division-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 25px;

  margin: 35px 0 20px;
}

.division-label {
  display: block;

  margin-bottom: 3px;

  color: #9ba4b1;

  font-family: var(--heading);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 2px;
}

.division-header h3,
.bracket-heading h3 {
  margin: 0;

  color: white;

  font-family: var(--heading);
  font-size: 2rem;
  line-height: 1.1;
  text-transform: uppercase;
}


/* ----------------------------------------
   CHAMPION
---------------------------------------- */

.division-champion {
  padding: 12px 18px;

  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 8px;

  background: white;
  color: var(--navy);

  text-align: center;
}

.division-champion span {
  display: block;

  color: var(--gray);

  font-size: 0.6rem;
  font-weight: 800;
  letter-spacing: 1.8px;
}

.division-champion strong {
  display: block;

  margin-top: 2px;

  font-family: var(--heading);
  font-size: 1.25rem;
  text-transform: uppercase;
}


/* ----------------------------------------
   GAME SUMMARY
---------------------------------------- */

.game-summary {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;

  margin-bottom: 55px;
}

.game-card {
  overflow: hidden;

  border: 1px solid rgba(255, 255, 255, 0.13);
  border-radius: 10px;

  background: rgba(255, 255, 255, 0.055);
}

.game-card-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;

  padding: 9px 13px;

  border-bottom: 1px solid rgba(255, 255, 255, 0.09);

  color: #b9c0ca;

  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.4px;
}

.game-round {
  text-transform: uppercase;
}

.game-status {
  padding: 3px 7px;

  border-radius: 4px;

  background: rgba(255, 255, 255, 0.1);

  color: #d8dce2;

  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.8px;

  text-transform: uppercase;
}

.game-status.final {
  background: white;
  color: var(--navy);
}

.game-status.live {
  background: #39d98a;
  color: #07170f;
}

.game-teams {
  padding: 8px 13px 11px;
}

.game-team {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 12px;

  min-height: 34px;

  color: #e8ebef;
  font-size: 0.84rem;
  font-weight: 700;
}

.game-team + .game-team {
  border-top: 1px solid rgba(255, 255, 255, 0.07);
}

.game-team.winner {
  color: white;
}

.game-team.winner .team-name::before {
  content: "✓ ";
  color: #39d98a;
}

.game-score {
  min-width: 22px;

  color: white;

  font-family: var(--heading);
  font-size: 1.15rem;
  font-weight: 700;

  text-align: center;
}

.game-meta {
  padding: 0 13px 11px;

  color: #929ba8;

  font-size: 0.67rem;
}


/* ----------------------------------------
   BRACKET HEADING
---------------------------------------- */

.bracket-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 20px;

  margin-bottom: 18px;
}

.swipe-note {
  display: none;

  color: #aeb5bf;
  font-size: 0.7rem;
}


/* ----------------------------------------
   BRACKET
---------------------------------------- */

.bracket-scroll {
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;

  padding: 5px 2px 22px;

  -webkit-overflow-scrolling: touch;
}

.tournament-bracket {
  display: flex;
  align-items: stretch;

  gap: 65px;

  min-width: 1050px;
  min-height: 510px;

  padding: 10px 25px 10px 5px;
}

.bracket-round {
  position: relative;

  display: flex;
  flex: 1 0 215px;
  flex-direction: column;
  justify-content: space-around;

  min-width: 215px;
}

.bracket-round-title {
  position: absolute;
  top: -4px;
  left: 0;
  right: 0;

  color: #9da6b2;

  font-family: var(--heading);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 1.7px;

  text-align: center;
  text-transform: uppercase;
}

.bracket-games {
  display: flex;
  flex: 1;
  flex-direction: column;
  justify-content: space-around;

  padding-top: 38px;
}


/* ----------------------------------------
   BRACKET MATCH
---------------------------------------- */

.bracket-match {
  position: relative;

  width: 100%;

  border: 1px solid rgba(255, 255, 255, 0.17);
  border-radius: 8px;

  background: #182235;

  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.14);
}

.bracket-match::after {
  content: "";

  position: absolute;
  top: 50%;
  right: -66px;

  width: 65px;
  height: 1px;

  background: rgba(255, 255, 255, 0.25);
}

.bracket-round:last-child .bracket-match::after {
  display: none;
}

.bracket-match.final-match {
  border-color: rgba(255, 255, 255, 0.42);
  background: white;
  color: var(--navy);
}

.bracket-match-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;

  padding: 6px 9px;

  border-bottom: 1px solid rgba(255, 255, 255, 0.09);

  color: #9fa8b4;

  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.4px;

  text-transform: uppercase;
}

.final-match .bracket-match-head {
  border-bottom-color: var(--light-gray);
  color: var(--gray);
}

.bracket-team {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 10px;

  min-height: 39px;

  padding: 7px 10px;

  color: #eef0f3;

  font-size: 0.78rem;
  font-weight: 700;
}

.bracket-team + .bracket-team {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.final-match .bracket-team {
  color: var(--navy);
}

.final-match .bracket-team + .bracket-team {
  border-top-color: var(--light-gray);
}

.bracket-team.winner {
  background: rgba(57, 217, 138, 0.08);
}

.final-match .bracket-team.winner {
  background: #eefaf4;
}

.bracket-team.winner .bracket-team-name::before {
  content: "✓ ";
  color: #39b879;
}

.bracket-team-name.tbd {
  color: #788292;
  font-style: italic;
  font-weight: 500;
}

.bracket-score {
  min-width: 20px;

  font-family: var(--heading);
  font-size: 1rem;

  text-align: center;
}


/* ----------------------------------------
   BYE CARD
---------------------------------------- */

.bracket-bye {
  position: relative;

  padding: 11px 12px;

  border: 1px dashed rgba(255, 255, 255, 0.25);
  border-radius: 8px;

  color: #cbd0d7;

  background: rgba(255, 255, 255, 0.025);

  font-size: 0.72rem;
}

.bracket-bye strong {
  display: block;

  color: white;

  font-family: var(--heading);
  font-size: 1rem;
}

.bracket-bye span {
  color: #8f98a5;

  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 1px;

  text-transform: uppercase;
}


/* ----------------------------------------
   CHAMPIONSHIP TROPHY
---------------------------------------- */

.championship-label {
  margin-bottom: 8px;

  color: #9fa8b4;

  font-family: var(--heading);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 1.5px;

  text-align: center;
}

.champion-result {
  margin-top: 12px;
  padding: 10px;

  border-radius: 6px;

  background: rgba(57, 217, 138, 0.12);

  color: white;

  text-align: center;
}

.champion-result span {
  display: block;

  color: #9fa8b4;

  font-size: 0.55rem;
  font-weight: 800;
  letter-spacing: 1.5px;
}

.champion-result strong {
  display: block;

  margin-top: 2px;

  font-family: var(--heading);
  font-size: 1.1rem;
}


/* ----------------------------------------
   MESSAGE
---------------------------------------- */

.scores-message {
  margin-top: 25px;
  padding: 20px;

  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 8px;

  background: rgba(255, 255, 255, 0.04);

  color: #c6cbd2;

  text-align: center;
}


/* ========================================
   LIVE SCORES - TABLET
======================================== */

@media (max-width: 900px) {

  .game-summary {
    grid-template-columns: repeat(2, 1fr);
  }

}


/* ========================================
   LIVE SCORES - MOBILE
======================================== */

@media (max-width: 600px) {

  .scoreboard-status {
    align-items: flex-start;
    flex-direction: column;
  }

  .scoreboard-update {
    width: 100%;
    justify-content: space-between;
  }

  .division-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .game-summary {
    grid-template-columns: 1fr;
    gap: 10px;

    margin-bottom: 45px;
  }

  .bracket-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .swipe-note {
    display: block;
  }

  .tournament-bracket {
    gap: 48px;

    min-width: 930px;
    min-height: 500px;
  }

  .bracket-round {
    flex-basis: 190px;
    min-width: 190px;
  }

  .bracket-match::after {
    right: -49px;
    width: 48px;
  }

}

/* =====================================================
   CLASH BRACKET V2
   Bracket-first tournament display
===================================================== */


/* Hide the old duplicate live score cards if any
   remain in the HTML accidentally */
   .game-summary {
    display: none !important;
  }
  
  
  /* -----------------------------------------
     SCHEDULE HEADER
  ----------------------------------------- */
  
  .schedule-heading {
    margin-bottom: 35px;
  }
  
  .division-tabs {
    margin-bottom: 45px;
  }
  
  
  /* -----------------------------------------
     DIVISION HEADER
  ----------------------------------------- */
  
  .division-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 25px;
  
    margin-bottom: 8px;
  }
  
  .division-label {
    display: block;
  
    margin-bottom: 5px;
  
    color: var(--medium-gray);
  
    font-family: var(--heading);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 2px;
  }
  
  .division-header h3 {
    margin: 0;
  
    color: var(--white);
  
    font-family: var(--heading);
    font-size: clamp(1.8rem, 4vw, 2.6rem);
    line-height: 1;
  
    text-transform: uppercase;
  }
  
  .bracket-help {
    margin: 10px 0 30px;
  
    color: #b8bec7;
  
    font-size: 0.85rem;
  }
  
  
  /* -----------------------------------------
     MOBILE SWIPE MESSAGE
  ----------------------------------------- */
  
  .mobile-bracket-note {
    display: none;
  
    margin-bottom: 12px;
  
    color: #b9c0ca;
  
    font-size: 0.72rem;
    font-weight: 700;
  }
  
  
  /* -----------------------------------------
     BRACKET SCROLLER
  ----------------------------------------- */
  
  .bracket-scroll {
    width: 100%;
  
    overflow-x: auto;
    overflow-y: hidden;
  
    padding: 5px 2px 25px;
  
    scrollbar-width: thin;
  
    -webkit-overflow-scrolling: touch;
  }
  
  
  /* -----------------------------------------
     MAIN BRACKET
  ----------------------------------------- */
  
  .tournament-bracket {
    display: grid;
  
    grid-template-columns:
      230px
      230px
      230px
      230px;
  
    column-gap: 70px;
  
    min-width: 1130px;
    min-height: 590px;
  
    padding:
      12px
      25px
      12px
      4px;
  }
  
  
  /* -----------------------------------------
     BRACKET COLUMNS
  ----------------------------------------- */
  
  .bracket-round {
    position: relative;
  
    display: flex;
    flex-direction: column;
  
    min-width: 0;
  }
  
  .bracket-round-title {
    height: 36px;
  
    color: #939daa;
  
    font-family: var(--heading);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 1.8px;
  
    text-align: center;
    text-transform: uppercase;
  }
  
  .bracket-games {
    position: relative;
  
    display: flex;
    flex: 1;
    flex-direction: column;
    justify-content: space-around;
  
    min-height: 520px;
  }
  
  
  /* -----------------------------------------
     MATCH BOX
  ----------------------------------------- */
  
  .bracket-match {
    position: relative;
  
    width: 100%;
  
    overflow: visible;
  
    border:
      1px solid
      rgba(255, 255, 255, 0.18);
  
    border-radius: 8px;
  
    background: #182235;
  
    box-shadow:
      0 7px 18px
      rgba(0, 0, 0, 0.14);
  }
  
  
  /* horizontal connector */
  
  .bracket-match::after {
    content: "";
  
    position: absolute;
  
    top: 50%;
    right: -71px;
  
    width: 70px;
    height: 1px;
  
    background:
      rgba(255, 255, 255, 0.32);
  }
  
  
  /* no line after final */
  
  .bracket-round:last-child
  .bracket-match::after {
    display: none;
  }
  
  
  /* -----------------------------------------
     MATCH INFORMATION
  ----------------------------------------- */
  
  .bracket-match-head {
    display: flex;
  
    justify-content: space-between;
    align-items: center;
  
    gap: 8px;
  
    padding: 7px 10px;
  
    border-bottom:
      1px solid
      rgba(255, 255, 255, 0.09);
  
    color: #9da6b2;
  
    font-size: 0.58rem;
    font-weight: 800;
    letter-spacing: 0.5px;
  
    text-transform: uppercase;
  }
  
  .bracket-game-number {
    opacity: 0.65;
  }
  
  
  /* -----------------------------------------
     TEAMS
  ----------------------------------------- */
  
  .bracket-team {
    display: grid;
  
    grid-template-columns:
      minmax(0, 1fr)
      auto;
  
    align-items: center;
  
    gap: 10px;
  
    min-height: 42px;
  
    padding: 7px 11px;
  
    color: #eef0f3;
  
    font-size: 0.79rem;
    font-weight: 700;
  }
  
  .bracket-team +
  .bracket-team {
    border-top:
      1px solid
      rgba(255, 255, 255, 0.08);
  }
  
  .bracket-team-name {
    overflow-wrap: anywhere;
  }
  
  .bracket-team-name.tbd {
    color: #828c9b;
  
    font-size: 0.72rem;
    font-style: italic;
    font-weight: 500;
  }
  
  .bracket-score {
    min-width: 22px;
  
    color: var(--white);
  
    font-family: var(--heading);
    font-size: 1.15rem;
  
    text-align: center;
  }
  
  
  /* -----------------------------------------
     WINNER
  ----------------------------------------- */
  
  .bracket-team.winner {
    background:
      rgba(57, 217, 138, 0.09);
  }
  
  .bracket-team.winner
  .bracket-team-name::before {
    content: "✓ ";
  
    color: #47d590;
  }
  
  
  /* -----------------------------------------
     FINAL
  ----------------------------------------- */
  
  .bracket-match.final-match {
    border-color:
      rgba(255, 255, 255, 0.55);
  
    background: var(--white);
  }
  
  .final-match
  .bracket-match-head {
    border-bottom-color:
      var(--light-gray);
  
    color: var(--gray);
  }
  
  .final-match
  .bracket-team {
    color: var(--navy);
  }
  
  .final-match
  .bracket-team +
  .bracket-team {
    border-top-color:
      var(--light-gray);
  }
  
  .final-match
  .bracket-score {
    color: var(--navy);
  }
  
  .final-match
  .bracket-team.winner {
    background: #edf9f3;
  }
  
  
  /* -----------------------------------------
     BYE
  ----------------------------------------- */
  
  .bracket-bye {
    position: relative;
  
    width: 100%;
  
    padding: 12px;
  
    border:
      1px dashed
      rgba(255, 255, 255, 0.38);
  
    border-radius: 8px;
  
    background:
      rgba(255, 255, 255, 0.045);
  }
  
  .bracket-bye-label {
    display: block;
  
    margin-bottom: 3px;
  
    color: #929ca9;
  
    font-size: 0.57rem;
    font-weight: 800;
    letter-spacing: 1.5px;
  
    text-transform: uppercase;
  }
  
  .bracket-bye strong {
    display: block;
  
    color: var(--white);
  
    font-family: var(--heading);
    font-size: 1.15rem;
  }
  
  .bracket-bye p {
    margin:
      4px
      0
      0;
  
    color: #9fa7b2;
  
    font-size: 0.66rem;
  }
  
  
  /* line from bye */
  
  .bracket-bye::after {
    content: "";
  
    position: absolute;
  
    top: 50%;
    right: -71px;
  
    width: 70px;
    height: 1px;
  
    background:
      rgba(255, 255, 255, 0.32);
  }
  
  
  /* -----------------------------------------
     U8 CUSTOM POSITIONING
  ----------------------------------------- */
  
  /*
    U8 intentionally does NOT use a generic
    symmetrical bracket.
  
    PV5 receives the bye and enters at noon.
  */
  
  .u8-opening .bracket-games {
    justify-content: space-between;
  
    padding-top: 20px;
    padding-bottom: 20px;
  }
  
  .u8-second .bracket-games {
    justify-content: space-around;
  
    padding-top: 55px;
    padding-bottom: 55px;
  }
  
  .u8-semifinal .bracket-games {
    justify-content: space-around;
  
    padding-top: 120px;
    padding-bottom: 120px;
  }
  
  .u8-final .bracket-games {
    justify-content: center;
  }
  
  
  /* -----------------------------------------
     CHAMPION
  ----------------------------------------- */
  
  .division-champion {
    padding: 10px 17px;
  
    border-radius: 7px;
  
    background: var(--white);
  
    color: var(--navy);
  
    text-align: center;
  }
  
  .division-champion span {
    display: block;
  
    color: var(--gray);
  
    font-size: 0.55rem;
    font-weight: 800;
    letter-spacing: 1.5px;
  }
  
  .division-champion strong {
    display: block;
  
    font-family: var(--heading);
    font-size: 1.15rem;
  
    text-transform: uppercase;
  }
  
  
  /* -----------------------------------------
     UPDATE BAR
  ----------------------------------------- */
  
  .bracket-update-bar {
    display: flex;
  
    justify-content: space-between;
    align-items: center;
  
    gap: 20px;
  
    margin-top: 25px;
  
    padding-top: 18px;
  
    border-top:
      1px solid
      rgba(255, 255, 255, 0.12);
  
    color: #949daa;
  
    font-size: 0.7rem;
  }
  
  .bracket-update-bar > div {
    display: flex;
    align-items: center;
  
    gap: 9px;
  }
  
  .live-dot {
    display: inline-block;
  
    width: 7px;
    height: 7px;
  
    border-radius: 50%;
  
    background: #4bd394;
  }
  
  .refresh-scores {
    padding: 7px 11px;
  
    border:
      1px solid
      rgba(255, 255, 255, 0.2);
  
    border-radius: 5px;
  
    background: transparent;
  
    color: var(--white);
  
    font-size: 0.7rem;
    font-weight: 700;
  
    cursor: pointer;
  }
  
  .refresh-scores:hover {
    background:
      rgba(255, 255, 255, 0.08);
  }
  
  
  /* -----------------------------------------
     ERROR MESSAGE
  ----------------------------------------- */
  
  .scores-message {
    margin-top: 20px;
  
    padding: 16px;
  
    border:
      1px solid
      rgba(255, 255, 255, 0.14);
  
    border-radius: 7px;
  
    color: #c3c8cf;
  
    background:
      rgba(255, 255, 255, 0.04);
  
    text-align: center;
  }
  
  
  /* =========================================
     MOBILE
  ========================================= */
  
  @media (max-width: 700px) {
  
    .division-tabs {
      margin-bottom: 35px;
    }
  
    .division-header {
      align-items: flex-start;
      flex-direction: column;
    }
  
    .bracket-help {
      margin-bottom: 15px;
    }
  
    .mobile-bracket-note {
      display: block;
    }
  
    .tournament-bracket {
      grid-template-columns:
        200px
        200px
        200px
        200px;
  
      column-gap: 50px;
  
      min-width: 950px;
    }
  
    .bracket-match::after,
    .bracket-bye::after {
      right: -51px;
  
      width: 50px;
    }
  
    .bracket-update-bar {
      align-items: flex-start;
  
      flex-direction: column;
    }
  
  }

  /* =====================================================
   U8 BRACKET PATH CORRECTION
===================================================== */


/* ROUND ONE */

.u8-opening .bracket-games {
  justify-content: space-between;

  padding-top: 15px;
  padding-bottom: 15px;
}


/* ROUND TWO
   10:30 and 11:30 games only */

.u8-round-two .bracket-games {
  justify-content: space-around;

  padding-top: 80px;
  padding-bottom: 80px;
}


/* -----------------------------------------
   ADVANCEMENT COLUMN
----------------------------------------- */

.u8-advancement .bracket-games {
  justify-content: space-around;

  padding-top: 25px;
  padding-bottom: 25px;
}


/* Upper branch contains PV5 + noon game */

.u8-upper-path {
  display: flex;
  flex-direction: column;

  gap: 28px;
}


/* IMPORTANT:
   PV5 should NOT visually connect
   to the 10:30 game. */

.u8-upper-path .bracket-bye::after {
  display: none;
}


/* PV5 bye box */

.u8-upper-path .bracket-bye {
  border-color:
    rgba(255, 255, 255, 0.42);

  background:
    rgba(255, 255, 255, 0.07);
}


/* Noon game */

.u8-noon-game {
  position: relative;
}


/* Visual line showing PV5 enters
   the NOON game */

.u8-noon-game::before {
  content: "";

  position: absolute;

  left: 50%;
  top: -29px;

  width: 1px;
  height: 28px;

  background:
    rgba(255, 255, 255, 0.35);
}


/* -----------------------------------------
   WINNER OF 11:30 PATH
----------------------------------------- */

.u8-lower-advance {
  position: relative;

  padding: 12px;

  border:
    1px dashed
    rgba(255, 255, 255, 0.3);

  border-radius: 8px;

  background:
    rgba(255, 255, 255, 0.035);
}

.u8-lower-advance strong {
  display: block;

  color: white;

  font-family: var(--heading);
  font-size: 1rem;
}

.u8-lower-advance p {
  margin: 4px 0 0;

  color: #9fa7b2;

  font-size: 0.66rem;
}


/* Connector toward championship */

.u8-lower-advance::after {
  content: "";

  position: absolute;

  top: 50%;
  right: -71px;

  width: 70px;
  height: 1px;

  background:
    rgba(255, 255, 255, 0.32);
}


/* -----------------------------------------
   CHAMPIONSHIP
----------------------------------------- */

.u8-final .bracket-games {
  justify-content: center;
}

.u8-championship-label {
  display: block;

  margin-bottom: 8px;

  color: #9da6b2;

  font-family: var(--heading);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 1.5px;

  text-align: center;
  text-transform: uppercase;
}


/* MOBILE CONNECTOR */

@media (max-width: 700px) {

  .u8-lower-advance::after {
    right: -51px;

    width: 50px;
  }

}

/* =====================================================
   U13 BRACKET PATH CORRECTION
===================================================== */


/* Opening games */

.u13-opening .bracket-games {
  justify-content: space-between;

  padding-top: 15px;
  padding-bottom: 15px;
}


/* Round 2 */

.u13-round-two .bracket-games {
  justify-content: space-around;

  padding-top: 20px;
  padding-bottom: 20px;
}


/* BEYS bye */

.u13-beys-bye .bracket-bye::after {
  display: none;
}

.u13-beys-bye .bracket-bye {
  background:
    rgba(255, 255, 255, 0.07);

  border-color:
    rgba(255, 255, 255, 0.42);
}


/* PV 10:30 game */

.u13-pv-game {
  position: relative;
}


/* WB 11:30 game */

.u13-wb-game {
  position: relative;
}


/* Advancement */

.u13-advancement .bracket-games {
  justify-content: space-around;

  padding-top: 80px;
  padding-bottom: 80px;
}


/* Noon game */

.u13-noon-game {
  position: relative;
}


/* WB winner path */

.u13-wb-advance {
  position: relative;

  padding: 12px;

  border:
    1px dashed
    rgba(255, 255, 255, 0.3);

  border-radius: 8px;

  background:
    rgba(255, 255, 255, 0.035);
}

.u13-wb-advance strong {
  display: block;

  color: var(--white);

  font-family: var(--heading);
  font-size: 1rem;
}

.u13-wb-advance p {
  margin: 4px 0 0;

  color: #9fa7b2;

  font-size: 0.66rem;
}


/* Line from WB winner toward final */

.u13-wb-advance::after {
  content: "";

  position: absolute;

  top: 50%;
  right: -71px;

  width: 70px;
  height: 1px;

  background:
    rgba(255, 255, 255, 0.32);
}


/* Final */

.u13-final .bracket-games {
  justify-content: center;
}

.u13-championship-label {
  display: block;

  margin-bottom: 8px;

  color: #9da6b2;

  font-family: var(--heading);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 1.5px;

  text-align: center;
  text-transform: uppercase;
}


@media (max-width: 700px) {

  .u13-wb-advance::after {
    right: -51px;

    width: 50px;
  }

}

/* =====================================================
   FIXED BRACKET GRID
===================================================== */

.fixed-bracket {
  position: relative;

  width: 1160px;
  height: 720px;

  margin: 0 auto;
}


/* Remove the automatic lines from
   the old bracket system */

.fixed-bracket
.bracket-match::after,

.fixed-bracket
.bracket-bye::after {
  display: none !important;
}


/* -----------------------------------------
   COLUMN HEADINGS
----------------------------------------- */

.fixed-round-title {
  position: absolute;

  top: 0;

  width: 230px;

  color: #939daa;

  font-family: var(--heading);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 1.8px;

  text-align: center;
  text-transform: uppercase;
}


.title-round1 {
  left: 0;
}

.title-round2 {
  left: 320px;
}

.title-advance {
  left: 680px;
}

.title-final {
  left: 990px;
}


/* -----------------------------------------
   GAME POSITIONING
----------------------------------------- */

.fixed-game {
  position: absolute;

  width: 230px;

  z-index: 2;
}


/* ROUND 1 */

.u8-game1 {
  left: 0;
  top: 55px;
}

.u8-game2 {
  left: 0;
  top: 215px;
}

.u8-game3 {
  left: 0;
  top: 375px;
}

.u8-game4 {
  left: 0;
  top: 535px;
}


/* ROUND 2 */

.u8-game5 {
  left: 320px;
  top: 135px;
}

.u8-game6 {
  left: 320px;
  top: 455px;
}


/* PV5 BYE */

.u8-pv5 {
  left: 680px;
  top: 95px;
}


/* NOON */

.u8-game7 {
  left: 680px;
  top: 215px;
}


/* FINAL */

.u8-game8 {
  left: 990px;
  top: 295px;
}


/* -----------------------------------------
   CONNECTOR SVG
----------------------------------------- */

.bracket-lines {
  position: absolute;

  inset: 0;

  width: 1160px;
  height: 720px;

  overflow: visible;

  pointer-events: none;

  z-index: 1;
}

.bracket-lines path {
  fill: none;

  stroke:
    rgba(255, 255, 255, 0.34);

  stroke-width: 1.2;

  vector-effect:
    non-scaling-stroke;
}


/* Make sure cards appear above lines */

.fixed-bracket
.bracket-match,

.fixed-bracket
.bracket-bye {
  position: relative;

  z-index: 2;
}


/* -----------------------------------------
   MOBILE
----------------------------------------- */

@media (max-width: 700px) {

  .fixed-bracket {
    margin: 0;
  }

}
/* =====================================================
   U10 FIXED BRACKET
===================================================== */

.u10-fixed-bracket {
  width: 1050px;
  height: 620px;

  margin: 0 auto;
}


/* -----------------------------------------
   HEADINGS
----------------------------------------- */

.u10-title-opening {
  left: 0;
}

.u10-title-semis {
  left: 320px;
}

.u10-title-final {
  left: 820px;
}


/* -----------------------------------------
   OPENING ROUND
----------------------------------------- */

.u10-game1 {
  left: 0;
  top: 115px;
}

.u10-game2 {
  left: 0;
  top: 365px;
}


/* -----------------------------------------
   SEMIFINALS
----------------------------------------- */

.u10-game3 {
  left: 320px;
  top: 115px;
}

.u10-game4 {
  left: 320px;
  top: 365px;
}


/* -----------------------------------------
   CHAMPIONSHIP
----------------------------------------- */

.u10-game5 {
  left: 820px;
  top: 240px;
}


/* -----------------------------------------
   U10 CONNECTORS
----------------------------------------- */

.u10-bracket-lines {
  width: 1050px;
  height: 620px;
}


/* MOBILE */

@media (max-width: 700px) {

  .u10-fixed-bracket {
    margin: 0;
  }

}

/* =====================================================
   U13 FIXED BRACKET
===================================================== */

.u13-fixed-bracket {
  width: 1160px;
  height: 720px;

  margin: 0 auto;
}


/* -----------------------------------------
   HEADINGS
----------------------------------------- */

.u13-title-opening {
  left: 0;
}

.u13-title-round2 {
  left: 320px;
}

.u13-title-semifinal {
  left: 680px;
}

.u13-title-final {
  left: 990px;
}


/* -----------------------------------------
   OPENING ROUND
----------------------------------------- */

.u13-game1 {
  left: 0;
  top: 55px;
}

.u13-game2 {
  left: 0;
  top: 215px;
}

.u13-game3 {
  left: 0;
  top: 375px;
}

.u13-game4 {
  left: 0;
  top: 535px;
}


/* -----------------------------------------
   ROUND 2
----------------------------------------- */

/* BEYS winner gets the bye */

.u13-beys-bye {
  left: 320px;
  top: 65px;
}


/* 10:30 PV game */

.u13-game5 {
  left: 320px;
  top: 255px;
}


/* 11:30 WB game */

.u13-game6 {
  left: 320px;
  top: 455px;
}


/* -----------------------------------------
   NOON SEMIFINAL
----------------------------------------- */

.u13-game7 {
  left: 680px;
  top: 215px;
}


/* -----------------------------------------
   CHAMPIONSHIP
----------------------------------------- */

.u13-game8 {
  left: 990px;
  top: 295px;
}


/* -----------------------------------------
   CONNECTORS
----------------------------------------- */

.u13-bracket-lines {
  width: 1160px;
  height: 720px;
}


/* The fixed bracket SVG handles all lines */

.u13-fixed-bracket
.bracket-match::after,

.u13-fixed-bracket
.bracket-bye::after {
  display: none !important;
}


/* -----------------------------------------
   MAKE THE BEYS BYE A LITTLE MORE COMPACT
----------------------------------------- */

.u13-beys-bye
.bracket-bye {
  padding: 11px 12px;
}

.u13-beys-bye
.bracket-bye strong {
  font-size: 0.9rem;
  line-height: 1.25;
}

.u13-beys-bye
.bracket-bye p {
  font-size: 0.62rem;
}


/* -----------------------------------------
   MOBILE
----------------------------------------- */

@media (max-width: 700px) {

  .u13-fixed-bracket {
    margin: 0;
  }

}

/* =====================================================
   MOBILE BRACKET NAVIGATION
===================================================== */

/* Hidden on desktop */
.bracket-mobile-nav {
  display: none;
}


@media (max-width: 700px) {

  .bracket-mobile-nav {
    display: block;
    margin: 16px 0 8px;
  }

  .bracket-mobile-label {
    display: block;

    margin-bottom: 7px;

    font-family: var(--heading);
    font-size: 0.68rem;
    font-weight: 700;

    letter-spacing: 1.4px;
    text-transform: uppercase;

    color: #939daa;
  }


  .bracket-jump-buttons {
    display: flex;

    gap: 7px;

    overflow-x: auto;

    padding-bottom: 5px;

    scrollbar-width: none;

    -webkit-overflow-scrolling: touch;
  }


  .bracket-jump-buttons::-webkit-scrollbar {
    display: none;
  }


  .bracket-jump-buttons button {
    flex: 0 0 auto;

    border: 1px solid rgba(255,255,255,.16);

    border-radius: 999px;

    padding: 8px 13px;

    background: rgba(255,255,255,.06);

    color: #fff;

    font-family: var(--heading);

    font-size: 0.68rem;
    font-weight: 700;

    letter-spacing: 0.5px;

    cursor: pointer;

    transition:
      background .2s ease,
      border-color .2s ease,
      color .2s ease;
  }


  .bracket-jump-buttons button:hover,
  .bracket-jump-buttons button:focus-visible {
    background: rgba(255,255,255,.13);

    border-color: rgba(255,255,255,.32);

    outline: none;
  }


  .bracket-jump-buttons button.active {
    background: #fff;

    border-color: #fff;

    color: #111820;
  }


  /* Keep normal free scrolling */
  .bracket-scroll {
    overflow-x: auto;
    overflow-y: hidden;

    -webkit-overflow-scrolling: touch;

    scroll-behavior: smooth;
  }

}
/* Bigger Clash of the Cleats logo on mobile */
@media (max-width: 700px) {
  .hero-logo {
    width: min(88vw, 360px);
    max-width: none;
    height: auto;
    margin-left: auto;
    margin-right: auto;
  }
}

/* Extra-small phones like iPhone SE */
@media (max-width: 390px) {
  .hero-logo {
    width: 92vw;
  }
}

/* =========================================
   MOBILE - LARGER EVENT LOGO
========================================= */

@media (max-width: 700px) {
  .event-logo img {
    width: 95vw !important;
    max-width: 380px !important;
    height: auto;
    display: block;
    margin: 0 auto;
  }
}

.quick-icon {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 52px;
  height: 52px;

  margin: 0 auto 12px;

  font-size: 1.6rem;

  border-radius: 50%;
}

.quick-icon i {
  line-height: 1;
}


/* =========================
   CUSTOM YARD SIGNS
========================== */

.yard-signs-section {
  background: #f5f7f9;
  padding: 85px 0;
}

.yard-signs-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 55px;
}

/* IMAGE */

.yard-signs-image {
  width: 100%;
  overflow: hidden;
  border-radius: 12px;
}

.yard-signs-image img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 12px;
}

/* CONTENT */

.yard-signs-details {
  min-width: 0;
}

.yard-signs-kicker {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 25px;
  color: #24608a;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 2px;
  white-space: nowrap;
}

.yard-signs-kicker span {
  height: 1px;
  flex: 1;
  background: #a5b7c8;
}

.yard-signs-details h2 {
  margin: 0 0 25px;
  color: #002a43;
  font-family: 'Oswald', sans-serif;
  font-size: clamp(32px, 3.5vw, 50px);
  font-weight: 700;
  line-height: 1.15;
  text-transform: uppercase;
}

.yard-signs-description {
  margin-bottom: 30px;
  color: #334155;
  font-size: 16px;
  line-height: 1.85;
}

/* DEADLINE BOX */

.yard-signs-deadline {
  display: flex;
  align-items: center;
  gap: 22px;
  padding: 24px;
  margin-bottom: 24px;
  background: #e9eef3;
  border-radius: 12px;
}

.yard-signs-calendar {
  display: flex;
  align-items: center;
  justify-content: center;
  padding-right: 22px;
  border-right: 1px solid #b9c8d5;
  color: #002a43;
  font-size: 34px;
}

.yard-signs-deadline span {
  display: block;
  margin-bottom: 7px;
  color: #334e68;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 2px;
}

.yard-signs-deadline strong {
  display: block;
  color: #002a43;
  font-family: 'Oswald', sans-serif;
  font-size: 25px;
  font-weight: 700;
  text-transform: uppercase;
}

/* ORDER BUTTON */

.yard-signs-button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  width: 100%;
  padding: 20px 25px;
  background: #002a43;
  color: #fff;
  border-radius: 9px;
  font-family: 'Oswald', sans-serif;
  font-size: 20px;
  font-weight: 600;
  text-transform: uppercase;
  text-decoration: none;
  transition: background 0.2s ease,
              transform 0.2s ease;
}

.yard-signs-button:hover {
  background: #165273;
  color: #fff;
  transform: translateY(-2px);
}

.yard-signs-button:focus-visible {
  outline: 3px solid #527d9a;
  outline-offset: 4px;
}

.yard-signs-note {
  margin: 18px 0 0;
  color: #64748b;
  font-size: 12px;
  text-align: center;
}

/* TABLET */

@media (max-width: 900px) {
  .yard-signs-layout {
    gap: 30px;
  }

  .yard-signs-deadline {
    padding: 18px;
    gap: 15px;
  }

  .yard-signs-deadline strong {
    font-size: 21px;
  }
}

/* MOBILE */

@media (max-width: 700px) {
  .yard-signs-section {
    padding: 55px 0;
  }

  .yard-signs-layout {
    grid-template-columns: 1fr;
    gap: 35px;
  }

  .yard-signs-image {
    max-width: 480px;
    margin: 0 auto;
  }

  .yard-signs-kicker {
    justify-content: center;
    font-size: 10px;
    gap: 10px;
  }

  .yard-signs-details h2 {
    font-size: 36px;
    text-align: center;
  }

  .yard-signs-description {
    text-align: center;
    font-size: 15px;
  }

  .yard-signs-deadline {
    padding: 18px;
  }

  .yard-signs-calendar {
    font-size: 27px;
    padding-right: 15px;
  }

  .yard-signs-deadline strong {
    font-size: 22px;
  }

  .yard-signs-button {
    font-size: 18px;
    padding: 18px;
  }
}


/* =========================
   COMPACT LOCATION & PARKING
========================== */

.parking-section {
  padding: 65px 0;
  background: #fff;
}

.parking-heading {
  margin-bottom: 30px;
}

.parking-heading p {
  max-width: 750px;
}

/* INFO CARDS */

.parking-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  margin-bottom: 18px;
}

.parking-card {
  background: #f5f7f9;
  border: 1px solid #e5e9ed;
  border-radius: 10px;
  padding: 25px;
}

.parking-card-title {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
}

.parking-card-title i {
  font-size: 20px;
  color: #002a43;
}

.parking-card-title h3 {
  font-family: 'Oswald', sans-serif;
  font-size: 21px;
  color: #002a43;
  text-transform: uppercase;
  margin: 0;
}

.parking-card p {
  font-size: 14px;
  color: #5b6470;
  line-height: 1.65;
  margin: 0;
}

.parking-directions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 16px;
  font-size: 14px;
  font-weight: 700;
  color: #002a43;
  text-decoration: none;
}

.parking-directions:hover {
  text-decoration: underline;
}

/* REMINDER */

.parking-reminder {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 20px;
  background: #eef2f5;
  border-left: 4px solid #002a43;
  border-radius: 6px;
}

.parking-reminder i {
  font-size: 20px;
  color: #002a43;
}

.parking-reminder p {
  margin: 0;
  font-size: 14px;
  line-height: 1.6;
  color: #334155;
}

/* FIELD MAP */

.parking-map {
  max-width: 1000px;
  margin: 35px auto 0;
}

.parking-map-heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 20px;
  margin-bottom: 18px;
}

.parking-map-heading h3 {
  margin: 6px 0 0;
  font-family: 'Oswald', sans-serif;
  font-size: 27px;
  text-transform: uppercase;
  color: #002a43;
}

.parking-map-heading p {
  margin: 0;
  font-size: 14px;
  color: #6b7280;
}

.parking-map img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 10px;
}

/* MOBILE */

@media (max-width: 700px) {
  .parking-section {
    padding: 45px 0;
  }

  .parking-cards {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .parking-card {
    padding: 20px;
  }

  .parking-reminder {
    align-items: flex-start;
  }

  .parking-map {
    margin-top: 28px;
  }

  .parking-map-heading {
    display: block;
  }

  .parking-map-heading p {
    margin-top: 8px;
  }
}

