@import "./_base.css";

/**
 * Minimal Checkout Theme
 * Swiss Design - Clean Black & White
 */

/* Light Theme Body Override (scoped via :has) */
body:has([data-template="minimal"]),
body:has([data-template="minimal"]) .main-section,
body:has([data-template="minimal"]) .page-container {
  background: #ffffff !important;
}

/* CSS Variables (scoped to checkout page) */
[data-template="minimal"] {
  /* Colors - Clean White Background */
  --checkout-bg: #ffffff;
  --checkout-surface: #fafafa;
  --checkout-surface-elevated: #f5f5f5;
  --checkout-surface-hover: #f5f5f5;
  --checkout-border: #e5e5e5;
  --checkout-border-subtle: #d4d4d4;

  /* Dark Text */
  --checkout-text: #0a0a0a;
  --checkout-text-muted: #525252;
  --checkout-text-subtle: #737373;
  --checkout-text-secondary: #525252;

  /* Black Primary — Swiss Design: black buttons, teal only for focus/accent */
  --checkout-primary: #0a0a0a;
  --checkout-primary-hover: #262626;
  --checkout-primary-muted: rgba(10, 10, 10, 0.1);

  --checkout-success: #15803d;
  --checkout-warning: #b45309;
  --checkout-danger: #dc2626;
  --checkout-accent: #0e7490;
  --checkout-accent-muted: rgba(14, 116, 144, 0.2);
  --checkout-placeholder: #737373;
  --checkout-focus-ring: #0e7490;
  --checkout-text-on-accent: #ffffff;
  --checkout-btn-text: #ffffff;
  --checkout-sticky-bg: #fafafa;
  --checkout-warning-bg: rgba(180, 83, 9, 0.1);
  --checkout-danger-text: #dc2626;

  /* No shadows - Swiss Design */
  --checkout-shadow-sm: none;
  --checkout-shadow-md: none;
  --checkout-shadow-lg: none;
  --checkout-shadow-glow: none;

  /* Sharp corners - Swiss Design */
  --checkout-radius-sm: 0;
  --checkout-radius-md: 0;
  --checkout-radius-lg: 0;
  --checkout-radius-xl: 0;
  --checkout-radius-2xl: 0;

  /* Typography - Swiss Design */
  --checkout-font-body: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  --checkout-font-heading: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
}

/* Text Selection — Teal highlight */
[data-template="minimal"] ::selection {
  background: rgba(14, 116, 144, 0.2);
  color: #0a0a0a;
}

/* Font-Family + Color Overrides — counteract citastyle.css global rules
   citastyle.css sets: p { color: var(--cita-text-primary) } which is #f1f5f9 (white) on dark theme
   and: span,div,label,input { font-family: var(--font-sans); font-weight: 450 } */
[data-template="minimal"] span,
[data-template="minimal"] label,
[data-template="minimal"] input,
[data-template="minimal"] textarea,
[data-template="minimal"] select,
[data-template="minimal"] button,
[data-template="minimal"] a,
[data-template="minimal"] legend,
[data-template="minimal"] summary,
[data-template="minimal"] p,
[data-template="minimal"] div {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  font-weight: 400;
  letter-spacing: normal;
}

/* Text color overrides — force dark text on light background */
[data-template="minimal"] p,
[data-template="minimal"] span,
[data-template="minimal"] div,
[data-template="minimal"] label,
[data-template="minimal"] legend,
[data-template="minimal"] summary {
  color: var(--checkout-text);
}

[data-template="minimal"] h1,
[data-template="minimal"] h2,
[data-template="minimal"] h3,
[data-template="minimal"] h4 {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  color: var(--checkout-text);
}

[data-template="minimal"] .checkout-label,
[data-template="minimal"] .checkout-consent-label,
[data-template="minimal"] .checkout-badge,
[data-template="minimal"] .checkout-input,
[data-template="minimal"] .checkout-feedback,
[data-template="minimal"] .checkout-empty-state,
[data-template="minimal"] .checkout-hero-title,
[data-template="minimal"] .checkout-hero-card,
[data-template="minimal"] .checkout-section-title {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
}

/* Sharp corners */
[data-template="minimal"] .checkout-ticket-card,
[data-template="minimal"] .checkout-summary,
[data-template="minimal"] .checkout-btn {
  border-radius: 0;
}

/* Thin borders */
[data-template="minimal"] .checkout-ticket-card {
  border: 1px solid var(--checkout-border);
}

