/**
 * WDHC tablet layout · 601-1024
 * Beats the phone stack that currently wins at max-width: 900px.
 * Phone (<=600) is left alone. Desktop 901+ stays; compact band 901-1199.
 * Gold #D4AF37. Official bar copy stays 1.25 in / 32 mm. No HID.
 */

/* Shared cine-hero tighten (tablet + desktop): 28px black band -> ~10px */
@media (min-width: 601px) {
  .wdhc-cine-hero,
  .wdhc-cine-hero.wdhc-cine-hero--hang,
  header.wdhc-cine-hero,
  header[data-wdhc-cinematic-hero].wdhc-cine-hero,
  .submit-page-hero--cinematic,
  .rules-page-hero--cinematic,
  header.submit-page-hero,
  header.rules-page-hero--cinematic {
    margin-bottom: 10px !important;
  }
}

/* ============================================================
   TABLET BAND 601-1024
   ============================================================ */
@media (min-width: 601px) and (max-width: 1024px) {
  :root {
    --wdhc-nav-h: 72px;
    --wdhc-tablet: 1;
    --wdhc-hero-mb: 10px;
  }

  .container,
  main.container,
  main#main.container,
  #main.container,
  main.ch-page,
  main.chm-page,
  main.film-main,
  main.gt,
  main.rules-book {
    max-width: min(1100px, 100%) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    box-sizing: border-box !important;
  }

  header + .container,
  .wdhc-cine-hero + .container,
  .wdhc-cine-hero + main,
  .wdhc-marquee + main.container {
    padding-top: 16px !important;
  }

  .wdhc-cine-hero__inner {
    max-width: min(920px, 100%) !important;
    padding: 16px 22px 18px !important;
  }
  .wdhc-cine-hero__title {
    font-size: clamp(2rem, 4.6vw, 2.85rem) !important;
  }
  .wdhc-cine-hero__lead {
    font-size: 1.02rem !important;
    max-width: 46rem !important;
  }

  .wdhc-section-panel {
    padding: 18px 20px !important;
    margin-bottom: 14px !important;
  }

  /* Hide phone sticky CTA — tablet has room for Submit in nav */
  .mobile-submit-bar {
    display: none !important;
  }
  body:has(.mobile-submit-bar),
  body:has(.mobile-submit-bar):not(.wdhc-form-page):not(.page-submit) {
    padding-bottom: 0 !important;
  }

  /* Compact leaderboard cards (JS still emits cards below 901) */
  .lb-row.lb-mobile-card {
    padding: 10px 12px 10px 14px !important;
    gap: 10px !important;
    min-height: 0 !important;
  }
  .lb-row-wrapper { margin-bottom: 0 !important; }
  .lb-card-rank {
    flex: 0 0 40px !important;
    font-size: 1.45rem !important;
  }
  .lb-row.lb-mobile-card .lb-card-time,
  .lb-row.lb-mobile-card .lb-time,
  .lb-row.lb-mobile-card .hang-time {
    font-size: 1.35rem !important;
  }
  .lb-row.lb-mobile-card .lb-card-name,
  .lb-row.lb-mobile-card .lb-card-name-line-primary,
  .lb-row.lb-mobile-card .lb-name,
  .lb-row.lb-mobile-card .athlete-name {
    font-size: 1.05rem !important;
  }

  .lb-toolbar-filters--row,
  .lb-toolbar-filters--full { gap: 10px 12px !important; }
  .lb-filter-group--select {
    flex: 1 1 calc(50% - 10px) !important;
    min-width: 150px !important;
  }

  /* Submit: fill the column */
  body.page-submit .container,
  .page-submit .container,
  html.wdhc-submit-mobile body.page-submit .container {
    max-width: min(960px, 100%) !important;
    padding: 22px 24px 36px !important;
    margin: 12px auto 28px !important;
  }
  .submit-page-hero--cinematic .wdhc-cine-hero__inner,
  .submit-page-hero--cinematic .submit-hero-inner {
    max-width: min(920px, 100%) !important;
    padding: 14px 20px 16px !important;
  }
  .submit-stepper,
  .submit-path-panel { max-width: none !important; }
  .submit-form-header,
  .form-header { margin-bottom: 16px !important; }

  /* Film: setup beside the phone */
  .page-film .film-main {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 340px) !important;
    gap: 14px 20px !important;
    align-items: start !important;
    max-width: min(1100px, 100%) !important;
    padding: 14px 20px 48px !important;
  }
  .page-film .film-hero,
  .page-film .film-steps {
    grid-column: 1 / -1 !important;
    margin-bottom: 8px !important;
  }
  .page-film .film-hero { margin: 4px 0 6px !important; }
  .page-film .film-hero__title {
    font-size: clamp(1.85rem, 4vw, 2.6rem) !important;
  }
  .page-film .film-options {
    grid-column: 1 !important;
    margin: 0 !important;
  }
  .page-film .film-phone {
    grid-column: 2 !important;
    grid-row: 3 / span 4 !important;
    margin: 0 auto !important;
    max-width: 340px !important;
  }

  /* About: stop the 720px left island */
  body.about-page #main.container,
  .about-page main.container {
    max-width: min(1040px, 100%) !important;
    padding: 18px 20px 56px !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 16px !important;
  }
  body.about-page #main.container > section:nth-child(n + 3) {
    grid-column: 1 / -1 !important;
  }
  .about-founder {
    display: grid !important;
    grid-template-columns: 132px minmax(0, 1fr) !important;
    gap: 16px 18px !important;
    align-items: start !important;
  }
  .about-founder > img {
    width: 132px !important;
    height: 132px !important;
    object-fit: cover !important;
    border-radius: 50% !important;
  }
  .about-photo-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
    margin-top: 14px !important;
  }

  main.rules-book,
  .rules-book.container,
  .ch-page,
  main.ch-page {
    max-width: min(1040px, 100%) !important;
  }

  /* Gym TV: 2-col intro + 2-col cards */
  main.gt {
    max-width: min(1040px, 100%) !important;
    padding: 20px 22px 56px !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) !important;
    gap: 8px 24px !important;
    align-items: start !important;
  }
  main.gt > p:first-of-type,
  main.gt > h1 { grid-column: 1 !important; }
  main.gt > .lead {
    grid-column: 2 !important;
    grid-row: 1 / span 3 !important;
    max-width: none !important;
    margin: 0 !important;
    align-self: center !important;
  }
  main.gt > .gt-grid,
  main.gt > .gt-cta { grid-column: 1 / -1 !important; }
  .gt-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 12px !important;
    margin: 16px 0 8px !important;
  }
  .gt-card:last-child { grid-column: 1 / -1 !important; }

  /* Locker login: copy + form */
  body.portal-landing .hero {
    max-width: min(1040px, 100%) !important;
    padding: 28px 22px 40px !important;
  }
  body.portal-landing .hero-grid {
    display: block !important;
    grid-template-columns: none !important;
  }
  body.portal-landing .hero-copy {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 1fr) !important;
    gap: 12px 28px !important;
    align-items: start !important;
    max-width: none !important;
  }
  body.portal-landing .hero-copy > .eyebrow,
  body.portal-landing .hero-copy > h1,
  body.portal-landing .hero-copy > .hero-lead-intro,
  body.portal-landing .hero-copy > .hero-lead-list,
  body.portal-landing .hero-copy > .hero-lead-foot {
    grid-column: 1 !important;
  }
  body.portal-landing .signin-card,
  body.portal-landing .success-card,
  body.portal-landing .signedin-card {
    grid-column: 2 !important;
    grid-row: 1 / span 8 !important;
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
  }
  body.portal-landing .hero h1 {
    font-size: clamp(2rem, 4.2vw, 2.8rem) !important;
    margin-bottom: 10px !important;
  }
  body.portal-landing .hero-lead-intro { max-width: none !important; }

  header .hero-title,
  header h1 {
    font-size: clamp(2.6rem, 7.2vw, 4.4rem) !important;
  }
  header .subtitle {
    font-size: clamp(0.86rem, 1.6vw, 1.05rem) !important;
    letter-spacing: 0.14em !important;
    white-space: normal !important;
  }
  header { padding: 16px 18px 10px !important; }
}

