/* Generated theme screen bundle. Source files remain the source of truth. */

/* ===== tokens.css ===== */
@font-face {
  font-family: "Playfair Display";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/playfair-display-700.woff2") format("woff2");
}

@font-face {
  font-family: "Poppins";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/poppins-400.woff2") format("woff2");
}

@font-face {
  font-family: "Poppins";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/poppins-500.woff2") format("woff2");
}

@font-face {
  font-family: "Poppins";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/poppins-600.woff2") format("woff2");
}

@font-face {
  font-family: "Poppins";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/poppins-700.woff2") format("woff2");
}

:root {
  --twl-color-ink: #111111;
  --twl-color-canvas: #181616;
  --twl-color-paper: #fffdf8;
  --twl-color-gold: #c9ac8c;
  --twl-color-gold-rgb: 201 172 140;
  --twl-color-amber: #b08100;
  --twl-color-brick: #bd322c;
  --twl-color-pine: #20342f;
  --twl-color-stone: #a7a7a7;
  --twl-color-muted: rgba(255, 253, 248, 0.72);
  --twl-accent-color: var(--twl-color-gold);
  --twl-accent-rgb: var(--twl-color-gold-rgb);
  --twl-font-body: "Poppins", sans-serif;
  --twl-font-display: "Playfair Display", serif;
  --twl-space-xs: 0.75rem;
  --twl-space-sm: 1rem;
  --twl-space-md: 1.5rem;
  --twl-space-lg: 2rem;
  --twl-space-xl: 3rem;
  --twl-space-2xl: 4.5rem;
  --twl-radius-md: 1rem;
  --twl-radius-lg: 1.75rem;
  --twl-radius-xl: 2.25rem;
  --twl-radius-pill: 999px;
  --twl-shadow-card: 0 16px 40px rgba(0, 0, 0, 0.22);
  --twl-border-subtle: 1px solid rgba(255, 253, 248, 0.14);
  --twl-shell-width: min(1600px, calc(100vw - 2rem));
  --twl-shell-edge: clamp(1rem, 2.6vw, 2.5rem);
  --twl-content-inline-pad: clamp(1rem, 4vw, 69px);
  --twl-content-stack: clamp(0.9rem, 1.7vw, 1.35rem);
  --twl-header-height: 5rem;
  --twl-scroll-offset: calc(var(--twl-header-height) + 1.5rem);
  --twl-page-max-width: min(100%, 1600px);
  --twl-page-reading-width: 100%;
  --twl-glass-fill: linear-gradient(180deg, rgba(255, 255, 255, 0.022), rgba(255, 255, 255, 0.008));
  --twl-logo-white: url("../img/logos/TheatreworksLive.webp");
  --twl-logo-white-mobile: url("../img/logos/TheatreworksLive-mobile.webp");
  --twl-logo-black: url("../img/logos/TheatreworksLive-print.webp");
  --twl-logo-circle: url("../img/logos/TheatreworksLive-circle.webp");
  --twl-logo-circle-mobile: url("../img/logos/TheatreworksLive-circle-mobile.webp");
  --twl-spinner-logo: var(--twl-logo-circle);
  --twl-glass-border: 1px solid rgba(255, 255, 255, 0.22);
  --twl-glass-shadow:
    0 24px 56px rgba(0, 0, 0, 0.36),
    0 0 0 1px rgba(255, 255, 255, 0.05),
    0 0 34px rgb(var(--twl-accent-rgb) / 0.16);
  --twl-color-panel: #2b2b2b;
  --twl-color-panel-soft: #3a3a3a;
  --twl-form-height: 3rem;
  --twl-form-radius: 1rem;
  --twl-form-border: 1px solid rgba(255, 255, 255, 0.16);
  --twl-form-border-strong: 1px solid rgb(var(--twl-accent-rgb) / 0.65);
  --twl-form-surface: rgba(8, 8, 8, 0.72);
  --twl-form-surface-focus: rgba(255, 255, 255, 0.06);
  --twl-form-placeholder: rgba(255, 255, 255, 0.54);
}

@media (max-width: 960px) {
  :root {
    --twl-spinner-logo: var(--twl-logo-circle-mobile);
  }
}


/* ===== base.css ===== */
html {
  box-sizing: border-box;
  background-color: #151515;
  color-scheme: dark;
  scroll-behavior: smooth;
  scroll-padding-top: var(--twl-scroll-offset);
  scrollbar-color: rgb(var(--twl-accent-rgb) / 0.82) #3c3c3c;
}

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

body {
  margin: 0;
  background-color: #151515;
  background:
    radial-gradient(circle at top, rgba(176, 129, 0, 0.16), transparent 30%),
    linear-gradient(180deg, #151515 0%, #0a0a0a 100%);
  color: var(--twl-color-paper);
  font-family: var(--twl-font-body);
  overflow-wrap: anywhere;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

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

a {
  color: inherit;
}

html::-webkit-scrollbar,
body::-webkit-scrollbar {
  width: 0.92rem;
  height: 0.92rem;
}

html::-webkit-scrollbar-track,
body::-webkit-scrollbar-track {
  background: #3c3c3c;
}

html::-webkit-scrollbar-thumb,
body::-webkit-scrollbar-thumb {
  border: 3px solid #3c3c3c;
  border-radius: 999px;
  background: linear-gradient(180deg, rgb(var(--twl-accent-rgb) / 0.94), rgb(var(--twl-accent-rgb) / 0.58));
  background-clip: padding-box;
}

html::-webkit-scrollbar-button,
body::-webkit-scrollbar-button {
  width: 0;
  height: 0;
  display: none;
}

html::-webkit-scrollbar-corner,
body::-webkit-scrollbar-corner {
  background: #3c3c3c;
}

p {
  margin: 0 0 var(--twl-space-md);
}

.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}


/* ===== layout.css ===== */
.twl-site-shell {
  min-height: 100vh;
  display: flex;
  flex: 1 0 auto;
  flex-direction: column;
}

.twl-shell {
  width: var(--twl-shell-width);
  margin: 0 auto;
}

.twl-shell--wide {
  width: 100%;
  max-width: none;
}

.twl-main {
  padding: var(--twl-space-xl) 0 var(--twl-space-2xl);
  flex: 1 0 auto;
}

.twl-main--home {
  padding: 0 0 var(--twl-space-2xl);
}

.twl-main--planner {
  padding: 0 0 var(--twl-space-xl);
}

.twl-main--commerce {
  padding-inline: 0;
}

.twl-main--commerce > .twl-commerce-content {
  width: 100%;
  padding-inline: 0;
  box-sizing: border-box;
}

.twl-main--commerce > .twl-commerce-content > * {
  min-width: 0;
}

.twl-main > article,
.twl-main > section,
.twl-main > div {
  min-width: 0;
}

.twl-header__inner,
.twl-footer__grid,
.twl-hero__grid {
  display: grid;
  gap: var(--twl-space-lg);
}

.twl-header__inner {
  grid-template-columns: auto 1fr auto;
  align-items: center;
  padding: 1rem 39.026px;
  position: relative;
}

.twl-footer__grid,
.twl-hero__grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.twl-hero__grid {
  grid-template-columns: 1fr;
}

.twl-footer__grid {
  align-items: center;
  padding: 0 39.026px;
}

.twl-prose {
  max-width: 72ch;
}

.twl-nav {
  justify-self: end;
}

.twl-footer__brand {
  justify-self: end;
}

.twl-surface--planner {
  max-width: none;
}

.page .twl-main > .type-page,
.home .twl-main > .type-page {
  max-width: 100%;
}

.twl-main > :not(.twl-hero) {
  padding-inline: var(--twl-content-inline-pad);
  box-sizing: border-box;
}

.twl-main > .twl-surface--planner {
  padding-inline: 0;
}

.twl-main--commerce > :not(.twl-hero) {
  padding-inline: 0;
}

.twl-main--commerce > .twl-hero {
  margin-inline: 0;
}

.twl-header .twl-shell,
.twl-footer .twl-shell {
  width: 100%;
  max-width: none;
}

@media (max-width: 960px) {
  .twl-hero__grid {
    grid-template-columns: 1fr;
  }

  .twl-header__inner {
    grid-template-columns: 1fr auto;
    align-items: center;
  }

  .twl-header__inner {
    padding-inline: 1rem;
  }

  .twl-prose,
  .twl-main > :not(.twl-hero) {
    padding-inline: 1rem;
  }

  .twl-main--commerce {
    padding-inline: 0;
  }

  .twl-main--commerce > .twl-commerce-content {
    padding-inline: 0;
  }

  .twl-main--commerce > .twl-hero {
    margin-inline: 0;
  }

  .twl-footer__grid {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: 0.6rem;
  }

  .twl-footer__brand {
    justify-self: end;
  }
}


/* ===== components.css ===== */
.twl-header {
  position: sticky;
  top: 0;
  z-index: 40;
  backdrop-filter: blur(16px);
  background: rgba(17, 17, 17, 0.84);
  border-bottom: var(--twl-border-subtle);
}

body.twl-nav-float .twl-header {
  position: fixed;
  inset: 0 0 auto 0;
  background: rgba(8, 8, 8, 0.22);
  border-bottom: 1px solid rgba(255, 253, 248, 0.16);
  z-index: 80;
}

body.admin-bar.twl-nav-float .twl-header {
  top: 32px;
}

.twl-branding__link {
  display: inline-flex;
  flex-direction: column;
  gap: 0.2rem;
  text-decoration: none;
}

.twl-branding {
  justify-self: start;
}

.twl-branding__title {
  font-family: var(--twl-font-display);
  font-size: clamp(1.5rem, 3vw, 2.25rem);
}

.twl-branding__logo,
.twl-footer__logo {
  display: block;
  width: auto;
  max-width: min(18rem, 48vw);
  max-height: 4.15rem;
  object-fit: contain;
}

.twl-footer__logo {
  max-width: min(9rem, 26vw);
  max-height: 2.5rem;
}

.twl-branding__tagline,
.twl-eyebrow {
  color: var(--twl-color-muted);
  font-size: 0.8rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.twl-nav-toggle,
.twl-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.8rem 1.2rem;
  border: 0;
  border-radius: var(--twl-radius-pill);
  background: var(--twl-color-amber);
  color: var(--twl-color-ink);
  font-weight: 700;
  text-decoration: none;
}

.twl-nav-toggle {
  display: none;
  gap: 0.3rem;
  min-height: 2.5rem;
  padding: 0.35rem 0;
  background: transparent;
  color: var(--twl-color-paper);
  flex-direction: row;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.twl-nav-toggle__label {
  font-size: 0.82rem;
}

.twl-nav-toggle__icon {
  display: inline-flex;
  flex-direction: column;
  gap: 0.28rem;
}

.twl-nav-toggle__line {
  display: block;
  width: 1.35rem;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
}

.twl-nav__list,
.twl-footer__menu {
  display: flex;
  flex-wrap: wrap;
  gap: var(--twl-space-sm);
  padding: 0;
  margin: 0;
  list-style: none;
}

.twl-nav__list a,
.twl-footer__menu a {
  display: inline-flex;
  align-items: center;
  min-height: 2.5rem;
  padding: 0.35rem 0.1rem;
  color: var(--twl-color-paper);
  text-decoration: none;
  font-weight: 600;
  transition: color 220ms ease, background-color 220ms ease;
}

.twl-nav__list > .current-menu-item > a,
.twl-nav__list > .current_page_item > a,
.twl-nav__list > .current-menu-ancestor > a {
  color: var(--twl-color-gold);
}

.twl-nav__list > .menu-item > a:hover,
.twl-nav__list > .menu-item > a:focus-visible {
  color: var(--twl-color-gold);
}

.twl-nav__list > .menu-item > a {
  position: relative;
  border-radius: 999px;
  padding-inline: 0.8rem;
}

.twl-nav__list > .menu-item:hover > a,
.twl-nav__list > .menu-item:focus-within > a {
  background: rgba(255, 253, 248, 0.08);
}

.twl-nav__list > .menu-item {
  position: relative;
}

.twl-menu-cart__link {
  gap: 0.5rem;
}

.twl-menu-cart__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.35rem;
  min-height: 1.35rem;
  padding: 0 0.36rem;
  border-radius: 999px;
  background: rgba(201, 172, 140, 0.96);
  color: #111;
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1;
}

.twl-nav__list .menu-item-has-children {
  display: flex;
  align-items: center;
}

.twl-submenu-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  width: 2.4rem;
  height: 2.4rem;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--twl-color-paper);
  cursor: pointer;
}

.twl-nav__list .sub-menu {
  position: absolute;
  top: calc(100% + 0.5rem);
  left: 0;
  min-width: 13rem;
  padding: 0.75rem;
  margin: 0;
  list-style: none;
  border: var(--twl-border-subtle);
  border-radius: var(--twl-radius-md);
  background: rgba(17, 17, 17, 0.96);
  box-shadow: var(--twl-shadow-card);
  opacity: 0;
  visibility: hidden;
  transform: translateY(0.4rem);
  transition: opacity 260ms ease, transform 260ms ease, visibility 260ms ease;
}

.twl-nav__list .menu-item:hover > .sub-menu,
.twl-nav__list .menu-item:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.twl-hero {
  position: relative;
  padding: 0;
  overflow: clip;
}

.twl-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0.58)),
    var(--twl-hero-image, none);
  background-size: cover;
  background-position: var(--twl-hero-image-position, center);
  pointer-events: none;
  opacity: 0.55;
}

.twl-hero__title,
.twl-page-title {
  margin: 0 0 var(--twl-space-md);
  font-size: clamp(2.75rem, 8vw, 5.5rem);
  line-height: 0.95;
}

.twl-hero__copy {
  max-width: 36rem;
  color: var(--twl-color-muted);
  font-size: clamp(1.0rem, 4vw, 1.2em);
}

.twl-hero__grid {
  position: relative;
  overflow: hidden;
  align-items: stretch;
  width: 100%;
  max-width: none;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.twl-hero--fullscreen {
  min-height: calc(100vh - 5.5rem);
  display: grid;
  align-items: center;
}

.twl-hero--fullscreen .twl-hero__grid {
  min-height: min(78vh, 56rem);
}

.twl-hero__grid::before {
  display: none;
}

.twl-hero__content {
  position: relative;
  z-index: 5;
  display: grid;
  align-content: start;
  justify-items: center;
  gap: var(--twl-space-md);
  min-height: var(--twl-hero-height, 400px);
  width: 100%;
  margin: 0 auto;
  padding: 6.5rem var(--twl-shell-edge) 7.5rem;
  text-align: center;
}

.home .twl-hero {
  min-height: 100svh;
  padding: 0;
  background: #000;
}

.home .twl-hero::before {
  display: none;
}

.home .twl-hero__grid {
  grid-template-columns: 1fr;
  width: 100%;
  max-width: none;
  min-height: 100svh;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.home .twl-hero__grid::before {
  display: none;
}

.home .twl-hero__content {
  display: none;
  margin-top: -50px !important;
}

.home .twl-hero__title {
  max-width: 12ch;
  margin-inline: auto;
  font-size: clamp(4rem, 8vw, 8rem);
  text-shadow: 0 8px 30px rgba(0, 0, 0, 0.42);
}

.home .twl-hero__copy {
  max-width: 44rem;
}

.twl-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--twl-space-sm);
}

.home .twl-actions {
  justify-content: center;
}

.twl-button--ghost {
  background: transparent;
  color: var(--twl-color-paper);
  box-shadow: inset 0 0 0 1px rgba(255, 253, 248, 0.18);
}

.home .twl-button {
  min-width: 13rem;
  background: rgba(0, 0, 0, 0.88);
  color: var(--twl-color-paper);
}

.home .twl-button:hover,
.home .twl-button:focus-visible {
  background: var(--twl-hover-color, var(--twl-color-gold));
  color: #fff;
}

.twl-hero__highlights {
  position: absolute;
  left: 50%;
  bottom: 50px;
  transform: translateX(-50%);
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.65rem;
  padding: 0;
  margin: 0;
  list-style: none;
  width: min(calc(100% - (var(--twl-shell-edge) * 2)), 52rem);
  z-index: 6;
}

.twl-hero__highlights li {
  padding: 0.55rem 0.9rem;
  border: 1px solid rgba(255, 253, 248, 0.18);
  border-radius: 999px;
  background: rgba(17, 17, 17, 0.22);
  color: var(--twl-color-paper);
  font-size: 0.9rem;
}

.twl-hero__media {
  position: absolute;
  inset: 0;
  display: block;
  overflow: hidden;
  width: 100%;
}

.home .twl-hero__media {
  width: 100%;
  min-height: 100svh;
  left: 0;
  transform: none;
}

.home .twl-hero__media[data-twl-carousel] {
  background: #000;
}

.twl-hero--fade-black .twl-hero__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: #000;
  opacity: 0;
  pointer-events: none;
  transition: opacity 1650ms ease;
  z-index: 1;
}

.twl-hero--fade-black.is-transitioning .twl-hero__media::after {
  opacity: 0.82;
}

.twl-hero__media-overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 3;
}

.twl-hero__stars {
  position: absolute;
  inset: 0;
  z-index: 4;
  pointer-events: none;
}

.twl-hero__glass-edge {
  position: absolute;
  inset: auto 0 0 0;
  height: 2px;
  background:
    linear-gradient(90deg, rgba(255, 253, 248, 0), rgba(255, 255, 255, 0.34) 18%, rgba(255, 255, 255, 0.52) 50%, rgba(255, 255, 255, 0.34) 82%, rgba(255, 253, 248, 0));
  box-shadow:
    0 0 8px rgba(255, 255, 255, 0.2),
    0 1px 14px rgba(255, 255, 255, 0.12);
  pointer-events: none;
  z-index: 4;
}

.twl-hero__glass-edge::before,
.twl-hero__glass-edge::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  pointer-events: none;
}

.twl-hero__glass-edge::before {
  height: 6px;
  transform: translateY(-2px);
  background: inherit;
  opacity: 0.82;
  backdrop-filter: saturate(155%) brightness(1.24) blur(1.35px);
  -webkit-backdrop-filter: saturate(155%) brightness(1.24) blur(1.35px);
  mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 1));
}

.twl-hero__glass-edge::after {
  height: 10px;
  transform: translateY(-6px);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.04) 52%, rgba(255, 255, 255, 0.12));
  opacity: 0.34;
  filter: blur(2px);
}

.twl-hero__star {
  position: absolute;
  display: block;
  color: rgba(240, 200, 75, 0.74);
  font-size: var(--twl-star-size, 18px);
  line-height: 1;
  opacity: 0.35;
  will-change: transform, opacity;
  text-shadow: 0 0 14px rgba(240, 200, 75, 0.28);
  pointer-events: auto;
  transform: translate3d(0, 0, 0);
}

.twl-hero__star--outline {
  color: transparent;
  -webkit-text-stroke: 1px rgba(255, 227, 159, 0.9);
  text-shadow: 0 0 12px rgba(255, 221, 132, 0.22);
}

.twl-hero__star--follow {
  mix-blend-mode: screen;
}

.twl-hero__curtain {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 50%;
  background:
    linear-gradient(90deg, rgba(14, 4, 4, 0.98), rgba(92, 14, 18, 0.92)),
    repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.07) 10px, transparent 10px, transparent 20px);
  box-shadow: inset 0 0 2.5rem rgba(0, 0, 0, 0.55);
  animation: twl-curtain-open 1.9s cubic-bezier(0.16, 0.9, 0.18, 1) forwards;
  z-index: 5;
}

.twl-hero__curtain--left {
  left: 0;
  transform-origin: left center;
}

.twl-hero__curtain--right {
  right: 0;
  transform-origin: right center;
}

.twl-hero-card,
.twl-legacy-slot {
  padding: var(--twl-space-lg);
  border: var(--twl-border-subtle);
  border-radius: var(--twl-radius-md);
  background: rgba(255, 253, 248, 0.06);
  box-shadow: var(--twl-shadow-card);
}

/* Hero slide cards: non-home variants keep image+overlay on the card itself.
   Homepage gets a dedicated fixed gradient and a transform-animated image layer. */
.twl-hero-card {
  display: none;
  position: relative;
  z-index: 2;
  overflow: hidden;
  background-image:
    linear-gradient(180deg, rgba(12, 12, 12, 0.2), rgba(12, 12, 12, 0.72)),
    var(--twl-slide-image, linear-gradient(135deg, rgba(255, 253, 248, 0.06), rgba(255, 253, 248, 0.06)));
  background-size: cover, cover;
  background-position: center center, var(--twl-slide-crop, center center);
  background-repeat: no-repeat, no-repeat;
}

.twl-hero .twl-hero-card {
  min-height: var(--twl-hero-height, 400px);
}

.twl-hero--default .twl-hero__content,
.twl-hero--default .twl-hero-card {
  min-height: var(--twl-hero-height, 400px);
}

.twl-hero--default::before,
.twl-hero--shop::before,
.twl-hero--transactional::before {
  display: none;
}

.twl-hero--shop .twl-hero__content,
.twl-hero--shop .twl-hero-card {
  min-height: var(--twl-hero-height, 200px);
}

.twl-hero--transactional .twl-hero__content,
.twl-hero--transactional .twl-hero-card {
  min-height: var(--twl-hero-height, 300px);
}

.twl-hero--default .twl-hero__content,
.twl-hero--shop .twl-hero__content,
.twl-hero--transactional .twl-hero__content {
  padding-top: 6.5rem;
}

.twl-hero--default .twl-hero__copy,
.twl-hero--shop .twl-hero__copy,
.twl-hero--transactional .twl-hero__copy {
  max-width: 48rem;
  color: rgba(255, 253, 248, 0.92);
  text-shadow: 0 6px 16px rgba(0, 0, 0, 0.72);
}

.twl-hero--default .twl-hero__title,
.twl-hero--shop .twl-hero__title,
.twl-hero--transactional .twl-hero__title {
  color: var(--twl-color-paper);
  text-shadow: 0 8px 24px rgba(0, 0, 0, 0.78);
}

.twl-hero--default .twl-hero-card,
.twl-hero--shop .twl-hero-card,
.twl-hero--transactional .twl-hero-card {
  background: none;
}

.twl-hero--default .twl-hero-card::before,
.twl-hero--shop .twl-hero-card::before,
.twl-hero--transactional .twl-hero-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background-image: linear-gradient(180deg, rgba(12, 12, 12, 0.2), rgba(12, 12, 12, 0.72));
}

.twl-hero--default .twl-hero-card::after,
.twl-hero--shop .twl-hero-card::after,
.twl-hero--transactional .twl-hero-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background-image: var(--twl-slide-image, linear-gradient(135deg, rgba(255, 253, 248, 0.06), rgba(255, 253, 248, 0.06)));
  background-size: cover;
  background-position: var(--twl-slide-crop, center center);
  background-repeat: no-repeat;
  transform: scale(1.08);
  transform-origin: center center;
  will-change: transform;
}

.twl-hero--default .twl-hero-card > *,
.twl-hero--shop .twl-hero-card > *,
.twl-hero--transactional .twl-hero-card > * {
  position: relative;
  z-index: 3;
}

.twl-hero--default .twl-hero-card.is-active,
.twl-hero--shop .twl-hero-card.is-active,
.twl-hero--transactional .twl-hero-card.is-active {
  display: block;
  position: absolute;
  inset: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  opacity: 1;
  animation: twl-hero-banner-in 900ms ease both;
}

.twl-hero--default .twl-hero-card.is-active::after,
.twl-hero--shop .twl-hero-card.is-active::after,
.twl-hero--transactional .twl-hero-card.is-active::after {
  animation: twl-ken-burns-transform 8.8s ease both;
}

/* Homepage hero keeps a fixed frame. Gradient stays fixed on ::before.
   The image moves to ::after so Ken Burns uses transform scale instead of background-size. */
.home .twl-hero-card {
  position: absolute;
  inset: 0;
  display: block;
  padding: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  opacity: 0;
  transition: opacity 1400ms ease;
  z-index: 1;
  background: none;
  will-change: opacity;
  animation: none;
  overflow: hidden;
}

.home .twl-hero-card::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 2;
  background-image: linear-gradient(
    to bottom,
    rgba(12, 12, 12, 0.00) 0%,
    rgba(12, 12, 12, 0.04) 45%,
    rgba(12, 12, 12, 0.26) 100%
  );
}

.home .twl-hero-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background-image: var(--twl-slide-image, linear-gradient(135deg, rgba(255, 253, 248, 0.06), rgba(255, 253, 248, 0.06)));
  background-size: cover;
  background-position: var(--twl-slide-crop, center center);
  background-repeat: no-repeat;
  transform-origin: center center;
  will-change: transform;
}

.home .twl-hero-card > * {
  position: relative;
  z-index: 5;
}

.twl-hero-card.is-active {
  display: grid;
  animation: twl-fade-up 0.55s ease;
}

.home .twl-hero-card.is-active,
.home .twl-hero-card.is-leaving {
  display: block;
  animation: none;
}

.home .twl-hero-card.is-active::after,
.home .twl-hero-card.is-leaving::after {
  animation: twl-ken-burns-transform 8.8s ease both;
}

.home .twl-hero-card.is-active {
  opacity: 1;
}

.home .twl-hero-card.is-leaving {
  opacity: 0;
}

.twl-hero-card h2 {
  margin: 0 0 0.75rem;
  font-size: clamp(1.6rem, 3vw, 2.4rem);
}

.twl-hero-card p {
  color: var(--twl-color-muted);
}

.twl-hero-card .twl-text-link {
  margin-top: auto;
}

.home .twl-hero-card__content {
  position: absolute;
  inset: 50% 0 auto 0;
  z-index: 5;
  display: grid;
  justify-items: center;
  text-align: center;
  gap: 1rem;
  max-width: min(100%, 61rem);
  margin: 0 auto;
  padding: 0 1.25rem;
  transform: translateY(-72%);
}

.home .twl-hero-card__content::after,
.home .twl-hero__global-actions::after {
  content: none;
}

.home .twl-hero-card .twl-eyebrow,
.home .twl-hero-card h2,
.home .twl-hero-card p,
.home .twl-hero-card .twl-actions {
  opacity: 0;
  transition: opacity 760ms ease;
}

.home .twl-hero-card.is-text-visible .twl-eyebrow,
.home .twl-hero-card.is-text-visible h2,
.home .twl-hero-card.is-text-visible p,
.home .twl-hero-card.is-text-visible .twl-actions {
  opacity: 1;
}

.home .twl-hero-card .twl-eyebrow {
  color: rgba(240, 200, 75, 0.68);
  font-size: 0.92rem;
}

.home .twl-hero-card h2 {
  max-width: 10ch;
  margin-inline: auto;
  font-size: clamp(2.95rem, 6vw, 5.35rem);
  line-height: 0.93;
  text-shadow: 0 8px 26px rgba(0, 0, 0, 0.8), 0 2px 10px rgba(0, 0, 0, 0.7);
}

.home .twl-hero-card p {
  max-width: 46rem;
  margin: 0;
  color: rgba(255, 253, 248, 0.95);
  font-size: clamp(1.15rem, 2.05vw, 1.72rem);
  line-height: 1.16;
  text-shadow: 0 6px 16px rgba(0, 0, 0, 0.75);
}

.home .twl-hero-card .twl-actions {
  flex-wrap: nowrap;
  gap: 1rem;
}

.home .twl-hero__global-actions {
  position: absolute;
  inset: 50% 0 auto 0;
  z-index: 6;
  display: grid;
  justify-items: center;
  padding: 0 1.25rem;
  transform: translateY(9.75rem);
}

.home .twl-hero__global-actions .twl-actions {
  flex-wrap: nowrap;
  gap: 1rem;
}

.twl-home-intro {
  position: fixed;
  inset: 0;
  z-index: 120;
  display: grid;
  place-items: center;
  background: #000;
  pointer-events: none;
  overflow: hidden;
}

.twl-home-intro__spinner {
  --twl-spinner-size: 15rem;
  position: relative;
  z-index: 3;
  width: var(--twl-spinner-size);
  height: var(--twl-spinner-size);
  box-shadow:
    0 0 0 1px rgb(var(--twl-accent-rgb) / 0.2),
    0 0 32px rgb(var(--twl-accent-rgb) / 0.3);
}

.twl-home-intro__burst {
  position: fixed;
  inset: -60vmax;
  opacity: 0;
  z-index: 2;
  pointer-events: none;
  background:
    radial-gradient(circle at center, transparent 0 24%, rgba(0, 0, 0, 0.16) 38%, transparent 64%),
    conic-gradient(
      from 180deg,
      rgba(229, 57, 53, 0.00) 0deg,
      rgba(229, 57, 53, 0.34) 22deg,
      rgba(251, 140, 0, 0.14) 48deg,
      rgba(251, 140, 0, 0.00) 70deg,
      rgba(253, 216, 53, 0.00) 72deg,
      rgba(253, 216, 53, 0.34) 94deg,
      rgba(67, 160, 71, 0.14) 118deg,
      rgba(67, 160, 71, 0.00) 140deg,
      rgba(67, 160, 71, 0.00) 142deg,
      rgba(67, 160, 71, 0.34) 164deg,
      rgba(30, 136, 229, 0.14) 188deg,
      rgba(30, 136, 229, 0.00) 210deg,
      rgba(30, 136, 229, 0.00) 212deg,
      rgba(142, 36, 170, 0.34) 234deg,
      rgba(142, 36, 170, 0.14) 258deg,
      rgba(142, 36, 170, 0.00) 280deg,
      rgba(229, 57, 53, 0.00) 282deg,
      rgba(229, 57, 53, 0.34) 304deg,
      rgba(251, 140, 0, 0.14) 328deg,
      rgba(229, 57, 53, 0.00) 360deg
    );
  clip-path: circle(0 at 50% 50%);
  filter: saturate(1.15) blur(22px);
  mix-blend-mode: screen;
}

