/* ============================================================
   MONACO — Unterseiten
   Nachtclub statt Salon: gefüllte Flächen, Farbverläufe, Tiefe.
   Bewegung entsteht durch Scrollen und Zeigen, nicht von selbst.
   ============================================================ */

/* ---------- Grundraster ---------- */
.container {
  width: 100%;
  max-width: var(--shell);
  margin-inline: auto;
  padding-inline: var(--gut);
  position: relative;
  z-index: 1;
}

section { position: relative; }

.girls-section, .filter-section, .events-list-section, .prices-section,
.services-section, .services-overview, .services-categories, .rooms-section,
.wellness-section, .bar-section, .additional-services-section, .service-contact-section,
.ambiente-intro, .ambiente-areas, .prices-info, .club-features,
.jobs-section, .other-jobs-section, .hostess-section, .faq-section,
.contact-form-section, .contact-info-section, .opening-hours-section,
.map-section, .directions-section, .additional-info-section,
.special-offers-section, .more-girls-section, .similar-events-section,
.newsletter-section, .events-filter, .custom-events, .legal-page {
  padding-block: clamp(58px, 7vw, 118px);
}

.grid   { display: grid; gap: clamp(16px, 2vw, 28px); grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.grid-2 { display: grid; gap: clamp(20px, 3vw, 52px); grid-template-columns: 1fr 1fr; align-items: center; }
.grid-3 { display: grid; gap: clamp(16px, 2vw, 28px); grid-template-columns: repeat(3, 1fr); }
.grid-3-1 { display: grid; gap: clamp(22px, 3vw, 46px); grid-template-columns: 2.4fr 1fr; align-items: start; }
.grid-reverse > *:first-child { order: 2; }
@media (max-width: 1000px) { .grid-3 { grid-template-columns: repeat(2, 1fr); } .grid-3-1 { grid-template-columns: 1fr; } }
@media (max-width: 760px)  { .grid-2, .grid-3 { grid-template-columns: 1fr; } .grid-reverse > *:first-child { order: 0; } }

.text-center { text-align: center; }
.mt-2 { margin-top: 14px; } .mt-3 { margin-top: 22px; } .mt-4 { margin-top: 32px; }
.mb-5 { margin-bottom: 44px; }
.lead { font-size: clamp(1.02rem, 1.1vw, 1.2rem); color: var(--dust); max-width: 66ch; }
.steam, .steam-effect { display: none !important; }

/* ---------- Farbe im Raum ----------
   Jede zweite Sektion bekommt einen weichen Farbschleier, damit die
   Seite nicht als eine einzige schwarze Fläche wirkt. */
main > section::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .55;
  background:
    radial-gradient(60% 70% at 92% 6%, rgba(255,30,122,.13), transparent 62%),
    radial-gradient(55% 65% at 4% 96%, rgba(201,162,39,.10), transparent 62%);
}
main > section:nth-of-type(even)::before {
  background:
    radial-gradient(58% 66% at 6% 8%, rgba(160,40,220,.12), transparent 62%),
    radial-gradient(62% 70% at 96% 92%, rgba(255,30,122,.10), transparent 62%);
}
main > section:nth-of-type(even) {
  background: linear-gradient(180deg, rgba(255,255,255,.022), transparent 60%);
}

/* ---------- Seitenkopf ---------- */
.page-header {
  position: relative;
  min-height: clamp(360px, 52vh, 560px);
  display: flex;
  align-items: flex-end;
  padding: calc(var(--bar) + 70px) 0 clamp(44px, 5vw, 82px);
  background-size: cover;
  background-position: center;
  background-color: #0a0612;
  overflow: hidden;
}
.page-header__bg {
  position: absolute;
  inset: -10% -5%;
  z-index: 0;
  background-size: cover;
  background-position: center;
  will-change: transform;
}
.page-header::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    radial-gradient(80% 90% at 88% 0%, rgba(255,30,122,.34), transparent 60%),
    radial-gradient(70% 80% at 0% 100%, rgba(201,162,39,.24), transparent 62%),
    linear-gradient(180deg, rgba(5,3,8,.55) 0%, rgba(5,3,8,.35) 40%, var(--ink) 100%);
}
.page-header .container { z-index: 2; }

.page-header h1 {
  font-family: var(--display);
  font-weight: 800;
  font-size: clamp(2.4rem, 6.6vw, 6rem);
  line-height: .98;
  letter-spacing: -.04em;
  margin: 0;
  color: var(--bone);
  max-width: 18ch;
}
.page-header h1 em, .page-header h1 span {
  font-style: normal;
  background: linear-gradient(96deg, var(--gold-hi), var(--pink-hi));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.page-header p {
  margin: 22px 0 0;
  max-width: 54ch;
  color: rgba(236,228,212,.72);
  font-size: clamp(.98rem, 1.05vw, 1.14rem);
}

/* Farbstreifen als Abschluss */
.page-header::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 2px;
  z-index: 3;
  background: linear-gradient(90deg, var(--gold), var(--pink) 55%, transparent);
}

/* ---------- Abschnittsüberschriften ---------- */
.section-title, .category-title, .service-title {
  font-family: var(--display);
  font-weight: 700;
  font-size: clamp(1.7rem, 3.4vw, 3.1rem);
  line-height: 1.05;
  letter-spacing: -.035em;
  color: var(--bone);
  margin: 0 0 clamp(26px, 3vw, 48px);
  display: flex;
  align-items: baseline;
  gap: 16px;
}
.category-title { font-size: clamp(1.25rem, 1.9vw, 1.7rem); }

/* In Karten sitzt die Überschrift eine Stufe kleiner */
.faq-info .section-title, .payment-info .section-title,
.contact-form-container .section-title, .contact-info-card .section-title,
.card .section-title, .info-box .section-title {
  font-size: clamp(1.3rem, 2vw, 1.85rem);
  margin-bottom: 24px;
}
.sec-no {
  flex: 0 0 auto;
  font-family: var(--text);
  font-size: .62rem;
  font-weight: 500;
  letter-spacing: .2em;
  color: transparent;
  background: linear-gradient(96deg, var(--gold-hi), var(--pink));
  -webkit-background-clip: text;
  background-clip: text;
  transform: translateY(-.6em);
}
.text-center .section-title, .section-title.text-center { justify-content: center; }

h2, h3, h4 { font-family: var(--display); font-weight: 600; letter-spacing: -.02em; }

