/* =========================
   Booking calendar styles
   ========================= */

.swcal-wrap {
  max-width: 980px;
  margin: 20px auto;
  padding: 0 16px;
}

/* Top bar: month + nav */
.swcal-top {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}

.swcal-nav {
  display: flex;
  gap: 8px;
  align-items: center;
}

/* Nav buttons: pill, clearly visible */
.swcal-btn {
  border-radius: 999px;
  padding: 6px 12px;
  cursor: pointer;
  font-size: 14px;
  /* Make them clearly visible on all backgrounds */
  border: 1px solid rgba(148, 163, 184, 0.8); /* slate-ish */
  background: rgba(15, 23, 42, 0.55);         /* dark translucent pill */
  color: #f9fafb;                              /* near-white text */
  transition:
    background-color 0.15s ease,
    color 0.15s ease,
    border-color 0.15s ease,
    transform 0.08s ease,
    box-shadow 0.15s ease;
}

.swcal-btn:hover {
  background: rgba(15, 23, 42, 0.85);
  border-color: #dc2626;
  color: #fff;
  box-shadow: 0 1px 3px rgba(0,0,0,0.3);
}

/* “Today” button variant if you use it */
.swcal-btn--primary {
  border-color: #ea580c;
  background: rgba(234, 88, 12, 0.85);
  color: #fff;
}

.swcal-btn--primary:hover {
  background: #ea580c;
  color: #fff;
  box-shadow: 0 2px 6px rgba(0,0,0,0.35);
}

.swcal-month {
  font-weight: 700;
  font-size: 18px;
  color: #f9fafb; /* Month label in white too */
}

/* Grid layout */
.swcal-head,
.swcal-body {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 6px;
}

.swcal-head > div {
  font-weight: 700;
  text-align: center;
  padding: 4px 0;
  color: #e5e7eb;
  font-size: 12px;
}

/* Day cells: no solid background, just subtle border */
.swcal-cell {
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  min-height: 96px;
  padding: 6px;
  position: relative;
  background: transparent;
}

/* Empty filler days: very faint outline only */
.swcal-cell.is-empty {
  border-style: dashed;
  opacity: 0.4;
}

/* Optional: “today” highlight if you add .is-today in markup */
.swcal-cell.is-today {
  border-color: #ea580c;
  box-shadow: 0 0 0 1px rgba(234, 88, 12, 0.35);
}

/* Day number (desktop & tablet) */
.swcal-daynum {
  position: absolute;
  top: 6px;
  right: 8px;
  font-size: 12px;
  color: #ffffff; /* Make date text white */
}

/* Timeslot “chips” – use per-category colour via --swcal-slot-bg */
.swcal-slot {
  display: inline-flex;              /* flex so text is vertically centred */
  align-items: center;               /* vertical centring */
  justify-content: center;           /* horizontal centring */
  margin: 4px 4px 0 0;
  padding: 4px 10px;
  border-radius: 999px;
  text-decoration: none;
  color: #ffffff;                    /* white text for times */
  background: var(--swcal-slot-bg, #f97316);   /* solid category colour */
  border: 1px solid rgba(255, 255, 255, 0.25); /* soft light border */
  font-size: 12px;
  font-weight: 600;
  line-height: 1.1;
  white-space: nowrap;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  transition:
    background-color 0.12s ease,
    border-color 0.12s ease,
    color 0.12s ease,
    transform 0.08s ease;
}

/* Hover state: slightly stronger, but still chip-like */
.swcal-slot:hover {
  filter: brightness(1.05);
  border-color: #ffffff;
  color: #ffffff;
  transform: translateY(-1px);
}

/* TZ label inside chip */
.swcal-slot .swcal-tz {
  font-size: 10px;
  opacity: 0.9;
  margin-left: 4px;
  letter-spacing: 0.02em;
  font-weight: 400;
  color: #ff0000; /* keep TZ white as well */
}

/* Controls under the calendar (filters, view toggles, etc.) */
.swcal-controls {
  display: flex;
  gap: 20px;
  align-items: flex-start;
  flex-wrap: wrap;
  margin: 12px 0 4px;
}

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

/* Legend “chips” – no white boxy borders */
.swcal-chip {
  display: flex;
  gap: 6px;
  align-items: center;
  border: 1px solid transparent; /* remove visible box */
  padding: 4px 8px;
  border-radius: 999px;
  background: transparent;
  font-size: 12px;
  color: #e5e7eb;
}

.swcal-chip input {
  margin: 0;
}

/* Color blocks for legend */
.swcal-color {
  width: 14px;
  height: 14px;
  border-radius: 4px;
  display: inline-block;
  border: 1px solid rgba(0, 0, 0, 0.1);
}

/* Legend list */
.swcal-legend ul {
  list-style: none;
  margin: 12px 0 0;
  padding: 0;
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}

.swcal-legend .swcal-key {
  width: 12px;
  height: 12px;
  display: inline-block;
  border-radius: 3px;
  margin-right: 6px;
  border: 1px solid rgba(0, 0, 0, 0.1);
}

/* Alert bar: no yellow block, just left border + text */
.swcal-alert {
  margin: 10px 0;
  padding: 8px 12px;
  border-radius: 6px;
  background: transparent;
  border: 1px solid #fed7aa;
  border-left-width: 4px;
  color: #fed7aa;
  font-size: 13px;
}

/* Visibility/view toggles (Public / Private etc.) */
.swcal-vis {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}

.swcal-vis label {
  display: flex;
  gap: 6px;
  align-items: center;
  border: 1px solid transparent;     /* kill the white-ish box border */
  padding: 6px 10px;
  border-radius: 999px;
  background: transparent;
  cursor: pointer;
  font-size: 13px;
  color: #e5e7eb;
}

.swcal-vis input {
  margin: 0;
}

/* ===== Mobile agenda view (CSS-only; no markup changes) ===== */
@media (max-width: 680px) {
  /* Top bar stacks nicely */
  .swcal-top {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
  }

  .swcal-nav {
    justify-content: space-between;
  }

  /* Hide weekday header row on phones */
  .swcal-head {
    display: none;
  }

  /* Turn month grid into a vertical list of days */
  .swcal-body {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
  }

  /* Drop empty filler cells (leading/trailing blanks) */
  .swcal-cell.is-empty {
    display: none;
  }

  /* Day row layout: pill card with two columns */
  .swcal-cell {
    position: relative;
    min-height: auto;
    display: grid;
    grid-template-columns: 42px 1fr;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid #e5e7eb;
    background: transparent;
  }

  /* Day number column */
  .swcal-daynum {
    position: static;
    grid-column: 1;
    font-size: 16px;
    font-weight: 700;
    color: #ffffff;   /* white date text on mobile */
    line-height: 1.1;
    margin: 2px 0 0 0;
  }

  /* Month abbrev above the day number (two-line label) */
  .swcal-daynum::before {
    content: "";
    display: block;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.75);
    margin-bottom: 2px;
  }

  /* Inject month abbrev from the grid's data-month */
  .swcal-grid[data-month="1"] .swcal-daynum::before { content: "JAN"; }
  .swcal-grid[data-month="2"] .swcal-daynum::before { content: "FEB"; }
  .swcal-grid[data-month="3"] .swcal-daynum::before { content: "MAR"; }
  .swcal-grid[data-month="4"] .swcal-daynum::before { content: "APR"; }
  .swcal-grid[data-month="5"] .swcal-daynum::before { content: "MAY"; }
  .swcal-grid[data-month="6"] .swcal-daynum::before { content: "JUN"; }
  .swcal-grid[data-month="7"] .swcal-daynum::before { content: "JUL"; }
  .swcal-grid[data-month="8"] .swcal-daynum::before { content: "AUG"; }
  .swcal-grid[data-month="9"] .swcal-daynum::before { content: "SEPT"; }
  .swcal-grid[data-month="10"] .swcal-daynum::before { content: "OCT"; }
  .swcal-grid[data-month="11"] .swcal-daynum::before { content: "NOV"; }
  .swcal-grid[data-month="12"] .swcal-daynum::before { content: "DEC"; }

  /* Event chips flow in the second column and wrap neatly */
  .swcal-cell > a.swcal-slot {
    grid-column: 2;
    display: inline-flex;             /* keep flex even on mobile */
    align-items: center;
    justify-content: center;
    margin: 0 6px 6px 0;
    padding: 7px 11px;
    font-size: 14px;
    line-height: 1.1;
    border-radius: 999px;
    white-space: nowrap;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  /* Keep TZ tag readable but subtle */
  .swcal-slot .swcal-tz {
    font-size: 11px;
    opacity: 0.9;
    margin-left: 4px;
  }

  /* Filters wrap tighter on small screens */
  .swcal-controls {
    gap: 12px;
  }

  .swcal-chips {
    gap: 8px;
  }

  /* Mobile-only SOLD OUT pill for real days with no events.
     Requires JS to add .no-shows to cells without .swcal-slot */
  .swcal-cell.no-shows::after {
    content: "SOLD OUT";
    position: absolute;
    /* full-width in the slot column (col 2) */
    left: calc(12px + 42px + 10px);  /* left padding + day col + gap */
    right: 12px;                     /* right padding */
    top: 10px;
    padding: 6px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    text-align: center;
    color: #ffffff;
    background: #b91c1c;
    border: 1px solid rgba(248, 113, 113, 0.9);
    pointer-events: none;
  }
}

/* =========================
   Contact form styles
   ========================= */

.stxc-wrap {
  max-width: 720px;
  margin: 0 auto;
  padding: 12px;
  background: transparent;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
}

.stxc-contact-card {
  background: transparent;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 12px;
  margin-bottom: 14px;
}

.stxc-contact-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 6px;
}

