/* The site's header and footer (landing Nav and Footer components), shared by
   every page that is not the landing page: Find a game, Find a club, sign in,
   sign up and the server-rendered session pages. Copied from the landing
   page's styles (src/pages/index.astro), which keeps its own copy; change both
   together. */
:root { --font-body: "Montserrat", system-ui, sans-serif; }

/* Pages ending in the dark footer: on a window taller than the page, the
   space under it is the footer's colour, not a grey strip. The page keeps its
   own background; only what lies below it shows through. */
html:has(.site-footer) { background: #111111; }
body:has(.site-footer) { min-height: 0; }

.section-shell {
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto;
  }

.nav-links a[aria-current='page'], .mobile-nav-panel a[aria-current='page'] { color: #e63946; }

.landing-page,
  .marketing-nav,
  .site-footer {
    font-family: var(--font-body);
  }

.marketing-nav {
    position: sticky;
    top: 0;
    z-index: 50;
    background: rgba(255, 255, 255, 0.94);
    border-bottom: 1px solid #e5e5e5;
    backdrop-filter: blur(18px);
  }

.nav-shell {
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto;
    min-height: 74px;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 18px;
  }

.brand-link {
    display: inline-flex;
    align-items: center;
    min-width: 0;
  }

.brand-link img {
    display: block;
    width: auto;
    height: 34px;
  }

.nav-links {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-width: 0;
  }

.nav-links a,
  .download-pill,
  .light-pill,
  .newsletter-form button {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
  }

.nav-links a {
    padding: 0 12px;
    color: #404040;
    font-size: 13px;
    font-weight: 500;
  }

.nav-links a:hover,
  .footer-grid a:hover,
  .footer-brand a:hover {
    color: #e63946;
  }

.download-pill {
    padding: 0 18px;
    background: #e63946;
    color: #ffffff;
    font-size: 13px;
    font-weight: 600;
  }

.nav-menu-button {
    display: none;
    width: 38px;
    height: 38px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 4px;
    border: 1px solid #dedee2;
    border-radius: 999px;
    background: #ffffff;
    color: #111111;
    cursor: pointer;
  }

.nav-menu-button span {
    width: 15px;
    height: 2px;
    border-radius: 999px;
    background: currentColor;
    transition: transform 180ms ease, opacity 180ms ease;
  }

.nav-menu-button[aria-expanded="true"] span:nth-child(1) {
    transform: translateY(6px) rotate(45deg);
  }

.nav-menu-button[aria-expanded="true"] span:nth-child(2) {
    opacity: 0;
  }

.nav-menu-button[aria-expanded="true"] span:nth-child(3) {
    transform: translateY(-6px) rotate(-45deg);
  }

.mobile-nav-panel {
    display: none;
  }

.store-button,
  .newsletter-store a,
  .footer-store a {
    min-width: 158px;
    min-height: 49px;
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 11px;
    padding: 0 16px;
    border: 0;
    border-radius: 11px;
    background: #0f0f10;
    color: #ffffff;
    text-decoration: none;
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.12) inset;
  }

.store-button svg,
  .newsletter-store svg,
  .footer-store svg {
    width: 22px;
    height: 22px;
    fill: currentColor;
    stroke: none;
    flex: 0 0 auto;
  }

.store-button .google-play-mark,
  .newsletter-store .google-play-mark,
  .footer-store .google-play-mark {
    width: 23px;
    height: 23px;
    fill: none;
    stroke: none;
  }

.store-button span,
  .newsletter-store span,
  .footer-store span {
    display: grid;
    justify-items: start;
    line-height: 1;
  }

.store-button small,
  .newsletter-store small,
  .footer-store small {
    font-size: 9px;
    font-weight: 500;
    letter-spacing: -0.015em;
  }

.store-button strong,
  .newsletter-store strong,
  .footer-store strong {
    margin-top: 4px;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: -0.035em;
  }

.screen-panel span,
  .mini-footer-tabs span {
    min-height: 64px;
    border-radius: 8px;
    background: #f4f4f4;
    border-bottom: 4px solid #e63946;
  }

.mini-footer-tabs {
    margin-top: auto;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 8px;
  }

.mini-footer-tabs span {
    min-height: 42px;
  }

.site-footer {
    padding: 62px 0;
    background: #111111;
    color: #ffffff;
  }

.footer-shell {
    display: grid;
    grid-template-columns: minmax(260px, 360px) minmax(0, 1fr);
    gap: 48px;
  }

.footer-brand img {
    width: auto;
    height: 34px;
    padding: 7px 9px;
    border-radius: 8px;
    background: #ffffff;
  }

.footer-brand p {
    margin: 18px 0 10px;
    color: #d7d7d7;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.7;
  }

.footer-brand a,
  .footer-grid a {
    color: #ffffff;
    font-size: 13px;
    font-weight: 500;
    text-decoration: none;
  }

.footer-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
  }