/* ---------- Schaltflächen ---------- */
.button, .btn, .pagination-link, .load-more-gallery,
.button-secondary, .btn-secondary, .btn-light, .back-to-girls, .share-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 16px 30px;
  clip-path: var(--notch);
  background: linear-gradient(100deg, var(--gold-deep), var(--gold) 40%, var(--gold-hi) 62%, var(--gold) 100%);
  background-size: 200% auto;
  color: #14100a;
  font-family: var(--text);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  border: 0;
  cursor: pointer;
  transition: background-position .7s var(--ease), transform .35s var(--ease), box-shadow .5s var(--ease);
  box-shadow: 0 14px 34px -20px rgba(201,162,39,.9);
}
.button:hover, .btn:hover, .pagination-link:hover, .load-more-gallery:hover,
.back-to-girls:hover, .share-btn:hover {
  background-position: 100% center;
  transform: translateY(-2px);
  box-shadow: 0 20px 44px -18px rgba(201,162,39,1);
}
.button:active, .btn:active { transform: translateY(0); }

.button-secondary, .btn-secondary, .btn-light {
  background: rgba(236,228,212,.06);
  color: var(--bone);
  box-shadow: inset 0 0 0 1px rgba(236,228,212,.18);
}
.button-secondary:hover, .btn-secondary:hover, .btn-light:hover {
  background: linear-gradient(100deg, var(--pink-deep), var(--pink) 55%, var(--pink-hi));
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 20px 44px -18px rgba(255,30,122,.9);
}

.contact-buttons, .action-buttons { display: flex; gap: 14px; flex-wrap: wrap; }

/* ---------- Formulare ---------- */
.form-group { margin-bottom: 20px; }
.form-label, label {
  display: block;
  font-size: .68rem;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(236,228,212,.55);
  margin-bottom: 10px;
}
.form-control, .form-textarea, input[type="text"], input[type="email"],
input[type="tel"], input[type="date"], select, textarea {
  width: 100%;
  padding: 16px 16px;
  background: rgba(255,255,255,.045);
  border: 1px solid rgba(236,228,212,.12);
  color: var(--bone);
  font-family: var(--text);
  font-size: .97rem;
  transition: border-color .35s, background .35s, box-shadow .35s;
}
.form-control:focus, .form-textarea:focus, input:focus, select:focus, textarea:focus {
  outline: none;
  border-color: var(--pink);
  background: rgba(255,255,255,.07);
  box-shadow: 0 0 0 3px rgba(255,30,122,.16);
}
select {
  appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, var(--gold) 50%),
                    linear-gradient(135deg, var(--gold) 50%, transparent 50%);
  background-size: 6px 6px, 6px 6px;
  background-position: right 20px center, right 14px center;
  background-repeat: no-repeat;
}
.form-textarea, textarea { min-height: 150px; resize: vertical; }
input[type="checkbox"], input[type="radio"] { width: auto; accent-color: var(--pink); }

.filter-section {
  background: linear-gradient(180deg, rgba(255,30,122,.06), transparent 70%);
  border-bottom: 1px solid rgba(236,228,212,.08);
}
.filter-form .grid { align-items: end; }

/* Attributfilter: eingeklappt, öffnet sich auf Klick */
.attributes-filter { margin-top: 24px; border-top: 1px solid rgba(236,228,212,.09); }
.attributes-filter .filter-title {
  display: flex;
  align-items: center;
  gap: 14px;
  width: 100%;
  margin: 0;
  padding: 20px 2px;
  cursor: pointer;
  background: none;
  border: 0;
  text-align: left;
  color: var(--bone);
  font-family: var(--display);
  font-weight: 600;
  font-size: 1.05rem;
  letter-spacing: -.01em;
  text-transform: none;
  transition: color .35s;
}
.attributes-filter .filter-title:hover { color: var(--pink-hi); }
.attributes-filter .filter-title .chev { margin-left: auto; font-size: .85rem; color: var(--pink); transition: transform .5s var(--ease); }
.attributes-filter.open .filter-title .chev { transform: rotate(180deg); }
.attributes-filter .filter-count {
  padding: 5px 12px;
  border-radius: 999px;
  background: linear-gradient(100deg, var(--pink-deep), var(--pink));
  color: #fff;
  font-family: var(--text);
  font-size: .62rem;
  font-weight: 600;
  letter-spacing: .06em;
}
.attributes-filter .filter-count[hidden] { display: none; }

.attributes-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: clamp(18px, 2vw, 32px);
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  transition: max-height .7s var(--ease), opacity .45s var(--ease), padding .45s var(--ease);
}
.attributes-filter.open .attributes-grid { max-height: 1800px; opacity: 1; padding: 4px 2px 30px; }
.attributes-filter:not(.ready) .attributes-grid { max-height: none; opacity: 1; padding: 4px 2px 30px; }

.attribute-category h4 {
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--gold);
  margin: 0 0 14px;
}
.attribute-options { display: flex; flex-wrap: wrap; gap: 9px; }
.attribute-checkbox {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 9px 15px;
  border-radius: 999px;
  background: rgba(255,255,255,.05);
  border: 1px solid transparent;
  font-size: .84rem;
  color: rgba(236,228,212,.7);
  cursor: pointer;
  transition: background .3s, color .3s, border-color .3s, transform .3s var(--ease);
}
.attribute-checkbox:hover { background: rgba(255,255,255,.1); color: var(--bone); transform: translateY(-1px); }
.attribute-checkbox label { margin: 0; text-transform: none; letter-spacing: 0; font-size: .84rem; color: inherit; }
.attribute-checkbox:has(input:checked), .attribute-checkbox.is-on {
  background: linear-gradient(100deg, rgba(255,30,122,.25), rgba(201,162,39,.2));
  border-color: rgba(255,122,176,.55);
  color: #fff;
}

/* ---------- Meldungen und Leerzustände ---------- */
.alert {
  padding: 18px 22px;
  border-left: 2px solid var(--gold);
  background: linear-gradient(100deg, rgba(201,162,39,.1), transparent 70%);
  font-size: .93rem;
  color: rgba(236,228,212,.8);
  margin-block: 22px;
}
.alert p { margin: 0; }
.alert-error, .alert-danger { border-left-color: var(--pink); background: linear-gradient(100deg, rgba(255,30,122,.12), transparent 70%); }

.no-girls-message, .no-events-message, .no-prices-message,
.no-services-message, .no-jobs-message {
  padding: clamp(44px, 6vw, 80px) 26px;
  text-align: center;
  color: rgba(236,228,212,.72);
  background:
    radial-gradient(70% 100% at 50% 0%, rgba(255,30,122,.12), transparent 70%),
    linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.01));
  border: 1px solid rgba(236,228,212,.1);
}
.no-girls-message .button, .no-events-message .button { margin-top: 22px; }