.twl-hero.is-home-intro-revealing .twl-home-intro {
  animation: twl-home-intro-overlay-out 1.2s ease forwards;
}

.twl-hero.is-home-intro-revealing .twl-home-intro__spinner {
  animation: twl-home-intro-spinner-out 1.2s cubic-bezier(.2,.82,.22,1) forwards;
}

.twl-hero.is-home-intro-revealing .twl-home-intro__burst {
  animation: twl-home-intro-burst 1.35s cubic-bezier(.12,.78,.16,1) forwards;
}

.twl-hero.is-home-intro-done .twl-home-intro {
  display: none;
}

.home .twl-button {
  min-width: 13.25rem;
  width: 13.25rem;
  gap: 0.45rem;
  white-space: nowrap;
  color: #fff;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  background: rgba(0, 0, 0, 0.84);
  border: 1px solid color-mix(in srgb, var(--twl-hover-color, var(--twl-color-gold)) 70%, rgba(255, 255, 255, 0.18));
  transition: background-color 260ms ease, color 260ms ease, transform 260ms ease, box-shadow 260ms ease;
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--twl-hover-color, var(--twl-color-gold)) 52%, rgba(255, 255, 255, 0.12)),
    0 8px 24px color-mix(in srgb, var(--twl-hover-color, rgba(0, 0, 0, 0.24)) 34%, rgba(0, 0, 0, 0.26));
}

.home .twl-button:hover,
.home .twl-button:focus-visible {
  background: color-mix(in srgb, var(--twl-hover-color, var(--twl-color-gold)) 34%, rgba(0, 0, 0, 0.84));
  color: #fff;
  border-color: color-mix(in srgb, var(--twl-hover-color, var(--twl-color-gold)) 86%, #fff);
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--twl-hover-color, var(--twl-color-gold)) 86%, #fff),
    0 0 18px color-mix(in srgb, var(--twl-hover-color, var(--twl-color-gold)) 32%, rgba(255, 255, 255, 0.16)),
    0 14px 34px color-mix(in srgb, var(--twl-hover-color, var(--twl-color-gold)) 36%, rgba(0, 0, 0, 0.28));
}

.twl-button__icon {
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1rem;
  height: 1rem;
}

.twl-button__icon svg {
  display: block;
  width: 1rem;
  height: 1rem;
  fill: currentColor;
}

.twl-footer {
  border-top: var(--twl-border-subtle);
  padding: 1.35rem 0;
  background: rgba(1, 1, 0, 0.72);
  margin-top: auto;
}

.twl-footer__menu {
  flex-wrap: nowrap;
  gap: clamp(0.5rem, 1.6vw, 1rem);
  justify-content: flex-start;
}

.twl-nav__list a,
.twl-footer__menu a {
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.twl-footer__menu a {
  font-size: clamp(0.72rem, 1vw, 0.92rem);
  white-space: nowrap;
}

.special-title {
  margin: 0 0 var(--twl-space-lg);
  padding-top: 20px;
  text-align: center;
  font-size: clamp(2rem, 4.5vw, 3.5rem);
}

.special-title::after {
  content: "";
  display: block;
  width: min(200px, 100%);
  height: 2px;
  margin-top: 1rem;
  margin-inline: auto;
  background: linear-gradient(90deg, rgba(201, 172, 140, 0), rgba(201, 172, 140, 0.92) 18%, rgba(201, 172, 140, 0.92) 82%, rgba(201, 172, 140, 0));
}

@keyframes twl-curtain-open {
  0% {
    transform: translateX(0);
    opacity: 1;
  }

  100% {
    transform: translateX(calc(var(--twl-curtain-shift, 102%) * (var(--twl-curtain-direction, 1))));
    opacity: 0;
  }
}

.twl-hero__curtain--left {
  --twl-curtain-direction: -1;
}

.twl-hero__curtain--right {
  --twl-curtain-direction: 1;
}

/* Non-home hero variants may continue using background-size Ken Burns on the card.
   Homepage now uses transform-based zoom on ::after for consistent framing below ~1237px. */
@keyframes twl-ken-burns {
  0% {
    background-size: 108%, 108%;
    background-position: center center, var(--twl-slide-crop, center center);
  }

  100% {
    background-size: 116%, 116%;
    background-position: center center, var(--twl-slide-crop, center center);
  }
}

@keyframes twl-ken-burns-transform {
  0% {
    transform: scale(1.08);
  }

  100% {
    transform: scale(1.16);
  }
}

@keyframes twl-fade-up {
  from {
    opacity: 0;
    transform: translateY(0.75rem);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes twl-hero-banner-in {
  from {
    opacity: 0;
    transform: none;
  }

  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes twl-home-intro-spin {
  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(720deg);
  }
}

@keyframes twl-home-intro-spinner-out {
  0% {
    opacity: 1;
    transform: scale(1);
  }

  100% {
    opacity: 0;
    transform: scale(0.3);
  }
}

@keyframes twl-home-intro-overlay-out {
  0% {
    opacity: 1;
  }

  100% {
    opacity: 0;
  }
}

@keyframes twl-home-intro-burst {
  0% {
    opacity: 0;
    clip-path: circle(0 at 50% 50%);
    filter: saturate(1.15) blur(24px);
  }

  12% {
    opacity: 0.95;
  }

  70% {
    opacity: 0.68;
    clip-path: circle(95vmax at 50% 50%);
    filter: saturate(1.2) blur(10px);
  }

  100% {
    opacity: 0;
    clip-path: circle(140vmax at 50% 50%);
    filter: saturate(1.2) blur(0);
  }
}

@media (max-width: 960px) {
  .twl-hero::before {
    background-size: cover;
    background-position: var(--twl-hero-image-position, center center);
  }

  .twl-hero-card {
    background-image:
      linear-gradient(180deg, rgba(12, 12, 12, 0.2), rgba(12, 12, 12, 0.72)),
      var(--twl-slide-image-mobile, var(--twl-slide-image, linear-gradient(135deg, rgba(255, 253, 248, 0.06), rgba(255, 253, 248, 0.06))));
    background-size: cover, cover;
    background-position: center center, var(--twl-slide-crop, center center);
    background-repeat: no-repeat, no-repeat;
  }

  .home .twl-hero-card::after {
    background-image: var(--twl-slide-image-mobile, var(--twl-slide-image, linear-gradient(135deg, rgba(255, 253, 248, 0.06), rgba(255, 253, 248, 0.06))));
    background-size: cover;
    background-position: var(--twl-slide-crop, center center);
    background-repeat: no-repeat;
  }

  .home .twl-hero__grid {
    min-height: 100svh;
    padding: 0;
  }

  .home .twl-hero-card__content {
    inset: 50% 0 auto 0;
    transform: translateY(-82%);
  }

  .home .twl-hero-card h2 {
    font-size: clamp(2.35rem, 12vw, 3.8rem);
  }

  .home .twl-hero-card p {
    font-size: 0.98rem;
    max-width: 22rem;
  }

  .home .twl-hero-card .twl-actions {
    flex-wrap: wrap;
    justify-content: center;
  }

  .home .twl-hero__global-actions {
    inset: 50% 0 auto 0;
    transform: translateY(8.4rem);
  }

  .home .twl-hero__global-actions .twl-actions {
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.7rem;
  }

  .home .twl-button {
    min-width: min(100%, 13.25rem);
    width: 13.25rem;
    min-height: 2.9rem;
    padding: 0.72rem 1rem;
    font-size: 0.78rem;
    letter-spacing: 0.06em;
  }

  .twl-nav-toggle {
    display: inline-flex;
    justify-self: end;
    align-self: center;
  }

  .twl-nav {
    display: none;
    width: 100%;
    justify-self: stretch;
    position: absolute;
    top: calc(100% + 0.4rem);
    right: 1rem;
    left: 1rem;
  }

  .twl-nav.is-open {
    display: block;
  }

  .twl-nav__list {
    flex-direction: column;
    gap: 0;
    padding: 0.75rem 0;
    border: 1px solid rgba(255, 253, 248, 0.16);
    border-radius: 1rem;
    background: rgba(9, 9, 9, 0.96);
    box-shadow: 0 22px 50px rgba(0, 0, 0, 0.34);
  }

  .twl-nav__list > .menu-item > a {
    width: 100%;
    justify-content: space-between;
    padding: 0.75rem 1.1rem;
    border-radius: 0;
  }

  .twl-nav__list .menu-item-has-children {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: start;
  }

  .twl-submenu-toggle {
    display: inline-flex;
    margin-top: 0.25rem;
  }

  .twl-nav__list .sub-menu {
    position: static;
    display: none;
    opacity: 1;
    visibility: visible;
    transform: none;
    min-width: 0;
    margin-top: 0;
    padding: 0 0 0.45rem 1.1rem;
    grid-column: 1 / -1;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
  }

  .twl-nav__list .menu-item.is-open > .sub-menu {
    display: grid;
  }

  .twl-header .twl-shell {
    padding-top: 0.45rem;
    padding-bottom: 0.45rem;
  }

  .twl-branding__logo {
    max-height: 3.1rem;
  }

  .twl-footer__menu {
    flex-wrap: wrap;
    row-gap: 0.12rem;
    column-gap: 0.55rem;
    justify-content: flex-start;
    font-size: 0.78rem;
    max-width: 100%;
  }

  .twl-footer__menu a {
    min-height: 1.7rem;
    padding-block: 0.06rem;
  }

  .twl-footer__logo {
    max-width: min(6.5rem, 24vw);
    max-height: 2rem;
  }

  .twl-hero__content {
    min-height: clamp(220px, 58vw, var(--twl-hero-height, 320px));
    padding: 3.2rem 1rem 2.2rem;
  }

  .twl-hero--default .twl-hero__content,
  .twl-hero--shop .twl-hero__content,
  .twl-hero--transactional .twl-hero__content {
    padding-top: 5.2rem;
    padding-bottom: 6.5rem;
  }

  .twl-hero--default .twl-hero__content,
  .twl-hero--shop .twl-hero__content,
  .twl-hero--transactional .twl-hero__content {
    min-height: clamp(220px, 58vw, var(--twl-hero-height, 320px));
  }

  .twl-hero__highlights {
    bottom: 1.6rem;
    width: min(calc(100% - 2rem), 42rem);
  }
}

/* Wave 3 run-9 stabilization: keep hero media full-width without ghost overflow,
   bring secondary sliders back in line with the home-slider feel, and expose a
   reusable site spinner that can also skin legacy plugin loading states. */

.home .twl-hero__grid {
  width: 100%;
}

.home .twl-hero__media {
  width: 100%;
  left: 0;
  transform: none;
}

.twl-hero--default .twl-hero__copy,
.twl-hero--shop .twl-hero__copy,
.twl-hero--transactional .twl-hero__copy {
  max-width: min(100%, 48rem);
  line-height: 1.22;
  text-shadow: 0 4px 12px rgba(0, 0, 0, 0.68);
}

.twl-hero--default .twl-hero__title,
.twl-hero--shop .twl-hero__title,
.twl-hero--transactional .twl-hero__title {
  max-width: min(100%, 16ch);
  margin-inline: auto;
  font-size: clamp(1.95rem, 4vw, 3.4rem);
  line-height: 0.96;
  letter-spacing: -0.05em;
  text-shadow: 0 7px 22px rgba(0, 0, 0, 0.76), 0 2px 9px rgba(0, 0, 0, 0.62);
}

.twl-hero--default .twl-hero__title,
.twl-hero--transactional .twl-hero__title {
  max-width: min(100%, 18ch);
}

.twl-hero--default .twl-hero__copy,
.twl-hero--transactional .twl-hero__copy {
  max-width: min(100%, 52rem);
}

.twl-hero--transactional {
  min-height: var(--twl-hero-height, 300px);
}

.twl-hero--shop {
  min-height: var(--twl-hero-height, 200px);
}

.twl-hero--shop .twl-hero__grid,
.twl-hero--shop .twl-hero__media,
.twl-hero--shop .twl-hero-card.is-active,
.twl-hero--transactional .twl-hero__grid,
.twl-hero--transactional .twl-hero__media,
.twl-hero--transactional .twl-hero-card.is-active {
  min-height: var(--twl-hero-height, 200px);
  height: var(--twl-hero-height, 200px);
}

.twl-hero--shop .twl-hero__content,
.twl-hero--shop .twl-hero-card,
.twl-hero--transactional .twl-hero__content,
.twl-hero--transactional .twl-hero-card {
  box-sizing: border-box;
  min-height: var(--twl-hero-height, 200px);
  height: var(--twl-hero-height, 200px);
  padding-top: clamp(0.75rem, calc(var(--twl-hero-height, 200px) * 0.18), 6.5rem);
  padding-bottom: clamp(0.75rem, calc(var(--twl-hero-height, 200px) * 0.2), 7.5rem);
  overflow: hidden;
}

.twl-hero--transactional .twl-hero__grid,
.twl-hero--transactional .twl-hero__media,
.twl-hero--transactional .twl-hero-card.is-active {
  min-height: var(--twl-hero-height, 300px);
  height: var(--twl-hero-height, 300px);
}

.twl-hero--transactional .twl-hero__content,
.twl-hero--transactional .twl-hero-card {
  min-height: var(--twl-hero-height, 300px);
  height: var(--twl-hero-height, 300px);
  padding-top: clamp(0.75rem, calc(var(--twl-hero-height, 300px) * 0.18), 6.5rem);
  padding-bottom: clamp(0.75rem, calc(var(--twl-hero-height, 300px) * 0.2), 7.5rem);
}

.page-id-9 .twl-hero--default .twl-hero__title,
.page-id-9 .twl-hero--default .twl-hero__copy {
  max-width: min(100%, 22ch);
}

.twl-site-spinner,
.twl-resources-spinner,
.twlcm-video-upload-spinner-ring {
  --twl-spinner-size: 150px;
  --twl-spinner-logo-size: 100%;
  --twl-spinner-pulse-size: 105%;
  --twl-spinner-shell: rgba(8, 10, 18, 0.96);
  --twl-spinner-shell-soft: rgba(8, 10, 18, 0.74);
  --twl-spinner-edge-reveal: rgba(255, 255, 255, 0.16);
  position: relative;
  display: block;
  width: var(--twl-spinner-size);
  height: var(--twl-spinner-size);
  border: 0 !important;
  border-radius: 50%;
  overflow: visible;
  isolation: isolate;
  z-index: 0;
  background:
    radial-gradient(
      circle,
      var(--twl-spinner-shell) 0 54%,
      rgba(12, 14, 24, 0.92) 60%,
      var(--twl-spinner-shell-soft) 68%,
      transparent 78%
    );
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.05),
    inset 0 0 34px rgba(0, 0, 0, 0.42);
}

/* Rainbow pulse layer sits below the logo */
.twl-site-spinner::before,
.twl-resources-spinner::before,
.twlcm-video-upload-spinner-ring::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: var(--twl-spinner-pulse-size);
  height: var(--twl-spinner-pulse-size);
  transform: translate(-50%, -50%);
  border-radius: 50%;
  z-index: 0;
  opacity: 0.98;
  background:
    radial-gradient(circle, rgba(0, 0, 0, 0) 0 50%, rgba(0, 0, 0, 0.18) 57%, rgba(0, 0, 0, 0) 69%),
    conic-gradient(
      from 180deg,
      #e53935 0deg,
      #fb8c00 60deg,
      #fdd835 120deg,
      #43a047 180deg,
      #1e88e5 240deg,
      #8e24aa 300deg,
      #e53935 360deg
    );
  filter: blur(7px) saturate(1.15) brightness(1.16);
  animation: twl-site-spinner-pulse 2s ease-in-out infinite;
}

/* Logo layer stays on top, with a subtle edge reveal so the color can peek through the outer rim */
.twl-site-spinner::after,
.twl-resources-spinner::after,
.twlcm-video-upload-spinner-ring::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  pointer-events: none;
  z-index: 2;
  background:
    radial-gradient(
      circle,
      rgba(8, 10, 18, 0) 0 56%,
      var(--twl-spinner-edge-reveal) 61%,
      rgba(8, 10, 18, 0.08) 65%,
      rgba(8, 10, 18, 0) 71%
    ),
    var(--twl-spinner-logo),
    radial-gradient(
      circle,
      rgba(8, 10, 18, 0.04) 0 52%,
      rgba(8, 10, 18, 0.90) 60%,
      rgba(8, 10, 18, 0.68) 68%,
      transparent 77%
    );
  background-position: center, center, center;
  background-repeat: no-repeat, no-repeat, no-repeat;
  background-size: 100% 100%, var(--twl-spinner-logo-size) var(--twl-spinner-logo-size), 100% 100%;
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.04),
    inset 0 10px 18px rgba(255, 255, 255, 0.04),
    inset 0 -18px 24px rgba(0, 0, 0, 0.38);
}

@keyframes twl-site-spinner-pulse {
  0%, 100% {
    transform: translate(-50%, -50%) scale(1);
    opacity: 0.9;
    filter: blur(7px) saturate(1.05) brightness(1.04);
  }

  50% {
    transform: translate(-50%, -50%) scale(1.045);
    opacity: 1;
    filter: blur(9px) saturate(1.28) brightness(1.26);
  }
}

@keyframes twl-site-spinner-sparkle {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(.6) translateY(0);
  }
  45% {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1.15) translateY(-2px);
  }
  100% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(.7) translateY(0);
  }
}

@media (max-width: 960px) {
  .twl-hero--default .twl-hero__title,
  .twl-hero--shop .twl-hero__title,
  .twl-hero--transactional .twl-hero__title {
    max-width: 13ch;
    font-size: clamp(1.78rem, 7vw, 2.7rem);
  }

  .twl-hero--default .twl-hero__copy,
  .twl-hero--shop .twl-hero__copy,
  .twl-hero--transactional .twl-hero__copy {
    max-width: 28rem;
    font-size: clamp(1.25rem, 3.5vw, 1.25rem);
  }
}


/* ===== utilities.css ===== */
.twl-text-link {
  color: var(--twl-color-gold);
  font-weight: 600;
  text-decoration: none;
}

.twl-pattern {
  padding: var(--twl-space-xl);
  border-radius: var(--twl-radius-md);
}

.twl-pattern--hero {
  background: linear-gradient(135deg, rgba(201, 172, 140, 0.26), rgba(32, 52, 47, 0.7));
}


/* ===== woocommerce.css ===== */
/* Theatreworks Live WooCommerce refresh
   - aligns archives/cards with TWL class/camp/show styling
   - improves cart, checkout, login, and My Account views
   - keeps product imagery at the top of each card
*/

.twl-main--commerce {
  --twl-commerce-bg: rgba(0, 0, 0, 0.86);
  --twl-commerce-bg-soft: rgba(255, 253, 248, 0.04);
  --twl-commerce-bg-strong: rgba(255, 253, 248, 0.08);
  --twl-commerce-bg-elevated: rgba(17, 17, 17, 0.94);
  --twl-commerce-border: var(--twl-border-subtle, 1px solid rgba(255, 255, 255, 0.15));
  --twl-commerce-border-strong: 1px solid rgba(201, 172, 140, 0.45);
  --twl-commerce-text: rgba(255, 255, 255, 1);
  --twl-commerce-muted: rgba(255, 255, 255, 0.72);
  --twl-commerce-muted-strong: rgba(255, 255, 255, 0.88);
  --twl-commerce-accent: rgba(201, 172, 140, 1);
  --twl-commerce-accent-hover: rgb(181, 152, 120);
  --twl-commerce-accent-soft: rgba(201, 172, 140, 0.16);
  --twl-commerce-shadow: 0 24px 48px rgba(0, 0, 0, 0.35);
  --twl-commerce-radius: var(--twl-radius-lg, 1.4rem);
  --twl-commerce-radius-sm: var(--twl-radius-md, 0.95rem);
  --twl-commerce-pill: var(--twl-radius-pill, 999px);
  --twl-commerce-gap: var(--twl-space-lg, 1.5rem);
  --twl-commerce-gap-lg: var(--twl-space-xl, 2rem);
  --twl-commerce-pad: var(--twl-content-inline-pad, clamp(1rem, 2vw + 0.5rem, 4.3125rem));
}

.twl-main--commerce,
.twl-main--commerce .woocommerce,
.twl-main--commerce .woocommerce-page {
  color: var(--twl-commerce-text);
}

.twl-main--commerce a,
.woocommerce a,
.woocommerce-page a {
  color: rgba(204, 204, 204, 1);
}

.twl-main--commerce a:hover,
.woocommerce a:hover,
.woocommerce-page a:hover {
  color: var(--twl-commerce-accent);
}

.woocommerce .button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce .button.alt,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button.button.alt.wc-forward,
.woocommerce-checkout #payment #place_order,
.woocommerce-checkout #payment button.alt.ppcp-dcc-order-button.wp-element-button,
.woocommerce .return-to-shop .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--twl-commerce-pill);
  border: 1px solid var(--twl-commerce-accent);
  background: rgba(0, 0, 0, 0.78);
  color: #fff;
  box-shadow:
    0 0 0 1px rgba(201, 172, 140, 0.42),
    0 0 18px rgba(201, 172, 140, 0.18),
    0 14px 30px rgba(0, 0, 0, 0.28);
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1.1;
  min-height: 2.875rem;
  padding: 0.8rem 1.3rem;
  text-align: center;
  text-wrap: balance;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.woocommerce .button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce .button.alt:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce #respond input#submit:hover,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button.button.alt.wc-forward:hover,
.woocommerce-checkout #payment #place_order:hover,
.woocommerce-checkout #payment button.alt.ppcp-dcc-order-button.wp-element-button:hover,
.woocommerce .return-to-shop .button:hover {
  background: rgb(var(--twl-accent-rgb) / 0.18);
  border-color: var(--twl-commerce-accent);
  color: #fff;
  transform: translateY(-1px);
  box-shadow:
    0 0 0 1px rgba(201, 172, 140, 0.55),
    0 0 24px rgba(201, 172, 140, 0.26),
    0 18px 34px rgba(0, 0, 0, 0.34);
}

.woocommerce .button.alt,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt {
  background: rgba(0, 0, 0, 0.78);
  color: #fff;
}

.woocommerce .button:focus-visible,
.woocommerce a.button:focus-visible,
.woocommerce button.button:focus-visible,
.woocommerce input.button:focus-visible,
.woocommerce .button.alt:focus-visible,
.woocommerce a.button.alt:focus-visible,
.woocommerce button.button.alt:focus-visible,
.woocommerce input.button.alt:focus-visible,
.woocommerce a:focus-visible,
.woocommerce button:focus-visible,
.woocommerce input:focus-visible,
.woocommerce select:focus-visible,
.woocommerce textarea:focus-visible {
  outline: none;
  box-shadow:
    0 0 0 2px rgba(201, 172, 140, 0.72),
    0 0 24px rgba(201, 172, 140, 0.24);
}

.twl-main--commerce > .woocommerce-notices-wrapper,
.twl-main--commerce > .woocommerce,
.twl-main--commerce > .woocommerce-page {
  padding-inline: var(--twl-commerce-pad);
  box-sizing: border-box;
}

.twl-main--commerce > .woocommerce-breadcrumb,
.twl-main--commerce > .woocommerce-result-count,
.twl-main--commerce > .woocommerce-ordering,
.woocommerce .woocommerce-breadcrumb,
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering,
.woocommerce-page .woocommerce-result-count,
.woocommerce-page .woocommerce-ordering {
  display: none !important;
}

.twl-main--commerce > .woocommerce-products-header {
  display: none !important;
}

.twl-main--commerce > .woocommerce-products-header .page-title,
.twl-main--commerce > .woocommerce-products-header h1,
.woocommerce-products-header .page-title,
.woocommerce-products-header h1 {
  margin: 0;
  color: rgba(255, 255, 255, 1);
  font-family: "Playfair Display", serif;
  font-weight: 400;
  font-size: clamp(2.55rem, 5vw, 4.125rem);
  letter-spacing: -0.05em;
  line-height: 0.98;
  text-transform: none;
}

.twl-main--commerce > .woocommerce-products-header .page-title::before,
.twl-main--commerce > .woocommerce-products-header h1::before,
.woocommerce-products-header .page-title::before,
.woocommerce-products-header h1::before {
  content: "";
  display: block;
  width: 4.25rem;
  margin: 0 0 0.9rem;
  border-top: 2px solid var(--twl-commerce-accent);
}

.woocommerce a.added_to_cart {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  padding: 0.75rem 0 0;
  font-weight: 700;
  text-align: center;
}

.woocommerce-error,
.woocommerce-info,
.woocommerce-message {
  padding: 1rem 1rem 1rem 3.25rem;
  margin: 0 0 1.5rem;
  position: relative;
  background-color: rgba(33, 33, 33, 0.96);
  color: var(--twl-commerce-accent);
  border-top: 3px solid var(--twl-commerce-accent);
  border-radius: var(--twl-commerce-radius-sm);
  list-style: none;
  width: auto;
  word-wrap: break-word;
}

.woocommerce form .form-row label,
.woocommerce-page form .form-row label {
  color: var(--twl-commerce-muted-strong);
  font-weight: 500;
  margin-bottom: 0.45rem;
}

.woocommerce form .form-row,
.woocommerce-page form .form-row,
.woocommerce #customer_login .u-column1,
.woocommerce #customer_login .u-column2,
.woocommerce-account .woocommerce-MyAccount-content > *,
.woocommerce-cart .cart-collaterals,
.woocommerce-cart-form {
  min-width: 0;
}

.woocommerce input[type="text"],
.woocommerce input[type="search"],
.woocommerce input[type="password"],
.woocommerce input[type="email"],
.woocommerce input[type="number"],
.woocommerce input[type="url"],
.woocommerce input[type="date"],
.woocommerce input[type="tel"],
.woocommerce select,
.woocommerce textarea,
.woocommerce .select2-container--default .select2-selection--single,
.select2-dropdown {
  border-radius: var(--twl-commerce-radius-sm);
  border: var(--twl-form-border);
  background-color: var(--twl-form-surface);
  color: var(--twl-commerce-text);
}

.select2-container--default .select2-selection--single {
  min-height: 46px;
  display: flex;
  align-items: center;
  padding-inline: 0.35rem;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
  color: var(--twl-commerce-text);
  line-height: 1.3;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 44px;
}

input[type="text"]:focus,
input[type="search"]:focus,
input[type="password"]:focus,
input[type="email"]:focus,
input[type="number"]:focus,
input[type="url"]:focus,
input[type="date"]:focus,
input[type="tel"]:focus,
select:focus,
textarea:focus,
.form-control:focus,
.woocommerce .select2-container--default.select2-container--open .select2-selection--single,
.woocommerce .select2-container--default.select2-container--focus .select2-selection--single {
  background-color: var(--twl-form-surface-focus);
  border-color: rgb(var(--twl-accent-rgb) / 0.85);
}

.woocommerce select,
.woocommerce-page select {
  transition: border-color 0.18s ease, box-shadow 0.18s ease, outline-color 0.18s ease;
}

.woocommerce select:focus,
.woocommerce-page select:focus {
  background-color: var(--twl-form-surface);
}

.woocommerce form.login,
.woocommerce form.register,
.woocommerce form.checkout_coupon,
.woocommerce form.lost_reset_password,
.woocommerce .login,
.woocommerce .register,
.woocommerce form.track_order,
.woocommerce .woocommerce-form-login,
.woocommerce .woocommerce-form-register {
  padding: clamp(1rem, 2vw, 2rem);
  border: var(--twl-commerce-border);
  border-radius: var(--twl-commerce-radius);
  background: linear-gradient(180deg, rgba(255, 253, 248, 0.08), rgba(255, 253, 248, 0.04));
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow: var(--twl-commerce-shadow);
}

.woocommerce-account .woocommerce form.lost_reset_password,
.woocommerce-account .woocommerce-page form.lost_reset_password {
  width: fit-content;
  max-width: min(100%, 34rem);
  margin-left: auto;
  margin-right: auto;
}

.woocommerce ul.products,
.woocommerce-page ul.products {
  --twl-commerce-archive-min: 14.5rem;
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--twl-commerce-archive-min)), 1fr));
  gap: clamp(0.9rem, 1.7vw, 1.35rem);
  margin: 0;
  padding: 0;
  width: 100%;
  align-items: stretch;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after {
  display: none;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  float: none;
  width: 100%;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  overflow: hidden;
  padding: 0;
  border: var(--twl-commerce-border);
  border-radius: var(--twl-commerce-radius);
  background: linear-gradient(180deg, rgba(255, 253, 248, 0.06), rgba(255, 253, 248, 0.03));
  box-shadow: var(--twl-commerce-shadow);
  transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.woocommerce ul.products li.product:hover,
.woocommerce-page ul.products li.product:hover {
  transform: translateY(-4px);
  border-color: rgba(201, 172, 140, 0.42);
  box-shadow: 0 28px 54px rgba(0, 0, 0, 0.42);
}

.woocommerce ul.products li.product .woocommerce-LoopProduct-link,
.woocommerce-page ul.products li.product .woocommerce-LoopProduct-link {
  display: flex;
  flex-direction: column;
  height: 100%;
  color: inherit;
  text-decoration: none;
}

.woocommerce ul.products li.product a img,
.woocommerce-page ul.products li.product a img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  margin: 0;
  border: 0;
  border-bottom: 1px solid rgba(201, 172, 140, 0.28);
  background: rgba(255, 255, 255, 0.03);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product .woocommerce-loop-product__title {
  padding: 1.15rem 1.15rem 0;
  color: rgba(255, 255, 255, 1);
  font-size: 1.25rem;
  line-height: 1.25;
}

.woocommerce ul.products li.product .price,
.woocommerce-page ul.products li.product .price {
  display: block;
  padding: 0.6rem 1.15rem 0;
  color: var(--twl-commerce-accent);
  font-size: 1.05rem;
  font-weight: 600;
}

.woocommerce ul.products li.product .star-rating,
.woocommerce-page ul.products li.product .star-rating {
  margin: 0.85rem 1.15rem 0;
}

.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart,
.woocommerce-page ul.products li.product .button,
.woocommerce-page ul.products li.product .added_to_cart {
  margin: 1rem 1.15rem 1.15rem;
  width: calc(100% - 2.3rem);
  text-align: center;
}

.woocommerce span.onsale {
  min-height: auto;
  min-width: auto;
  padding: 0.45rem 0.8rem;
  border-radius: var(--twl-commerce-pill);
  background: var(--twl-commerce-accent);
  color: #000;
  line-height: 1.2;
  font-weight: 700;
  font-size: 0.8rem;
  top: 0.9rem;
  left: 0.9rem;
}

.woocommerce nav.woocommerce-pagination {
  margin: clamp(1.5rem, 3vw, 2.5rem) 0 0;
  text-align: center;
}

.woocommerce nav.woocommerce-pagination ul {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.55rem;
  margin: 0;
  padding: 0.55rem;
  border: 0;
  border-radius: var(--twl-commerce-pill);
  background: rgba(255, 253, 248, 0.06);
  box-shadow: var(--twl-commerce-shadow);
}

.woocommerce nav.woocommerce-pagination ul li {
  border: 0;
  float: none;
  margin: 0;
}

.woocommerce nav.woocommerce-pagination ul li .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.75rem;
  min-height: 2.75rem;
  padding: 0.6rem 0.9rem;
  border-radius: var(--twl-commerce-pill);
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(0, 0, 0, 0.45);
  color: var(--twl-commerce-text);
  font-weight: 600;
  text-decoration: none;
}

