:root {
  --ex-bg: #05070b;
  --ex-bg-alt: #10131b;
  --ex-card-bg: #151924;
  --ex-primary: #ff5c39;
  --ex-primary-soft: rgba(255, 92, 57, 0.12);
  --ex-text-main: #f5f5f5f7;
  --ex-text-muted: #a3a7a7b5;
  --ex-border-subtle: #262a38;
  --ex-radius-lg: 18px;
  --ex-radius-xl: 26px;
  --ex-shadow-soft: 0 18px 40px 40px rgba(0, 0, 0, 0, 0.38);
}

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

body {
  margin: 0;
  font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  background: radial-gradient(circle at top, #151824 0, #05070b 50%, #020308 100%);
  color: var(--ex-text-main);
  line-height: 1.6;
}

/* Base layout */
.ex-container {
  width: 100%;
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

/* HEADER */
.ex-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(5, 7, 11, 0.92);
  backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(255, 255, 255, 255, 0.04);
}

.ex-header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 72px;
}

.ex-logo {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-family: 'Montserrat', sans-serif;
}

.ex-logo-mark {
  width: 32px;
  height: 32px;
  border-radius: 999px;
  background: radial-gradient(circle at 30% 0, #ffd2c4, #ff5c39);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 0.9rem;
  color: #05070b;
}

.ex-logo-text {
  font-weight: 700;
  letter-spacing: 0.06em;
  font-size: 0.9rem;
  text-transform: uppercase;
}

.ex-nav {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  font-size: 0.9rem;
}

.ex-nav a {
  text-decoration: none;
  color: var(--ex-text-muted);
  transition: color 0.18s ease, background 0.18s ease, border-color 0.18s ease;
}

.ex-nav a:hover {
  color: #ffffffff;
}

.ex-nav-cta {
  padding: 0.45rem 0.9rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 255, 0.16);
}

.ex-nav-toggle {
  display: none;
  background: none;
  border: none;
  color: var(--ex-text-main);
  font-size: 1.4rem;
}

/* HERO */
.ex-hero {
  padding: 3.5rem 0 3rem;
}

.ex-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
  gap: 2.5rem;
  align-items: center;
}

.ex-hero-text h1 {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(2.2rem, 3vw, 2.8rem);
  line-height: 1.1;
  margin-bottom: 1rem;
}

.ex-hero-text p {
  color: var(--ex-text-muted);
  max-width: 34rem;
  margin-bottom: 1.5rem;
}

.ex-hero-cta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-bottom: 1.4rem;
}

.ex-hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  font-size: 0.8rem;
}

.ex-hero-meta span {
  padding: 0.3rem 0.7rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 255, 0.06);
}

/* Buttons */
.ex-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.65rem 1.3rem;
  border-radius: 999px;
  border: 1px solid transparent;
  font-size: 0.9rem;
  font-weight: 500;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.18s ease, transform 0.12s ease, box-shadow 0.18s ease, border-color 0.18s ease, color 0.18s ease;
  white-space: nowrap;
}

.ex-btn-primary {
  background: linear-gradient(135deg, #ff5c39, #ff965f);
  color: #05070b;
  box-shadow: 0 10px 30px rgba(255, 92, 57, 0.32);
}

.ex-btn-primary:hover {
  transform: translateY(-1px);
  box-shadow: 0 14px 34px 34px rgba(255, 92, 57, 0.45);
}

.ex-btn-outline {
  background: rgba(15, 18, 30, 30, 0.7);
  border-color: rgba(255, 255, 255, 255, 0.2);
  color: var(--ex-text-main);
}

.ex-btn-outline:hover {
  background: rgba(255, 255, 255, 255, 0.06);
}

/* Hero card */
.ex-hero-card {
  background: radial-gradient(circle at top left, rgba(255, 92, 57, 0.2), transparent 55%),
    var(--ex-card-bg);
  border-radius: var(--ex-radius-xl);
  padding: 1.6rem 1.5rem;
  box-shadow: var(--ex-shadow-soft);
  border: 1px solid rgba(255, 255, 255, 255, 0.06);
}

.ex-hero-card h2 {
  margin-top: 0;
  margin-bottom: 0.4rem;
  font-size: 1.1rem;
}

.ex-hero-event-name {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 1.1rem;
  margin: 0.1rem 0;
}

.ex-hero-event-meta {
  font-size: 0.85rem;
  color: var(--ex-text-muted);
  margin-bottom: 1rem;
}

.ex-hero-event-line {
  display: flex;
  justify-content: space-between;
  font-size: 0.85rem;
  margin-bottom: 0.4rem;
}

.ex-hero-event-line strong {
  font-weight: 600;
}

.ex-hero-btn-full {
  width: 100%;
  margin: 0.8rem 0;
}

.ex-hero-footnote {
  font-size: 0.75rem;
  color: var(--ex-text-muted);
}

/* Sections */
.ex-section {
  padding: 3rem 0;
}

.ex-section-alt {
  padding: 3rem 0;
  background: radial-gradient(circle at top, #131623, #05070b);
}

.ex-section-header {
  text-align: left;
  margin-bottom: 1.8rem;
}

.ex-section-header h2 {
  font-family: 'Montserrat', sans-serif;
  font-size: 1.6rem;
  margin-bottom: 0.5rem;
}

.ex-section-header p {
  color: var(--ex-text-muted);
  max-width: 34rem;
}

/* Section header flex */
.ex-section-header-flex {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 1rem;
}

/* Event filters */
.ex-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin-bottom: 1.4rem;
}

.ex-filter-btn {
  padding: 0.35rem 0.9rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 255, 0.12);
  background: rgba(10, 12, 20, 0.7);
  color: var(--ex-text-muted);
  font-size: 0.8rem;
  cursor: pointer;
  transition: background 0.16s ease, color 0.16s ease, border-color 0.16s ease;
}

.ex-filter-btn-active,
.ex-filter-btn:hover {
  background: var(--ex-primary-soft);
  color: #ffffffff;
  border-color: var(--ex-primary);
}

/* Cards */
.ex-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 1.3rem;
}

.ex-card-grid-3 {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.ex-card {
  background: rgba(15, 18, 30, 30, 0.9);
  border-radius: var(--ex-radius-lg);
  padding: 1.2rem 1.15rem;
  border: 1px solid rgba(255, 255, 255, 255, 0.06);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0, 0.35);
  position: relative;
  overflow: hidden;
}

.ex-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at top left, rgba(255, 255, 255, 255, 0.03), transparent 55%);
  opacity: 0.8;
  pointer-events: none;
}

.ex-card &gt; * {
  position: relative;
}

.ex-card h3 {
  margin-top: 0.3rem;
  margin-bottom: 0.1rem;
  font-size: 1rem;
}

.ex-card-meta {
  font-size: 0.8rem;
  color: var(--ex-text-muted);
  margin-bottom: 0.6rem;
}

.ex-card-text {
  font-size: 0.88rem;
  color: var(--ex-text-muted);
  margin-bottom: 0.9rem;
}

.ex-card-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.85rem;
}

.ex-card-price {
  font-weight: 600;
}

.ex-card-link {
  font-size: 0.85rem;
  text-decoration: none;
  color: #ffffffff;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}

.ex-card-link::after {
  content:"→";
  font-size: 0.85em;
}

/* Card tag */
.ex-card-tag {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.6rem;
  border-radius: 999px;
  font-size: 0.75rem;
  background: var(--ex-primary-soft);
  color: var(--ex-primary);
  font-weight: 500;
}

/* Card icon */
.ex-card-icon {
  font-size: 1.6rem;
  margin-bottom: 0.4rem;
}

/* LIVE times */
.ex-live-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  gap: 1.5rem;
}

.ex-live-card {
  background: rgba(12, 14, 24, 0.95);
  border-radius: var(--ex-radius-lg);
  padding: 1.2rem 1.15rem;
  border: 1px solid rgba(255, 255, 255, 255, 0.06);
  box-shadow: var(--ex-shadow-soft);
}

.ex-live-form {
  display: flex;
  gap: 0.7rem;
  margin-top: 0.9rem;
  margin-bottom: 0.8rem;
}

.ex-live-form input {
  flex: 1;
  padding: 0.6rem 0.8rem;
  border-radius: 999px;
  border: 1px solid var(--ex-border-subtle);
  background: rgba(3, 5, 10, 0.9);
  color: var(--ex-text-main);
  font-size: 0.9rem;
}

.ex-live-form input::placeholder {
  color: #5c6070;
}

.ex-live-note {
  font-size: 0.78rem;
  color: var(--ex-text-muted);
}

.ex-live-list {
  list-style: none;
  padding: 0;
  margin: 0.4rem 0 0;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.ex-live-list li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  font-size: 0.86rem;
}

.ex-live-dot {
  width: 9px;
  height: 9px;
  border-radius: 999px;
  background: #32d26a;
  box-shadow: 0 0 0 5px rgba(50, 210, 106, 0.18);
  flex-shrink: 0;
}

.ex-live-dot-off {
  background: #ffbf47;
  box-shadow: 0 0 0 5px rgba(255, 191, 71, 0.18);
}

.ex-live-label {
  font-size: 0.75rem;
  color: var(--ex-text-muted);
}

/* Products (placeholders) */
.ex-product-image {
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: 14px;
  margin-bottom: 0.6rem;
  background-size: cover;
  background-position: center;
  background-image: linear-gradient(135deg, #262a3a, #141624);
}

/* Placeholder different by extra class (then change to real images) */
.ex-product-image-1 {
  background-image: linear-gradient(135deg, #ff5c39, #ffb36f);
}

.ex-product-image-2 {
  background-image: linear-gradient(135deg, #4c6fff, #9fafff);
}

.ex-product-image-3 {
  background-image: linear-gradient(135deg, #32d26a, #82f2b0);
}

/* Why section */
.ex-why-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
  gap: 1.8rem;
  align-items: center;
}

.ex-why-list {
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 0.9rem;
  color: var(--ex-text-muted);
}

.ex-why-list li + li {
  margin-top: 0.4rem;
}

/* CTA final */
.ex-cta-final {
  padding-bottom: 3.5rem;
}

.ex-cta-final-inner {
  background: linear-gradient(135deg, #ff5c39, #ff965f);
  border-radius: 26px;
  padding: 1.6rem 1.4rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  color: #05070b;
  box-shadow: 0 18px 40px rgba(255, 92, 57, 0.5);
}

.ex-cta-final-inner h2 {
  margin: 0 0 0.3rem;
  font-family: 'Montserrat', sans-serif;
}

.ex-cta-final-inner p {
  margin: 0;
}

.ex-cta-final-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
}

.ex-cta-final .ex-btn-primary {
  background: #05070b;
  color: #ffffffff;
  box-shadow: none;
}

.ex-cta-final .ex-btn-outline {
  border-color: rgba(5, 7, 11, 0.4);
  color: #05070b;
  background: rgba(255, 255, 255, 255, 0.2);
}

/* Footer */
.ex-footer {
  background: #05070b;
  border-top: 1px solid rgba(255, 255, 255, 255, 0.08);
  padding-top: 2rem;
  margin-top: 2rem;
}

.ex-footer-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) repeat(2, minmax(0, 1fr));
  gap: 1.6rem;
  font-size: 0.85rem;
}

.ex-footer h3,
.ex-footer h4 {
  margin-top: 0;
}

.ex-footer a {
  color: var(--ex-text-muted);
  text-decoration: none;
  transition: color 0.16s ease;
}

.ex-footer a:hover {
  color: #ffffffff;
}

.ex-footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 255, 0.06);
  padding: 0.9rem 0;
  margin-top: 1.4rem;
  text-align: center;
  font-size: 0.8rem;
  color: var(--ex-text-muted);
}