.stxc-contact-list li a {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.stxc-alert {
  margin: 10px 0;
  padding: 10px 12px;
  border-radius: 10px;
  font-weight: 600;
}

.stxc-alert--ok {
  background: #ecfdf5;
  border: 1px solid #bbf7d0;
  color: #065f46;
}

.stxc-alert--err {
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #991b1b;
}

.stxc-form .stxc-hp {
  position: absolute;
  left: -9999px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.stxc-field {
  margin: 10px 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.stxc-field input[type="text"],
.stxc-field input[type="email"],
.stxc-field textarea {
  border: 1px solid #d1d5db;
  border-radius: 10px;
  padding: 10px 12px;
  outline: none;
  background: #fff;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.stxc-field input:focus,
.stxc-field textarea:focus {
  border-color: #111;
  box-shadow: 0 0 0 3px rgba(17, 17, 17, 0.08);
}

.stxc-grid {
  display: grid;
  gap: 10px;
}

@media (min-width: 600px) {
  .stxc-grid {
    grid-template-columns: 1fr 1fr;
  }
}

.stxc-actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  margin-top: 8px;
}

/* =========================
   Event Template styles
   ========================= */

.stx-et-wrap {
  --pad: 18px;
  --card: #fff;
  --muted: #6b7280;
  --ink: #0f172a;
  --line: #e5e7eb;
  --chip: #f3f4f6;
  --accent: #111;
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 var(--pad);
}

.stx-et-hero {
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  background: transparent;
  color: #fff;
  margin: 14px 0;
}

.stx-et-hero .stx-et-hero-img {
  background: transparent;
}

.stx-et-hero-inner {
  position: relative;
  padding: 42px 20px;
}

.stx-et-title {
  font-size: clamp(28px, 4vw, 44px);
  line-height: 1.1;
  margin: 0 0 15px 0;
}

.stx-et-eyebrow {
  display: inline-block;
  margin: 0 0 15px 0;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 12px;
  opacity: 0.9;
}

.stx-et-sub {
  opacity: 0.95;
  font-size: clamp(16px, 2.2vw, 18px);
  margin: 6px 0 0;
}

.stx-et-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

@media (max-width: 820px) {
  .stx-et-grid {
    grid-template-columns: 1fr;
  }
}

.stx-card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 14px;
}

.stx-keyfacts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

@media (max-width: 680px) {
  .stx-keyfacts {
    grid-template-columns: 1fr;
  }
}

.stx-kf {
  display: flex;
  align-items: center;
  gap: 10px;
  border: 1px dashed var(--line);
  border-radius: 10px;
  padding: 10px;
}

.stx-kf b {
  display: block;
}

.stx-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.stx-chip {
  background: var(--chip);
  border: 1px solid var(--line);
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 13px;
}

.stx-media-card {
  position: relative;
}

.stx-media-card video,
.stx-media-card img {
  width: 100%;
  height: auto;
  border-radius: 10px;
  display: block;
}

.stx-media-toggle {
  position: absolute;
  inset: auto 10px 10px auto;
  background: #fff;
  border-radius: 999px;
  border: 1px solid #e5e7eb;
  padding: 8px 10px;
  font-size: 13px;
  cursor: pointer;
}

.stx-section h3 {
  margin: 0 0 8px;
  font-size: 20px;
}

details.stx-faq {
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 10px 12px;
}

details.stx-faq + details.stx-faq {
  margin-top: 8px;
}

details.stx-faq summary {
  cursor: pointer;
  font-weight: 600;
}

.stx-et-error {
  color: #b91c1c;
}

.stx-center {
  text-align: center;
}

/* Card grid for "What's On" etc. */

.stx-list-wrap {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 16px;
}

.stx-list-wrap h2 {
  font-size: clamp(20px, 2.6vw, 28px);
  line-height: 1.2;
}

.stx-grid-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

@media (max-width: 1024px) {
  .stx-grid-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .stx-grid-cards {
    grid-template-columns: 1fr;
  }
}

.stx-card-item {
  position: relative;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  background: transparent !important;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform 0.18s, box-shadow 0.18s, border-color 0.18s;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

.stx-card-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.08);
  border-color: #e2e8f0;
}

.stx-card-media {
  position: relative;
  aspect-ratio: 1 / 1;
  background: transparent;
  overflow: hidden;
  display: block;
  margin-bottom: 15px;  /* space between image and badge/text */
}

.stx-card-media img {
  display: block;
  width: 100%;
  height: auto;
}

.stx-card-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 0) 50%);
  pointer-events: none;
}

.stx-card-media--ph {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #94a3b8;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.stx-badge {
  position: absolute;
  left: 10px;
  top: 10px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(17, 17, 17, 0.9);
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  backdrop-filter: saturate(1.2) blur(2px);
}

.stx-card-body {
  padding: 12px 14px 14px;
}

.stx-card-title {
  font-weight: 800;
  font-size: 17px;
  line-height: 1.25;
  margin: 0 0 6px;
  color: #ffffff !important;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.stx-card-meta {
  font-size: 12px;
  color: #cccccc !important;
  margin-bottom: 8px;
}

.stx-card-meta--price {
  font-weight: 700;
  color: #cccccc;
  margin-top: -2px;
  margin-bottom: 6px;
}

.stx-card-meta--venue {
  color: #475569;
  margin-bottom: 10px;
}

