/* ==========================================================================
   DOMINEXT design system
   --------------------------------------------------------------------------
   Structure:
   1. Design tokens + WordPress resets
   2. Header + footer
   3. Layout + reusable components
   4. Homepage / story / event sections
   5. Newsletter + shop
   6. Single product + checkout + cart
   7. Plugin-rendered page parity
   8. Responsive breakpoints (kept together at the end)

   Responsive convention:
   - Base styles: desktop/default
   - <= 899px: tablet / compact layout
   - <= 781px: WordPress tablet breakpoint (pairs with 782px desktop behavior)
   - <= 600px: mobile
   - <= 520px: small mobile
   - >= 900px: desktop-only checkout enhancement
   ========================================================================== */

:root {
  --dnx-ink: #07050c;
  --dnx-panel: #100b1c;
  --dnx-violet: #8b2fff;
  --dnx-magenta: #ff2e9a;
  --dnx-blush: #ffd6e6;
  --dnx-mist: #c9c2dd;
}

:root :where(.is-layout-constrained) > * {
  margin-block-start: 0 !important;
}

:where(.wp-site-blocks) > * {
  margin: 0 !important;
}

.wp-block-template-part {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* --- Header --- */
.dnx-header {
  position: sticky;
  top: 0;
  z-index: 100;
}
.dnx-header .wp-block-navigation {
  font-family: "Poppins", sans-serif;
  font-size: 15px;
  font-weight: 500;
  column-gap: 6px;
}
.dnx-header .wp-block-navigation .wp-block-navigation-item__content {
  padding: 6px 25px;
  font-weight: normal;
}
.dnx-header .wp-block-navigation a:hover {
  color: var(--dnx-magenta);
}
/* Right-side actions: account + cart icons, same size, stuck together */
.dnx-header .dnx-header-actions {
  gap: 8px;
  align-items: center;
}
.dnx-header .dnx-header-actions .wp-block-woocommerce-customer-account,
.dnx-header .dnx-header-actions .wc-block-mini-cart {
  margin: 0;
}
/* Account icon (line/stroke style — coloured via currentColor) */
.dnx-header .dnx-header-actions .wc-block-customer-account__link {
  display: flex;
  align-items: center;
  color: #fff;
  padding: 0;
}
.dnx-header .dnx-header-actions .wc-block-customer-account__visual svg {
  width: 26px;
  height: 26px;
  stroke: currentColor;
}

.wc-block-mini-cart__badge {
  min-width: 1.2em;
  height: 1.2em;
  font-size: 0.6em;
  color: white;
}
/* Cart icon (fill style) */
.dnx-header .dnx-header-actions .wc-block-mini-cart__button {
  padding: 0;
  min-height: 0;
}
.dnx-header .dnx-header-actions .wc-block-mini-cart__icon {
  width: 26px;
  height: 26px;
  fill: #fff;
}
.dnx-header .dnx-header-actions .wc-block-customer-account__link:hover {
  color: var(--dnx-magenta);
}
.dnx-header
  .dnx-header-actions
  .wc-block-mini-cart__button:hover
  .wc-block-mini-cart__icon {
  fill: var(--dnx-magenta);
}
.dnx-ticketbar {
  gap: 12px;
}
.dnx-ticketbar p {
  margin: 0;
  font-size: 1.5em;
}
.dnx-ticketbar .wp-block-button__link {
  padding: 10px 26px;
  font-size: 14px;
}


/* --- Footer --- */
footer.wp-block-group .wp-block-list,
footer.wp-block-group .wp-block-list li {
  font-size: 14px;
  line-height: 1.9;
}
footer.wp-block-group .wp-block-list a {
  text-decoration: none;
}
footer.wp-block-group .wp-block-list a:hover {
  color: var(--dnx-magenta);
}
footer.wp-block-group h3 {
  font-size: 15px;
  letter-spacing: 0.04em;
}
footer.wp-block-group p {
  font-size: 13px;
  line-height: 1.7;
}

/* Simple / default-template pages — on-brand by default.
   Complex pages hide the post title & set their own colours; WooCommerce
   checkout/cart/account are excluded via :not(:has(...)). */
body,
.wp-site-blocks {
  background: var(--dnx-ink);
}

/* Post title as a centred gradient hero (only shows on default-template pages) */
main .wp-block-post-title {
  text-align: center;
  font-family: "Montserrat", sans-serif;
  font-weight: 900;
  text-transform: uppercase;
  line-height: 1.05;
  font-size: clamp(34px, 6vw, 72px);
  padding: 30px 24px 24px;
  margin: 0;
  background: linear-gradient(180deg, #fff 0%, var(--dnx-blush) 55%, var(--dnx-magenta) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* Light body text for simple page content */
main .entry-content,
main .wp-block-post-content {
  color: var(--dnx-mist);
}
main .wp-block-post-content :is(h2, h3, h4) {
  color: #fff;
  font-family: "Montserrat", sans-serif;
  text-transform: uppercase;
  margin-bottom: 25px;
}
main .wp-block-post-content a {
  color: var(--dnx-magenta);
}

/* Simple forms / email gates — NOT WooCommerce checkout/cart/account */
main .wp-block-post-content:not(:has(.woocommerce, .wc-block-checkout, .wp-block-woocommerce-cart, .wc-block-cart)) :is(input[type="email"], input[type="text"], input[type="tel"], input[type="password"], textarea) {
  width: 100%;
  max-width: 420px;
  background: var(--dnx-panel);
  color: #fff;
  border: 1px solid rgba(255, 214, 230, 0.25);
  border-radius: 100px;
  padding: 12px 20px;
  font-family: "Poppins", sans-serif;
  font-size: 14px;
}
main .wp-block-post-content :is(input:focus, textarea:focus) {
  outline: none;
  border-color: var(--dnx-magenta);
}
main .wp-block-post-content ::placeholder {
  color: var(--dnx-mist);
}
main .wp-block-post-content:not(:has(.woocommerce, .wc-block-checkout, .wp-block-woocommerce-cart, .wc-block-cart)) button[type="submit"] {
  background: var(--dnx-magenta);
  color: #fff;
  border: 2px solid var(--dnx-magenta);
  border-radius: 100px;
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 14px;
  padding: 12px 30px;
  cursor: pointer;
  transition: all 0.2s ease;
}
main .wp-block-post-content button[type="submit"]:hover {
  box-shadow: 0 0 18px rgba(255, 46, 154, 0.5);
  transform: translateY(-1px);
}

/* Private gallery email gate — centred card */
.private-gallery-email-gate {
  max-width: 560px;
  margin: 0 auto;
  text-align: center;
  padding: 8px 24px 60px;
}
.private-gallery-email-gate h2 {
  color: #fff;
  font-family: "Montserrat", sans-serif;
  font-weight: 900;
  text-transform: uppercase;
  margin-bottom: 10px;
}
.private-gallery-email-gate > p {
  color: var(--dnx-mist);
}
.private-gallery-field {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  margin-top: 18px;
}
.private-gallery-field label {
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 13px;
  color: #fff;
}
.private-gallery-terms {
  margin: 18px 0;
  font-size: 14px;
  color: var(--dnx-mist);
}

/* --- Full-bleed: make our full-width sections span the viewport even inside
   a post-content wrapper (global padding) or a template-part wrapper <div>
   (which isn't a constrained-layout parent, so core's alignfull breakout
   doesn't apply — e.g. the shared newsletter part in single-product/category). */
.wp-block-post-content > .alignfull,
.entry-content > .alignfull,
.wp-block-template-part > .alignfull {
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  max-width: 100vw !important;
}

/* --- Hero: let its own flex handle centering; full-bleed handles width --- */
.wp-block-group.dnx-hero {
  display: flex !important;
  padding: 90px 24px 70px !important;
  overflow: visible;
}
.wp-block-group.dnx-hero > * {
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
}

/* Remove the constrained-layout default 1.2rem top margin inside our containers -
   we control vertical spacing with our own margins. */
.dnx-hero-inner > *,
.dnx-hero > *,
.dnx-wrap > *,
.dnx-section-head > *,
.wp-block-post-content > .alignfull {
  margin-block-start: 0 !important;
}
.dnx-hero-inner {
  max-width: 1100px !important;
  width: 100%;
  padding: 0 24px;
}
.dnx-hero h1 {
  font-size: clamp(34px, 6vw, 76px) !important;
  line-height: 1.05;
  padding: 0 0 0.1em;
  margin: 0 0 26px;
  overflow-wrap: break-word;
  word-break: normal;
  hyphens: none;
}

/* Reusable helpers so patterns can match the event page without bespoke CSS each time */
.dnx-section {
  padding: 110px 0;
  background: var(--dnx-ink);
}
.dnx-section--panel {
  background: var(--dnx-panel);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.dnx-heading-gradient {
  font-family: "Montserrat", sans-serif;
  font-weight: 900;
  text-transform: uppercase;
  line-height: 1.02;
  background: linear-gradient(
    180deg,
    #ffffff 0%,
    var(--dnx-blush) 55%,
    var(--dnx-magenta) 100%
  );
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.dnx-btn {
  display: inline-block;
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 14px;
  color: #fff;
  background: var(--dnx-magenta);
  border-radius: 100px;
  text-decoration: none;
  border: none;
}

.is-style-dnx-outline .wp-block-button__link {
  background: transparent !important;
}

.dnx-btn--ghost {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.25);
}

/* Reusable button styles (via block Styles panel: is-style-dnx-filled / is-style-dnx-outline) */
.wp-block-button.is-style-dnx-filled,
.wp-block-button.dnx-btn {
  background: var(--dnx-magenta);
  color: #fff;
  border: 2px solid var(--dnx-magenta);
  border-radius: 100px;
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 14px;
}
.wp-block-button.is-style-dnx-outline,
.wp-block-button.dnx-btn--outline {
  background: transparent !important;
  color: var(--dnx-magenta) !important;
  border: 2px solid var(--dnx-magenta) !important;
  border-radius: 100px;
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 14px;
}

/* Ensure top-margin utility wins over the constrained-layout zeroing */
.dnx-mt-40 {
  margin-block-start: 40px !important;
}

/* --- Homepage helpers (standalone, no .dnx-body ancestor needed) --- */
.dnx-h2 {
  font-family: "Montserrat", sans-serif;
  font-weight: 900;
  text-transform: uppercase;
  font-size: clamp(28px, 3.6vw, 44px);
  line-height: 1.05;
  color: #fff;
  margin: 0 0 14px;
}
.dnx-section-head {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 48px;
}
.dnx-section-head .dnx-kicker {
  margin-bottom: 12px;
}
.dnx-section-head p {
  color: var(--dnx-mist);
  font-size: 16px;
  line-height: 1.7;
  font-weight: 300;
}
.dnx-cards-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}
.dnx-cards-3 .dnx-card {
  padding: 36px;
  text-align: center;
}
.dnx-cards-3 .dnx-card h3 {
  margin-bottom: 14px;
}
.dnx-cards-3 .dnx-card p {
  color: var(--dnx-mist);
  font-size: 14px;
  line-height: 1.7;
  font-weight: 300;
  margin: 0 0 24px;
}
.dnx-center {
  text-align: center;
}
.dnx-mt-40 {
  margin-top: 40px;
}

/* --- Our Story page helpers --- */
/* Dark page wrapper (no light gaps between full-bleed sections) */
.dnx-page {
  background: var(--dnx-ink);
}

/* --- Legal pages (Terms, Privacy, etc.) — readable prose on dark --- */
.dnx-wrap.dnx-legal {
  max-width: 860px;
}
.dnx-legal {
  margin: 0 auto;
  color: var(--dnx-mist);
  font-size: 16px;
  line-height: 1.8;
  font-weight: 300;
}
.dnx-legal h2 {
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  text-transform: uppercase;
  color: #fff;
  font-size: clamp(22px, 2.6vw, 30px);
  line-height: 1.2;
  margin: 48px 0 16px;
}
.dnx-legal h3 {
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  color: #fff;
  font-size: 20px;
  margin: 36px 0 12px;
}
.dnx-legal h4 {
  color: #fff;
  font-size: 17px;
  margin: 28px 0 10px;
}
.dnx-legal p {
  margin: 0 0 18px;
}
.dnx-legal strong,
.dnx-legal b {
  color: #fff;
  font-weight: 600;
}
.dnx-legal a {
  color: var(--dnx-blush);
}
.dnx-legal ul,
.dnx-legal ol {
  margin: 0 0 18px;
  padding-left: 22px;
}
.dnx-legal li {
  margin: 0 0 8px;
}
.dnx-legal hr {
  border: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  margin: 40px 0;
}
.dnx-legal table {
  width: 100%;
  border-collapse: collapse;
  margin: 0 0 20px;
}
.dnx-legal th,
.dnx-legal td {
  border: 1px solid rgba(255, 255, 255, 0.14);
  padding: 10px 14px;
  text-align: left;
}
/* Centered narrative column */
.dnx-narrative {
  max-width: 760px;
  margin: 0 auto;
  text-align: center;
}
.dnx-narrative p {
  color: var(--dnx-mist);
  font-size: 17px;
  line-height: 1.8;
  font-weight: 300;
  margin: 0 0 20px;
}
.dnx-narrative p:last-child {
  margin-bottom: 0;
}
.dnx-narrative strong,
.dnx-narrative b {
  color: #fff;
  font-weight: 600;
}
/* Two-up cards (Buyers / Sellers) */
.dnx-cards-2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 28px;
  max-width: 1000px;
  margin: 0 auto;
}
.dnx-card--panel {
  background: var(--dnx-panel);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 18px;
  padding: 40px;
  text-align: left;
}
.dnx-card--panel h3 {
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  text-transform: uppercase;
  color: #fff;
  font-size: 22px;
  margin: 0 0 16px;
}
.dnx-card--panel > p {
  color: var(--dnx-mist);
  font-size: 15px;
  line-height: 1.75;
  font-weight: 300;
  margin: 0 0 20px;
}
.dnx-card--panel ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.dnx-card--panel ul li {
  position: relative;
  padding: 0 0 0 26px;
  margin: 0 0 12px;
  color: var(--dnx-mist);
  font-size: 15px;
  line-height: 1.6;
}
.dnx-card--panel ul li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 9px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--dnx-magenta);
}