/* No backdrop blur */
[data-template="minimal"] .checkout-ticket-card,
[data-template="minimal"] .checkout-summary {
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

/* Uppercase labels */
[data-template="minimal"] .checkout-section-title {
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 0.875rem;
  font-weight: 700;
}

/* Clean button style */
[data-template="minimal"] .checkout-btn-primary {
  background: var(--checkout-primary);
  color: var(--checkout-btn-text);
  border: none;
}

[data-template="minimal"] .checkout-btn-primary:hover {
  background: var(--checkout-primary-hover);
  box-shadow: none;
}

[data-template="minimal"] .checkout-btn-primary:active {
  transform: none;
  box-shadow: none;
}

/* ============================================
   Sticky Summary Bar — appended to body via JS,
   outside [data-template] scope. Must use body:has()
   with hardcoded values, not CSS vars.
   ============================================ */
body:has([data-template="minimal"]) .checkout-summary-sticky {
  background: #fafafa;
  border-top: 1px solid #e5e5e5;
  box-shadow: none;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
}

body:has([data-template="minimal"]) .checkout-summary-sticky-total {
  color: #0a0a0a;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
}

body:has([data-template="minimal"]) .checkout-summary-sticky-label {
  color: #525252;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
}

body:has([data-template="minimal"]) .checkout-summary-sticky-btn {
  background: #0a0a0a;
  color: #ffffff;
  border-radius: 0;
  border: none;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
}

body:has([data-template="minimal"]) .checkout-summary-sticky-btn:hover {
  background: #262626;
}

body:has([data-template="minimal"]) .checkout-summary-sticky-btn:focus-visible {
  outline: 2px solid #0e7490;
  outline-offset: 2px;
}

[data-template="minimal"] .access-code-input:focus {
  box-shadow: none;
  outline: 2px solid var(--checkout-accent);
  outline-offset: -2px;
}

/* ============================================
   Ticket Option Cards - Swiss Design
   ============================================ */
[data-template="minimal"] .checkout-ticket-option {
  border-radius: 0;
  border: 1px solid var(--checkout-border);
  background: var(--checkout-surface);
}

[data-template="minimal"] .checkout-ticket-option:hover {
  border-color: var(--checkout-primary);
  box-shadow: none;
  transform: none;
}

[data-template="minimal"] .checkout-ticket-option--selected {
  border-color: var(--checkout-primary);
  border-width: 2px;
  background: var(--checkout-primary-muted);
}

[data-template="minimal"] .checkout-ticket-option--featured {
  border-width: 2px;
  border-color: var(--checkout-primary);
  background: var(--checkout-surface);
  box-shadow: none;
}

[data-template="minimal"] .checkout-ticket-option-price {
  border-radius: 0;
  border: 1px solid var(--checkout-primary);
  color: var(--checkout-primary);
}

[data-template="minimal"] .checkout-ticket-option-name {
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--checkout-text);
}

[data-template="minimal"] .checkout-ticket-option-description {
  color: var(--checkout-text-muted);
}

/* User Tickets Section */
[data-template="minimal"] .checkout-user-tickets {
  background: var(--checkout-surface);
  border-color: var(--checkout-border);
}

[data-template="minimal"] .checkout-user-tickets-toggle {
  background: var(--checkout-surface-elevated);
  border-color: var(--checkout-border);
}

[data-template="minimal"] .checkout-user-tickets-toggle:hover {
  background: var(--checkout-surface);
  color: var(--checkout-text);
}

/* Badges - Clean Monochrome */
[data-template="minimal"] .checkout-badge {
  border-radius: 0;
}

[data-template="minimal"] .checkout-badge--featured {
  background: transparent;
  color: var(--checkout-text);
  border: 1px solid var(--checkout-primary);
  border-radius: 0;
}

[data-template="minimal"] .checkout-badge--success {
  background: rgba(22, 163, 74, 0.1);
  color: var(--checkout-success);
  border: 1px solid var(--checkout-success);
}

[data-template="minimal"] .checkout-badge--warning {
  background: rgba(202, 138, 4, 0.1);
  color: var(--checkout-warning);
  border: 1px solid var(--checkout-warning);
}

/* ============================================
   Light-Theme Overrides for Dark-rgba Elements
   ============================================ */