.woocommerce nav.woocommerce-pagination ul li .page-numbers:hover,
.woocommerce nav.woocommerce-pagination ul li .page-numbers:focus-visible {
  border-color: var(--twl-commerce-accent);
  color: var(--twl-commerce-accent);
}

.woocommerce nav.woocommerce-pagination ul li .page-numbers.current {
  border-color: var(--twl-commerce-accent);
  background: var(--twl-commerce-accent);
  color: #000;
}

.woocommerce nav.woocommerce-pagination ul li .prev,
.woocommerce nav.woocommerce-pagination ul li .next {
  min-width: 4.25rem;
}

.woocommerce div.product {
  display: grid;
  gap: var(--twl-commerce-gap-lg);
}

@media (min-width: 992px) {
  .woocommerce div.product:not(.twl-product-shell--override) {
    grid-template-columns: minmax(0, 1.05fr) minmax(320px, 0.95fr);
    align-items: start;
  }
}

.woocommerce div.product:not(.twl-product-shell--override) .images,
.woocommerce div.product:not(.twl-product-shell--override) .summary {
  float: none;
  width: 100%;
  margin: 0;
}

.woocommerce div.product:not(.twl-product-shell--override) .images,
.woocommerce div.product:not(.twl-product-shell--override) .summary,
.woocommerce form.checkout,
.woocommerce .woocommerce-customer-details,
.woocommerce .woocommerce-order,
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-cart-form,
.woocommerce-checkout-review-order,
.woocommerce-order-details,
.woocommerce-order-downloads,
.woocommerce .addresses .woocommerce-Address,
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content,
.woocommerce-account .u-column1,
.woocommerce-account .u-column2 {
  padding: clamp(1rem, 2vw, 1.6rem);
  border: var(--twl-commerce-border);
  border-radius: var(--twl-commerce-radius);
  background: var(--twl-commerce-bg-soft);
  box-shadow: var(--twl-commerce-shadow);
}

.woocommerce div.product:not(.twl-product-shell--override) .woocommerce-product-gallery__wrapper,
.woocommerce div.product:not(.twl-product-shell--override) .flex-control-thumbs {
  border-radius: calc(var(--twl-commerce-radius) - 0.1rem);
  overflow: hidden;
}

.woocommerce div.product:not(.twl-product-shell--override) .woocommerce-product-gallery__image img {
  border-radius: calc(var(--twl-commerce-radius) - 0.1rem);
}

.woocommerce div.product:not(.twl-product-shell--override) .product_title {
  margin-bottom: 0.6rem;
  color: rgba(255, 255, 255, 1);
  font-size: clamp(2rem, 4vw, 3.1rem);
  line-height: 1;
}

.woocommerce div.product:not(.twl-product-shell--override) p.price,
.woocommerce div.product:not(.twl-product-shell--override) span.price {
  color: var(--twl-commerce-accent);
  font-size: 1.4rem;
  font-weight: 700;
}

.woocommerce div.product:not(.twl-product-shell--override) .woocommerce-product-details__short-description,
.woocommerce div.product:not(.twl-product-shell--override) .woocommerce-product-details__short-description p {
  color: var(--twl-commerce-muted-strong);
}

.woocommerce div.product:not(.twl-product-shell--override) form.cart {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
  align-items: center;
}

.woocommerce .quantity .qty {
  min-height: 2.875rem;
  min-width: 4.75rem;
  border-radius: var(--twl-commerce-pill);
  text-align: center;
}

.woocommerce div.product:not(.twl-product-shell--override) form.cart .variations {
  width: 100%;
  margin-bottom: 0.85rem;
}

.woocommerce div.product:not(.twl-product-shell--override) form.cart .variations th,
.woocommerce div.product:not(.twl-product-shell--override) form.cart .variations td {
  padding-bottom: 0.85rem;
}

.woocommerce-tabs ul.tabs {
  padding: 0;
  margin: 1.5rem 0 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs::after {
  display: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
  border: 0;
  background: transparent;
  margin: 0 0.4rem 0.6rem 0;
  padding: 0;
  border-radius: var(--twl-commerce-pill);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
  display: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  display: inline-flex;
  padding: 0.7rem 1rem;
  border-radius: var(--twl-commerce-pill);
  background: rgba(255, 255, 255, 0.04);
  color: var(--twl-commerce-text);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
  background: var(--twl-commerce-accent);
  color: #000;
}

.woocommerce table.shop_table {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--twl-commerce-radius-sm);
  overflow: hidden;
  border-collapse: separate;
  border-spacing: 0;
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
  border-color: rgba(255, 255, 255, 0.12);
  color: var(--twl-commerce-text);
}

.woocommerce table.shop_table thead th {
  background: rgba(255, 255, 255, 0.04);
  color: var(--twl-commerce-accent);
  font-weight: 600;
}

.woocommerce table.shop_table tbody td,
.woocommerce table.shop_table tfoot td,
.woocommerce table.shop_table tfoot th {
  background: transparent;
}

.woocommerce-cart .woocommerce {
  display: grid;
  gap: var(--twl-commerce-gap-lg);
}

@media (min-width: 1080px) {
  .woocommerce-cart .woocommerce {
    grid-template-columns: minmax(0, 1.6fr) minmax(320px, 0.95fr);
    align-items: start;
  }

  .woocommerce-cart .cart-collaterals,
  .woocommerce-cart .cart-collaterals .cart_totals {
    width: 100%;
    float: none;
  }
}

.woocommerce-cart-form,
.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-checkout #customer_details,
.woocommerce-checkout #order_review,
.woocommerce-checkout #payment {
  width: 100%;
  float: none;
}

.woocommerce-cart .cart_item img {
  width: 74px;
  border-radius: 0.75rem;
}

.woocommerce-cart .coupon {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
}

#twl_gc_code,
#coupon_code {
  width: min(100%, 14rem);
  min-height: 2.875rem;
  border-radius: var(--twl-commerce-pill);
  border: 1px solid rgba(255, 255, 255, 0.22);
}

.woocommerce-cart .coupon .twl-gc-inline {
  display: flex;
  gap: 0.75rem;
  align-items: center;
  width: auto;
  flex-wrap: wrap;
}

.woocommerce-cart .coupon .twl-gc-inline input[type="text"] {
  min-width: min(100%, 10rem);
}

.woocommerce-cart-form .twl-gc-inline button,
.woocommerce-cart-form .coupon button {
  font-size: 0.92rem;
}

.woocommerce-cart .actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
}

.woocommerce-cart .actions > .button,
.woocommerce-cart .actions > button,
.woocommerce-cart .actions > input {
  margin: 0;
}

.woocommerce-cart .cart_totals h2,
.woocommerce-checkout #order_review_heading,
.woocommerce-account .woocommerce-Address-title h3 {
  margin-bottom: 1rem;
  font-size: clamp(1.5rem, 2vw, 2.1rem);
  color: rgba(255, 255, 255, 1);
}

.woocommerce-account .woocommerce-Address-title h3 {
  margin: 0;
  text-align: left;
}

.woocommerce-cart .cart_totals table td,
.woocommerce-cart .cart_totals table th,
.woocommerce-checkout-review-order-table td,
.woocommerce-checkout-review-order-table th {
  padding-block: 0.9rem;
}

.woocommerce-checkout form.checkout {
  display: grid;
  gap: var(--twl-commerce-gap-lg);
}

@media (min-width: 1080px) {
  .woocommerce-checkout form.checkout {
    grid-template-columns: minmax(0, 1.45fr) minmax(320px, 0.95fr);
    align-items: start;
  }
}

.woocommerce .col2-set,
.woocommerce-page .col2-set {
  margin-top: 0;
}

.woocommerce #customer_login.u-columns,
.woocommerce-account #customer_login.u-columns,
.woocommerce .u-columns.col2-set {
  display: grid;
  gap: var(--twl-commerce-gap);
  width: 100%;
}

@media (min-width: 860px) {
  .woocommerce #customer_login.u-columns,
  .woocommerce-account #customer_login.u-columns,
  .woocommerce .u-columns.col2-set {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2,
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 {
  float: none;
  width: 100%;
  margin: 0 0 1rem;
}

.woocommerce-checkout #payment {
  display: block;
  margin-top: 1.5rem;
  background: rgba(0, 0, 0, 0.72);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--twl-commerce-radius-sm);
}

.woocommerce-checkout #payment div.payment_box {
  margin-top: 1rem;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.04));
  color: var(--twl-commerce-muted-strong);
  border-radius: var(--twl-commerce-radius-sm);
}

.woocommerce-checkout #payment div.payment_box::before {
  border-bottom-color: rgba(255, 255, 255, 0.05);
}

.woocommerce-checkout #payment .ppcp-hidden,
.woocommerce-checkout #payment button.ppcp-hidden,
.woocommerce-checkout #payment .button.ppcp-hidden {
  display: none !important;
}

.woocommerce-checkout #payment li.payment_method_ppcp-gateway div.payment_box {
  display: none !important;
}

.woocommerce-checkout #payment .ppcp-button-pill.ppcp-button-apm {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 2.875rem;
  padding: 0.35rem;
  border: 1px solid var(--twl-commerce-accent);
  border-radius: var(--twl-commerce-pill);
  background: rgba(0, 0, 0, 0.78);
  box-shadow:
    0 0 0 1px rgba(201, 172, 140, 0.42),
    0 0 18px rgba(201, 172, 140, 0.18),
    0 14px 30px rgba(0, 0, 0, 0.28);
  overflow: hidden;
  transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.woocommerce-checkout #payment .ppcp-button-pill.ppcp-button-apm:hover {
  background: rgb(var(--twl-accent-rgb) / 0.18);
  border-color: var(--twl-commerce-accent);
  transform: translateY(-1px);
  box-shadow:
    0 0 0 1px rgba(201, 172, 140, 0.55),
    0 0 24px rgba(201, 172, 140, 0.26),
    0 18px 34px rgba(0, 0, 0, 0.34);
}

.woocommerce-checkout #payment .ppcp-button-pill.ppcp-button-apm iframe,
.woocommerce-checkout #payment .ppcp-button-pill.ppcp-button-apm button {
  border-radius: calc(var(--twl-commerce-pill) - 0.2rem) !important;
}

.woocommerce-checkout #payment .ppcp-button-pill.ppcp-button-apm + .ppcp-button-pill.ppcp-button-apm {
  margin-top: 0.85rem;
}

.woocommerce-checkout #payment #ppc-button-googlepay-container,
.woocommerce-checkout #payment #ppc-button-ppcp-gateway {
  display: block;
  width: 100%;
  padding: 0 !important;
  border: 1px solid var(--twl-commerce-accent);
  border-radius: var(--twl-commerce-pill);
  background: transparent !important;
  box-shadow: none !important;
  overflow: hidden;
}

.woocommerce-checkout #payment #ppc-button-googlepay-container:hover,
.woocommerce-checkout #payment #ppc-button-ppcp-gateway:hover {
  background: transparent !important;
}

.woocommerce-checkout #payment #ppc-button-googlepay-container > *,
.woocommerce-checkout #payment #ppc-button-ppcp-gateway > * {
  width: 100%;
}

.woocommerce-checkout #payment #ppc-button-googlepay-container iframe,
.woocommerce-checkout #payment #ppc-button-ppcp-gateway iframe,
.woocommerce-checkout #payment #ppc-button-googlepay-container button,
.woocommerce-checkout #payment #ppc-button-ppcp-gateway button {
  border-radius: inherit !important;
}

.woocommerce-checkout .grecaptcha-badge {
  bottom: 18px !important;
  border-radius: 999px !important;
  filter: saturate(0.88) brightness(0.72) contrast(1.08);
}

.woocommerce-checkout .grecaptcha-badge iframe {
  border-radius: 999px !important;
  box-shadow:
    0 0 0 1px rgba(72, 145, 255, 0.9),
    0 0 0 3px rgba(72, 145, 255, 0.14),
    0 18px 38px rgba(0, 0, 0, 0.42),
    0 0 22px rgba(72, 145, 255, 0.28);
}

@media (max-width: 782px) {
  .woocommerce-checkout .grecaptcha-badge {
    bottom: 12px !important;
  }
}

.woocommerce-checkout #payment ul.payment_methods {
  border-bottom-color: rgba(255, 255, 255, 0.12);
}

.woocommerce-checkout #payment ul.payment_methods li,
.woocommerce-checkout #payment ul.payment_methods li label {
  color: var(--twl-commerce-text);
}

.woocommerce-checkout .woocommerce-form-coupon-toggle,
.woocommerce-checkout .woocommerce-form-login-toggle,
.woocommerce-checkout .woocommerce-additional-fields,
.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-shipping-fields,
.woocommerce-checkout .woocommerce-order-notes {
  margin: 0;
}

.woocommerce-order ul.order_details {
  display: grid;
  gap: 0.9rem;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  padding: 0;
  margin: 0 0 1.5rem;
}

.woocommerce-order ul.order_details li {
  margin: 0;
  padding: 0.95rem 1rem;
  border: var(--twl-commerce-border);
  border-radius: var(--twl-commerce-radius-sm);
  background: rgba(255, 255, 255, 0.04);
}

.woocommerce .woocommerce-customer-details address,
.woocommerce-account .woocommerce-Address address {
  border: 0;
  padding: 0;
  margin: 0;
  color: var(--twl-commerce-muted-strong);
}

.woocommerce-account .woocommerce {
  display: grid;
  gap: var(--twl-commerce-gap-lg);
  align-items: start;
}

.woocommerce-account .woocommerce > :not(.woocommerce-MyAccount-navigation):not(.woocommerce-MyAccount-content) {
  grid-column: 1 / -1;
}

@media (min-width: 981px) {
  .woocommerce-account .woocommerce {
    grid-template-columns: minmax(250px, 280px) minmax(0, 1fr);
  }
}

.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content {
  float: none;
  width: 100%;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation li {
  margin: 0;
  list-style: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation li::before {
  display: none !important;
  content: none !important;
}

.woocommerce-account .woocommerce-MyAccount-navigation li + li {
  margin-top: 0.55rem;
}

.woocommerce-account .woocommerce-MyAccount-navigation a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  padding: 0.9rem 1rem;
  border-radius: var(--twl-commerce-radius-sm);
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.03);
  color: var(--twl-commerce-text);
  text-decoration: none;
  font-weight: 600;
}

.woocommerce-account .woocommerce-MyAccount-navigation .is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation a:hover,
.woocommerce-account .woocommerce-MyAccount-navigation a:focus-visible {
  border-color: var(--twl-commerce-accent);
  background: var(--twl-commerce-accent-soft);
  color: var(--twl-commerce-accent);
}

.woocommerce-account .woocommerce-MyAccount-content > :first-child {
  margin-top: 0;
}

.woocommerce-account .woocommerce-MyAccount-content > .twl-account-dashboard:first-child {
  margin-top: 0;
}

.woocommerce-account .woocommerce-MyAccount-content p,
.woocommerce-account .woocommerce-MyAccount-content li,
.woocommerce-account .woocommerce-MyAccount-content address {
  color: var(--twl-commerce-muted-strong);
}

.woocommerce-account .woocommerce-Addresses,
.woocommerce-account .addresses {
  display: grid;
  gap: var(--twl-commerce-gap);
}

@media (min-width: 768px) {
  .woocommerce-account .woocommerce-Addresses,
  .woocommerce-account .addresses {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.woocommerce-account .u-columns {
  display: grid;
  gap: var(--twl-commerce-gap-lg);
  grid-template-columns: 1fr;
}

@media (min-width: 900px) {
  .woocommerce-account .u-columns {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.woocommerce-account #customer_login.u-columns::before,
.woocommerce-account #customer_login.u-columns::after {
  display: none !important;
}

.woocommerce-account #customer_login.u-columns .u-column1,
.woocommerce-account #customer_login.u-columns .u-column2 {
  width: 100%;
  max-width: 100%;
  float: none;
}

.woocommerce-account .u-column1 h2,
.woocommerce-account .u-column2 h2,
.woocommerce-account .woocommerce-MyAccount-content h2,
.woocommerce-account .woocommerce-MyAccount-content h3 {
  color: rgba(255, 255, 255, 1);
}

.woocommerce-account .woocommerce-table--order-downloads,
.woocommerce-account .woocommerce-table--order-details,
.woocommerce-account .woocommerce-table--order-downloads th,
.woocommerce-account .woocommerce-table--order-details th,
.woocommerce-account .woocommerce-orders-table,
.woocommerce-account .woocommerce-orders-table th,
.woocommerce-account .woocommerce-orders-table td {
  color: var(--twl-commerce-text);
}

.woocommerce-account .woocommerce-MyAccount-content .button,
.woocommerce-account .woocommerce-Address-title .edit,
.woocommerce-account .woocommerce-orders-table .button,
.woocommerce-account .woocommerce-button {
  margin-top: 0.5rem;
}

.woocommerce-form-login .woocommerce-form-login__rememberme,
.woocommerce-account .lost_password,
.woocommerce-account .woocommerce-LostPassword {
  display: block;
  margin-top: 0.85rem;
}

.woocommerce form .password-input,
.woocommerce-page form .password-input {
  position: relative;
  display: block;
  width: 100%;
}

.woocommerce form .show-password-input,
.woocommerce-page form .show-password-input {
  position: absolute;
  top: 50%;
  right: 0.7rem;
  transform: translateY(-50%);
  width: 2.55rem;
  height: 1.65rem;
  display: grid !important;
  place-items: center;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.14);
  background-image: none !important;
  color: #fff;
  opacity: 1;
  font-size: 0 !important;
  line-height: 0 !important;
  text-indent: 0 !important;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(201, 172, 140, 0.7), 0 0 0 1px rgba(201, 172, 140, 0.18);
}

.woocommerce form .show-password-input::before,
.woocommerce-page form .show-password-input::before {
  content: "";
  display: block;
  width: 1.05rem;
  height: 1.05rem;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M2.53 1.47 1.47 2.53l3.05 3.05A11.82 11.82 0 0 0 1.46 12 11.8 11.8 0 0 0 12 18.5c2.35 0 4.53-.68 6.38-1.84l4.09 4.09 1.06-1.06L2.53 1.47Zm9.47 5.03A5.5 5.5 0 0 1 17.5 12c0 .63-.11 1.23-.31 1.79l-1.66-1.66c.03-.17.05-.35.05-.53A3.58 3.58 0 0 0 12 8.02c-.18 0-.36.02-.53.05L9.81 6.41c.56-.2 1.16-.31 1.79-.31Zm0 2.99a2.08 2.08 0 0 1 2.08 2.08c0 .08 0 .16-.01.23l-2.3-2.3c.07-.01.15-.01.23-.01ZM12 5.5c4.64 0 8.62 2.79 10.32 6.5-.67 1.45-1.7 2.75-2.97 3.79l-1.1-1.1A6.82 6.82 0 0 0 19.93 12 6.82 6.82 0 0 0 9.3 6.25L7.9 4.85A11.11 11.11 0 0 1 12 5.5ZM3.15 12c1.57-3.43 5.15-5.98 8.85-5.98.64 0 1.27.08 1.88.22l-1.7 1.7A3.58 3.58 0 0 0 8.6 11.5c0 1.98 1.6 3.58 3.58 3.58.43 0 .85-.08 1.24-.22l1.84 1.84c-1 .34-2.09.52-3.26.52-3.7 0-7.28-2.55-8.85-5.98Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M2.53 1.47 1.47 2.53l3.05 3.05A11.82 11.82 0 0 0 1.46 12 11.8 11.8 0 0 0 12 18.5c2.35 0 4.53-.68 6.38-1.84l4.09 4.09 1.06-1.06L2.53 1.47Zm9.47 5.03A5.5 5.5 0 0 1 17.5 12c0 .63-.11 1.23-.31 1.79l-1.66-1.66c.03-.17.05-.35.05-.53A3.58 3.58 0 0 0 12 8.02c-.18 0-.36.02-.53.05L9.81 6.41c.56-.2 1.16-.31 1.79-.31Zm0 2.99a2.08 2.08 0 0 1 2.08 2.08c0 .08 0 .16-.01.23l-2.3-2.3c.07-.01.15-.01.23-.01ZM12 5.5c4.64 0 8.62 2.79 10.32 6.5-.67 1.45-1.7 2.75-2.97 3.79l-1.1-1.1A6.82 6.82 0 0 0 19.93 12 6.82 6.82 0 0 0 9.3 6.25L7.9 4.85A11.11 11.11 0 0 1 12 5.5ZM3.15 12c1.57-3.43 5.15-5.98 8.85-5.98.64 0 1.27.08 1.88.22l-1.7 1.7A3.58 3.58 0 0 0 8.6 11.5c0 1.98 1.6 3.58 3.58 3.58.43 0 .85-.08 1.24-.22l1.84 1.84c-1 .34-2.09.52-3.26.52-3.7 0-7.28-2.55-8.85-5.98Z'/%3E%3C/svg%3E");
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: 1.05rem 1.05rem;
  mask-size: 1.05rem 1.05rem;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
}

.woocommerce form .show-password-input::after,
.woocommerce-page form .show-password-input::after {
  content: none !important;
}

.woocommerce-page .search-form,
.woocommerce-page .wp-block-search,
.woocommerce-page .woocommerce-product-search,
.woocommerce-page .widget_search,
.woocommerce-page .widget_product_search,
.woocommerce-page .wc-block-product-search,
.woocommerce-page .widget_pages,
.woocommerce-page .wp-block-page-list,
.woocommerce-page .widget_nav_menu {
  display: none;
}

.ppc-button-wrapper {
  max-width: 350px;
}

#billing_country_field,
#shipping_country_field {
  display: none;
}

@media (max-width: 980px) {
  .twl-main--commerce > .woocommerce-notices-wrapper,
  .twl-main--commerce > .woocommerce,
  .twl-main--commerce > .woocommerce-page {
    padding-inline: 1rem;
  }

  .woocommerce-account .woocommerce {
    grid-template-columns: 1fr;
  }

  .woocommerce-account .woocommerce-MyAccount-navigation {
    padding: 0.8rem;
  }

  .woocommerce-account .woocommerce-MyAccount-navigation ul {
    display: flex;
    gap: 0.6rem;
    overflow-x: auto;
    padding-bottom: 0.2rem;
    scroll-snap-type: x proximity;
  }

  .woocommerce-account .woocommerce-MyAccount-navigation li {
    flex: 0 0 auto;
  }

  .woocommerce-account .woocommerce-MyAccount-navigation a {
    white-space: nowrap;
    scroll-snap-align: start;
  }
}

@media (max-width: 767px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products {
    grid-template-columns: 1fr;
  }

  .woocommerce nav.woocommerce-pagination ul {
    width: 100%;
    border-radius: 1.2rem;
  }

  .woocommerce nav.woocommerce-pagination ul li {
    flex: 1 1 auto;
  }

  .woocommerce nav.woocommerce-pagination ul li .page-numbers {
    width: 100%;
    min-width: 0;
  }

  .woocommerce-cart .coupon .twl-gc-inline {
    width: 100%;
  }

  .woocommerce-cart .twl-gc-inline {
    padding-left: 0;
  }

  #twl_gc_code,
  #coupon_code {
    width: 100%;
  }

  .woocommerce-cart .actions,
  .woocommerce div.product form.cart {
    align-items: stretch;
  }

  .woocommerce-cart .actions .button,
  .woocommerce-cart .actions button,
  .woocommerce-cart .actions input,
  .woocommerce div.product form.cart .button,
  .woocommerce div.product form.cart button,
  .woocommerce div.product form.cart input.button {
    width: 100%;
  }

  .woocommerce table.shop_table_responsive tr td::before,
  .woocommerce-page table.shop_table_responsive tr td::before {
    color: var(--twl-commerce-accent);
    font-weight: 600;
  }

  .woocommerce-order ul.order_details {
    grid-template-columns: 1fr;
  }
}

/* v4 polish: inherit TWL calendar/show hover glow, keep archive/ticket cards from oversizing,
   tighten archive card height, force 2-up mobile grids, and finish single-product layout */

.twl-main--commerce {
  --twl-commerce-card-min: clamp(14.5rem, 15.5vw, 16.75rem);
  --twl-commerce-card-gap: clamp(0.85rem, 1.5vw, 1.35rem);
  --twl-commerce-card-shadow: var(--twl-shadow-card, 0 16px 34px rgba(0, 0, 0, 0.28));
  --twl-commerce-card-hover-shadow:
    0 20px 44px rgba(0, 0, 0, 0.34),
    0 0 22px rgba(201, 172, 140, 0.18);
}

/* Archive/shop/tickets grids: auto-fill prevents 3-card ticket pages from stretching huge */
.woocommerce ul.products,
.woocommerce-page ul.products,
.woocommerce div.product .related ul.products,
.woocommerce div.product .upsells ul.products {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--twl-commerce-card-min)), 1fr));
  gap: var(--twl-commerce-card-gap);
  align-items: start;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  background: linear-gradient(180deg, rgba(68, 68, 68, 0.98), rgba(35, 35, 35, 0.98));
  box-shadow: var(--twl-commerce-card-shadow);
  transition: border-color 220ms ease, transform 220ms ease, box-shadow 220ms ease, background-color 220ms ease, color 220ms ease;
}

.woocommerce ul.products li.product:hover,
.woocommerce ul.products li.product:focus-within,
.woocommerce-page ul.products li.product:hover,
.woocommerce-page ul.products li.product:focus-within {
  border-color: rgba(201, 172, 140, 0.96);
  background: linear-gradient(180deg, rgba(201, 172, 140, 0.98), rgba(189, 161, 129, 0.98));
  transform: translateY(-3px);
  box-shadow: var(--twl-commerce-card-hover-shadow);
}

.woocommerce ul.products li.product .woocommerce-LoopProduct-link,
.woocommerce-page ul.products li.product .woocommerce-LoopProduct-link {
  gap: 0;
}

.woocommerce ul.products li.product p.event-date,
.woocommerce-page ul.products li.product p.event-date {
  display: none !important;
  margin: 0 !important;
}