/* ============================================================
   CRITICAL 601-900 — beat max-width:900px phone rules
   ============================================================ */
@media (min-width: 601px) and (max-width: 900px) {
  :root { --wdhc-nav-h: 70px; }

  /* Tablet nav: real tabs, not empty header + tiny hamburger */
  nav:has(.nav-center),
  nav.wdhc-site-nav {
    height: var(--wdhc-nav-h) !important;
    min-height: var(--wdhc-nav-h) !important;
    padding: 0 10px !important;
    gap: 6px !important;
    flex-wrap: nowrap !important;
  }
  .nav-logo { margin-right: 0 !important; }
  .nav-logo img {
    height: 52px !important;
    max-width: 168px !important;
  }
  .nav-menu-toggle { display: none !important; }
  .nav-mobile-tools {
    display: flex !important;
    order: 3 !important;
    margin-left: 0 !important;
  }
  .nav-actions {
    display: flex !important;
    align-items: center !important;
    flex-shrink: 0 !important;
    order: 4 !important;
  }
  nav:has(.nav-center) .nav-actions .nav-cta,
  .nav-cta {
    display: inline-flex !important;
    font-size: 0.72rem !important;
    padding: 7px 10px !important;
    letter-spacing: 0.04em !important;
    white-space: nowrap !important;
  }
  .nav-center,
  nav.wdhc-site-nav .nav-center,
  body > .nav-center {
    display: flex !important;
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    width: auto !important;
    max-width: none !important;
    max-height: none !important;
    transform: none !important;
    flex: 1 1 auto !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 2px !important;
    padding: 0 4px !important;
    margin: 0 !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
  .nav-center a,
  .nav-center a:link,
  .nav-center a:visited {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 0 !important;
    height: auto !important;
    padding: 6px 7px !important;
    font-size: 0.72rem !important;
    letter-spacing: 0.04em !important;
    white-space: nowrap !important;
    border-radius: 6px !important;
    background: transparent !important;
    border: none !important;
  }
  /* JS injects this gold CTA as first child of .nav-center at <=900px.
     Hide it so tablet shows real tabs + the one .nav-cta on the right. */
  .nav-center .nav-mobile-submit-link,
  .nav-center a.nav-mobile-submit-link,
  .nav-center a.nav-mobile-submit-link:link,
  .nav-center a.nav-mobile-submit-link:visited,
  .nav-center a.nav-mobile-submit-link:hover,
  .nav-center a.nav-mobile-submit-link:focus-visible,
  .nav-center a.nav-mobile-submit-link:active,
  .nav-center .nav-mobile-submit-link.active {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
    flex: 0 0 0 !important;
    border: none !important;
    box-shadow: none !important;
  }
  .nav-cta,
  nav:has(.nav-center) .nav-actions .nav-cta {
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: none !important;
  }

  /* Homepage: board + sidebar. Pack the right rail. */
  .content-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(220px, 260px) !important;
    gap: 10px 16px !important;
    align-items: start !important;
  }
  .main-column,
  .sidebar-column {
    align-self: start !important;
    height: auto !important;
    min-width: 0 !important;
  }
  .home-lower-band {
    grid-column: 1 / -1 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(220px, 260px) !important;
    gap: 10px 16px !important;
    align-items: start !important;
    margin-top: 8px !important;
    padding-top: 6px !important;
  }
  /* Do not full-span challenges. Parent is placing Monthly Challenges
     under the 10-row board (left track). Calc stays on the right rail. */
  .home-lower-band > .grip-calc-card,
  .home-lower-band > .home-lower-band__calc {
    min-width: 0 !important;
    max-width: none !important;
  }
  .home-lower-band > .grip-calc-card .grip-calc-grid {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }

  .container { padding: 16px 16px 48px !important; }
  header + .container { padding-top: 14px !important; }

  .controls-header { flex-wrap: wrap !important; }
  .controls-header__left {
    flex-direction: row !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 8px 12px !important;
    width: auto !important;
  }
  .lb-sort-inline { width: auto !important; }

  .video-submissions-section--lead .video-submissions-head {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px 16px !important;
    text-align: left !important;
  }

  .page-film .film-main {
    grid-template-columns: minmax(0, 1fr) minmax(240px, 300px) !important;
  }
  body.about-page #main.container {
    grid-template-columns: 1fr 1fr !important;
  }
  body.portal-landing .hero-copy {
    grid-template-columns: minmax(0, 1fr) minmax(260px, 1fr) !important;
    gap: 10px 18px !important;
  }
  main.gt { grid-template-columns: 1fr 1fr !important; }

  body.page-submit .container,
  .page-submit .container {
    max-width: min(860px, 100%) !important;
    padding: 18px 20px 28px !important;
  }
}