/* Offering cards (Learn Space vaegabound coaching) */
.dnx-card__eyebrow {
  color: var(--dnx-magenta);
  text-transform: uppercase;
  font-size: 12px;
  letter-spacing: 0.06em;
  font-weight: 600;
  margin: 0 0 8px;
}
.dnx-card--panel .dnx-card__price {
  color: var(--dnx-blush);
  font-weight: 700;
  font-size: 16px;
  margin: 20px 0 0;
}
.dnx-card--panel .dnx-card__by {
  color: var(--dnx-mist);
  font-size: 13px;
  margin: 2px 0 0;
  opacity: 0.75;
}
.dnx-cards-3 .dnx-card--panel {
  text-align: left;
}
.dnx-round img {
  border-radius: 16px;
  display: block;
}
/* Vertical image stack — each image its own block, one under another (duplicatable) */
.dnx-img-stack {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 28px;
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
}
.dnx-img-stack .wp-block-image {
  margin: 0;
  width: 100%;
}
.dnx-img-stack .wp-block-image img {
  width: 100%;
  border-radius: 16px;
}
.dnx-cta-cover {
  padding: 110px 24px !important;
}
.dnx-cta-cover .dnx-narrative p,
.dnx-cta-cover .dnx-narrative strong {
  color: #fff;
}