.woocommerce ul.products li.product a img,
.woocommerce-page ul.products li.product a img {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  object-position: center center;
  margin: 0;
  border: 0;
  border-bottom: 1px solid rgba(201, 172, 140, 0.24);
  border-radius: calc(var(--twl-commerce-radius) - 0.1rem) calc(var(--twl-commerce-radius) - 0.1rem) 0 0;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product .woocommerce-loop-product__title {
  margin: 0;
  padding: 0.8rem 0.95rem 0;
  font-size: clamp(1.02rem, 1.45vw, 1.28rem);
  line-height: 1.18;
}

.woocommerce ul.products li.product .price,
.woocommerce-page ul.products li.product .price {
  margin: 0;
  padding: 0.28rem 0.95rem 0;
  font-size: 0.98rem;
  line-height: 1.22;
}

.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart,
.woocommerce-page ul.products li.product .button,
.woocommerce-page ul.products li.product .added_to_cart {
  margin: 0.8rem 0.95rem 0.95rem;
  width: calc(100% - 1.9rem);
}

.woocommerce ul.products li.product:hover .woocommerce-loop-product__title,
.woocommerce ul.products li.product:hover .price,
.woocommerce ul.products li.product:hover .price * ,
.woocommerce ul.products li.product:focus-within .woocommerce-loop-product__title,
.woocommerce ul.products li.product:focus-within .price,
.woocommerce ul.products li.product:focus-within .price *,
.woocommerce-page ul.products li.product:hover .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product:hover .price,
.woocommerce-page ul.products li.product:hover .price *,
.woocommerce-page ul.products li.product:focus-within .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product:focus-within .price,
.woocommerce-page ul.products li.product:focus-within .price * {
  color: var(--twl-color-ink, #111111);
}

.woocommerce ul.products li.product:hover .button,
.woocommerce ul.products li.product:hover .added_to_cart,
.woocommerce ul.products li.product:focus-within .button,
.woocommerce ul.products li.product:focus-within .added_to_cart,
.woocommerce-page ul.products li.product:hover .button,
.woocommerce-page ul.products li.product:hover .added_to_cart,
.woocommerce-page ul.products li.product:focus-within .button,
.woocommerce-page ul.products li.product:focus-within .added_to_cart {
  border-color: rgba(17, 17, 17, 0.96);
  background: rgba(17, 17, 17, 0.96);
  color: #fff;
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.1),
    0 8px 24px rgba(0, 0, 0, 0.22);
}

/* Single product page: make gallery + summary feel intentionally designed, not split/disjointed */
.single-product .twl-main--commerce > .woocommerce {
  padding-inline: var(--twl-commerce-pad);
  box-sizing: border-box;
}

.single-product .woocommerce div.product {
  display: grid;
  gap: clamp(1rem, 2vw, 1.6rem);
  align-items: start;
}

@media (min-width: 980px) {
  .single-product .woocommerce div.product {
    grid-template-columns: minmax(0, 1.05fr) minmax(20rem, 30rem);
  }
}

.single-product .woocommerce div.product > .woocommerce-product-gallery,
.single-product .woocommerce div.product > .summary.entry-summary {
  padding: clamp(1rem, 2vw, 1.35rem);
  border: 1px solid rgba(255, 253, 248, 0.12);
  border-radius: var(--twl-commerce-radius);
  background: linear-gradient(180deg, rgba(68, 68, 68, 0.9), rgba(24, 24, 24, 0.98));
  box-shadow: var(--twl-commerce-shadow);
}

.single-product .woocommerce div.product > .summary.entry-summary {
  display: grid;
  gap: 0.85rem;
  align-content: start;
}

.single-product .woocommerce div.product .product_title {
  margin: 0;
  line-height: 0.96;
}

.single-product .woocommerce div.product p.price,
.single-product .woocommerce div.product span.price {
  margin: 0;
}

.single-product .woocommerce div.product .woocommerce-product-gallery__wrapper,
.single-product .woocommerce div.product .woocommerce-product-gallery__image,
.single-product .woocommerce div.product .woocommerce-product-gallery__image a {
  border-radius: calc(var(--twl-commerce-radius) - 0.1rem);
}

.single-product .woocommerce div.product .woocommerce-product-gallery__image img,
.single-product .woocommerce div.product .woocommerce-product-gallery__wrapper img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  object-position: center center;
}

.single-product .woocommerce div.product .flex-control-thumbs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.55rem;
  margin-top: 0.75rem;
}

.single-product .woocommerce div.product .flex-control-thumbs li {
  width: auto;
  float: none;
  margin: 0;
}

.single-product .woocommerce div.product .flex-control-thumbs img {
  border-radius: 0.8rem;
  border: 1px solid rgba(255, 255, 255, 0.12);
}

.single-product .woocommerce div.product .woocommerce-product-details__short-description,
.single-product .woocommerce div.product .woocommerce-product-details__short-description p {
  margin: 0;
}

.single-product .woocommerce div.product form.cart,
.single-product .woocommerce div.product form.variations_form.cart {
  display: grid;
  gap: 0.85rem;
  align-items: start;
}

.single-product .woocommerce div.product form.cart table.variations {
  width: 100%;
  margin: 0;
  border-collapse: separate;
  border-spacing: 0 0.7rem;
}

.single-product .woocommerce div.product form.cart table.variations tr {
  display: grid;
  grid-template-columns: minmax(6rem, 7.5rem) minmax(0, 1fr);
  gap: 0.8rem;
  align-items: center;
}

.single-product .woocommerce div.product form.cart table.variations th,
.single-product .woocommerce div.product form.cart table.variations td {
  padding: 0;
}

.single-product .woocommerce div.product form.cart table.variations td.value {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  align-items: center;
}

.single-product .woocommerce div.product form.cart table.variations select {
  flex: 1 1 12rem;
  width: 100%;
}

.single-product .woocommerce div.product form.cart .reset_variations {
  margin-left: auto;
  font-size: 0.85rem;
}

.single-product .woocommerce div.product .single_variation_wrap,
.single-product .woocommerce div.product .variations_button {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
}

.single-product .woocommerce div.product .single_add_to_cart_button,
.single-product .woocommerce div.product .single_variation_wrap .single_add_to_cart_button {
  min-width: 12rem;
}

.single-product .woocommerce div.product .ppcp-messages,
.single-product .woocommerce div.product .ppc-button-wrapper,
.single-product .woocommerce div.product .woocommerce-message,
.single-product .woocommerce div.product .woocommerce-info {
  margin-top: 0.15rem;
}

.single-product .woocommerce div.product .product_meta {
  display: none !important;
}

.single-product .woocommerce div.product > .woocommerce-tabs,
.single-product .woocommerce div.product > .related.products,
.single-product .woocommerce div.product > .upsells.products {
  grid-column: 1 / -1;
}

.single-product .woocommerce div.product > .woocommerce-tabs {
  margin-top: 0;
  padding: clamp(1rem, 2vw, 1.35rem);
  border: 1px solid rgba(255, 253, 248, 0.12);
  border-radius: var(--twl-commerce-radius);
  background: linear-gradient(180deg, rgba(68, 68, 68, 0.9), rgba(24, 24, 24, 0.98));
  box-shadow: var(--twl-commerce-shadow);
}

.single-product .woocommerce div.product .woocommerce-tabs ul.tabs {
  margin-top: 0;
  margin-bottom: 1rem;
}

.single-product .woocommerce div.product .woocommerce-tabs .panel {
  margin: 0;
  padding: 0;
}

.single-product .woocommerce div.product .woocommerce-tabs .panel > h2 {
  font-size: clamp(1.45rem, 2vw, 1.9rem);
  margin: 0 0 0.8rem;
}

.single-product .woocommerce div.product .related.products > h2,
.single-product .woocommerce div.product .upsells.products > h2 {
  margin: 0 0 1rem;
  font-size: clamp(1.7rem, 2.2vw, 2.35rem);
}

.single-product .woocommerce div.product .related.products,
.single-product .woocommerce div.product .upsells.products {
  margin-top: 0.25rem;
}

.single-product .woocommerce div.product .related ul.products,
.single-product .woocommerce div.product .upsells ul.products {
  margin-top: 0;
}

/* Mobile: 2 cards per row instead of 1, smaller paddings/buttons, and stack single product cleanly */
@media (max-width: 767px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products,
  .woocommerce div.product .related ul.products,
  .woocommerce div.product .upsells ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.8rem;
  }

  .woocommerce ul.products li.product,
  .woocommerce-page ul.products li.product {
    border-radius: 1.1rem;
  }

  .woocommerce ul.products li.product a img,
  .woocommerce-page ul.products li.product a img {
    aspect-ratio: 1 / 1;
  }

  .woocommerce ul.products li.product .woocommerce-loop-product__title,
  .woocommerce-page ul.products li.product .woocommerce-loop-product__title {
    padding: 0.65rem 0.7rem 0;
    font-size: 0.94rem;
    line-height: 1.14;
  }

  .woocommerce ul.products li.product .price,
  .woocommerce-page ul.products li.product .price {
    padding: 0.2rem 0.7rem 0;
    font-size: 0.86rem;
  }

  .woocommerce ul.products li.product .button,
  .woocommerce ul.products li.product .added_to_cart,
  .woocommerce-page ul.products li.product .button,
  .woocommerce-page ul.products li.product .added_to_cart {
    min-height: 2.45rem;
    margin: 0.65rem 0.7rem 0.7rem;
    width: calc(100% - 1.4rem);
    padding: 0.65rem 0.8rem;
    font-size: 0.78rem;
    letter-spacing: 0.02em;
  }

  .single-product .woocommerce div.product {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  .single-product .woocommerce div.product > .woocommerce-product-gallery,
  .single-product .woocommerce div.product > .summary.entry-summary,
  .single-product .woocommerce div.product > .woocommerce-tabs {
    padding: 1rem;
  }

  .single-product .woocommerce div.product form.cart table.variations tr {
    grid-template-columns: 1fr;
    gap: 0.4rem;
  }

  .single-product .woocommerce div.product .single_variation_wrap,
  .single-product .woocommerce div.product .variations_button,
  .single-product .woocommerce div.product form.cart {
    align-items: stretch;
  }

  .single-product .woocommerce div.product .single_add_to_cart_button,
  .single-product .woocommerce div.product .single_variation_wrap .single_add_to_cart_button,
  .single-product .woocommerce div.product .quantity,
  .single-product .woocommerce div.product .quantity .qty {
    width: 100%;
  }

  .single-product .woocommerce div.product .flex-control-thumbs {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 480px) {
  .twl-main--commerce {
    --twl-commerce-card-min: 0;
  }

  .twl-main--commerce > .woocommerce-notices-wrapper,
  .twl-main--commerce > .woocommerce,
  .twl-main--commerce > .woocommerce-page,
  .single-product .twl-main--commerce > .woocommerce {
    padding-inline: 0.8rem;
  }

  .woocommerce ul.products,
  .woocommerce-page ul.products,
  .woocommerce div.product .related ul.products,
  .woocommerce div.product .upsells ul.products {
    gap: 0.65rem;
  }
}

/* v5 mobile/equal-height card correction: keep 2-up mobile without shrinking too far,
   equalize card heights, and push buttons to the bottom consistently */

.woocommerce ul.products,
.woocommerce-page ul.products,
.woocommerce div.product .related ul.products,
.woocommerce div.product .upsells ul.products {
  align-items: stretch;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.woocommerce div.product .related ul.products li.product,
.woocommerce div.product .upsells ul.products li.product {
  height: 100%;
}

.woocommerce ul.products li.product .woocommerce-LoopProduct-link,
.woocommerce-page ul.products li.product .woocommerce-LoopProduct-link,
.woocommerce div.product .related ul.products li.product .woocommerce-LoopProduct-link,
.woocommerce div.product .upsells ul.products li.product .woocommerce-LoopProduct-link {
  flex: 1 1 auto;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product .woocommerce-loop-product__title,
.woocommerce div.product .related ul.products li.product .woocommerce-loop-product__title,
.woocommerce div.product .upsells ul.products li.product .woocommerce-loop-product__title {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  min-height: calc(2 * 1.18em);
}

.woocommerce ul.products li.product .price,
.woocommerce-page ul.products li.product .price,
.woocommerce div.product .related ul.products li.product .price,
.woocommerce div.product .upsells ul.products li.product .price {
  min-height: 2.5em;
}

.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart,
.woocommerce-page ul.products li.product .button,
.woocommerce-page ul.products li.product .added_to_cart,
.woocommerce div.product .related ul.products li.product .button,
.woocommerce div.product .related ul.products li.product .added_to_cart,
.woocommerce div.product .upsells ul.products li.product .button,
.woocommerce div.product .upsells ul.products li.product .added_to_cart {
  margin-top: auto;
  text-wrap: balance;
}

.woocommerce ul.products li.product .button.product_type_variable,
.woocommerce ul.products li.product .button.product_type_grouped,
.woocommerce-page ul.products li.product .button.product_type_variable,
.woocommerce-page ul.products li.product .button.product_type_grouped,
.woocommerce div.product .related ul.products li.product .button.product_type_variable,
.woocommerce div.product .related ul.products li.product .button.product_type_grouped,
.woocommerce div.product .upsells ul.products li.product .button.product_type_variable,
.woocommerce div.product .upsells ul.products li.product .button.product_type_grouped {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

@media (max-width: 767px) {
  .twl-main--commerce {
    --twl-commerce-card-gap: 0.9rem;
  }

  .twl-main--commerce > .woocommerce-notices-wrapper,
  .twl-main--commerce > .woocommerce,
  .twl-main--commerce > .woocommerce-page,
  .single-product .twl-main--commerce > .woocommerce {
    padding-inline: 0.9rem;
  }

  .woocommerce ul.products,
  .woocommerce-page ul.products,
  .woocommerce div.product .related ul.products,
  .woocommerce div.product .upsells ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.9rem;
  }

  .woocommerce ul.products li.product a img,
  .woocommerce-page ul.products li.product a img,
  .woocommerce div.product .related ul.products li.product a img,
  .woocommerce div.product .upsells ul.products li.product a img {
    aspect-ratio: 1 / 1;
  }

  .woocommerce ul.products li.product .woocommerce-loop-product__title,
  .woocommerce-page ul.products li.product .woocommerce-loop-product__title,
  .woocommerce div.product .related ul.products li.product .woocommerce-loop-product__title,
  .woocommerce div.product .upsells ul.products li.product .woocommerce-loop-product__title {
    padding: 0.72rem 0.78rem 0;
    font-size: clamp(0.98rem, 2.7vw, 1.08rem);
    line-height: 1.12;
    min-height: calc(2 * 1.12em);
  }

  .woocommerce ul.products li.product .price,
  .woocommerce-page ul.products li.product .price,
  .woocommerce div.product .related ul.products li.product .price,
  .woocommerce div.product .upsells ul.products li.product .price {
    padding: 0.22rem 0.78rem 0;
    font-size: clamp(0.88rem, 2.5vw, 0.98rem);
    min-height: 2.4em;
  }

  .woocommerce ul.products li.product .button,
  .woocommerce ul.products li.product .added_to_cart,
  .woocommerce-page ul.products li.product .button,
  .woocommerce-page ul.products li.product .added_to_cart,
  .woocommerce div.product .related ul.products li.product .button,
  .woocommerce div.product .related ul.products li.product .added_to_cart,
  .woocommerce div.product .upsells ul.products li.product .button,
  .woocommerce div.product .upsells ul.products li.product .added_to_cart {
    min-height: 2.9rem;
    margin: auto 0.78rem 0.78rem;
    width: calc(100% - 1.56rem);
    padding: 0.78rem 0.7rem;
    font-size: 0.9rem;
    line-height: 1.05;
    letter-spacing: 0.01em;
  }
}

@media (max-width: 480px) {
  .twl-main--commerce > .woocommerce-notices-wrapper,
  .twl-main--commerce > .woocommerce,
  .twl-main--commerce > .woocommerce-page,
  .single-product .twl-main--commerce > .woocommerce {
    padding-inline: 0.75rem;
  }

  .woocommerce ul.products,
  .woocommerce-page ul.products,
  .woocommerce div.product .related ul.products,
  .woocommerce div.product .upsells ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.8rem;
  }

  .woocommerce ul.products li.product .woocommerce-loop-product__title,
  .woocommerce-page ul.products li.product .woocommerce-loop-product__title,
  .woocommerce div.product .related ul.products li.product .woocommerce-loop-product__title,
  .woocommerce div.product .upsells ul.products li.product .woocommerce-loop-product__title {
    padding: 0.7rem 0.72rem 0;
    font-size: 0.94rem;
  }

  .woocommerce ul.products li.product .price,
  .woocommerce-page ul.products li.product .price,
  .woocommerce div.product .related ul.products li.product .price,
  .woocommerce div.product .upsells ul.products li.product .price {
    padding: 0.2rem 0.72rem 0;
    font-size: 0.92rem;
  }

  .woocommerce ul.products li.product .button,
  .woocommerce ul.products li.product .added_to_cart,
  .woocommerce-page ul.products li.product .button,
  .woocommerce-page ul.products li.product .added_to_cart,
  .woocommerce div.product .related ul.products li.product .button,
  .woocommerce div.product .related ul.products li.product .added_to_cart,
  .woocommerce div.product .upsells ul.products li.product .button,
  .woocommerce div.product .upsells ul.products li.product .added_to_cart {
    min-height: 2.8rem;
    margin: auto 0.72rem 0.72rem;
    width: calc(100% - 1.44rem);
    padding: 0.72rem 0.6rem;
    font-size: 0.88rem;
  }
}

/* Wave 3 foundation alignment: order-received, account, and checkout spacing should
   match the shared page system and remain printable/mobile-friendly. */

.woocommerce-checkout .woocommerce > .woocommerce-notices-wrapper,
.woocommerce-checkout .woocommerce-form-login-toggle,
.woocommerce-checkout .woocommerce-form-coupon-toggle,
.woocommerce-order-received .woocommerce-notice,
.woocommerce-order-received .woocommerce-order,
.woocommerce-order-received .woocommerce-customer-details,
.woocommerce-order-received .woocommerce-order-details,
.woocommerce-account .woocommerce-MyAccount-content > :first-child {
  margin-top: 0;
}

.woocommerce-order-received .woocommerce-notice--success.woocommerce-thankyou-order-received {
  margin-bottom: 1rem;
  font-size: clamp(1.15rem, 2vw, 1.45rem);
  color: rgba(255, 255, 255, 0.98);
}

.woocommerce-account .woocommerce-MyAccount-content > * + * {
  margin-top: 1rem;
}

.woocommerce-account .woocommerce-MyAccount-content fieldset {
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 1rem;
  padding: 1rem;
}

.woocommerce-account .woocommerce-MyAccount-content legend {
  padding-inline: 0.4rem;
  color: var(--twl-commerce-accent);
}

.woocommerce-account .addresses,
.woocommerce-account .woocommerce-Addresses,
.woocommerce-order-received .woocommerce-columns--addresses {
  display: grid;
  gap: 1rem;
}

@media (min-width: 860px) {
  .woocommerce-account .addresses,
  .woocommerce-account .woocommerce-Addresses,
  .woocommerce-order-received .woocommerce-columns--addresses {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.woocommerce-order-received .woocommerce-table--order-details,
.woocommerce-account .woocommerce-MyAccount-content table {
  margin-bottom: 0;
}

.woocommerce-order-received .woocommerce-order-details,
.woocommerce-order-received .woocommerce-customer-details,
.woocommerce-account .woocommerce-MyAccount-content,
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-checkout #customer_details,
.woocommerce-checkout #order_review,
.woocommerce-checkout #payment {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.04)),
    rgba(0, 0, 0, 0.78);
}

@media (max-width: 767px) {
  .woocommerce-account .woocommerce-MyAccount-navigation ul {
    grid-template-columns: 1fr;
  }

  .woocommerce table.shop_table_responsive tr td::before {
    color: var(--twl-commerce-accent);
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
  }

  .woocommerce-order-received .woocommerce-order-overview {
    gap: 0.7rem;
  }

  .woocommerce-order-received .woocommerce-order-overview li {
    padding: 0.8rem 0.9rem;
  }
}

/* Wave 3 stabilization pass: make the final Woo layout rules authoritative so
   account, cart, checkout, tickets, and single-product pages stop inheriting
   conflicting intermediate grid decisions. */

.twl-main--commerce,
.twl-main--commerce > .woocommerce,
.woocommerce ul.products,
.woocommerce-page ul.products {
  min-width: 0;
}

.woocommerce ul.products,
.woocommerce-page ul.products {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--twl-commerce-card-min)), 1fr));
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  min-width: 0;
  overflow: hidden;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .price,
.woocommerce-page ul.products li.product .price {
  overflow-wrap: anywhere;
}

.woocommerce-account .woocommerce {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--twl-commerce-gap-lg);
  align-items: start;
}

.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content {
  float: none;
  width: 100%;
  max-width: none;
  min-width: 0;
  justify-self: stretch;
  align-self: start;
}

.woocommerce-account .woocommerce-MyAccount-navigation {
  grid-column: 1;
}

.woocommerce-account .woocommerce-MyAccount-content {
  grid-column: 1;
}

@media (min-width: 981px) {
  .woocommerce-account .woocommerce {
    grid-template-columns: minmax(240px, 280px) minmax(0, 1fr);
  }

  .woocommerce-account .woocommerce-MyAccount-navigation {
    grid-column: 1;
  }

  .woocommerce-account .woocommerce-MyAccount-content {
    grid-column: 2;
  }
}

.woocommerce #customer_login.u-columns,
.woocommerce-account #customer_login.u-columns,
.woocommerce .u-columns.col2-set {
  width: 100%;
  margin: 0;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
}

.woocommerce #customer_login.u-columns .u-column1,
.woocommerce #customer_login.u-columns .u-column2,
.woocommerce-account #customer_login.u-columns .u-column1,
.woocommerce-account #customer_login.u-columns .u-column2 {
  width: 100%;
  min-width: 0;
}

@media (min-width: 900px) {
  .woocommerce #customer_login.u-columns,
  .woocommerce-account #customer_login.u-columns,
  .woocommerce .u-columns.col2-set {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.woocommerce-cart .woocommerce {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--twl-commerce-gap-lg);
  align-items: start;
}

.woocommerce-cart .woocommerce-cart-form {
  grid-column: 1 / -1;
  width: 100%;
  min-width: 0;
}

.woocommerce-cart .cart-collaterals {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  width: 100%;
  min-width: 0;
}

.woocommerce-cart .cart-collaterals .cart_totals {
  width: min(100%, 24rem);
  margin-left: auto;
}

@media (min-width: 1080px) {
  .woocommerce-cart .woocommerce {
    grid-template-columns: minmax(0, 1fr);
  }

  .woocommerce-cart .cart-collaterals {
    grid-template-columns: minmax(0, 1fr) minmax(20rem, 24rem);
  }

  .woocommerce-cart .cart-collaterals .cart_totals {
    grid-column: 2;
  }
}

.woocommerce-checkout form.checkout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--twl-commerce-gap-lg);
  align-items: start;
}

.woocommerce-checkout #customer_details,
.woocommerce-checkout #order_review,
.woocommerce-checkout #payment,
.woocommerce-checkout #order_review_heading {
  align-self: start;
}

@media (min-width: 1080px) {
  .woocommerce-checkout form.checkout {
    grid-template-columns: minmax(0, 1.45fr) minmax(20rem, 24rem);
  }

  .woocommerce-checkout #customer_details {
    grid-column: 1;
  }

  .woocommerce-checkout #order_review_heading,
  .woocommerce-checkout #order_review,
  .woocommerce-checkout #payment {
    grid-column: 2;
  }
}

.single-product .twl-main--commerce > .woocommerce {
  width: min(100%, 1200px);
  margin-inline: auto;
}

.single-product .woocommerce div.product {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(1.4rem, 2.6vw, 2.25rem);
  max-width: min(100%, 1200px);
  margin-inline: auto;
  overflow: hidden;
}

@media (min-width: 980px) {
  .single-product .woocommerce div.product {
    grid-template-columns: minmax(320px, 0.95fr) minmax(0, 1.05fr);
  }
}

.single-product .woocommerce div.product > .woocommerce-product-gallery,
.single-product .woocommerce div.product > .summary.entry-summary {
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.single-product .woocommerce div.product .woocommerce-product-gallery__trigger,
.single-product .woocommerce div.product .sku_wrapper,
.single-product .woocommerce div.product .posted_in,
.single-product .woocommerce div.product .product_meta {
  display: none !important;
}

.single-product .woocommerce div.product > .woocommerce-tabs,
.single-product .woocommerce div.product > .related.products,
.single-product .woocommerce div.product > .upsells.products {
  grid-column: 1 / -1;
}

.single-product .woocommerce div.product .related ul.products,
.single-product .woocommerce div.product .upsells ul.products {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(0.8rem, 1.6vw, 1rem);
}

.single-product .woocommerce div.product .related ul.products li.product,
.single-product .woocommerce div.product .upsells ul.products li.product {
  min-width: 0;
}

@media (max-width: 900px) {
  .single-product .woocommerce div.product .related ul.products,
  .single-product .woocommerce div.product .upsells ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Wave 3 correction pass: tighten single-product layout, remove SKU noise,
   make the content flow feel intentional, and keep related items in a smaller horizontal run. */

.single-product .woocommerce div.product {
  max-width: 1200px;
  margin-inline: auto;
  padding: clamp(1.1rem, 2vw, 1.6rem);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: calc(var(--twl-commerce-radius) + 0.2rem);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02)),
    linear-gradient(180deg, rgba(12, 12, 12, 0.94), rgba(5, 5, 5, 0.9));
  box-shadow: var(--twl-commerce-shadow);
  column-gap: clamp(1.5rem, 4vw, 4rem);
}

@media (min-width: 980px) {
  .single-product .woocommerce div.product {
    grid-template-columns: minmax(18rem, 35rem) minmax(18rem, 30rem);
    justify-content: center;
  }
}

.single-product .woocommerce div.product > .summary.entry-summary {
  max-width: 30rem;
}

.single-product .woocommerce div.product > .woocommerce-product-gallery,
.single-product .woocommerce div.product > .summary.entry-summary {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.single-product .woocommerce div.product .summary.entry-summary > * {
  margin-bottom: 0;
}

.single-product .woocommerce div.product .summary.entry-summary > * + * {
  margin-top: 0.95rem;
}

.single-product .woocommerce div.product .summary.entry-summary .woocommerce-product-details__short-description {
  padding-bottom: 0.15rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.single-product .woocommerce div.product .summary.entry-summary .woocommerce-product-details__short-description + form.cart {
  padding-top: 0.15rem;
}

.single-product .woocommerce div.product .sku_wrapper {
  display: none !important;
}

.single-product .woocommerce div.product .posted_in,
.single-product .woocommerce div.product .product_meta {
  display: none !important;
}

.single-product .woocommerce div.product .woocommerce-message {
  display: none;
}

.single-product .woocommerce div.product .woocommerce-product-gallery__trigger {
  display: none !important;
}

.single-product .woocommerce div.product > .woocommerce-tabs {
  display: grid;
  gap: 1rem;
  grid-column: 1 / -1;
  margin-top: 0.45rem;
}

.single-product .woocommerce div.product .woocommerce-tabs ul.tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-bottom: 0;
  border-bottom: 0;
}

.single-product .woocommerce div.product .woocommerce-tabs .panel {
  padding: 1rem 1.1rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.03);
}

.single-product .woocommerce div.product .related.products,
.single-product .woocommerce div.product .upsells.products {
  overflow: hidden;
  grid-column: 1 / -1;
}

.single-product .woocommerce div.product .related ul.products,
.single-product .woocommerce div.product .upsells ul.products {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(12rem, 15rem);
  grid-template-columns: none;
  gap: 0.85rem;
  overflow-x: auto;
  padding-bottom: 0.4rem;
  scrollbar-width: thin;
}

.single-product .woocommerce div.product .related ul.products li.product,
.single-product .woocommerce div.product .upsells ul.products li.product {
  min-width: 0;
  width: auto;
}

.single-product .woocommerce div.product .related ul.products li.product .woocommerce-loop-product__title,
.single-product .woocommerce div.product .upsells ul.products li.product .woocommerce-loop-product__title {
  font-size: 1rem;
}

.single-product .woocommerce div.product .related ul.products li.product .button,
.single-product .woocommerce div.product .upsells ul.products li.product .button,
.single-product .woocommerce div.product .related ul.products li.product .added_to_cart,
.single-product .woocommerce div.product .upsells ul.products li.product .added_to_cart {
  min-height: 2.45rem;
  padding: 0.65rem 0.7rem;
  font-size: 0.78rem;
}

@media (max-width: 980px) {
  .single-product .woocommerce div.product .related ul.products,
  .single-product .woocommerce div.product .upsells ul.products {
    grid-auto-columns: minmax(10.5rem, 12.5rem);
  }
}

.woocommerce-cart .woocommerce {
  grid-template-columns: 1fr;
  align-items: start;
}

.woocommerce-cart table.shop_table,
.woocommerce-account .woocommerce-table,
.woocommerce-order-received .shop_table {
  width: 100%;
}

.woocommerce-cart-form {
  padding: clamp(1.1rem, 2vw, 1.45rem);
}

.woocommerce-cart table.shop_table {
  border-radius: 1.15rem;
}

.woocommerce-cart table.shop_table th,
.woocommerce-cart table.shop_table td {
  padding: 1rem 0.75rem;
}

.woocommerce-cart .woocommerce-cart-form__contents td.product-name {
  width: 38%;
}

.woocommerce-cart .product-name a {
  font-weight: 600;
}

.woocommerce-cart .product-thumbnail img {
  width: 88px;
  border-radius: 0.9rem;
}

.woocommerce-cart .actions {
  justify-content: space-between;
}

.woocommerce-cart .actions .coupon {
  flex: 1 1 24rem;
}

.woocommerce-cart .cart-collaterals {
  width: 100%;
}

.woocommerce-cart .cart-collaterals .cart_totals {
  position: static;
}

@media (min-width: 1080px) {
  .woocommerce-cart .woocommerce {
    grid-template-columns: minmax(0, 1.45fr) minmax(18rem, 24rem);
  }

  .woocommerce-cart .cart-collaterals .cart_totals {
    position: sticky;
    top: calc(var(--twl-header-height, 4.8rem) + 1rem);
  }
}

@media (max-width: 980px) {
  .woocommerce-cart .woocommerce {
    grid-template-columns: 1fr;
  }

  .woocommerce-cart .cart-collaterals .cart_totals {
    position: static;
  }
}

/* Wave 3 run-8 stabilization: make Woo account/cart/checkout/product/archive
   layout final and authoritative so older module layers stop leaking through. */

.woocommerce-account .woocommerce {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--twl-commerce-gap-lg);
  align-items: start;
}

.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content {
  float: none !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0;
  align-self: start;
}

.woocommerce-account .woocommerce-MyAccount-navigation {
  grid-column: 1;
}

.woocommerce-account .woocommerce-MyAccount-content {
  grid-column: 1;
}

@media (min-width: 981px) {
  .woocommerce-account .woocommerce {
    grid-template-columns: minmax(250px, 290px) minmax(0, 1fr) !important;
  }

  .woocommerce-account .woocommerce-MyAccount-navigation {
    grid-column: 1;
  }

  .woocommerce-account .woocommerce-MyAccount-content {
    grid-column: 2;
  }
}

.woocommerce #customer_login.u-columns,
.woocommerce-account #customer_login.u-columns,
.woocommerce .u-columns.col2-set {
  width: 100% !important;
  margin: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--twl-commerce-gap-lg);
  align-items: start;
}

.woocommerce #customer_login.u-columns .u-column1,
.woocommerce #customer_login.u-columns .u-column2,
.woocommerce-account #customer_login.u-columns .u-column1,
.woocommerce-account #customer_login.u-columns .u-column2 {
  width: 100% !important;
  min-width: 0;
}

