/*
Theme Name: Unsigned League
Theme URI: https://unsignedleague.com
Author: Unsigned League
Author URI: https://unsignedleague.com
Description: Official theme for Unsigned League — a basketball platform built around opportunity and exposure. Built on the Unsigned League design system: Barlow Condensed display, Inter UI, indigo/violet/gold court palette. Functional foundation adapted from the TEBA League theme (SportsPress, WPBakery, WooCommerce integration).
Version: 2.1.52-rc45
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: Proprietary
Text Domain: unsigned-league
Tags: sports, basketball, custom-menu, featured-images, full-width-template, woocommerce
*/

/* ==========================================================================
   DESIGN TOKENS
   Source: Unsigned League Site Documentation (12 Design Components)
   ========================================================================== */

:root {

  /* Typography */
  --ul-font-display: 'Barlow Condensed', 'Helvetica Neue', sans-serif;
  --ul-font-ui:      'Inter', system-ui, -apple-system, sans-serif;

  /* Palette */
  --ul-color-indigo:          oklch(24% 0.08 291);   /* primary header/nav */
  --ul-color-violet-1:        oklch(18% 0.06 291);   /* hero gradient stop 1 (darkest) */
  --ul-color-violet-2:        oklch(28% 0.11 293);   /* hero gradient stop 2 (mid, most saturated) */
  --ul-color-violet-3:        oklch(22% 0.09 291);   /* hero gradient stop 3 */
  --ul-color-footer-violet:   #2C1756;                /* footer background */

  --ul-color-scoreboard-cell:   #211541;              /* scoreboard game cell bg */
  --ul-color-scoreboard-arrow:  #2F2357;               /* scoreboard arrow / stats-recap wedge */
  --ul-color-scoreboard-arrow-alt: #28154F;            /* alt wedge shade used in some cells */

  --ul-color-gold:            oklch(72% 0.16 55);     /* CTAs, active-nav underline, badges */
  --ul-color-link-purple:     oklch(48% 0.22 293);    /* inline links, active states */

  --ul-color-text:            oklch(16% 0.01 280);    /* near-black headings */
  --ul-color-text-muted:      oklch(45% 0.01 280);    /* secondary copy */
  --ul-color-text-muted-lt:   oklch(58% 0.01 280);    /* lighter meta text */

  --ul-color-card-bg:         oklch(98% 0.004 280);
  --ul-color-border:          oklch(90% 0.005 280);   /* hairline border */
  --ul-color-page-bg:         oklch(94% 0.006 280);

  --ul-color-win:             oklch(50% 0.15 150);
  --ul-color-loss:            oklch(55% 0.18 25);

  /* Shared shell */
  --ul-container-max: 1440px;
  --ul-container-shadow: 0 20px 60px rgba(0, 0, 0, .15);

  /* Component measurements (from design spec) */
  --ul-scoreboard-height: 135px;
  --ul-scoreboard-height-mobile: 112px;
  --ul-scoreboard-cell-min-width: 260px;
  --ul-scoreboard-arrow-size: 26px;
  --ul-scoreboard-wedge-width: 66px;
}

/* Team brand colors are per-team (e.g. Bangkok Bulls = oklch(55% 0.18 25))
   and must be sourced dynamically per team rather than hard-coded globally.
   Team Profile resolves/outputs this as an inline custom
   property on the team hero band, not as a root token. */

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

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--ul-color-page-bg);
  font-family: var(--ul-font-ui);
  color: var(--ul-color-text);
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--ul-font-display);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: -0.01em;
  margin: 0 0 0.5em;
  color: var(--ul-color-text);
}

a {
  color: var(--ul-color-link-purple);
  text-decoration: none;
}

img { max-width: 100%; height: auto; display: block; }


/* ==========================================================================
   WORDPRESS ADMIN BAR / LEGACY SPORTSPRESS MENU ISOLATION
   The shared plugin stack can output a separate .sp-league-menu above the
   theme shell. Unsigned League owns its own primary navigation, so that
   legacy menu is intentionally suppressed. The native WordPress admin bar
   remains available to authenticated users and is protected from broad
   frontend menu/header styles.
   ========================================================================== */

body.ul-theme .sp-league-menu,
body.ul-theme nav.sp-league-menu,
body.ul-theme #sp-league-menu {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

/* Do not let legacy/global theme rules hide or visually flatten the native
   WordPress toolbar. These rules only apply when WordPress has added the
   standard body.admin-bar class for a logged-in user. */
