:root {
    --pride-red: #ac103c;
    --pride-red-dark: #7e0b2b;
    --ink: #211b1e;
    --muted: #6f666a;
    --paper: #fffdfb;
    --soft: #f7f1f2;
    --line: #eadfe2;
    --bs-primary: #ac103c;
    --bs-primary-rgb: 172, 16, 60;
    --bs-link-color: #8d0d32;
    --bs-link-hover-color: #650722;
}

html { min-height: 100%; }
body { min-height: 100vh; display: flex; flex-direction: column; color: var(--ink); background: var(--paper); font-family: Inter, Arial, Helvetica, sans-serif; }
main { flex: 1; }
a { color: var(--pride-red-dark); }
.py-lg-6 { padding-top: 6rem !important; padding-bottom: 6rem !important; }
.btn { border-radius: .55rem; font-weight: 700; padding: .75rem 1.15rem; }
.btn-primary { --bs-btn-bg: var(--pride-red); --bs-btn-border-color: var(--pride-red); --bs-btn-hover-bg: var(--pride-red-dark); --bs-btn-hover-border-color: var(--pride-red-dark); --bs-btn-active-bg: var(--pride-red-dark); --bs-btn-active-border-color: var(--pride-red-dark); }
.btn-outline-primary { --bs-btn-color: var(--pride-red); --bs-btn-border-color: var(--pride-red); --bs-btn-hover-bg: var(--pride-red); --bs-btn-hover-border-color: var(--pride-red); }
.form-control:focus, .form-select:focus, .form-check-input:focus { border-color: var(--pride-red); box-shadow: 0 0 0 .25rem rgba(172, 16, 60, .14); }
.form-check-input:checked { background-color: var(--pride-red); border-color: var(--pride-red); }

