
/* ============ ground & type ============ */
body{ background:#FAFAF7; color:#1d1b35; }
.container{ max-width:1080px; }
h1,h2,h3,h4{ color:#14122E; font-weight:700; letter-spacing:-.015em; }
a{ color:#d43a5c; }
a:hover{ color:#b02347; }
::selection{ background:#FF4D6D; color:#fff; }

/* ============ header / event hero ============ */
.event-header, .subevent-head{
  background:linear-gradient(135deg,#14122E 0%,#221e4a 60%,#2a2456 100%);
  color:#FAFAF7; border-radius:var(--fc-radius);
  padding:1.6rem 1.8rem; margin-bottom:1.4rem;
  box-shadow:0 10px 30px rgba(20,18,46,.18);
}
.event-header h1, .subevent-head h2{ color:#fff; margin-top:0; }
.event-header .text-muted, .event-header small,
.subevent-head .text-muted{ color:#c9c5e4 !important; }

/* ============ cards everywhere (panels, products, boxes) ============ */
.panel, .well, .event-boxes .event-box, .front-page .list-group{
  border-radius:var(--fc-radius) !important;
  border:1px solid #ece9e0 !important;
  box-shadow:0 1px 2px rgba(20,18,46,.05), 0 6px 20px rgba(20,18,46,.06) !important;
  background:#fff;
}
.panel-default > .panel-heading{
  background:#fff !important; border-bottom:1px solid #f0ede4 !important;
  border-radius:var(--fc-radius) var(--fc-radius) 0 0 !important;
  font-weight:700; color:#14122E;
}
.panel-primary > .panel-heading{
  background:#14122E !important; border-color:#14122E !important; color:#fff;
  border-radius:var(--fc-radius) var(--fc-radius) 0 0 !important;
}

/* product rows -> airy list with hover lift */
.product-row{
  border-radius:14px !important; border:1px solid #efece3 !important;
  background:#fff; margin-bottom:10px; padding:14px 16px !important;
  transition:box-shadow .15s ease, transform .15s ease;
}
.product-row:hover{
  box-shadow:0 8px 24px rgba(20,18,46,.10); transform:translateY(-1px);
}
.product-row .product-description strong,
.product-row .item-title, .product-row h4{ color:#14122E; font-weight:700; }
.product-row .price, .product-row .item-price{
  font-weight:800; color:#14122E; font-variant-numeric:tabular-nums;
}
.availability-box.available{ color:#0E9E6E; font-weight:600; }

/* ============ quantity stepper & inputs ============ */
input[type=number], .form-control, select.form-control{
  border-radius:12px !important; border:1.5px solid #e4e0d5 !important;
  box-shadow:none !important; min-height:42px; background:#fff;
  transition:border-color .12s ease, box-shadow .12s ease;
}
.form-control:focus, input[type=number]:focus{
  border-color:#FF4D6D !important;
  box-shadow:0 0 0 3px rgba(255,77,109,.18) !important; outline:none;
}
label{ color:#3f3c5e; font-weight:600; }
.help-block{ color:#8a86a3; }

/* ============ buttons ============ */
.btn{ border-radius:12px !important; font-weight:600; }
.btn-primary, .btn-block.btn-primary, .checkout-button-row .btn-primary{
  background:#FF4D6D !important; border-color:#FF4D6D !important; color:#fff;
  padding:.7em 1.6em; box-shadow:0 6px 16px rgba(255,77,109,.32);
  transition:transform .08s ease, box-shadow .12s ease, filter .12s ease;
}
.btn-primary:hover, .btn-primary:focus{
  filter:brightness(.96); transform:translateY(-1px);
  box-shadow:0 10px 22px rgba(255,77,109,.38);
}
.btn-primary:active{ transform:translateY(0); }
.btn-default{
  border:1.5px solid #dcd8cc !important; background:#fff !important;
  color:#14122E !important;
}
.btn-default:hover{ background:#faf8f2 !important; border-color:#c8c3b4 !important; }

/* ============ checkout: step indicator ============ */
.checkout-flow, .steps{ margin:1.2rem 0 1.6rem; }
.checkout-flow .row .col-md-3 a, .steps > span{ text-decoration:none; }
#checkout-flow-steps .step-icon, .checkout-flow .step-icon,
.steps .step-icon, .stepbox{
  border-radius:50% !important;
}
/* pretix uses .steps with numbered circles; recolour done/current to brand */
.steps .step.step-done .step-icon, .step-done .step-icon{
  background:#14122E !important; border-color:#14122E !important; color:#fff !important;
}
.steps .step.step-current .step-icon, .step-current .step-icon{
  background:#FF4D6D !important; border-color:#FF4D6D !important; color:#fff !important;
  box-shadow:0 0 0 5px rgba(255,77,109,.18);
}
.steps .step-line, .steps hr{ border-color:#e6e2d7; }

/* ============ checkout: payment method selector as cards ============ */
form .radio, .payment-methods .radio{ margin:0; }
input[name=payment]{ accent-color:#FF4D6D; transform:scale(1.25); }
input[name=payment] + label, .payment-method-label{ font-weight:700; color:#14122E; }
/* each provider block (pretix wraps each method in .form-group / .panel-body rows) */
#payment-form .panel-body > .form-group,
.payment-method-row, .payment .radio-inline{
  background:#fff; border:1.5px solid #ece8dd; border-radius:14px;
  padding:14px 16px; margin-bottom:10px;
  transition:border-color .12s ease, box-shadow .12s ease;
}
#payment-form .panel-body > .form-group:hover{ border-color:#d9d4c6; }
#payment-form .panel-body > .form-group:has(input:checked){
  border-color:#FF4D6D; box-shadow:0 6px 18px rgba(255,77,109,.12);
  background:#fffdfd;
}

/* ============ cart summary ============ */
.cart, .cart-box, aside .panel{
  border-radius:var(--fc-radius) !important;
}
.cart .total, .cart-row.total, tr.total td{
  font-weight:800; color:#14122E; font-size:1.05em;
}
/* the booking-fee / fee lines get quiet emphasis */
.cart-row.fee td, tr.fee td, .fee-line{ color:#6d688a; }

/* ============ tables (order page, positions) ============ */
.table > thead > tr > th{
  border-bottom:2px solid #eee9dd; color:#8a86a3;
  text-transform:uppercase; font-size:.72rem; letter-spacing:.06em;
}
.table > tbody > tr > td{ border-top:1px solid #f2efe6; vertical-align:middle; }
.table-hover > tbody > tr:hover{ background:#fbfaf5; }

/* ============ alerts ============ */
.alert{ border-radius:14px !important; border-width:0 0 0 4px !important; }
.alert-danger{ background:#fdeef0; border-color:#e6435f !important; color:#8c2136; }
.alert-success{ background:#e9f7f1; border-color:#0E9E6E !important; color:#0b6b4b; }
.alert-info{ background:#eef1fb; border-color:#4d64c4 !important; color:#33417e; }
.alert-warning{ background:#fbf3e2; border-color:#c98a1b !important; color:#7d5610; }

/* ============ order confirmation page ============ */
.order-details .panel, .order .panel{ overflow:hidden; }
.label{ border-radius:8px; font-weight:600; padding:.35em .7em; }
.label-success{ background:#0E9E6E; }
.label-danger{ background:#e6435f; }

/* ============ footer ============ */
.footer{ color:#8a86a3; padding:2rem 0 2.4rem; }
.footer a{ color:#6d688a; }

/* ============ mobile polish ============ */
@media (max-width:600px){
  .event-header, .subevent-head{ padding:1.1rem 1.2rem; border-radius:14px; }
  .product-row{ padding:12px !important; }
  .btn-primary.btn-block{ padding:.85em 1em; font-size:1.02em; }
  .container{ padding-left:14px; padding-right:14px; }
}
/* respect reduced motion */
@media (prefers-reduced-motion:reduce){
  .product-row, .btn-primary{ transition:none; }
}
