/**
 * SWAT Tournaments visual system.
 *
 * Keep selectors portable: SWAT utility classes work in Beaver Builder rows,
 * columns, HTML modules, WordPress blocks, and ordinary theme templates.
 */

:root {
  --swat-gold: #fbc716;
  --swat-gold-bright: #ffdc32;
  --swat-ink: #0b0b0b;
  --swat-charcoal: #1e1e1e;
  --swat-steel: #5d626a;
  --swat-cloud: #f4f5f6;
  --swat-line: #dedede;
  --swat-white: #fff;
  --swat-success: #15803d;
  --swat-warning: #b45309;
  --swat-danger: #b42318;
  --swat-radius-sm: 8px;
  --swat-radius: 13px;
  --swat-shadow-sm: 0 5px 18px rgba(0, 0, 0, 0.08);
  --swat-shadow: 0 14px 36px rgba(0, 0, 0, 0.13);
  --swat-content: 1180px;
  --swat-transition: 180ms ease;
  /* Keep the existing SWAT Homepage Studio plugin on the same palette. */
  --swat-hps-yellow: var(--swat-gold);
  --swat-hps-yellow-2: var(--swat-gold-bright);
  --swat-hps-black: var(--swat-ink);
}

html {
  scroll-behavior: smooth;
}