[data-template="minimal"] .checkout-hero-card {
  background: var(--checkout-surface);
  border-color: var(--checkout-border);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

[data-template="minimal"] .checkout-action-btn {
  background: var(--checkout-surface-elevated);
  border-color: var(--checkout-border);
}

[data-template="minimal"] .checkout-action-btn:hover {
  background: var(--checkout-surface);
}

[data-template="minimal"] .checkout-ticket-section {
  background: var(--checkout-surface);
  border-color: var(--checkout-border);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

[data-template="minimal"] .checkout-nav-link {
  background: var(--checkout-surface-elevated);
  border-color: var(--checkout-border);
}

[data-template="minimal"] .checkout-user-ticket-card {
  background: var(--checkout-surface);
  border-color: var(--checkout-border);
}

/* ============================================================
   MODULAR CHECKOUT INLINE FORM OVERRIDES
   Template-aware styling for ticket_inline_forms.html elements
   ============================================================ */

/* Inline form container – Swiss divider */
.minimal-tickets-wrapper .ticket-checkout-inline.expanded {
  --checkout-inline-divider: #e5e5e5;
  margin-top: 1rem;
  padding-top: 1rem;
}

/* Consent Box & Section Card */
.minimal-tickets-wrapper .checkout-consent-box,
.minimal-tickets-wrapper .checkout-section {
  background: var(--checkout-bg);
  border: 1px solid var(--checkout-border);
  border-radius: 0;
  box-shadow: none;
}

/* Consent Checkbox */
[data-template="minimal"] .checkout-consent-checkbox-visual {
  background: var(--checkout-bg);
  border: 1px solid var(--checkout-border);
  border-radius: 0;
}

[data-template="minimal"] .checkout-consent-checkbox input:checked + .checkout-consent-checkbox-visual {
  background: var(--checkout-accent);
  border-color: var(--checkout-accent);
  color: #ffffff;
}

/* Waitlist Checkbox Wrapper */
[data-template="minimal"] .checkout-checkbox-wrapper {
  background: var(--checkout-bg);
  border: 1px solid var(--checkout-border);
  border-radius: 0;
}

[data-template="minimal"] .checkout-checkbox-wrapper:hover {
  border-color: var(--checkout-accent);
}

[data-template="minimal"] .checkout-checkbox-wrapper:has(.checkout-checkbox:focus-visible) {
  outline: 2px solid var(--checkout-focus-ring);
  outline-offset: 2px;
}

[data-template="minimal"] .checkout-checkbox-wrapper:has(.checkout-checkbox:checked) {
  background: var(--checkout-accent);
  border-color: var(--checkout-accent);
}

/* Person Card & Group Section */
[data-template="minimal"] .checkout-person-card {
  background: var(--checkout-surface);
  border: 1px solid var(--checkout-border);
  border-radius: 0;
}

[data-template="minimal"] details.checkout-person-details > summary {
  background: var(--checkout-surface);
  border: 1px solid var(--checkout-border);
  border-radius: 0;
}

/* Opacity-variant backgrounds */
.minimal-tickets-wrapper .bg-slate-900\/90,
.minimal-tickets-wrapper .bg-slate-900\/70,
.minimal-tickets-wrapper .bg-slate-800\/50 {
  background: var(--checkout-bg) !important;
}

/* Label text */
.minimal-tickets-wrapper .text-slate-200 {
  color: var(--checkout-text) !important;
}

/* Checkbox border */
.minimal-tickets-wrapper .border-slate-600 {
  border-color: var(--checkout-border) !important;
}

/* Shadow override */
.minimal-tickets-wrapper .shadow-inner {
  box-shadow: none !important;
}

/* Checkbox checked states */
.minimal-tickets-wrapper input[type="checkbox"]:checked {
  background: var(--checkout-accent) !important;
  border-color: var(--checkout-accent) !important;
}

/* Focus ring */
.minimal-tickets-wrapper .focus\:ring-cyan-400:focus,
.minimal-tickets-wrapper .focus\:ring-emerald-400:focus,
.minimal-tickets-wrapper .focus\:ring-amber-400:focus {
  --tw-ring-color: var(--checkout-accent) !important;
}

/* Links */
.minimal-tickets-wrapper a.text-cyan-400 {
  color: var(--checkout-accent) !important;
}

.minimal-tickets-wrapper a.hover\:text-cyan-200:hover {
  color: var(--checkout-text-muted) !important;
}

/* Input focus */
.minimal-tickets-wrapper input:focus,
.minimal-tickets-wrapper select:focus {
  border-color: var(--checkout-accent) !important;
  box-shadow: none !important;
  outline: none !important;
}

/* Qty/Wallet buttons */
.minimal-tickets-wrapper .bg-slate-800,
.minimal-tickets-wrapper .bg-slate-800\/80 {
  background: var(--checkout-bg) !important;
  border-color: var(--checkout-border) !important;
  color: var(--checkout-text) !important;
  border-radius: 0 !important;
}

.minimal-tickets-wrapper .hover\:bg-slate-700:hover {
  background: rgba(0, 0, 0, 0.05) !important;
}

/* Icon accent colors */
.minimal-tickets-wrapper .text-cyan-300 {
  color: var(--checkout-accent) !important;
}

/* Submit Button – Black Accent */
.minimal-tickets-wrapper button[type="submit"] {
  background: var(--checkout-primary) !important;
  border-color: var(--checkout-primary) !important;
  color: var(--checkout-bg) !important;
  border-radius: 0 !important;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  box-shadow: none !important;
}
.minimal-tickets-wrapper button[type="submit"]:hover {
  background: var(--checkout-primary-hover) !important;
  border-color: var(--checkout-primary-hover) !important;
}

/* Plus-One Add Button */
.minimal-tickets-wrapper [data-plus-one-add] {
  background: transparent !important;
  border-color: var(--checkout-border) !important;
  color: var(--checkout-text) !important;
  border-radius: 0 !important;
}
.minimal-tickets-wrapper [data-plus-one-add]:hover {
  background: rgba(0, 0, 0, 0.05) !important;
}

/* Promo Apply Button */
.minimal-tickets-wrapper [data-promo-apply] {
  background: transparent !important;
  border-color: var(--checkout-border) !important;
  color: var(--checkout-text) !important;
  border-radius: 0 !important;
}
.minimal-tickets-wrapper [data-promo-apply]:hover {
  background: rgba(0, 0, 0, 0.05) !important;
}

/* Price Summary Total – Black Accent */
.minimal-tickets-wrapper [data-checkout-summary] .text-sm.font-semibold {
  color: var(--checkout-primary) !important;
}

/* ============================================================
   LIGHT-THEME OVERRIDES FOR BASE CLASSES & DARK TAILWIND
   ============================================================ */

/* Base Class Overrides */
.minimal-tickets-wrapper .checkout-input {
  background: var(--checkout-bg) !important;
  border-color: var(--checkout-border) !important;
  color: var(--checkout-text) !important;
  border-radius: 0 !important;
}
.minimal-tickets-wrapper .checkout-input::placeholder {
  color: var(--checkout-placeholder) !important;
}
.minimal-tickets-wrapper .checkout-input:focus {
  border-color: var(--checkout-accent) !important;
  box-shadow: none !important;
}

[data-template="minimal"] .checkout-input-sm,
.minimal-tickets-wrapper .checkout-input-sm {
  background: var(--checkout-bg);
  border: 1px solid var(--checkout-border);
  border-radius: 0;
  color: var(--checkout-text);
  box-shadow: none;
}

[data-template="minimal"] .checkout-input-sm:focus,
.minimal-tickets-wrapper .checkout-input-sm:focus {
  border-color: var(--checkout-accent);
  box-shadow: none;
  outline: 2px solid var(--checkout-accent);
  outline-offset: -2px;
}

.minimal-tickets-wrapper .checkout-label {
  color: var(--checkout-text-muted) !important;
}
.minimal-tickets-wrapper .checkout-section-number {
  background: var(--checkout-primary) !important;
  color: var(--checkout-bg) !important;
}
.minimal-tickets-wrapper .checkout-section-header {
  color: var(--checkout-text) !important;
}

/* Checkbox unchecked background */
.minimal-tickets-wrapper input[type="checkbox"].bg-slate-900 {
  background: var(--checkout-bg) !important;
}

/* Login Panel */
.minimal-tickets-wrapper [data-login-inline] {
  background: var(--checkout-surface-elevated) !important;
  border-color: var(--checkout-border) !important;
}
.minimal-tickets-wrapper [data-login-inline] .text-amber-100 {
  color: var(--checkout-text) !important;
}
.minimal-tickets-wrapper [data-login-inline] .text-slate-300 {
  color: var(--checkout-text-muted) !important;
}
.minimal-tickets-wrapper [data-login-inline] .text-slate-100 {
  color: var(--checkout-text) !important;
}
.minimal-tickets-wrapper [data-login-inline] .bg-slate-800\/80 {
  background: var(--checkout-bg) !important;
  border-color: var(--checkout-border) !important;
  color: var(--checkout-text) !important;
}
.minimal-tickets-wrapper [data-login-inline] .placeholder-slate-400::placeholder {
  color: var(--checkout-placeholder) !important;
}

/* Info-Box dark border */
.minimal-tickets-wrapper .border-slate-700 {
  border-color: var(--checkout-border) !important;
}

/* Helper text contrast */
.minimal-tickets-wrapper .text-slate-400 {
  color: var(--checkout-text-muted) !important;
}

/* Feedback colors for light background */
.minimal-tickets-wrapper .text-emerald-300 {
  color: var(--checkout-success) !important;
}
.minimal-tickets-wrapper .text-emerald-200 {
  color: var(--checkout-success) !important;
}
.minimal-tickets-wrapper .text-amber-300 {
  color: var(--checkout-warning) !important;
}
.minimal-tickets-wrapper .text-rose-300 {
  color: var(--checkout-danger) !important;
}
.minimal-tickets-wrapper .text-rose-400 {
  color: #dc2626 !important;
}
.minimal-tickets-wrapper .text-cyan-400 {
  color: var(--checkout-accent) !important;
}
.minimal-tickets-wrapper .text-white {
  color: var(--checkout-text) !important;
}
.minimal-tickets-wrapper .text-slate-500 {
  color: var(--checkout-text-muted) !important;
}

/* ============================================================
   TIER PRICING TABLE — Swiss Design
   ============================================================ */
.minimal-tickets-wrapper .tier-pricing-table {
  background: var(--checkout-surface) !important;
  border: 1px solid var(--checkout-border) !important;
  border-radius: 0 !important;
}
.minimal-tickets-wrapper .tier-pricing-title {
  color: var(--checkout-text-muted) !important;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.minimal-tickets-wrapper .tier-row {
  color: var(--checkout-text-muted) !important;
  border-radius: 0 !important;
}
.minimal-tickets-wrapper .tier-row--active {
  background: var(--checkout-primary-muted) !important;
  border-color: var(--checkout-primary) !important;
  color: var(--checkout-text) !important;
}
.minimal-tickets-wrapper .tier-row--active .tier-row-label {
  color: var(--checkout-text) !important;
}
.minimal-tickets-wrapper .tier-row-indicator {
  background: #d4d4d4 !important;
}
.minimal-tickets-wrapper .tier-row--active .tier-row-indicator {
  background: var(--checkout-primary) !important;
  box-shadow: none !important;
}
.minimal-tickets-wrapper .tier-row--active .tier-row-price {
  color: var(--checkout-primary) !important;
}
.minimal-tickets-wrapper .tier-row-qty {
  color: var(--checkout-text-subtle) !important;
}
.minimal-tickets-wrapper .tier-savings-badge {
  background: rgba(10, 10, 10, 0.06) !important;
  color: var(--checkout-text) !important;
  border-radius: 0 !important;
}
.minimal-tickets-wrapper .tier-next-hint {
  color: var(--checkout-text-muted) !important;
  border-top-color: var(--checkout-border) !important;
}
.minimal-tickets-wrapper .tier-row--just-activated {
  animation: none !important;
}

/* ── Legal Info — Light Background ── */
[data-template="minimal"] .checkout-legal-info,
.minimal-tickets-wrapper .checkout-legal-info {
  background: #f5f5f5 !important;
  border: 1px solid #e5e5e5 !important;
  border-radius: 0 !important;
}

/* ── Tailwind Border-Radius Neutralisierung ── */
.minimal-tickets-wrapper .rounded-lg,
.minimal-tickets-wrapper .rounded-md,
.minimal-tickets-wrapper .rounded-xl {
  border-radius: 0 !important;
}

/* ═══════════════════════════════════════════════════════════════
   Mobile Responsive — Tablet (max-width: 768px)
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
  /* Container padding reduction */
  [data-template="minimal"] .checkout-container,
  [data-template="minimal"].checkout-container {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  /* Hero card compact */
  [data-template="minimal"] .checkout-hero-card {
    padding: 1rem;
  }

  /* Event info compact */
  [data-template="minimal"] .checkout-event-info {
    padding: 1.25rem;
    margin-bottom: 1rem;
  }

  /* Ticket section compact */
  [data-template="minimal"] .checkout-ticket-section {
    padding: 1rem;
  }

  /* Ticket option cards stack */
  [data-template="minimal"] .checkout-ticket-option {
    padding: 0.875rem;
  }

  /* Form panel compact */
  [data-template="minimal"] .checkout-form-panel {
    padding: 1rem;
  }

  /* Summary compact */
  [data-template="minimal"] .checkout-summary {
    padding: 1rem;
  }

  /* Section title smaller */
  [data-template="minimal"] .checkout-section-title {
    font-size: 0.8125rem;
    letter-spacing: 0.08em;
  }

  /* Promo section compact */
  [data-template="minimal"] .checkout-promo {
    padding: 0.75rem;
  }

  /* Modal full-width on tablet */
  [data-template="minimal"] .checkout-modal-content {
    margin: 1rem;
    max-width: calc(100vw - 2rem);
  }
}

/* ═══════════════════════════════════════════════════════════════
   Mobile Responsive — Compact Mobile (max-width: 639px)
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 639px) {
  /* Tighter container */
  [data-template="minimal"] .checkout-container,
  [data-template="minimal"].checkout-container {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }

  /* iOS zoom prevention: 16px minimum on inputs/selects */
  [data-template="minimal"] input[type="text"],
  [data-template="minimal"] input[type="email"],
  [data-template="minimal"] input[type="tel"],
  [data-template="minimal"] input[type="password"],
  [data-template="minimal"] input[type="date"],
  [data-template="minimal"] select,
  [data-template="minimal"] textarea,
  [data-template="minimal"] .checkout-input,
  .minimal-tickets-wrapper .checkout-input {
    font-size: 16px;
  }

  /* Hero card tighter */
  [data-template="minimal"] .checkout-hero-card {
    padding: 0.75rem;
  }

  /* Ticket option compact */
  [data-template="minimal"] .checkout-ticket-option {
    padding: 0.75rem;
  }

  [data-template="minimal"] .checkout-ticket-option-name {
    font-size: 0.9375rem;
  }

  /* Form panel compact */
  [data-template="minimal"] .checkout-form-panel {
    padding: 0.75rem;
  }

  /* Summary compact */
  [data-template="minimal"] .checkout-summary {
    padding: 0.75rem;
  }

  /* Section title */
  [data-template="minimal"] .checkout-section-title {
    font-size: 0.75rem;
  }

  /* Buttons full-width */
  [data-template="minimal"] .checkout-btn-primary {
    width: 100%;
    justify-content: center;
  }

  /* Promo compact */
  [data-template="minimal"] .checkout-promo {
    padding: 0.625rem;
  }

  /* Inline form grid to single column */
  .minimal-tickets-wrapper .grid.sm\:grid-cols-2 {
    grid-template-columns: 1fr;
  }

  /* Modal nearly full-screen */
  [data-template="minimal"] .checkout-modal-content {
    margin: 0.5rem;
    max-width: calc(100vw - 1rem);
  }

  /* Tier pricing table compact */
  .minimal-tickets-wrapper .tier-pricing-table {
    padding: 0.5rem;
  }
}

/* === Loading States / Skeletons === */
[data-template="minimal"] .checkout-skeleton {
  background: linear-gradient(90deg,
    var(--checkout-surface) 25%,
    var(--checkout-surface-elevated) 50%,
    var(--checkout-surface) 75%
  );
  background-size: 200% 100%;
  animation: minimal-shimmer 1.5s ease-in-out infinite;
  border-radius: 0;
}

@keyframes minimal-shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

[data-template="minimal"] .checkout-btn-spinner {
  border-color: var(--checkout-border);
  border-top-color: var(--checkout-primary);
}

/* === Error States === */
[data-template="minimal"] input[aria-invalid="true"],
[data-template="minimal"] select[aria-invalid="true"] {
  border-color: var(--checkout-danger) !important;
  box-shadow: none;
}

[data-template="minimal"] .field-error,
[data-template="minimal"] .checkout-field-error {
  color: var(--checkout-danger);
}

[data-template="minimal"] .checkout-feedback {
  border-radius: 0;
  border-width: 1px;
}

[data-template="minimal"] .checkout-feedback--success {
  background: rgba(22, 163, 74, 0.06);
  border-color: var(--checkout-success);
  color: var(--checkout-success);
}

[data-template="minimal"] .checkout-feedback--error {
  background: rgba(220, 38, 38, 0.06);
  border-color: var(--checkout-danger);
  color: var(--checkout-danger);
}

[data-template="minimal"] .checkout-feedback--info {
  background: rgba(10, 10, 10, 0.04);
  border-color: var(--checkout-border);
  color: var(--checkout-text-muted);
}

/* === Button Hover / Active / Disabled States === */
[data-template="minimal"] .checkout-btn-primary:active {
  background: var(--checkout-text);
}

[data-template="minimal"] .checkout-btn-primary:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}

[data-template="minimal"] .checkout-btn-secondary {
  background: transparent;
  border: 1px solid var(--checkout-border);
  color: var(--checkout-text);
  border-radius: 0;
}

[data-template="minimal"] .checkout-btn-secondary:hover {
  border-color: var(--checkout-accent);
  color: var(--checkout-accent);
}

/* === Group Booking Section === */
[data-template="minimal"] .checkout-group {
  background: var(--checkout-surface);
  border: 1px solid var(--checkout-border);
  border-radius: 0;
}

[data-template="minimal"] .checkout-group-title {
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--checkout-text);
}