@media (min-width: 900px) {
  .woocommerce #customer_login.u-columns,
  .woocommerce-account #customer_login.u-columns,
  .woocommerce .u-columns.col2-set {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.woocommerce-cart .woocommerce {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--twl-commerce-gap-lg);
  align-items: start;
  float: none !important;
}

.woocommerce-cart .woocommerce-cart-form {
  grid-column: 1 / -1;
  order: 1;
  float: none !important;
  width: 100% !important;
}

.woocommerce-cart .cart-collaterals {
  grid-column: 1 / -1;
  order: 2;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr);
  float: none !important;
  width: 100% !important;
}

.woocommerce-cart .cart-collaterals .cart_totals {
  width: min(100%, 24rem);
  margin-left: auto;
  position: static;
}

@media (min-width: 1080px) {
  .woocommerce-cart .woocommerce {
    grid-template-columns: minmax(0, 1fr);
  }

  .woocommerce-cart .cart-collaterals {
    grid-template-columns: minmax(0, 1fr) minmax(18rem, 24rem) !important;
  }

  .woocommerce-cart .cart-collaterals .cart_totals {
    grid-column: 2;
    position: sticky;
    top: calc(var(--twl-header-height, 4.8rem) + 1rem);
  }
}

.woocommerce-checkout form.checkout {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--twl-commerce-gap-lg);
  align-items: start;
}

.woocommerce-checkout #customer_details,
.woocommerce-checkout #order_review,
.woocommerce-checkout #payment,
.woocommerce-checkout #order_review_heading {
  align-self: start !important;
}

@media (min-width: 1080px) {
  .woocommerce-checkout form.checkout {
    grid-template-columns: minmax(0, 1.45fr) minmax(20rem, 24rem);
  }

  .woocommerce-checkout #customer_details {
    grid-column: 1;
  }

  .woocommerce-checkout #order_review_heading,
  .woocommerce-checkout #order_review,
  .woocommerce-checkout #payment {
    grid-column: 2;
  }
}

.single-product .twl-main--commerce > .woocommerce {
  width: min(100%, 1320px);
  margin-inline: auto;
}

.single-product .woocommerce div.product {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(1rem, 2vw, 1.4rem);
  max-width: 1320px;
  margin-inline: auto;
  padding: clamp(1rem, 2vw, 1.5rem);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: calc(var(--twl-commerce-radius) + 0.2rem);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02)),
    linear-gradient(180deg, rgba(12, 12, 12, 0.94), rgba(5, 5, 5, 0.9));
  box-shadow: var(--twl-commerce-shadow);
  align-items: start;
  overflow: hidden;
}

@media (min-width: 980px) {
  .single-product .woocommerce div.product {
    grid-template-columns: minmax(24rem, 1.08fr) minmax(20rem, 0.92fr);
  }
}

.single-product .woocommerce div.product > .woocommerce-product-gallery,
.single-product .woocommerce div.product > .summary.entry-summary {
  width: 100%;
  min-width: 0;
  margin: 0;
  box-shadow: none;
}

.single-product .woocommerce div.product > .summary.entry-summary {
  display: grid;
  align-content: start;
  gap: 0.95rem;
}

.single-product .woocommerce div.product > .woocommerce-product-gallery {
  grid-column: 1;
  grid-row: 1;
  padding: clamp(1rem, 2vw, 1.35rem) clamp(1rem, 2vw, 1.35rem) 0;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-bottom: 0;
  border-radius: 1.35rem 1.35rem 0 0;
  background: linear-gradient(180deg, rgba(68, 68, 68, 0.96), rgba(35, 35, 35, 0.96));
}

.single-product .woocommerce div.product > .summary.entry-summary {
  grid-column: 1;
  grid-row: 2;
  padding: 0 clamp(1rem, 2vw, 1.35rem) clamp(1rem, 2vw, 1.35rem);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-top: 0;
  border-radius: 0 0 1.35rem 1.35rem;
  background: linear-gradient(180deg, rgba(68, 68, 68, 0.96), rgba(35, 35, 35, 0.96));
}

.single-product .woocommerce div.product .woocommerce-product-gallery__trigger,
.single-product .woocommerce div.product .sku_wrapper,
.single-product .woocommerce div.product .posted_in,
.single-product .woocommerce div.product .product_meta,
.single-product .woocommerce div.product .woocommerce-message,
.single-product .woocommerce div.product > .woocommerce-tabs {
  display: none !important;
}

.single-product .woocommerce div.product .product_title {
  font-size: clamp(2.2rem, 4vw, 4rem);
  line-height: 0.94;
}

.single-product .woocommerce div.product .price {
  font-size: clamp(1.3rem, 2vw, 1.9rem);
}

.single-product .woocommerce div.product .summary.entry-summary > * {
  margin-bottom: 0;
}

.single-product .woocommerce div.product .summary.entry-summary > * + * {
  margin-top: 0.95rem;
}

.single-product .woocommerce div.product .summary.entry-summary .woocommerce-product-details__short-description {
  padding: 0.85rem 1rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.03);
  font-size: 0.98rem;
  line-height: 1.65;
}

.single-product .woocommerce div.product form.cart {
  padding: 1rem 1.05rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.03);
}

.single-product .woocommerce div.product .variations_form table.variations {
  margin-bottom: 0.9rem;
}

.single-product .woocommerce div.product .woocommerce-product-gallery .flex-viewport,
.single-product .woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs {
  border-radius: 1.1rem;
  overflow: hidden;
}

.single-product .woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs {
  margin-top: 0.75rem;
}

.single-product .woocommerce div.product .group_table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 0.65rem;
}

.single-product .woocommerce div.product .group_table tr {
  background: rgba(255, 255, 255, 0.03);
}

.single-product .woocommerce div.product .group_table td {
  padding: 0.85rem 0.75rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.single-product .woocommerce div.product .group_table td:first-child {
  border-left: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 1rem 0 0 1rem;
}

.single-product .woocommerce div.product .group_table td:last-child {
  border-right: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 0 1rem 1rem 0;
}

.single-product .woocommerce div.product .group_table .qty {
  width: 5.4rem;
}

.single-product .woocommerce div.product .group_table .woocommerce-grouped-product-list-item__price {
  white-space: nowrap;
  color: var(--twl-commerce-accent);
  font-weight: 700;
}

.single-product .woocommerce div.product .twl-product-details-panel {
  grid-column: 2;
  grid-row: 1 / span 2;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 1.35rem;
  background: linear-gradient(180deg, rgba(68, 68, 68, 0.96), rgba(35, 35, 35, 0.96));
  overflow: hidden;
  align-self: start;
}

.single-product .woocommerce div.product .twl-product-details-panel summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.1rem;
  cursor: pointer;
  list-style: none;
  font-weight: 700;
}

.single-product .woocommerce div.product .twl-product-details-panel summary::-webkit-details-marker {
  display: none;
}

.single-product .woocommerce div.product .twl-product-details-panel summary::after {
  content: "+";
  font-size: 1.25rem;
  line-height: 1;
  color: var(--twl-commerce-accent);
}

.single-product .woocommerce div.product .twl-product-details-panel[open] summary::after {
  content: "−";
}

.single-product .woocommerce div.product .twl-product-details-panel__body {
  display: grid;
  gap: 1rem;
  padding: 0 1.1rem 1.15rem;
  color: var(--twl-commerce-muted-strong);
  line-height: 1.72;
}

.single-product .woocommerce div.product .twl-product-details-panel__section {
  padding: 0.95rem 1rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.03);
}

.single-product .woocommerce div.product .twl-product-details-panel__section > h2,
.single-product .woocommerce div.product .twl-product-details-panel__section > h3 {
  margin-top: 0;
}

.single-product .woocommerce div.product .twl-product-details-panel__body > :first-child {
  margin-top: 0;
}

.single-product .woocommerce div.product .twl-product-details-panel__body > :last-child {
  margin-bottom: 0;
}

.single-product .woocommerce div.product > .related.products,
.single-product .woocommerce div.product > .upsells.products {
  grid-column: 1 / -1;
  overflow: hidden;
}

.single-product .woocommerce div.product .related ul.products,
.single-product .woocommerce div.product .upsells ul.products {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(8.5rem, 9.5rem);
  grid-template-columns: none;
  gap: 0.7rem;
  overflow-x: auto;
  overflow-y: hidden;
  padding-bottom: 0.4rem;
  scrollbar-width: thin;
}

.single-product .woocommerce div.product .related ul.products li.product,
.single-product .woocommerce div.product .upsells ul.products li.product {
  min-width: 0;
  width: auto;
}

.single-product .woocommerce div.product .related ul.products li.product .woocommerce-loop-product__title,
.single-product .woocommerce div.product .upsells ul.products li.product .woocommerce-loop-product__title {
  font-size: 0.92rem;
  min-height: 0;
}

.single-product .woocommerce div.product .related ul.products li.product .button,
.single-product .woocommerce div.product .upsells ul.products li.product .button,
.single-product .woocommerce div.product .related ul.products li.product .added_to_cart,
.single-product .woocommerce div.product .upsells ul.products li.product .added_to_cart {
  min-height: 2.1rem;
  padding: 0.55rem 0.6rem;
  font-size: 0.72rem;
}

@media (max-width: 980px) {
  .single-product .woocommerce div.product > .woocommerce-product-gallery,
  .single-product .woocommerce div.product > .summary.entry-summary,
  .single-product .woocommerce div.product .twl-product-details-panel {
    grid-column: auto;
    grid-row: auto;
  }

  .single-product .woocommerce div.product .related ul.products,
  .single-product .woocommerce div.product .upsells ul.products {
    grid-auto-columns: minmax(8.5rem, 9.5rem);
  }
}

.tax-product_cat.term-tickets .twl-main--commerce,
.tax-product_cat.term-twl .twl-main--commerce {
  --twl-commerce-archive-min: 10.5rem;
}

.tax-product_cat.term-tickets .woocommerce ul.products,
.tax-product_cat.term-twl .woocommerce ul.products {
  justify-content: center;
  gap: clamp(0.7rem, 1.2vw, 0.95rem);
}

@media (min-width: 980px) {
  .tax-product_cat.term-tickets .woocommerce ul.products,
  .tax-product_cat.term-twl .woocommerce ul.products {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .tax-product_cat.term-tickets .woocommerce ul.products li.product .woocommerce-loop-product__title,
  .tax-product_cat.term-twl .woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-size: 1.05rem;
    padding: 0.9rem 0.9rem 0;
  }

  .tax-product_cat.term-tickets .woocommerce ul.products li.product .price,
  .tax-product_cat.term-twl .woocommerce ul.products li.product .price {
    padding: 0.45rem 0.9rem 0;
    font-size: 0.95rem;
  }

  .tax-product_cat.term-tickets .woocommerce ul.products li.product .button,
  .tax-product_cat.term-twl .woocommerce ul.products li.product .button,
  .tax-product_cat.term-tickets .woocommerce ul.products li.product .added_to_cart,
  .tax-product_cat.term-twl .woocommerce ul.products li.product .added_to_cart {
    margin: 0.85rem 0.9rem 0.95rem;
    width: calc(100% - 1.8rem);
    min-height: 2.45rem;
    font-size: 0.72rem;
  }
}

.post-type-archive-product .woocommerce ul.products,
.tax-product_cat .woocommerce ul.products {
  width: 100%;
  max-width: none;
}

@media (max-width: 767px) {
  .post-type-archive-product .woocommerce ul.products,
  .tax-product_cat .woocommerce ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.72rem;
  }

  .tax-product_cat.term-tickets .woocommerce ul.products,
  .tax-product_cat.term-twl .woocommerce ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .post-type-archive-product .woocommerce ul.products li.product,
  .tax-product_cat .woocommerce ul.products li.product {
    width: 100% !important;
    min-width: 0;
  }

  .post-type-archive-product .woocommerce ul.products li.product .woocommerce-loop-product__title,
  .tax-product_cat .woocommerce ul.products li.product .woocommerce-loop-product__title {
    padding: 0.85rem 0.85rem 0;
    font-size: 1rem;
  }

  .post-type-archive-product .woocommerce ul.products li.product .price,
  .tax-product_cat .woocommerce ul.products li.product .price {
    padding: 0.4rem 0.85rem 0;
    font-size: 0.94rem;
  }

  .post-type-archive-product .woocommerce ul.products li.product .button,
  .post-type-archive-product .woocommerce ul.products li.product .added_to_cart,
  .tax-product_cat .woocommerce ul.products li.product .button,
  .tax-product_cat .woocommerce ul.products li.product .added_to_cart {
    margin: 0.8rem 0.85rem 0.9rem;
    width: calc(100% - 1.7rem);
    min-height: 2.45rem;
    padding: 0.65rem 0.55rem;
    font-size: 0.74rem;
  }
}

.woocommerce-cart .actions {
  align-items: center;
}

.woocommerce-cart .actions .coupon {
  display: flex;
  flex: 1 1 auto;
  min-width: 0;
  align-items: center;
  gap: 0.55rem;
}

.woocommerce-cart .actions .coupon > * {
  margin: 0 !important;
}

#coupon_code,
#twl_gc_code {
  width: min(100%, 8.5rem);
  min-height: 2.65rem;
}

.woocommerce-cart-form .coupon button,
.woocommerce-cart .actions > .button[name="update_cart"] {
  min-height: 2.65rem;
  padding-inline: 1rem;
}

.woocommerce-checkout #customer_details,
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2,
.woocommerce-checkout .woocommerce-billing-fields {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.woocommerce-checkout #order_review_heading {
  order: -3;
  margin-top: 0;
}

.woocommerce-checkout #order_review {
  order: -2;
}

.woocommerce-checkout #payment {
  order: -1;
}

.woocommerce form .form-row.twl-wc-sms-consent-field .optional {
  display: none;
}

/* Wave 3 run-10 authoritative cleanup: archive sizing, cart structure, and
   checkout structure. Keep this block at the end so it wins over earlier
   stabilization layers. */

.post-type-archive-product .twl-main--commerce,
.tax-product_cat .twl-main--commerce {
  padding-inline: 0;
}

.post-type-archive-product .woocommerce,
.tax-product_cat .woocommerce {
  width: 100%;
  max-width: none;
}

.post-type-archive-product .woocommerce ul.products,
.tax-product_cat .woocommerce ul.products {
  width: 100% !important;
  max-width: none !important;
  justify-content: stretch !important;
  justify-items: stretch;
}

.post-type-archive-product .woocommerce ul.products li.product,
.tax-product_cat .woocommerce ul.products li.product {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  justify-self: stretch;
}

@media (min-width: 980px) {
  .tax-product_cat.term-tickets .woocommerce ul.products,
  .tax-product_cat.term-twl .woocommerce ul.products {
    grid-template-columns: repeat(auto-fit, minmax(11.6rem, 11.6rem)) !important;
    justify-content: center !important;
    justify-items: stretch;
    gap: 0.8rem !important;
  }

  .tax-product_cat.term-tickets .woocommerce ul.products li.product .woocommerce-loop-product__title,
  .tax-product_cat.term-twl .woocommerce ul.products li.product .woocommerce-loop-product__title {
    padding: 0.78rem 0.78rem 0;
    font-size: 0.96rem;
  }

  .tax-product_cat.term-tickets .woocommerce ul.products li.product .price,
  .tax-product_cat.term-twl .woocommerce ul.products li.product .price {
    padding: 0.34rem 0.78rem 0;
    font-size: 0.88rem;
  }

  .tax-product_cat.term-tickets .woocommerce ul.products li.product .button,
  .tax-product_cat.term-twl .woocommerce ul.products li.product .button,
  .tax-product_cat.term-tickets .woocommerce ul.products li.product .added_to_cart,
  .tax-product_cat.term-twl .woocommerce ul.products li.product .added_to_cart {
    margin: 0.68rem 0.78rem 0.82rem;
    width: calc(100% - 1.56rem);
    min-height: 2.15rem;
    padding: 0.52rem 0.5rem;
    font-size: 0.68rem;
  }
}

@media (max-width: 767px) {
  .post-type-archive-product .twl-main--commerce,
  .tax-product_cat .twl-main--commerce {
    padding-inline: clamp(0.45rem, 2.1vw, 0.75rem);
  }

  .post-type-archive-product .woocommerce ul.products,
  .tax-product_cat .woocommerce ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.68rem !important;
    justify-content: stretch !important;
  }

  .post-type-archive-product .woocommerce ul.products li.product,
  .tax-product_cat .woocommerce ul.products li.product {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
  }

  .post-type-archive-product .woocommerce ul.products li.product .woocommerce-loop-product__title,
  .tax-product_cat .woocommerce ul.products li.product .woocommerce-loop-product__title {
    padding: 0.72rem 0.72rem 0;
    font-size: 0.86rem;
    line-height: 1.08;
  }

  .post-type-archive-product .woocommerce ul.products li.product .price,
  .tax-product_cat .woocommerce ul.products li.product .price {
    padding: 0.32rem 0.72rem 0;
    font-size: 0.82rem;
  }

  .post-type-archive-product .woocommerce ul.products li.product .button,
  .post-type-archive-product .woocommerce ul.products li.product .added_to_cart,
  .tax-product_cat .woocommerce ul.products li.product .button,
  .tax-product_cat .woocommerce ul.products li.product .added_to_cart {
    margin: 0.62rem 0.72rem 0.82rem;
    width: calc(100% - 1.44rem);
    min-height: 2.18rem;
    padding: 0.52rem 0.4rem;
    font-size: 0.66rem;
    line-height: 1.08;
    letter-spacing: 0.03em;
  }
}

.woocommerce-cart .woocommerce {
  display: grid;
  gap: 0;
  overflow: hidden;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 1.7rem;
  background: linear-gradient(180deg, rgba(30, 30, 30, 0.96), rgba(16, 16, 16, 0.97));
  box-shadow: 0 20px 46px rgba(0, 0, 0, 0.32);
}

.woocommerce-cart .woocommerce-cart-form,
.woocommerce-cart .cart-collaterals,
.woocommerce-cart .cart-collaterals .cart_totals {
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.woocommerce-cart .woocommerce-cart-form {
  padding: 0 0 0.4rem;
}

.woocommerce-cart .woocommerce-cart-form__contents {
  margin: 0;
}

.woocommerce-cart .woocommerce-cart-form__contents thead th,
.woocommerce-cart .woocommerce-cart-form__contents tbody td,
.woocommerce-cart .woocommerce-cart-form__contents tfoot td {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.woocommerce-cart .woocommerce-cart-form__contents tbody tr.cart_item:nth-of-type(odd) td {
  background: rgba(255, 255, 255, 0.018);
}

.woocommerce-cart .woocommerce-cart-form__contents tbody tr.cart_item:nth-of-type(even) td {
  background: rgba(255, 255, 255, 0.038);
}

.woocommerce-cart .woocommerce-cart-form__contents td,
.woocommerce-cart .woocommerce-cart-form__contents th {
  vertical-align: middle;
}

.woocommerce-cart .woocommerce-cart-form__contents td.product-remove,
.woocommerce-cart .woocommerce-cart-form__contents th.product-remove {
  width: 3.1rem;
  padding-right: 0;
}

.woocommerce-cart .woocommerce-cart-form__contents td.product-thumbnail,
.woocommerce-cart .woocommerce-cart-form__contents th.product-thumbnail {
  width: 5.1rem;
  padding-left: 0;
  padding-right: 0.65rem;
}

.woocommerce-cart .woocommerce-cart-form__contents td.product-name,
.woocommerce-cart .woocommerce-cart-form__contents th.product-name {
  padding-left: 0.35rem;
  text-align: left;
}

.woocommerce-cart .woocommerce-cart-form__contents td.product-price,
.woocommerce-cart .woocommerce-cart-form__contents td.product-quantity,
.woocommerce-cart .woocommerce-cart-form__contents td.product-subtotal,
.woocommerce-cart .woocommerce-cart-form__contents th.product-price,
.woocommerce-cart .woocommerce-cart-form__contents th.product-quantity,
.woocommerce-cart .woocommerce-cart-form__contents th.product-subtotal {
  white-space: nowrap;
}

.woocommerce-cart .product-thumbnail img {
  width: 3rem;
  max-width: 3rem;
  border-radius: 0.5rem;
}

.woocommerce-cart .actions {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  flex-wrap: wrap;
  padding-top: 0.95rem;
}

.woocommerce-cart .actions .coupon {
  display: flex;
  align-items: center;
  flex: 1 1 auto;
  flex-wrap: wrap;
  gap: 0.5rem;
  min-width: 0;
}

.woocommerce-cart .actions .coupon > *,
.woocommerce-cart .actions .twl-giftcard-coupon > * {
  margin: 0 !important;
}

.woocommerce-cart .actions .twl-giftcard-coupon,
.woocommerce-cart .actions .coupon .twl-gc-inline {
  display: inline-flex !important;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: nowrap;
}

.woocommerce-cart .actions input[type="text"],
.woocommerce-cart .actions input[type="search"],
.woocommerce-cart .actions input[type="email"] {
  min-height: 2.45rem;
}

.woocommerce-cart .actions #coupon_code,
.woocommerce-cart .actions #twl_gc_code {
  width: min(100%, 8rem);
}

.woocommerce-cart .actions .button,
.woocommerce-cart .actions button,
.woocommerce-cart .actions input[type="submit"] {
  min-height: 2.45rem;
  padding-inline: 0.95rem;
  font-size: 0.78rem;
}

.woocommerce-cart .actions .button[name="update_cart"] {
  margin-left: auto;
}

.woocommerce-cart .cart-collaterals {
  display: grid;
  justify-items: end;
  padding: 1.1rem 1.3rem 1.35rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.woocommerce-cart .cart-collaterals .cart_totals {
  width: min(100%, 30rem);
  padding: 0;
}

.woocommerce-cart .cart-collaterals .cart_totals table th,
.woocommerce-cart .cart-collaterals .cart_totals table td {
  padding-block: 0.82rem;
  border-top-color: rgba(255, 255, 255, 0.08);
}

.woocommerce-cart .cart-collaterals .cart_totals table th {
  width: 1%;
  white-space: nowrap;
  text-align: right;
  padding-right: 0.85rem;
}

.woocommerce-cart .cart-collaterals .cart_totals table td {
  text-align: right;
}

.woocommerce-checkout form.checkout {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(20rem, 0.88fr);
  column-gap: clamp(1rem, 2.2vw, 1.6rem);
  row-gap: 1rem;
  align-items: start;
}

.woocommerce-checkout #customer_details {
  grid-column: 1;
  grid-row: 1 / span 2;
  padding: 1.25rem 1.2rem;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  border-radius: 1.45rem;
  background: rgba(229, 229, 229, 0.12) !important;
  box-shadow: none !important;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.woocommerce-checkout #order_review_heading {
  grid-column: 2;
  grid-row: 1;
  align-self: end;
  margin: 0 0 0.15rem;
}

.woocommerce-checkout #order_review {
  grid-column: 2;
  grid-row: 2;
  align-self: start;
  margin: 0;
}

.woocommerce-checkout #payment {
  margin-top: 0.9rem;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.woocommerce-checkout .woocommerce-billing-fields__field-wrapper input.input-text,
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper textarea,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper input.input-text,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper textarea,
.woocommerce-checkout .select2-container--default .select2-selection--single {
  background: rgba(235, 235, 235, 0.82) !important;
  color: #171717 !important;
  border-color: rgba(255, 255, 255, 0.16) !important;
  box-shadow: none !important;
}

.woocommerce-checkout .select2-container--default .select2-selection--single,
.woocommerce-checkout .select2-container--default.select2-container--open .select2-selection--single,
.woocommerce-checkout .select2-container--default.select2-container--focus .select2-selection--single {
  background-image: none !important;
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered,
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
  background: transparent !important;
  box-shadow: none !important;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot th,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot td {
  padding-block: 0.82rem;
  text-align: right;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot th {
  width: 1%;
  white-space: nowrap;
  padding-right: 0.85rem;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.cart-subtotal,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.fee,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.order-total {
  background: rgba(255, 255, 255, 0.035);
}

@media (max-width: 980px) {
  .woocommerce-checkout form.checkout {
    grid-template-columns: 1fr;
  }

  .woocommerce-checkout #customer_details,
  .woocommerce-checkout #order_review_heading,
  .woocommerce-checkout #order_review {
    grid-column: auto;
    grid-row: auto;
  }
}

@media (max-width: 767px) {
  .woocommerce-cart .actions {
    align-items: stretch;
  }

  .woocommerce-cart .actions .coupon,
  .woocommerce-cart .actions .twl-giftcard-coupon,
  .woocommerce-cart .actions .coupon .twl-gc-inline {
    width: 100%;
  }

  .woocommerce-cart .actions .twl-giftcard-coupon,
  .woocommerce-cart .actions .coupon .twl-gc-inline {
    flex-wrap: wrap;
  }

  .woocommerce-cart .actions .button[name="update_cart"] {
    margin-left: 0;
  }

  .woocommerce-cart .cart-collaterals {
    justify-items: stretch;
  }

  .woocommerce-cart .cart-collaterals .cart_totals {
    width: 100%;
  }
}

/* Wave 3 structural authority pass: keep Woo content padding separate from the
   full-bleed hero, stop archive cards from stretching past the intended TWL
   card width, and restore real table-cell behavior for cart actions. */

.twl-main--commerce > .twl-commerce-content > .woocommerce-notices-wrapper,
.twl-main--commerce > .twl-commerce-content > .woocommerce,
.twl-main--commerce > .twl-commerce-content > .woocommerce-page {
  width: 100%;
  max-width: none;
  padding-inline: var(--twl-content-inline-pad);
  box-sizing: border-box;
}

.post-type-archive-product .twl-main--commerce,
.tax-product_cat .twl-main--commerce {
  --twl-shop-card-width: 16.076rem;
}

.post-type-archive-product .woocommerce ul.products,
.tax-product_cat .woocommerce ul.products {
  grid-template-columns: repeat(auto-fit, minmax(var(--twl-shop-card-width), var(--twl-shop-card-width))) !important;
  justify-content: center !important;
  justify-items: stretch !important;
  gap: clamp(0.75rem, 1.2vw, 0.95rem) !important;
}

.post-type-archive-product .woocommerce ul.products li.product,
.tax-product_cat .woocommerce ul.products li.product {
  width: var(--twl-shop-card-width) !important;
  max-width: var(--twl-shop-card-width) !important;
  min-width: 0 !important;
  justify-self: stretch !important;
}

@media (max-width: 767px) and (min-width: 560px) {
  .post-type-archive-product .twl-main--commerce > .twl-commerce-content,
  .tax-product_cat .twl-main--commerce > .twl-commerce-content {
    padding-inline: clamp(0.45rem, 1.6vw, 0.7rem);
  }

  .post-type-archive-product .woocommerce ul.products,
  .tax-product_cat .woocommerce ul.products {
    grid-template-columns: repeat(2, minmax(var(--twl-shop-card-width), var(--twl-shop-card-width))) !important;
    justify-content: center !important;
    gap: 0.8rem !important;
  }

  .post-type-archive-product .woocommerce ul.products li.product,
  .tax-product_cat .woocommerce ul.products li.product {
    width: var(--twl-shop-card-width) !important;
    max-width: var(--twl-shop-card-width) !important;
  }
}

@media (max-width: 559px) {
  .post-type-archive-product .twl-main--commerce > .twl-commerce-content,
  .tax-product_cat .twl-main--commerce > .twl-commerce-content {
    padding-inline: 0.45rem;
  }

  .post-type-archive-product .woocommerce ul.products,
  .tax-product_cat .woocommerce ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    justify-content: stretch !important;
    gap: 0.65rem !important;
  }

  .post-type-archive-product .woocommerce ul.products li.product,
  .tax-product_cat .woocommerce ul.products li.product {
    width: auto !important;
    max-width: none !important;
  }
}

.woocommerce-cart .woocommerce {
  gap: 0;
}

.woocommerce-cart .woocommerce-cart-form {
  padding: 0;
}

.woocommerce-cart .woocommerce-cart-form__contents {
  width: 100%;
  margin: 0;
  border: 0;
  border-radius: 0;
}

.woocommerce-cart .woocommerce-cart-form__contents thead th,
.woocommerce-cart .woocommerce-cart-form__contents tbody td,
.woocommerce-cart .woocommerce-cart-form__contents tfoot td {
  padding-block: 1rem;
}

.woocommerce-cart .woocommerce-cart-form__contents thead th:first-child,
.woocommerce-cart .woocommerce-cart-form__contents tbody td:first-child,
.woocommerce-cart .woocommerce-cart-form__contents tfoot td:first-child {
  padding-left: var(--twl-content-inline-pad, 69px);
}

.woocommerce-cart .woocommerce-cart-form__contents thead th:last-child,
.woocommerce-cart .woocommerce-cart-form__contents tbody td:last-child,
.woocommerce-cart .woocommerce-cart-form__contents tfoot td:last-child {
  padding-right: var(--twl-content-inline-pad, 69px);
}

.woocommerce-cart .woocommerce-cart-form__contents td.product-remove,
.woocommerce-cart .woocommerce-cart-form__contents th.product-remove {
  width: 2.55rem;
  padding-right: 0.35rem;
}

.woocommerce-cart .woocommerce-cart-form__contents td.product-thumbnail,
.woocommerce-cart .woocommerce-cart-form__contents th.product-thumbnail {
  width: 3.7rem;
  padding-left: 0;
  padding-right: 0.55rem;
}

.woocommerce-cart .woocommerce-cart-form__contents td.product-name,
.woocommerce-cart .woocommerce-cart-form__contents th.product-name {
  padding-left: 0;
  text-align: left;
}

.woocommerce-cart .woocommerce-cart-form__contents td.actions {
  display: table-cell !important;
  width: auto !important;
  padding-top: 1.05rem !important;
  padding-bottom: 1.05rem !important;
  text-align: left;
  vertical-align: middle;
  background: rgba(255, 255, 255, 0.02);
}

.woocommerce-cart .woocommerce-cart-form__contents td.actions > .coupon {
  display: inline-flex !important;
  align-items: center;
  gap: 0.55rem;
  flex-wrap: wrap;
  width: 100%;
  max-width: none;
  min-width: min(100%, 20rem);
  margin: 0;
}

.woocommerce-cart .woocommerce-cart-form__contents td.actions > .coupon .input-text {
  width: 11.25rem;
  max-width: 11.25rem;
  min-height: 2.4rem;
}

.woocommerce-cart .woocommerce-cart-form__contents td.actions > .coupon > .twl-giftcard-coupon {
  display: inline-flex !important;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  width: 100%;
  min-width: 0;
  margin-left: 0.45rem;
}

.woocommerce-cart .woocommerce-cart-form__contents .twl-giftcard-coupon__label {
  color: var(--twl-commerce-muted-strong);
  font-weight: 600;
}

.woocommerce-cart .woocommerce-cart-form__contents .twl-giftcard-coupon__input {
  width: 11.25rem;
  max-width: 11.25rem;
  min-height: 2.4rem;
}

.woocommerce-cart .woocommerce-cart-form__contents td.actions .button,
.woocommerce-cart .woocommerce-cart-form__contents td.actions button,
.woocommerce-cart .woocommerce-cart-form__contents td.actions input[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.4rem;
  padding: 0.5rem 0.95rem;
  font-size: 0.78rem;
  line-height: 1.1;
  text-align: center;
}

.woocommerce-cart .woocommerce-cart-form__contents td.actions > .button[name="update_cart"] {
  float: right;
  margin: 0;
}

.woocommerce-cart .cart-collaterals {
  border-top: 0 !important;
  padding-top: 0.55rem;
}

.woocommerce-cart .cart-collaterals .cart_totals table th {
  width: auto;
  padding-right: 0.55rem;
}

.woocommerce-cart .cart-collaterals .cart_totals table td {
  width: 1%;
  white-space: nowrap;
}

.woocommerce-checkout #customer_details {
  background: rgba(214, 214, 214, 0.16) !important;
}