body.swat-site {
  color: #242424;
  background: var(--swat-white);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body.swat-site :where(a, button, input, textarea, select):focus-visible {
  outline: 3px solid var(--swat-gold);
  outline-offset: 3px;
}

body.swat-site :where(h1, h2, h3) {
  text-wrap: balance;
}

body.swat-site :where(p, li) {
  text-wrap: pretty;
}

body.swat-site img {
  height: auto;
}

/* Global Beaver Themer / BB Theme header. */
body.swat-site header[data-type="header"],
body.swat-site .fl-page-header {
  border-bottom: 3px solid var(--swat-gold);
  background: var(--swat-charcoal);
  box-shadow: 0 5px 18px rgba(0, 0, 0, 0.24);
}

body.swat-site header[data-type="header"] > .fl-row > .fl-row-content-wrap {
  background-color: var(--swat-charcoal);
}

body.swat-site header[data-type="header"] .header-logo img,
body.swat-site .fl-page-header-logo img {
  transition: transform var(--swat-transition);
}

body.swat-site header[data-type="header"] .header-logo a:hover img,
body.swat-site .fl-page-header-logo a:hover img {
  transform: rotate(-2deg) scale(1.03);
}

body.swat-site header[data-type="header"] :where(.menu, .fl-page-nav) a {
  font-weight: 800;
  letter-spacing: 0.035em;
  text-transform: uppercase;
}

body.swat-site header[data-type="header"] .uabb-creative-menu-horizontal > li > a,
body.swat-site .fl-page-nav .navbar-nav > li > a {
  color: var(--swat-white);
  border-radius: 7px;
  transition: color var(--swat-transition), background-color var(--swat-transition), transform var(--swat-transition);
}

body.swat-site header[data-type="header"] .uabb-creative-menu-horizontal > li > a:hover,
body.swat-site header[data-type="header"] .uabb-creative-menu-horizontal > li.current-menu-item > a,
body.swat-site header[data-type="header"] .uabb-creative-menu-horizontal > li.current-menu-ancestor > a,
body.swat-site .fl-page-nav .navbar-nav > li > a:hover,
body.swat-site .fl-page-nav .navbar-nav > li.current-menu-item > a {
  color: var(--swat-gold);
  background: rgba(255, 255, 255, 0.06);
}

body.swat-site header[data-type="header"] .uabb-creative-menu-horizontal > li:last-child > a,
body.swat-site .fl-page-nav .navbar-nav > li:last-child > a {
  color: var(--swat-ink);
  background: var(--swat-gold);
  box-shadow: 0 3px 0 #a88200;
}

body.swat-site header[data-type="header"] .uabb-creative-menu-horizontal > li:last-child > a:hover,
body.swat-site .fl-page-nav .navbar-nav > li:last-child > a:hover {
  color: var(--swat-ink);
  background: var(--swat-gold-bright);
  transform: translateY(-1px);
}

body.swat-site header[data-type="header"] .uabb-svg-container rect {
  fill: var(--swat-gold);
}

body.swat-site header[data-type="header"] .uabb-menu-overlay {
  background: rgba(8, 8, 8, 0.98);
}

body.swat-site header[data-type="header"] .uabb-menu-overlay a {
  color: var(--swat-white);
}

body.swat-site header[data-type="header"] .uabb-menu-overlay .current-menu-item > a {
  color: var(--swat-gold);
}

/* Footer cohesion for Beaver Themer and the parent theme footer. */
body.swat-site footer[data-type="footer"],
body.swat-site .fl-page-footer-wrap {
  border-top: 4px solid var(--swat-gold);
  background: var(--swat-ink);
}

body.swat-site footer[data-type="footer"] > .fl-row > .fl-row-content-wrap,
body.swat-site .fl-page-footer,
body.swat-site .fl-page-footer-widgets {
  background-color: var(--swat-ink);
}

body.swat-site footer[data-type="footer"] :where(h2, h3, h4, h5, p, li),
body.swat-site .fl-page-footer-wrap :where(h2, h3, h4, h5, p, li) {
  color: #e9e9e9;
}

body.swat-site footer[data-type="footer"] a,
body.swat-site .fl-page-footer-wrap a {
  color: var(--swat-white);
  text-decoration-color: rgba(251, 199, 22, 0.55);
  text-underline-offset: 0.2em;
}

body.swat-site footer[data-type="footer"] a:hover,
body.swat-site .fl-page-footer-wrap a:hover {
  color: var(--swat-gold);
}

/* Optional Customizer-driven weekend update bar. */
.swat-site-alert {
  position: relative;
  z-index: 100001;
  color: var(--swat-white);
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  background: var(--swat-ink);
}

.swat-site-alert[hidden] {
  display: none;
}

.swat-site-alert__inner {
  width: min(var(--swat-content), calc(100% - 30px));
  min-height: 46px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 8px 0;
  font-size: 13px;
}

.swat-site-alert__dot {
  width: 9px;
  height: 9px;
  flex: 0 0 9px;
  border-radius: 50%;
  background: var(--swat-gold);
  box-shadow: 0 0 0 5px rgba(251, 199, 22, 0.15);
}

.swat-site-alert__label {
  color: var(--swat-gold);
  font-size: 11px;
  letter-spacing: 0.08em;
}

.swat-site-alert__message {
  color: #ededed;
}

.swat-site-alert__link {
  margin-left: 5px;
  padding: 6px 10px;
  color: var(--swat-ink);
  border-radius: 5px;
  background: var(--swat-gold);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-decoration: none;
}

.swat-site-alert__link:hover {
  color: var(--swat-ink);
  background: var(--swat-gold-bright);
}

.swat-site-alert__close {
  display: grid;
  width: 30px;
  height: 30px;
  margin-left: 4px;
  padding: 0;
  place-items: center;
  color: #dadada;
  border: 0;
  border-radius: 50%;
  background: transparent;
  font-size: 23px;
  line-height: 1;
  cursor: pointer;
}

.swat-site-alert__close:hover {
  color: var(--swat-white);
  background: rgba(255, 255, 255, 0.1);
}

/* Beaver Builder-ready utility classes. */
.swat-section > .fl-row-content-wrap,
.fl-row.swat-section > .fl-row-content-wrap,
.swat-section:not(.fl-row) {
  padding-top: clamp(54px, 7vw, 92px);
  padding-bottom: clamp(54px, 7vw, 92px);
}

.swat-section--dark > .fl-row-content-wrap,
.fl-row.swat-section--dark > .fl-row-content-wrap,
.swat-section--dark:not(.fl-row) {
  color: var(--swat-white);
  background: radial-gradient(circle at 85% 0, #343434, var(--swat-ink) 54%);
}

.swat-section--dark :where(h1, h2, h3, h4, p, li) {
  color: inherit;
}

.swat-display,
.swat-display :where(h1, h2, h3),
:where(h1, h2, h3).swat-display {
  font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
  font-style: italic;
  font-weight: 900;
  letter-spacing: -0.025em;
  line-height: 0.98;
  text-transform: uppercase;
}

.swat-eyebrow:not(.fl-module),
.fl-module.swat-eyebrow .fl-heading-text {
  display: inline-block;
  margin-bottom: 12px;
  padding: 7px 12px;
  color: var(--swat-ink);
  border-radius: 999px;
  background: var(--swat-gold);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.1em;
  line-height: 1;
  text-transform: uppercase;
}

.swat-card:not(.fl-col),
.fl-col.swat-card > .fl-col-content {
  height: 100%;
  overflow: hidden;
  border: 1px solid var(--swat-line);
  border-radius: var(--swat-radius);
  background: var(--swat-white);
  box-shadow: var(--swat-shadow-sm);
  transition: transform var(--swat-transition), box-shadow var(--swat-transition), border-color var(--swat-transition);
}

.swat-card:not(.fl-col):hover,
.fl-col.swat-card:hover > .fl-col-content {
  border-color: #c8c8c8;
  box-shadow: var(--swat-shadow);
  transform: translateY(-3px);
}

.swat-card--featured:not(.fl-col),
.fl-col.swat-card--featured > .fl-col-content {
  border-top: 5px solid var(--swat-gold);
}

.swat-btn-primary :where(.fl-button, .uabb-button),
:where(a, button).swat-btn-primary,
.swat-btn-dark :where(.fl-button, .uabb-button),
:where(a, button).swat-btn-dark,
.swat-btn-outline :where(.fl-button, .uabb-button),
:where(a, button).swat-btn-outline {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  padding: 13px 20px;
  border-radius: 7px;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.035em;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;
  transition: transform var(--swat-transition), box-shadow var(--swat-transition), background-color var(--swat-transition);
}

.swat-btn-primary :where(.fl-button, .uabb-button),
:where(a, button).swat-btn-primary {
  color: var(--swat-ink);
  border: 1px solid var(--swat-gold);
  background: linear-gradient(180deg, var(--swat-gold-bright), var(--swat-gold));
  box-shadow: 0 4px 0 #a88200;
}

.swat-btn-dark :where(.fl-button, .uabb-button),
:where(a, button).swat-btn-dark {
  color: var(--swat-white);
  border: 1px solid var(--swat-ink);
  background: var(--swat-ink);
  box-shadow: 0 4px 0 #4a4a4a;
}

.swat-btn-outline :where(.fl-button, .uabb-button),
:where(a, button).swat-btn-outline {
  color: var(--swat-ink);
  border: 2px solid var(--swat-ink);
  background: transparent;
}

.swat-btn-primary :where(.fl-button, .uabb-button):hover,
:where(a, button).swat-btn-primary:hover,
.swat-btn-dark :where(.fl-button, .uabb-button):hover,
:where(a, button).swat-btn-dark:hover,
.swat-btn-outline :where(.fl-button, .uabb-button):hover,
:where(a, button).swat-btn-outline:hover {
  transform: translateY(-2px);
}

.swat-status {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px 10px;
  color: var(--swat-ink);
  border: 1px solid #e6c24c;
  border-radius: 999px;
  background: #fff8dc;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.04em;
  line-height: 1;
  text-transform: uppercase;
}

.swat-status::before {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--swat-success);
  content: "";
}

.swat-table {
  width: 100%;
  overflow: hidden;
  border: 1px solid var(--swat-line);
  border-collapse: separate;
  border-spacing: 0;
  border-radius: var(--swat-radius-sm);
  background: var(--swat-white);
}

.swat-table :where(th, td) {
  padding: 13px 15px;
  border: 0;
  border-bottom: 1px solid var(--swat-line);
  text-align: left;
  vertical-align: middle;
}

.swat-table th {
  color: var(--swat-white);
  background: var(--swat-ink);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.swat-table tbody tr:last-child td {
  border-bottom: 0;
}

.swat-table tbody tr:nth-child(even) {
  background: #f8f8f8;
}

/* Forms and touch targets. */
body.swat-site :where(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="date"], select, textarea) {
  min-height: 46px;
  padding: 9px 12px;
  border: 1px solid #b9bdc2;
  border-radius: 7px;
  background: var(--swat-white);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.04);
}

