/* brand/chrome.css — Sitewide nav, page shell, footer scrub, empty-state cards (Wave 3 split; cascade slice 869-1618) */
/* Sitewide nav — match approved mock (sticky, blur, tight GameBattles chrome) */
/* W4h5g4 — dropdown portals to body; header no longer needs mega z-index. Keep sticky + backdrop-filter (visual chrome); portal escapes that stacking context. */
/* Site header only. Do not use `body header` — league/ladder/news intros are <header> and must scroll away. */
body .wp-block-template-part[area="header"],
header.wp-block-template-part,
body .wp-site-blocks > header {
  position: sticky !important;
  top: 0 !important;
  z-index: 200 !important;
  background: var(--tmg-header-bg) !important;
  backdrop-filter: blur(10px) !important;
  -webkit-backdrop-filter: blur(10px) !important;
  border-bottom: 1px solid var(--tmg-header-border) !important;
  min-height: 64px;
  box-shadow: none !important;
  color: var(--tmg-fg) !important;
}


/* 1.8.80 — in-content intros are not site chrome. Static even if a broad header rule returns. */
main header,
.entry-content header,
.wp-block-post-content header,
.tmg-league-header,
.tmg-ladder-teams-header,
.tmg-news-masthead,
.tmg-players-head,
.tmg-teams-head,
.tmg-tournament-header,
.tmg-editorial-head,
.tmg-event-calendar-head,
.tmg-team-banner,
.tmg-lo-head,
.tmg-settings-head,
.tmg-notify-head,
.tmg-notify-manage-head,
.tmg-league-team-card-head,
.tmg-ladder-panel-head {
  position: static !important;
  top: auto !important;
  inset: auto !important;
  z-index: auto !important;
  min-height: 0 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* One header bar. TT5 nests alignfull > has-global-padding > alignwide,
   and each of those is a .wp-block-group. Padding + nowrap flex on every
   group stacks 24px gutters. The middle group then sizes to min-content
   (padding + padded child) and sticks out of a 360px viewport by 18px
   (24px outer pad + 354px min-content - 360). Shells stay full-bleed.
   Only the alignwide row is the bar. */
header.wp-block-template-part > .wp-block-group,
.wp-block-template-part[area="header"] > .wp-block-group,
.wp-block-template-part[class*="header"] > .wp-block-group,
body .wp-site-blocks > header > .wp-block-group,
header.wp-block-template-part > .wp-block-group > .wp-block-group,
.wp-block-template-part[area="header"] > .wp-block-group > .wp-block-group,
.wp-block-template-part[class*="header"] > .wp-block-group > .wp-block-group,
body .wp-site-blocks > header > .wp-block-group > .wp-block-group {
  display: block !important;
  box-sizing: border-box;
  width: 100%;
  max-width: none !important;
  min-width: 0;
  min-height: 0;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

header.wp-block-template-part .wp-block-group.alignwide,
.wp-block-template-part[area="header"] .wp-block-group.alignwide,
.wp-block-template-part[class*="header"] .wp-block-group.alignwide,
body .wp-site-blocks > header .wp-block-group.alignwide {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center !important;
  column-gap: 1.25rem !important;
  row-gap: 0 !important;
  box-sizing: border-box;
  min-width: 0;
  min-height: 64px;
  width: 100%;
  max-width: 1240px;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 0 24px !important;
  background: transparent !important;
  box-shadow: none !important;
}

/*
 * 1.8.86 — True three-zone header (1fr | auto | 1fr).
 * TT5 ships logo | right-cluster(nav+woo). Competition JS lifts <nav> out of
 * the cluster so bar children are: logo | nav | end-cluster. Equal 1fr side
 * columns center the shrink-wrapped primary links on the bar / viewport —
 * not in leftover space between asymmetric chrome. No transform / margin-left
 * fake centering. Mobile ≤782 keeps [Logo][☰] …… [theme][account].
 */
header.wp-block-template-part .wp-block-group.alignwide > .wp-block-group,
.wp-block-template-part[area="header"] .wp-block-group.alignwide > .wp-block-group,
.wp-block-template-part[class*="header"] .wp-block-group.alignwide > .wp-block-group,
body .wp-site-blocks > header .wp-block-group.alignwide > .wp-block-group,
header.wp-block-template-part .wp-block-group.alignwide > .tmg-header-end,
.wp-block-template-part[area="header"] .wp-block-group.alignwide > .tmg-header-end,
.wp-block-template-part[class*="header"] .wp-block-group.alignwide > .tmg-header-end,
body .wp-site-blocks > header .wp-block-group.alignwide > .tmg-header-end {
  display: flex !important;
  flex-wrap: nowrap;
  align-items: center !important;
  justify-content: flex-end !important;
  justify-self: end;
  gap: 0.65rem !important;
  box-sizing: border-box;
  min-width: 0;
  width: auto;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body .wp-block-site-logo {
  justify-self: start;
  flex: 0 0 auto;
  margin-right: 0 !important;
  margin-bottom: 0 !important;
}

body .wp-block-site-logo a.custom-logo-link {
  display: inline-flex;
}

body .wp-block-site-logo img {
  width: 36px;
  height: 36px;
  object-fit: contain;
}

/* Primary nav — middle auto column; shrink-wrap links (not flex:1 leftover) */
body header .wp-block-navigation,
body .wp-block-template-part[area="header"] .wp-block-navigation,
body .wp-site-blocks > header .wp-block-navigation {
  justify-self: center;
  flex: 0 0 auto;
  display: flex !important;
  flex-wrap: nowrap;
  align-items: center !important;
  justify-content: center !important;
  gap: 18px !important;
  min-width: 0;
  width: max-content;
  max-width: 100%;
  background: transparent !important;
  /* Beat TT5 items-justified-right custom properties */
  --navigation-layout-justification-setting: center !important;
  --navigation-layout-justify: center !important;
}

body header .wp-block-navigation .wp-block-navigation__container,
body .wp-block-template-part[area="header"] .wp-block-navigation .wp-block-navigation__container,
body .wp-site-blocks > header .wp-block-navigation .wp-block-navigation__container,
body header .wp-block-navigation .wp-block-navigation__responsive-container-content,
body .wp-block-template-part[area="header"] .wp-block-navigation .wp-block-navigation__responsive-container-content,
body .wp-site-blocks > header .wp-block-navigation .wp-block-navigation__responsive-container-content {
  justify-content: center !important;
}

/* Trailing chrome lives inside the end cluster (right 1fr zone) */
body header .tmg-theme-toggle,
body .wp-block-template-part[area="header"] .tmg-theme-toggle,
body .wp-site-blocks > header .tmg-theme-toggle {
  flex: 0 0 auto;
  margin-left: 0;
}

body header .tmg-account-menu,
body .wp-block-template-part[area="header"] .tmg-account-menu,
body .wp-site-blocks > header .tmg-account-menu,
body header .tmg-account-btn,
body .wp-block-template-part[area="header"] .tmg-account-btn,
body .wp-site-blocks > header .tmg-account-btn {
  flex: 0 0 auto;
}

body header .wp-block-woocommerce-customer-account,
body header .wc-block-customer-account,
body header .wp-block-woocommerce-mini-cart,
body header .wc-block-mini-cart,
body .wp-block-template-part[area="header"] .wp-block-woocommerce-customer-account,
body .wp-block-template-part[area="header"] .wp-block-woocommerce-mini-cart,
body .wp-site-blocks > header .wp-block-woocommerce-customer-account,
body .wp-site-blocks > header .wp-block-woocommerce-mini-cart {
  flex: 0 0 auto;
}

/* Desktop: never show the overlay open button in the centered nav */
@media (min-width: 783px) {
  body header .wp-block-navigation__responsive-container-open,
  body .wp-block-template-part[area="header"] .wp-block-navigation__responsive-container-open,
  body .wp-site-blocks > header .wp-block-navigation__responsive-container-open {
    display: none !important;
  }
}

/* Mobile ≤782: [Logo][Hamburger] …… [theme][account] */
@media (max-width: 782px) {
  header.wp-block-template-part .wp-block-group.alignwide,
  .wp-block-template-part[area="header"] .wp-block-group.alignwide,
  .wp-block-template-part[class*="header"] .wp-block-group.alignwide,
  body .wp-site-blocks > header .wp-block-group.alignwide {
    display: flex !important;
    grid-template-columns: none;
    flex-wrap: nowrap;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: .65rem !important;
    padding: 0 18px !important;
  }

  header.wp-block-template-part .wp-block-group.alignwide::after,
  .wp-block-template-part[area="header"] .wp-block-group.alignwide::after,
  .wp-block-template-part[class*="header"] .wp-block-group.alignwide::after,
  body .wp-site-blocks > header .wp-block-group.alignwide::after {
    content: none !important;
    display: none !important;
  }

  body .wp-block-site-logo {
    flex: 0 0 auto;
  }

  body header .wp-block-navigation,
  body .wp-block-template-part[area="header"] .wp-block-navigation,
  body .wp-site-blocks > header .wp-block-navigation {
    flex: 0 0 auto;
    width: auto;
    justify-content: flex-start !important;
    gap: 0 !important;
    --navigation-layout-justification-setting: flex-start !important;
    --navigation-layout-justify: flex-start !important;
  }

  header.wp-block-template-part .wp-block-group.alignwide > .wp-block-group,
  .wp-block-template-part[area="header"] .wp-block-group.alignwide > .wp-block-group,
  .wp-block-template-part[class*="header"] .wp-block-group.alignwide > .wp-block-group,
  body .wp-site-blocks > header .wp-block-group.alignwide > .wp-block-group,
  header.wp-block-template-part .wp-block-group.alignwide > .tmg-header-end,
  .wp-block-template-part[area="header"] .wp-block-group.alignwide > .tmg-header-end,
  .wp-block-template-part[class*="header"] .wp-block-group.alignwide > .tmg-header-end,
  body .wp-site-blocks > header .wp-block-group.alignwide > .tmg-header-end {
    margin-left: auto !important;
    flex: 0 0 auto;
    justify-self: unset;
  }

  /* Align open-button visibility with owned #tmg-mobile-nav (782), not WP core 600 */
  body header .wp-block-navigation__responsive-container-open,
  body .wp-block-template-part[area="header"] .wp-block-navigation__responsive-container-open,
  body .wp-site-blocks > header .wp-block-navigation__responsive-container-open {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    margin: 0;
    padding: 0;
    color: var(--tmg-mist, #e8eef0);
  }

  body header .wp-block-navigation__responsive-container:not(.is-menu-open),
  body .wp-block-template-part[area="header"] .wp-block-navigation__responsive-container:not(.is-menu-open),
  body .wp-site-blocks > header .wp-block-navigation__responsive-container:not(.is-menu-open) {
    display: none !important;
  }
}

body header .wp-block-navigation .wp-block-navigation-item,
body .wp-block-template-part[area="header"] .wp-block-navigation-item {
  margin: 0 !important;
}

body header .wp-block-navigation-item a,
body header .wp-block-navigation-item__content,
body .wp-block-template-part[area="header"] .wp-block-navigation-item a,
body .wp-block-template-part[area="header"] .wp-block-navigation-item__content,
body .wp-site-blocks > header .wp-block-navigation-item a,
body header .wp-block-navigation a {
  color: var(--tmg-muted) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: .01em;
  padding: .35rem .15rem !important;
  background: transparent !important;
  text-decoration: none !important;
  transition: color .2s ease;
}

body header .wp-block-navigation-item a:hover,
body header .wp-block-navigation-item a:focus-visible,
body .wp-block-template-part[area="header"] .wp-block-navigation-item a:hover,
body .wp-block-template-part[area="header"] .wp-block-navigation-item a:focus-visible,
body .wp-site-blocks > header .wp-block-navigation-item a:hover {
  color: var(--tmg-mist) !important;
  background: transparent !important;
}

/* W4h5k: primary-nav current teal site-wide (Home/News/Ladder/League/Players/Tournaments/Account).
   Cover block-nav + classic menus; aria-current on <a> (WP default) and on <li>; current-menu-* classes. */
body header .wp-block-navigation-item.current-menu-item > a,
body header .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content,
body header .wp-block-navigation-item.current-menu-ancestor > a,
body header .wp-block-navigation-item.current-menu-ancestor > .wp-block-navigation-item__content,
body header .wp-block-navigation-item[aria-current="page"] > a,
body header .wp-block-navigation-item[aria-current="page"] > .wp-block-navigation-item__content,
body header .wp-block-navigation-item a[aria-current="page"],
body header .wp-block-navigation-item .wp-block-navigation-item__content[aria-current="page"],
body header a.wp-block-navigation-item__content[aria-current="page"],
body header .wp-block-navigation-item .current-menu-item > a,
body header .menu-item.current-menu-item > a,
body header .menu-item.current-menu-ancestor > a,
body header .current-menu-item > a,
body header .current-menu-ancestor > a,
body header .current_page_item > a,
body header a[aria-current="page"],
body .wp-block-template-part[area="header"] .wp-block-navigation-item.current-menu-item > a,
body .wp-block-template-part[area="header"] .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content,
body .wp-block-template-part[area="header"] .wp-block-navigation-item.current-menu-ancestor > a,
body .wp-block-template-part[area="header"] .wp-block-navigation-item[aria-current="page"] > a,
body .wp-block-template-part[area="header"] .wp-block-navigation-item a[aria-current="page"],
body .wp-block-template-part[area="header"] .menu-item.current-menu-item > a,
body .wp-block-template-part[area="header"] a[aria-current="page"],
body .wp-site-blocks > header .wp-block-navigation-item.current-menu-item > a,
body .wp-site-blocks > header .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content,
body .wp-site-blocks > header .wp-block-navigation-item.current-menu-ancestor > a,
body .wp-site-blocks > header .wp-block-navigation-item a[aria-current="page"],
body .wp-site-blocks > header .menu-item.current-menu-item > a,
body .wp-site-blocks > header a[aria-current="page"] {
  color: var(--tmg-teal) !important;
}

/* Kill giant TT5 header padding / white chrome on nav wrappers */
body header .wp-block-group.has-background,
body header .wp-block-group[style*="background"],
body .wp-block-template-part[area="header"] .wp-block-group.has-background,
body .wp-site-blocks > header .has-background,
body header .has-global-padding,
body header .wp-block-group-is-layout-constrained {
  background: transparent !important;
  background-color: transparent !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

body header .wp-block-buttons,
body header .wp-block-button {
  margin: 0 !important;
}

body header .wp-block-button__link {
  padding: 8px 14px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  border-radius: 10px !important;
}

/* Theme toggle (injected by tmg-theme.js) */
.tmg-theme-toggle {
  appearance: none;
  border: 1px solid #2a3a40 !important;
  background: var(--tmg-panel) !important;
  color: var(--tmg-mist) !important;
  border-radius: 999px !important;
  padding: 6px 12px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  cursor: pointer;
  line-height: 1.2;
  white-space: nowrap;
  flex-shrink: 0;
  margin-left: .35rem;
}

html[data-theme="light"] .tmg-theme-toggle,
body.tmg-theme-light .tmg-theme-toggle {
  border-color: #c5d0d4 !important;
}

.tmg-theme-toggle:hover,
.tmg-theme-toggle:focus-visible {
  border-color: var(--tmg-teal) !important;
  color: var(--tmg-teal) !important;
}


/* Person / account control (injected by tmg-theme.js) — upper-right platform chrome */
.tmg-account-menu {
  position: relative;
  z-index: 10;
  flex-shrink: 0;
  margin-left: .25rem;
}

.tmg-account-btn {
  appearance: none;
  align-items: center;
  background: var(--tmg-panel) !important;
  border: 1px solid #2a3a40 !important;
  border-radius: 999px !important;
  color: var(--tmg-mist) !important;
  cursor: pointer;
  display: inline-flex !important;
  flex-shrink: 0;
  height: 34px;
  justify-content: center;
  line-height: 1;
  margin-left: .25rem;
  padding: 0 !important;
  text-decoration: none !important;
  width: 34px;
}

html[data-theme="light"] .tmg-account-btn,
body.tmg-theme-light .tmg-account-btn {
  border-color: #c5d0d4 !important;
}

.tmg-account-btn:hover,
.tmg-account-btn:focus-visible,
.tmg-account-menu.is-open > .tmg-account-btn {
  border-color: var(--tmg-teal) !important;
  color: var(--tmg-teal) !important;
}

.tmg-account-btn svg {
  display: block;
}

/* W4h5m — circular PFP trigger (replaces person SVG when avatarUrl present). */
.tmg-account-btn-avatar {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 34px;
  max-height: 34px;
  border-radius: 999px;
  object-fit: cover;
  pointer-events: none;
}

.tmg-account-btn:has(.tmg-account-btn-avatar) {
  overflow: hidden;
}

/* W4h5m — non-interactive username header at top of account dropdown. */
.tmg-account-user {
  border-bottom: 1px solid var(--tmg-border);
  color: var(--tmg-mist);
  cursor: default;
  font-size: .9rem;
  font-weight: 700;
  opacity: .85;
  padding: .55rem .9rem;
  pointer-events: none;
  user-select: none;
}

html[data-theme="light"] .tmg-account-user,
body.tmg-theme-light .tmg-account-user {
  color: #3a555c;
}

.tmg-account-dropdown {
  background: var(--tmg-panel);
  border: 1px solid var(--tmg-border);
  border-radius: .55rem;
  box-shadow: var(--tmg-shadow);
  display: none;
  min-width: 11.5rem;
  padding: .35rem 0;
  position: absolute;
  right: 0;
  top: calc(100% + .45rem);
  z-index: 10;
}

.tmg-account-menu.is-open .tmg-account-dropdown {
  display: block;
}

/* W4h5g4 — when JS portals dropdown to document.body (escapes header stacking context). */
.tmg-account-dropdown.tmg-account-dropdown--portal {
  position: fixed !important;
  z-index: 99990 !important;
  display: block !important;
  /* top/right set inline from getBoundingClientRect */
  left: auto;
}

.tmg-account-dropdown a,
.tmg-account-dropdown button {
  background: transparent;
  border: 0;
  color: var(--tmg-mist) !important;
  cursor: pointer;
  display: block;
  font: inherit;
  font-size: .9rem;
  font-weight: 600;
  padding: .55rem .9rem;
  text-align: left;
  text-decoration: none !important;
  width: 100%;
}

.tmg-account-dropdown a:hover,
.tmg-account-dropdown a:focus-visible,
.tmg-account-dropdown button:hover,
.tmg-account-dropdown button:focus-visible {
  background: rgb(46 196 182 / 10%);
  color: var(--tmg-teal) !important;
}

/* Hide separate Account / Login / Register text nav items — person icon replaces them */
body header .wp-block-navigation-item:has(> a[href*="/account"]),
body header .wp-block-navigation-item:has(> a[href*="/login"]),
body header .wp-block-navigation-item:has(> a[href*="/register"]),
body .wp-site-blocks > header .wp-block-navigation-item:has(> a[href*="/account"]),
body .wp-site-blocks > header .wp-block-navigation-item:has(> a[href*="/login"]),
body .wp-site-blocks > header .wp-block-navigation-item:has(> a[href*="/register"]) {
  display: none !important;
}

/* [tmg_auth] combined login/register */
.tmg-auth {
  box-sizing: border-box;
  margin: 0 auto;
  max-width: 28rem;
  width: 100%;
}

.tmg-auth-tabs {
  display: flex;
  gap: .5rem;
  margin-bottom: 1.25rem;
}

.tmg-auth-tab {
  background: var(--tmg-panel);
  border: 1px solid var(--tmg-border);
  border-radius: .45rem;
  color: var(--tmg-muted) !important;
  flex: 1;
  font-size: .9rem;
  font-weight: 700;
  padding: .65rem .75rem;
  text-align: center;
  text-decoration: none !important;
}

.tmg-auth-tab.is-active,
.tmg-auth-tab:hover,
.tmg-auth-tab:focus-visible {
  border-color: var(--tmg-teal);
  color: var(--tmg-teal) !important;
}

.tmg-auth-logged-in .tmg-auth-hello {
  color: var(--tmg-mist);
  font-weight: 600;
  margin: 0 0 .75rem;
}

.tmg-auth-links {
  list-style: none;
  margin: 0;
  padding: 0;
}

.tmg-auth-links li {
  border-bottom: 1px solid var(--tmg-border);
  margin: 0;
}

.tmg-auth-links li:last-child {
  border-bottom: 0;
}

.tmg-auth-links a {
  display: block;
  font-weight: 600;
  padding: .7rem 0;
}



/* -------------------------------------------------------------------------- */
/* Competition page shell — match homepage max-width / spacing / palette      */
/* -------------------------------------------------------------------------- */
:root {
    --tmg-content-max: 1240px;
    --tmg-content-pad-x: 24px;
    --tmg-content-pad-y: 2.5rem;
    --tmg-page-inset: var(--tmg-content-pad-x); /* 24px desktop; 18px ≤782px */
}
@media (max-width: 782px) {
    :root { --tmg-page-inset: 18px; }
}

body .wp-block-post-title,
body .entry-title,
body h1.wp-block-post-title {
    box-sizing: border-box;
    color: var(--tmg-mist);
    letter-spacing: -.02em;
    line-height: 1.15;
    margin-left: auto;
    margin-right: auto;
    max-width: var(--tmg-content-max);
    padding-left: var(--tmg-content-pad-x);
    padding-right: var(--tmg-content-pad-x);
}

body .entry-content,
body .wp-block-post-content {
    box-sizing: border-box;
    margin-left: auto;
    margin-right: auto;
    max-width: var(--tmg-content-max);
    padding-bottom: var(--tmg-content-pad-y);
    padding-left: var(--tmg-content-pad-x);
    padding-right: var(--tmg-content-pad-x);
}

/* Homepage shortcode already owns its own max-width + horizontal padding. */
body .entry-content:has(.tmg-home),
body .wp-block-post-content:has(.tmg-home) {
    max-width: none;
    padding-bottom: 0;
    padding-left: 0;
    padding-right: 0;
}

/* Shortcode panels share homepage rhythm. */
.tmg-leaderboard,
.tmg-recent-matches,
.tmg-form,
.tmg-tournament,
.tmg-empty-card,
.tmg-matches {
    margin-left: auto;
    margin-right: auto;
    max-width: var(--tmg-content-max);
}

.tmg-form,
.tmg-tournament,
.tmg-empty-card {
    margin-bottom: 1.25rem;
    margin-top: 1.25rem;
}


/* -------------------------------------------------------------------------- */
/* Vertically centered page bodies (v1.4.3)                                   */
/* Short inner pages: content block centered in the viewport between header   */
/* and footer. Tall pages / home: top-anchored scroll (no mid-screen float).  */
/* -------------------------------------------------------------------------- */
:root {
    --tmg-header-h: 64px;
    --tmg-footer-h: 5rem;
}

/* Column shell so main can flex-grow into leftover viewport height. */
body .wp-site-blocks {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    min-height: 100dvh;
}

/* Main flex-grows into leftover viewport (≈ calc(100vh - header - footer)). */
/* Vertical center REMOVED (Captain: wrong axis; caused layout fallout).
   Main is a normal block flow; horizontal centering is handled below. */
body .wp-site-blocks > main,
body .wp-site-blocks > main.wp-block-group {
    box-sizing: border-box;
    display: block;
    flex: 1 1 auto;
    width: 100%;
}

/* Home stays top-anchored like the mock (long scroll, not vertically centered). */

/* Inner content keeps horizontal max-width centering from page shell rules. */
body .wp-site-blocks > main > .wp-block-group,
body .wp-site-blocks > main > article,
body .wp-site-blocks > main > .entry-content,
body .wp-site-blocks > main > .wp-block-post-content {
    width: 100%;
}

/* News page [tmg_news] — newspaper hierarchy (no new brand art). */
.tmg-news-page {
    box-sizing: border-box;
    color: var(--tmg-mist);
    margin: 0 auto;
    max-width: var(--tmg-content-max, 1240px);
    padding: 0 var(--tmg-content-pad-x, 24px) 2rem;
    width: 100%;
}

.tmg-news-page *,
.tmg-news-page *::before,
.tmg-news-page *::after {
    box-sizing: border-box;
}

.tmg-news-masthead {
    border-bottom: 2px solid var(--tmg-teal);
    margin: 0 0 1.35rem;
    padding: 0 0 .85rem;
}

.tmg-news-kicker {
    color: var(--tmg-teal);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .14em;
    margin: 0 0 .35rem;
    text-transform: uppercase;
}

.tmg-news-mast-title {
    color: var(--tmg-mist);
    font-size: clamp(1.6rem, 3vw, 2.15rem);
    font-weight: 800;
    letter-spacing: -.02em;
    line-height: 1.1;
    margin: 0;
}

.tmg-news-layout {
    display: grid;
    gap: 1.25rem;
    grid-template-columns: 1.35fr 1fr;
}

.tmg-news-feature {
    margin: 0;
}

.tmg-news-feature-link {
    background: var(--tmg-panel);
    border: 1px solid var(--tmg-border);
    border-radius: .75rem;
    box-shadow: var(--tmg-shadow);
    color: inherit !important;
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 22rem;
    overflow: hidden;
    text-decoration: none !important;
    transition: transform .28s ease, border-color .28s ease, box-shadow .28s ease;
}

.tmg-news-feature-link:hover,
.tmg-news-feature-link:focus-visible {
    border-color: rgba(46, 196, 182, .5);
    box-shadow: 0 16px 40px rgba(0, 0, 0, .28), 0 0 28px rgba(46, 196, 182, .14);
    color: inherit !important;
    transform: translateY(-3px);
}

.tmg-news-feature-media {
    background-position: center;
    background-size: cover;
    display: block;
    flex: 0 0 auto;
    min-height: 12rem;
    transition: transform .45s ease, filter .3s ease;
}

.tmg-news-feature-placeholder {
    background:
        linear-gradient(135deg, #1a3035, #0b1214 65%),
        radial-gradient(circle at 30% 30%, rgba(46, 196, 182, .35), transparent 50%);
}

.tmg-news-feature-link:hover .tmg-news-feature-media,
.tmg-news-feature-link:focus-visible .tmg-news-feature-media {
    filter: brightness(1.06);
    transform: scale(1.04);
}

.tmg-news-feature-body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: .45rem;
    padding: 1.15rem 1.25rem 1.35rem;
}

.tmg-news-tag {
    color: var(--tmg-teal);
    display: inline-block;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .08em;
    margin: 0;
}

.tmg-news-title,
.tmg-news-feature-title,
a.tmg-news-title,
.tmg-news-card .tmg-news-title {
    color: var(--tmg-mist) !important;
    display: block;
    font-size: 1.05rem;
    font-weight: 760;
    letter-spacing: -.015em;
    line-height: 1.25;
    margin: 0;
    text-decoration: none;
    transition: color .2s ease;
}

.tmg-news-feature-title {
    font-size: clamp(1.35rem, 2.4vw, 1.85rem);
    font-weight: 800;
}

.tmg-news-feature-link:hover .tmg-news-feature-title,
.tmg-news-feature-link:focus-visible .tmg-news-feature-title,
.tmg-news-card:hover .tmg-news-title,
.tmg-news-card:focus-visible .tmg-news-title {
    color: var(--tmg-teal) !important;
}

.tmg-news,
.tmg-news-secondary {
    box-sizing: border-box;
    display: grid;
    gap: .85rem;
    grid-template-columns: 1fr;
    list-style: none;
    margin: 0;
    padding: 0;
    width: 100%;
}

.tmg-news-item {
    margin: 0;
    padding: 0;
}

.tmg-news-card {
    background: var(--tmg-panel);
    border: 1px solid var(--tmg-border);
    border-radius: .65rem;
    color: inherit !important;
    display: flex;
    flex-direction: column;
    gap: .35rem;
    height: 100%;
    padding: 1rem 1.1rem 1.15rem;
    text-decoration: none !important;
    transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}

.tmg-news-card:hover,
.tmg-news-card:focus-visible {
    border-color: rgba(46, 196, 182, .45);
    box-shadow: 0 0 24px rgba(46, 196, 182, .12);
    color: inherit !important;
    transform: translateY(-2px);
}

.tmg-news-meta {
    color: var(--tmg-muted) !important;
    font-size: .82rem;
    margin: 0;
}

.tmg-news-excerpt {
    color: var(--tmg-mist) !important;
    display: -webkit-box;
    font-size: .92rem;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    line-height: 1.5;
    margin: .15rem 0 0;
    overflow: hidden;
    opacity: .92;
}

.tmg-news-excerpt p {
    margin: 0;
}

.tmg-news-empty {
    margin: 1rem 0;
}

@media (min-width: 1100px) {
    .tmg-news-secondary {
        grid-template-columns: 1fr 1fr;
        grid-auto-rows: minmax(0, auto);
    }

    .tmg-news-layout {
        align-items: stretch;
        grid-template-columns: 1.4fr 1fr;
    }

    .tmg-news-feature {
        grid-row: span 1;
    }
}

@media (max-width: 900px) {
    .tmg-news-layout {
        grid-template-columns: 1fr;
    }

    .tmg-news-feature-link {
        min-height: 0;
    }
}

/* Light-mode news: high-contrast titles/bylines/excerpts/tags on light panels. */
html[data-theme="light"] .tmg-news-page,
body.tmg-theme-light .tmg-news-page,
html[data-theme="light"] .tmg-news-card,
body.tmg-theme-light .tmg-news-card,
html[data-theme="light"] .tmg-news-feature-link,
body.tmg-theme-light .tmg-news-feature-link {
    color: #0B1214;
}

html[data-theme="light"] .tmg-news-mast-title,
body.tmg-theme-light .tmg-news-mast-title,
html[data-theme="light"] .tmg-news-title,
body.tmg-theme-light .tmg-news-title,
html[data-theme="light"] .tmg-news-feature-title,
body.tmg-theme-light .tmg-news-feature-title,
html[data-theme="light"] .tmg-news-card .tmg-news-title,
body.tmg-theme-light .tmg-news-card .tmg-news-title,
html[data-theme="light"] .tmg-news-excerpt,
body.tmg-theme-light .tmg-news-excerpt {
    color: #0B1214 !important;
}

html[data-theme="light"] .tmg-news-meta,
body.tmg-theme-light .tmg-news-meta {
    color: var(--tmg-muted) !important;
}

html[data-theme="light"] .tmg-news-tag,
body.tmg-theme-light .tmg-news-tag,
html[data-theme="light"] .tmg-news-kicker,
body.tmg-theme-light .tmg-news-kicker {
    color: var(--tmg-teal-deep, #1A9B8E) !important;
}

html[data-theme="light"] .tmg-news-feature-link,
body.tmg-theme-light .tmg-news-feature-link,
html[data-theme="light"] .tmg-news-card,
body.tmg-theme-light .tmg-news-card {
    background: #FFFFFF;
    border-color: #c5d0d4;
    box-shadow: 0 10px 28px rgba(11, 18, 20, .08);
}

/* -------------------------------------------------------------------------- */
/* Empty-state cards — ladder / leaderboard / tournament / matches            */
/* -------------------------------------------------------------------------- */
.tmg-empty-card {
    align-items: center;
    background: var(--tmg-panel);
    border: 1px dashed color-mix(in srgb, var(--tmg-teal) 35%, var(--tmg-border));
    border-radius: .7rem;
    box-shadow: var(--tmg-shadow);
    color: var(--tmg-muted);
    display: flex;
    flex-direction: column;
    gap: .35rem;
    justify-content: center;
    min-height: 8.5rem;
    padding: clamp(1.25rem, 3vw, 2rem);
    text-align: center;
}

.tmg-empty-card .tmg-empty-title,
.tmg-empty-card > p:first-child {
    color: var(--tmg-mist);
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: -.01em;
    margin: 0;
}

.tmg-empty-card .tmg-empty-hint,
.tmg-empty-card > p.tmg-empty-hint {
    color: var(--tmg-muted);
    font-size: .9rem;
    margin: 0;
    max-width: 36ch;
}

/* Empty row inside a still-rendered leaderboard table. */
.tmg-leaderboard tr.tmg-empty td {
    background: color-mix(in srgb, var(--tmg-ink) 40%, var(--tmg-panel));
    border-bottom: 0;
    color: var(--tmg-muted);
    padding: 1.75rem 1rem;
    text-align: center;
}

.tmg-leaderboard tr.tmg-empty .tmg-empty-title {
    color: var(--tmg-mist);
    display: block;
    font-weight: 700;
    margin-bottom: .25rem;
}

.tmg-recent-matches.tmg-empty-list,
.tmg-recent-matches li.tmg-empty {
    border: 0;
    list-style: none;
    margin: 0;
    padding: 0;
}

.tmg-msg.tmg-empty-card {
    border-left: 0;
}




/* W4h5g4 — in-header chrome only; open Account menu portals to body at z-index 99990 (below .tmg-settings 100000). */
.tmg-account-menu,
.tmg-my-teams-menu {
  position: relative;
  z-index: 10;
}
.tmg-account-dropdown:not(.tmg-account-dropdown--portal),
.tmg-my-teams-dropdown {
  z-index: 10;
}
/* Optional: same trap class for My Teams if ever portaled the same way. */
.tmg-my-teams-dropdown.tmg-my-teams-dropdown--portal {
  position: fixed !important;
  z-index: 99990 !important;
  display: block !important;
  left: auto;
}
.tmg-challenge-inline {
  position: relative;
  z-index: 5;
}
.tmg-challenge-inline[open] {
  z-index: 20;
}
.tmg-challenge-inline-form {
  background: var(--tmg-panel, #12141a);
  border: 1px solid var(--tmg-border, #2a2f3a);
  border-radius: .55rem;
  margin-top: .4rem;
  padding: .75rem;
  width: 100%;
  min-width: 0;
  max-width: 100%;
}
.tmg-challenge-slot-row {
  display: flex;
  gap: .4rem;
  margin: .35rem 0;
}
.tmg-rank-delta.is-up { color: #2ec4b6; }
.tmg-rank-delta.is-down { color: #ff6b6b; }
.tmg-ladder-teams-footer {
  margin-top: 1.25rem;
}
.tmg-ladder-rules-list {
  margin: .75rem 0 0;
  padding-left: 1.2rem;
}
.tmg-ladder-match .tmg-challenge-slot-pick {
  display: block;
  margin: .35rem 0;
}

/* W4h5n — Fours Arena pick/ban panel + slate */
.tmg-pickban-turn {
  margin: .75rem 0;
  padding: .65rem .85rem;
  border: 1px solid rgba(127, 140, 160, .35);
  border-radius: .45rem;
  background: rgba(127, 140, 160, .08);
}
.tmg-pickban-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-top: .5rem;
}
.tmg-pickban-pool {
  margin: .75rem 0;
}
.tmg-pickban-slate {
  margin-top: 1rem;
  overflow-x: auto;
}
.tmg-pickban-slate.is-locked .tmg-pickban-slate-title::after {
  content: " ✓";
}
.tmg-pickban-slate-title {
  font-size: 1rem;
  margin: 0 0 .5rem;
}
.tmg-pickban-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .92rem;
}
.tmg-pickban-table th,
.tmg-pickban-table td {
  border: 1px solid rgba(127, 140, 160, .28);
  padding: .4rem .55rem;
  text-align: left;
  vertical-align: top;
}
.tmg-pickban-table th {
  background: rgba(127, 140, 160, .12);
  font-weight: 600;
}
.tmg-pickban-bans,
.tmg-pickban-admin-reset,
.tmg-fours-process {
  margin-top: .75rem;
}
.tmg-pickban-report-wait {
  padding: .65rem .85rem;
  border-left: 3px solid #e09b3d;
  background: rgba(224, 155, 61, .1);
}
.tmg-fours-handbook {
  margin-top: 1rem;
  padding-top: .75rem;
  border-top: 1px solid rgba(127, 140, 160, .25);
}
.tmg-fours-pools {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
  gap: .75rem;
  margin: .75rem 0;
}
.tmg-fours-pool ul {
  margin: .35rem 0 0;
  padding-left: 1.1rem;
}
.tmg-fours-pool li {
  margin: .15rem 0;
}



/* 1.8.80 — sticky site nav sticks to the viewport only if .wp-site-blocks does not clip.
   Overflow visible here; body/html scroll lock stays on the mobile menu and settings overlays. */
body:not(.tmg-mobile-nav-open):not(.tmg-settings-open):not(.tmg-team-settings-open) .wp-site-blocks {
  overflow: visible;
}

/* -------------------------------------------------------------------------- */
/* 1.8.78 — Owned mobile site menu. Not the WordPress responsive container.  */
/* #tmg-mobile-nav is display:none unless body.tmg-mobile-nav-open AND the   */
/* hidden attribute is gone, and only under 782px. Scroll lock is that class  */
/* only. A stuck core is-menu-open / has-modal-open cannot cover the page.   */
/* -------------------------------------------------------------------------- */

#tmg-mobile-nav[hidden] {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

@media (min-width: 783px) {
  #tmg-mobile-nav {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
  body.tmg-mobile-nav-open,
  html:has(body.tmg-mobile-nav-open),
  html.has-modal-open {
    overflow: visible !important;
  }
  .wp-block-navigation__responsive-container.is-menu-open,
  .wp-block-navigation__responsive-container.has-modal-open {
    position: static !important;
    inset: auto !important;
    width: auto !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    transform: none !important;
    visibility: visible !important;
  }
}

@media (max-width: 782px) {
  body.tmg-mobile-nav-open #tmg-mobile-nav:not([hidden]) {
    position: fixed;
    inset: 0;
    z-index: 1000000;
    display: block;
    width: 100%;
    height: 100%;
    height: 100dvh;
    margin: 0;
    padding: 0;
    overflow: auto;
    background: var(--tmg-bg, #0b1214);
    color: var(--tmg-mist, #e8eef0);
    box-sizing: border-box;
  }


  .tmg-mobile-nav__backdrop {
    position: absolute;
    inset: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
  }

  .tmg-mobile-nav__sheet {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    min-height: 0;
    margin: 0;
    padding: 0;
    background: transparent;
    pointer-events: none;
  }

  .tmg-mobile-nav__close {
    display: inline-flex;
    align-items: center;
    align-self: flex-end;
    width: auto;
    height: auto;
    margin: 16px 18px 8px;
    padding: 10px 16px;
    border: 1px solid var(--tmg-border, #243038);
    border-radius: 999px;
    background: var(--tmg-panel, #142026);
    color: var(--tmg-mist, #e8eef0);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    cursor: pointer;
    pointer-events: auto;
  }

  .tmg-mobile-nav__links {
    display: flex;
    flex-direction: column;
    width: 100%;
    margin: 0;
    padding: 8px 0 32px;
    pointer-events: none;
  }

  .tmg-mobile-nav__links a {
    display: block;
    box-sizing: border-box;
    width: 100%;
    margin: 0;
    padding: 16px 20px;
    border-bottom: 1px solid var(--tmg-border, #243038);
    background: transparent;
    color: var(--tmg-mist, #e8eef0);
    font-size: 18px;
    font-weight: 600;
    line-height: 1.3;
    text-align: left;
    text-decoration: none;
    white-space: normal;
    pointer-events: auto;
  }

  .tmg-mobile-nav__links a[aria-current="page"] {
    color: var(--tmg-teal, #2ec4b6);
  }

  /* Core off-canvas must not become a second full-viewport layer. */
  .wp-block-navigation__responsive-container.is-menu-open,
  .wp-block-navigation__responsive-container.has-modal-open {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
    position: static !important;
    inset: auto !important;
    width: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: hidden !important;
    transform: none !important;
  }

  html.has-modal-open {
    overflow: auto !important;
  }

  body.tmg-mobile-nav-open,
  html:has(body.tmg-mobile-nav-open) {
    overflow: hidden !important;
  }
}

/* One mobile page shell. Ancestors (TT5 global padding + alignfull pull) go to 0.
   The shortcode root (.tmg-page) owns the single inset. Do not copy a :has() list.
   Selectors outrank profile.css horizontal centering (body .entry-content.alignfull
   and body .wp-site-blocks > main > .wp-block-group.alignfull), which loads later
   and was putting 24px back on those ancestors. max-width/margin there are
   !important, so the reset matches that. */
@media (max-width: 782px) {
  body:has(.tmg-page) .wp-site-blocks > main,
  body:has(.tmg-page) .wp-site-blocks > main.has-global-padding,
  body:has(.tmg-page) .wp-site-blocks > main > .wp-block-group,
  body:has(.tmg-page) .wp-site-blocks > main > .wp-block-group.alignfull,
  body:has(.tmg-page) .wp-site-blocks > main > .wp-block-group.alignwide,
  body:has(.tmg-page) .entry-content,
  body:has(.tmg-page) .entry-content.alignfull,
  body:has(.tmg-page) .entry-content.alignwide,
  body:has(.tmg-page) .wp-block-post-content,
  body:has(.tmg-page) .wp-block-post-content.alignfull,
  body:has(.tmg-page) .wp-block-post-content.alignwide,
  body:has(.tmg-page) main .entry-content,
  body:has(.tmg-page) main .wp-block-post-content {
    box-sizing: border-box;
    width: 100%;
    max-width: none !important;
    margin-inline: 0 !important;
    padding-inline: 0;
  }
  body:has(.tmg-page) .has-global-padding > .alignfull:has(.tmg-page),
  body:has(.tmg-page) .is-layout-constrained > .alignfull:has(.tmg-page) {
    margin-inline: 0 !important;
    width: 100%;
    max-width: none !important;
  }
  .tmg-page {
    box-sizing: border-box;
    width: 100%;
    max-width: var(--tmg-content-max, 1240px);
    margin-inline: auto;
    padding-inline: var(--tmg-page-inset);
  }
  /* A shell rendered inside another shell (tournament inside the list) does not add a second inset. */
  .tmg-page .tmg-page {
    max-width: none;
    padding-inline: 0;
  }
}