.stx-card-excerpt {
  font-size: 14px;
  text-align: justify;
  color: #ffffff;
  margin: 0 0 12px;
  display: -webkit-box;
  -webkit-line-clamp: 7;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.stx-card-actions {
  margin-top: auto;
  display: flex;
  gap: 8px;
}

/* Small utility tweaks */

.stx-note--spacing {
  margin-top: 8px;
}

.stx-section--mt {
  margin-top: 12px;
}

.stx-quote {
  border-left: 3px solid #e5e7eb;
  padding-left: 10px;
  margin: 0;
}

.stx-faq-heading {
  margin-bottom: 8px;
}

/* Hide the core title on managed pages (paired with body_class filter) */

.stx-et-public-page .entry-title,
.stx-et-public-page .page-title,
.stx-et-public-page .wp-block-post-title,
.stx-et-public-page .site-main > h1:first-child,
.stx-et-public-page header .page-header h1,
.stx-et-public-page .content-area > h1:first-child {
  display: none !important;
}

/* =========================
   My Orders table
   ========================= */

.sw-orders {
  width: 100%;
  border-collapse: collapse;
}

.sw-orders th,
.sw-orders td {
  border-bottom: 1px solid #eee;
  padding: 8px;
  text-align: left;
}

.sw-right {
  text-align: right;
}

/* =========================
   Account form
   ========================= */

.sw-form {
  border: 1px solid #eee;
  border-radius: 8px;
  padding: 14px;
  margin: 18px 0;
  background: transparent !important;
}

.sw-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.sw-grid .full {
  grid-column: 1 / -1;
}

.sw-form label {
  display: block;
  font-size: 12px;
  color: #cccccc;
  margin-bottom: 4px;
}

.sw-form input[type="text"],
.sw-form input[type="email"],
.sw-form input[type="tel"],
.sw-form input[type="password"] {
  width: 100%;
  padding: 8px;
  border: 1px solid #ddd;
  border-radius: 6px;
}


/* =========================
   Per-event tax breakdown table
   ========================= */

.swc-tax-table {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid #eee;
    margin-top: 10px;
    font-size: 14px;
}

.swc-tax-table th,
.swc-tax-table td {
    padding: 8px;
    border-bottom: 1px solid #f3f3f3;
}

/* Header row */
.swc-tax-table thead th {
    border-bottom-color: #eee;
    text-align: left;
    font-weight: 700;
}

/* Right-align amount column */
.swc-tax-table__th--amount,
.swc-tax-table__td--amount {
    text-align: right;
}

/* =========================
   POS Identify Customer screen
   ========================= */

.sw-pos-ident {
    max-width: 560px;
    margin: 32px auto;
    font: 16px/1.5 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.sw-pos-ident__title {
    margin: 0 0 12px 0;
    font-size: 20px;
    font-weight: 700;
}

.sw-pos-ident__form {
    margin: 0;
}

.sw-pos-ident__field {
    margin-bottom: 10px;
}

.sw-pos-ident__row {
    display: flex;
    gap: 10px;
    margin-bottom: 10px;
    flex-wrap: wrap;
}

.sw-pos-ident__label {
    display: block;
    font-size: 14px;
    color: #111827;
}

.sw-pos-ident__label--half {
    flex: 1 1 0;
}

.sw-pos-ident__input {
    width: 100%;
    margin-top: 4px;
    padding: 8px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font: inherit;
    box-sizing: border-box;
}

.sw-pos-ident__input:focus {
    outline: none;
    border-color: #111827;
    box-shadow: 0 0 0 2px rgba(15, 23, 42, 0.12);
}

.sw-pos-ident__btn {
    padding: 8px 12px;
    border-radius: 999px;
    border: 1px solid #111827;
    background: #111827;
    color: #ffffff;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s ease, transform 0.05s ease, box-shadow 0.15s ease;
}

.sw-pos-ident__btn:hover {
    background: #000000;
    box-shadow: 0 4px 10px rgba(15, 23, 42, 0.25);
}

.sw-pos-ident__btn:active {
    transform: translateY(1px);
    box-shadow: none;
}

/* =========================
   Checkout / POS notices
   ========================= */

.swc-notice {
    margin: 14px 0;
    padding: 10px;
    border-radius: 6px;
    font-size: 14px;
}

/* Keep legacy classes functional if anything else uses them */
.swc-notice.sw-success,
.swc-notice--success {
    background: #eefbe7;
    border: 1px solid #99d68c;
    color: #216e09;
}

.swc-notice.sw-warning,
.swc-notice--warning {
    background: #fff7e6;
    border: 1px solid #f3b366;
    color: #7a4e00;
}

.swc-notice.sw-errors,
.swc-notice--error {
    background: #ffeeee;
    border: 1px solid #f99;
    color: #a00000;
}

.swc-notice__list {
    margin: 0 0 0 18px;
    padding: 0;
}

  /* =========================
     Thank You / Order Summary
     ========================= */

  .sw-thk-wrap {
      font: 14px/1.5 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      color: #111827;
  }

  .sw-thk-summary,
  .sw-thk-payment,
  .sw-thk-vouchers {
      margin: 0 0 8px 0;
  }

  .sw-thk-summary strong,
  .sw-thk-payment strong {
      font-weight: 700;
  }

  .sw-thk-vouchers {
      color: #666666;
      margin-bottom: 10px;
  }

  .sw-thk-voucher-chip {
      display: inline-block;
      border: 1px solid #dddddd;
      border-radius: 999px;
      padding: 2px 8px;
      margin-right: 6px;
      font-size: 12px;
      background: #fafafa;
  }
  
.sw-card {
  background: transparent !important;
}

.sw-summary,
.sw-summary * {
  background: transparent !important;
}

  .sw-thk-event-heading {
      margin: 14px 0 8px 0;
      font-weight: 700;
  }

  .sw-thk-items,
  .sw-thk-totals {
      width: 100%;
      border-collapse: collapse;
      border: 1px solid #eeeeee;
  }

  .sw-thk-items {
      margin-top: 0;
  }

  .sw-thk-totals {
      margin-top: 12px;
  }

  .sw-thk-items__cell,
  .sw-thk-totals__cell {
      padding: 8px;
      border-bottom: 1px solid #f3f3f3;
  }

  .sw-thk-items__cell--head {
      border-bottom-color: #eeeeee;
      font-weight: 700;
  }

  .sw-thk-items__cell--ticket {
      width: 50%;
  }

  .sw-thk-items__cell--num,
  .sw-thk-totals__cell--num {
      text-align: right;
  }

  .sw-thk-totals__row {
      background: #fafafa;
  }

  .sw-thk-totals__cell {
      padding: 8px;
  }

  .sw-thk-totals__cell--spacer {
      background: #fafafa;
      width: 20%;
  }

  .sw-thk-totals__cell--label {
      background: #fafafa;
      text-align: right;
      white-space: nowrap;
  }

  .sw-thk-totals__cell--label span.sw-thk-totals__note {
      color: #666666;
      font-weight: 400;
  }

  .sw-thk-totals__cell--value {
      background: #fafafa;
      text-align: right;
  }

  .sw-thk-totals__cell--value strong {
      font-weight: 700;
  }
  
  /* Event metabox layout */
.sw-event-meta-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.sw-event-meta-grid__col {
    margin: 0;
}

.sw-event-meta-grid__row {
    grid-column: 1 / -1;
    margin: 0;
}

/* Labels & descriptions */
.sw-event-meta__label {
    font-weight: 600;
    display: block;
    margin-bottom: 4px;
}

.sw-event-meta__description {
    display: block;
    margin-top: 4px;
    color: #666;
    font-size: 12px;
}

.sw-event-meta__description--small {
    margin-top: 6px;
}

/* Audience radios */
.sw-event-meta-audience {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.sw-event-meta-audience__title {
    margin-bottom: 0;
}

.sw-event-meta-audience__option {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

/* Image blocks */
.sw-event-meta-image-block {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.sw-event-meta-image-block__title {
    margin-bottom: 2px;
}

.sw-event-meta-image-block__body {
    display: flex;
    gap: 12px;
    align-items: center;
    flex-wrap: wrap;
}

.sw-event-meta__image-preview {
    width: 96px;
    height: 96px;
    border: 1px solid #ccd0d4;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 4px;
}

.sw-event-meta__image-img {
    max-width: 100%;
    height: auto;
    display: block;
}

.sw-event-meta__no-image {
    color: #666;
    font-size: 12px;
    text-align: center;
    line-height: 1.2;
    padding: 6px;
}

.sw-event-meta-image-block__controls {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.sw-event-meta__image-id {
    width: 160px;
}

/* Brand Manager layout */
.stx-wrap.stx-brand-manager {
    max-width: 1000px;
    margin: 20px auto;
    padding: 0 12px;
}

/* Card */
.stx-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .03);
    padding: 16px;
    margin-bottom: 14px;
}

/* Titles */
.stx-title {
    margin: .1em 0 .6em;
    font-size: 18px;
}

/* Grid layout */
.stx-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.stx-row {
    grid-column: 1 / -1;
}

/* Labels & inputs */
.stx-label {
    font-weight: 600;
    display: block;
    margin-bottom: 6px;
}

.stx-input,
.stx-select,
.stx-textarea {
    width: 100%;
    padding: 8px 10px;
    border: 1px solid #d1d5db;
    border-radius: 8px;
}

/* Help / hint text */
.stx-help {
    display: block;
    margin-top: 4px;
    font-size: 12px;
    color: #cccccc !important;
}

.stx-note {
    display: block;
    margin-top: 4px;
    font-size: 12px;
    color: #cccccc !important;
}

/* Actions */
.stx-actions {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

/* Buttons */
.stx-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border-radius: 9px;
    padding: 8px 12px;
    border: 1px solid #d1d5db;
    background: #f9fafb;
    cursor: pointer;
}

/* Muted text */
.stx-muted {
    font-size: 12px;
    color: #ffffff;
}

/* Image preview */
.image-preview {
    width: 96px;
    height: 96px;
    border: 1px solid #e5e7eb;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 8px;
    color: #6b7280;
    font-size: 12px;
}

/* --- Event builder helpers --- */

/* Align actions to the bottom in the finder row */
.stx-actions--bottom {
    align-items: flex-end;
}

/* Wider selects/inputs in the filter row */
.stx-select--wide,
.stx-input--wide {
    min-width: 220px;
}

/* Narrow input (for IDs) */
.stx-input--narrow {
    width: 140px;
}

/* Spacer row to force next stuff onto its own line */
.stx-spacer-row {
    flex: 1 1 100%;
    height: 0;
}

/* Results dropdown column */
.stx-results-col {
    min-width: 360px;
    flex: 1;
}

/* Full-width select */
.stx-select--full {
    width: 100%;
}

/* Fixed-width ID inputs (e.g. attachment IDs) */
.stx-input--id {
    width: 160px;
}

/* Center-aligned action rows (for media pickers) */
.stx-actions--center {
    align-items: center;
}

/* Top margin for bottom action bar */
.stx-actions--mt {
    margin-top: 8px;
}

.sw-event-wrap {
    max-width: 980px;
    margin: 40px auto;
    padding: 0 16px;
}

.sw-crumbs {
    margin-bottom: 10px;
    font-size: 13px;
    opacity: .75;
}

.sw-event-header h1 {
    margin: .2em 0 .4em;
}

.sw-event-meta {
    margin: .25em 0 1em;
    font-size: 14px;
    color: #555;
}

.sw-badge {
    display: inline-block;
    line-height: 1;
    border-radius: 999px;
    padding: 6px 10px;
    font-size: 12px;
    background: #f2f4f7;
}

.sw-event-hero {
    margin: 10px 0 14px;
}

.sw-event-hero img {
    max-width: 100%;
    height: auto;
    display: block;
    border-radius: 8px;
}

.sw-event-template-content {
    margin: 18px 0;
}

.sw-group-picker {
    margin: 16px 0 8px;
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

.sw-group-hint {
    font-size: 12px;
    color: #666;
}

.sw-tt-table {
    width: 100%;
    border-collapse: collapse;
    margin: 14px 0;
    display: table;
}

.sw-tt-table thead th,
.sw-tt-table td {
    border-bottom: 1px solid #eee;
    padding: 8px;
}

.sw-tt-table thead {
    background: #fafafa;
}

.sw-tt-table[aria-hidden="true"] {
    display: none;
}

.sw-tt-table tfoot td {
    font-weight: bold;
    background: #fafafa;
    vertical-align: top;
}

.sw-qty-wrap {
    display: flex;
    gap: 6px;
    align-items: center;
}

.sw-qty-input {
    width: 80px;
}

.sw-qty-btn {
    line-height: 1;
    border: 1px solid #ddd;
    background: #f7f7f7;
    border-radius: 4px;
    padding: 4px 8px;
    cursor: pointer;
}

.sw-muted {
    opacity: .8;
}

.sw-row-disabled {
    opacity: .45;
    filter: grayscale(1);
}

.sw-errors {
    background: #fee;
    border: 1px solid #f99;
    color: #a00;
    padding: 10px;
    border-radius: 6px;
    margin: 14px 0;
}

.sw-success {
    background: #eefbe7;
    border: 1px solid #99d68c;
    color: #216e09;
    padding: 10px;
    border-radius: 6px;
    margin: 14px 0;
}

.sw-mini-tier {
    font-size: 12px;
}

.sw-mini-tier th,
.sw-mini-tier td {
    border: none;
}

.sw-mini-tier td,
.sw-mini-tier th {
    padding: 2px 4px;
}

.is-hidden {
    display: none;
}


.sw-tier-note {
    font-size: 12px;
    margin-top: 4px;
}

/* VAT notice — small and subtle */
#sw-vat-note.sw-note {
    display: block; 
    text-align:center;
    font-size: 12px !important;
    line-height: 1.35 !important;
    color: #ffffff !important;
}

@media (max-width: 640px) {
    #sw-vat-note.sw-note {
        font-size: 0.55em !important;
    }
}

/* Hero LEFT (30%) + Description RIGHT (70%) */
header.sw-event-header {
    display: grid !important;
    grid-template-columns: 30% 70%;
    grid-template-areas:
        "title   title"
        "excerpt excerpt"
        "hero    desc";
    column-gap: 24px;   /* left/right space */
    row-gap: 12px;      /* a bit tighter than before */
    align-items: start;
}

/* Place items + tighten vertical rhythm */
header.sw-event-header > h1 {
    grid-area: title;
    margin: .1em 0 .2em !important;   /* less gap above excerpt */
}

header.sw-event-header > p {
    grid-area: excerpt;
    margin: 0 0 8px !important;       /* less gap before hero/desc row */
}

header.sw-event-header .sw-event-hero {
    grid-area: hero;
    margin: 0 !important;             /* remove 10px/14px margins */
    align-self: start;
}

header.sw-event-header .sw-event-template-content {
    grid-area: desc;
    margin: 0 !important;             /* remove 18px top margin */
}

/* kill inner top/bottom margins so desc aligns exactly with hero top */
header.sw-event-header .sw-event-template-content > *:first-child {
    margin-top: 0 !important;
}

header.sw-event-header .sw-event-template-content > *:last-child {
    margin-bottom: 0 !important;
}

/* Image sizing */
header.sw-event-header .sw-event-hero img {
    display: block;
    width: 100%;
    height: auto;
}

/* Mobile: stack */
@media (max-width: 900px) {
    header.sw-event-header {
        grid-template-columns: 1fr;
        grid-template-areas:
            "title"
            "excerpt"
            "hero"
            "desc";
        row-gap: 12px;
    }
}

/* Event excerpt text under H1 */
.sw-event-header .sw-event-excerpt {
    font-size: 1.05em;
    color: #555;
    margin-top: 0;
}

/* Generic muted text you already have:
   .sw-muted { opacity: .8; }
   We’re extending for the “strong” versions. */
.sw-offsale-msg {
    font-weight: 600;
}

/* Password gate form for private events */
.sw-event-pw-form {
    max-width: 420px;
    margin: 10px 0;
}

.sw-event-pw-label {
    display: block;
    margin-bottom: 6px;
}

.sw-event-pw-input {
    width: 100%;
    padding: 8px;
    border: 1px solid #ddd;
    border-radius: 6px;
    margin: 6px 0 10px;
}

/* Group picker tweaks */
.sw-group-label {
    margin-right: 6px;
}

.sw-group-select {
    min-width: 220px;
}

/* Cart messages hidden by default via .is-hidden, but we give it some structure */
.sw-cart-messages {
    margin-top: 10px;
}

/* Buy-wrap: buttons side-by-side */
.sw-buy-wrap {
    margin-top: 10px;
}

.sw-add-wrap {
    display: flex;
    gap: 10px;
    align-items: center;
    margin: 0;
}

/* =========================
   Ticket table layout
   ========================= */

/* Base table */
.sw-tt-table {
    width: 100%;
    border-collapse: collapse;
    margin: 14px 0;
}

/* Column widths (desktop) */
.sw-tt-col--ticket { width: 30%; }
.sw-tt-col--pricing { width: 26%; }
.sw-tt-col--minmax { width: 14%; }
.sw-tt-col--qty { width: 16%; }
.sw-tt-col--total { width: 14%; }

.sw-tt-cell--right {
    text-align: right;
}

/* Table cells */
.sw-tt-table th,
.sw-tt-table td {
    padding: 8px;
    border-bottom: 1px solid #eee;
    vertical-align: top;
}

/* Kill backgrounds so everything inherits page background */
.sw-tt-table th,
.sw-tt-table td,
.sw-tt-table thead,
.sw-tt-table thead th,
.sw-tt-table tfoot,
.sw-tt-table tfoot td,
.sw-vat-row,
.sw-mini-tier,
.sw-mini-tier th,
.sw-mini-tier td {
    background: transparent !important;
}

/* Semantic hooks (handy for future tweaks) */
.sw-tt-cell--ticket { }
.sw-tt-cell--pricing { }
.sw-tt-cell--minmax { }
.sw-tt-cell--qty { }

/* “From: £X” line under ticket title */
.sw-tt-from {
    margin-top: 2px;
}

/* “—” unavailable marker */
.sw-tt-na {
    font-size: 0.9em;
}

/* Summary footer in the table (subtotal / VAT / grand total) */
.sw-tt-summary-label {
    font-weight: 400;
}

/* Tickets section wrapper */
.sw-tickets-section {
    margin-top: 24px;
}

.sw-tickets-title {
    margin: 0 0 8px;
}

/* Mini tier table inside pricing cell */
.sw-mini-tier {
    font-size: 12px;
}

.sw-mini-tier th,
.sw-mini-tier td {
    border: none;
    padding: 2px 4px;
}

/* Availability line – “Max available: 15” */
.sw-availability {
    font-size: 12px;
    margin-top: 4px;
    color: #ff0000 !important;  /* vivid orange */
    font-weight: 600;
}

/* Keep SOLD OUT strong and red */
.sw-availability .sold {
    color: #ff0000 !important;
    font-weight: 700;
}

/* Tier note under qty selector */
.sw-tier-note {
    font-size: 12px;
    margin-top: 4px;
}

/* =========================
   Mobile layout tweaks
   ========================= */

@media (max-width: 768px) {

    /* Stack rows as “cards” */
    .sw-tt-table,
    .sw-tt-table tbody,
    .sw-tt-table tr,
    .sw-tt-table td {
        display: block;
        width: 100%;
    }

    .sw-tt-table thead {
        display: none;
    }

    .sw-tt-row {
        padding: 10px 0;
        border-bottom: 1px solid #eee;
    }

    .sw-tt-row td {
        padding: 4px 0;
    }

    /* First cell (ticket title + from + availability) stays as-is, full width */

    /* Pricing label */
    .sw-tt-row td:nth-child(2)::before {
        content: "Pricing";
        display: block;
        font-size: 11px;
        text-transform: uppercase;
        letter-spacing: 0.03em;
        color: #6b7280;
        margin-bottom: 2px;
    }

    /* Min / Max label */
    .sw-tt-row td:nth-child(3)::before {
        content: "Min / Max";
        display: block;
        font-size: 11px;
        text-transform: uppercase;
        letter-spacing: 0.03em;
        color: #6b7280;
        margin-bottom: 2px;
    }

    /* Qty label */
    .sw-tt-row td:nth-child(4)::before {
        content: "Qty";
        display: block;
        font-size: 11px;
        text-transform: uppercase;
        letter-spacing: 0.03em;
        color: #6b7280;
        margin-bottom: 2px;
    }

    /* Total label */
    .sw-tt-row td:nth-child(5)::before {
        content: "Row Total";
        display: block;
        font-size: 11px;
        text-transform: uppercase;
        letter-spacing: 0.03em;
        color: #6b7280;
        margin-bottom: 2px;
    }

    /* Make total stand out a bit */
    .sw-tt-row td:nth-child(5) {
        text-align: right;
        font-weight: 600;
        margin-top: 4px;
    }

    /* Qty controls: give them breathing room and full-width on mobile */
    .sw-qty-wrap {
        width: 100%;
        max-width: 260px;
        justify-content: flex-start;
    }

    .sw-qty-input {
        flex: 1 1 auto;
        max-width: 120px;
    }
}

/* =========================
   Ticket footer + buttons + VAT note
   ========================= */

/* Totals footer: right-aligned, full width */
.sw-tt-table tfoot {
    border-top: 1px solid #e5e7eb;
    margin-top: 4px;
}

.sw-tt-table tfoot td {
    text-align: right;
    padding-top: 6px;
}

/* Mobile: keep totals full-width + right-aligned */
@media (max-width: 768px) {
    .sw-tt-table tfoot,
    .sw-tt-table tfoot tr,
    .sw-tt-table tfoot td {
        display: block;
        width: 100%;
        text-align: right;
    }
}

/* Buy buttons wrapper */
#sw-buy-wrap {
    display: flex;
    gap: 10px;
    align-items: center;
    justify-content: flex-end; /* right-align on desktop */
    margin-top: 12px;
}

/* Mobile: center buttons so they feel less cramped */
@media (max-width: 768px) {
    #sw-buy-wrap {
        justify-content: center;
        flex-wrap: wrap;
    }
}

@media (max-width: 768px) {
    #sw-vat-note.sw-note {
        text-align: center;
    }
}