/* Newsletter band */
.dnx-newsletter {
  background: var(--dnx-panel);
  padding: 56px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}
.dnx-newsletter .dnx-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  flex-wrap: wrap;
}
.dnx-newsletter h2 {
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  text-transform: uppercase;
  font-size: 24px;
  color: #fff;
  margin: 0;
}

.dnx-newsletter p.wp-block-paragraph {
  display: none;
}

/* Dark-theme WooCommerce product grids inside our sections */
/* Wider container + clean 4-up grid so products go end-to-end and render bigger */
.dnx-products .dnx-wrap {
  max-width: 1440px;
}
/* Lift the constrained-layout content-size cap so the grid uses the full wrap width */
.dnx-products .dnx-wrap > * {
  max-width: none !important;
}
.dnx-shop-search {
  max-width: 600px !important;
}
.dnx-products ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
  margin: 0 !important;
}
.dnx-products ul.products::before,
.dnx-products ul.products::after {
  display: none !important;
}
.dnx-products ul.products li.product {
  width: auto !important;
  margin: 0 !important;
  float: none !important;
  clear: none !important;
}
.dnx-products ul.products li.product img {
  width: 100%;
  height: auto;
  object-fit: cover;
  aspect-ratio: 1/1;
}

.dnx-products .woocommerce ul.products li.product,
.dnx-products ul.products li.product {
  text-align: center;
}
.dnx-products ul.products li.product .woocommerce-loop-product__title {
  color: #fff;
  font-family: "Poppins", sans-serif;
  font-weight: 400;
  font-size: 15px;
}
.dnx-products ul.products li.product .price {
  color: var(--dnx-blush);
}
.dnx-products ul.products li.product img {
  border-radius: 12px;
  background: #fff;
}
.dnx-products ul.products li.product a.button,
.dnx-products ul.products li.product a.added_to_cart {
  background: var(--dnx-magenta);
  color: #fff;
  border-radius: 100px;
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 12px;
  letter-spacing: 0.05em;
}

.wp-block-woocommerce-mini-cart-contents {
    background: #fff !important;
}

.dnx-hero {
  --dnx-ink: #07050c;
  --dnx-violet: #8b2fff;
  --dnx-magenta: #ff2e9a;
  --dnx-blush: #ffd6e6;
  --dnx-mist: #c9c2dd;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  overflow: hidden;
  background:
    radial-gradient(
      ellipse at 50% 20%,
      rgba(139, 47, 255, 0.35),
      transparent 60%
    ),
    radial-gradient(
      ellipse at 80% 80%,
      rgba(255, 46, 154, 0.25),
      transparent 55%
    ),
    var(--dnx-ink);
  padding: 90px 24px 70px;
}
.dnx-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-color: black;
  opacity: 0.22;
  mix-blend-mode: screen;
}
.dnx-hero-inner {
  position: relative;
  z-index: 2;
  max-width: 820px;
  margin: 0 auto;
}
.dnx-eyebrow {
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  letter-spacing: 0.35em;
  font-size: 12px;
  color: var(--dnx-magenta);
  text-transform: uppercase;
  margin-bottom: 22px;
}
.dnx-hero h1 {
  font-family: "Montserrat", sans-serif;
  font-weight: 900;
  text-transform: uppercase;
  font-size: clamp(38px, 7vw, 88px);
  line-height: 0.98;
  letter-spacing: -0.01em;
  background: linear-gradient(
    180deg,
    #ffffff 0%,
    var(--dnx-blush) 55%,
    var(--dnx-magenta) 100%
  );
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  margin: 0 0 26px;
}
.dnx-hero-sub {
  font-family: "Poppins", sans-serif;
  font-weight: 300;
  font-size: 18px;
  color: var(--dnx-mist);
  max-width: 560px;
  margin: 0 auto 40px;
}
.dnx-meta-row {
  display: flex;
  gap: 14px;
  justify-content: center;
  flex-wrap: wrap;
}
.dnx-meta-pill {
  font-family: "Montserrat", sans-serif;
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #fff;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 100px;
  padding: 10px 22px;
}


.dnx-body {
  --dnx-ink: #07050c;
  --dnx-panel: #100b1c;
  --dnx-violet: #8b2fff;
  --dnx-magenta: #ff2e9a;
  --dnx-blush: #ffd6e6;
  --dnx-mist: #c9c2dd;
  background: var(--dnx-ink);
  font-family: "Poppins", sans-serif;
}
.dnx-body * {
  box-sizing: border-box;
}
.dnx-wrap {
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 32px;
}

.dnx-rope {
  width: 100%;
  height: 64px;
  display: block;
}