/* Global responsive */
@media (max-width: 900px) {
  .ex-hero-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .ex-live-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .ex-why-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .ex-section-header-flex {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (max-width: 768px) {
  .ex-header-inner {
    height: 64px;
  }

  .ex-nav {
    position: absolute;
    inset: 64px 0 auto;
    background: rgba(5, 7, 11, 0.98);
    flex-direction: column;
    align-items: flex-start;
    padding: 0.9rem 1.5rem 1.1rem;
    border-bottom: 1px solid rgba(255, 255, 255, 255, 0.08);
    transform: translateY(-120%);
    opacity: 0;
    pointer-events: none;
    transition: transform 0.2s ease, opacity 0.2s ease;
  }

  .ex-nav.ex-nav-open {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
  }

  .ex-nav-toggle {
    display: block;
  }

  .ex-hero {
    padding-top: 2.3rem;
  }

  .ex-hero-card {
    order: -1;
  }

  .ex-cta-final-inner {
    padding: 1.3rem 1.1rem;
  }

  .ex-footer-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* HOME: hide the title of the page ("Home") */
body.home .entry-header,
body.home .entry-title {
  display: none;
}

/* HOME: remove spaces and white backgrounds from Astra top and bottom */
body.home #page,
body.home .site-content,
body.home .ast-container,
body.home .content-area,
body.home .entry-content {
  background: transparent;
  margin: 0;
  padding: 0;
}

/* HOME: hide theme footer and WordPress.com credit */
body.home .site-footer,
body.home #wpcom-credit,
body.home .site-info {
  display: none;
}

/* HOME: ensure good text contrast within the new design */
body.home .site {
  color: var(--ex-text-main);
}

.ex-hero-text h1 {
  color: var(--ex-text-main);
}

.ex-section-header p,
.ex-card-text,
.ex-card-meta {
  color: var(--ex-text-muted);
}

/* Hide page title on ALL pages.
   EXCEPT cart and checkout */
body.page:not(.woocommerce-cart):not(.woocommerce-checkout) .entry-header,
body.page:not(.woocommerce-cart):not(.woocommerce-checkout) .entry-title,
body.page:not(.woocommerce-cart):not(.woocommerce-checkout) .ast-page-title-wrap,
body.page:not(.woocommerce-cart):not(.woocommerce-checkout) h1.wp-block-post-title {
  display: none !important;
}

/* Remove margins/paddings that Astra puts around the content.
   EXCEPT in cart and checkout */
body.page:not(.woocommerce-cart):not(.woocommerce-checkout) .entry-content,
body.page:not(.woocommerce-cart):not(.woocommerce-checkout) .site-content,
body.page:not(.woocommerce-cart):not(.woocommerce-checkout) .ast-container,
body.page:not(.woocommerce-cart):not(.woocommerce-checkout) .content-area {
  margin: 0;
  padding: 0;
  background: transparent;
}

/* Hide theme footer and credit on pages.
   EXCEPT in cart and checkout */
body.page:not(.woocommerce-cart):not(.woocommerce-checkout) .site-footer,
body.page:not(.woocommerce-cart):not(.woocommerce-checkout) #wpcom-credit,
body.page:not(.woocommerce-cart):not(.woocommerce-checkout) .site-info {
  display: none !important;
}

/* default colors clear throughout custom layout "ex-" */
.ex-header,
.ex-hero,
.ex-section,
.ex-cta-final,
.ex-footer {
  color: var(--ex-text-main);
}

/* Headings inside our layout: always clear */
.ex-hero-text h1,
.ex-hero-card h2,
.ex-section h2,
.ex-card h3,
.ex-live-card h3,
.ex-footer h3,
.ex-footer h4 {
  color: var(--ex-text-main) !important;
}

/* General texts within our sections */
.ex-hero p,
.ex-section p,
.ex-section li,
.ex-footer p {
  color: var(--ex-text-muted);
}

/* Cards and featured event module: clear text */
.ex-hero-card h2,
.ex-hero-card p,
.ex-hero-card strong {
  color: var(--ex-text-main) !important;
}

.ex-card p,
.ex-card span,
.ex-card a {
  color: var(--ex-text-main);
}

.ex-card-meta,
.ex-card-text {
  color: var(--ex-text-muted) !important;
}

/* HIDE THE TOP STRIPE (ASTRA HEADER) ON PAGES
   EXCEPT in cart and checkout pages */
body.page:not(.woocommerce-cart):not(.woocommerce-checkout) header#masthead,
body.page:not(.woocommerce-cart):not(.woocommerce-checkout) .site-header {
  display: none !important;
}

/* REMOVE THE SPACE ABOVE THE CONTENT
   EXCEPT in cart and checkout */
body.page:not(.woocommerce-cart):not(.woocommerce-checkout) #content,
body.page:not(.woocommerce-cart):not(.woocommerce-checkout) .site-content,
body.page:not(.woocommerce-cart):not(.woocommerce-checkout) .ast-container,
body.page:not(.woocommerce-cart):not(.woocommerce-checkout) .content-area,
body.page:not(.woocommerce-cart):not(.woocommerce-checkout) main.site-main,
body.page:not(.woocommerce-cart):not(.woocommerce-checkout) article.page {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* IN CASE THE FIRST BLOCK HAS A TOP MARGIN
   EXCEPT in cart and checkout */
body.page:not(.woocommerce-cart):not(.woocommerce-checkout) .entry-content &gt; *:first-child {
  margin-top: 0 !important;
}

/* Re-center page content (Astra).
   EXCEPT in cart and checkout */
body.page:not(.woocommerce-cart):not(.woocommerce-checkout) .site-content,
body.page:not(.woocommerce-cart):not(.woocommerce-checkout) .ast-container,
body.page:not(.woocommerce-cart):not(.woocommerce-checkout) .content-area,
body.page:not(.woocommerce-cart):not(.woocommerce-checkout) #primary,
body.page:not(.woocommerce-cart):not(.woocommerce-checkout) main.site-main,
body.page:not(.woocommerce-cart):not(.woocommerce-checkout) article.page {
  margin: 0 auto !important;
  float: none !important;
}

/* The width is handled by Astra, we just make sure it is 100% and centered.
   EXCEPT in cart and checkout */
body.page:not(.woocommerce-cart):not(.woocommerce-checkout) .ast-container {
  width: 100%;
  max-width: 1200px;
}


/* ===========================
   REGISTRATION PAGE (hero + search engine)
   =========================== */

.ex-insc-hero {
  padding-top: 2.8rem;
  padding-bottom: 1.8rem;
}

.ex-insc-title {
  font-family: 'Montserrat', sans-serif;
  font-size: 1.8rem;
  margin: 0 0 0.4rem;
  color: var(--ex-text-main);
}

.ex-insc-subtitle {
  margin: 0;
  max-width: 36rem;
  color: var(--ex-text-muted);
  font-size: 0.95rem;
}

/* Search engine */
.ex-insc-search {
  margin-top: 1.5rem;
  background: rgba(10, 13, 22, 22, 0.95);
  border-radius: 18px;
  padding: 1.1rem 1.1rem 0.8rem;
  border: 1px solid rgba(255, 255, 255, 255, 0.06);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0, 0.45);
}

.ex-insc-search-row {
  display: grid;
  grid-template-columns: 1.1fr 1.1fr 1.1fr 2fr auto;
  gap: 0.6rem;
}

.ex-insc-input {
  padding: 0.6rem 0.8rem;
  border-radius: 999px;
  border: 1px solid var(--ex-border-subtle);
  background: rgba(3, 5, 10, 0.9);
  color: var(--ex-text-main);
  font-size: 0.9rem;
}

.ex-insc-input::placeholder {
  color: #5c6070;
}

.ex-insc-search-btn {
  padding-inline: 1.2rem;
}

.ex-insc-search-note {
  margin-top: 0.6rem;
  font-size: 0.78rem;
  color: var(--ex-text-muted);
}

/* List */
.ex-insc-list-section {
  padding-top: 1rem;
  padding-bottom: 3rem;
}

.ex-insc-list {
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
}

/* New registration card (portal registrations) */
.ex-insc-card {
  display: flex;
  align-items: stretch;
  gap: 0;
  background: rgba(12, 15, 25, 0.96);
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, 255, 0.06);
  box-shadow: 0 14px 30px 30px rgba(0, 0, 0, 0, 0.5);
  overflow: hidden;
}

/* Date column */
.ex-insc-date {
  min-width: 78px;
  padding: 0.8rem 0.6rem;
  background: radial-gradient(circle at top, rgba(255, 92, 92, 57, 0.4), rgba(12, 15, 25, 1));
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-right: 1px solid rgba(255, 255, 255, 255, 0.06);
}

.ex-insc-day {
  font-size: 1.5rem;
  font-weight: 700;
  font-family: 'Montserrat', sans-serif;
}

.ex-insc-month {
  font-size: 0.9rem;
  text-transform: uppercase;
}

.ex-insc-year {
  font-size: 0.7rem;
  opacity: 0.8;
}

/* Center column */
.ex-insc-main {
  flex: 1;
  display: flex;
  gap: 0.8rem;
  padding: 0.7rem 0.9rem;
  align-items: center;
}

.ex-insc-poster {
  width: 70px;
  min-width: 70px;
  height: 96px;
  border-radius: 10px;
  background-image: linear-gradient(135deg, #ff5c39, #ffb36f);
  background-size: cover;
  background-position: center;
}

/* Poster variants */
.ex-insc-poster-2 {
  background-image: linear-gradient(135deg, #4c6fff, #9fafff);
}

.ex-insc-poster-3 {
  background-image: linear-gradient(135deg, #32d26a, #82f2b0);
}

.ex-insc-info {
  flex: 1;
}

.ex-insc-name {
  margin: 0 0 0.2rem;
  font-size: 1rem;
  color: var(--ex-text-main);
}

.ex-insc-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.8rem;
  font-size: 0.8rem;
  color: var(--ex-text-muted);
  margin-bottom: 0.3rem;
}

.ex-insc-links a {
  font-size: 0.8rem;
  text-decoration: none;
  color: #ffffffff;
}

.ex-insc-links a::after {
  content: " →";
  font-size: 0.85em;
}

/* Right column (button + deadline) */
.ex-insc-cta {
  min-width: 150px;
  padding: 0.7rem 0.9rem;
  border-left: 1px solid rgba(255, 255, 255, 255, 0.06);
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  gap: 0.35rem;
}

.ex-insc-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.4rem 0.85rem;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 600;
}

.ex-insc-status-open {
  background: linear-gradient(135deg, #ff5c39, #ff965f);
  color: #05070b;
}

.ex-insc-status-closed {
  background: #151822;
  color: #ffffffff;
}

.ex-insc-deadline {
  font-size: 0.75rem;
  color: var(--ex-text-muted);
}

/* Responsive portal inscriptions */
@media (max-width: 900px) {
  .ex-insc-search-row {
    grid-template-columns: 1fr 1fr;
  }

  .ex-insc-input-wide {
    grid-column: 1 / -1;
  }
}

@media (max-width: 768px) {
  .ex-insc-hero {
    padding-top: 2.1rem;
  }

  .ex-insc-search-row {
    grid-template-columns: 1fr;
  }

  .ex-insc-card {
    flex-direction: column;
  }

  .ex-insc-date {
    flex-direction: row;
    justify-content: flex-start;
    gap: 0.4rem;
    padding-inline: 0.9rem;
    border-right: none;
    border-bottom: 1px solid rgba(255, 255, 255, 255, 0.06);
  }

  .ex-insc-main {
    align-items: flex-start;
  }

  .ex-insc-cta {
    align-items: flex-start;
    border-left: none;
    border-top: 1px solid rgba(255, 255, 255, 255, 0.06);
    padding-top: 0.5rem;
  }

  .ex-insc-status {
    width: 100%;
    justify-content: center;
  }
}

/* ====== ====== */ ====== */

.ex-insc-wrapper {
  padding: 2rem 0 4rem;
  background: radial-gradient(circle at top, #131623, #05070b);
}

.ex-insc-frame {
  background: #f5f7fb;
  border-radius: 20px;
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0, 0.45);
  padding: 2rem 2.2rem;
  max-width: 1200px;
  margin: 0 auto;
}

.ex-insc-frame * {
  color: #1a1a1a !important;
}

.ex-insc-frame h1,
.ex-insc-frame h2,
.ex-insc-frame h3 {
  font-family: "Montserrat", sans-serif;
  color: #ff5c39 !important;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.ex-insc-frame article,
.ex-insc-frame .event,
.ex-insc-frame .test {
  background: #ffffffff;
  border-radius: 14px;
  box-shadow: 0 4px 12px 12px rgba(0, 0, 0, 0, 0.1);
  padding: 1.2rem 1.5rem;
  margin-bottom: 1.3rem;
  border-left: 6px solid #ff5c39;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.ex-insc-frame article:hover,
.ex-insc-frame .event:hover,
.ex-insc-frame .test:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 20px 20px rgba(0, 0, 0, 0, 0.15);
}

.ex-insc-frame a.button,
.ex-insc-frame input[type="submit"],
.ex-insc-frame button {
  background: linear-gradient(135deg, #ff5c39, #ff965f);
  color: #fff !important;
  border: none;
  border-radius: 999px;
  padding: 0.5rem 1.2rem;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  transition: transform 0.15s ease, box-shadow 0.2s ease;
}

.ex-insc-frame a.button:hover,
.ex-insc-frame button:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 14px 14px rgba(255, 92, 57, 0.4);
}

.ex-insc-frame img {
  max-width: 180px;
  height: auto;
  border-radius: 10px;
  object-fit: cover;
}

@media (max-width: 900px) {
  .ex-insc-frame {
    padding: 1.5rem 1rem;
  }

  .ex-insc-frame article,
  .ex-insc-frame .event,
  .ex-insc-frame .test {
    padding: 1rem;
  }

  .ex-insc-frame img {
    max-width: 100%;
    width: 100%;
  }
}

@media (max-width: 600px) {
  .ex-insc-frame {
    padding: 1rem;
  }
}

/* Hide the title that pulls the shortcode inside the frame */
.ex-insc-frame &gt; h1:first-child,
.ex-insc-frame &gt; h2:first-child,
.ex-insc-frame &gt; h3:first-child {
  display: none !important;
}

/* Adjust search engine inside the frame */
.ex-insc-frame .ex-insc-search {
  margin-top: 0;
  margin-bottom: 1.5rem;
  background: #ffffffff;
  border-radius: 18px;
  padding: 1rem 1.2rem;
  border: 1px solid #dde1f0;
  box-shadow: none;
}

.ex-insc-frame .ex-insc-input {
  background: #f5f7fb;
  border-color: #d0d5e6;
  color: #222;
}

.ex-insc-frame .ex-insc-input::placeholder {
  color: #7b7f8e;
}

.ex-insc-frame .ex-insc-search-btn {
  box-shadow: 0 8px 18px rgba(255, 92, 57, 0.35);
}

/* Generic SIGN-UP button */
.ex-insc-cta-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem 1.3rem;
  border-radius: 999px;
  background: linear-gradient(135deg, #ff5c39, #ff965f);
  color: #fff !important;
  font-weight: 600;
  text-decoration: none !important;
  border: none;
  box-shadow: 0 8px 18px rgba(255, 92, 57, 0.35);
  margin-top: 0.6rem;
  cursor: pointer;
  transition: transform 0.15s ease, box-shadow 0.2s ease;
}

.ex-insc-cta-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 12px 26px 26px rgba(255, 92, 57, 0.45);
}

/* ===========================
   EVENT PAGE
   =========================== */

.ex-events-hero {
  padding-top: 2.8rem;
  padding-bottom: 1.5rem;
}

.ex-events-hero h1 {
  font-family: "Montserrat", sans-serif;
  font-size: 2rem;
  margin-bottom: 0.3rem;
}

.ex-events-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 0.9rem;
  margin-top: 1.5rem;
}

.ex-events-summary-card {
  background: rgba(15, 18, 30, 30, 0.9);
  border-radius: 18px;
  padding: 0.9rem 1rem;
  border: 1px solid rgba(255, 255, 255, 255, 0.06);
  box-shadow: 0 12px 26px 26px rgba(0, 0, 0, 0, 0.35);
}

.ex-events-summary-label {
  font-size: 0.8rem;
  color: var(--ex-text-muted);
}

.ex-events-summary-value {
  display: block;
  margin-top: 0.25rem;
  font-size: 1rem;
}

/* Event listing */
.ex-events-section {
  padding-top: 1.5rem;
  padding-bottom: 3.5rem;
}

.ex-events-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

/* Event card */
.ex-event-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: stretch;
  background: rgba(12, 15, 25, 0.96);
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, 255, 0.06);
  box-shadow: 0 14px 32px 32px rgba(0, 0, 0, 0, 0.45);
  padding: 1rem 1.1rem;
}

/* Date */
.ex-event-date {
  width: 80px;
  border-radius: 14px;
  background: radial-gradient(circle at top, rgba(255, 92, 57, 0.4), rgba(12, 15, 25, 1));
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 0.7rem 0.5rem;
  text-align: center;
  border: 1px solid rgba(255, 255, 255, 255, 0.06);
}

.ex-event-day {
  font-size: 1.5rem;
  font-weight: 700;
  font-family: "Montserrat", sans-serif;
}

.ex-event-month {
  text-transform: uppercase;
  font-size: 0.85rem;
}

.ex-event-year {
  font-size: 0.7rem;
  opacity: 0.85;
}

/* Main content */
.ex-event-main {
  padding: 0.2rem 0.1rem;
}

.ex-event-chip {
  display: inline-flex;
  padding: 0.15rem 0.6rem;
  border-radius: 999px;
  font-size: 0.75rem;
  margin-bottom: 0.4rem;
  border: 1px solid rgba(255, 255, 255, 255, 0.12);
}

.ex-event-chip-mtb {
  background: rgba(255, 92, 57, 0.16);
  color: #ff8b64;
}

.ex-event-chip-trail {
  background: rgba(76, 111, 255, 0.18);
  color: #9fabff;
}

.ex-event-chip-road {
  background: rgba(50, 210, 106, 0.16);
  color: #82f2b0;
}

.ex-event-chip-dua {
  background: rgba(251, 206, 81, 0.16);
  color: #ffd47a;
}

.ex-event-name {
  margin: 0 0 0.25rem;
  font-size: 1.1rem;
}

.ex-event-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.8rem;
  font-size: 0.8rem;
  color: var(--ex-text-muted);
  margin-bottom: 0.5rem;
}