body.admin-bar #wpadminbar {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  min-width: 0 !important;
  z-index: 999999 !important;
  transform: none !important;
}

body.admin-bar #wpadminbar .ab-item,
body.admin-bar #wpadminbar a.ab-item,
body.admin-bar #wpadminbar > #wp-toolbar span.ab-label,
body.admin-bar #wpadminbar > #wp-toolbar span.noticon {
  visibility: visible !important;
  opacity: 1 !important;
}

@media screen and (min-width: 783px) {
  body.admin-bar .ul-site-shell {
    /* WordPress applies the toolbar offset to html; keep the theme shell from
       introducing a competing fixed-position offset. */
    top: auto !important;
  }
}

/* ==========================================================================
   SHARED SITE SHELL
   Scoreboard Ribbon -> Primary Header -> Page Content -> Sponsor Strip -> Footer
   ========================================================================== */

.ul-site-shell {
  width: min(100%, var(--ul-container-max)) !important;
  max-width: var(--ul-container-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  float: none !important;
  clear: both;
  left: auto !important;
  right: auto !important;
  transform: none !important;
  position: relative;
  background: #fff;
  box-shadow: var(--ul-container-shadow);
  overflow: hidden;
  isolation: isolate;
}

.ul-container {
  max-width: var(--ul-container-max);
  margin: 0 auto;
  padding-left: clamp(16px, 4vw, 32px);
  padding-right: clamp(16px, 4vw, 32px);
}

/* Buttons */
.ul-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 24px;
  font-family: var(--ul-font-ui);
  font-weight: 700;
  font-size: 14px;
  border-radius: 2px;
  border: 2px solid transparent;
  cursor: pointer;
  text-decoration: none;
}

.ul-btn--gold {
  background: var(--ul-color-gold);
  color: var(--ul-color-indigo);
}

.ul-btn--outline {
  background: transparent;
  border-color: currentColor;
  color: inherit;
}

.ul-btn--on-dark { border-color: oklch(70% 0.02 291); color: #fff; }

/* ==========================================================================
   IMAGE / PLACEHOLDER
   ========================================================================== */

.ul-media {
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.ul-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.ul-media--placeholder {
  background: repeating-linear-gradient(135deg, oklch(85% 0.01 280) 0 12px, oklch(80% 0.01 280) 12px 24px);
  display: flex;
  align-items: center;
  justify-content: center;
}

.ul-media--placeholder span {
  font: 600 11px ui-monospace, monospace;
  letter-spacing: 0.05em;
  color: oklch(45% 0.01 280);
  text-align: center;
  padding: 0 8px;
}

/* On dark sections the placeholder stripes/label need a lighter treatment. */
.ul-hero__media .ul-media--placeholder,
.ul-spotlight__media .ul-media--placeholder,
.ul-watch-card__media .ul-media--placeholder {
  background: repeating-linear-gradient(135deg, oklch(40% 0.1 291 / .5) 0 14px, oklch(30% 0.09 291 / .5) 14px 28px);
}

.ul-hero__media .ul-media--placeholder span,
.ul-spotlight__media .ul-media--placeholder span,
.ul-watch-card__media .ul-media--placeholder span {
  color: oklch(85% 0.01 291);
}

/* ==========================================================================
   NEWS CARD
   Reused as-is by the homepage, Team Profile's News tab, and News Archive.
   ========================================================================== */

.ul-news-card {
  background: #fff;
  border: 1px solid var(--ul-color-border);
  display: block;
}

.ul-news-card__media { height: 120px; }
.ul-news-card__body { padding: 16px; }
.ul-news-card__headline { font: 600 14px/1.3 var(--ul-font-display); color: var(--ul-color-text); margin: 6px 0 0; text-transform: uppercase; }

.ul-news__cat { font: 700 10px var(--ul-font-ui); letter-spacing: 0.06em; color: var(--ul-color-link-purple); text-transform: uppercase; }
.ul-news__date { font: 500 10.5px var(--ul-font-ui); color: oklch(60% 0.01 280); margin-top: 12px; }

/* ==========================================================================
   PRIMARY NAVIGATION
   ========================================================================== */

.ul-nav, .ul-mobile-nav {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: clamp(12px, 3vw, 32px);
  flex-wrap: wrap;
}

.ul-nav a, .ul-mobile-nav a {
  font: 600 13px var(--ul-font-ui);
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: #fff;
  padding-bottom: 2px;
  border-bottom: 2px solid transparent;
}

.ul-nav a:hover,
.ul-nav .current-menu-item > a,
.ul-mobile-nav .current-menu-item > a {
  color: var(--ul-color-gold);
  border-bottom-color: var(--ul-color-gold);
}

.ul-mobile-nav {
  flex-direction: column;
  gap: 0;
}

.ul-mobile-nav a {
  display: block;
  padding: 14px clamp(16px, 4vw, 32px);
  border-bottom: 1px solid oklch(35% 0.06 291);
}


/* Desktop submenu isolation. Migrated TEBA menus may contain nested Draft
   items; they must behave as dropdowns rather than permanently expanding the
   Unsigned League header. */
.ul-nav > li { position: relative; }
.ul-nav .sub-menu {
  position: absolute;
  z-index: 1000;
  top: calc(100% + 10px);
  left: 0;
  min-width: 210px;
  margin: 0;
  padding: 8px 0;
  list-style: none;
  background: var(--ul-color-indigo);
  border: 1px solid oklch(35% 0.06 291);
  box-shadow: 0 12px 28px rgba(0,0,0,.18);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-4px);
  transition: opacity .15s ease, transform .15s ease, visibility .15s ease;
}
.ul-nav .sub-menu li { margin: 0; }
.ul-nav .sub-menu a {
  display: block;
  padding: 10px 14px;
  border-bottom: 0;
  white-space: nowrap;
}
.ul-nav li:hover > .sub-menu,
.ul-nav li:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
.ul-mobile-nav .sub-menu {
  position: static;
  display: block;
  margin: 0;
  padding: 0 0 0 14px;
  list-style: none;
}

/* ==========================================================================
   PRIMARY HEADER
   ========================================================================== */

.ul-header {
  background: var(--ul-color-indigo);
}

.ul-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px;
  padding: 14px clamp(16px, 4vw, 32px);
}