.dnx-night {
  padding: 110px 0;
}
.dnx-night-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 70px;
  align-items: center;
}
.dnx-kicker {
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--dnx-violet);
  margin-bottom: 18px;
}
.dnx-body h2 {
  font-family: "Montserrat", sans-serif;
  font-weight: 900;
  text-transform: uppercase;
  font-size: clamp(28px, 3.6vw, 44px);
  line-height: 1.05;
  margin: 0 0 24px;
  color: #fff;
}
.dnx-night p {
  color: var(--dnx-mist);
  font-size: 16px;
  line-height: 1.8;
  font-weight: 300;
  margin: 0 0 20px;
}
.dnx-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 24px;
}
.dnx-tag {
  font-family: "Montserrat", sans-serif;
  font-size: 12px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  padding: 9px 18px;
  border-radius: 8px;
  border: 1px solid rgba(255, 46, 154, 0.4);
  color: var(--dnx-blush);
}
.dnx-tag-no {
  font-family: "Montserrat", sans-serif;
  font-size: 12px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  padding: 9px 18px;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  color: var(--dnx-mist);
}
.dnx-night-visual {
  position: relative;
  border-radius: 18px;
  overflow: hidden;
  aspect-ratio: 4/5;
  background: url("https://dominext.co/wp-content/uploads/2026/07/Promo-Gif1.gif")
    center/cover;
}
.dnx-night-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(7, 5, 12, 0) 40%,
    rgba(7, 5, 12, 0.9) 100%
  );
}
.dnx-night-visual span {
  position: absolute;
  bottom: 22px;
  left: 24px;
  z-index: 2;
  font-family: "Montserrat", sans-serif;
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--dnx-blush);
}

.dnx-foundation {
  padding: 100px 0;
  text-align: center;
  background: var(--dnx-panel);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.dnx-foundation .dnx-wrap {
  max-width: 780px;
}
.dnx-statement {
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  font-size: clamp(22px, 2.6vw, 32px);
  line-height: 1.5;
  color: #fff;
  margin: 0;
}
.dnx-statement em {
  color: var(--dnx-magenta);
  font-style: normal;
}
.dnx-pillars {
  display: flex;
  justify-content: center;
  gap: 48px;
  margin-top: 44px;
  flex-wrap: wrap;
}
.dnx-pillar {
  font-family: "Montserrat", sans-serif;
  font-size: 12px;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--dnx-mist);
}

.dnx-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.dnx-split-panel {
  padding: 100px 60px;
}
.dnx-split-panel.dnx-creators {
  background: #0c0713;
  border-right: 1px solid rgba(255, 255, 255, 0.06);
}
.dnx-split-panel.dnx-buyers {
  background: #120a1e;
}
.dnx-split-panel h3 {
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 28px;
  text-transform: uppercase;
  color: #fff;
  margin: 0 0 18px;
  line-height: 1.15;
}
.dnx-split-panel p {
  color: var(--dnx-mist);
  font-size: 15px;
  line-height: 1.8;
  font-weight: 300;
  margin: 0 0 26px;
}
.dnx-link-arrow {
  font-family: "Montserrat", sans-serif;
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--dnx-blush);
  text-decoration: none;
  border-bottom: 1px solid var(--dnx-magenta);
  padding-bottom: 4px;
}

/* ---- Party Rules (bilingual) ---- */
.dnx-rules {
  padding: 110px 0;
  background: var(--dnx-panel);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.dnx-rules-head {
  text-align: center;
  margin-bottom: 56px;
}
.dnx-rules-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
}
.dnx-rules-col {
  min-width: 0;
}
.dnx-rules-flag {
  font-size: 34px;
  text-align: center;
  margin-bottom: 8px;
  line-height: 1;
}
.dnx-rules-lang {
  text-align: center;
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--dnx-violet);
  margin-bottom: 36px;
}
.dnx-rules-sub {
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 16px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #fff;
  margin: 36px 0 14px;
}
.dnx-rules-col p {
  color: var(--dnx-mist);
  font-size: 14px;
  line-height: 1.8;
  font-weight: 300;
  margin: 0 0 14px;
}
.dnx-rules-nolist {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 18px;
}
.dnx-rules-nolist span {
  font-family: "Montserrat", sans-serif;
  font-size: 11px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 7px 14px;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  color: var(--dnx-mist);
}
.dnx-rules-callout {
  margin: 18px 0;
  padding: 20px 22px;
  border-radius: 12px;
  border: 1px solid rgba(255, 46, 154, 0.3);
  background: rgba(255, 46, 154, 0.06);
  font-size: 13px;
  line-height: 1.75;
  color: var(--dnx-mist);
  font-weight: 300;
}
.dnx-rules-callout b {
  color: #fff;
}

.dnx-accordion {
  margin: 0 0 8px;
}
.dnx-accordion summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 14px 18px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 10px;
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  font-size: 13px;
  color: #fff;
  background: rgba(255, 255, 255, 0.02);
}
.dnx-accordion summary::-webkit-details-marker {
  display: none;
}
.dnx-accordion summary::after {
  content: "+";
  font-size: 16px;
  color: var(--dnx-magenta);
  flex: 0 0 auto;
  transition: transform 0.2s ease;
}
.dnx-accordion[open] summary::after {
  transform: rotate(45deg);
}
.dnx-accordion[open] summary {
  border-radius: 10px 10px 0 0;
  border-bottom: none;
}
.dnx-accordion-body {
  padding: 16px 18px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-top: none;
  border-radius: 0 0 10px 10px;
  font-size: 13px;
  line-height: 1.8;
  color: var(--dnx-mist);
  font-weight: 300;
}
.dnx-accordion-body p {
  margin: 0 0 10px;
}
.dnx-accordion-body p:last-child {
  margin-bottom: 0;
}

.dnx-rules-list {
  list-style: none;
  margin: 0 0 14px;
  padding: 0;
}
.dnx-rules-list li {
  font-size: 13px;
  line-height: 1.7;
  color: var(--dnx-mist);
  font-weight: 300;
  padding-left: 16px;
  position: relative;
  margin-bottom: 8px;
}
.dnx-rules-list li::before {
  content: "-";
  position: absolute;
  left: 0;
  color: var(--dnx-violet);
}

.dnx-consent-green {
  color: #92d050;
  font-weight: 500;
}
.dnx-consent-orange {
  color: #ffc000;
  font-weight: 500;
}
.dnx-consent-pink {
  color: #ff33cc;
  font-weight: 500;
}