[data-template="minimal"] .checkout-group-btn {
  background: var(--checkout-bg);
  border: 1px solid var(--checkout-border);
  border-radius: 0;
  color: var(--checkout-text);
  transition: border-color 0.15s ease;
}

[data-template="minimal"] .checkout-group-btn:hover:not(:disabled) {
  border-color: var(--checkout-accent);
  color: var(--checkout-accent);
}

[data-template="minimal"] .checkout-group-person {
  background: var(--checkout-bg);
  border: 1px solid var(--checkout-border);
  border-radius: 0;
}

[data-template="minimal"] .checkout-group-person-title {
  color: var(--checkout-text);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 0.75rem;
  font-weight: 700;
}

/* === Plus-One Section === */
[data-template="minimal"] .checkout-plus-one {
  background: var(--checkout-surface);
  border: 1px solid var(--checkout-border);
  border-radius: 0;
}

[data-template="minimal"] .checkout-plus-one-title {
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 0.8125rem;
  font-weight: 700;
}

/* === Promo Code Section === */
[data-template="minimal"] .checkout-promo {
  background: var(--checkout-surface);
  border: 1px solid var(--checkout-border);
  border-radius: 0;
}

[data-template="minimal"] .checkout-promo-input {
  background: var(--checkout-bg);
  border: 1px solid var(--checkout-border);
  border-radius: 0;
  color: var(--checkout-text);
}