/* ---------- Flächen: der neue Kartenkörper ---------- */
.girl-card, .event-card, .price-card, .service-card, .service-box, .room-card,
.job-card, .position-card, .info-box, .price-box, .contact-info-card,
.contact-form-container, .event-info-box, .girl-info-panel, .girl-schedule-box,
.contact-box, .payment-method, .faq-info, .special-offer, .directions-box,
.parking-box, .event-share-box, .sidebar-cta, .drink-category, .service-large-card,
.newsletter-container, .custom-event-cta, .general-application, .job-application,
.snacks-info, .price-notes, .more-questions {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(158deg, rgba(255,30,122,.09) 0%, rgba(255,255,255,.03) 26%, rgba(255,255,255,.012) 60%);
  border: 1px solid rgba(236,228,212,.09);
  transition: transform .5s var(--ease), border-color .5s var(--ease), box-shadow .5s var(--ease);
}

/* Lichtkegel folgt dem Zeiger */
.girl-card::after, .event-card::after, .price-card::after, .service-card::after,
.service-box::after, .room-card::after, .job-card::after, .position-card::after,
.payment-method::after, .drink-category::after, .special-offer::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  opacity: 0;
  transition: opacity .45s var(--ease);
  background: radial-gradient(300px circle at var(--mx, 50%) var(--my, 50%), rgba(255,122,176,.16), transparent 62%);
}
.girl-card:hover::after, .event-card:hover::after, .price-card:hover::after,
.service-card:hover::after, .service-box:hover::after, .room-card:hover::after,
.job-card:hover::after, .position-card:hover::after, .payment-method:hover::after,
.drink-category:hover::after, .special-offer:hover::after { opacity: 1; }

.girl-card:hover, .event-card:hover, .price-card:hover, .service-card:hover,
.service-box:hover, .room-card:hover, .job-card:hover, .position-card:hover,
.payment-method:hover, .drink-category:hover, .special-offer:hover {
  transform: translateY(-6px);
  border-color: rgba(255,122,176,.4);
  box-shadow: 0 34px 60px -34px rgba(255,30,122,.55);
}

/* ---------- Damen ---------- */
.girls-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(258px, 1fr));
  gap: clamp(16px, 2vw, 26px);
}
.girls-grid > a { display: block; height: 100%; color: inherit; text-decoration: none; }
.girl-card { height: 100%; display: flex; flex-direction: column; }

.girl-image {
  position: relative;
  height: 380px !important;
  background-position: center;
  background-size: cover;
  transition: transform 1.1s var(--ease);
}
.girl-card:hover .girl-image { transform: scale(1.05); }
.girl-image::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(9,5,14,.96) 4%, rgba(9,5,14,.25) 42%, transparent 68%);
}

/* Angaben liegen über dem Bild */
.girl-info {
  position: relative;
  z-index: 2;
  margin-top: -132px;
  padding: 0 22px 24px;
  display: flex;
  flex-direction: column;
  flex: 1;
  justify-content: flex-end;
}
.girl-info h3 {
  font-family: var(--display);
  font-weight: 700;
  font-size: 1.5rem;
  letter-spacing: -.03em;
  margin: 0 0 4px;
  color: #fff;
}
.girl-info > p { margin: 0 0 16px; color: rgba(236,228,212,.62); font-size: .87rem; }
.girl-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.girl-stat {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.09);
  backdrop-filter: blur(6px);
}
.stat-value { font-size: .8rem; font-weight: 500; color: #fff; }
.stat-label { font-size: .58rem; letter-spacing: .1em; text-transform: uppercase; color: rgba(236,228,212,.5); }

.girl-status, .girl-featured, .girl-badge, .event-badge, .price-badge,
.service-badge, .included-badge, .extra-badge, .free-badge, .special-badge,
.weekend-badge, .discount-badge, .slide-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  align-self: flex-start;
  margin-top: 14px;
  padding: 7px 14px;
  border-radius: 999px;
  font-size: .62rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  background: linear-gradient(100deg, rgba(201,162,39,.3), rgba(201,162,39,.14));
  color: var(--gold-hi);
}
.girl-status.available, .free-badge {
  background: linear-gradient(100deg, var(--pink-deep), var(--pink));
  color: #fff;
}
.girl-featured { background: linear-gradient(100deg, var(--gold-deep), var(--gold)); color: #14100a; }

/* Blättern */
.pagination-container { display: flex; justify-content: center; margin-top: clamp(34px, 4vw, 58px); }
.pagination { display: flex; gap: 8px; flex-wrap: wrap; }
.pagination-link { padding: 13px 19px; font-size: .7rem; }
.pagination-link.disabled { opacity: .3; pointer-events: none; }

/* ---------- Girl-Detail ---------- */
.girl-header, .event-header {
  position: relative;
  padding: calc(var(--bar) + 70px) 0 clamp(38px, 4vw, 66px);
  background:
    radial-gradient(70% 90% at 84% 0%, rgba(255,30,122,.2), transparent 62%),
    linear-gradient(180deg, rgba(255,255,255,.04), transparent);
  border-bottom: 1px solid rgba(236,228,212,.08);
}
.girl-header h1, .event-header h1 {
  font-family: var(--display);
  font-weight: 800;
  font-size: clamp(2.1rem, 5.4vw, 4.6rem);
  letter-spacing: -.04em;
  margin: 0;
}
.girl-alias {
  display: inline-block;
  margin-top: 14px;
  padding: 7px 15px;
  border-radius: 999px;
  background: rgba(255,30,122,.16);
  color: var(--pink-hi);
  font-size: .74rem;
  letter-spacing: .06em;
}
.girl-main-content, .event-main-content { padding-block: clamp(42px, 5vw, 78px); }
.girl-details, .girl-description, .girl-services, .girl-gallery { margin-bottom: clamp(34px, 4vw, 58px); }
.description-content { color: rgba(236,228,212,.75); }
.girl-attributes, .services-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; }
.attribute-item, .service-item {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  background: rgba(255,255,255,.04);
  border-left: 2px solid rgba(255,30,122,.5);
  font-size: .89rem;
}
.attribute-label, .service-note { color: rgba(236,228,212,.5); font-size: .78rem; }
.attribute-value { color: var(--bone); }
.girl-sidebar > * + *, .event-sidebar > * + * { margin-top: 20px; }
.girl-schedule-box, .contact-box, .girl-info-panel, .event-info-box,
.event-share-box, .sidebar-cta { padding: 28px 26px; }
.schedule-list { display: flex; flex-direction: column; gap: 10px; }
.schedule-day { display: flex; justify-content: space-between; gap: 14px; font-size: .89rem; color: rgba(236,228,212,.7); }
.schedule-day.current-day { color: var(--pink-hi); font-weight: 500; }
.schedule-note, .service-note, .price-note { font-size: .79rem; color: rgba(236,228,212,.45); margin-top: 14px; }