/* ---- Prices / Address cards ---- */
.dnx-details {
  padding: 110px 0;
}
.dnx-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  margin-top: 48px;
}
.dnx-card {
  background: var(--dnx-panel);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 18px;
  padding: 44px;
}
.dnx-card h3 {
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 20px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #fff;
  margin: 0 0 26px;
}
.dnx-price-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 14px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  font-family: "Poppins", sans-serif;
}
.dnx-price-row:last-of-type {
  border-bottom: none;
}
.dnx-price-label {
  color: var(--dnx-mist);
  font-size: 15px;
  font-weight: 300;
}
.dnx-price-amount {
  color: #fff;
  font-size: 17px;
  font-weight: 600;
}
.dnx-price-door {
  display: block;
  color: var(--dnx-mist);
  font-size: 12px;
  font-weight: 300;
  margin-top: 2px;
}
.dnx-card-note {
  margin-top: 22px;
  color: var(--dnx-mist);
  font-size: 13px;
  line-height: 1.7;
  font-weight: 300;
}
.dnx-address-lines {
  color: var(--dnx-mist);
  font-size: 15px;
  line-height: 1.9;
  font-weight: 300;
  margin: 0 0 22px;
}
.dnx-address-lines strong {
  color: #fff;
  font-weight: 600;
}
.dnx-venue-notes {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.dnx-venue-notes li {
  font-size: 13px;
  color: var(--dnx-mist);
  font-weight: 300;
  padding-left: 16px;
  position: relative;
}
.dnx-venue-notes li::before {
  content: "-";
  position: absolute;
  left: 0;
  color: var(--dnx-violet);
}
.dnx-venue-notes li a {
  color: var(--dnx-blush);
}

/* ---- Audience ---- */
.dnx-audience {
  padding: 110px 0;
  background: var(--dnx-panel);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  text-align: center;
}
.dnx-audience .dnx-wrap {
  max-width: 760px;
}
.dnx-audience h3 {
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 18px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #fff;
  margin: 0 0 18px;
}
.dnx-audience p {
  color: var(--dnx-mist);
  font-size: 15px;
  line-height: 1.8;
  font-weight: 300;
  margin: 0 0 18px;
}
.dnx-outfit-check {
  margin-top: 28px;
  padding: 20px 24px;
  border-radius: 12px;
  background: rgba(139, 47, 255, 0.08);
  border: 1px solid rgba(139, 47, 255, 0.3);
  color: var(--dnx-mist);
  font-size: 13px;
  line-height: 1.7;
  font-weight: 300;
}
.dnx-outfit-check b {
  color: #fff;
}


/* Event poster: responsive + sized regardless of any inline width on the block */
img[src*="Poster-Party"] {
  width: 100% !important;
  max-width: 620px !important;
  height: auto !important;
  display: block;
  margin: 0 auto;
}

/* --- MailerLite newsletter form inside the dark band --- */
.dnx-newsletter .ml-form-embedContainer {
  width: 100% !important;
  max-width: 560px !important;
  flex: 1 1 380px;
  margin: 0 !important;
}
.dnx-newsletter .ml-form-embedWrapper,
.dnx-newsletter .ml-form-embedWrapper.embedForm {
  max-width: none !important;
  width: 100% !important;
  background: transparent !important;
}
.dnx-newsletter .ml-form-embedBody,
.dnx-newsletter .ml-form-embedBody.ml-form-embedBodyHorizontal {
  padding: 0 !important;
}
.dnx-newsletter .ml-form-formContent.horozintalForm {
  padding: 0 !important;
  float: none !important;
}
.dnx-newsletter .ml-form-horizontalRow {
  display: flex !important;
  gap: 12px;
  align-items: stretch;
  float: none !important;
  height: auto !important;
}
.dnx-newsletter .ml-input-horizontal {
  width: auto !important;
  flex: 1 1 auto !important;
  float: none !important;
}
.dnx-newsletter .ml-input-horizontal .horizontal-fields {
  padding-right: 0 !important;
  width: 100% !important;
}
.dnx-newsletter .ml-button-horizontal {
  width: auto !important;
  flex: 0 0 auto !important;
  float: none !important;
  padding-top: 0 !important;
}
.dnx-newsletter .ml-button-horizontal button {
  width: auto !important;
  white-space: nowrap;
  padding: 12px 30px !important;
}
.dnx-newsletter .ml-form-fieldRow input {
  border-radius: 100px !important;
}
.dnx-newsletter .ml-mobileButton-horizontal {
  display: none !important;
}


/* --- Native MailerLite plugin form (.mailerlite-form) inside the dark band --- */
.dnx-newsletter .mailerlite-form {
  width: 100% !important;
  max-width: 720px;
  flex: 1 1 420px;
  margin: 0;
}
.dnx-newsletter .mailerlite-form form {
  margin: 0;
}
.dnx-newsletter .mailerlite-form-description {
  display: none;
}
.dnx-newsletter .mailerlite-form-inputs {
  display: flex;
  gap: 12px;
  align-items: stretch;
  flex-wrap: nowrap;
  min-width: 600px;
}
.dnx-newsletter .mailerlite-form-field {
  flex: 1 1 auto;
  margin: 0;
}
.dnx-newsletter .mailerlite-form-field label {
  display: none;
}
.dnx-newsletter .mailerlite-form-field input[type="email"] {
  width: 100%;
  background: #fff;
  color: #333;
  border: 1px solid #ccc;
  border-radius: 100px;
  padding: 12px 18px;
  font-family: "Poppins", sans-serif;
  font-size: 14px;
  line-height: 21px;
  box-sizing: border-box;
}
.dnx-newsletter .mailerlite-form-loader {
  display: none;
}
.dnx-newsletter .mailerlite-subscribe-button-container {
  flex: 0 0 auto;
  display: flex;
}
.dnx-newsletter .mailerlite-subscribe-submit {
  background: var(--dnx-magenta);
  color: #fff;
  border: none;
  border-radius: 100px;
  padding: 12px 30px;
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 14px;
  cursor: pointer;
  white-space: nowrap;
}
.dnx-newsletter .mailerlite-subscribe-submit:hover {
  opacity: 0.92;
}
.dnx-newsletter .mailerlite-form-response {
  color: var(--dnx-mist);
  margin-top: 10px;
}


/* --- Shop archive (matches homepage dark style) --- */
.dnx-shop {
  background: var(--dnx-ink);
}
.dnx-shop .woocommerce-products-header {
  display: none;
} /* our own heading is used */
.dnx-shop-search {
  margin: 0 auto 40px;
}
.dnx-shop .woocommerce-result-count,
.dnx-shop .woocommerce-ordering {
  color: var(--dnx-mist);
  margin-bottom: 20px;
}
.dnx-shop .woocommerce-ordering select {
  background: #fff;
  color: #333;
  border-radius: 100px;
  padding: 8px 14px;
  border: 1px solid #ccc;
}
.dnx-shop .woocommerce-pagination a,
.dnx-shop .woocommerce-pagination span {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.2);
}
.dnx-shop .woocommerce-pagination .current {
  background: var(--dnx-magenta);
  border-color: var(--dnx-magenta);
  color: #fff;
}

/* FiboSearch to match the pill style */
.dnx-shop .dgwt-wcas-search-wrapp {
  max-width: 640px;
  margin: 0 auto;
}
.dnx-shop .dgwt-wcas-search-input {
  border-radius: 100px !important;
  border: 1px solid #ccc !important;
  padding: 12px 18px !important;
  background: #fff !important;
  color: #333 !important;
}
.dnx-shop .dgwt-wcas-search-submit {
  background: var(--dnx-magenta) !important;
  border-color: var(--dnx-magenta) !important;
  color: #fff !important;
}

.dgwt-wcas-style-pirx .dgwt-wcas-sf-wrapp {
  background: transparent;
  padding: 0;
}

.dgwt-wcas-style-pirx .dgwt-wcas-sf-wrapp button.dgwt-wcas-search-submit {
  display: none;
}

.woocommerce-pagination {
  margin-top: 30px;
}
/* ============================================================
   Consistent content width across ALL sections (homepage + shop)
   One value so every section's inner content lines up.
   ============================================================ */