.ul-header__logo {
  display: flex;
  align-items: center;
  gap: 10px;
}

.ul-header__logo-img { height: 48px; width: auto; }

.ul-header__wordmark {
  font: 800 20px/1 var(--ul-font-display);
  color: #fff;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.ul-header__wordmark em,
.ul-footer__brand-name em {
  color: var(--ul-color-gold);
  font-style: normal;
}

.ul-header__actions {
  display: flex;
  align-items: center;
  gap: 18px;
}

.ul-header__icon-btn {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: 1.5px solid oklch(80% 0.01 280);
  display: flex;
  align-items: center;
  justify-content: center;
  color: oklch(90% 0.005 280);
  background: transparent;
  cursor: pointer;
  padding: 0;
}

.ul-header__cta {
  white-space: nowrap;
  padding: 10px 20px;
}

.ul-burger {
  display: none;
  flex-direction: column;
  gap: 3px;
  background: transparent;
  border: none;
  padding: 6px;
  cursor: pointer;
  color: #fff;
}

.ul-mobile-menu {
  display: none;
  background: var(--ul-color-indigo);
  border-top: 1px solid oklch(35% 0.06 291);
}

.ul-mobile-menu:not([hidden]) { display: block; }

@media (max-width: 900px) {
  .ul-nav-wrapper > .ul-nav { display: none; }
  .ul-burger { display: flex; }
}

/* ==========================================================================
   SCOREBOARD RIBBON
   135px desktop / 112px mobile per design spec. Desktop shows a continuous
   multi-game ribbon; below 768px each game becomes a full-width scroll-snap
   slide with dot pagination (assets/js/main.js builds/syncs the dots).
   ========================================================================== */

.ul-scoreboard {
  display: flex;
  height: var(--ul-scoreboard-height);
  background: #fff;
}

.ul-scoreboard__arrow {
  flex: none;
  width: var(--ul-scoreboard-arrow-size);
  border: none;
  color: #fff;
  font: 700 13px var(--ul-font-ui);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}

.ul-scoreboard__arrow--left {
  background: var(--ul-color-scoreboard-arrow);
  border-right: 1px solid var(--ul-color-border);
}

.ul-scoreboard__arrow--right {
  background: var(--ul-color-scoreboard-arrow-alt);
  border-left: 1px solid var(--ul-color-border);
}

.ul-scoreboard__track {
  display: flex;
  flex: 1;
  overflow-x: hidden !important;
  overflow-y: hidden !important;
  scroll-behavior: smooth;
  min-width: 0;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.ul-scoreboard__track::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

.ul-scoreboard__game {
  flex: 1;
  display: flex;
  min-width: var(--ul-scoreboard-cell-min-width);
  background: var(--ul-color-scoreboard-cell);
  scroll-snap-align: start;
}

.ul-scoreboard__teams {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 0 0 0 14px;
  gap: 12px;
  min-width: 0;
}

.ul-scoreboard__team-row {
  display: flex;
  align-items: center;
  gap: 8px;
}

.ul-scoreboard__team-logo {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none;
  overflow: hidden;
}

.ul-scoreboard__team-logo img { width: 100%; height: 100%; object-fit: contain; }

.ul-scoreboard__team-id { width: 48px; flex: none; }

.ul-scoreboard__team-abbr {
  display: block;
  font: 700 15px var(--ul-font-ui);
  color: #fff;
}

.ul-scoreboard__team-record {
  display: block;
  font: 400 11px var(--ul-font-ui);
  color: #fff;
  white-space: nowrap;
}

.ul-scoreboard__score {
  font: 700 16px var(--ul-font-ui);
  color: #fff;
  width: 20px;
  flex: none;
}

.ul-scoreboard__status {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 0 4px;
  min-width: 0;
  font: 700 11px var(--ul-font-ui);
  letter-spacing: 0.01em;
  color: #fff;
  white-space: nowrap;
}

.ul-scoreboard__dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--ul-color-loss);
  flex: none;
}