body.swat-site textarea {
  min-height: 130px;
}

body.swat-site :where(input[type="submit"], button[type="submit"]):not(.swat-site-alert__close) {
  min-height: 46px;
  padding: 11px 19px;
  color: var(--swat-ink);
  border: 1px solid var(--swat-gold);
  border-radius: 7px;
  background: var(--swat-gold);
  font-weight: 900;
  text-transform: uppercase;
}

/* Optional phone-only Game Day dock. */
.swat-mobile-dock {
  display: none;
}

@media (max-width: 720px) {
  body.swat-site.swat-mobile-dock-active {
    padding-bottom: calc(68px + env(safe-area-inset-bottom));
  }

  .swat-mobile-dock {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 100000;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    height: calc(68px + env(safe-area-inset-bottom));
    padding-bottom: env(safe-area-inset-bottom);
    border-top: 3px solid var(--swat-gold);
    background: var(--swat-ink);
    box-shadow: 0 -5px 20px rgba(0, 0, 0, 0.28);
  }

  .swat-mobile-dock__item {
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 4px;
    color: var(--swat-white);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.02em;
    line-height: 1;
    text-decoration: none;
    text-transform: uppercase;
  }

  .swat-mobile-dock__item:hover,
  .swat-mobile-dock__item:focus {
    color: var(--swat-gold);
    background: rgba(255, 255, 255, 0.07);
  }

  .swat-mobile-dock__item.is-primary {
    color: var(--swat-ink);
    background: var(--swat-gold);
  }

  .swat-mobile-dock__icon {
    font-size: 21px;
    line-height: 1;
  }

  .swat-site-alert__inner {
    width: min(100% - 20px, var(--swat-content));
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 6px 8px;
    padding: 9px 0;
  }

  .swat-site-alert__message {
    order: 3;
    width: calc(100% - 40px);
    margin-left: 17px;
    font-size: 11px;
  }

  .swat-site-alert__link {
    margin-left: auto;
  }

  .swat-site-alert__close {
    width: 28px;
    height: 28px;
  }

  .swat-table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

@media (max-width: 575px) {
  body.swat-site header[data-type="header"] .header-logo img {
    max-height: 58px;
    width: auto;
  }

  .swat-site-alert__link {
    padding: 6px 8px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  body.swat-site *,
  body.swat-site *::before,
  body.swat-site *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}

@media print {
  .swat-site-alert,
  .swat-mobile-dock,
  body.swat-site header[data-type="header"],
  body.swat-site footer[data-type="footer"] {
    display: none !important;
  }
}