:root {
  --dnx-content: 1440px;
}
.dnx-wrap,
.dnx-hero-inner,
.dnx-products .dnx-wrap {
  max-width: var(--dnx-content) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.dnx-hero > * {
  max-width: var(--dnx-content) !important;
}
/* Neutralize the narrower per-pattern contentSize caps (e.g. Instagram CTA 680) */
.dnx-wrap > * {
  max-width: none !important;
}
/* keep the centered CTA text readable, not edge-to-edge */
.dnx-wrap.dnx-center > * {
  max-width: 720px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* --- Shop/category: strip WooCommerce legacy scaffold that causes gaps/dupes --- */
.dnx-shop .woocommerce-breadcrumb,
.dnx-shop .woocommerce-products-header {
  display: none !important;
} /* we use our own heading + description */
.dnx-shop .content-area,
.dnx-shop .site-main,
.dnx-shop .woocommerce {
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  min-height: 0 !important;
  float: none !important;
}
.dnx-shop .woocommerce-result-count {
  margin-top: 0;
}

/* Category description: compact, muted, max 3 lines so it doesn't push products down */
.dnx-section-head .wp-block-term-description {
  color: var(--dnx-mist);
  font-size: 14px;
  line-height: 1.7;
  font-weight: 300;
  max-width: 760px !important;
  margin: 10px auto 0 !important;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Read more toggle for category description */
.dnx-section-head .wp-block-term-description.is-expanded {
  -webkit-line-clamp: unset;
  display: block;
  overflow: visible;
}
.dnx-readmore {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--dnx-magenta);
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 12px;
  margin: 10px auto 0;
  display: block;
}
.dnx-readmore:hover {
  opacity: 0.8;
}

/* Search bar narrower than the full content width (beats .dnx-wrap > * override) */
.dnx-wrap > .dnx-shop-search {
  max-width: 600px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* --- Single product (native WooCommerce layout, dark) --- */
.dnx-single {
  background: var(--dnx-ink);
}
/* TT5 sets root body font-size to preset "large" (fluid); the legacy Woo markup
   inherits it and renders huge. Pin a sane 16px scale like the other dnx sections. */
.dnx-single,
.dnx-single p,
.dnx-single li,
.dnx-single td,
.dnx-single label,
.dnx-single input,
.dnx-single select,
.dnx-single textarea,
.dnx-single .price,
.dnx-single .amount,
.dnx-single .woocommerce-tabs,
.dnx-single .wc-tab,
.dnx-single .stock,
.dnx-single .product_meta,
.dnx-single .related.products li {
  font-size: 16px;
  line-height: 1.6;
}
.dnx-single .product_title {
  font-size: clamp(28px, 3.6vw, 44px);
  line-height: 1.15;
  margin-bottom: 0.4em;
}
.dnx-single .woocommerce-tabs ul.tabs li a {
  font-size: 15px;
}
.dnx-single .related.products > h2,
.dnx-single .upsells > h2 {
  font-size: clamp(22px, 2.6vw, 32px);
}
.dnx-single .product_title,
.dnx-single h1,
.dnx-single h2,
.dnx-single h3 {
  color: #fff;
}
.dnx-single,
.dnx-single p,
.dnx-single li,
.dnx-single td,
.dnx-single label {
  color: var(--dnx-mist);
}
.dnx-single .price,
.dnx-single .amount {
  color: var(--dnx-blush);
}
/* .dnx-single a{color:var(--dnx-blush);} */
.dnx-single .woocommerce-tabs ul.tabs li {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.1);
}
.dnx-single .woocommerce-tabs ul.tabs li.active {
  background: var(--dnx-panel);
}
.dnx-single .woocommerce-tabs ul.tabs li a {
  color: #fff;
}
.dnx-single .single_add_to_cart_button,
.dnx-single button.button,
.dnx-single .button.alt {
  background: var(--dnx-magenta) !important;
  color: #fff !important;
  border-radius: 100px !important;
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  text-transform: uppercase;
}
.dnx-single input[type="text"],
.dnx-single input[type="email"],
.dnx-single input[type="number"],
.dnx-single textarea,
.dnx-single select {
  background: #fff;
  color: #333;
  border: 1px solid #ccc;
  border-radius: 8px;
  padding: 8px 12px;
}
.dnx-single .quantity input {
  border-radius: 8px;
}
.dnx-single .related.products img,
.dnx-single .woocommerce-product-gallery img {
  border-radius: 12px;
  background: #fff;
}

/* --- Checkout (classic WooCommerce shortcode, dark) — inherits .dnx-single --- */
.dnx-checkout .wp-block-post-title {
  margin-bottom: 32px;
}
/* Two columns: customer details left, order-review (heading + panel) right.
   Billing is one tall sibling while the heading and order_review are separate
   siblings — so billing spans 2 rows and the right column stacks heading over
   the panel, both aligned to the top. */
.woocommerce-account .wp-block-post-title,
.woocommerce-account main .woocommerce,
.woocommerce-cart .wp-block-post-title,
.woocommerce-cart main .woocommerce,
.woocommerce-checkout .wp-block-post-title,
.woocommerce-checkout main .woocommerce {
  max-width: unset;
}
/* Two columns via floats: billing left, "Your order" heading + panel stacked
   right. Grid staggered the rows (billing is one tall item), so floats keep the
   heading and panel tight together on the right. Toggles stay full-width on top. */

.dnx-checkout #customer_details .col-1,
.dnx-checkout #customer_details .col-2 {
  width: 100%;
  float: none;
}
/* Section headings */
.dnx-checkout h3 {
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  color: #fff;
  font-size: 20px;
  margin: 0 0 18px;
}
/* Field labels */
.dnx-checkout label {
  color: var(--dnx-mist);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  display: block;
  margin: 0 0 7px;
}
.dnx-checkout .form-row {
  margin: 0 0 18px;
  padding: 0;
}
.dnx-checkout .required {
  color: var(--dnx-magenta);
  border: 0;
}
/* Dark input fields (cohesive with the panels; white boxes were too harsh) */
.dnx-checkout input[type="text"],
.dnx-checkout input[type="email"],
.dnx-checkout input[type="tel"],
.dnx-checkout input[type="password"],
.dnx-checkout input[type="number"],
.dnx-checkout textarea,
.dnx-checkout .select2-container--default .select2-selection--single,
.dnx-checkout select {
  width: 100%;
  box-sizing: border-box;
  min-height: 48px;
  background: rgba(255, 255, 255, 0.05) !important;
  border: 1px solid rgba(255, 255, 255, 0.14) !important;
  border-radius: 10px !important;
  padding: 12px 16px !important;
  color: #fff !important;
  font-family: "Poppins", sans-serif;
  font-size: 15px;
  line-height: 1.4;
  transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
}
.dnx-checkout textarea {
  min-height: 110px;
  resize: vertical;
}
.dnx-checkout input::placeholder,
.dnx-checkout textarea::placeholder {
  color: rgba(201, 194, 221, 0.55);
}
.dnx-checkout input:focus,
.dnx-checkout textarea:focus,
.dnx-checkout select:focus,
.dnx-checkout .select2-container--default.select2-container--focus
  .select2-selection--single {
  outline: none;
  border-color: var(--dnx-magenta);
  background: rgba(255, 255, 255, 0.08);
  box-shadow: 0 0 0 3px rgba(255, 46, 154, 0.2);
}
/* select2 dark to match */
.dnx-checkout .select2-container--default .select2-selection--single {
  display: flex;
  align-items: center;
}
.dnx-checkout
  .select2-container--default
  .select2-selection--single
  .select2-selection__rendered {
  color: #fff;
  line-height: 1.4;
  padding: 0;
}
.dnx-checkout
  .select2-container--default
  .select2-selection--single
  .select2-selection__arrow {
  height: 46px;
}
.dnx-checkout .select2-dropdown {
  background: var(--dnx-panel);
  border: 1px solid rgba(255, 255, 255, 0.14);
  color: var(--dnx-mist);
}
.dnx-checkout .select2-results__option--highlighted {
  background: var(--dnx-magenta) !important;
}
/* Checkbox rows */
.dnx-checkout .form-row.create-account label,
.dnx-checkout #ship-to-different-address label,
.dnx-checkout .woocommerce-form__label-for-checkbox {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-transform: none;
  letter-spacing: 0;
  font-size: 14px;
  color: #fff;
  margin: 0;
  cursor: pointer;
}
.dnx-checkout input[type="checkbox"] {
  width: 18px;
  height: 18px;
  accent-color: var(--dnx-magenta);
}
/* Login / coupon toggle bars + expanded panels — force dark over Woo defaults */
.dnx-checkout .woocommerce-form-login-toggle,
.dnx-checkout .woocommerce-form-coupon-toggle {
  margin-bottom: 16px;
}
.dnx-checkout .woocommerce-info,
.dnx-checkout .woocommerce-form-login-toggle .woocommerce-info,
.dnx-checkout .woocommerce-form-coupon-toggle .woocommerce-info,
.dnx-checkout .woocommerce-form-login,
.dnx-checkout .checkout_coupon {
  background: var(--dnx-panel) !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  border-left: 3px solid var(--dnx-magenta) !important;
  border-radius: 12px !important;
  padding: 16px 20px !important;
  color: var(--dnx-mist) !important;
}
.dnx-checkout .woocommerce-info::before,
.dnx-checkout .woocommerce-error::before,
.dnx-checkout .woocommerce-message::before {
  color: var(--dnx-magenta) !important;
}
.dnx-checkout .woocommerce-info a,
.dnx-checkout .checkout_coupon a,
.dnx-checkout .woocommerce-form-login a {
  color: var(--dnx-blush);
}
/* Order review panel + table */
.dnx-checkout #order_review {
  background: var(--dnx-panel);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 16px;
  padding: 26px;
}
.dnx-checkout .shop_table {
  width: 100%;
  border-collapse: collapse;
  color: var(--dnx-mist);
}
.dnx-checkout .shop_table th,
.dnx-checkout .shop_table td {
  padding: 12px 4px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  text-align: left;
}
.dnx-checkout .shop_table tfoot th,
.dnx-checkout .shop_table tfoot td {
  font-weight: 600;
}
.dnx-checkout .shop_table .order-total .amount {
  color: var(--dnx-blush);
  font-size: 20px;
}
.dnx-checkout .cart_item .product-name {
  color: #fff;
}
/* Payment methods */
.dnx-checkout #payment,
.dnx-checkout #payment ul.payment_methods {
  background: transparent !important;
  border: none !important;
}
.dnx-checkout #payment ul.payment_methods {
  list-style: none;
  margin: 0 0 18px;
  padding: 0;
}
.dnx-checkout #payment ul.payment_methods li {
  margin-bottom: 8px;
  color: var(--dnx-mist);
}
.dnx-checkout #payment ul.payment_methods li label {
  color: #fff;
}
.dnx-checkout #payment div.payment_box {
  background: rgba(255, 255, 255, 0.05) !important;
  border-radius: 10px;
  color: var(--dnx-mist);
}
.dnx-checkout #payment div.payment_box::before {
  border-bottom-color: rgba(255, 255, 255, 0.05) !important;
}
.dnx-checkout #payment div.payment_box p {
  color: var(--dnx-mist);
}
/* Place order button (magenta pill already via .dnx-single button.button/.alt) */
.dnx-checkout #place_order {
  width: 100%;
  padding: 16px;
  font-size: 15px;
}
/* Coupon apply / login buttons stay on-brand via .dnx-single .button */
.dnx-checkout .woocommerce-terms-and-conditions-wrapper a {
  color: var(--dnx-blush);
}