/* =========================
   My Tickets layout
   ========================= */

.stx-my-tickets {
  max-width: 980px;
  margin: 32px auto;
  padding: 0 16px;
}

/* Login / empty states */
.stx-my-tickets-login,
.stx-my-tickets-empty {
  max-width: 640px;
  margin: 32px auto;
  padding: 12px 16px;
  border-radius: 10px;
  border: 1px solid rgba(148, 163, 184, 0.45);
  font-size: 14px;
}

/* Each order section */
.stx-order {
  border: 1px solid rgba(148, 163, 184, 0.45);
  border-radius: 12px;
  padding: 14px 14px 16px;
  margin-bottom: 18px;
  background: transparent; /* no hard white; respects page bg */
}

/* Order header: title + download button */
.stx-order-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.stx-order-title {
  margin: 0;
  font-size: 18px;
}

/* Card grid per order */
.stx-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: 12px;
}

/* Ticket card */
.stx-card {
  border-radius: 10px;
  border: 1px solid rgba(148, 163, 184, 0.35);
  background: rgba(15, 23, 42, 0.35);  /* semi-dark so QR + text pop */
  display: grid;
  grid-template-columns: 96px 1fr;
  gap: 10px;
  padding: 8px 10px;
  align-items: stretch;
}

/* No image: fall back to single-column */
.stx-card:not(:has(.stx-card-media)) {
  grid-template-columns: 1fr;
}