/* Galerien */
.gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; }
.gallery-item {
  position: relative;
  display: block;
  aspect-ratio: 2/3;
  overflow: hidden;
  background: rgba(255,255,255,.04);
}
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--ease); }
.gallery-item:hover img { transform: scale(1.08); }
.gallery-overlay {
  position: absolute; inset: 0;
  display: grid; place-items: center;
  background: linear-gradient(0deg, rgba(255,30,122,.35), rgba(9,5,14,.5));
  color: #fff;
  opacity: 0;
  transition: opacity .4s var(--ease);
}
.gallery-item:hover .gallery-overlay { opacity: 1; }
.hidden-gallery { display: none; }
.hidden-gallery.open { display: grid; margin-top: 10px; }
.load-more-gallery { margin-top: 22px; }

/* ---------- Karussells ---------- */
.slider-frame { width: 100%; overflow: hidden; }
.services-slider { display: flex; transition: transform .8s var(--ease); will-change: transform; }
.services-slide { flex: 0 0 auto; }
.services-slide > * { height: 100%; }
.girls-carousel { position: relative; overflow: hidden; }
.girls-slider { display: flex; gap: 18px; transition: transform .8s var(--ease); will-change: transform; }
.girl-slide { flex: 0 0 auto; width: clamp(210px, 22vw, 270px); }
.slide-card { position: relative; overflow: hidden; background: rgba(255,255,255,.04); }
.slide-image { aspect-ratio: 2/3; overflow: hidden; }
.slide-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--ease); }
.slide-card:hover .slide-image img { transform: scale(1.06); }
.slide-content { padding: 16px; }

.slider-controls { display: flex; gap: 14px; justify-content: center; align-items: center; margin-top: 26px; }
.slider-prev, .slider-next {
  width: 52px; height: 44px;
  display: grid; place-items: center;
  background: rgba(255,255,255,.06);
  color: var(--bone);
  border: 0;
  cursor: pointer;
  transition: background .35s, color .35s, transform .35s var(--ease);
}
.slider-prev:hover, .slider-next:hover {
  background: linear-gradient(100deg, var(--pink-deep), var(--pink));
  color: #fff;
  transform: translateY(-2px);
}
.slider-dots { display: flex; gap: 8px; align-items: center; }
.slider-dot, .slider-dots span {
  width: 22px; height: 3px;
  background: rgba(236,228,212,.2);
  cursor: pointer;
  transition: background .35s, width .35s var(--ease);
}
.slider-dot.active, .slider-dots .active { width: 40px; background: linear-gradient(90deg, var(--gold), var(--pink)); }