.woocommerce-checkout #order_review_heading {
  align-self: start !important;
  margin: 0 0 0.55rem !important;
}

.woocommerce-checkout #order_review {
  align-self: start !important;
  margin-top: 0 !important;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot th {
  width: auto;
  padding-right: 0.55rem;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot td {
  width: 1%;
  white-space: nowrap;
}

.woocommerce-checkout .select2-container--default .select2-selection--single,
.woocommerce-checkout .select2-container--default.select2-container--open .select2-selection--single,
.woocommerce-checkout .select2-container--default.select2-container--focus .select2-selection--single,
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered,
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
  background: rgba(228, 228, 228, 0.78) !important;
  background-image: none !important;
  box-shadow: none !important;
}

.woocommerce-checkout .select2-container--default .select2-selection--single::before,
.woocommerce-checkout .select2-container--default .select2-selection--single::after {
  display: none !important;
}

@media (max-width: 980px) {
  .woocommerce-cart .woocommerce-cart-form__contents thead th:first-child,
  .woocommerce-cart .woocommerce-cart-form__contents tbody td:first-child,
  .woocommerce-cart .woocommerce-cart-form__contents tfoot td:first-child {
    padding-left: 1rem;
  }

  .woocommerce-cart .woocommerce-cart-form__contents thead th:last-child,
  .woocommerce-cart .woocommerce-cart-form__contents tbody td:last-child,
  .woocommerce-cart .woocommerce-cart-form__contents tfoot td:last-child {
    padding-right: 1rem;
  }

  .woocommerce-cart .woocommerce-cart-form__contents td.actions > .coupon {
    flex-wrap: wrap;
    max-width: 100%;
  }
}

@media (max-width: 767px) {
  .woocommerce-cart .woocommerce-cart-form__contents td.actions {
    display: block !important;
    padding-top: 0.95rem !important;
  }

  .woocommerce-cart .woocommerce-cart-form__contents td.actions > .coupon,
  .woocommerce-cart .woocommerce-cart-form__contents td.actions > .coupon > .twl-giftcard-coupon {
    display: flex !important;
    width: 100%;
    max-width: 100%;
    margin-left: 0;
  }

  .woocommerce-cart .woocommerce-cart-form__contents td.actions > .coupon .input-text,
  .woocommerce-cart .woocommerce-cart-form__contents .twl-giftcard-coupon__input {
    width: 100%;
    max-width: none;
  }

  .woocommerce-cart .woocommerce-cart-form__contents td.actions > .button[name="update_cart"] {
    float: none;
    display: block;
    width: 100%;
    margin-top: 0.75rem;
  }
}

/* Wave 3 final Woo foundation pass: use exact archive card widths, keep cart
   spacing inside the theme padding system, tighten checkout's sticky order
   column, and power the local single-product template override. */

.post-type-archive-product .twl-main--commerce,
.tax-product_cat .twl-main--commerce {
  --twl-shop-card-width: 257.219px;
}

.post-type-archive-product .woocommerce ul.products,
.tax-product_cat .woocommerce ul.products {
  grid-template-columns: repeat(auto-fit, minmax(var(--twl-shop-card-width), var(--twl-shop-card-width))) !important;
  justify-content: center !important;
  justify-items: stretch !important;
  gap: 0.95rem !important;
}

.post-type-archive-product .woocommerce ul.products li.product,
.tax-product_cat .woocommerce ul.products li.product {
  width: var(--twl-shop-card-width) !important;
  max-width: var(--twl-shop-card-width) !important;
  min-width: 0 !important;
}

@media (max-width: 980px) and (min-width: 560px) {
  .post-type-archive-product .woocommerce ul.products,
  .tax-product_cat .woocommerce ul.products {
    grid-template-columns: repeat(2, minmax(var(--twl-shop-card-width), var(--twl-shop-card-width))) !important;
    justify-content: center !important;
    gap: 0.8rem !important;
  }
}

@media (max-width: 559px) {
  .post-type-archive-product .woocommerce ul.products,
  .tax-product_cat .woocommerce ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    justify-content: stretch !important;
    gap: 0.65rem !important;
  }

  .post-type-archive-product .woocommerce ul.products li.product,
  .tax-product_cat .woocommerce ul.products li.product {
    width: auto !important;
    max-width: none !important;
  }
}

.woocommerce-cart .woocommerce {
  padding: 0 var(--twl-content-inline-pad) 1.25rem;
}

.woocommerce-cart .woocommerce-cart-form,
.woocommerce-cart .cart-collaterals {
  padding-inline: 0;
}

.woocommerce-cart .woocommerce-cart-form__contents thead th:first-child,
.woocommerce-cart .woocommerce-cart-form__contents tbody td:first-child,
.woocommerce-cart .woocommerce-cart-form__contents tfoot td:first-child,
.woocommerce-cart .woocommerce-cart-form__contents thead th:last-child,
.woocommerce-cart .woocommerce-cart-form__contents tbody td:last-child,
.woocommerce-cart .woocommerce-cart-form__contents tfoot td:last-child {
  padding-left: 1rem;
  padding-right: 1rem;
}

.woocommerce-cart .woocommerce-cart-form__contents td.actions {
  padding-top: 0.9rem !important;
  padding-bottom: 0.95rem !important;
}

.woocommerce-cart .cart-collaterals {
  padding-top: 0.4rem;
  border-top: 0 !important;
}

.woocommerce-cart .cart-collaterals .cart_totals {
  width: min(100%, 34rem);
}

@media (max-width: 980px) {
  .woocommerce-cart .woocommerce {
    padding-inline: 1rem;
  }
}

.woocommerce-checkout #customer_details {
  background:
    linear-gradient(180deg, rgba(190, 190, 190, 0.18), rgba(120, 120, 120, 0.12)) !important;
  border-color: rgba(255, 255, 255, 0.14) !important;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

.woocommerce-checkout .woocommerce-billing-fields__field-wrapper input.input-text,
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper textarea,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper input.input-text,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper textarea,
.woocommerce-checkout .select2-container--default .select2-selection--single {
  background: rgba(176, 176, 176, 0.72) !important;
  color: #121212 !important;
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
  color: #121212 !important;
}

.woocommerce-checkout .select2-dropdown,
.woocommerce-checkout .select2-results,
.woocommerce-checkout .select2-results__options {
  background: rgba(60, 60, 60, 0.98) !important;
  color: rgba(255, 255, 255, 0.96) !important;
}

.woocommerce-checkout .select2-results__option {
  background: transparent !important;
  color: rgba(255, 255, 255, 0.96) !important;
}

.woocommerce-checkout .select2-results__option--highlighted.select2-results__option--selectable,
.woocommerce-checkout .select2-results__option--selected {
  background: rgba(201, 172, 140, 0.26) !important;
  color: rgba(255, 255, 255, 1) !important;
}

@media (min-width: 1080px) {
  .woocommerce-checkout form.checkout {
    grid-template-columns: minmax(0, 1.2fr) minmax(22rem, 27rem) !important;
  }

  .woocommerce-checkout #customer_details {
    grid-column: 1;
    grid-row: 1;
  }

  .woocommerce-checkout #order_review_heading,
  .woocommerce-checkout #order_review {
    grid-column: 2;
    grid-row: 1;
  }

  .woocommerce-checkout #order_review_heading {
    position: sticky;
    top: calc(var(--twl-header-height, 4.8rem) + 1rem);
    z-index: 2;
    margin: 0 0 0.85rem !important;
  }

  .woocommerce-checkout #order_review {
    position: sticky;
    top: calc(var(--twl-header-height, 4.8rem) + 4.9rem);
    margin: 0 !important;
  }
}

/*
 * Single-product authority
 */
.single-product .twl-product-shell.twl-product-shell--override {
  width: 100% !important;
  margin: 0 !important;
  display: grid !important;
  gap: clamp(1rem, 2vw, 1.5rem);
  align-items: start;
}

.single-product .woocommerce div.product.twl-product-shell.twl-product-shell--override,
.single-product .woocommerce-page div.product.twl-product-shell.twl-product-shell--override {
  float: none !important;
  width: 100% !important;
  margin: 0 !important;
}

.single-product .twl-product-shell.twl-product-shell--override .twl-product-layout {
  display: grid !important;
  gap: clamp(1rem, 2vw, 1.5rem);
  align-items: start;
}

@media (min-width: 960px) {
  .single-product .twl-product-shell.twl-product-shell--override .twl-product-layout--with-details {
    grid-template-columns: minmax(0, 1.55fr) minmax(20rem, 0.9fr);
  }
}

.single-product .twl-product-shell.twl-product-shell--override .twl-product-primary-card,
.single-product .twl-product-shell.twl-product-shell--override .twl-product-details-card {
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 1rem;
  background: #2b2f33;
  box-shadow: var(--twl-commerce-shadow);
  overflow: hidden;
}

.single-product .twl-product-shell.twl-product-shell--override .twl-product-primary-card__inner {
  display: grid !important;
  grid-template-columns: clamp(280px, 34vw, 420px) minmax(0, 1fr);
  gap: 0;
  align-items: stretch;
  min-height: 100%;
}

.single-product .twl-product-shell.twl-product-shell--override .twl-product-primary-card__media,
.single-product .twl-product-shell.twl-product-shell--override .summary.entry-summary.twl-product-primary-card__summary {
  float: none !important;
  width: auto !important;
  clear: none !important;
  margin: 0 !important;
  position: static !important;
}

.single-product .twl-product-shell.twl-product-shell--override .twl-product-primary-card__media {
  min-width: 0;
  padding: 0;
  background: #000;
  border-right: 1px solid rgba(255, 255, 255, 0.08);
}

.single-product .twl-product-shell.twl-product-shell--override .twl-product-primary-card__summary {
  display: block !important;
  min-width: 0;
  padding: 1.25rem 1.3rem;
}

.single-product .twl-product-shell.twl-product-shell--override .twl-product-primary-card__copy {
  display: grid;
  grid-template-rows: auto 1fr auto;
  gap: 1rem;
  min-height: 100%;
}

.single-product .twl-product-shell.twl-product-shell--override .twl-product-primary-card__meta {
  display: grid;
  gap: 0.85rem;
}

.single-product .twl-product-shell.twl-product-shell--override .twl-product-primary-card__purchase {
  margin-top: auto;
  padding-top: 0.25rem;
}

.single-product .twl-product-shell.twl-product-shell--override .product_title {
  margin: 0 !important;
  font-size: clamp(1.95rem, 2.8vw, 3.2rem);
  line-height: 1.02;
  overflow-wrap: anywhere;
}

.single-product .twl-product-shell.twl-product-shell--override .price {
  margin: 0 !important;
  font-size: clamp(1.2rem, 1.6vw, 1.7rem);
  color: var(--twl-color-gold);
}

.single-product .twl-product-shell.twl-product-shell--override .woocommerce-product-gallery,
.single-product .twl-product-shell.twl-product-shell--override .woocommerce-product-gallery__wrapper,
.single-product .twl-product-shell.twl-product-shell--override .images {
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  opacity: 1 !important;
}

.single-product .twl-product-shell.twl-product-shell--override .woocommerce-product-gallery__wrapper,
.single-product .twl-product-shell.twl-product-shell--override .flex-control-thumbs {
  overflow: hidden;
  border-radius: 0;
}

.single-product .twl-product-shell.twl-product-shell--override .woocommerce-product-gallery__wrapper {
  background: #000;
}

.single-product .twl-product-shell.twl-product-shell--override .woocommerce-product-gallery__image img,
.single-product .twl-product-shell.twl-product-shell--override .woocommerce-product-gallery__wrapper img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center top;
}

.single-product .twl-product-shell.twl-product-shell--override .woocommerce-product-gallery__trigger,
.single-product .twl-product-shell.twl-product-shell--override .product_meta,
.single-product .twl-product-shell.twl-product-shell--override .sku_wrapper,
.single-product .twl-product-shell.twl-product-shell--override .posted_in,
.single-product .twl-product-shell.twl-product-shell--override .tagged_as,
.single-product .twl-product-shell.twl-product-shell--override .woocommerce-tabs {
  display: none !important;
}

.single-product .twl-product-shell.twl-product-shell--override .twl-product-primary-card__summary form.cart,
.single-product .twl-product-shell.twl-product-shell--override .twl-product-primary-card__summary .variations_form {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.single-product .twl-product-shell.twl-product-shell--override form.cart:not(.grouped_form):not(.variations_form) {
  display: grid;
  grid-template-columns: 5.5rem minmax(13rem, max-content);
  gap: 0.85rem;
  align-items: center;
  justify-content: start;
}

.single-product .twl-product-shell.twl-product-shell--override form.cart:not(.grouped_form):not(.variations_form) .quantity {
  width: 5.4rem;
}

.single-product .twl-product-shell.twl-product-shell--override form.cart:not(.grouped_form):not(.variations_form) .single_add_to_cart_button {
  width: 100%;
  min-width: 12rem;
  justify-self: start;
}

.single-product .twl-product-shell.twl-product-shell--override .variations_form table.variations,
.single-product .twl-product-shell.twl-product-shell--override .variations_form table.variations tbody,
.single-product .twl-product-shell.twl-product-shell--override .variations_form table.variations tr,
.single-product .twl-product-shell.twl-product-shell--override .variations_form table.variations td {
  display: block !important;
  width: 100% !important;
}

.single-product .twl-product-shell.twl-product-shell--override .variations_form table.variations td {
  padding: 0 !important;
}

.single-product .twl-product-shell.twl-product-shell--override .variations_form table.variations tr {
  margin-bottom: 0.9rem;
}

.single-product .twl-product-shell.twl-product-shell--override .grouped_form {
  display: grid;
  gap: 0.9rem;
}

.single-product .twl-product-shell.twl-product-shell--override .grouped_form .group_table {
  width: 100%;
  margin: 0;
  border-collapse: collapse;
  table-layout: fixed;
}

.single-product .twl-product-shell.twl-product-shell--override .grouped_form .group_table tbody,
.single-product .twl-product-shell.twl-product-shell--override .grouped_form .group_table tr,
.single-product .twl-product-shell.twl-product-shell--override .grouped_form .group_table td,
.single-product .twl-product-shell.twl-product-shell--override .grouped_form .group_table th {
  background: transparent !important;
}

.single-product .twl-product-shell.twl-product-shell--override .grouped_form .group_table tr {
  display: grid;
  grid-template-columns: minmax(5.5rem, auto) minmax(0, 1fr) auto;
  gap: 0.9rem;
  align-items: center;
  padding: 0.8rem 0;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.single-product .twl-product-shell.twl-product-shell--override .grouped_form .group_table tr:first-child {
  border-top: 0;
  padding-top: 0;
}

.single-product .twl-product-shell.twl-product-shell--override .grouped_form .group_table td {
  padding: 0 !important;
  border: 0 !important;
}

.single-product .twl-product-shell.twl-product-shell--override .grouped_form .woocommerce-grouped-product-list-item__label a {
  color: rgba(255, 255, 255, 0.96);
  text-decoration: none;
  font-weight: 600;
}

.single-product .twl-product-shell.twl-product-shell--override .grouped_form .woocommerce-grouped-product-list-item__price {
  text-align: right;
  color: var(--twl-color-gold);
  white-space: nowrap;
}

.single-product .twl-product-shell.twl-product-shell--override .twl-product-details-card {
  padding: 1.15rem 1.2rem;
  align-self: stretch;
}

.single-product .twl-product-shell.twl-product-shell--override .twl-product-details-card__inner {
  display: grid;
  gap: 0.9rem;
}

.single-product .twl-product-shell.twl-product-shell--override .twl-product-details-card__title {
  margin: 0;
  font-size: clamp(1.3rem, 1.8vw, 1.7rem);
  line-height: 1.05;
}

.single-product .twl-product-shell.twl-product-shell--override .twl-product-details-card__section {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.single-product .twl-product-shell.twl-product-shell--override .twl-product-details-card__section + .twl-product-details-card__section {
  padding-top: 0.9rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.single-product .twl-product-shell.twl-product-shell--override .twl-product-details-card__section h3 {
  display: none;
}

.single-product .twl-product-shell.twl-product-shell--override .twl-product-details-card__content {
  color: rgba(255, 253, 248, 0.9);
}

.single-product .twl-product-shell.twl-product-shell--override .twl-product-details-card__content > :first-child {
  margin-top: 0;
}

.single-product .twl-product-shell.twl-product-shell--override .twl-product-details-card__content > :last-child {
  margin-bottom: 0;
}

.single-product .twl-product-shell.twl-product-shell--override .twl-product-detail-list {
  display: grid;
  gap: 0.7rem;
  margin: 0;
}

.single-product .twl-product-shell.twl-product-shell--override .twl-product-detail-list__row {
  display: grid;
  grid-template-columns: minmax(6.5rem, auto) minmax(0, 1fr);
  gap: 0.75rem;
  align-items: start;
}

.single-product .twl-product-shell.twl-product-shell--override .twl-product-detail-list__row dt,
.single-product .twl-product-shell.twl-product-shell--override .twl-product-detail-list__row dd {
  margin: 0;
}

.single-product .twl-product-shell.twl-product-shell--override .twl-product-detail-list__row dt {
  color: rgba(255, 253, 248, 0.66);
  font-weight: 700;
}

.single-product .twl-product-shell.twl-product-shell--override .twl-product-detail-list__row dd {
  color: rgba(255, 253, 248, 0.96);
}

.single-product .twl-product-shell.twl-product-shell--override .twl-product-related-row {
  grid-column: 1 / -1;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.single-product .twl-product-shell.twl-product-shell--override .twl-product-related-row .related.products {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
  width: 100%;
}

.single-product .twl-product-shell.twl-product-shell--override .twl-product-related-row .related.products > h2 {
  grid-column: 1 / -1;
  margin: 0;
  font-size: clamp(1rem, 1.3vw, 1.2rem);
  line-height: 1.15;
}

.single-product .twl-product-shell.twl-product-shell--override .twl-product-related-row .products {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 1rem !important;
  overflow: hidden !important;
  justify-content: flex-start !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

.single-product .twl-product-shell.twl-product-shell--override .twl-product-related-row .products li.product {
  flex: 0 0 200px !important;
  width: 200px !important;
  min-width: 200px !important;
  max-width: 200px !important;
  margin: 0 !important;
}

.single-product .twl-product-shell.twl-product-shell--override .twl-product-related-row .products li.product:nth-child(n + 5) {
  display: none !important;
}

.single-product .twl-product-shell.twl-product-shell--override .twl-product-related-row .products li.product a img {
  aspect-ratio: 1 / 1;
}

.single-product .twl-product-shell.twl-product-shell--override .twl-product-related-row .products li.product .button,
.single-product .twl-product-shell.twl-product-shell--override .twl-product-related-row .products li.product .added_to_cart {
  width: calc(100% - 1.7rem);
  margin: 0.7rem 0.85rem 0.85rem;
  min-height: 2.2rem;
  font-size: 0.68rem;
  padding: 0.5rem 0.45rem;
}

@media (max-width: 959px) {
  .single-product .twl-product-shell.twl-product-shell--override .twl-product-layout--with-details {
    grid-template-columns: 1fr;
  }

  .single-product .twl-product-shell.twl-product-shell--override .twl-product-primary-card__inner {
    grid-template-columns: 1fr;
  }

  .single-product .twl-product-shell.twl-product-shell--override .twl-product-primary-card__media {
    border-right: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  }

  .single-product .twl-product-shell.twl-product-shell--override form.cart:not(.grouped_form):not(.variations_form) {
    grid-template-columns: 1fr;
  }

  .single-product .twl-product-shell.twl-product-shell--override form.cart:not(.grouped_form):not(.variations_form) .single_add_to_cart_button {
    min-width: 0;
  }
}

.twl-checkout-spinner {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  place-items: center;
  background: rgba(6, 8, 14, 0.82);
  backdrop-filter: blur(6px);
}

.twl-checkout-spinner[hidden] {
  display: none;
}

.twl-checkout-spinner__inner {
  display: grid;
  justify-items: center;
  gap: 1rem;
  padding: 2rem;
  text-align: center;
}

.twl-checkout-spinner__inner .twl-site-spinner {
  --twl-spinner-size: 140px;
}

.twl-checkout-spinner__inner p {
  margin: 0;
  color: #fff;
  font-size: 1rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.twl-order-ticket-access {
  margin-top: 2rem;
  padding: 1.5rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 1.25rem;
  background: rgba(255, 255, 255, 0.03);
}

.twl-order-ticket-access__list {
  list-style: none;
  margin: 1rem 0 0;
  padding: 0;
}

.twl-order-ticket-access__item {
  display: grid;
  gap: 0.4rem;
  padding: 0.9rem 0;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.twl-order-ticket-access__item:first-child {
  border-top: 0;
  padding-top: 0;
}

.twl-order-ticket-access__links {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}

/* My Account form polish */
.woocommerce-account:not(.logged-in) .woocommerce form.login input[type="text"],
.woocommerce-account:not(.logged-in) .woocommerce form.login input[type="email"],
.woocommerce-account:not(.logged-in) .woocommerce form.login input[type="password"],
.woocommerce-account:not(.logged-in) .woocommerce form.register input[type="text"],
.woocommerce-account:not(.logged-in) .woocommerce form.register input[type="email"],
.woocommerce-account:not(.logged-in) .woocommerce form.register input[type="password"],
.woocommerce-account:not(.logged-in) .woocommerce .woocommerce-form-login input[type="text"],
.woocommerce-account:not(.logged-in) .woocommerce .woocommerce-form-login input[type="email"],
.woocommerce-account:not(.logged-in) .woocommerce .woocommerce-form-login input[type="password"],
.woocommerce-account:not(.logged-in) .woocommerce .woocommerce-form-register input[type="text"],
.woocommerce-account:not(.logged-in) .woocommerce .woocommerce-form-register input[type="email"],
.woocommerce-account:not(.logged-in) .woocommerce .woocommerce-form-register input[type="password"],
.woocommerce-account .woocommerce-EditAccountForm input[type="text"],
.woocommerce-account .woocommerce-EditAccountForm input[type="email"],
.woocommerce-account .woocommerce-EditAccountForm input[type="tel"],
.woocommerce-account .woocommerce-EditAccountForm input[type="password"] {
  background: rgba(20, 22, 28, 0.96) !important;
  color: rgba(255, 255, 255, 0.98) !important;
  border: 1px solid rgba(201, 172, 140, 0.34) !important;
}

.woocommerce-account:not(.logged-in) .woocommerce form.login input::placeholder,
.woocommerce-account:not(.logged-in) .woocommerce form.register input::placeholder,
.woocommerce-account:not(.logged-in) .woocommerce .woocommerce-form-login input::placeholder,
.woocommerce-account:not(.logged-in) .woocommerce .woocommerce-form-register input::placeholder,
.woocommerce-account .woocommerce-EditAccountForm input::placeholder {
  color: rgba(255, 255, 255, 0.48) !important;
}

.woocommerce-account:not(.logged-in) .woocommerce form.login input:focus,
.woocommerce-account:not(.logged-in) .woocommerce form.register input:focus,
.woocommerce-account:not(.logged-in) .woocommerce .woocommerce-form-login input:focus,
.woocommerce-account:not(.logged-in) .woocommerce .woocommerce-form-register input:focus,
.woocommerce-account .woocommerce-EditAccountForm input:focus {
  background: rgba(28, 31, 38, 0.98) !important;
  color: rgba(255, 255, 255, 1) !important;
}

.woocommerce-account:not(.logged-in) .woocommerce form.login input:-webkit-autofill,
.woocommerce-account:not(.logged-in) .woocommerce form.login input:-webkit-autofill:hover,
.woocommerce-account:not(.logged-in) .woocommerce form.login input:-webkit-autofill:focus,
.woocommerce-account:not(.logged-in) .woocommerce form.register input:-webkit-autofill,
.woocommerce-account:not(.logged-in) .woocommerce form.register input:-webkit-autofill:hover,
.woocommerce-account:not(.logged-in) .woocommerce form.register input:-webkit-autofill:focus,
.woocommerce-account:not(.logged-in) .woocommerce .woocommerce-form-login input:-webkit-autofill,
.woocommerce-account:not(.logged-in) .woocommerce .woocommerce-form-login input:-webkit-autofill:hover,
.woocommerce-account:not(.logged-in) .woocommerce .woocommerce-form-login input:-webkit-autofill:focus {
  -webkit-text-fill-color: rgba(255, 255, 255, 0.98);
  box-shadow: 0 0 0 1000px rgba(20, 22, 28, 0.96) inset !important;
  transition: background-color 9999s ease-out 0s;
}

.woocommerce-account:not(.logged-in) .woocommerce .password-input input,
.woocommerce-account .woocommerce-EditAccountForm .password-input input {
  padding-right: 4.15rem !important;
}

.woocommerce-account:not(.logged-in) .woocommerce .show-password-input,
.woocommerce-account .woocommerce-EditAccountForm .show-password-input {
  background: rgba(255, 255, 255, 0.14) !important;
  color: #fff !important;
}

.woocommerce-account .woocommerce-EditAccountForm .twl-account-sms-preferences {
  margin-top: 1.25rem;
}

.woocommerce-account .woocommerce-EditAccountForm .twl-account-sms-preferences legend {
  font-size: 1rem;
  font-weight: 700;
}

.woocommerce-account .woocommerce-EditAccountForm .twl-account-sms-preferences__intro {
  margin-bottom: 0.9rem;
}

.woocommerce-account .woocommerce-EditAccountForm .twl-account-sms-preferences__checkbox-row label.checkbox {
  display: flex;
  gap: 0.8rem;
  align-items: flex-start;
  color: rgba(255, 255, 255, 0.84);
}

.woocommerce-account .woocommerce-EditAccountForm .twl-account-sms-preferences__checkbox-row input[type="checkbox"] {
  margin-top: 0.3rem;
}

.woocommerce-account:not(.logged-in) .woocommerce .show-password-input:hover,
.woocommerce-account:not(.logged-in) .woocommerce .show-password-input:focus-visible,
.woocommerce-account .woocommerce-EditAccountForm .show-password-input:hover,
.woocommerce-account .woocommerce-EditAccountForm .show-password-input:focus-visible {
  background: rgba(201, 172, 140, 0.22) !important;
  color: #fff !important;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}

.woocommerce-account .woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--customer-logout {
  margin-top: auto;
}

.woocommerce-account .col2-set.addresses {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem;
}

.woocommerce-account .col2-set.addresses::before,
.woocommerce-account .col2-set.addresses::after {
  content: none;
}

.woocommerce-account .col2-set.addresses .col-1,
.woocommerce-account .col2-set.addresses .col-2 {
  float: none;
  width: 100%;
  max-width: none;
  margin: 0;
}

.woocommerce-account .woocommerce-Addresses,
.woocommerce-account .addresses {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
}

.woocommerce-account .woocommerce-Addresses .woocommerce-Address,
.woocommerce-account .addresses .woocommerce-Address {
  min-width: 0;
  width: 100%;
  height: 100%;
}

.woocommerce-account .woocommerce-Address-title {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: nowrap;
}

.woocommerce-account .woocommerce-Address-title h3,
.woocommerce-account .woocommerce-Address-title h2 {
  margin: 0;
  padding: 0;
  text-align: left;
}

.woocommerce-account .woocommerce-Address-title .edit {
  margin-top: 0;
  white-space: nowrap;
}

.woocommerce-account .woocommerce-Address,
.woocommerce-account .addresses .woocommerce-Address {
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  padding-top: 1.15rem;
  padding-right: 1.25rem;
  padding-bottom: 1.15rem;
  padding-left: 1.25rem;
}

.woocommerce-account .woocommerce-Address-title.title,
.woocommerce-account .woocommerce-Address-title,
.woocommerce-account .woocommerce-Address address,
.woocommerce-account .addresses .woocommerce-Address address {
  margin-left: 0 !important;
  padding-left: 0 !important;
}

header.woocommerce-Address-title.title::before,
header.woocommerce-Address-title.title::after {
  display: none !important;
  content: none !important;
}

.woocommerce-account .twl-passkeys-profile--account {
  margin-top: 0.25rem;
  padding: 1.4rem 1.5rem;
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 1.3rem;
  background: linear-gradient(180deg, rgba(255,255,255,0.08), rgba(255,255,255,0.04));
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow: var(--twl-commerce-shadow);
}

.woocommerce-account .twl-passkeys-profile--account h2,
.woocommerce-account .twl-passkeys-profile--account h3 {
  margin: 0 0 0.65rem;
}

.woocommerce-account .twl-passkeys-profile--account p {
  margin-top: 0;
}

.woocommerce-account .twl-passkeys-profile__account-register {
  display: grid;
  justify-items: start;
  gap: 0.7rem;
  margin: 1rem 0 1.25rem;
}

.woocommerce-account .twl-passkeys-profile__saved-devices .widefat {
  margin-top: 0.8rem;
}

@media (max-width: 900px) {
  .woocommerce-account .col2-set.addresses,
  .woocommerce-account .woocommerce-Addresses,
  .woocommerce-account .addresses {
    grid-template-columns: 1fr;
  }

  .woocommerce-account .woocommerce-Address-title {
    flex-wrap: wrap;
  }
}

.message__container.locale--US {
  display: none !important;
}


/* ===== modules.css ===== */
.twl-main--commerce {
  display: grid;
  row-gap: clamp(1.5rem, 3vw, 2.5rem);
}

.twl-main--commerce > .twl-hero {
  margin-bottom: clamp(0.5rem, 1.5vw, 1rem);
}

.twl-menu-cart__link {
  position: relative;
  min-width: 3rem;
  min-height: 3rem;
  padding: 0.72rem;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--twl-color-gold) 62%, rgba(255, 255, 255, 0.18));
  background: rgba(0, 0, 0, 0.72);
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.08),
    0 10px 24px rgba(0, 0, 0, 0.24);
}

.twl-menu-cart__link:hover,
.twl-menu-cart__link:focus-visible {
  background: color-mix(in srgb, var(--twl-color-gold) 24%, rgba(0, 0, 0, 0.82));
  border-color: color-mix(in srgb, var(--twl-color-gold) 88%, #fff);
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--twl-color-gold) 62%, rgba(255, 255, 255, 0.18)),
    0 0 18px rgba(201, 172, 140, 0.18),
    0 14px 34px rgba(0, 0, 0, 0.28);
}

.twl-menu-cart__link .twl-button__icon,
.twl-menu-cart__link .twl-button__icon svg {
  width: 1.12rem;
  height: 1.12rem;
}

.twl-menu-cart__count {
  position: absolute;
  top: -0.22rem;
  right: -0.22rem;
}

.twl-nav__list > .menu-item > a,
.twl-nav__list > .menu-item > button,
.twl-nav__list > .menu-item > .twl-menu-cart__link {
  transition: background-color 220ms ease, border-color 220ms ease, box-shadow 220ms ease, color 220ms ease, transform 220ms ease;
}

.twl-nav__list > .menu-item:not(.twl-menu-cart) > a {
  min-height: 2.8rem;
  padding-inline: 1rem;
  border: 1px solid transparent;
  background: rgba(255, 255, 255, 0.02);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.02);
}

.twl-nav__list > .menu-item:hover > a,
.twl-nav__list > .menu-item:focus-within > a,
.twl-nav__list > .current-menu-item > a,
.twl-nav__list > .current_page_item > a,
.twl-nav__list > .current-menu-ancestor > a {
  background: color-mix(in srgb, var(--twl-color-gold) 12%, rgba(0, 0, 0, 0.76));
  border-color: color-mix(in srgb, var(--twl-color-gold) 56%, rgba(255, 255, 255, 0.12));
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.06),
    0 0 16px rgba(201, 172, 140, 0.14);
  color: #fff;
}

.twl-nav__list .sub-menu {
  top: calc(100% + 0.18rem);
  padding: 0.45rem;
  border-radius: 1rem;
  background: linear-gradient(180deg, rgba(20, 20, 20, 0.94), rgba(8, 8, 8, 0.92));
  backdrop-filter: blur(18px);
  box-shadow:
    0 18px 46px rgba(0, 0, 0, 0.34),
    0 0 0 1px rgba(255, 255, 255, 0.08);
}

.twl-nav__list .sub-menu a {
  width: 100%;
  min-height: 2.6rem;
  padding: 0.65rem 0.8rem;
  border-radius: 0.85rem;
}

.twl-nav__list .sub-menu a:hover,
.twl-nav__list .sub-menu a:focus-visible {
  background: rgba(255, 255, 255, 0.06);
  color: #fff;
}

.twl-button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.added_to_cart,
.wp-block-button__link,
input[type="submit"]:not(.components-button) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  min-height: 2.95rem;
  padding: 0.8rem 1.2rem;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--twl-hover-color, var(--twl-color-gold)) 70%, rgba(255, 255, 255, 0.18));
  background: rgba(0, 0, 0, 0.82);
  color: #fff;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--twl-hover-color, var(--twl-color-gold)) 46%, rgba(255, 255, 255, 0.1)),
    0 10px 24px color-mix(in srgb, var(--twl-hover-color, rgba(0, 0, 0, 0.22)) 28%, rgba(0, 0, 0, 0.28));
  transition: background-color 220ms ease, border-color 220ms ease, box-shadow 220ms ease, transform 220ms ease, color 220ms ease;
}