/* Media wrapper should take full content width of the card */
.stx-card-media {
  width: 100%;
  margin: 0;          /* kill any weird inherited margins */
  padding: 0;
  overflow: hidden;
  border-radius: 8px;
}

.stx-card-thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Card body */
.stx-card-body {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 4px;
}

.stx-card-title {
  margin: 0 0 2px;
  font-size: 18px;
  line-height: 1.3;
  text-align: center;
}

/* Meta lines: type, ticket number, checkin */
.stx-card-meta {
  margin: 1px 0;
  font-size: 14px;
}

/* QR area */
.stx-card-qr {
  margin-top: 4px;
}

.stx-card-qr-img {
  width: 80px;
  height: 80px;
  display: block;
  border-radius: 6px;
  border: 1px solid rgba(148, 163, 184, 0.4);
}

/* Status line */
.stx-card-status {
  margin: 4px 0 0;
  font-size: 12px;
  display: flex;
  align-items: center;
  gap: 4px;
}

.stx-card-status-label {
  opacity: 0.8;
}

.stx-card-status-value {
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
}

/* Status colours – cancelled = red, pending = amber, checked-in = green */

.stx-card--ticket.stx-status-pending .stx-card-status-value {
  background: rgba(245, 158, 11, 0.18); /* amber */
  color: #d97706;
}