/* ---------- Termine ---------- */
.filter-tabs { display: flex; gap: 9px; flex-wrap: wrap; }
.filter-tab {
  padding: 12px 20px;
  border-radius: 999px;
  background: rgba(255,255,255,.05);
  font-size: .74rem;
  font-weight: 500;
  letter-spacing: .04em;
  color: rgba(236,228,212,.65);
  transition: background .35s, color .35s, transform .3s var(--ease);
}
.filter-tab:hover { background: rgba(255,255,255,.1); color: #fff; transform: translateY(-1px); }
.filter-tab.active {
  background: linear-gradient(100deg, var(--pink-deep), var(--pink));
  color: #fff;
  box-shadow: 0 14px 30px -18px rgba(255,30,122,.9);
}

.events-grid, .events-grid-3 {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: clamp(16px, 2vw, 26px);
  align-items: stretch;
}
.event-card { display: flex; flex-direction: column; }
.event-image { position: relative; aspect-ratio: 16/10; overflow: hidden; }
.event-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--ease); }
.event-card:hover .event-image img { transform: scale(1.05); }
.event-image::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(9,5,14,.9), transparent 55%);
}
.event-date {
  position: absolute;
  left: 18px; bottom: 16px;
  z-index: 2;
  padding: 10px 14px;
  background: linear-gradient(100deg, var(--pink-deep), var(--pink));
  color: #fff;
  font-family: var(--display);
  font-weight: 700;
  font-size: 1.4rem;
  line-height: 1;
  letter-spacing: -.02em;
  box-shadow: 0 16px 34px -18px rgba(255,30,122,.9);
}
.event-content { padding: 26px 24px 28px; display: flex; flex-direction: column; flex: 1; }
.event-title {
  font-family: var(--display);
  font-weight: 700;
  font-size: 1.35rem;
  letter-spacing: -.03em;
  margin: 0 0 12px;
}
.event-description { color: rgba(236,228,212,.7); font-size: .91rem; flex: 1; }
.event-meta, .event-time, .event-hours-info {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  flex-wrap: wrap;
  margin-bottom: 12px;
  font-size: .74rem;
  letter-spacing: .04em;
  color: var(--pink-hi);
}
.event-footer {
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid rgba(236,228,212,.1);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
}
.event-price, .price-amount, .amount, .free-amount {
  font-family: var(--display);
  font-weight: 700;
  font-size: 1.5rem;
  letter-spacing: -.03em;
  background: linear-gradient(96deg, var(--gold-hi), var(--pink-hi));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.event-girls, .girls-list { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.girls-label { font-size: .62rem; letter-spacing: .12em; text-transform: uppercase; color: rgba(236,228,212,.45); width: 100%; }
.girl-name { font-size: .78rem; padding: 6px 12px; border-radius: 999px; background: rgba(255,255,255,.07); color: rgba(236,228,212,.8); }

.event-main-image, .event-detail-image { margin-bottom: 32px; overflow: hidden; }
.event-info-list { display: flex; flex-direction: column; gap: 16px; }
.info-label { display: block; font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; color: rgba(236,228,212,.45); margin-bottom: 5px; }
.info-value { color: var(--bone); font-size: .97rem; }
.share-buttons { display: flex; gap: 10px; flex-wrap: wrap; }
.share-btn { padding: 13px 16px; }

/* ---------- Preise ---------- */
.price-cards, .service-cards, .payment-methods, .price-list, .event-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
  gap: clamp(16px, 2vw, 26px);
}
.price-card { padding: 32px 28px; display: flex; flex-direction: column; height: 100%; }
.price-header { margin-bottom: 18px; }
.price-title { font-family: var(--display); font-weight: 600; font-size: 1.2rem; letter-spacing: -.02em; margin: 0 0 10px; }
.price-amount, .amount { display: block; font-size: clamp(2rem, 3vw, 2.7rem); }
.price-description { color: rgba(236,228,212,.7); font-size: .9rem; flex: 1; }
.price-badges { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.price-notes { padding: 24px 26px; margin-top: 28px; color: rgba(236,228,212,.65); font-size: .87rem; }

/* Reiter */
.tabs-nav { display: flex; gap: 9px; flex-wrap: wrap; margin-bottom: 32px; }
.tab-btn {
  padding: 13px 22px;
  border-radius: 999px;
  background: rgba(255,255,255,.05);
  font-size: .76rem;
  font-weight: 500;
  color: rgba(236,228,212,.65);
  transition: background .35s, color .35s, transform .3s var(--ease);
}
.tab-btn:hover { background: rgba(255,255,255,.1); color: #fff; transform: translateY(-1px); }
.tab-btn.active {
  background: linear-gradient(100deg, var(--gold-deep), var(--gold));
  color: #14100a;
  box-shadow: 0 14px 30px -18px rgba(201,162,39,.9);
}
.tab-pane { display: none; }
.tab-pane.active { display: block; animation: paneIn .5s var(--ease) both; }
@keyframes paneIn { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }

/* Zahlungsarten */
.payment-method { display: flex; gap: 18px; align-items: flex-start; padding: 24px 22px; }
.method-icon, .service-icon, .feature-icon, .info-icon, .position-icon {
  flex: 0 0 auto;
  width: 50px; height: 50px;
  display: grid; place-items: center;
  background: linear-gradient(150deg, rgba(255,30,122,.28), rgba(201,162,39,.22));
  color: #fff;
  font-size: 1.05rem;
  transition: transform .5s var(--ease), box-shadow .5s var(--ease);
}
.service-card:hover .service-icon, .position-card:hover .position-icon,
.payment-method:hover .method-icon {
  transform: translateY(-3px) rotate(-4deg);
  box-shadow: 0 16px 30px -16px rgba(255,30,122,.9);
}
.method-info h4, .method-info h3 { font-size: 1.05rem; margin: 0 0 6px; }
.method-info p { margin: 0; color: rgba(236,228,212,.65); font-size: .88rem; }

/* Sonderangebote */
.special-offer { padding: 30px 28px; }
.offer-discount {
  font-family: var(--display);
  font-weight: 800;
  font-size: 2.4rem;
  letter-spacing: -.04em;
  background: linear-gradient(96deg, var(--pink-hi), var(--gold-hi));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.offer-code { margin-top: 16px; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.code-label { font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; color: rgba(236,228,212,.45); }
.code-value { padding: 9px 15px; background: rgba(255,255,255,.07); color: #fff; letter-spacing: .12em; font-weight: 500; }
.offer-validity, .validity-dates, .validity-label { font-size: .8rem; color: rgba(236,228,212,.45); margin-top: 12px; }

/* ---------- Fragen ---------- */
.faq-items, .faq-container { display: flex; flex-direction: column; gap: 10px; }
.faq-item {
  background: rgba(255,255,255,.035);
  border-left: 2px solid transparent;
  transition: background .4s, border-color .4s;
}
.faq-item:hover { background: rgba(255,255,255,.06); }
.faq-item.open { background: rgba(255,255,255,.07); border-left-color: var(--pink); }
.faq-question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  width: 100%;
  padding: 20px 22px;
  cursor: pointer;
  background: none;
  border: 0;
  text-align: left;
  font-family: var(--text);
  font-size: 1rem;
  font-weight: 400;
  color: var(--bone);
  transition: color .35s;
}
.faq-question:hover { color: var(--pink-hi); }
.faq-question i, .faq-question .toggle-icon {
  flex: 0 0 auto;
  color: var(--pink);
  font-size: .85rem;
  transition: transform .5s var(--ease);
}
.faq-item.open .faq-question i, .faq-item.open .toggle-icon { transform: rotate(180deg); }
.faq-answer {
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  padding: 0 22px;
  color: rgba(236,228,212,.72);
  font-size: .93rem;
  transition: max-height .55s var(--ease), opacity .45s var(--ease), padding .45s var(--ease);
}
.faq-item.open .faq-answer { max-height: 900px; opacity: 1; padding: 0 22px 24px; }
.faq-answer p:first-child { margin-top: 0; }
.more-questions { padding: 30px 26px; text-align: center; margin-top: 20px; }
.faq-info { padding: 30px 28px; }

/* ---------- Leistungen ---------- */
.services-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: clamp(16px, 2vw, 26px); }
.service-card, .service-box, .service-large-card, .position-card { padding: 30px 28px; }
.service-icon, .position-icon, .feature-icon, .info-icon { margin-bottom: 22px; }
.method-icon { margin-bottom: 0; }
.service-content h3, .service-header h3, .feature-content h4, .room-content h3 {
  font-size: 1.18rem;
  letter-spacing: -.02em;
  margin: 0 0 10px;
}
.service-description, .service-content p, .feature-content p, .room-content p {
  color: rgba(236,228,212,.7);
  font-size: .91rem;
  margin: 0;
}
.feature { display: flex; gap: 18px; align-items: flex-start; margin-bottom: 24px; }
.feature-icon { margin-bottom: 0; }
.room-card, .service-large-card.has-image { padding: 0; }
.room-image, .bar-image, .wellness-image, .hostess-image, .area-image {
  position: relative;
  overflow: hidden;
  background: linear-gradient(150deg, rgba(255,30,122,.16), rgba(201,162,39,.1));
  min-height: 220px;
}
.room-image img, .bar-image img, .wellness-image img, .hostess-image img,
.area-image img, .img-rounded {
  width: 100%; height: 100%;
  object-fit: cover;
  border: 0;
  transition: transform 1.1s var(--ease);
}
.room-card:hover .room-image img, .area-image:hover img { transform: scale(1.04); }
.room-content, .service-content { padding: 26px 24px; }

/* Ersatzfläche, wenn ein Bild fehlt */
.img-missing {
  display: grid;
  place-items: center;
  min-height: 260px;
  background:
    radial-gradient(80% 100% at 30% 0%, rgba(255,30,122,.22), transparent 65%),
    linear-gradient(160deg, rgba(201,162,39,.16), rgba(255,255,255,.02));
}
.img-missing::after {
  content: "";
  width: 42px; height: 42px;
  border: 1px solid rgba(236,228,212,.35);
  transform: rotate(45deg);
}
.img-missing img { display: none; }

.drink-categories { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 18px; }
.drink-category { padding: 28px 26px; }
.drink-list { display: flex; flex-direction: column; gap: 10px; margin-top: 16px; }
.drink-list li, .info-list li, .requirements-list li, .benefits-list li,
.directions-list li, .parking-list li {
  position: relative;
  padding-left: 22px;
  color: rgba(236,228,212,.72);
  font-size: .91rem;
  line-height: 1.6;
  transition: color .35s, padding-left .35s var(--ease);
}
.drink-list li + li, .info-list li + li, .requirements-list li + li,
.benefits-list li + li, .directions-list li + li, .parking-list li + li { margin-top: 10px; }
.drink-list li::before, .info-list li::before, .requirements-list li::before,
.benefits-list li::before, .directions-list li::before, .parking-list li::before {
  content: "";
  position: absolute;
  left: 0; top: .58em;
  width: 8px; height: 2px;
  background: linear-gradient(90deg, var(--gold), var(--pink));
}
.drink-list li:hover, .info-list li:hover, .requirements-list li:hover,
.benefits-list li:hover, .directions-list li:hover, .parking-list li:hover {
  color: #fff;
  padding-left: 27px;
}

/* ---------- Ambiente ---------- */
.ambiente-area { margin-bottom: clamp(40px, 5vw, 84px); }
.area-content h2 { font-size: clamp(1.5rem, 2.6vw, 2.3rem); letter-spacing: -.03em; }
.area-description { color: rgba(236,228,212,.72); }
.area-gallery-preview { margin-top: 22px; }
.info-box, .price-box { padding: 30px 28px; }
.price-item { display: flex; justify-content: space-between; gap: 16px; padding: 14px 0; border-bottom: 1px solid rgba(236,228,212,.08); }
.price-item:last-child { border-bottom: 0; }
.price-name { color: rgba(236,228,212,.75); font-size: .92rem; }
.price-value { font-family: var(--display); font-weight: 600; color: var(--gold-hi); }

/* ---------- Karriere ---------- */
.jobs-list { display: grid; gap: clamp(16px, 2vw, 26px); }
.job-card { padding: 34px 32px; }
.job-title { font-size: 1.5rem; letter-spacing: -.03em; margin: 0 0 16px; }
.job-description, .jobs-intro { color: rgba(236,228,212,.72); }
.job-requirements h4, .job-benefits h4 {
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--pink-hi);
  margin: 26px 0 12px;
}
.job-application, .general-application, .hostess-content { padding: 32px 30px; }
.hostess-section .hostess-image { min-height: 340px; }

/* ---------- Kontakt ---------- */
.contact-form-container, .contact-info-card, .directions-box, .parking-box { padding: clamp(28px, 3vw, 42px); }
.opening-hours-list { display: flex; flex-direction: column; }
.opening-hours-list li {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 13px 0;
  border-bottom: 1px solid rgba(236,228,212,.08);
  font-size: .93rem;
}
.opening-hours-list li:last-child { border-bottom: 0; }
.day { color: var(--bone); }
.hours { color: rgba(236,228,212,.62); }
.opening-hours-list .today .day, .opening-hours-list .today .hours { color: var(--pink-hi); font-weight: 500; }

.map-container, .map-placeholder {
  position: relative;
  min-height: clamp(320px, 40vw, 500px);
  overflow: hidden;
  display: grid;
  place-items: center;
  background:
    radial-gradient(70% 90% at 50% 0%, rgba(255,30,122,.14), transparent 68%),
    rgba(255,255,255,.03);
  border: 1px solid rgba(236,228,212,.1);
}
.map-container iframe {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  border: 0;
  filter: invert(90%) hue-rotate(190deg) saturate(.5) brightness(.95) contrast(.92);
}
.map-blocked-message { text-align: center; padding: 30px; color: rgba(236,228,212,.72); max-width: 46ch; }
.privacy-notice, .privacy-note { font-size: .78rem; color: rgba(236,228,212,.45); margin-top: 14px; }
.privacy-notice a, .privacy-note a { color: var(--pink-hi); }

/* ---------- Newsletter ---------- */
.newsletter-section {
  background:
    radial-gradient(70% 120% at 100% 0%, rgba(255,30,122,.16), transparent 60%),
    radial-gradient(70% 120% at 0% 100%, rgba(201,162,39,.14), transparent 60%);
}
.newsletter-container { padding: clamp(30px, 3.5vw, 56px); }
.newsletter-form { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 20px; }
.newsletter-form input[type="email"] { flex: 1 1 240px; }

/* ---------- Rechtstexte ---------- */
.legal-page { color: rgba(236,228,212,.75); }
.legal-content, .legal-page .container { max-width: 900px; }
.legal-page h1, .legal-content h1 {
  font-family: var(--display);
  font-weight: 800;
  font-size: clamp(2rem, 4vw, 3.4rem);
  letter-spacing: -.04em;
  margin-bottom: 30px;
}
.legal-content h2 {
  font-size: 1.25rem;
  letter-spacing: -.02em;
  color: #fff;
  margin: 42px 0 14px;
  padding-top: 22px;
  border-top: 1px solid rgba(236,228,212,.1);
}
.legal-content h3 { font-size: 1.05rem; color: var(--bone); margin: 26px 0 10px; }
.legal-content p, .legal-content li { color: rgba(236,228,212,.72); font-size: .95rem; }
.legal-content a { color: var(--pink-hi); }
.legal-content ul { padding-left: 0; list-style: none; }
.legal-content li { position: relative; padding-left: 20px; margin-bottom: 8px; }
.legal-content li::before {
  content: "";
  position: absolute; left: 0; top: .6em;
  width: 8px; height: 2px;
  background: linear-gradient(90deg, var(--gold), var(--pink));
}
.legal-footer { margin-top: 44px; padding-top: 22px; border-top: 1px solid rgba(236,228,212,.1); font-size: .82rem; color: rgba(236,228,212,.45); }

/* ---------- Lichtkasten ---------- */
.lightbox {
  position: fixed;
  inset: 0;
  z-index: 180;
  display: none;
  place-items: center;
  padding: clamp(20px, 5vw, 70px);
  background: rgba(5,3,8,.96);
  backdrop-filter: blur(10px);
}
.lightbox.open { display: grid; }
.lightbox img { max-width: 100%; max-height: 86vh; object-fit: contain; }
.lightbox__close, .lightbox__prev, .lightbox__next {
  position: absolute;
  width: 52px; height: 46px;
  display: grid; place-items: center;
  background: rgba(255,255,255,.08);
  color: #fff;
  border: 0;
  cursor: pointer;
  transition: background .35s;
}
.lightbox__close:hover, .lightbox__prev:hover, .lightbox__next:hover {
  background: linear-gradient(100deg, var(--pink-deep), var(--pink));
}
.lightbox__close { top: 22px; right: 22px; }
.lightbox__prev { left: 22px; top: 50%; transform: translateY(-50%); }
.lightbox__next { right: 22px; top: 50%; transform: translateY(-50%); }
.lightbox__count {
  position: absolute;
  bottom: 24px; left: 50%;
  transform: translateX(-50%);
  font-size: .72rem;
  letter-spacing: .12em;
  color: rgba(236,228,212,.55);
}

/* ---------- Ruhiger Modus ---------- */
@media (prefers-reduced-motion: reduce) {
  .girl-card::after, .event-card::after, .price-card::after, .service-card::after,
  .service-box::after, .room-card::after, .job-card::after, .position-card::after,
  .payment-method::after, .drink-category::after, .special-offer::after { display: none; }
  .tab-pane.active { animation: none; }
}

/* ============================================================
   BLING — Unterseiten auf voller Lautstärke
   ============================================================ */

/* Farbfelder pro Sektion: deutlich, nicht zaghaft */
main > section::before { opacity: 1; }
main > section::before {
  background:
    radial-gradient(60% 75% at 94% 4%, rgba(255,30,122,.30), transparent 62%),
    radial-gradient(55% 70% at 2% 96%, rgba(240,205,78,.20), transparent 62%);
}
main > section:nth-of-type(even)::before {
  background:
    radial-gradient(58% 70% at 4% 6%, rgba(150,30,220,.28), transparent 62%),
    radial-gradient(62% 74% at 98% 94%, rgba(255,30,122,.24), transparent 62%);
}
main > section:nth-of-type(even) { background: linear-gradient(180deg, rgba(255,255,255,.03), transparent 60%); }

/* ---------- Überschriften ---------- */
.section-title, .category-title, .service-title {
  font-size: clamp(2rem, 4.6vw, 4.2rem);
  font-weight: 800;
  letter-spacing: -.045em;
  color: #fff;
  text-shadow: 0 0 40px rgba(255,30,122,.25);
}
.category-title { font-size: clamp(1.35rem, 2.1vw, 1.9rem); font-weight: 700; }
.sec-no {
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .12em;
  filter: drop-shadow(0 0 14px rgba(255,30,122,.7));
}

/* Glühende Linie unter jeder Überschrift */
.section-title { position: relative; padding-bottom: 20px; }
.section-title::after {
  content: "";
  position: absolute;
  left: 0; bottom: 0;
  width: 0; height: 3px;
  background: linear-gradient(90deg, var(--gold-hi), var(--gold) 30%, var(--pink) 100%);
  box-shadow: 0 0 18px rgba(255,30,122,.8), 0 0 42px rgba(240,205,78,.4);
  transition: width 1.1s var(--ease);
}
.section-title.seen::after { width: clamp(90px, 14vw, 220px); }
.text-center .section-title::after, .section-title.text-center::after { left: 50%; transform: translateX(-50%); }
.faq-info .section-title, .payment-info .section-title,
.contact-form-container .section-title, .contact-info-card .section-title,
.info-box .section-title { font-size: clamp(1.45rem, 2.2vw, 2.1rem); }

/* ---------- Seitenkopf ---------- */
.page-header { min-height: clamp(400px, 60vh, 640px); }
.page-header::before {
  background:
    radial-gradient(80% 95% at 86% 0%, rgba(255,30,122,.55), transparent 62%),
    radial-gradient(70% 85% at 0% 100%, rgba(240,205,78,.4), transparent 64%),
    radial-gradient(60% 70% at 50% 60%, rgba(120,20,160,.35), transparent 70%),
    linear-gradient(180deg, rgba(5,3,8,.45) 0%, rgba(5,3,8,.2) 40%, var(--ink) 100%);
}
.page-header h1 {
  font-size: clamp(2.8rem, 8vw, 7rem);
  font-weight: 800;
  letter-spacing: -.05em;
  text-shadow: 0 0 60px rgba(255,30,122,.4);
}
.page-header h1 .hl { filter: drop-shadow(0 0 40px rgba(255,30,122,.6)); }
.page-header::after { height: 3px; background: var(--chrome); box-shadow: var(--burn-gold); }
.page-header p { color: rgba(255,255,255,.82); font-size: clamp(1rem, 1.15vw, 1.24rem); }

/* ---------- Kacheln: Verlaufsrand und Dauerglut ---------- */
.girl-card, .event-card, .price-card, .service-card, .service-box, .room-card,
.job-card, .position-card, .info-box, .price-box, .contact-info-card,
.contact-form-container, .event-info-box, .girl-info-panel, .girl-schedule-box,
.contact-box, .payment-method, .faq-info, .special-offer, .directions-box,
.parking-box, .event-share-box, .sidebar-cta, .drink-category, .service-large-card,
.newsletter-container, .custom-event-cta, .general-application, .job-application,
.snacks-info, .price-notes, .more-questions {
  border: 0;
  background:
    linear-gradient(158deg, rgba(255,30,122,.16) 0%, rgba(150,30,220,.09) 30%, rgba(255,255,255,.02) 65%),
    rgba(10,6,16,.6);
  box-shadow: 0 20px 50px -34px rgba(255,30,122,.5);
}
/* Rand als Verlauf */
.girl-card::before, .event-card::before, .price-card::before, .service-card::before,
.service-box::before, .room-card::before, .job-card::before, .position-card::before,
.info-box::before, .price-box::before, .contact-info-card::before,
.contact-form-container::before, .event-info-box::before, .girl-schedule-box::before,
.contact-box::before, .payment-method::before, .faq-info::before, .special-offer::before,
.directions-box::before, .parking-box::before, .event-share-box::before,
.sidebar-cta::before, .drink-category::before, .newsletter-container::before,
.more-questions::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 4;
  pointer-events: none;
  padding: 1px;
  background: linear-gradient(150deg, rgba(255,243,196,.75), rgba(255,30,122,.6) 45%, rgba(150,30,220,.35) 75%, rgba(255,243,196,.5));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: .45;
  transition: opacity .5s var(--ease);
}
.girl-card:hover::before, .event-card:hover::before, .price-card:hover::before,
.service-card:hover::before, .service-box:hover::before, .room-card:hover::before,
.job-card:hover::before, .position-card:hover::before, .payment-method:hover::before,
.drink-category:hover::before, .special-offer:hover::before { opacity: 1; }

.girl-card:hover, .event-card:hover, .price-card:hover, .service-card:hover,
.service-box:hover, .room-card:hover, .job-card:hover, .position-card:hover,
.payment-method:hover, .drink-category:hover, .special-offer:hover {
  transform: translateY(-8px);
  box-shadow: 0 40px 80px -30px rgba(255,30,122,.75), 0 0 0 1px rgba(255,140,192,.3);
}
.girl-card > *, .event-card > *, .price-card > *, .service-card > *,
.job-card > *, .position-card > * { position: relative; z-index: 2; }

/* ---------- Schaltflächen ---------- */
.button, .btn, .pagination-link, .load-more-gallery, .back-to-girls, .share-btn {
  background: var(--chrome);
  background-size: 260% auto;
  color: #1a1200;
  font-weight: 700;
  letter-spacing: .14em;
  box-shadow: 0 0 0 1px rgba(255,243,196,.35), 0 18px 42px -20px rgba(240,205,78,1);
}
.button:hover, .btn:hover, .pagination-link:hover, .load-more-gallery:hover,
.back-to-girls:hover, .share-btn:hover {
  box-shadow: 0 0 0 1px rgba(255,243,196,.7), 0 24px 60px -18px rgba(240,205,78,1), var(--burn-gold);
}
.button-secondary, .btn-secondary, .btn-light {
  background: rgba(255,255,255,.05);
  color: #fff;
  box-shadow: inset 0 0 0 1px rgba(255,140,192,.45), 0 14px 34px -24px rgba(255,30,122,.8);
}
.button-secondary:hover, .btn-secondary:hover, .btn-light:hover {
  background: var(--chrome-pink);
  background-size: 260% auto;
  color: #fff;
  box-shadow: inset 0 0 0 1px rgba(255,208,230,.6), 0 24px 56px -18px rgba(255,30,122,1), var(--burn-pink);
}

/* ---------- Pillen, Marken, Reiter ---------- */
.girl-status, .girl-featured, .girl-badge, .event-badge, .price-badge,
.service-badge, .included-badge, .extra-badge, .free-badge, .special-badge,
.weekend-badge, .discount-badge, .slide-badge {
  font-weight: 700;
  background: var(--chrome);
  color: #1a1200;
  box-shadow: 0 0 20px rgba(240,205,78,.45);
}
.girl-status.available, .free-badge, .special-badge {
  background: var(--chrome-pink);
  color: #fff;
  box-shadow: var(--burn-pink);
}
.filter-tab.active, .tab-btn.active {
  box-shadow: 0 0 0 1px rgba(255,208,230,.5), 0 16px 36px -16px rgba(255,30,122,1), var(--burn-pink);
}
.tab-btn.active { background: var(--chrome); color: #1a1200; box-shadow: 0 0 0 1px rgba(255,243,196,.5), var(--burn-gold); }
.attribute-checkbox:has(input:checked), .attribute-checkbox.is-on {
  background: var(--chrome-pink);
  color: #fff;
  border-color: transparent;
  box-shadow: 0 0 22px rgba(255,30,122,.6);
}
.attributes-filter .filter-count { box-shadow: var(--burn-pink); }

/* ---------- Symbole ---------- */
.method-icon, .service-icon, .feature-icon, .info-icon, .position-icon {
  background: var(--chrome);
  color: #1a1200;
  box-shadow: 0 12px 30px -14px rgba(240,205,78,.9);
}
.service-card:hover .service-icon, .position-card:hover .position-icon,
.payment-method:hover .method-icon {
  background: var(--chrome-pink);
  color: #fff;
  box-shadow: 0 16px 34px -14px rgba(255,30,122,1), var(--burn-pink);
}

/* ---------- Damen ---------- */
.girl-info h3 {
  font-size: 1.7rem;
  font-weight: 800;
  letter-spacing: -.04em;
  background: linear-gradient(96deg, #fff, var(--gold-hi) 55%, var(--pink-hi));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  filter: drop-shadow(0 0 24px rgba(255,30,122,.45));
}
.girl-image::after {
  background:
    linear-gradient(to top, rgba(9,5,14,.97) 6%, rgba(9,5,14,.2) 46%, transparent 70%),
    linear-gradient(to top, rgba(255,30,122,.22), transparent 55%);
}
.girl-stat { background: rgba(255,255,255,.12); box-shadow: inset 0 0 0 1px rgba(255,140,192,.25); }

/* ---------- Termine ---------- */
.event-date {
  background: var(--chrome-pink);
  background-size: 240% auto;
  font-size: 1.6rem;
  font-weight: 800;
  box-shadow: 0 18px 40px -16px rgba(255,30,122,1), var(--burn-pink);
}
.event-price, .price-amount, .amount, .free-amount, .offer-discount, .price-value {
  font-weight: 800;
  background: linear-gradient(96deg, var(--gold-hi), var(--gold) 34%, var(--pink-hi) 78%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  filter: drop-shadow(0 0 22px rgba(240,205,78,.45));
}

/* ---------- Fragen ---------- */
.faq-item.open { border-left-color: transparent; box-shadow: inset 3px 0 0 0 var(--pink), 0 0 34px -10px rgba(255,30,122,.5); }
.faq-question { font-size: 1.06rem; }

/* ---------- Listenpunkte ---------- */
.drink-list li::before, .info-list li::before, .requirements-list li::before,
.benefits-list li::before, .directions-list li::before, .parking-list li::before,
.legal-content li::before {
  height: 3px;
  box-shadow: 0 0 10px rgba(255,30,122,.8);
}

/* ---------- Karussell ---------- */
.slider-prev:hover, .slider-next:hover { background: var(--chrome-pink); box-shadow: var(--burn-pink); }
.slider-dot.active, .slider-dots .active { box-shadow: 0 0 14px rgba(255,30,122,.9); }

/* ---------- Leerzustände ---------- */
.no-girls-message, .no-events-message, .no-prices-message,
.no-services-message, .no-jobs-message {
  border: 0;
  color: rgba(255,255,255,.8);
  background:
    radial-gradient(70% 110% at 50% 0%, rgba(255,30,122,.28), transparent 70%),
    rgba(10,6,16,.6);
  box-shadow: inset 0 0 0 1px rgba(255,140,192,.28);
}

/* ---------- Ersatzfläche ---------- */
.img-missing {
  background:
    radial-gradient(80% 100% at 30% 0%, rgba(255,30,122,.45), transparent 66%),
    linear-gradient(160deg, rgba(240,205,78,.32), rgba(150,30,220,.16));
}
.img-missing::after { border-color: rgba(255,255,255,.5); box-shadow: 0 0 24px rgba(255,30,122,.6); }

/* ---------- Newsletter ---------- */
.newsletter-section {
  background:
    radial-gradient(70% 130% at 100% 0%, rgba(255,30,122,.34), transparent 62%),
    radial-gradient(70% 130% at 0% 100%, rgba(240,205,78,.26), transparent 62%);
}

/* ---------- Formularfokus ---------- */
.form-control:focus, .form-textarea:focus, input:focus, select:focus, textarea:focus {
  border-color: var(--pink);
  box-shadow: 0 0 0 3px rgba(255,30,122,.25), 0 0 26px -4px rgba(255,30,122,.6);
}