[data-template="minimal"] .checkout-promo-input:focus {
  border-color: var(--checkout-accent);
  box-shadow: none;
}

[data-template="minimal"] .checkout-promo-btn {
  background: var(--checkout-primary);
  color: var(--checkout-bg);
  border: 1px solid var(--checkout-primary);
  border-radius: 0;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 600;
}

[data-template="minimal"] .checkout-promo-btn:hover {
  background: var(--checkout-primary-hover);
}

.minimal-tickets-wrapper .checkout-promo-feedback--success {
  background: rgba(22, 163, 74, 0.06);
  border-left: 2px solid var(--checkout-success);
  color: var(--checkout-success);
  padding: 0.5rem 0.75rem;
  border-radius: 0;
}

/* === Quantity Controls === */
[data-template="minimal"] [data-qty-increase],
[data-template="minimal"] [data-qty-decrease] {
  background: #f5f5f5;
  border: 1px solid #e5e5e5;
  border-radius: 0;
  color: #0a0a0a;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
}

[data-template="minimal"] [data-qty-increase]:hover,
[data-template="minimal"] [data-qty-decrease]:hover {
  background: #e5e5e5;
  border-color: #d4d4d4;
}

.minimal-tickets-wrapper .checkout-promo-feedback--error {
  background: rgba(220, 38, 38, 0.06);
  border-left: 2px solid var(--checkout-danger);
  color: var(--checkout-danger);
  padding: 0.5rem 0.75rem;
  border-radius: 0;
}