.ex-event-desc {
  font-size: 0.88rem;
  color: var(--ex-text-muted);
  margin: 0 0 0.7rem;
}

.ex-event-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  align-items: center;
}

/* Status column */
.ex-event-status {
  min-width: 150px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem 0.8rem;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 600;
  border: 1px solid rgba(255, 255, 255, 255, 0.18);
  height: fit-content;
  margin-top: 0.3rem;
}

.ex-event-status-open {
  background: rgba(50, 210, 106, 0.16);
  color: #7de6aa;
}

.ex-event-status-closed {
  background: rgba(255, 92, 57, 0.1);
  color: #ff8b64;
}

.ex-event-status-soon {
  background: rgba(251, 206, 81, 0.14);
  color: #ffd47a;
}

/* Event button reusing styles from .ex-btn */
.ex-event-btn {
  font-size: 0.82rem;
}

@media (max-width: 900px) {
  .ex-event-card {
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-rows: auto auto;
  }

  .ex-event-status {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }
}

@media (max-width: 768px) {
  .ex-events-hero {
    padding-top: 2.2rem;
  }

  .ex-event-card {
    grid-template-columns: minmax(0, 1fr);
  }

  .ex-event-date {
    width: 100%;
    flex-direction: row;
    justify-content: flex-start;
    gap: 0.4rem;
  }

  .ex-event-status {
    align-self: flex-start;
  }

  .ex-event-actions {
    flex-direction: column;
    align-items: flex-start;
  }

  .ex-event-btn {
    width: 100%;
    justify-content: center;
  }
}

/* Enhance event text contrast */
.ex-events-hero h1,
.ex-events-section h2,
.ex-event-name {
  color: var(--ex-text-main) !important;
}

.ex-events-summary-card {
  color: var(--ex-text-main) !important;
}

.ex-event-meta,
.ex-event-desc {
  color: #c3c7d6 !important;
}

.ex-event-chip {
  color: #f5f5f5f7 !important;
}

/* ===========================
   LIVE TIMES PAGE
   =========================== */

.ex-live-hero-page {
  padding-top: 2.8rem;
  padding-bottom: 1.5rem;
}

.ex-live-hero-page h1 {
  font-family: "Montserrat", sans-serif;
  font-size: 2rem;
  margin-bottom: 0.3rem;
  color: var(--ex-text-main);
}

.ex-live-hero-page p {
  max-width: 38rem;
  color: var(--ex-text-muted);
}

.ex-live-search-card {
  margin-top: 1.5rem;
}

.ex-live-card h3 {
  margin-top: 0;
  margin-bottom: 0.2rem;
  color: var(--ex-text-main);
}

.ex-live-card .ex-event-meta {
  color: #c3c7d6;
}

.ex-live-status-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.25rem 0.7rem;
  border-radius: 999px;
  background: rgba(50, 210, 106, 0.16);
  color: #7de6aa;
  font-size: 0.8rem;
  border: 1px solid rgba(50, 210, 106, 0.35);
}

.ex-live-status-pill-soon {
  background: rgba(251, 206, 81, 0.14);
  color: #ffd47a;
  border-color: rgba(251, 206, 81, 0.4);
}

.ex-live-small-hint {
  font-size: 0.8rem;
  color: var(--ex-text-muted);
}

.ex-history-list {
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
}

.ex-history-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.8rem;
  background: rgba(12, 15, 25, 0.95);
  border-radius: 16px;
  padding: 0.8rem 1rem;
  border: 1px solid rgba(255, 255, 255, 255, 0.06);
}

.ex-history-main h3 {
  margin: 0 0 0.15rem;
  font-size: 0.98rem;
  color: var(--ex-text-main);
}

.ex-history-actions {
  flex-shrink: 0;
}

@media (max-width: 900px) {
  .ex-live-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 768px) {
  .ex-history-item {
    flex-direction: column;
    align-items: flex-start;
  }

  .ex-event-actions {
    flex-direction: column;
    align-items: flex-start;
  }

  .ex-event-btn {
    width: 100%;
    justify-content: center;
  }
}

/* ===========================
   SERVICES PAGE
   =========================== */

.ex-services-hero {
  padding-top: 2.8rem;
  padding-bottom: 1.5rem;
}

.ex-services-hero h1 {
  font-family: "Montserrat", sans-serif;
  font-size: 2rem;
  margin-bottom: 0.3rem;
  color: var(--ex-text-main);
}

.ex-services-hero p {
  max-width: 40rem;
  color: var(--ex-text-muted);
}

.ex-services-tags-row {
  margin-top: 1.4rem;
  margin-bottom: 1.2rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.ex-tag-pill {
  padding: 0.3rem 0.75rem;
  border-radius: 999px;
  font-size: 0.8rem;
  background: rgba(255, 255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 255, 0.08);
  color: var(--ex-text-muted);
}

.ex-services-grid-section {
  padding-top: 1.5rem;
  padding-bottom: 3.5rem;
}

.ex-service-card {
  min-height: 280px;
}

.ex-service-icon {
  font-size: 1.8rem;
  margin-bottom: 0.4rem;
}

.ex-service-list {
  list-style: none;
  padding-left: 0;
  margin: 0.6rem 0 0;
  font-size: 0.85rem;
  color: var(--ex-text-muted);
}

.ex-service-list li + li {
  margin-top: 0.25rem;
}

.ex-services-packs {
  padding-top: 0;
  padding-bottom: 4rem;
}

.ex-services-packs-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1.2rem;
}

.ex-service-pack {
  background: rgba(12, 15, 25, 0.96);
  border-radius: 18px;
  padding: 1.2rem 1.2rem 1.3rem;
  border: 1px solid rgba(255, 255, 255, 255, 0.08);
  box-shadow: 0 14px 32px 32px rgba(0, 0, 0, 0, 0.45);
}

.ex-service-pack h3 {
  margin-top: 0;
  margin-bottom: 0.2rem;
  color: var(--ex-text-main);
}

.ex-service-pack-type {
  margin: 0 0 0.5rem;
  font-size: 0.85rem;
  color: var(--ex-text-muted);
}

.ex-service-pack-btn {
  margin-top: 0.9rem;
  font-size: 0.85rem;
}

@media (max-width: 900px) {
  .ex-services-hero {
    padding-top: 2.2rem;
  }
}

@media (max-width: 768px) {
  .ex-services-tags-row {
    gap: 0.4rem;
  }

  .ex-service-card {
    min-height: auto;
  }
}

/* ===========================
   STORE PAGE (header + frame)
   =========================== */

.ex-store-hero {
  padding-top: 2.8rem;
  padding-bottom: 1.5rem;
}

.ex-store-hero h1 {
  font-family: "Montserrat", sans-serif;
  font-size: 2rem;
  margin-bottom: 0.3rem;
  color: var(--ex-text-main);
}

.ex-store-hero p {
  max-width: 40rem;
  color: var(--ex-text-muted);
}

.ex-store-tags-row {
  margin-top: 1.4rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.ex-store-featured {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}

.ex-store-featured-grid .ex-product-card {
  min-height: 250px;
}

.ex-product-meta-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.6rem;
  margin-top: 0.6rem;
}

.ex-store-wrapper {
  padding-top: 1rem;
  padding-bottom: 3rem;
}

.ex-store-frame {
  background: #f5f7fb;
  border-radius: 20px;
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0, 0.45);
  padding: 1.8rem 1.8rem 2rem;
  max-width: 1200px;
  margin: 0 auto;
}

.ex-store-frame,
.ex-store-frame * {
  color: #222 !important;
}

.ex-store-frame ul.products {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem;
}

.ex-store-frame ul.products li.product {
  background: #ffffffff;
  border-radius: 14px;
  padding: 0.9rem 0.9rem 1rem;
  box-shadow: 0 6px 18px 18px rgba(0, 0, 0, 0, 0.1);
  text-align: left;
  border: 1px solid #e2e6f1;
}

.ex-store-frame ul.products li.product a {
  text-decoration: none;
}

.ex-store-frame ul.products li.product h2,
.ex-store-frame ul.products li.product .woocommerce-loop-product__title {
  font-size: 0.95rem;
  margin: 0.4rem 0 0.3rem;
  color: #222;
}

.ex-store-frame ul.products li.product .price {
  font-weight: 600;
  margin-bottom: 0.4rem;
}

.ex-store-frame a.button,
.ex-store-frame button.button,
.ex-store-frame .added_to_cart {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.45rem 1.1rem;
  border-radius: 999px;
  background: linear-gradient(135deg, #ff5c39, #ff965f);
  color: #fff !important;
  border: none;
  font-size: 0.8rem;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  transition: transform 0.15s ease, box-shadow 0.2s ease;
}

.ex-store-frame a.button:hover,
.ex-store-frame button.button:hover,
.ex-store-frame .added_to_cart:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 20px rgba(255, 92, 57, 0.4);
}

@media (max-width: 900px) {
  .ex-store-hero {
    padding-top: 2.2rem;
  }

  .ex-store-frame {
    padding: 1.2rem 1rem 1.6rem;
  }
}

@media (max-width: 768px) {
  .ex-store-featured-grid .ex-product-card {
    min-height: auto;
  }
}

/* ===========================
   PAGE I AM AN ORGANIZER
   =========================== */

.ex-org-hero {
  padding-top: 2.8rem;
  padding-bottom: 1.5rem;
}

.ex-org-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(0, 1.1fr);
  gap: 2rem;
  align-items: flex-start;
}

.ex-org-hero h1 {
  font-family: "Montserrat", sans-serif;
  font-size: 2rem;
  margin-bottom: 0.4rem;
  color: var(--ex-text-main);
}

.ex-org-lead {
  max-width: 36rem;
  color: var(--ex-text-muted);
}

.ex-org-tags-row {
  margin-top: 1.2rem;
  margin-bottom: 0.8rem;
}

.ex-org-highlights {
  list-style: none;
  padding: 0;
  margin: 0.6rem 0 0;
  font-size: 0.9rem;
  color: var(--ex-text-muted);
}

.ex-org-highlights li + li {
  margin-top: 0.25rem;
}

/* Organizer contact card */
.ex-org-card {
  background: rgba(12, 15, 25, 0.96);
  border-radius: 20px;
  padding: 1.4rem 1.5rem 1.5rem 1.5rem;
  border: 1px solid rgba(255, 255, 255, 255, 0.08);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0, 0.6);
}

.ex-org-card h2 {
  margin-top: 0;
  margin-bottom: 0.2rem;
}

.ex-org-card-text {
  margin: 0 0 0.9rem;
  font-size: 0.9rem;
  color: var(--ex-text-muted);
}

.ex-org-form {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  margin-top: 0.2rem;
}

.ex-org-form-row {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.ex-org-form-row label {
  font-size: 0.8rem;
  color: var(--ex-text-muted);
}

.ex-org-form-row input,
.ex-org-form-row textarea {
  padding: 0.55rem 0.8rem;
  border-radius: 10px;
  border: 1px solid var(--ex-border-subtle);
  background: rgba(3, 5, 10, 0.9);
  color: var(--ex-text-main);
  font-size: 0.9rem;
}

.ex-org-form-row input::placeholder,
.ex-org-form-row textarea::placeholder {
  color: #5c6070;
}

.ex-org-form-row-inline {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.6rem;
}

.ex-org-privacy {
  margin-top: 0.3rem;
  font-size: 0.75rem;
}

.ex-org-submit {
  margin-top: 0.2rem;
  width: 100%;
  justify-content: center;
}

/* Organizer services section */
.ex-org-services {
  padding-top: 1.5rem;
  padding-bottom: 3rem;
}

/* specific final CTA */
.ex-org-cta-final {
  padding-bottom: 4rem;
}

/* Responsive */
@media (max-width: 900px) {
  .ex-org-hero {
    padding-top: 2.2rem;
  }

  .ex-org-hero-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .ex-org-card {
    order: -1;
  }
}

@media (max-width: 768px) {
  .ex-org-form-row-inline {
    grid-template-columns: minmax(0, 1fr);
  }

  .ex-org-submit {
    width: 100%;
  }
}

/* ===========================
   ACCESS ORGANIZERS
   =========================== */

.ex-org-access {
  padding-top: 1rem;
  padding-bottom: 2.8rem;
}

.ex-org-access-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1.1fr);
  gap: 2rem;
  align-items: flex-start;
}

.ex-org-access-text {
  max-width: 34rem;
  color: var(--ex-text-muted);
}

.ex-org-access-note {
  margin-top: 0.6rem;
  font-size: 0.8rem;
  color: var(--ex-text-muted);
}

.ex-org-access-card {
  margin-top: 0;
}

.ex-org-login-form .ex-org-submit {
  width: 100%;
  justify-content: center;
}

@media (max-width: 900px) {
  .ex-org-access-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .ex-org-access-card {
    order: -1;
  }
}

/* === FORCE LOGO SIZE IN HEADER === */

header.ex-header .ex-logo,
header.ex-header .ex-logo-link {
  display: flex !important;
  align-items: center !important;
  gap: 0 !important;
}

html body header.ex-header .ex-logo img.ex-logo-img {
  height: 24px !important;
  max-height: 24px !important;
  width: auto !important;
  max-width: 100% !important;
  display: block !important;
  padding: 0 !important;
  margin: 0 !important;
  object-fit: contain !important;
}

html body body header.ex-header .ex-header-inner {
  height: 60px !important;
  gap: 1.5rem !important;
}

@media (max-width: 768px) {
  html body header.ex-header .ex-header-inner {
    height: 56px !important;
  }
}

/* =========================================================
 * AUXILIARY COLORS
 * ======================================================= */