.stx-card--ticket.stx-status-checked-in .stx-card-status-value {
  background: rgba(34, 197, 94, 0.18); /* green */
  color: #16a34a;
}

.stx-card--ticket.stx-status-cancelled .stx-card-status-value {
  background: rgba(239, 68, 68, 0.2); /* red */
  color: #dc2626;
}

/* =========================
   My Tickets – responsive
   ========================= */

@media (max-width: 640px) {
  .stx-my-tickets {
    padding: 0 12px;
  }

  .stx-order-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
  }

  .stx-order-download-btn {
    width: 100%;
    justify-content: center;
  }

  .stx-grid {
    grid-template-columns: 1fr;
  }

  .stx-card {
    grid-template-columns: 80px 1fr;
    padding: 8px 9px;
  }

  .stx-card-media {
    width: 80px;
    height: 80px;
  }

  .stx-card-qr-img {
    width: 70px;
    height: 70px;
  }
}

/* =========================
   My Tickets – visibility tweaks
   ========================= */

/* Make titles + meta lines white on the dark card background */
.stx-card-title,
.stx-card-meta,
.stx-card-status,
.stx-card-status-label {
  color: #f9fafb;
}

/* Make the status pill text a bit brighter */
.stx-card-status-value {
  color: #fefce8;
}

/* Prevent any weird truncation of times like "12:0" or "14:0" */
.stx-my-tickets p,
.stx-card-meta {
  white-space: normal;     /* allow wrapping */
  overflow: visible;       /* don’t clip text */
  text-overflow: clip;     /* kill any inherited ellipsis */
}

/* Flex/grid safety: let text shrink instead of being chopped */
.stx-card-body {
  min-width: 0;
}

/* Venue metabox layout */
.sw-venue-metabox-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.sw-venue-metabox-grid label {
  font-weight: 600;
}

/* Full-width row inside the grid */
.sw-venue-metabox-grid-full {
  grid-column: 1 / -1;
}

/* QR block tweaks (optional) */
.sw-venue-metabox-qr {
  /* if you want it full-width as well: */
  /* grid-column: 1 / -1; */
}

/* QR image styling (replaces inline style attr) */
.sw-venue-metabox-qr-img {
  max-width: 200px;
  height: auto;
  border: 1px solid #ddd;
  padding: 4px;
  background: #fff;
  display: inline-block;
}

/* Generic notice cards (error/success) */
.stx-card--notice-error {
  border-color: #fecaca;
  background: transparent; /* previously #fff1f2 */
}

.stx-card--notice-success {
  border-color: #bbf7d0;
  background: transparent; /* previously #f0fdf4 */
}

.sw-venue-delete-form {
  display: inline-block;
  margin-left: 6px;
  vertical-align: middle;
}

/* Toolbar layout */
.sw-venue-toolbar {
  display: flex;
  gap: 8px;
  align-items: center;
}

/* Search input width */
.sw-venue-search-input {
  min-width: 220px;
}

/* Flexible spacer to push "Create new venue" to the right */
.sw-venue-toolbar-spacer {
  margin-left: auto;
}

/* Pagination bar */
.sw-venue-pagination {
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: space-between;
  margin-top: 10px;
}

/* Venue form header (title + icon) */
.sw-form-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 6px;
}

/* Ensure the form title doesn't pick up random margins */
.sw-form-title {
  margin: 0;
}

/* Location helper row */
.sw-location-helper-row {
  grid-column: 1 / -1;
  display: flex;
  gap: 8px;
  align-items: flex-end;
}

.sw-location-helper-input {
  flex: 1;
}

.sw-location-helper-button,
.sw-location-helper-status {
  margin: 0;
}

/* Coords row full width */
.sw-row--fullwidth {
  grid-column: 1 / -1;
}

/* Coords field widths */
.sw-field--lat,
.sw-field--lng {
  max-width: 180px;
}

.sw-field--zoom {
  max-width: 140px;
}

/* Direction map section */
.sw-dir-map-section {
  grid-column: 1 / -1;
}

.sw-dir-map-label {
  font-weight: 600;
  display: block;
  margin-bottom: 6px;
}

.sw-dir-map-preview {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 8px;
}

.sw-dir-map-img {
  max-width: 220px;
  height: auto;
  border: 1px solid #ddd;
  padding: 4px;
  background: #fff;
}

.sw-dir-map-img--hidden {
  display: none;
}

.sw-dir-map-actions {
  margin-bottom: 4px;
}

.sw-dir-map-remove.sw-is-hidden {
  display: none;
}

.sw-edit-only-inner {
  display: flex;
  flex-direction: column;   /* stack left then right */
  gap: 18px;
  align-items: flex-start;
  margin: 10px 0;
}

.sw-edit-only-left,
.sw-edit-only-right {
  /* inherit default, just there if you want to tweak later */
}

.sw-check--inline {
  display: flex;
  gap: 6px;
  align-items: center;
}

/* QR image in edit-only block */
.sw-qr-img {
  max-width: 200px;
  height: auto;
  border: 1px solid #ddd;
  padding: 4px;
  background: #fff;
}

/* Toggle links that are only visible in edit mode */
.sw-toggle-create.sw-is-hidden,
.sw-toggle-view.sw-is-hidden,
.sw-toggle-admin.sw-is-hidden {
  display: none;
}

/* Dirty state label – hidden until JS shows it */
.sw-dirty-state {
  margin-left: auto;
  display: none;
}

/* Inline notice used by AJAX edit */
.sw-inline-notice {
  margin: 8px 0;
  padding: 6px 8px;
  border-radius: 6px;
  font-size: 13px;
}

.sw-inline-notice--info {
  background: #ecfeff;
  border: 1px solid #bae6fd;
}

/* Invalid field highlight (was injected via <style> before) */
.sw-invalid {
  outline: 2px solid #ef4444;
  background: #fff7f7;
}

/* Edit-only block visibility (matches earlier HTML changes) */
.sw-edit-only {
  display: none;
}

.sw-edit-only--visible {
  display: block;
}

/* Generic “hidden” utility class for toggleable links/buttons */
.sw-is-hidden {
  display: none;
}

/* ======== ScreamTix venues — front-end styles (scoped) ======== */
.stx-venues-frontend {
  width: 100%;
  max-width: 1200px;
}

.stx-venues-frontend .stx-card {
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  padding: 14px;
  background: transparent; /* unified */
}

.stx-venues-frontend .stx-toolbar,
.stx-venues-frontend .stx-form-grid {
  display: grid;
  gap: 12px;
}

.stx-venues-frontend .stx-toolbar {
  grid-template-columns: auto 1fr auto auto;
  align-items: center;
  flex-wrap: wrap;
  margin-bottom: 10px;
}

.stx-venues-frontend .stx-table {
  width: 100%;
  border-collapse: collapse;
}

.stx-venues-frontend .stx-table th,
.stx-venues-frontend .stx-table td {
  text-align: left;
  padding: 8px 10px;
  vertical-align: middle;
  border-bottom: none; /* moved to the row */
}

/* Single, continuous line per row */
.stx-venues-frontend .stx-table tr {
  border-bottom: 1px solid #f0f2f5;
}

.stx-venues-frontend .stx-table thead th {
  background: transparent;   /* or var(--stx-card-bg) if you add one */
  font-weight: 600;
  white-space: nowrap;
}

.stx-venues-frontend .stx-btn {
  display: inline-block;
  padding: 4px 10px;
  border: 1px solid #d1d5db;
  border-radius: 999px;  /* pill */
  background: rgba(15, 23, 42, 0.35);
  cursor: pointer;
  text-decoration: none;
  font-size: 12px;
  line-height: 1.2;
  color: #111827;  
}