/* === Capacity / Urgency Indicators === */
[data-template="minimal"] .checkout-capacity-bar {
  background: var(--checkout-surface-elevated);
  border-radius: 0;
  height: 3px;
}

[data-template="minimal"] .checkout-capacity-fill {
  background: var(--checkout-primary);
  border-radius: 0;
  transition: width 0.1s ease;
}

[data-template="minimal"] .checkout-capacity-text {
  font-size: 0.75rem;
  color: var(--checkout-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

[data-template="minimal"] .checkout-capacity-text strong {
  color: var(--checkout-text);
}

[data-template="minimal"] .checkout-timer {
  background: var(--checkout-surface);
  border: 1px solid var(--checkout-border);
  border-radius: 0;
  color: var(--checkout-text-muted);
}

[data-template="minimal"] .checkout-timer--critical {
  background: rgba(220, 38, 38, 0.06);
  border-color: var(--checkout-danger);
  color: var(--checkout-danger);
}

/* === Sold-Out State === */
[data-template="minimal"] .checkout-ticket-soldout {
  background: #f5f5f5;
  border: 1px solid #e5e5e5;
  border-radius: 0;
  color: #0a0a0a;
}

[data-template="minimal"] .checkout-ticket-soldout svg {
  color: #0a0a0a;
}

/* === Disabled Ticket State === */
[data-template="minimal"] .checkout-ticket-option--disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

[data-template="minimal"] .checkout-ticket-option--disabled:hover {
  transform: none !important;
  box-shadow: none !important;
  border-color: var(--checkout-border) !important;
}

[data-template="minimal"] .checkout-ticket-option--disabled .checkout-ticket-option-name {
  color: var(--checkout-text-muted);
}

/* === Skeleton Loading - Scoped === */
[data-template="minimal"] .checkout-skeleton {
  border-radius: 0;
}

/* === Waitlist === */
[data-template="minimal"] .checkout-waitlist-btn {
  background: var(--checkout-primary);
  border: 1px solid var(--checkout-primary);
  color: var(--checkout-bg);
  border-radius: 0;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 600;
}

[data-template="minimal"] .checkout-waitlist-btn:hover {
  background: var(--checkout-primary-hover);
  border-color: var(--checkout-primary-hover);
}

[data-template="minimal"] .checkout-waitlist {
  background: rgba(10, 10, 10, 0.04);
  border: 1px solid var(--checkout-border);
  border-radius: 0;
}

/* === Success Box === */
[data-template="minimal"] .checkout-success-box {
  background: var(--checkout-surface);
  border: 1px solid var(--checkout-border);
  border-radius: 0;
}

[data-template="minimal"] .checkout-success-header {
  border-bottom: 1px solid var(--checkout-border);
}

[data-template="minimal"] .checkout-success-icon {
  background: rgba(22, 163, 74, 0.08);
  color: var(--checkout-success);
}

[data-template="minimal"] .checkout-success-title {
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* === Modal === */
[data-template="minimal"] .checkout-modal-content {
  border-radius: 0;
  border: 1px solid var(--checkout-border);
  background: var(--checkout-bg);
}

[data-template="minimal"] .checkout-modal-header {
  border-bottom: 1px solid var(--checkout-border);
}

[data-template="minimal"] .checkout-modal-title {
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

[data-template="minimal"] .checkout-modal-footer {
  border-top: 1px solid var(--checkout-border);
  background: var(--checkout-surface);
}

[data-template="minimal"] .checkout-modal-close {
  border-radius: 0;
}

[data-template="minimal"] .checkout-modal-close:hover {
  background: var(--checkout-surface-elevated);
}

/* === Announcement Popup === */
[data-template="minimal"] .announcement-popup-card {
  background: var(--checkout-bg);
  border: 1px solid var(--checkout-border);
  border-radius: 0;
  box-shadow: none;
}

[data-template="minimal"] .announcement-popup-header {
  border-bottom: 1px solid var(--checkout-border);
}

[data-template="minimal"] .announcement-popup-title {
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--checkout-text);
}

[data-template="minimal"] .announcement-popup-article {
  background: var(--checkout-surface);
  border: 1px solid var(--checkout-border-subtle);
  border-radius: 0;
}

[data-template="minimal"] .announcement-popup-article-title {
  color: var(--checkout-text);
}

[data-template="minimal"] .announcement-popup-article-body {
  color: var(--checkout-text-muted);
}

[data-template="minimal"] .announcement-popup-footer {
  border-top: 1px solid var(--checkout-border);
}

/* === Empty State === */
[data-template="minimal"] .checkout-empty-state {
  color: var(--checkout-text-muted);
}

[data-template="minimal"] .checkout-empty-state h3 {
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--checkout-text);
}

/* === Age Confirmation === */
[data-template="minimal"] .checkout-age-confirm {
  background: rgba(180, 83, 9, 0.06);
  border: 1px solid var(--checkout-warning);
  border-radius: 0;
}

/* === Breadcrumb === */
[data-template="minimal"] .checkout-breadcrumb-link {
  color: var(--checkout-text-muted);
}

[data-template="minimal"] .checkout-breadcrumb-link:hover {
  color: var(--checkout-accent);
}

[data-template="minimal"] .checkout-breadcrumb-current {
  color: var(--checkout-text);
  font-weight: 700;
}

/* === Password Toggle === */
[data-template="minimal"] .checkout-password-toggle {
  color: var(--checkout-text-subtle);
}

[data-template="minimal"] .checkout-password-toggle:hover {
  color: var(--checkout-text);
}

/* === Consent Links — Black === */
.minimal-tickets-wrapper .checkout-consent-label a {
  color: var(--checkout-accent) !important;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.minimal-tickets-wrapper .checkout-consent-label a:hover {
  color: #0c6377 !important;
}

/* === Event Pass Card — Swiss Design === */
[data-template="minimal"] .event-pass-card {
  border-radius: 0;
  background: var(--checkout-surface);
  border: 1px solid var(--checkout-border);
  box-shadow: none;
}

[data-template="minimal"] .event-pass-card:hover {
  border-color: var(--checkout-primary);
}

[data-template="minimal"] .event-pass-status {
  border-radius: 0;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

[data-template="minimal"] .event-pass-status.confirmed {
  background: rgba(22, 163, 74, 0.08);
  color: var(--checkout-success);
  border: 1px solid var(--checkout-success);
}

[data-template="minimal"] .event-pass-status.cancelled {
  background: rgba(220, 38, 38, 0.08);
  color: var(--checkout-danger);
  border: 1px solid var(--checkout-danger);
}

[data-template="minimal"] .event-pass-title {
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

[data-template="minimal"] .event-pass-meta-item {
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 0.75rem;
}

[data-template="minimal"] .event-pass-ticket-badge {
  background: var(--checkout-surface-elevated);
  border: 1px solid var(--checkout-border);
  border-radius: 0;
  color: var(--checkout-text);
}

[data-template="minimal"] .event-pass-btn {
  border-radius: 0;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

[data-template="minimal"] .event-pass-btn-primary {
  background: var(--checkout-primary);
  color: var(--checkout-bg);
  border: 1px solid var(--checkout-primary);
}

[data-template="minimal"] .event-pass-btn-primary:hover {
  background: var(--checkout-primary-hover);
}

[data-template="minimal"] .event-pass-btn-danger {
  background: transparent;
  color: var(--checkout-danger);
  border: 1px solid var(--checkout-danger);
}

[data-template="minimal"] .event-pass-btn-danger:hover {
  background: rgba(220, 38, 38, 0.06);
}

[data-template="minimal"] .event-pass-wallet-btn {
  background: var(--checkout-surface-elevated);
  border: 1px solid var(--checkout-border);
  border-radius: 0;
}

[data-template="minimal"] .event-pass-wallet-btn:hover {
  border-color: var(--checkout-primary);
}

/* === Reduced Motion === */
@media (prefers-reduced-motion: reduce) {
  [data-template="minimal"] .checkout-skeleton {
    animation: none;
  }

  [data-template="minimal"] .checkout-ticket-card,
  [data-template="minimal"] .checkout-ticket-option,
  [data-template="minimal"] .checkout-btn-primary,
  [data-template="minimal"] .checkout-action-btn,
  [data-template="minimal"] .checkout-group-btn,
  [data-template="minimal"] .event-pass-card {
    transition: none;
  }

  [data-template="minimal"] .checkout-ticket-card:hover,
  [data-template="minimal"] .checkout-ticket-option:hover,
  [data-template="minimal"] .checkout-btn-primary:hover,
  [data-template="minimal"] .event-pass-card:hover {
    transform: none;
  }

  [data-template="minimal"] .checkout-capacity-fill {
    transition: none;
  }
}

/* ============================================================
   BADGE NEUTRALIZATION — Swiss B&W
   ============================================================ */
[data-template="minimal"] .minimal-ticket-badge--positive,
[data-template="minimal"] .minimal-ticket-badge--warning {
  background: rgba(10, 10, 10, 0.06);
  color: var(--checkout-text);
  border: 1px solid var(--checkout-border);
}

/* Suppress redirecting button gradient animation */
[data-template="minimal"] .checkout-btn-primary.is-redirecting {
  background-image: none;
  animation: none;
}

/* ============================================================
   HIGH CONTRAST MODE
   ============================================================ */
@media (prefers-contrast: high) {
  [data-template="minimal"] .checkout-ticket-card,
  [data-template="minimal"] .checkout-ticket-option,
  [data-template="minimal"] .checkout-form-panel,
  [data-template="minimal"] .checkout-summary {
    border-width: 2px;
  }

  [data-template="minimal"] .checkout-input,
  [data-template="minimal"] .checkout-select {
    border-width: 2px;
  }

  [data-template="minimal"] .checkout-btn-primary {
    border: 2px solid currentColor;
  }

  [data-template="minimal"] .checkout-section-title {
    opacity: 1;
  }
}

/* ============================================================================
   FIX: Submit-Button Text-Visibility (Defense-in-Depth)
   ----------------------------------------------------------------------------
   Bug: In Minimal-Theme rendered der schwarze Submit-Button nur das Häkchen-
   Icon ohne sichtbaren Text ("Jetzt bezahlen (XX €)" / "Registrierung
   abschließen"). Ursache: Tailwind-Klassen `font-extrabold tracking-wide`
   konnten im Minimal-Kontext durch system-font + cascade-Reihenfolge zu
   collapsed text führen.

   Fix: Explizite Type-Slots (font-family, font-size, weight, line-height)
   für `.checkout-btn-text` direkt am Minimal-Button. Damit ist der Text
   garantiert sichtbar — unabhängig von Tailwind-Build-Output.
   ============================================================================ */
[data-template="minimal"] .checkout-btn-primary,
.minimal-page .checkout-btn-primary {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}
[data-template="minimal"] .checkout-btn-primary .checkout-btn-text,
.minimal-page .checkout-btn-primary .checkout-btn-text {
  display: inline-block;
  visibility: visible;
  opacity: 1;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.2;
  color: var(--checkout-btn-text, #ffffff);
  letter-spacing: 0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}
/* Loading-state spinner replaces text — keep override semantic */
[data-template="minimal"] .checkout-btn-primary.is-loading .checkout-btn-text,
.minimal-page .checkout-btn-primary.is-loading .checkout-btn-text {
  opacity: 0;
}
[data-template="minimal"] .checkout-btn-primary .checkout-btn-icon,
.minimal-page .checkout-btn-primary .checkout-btn-icon {
  flex-shrink: 0;
  color: var(--checkout-btn-text, #ffffff);
}
/* Inner span wrapper must allow flex children to share width naturally */
[data-template="minimal"] .checkout-btn-primary > span.inline-flex,
.minimal-page .checkout-btn-primary > span.inline-flex {
  min-width: 0;
  max-width: 100%;
  flex-wrap: nowrap;
}

/* ============================================================================
   FIX: Trust-Signals Mobile-Layout
   ----------------------------------------------------------------------------
   Bug: `.checkout-trust` (Sichere Zahlung / Sofort-Versand / SSL-verschlüsselt)
   wrappte vertikal bei schmalem Viewport, weil `.checkout-trust-item` als
   flex-row-Kind volle Breite beanspruchte.

   Fix:
   - Mobile (<480px): 3-Spalten-Grid mit kompakten Icons über Text
     (vertikales Stacking pro Item, aber nebeneinander als Spalten)
   - Tablet+ (>=480px): horizontal flex mit Wrap
   ============================================================================ */
[data-template="minimal"] .checkout-trust,
.minimal-page .checkout-trust {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 1rem;
  margin-top: 1rem;
  padding-top: 0.875rem;
  border-top: 1px solid var(--checkout-border-subtle, #d4d4d4);
}
[data-template="minimal"] .checkout-trust-item,
.minimal-page .checkout-trust-item {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--checkout-text-muted, #525252);
  white-space: nowrap;
}
[data-template="minimal"] .checkout-trust-item svg,
.minimal-page .checkout-trust-item svg {
  width: 0.875rem;
  height: 0.875rem;
  flex-shrink: 0;
  color: var(--checkout-text-muted, #525252);
}
/* Mobile: 3-column grid with icon-above-text for clean inline display */
@media (max-width: 479px) {
  [data-template="minimal"] .checkout-trust,
  .minimal-page .checkout-trust {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.5rem;
    padding-top: 0.75rem;
  }
  [data-template="minimal"] .checkout-trust-item,
  .minimal-page .checkout-trust-item {
    flex-direction: column;
    gap: 0.25rem;
    font-size: 0.6875rem;
    line-height: 1.2;
    text-align: center;
    white-space: normal;
  }
  [data-template="minimal"] .checkout-trust-item svg,
  .minimal-page .checkout-trust-item svg {
    width: 1rem;
    height: 1rem;
  }
}