:root {
  --extrem-primary: var(--ex-primary, #ff5c39);
}

/* =========================================================
 * LISTING /ENROLLMENT (shortcode [test_listing])
 * ======================================================= */

.registrations-wrapper {
  max-width: 1100px;
  margin: 40px auto 80px;
  padding: 0 20px;
}

.inscriptions-title {
  font-size: 40px;
  line-height: 1.1;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 2px;
  text-align: left;
  color: #ffffffff;
  margin: 0 0 35px;
}

/* Card for each test */
.registration-card {
  display: grid !important;
  grid-template-columns: 110px 150px 1fr 170px;
  gap: 24px;
  align-items: center;
  background: #ffffffff;
  border-radius: 18px;
  padding: 24px 28px;
  margin-bottom: 22px;
  box-shadow: 0 14px 30px 30px rgba(0,0,0,0,0.06);
  border: 1px solid #f1f1f1f1;
}

/* Date */
.registration-date .day {
  display: block;
  font-size: 46px;
  font-weight: 800;
  color: #111111 !important;
  line-height: 1;
}
.registration-date .month {
  display: block;
  font-size: 18px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: #55555555;
  margin-top: 6px;
}
.registration-date .year {
  display: block;
  font-size: 16px;
  font-weight: 500;
  color: #99999999;
  margin-top: 2px;
}

/* Poster */
.inscripcion-cartel img {
  width: 150px !important;
  max-width: 150px !important;
  height: auto !important;
  border-radius: 12px;
  object-fit: cover;
  box-shadow: 0 10px 18px 18px rgba(0,0,0,0,0.18);
}

/* Test info */
.registration-info .test-name {
  font-size: 24px;
  font-weight: 700;
  color: #111111;
  margin: 0 0 4px;
}
.registration-info .test-place {
  font-size: 15px;
  color: #66666666;
  margin: 0 0 10px;
}
.registration-info .btn-see-more {
  display: inline-block;
  font-size: 14px;
  font-weight: 600;
  color: #ff5c39;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 1px;
  border-bottom: 1px solid rgba(255,92,57,0.35);
  padding-bottom: 2px;
}
.registration-info .btn-see-mas:hover {
  color: #e14b24;
  border-color: rgba(225,75,36,0.6);
}

/* Right column: close + button */
.inscription-action {
  text-align: right;
}
.enrollment-action .close {
  font-size: 14px;
  color: #77777777;
  margin: 0 0 10px;
}

/* SIGN-UP button */
.sign-up-action .btn-sign-up,
.btn-sign-up {
  display: inline-block;
  background: linear-gradient(135deg, #ff5c39, #ff965f);
  color: #ffffffff !important;
  font-size: 14px;
  font-weight: 700;
  padding: 12px 26px;
  border-radius: 999px;
  text-transform: uppercase;
  letter-spacing: 1.4px;
  text-decoration: none !important;
  border: none;
  cursor: pointer;
  box-shadow: 0 10px 22px 22px rgba(255,92,57,0.35);
  transition: all .18s ease-out;
}
.enroll-action .btn-enroll:hover,
.btn-inscribe:hover {
  background: #e14b24;
  box-shadow: 0 14px 28px rgba(225,75,36,0.45);
  transform: translateY(-1px);
}

/* Responsive listing inscriptions */
@media (max-width: 1024px) {
  .registration-card {
    grid-template-columns: 90px 120px 1fr;
    grid-template-rows: auto auto;
  }
  .inscription-action {
    grid-column: 1 / -1;
    text-align: left;
    margin-top: 12px;
  }
}
@media (max-width: 768px) {
  .registration-card {
    grid-template-columns: 80px 1fr;
    grid-template-rows: auto auto auto auto;
    padding: 18px 18px 20px 20px;
  }
}

/* ===== FICHA /test/ ===== */

.test-wrapper {
  max-width: 1100px;
  margin: 40px auto 70px;
  padding: 40px 20px 20px 70px;
}

.test-header h1 {
  font-size: 36px;
  font-weight: 800;
  color: #ffffffff;
  margin: 0 0 10px;
}
.test-header .test-date {
  font-size: 16px;
  color: #c3c7d6;
  margin: 0 0 4px;
}
.test-header .test-place {
  font-size: 15px;
  color: #c3c7d6;
  margin: 0 0 14px;
}

/* Regulation / Official website links */
.test-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 24px;
}
.test-links .btn-sec {
  display: inline-block;
  padding: 8px 16px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1px;
  border: 1px solid #dddddddddd;
  color: #111111;
  text-decoration: none;
  background: #ffffffff;
}
.test-links .btn-sec:hover {
  border-color: #ff5c39;
  color: #ff5c39;
}

/* Main layout: banner + modality cards */
.test-main {
  display: grid !important;
  grid-template-columns: minmax(0, 320px) minmax(0, 1fr);
  gap: 28px;
  align-items: flex-start;
  margin-bottom: 40px;
}

/* Poster */
.test-poster img {
  width: 100%;
  border-radius: 18px;
  box-shadow: 0 18px 35px 35px rgba(0,0,0,0,0.4);
}

/* Modalities column */
.test-modalities h2 {
  font-size: 24px;
  font-weight: 700;
  margin: 0 0 16px;
  color: #ffffffff;
}
.modality-card {
  background: #ffffffff;
  border-radius: 18px;
  padding: 18px 20px 20px 20px;
  margin-bottom: 16px;
  border: 1px solid #f1f1f1f1;
  box-shadow: 0 14px 30px 30px rgba(0,0,0,0,0.08);
}
.modality-card h3 {
  font-size: 18px;
  font-weight: 700;
  margin: 0 0 6px;
  color: #111111;
}
.modality-card .price {
  font-size: 20px;
  font-weight: 700;
  color: #111111;
  margin: 0 0 4px;
}
.modality-card .closing {
  font-size: 14px;
  color: #77777777;
  margin: 0 0 12px;
}

/* Long description */
.test-description {
  font-size: 15px;
  line-height: 1.7;
  color: #f5f5f5f7;
  max-width: 850px;
}

@media (max-width: 900px) {
  .test-main {
    grid-template-columns: 1fr;
  }
}

/* =========================================================
 * WOO PRODUCT SHEET - REGISTRATIONS
 * ======================================================= */

/* product main container */
body.single-product.product_cat-inscriptions .product {
  max-width: 1100px;
  margin: 40px auto 80px;
  background: #ffffffff;
  border-radius: 20px;
  box-shadow: 0 18px 40px rgba(0,0,0,0,0.25);
  padding: 30px 30px 36px 36px;
  display: grid;
  grid-template-columns: minmax(0, 340px) minmax(0, 1fr);
  gap: 28px;
}

/* Gallery / image */
body.single-product.product_cat-inscriptions
  .woocommerce-product-gallery {
  margin: 0;
}

body.single-product.product_cat-inscriptions.
  .woocommerce-product-gallery img {
  border-radius: 16px;
  box-shadow: 0 16px 30px 30px rgba(0,0,0,0,0.25);
}

/* Right column */
body.single-product.product_cat-inscriptions
  .summary.entry-summary {
  margin: 0;
  padding: 0;
}

/* Title and price */
body.body.single-product.product_cat-inscriptions
  .product_title {
  font-size: 26px;
  font-weight: 800;
  color: #111111;
  margin-bottom: 8px;
}

body.single-product.product_cat-inscriptions.
  .summary .price {
  font-size: 22px;
  font-weight: 700;
  color: #111111;
  margin-bottom: 8px;
}

/* Short description */
body.body.single-product.product_cat-inscriptions
  .summary .woocommerce-product-details__short-description {
  font-size: 14px;
  color: #555555;
  margin-bottom: 14px;
}

/* Sign up button */
body.single-product.product_cat-inscriptions
  .single_add_to_cart_button {
  background: var(--extrem-primary);
  color: #ffffffff !important;
  border-radius: 999px;
  padding: 11px 30px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1.3px;
  box-shadow: 0 10px 22px 22px rgba(255,92,57,0.35);
  border: none;
  transition: all .18s ease-out;
}

body.single-product.product_cat-inscriptions.
  .single_add_to_cart_button:hover {
  background: #e2472b;
  box-shadow: 0 14px 28px rgba(226,71,43,0.45);
  transform: translateY(-1px);
}

/* YITH fields */
body.single-product.product_cat-inscriptions
  .ywapo_input_container,
body.body.single-product.product_cat-inscriptions
  .ywapo_group_container {
  margin-bottom: 8px;
}

body.single-product.product_cat-inscriptions.
  .ywapo_input_container label,
body.body.single-product.product_cat-inscriptions
  .ywapo_group_container label {
  font-size: 13px;
  color: #444444;
}

/* Inputs */
body.single-product.product_cat-inscriptions
  .ywapo_input_container input[type="text"],
body.body.single-product.product_cat-inscriptions
  .ywapo_input_container input[type="email"],
body.single-product.product_cat-inscriptions
  .ywapo_input_container input[type="tel"],
body.single-product.product_cat-enrollments
  .ywapo_input_container input[type="date"],
body.single-product.product_cat-enrollments
  .ywapo_input_container select {
  width: 100%;
  border-radius: 999px;
  border: 1px solid #dddddddddd;
  padding: 7px 12px;
  font-size: 14px;
}

/* Remove unnecessary meta */
body.single-product.product_cat-inscriptions
  .product_meta {
  display: none;
}

@media (max-width: 900px) {
  body.single-product.product_cat-inscriptions .product {
    grid-template-columns: 1fr;
    padding: 22px 18px 26px 26px;
  }
}
/* Cart and checkout with light background and dark text */
body.woocommerce-cart,
body.woocommerce-checkout {
  background: #ffffffff;
  color: #111111;
}
/* Checkout ONLY with virtual products:
   hide "Billing and shipping address" title */.
.checkout-only-virtual .woocommerce-billing-fields &gt; h3 {
  display: none;
}
/* ========= PAGE REGISTRATIONS (ID 11491) ========= */

/* General content container */
body.page-id-11491 .entry-content {
  max-width: 1100px;
  margin: 40px auto 70px;
  padding: 0 20px 60px;
}

/* HERO / INTERNAL HEADER */
.insc-hero {
  background: linear-gradient(135deg, #050a1a, #11182c);
  border-radius: 24px;
  padding: 26px 26px 22px 22px;
  margin-bottom: 26px;
  box-shadow: 0 18px 40px rgba(0,0,0,0,0.55);
  color: #ffffffff;
}

.insc-hero-title {
  font-size: 32px;
  line-height: 1.1;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 2px;
  margin: 0 0 6px;
}

.insc-hero-subtitle {
  font-size: 15px;
  color: #c3c7d6;
  max-width: 600px;
  margin: 0 0 14px;
}

/* SEARCH-SEARCH-BOX */
.insc-search-box {
  margin-top: 14px;
  background: #ffffffff;
  border-radius: 18px;
  padding: 14px 16px 16px 16px;
  box-shadow: 0 14px 30px 30px rgba(0,0,0,0,0.16);
  color: #111111;
}

.insc-search-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.insc-input {
  flex: 1 1 220px;
  min-width: 0;
  border-radius: 999px;
  border: 1px solid #dde1f0;
  padding: 8px 14px;
  font-size: 14px;
}

.insc-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 18px;
  border-radius: 999px;
  border: none;
  cursor: pointer;
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1px;
  background: linear-gradient(135deg, #ff5c39, #ff965f);
  color: #ffffffff;
  box-shadow: 0 10px 22px 22px rgba(255,92,57,0.35);
  text-decoration: none;
  transition: transform .15s ease, box-shadow .2s ease, background .2s ease;
}

.insc-button:hover {
  transform: translateY(-1px);
  box-shadow: 0 14px 28px 28px rgba(255,92,57,0.5);
}

.insc-search-note {
  margin: 8px 2px 0;
  font-size: 12px;
  color: #818492;
}

/* FOOTER / CTA AT THE BOTTOM OF THE INSC PAGE */
.insc-footer-cta {
  margin-top: 42px;
  padding: 22px 20px 24px;
  border-radius: 20px;
  background: rgba(5, 10, 26, 0.96);
  color: #f5f5f5f7;
  text-align: center;
  box-shadow: 0 16px 34px 34px rgba(0,0,0,0,0.55);
}

.insc-footer-cta h2 {
  font-size: 22px;
  font-weight: 700;
  margin: 0 0 6px;
}

.insc-footer-cta p {
  font-size: 14px;
  margin: 0;
}

.insc-footer-cta a {
  color: #ff965f;
  text-decoration: underline;
}

/* Responsive */
@media (max-width: 700px) {
  .insc-hero {
    padding: 20px 18px 18px 18px;
  }

  .insc-hero-title {
    font-size: 26px;
  }

  .insc-search-box {
    padding: 12px 12px 14px 14px;
  }

  .insc-button {
    width: 100%;
    justify-content: center;
  }
}
/* ============================================
   PAGE INSCRIPTIONS (ID 11491)
   ============================================ */

/* 1) Return to display HEADER and FOOTER only in /enrollments/ */
body.page-id-11491 header#masthead,
body.body.page-id-11491 .site-header {
  display: block !important;
}

body.body.page-id-11491 .site-footer,
body.page-id-11491 #wpcom-credit,
body.page-id-11491 .site-info {
  display: block !important;
}

/* 2) Hide the title that appears ABOVE the search engine ("REGISTRATIONS") */
body.page-id-11491 .ex-insc-title,
body.page-id-11491 .ex-insc-hero h1,
body.body.page-id-11491 .ex-insc-hero h2 {
  display: none !important;
}

/* 3) Title "INSCRIPTIONS" BETWEEN search engine and listing in orange color */
body.page-id-11491 .inscriptions-title {
  color: #ff5c39 !important; /* corporate orange */
}
/* =========================================================
   REGISTRATIONS /registrations/ (extra settings)
   ========================================================= */

/* 1) Hide the "REGISTRATIONS" that appears BETWEEN the header and the search engine */
body.body.page-id-11491 .entry-content &gt; .wp-block-heading:first-of-type:not(.entries-title),
body.page.page-id-11491 .entry-content &gt; h1:first-of-type:not(.entries-title),
body.page.page-id-11491 .entry-content &gt; h2:first-of-type:not(.entry-title) {
  display: none !important;
}

/* 2) Blank the text for "Are you an organizer...?"
   (usually carries a link to the organizers page) */
body.page-id-11491 a[href*="organizador"],
body.page.page-id-11491 a[href*="I am an organizer"] {
  color: #ffffffff !important;
}

body.body.page-id-11491 a[href*="organizer"]:hover,
body.page.page-id-11491 a[href*="am-organizer"]:hover {
  color: #ff5c39 !important; /* orange on mouseover */
}
/* REGISTRATION PAGE - Final CTA "Are you an event organizer?" blank */
body.page-id-11491 .entry-content &gt; .wp-block-group:last-of-type h2,
body.page.page-id-11491 .entry-content &gt; .wp-block-group:last-of-type h3,
body.page.page-id-11491 .entry-content &gt; .wp-block-group:last-of-type p {
  color: #ffffffff !important;
}
/* ============================================
   ENTRIES (ID 11491)
   - Set "Are you an event organizer?" to "blank".
   ============================================ */

/* 1) All H2/H3 of the page blank */
body.page-id-11491 h2,
body.body.page-id-11491 h3 {
  color: #ffffffff !important;
}

/* 2) EXCEPTION: the title “REGISTRATIONS” in the list (below the search engine),
      we want it in corporate orange */
body.page-id-11491 .inscripciones-title,
body.body.page-id-11491 h2.inscripciones-title {
  color: #ff5c39 !important;
}
/* ----- 1. Remove top white line / border ----- */
/* Remove border and reduce the space above the content on event pages */
body.single #content,
body.single .site-main {
    border-top: 0 !important;
    padding-top: 0 !important;
}

/* ----- 2. Turn the content into a "card" with rounded corners ----- */
/* The main block of the event as a centered white card */
body.single .site-main article {
    background: #ffffffff;
    border-radius: 30px; /* here you can play with the value */
    padding: 40px 50px;
    box-shadow: 0 20px 40px rgba(0,0,0, 0,.25);
    margin: 40px auto 60px auto;
    max-width: 1100px;
}

/* ----- 3. Hide text “By EXTREMELY SL / date” ----- */
body.single .entry-meta {
    display: none !important;
}

/* ----- 4. Orange buttons for WEB, REGULATION, REGISTER ME, etc. ----- */
/* All the links inside the content are seen as orange button */
body.single .entry-content a {
    display: inline-block;
    padding: 8px 18px;
    margin: 6px 6px 6px 6px 0;
    background-color: #ff6a00; /* change this color to corporate orange if different */
    color: #ffffffff !important;
    border-radius: 999px;
    text-decoration: none;
    font-weight: 600;
}

/* hover effect */
body.single .entry-content a:hover {
    background-color: #e55e00; /* a little darker on mouseover */
}

/* ----- 5. Content text in black (for good readability) ----- */
body.single .entry-content,
body.single .entry-content p,
body.single .entry-content li,
body.single .entry-content span {
    color: #000000 !important;
}

/* ----- 6. Hide bottom (Previous / Next) ----- */
body.single .navigation.post-navigation {
    display: none !important;
}

/* ----- 7. Hide the footer ONLY on these test/registration pages ----- */
body.single .site-footer {
    display: none !important;
}

/* ----- 8. (Optional) More rounding on the inside "card" of the price/registration ----- */
/* In case you want the block where "Single registration - 6,00€ - Sign me up" goes to be even more rounded */
body.single .entry-content .wp-block-group,
body.single .entry-content .wp-block-columns,
body.single .entry-content &gt; div {
    border-radius: 24px;
}
/* Completely remove the top white stripe on test pages */.

/* Dark background from top */
body.single-test,
body.single-test #page,
body.single-test .site-content {
    background: #050814 !important; /* put here the same dark color you use */
}

/* Remove blank gap by margins/top paddings */
body.single-proof #primary,
body.single-proof #content,
body.single-test .site-main {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* Hide the header in the test tabs, in case it adds blank height */
body.single-test .site-header {
    display: none !important;
}
/* === Remove the top white strip on the registration (product) page === */

/* Same dark background from above */
body.single-product,
body.single-product #page,
body.single-product .site-content {
    background: #050814 !important; /* same dark color you use in the rest */
}

/* remove top gaps that generate the white band */
body.single-product #primary,
body.single-product #content,
body.single-product .site-main {
    margin-top: 0 !important;
    padding-top: 0 !important;
    border-top: 0 !important;
}

/* Hide the header only on this signup page */
body.single-product .site-header {
    display: none !important;
}
/****************************************************
 * REGISTRATION PAGE (PRODUCT)
 ****************************************************/

/* 1) Remove the top block "Related" (the one with the orange pills)
   and leave only "Related products" with photos */
body.single-product .jp-relatedposts,
body.single-product .entry-content .related-posts,
body.single-product .entry-content .post-related {
    display: none !important;
}

/* 2) Cool cards for "related products" */
body.single-product .woocommerce ul.products {
    margin-top: 30px;
}

body.single-product .woocommerce ul.products li.product {
    background: #050814;
    border-radius: 24px;
    padding: 20px 20px 24px 24px;
    box-shadow: 0 18px 40px 40px rgba(0,0,0, 0,.5);
    text-align: center;
}

body.single-product .woocommerce ul.products li.product .woocommerce-LoopProduct-link {
    display: block;
    margin-bottom: 16px;
}

body.single-product .woocommerce ul.products li.product .woocommerce-loop-product__title,
body.single-product .woocommerce ul.products li.product .price {
    color: #ffffffff !important;
}

/* Orange buttons on the related product cards */
body.single-product .woocommerce ul.products li.product a.button {
    background-color: #ff6a00 !important; /* corporate orange */
    color: #ffffffff !important;
    border-radius: 999px;
    padding: 8px 20px;
    border: none;
    font-weight: 600;
}

body.single-product .woocommerce ul.products li.product li.product a.button:hover {
    background-color: #e55e00 !important;
}

/* 3) blue main button "Sign me up" → orange */
body.single-product .woocommerce div.product form.cart .button,
body.single-product .woocommerce div.product .single_add_to_cart_button,
body.single-product .woocommerce div.product .single_add_to_cart_button.button.alt {
    background-color: #ff6a00 !important;
    color: #ffffffff !important;
    border-radius: 999px;
    padding: 10px 26px;
    font-weight: 700;
    border: none;
    text-transform: none;
}

body.single-product .woocommerce div.product form.cart .button:hover,
body.single-product .woocommerce div.product .single_add_to_cart_button:hover {
    background-color: #e55e00 !important;
}

/* 4) Nicer card-like forms */

/* Data tables (Participant data, Contact, etc.) */
body.single-product .woocommerce div.product .summary table {
    border-collapse: separate;
    border-spacing: 0;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 18px 40px rgba(0,0,0, 0,.5);
    margin-bottom: 24px;
}

body.single-product .woocommerce div.product .summary table th,
body.single-product .woocommerce div.product .summary table td {
    border: 0;
}

/* Text fields and selects inside the form */
body.single-product .woocommerce div.product .summary input[type="text"],
body.single-product .woocommerce div.product .summary input[type="email"],
body.single-product .woocommerce div.product .summary input[type="tel"],
body.single-product .woocommerce div.product .summary input[type="number"],
body.single-product .woocommerce div.product .summary select,
body.single-product .woocommerce div.product .summary textarea {
    border-radius: 8px;
    border: 1px solid rgba(0,0,0, 0,.18);
    padding: 8px 10px;
    box-shadow: 0 4px 8px 8px rgba(0,0,0, 0,.12);
}

/* 5) Name, price and type of inscription in white / orange */.

/* Product title */
body.single-product .woocommerce div.product .product_title {
    color: #ffffffff;
}

/* Price in orange */
body.single-product .woocommerce div.product p.price,
body.body.single-product .woocommerce div.product span.price {
    color: #ff6a00 !important;
    font-size: 1.4rem;
    font-weight: 700;
}

/* Category / type of registration */
body.single-product .woocommerce div.product .product_meta,
body.single-product .woocommerce div.product .product_meta a {
    color: #ffffffff !important;
}

body.single-product .woocommerce div.product .product_meta a:hover {
    color: #ff6a00 !important;
}
/****************************************************
 * WHITE BAND FOR "RELATED PRODUCTS"
 ****************************************************/

/* Full white stripe only in the related products area */
body.single-product .related.products {
    background: #ffffffff;
    margin-top: 60px;
    margin-bottom: 0;
    padding: 40px 0 60px;
}

/* Center the content inside the strip */.
body.single-product .related.products &gt; h2,
body.single-product .related.products &gt; ul.products {
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
}

/* Title "Related products" visible */.
body.single-product .related.products &gt; h2 {
    color: #050814; /* almost black */
    font-size: 1.8rem;
    font-weight: 700;
    margin-bottom: 24px;
}

/* Cards inside the white stripe */
body.single-product .related.products ul.products li.product {
    background: #ffffffff;
    border-radius: 20px;
    padding: 20px 20px 20px 24px;
    box-shadow: 0 15px 35px 35px rgba(0,0,0, 0,.18);
    text-align: center;
}

/* Card texts */
body.single-product .related.products ul.products li.products .woocommerce-loop-product__title {
    color: #050814 !important;
    font-weight: 600;
}

body.single-product .related.products ul.products li.products .price {
    color: #ff6a00 !important; /* corporate orange */
}

/* "Sign me up" button in orange inside related products */
body.single-product .related.products ul.products li.product a.button {
    background-color: #ff6a00 !important;
    color: #ffffffff !important;
    border-radius: 999px;
    padding: 8px 20px;
    border: none;
    font-weight: 600;
}

body.single-product .related.products ul.products li.products li.product a.button:hover {
    background-color: #e55e00 !important;
}
/****************************************************
 * TOP TEXT OF THE TAB (TITLE, PRICE, DESCRIPTION)
 ****************************************************/

/* blank product title */
body.single-product .product_title {
    color: #ffffffff !important;
}

/* Price in corporate orange */
body.single-product .price,
body.single-product p.price,
body.single-product span.price {
    color: #ff6a00 !important;
}

/* Description and other text in the upper zone in white */
body.single-product .summary,
body.single-product .summary p,
body.single-product .summary span,
body.single-product .summary li,
body.single-product .summary strong {
    color: #ffffffff !important;
}
/****************************************************
 * WHITE STRIPE FOR BLOCKS TO FILL IN
 ****************************************************/

/* Card / white stripe for the whole registration form */
body.single-product .woocommerce div.product form.cart {
    background: #ffffffff;
    border-radius: 24px;
    padding: 30px 32px 36px;
    max-width: 900px;
    margin: 30px auto 50px auto; /* leave space with black background */
    box-shadow: 0 20px 40px rgba(0,0,0, 0,.45);
}

/* Text inside the strip in dark color (readable on white) */
body.single-product .woocommerce div.product form.cart,
body.single-product .woocommerce div.product form.cart p,
body.single-product .woocommerce div.product form.cart span,
body.single-product .woocommerce div.product form.cart label,
body.single-product .woocommerce div.product form.cart th,
body.single-product .woocommerce div.product form.cart td {
    color: #111111 !important;
}

/* Input fields inside the strip: a bit more careful */
body.single-product .woocommerce div.product form.cart input[type="text"],
body.single-product .woocommerce div.product form.cart input[type="email"],
body.single-product .woocommerce div.product form.cart input[type="tel"],
body.single-product .woocommerce div.product form.cart input[type="number"],
body.single-product .woocommerce div.product form.cart input[type="date"],
body.single-product .woocommerce div.product form.cart select,
body.single-product .woocommerce div.product form.cart textarea {
    width: 100%;
    border-radius: 10px;
    border: 1px solid #dde1e7;
    padding: 8px 10px;
    background: #fafafa;
}

/* Focus effect on fields */
body.single-product .woocommerce div.product form.cart input[type="text"]:focus,
body.single-product .woocommerce div.product form.cart input[type="email"]:focus,
body.single-product .woocommerce div.product form.cart input[type="tel"]:focus,
body.single-product .woocommerce div.product form.cart input[type="number"]:focus,
body.single-product .woocommerce div.product form.cart input[type=“date”]:focus,
body.single-product .woocommerce div.product form.cart select:focus,
body.single-product .woocommerce div.product form.cart textarea:focus {
    outline: none;
    border-color: #ff6a00;
    box-shadow: 0 0 0 2px rgba(255,106,0, 0,.25);
}
/****************************************************
 * CENTER WHITE CARD ON THE REGISTRATION PAGE
 ****************************************************/

/* We secure general dark background (you may already have it) */
body.single-product,
body.single-product #page,
body.single-product .site-content {
    background: #050814 !important;
}

/* Centered primary container */
body.single-product #primary,
body.single-product #content {
    max-width: 1200px;
    margin: 0 auto;
}

/* Large white card (similar to the one on the test page) */
body.single-product .site-main {
    background: #ffffffff;
    border-radius: 30px;
    max-width: 1100px;
    margin: 40px auto 60px auto !important; /* separation with dark background */
    padding: 40px 50px !important;
    box-shadow: 0 25px 60px 60px rgba(0,0,0, 0,.45);
}

/* Avoid extra margins inside the card */
body.single-product .site-main .woocommerce,
body.single-product .site-main .woocommerce div.product {
    margin: 0;
}

/* The form stops having its own 'card' because it's already inside the big one */
body.single-product .woocommerce .woocommerce div.product form.cart {
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    max-width: none !important;
    margin-top: 30px;
}
/* Short description (text before "Name") in black */
body.single-product .woocommerce div.product .summary
.woocommerce-product-details__short-description,
body.single-product .woocommerce div.product .summary
.woocommerce-product-details__short-description p {
    color: #000000 !important;
}
/* Buttons on the registration form in corporate orange */
body.single-product .woocommerce a.button,
body.single-product .woocommerce button.button,
body.single-product .woocommerce input.button,
body.single-product .woocommerce #respond input#submit {
    background-color: #ff6a00 !important; /* orange */
    color: #ffffffff !important;
    border-radius: 999px;
    border: none;
    padding: 8px 22px;
    font-weight: 600;
}

/* Hover a little darker */
body.single-product .woocommerce a.button:hover,
body.single-product .woocommerce button.button:hover,
body.single-product .woocommerce input.button:hover,
body.single-product .woocommerce #respond input#submit:hover {
    background-color: #e55e00 !important;
}
/* --- TOP TEXT IN BLACK (STEPS ON ALL OF THE ABOVE) --- */