.stx-venues-frontend .stx-btn--primary {
  background: #2563eb;
  color: #fff;
  border-color: #2563eb;
}

.stx-venues-frontend .stx-input,
.stx-venues-frontend input[type="text"],
.stx-venues-frontend input[type="email"],
.stx-venues-frontend input[type="number"],
.stx-venues-frontend input[type="search"],
.stx-venues-frontend select,
.stx-venues-frontend textarea {
  width: 100%;
  padding: 6px 8px;
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  background: #fff;
}

.stx-venues-frontend .stx-sticky {
  position: sticky;
  bottom: 0;
  background: #fff;
  padding-top: 8px;
  margin-top: 12px;
  border-top: 1px dashed #e5e7eb;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}

.stx-venues-frontend .stx-muted {
  color: #64748b;
}

@media (min-width: 820px) {
  .stx-venues-frontend .stx-form-grid {
    grid-template-columns: 1fr 1fr;
  }
}

.sw-venue-form .sw-row--coords {
  display: grid;
  grid-template-columns: repeat(3, minmax(160px, 1fr)) auto auto;
  column-gap: 12px;
  row-gap: 8px;
  align-items: end;
}

.sw-venue-form .sw-row--coords p {
  margin: 0;
}

.sw-venue-form .sw-row--coords .button {
  align-self: end;
}

@media (max-width: 800px) {
  .sw-venue-form .sw-row--coords {
    grid-template-columns: 1fr 1fr;
  }
  .sw-venue-form .sw-row--coords .sw-actions {
    grid-column: 1 / -1;
    justify-self: start;
  }
}

.stx-venues-frontend .stx-actions {
  white-space: nowrap;
}

.stx-venues-frontend td.stx-actions {
  white-space: nowrap;
  display: flex;
  align-items: center;  /* vertically center buttons in the row */
  gap: 6px;             /* space between Edit / Delete */
}

.stx-venues-frontend .stx-btn--danger {
  background: #dc2626;
  border-color: #dc2626;
  color: #fff;
}

.stx-venues-frontend .stx-btn--danger:hover {
  filter: brightness(0.95);
}

.stx-venues-frontend .stx-sticky {
  background: transparent;
}

/* Normalise actions cell layout */
.stx-venues-frontend .stx-actions {
  white-space: nowrap;
  vertical-align: middle;
}

/* Make sure the Actions cell aligns like the rest of the row */
.stx-venues-frontend td.stx-actions 

/* Big, punchy section headings */
.stx-section h2,
.stx-section .stx-section-title {
  font-size: clamp(1.6rem, 2vw + 0.5rem, 2.1rem);
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin: 0 0 0.75em;
  padding-bottom: 0.35em;
  border-bottom: 2px solid var(--stx-accent, #f97316); /* uses your accent if set */
}

/* Secondary headings inside section */
.stx-section h3 {
  font-size: clamp(1.2rem, 1.2vw + 0.5rem, 1.5rem);
  font-weight: 700;
  margin: 1.2em 0 0.5em;
}

/* Optional: subtle glow/contrast so they pop on dark/light */
.stx-section h2,
.stx-section h3 {
  text-shadow: 0 0 10px rgba(0,0,0,0.25);
}

#stx-consent .stx-box {
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: transparent !important;
  max-width: 720px;
  box-shadow: 0 1px 2px rgba(0,0,0,.03);
  margin-left: 0 !important;
}

.screamtix-card {
  background: transparent !important;
}

.sw-cart-event {
  background: transparent !important;
}

.sw-cart-all {
  background: transparent !important;
}
#stx-consent .stx-switch input:checked + .stx-slider {
  background-color: #ccffcc !important;
}

.sw-my-coupons .sw-tab code {
  background: transparent !important;
  padding: 2px 6px;
  border-radius: 4px;
}

/* Wrapper */
.sw-cart-wrap {
  max-width: 980px;
  margin: 24px auto;
}

/* Flash messages */
.sw-flash {
  margin: 10px 0;
  padding: 10px;
  border-radius: 6px;
  font-size: 14px;
}

.sw-flash-list {
  margin: 8px 0 0 18px;
  padding-left: 0;
}

.sw-flash--error {
  background: #ffeeee;
  border: 1px solid #ff9999;
  color: #aa0000;
}

.sw-flash--warning {
  background: #fff7e6;
  border: 1px solid #f3c371;
  color: #7a4b00;
}

.sw-flash--success {
  background: #eefbe7;
  border: 1px solid #99d68c;
  color: #216e09;
}

/* Multi-currency notice */
.sw-cart-multicurrency {
  margin: 10px 0;
  padding: 10px;
  border-radius: 6px;
  background: #fff7e6;
  border: 1px solid #f3c371;
  color: #7a4b00;
}

/* Per-event box */
.sw-cart-event {
  border: 1px solid #eee;
  background: #fff;
  border-radius: 8px;
  padding: 12px;
  margin: 14px 0;
}

.sw-back-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  text-decoration: none;
  color: #555;
  font-size: 14px;
}

.sw-back-link span {
  text-decoration: underline;
}

.sw-cart-event-title {
  margin: 0.2em 0 8px;
}

.sw-cart-capacity-note {
  font-size: 12px;
  color: #cccccc;
  margin: 6px 0 10px;
  text-align: right;
}

/* Cart form & table */
.sw-cart-form {
  margin: 0 0 10px 0;
}

.sw-cart-table {
  width: 100%;
  border-collapse: collapse;
}

.sw-cart-table-head-row {
  background: transparent !important;
}

.sw-cart-table th,
.sw-cart-table td {
  padding: 8px 10px;
  border-bottom: 1px solid #eee;
  text-align: left;
  vertical-align: middle;
}

.sw-cart-col-qty,
.sw-cart-col-unit,
.sw-cart-col-line,
.sw-cart-summary-value,
.sw-cart-cell--right {
  text-align: right;
}

.sw-cart-summary-row td {
  border-top: 1px solid #eee;
}

/* Actions column width (replacement for inline <style>) */
.sw-cart-table td.actions,
.sw-cart-table th.actions {
  width: 1%;
  white-space: nowrap;
  text-align: right;
}

/* Qty input */
.sw-qty-input {
  width: 90px;
}

/* Per-line notes */
.sw-cart-cell-main div {
  font-size: 12px;
  color: #cccccc;
  margin-top: 4px;
}

/* Button groups */
.sw-cart-actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  margin-top: 10px;
}

/* “Clear this event” form */
.sw-cart-clear-form {
  margin: 6px 0 12px 0;
  display: flex;
  justify-content: flex-end;
}

/* Specific button variants */
.sw-cart-remove-line {
  color: #b00;
}

.sw-cart-clear-event-button:hover,
.sw-cart-empty-basket-button:hover,
.sw-cart-remove-line:hover {
  filter: brightness(0.95);
}

/* Overall summary */
.sw-cart-all {
  border: 2px dashed #ddd;
  background: transparent !important;
  border-radius: 8px;
  padding: 12px;
  margin: 18px 0;
}

.sw-cart-all-title {
  margin: 0.2em 0 8px;
}

.sw-cart-all-table {
  border-collapse: collapse;
  margin-left: auto;
}

.sw-cart-all-table td {
  padding: 6px;
}

.sw-cart-all-table td:last-child {
  white-space: nowrap;
  width: 1%;
  text-align: right;
}

.sw-cart-clear-event-button,
.sw-cart-empty-basket-button,
.sw-cart-remove-line,
.sw-cart-update-button,
.stxc-btn,
.stx-btn,
.sw-btn,
.stx-order-download-btn,
#stxc-btn--primary,
#stx-btn--ghost {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;

  padding: 6px 14px;
  border-radius: 999px;

  border: 1px solid #dc2626;
  background: rgba(220, 38, 38, 0.06);
  color: #b91c1c;

  font-size: 14px;
  font-weight: 500;
  text-decoration: none;

  cursor: pointer;
  transition:
    background-color 0.12s ease-out,
    color 0.12s ease-out,
    box-shadow 0.12s ease-out,
    transform 0.06s ease-out;
}