/* ============================================================
   Compact desktop 901-1199 (iPad landscape / small laptop)
   ============================================================ */
@media (min-width: 901px) and (max-width: 1199px) {
  :root { --wdhc-nav-h: 72px; }
  nav:has(.nav-center) {
    height: var(--wdhc-nav-h) !important;
    min-height: var(--wdhc-nav-h) !important;
    padding: 0 14px !important;
    gap: 8px !important;
  }
  .nav-logo img {
    height: 56px !important;
    max-width: 210px !important;
  }
  .nav-center {
    gap: 2px 6px !important;
    flex-wrap: nowrap !important;
  }
  .nav-center a {
    font-size: 0.78rem !important;
    padding: 6px 8px !important;
    letter-spacing: 0.04em !important;
  }
  .nav-cta {
    font-size: 0.76rem !important;
    padding: 7px 11px !important;
  }
  .mobile-submit-bar { display: none !important; }
  body:has(.mobile-submit-bar) { padding-bottom: 0 !important; }

  .content-grid {
    grid-template-columns: minmax(0, 1fr) minmax(240px, 300px) !important;
    gap: 10px 18px !important;
  }
  .home-lower-band {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(240px, 300px) !important;
    gap: 10px 18px !important;
  }

  .container,
  main.container,
  #main.container {
    max-width: min(1100px, 100%) !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  header h1,
  header .hero-title {
    font-size: clamp(3.4rem, 7vw, 5.6rem) !important;
  }

  body.about-page #main.container {
    max-width: min(1040px, 100%) !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 16px !important;
  }
  body.about-page #main.container > section:nth-child(n + 3) {
    grid-column: 1 / -1 !important;
  }

  body.portal-landing .hero-copy {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 1fr) !important;
    gap: 16px 28px !important;
  }
  body.portal-landing .hero-copy > .eyebrow,
  body.portal-landing .hero-copy > h1,
  body.portal-landing .hero-copy > .hero-lead-intro,
  body.portal-landing .hero-copy > .hero-lead-list,
  body.portal-landing .hero-copy > .hero-lead-foot {
    grid-column: 1 !important;
  }
  body.portal-landing .signin-card,
  body.portal-landing .success-card,
  body.portal-landing .signedin-card {
    grid-column: 2 !important;
    grid-row: 1 / span 8 !important;
    max-width: none !important;
  }

  body.page-submit .container,
  .page-submit .container {
    max-width: min(960px, 100%) !important;
  }

  .page-film .film-main {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 360px) !important;
    gap: 16px 24px !important;
  }
  .page-film .film-hero,
  .page-film .film-steps { grid-column: 1 / -1 !important; }
  .page-film .film-options { grid-column: 1 !important; }
  .page-film .film-phone { grid-column: 2 !important; }

  main.gt {
    max-width: min(1040px, 100%) !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px 24px !important;
  }
  main.gt > .lead {
    grid-column: 2 !important;
    grid-row: 1 / span 3 !important;
    max-width: none !important;
  }
  main.gt > .gt-grid,
  main.gt > .gt-cta { grid-column: 1 / -1 !important; }
  .gt-grid { grid-template-columns: 1fr 1fr !important; }
}

/* Beat phone-centered titles on tablet and small laptops. */
@media (min-width: 601px) {
  .video-submissions-head,
  .video-submissions-section--lead .video-submissions-head,
  .video-submissions-section--lead .video-submissions-head__titles,
  .video-submissions-eyebrow,
  .video-submissions-title,
  .video-submissions-lead,
  .home-challenges-hero,
  .home-challenges-hero-kicker,
  .home-challenges-hero-title {
    text-align: left !important;
  }
  .video-submissions-section--lead .video-submissions-head__titles,
  .home-challenges-hero {
    align-items: flex-start !important;
  }
  .home-challenges-hero {
    justify-content: flex-start !important;
  }
  .video-submissions-head::after {
    left: 0 !important;
    transform: none !important;
  }
}

@media (min-width: 601px) and (max-width: 1024px) {
  .gyms-hero + .container,
  .gyms-page .container,
  .pro-page .container,
  .learn-page .container,
  .grip-age-page .container,
  .hang-types-page .container,
  .championships-page .container,
  main.kit-page,
  .wdhc-page-hero + .container {
    max-width: min(1040px, 100%) !important;
  }
}