/* Product title in black */
body.single-product .woocommerce div.product .product_title {
    color: #000000 !important;
}

/* Price (if you want to stay in orange, leave this block) */
body.single-product .woocommerce div.product p.price,
body.single-product .woocommerce div.product span.price {
    color: #ff6a00 !important;
}

/* ALL summary area (including short description) in black */
body.single-product .woocommerce div.product .summary,
body.single-product .woocommerce div.product .summary p,
body.single-product .woocommerce div.product .summary span,
body.single-product .woocommerce div.product .summary li,
body.single-product .woocommerce div.product .summary strong {
    color: #000000 !important;
}
/* --- ORANGE BUTTONS ON THE REGISTRATION FORM --- */

body.single-product .site-main a.button,
body.single-product .site-main button,
body.single-product .site-main button.button,
body.single-product .site-main input[type="submit"],
body.single-product .site-main .single_add_to_cart_button {
    background-color: #ff6a00 !important; /* corporate orange */
    color: #ffffffff !important;
    border-radius: 999px;
    border: none;
    padding: 8px 22px;
    font-weight: 600;
}

/* Hover a little darker */
body.single-product .site-main a.button:hover,
body.single-product .site-main button:hover,
body.single-product .site-main button.button:hover,
body.single-product .site-main input[type="submit"]:hover,
body.single-product .site-main .single_add_to_cart_button:hover {
    background-color: #e55e00 !important;
}
/****************************************************
 * FORCE TOP TEXT IN BLACK
 ****************************************************/