.footer-grid nav,
  .footer-grid > div,
  .social-list,
  .footer-store {
    display: grid;
    align-content: start;
    gap: 10px;
  }

.footer-grid h2 {
    margin: 0 0 5px;
    color: #8f8f8f;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
  }

.social-list a {
    color: #d7d7d7;
    font-size: 13px;
    font-weight: 500;
    text-decoration: none;
  }

@media (max-width: 1100px) {
  .nav-shell {
      width: min(100% - 32px, 1180px);
      min-height: 68px;
      grid-template-columns: minmax(0, 1fr) auto auto;
      gap: 12px;
    }
  .brand-link img {
      max-width: 160px;
      height: 30px;
    }
  .nav-links {
      display: none;
    }
  .nav-menu-button {
      display: inline-flex;
      justify-self: end;
    }
  .mobile-nav-panel {
      width: min(100% - 32px, 1180px);
      margin: 0 auto 10px;
      padding: 8px;
      border: 1px solid #e5e5e5;
      border-radius: 18px;
      background: rgba(255, 255, 255, 0.96);
      box-shadow: 0 18px 40px rgba(17, 17, 17, 0.08);
      backdrop-filter: blur(18px);
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 4px;
    }
  .mobile-nav-panel:not([hidden]) {
      display: grid;
    }
  .mobile-nav-panel a {
      min-height: 40px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border-radius: 999px;
      color: #404040;
      font-size: 13px;
      font-weight: 600;
      text-decoration: none;
    }
  .mobile-nav-panel a:hover {
      background: #f7f7f8;
      color: #e63946;
    }
  .download-pill {
      min-height: 38px;
      padding: 0 15px;
      font-size: 12px;
    }
}

@media (max-width: 980px) {
  .leaderboard-shell,
    .newsletter-shell,
    .footer-shell {
      grid-template-columns: 1fr;
    }
  .steps-grid,
    .stats-shell,
    .faq-shell,
    .footer-grid {
      grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 760px) {
  .landing-page,
    .marketing-nav,
    .hero-section,
    .features-section,
    .site-footer {
      overflow-x: hidden;
    }
  .nav-shell {
      width: min(100% - 24px, 1180px);
      min-height: 64px;
      grid-template-columns: minmax(0, 1fr) auto auto;
      gap: 12px;
      padding: 8px 0;
    }
  .brand-link img {
      max-width: 150px;
      height: 26px;
    }
  .nav-links {
      display: none;
    }
  .nav-menu-button {
      display: inline-flex;
      justify-self: end;
    }
  .mobile-nav-panel {
      width: min(100% - 24px, 1180px);
      margin: 0 auto 10px;
      padding: 8px;
      border: 1px solid #e5e5e5;
      border-radius: 18px;
      background: rgba(255, 255, 255, 0.96);
      box-shadow: 0 18px 40px rgba(17, 17, 17, 0.08);
      backdrop-filter: blur(18px);
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 4px;
    }
  .mobile-nav-panel:not([hidden]) {
      display: grid;
    }
  .mobile-nav-panel a {
      min-height: 40px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border-radius: 999px;
      color: #404040;
      font-size: 13px;
      font-weight: 600;
      text-decoration: none;
    }
  .mobile-nav-panel a:hover {
      background: #f7f7f8;
      color: #e63946;
    }
  .download-pill {
      width: auto;
      min-height: 36px;
      padding: 0 14px;
      font-size: 12px;
    }
  .steps-grid,
    .stats-shell,
    .faq-shell,
    .footer-grid {
      grid-template-columns: 1fr;
    }
  .newsletter-store,
    .footer-store {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 150px));
      justify-content: start;
    }
  .footer-store {
      grid-template-columns: 132px;
      gap: 8px;
    }
  .newsletter-store a,
    .footer-store a {
      min-width: 0;
      width: 100%;
      justify-content: center;
      padding: 0 12px;
    }
  .footer-store a {
      min-height: 40px;
      justify-content: flex-start;
      gap: 8px;
      padding: 0 11px;
      border-radius: 9px;
    }
  .footer-store svg {
      width: 17px;
      height: 17px;
    }
  .footer-store .google-play-mark {
      width: 18px;
      height: 18px;
    }
  .footer-store small {
      font-size: 7px;
    }
  .footer-store strong {
      margin-top: 2px;
      font-size: 12px;
    }
  .site-footer {
      padding: 46px 0;
    }
}

@media (max-width: 420px) {
  .nav-shell {
      gap: 8px;
    }
  .brand-link img {
      max-width: 126px;
      height: 23px;
    }
  .nav-menu-button {
      width: 34px;
      height: 34px;
    }
  .download-pill {
      min-height: 34px;
      padding: 0 12px;
      font-size: 11px;
    }
}

@media (max-width: 360px) {
  .footer-store {
      grid-template-columns: 128px;
      max-width: 128px;
    }
}