/* --- Basket / Cart (WooCommerce Cart BLOCK, dark) — inherits .dnx-single --- */
.dnx-cart .wp-block-post-title {
  margin-bottom: 32px;
}
.dnx-cart .wc-block-cart,
.dnx-cart .wp-block-woocommerce-cart {
  color: var(--dnx-mist);
}
/* Line-items table */
.dnx-cart .wc-block-cart-items,
.dnx-cart table.wc-block-cart-items {
  background: transparent;
}
.dnx-cart .wc-block-cart-items__header {
  color: var(--dnx-mist);
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 12px;
}
.dnx-cart .wc-block-cart-items__row {
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.dnx-cart .wc-block-cart-item__product .wc-block-components-product-name,
.dnx-cart .wc-block-cart-item__product a {
  color: #fff;
  font-weight: 600;
  text-decoration: none;
}
.dnx-cart .wc-block-cart-item__product .wc-block-components-product-name:hover {
  color: var(--dnx-magenta);
}
.dnx-cart .wc-block-components-product-metadata,
.dnx-cart .wc-block-cart-item__product .wc-block-components-product-details {
  color: var(--dnx-mist);
  font-size: 13px;
}
.dnx-cart .wc-block-components-product-price,
.dnx-cart .wc-block-components-formatted-money-amount,
.dnx-cart .wc-block-cart-item__total .wc-block-components-product-price {
  color: var(--dnx-blush);
}
.dnx-cart img,
.dnx-cart .wc-block-cart-item__image img {
  border-radius: 10px;
  background: #fff;
}
.dnx-cart .wc-block-cart-item__remove-link {
  color: var(--dnx-mist);
}
.dnx-cart .wc-block-cart-item__remove-link:hover {
  color: var(--dnx-magenta);
}
/* Quantity selector */
.dnx-cart .wc-block-components-quantity-selector {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 10px;
}
.dnx-cart .wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input {
  color: #fff;
  background: transparent;
}
.dnx-cart .wc-block-components-quantity-selector__button {
  color: #fff;
}
.dnx-cart .wc-block-components-quantity-selector__button:hover {
  color: var(--dnx-magenta);
}
/* Totals sidebar card */
.dnx-cart .wc-block-cart__totals-title {
  color: var(--dnx-mist);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.dnx-cart .wc-block-components-sidebar,
.dnx-cart .wc-block-cart__sidebar .wc-block-components-panel,
.dnx-cart .wc-block-cart__sidebar > .wc-block-components-totals-wrapper,
.dnx-cart .wp-block-woocommerce-cart-order-summary-block,
.woocommerce table.shop_table {
  background: var(--dnx-panel);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 16px !important;
  padding: 24px;
}
.woocommerce-page table.shop_table {
  border-collapse: unset;
  width: 100%;
}
.dnx-cart .wc-block-components-totals-item,
.dnx-cart .wc-block-components-totals-item__label,
.dnx-cart .wc-block-components-totals-footer-item {
  color: var(--dnx-mist);
}
.dnx-cart .wc-block-components-totals-item__value {
  color: #fff;
}
.dnx-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  color: var(--dnx-blush);
  font-size: 20px;
}
.dnx-cart .wc-block-components-totals-item + .wc-block-components-totals-item,
.dnx-cart hr.wc-block-components-totals-item__label,
.dnx-cart .wc-block-components-totals-wrapper {
  border-color: rgba(255, 255, 255, 0.1);
}
/* Coupon / inputs inside cart inherit dark field look */
.dnx-cart .wc-block-components-text-input input,
.dnx-cart input.wc-block-components-text-input {
  background: rgba(255, 255, 255, 0.05) !important;
  border: 1px solid rgba(255, 255, 255, 0.14) !important;
  color: #fff !important;
  border-radius: 10px !important;
}
.dnx-cart .wc-block-components-text-input label {
  color: var(--dnx-mist);
}
/* Proceed to checkout button — magenta pill */
.dnx-cart .wc-block-cart__submit-button,
.dnx-cart .wc-block-cart__submit-container .wc-block-components-button,
.dnx-cart a.wc-block-cart__submit-button {
  background: var(--dnx-magenta) !important;
  color: #fff !important;
  border-radius: 100px !important;
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  min-height: 52px;
}
/* Empty-cart state */
.dnx-cart .wc-block-cart__empty-cart__title,
.dnx-cart .cart-empty {
  color: #fff;
}

/* --- Event page (migrated off Elementor): let the self-contained HTML
   sections span full width, no constrained-layout gutters. --- */
.dnx-event,
.dnx-event .wp-block-post-content {
  max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.dnx-event .wp-block-post-content > * {
  max-width: none !important;
  margin: 0;
}

/* ==========================================================================
   Header / footer parity on plugin-rendered pages (e.g. MultiVendorX vendor
   store pages). WordPress does not print the generated `core-block-supports`
   styles on those pages, so the header packs to the left, footer links lose
   their colour and the social icons collapse to 0x0. These rules restore the
   exact styling used on every other (block) page. They match the computed
   values from the standard pages, so they are a no-op where the generated
   styles are already present.
   ========================================================================== */

/* Header row: logo · nav · account/cart — spread across the width */
.wp-site-blocks header .is-content-justification-space-between {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1.2rem;
}

/* Header navigation: centred items, white links */
.wp-site-blocks header .wp-block-navigation {
  justify-content: center;
}
.wp-site-blocks header .wp-block-navigation a {
  color: #fff;
}

/* Footer text links (Legals, contact) — DOMINEXT magenta */
.wp-site-blocks footer a {
  color: #ff2e9a;
}

/* Footer social icons — magenta circle, white glyph */
.wp-site-blocks footer .wp-block-social-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.2rem;
}
.wp-site-blocks footer .wp-block-social-links .wp-social-link {
  /* A reveal script rewrites the inline style to `display:none` on vendor
     pages and never un-hides it, so force visibility (matches every other
     page, where the icons are shown). !important overrides the inline style. */
  display: inline-flex !important;
  width: 36px;
  height: 36px;
  padding: 0;
  border-radius: 9999px;
  background-color: #ff2e9a;
}
.wp-site-blocks footer .wp-block-social-links .wp-social-link > a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  padding: 0;
}
.wp-site-blocks footer .wp-block-social-links .wp-social-link svg {
  width: 24px;
  height: 24px;
  fill: #fff;
}