/* All summary content (title, short description, etc.) in black */
body.single-product .summary,
body.single-product .summary * {
    color: #000000 !important;
}

/* The short description specifically (in case the theme uses extra styles) */
body.single-product .woocommerce-product-details__short-description,
body.single-product .woocommerce-product-details__short-description * {
    color: #000000 !important;
}

/* We put the PRICE back in corporate orange */
body.single-product .summary .price,
body.single-product .summary p.price,
body.single-product .summary span.price {
    color: #ff6a00 !important;
}
/****************************************************
 * FORCE COLOR OF DESCRIPTION AND "PARTICIPANT DATA".
 ****************************************************/

/* Text just below the amount (short description) in black */
body.single-product .summary .woocommerce-product-details__short-description,
body.single-product .summary .woocommerce-product-details__short-description * {
    color: #000000 !important;
}

/* Title "Participant Details" and other form headings in black */
body.single-product .summary h2,
body.single-product .summary h3,
body.single-product .summary th,
body.single-product .summary label,
body.single-product .summary strong {
    color: #000000 !important;
}
/****************************************************
 * FORM BLOCK TITLES IN BLACK
 * (Participant Data, Gender, Emergency Contact, etc.)
 ****************************************************/

body.single-product .woocommerce div.product form.cart h2,
body.single-product .woocommerce div.product form.cart h3,
body.single-product .woocommerce div.product form.cart th,
body.single-product .woocommerce div.product form.cart label,
body.single-product .woocommerce div.product form.cart strong,
body.single-product .woocommerce div.product form.cart .wcpa_group_title,
body.single-product .woocommerce div.product form.cart .wcpa_title {
    color: #000000 !important;
}
/****************************************************
 * 1. ALL TEXT INSIDE THE WHITE CARD IN BLACK
 * (Participant Data, Gender, Contact, etc.)
 ****************************************************/

body.single-product .site-main,
body.single-product .site-main p,
body.single-product .site-main span,
body.single-product .site-main li,
body.single-product .site-main label,
body.single-product .site-main th,
body.single-product .site-main td,
body.single-product .site-main h1,
body.single-product .site-main h2,
body.single-product .site-main h3,
body.single-product .site-main h4,
body.single-product .site-main h5,
body.single-product .site-main h6 {
    color: #000000 !important;
}

/****************************************************
 * 2. PRICE IN ORANGE (NUMBER + SYMBOL €)
 ****************************************************/

body.single-product .site-main .summary .price,
body.single-product .site-main .summary .price *,
body.single-product .site-main .summary .price,
body.single-product .site-main .summary span.price,
body.single-product .site-main .summary .woocommerce-Price-amount,
body.single-product .site-main .summary .woocommerce-Price-currencySymbol {
    color: #ff6a00 !important;
}

/****************************************************
 * 3. BUTTONS IN ORANGE (so they don't turn black)
 ****************************************************/

body.single-product .site-main a.button,
body.single-product .site-main button,
body.single-product .site-main button.button,
body.single-product .site-main input[type="submit"],
body.single-product .site-main .single_add_to_cart_button {
    background-color: #ff6a00 !important;
    color: #ffffffff !important;
    border-radius: 999px;
    border: none;
    padding: 8px 22px;
    font-weight: 600;
}

body.single-product .site-main a.button:hover,
body.single-product .site-main button:hover,
body.single-product .site-main button.button:hover,
body.single-product .site-main input[type="submit"]:hover,
body.single-product .site-main .single_add_to_cart_button:hover {
    background-color: #e55e00 !important;
}
/****************************************************
 * PAGE LISTING "REGISTRATIONS" (CATEGORY / STORE)
 ****************************************************/

/* 1. Dark background and no white stripes top/bottom */
body.tax-product_cat,
body.tax-product_cat #page,
body.tax-product_cat .site-content {
    background: #050814 !important;
}