.twl-button:hover,
.twl-button:focus-visible,
.woocommerce a.button:hover,
.woocommerce a.button:focus-visible,
.woocommerce button.button:hover,
.woocommerce button.button:focus-visible,
.woocommerce input.button:hover,
.woocommerce input.button:focus-visible,
.woocommerce #respond input#submit:hover,
.woocommerce #respond input#submit:focus-visible,
.woocommerce a.added_to_cart:hover,
.woocommerce a.added_to_cart:focus-visible,
.wp-block-button__link:hover,
.wp-block-button__link:focus-visible,
input[type="submit"]:not(.components-button):hover,
input[type="submit"]:not(.components-button):focus-visible {
  background: color-mix(in srgb, var(--twl-hover-color, var(--twl-color-gold)) 26%, rgba(0, 0, 0, 0.82));
  border-color: color-mix(in srgb, var(--twl-hover-color, var(--twl-color-gold)) 86%, #fff);
  color: #fff;
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--twl-hover-color, var(--twl-color-gold)) 74%, rgba(255, 255, 255, 0.16)),
    0 0 18px color-mix(in srgb, var(--twl-hover-color, var(--twl-color-gold)) 28%, rgba(255, 255, 255, 0.12)),
    0 14px 34px color-mix(in srgb, var(--twl-hover-color, var(--twl-color-gold)) 32%, rgba(0, 0, 0, 0.26));
  transform: translateY(-1px);
}

.woocommerce a.added_to_cart {
  text-decoration: none;
}

.woocommerce-account .woocommerce {
  display: grid;
  gap: clamp(1.35rem, 2.4vw, 2rem);
  align-items: start;
}

@media (min-width: 1100px) {
  .woocommerce-account .woocommerce {
    grid-template-columns: minmax(190px, 220px) minmax(0, 1fr);
  }

  .woocommerce-account .woocommerce-MyAccount-navigation {
    position: sticky;
    top: calc(var(--twl-header-height, 4rem) + 1rem);
    align-self: start;
    padding: 1rem;
  }
}

.woocommerce-account .woocommerce-MyAccount-navigation {
  justify-self: start;
  width: 100%;
  max-width: 220px;
}

.woocommerce-account .woocommerce-MyAccount-navigation a {
  padding: 0.72rem 0.88rem;
  font-size: 0.92rem;
}

.woocommerce-account .woocommerce-MyAccount-content {
  min-width: 0;
  width: 100%;
}

@media (max-width: 960px) {
  .twl-nav {
    top: calc(100% + 0.2rem);
  }

  .twl-nav__list {
    padding: 0.55rem;
    border-radius: 1.2rem;
    background: linear-gradient(180deg, rgba(16, 16, 16, 0.92), rgba(8, 8, 8, 0.9));
    backdrop-filter: blur(20px);
  }

  .twl-nav__list > .menu-item > a {
    border-radius: 0.95rem;
    margin: 0.1rem 0;
  }

  .twl-nav__list .sub-menu {
    margin-top: 0.1rem;
    padding: 0.3rem 0 0.35rem 0.75rem;
    background: transparent;
    box-shadow: none;
  }

  .twl-nav__list .sub-menu a {
    min-height: 2.3rem;
    padding: 0.55rem 0.75rem;
    border: 1px solid rgba(255, 255, 255, 0.06);
    background: rgba(255, 255, 255, 0.03);
  }

  .woocommerce-account .woocommerce {
    grid-template-columns: 1fr;
  }

  .woocommerce-account .woocommerce-MyAccount-navigation {
    max-width: none;
  }

  .woocommerce-account .woocommerce-MyAccount-navigation ul {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 0.5rem;
    overflow: visible;
  }
}

@media (max-width: 767px) {
  .woocommerce-cart .actions > .button,
  .woocommerce-cart .actions > button,
  .woocommerce-cart .actions > input {
    width: 100%;
  }
}


/* ===== foundation.css ===== */
.twl-site-shell {
  --twl-ios-top-chrome: #080808;
}

body::before {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: calc(env(safe-area-inset-top, 0px) + 1.25rem);
  background: var(--twl-ios-top-chrome);
  pointer-events: none;
  z-index: 9998;
}

.twl-next-nonportal-surface {
  scrollbar-color: var(--twl-accent-color) #3c3c3c;
}

.twl-next-nonportal-surface::-webkit-scrollbar,
.twl-next-nonportal-surface *::-webkit-scrollbar {
  width: 0.9rem;
  height: 0.9rem;
}

.twl-next-nonportal-surface::-webkit-scrollbar-track,
.twl-next-nonportal-surface *::-webkit-scrollbar-track {
  background: #3c3c3c;
}

.twl-next-nonportal-surface::-webkit-scrollbar-thumb,
.twl-next-nonportal-surface *::-webkit-scrollbar-thumb {
  border: 2px solid #3c3c3c;
  border-radius: 999px;
  background: rgb(var(--twl-accent-rgb) / 0.88);
}

.twl-next-nonportal-surface::-webkit-scrollbar-button,
.twl-next-nonportal-surface *::-webkit-scrollbar-button {
  background: rgb(var(--twl-accent-rgb) / 0.88);
}

.twl-next-nonportal-surface::-webkit-scrollbar-corner,
.twl-next-nonportal-surface *::-webkit-scrollbar-corner {
  background: #3c3c3c;
}

.twl-next-portal-surface {
  scrollbar-color: auto;
}

.twl-next-portal-surface::-webkit-scrollbar,
.twl-next-portal-surface *::-webkit-scrollbar {
  width: initial;
  height: initial;
}

.twl-main {
  row-gap: clamp(1.5rem, 3vw, 2.5rem);
}

body.twl-next-theme {
  overflow-x: hidden;
  overflow-x: clip;
}

.twl-main > article,
.twl-main > section,
.twl-main > div,
.twl-main > .woocommerce,
.twl-main > .woocommerce-page,
.twl-main > .woocommerce-notices-wrapper {
  width: 100%;
  max-width: var(--twl-page-max-width);
  margin-inline: auto;
}

.twl-main > .twl-hero,
.home .twl-main > .twl-hero {
  width: 100%;
  max-width: none;
}

.twl-main--commerce > .woocommerce-notices-wrapper,
.twl-main--commerce > .woocommerce,
.twl-main--commerce > .woocommerce-page {
  width: 100%;
  max-width: none;
}

.twl-main--commerce > .twl-hero {
  width: 100%;
  max-width: none;
  margin-inline: 0;
  padding-inline: 0 !important;
}

.twl-hero > .twl-shell.twl-shell--wide.twl-hero__grid {
  width: 100%;
  max-width: none;
  margin-inline: 0;
  padding-inline: 0;
}

.twl-main > article.twl-prose,
.twl-main > article.type-page.twl-prose,
.twl-main > article.type-page,
.twl-main > article.page,
.twl-main > article.twl-entry,
.twl-main--fullwidth > article {
  width: 100%;
}

.twl-main > :not(.twl-hero):not(.woocommerce-notices-wrapper):not(.woocommerce):not(.woocommerce-page) {
  padding-inline: var(--twl-content-inline-pad);
  box-sizing: border-box;
}

.twl-next-nonportal-surface .twl-entry > .entry-content,
.twl-next-nonportal-surface .twl-main > article.twl-prose > .entry-content,
.twl-next-nonportal-surface .twl-main--fullwidth > article > .entry-content,
.twl-next-nonportal-surface .twl-content-panel {
  display: grid;
  gap: var(--twl-content-stack);
}

.twl-next-nonportal-surface .twl-main > article.twl-entry,
.twl-next-nonportal-surface .twl-main > article.twl-prose,
.twl-next-nonportal-surface .twl-main--fullwidth > article {
  container-type: inline-size;
}

.twl-entry,
.twl-main > article.twl-prose,
.twl-main--fullwidth > article {
  position: relative;
}

.twl-entry > .entry-content,
.twl-main > article.twl-prose > .entry-content,
.twl-main--fullwidth > article > .entry-content {
  width: 100%;
  max-width: none;
}

.twl-entry[data-twl-shortcode-only="1"] > .entry-content,
.twl-next-shortcode-only-surface .twl-entry > .entry-content {
  display: block;
}

.twl-entry[data-twl-shortcode-only="1"],
.twl-next-shortcode-only-surface .twl-entry {
  container-type: normal;
}

.twl-content-panel {
  width: 100%;
  max-width: 100%;
  margin-top: clamp(1rem, 2vw, 1.5rem);
  padding: clamp(1.25rem, 2.6vw, 2.5rem);
  border: var(--twl-glass-border);
  border-radius: clamp(1.5rem, 3vw, 2.4rem);
  background: var(--twl-glass-fill);
  box-shadow: var(--twl-glass-shadow);
  backdrop-filter: blur(24px) saturate(130%);
  -webkit-backdrop-filter: blur(24px) saturate(130%);
}

.twl-content-panel > :first-child {
  margin-top: 0;
}

.twl-content-panel > :last-child {
  margin-bottom: 0;
}

.twl-next-nonportal-surface .twl-entry :where(img, video, iframe, embed, object, canvas, svg),
.twl-next-nonportal-surface .twl-content-panel :where(img, video, iframe, embed, object, canvas, svg) {
  max-width: 100%;
}

.twl-next-nonportal-surface .twl-entry :where(.wp-block-image, .wp-block-embed, .wp-block-video, .wp-caption),
.twl-next-nonportal-surface .twl-content-panel :where(.wp-block-image, .wp-block-embed, .wp-block-video, .wp-caption) {
  margin-block: 0;
}

.twl-next-nonportal-surface .twl-entry :where(table:not([class*="fc-"])),
.twl-next-nonportal-surface .twl-content-panel :where(table:not([class*="fc-"])) {
  width: 100%;
  max-width: 100%;
  display: block;
  overflow-x: auto;
  border-collapse: collapse;
}

.twl-next-nonportal-surface .twl-entry :where(th:not([class*="fc-"]), td:not([class*="fc-"])),
.twl-next-nonportal-surface .twl-content-panel :where(th:not([class*="fc-"]), td:not([class*="fc-"])) {
  min-width: 7rem;
}

.twl-next-nonportal-surface .twl-entry .fc :where(table, th, td),
.twl-next-nonportal-surface .twl-content-panel .fc :where(table, th, td) {
  display: revert;
  min-width: 0;
  overflow: visible;
}

.twl-next-nonportal-surface .twl-entry .fc table,
.twl-next-nonportal-surface .twl-content-panel .fc table {
  width: auto;
  max-width: none;
  border-collapse: separate;
}

.twl-next-nonportal-surface .twl-entry :where(.wp-block-columns, .wpb-content-wrapper, .vc_row, .vc_column_container, .vc_column-inner, .wpb_wrapper),
.twl-next-nonportal-surface .twl-content-panel :where(.wp-block-columns, .wpb-content-wrapper, .vc_row, .vc_column_container, .vc_column-inner, .wpb_wrapper) {
  min-width: 0;
  max-width: 100%;
}

.twl-next-nonportal-surface .twl-entry :where(.wp-block-group, .wp-block-cover, .wp-block-column, .vc_column_container, .wpb_text_column),
.twl-next-nonportal-surface .twl-content-panel :where(.wp-block-group, .wp-block-cover, .wp-block-column, .vc_column_container, .wpb_text_column) {
  min-width: 0;
}

.twl-next-nonportal-surface :where(
  input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not(.components-input-control__input),
  select:not(.components-select-control__input),
  textarea:not(.components-text-control__input)
) {
  width: 100%;
  min-height: var(--twl-form-height);
  padding: 0.78rem 0.95rem;
  border: var(--twl-form-border);
  border-radius: var(--twl-form-radius);
  background: var(--twl-form-surface);
  color: #fff;
  box-sizing: border-box;
}

.twl-next-nonportal-surface :where(
  input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not(.components-input-control__input),
  select:not(.components-select-control__input),
  textarea:not(.components-text-control__input)
)::placeholder {
  color: var(--twl-form-placeholder);
}

.twl-next-nonportal-surface :where(
  input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not(.components-input-control__input),
  select:not(.components-select-control__input),
  textarea:not(.components-text-control__input)
):focus-visible {
  background: var(--twl-form-surface-focus);
  border: var(--twl-form-border-strong);
  outline: 2px solid rgb(var(--twl-accent-rgb) / 0.22);
  outline-offset: 2px;
}

.twl-next-nonportal-surface :where(select:not(.components-select-control__input)) {
  transition: border-color 0.18s ease, outline-color 0.18s ease, box-shadow 0.18s ease;
}

.twl-next-nonportal-surface :where(select:not(.components-select-control__input)):focus-visible {
  background: var(--twl-form-surface);
}

.twl-next-nonportal-surface :where(label, legend) {
  color: rgba(255, 255, 255, 0.84);
}

.twl-next-portal-surface .twl-content-panel {
  display: none;
}

.twl-page-copy,
.twl-content-panel > :not(.alignfull) {
  max-width: var(--twl-page-reading-width);
}

.twl-content-panel > .alignwide,
.twl-content-panel > .alignfull,
.twl-content-panel > .woocommerce,
.twl-content-panel > .twl-calendar-frontend-layout,
.twl-content-panel > .twl-calendar-wrap,
.twl-content-panel > .wp-block-group,
.twl-content-panel > .wp-block-cover {
  max-width: 100%;
}

.twl-content-panel > .twl-calendar-frontend-layout,
.twl-content-panel .twl-calendar-frontend-layout,
.twl-content-panel .twl-calendar-frontend-main,
.twl-content-panel .twl-calendar-wrap.twl-calendar-frontend,
.twl-content-panel .twl-calendar .fc,
.twl-content-panel .twl-calendar .fc-scrollgrid,
.twl-content-panel .twl-calendar .fc-scrollgrid table,
.twl-content-panel .twl-calendar .fc-col-header,
.twl-content-panel .twl-calendar .fc-daygrid-body,
.twl-content-panel .twl-calendar .fc-scrollgrid-sync-table {
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

.twl-next-nonportal-surface .twl-calendar-wrap.twl-calendar-frontend,
.twl-next-nonportal-surface .twl-calendar-wrap.twl-calendar-frontend .fc,
.twl-content-panel .twl-calendar-wrap.twl-calendar-frontend,
.twl-content-panel .twl-calendar-wrap.twl-calendar-frontend .fc {
  overflow: visible;
}

.twl-next-nonportal-surface .twl-calendar .fc table,
.twl-next-nonportal-surface .twl-calendar .fc-scrollgrid table,
.twl-content-panel .twl-calendar .fc table,
.twl-content-panel .twl-calendar .fc-scrollgrid table {
  display: table !important;
  width: 100% !important;
  overflow: visible !important;
  table-layout: fixed;
}

.twl-button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.added_to_cart,
.wp-block-button__link,
input[type="submit"]:not(.components-button) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: 3rem;
  padding: 0.82rem 1.24rem;
  border: 1px solid rgb(var(--twl-accent-rgb) / 0.9);
  border-radius: var(--twl-radius-pill);
  background: rgba(0, 0, 0, 0.78);
  color: #fff;
  font-weight: 600;
  font-size: 0.92rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-decoration: none;
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.08),
    0 0 18px rgb(var(--twl-accent-rgb) / 0.14),
    0 12px 28px rgba(0, 0, 0, 0.28);
  transition: background-color 220ms ease, border-color 220ms ease, color 220ms ease, transform 220ms ease, box-shadow 220ms ease;
}

.twl-button:hover,
.twl-button:focus-visible,
.woocommerce a.button:hover,
.woocommerce a.button:focus-visible,
.woocommerce button.button:hover,
.woocommerce button.button:focus-visible,
.woocommerce input.button:hover,
.woocommerce input.button:focus-visible,
.woocommerce #respond input#submit:hover,
.woocommerce #respond input#submit:focus-visible,
.woocommerce a.added_to_cart:hover,
.woocommerce a.added_to_cart:focus-visible,
.wp-block-button__link:hover,
.wp-block-button__link:focus-visible,
input[type="submit"]:not(.components-button):hover,
input[type="submit"]:not(.components-button):focus-visible {
  border-color: rgb(var(--twl-accent-rgb));
  background: rgb(var(--twl-accent-rgb) / 0.18);
  color: #fff;
  transform: translateY(-1px);
  box-shadow:
    0 0 0 1px rgb(var(--twl-accent-rgb) / 0.9),
    0 0 26px rgb(var(--twl-accent-rgb) / 0.24),
    0 16px 34px rgba(0, 0, 0, 0.34);
}

.twl-button:focus-visible,
.woocommerce a.button:focus-visible,
.woocommerce button.button:focus-visible,
.woocommerce input.button:focus-visible,
.woocommerce #respond input#submit:focus-visible,
.wp-block-button__link:focus-visible,
.twl-nav__list a:focus-visible,
.twl-menu-cart__link:focus-visible,
.twl-nav-toggle:focus-visible,
.twl-submenu-toggle:focus-visible {
  outline: 2px solid rgb(var(--twl-accent-rgb) / 0.92);
  outline-offset: 3px;
}

.twl-header {
  --twl-header-frame-height: clamp(4.5rem, 4.4vw, 4.9rem);
  background: color-mix(in srgb, var(--twl-ios-top-chrome) 92%, rgba(8, 8, 8, 0.82));
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.18);
}

.twl-header__inner {
  grid-template-columns: minmax(0, auto) minmax(0, 1fr) auto;
  gap: clamp(0.65rem, 1.4vw, 1.25rem);
  min-height: var(--twl-header-frame-height);
  height: var(--twl-header-frame-height);
  padding: 0 clamp(1rem, 2vw, 2rem);
  align-items: center;
}

.twl-header__actions {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
}

.twl-nav {
  min-width: 0;
  justify-self: end;
}

.twl-nav__list {
  flex-wrap: nowrap;
  gap: 0.32rem;
  align-items: center;
}

.twl-nav__list > .menu-item {
  min-width: 0;
}

.twl-nav__list > .menu-item > a {
  min-height: 2.5rem;
  padding: 0.45rem 0.78rem;
  border: 1px solid rgb(var(--twl-accent-rgb) / 0.58);
  border-radius: 999px;
  background: linear-gradient(180deg, rgb(var(--twl-accent-rgb) / 0.16), rgb(var(--twl-accent-rgb) / 0.08));
  box-shadow:
    inset 0 0 0 1px rgb(var(--twl-accent-rgb) / 0.18),
    0 0 0 1px rgb(var(--twl-accent-rgb) / 0.32),
    0 10px 24px rgba(0, 0, 0, 0.24),
    0 0 22px rgb(var(--twl-accent-rgb) / 0.18);
  font-size: 0.76rem;
  letter-spacing: 0.06em;
  white-space: nowrap;
}

.twl-nav__list > .menu-item:hover > a,
.twl-nav__list > .menu-item:focus-within > a,
.twl-nav__list > .current-menu-item > a,
.twl-nav__list > .current_page_item > a,
.twl-nav__list > .current-menu-ancestor > a {
  border-color: rgb(var(--twl-accent-rgb) / 0.92);
  background: linear-gradient(180deg, rgb(var(--twl-accent-rgb) / 0.24), rgb(var(--twl-accent-rgb) / 0.13));
  color: #fff;
  box-shadow:
    0 0 0 1px rgb(var(--twl-accent-rgb) / 0.84),
    0 0 26px rgb(var(--twl-accent-rgb) / 0.28);
}

.twl-menu-cart__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.38rem;
  min-height: 2.38rem;
  padding: 0.42rem;
  border-radius: 999px;
  border: 1px solid rgb(var(--twl-accent-rgb) / 0.72);
  background: linear-gradient(180deg, rgb(var(--twl-accent-rgb) / 0.16), rgb(var(--twl-accent-rgb) / 0.08));
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.06),
    0 0 18px rgb(var(--twl-accent-rgb) / 0.14);
}

.twl-menu-cart__link .twl-button__icon,
.twl-menu-cart__link .twl-button__icon svg {
  width: 1rem;
  height: 1rem;
}

.twl-menu-cart__count {
  top: -0.18rem;
  right: -0.18rem;
}

.twl-menu-cart__link:hover,
.twl-menu-cart__link:focus-visible {
  background: rgb(var(--twl-accent-rgb) / 0.18);
  border-color: rgb(var(--twl-accent-rgb));
}

.twl-nav__list .menu-item-has-children {
  position: relative;
  gap: 0;
}

.twl-nav__list .menu-item-has-children > a,
.twl-nav__list .menu-item-has-children > .twl-submenu-toggle {
  position: relative;
  z-index: 2;
}

.twl-submenu-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2.5rem;
  margin-left: -0.42rem;
  border: 1px solid rgb(var(--twl-accent-rgb) / 0.2);
  border-radius: 0 999px 999px 0;
  background: linear-gradient(180deg, rgb(var(--twl-accent-rgb) / 0.12), rgb(var(--twl-accent-rgb) / 0.05));
  color: rgb(var(--twl-accent-rgb));
  box-shadow: inset 0 0 0 1px rgb(var(--twl-accent-rgb) / 0.16);
}

.twl-submenu-toggle__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 0.95rem;
  height: 0.95rem;
  transition: transform 180ms ease;
}

.menu-item.is-open > .twl-submenu-toggle .twl-submenu-toggle__icon {
  transform: rotate(180deg);
}

.twl-nav__list .sub-menu {
  z-index: 1;
  top: calc(100% - 1px);
  left: 0.7rem;
  padding: 0.45rem 0.35rem 0.35rem;
  border: 1px solid rgb(var(--twl-accent-rgb) / 0.58);
  border-radius: 0 1.2rem 1.2rem 1.2rem;
  background: linear-gradient(180deg, rgb(var(--twl-accent-rgb) / 0.14), rgba(4, 4, 4, 0.78));
  backdrop-filter: blur(22px);
  -webkit-backdrop-filter: blur(22px);
  box-shadow:
    0 18px 46px rgba(0, 0, 0, 0.34),
    0 0 0 1px rgb(var(--twl-accent-rgb) / 0.22),
    0 0 24px rgb(var(--twl-accent-rgb) / 0.22);
}

.twl-nav__list .sub-menu a {
  width: 100%;
  min-height: 2.45rem;
  padding: 0.62rem 0.85rem;
  border-radius: 0.9rem;
  font-size: 0.8rem;
  border: 1px solid rgb(var(--twl-accent-rgb) / 0.16);
  background: linear-gradient(180deg, rgb(var(--twl-accent-rgb) / 0.2), rgb(var(--twl-accent-rgb) / 0.12));
  box-shadow:
    inset 0 0 0 1px rgb(var(--twl-accent-rgb) / 0.08),
    0 0 16px rgb(var(--twl-accent-rgb) / 0.14);
}

.twl-nav__list .sub-menu a:hover,
.twl-nav__list .sub-menu a:focus-visible {
  border-color: rgb(var(--twl-accent-rgb) / 0.72);
  background: linear-gradient(180deg, rgb(var(--twl-accent-rgb) / 0.36), rgb(var(--twl-accent-rgb) / 0.22));
  color: #fff;
  box-shadow:
    0 0 0 1px rgb(var(--twl-accent-rgb) / 0.84),
    0 0 30px rgb(var(--twl-accent-rgb) / 0.42);
}

.twl-nav-toggle {
  min-height: 2.85rem;
  padding: 0.5rem 0.78rem;
  border: 1px solid rgb(var(--twl-accent-rgb) / 0.55);
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.68);
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.06),
    0 0 16px rgb(var(--twl-accent-rgb) / 0.12);
}

.twl-nav-toggle__label {
  font-size: 0.72rem;
  letter-spacing: 0.14em;
}

.twl-content-reveal {
  opacity: 0;
  transform: translateY(0.8rem);
  transition: opacity 420ms ease, transform 520ms ease;
}

.twl-content-reveal.is-visible,
.twl-motion-reduced .twl-content-reveal {
  opacity: 1;
  transform: none;
}

.twl-main :target,
.woocommerce :target,
.woocommerce-notices-wrapper,
.woocommerce-form-login,
.woocommerce-form-coupon,
.woocommerce-error,
.woocommerce-info,
.woocommerce-message,
#customer_login,
#order_review,
#payment,
#comments,
.lost_reset_password {
  scroll-margin-top: var(--twl-scroll-offset);
}