/* Hover / focus */
.sw-cart-clear-event-button:hover,
.sw-cart-clear-event-button:focus,
.sw-cart-empty-basket-button:hover,
.sw-cart-empty-basket-button:focus,
.sw-cart-remove-line:hover,
.sw-cart-remove-line:focus,
.sw-cart-update-button:hover,
.sw-cart-update-button:focus,
.stxc-btn:hover,
.stxc-btn:focus,
.stx-order-download-btn:hover,
.stx-order-download-btn:focus,
.sw-btn:hover,
.sw-btn:focus,
#stxc-btn--primary:hover,
#stxc-btn--primary:focus,
.stx-btn:hover,
.stx-btn:focus,
#stx-btn--ghost:hover, 
#stx-btn--ghost:focus {
  background: rgba(220, 38, 38, 0.14);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
  outline: none;
}

/* Active press */
.sw-cart-clear-event-button:active,
.sw-cart-empty-basket-button:active,
.sw-cart-remove-line:active,
.sw-cart-update-button:active,
.stxc-btn:active,
.stx-order-download-btn:active,
.sw-btn:active,
#stxc-btn--primary:active,
.stx-btn:active,
#stx-btn--ghost:active {
  transform: translateY(1px);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.18);
}

/* Checkout-all = same style as other cart buttons, but green */
.sw-cart-checkout-all-button,
.sw-copy-code,
#sw-add-to-cart,
#sw-buy-now {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;

  padding: 6px 12px;
  border-radius: 999px;

  /* Muted positive green */
  border: 1px solid #22ac1c;
  background: rgba(34, 172, 28, 0.06);
  color: #22ac1c;

  font-size: 14px;   /* same as other buttons */
  font-weight: 500;
  text-decoration: none;

  cursor: pointer;
  transition:
    background-color 0.12s ease-out,
    border-color 0.12s ease-out,
    color 0.12s ease-out,
    box-shadow 0.12s ease-out,
    transform 0.06s ease-out;
}

.sw-cart-checkout-all-button:hover,
.sw-cart-checkout-all-button:focus,
.sw-copy-code:hover,
.sw-copy-code:focus,
#sw-add-to-cart:hover,
#sw-add-to-cart:focus,
#sw-buy-now:hover,
#sw-buy-now:focus {
  background: #e3f8e3;     /* faint green wash */
  border-color: #1b8c17;   /* a bit darker */
  color: #1b8c17;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.10);
  outline: none;
}

.sw-cart-checkout-all-button:active,
.sw-copy-code:active,
#sw-add-to-cart:active,
#sw-buy-now:active {
  transform: translateY(1px);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.16);
}

#stx-auth .stx-card {
    background: transparent !important;
}

.sw-my-coupons .sw-tab th,
.sw-my-coupons .sw-tab td {
  border-bottom: 1px solid #eee;
  padding: 8px;
  vertical-align: top;
}

.sw-my-coupons .sw-tab code {
  background: #f6f8fa;
  padding: 2px 6px;
  border-radius: 4px;
}

.sw-my-coupons .description {
  color: #666;
  font-size: 12px;
}

.stx-list-wrap {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 16px;
}

.stx-list-wrap h2 {
  font-size: clamp(20px, 2.6vw, 28px);
  line-height: 1.2;
}

.stx-toolbar {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
  margin: 10px 0 16px;
}

.stx-toolbar label {
  font-weight: 600;
}

.stx-toolbar select {
  padding: 6px 8px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  min-width: 160px;
}

.stx-grid-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

@media (max-width: 1024px) {
  .stx-grid-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .stx-grid-cards {
    grid-template-columns: 1fr;
  }
}

.stx-card-media--ph {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #94a3b8;
  font-weight: 700;
}


.stx-badge--topright {
  left: auto;
  right: 10px;
  top: 10px;
  bottom: auto;
}

.stx-card-body {
  padding: 12px 14px 14px;
}

.sw-wrap {
  max-width: 920px;
  margin: 36px auto;
  padding: 0 16px;
}

.sw-h1 {
  margin: 0.2em 0 0.6em;
}

table.sw-summary {
  width: 100%;
  border-collapse: collapse;
  margin: 14px 0;
}

.sw-summary th,
.sw-summary td {
  border-bottom: 1px solid #eee;
  padding: 8px;
  text-align: left;
}

.sw-summary tfoot td {
  font-weight: 700;
}

.sw-right {
  text-align: right;
}

.sw-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.sw-grid .full {
  grid-column: 1 / -1;
}

.sw-vat-lines .row {
  display: flex;
  justify-content: space-between;
}

.sw-ev-h {
  margin-top: 14px;
  font-weight: 700;
}

.sw-chip {
  display: inline-block;
  padding: 4px 8px;
  border: 1px solid #ddd;
  border-radius: 999px;
  background: #fafafa;
  margin: 2px 6px 0 0;
  font-size: 12px;
}

/* Socials manager (organiser-facing) */
.stx-socials-manager {
  max-width: 720px;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 16px;
}

.stx-socials-manager .stx-grid {
  display: grid;
  gap: 10px;
}

.stx-socials-manager .stx-row {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 10px;
  align-items: center;
}

.stx-socials-manager .stx-lbl {
  font-weight: 600;
}

.stx-socials-manager .stx-input {
  width: 100%;
  padding: 8px 10px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
}

@media (max-width: 600px) {
  .stx-socials-manager .stx-row {
    grid-template-columns: 1fr;
  }
}

/* Footer socials block */
.stx-footer-socials {
  margin: 16px 0 8px;
  text-align: center;
}

.stx-footer-socials .stx-socials {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 14px;
  justify-content: center;
  flex-wrap: wrap;
}

.stx-footer-socials a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 999px;
  border: 1px solid #e5e7eb;
  background: #fff;
  text-decoration: none;
  transition: transform 0.15s, filter 0.15s;
}

.stx-footer-socials a:hover {
  transform: translateY(-1px);
  filter: brightness(0.97);
}

.stx-footer-socials .dashicons {
  font-size: 20px;
  width: 20px;
  height: 20px;
  line-height: 20px;
}

/* Reusable visually-hidden helper */
.stx-visually-hidden {
  position: absolute !important;
  height: 1px;
  width: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  white-space: nowrap;
}

.stx-custom-footer-outer {
  max-width: 1200px;       /* acts like your theme container */
  margin-left: auto;
  margin-right: auto;
  padding-left: 16px;      /* gentle side padding */
  padding-right: 16px;
  color: #ffffff;
}

.stx-custom-footer img {
  max-width: 100%;
  height: auto;
}

/* Hide common theme copyright blocks so ours replaces them */
.site-footer .site-info,
.site-footer .copyright,
.footer-copyright {
  display: none !important;
}

.stxb-wrap {
  max-width: 780px;
  margin: 0 auto;
  padding: 12px;
  background: #111827;           /* dark background */
  border: 1px solid #374151;
  border-radius: 12px;
  color: #f9fafb;                /* light text inside the box */
}

.stxb-wrap h2,
.stxb-wrap h3,
.stxb-wrap legend,
.stxb-wrap label,
.stxb-wrap .description {
  color: #f9fafb;
}

.stxb-section {
  margin: 18px 0 8px 0;
}

.stxb-field {
  margin: 10px 0;
}

.stxb-actions {
  display: flex;
  gap: 8px;
  margin-top: 12px;
}

.stxb-alert {
  margin: 10px 0;
  padding: 10px 12px;
  border-radius: 10px;
  font-weight: 600;
}

.stxb-alert--ok {
  background: #ecfdf5;
  border: 1px solid #bbf7d0;
  color: #065f46;
}

.stxb-alert--err {
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #991b1b;
}

.stxb-current-img {
  margin: 6px 0;
}

.stxb-preview img {
  max-width: 100%;
  height: auto;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  padding: 6px;
}