/* ==========================================================================
   Responsive breakpoints
   --------------------------------------------------------------------------
   The default rules above are desktop/default styles. Narrower layouts use
   max-width overrides. The checkout's two-column behavior is a desktop-only
   enhancement, so it intentionally uses min-width: 900px.
   ========================================================================== */

/* --- Desktop: 900px and up --- */
@media (min-width: 900px) {
    main .wp-block-post-title {
      padding: 60px 24px 40px;
  }
  .dnx-checkout form.checkout::after {
    content: "";
    display: block;
    clear: both;
  }

  .dnx-checkout .woocommerce-form-login-toggle,
  .dnx-checkout .woocommerce-form-coupon-toggle,
  .dnx-checkout .woocommerce-form-login,
  .dnx-checkout .checkout_coupon {
    clear: both;
    width: 100%;
  }

  .dnx-checkout #customer_details,
  .dnx-checkout #order_review_heading,
  .dnx-checkout #order_review {
    box-sizing: border-box;
  }

  .dnx-checkout #customer_details {
    float: left;
    width: 55%;
  }

  .dnx-checkout #order_review_heading {
    float: right;
    width: 42%;
    clear: right;
    margin-top: 0;
  }

  .dnx-checkout #order_review {
    float: right;
    width: 42%;
    clear: right;
    position: sticky;
    top: 96px;
  }
}

/* --- Tablet / compact layout: 899px and down --- */
@media (max-width: 899px) {
  .dnx-products ul.products {
    grid-template-columns: repeat(2, 1fr);
  }

  .dnx-cards-3 {
    grid-template-columns: 1fr;
  }

  .dnx-night-grid,
  .dnx-split,
  .dnx-cards,
  .dnx-rules-cols {
    grid-template-columns: 1fr;
  }

  .dnx-rules-cols {
    gap: 64px;
  }

  .dnx-split-panel {
    padding: 70px 32px;
  }

  .dnx-split-panel.dnx-creators {
    border-right: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  }
}

/* --- WordPress tablet breakpoint: 781px and down --- */
@media (max-width: 781px) {
  .dnx-header .wp-block-navigation {
    font-size: 16px;
  }

  .dnx-cards-2 {
    grid-template-columns: 1fr;
  }

  .dnx-card--panel {
    padding: 30px;
  }
}

/* --- Mobile: 600px and down --- */
@media (max-width: 600px) {
  .dnx-hero {
    padding: 60px 20px 50px;
  }

  .dnx-newsletter .ml-form-horizontalRow {
    flex-direction: column;
  }

  .dnx-newsletter .ml-button-horizontal button {
    width: 100% !important;
  }

  .dnx-newsletter .mailerlite-form-inputs {
    flex-direction: column;
    min-width: unset;
  }

  #mailerlite-form_1 {
    width: 100%;
  }

  .dnx-newsletter .mailerlite-subscribe-submit {
    width: 100%;
  }

  .dnx-newsletter .dnx-wrap {
    justify-content: center;
  }

  .dnx-newsletter h2 {
    text-align: center;
  }
}

/* --- Small mobile: 520px and down --- */
@media (max-width: 520px) {
  .dnx-products ul.products {
    grid-template-columns: 1fr;
  }
}
