/* Pretix Ticket System Styles (mimics ticket.wien.gv.at) */
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: 'Helvetica Neue', Arial, sans-serif; color: #333; line-height: 1.5; background: #f5f5f5; }
a { color: #462346; text-decoration: none; }
a:hover { text-decoration: underline; }

.container { max-width: 960px; margin: 0 auto; padding: 15px; }
.main-box { background: #fff; min-height: 80vh; padding-bottom: 20px; }

/* Header */
.page-header { padding: 20px 15px; border-bottom: 1px solid #eee; overflow: hidden; }
.page-header h1 { font-size: 1.3em; color: #462346; }
.page-header h1 a { color: #462346; }
.page-header h1 small { display: block; font-size: 0.7em; color: #888; font-weight: normal; margin-top: 4px; }
.pull-left { float: left; }
.pull-right { float: right; }
.flip { }
.clearfix::after { content: ""; display: table; clear: both; }

/* Locales */
.locales ul { list-style: none; display: flex; gap: 8px; }
.locales a { padding: 3px 8px; border-radius: 3px; font-size: 0.9em; color: #666; }
.locales a.active { background: #462346; color: #fff; }

/* Alerts */
.alert { padding: 15px; margin: 15px; border-radius: 4px; }
.alert-success { background: #dff0d8; border: 1px solid #d6e9c6; color: #3c763d; }

/* Info */
.event-description { padding: 15px; }
.event-info { padding: 0 15px 15px; }
.info-row { display: flex; align-items: flex-start; gap: 10px; margin: 8px 0; }
.info-row .fa { font-size: 1.2em; color: #462346; min-width: 20px; }

/* Products */
section[aria-labelledby] { padding: 15px; }
section h3 { color: #462346; font-size: 1.2em; margin-bottom: 15px; padding-bottom: 8px; border-bottom: 2px solid #462346; }
.product-row { padding: 15px; background: #fafafa; border: 1px solid #ddd; border-radius: 4px; margin-bottom: 10px; overflow: hidden; }
.product-description h4 { font-size: 1em; margin-bottom: 5px; }
.product-description .product-description p { font-size: 0.9em; color: #666; }
.price { text-align: right; }
.text-uppercase { text-transform: uppercase; font-weight: bold; color: #4caf50; }
.availability-box { text-align: right; }
.input-item-count { width: 80px; padding: 8px; font-size: 1em; border: 1px solid #ccc; border-radius: 4px; text-align: center; float: right; }

/* Grid helpers */
.row { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.col-md-2 { flex: 0 0 16.66%; }
.col-md-3 { flex: 0 0 25%; }
.col-md-4 { flex: 0 0 33.33%; }
.col-md-8 { flex: 0 0 66.66%; }
.col-md-9 { flex: 0 0 75%; }
.col-md-12, .col-xs-12 { flex: 0 0 100%; }
.col-xs-6 { flex: 0 0 50%; }
.col-md-offset-4 { margin-left: 33.33%; }
.col-md-offset-8 { margin-left: 66.66%; }

/* Buttons */
.btn { display: inline-block; padding: 10px 20px; border: 1px solid #ccc; border-radius: 4px; cursor: pointer; font-size: 1em; text-align: center; text-decoration: none !important; }
.btn-primary { background: #462346; color: #fff !important; border-color: #462346; }
.btn-primary:hover { background: #5a3b5a; }
.btn-default { background: #fff; color: #333; }
.btn-default:hover { background: #e8e8e8; }
.btn-block { display: block; width: 100%; }
.btn-lg { padding: 14px 20px; font-size: 1.1em; }

/* Front page button area */
.front-page { padding: 15px; }

/* Cart Panel */
.panel { border: 1px solid #ddd; border-radius: 4px; margin: 15px; background: #fff; }
.panel-heading { padding: 12px 15px; background: #f5f5f5; border-bottom: 1px solid #ddd; cursor: pointer; list-style: none; }
.panel-heading::-webkit-details-marker { display: none; }
.panel-title { font-size: 1em; display: flex; justify-content: space-between; align-items: center; }
.panel-body { padding: 15px; }
.panel-success .panel-heading { background: #dff0d8; }

/* Cart rows */
.cart-row { padding: 8px 0; border-bottom: 1px solid #eee; }
.cart-row .product { flex: 1; }
.cart-row .count { width: 50px; text-align: center; }
.cart-row .singleprice { width: 100px; text-align: right; }
.cart-row .totalprice { width: 100px; text-align: right; }
.cart-row.total { border-bottom: none; font-size: 1.1em; }
.text-muted { color: #888; font-size: 0.9em; }

/* Checkout flow steps */
.checkout-flow { list-style: none; display: flex; justify-content: center; gap: 40px; padding: 20px 0; margin: 15px 0; }
.checkout-step { text-align: center; opacity: 0.4; }
.checkout-step.step-current, .checkout-step.step-done { opacity: 1; }
.checkout-step-icon { font-size: 1.5em; color: #462346; margin-bottom: 5px; }
.checkout-step-label { font-size: 0.85em; }

/* Form styles */
.form-horizontal { padding: 0 15px; }
.form-group { display: flex; flex-wrap: wrap; align-items: flex-start; margin-bottom: 15px; padding: 0 5px; position: relative; }
.form-group.required .control-label::after { content: ' *'; color: #c00; }
.control-label { font-weight: bold; font-size: 0.9em; padding-top: 8px; }
.form-control { width: 100%; padding: 8px 12px; border: 1px solid #ccc; border-radius: 4px; font-size: 1em; }
.form-control:focus { border-color: #462346; outline: none; box-shadow: 0 0 3px rgba(70,35,70,0.3); }
select.form-control { appearance: auto; }
.help-block { font-size: 0.85em; color: #888; margin-top: 5px; }
.required-legend { font-size: 0.9em; color: #888; padding: 0 15px; }
.required-star { color: #c00; font-weight: bold; }

/* Name parts group */
.nameparts-form-group { display: flex; flex-wrap: wrap; gap: 8px; }
.nameparts-form-group select { flex: 0 0 120px; }
.nameparts-form-group input { flex: 1; min-width: 120px; }

/* Phone group */
.phone-group { display: flex; gap: 8px; }
.phone-group select { flex: 0 0 220px; }
.phone-group input { flex: 1; }

/* Questions */
.questions-form { padding: 0 5px; }
.profile-scope { }

/* Checkout buttons row */
.checkout-button-row { padding: 20px 15px; display: flex; justify-content: space-between; gap: 15px; }
.checkout-button-row .col-md-4 { flex: 0 0 auto; }

/* Aside */
aside.front-page { border-top: 1px solid #eee; margin-top: 15px; }
aside h3 { margin-bottom: 10px; }

/* Footer */
footer { padding: 15px; border-top: 1px solid #eee; margin-top: 20px; }
footer nav ul { list-style: none; display: flex; gap: 15px; flex-wrap: wrap; font-size: 0.85em; }
footer a { color: #666; }

/* Panel group */
.panel-group { margin: 15px 0; }
.panel-group .panel { margin: 0 0 10px; }

/* Data display in success page */
#submission-details { line-height: 2; }
#submission-details strong { display: inline-block; min-width: 200px; }

/* Responsive */
@media (max-width: 768px) {
    .row { flex-direction: column; }
    .col-md-2, .col-md-3, .col-md-4, .col-md-8, .col-md-9, .col-md-12 { flex: 0 0 100%; }
    .col-md-offset-4, .col-md-offset-8 { margin-left: 0; }
    .checkout-flow { gap: 15px; }
    .nameparts-form-group { flex-direction: column; }
    .phone-group { flex-direction: column; }
    .phone-group select { flex: 0 0 auto; }
}