.woocommerce-order-received .woocommerce-order,
.woocommerce-order-received .woocommerce-customer-details,
.woocommerce-order-received .woocommerce-order-details,
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content {
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
  display: grid;
  gap: 0.55rem;
  padding: 0;
  margin: 0;
  list-style: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation a {
  display: block;
  width: 100%;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.04);
}

.woocommerce-account .woocommerce-MyAccount-navigation .is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation a:hover,
.woocommerce-account .woocommerce-MyAccount-navigation a:focus-visible {
  border-color: rgb(var(--twl-accent-rgb) / 0.75);
  background: rgb(var(--twl-accent-rgb) / 0.16);
  color: #fff;
}

.woocommerce-order-received .woocommerce-order-overview,
.woocommerce-order-received .woocommerce-table--order-details tbody,
.woocommerce-account .woocommerce-MyAccount-content table,
.woocommerce-account .woocommerce-Addresses {
  width: 100%;
}

.woocommerce-order-received .woocommerce-order-overview {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
  gap: 0.9rem;
  padding: 0;
  margin: 0 0 1.25rem;
  list-style: none;
}

.woocommerce-order-received .woocommerce-order-overview li {
  padding: 0.9rem 1rem;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.04);
}

.woocommerce-checkout .woocommerce-form-login-toggle,
.woocommerce-checkout .woocommerce-form-coupon-toggle,
.woocommerce-checkout .woocommerce-NoticeGroup {
  margin-bottom: 0;
}

.woocommerce-checkout .woocommerce-form-login,
.woocommerce-checkout .checkout_coupon {
  margin-top: 0.9rem;
}

.woocommerce-cart .actions,
.woocommerce-cart .coupon,
.woocommerce-checkout .place-order,
.twl-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  align-items: center;
}

@media (min-width: 961px) and (max-width: 1180px) {
  .twl-header__inner {
    gap: 0.55rem;
    padding-inline: 0.85rem;
  }

  .twl-branding__logo {
    max-height: 3.2rem;
  }

  .twl-nav__list {
    gap: 0.26rem;
  }

  .twl-nav__list > .menu-item > a {
    min-height: 2.35rem;
    padding: 0.4rem 0.56rem;
    font-size: 0.68rem;
    letter-spacing: 0.04em;
  }

  .twl-header__cart .twl-menu-cart__link {
    min-width: 2.22rem;
    min-height: 2.22rem;
  }
}

@media (max-width: 960px) {
  .twl-main > :not(.twl-hero):not(.woocommerce-notices-wrapper):not(.woocommerce):not(.woocommerce-page),
  .twl-main--commerce {
    padding-inline: clamp(0.9rem, 3vw, 1.2rem);
    margin-inline: 0;
  }

  .twl-main--commerce {
    padding-inline: 0;
  }

  .twl-main--commerce > .twl-hero {
    width: 100%;
    margin-inline: 0;
    padding-inline: 0 !important;
  }

  .twl-header__inner {
    grid-template-columns: minmax(0, 1fr) auto;
    min-height: var(--twl-header-frame-height);
    height: var(--twl-header-frame-height);
  }

  .twl-next-nonportal-surface .twl-entry :where(table),
  .twl-next-nonportal-surface .twl-content-panel :where(table) {
    font-size: 0.92rem;
  }

  .twl-nav {
    grid-column: 1 / -1;
    width: 100%;
    justify-self: stretch;
    position: absolute;
    top: calc(100% + 0.3rem);
    right: 0.8rem;
    left: 0.8rem;
  }

  .twl-nav__list {
    flex-direction: column;
    align-items: stretch;
    gap: 0.2rem;
    padding: 0.55rem;
    border: 1px solid rgb(var(--twl-accent-rgb) / 0.22);
    border-radius: 1.35rem;
    background: linear-gradient(180deg, rgba(14, 14, 14, 0.98), rgba(4, 4, 4, 0.96));
    box-shadow:
      0 22px 50px rgba(0, 0, 0, 0.4),
      0 0 24px rgb(var(--twl-accent-rgb) / 0.18);
  }

  .twl-nav__list > .menu-item > a {
    width: 100%;
    justify-content: space-between;
    border-radius: 1rem;
    font-size: 0.84rem;
    opacity: 0.72;
  }

  .twl-nav__list .menu-item-has-children {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: stretch;
  }

  .twl-submenu-toggle {
    width: 2.3rem;
    height: 2.7rem;
    border-radius: 1rem;
    margin-left: 0;
    color: rgb(var(--twl-accent-rgb) / 0.9);
  }

  .twl-nav__list .sub-menu {
    position: static;
    display: none;
    min-width: 0;
    margin-top: 0.2rem;
    padding: 0.2rem 0 0.2rem 0.55rem;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    transform: none;
  }

  .twl-nav__list .menu-item.is-open > .sub-menu {
    display: grid;
    gap: 0.25rem;
  }

  .twl-nav__list .sub-menu a {
    border: 1px solid rgba(255, 255, 255, 0.08);
    background: rgb(var(--twl-accent-rgb) / 0.08);
    color: rgba(255, 255, 255, 0.94);
    opacity: 1;
  }

  .twl-nav__list .menu-item.is-open > a,
  .twl-nav__list .menu-item.current-menu-parent > a,
  .twl-nav__list .menu-item.current-menu-ancestor > a {
    opacity: 0.56;
  }

  .woocommerce-checkout form.checkout,
  .woocommerce-cart .woocommerce,
  .woocommerce-account .woocommerce {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 961px) {
  .twl-submenu-toggle {
    display: none !important;
  }

  .twl-nav__list .menu-item-has-children:hover > a,
  .twl-nav__list .menu-item-has-children:focus-within > a,
  .twl-nav__list .menu-item-has-children.current-menu-ancestor > a {
    border-bottom-left-radius: 999px;
    border-bottom-right-radius: 999px;
  }

  .twl-nav {
    display: block !important;
    position: static;
    width: auto;
    grid-column: auto;
  }

  .twl-nav-toggle {
    display: none !important;
  }
}

@media (max-width: 782px) {
  .twl-header__inner {
    gap: 0.5rem;
    padding-inline: 0.8rem;
  }

  .twl-branding__logo {
    max-height: 2.8rem;
  }

  .twl-header__actions {
    gap: 0.45rem;
  }

  .twl-nav-toggle {
    display: inline-flex;
  }

  .twl-header__cart .twl-menu-cart__link {
    min-width: 2.75rem;
    min-height: 2.75rem;
    padding: 0.68rem;
  }

  .twl-content-panel {
    padding: 1rem;
    border-radius: 1.4rem;
  }

  .woocommerce-order-received .woocommerce-order-overview {
    grid-template-columns: 1fr;
  }

  .woocommerce-cart .actions > .button,
  .woocommerce-cart .actions > button,
  .woocommerce-cart .actions > input,
  .woocommerce-checkout .place-order .button,
  .twl-actions > * {
    width: 100%;
  }
}

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

  .twl-content-reveal,
  .twl-button,
  .twl-nav__list a,
  .twl-menu-cart__link,
  .twl-nav-toggle,
  .twl-submenu-toggle {
    transition: none;
    transform: none;
  }
}

/* Wave 3 run-8 stabilization: remove viewport-width breakout overflow,
   keep planner/article portals out of shared page padding, and let the public
   calendar claim the full content width again. */

.twl-main--commerce > .twl-hero {
  width: 100%;
  margin-inline: 0;
  padding-inline: 0 !important;
}

.twl-main > :not(.twl-hero):not(.twl-surface--planner):not(.woocommerce-notices-wrapper):not(.woocommerce):not(.woocommerce-page) {
  padding-inline: var(--twl-content-inline-pad);
}

.twl-main > .twl-surface--planner {
  width: 100%;
  max-width: none;
  padding-inline: 0 !important;
}

.twl-content-panel .twl-calendar-frontend-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(14rem, 220px);
  gap: clamp(0.9rem, 2vw, 1.2rem);
  align-items: start;
}

.twl-next-nonportal-surface .twl-calendar-frontend-layout,
.twl-content-panel .twl-calendar-frontend-layout,
.twl-next-nonportal-surface .twl-calendar-frontend-main,
.twl-content-panel .twl-calendar-frontend-main,
.twl-next-nonportal-surface .twl-calendar-frontend-side,
.twl-content-panel .twl-calendar-frontend-side,
.twl-next-nonportal-surface .twl-cal-calendar-box,
.twl-content-panel .twl-cal-calendar-box,
.twl-next-nonportal-surface .twl-calendar-wrap.twl-calendar-frontend,
.twl-content-panel .twl-calendar-wrap.twl-calendar-frontend,
.twl-next-nonportal-surface .twl-calendar,
.twl-content-panel .twl-calendar,
.twl-next-nonportal-surface .twl-calendar .fc,
.twl-content-panel .twl-calendar .fc,
.twl-next-nonportal-surface .twl-calendar .fc-scrollgrid,
.twl-content-panel .twl-calendar .fc-scrollgrid {
  width: 100% !important;
  min-width: 0;
  max-width: 100%;
}

.twl-next-nonportal-surface .twl-calendar .fc .fc-col-header,
.twl-next-nonportal-surface .twl-calendar .fc .fc-daygrid-body,
.twl-next-nonportal-surface .twl-calendar .fc .fc-scrollgrid-sync-table,
.twl-content-panel .twl-calendar .fc .fc-col-header,
.twl-content-panel .twl-calendar .fc .fc-daygrid-body,
.twl-content-panel .twl-calendar .fc .fc-scrollgrid-sync-table {
  width: 100% !important;
}

body.twl-next-nonportal-surface {
  overflow-x: hidden;
  overflow-x: clip;
}

@media (max-width: 960px) {
  .twl-main > :not(.twl-hero):not(.twl-surface--planner):not(.woocommerce-notices-wrapper):not(.woocommerce):not(.woocommerce-page),
  .twl-main--commerce {
    padding-inline: clamp(0.9rem, 3vw, 1.2rem);
    margin-inline: 0;
  }

  .twl-main--commerce {
    padding-inline: 0;
  }

  .twl-main--commerce > .twl-hero {
    width: 100%;
    margin-inline: 0;
    padding-inline: 0 !important;
  }

  .twl-content-panel .twl-calendar-frontend-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .twl-next-nonportal-surface .twl-calendar-frontend-layout {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Wave 3 run-10 stabilization: lock shortcode-only widths, restore true
   full-bleed commerce heroes, and target the actual FullCalendar DOM so the
   public calendar cannot collapse back to width:0. */

.twl-next-shortcode-only-surface .twl-main > article.twl-prose,
.twl-next-shortcode-only-surface .twl-main > article.twl-entry,
.twl-main > article[data-twl-shortcode-only="1"] {
  width: 100%;
  max-width: none;
}

.twl-next-shortcode-only-surface .twl-main > article[data-twl-shortcode-only="1"] > .entry-content,
.twl-main > article[data-twl-shortcode-only="1"] > .entry-content {
  width: 100%;
  max-width: none;
}

.twl-next-shortcode-only-surface .twl-calendar-frontend-layout,
.twl-next-shortcode-only-surface .registrationtable:first-of-type,
.twl-next-shortcode-only-surface .twl-cr-event-selector,
.twl-next-shortcode-only-surface .twl-cr-auth-shell,
.twl-next-shortcode-only-surface .twl-cr-cart-shell,
.twl-next-shortcode-only-surface .twl-cr-payments-shell,
.twl-next-shortcode-only-surface .twl-cr-waitlist-shell,
.twl-next-shortcode-only-surface .my-account-layout {
  margin-top: clamp(1.35rem, 3vw, 2.25rem);
}

.twl-main--commerce > .twl-hero {
  width: 100vw;
  max-width: 100vw;
  margin-inline: calc(50% - 50vw);
  padding-inline: 0 !important;
}

.twl-next-shortcode-only-surface .twl-calendar-frontend-layout,
.twl-next-shortcode-only-surface .twl-calendar-frontend-main,
.twl-next-shortcode-only-surface .twl-calendar-frontend-side,
.twl-next-shortcode-only-surface .twl-cal-calendar-box,
.twl-next-shortcode-only-surface .twl-calendar-wrap.twl-calendar-frontend,
.twl-next-shortcode-only-surface .twl-calendar.fc,
.twl-next-shortcode-only-surface .twl-calendar-wrap.twl-calendar-frontend .fc,
.twl-next-shortcode-only-surface .twl-calendar-wrap.twl-calendar-frontend .fc-view-harness,
.twl-next-shortcode-only-surface .twl-calendar-wrap.twl-calendar-frontend .fc-dayGridMonth-view,
.twl-next-shortcode-only-surface .twl-calendar-wrap.twl-calendar-frontend .fc-scrollgrid {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
}

.twl-next-shortcode-only-surface .twl-calendar-wrap.twl-calendar-frontend .fc-col-header[style],
.twl-next-shortcode-only-surface .twl-calendar-wrap.twl-calendar-frontend .fc-daygrid-body[style],
.twl-next-shortcode-only-surface .twl-calendar-wrap.twl-calendar-frontend .fc-scrollgrid-sync-table[style],
.twl-next-shortcode-only-surface .twl-calendar.fc .fc-col-header[style],
.twl-next-shortcode-only-surface .twl-calendar.fc .fc-daygrid-body[style],
.twl-next-shortcode-only-surface .twl-calendar.fc .fc-scrollgrid-sync-table[style] {
  width: 100% !important;
  min-width: 100% !important;
  table-layout: fixed !important;
}

.twl-next-shortcode-only-surface .twl-calendar-wrap.twl-calendar-frontend .fc-col-header .fc-col-header-cell,
.twl-next-shortcode-only-surface .twl-calendar-wrap.twl-calendar-frontend .fc-daygrid-body .fc-daygrid-day,
.twl-next-shortcode-only-surface .twl-calendar.fc .fc-col-header .fc-col-header-cell,
.twl-next-shortcode-only-surface .twl-calendar.fc .fc-daygrid-body .fc-daygrid-day {
  width: 14.2857% !important;
}

.twl-next-shortcode-only-surface .twl-calendar-wrap.twl-calendar-frontend .fc-toolbar,
.twl-next-shortcode-only-surface .twl-calendar.fc .fc-toolbar {
  flex-wrap: wrap;
  gap: 0.75rem;
}

@media (max-width: 960px) {
  .twl-main--commerce > .twl-hero {
    width: 100vw;
    max-width: 100vw;
    margin-inline: calc(50% - 50vw);
    padding-inline: 0 !important;
  }
}

/* Wave 3 cart/calendar authority pass: restore the public calendar's desktop
   two-column layout after earlier width resets, while keeping the month grid
   at a real measurable width. */

.twl-next-shortcode-only-surface .twl-calendar-frontend-layout,
.twl-next-shortcode-only-surface .twl-content-panel .twl-calendar-frontend-layout {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(13.75rem, var(--twl-legend-width, 220px)) !important;
  gap: clamp(0.9rem, 2vw, 1.2rem);
  align-items: start;
}

.twl-next-shortcode-only-surface .twl-calendar-frontend-main,
.twl-next-shortcode-only-surface .twl-content-panel .twl-calendar-frontend-main {
  width: auto !important;
  min-width: 0 !important;
}

.twl-next-shortcode-only-surface .twl-calendar-frontend-side,
.twl-next-shortcode-only-surface .twl-content-panel .twl-calendar-frontend-side {
  width: min(100%, var(--twl-legend-width, 220px)) !important;
  min-width: min(100%, 13.75rem) !important;
  max-width: 100% !important;
  justify-self: stretch;
}

.twl-next-shortcode-only-surface .twl-calendar-wrap.twl-calendar-frontend .fc-view-harness,
.twl-next-shortcode-only-surface .twl-calendar.fc .fc-view-harness {
  min-height: clamp(38rem, 70vh, 52rem);
}

@media (max-width: 900px) {
  .twl-next-shortcode-only-surface .twl-calendar-frontend-layout,
  .twl-next-shortcode-only-surface .twl-content-panel .twl-calendar-frontend-layout {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .twl-next-shortcode-only-surface .twl-calendar-frontend-side,
  .twl-next-shortcode-only-surface .twl-content-panel .twl-calendar-frontend-side {
    width: 100% !important;
    min-width: 0 !important;
  }
}


/* ===== legacy-bridge.css ===== */
body.twl-next-nonportal-surface.ct-content-with-vc .vc_row,
.twl-next-nonportal-surface .wpb-content-wrapper .vc_row,
.twl-next-nonportal-surface .xtd-spacer--lg,
.twl-next-nonportal-surface .xtd-spacer--md,
.twl-next-nonportal-surface .xtd-spacer--sm {
  max-width: 100%;
}

.twl-next-nonportal-surface .wpb-content-wrapper,
.twl-next-nonportal-surface .wpb-content-wrapper > .vc_row,
.twl-next-nonportal-surface .wpb-content-wrapper > .vc_row > .wpb_column,
.twl-next-nonportal-surface .wpb-content-wrapper > .vc_row > .wpb_column > .vc_column-inner,
.twl-next-nonportal-surface .wpb-content-wrapper > .vc_row > .wpb_column > .vc_column-inner > .wpb_wrapper {
  min-width: 0;
}

.twl-next-nonportal-surface .wpb-content-wrapper {
  display: grid;
  gap: var(--twl-space-xl);
}

.twl-next-nonportal-surface .wpb-content-wrapper .vc_row {
  margin: 0 !important;
}

.twl-next-nonportal-surface .wpb-content-wrapper .vc_column-inner {
  padding: 0;
}

.twl-next-nonportal-surface .wpb_text_column p:last-child {
  margin-bottom: 0;
}

.twl-next-nonportal-surface .wpb-content-wrapper :where(table) {
  width: 100%;
  display: block;
  overflow-x: auto;
}

.ct-content,
.content-padding-xl {
  padding-top: 10px !important;
}

.wcs-timetable__list,
.twl-cal-shortcode,
.twl-show-shortcode,
.nf-form-cont {
  margin-top: var(--twl-space-lg);
}

.wcs-timetable__list .wcs-class .wcs-class__image {
  width: 45rem;
  max-width: 450px;
  margin: 0;
  background-position: left 140px;
  background-repeat: no-repeat;
  background-size: contain;
  flex-shrink: 1;
  align-self: stretch;
}

@media (max-width: 768px) {
  .wcs-timetable__list .wcs-class .wcs-class__image {
    display: block;
    width: 150px;
    background-repeat: no-repeat;
    background-size: 100% auto;
    flex-shrink: 1;
    align-self: stretch;
  }
}

.bwg_close_btn {
  color: #000000;
}

.bwg_back_0,
.bwg-icon-arrow-left {
  color: #fff !important;
}

.wcs-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  min-height: 2.75rem;
  padding: 0.7rem 1.15rem;
  border-radius: 999px;
  background-color: var(--twl-color-gold);
  color: var(--twl-color-ink);
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
  transition: transform 180ms ease, background-color 180ms ease, color 180ms ease;
  box-shadow: none !important;
}

.wcs-btn:hover,
.wcs-btn:focus-visible {
  background-color: #b59878;
  color: var(--twl-color-ink);
  transform: translateY(-1px);
}

.wcs-btn font {
  color: inherit !important;
}

.page-id-10293 .twl-header,
.page-id-10293 .twl-footer,
.page-id-10293 header,
.page-id-10293 footer {
  display: none !important;
}

.twl-show-shortcode,
.twl-cal-shortcode {
  color: var(--twl-color-paper);
}

.twl-show-cards,
.twl-cal-cards {
  gap: 1.25rem;
}

.twl-show-card,
.twl-cal-card {
  border-color: rgba(255, 253, 248, 0.12);
  background: linear-gradient(180deg, rgba(68, 68, 68, 0.98), rgba(35, 35, 35, 0.98));
  box-shadow: var(--twl-shadow-card);
  transition: border-color 220ms ease, transform 220ms ease, box-shadow 220ms ease, background-color 220ms ease;
}

.twl-show-card:hover,
.twl-cal-card:hover {
  border-color: rgba(201, 172, 140, 0.96);
  background: linear-gradient(180deg, rgba(201, 172, 140, 0.98), rgba(189, 161, 129, 0.98));
  transform: translateY(-3px);
  box-shadow: 0 20px 44px rgba(0, 0, 0, 0.34);
}

.twl-show-card:hover .twl-show-title,
.twl-show-card:hover .twl-show-dates,
.twl-show-card:hover .twl-show-blurb,
.twl-show-card:hover .twl-show-venue,
.twl-cal-card:hover .twl-cal-title,
.twl-cal-card:hover .twl-cal-excerpt,
.twl-cal-card:hover .twl-cal-card-body {
  color: var(--twl-color-ink);
}

.twl-cal-card:focus-visible {
  outline: 2px solid rgba(201, 172, 140, 0.9);
  outline-offset: 3px;
}

.twl-show-thumbwrap,
.twl-cal-card-thumbwrap {
  background:
    radial-gradient(circle at top, rgba(176, 129, 0, 0.18), transparent 55%),
    #0a0a0a;
}

.twl-show-right,
.twl-cal-card-body {
  color: var(--twl-color-paper);
}

.twl-show-title,
.twl-cal-title {
  color: var(--twl-color-paper);
  font-family: var(--twl-font-display);
}

.twl-show-dates,
.twl-show-blurb,
.twl-cal-excerpt,
.twl-cal-modal-content-html,
.twl-cal-modal-fulltext,
.twl-show-venue {
  color: rgba(255, 253, 248, 0.82);
}

.twl-show-soon,
.twl-show-btn,
.twl-cal-modal-link,
.twl-cal-tab {
  border-radius: 999px;
}

.twl-show-btn,
.twl-cal-modal-link,
.twl-cal-tab.is-active {
  background: var(--twl-color-gold);
  color: var(--twl-color-ink);
}

.twl-show-soon {
  border: 1px solid rgba(255, 253, 248, 0.14);
  background: rgba(255, 253, 248, 0.08);
  color: var(--twl-color-paper);
}

.twl-cal-modal-backdrop {
  background: rgba(0, 0, 0, 0.92);
}

.twl-cal-modal-dialog,
.twl-show-shortcode .twl-cal-modal-dialog {
  border: 1px solid rgba(255, 253, 248, 0.12);
  background: #1f2327;
  color: var(--twl-color-paper);
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.42);
}

.twl-cal-modal-title {
  color: var(--twl-color-paper);
  font-family: var(--twl-font-display);
}

.twl-cal-modal-close {
  color: var(--twl-color-gold);
  border: 1px solid rgba(201, 172, 140, 0.2);
  background: rgba(201, 172, 140, 0.08);
}

.twl-cal-modal-close:hover,
.twl-cal-modal-close:focus-visible {
  background: rgba(201, 172, 140, 0.16);
}

.twl-cal-modal-content-html,
.twl-cal-modal-fulltext,
.twl-cal-modal-body,
.twl-cal-modal-body p,
.twl-cal-modal-body li,
.twl-cal-modal-body strong {
  color: var(--twl-color-paper);
}

.twl-cal-modal-hr {
  border-color: rgba(255, 253, 248, 0.18);
}

.twl-cal-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  align-items: center;
  padding: 0.75rem 1rem;
  border: 1px solid rgba(255, 253, 248, 0.1);
  border-radius: 1rem;
  background: rgba(255, 253, 248, 0.05);
}

.twl-cal-grade-filter .twl-cal-grade-select {
  border-radius: 999px;
  border: 0;
  background: transparent;
  color: inherit;
}

.twlcm-casting-page .twl-header,
.twlcm-casting-page .twl-footer {
  display: none;
}

.twlcm-casting-page .twl-site-shell,
.twlcm-casting-page .twl-main {
  min-height: 100vh;
  padding: 0;
}

.twlcm-casting-page .twl-shell {
  width: 100%;
  max-width: none;
}

.twlcm-casting-page .twlcm-casting-app,
.twlcm-casting-page .twlcm-casting-pane,
.twlcm-casting-page .twlcm-casting-sidebar {
  border-color: rgba(255, 253, 248, 0.08);
}

.twlcm-casting-page .twlcm-casting-showlabel,
.twlcm-casting-page .twlcm-casting-pane-title,
.twlcm-casting-page .twlcm-casting-navtxt {
  font-family: var(--twl-font-body);
}

.twlcm-auditions,
.twlcm-video-upload-page,
.twlcm-front-form-box,
.twlcm-front-unsub,
.twlcm-response-wrap {
  color: var(--twl-color-paper);
}

.twlcm-front-form-box,
.twlcm-front-unsub,
.twlcm-uploaded-video-card,
.twlcm-response-card {
  border: 1px solid rgba(255, 253, 248, 0.12);
  border-radius: 1rem;
  background:
    linear-gradient(180deg, rgba(32, 52, 47, 0.38), rgba(17, 17, 17, 0.96)),
    #121212;
  box-shadow: var(--twl-shadow-card);
}

.twlcm-front-form-box input,
.twlcm-front-form-box select,
.twlcm-front-form-box textarea,
.twlcm-auditions input,
.twlcm-auditions select,
.twlcm-auditions textarea {
  width: 100%;
  border-radius: 0.75rem;
  border: 1px solid rgba(255, 253, 248, 0.14);
  background: rgba(255, 253, 248, 0.06);
  color: var(--twl-color-paper);
}

.twlcm-front-form-box .button,
.twlcm-video-upload-submit,
.twlcm-casting-btn,
.twlcm-casting-logout {
  border-radius: 999px;
}

body.twl-cal-planner-page .twl-header,
body.twl-cal-planner-page .twl-header__inner,
body.twl-cal-planner-page .twl-branding,
body.twl-cal-planner-page .twl-nav {
  overflow: visible !important;
}

body.twl-cal-planner-page .twl-header {
  z-index: 10010 !important;
}

body.twl-cal-planner-page .twl-main {
  position: relative;
  z-index: 1;
}

body.twl-cal-planner-page .twl-footer,
body.twl-next-planner-surface .twl-footer {
  display: none;
}

body.twl-cal-planner-page .twl-site-shell,
body.twl-next-planner-surface .twl-site-shell,
body.twl-cal-planner-page .twl-shell,
body.twl-next-planner-surface .twl-shell {
  width: 100%;
  max-width: none;
}

body.twl-cal-planner-page .twl-main,
body.twl-next-planner-surface .twl-main {
  padding-top: 0;
}

body.twl-cal-planner-page .twl-surface--planner,
body.twl-next-planner-surface .twl-surface--planner {
  max-width: none;
}

/*
 * Temporary bridge selectors for Wave 1.
 * Removal target: after WPBakery + legacy builder content blocks are migrated in Wave 2.
 */

/* Wave 3 run-8 stabilization: rehearsals should stay a portal surface, use its
   compact/mobile menu by default, and avoid shared shell padding from the main theme. */

body.twl-cal-planner-page .twl-main,
body.twl-next-planner-surface .twl-main {
  padding-top: 0;
  padding-bottom: 0;
  padding-inline: 0 !important;
}

body.twl-cal-planner-page .twl-shell.twl-shell--wide,
body.twl-next-planner-surface .twl-shell.twl-shell--wide {
  height: calc(100vh - var(--twl-header-height, 73px));
  min-height: calc(100vh - var(--twl-header-height, 73px));
}

body.twl-cal-planner-page #twl-main-content.twl-main,
body.twl-next-planner-surface #twl-main-content.twl-main {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
}

body.twl-cal-planner-page .twl-surface--planner,
body.twl-next-planner-surface .twl-surface--planner {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
}

body.twl-cal-planner-page .twl-surface--planner > .entry-content,
body.twl-next-planner-surface .twl-surface--planner > .entry-content {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
}

body.twl-cal-planner-page .twl-surface--planner,
body.twl-next-planner-surface .twl-surface--planner {
  max-width: none;
  padding-inline: 0 !important;
}

body.twl-cal-planner-page .twl-header__inner,
body.twl-next-planner-surface .twl-header__inner {
  grid-template-columns: minmax(0, 1fr) auto;
}

body.twl-cal-planner-page .twl-nav-toggle,
body.twl-next-planner-surface .twl-nav-toggle {
  display: inline-flex !important;
}

body.twl-cal-planner-page .twl-nav,
body.twl-next-planner-surface .twl-nav {
  display: none;
  position: absolute;
  top: calc(100% + 0.35rem);
  right: 1rem;
  left: auto;
  width: min(22rem, calc(100vw - 2rem));
  z-index: 10020;
}

body.twl-cal-planner-page .twl-nav.is-open,
body.twl-next-planner-surface .twl-nav.is-open {
  display: block;
}

body.twl-cal-planner-page .twl-nav__list,
body.twl-next-planner-surface .twl-nav__list {
  display: grid;
  gap: 0.45rem;
  padding: 0.7rem;
  border-radius: 1.25rem;
  background: linear-gradient(180deg, rgba(16, 16, 16, 0.94), rgba(6, 6, 6, 0.94));
  box-shadow:
    0 18px 34px rgba(0, 0, 0, 0.42),
    0 0 0 1px rgba(255, 255, 255, 0.08);
}

body.twl-cal-planner-page .twl-nav__list > .menu-item > a,
body.twl-next-planner-surface .twl-nav__list > .menu-item > a {
  width: 100%;
  min-height: 2.9rem;
}

body.twl-cal-planner-page .twl-nav__list .sub-menu,
body.twl-next-planner-surface .twl-nav__list .sub-menu {
  position: static;
  display: none;
  width: 100%;
  margin: 0.2rem 0 0;
}

body.twl-cal-planner-page .twl-nav__list .menu-item.is-open > .sub-menu,
body.twl-next-planner-surface .twl-nav__list .menu-item.is-open > .sub-menu {
  display: grid;
}