/* Remove margins/paddings that create white space */
body.tax-product_cat #primary,
body.tax-product_cat #content,
body.tax-product_cat .site-main {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* (Optional) Hide the bottom white footer on this page */
body.tax-product_cat .site-footer {
    display: none !important;
}

/* 2. Box / white card containing title, cart and listing */ 3.
body.tax-product_cat .site-main {
    background: #ffffffff;
    border-radius: 30px;
    max-width: 1100px;
    margin: 40px auto 60px auto !important;
    padding: 40px 50px !important;
    box-shadow: 0 25px 60px 60px rgba(0,0,0, 0,.45);
}

/* Text inside the card in black */
body.tax-product_cat .site-main,
body.tax-product_cat .site-main * {
    color: #000000 !important;
}

/* Title "inscriptions" plus markup */
body.tax-product_cat .site-main .page-title {
    font-size: 2rem;
    font-weight: 700;
    margin-bottom: 10px;
}

/* 3. orange buttons (add to cart / see more / etc.) */ 4.
body.tax-product_cat .woocommerce a.button,
body.tax-product_cat .woocommerce button.button,
body.tax-product_cat .woocommerce input.button,
body.tax-product_cat .woocommerce a.added_to_cart {
    background-color: #ff6a00 !important; /* corporate orange */
    color: #ffffffff !important;
    border-radius: 999px;
    border: none;
    padding: 8px 22px;
    font-weight: 600;
    text-transform: none;
}

body.tax-product_cat .woocommerce a.button:hover,
body.tax-product_cat .woocommerce button.button:hover,
body.tax-product_cat .woocommerce input.button:hover,
body.tax-product_cat .woocommerce a.added_to_cart:hover {
    background-color: #e55e00 !important;
}
/****************************************************
 * LISTING ENTRIES: REMOVE WHITE STRIPE AT TOP
 ****************************************************/

/* Hide header only on registration page *//
body.tax-product_cat .site-header {
    display: none !important;
}

/* Remove any margin/padding at the top that leaves white space */
body.tax-product_cat,
body.tax-product_cat #page,
body.tax-product_cat .site-content,
body.tax-product_cat #content,
body.tax-product_cat .site-main {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/****************************************************
 * LIST OF INSCRIPTIONS: ORANGE BUTTONS
 ****************************************************/

/* Product buttons (select options, etc.) in orange */
body.tax-product_cat .woocommerce ul.products li.product a.button,
body.tax-product_cat .woocommerce ul.products li.product a.button.alt {
    background-color: #ff6a00 !important; /* corporate orange */
    color: #ffffffff !important;
    border-radius: 999px;
    border: none;
    padding: 8px 20px;
    font-weight: 600;
}

/* Hover a little darker */
body.tax-product_cat .woocommerce ul.products li.product a.button:hover,
body.tax-product_cat .woocommerce ul.products li.product a.button.alt:hover {
    background-color: #e55e00 !important;
}
/****************************************************
 * REGISTRATION LIST: FORCE ORANGE BUTTONS
 ****************************************************/

body.tax-product_cat .site-main a.button,
body.tax-product_cat .site-main a.button.alt,
body.tax-product_cat .site-main .button,
body.tax-product_cat .site-main button,
body.tax-product_cat .site-main button.button,
body.tax-product_cat .site-main input.button,
body.tax-product_cat .site-main input[type="submit"] {
    background-color: #ff6a00 !important; /* corporate orange */
    color: #ffffffff !important;
    border-radius: 999px;
    border: none !important;
    padding: 8px 22px;
    font-weight: 600;
}

/* Hover a little darker */
body.tax-product_cat .site-main a.button:hover,
body.tax-product_cat .site-main a.button.alt:hover,
body.tax-product_cat .site-main .site-main .button:hover,
body.tax-product_cat .site-main button:hover,
body.tax-product_cat .site-main .site-main button.button:hover,
body.tax-product_cat .site-main input.button:hover,
body.tax-product_cat .site-main input[type="submit"]:hover {
    background-color: #e55e00 !important;
}
/* Checkout virtual only: hide submit column if there is any left */
body.woocommerce-checkout .col-2 h3#ship-to-different-address,
body.woocommerce-checkout .col-2 .woocommerce-shipping-fields {
    display: none;
}/* Checkout: hide footer at Checkout */
body.woocommerce-checkout .site-footer {
    display: none !important;
}

/* (optional) remove extra space below if any */
body.woocommerce-checkout #page,
body.woocommerce-checkout .site-content {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}
/* "Back to cart" button in checkout */
body.woocommerce-checkout .extrem-back-to-cart-wrapper {
    margin-bottom: 15px;
}

body.woocommerce-checkout .extrem-back-to-cart {
    background-color: #ff6a00 !important;
    color: #ffffffff !important;
    border-radius: 999px;
    border: none;
    padding: 8px 22px;
    font-weight: 600;
    text-decoration: none;
    display: inline-block;
}

body.woocommerce-checkout .extrem-back-to-cart:hover {
    background-color: #e55e00 !important;
}
/* Hide "View cart" button from WooCommerce prompt */.
.woocommerce-message .button.wc-forward {
    display: none !important;
}
/* Hide footer credits across the entire site */
footer .site-info {
    display: none !important;
}
/* Hide footer credits on WooCommerce pages */
body.woocommerce-page footer .site-info,
body.woocommerce-cart footer .site-info,
body.woocommerce-checkout footer .site-info {
    display: none !important;
}
/* Completely hide the footer on WooCommerce pages */
body.woocommerce-cart footer,
body.woocommerce-checkout footer,
body.woocommerce-page.archive.post-type-archive-product footer,
body.tax-product_cat footer,
body.single-product footer {
    display: none !important;
}
/* 114 GRAVEL RACE - rename registration cards */
/* First card = ELITE */
body.body.single-product.single-product.post-12345 .modality-card:nth-of-type(1) h3 {
  font-size: 0; /* hide original text */
}

body.single-tests.postid-12345 .modality-card:nth-of-type(1) h3::after {
  content: "Elite registration;
  font-size: 18px;
  font-weight: 700;
  color: #111111;
}

/* Second card = AGE GROUPS */
body.single-tests.postid-12345 .modality-card:nth-of-type(2) h3 {
  font-size: 0;
}

body.single-tests.postid-12345 .modality-card:nth-of-type(2) h3::after {
  content: "Registration Age groups;
  font-size: 18px;
  font-weight: 700;
  color: #111111;
}
/************************************
 * 114 GRAVEL RACE - Change titles
 ************************************/

/* First card = ELITE ENROLLMENT *//
body.postid-14632 .modality-card:nth-of-type(1) h3 {
  position: relative;
  text-indent: -9999px; /* hide original text */
}

body.postid-14632 .modality-card:nth-of-type(1) h3::before {
  content: "Elite registration";
  position: absolute;
  inset: 0;
  text-indent: 0;
  font-size: 18px;
  font-weight: 700;
  color: #111111;
}

/* Second card = REGISTRATION AGE GROUPS */
body.postid-14632 .modality-card:nth-of-type(2) h3 {
  position: relative;
  text-indent: -9999px;
}

body.postid-14632 .modality-card:nth-of-type(2) h3::before {
  content: "Registration Age groups";
  position: absolute;
  inset: 0;
  text-indent: 0;
  font-size: 18px;
  font-weight: 700;
  color: #111111;
}
/* Modality cards → show NEXT when product is NOT purchasable */.
body.single-tests .modality-card button[disabled],
body.body.single-test .modality-card .button.disabled {
    background: #555 !important;
    cursor: not-allowed !important;
}

body.single-test .mode-card button[disabled]::after,
body.body.single-tests .mode-card .button.disabled::after {
    content: "COMING SOON";
}
/* Disabled state for enroll buttons */.
.btn-sign-up-locked {
  background: #444444 !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
  opacity: 0.7;
  pointer-events: none !important;
}
.extre-btn-disabled {
  opacity: 0.6;
  cursor: not-allowed;
  pointer-events: none;
}

.extre-insc-msg,
.extre-insc-msg-page {
  margin-top: 6px;
  font-size: 0.9rem;
  color: #ff5c39;
}
/* Button locked (list and tab) */.
.btn-inscribe.extre-btn-disabled,
.btn-inscribe-locked {
  background: #444444 !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
  opacity: 0.7;
  pointer-events: none !important;
}

.btn-inscribe.extre-btn-disabled:hover,
.btn-inscribe-locked:hover {
  transform: none !important;
  box-shadow: none !important;
}

/* Messages under buttons */
.extre-insc-msg,
.extre-insc-msg-page {
  margin-top: 6px;
  font-size: 0.9rem;
  color: #ff5c39;
}
/* 114 GRAVEL RACE - change text of modes
   (test ID: 12063) */

/* We hide the original h3 text */
body.postid-12063 .modality-card:nth-of-type(1) h3,
body.postid-12063 .modality-card:nth-of-type(2) h3 {
  position: relative;
  text-indent: -9999px;
}

/* Card 1 → Elite Registration */
body.postid-12063 .modality-card:nth-of-type(1) h3::before {
  content: "Elite Registration";
  position: absolute;
  inset: 0;
  text-indent: 0;
}

/* Card 2 → Age Group Registration */.
body.postid-12063 .modality-card:nth-of-type(2) h3::before {
  content: "Age Group Registration";
  position: absolute;
  inset: 0;
  text-indent: 0;
}
/* "See more" disabled when registrations are not yet open */.
.inscription-info .btn-see-more.btn-see-more-locked {
  color: #888888;
  border-color: rgba(255, 92, 57, 0.25);
  cursor: not-allowed;
  pointer-events: none; /* completely blocks the click */
}
/* ============================================
   FIX ENTRIES (ID 11491)
   Listing titles in BLACK (on white card)
   ============================================ */
body.page-id-11491 .entry-card .entry-info .test-name,
body.body.page-id-11491 .registration-card .registration-info .name-test a,
body.page-id-11491 .enrollment-card .enrollment-info h1,
body.body.page-id-11491 .enrollment-card .enrollment-info h1 a,
body.page-id-11491 .enrollment-card .enrollment-info h2,
body.body.page-id-11491 .enrollment-card .enrollment-info h2 a,
body.body.page-id-11491 .enrollment-card .enrollment-info h3,
body.body.page-id-11491 .enrollment-card .enrollment-info h3 a,
body.body.page-id-11491 .enrollment-card .enrollment-info .woocommerce-loop-product__title,
body.body.page-id-11491 .enrollment-card .enrollment-info .woocommerce-loop-product__title a {
  color: #111111 !important;
  -webkit-text-fill-color: #11111111 !important;
}
/* =========================================================
   TESTS (/test/...) → hide TOPIC title (above)
   and leave ONLY the title of the content (below)
   ========================================================= */

/* Astra / WP: top title of the theme */
body.single-test .entry-header,
body.single-test .entry-header .entry-title,
body.single-test .ast-page-title-wrap,
body.single-test .ast-single-entry-banner,
body.single-test .page-title,
body.single-test .wp-block-post-title,

/* In case the CPT on your website appears as "tests" */
body.single-test .entry-header,
body.single-tests .entry-header .entry-title,
body.single-tests .ast-page-title-wrap,
body.single-evidence .ast-single-entry-banner,
body.single-evidence .page-title,
body.single-evidence .wp-block-post-title {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Ensure that the "bottom" title (your block) is visible */
body.single-test .test-header h1,
body.single-test .test-header h1 {
  display: block !important;
  color: #111111 !important; /* black for the white card */
  margin-top: 0 !important;
}
/* Footer logo (same as header) */
.ex-footer-logo{
  display:inline-flex;
  align-items:center;
  text-decoration:none !important;
}
.ex-footer-logo img{
  height: 30px; /* adjust if you want it bigger/smaller */
  width: auto;
  display:block;
  filter: drop-shadow(0 10px 22px 22px rgba(0,0,0, 0,.45));
}
/* SELECT from form (Event type) */
1TP5Event_type.ex-select{
  width: 100%;
  color: rgba(255,255,255, 255,.92) !important;
  background: rgba(255,255,255, 255,.06) !important;
  border: 1px solid rgba(255,255,255, 255,.16) !important;
  border-radius: 14px;
  padding: 12px 14px;
  outline: none;
}

/* When you open the dropdown (focus): clear mode to be read */
1TP5Event_type.ex-select:focus,
1TP5Event_type.ex-select:active{
  background: #fff !important;
  color: #111 !important;
  border-color: rgba(0,0,0, 0,.18) !important;
  -webkit-text-fill-color: #111;
}

/* Browsers that do respect option */
1TP5Event_type.ex-select option{
  color: #111 !important;
  background: #fff !important;
}
1TP5Event_type.ex-select option[disabled]{
  color: #444 !important;
}
/* ====== ORGANIZERS - FIX UI ====== */

/* Tabs: text always clear */
.ex-org-tabs a,
.ex-org-tabs button{
  color: rgba(255,255,255, 255,.92) !important;
}

/* Tab active: if you want white text too */
.ex-org-tabs a.is-active,
.ex-org-tabs button.is-active{
  color: #fff !important;
}

/* Inputs / selects: text not to “disappear” */
.ex-org-panel input[type="text"],
.ex-org-panel input[type="search"],
.ex-org-panel input[type="date"],
.ex-org-panel input[list],
.ex-org-panel select,
.ex-org-panel textarea{
  color: #111 !important;
  background: #fff !important;
}

/* Placeholder visible */
.ex-org-panel input::placeholder,
.ex-org-panel textarea::placeholder{
  color: #666 !important;
}

/* drop-down options */
.ex-org-panel select option{
  color: #111 !important;
  background: #fff !important;
}

/* So that there are no weird underlines on panel buttons/links */
.ex-org-panel to,
.ex-org-panel .ex-btn{
  text-decoration: none !important;
}
.ex-dark-wrap{
  background: radial-gradient(60% 60% at 50% 0%, rgba(46,255,196,.10) 0%, rgba(0,0,0,0,0) 60%), #070A0F;
  min-height: 60vh;
  padding: 28px 16px;
  border-radius: 18px;
}

.ex-card{
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,255,0.08);
  border-radius: 16px;
  padding: 16px;
  box-shadow: 0 12px 40px 40px rgba(0,0,0,0,0.35);
  backdrop-filter: blur(10px);
}

.ex-row{display:flex;gap:12px;flex-wrap:wrap}
.ex-row &gt; *{flex:1 1 220px}

.ex-btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding: 10px 14px;border-radius: 999px;
  border:1px solid rgba(255,255,255,255,0.10);
  background: rgba(255,255,255,0.06);
  color:#fff;text-decoration:none;font-weight:600;
}
.ex-btn:hover{transform: translateY(-1px)}
.ex-btn--green{background: rgba(46,255,196,0.14); border-color: rgba(46,255,196,0.35)}

.ex-input, .ex-select{
  width:100%;
  padding: 10px 12px;
  border-radius: 12px;
  border:1px solid rgba(255,255,255,255,0.10);
  background: rgba(255,255,255,0.06);
  color:#fff;
}
.ex-muted{opacity:.75}
.ex-title{color:#fff;margin:0 0 0 6px 0}
/* FIX finder: prevent theme from stepping on colors */
.ex-live .ex-input{
  background: rgba(255,255,255,.06) !important;
  border-color: rgba(255,255,255, 255,.14) !important;
}
.ex-live .ex-input input{
  background: transparent !important;
  color: rgba(255,255,255, 255,.92) !important;
  -webkit-text-fill-color: rgba(255,255,255,.92) !important; /* Safari */
  caret-color: rgba(255,255,255, 255,.92) !important;
}
.ex-live .ex-input input::placeholder{
  color: rgba(255,255,255, 255,.55) !important;
}
.ex-from-wrap{ margin-top:10px; }
.ex-desde-price{
  display:inline-flex;
  gap:6px;
  align-items:center;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255, 255,.14);
  background: rgba(255,255,255,.06);
  font-weight:800;
  letter-spacing:.2px;
}
<?php
/**
 * EXTREMEÑAMENTE — Inscripciones API (robusto) + ajustes Woo
 * - API /wp-json/extremenamente/v1/inscripciones (incluye Origenext)
 * - Modalidad por ACF (prueba) con fallback por nombre/slug
 * - Quita productos relacionados/upsells en productos de "inscripciones"
 * - Añade body classes para aplicar CSS oscuro solo donde toca
 */

if (!defined('ABSPATH')) { exit; }

/** ---------- Helpers ---------- */
if (!function_exists('exm_insc_normalize_slug')) {
  function exm_insc_normalize_slug($s) {
    $s = strtolower(trim((string)$s));
    $s = remove_accents($s);
    $s = preg_replace('/[^a-z0-9]+/', '-', $s);
    $s = trim($s, '-');
    return $s ?: 'otros';
  }
}

if (!function_exists('exm_insc_parse_dt')) {
  function exm_insc_parse_dt($raw) {
    $raw = trim((string)$raw);
    if ($raw === '') return 0;

    $formats = [
      'd/m/Y H:i',
      'd/m/Y g:i a',
      'd/m/Y',
      'Y-m-d H:i',
      'Y-m-d',
      'Y-m-d\TH:i:s',
      'Y-m-d\TH:i:sP'
    ];

    foreach ($formats as $fmt) {
      $dt = DateTime::createFromFormat($fmt, $raw, wp_timezone());
      if ($dt instanceof DateTime) return $dt->getTimestamp();
    }

    $ts = strtotime($raw);
    return $ts ? (int)$ts : 0;
  }
}

if (!function_exists('exm_insc_get_first_field')) {
  function exm_insc_get_first_field($post_id, array $keys) {
    foreach ($keys as $k) {
      $v = function_exists('get_field') ? get_field($k, $post_id) : get_post_meta($post_id, $k, true);
      if (is_string($v)) $v = trim($v);
      if ($v !== null && $v !== '' && $v !== false) return $v;
    }
    return '';
  }
}

if (!function_exists('exm_insc_extract_product_id')) {
  function exm_insc_extract_product_id($acfVal) {
    if (is_numeric($acfVal)) return (int)$acfVal;
    if (is_object($acfVal) && !empty($acfVal->ID)) return (int)$acfVal->ID;
    if (is_array($acfVal) && count($acfVal) === 1) return exm_insc_extract_product_id($acfVal[0]);
    return 0;
  }
}

if (!function_exists('exm_insc_price_text')) {
  function exm_insc_price_text($product) {
    if (!$product instanceof WC_Product) return '';
    $price = $product->get_price();

    if ($price === '' && $product instanceof WC_Product_Variable) {
      $price = $product->get_variation_price('min', true);
    }

    if ($price === '' || $price === null) return '';
    return wp_strip_all_tags(wc_price((float)$price));
  }
}

if (!function_exists('exm_insc_mode_fallback')) {
  function exm_insc_mode_fallback($nameOrSlug) {
    $s = strtolower(remove_accents((string)$nameOrSlug));
    if (strpos($s, 'gravel') !== false) return 'gravel';
    if (strpos($s, 'mtb') !== false || strpos($s, 'xcm') !== false || strpos($s, 'xc') !== false) return 'mtb';
    if (strpos($s, 'trail') !== false) return 'trail';
    if (strpos($s, 'hybrid') !== false) return 'hybrid';
    if (strpos($s, 'run') !== false || strpos($s, 'carrera') !== false || strpos($s, 'running') !== false) return 'running';
    return 'otros';
  }
}

if (!function_exists('exm_insc_status')) {
  function exm_insc_status($event_ts, $open_ts, $close_ts, $has_waitlist, $product) {
    $now = time();

    // Finalizada por fecha del evento (comparada con "hoy" a 00:00)
    if ($event_ts) {
      $today = (new DateTime('today', wp_timezone()))->getTimestamp();
      if ($event_ts < $today) return 'finished';
    }

    // Completo por stock (si aplica)
    if ($product instanceof WC_Product) {
      if ($product->managing_stock()) {
        $qty = $product-&gt;get_stock_quantity();
        if ($qty !== null &amp;&amp; (int)$qty <= 0) return $has_waitlist ? 'waitlist' : 'full';
      }
      if ($product->is_in_stock() === false) return $has_waitlist ? 'waitlist' : 'full';
    }

    // Registration dates
    if ($open_ts &amp;&amp; $now < $open_ts) return $has_waitlist ? 'waitlist' : 'soon';
    if ($close_ts && $now > $close_ts) return $has_waitlist ? 'waitlist' : 'closed';

    return $has_waitlist ? 'waitlist' : 'open';
  }
}

/** ---------- API REST ---------- */
add_action('rest_api_init', function () {
  register_rest_route('extremenamente/v1', '/inscripciones', [
    'methods' => WP_REST_Server::READABLE,
    'permission_callback' => '__return_true',
    'callback' => function (WP_REST_Request $req) {

      if (!class_exists('WooCommerce')) {
        return new WP_REST_Response([], 200);
      }

      $items = [];
      $seen  = [];

      // 1) Pruebas -> productos enlazados
      $pruebas = new WP_Query([
        'post_type' => 'prueba',
        'post_status' => 'publish',
        'posts_per_page' => -1,
        'fields' => 'ids',
        'no_found_rows' => true,
      ]);

      foreach ($pruebas->posts as $prueba_id) {
        $fecha_raw = exm_insc_get_first_field($prueba_id, ['fecha_raw','fecha','fecha_evento','date']);
        $event_ts  = exm_insc_parse_dt($fecha_raw);

        $location  = exm_insc_get_first_field($prueba_id, ['location','lugar','ubicacion','localidad','ciudad']);
        $apertura_raw = exm_insc_get_first_field($prueba_id, ['apertura_raw','apertura','apertura_inscripciones','insc_apertura']);
        $cierre_raw   = exm_insc_get_first_field($prueba_id, ['cierre_raw','cierre','cierre_inscripciones','insc_cierre']);

        $open_ts  = exm_insc_parse_dt($apertura_raw);
        $close_ts = exm_insc_parse_dt($cierre_raw);

        $mode_raw = exm_insc_get_first_field($prueba_id, ['mode','modalidad','disciplina']);
        $mode     = exm_insc_normalize_slug($mode_raw);

        $waitlist_url = exm_insc_get_first_field($prueba_id, ['waitlist_url','url_lista_espera','lista_espera_url']);
        $has_waitlist = !empty($waitlist_url);

        $links = [
          'producto_individual' => exm_insc_extract_product_id(function_exists('get_field') ? get_field('producto_individual', $prueba_id) : get_post_meta($prueba_id,'producto_individual',true)),
          'producto_parejas'    => exm_insc_extract_product_id(function_exists('get_field') ? get_field('producto_parejas', $prueba_id) : get_post_meta($prueba_id,'producto_parejas',true)),
          'producto_equipos'    => exm_insc_extract_product_id(function_exists('get_field') ? get_field('producto_equipos', $prueba_id) : get_post_meta($prueba_id,'producto_equipos',true)),
        ];

        foreach ($links as $match_key => $product_id) {
          if (!$product_id) continue;
          if (isset($seen[$product_id])) continue;

          $product = wc_get_product($product_id);
          if (!$product) continue;
          if ($product->get_status() !== 'publish') continue;

          $slug = $product->get_slug();
          $name = $product->get_name();

          $final_mode = $mode;
          if ($final_mode === 'otros' || $final_mode === '') {
            $final_mode = exm_insc_mode_fallback($name . ' ' . $slug);
          }

          $status = exm_insc_status($event_ts, $open_ts, $close_ts, $has_waitlist, $product);

          $items[] = [
            'id' => $product_id,
            'slug' => $slug,
            'name' => $name,
            'date' => $fecha_raw ?: '',
            'location' => (string)$location,
            'status' => $status,
            'mode' => $final_mode,
            'price_text' => exm_insc_price_text($product),
            'image' => get_the_post_thumbnail_url($product_id, 'large') ?: '',
            'signup_url' => get_permalink($product_id),
            'event_url' => get_permalink($prueba_id),
            'product_id' => $product_id,
            'prueba_id' => $prueba_id,
            'match_key' => $match_key,
            'apertura_ts' => (int)$open_ts,
            'cierre_ts' => (int)$close_ts,
            'waitlist_url' => (string)$waitlist_url,
            'apertura_raw' => (string)$apertura_raw,
            'cierre_raw' => (string)$cierre_raw,
            'fecha_raw' => (string)$fecha_raw,
          ];

          $seen[$product_id] = true;
        }
      }

      wp_reset_postdata();

      // 2) Fallback: cualquier producto en categoría "inscripciones" no enlazado
      $fallback_products = wc_get_products([
        'status' => 'publish',
        'limit' => -1,
        'category' => ['inscripciones'],
        'orderby' => 'date',
        'order' => 'DESC',
      ]);

      foreach ($fallback_products as $product) {
        if (!$product instanceof WC_Product) continue;
        $product_id = $product->get_id();
        if (isset($seen[$product_id])) continue;

        $slug = $product->get_slug();
        $name = $product->get_name();

        $items[] = [
          'id' => $product_id,
          'slug' => $slug,
          'name' => $name,
          'date' => '',
          'location' => '',
          'status' => $product->is_in_stock() ? 'open' : 'closed',
          'mode' => exm_insc_mode_fallback($name . ' ' . $slug),
          'price_text' => exm_insc_price_text($product),
          'image' => get_the_post_thumbnail_url($product_id, 'large') ?: '',
          'signup_url' => get_permalink($product_id),
          'event_url' => '',
          'product_id' => $product_id,
          'prueba_id' => 0,
          'match_key' => '',
          'apertura_ts' => 0,
          'cierre_ts' => 0,
          'waitlist_url' => '',
          'apertura_raw' => '',
          'cierre_raw' => '',
          'fecha_raw' => '',
        ];
      }

      return new WP_REST_Response($items, 200);
    },
  ]);
});

/** ---------- Woo: NO mostrar otras carreras al final del producto ---------- */
add_action('wp', function () {
  if (!function_exists('is_product') || !is_product()) return;
  $pid = get_queried_object_id();
  if ($pid && has_term('inscripciones', 'product_cat', $pid)) {
    remove_action('woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20);
    remove_action('woocommerce_after_single_product_summary', 'woocommerce_upsell_display', 15);
  }
});

/** ---------- Body class para CSS oscuro solo en Pruebas + Woo ---------- */
add_filter('body_class', function ($classes) {
  if (is_singular('prueba')) $classes[] = 'ex-dark-surface';
  if (function_exists('is_woocommerce') && is_woocommerce()) $classes[] = 'ex-dark-surface';
  if (function_exists('is_product_category') && is_product_category('inscripciones')) $classes[] = 'ex-dark-insc-cat';
  if (function_exists('is_product') && is_product()) {
    $pid = get_queried_object_id();
    if ($pid && has_term('inscripciones', 'product_cat', $pid)) $classes[] = 'ex-dark-insc-product';
  }
  return $classes;
});

/* EXTREMEÑAMENTE — look oscuro en Prueba + Woo (solo donde añadimos ex-dark-surface) */
body.ex-dark-surface{
  background: radial-gradient(1200px 600px at 50% -120px, rgba(30,200,110,.18), transparent 60%), #07080b !important;
  color:#e7e7e7;
}

/* Quitamos fondos blancos del tema en esas páginas */
body.ex-dark-surface #page,
body.ex-dark-surface .site,
body.ex-dark-surface .site-content,
body.ex-dark-surface .ast-container,
body.ex-dark-surface .content-area,
body.ex-dark-surface .woocommerce,
body.ex-dark-surface .woocommerce-page{
  background: transparent !important;
}

/* “Tarjeta” principal (Astra suele usar .ast-container) */
body.ex-dark-surface .ast-container{
  margin-top: 34px;
  margin-bottom: 60px;
  padding: 28px 26px;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,.06);
  background: rgba(16,18,22,.75) !important;
  box-shadow: 0 18px 50px rgba(0,0,0,.35);
  backdrop-filter: blur(10px);
}

/* Textos */
body.ex-dark-surface h1,
body.ex-dark-surface h2,
body.ex-dark-surface h3,
body.ex-dark-surface h4,
body.ex-dark-surface h5,
body.ex-dark-surface h6,
body.ex-dark-surface p,
body.ex-dark-surface li,
body.ex-dark-surface label,
body.ex-dark-surface .woocommerce div.product .product_title{
  color:#fff !important;
}

body.ex-dark-surface .woocommerce-breadcrumb,
body.ex-dark-surface .woocommerce .woocommerce-result-count,
body.ex-dark-surface .woocommerce .woocommerce-ordering,
body.ex-dark-surface .woocommerce .price,
body.ex-dark-surface .woocommerce .amount{
  color: rgba(255,255,255,.82) !important;
}

/* Inputs en oscuro */
body.ex-dark-surface input[type="text"],
body.ex-dark-surface input[type="email"],
body.ex-dark-surface input[type="tel"],
body.ex-dark-surface input[type="number"],
body.ex-dark-surface input[type="password"],
body.ex-dark-surface textarea,
body.ex-dark-surface select{
  background: rgba(255,255,255,.06) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  color:#fff !important;
}

/* Botones Woo en verde */
body.ex-dark-surface.woocommerce a.button,
body.ex-dark-surface.woocommerce button.button,
body.ex-dark-surface.woocommerce input.button,
body.ex-dark-surface.woocommerce #respond input#submit{
  background: linear-gradient(180deg, rgba(30,200,110,.95), rgba(18,150,80,.95)) !important;
  border: 1px solid rgba(30,200,110,.35) !important;
  color:#fff !important;
  border-radius: 999px !important;
  padding: 10px 16px !important;
  font-weight: 800 !important;
}