.site-header { background: #fff; border-bottom: 1px solid var(--line); }
.brand { display: inline-flex; align-items: center; gap: .75rem; color: var(--ink); letter-spacing: .04em; }
.brand span:last-child { display: flex; flex-direction: column; line-height: 1.05; }
.brand small { margin-top: .25rem; color: var(--pride-red); font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; }
.brand-mark { width: 32px; height: 32px; display: flex; overflow: hidden; border-radius: 50%; transform: rotate(-18deg); }
.brand-mark i { flex: 1; }
.brand-mark i:nth-child(1) { background: #e40303; }.brand-mark i:nth-child(2) { background: #ff8c00; }.brand-mark i:nth-child(3) { background: #ffed00; }.brand-mark i:nth-child(4) { background: #008026; }.brand-mark i:nth-child(5) { background: #24408e; }.brand-mark i:nth-child(6) { background: #732982; }
.secure-note { align-items: center; gap: .5rem; color: var(--muted); font-size: .85rem; }.secure-note span { color: #18864b; }

.hero { position: relative; overflow: hidden; color: #fff; background: linear-gradient(125deg, #8a0b31 0%, var(--pride-red) 58%, #c52d58 100%); }
.hero::after { content: ""; position: absolute; width: 420px; height: 420px; right: -150px; bottom: -260px; border: 70px solid rgba(255,255,255,.055); border-radius: 50%; }
.eyebrow { display: inline-block; margin-bottom: 1rem; color: rgba(255,255,255,.82); font-size: .75rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.eyebrow-dark { color: var(--pride-red); }
.hero h1 { max-width: 780px; margin-bottom: .75rem; font-size: clamp(2.45rem, 6vw, 5.4rem); font-weight: 900; letter-spacing: -.055em; line-height: .94; text-transform: uppercase; }
.hero-subtitle { margin-bottom: 1.5rem; font-size: clamp(1.15rem, 2vw, 1.5rem); font-weight: 700; }
.hero-copy { max-width: 710px; color: rgba(255,255,255,.88); font-size: 1.05rem; line-height: 1.7; }
.hero-meta { margin-top: 2rem; padding-top: 1.4rem; border-top: 1px solid rgba(255,255,255,.25); color: rgba(255,255,255,.9); font-size: .9rem; }
.tour-card { position: relative; width: 330px; height: 380px; margin-left: auto; padding: 44px 36px; overflow: hidden; background: #fff; color: var(--pride-red); box-shadow: 0 28px 70px rgba(40,0,15,.25); transform: rotate(3deg); }
.tour-card-rings { position: absolute; width: 330px; height: 330px; right: -130px; top: -100px; border-radius: 50%; border: 26px solid #e40303; box-shadow: 0 0 0 25px #ff8c00, 0 0 0 50px #ffed00, 0 0 0 75px #008026, 0 0 0 100px #24408e, 0 0 0 125px #732982; opacity: .9; }
.tour-card span, .tour-card strong, .tour-card small { position: relative; z-index: 1; display: block; }.tour-card span { margin-top: 115px; font-weight: 800; line-height: 1; }.tour-card strong { font-size: 3.6rem; font-weight: 900; letter-spacing: -.06em; line-height: .8; }.tour-card small { margin-top: 1rem; font-weight: 800; letter-spacing: .1em; }

.slots-section { background: var(--paper); }
.section-heading { max-width: 700px; }.section-heading h2 { font-size: clamp(2rem, 4vw, 3.4rem); font-weight: 850; letter-spacing: -.04em; }.section-heading p { color: var(--muted); font-size: 1.05rem; }
.day-block { display: flex; align-items: stretch; gap: 1rem; }
.day-heading { flex: 0 0 92px; min-height: 190px; display: flex; flex-direction: column; align-items: center; justify-content: center; background: var(--pride-red); color: #fff; text-align: center; }
.day-heading span, .day-heading small { font-size: .7rem; letter-spacing: .1em; }.day-heading strong { font-size: 2.2rem; line-height: 1.05; }
.slot-card { position: relative; padding: 1.5rem; border: 1px solid var(--line); border-radius: .8rem; background: #fff; box-shadow: 0 10px 35px rgba(71, 27, 42, .055); }
.slot-card h3 { margin: .2rem 0 0; font-size: 1.8rem; font-weight: 800; }.slot-label { color: var(--muted); font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.availability { display: inline-block; padding: .34rem .55rem; border-radius: 99px; background: #eaf6ef; color: #176d3c; font-size: .72rem; font-weight: 800; white-space: nowrap; }.availability.sold-out { background: #eee9eb; color: #6a5d62; }
.slot-price { margin: 2.1rem 0 1rem; font-size: 1.2rem; font-weight: 800; }.slot-price small { color: var(--muted); font-size: .75rem; font-weight: 500; }
.slot-card.is-sold-out { overflow: hidden; background: repeating-linear-gradient(-45deg, #f7f4f5, #f7f4f5 10px, #f1ecee 10px, #f1ecee 20px); color: #6e6367; box-shadow: none; }.slot-card.is-sold-out::after { content: "AUSVERKAUFT"; position: absolute; right: -31px; bottom: 37px; padding: .35rem 2.4rem; background: #665b5f; color: #fff; font-size: .62rem; font-weight: 900; letter-spacing: .12em; transform: rotate(-45deg); }.slot-card.is-sold-out .btn { position: relative; z-index: 1; }
.info-strip { display: flex; flex-wrap: wrap; gap: 1rem 2rem; padding: 1.2rem 1.4rem; border-radius: .65rem; background: var(--soft); color: var(--muted); font-size: .9rem; }.info-strip strong { color: var(--pride-red); }

.checkout-section, .result-section, .admin-login { background: var(--soft); }
.back-link { display: inline-block; margin-bottom: .75rem; font-weight: 700; text-decoration: none; }
.summary-card, .form-card, .result-card { padding: clamp(1.5rem, 4vw, 2.5rem); border: 1px solid var(--line); border-radius: 1rem; background: #fff; box-shadow: 0 18px 55px rgba(70, 24, 40, .07); }
.summary-card h1 { font-size: clamp(2rem, 4vw, 3.3rem); font-weight: 850; letter-spacing: -.045em; }.form-card h2 { font-weight: 800; }.admin-login .form-card { max-width: 460px; }
.summary-list { margin: 2rem 0; }.summary-list div { display: flex; gap: 1rem; justify-content: space-between; padding: .85rem 0; border-bottom: 1px solid var(--line); }.summary-list dt { color: var(--muted); font-weight: 500; }.summary-list dd { margin: 0; font-weight: 750; text-align: right; }
.btn-paypal { background: #ffc439; border-color: #ffc439; color: #111; }.btn-paypal:hover { background: #f2ba36; border-color: #f2ba36; color: #111; }.secure-payment { color: var(--muted); font-size: .75rem; text-align: center; }
.result-card { max-width: 680px; text-align: center; }.result-card h1 { font-size: clamp(2rem, 5vw, 3.3rem); font-weight: 850; letter-spacing: -.04em; }.success-icon, .error-icon { width: 62px; height: 62px; margin: 0 auto 1.5rem; display: grid; place-items: center; border-radius: 50%; background: #e4f4eb; color: #14713d; font-size: 2rem; font-weight: 900; }.error-icon { background: #f8e5eb; color: var(--pride-red); }.email-note { padding: 1rem; border-radius: .6rem; background: var(--soft); }

.site-footer { border-top: 1px solid var(--line); background: #fff; color: var(--muted); font-size: .85rem; }.site-footer a { color: var(--muted); text-decoration: none; }.site-footer a:hover { color: var(--pride-red); }

.admin-body { background: #f4f2f3; }.admin-header { background: var(--ink); color: #fff; }.admin-header .brand, .admin-header a { color: #fff; }.admin-panel { padding: 1.5rem; border: 1px solid var(--line); border-radius: .8rem; background: #fff; }.admin-slot-card { height: 100%; padding: 1.2rem; border: 1px solid var(--line); border-radius: .7rem; background: #fcfbfb; }.admin-slot-card .form-label { width: 100%; font-size: .78rem; font-weight: 700; color: var(--muted); }.status { display: inline-block; padding: .3rem .5rem; border-radius: 99px; background: #eee; font-size: .72rem; font-weight: 800; text-transform: uppercase; }.status-paid { background: #e4f4eb; color: #14713d; }.status-pending, .status-capturing { background: #fff3cd; color: #715a09; }.status-failed, .status-expired { background: #eee9eb; color: #6a5d62; }.status-refunded { background: #dcecff; color: #21588e; }

@media (max-width: 767.98px) {
    .py-lg-6 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; }
    .hero h1 { font-size: 2.65rem; }
    .day-block { display: block; }
    .day-heading { min-height: 0; margin-bottom: .75rem; padding: .7rem 1rem; flex-direction: row; gap: .55rem; justify-content: flex-start; border-radius: .6rem; }
    .day-heading strong { font-size: 1rem; }.day-heading span, .day-heading small { font-size: .72rem; }
    .info-strip { flex-direction: column; gap: .5rem; }
    .summary-list div { align-items: flex-start; }.summary-list dd { max-width: 60%; }
    .admin-panel { padding: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}