.ul-scoreboard__wedge {
  width: var(--ul-scoreboard-wedge-width);
  flex: none;
  clip-path: polygon(24px 0, 100% 0, calc(100% - 24px) 100%, 0 100%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  background: var(--ul-color-scoreboard-arrow);
}

.ul-scoreboard__wedge-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  color: #fff;
  text-decoration: none;
}

.ul-scoreboard__wedge-icon { font: 700 11px var(--ul-font-ui); }

.ul-scoreboard__wedge-link span:last-child {
  font: 700 9px var(--ul-font-ui);
  letter-spacing: 0.04em;
}

.ul-scoreboard__wedge-divider {
  height: 1px;
  width: 22px;
  background: var(--ul-color-border);
  margin: 2px 0;
}

.ul-scoreboard__dots {
  display: none;
  justify-content: center;
  gap: 5px;
  padding: 6px 0;
  background: #1C0F3A;
}

.ul-scoreboard__dot-indicator {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: oklch(45% 0.02 280);
  transition: background-color .15s ease;
}

.ul-scoreboard__dot-indicator.is-active { background: oklch(90% 0.004 280); }

@media (max-width: 767px) {
  .ul-scoreboard { height: var(--ul-scoreboard-height-mobile); }
  .ul-scoreboard__arrow { display: none; }
  .ul-scoreboard__track { scroll-snap-type: x mandatory; }
  .ul-scoreboard__game { flex: 1 0 100%; min-width: 100%; }
  .ul-scoreboard__dots.has-dots { display: flex; }
}

/* ==========================================================================
   SPONSOR STRIP
   ========================================================================== */