body.ex-dark-surface.woocommerce a.button:hover,
body.ex-dark-surface.woocommerce button.button:hover,
body.ex-dark-surface.woocommerce input.button:hover,
body.ex-dark-surface.woocommerce #respond input#submit:hover{
  filter: brightness(1.05);
}
/* =========================================================
   FIX DEFINITIVO — FICHA PRODUCTO INSCRIPCIONES
   - Recuadros visibles en TODOS los campos (incluye Select2)
   - Lo que quede naranja (importes/€) -> VERDE
   ========================================================= */

body.single-product.product_cat-inscripciones{
  --ex-green:#1ec86e;
  --ex-green-dark:#18a85a;
}

/* Recuadros para inputs/selects/textarea (YITH/Woo) */
body.single-product.product_cat-inscripciones .woocommerce div.product form.cart input[type="text"],
body.single-product.product_cat-inscripciones .woocommerce div.product form.cart input[type="email"],
body.single-product.product_cat-inscripciones .woocommerce div.product form.cart input[type="tel"],
body.single-product.product_cat-inscripciones .woocommerce div.product form.cart input[type="number"],
body.single-product.product_cat-inscripciones .woocommerce div.product form.cart input[type="date"],
body.single-product.product_cat-inscripciones .woocommerce div.product form.cart select,
body.single-product.product_cat-inscripciones .woocommerce div.product form.cart textarea{
  background:#fff !important;
  color:#111 !important;
  -webkit-text-fill-color:#111 !important;
  border:1px solid #cbd5e1 !important;
  border-radius:10px !important;
  padding:10px 12px !important;
  box-shadow:none !important;
}

/* Focus bonito */
body.single-product.product_cat-inscripciones .woocommerce div.product form.cart input:focus,
body.single-product.product_cat-inscripciones .woocommerce div.product form.cart select:focus,
body.single-product.product_cat-inscripciones .woocommerce div.product form.cart textarea:focus{
  outline:none !important;
  border-color: var(--ex-green) !important;
  box-shadow: 0 0 0 3px rgba(30,200,110,.20) !important;
}

/* ====== SELECT2 (Sexo, Federado, Traslado, Talla...) ====== */
body.single-product.product_cat-inscripciones .select2-container{
  width:100% !important;
}

body.single-product.product_cat-inscripciones .select2-container--default .select2-selection--single,
body.single-product.product_cat-inscripciones .select2-container--default .select2-selection--multiple{
  background:#fff !important;
  border:1px solid #cbd5e1 !important;
  border-radius:10px !important;
  min-height:44px !important;
  box-shadow:none !important;
}

body.single-product.product_cat-inscripciones .select2-container--default .select2-selection--single .select2-selection__rendered{
  color:#111 !important;
  line-height:44px !important;
  padding-left:12px !important;
}

body.single-product.product_cat-inscripciones .select2-container--default .select2-selection--single .select2-selection__arrow{
  top:50% !important;
  transform:translateY(-50%) !important;
}

body.single-product.product_cat-inscripciones .select2-container--default.select2-container--focus .select2-selection--single,
body.single-product.product_cat-inscripciones .select2-container--default.select2-container--open .select2-selection--single{
  border-color: var(--ex-green) !important;
  box-shadow: 0 0 0 3px rgba(30,200,110,.20) !important;
}

/* Dropdown select2 */
body.single-product.product_cat-inscripciones .select2-dropdown{
  border:1px solid #cbd5e1 !important;
  border-radius:10px !important;
}

/* ====== Importes (incluido €) a VERDE ====== */
body.single-product.product_cat-inscripciones .woocommerce-Price-amount,
body.single-product.product_cat-inscripciones .woocommerce-Price-amount bdi,
body.single-product.product_cat-inscripciones .woocommerce-Price-amount bdi *,
body.single-product.product_cat-inscripciones .woocommerce-Price-currencySymbol,
body.single-product.product_cat-inscripciones .amount,
body.single-product.product_cat-inscripciones .amount *,
body.single-product.product_cat-inscripciones .price,
body.single-product.product_cat-inscripciones .price *{
  color: var(--ex-green-dark) !important;
}
/* =========================================
   INSCRIPCIONES · PRECIOS EN VERDE + MISMA TIPOGRAFÍA
   (solo en fichas de producto de la categoría "inscripciones")
   PÉGALO AL FINAL DEL CSS
   ========================================= */

:root{
  --ex-money-green: #32d26a; /* el verde de tu web */
  --ex-money-font: "Montserrat", sans-serif;
}

/* 1) Precio superior del producto (el grande bajo el título) */
body.single-product.product_cat-inscripciones .summary p.price,
body.single-product.product_cat-inscripciones .summary span.price,
body.single-product.product_cat-inscripciones .summary .price{
  color: var(--ex-money-green) !important;
  font-family: var(--ex-money-font) !important;
  font-weight: 800 !important;
  letter-spacing: .2px !important;
}

/* 1b) Forzar que número y símbolo € sean verdes */
body.single-product.product_cat-inscripciones .summary .price .woocommerce-Price-amount,
body.single-product.product_cat-inscripciones .summary .price .woocommerce-Price-amount * ,
body.single-product.product_cat-inscripciones .summary .price .woocommerce-Price-currencySymbol{
  color: var(--ex-money-green) !important;
  font-family: var(--ex-money-font) !important;
  font-weight: 800 !important;
}

/* 2) Tabla de totales (Precio del producto / Opciones totales / Total del pedido)
      YITH/WAPO suele pintar aquí y a veces deja el € con otro color */
body.single-product.product_cat-inscripciones .yith_wapo_totals,
body.single-product.product_cat-inscripciones .ywapo_totals,
body.single-product.product_cat-inscripciones .ywapo_total_price,
body.single-product.product_cat-inscripciones .wcpa_price_summary,
body.single-product.product_cat-inscripciones .wcpa_cart_totals{
  font-family: var(--ex-money-font) !important;
}

/* Labels (texto "Precio del producto:", etc.) */
body.single-product.product_cat-inscripciones .yith_wapo_totals th,
body.single-product.product_cat-inscripciones .yith_wapo_totals td,
body.single-product.product_cat-inscripciones .ywapo_totals th,
body.single-product.product_cat-inscripciones .ywapo_totals td,
body.single-product.product_cat-inscripciones .wcpa_price_summary th,
body.single-product.product_cat-inscripciones .wcpa_price_summary td{
  font-family: var(--ex-money-font) !important;
  font-weight: 800 !important;
}

/* Importes y símbolo € dentro de esos totales */
body.single-product.product_cat-inscripciones .yith_wapo_totals .woocommerce-Price-amount,
body.single-product.product_cat-inscripciones .yith_wapo_totals .woocommerce-Price-amount *,
body.single-product.product_cat-inscripciones .yith_wapo_totals .woocommerce-Price-currencySymbol,
body.single-product.product_cat-inscripciones .ywapo_totals .woocommerce-Price-amount,
body.single-product.product_cat-inscripciones .ywapo_totals .woocommerce-Price-amount *,
body.single-product.product_cat-inscripciones .ywapo_totals .woocommerce-Price-currencySymbol,
body.single-product.product_cat-inscripciones .wcpa_price_summary .woocommerce-Price-amount,
body.single-product.product_cat-inscripciones .wcpa_price_summary .woocommerce-Price-amount *,
body.single-product.product_cat-inscripciones .wcpa_price_summary .woocommerce-Price-currencySymbol{
  color: var(--ex-money-green) !important;
  font-family: var(--ex-money-font) !important;
  font-weight: 800 !important;
}
/* =========================================================
   INSCRIPCIONES (solo producto) — importes en VERDE + Montserrat
   Gana a tus reglas naranjas con !important
   ========================================================= */

:root{
  --ex-money-green:#32d26a;              /* tu verde */
  --ex-money-font:"Montserrat",sans-serif;
}

/* Precio superior + cualquier precio en la ficha */
html body.single-product.ex-dark-insc-product .price,
html body.single-product.ex-dark-insc-product p.price,
html body.single-product.ex-dark-insc-product span.price,
html body.single-product.ex-dark-insc-product .summary .price,
html body.single-product.ex-dark-insc-product .summary .price *{
  color: var(--ex-money-green) !important;
  font-family: var(--ex-money-font) !important;
  font-weight: 800 !important;
  -webkit-text-fill-color: var(--ex-money-green) !important; /* Safari */
}

/* Número + símbolo € (esto te quita el € naranja sí o sí) */
html body.single-product.ex-dark-insc-product .woocommerce-Price-amount,
html body.single-product.ex-dark-insc-product .woocommerce-Price-amount *,
html body.single-product.ex-dark-insc-product .woocommerce-Price-currencySymbol{
  color: var(--ex-money-green) !important;
  font-family: var(--ex-money-font) !important;
  font-weight: 800 !important;
  -webkit-text-fill-color: var(--ex-money-green) !important; /* Safari */
}

/* Totales tipo "Precio del producto / Opciones totales / Total del pedido" */
html body.single-product.ex-dark-insc-product form.cart .woocommerce-Price-amount,
html body.single-product.ex-dark-insc-product form.cart .woocommerce-Price-amount *,
html body.single-product.ex-dark-insc-product form.cart .woocommerce-Price-currencySymbol{
  color: var(--ex-money-green) !important;
  font-family: var(--ex-money-font) !important;
  font-weight: 800 !important;
  -webkit-text-fill-color: var(--ex-money-green) !important;
}
/* === Unificar HEADER/FOOTER aunque estén dentro de entry-content === */
.ex-header, .ex-footer {
  font-family: inherit;
}

/* Quitar subrayados/efectos raros del tema en enlaces del header/footer */
.ex-header a,
.ex-footer a,
.entry-content .ex-header a,
.entry-content .ex-footer a {
  text-decoration: none !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
  background-image: none !important;
}

/* Si tu tema subraya con :after o similares, esto ayuda */
.ex-footer a::after,
.ex-header a::after {
  content: none !important;
}