.ul-sponsor-strip {
  padding: 40px clamp(16px, 5vw, 64px);
  background: var(--ul-sponsor-bg, #fff);
  display: flex;
  flex-wrap: wrap;
  gap: var(--ul-sponsor-gap, 24px);
  justify-content: var(--ul-sponsor-justify, space-between);
  align-items: center;
}

.ul-sponsor-strip__item {
  font: 700 12px var(--ul-font-ui);
  letter-spacing: 0.04em;
  color: oklch(70% 0.005 280);
  text-transform: uppercase;
  filter: grayscale(1);
  opacity: .8;
  transition: filter .2s ease, opacity .2s ease;
}

.ul-sponsor-strip__item img { max-height: var(--ul-sponsor-logo-height, 32px); width: auto; }

a.ul-sponsor-strip__item:hover { filter: none; opacity: 1; }

/* ==========================================================================
   FOOTER
   ========================================================================== */

.ul-footer {
  padding: 56px clamp(16px, 5vw, 64px) 32px;
  color: #fff;
  background: var(--ul-color-footer-violet);
}

.ul-footer__main {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 32px;
  padding-bottom: 36px;
  border-bottom: 1px solid oklch(25% 0.01 280);
}

.ul-footer__brand-link {
  display: flex;
  align-items: center;
  gap: 10px;
}

.ul-footer__logo-img { height: 32px; width: auto; }

.ul-footer__brand-name {
  font: 800 20px var(--ul-font-display);
  text-transform: uppercase;
}

.ul-footer__tagline {
  font: 400 12.5px/1.6 var(--ul-font-ui);
  color: oklch(60% 0.01 280);
  margin: 12px 0 0;
  max-width: 260px;
}

.ul-footer__socials {
  display: flex;
  gap: 10px;
  margin-top: 16px;
}

.ul-footer__social-link {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1px solid oklch(35% 0.01 280);
  display: flex;
  align-items: center;
  justify-content: center;
  font: 600 9px var(--ul-font-ui);
  color: #fff;
}

.ul-footer__col-title {
  font: 700 11px var(--ul-font-ui);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: oklch(80% 0.005 280);
  margin-bottom: 14px;
}

.ul-footer__col-title--media { margin-top: 20px; }

.ul-footer__links {
  list-style: none;
  margin: 0;
  padding: 0;
}

.ul-footer__links li { margin-bottom: 10px; }

.ul-footer__links a {
  font: 400 12.5px var(--ul-font-ui);
  color: oklch(60% 0.01 280);
}

.ul-footer__links a:hover { color: #fff; }

.ul-footer__bottom {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: space-between;
  padding-top: 20px;
  font: 400 11px var(--ul-font-ui);
  color: oklch(50% 0.01 280);
}

.ul-footer__legal-links {
  list-style: none;
  display: flex;
  gap: 20px;
  margin: 0;
  padding: 0;
}

.ul-footer__legal-link { color: oklch(50% 0.01 280); }
.ul-footer__legal-link:hover { color: #fff; }
.ul-footer__sep { margin: 0 20px; }

/* ==========================================================================
   INNER-PAGE CHROME
   Shared by every non-homepage template (Schedule, Standings, Teams,
   Players, profiles, Event, Article, News Archive, Registration): page
   heading, tab strip, filter row, and the generic empty-data message.
   Page-specific content styles live in assets/css/pages.css.
   ========================================================================== */

.ul-page-head {
  padding: 32px clamp(16px, 5vw, 64px) 0;
}

.ul-page-head__title {
  font: 800 clamp(28px, 5vw, 40px) var(--ul-font-display);
  text-transform: uppercase;
  color: var(--ul-color-text);
  margin: 0;
}

.ul-tabs {
  display: flex;
  gap: 24px;
  margin-top: 24px;
  border-bottom: 1px solid var(--ul-color-border);
  overflow-x: auto;
}

.ul-tabs__item {
  font: 700 13px var(--ul-font-ui);
  letter-spacing: 0.03em;
  text-transform: uppercase;
  padding-bottom: 12px;
  color: var(--ul-color-text-muted-lt);
  border-bottom: 2px solid transparent;
  white-space: nowrap;
}

.ul-tabs__item.is-active,
.ul-tabs__item:hover {
  color: var(--ul-color-text);
  border-bottom-color: var(--ul-color-link-purple);
}

.ul-filters {
  display: flex;
  gap: 14px;
  margin: 24px 0;
  flex-wrap: wrap;
}

.ul-filters__select {
  border: 1px solid oklch(85% 0.005 280);
  padding: 10px 16px;
  font: 600 11.5px var(--ul-font-ui);
  color: oklch(35% 0.01 280);
  background: #fff;
  min-width: 140px;
}

.ul-filters__input {
  border: 1px solid oklch(85% 0.005 280);
  padding: 10px 16px;
  font: 500 12.5px var(--ul-font-ui);
  color: oklch(20% 0.01 280);
  background: #fff;
  flex: 1 1 220px;
}

.ul-search { width: 100%; max-width: 260px; }

.ul-search__input {
  width: 100%;
  border: 1px solid oklch(85% 0.005 280);
  padding: 10px 16px;
  font: 500 12px var(--ul-font-ui);
  color: oklch(20% 0.01 280);
  background: #fff;
}

.ul-search__input::placeholder { color: oklch(50% 0.01 280); }

.ul-chips {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.ul-chip {
  border: 1px solid oklch(85% 0.005 280);
  padding: 8px 16px;
  font: 700 11px var(--ul-font-ui);
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: oklch(35% 0.01 280);
}

.ul-chip.is-active {
  background: var(--ul-color-indigo);
  border-color: var(--ul-color-indigo);
  color: #fff;
}

.ul-empty-state {
  padding: 48px 0;
  text-align: center;
  font: 500 14px var(--ul-font-ui);
  color: var(--ul-color-text-muted);
}

/* Homepage sections continue in assets/css/front-page.css; all other
   templates' page-specific content styles continue in assets/css/pages.css. */

/* WPBakery sponsor block options */
.ul-sponsor-strip--embedded { width: 100%; box-sizing: border-box; }
.ul-sponsor-strip--no-grayscale .ul-sponsor-strip__item { filter: none; opacity: 1; }
\n\n/* ==========================================================================\n   RC26 — Sponsor manager / empty-state hardening\n   ========================================================================== */\n.ul-sponsors-empty { display: none !important; }\n.ul-sponsor-strip:empty { display: none !important; padding: 0 !important; min-height: 0 !important; }\n

/* ==========================================================================
   RC27 — Sponsor strip compact layout + empty-row collapse
   ========================================================================== */
.ul-sponsor-strip,
.ul-sponsor-strip--embedded {
  min-height: 0 !important;
  height: auto !important;
  padding-top: 24px !important;
  padding-bottom: 24px !important;
  overflow: visible;
}

.ul-sponsor-strip--embedded .ul-sponsor-strip__item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 0;
}

.ul-sponsor-strip--embedded .ul-sponsor-strip__item img {
  display: block;
  max-height: var(--ul-sponsor-logo-height, 48px);
  max-width: min(220px, 100%);
  object-fit: contain;
}

/* WPBakery rows that only contain an empty sponsor marker should disappear
   completely instead of leaving a blank padded band. */
.ul-wpbakery-full-width .vc_row:has(.ul-sponsors-empty),
.ul-front-page-builder-content .vc_row:has(.ul-sponsors-empty) {
  display: none !important;
  min-height: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.ul-wpbakery-full-width .vc_row:has(.ul-sponsor-strip--embedded),
.ul-front-page-builder-content .vc_row:has(.ul-sponsor-strip--embedded),
.ul-wpbakery-full-width .vc_column-inner:has(.ul-sponsor-strip--embedded),
.ul-front-page-builder-content .vc_column-inner:has(.ul-sponsor-strip--embedded) {
  min-height: 0 !important;
  height: auto !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}


/* ==========================================================================\n   RC29 — Canonical Sponsor Manager renderer\n   ========================================================================== */
.ul-sponsor-strip[data-sponsor-source="manager"] {
  width: 100%;
  box-sizing: border-box;
  display: flex !important;
  align-items: center;
  justify-content: var(--ul-sponsor-justify, space-between);
  flex-wrap: wrap;
  gap: var(--ul-sponsor-gap, 32px);
  padding: 24px clamp(20px, 4vw, 56px) !important;
  background: var(--ul-sponsor-bg, #fff);
}
.ul-sponsor-strip[data-sponsor-count="1"] { justify-content: center; }
.ul-sponsor-strip[data-sponsor-source="manager"] .ul-sponsor-strip__item {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  flex: 0 1 auto;
}
.ul-sponsor-strip[data-sponsor-source="manager"] .ul-sponsor-strip__item img {
  display: block !important;
  width: auto !important;
  height: auto !important;
  max-height: var(--ul-sponsor-logo-height, 48px) !important;
  max-width: 220px !important;
  object-fit: contain;
}

/* ========================================================================== 
   RC40 — Header logo sizing hardening
   WooCommerce/Blocks can apply generic img height:auto rules with enough
   specificity to enlarge the custom logo. Keep header branding compact and
   independent of the source image's intrinsic dimensions.
   ========================================================================== */
.ul-header__logo {
  flex: 0 0 auto;
  min-width: 0;
}

.ul-header__logo .ul-header__logo-img,
.ul-header__logo img.ul-header__logo-img,
.woocommerce .ul-header__logo img,
.woocommerce-page .ul-header__logo img,
body.woocommerce .ul-header__logo img,
body.woocommerce-page .ul-header__logo img {
  display: block !important;
  width: auto !important;
  height: 48px !important;
  max-width: 72px !important;
  max-height: 48px !important;
  object-fit: contain !important;
  object-position: center !important;
  margin: 0 !important;
  padding: 0 !important;
  flex: 0 0 auto !important;
}

@media (max-width: 767px) {
  .ul-header__logo .ul-header__logo-img,
  .ul-header__logo img.ul-header__logo-img,
  .woocommerce .ul-header__logo img,
  .woocommerce-page .ul-header__logo img,
  body.woocommerce .ul-header__logo img,
  body.woocommerce-page .ul-header__logo img {
    height: 40px !important;
    max-height: 40px !important;
    max-width: 60px !important;
  }
}
