/* DORFDISCO-SCHRIFTGESTALTUNG-V1 · gemeinsam fuer Homepage, Shop und Verwaltung. */
@font-face {
  font-family: "Dorf Disco Inter";
  src: url("fonts/dd-inter-v1/InterVariable.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}
@font-face {
  font-family: "Dorf Disco Inter";
  src: url("fonts/dd-inter-v1/InterVariable-Italic.woff2") format("woff2");
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
}

body[data-dd-typography="1"] {
  --dd-font: "Dorf Disco Inter", Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
  --dd-title: 40px;
  --dd-section: 28px;
  --dd-card: 22px;
  --dd-copy: 16px;
  --dd-note: 14px;
  --site-title: var(--dd-title);
  --site-section-title: var(--dd-section);
  --site-card-title: var(--dd-card);
  --dde-page-title: var(--dd-title);
  --dde-subheading: var(--dd-section);
  --dde-heading-font: var(--dd-font);
  font-family: var(--dd-font) !important;
  font-size: var(--dd-copy) !important;
  font-weight: 400;
  line-height: 1.65;
  font-optical-sizing: auto;
  -webkit-font-smoothing: antialiased;
}

/* Die Webschrift gilt auch fuer native Formular- und Bibliotheks-Bedienelemente.
   Bilder, SVG-Geometrie, QR-Codes, Sichtbarkeit und Verkaufslogik bleiben unberuehrt. */
body[data-dd-typography="1"] :where(*) {
  font-family: var(--dd-font) !important;
}

body[data-dd-typography="1"] :is(h1,h2,h3,h4,h5,h6) {
  font-style: normal !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  letter-spacing: -.025em !important;
  text-transform: none !important;
  overflow-wrap: anywhere;
  word-break: normal;
  margin-block-start: 0;
}
body[data-dd-typography="1"] h1 {
  font-size: var(--dd-title) !important;
  line-height: 1.18 !important;
  margin-block-end: 24px !important;
}
body[data-dd-typography="1"] h2 {
  font-size: var(--dd-section) !important;
  margin-block-end: 20px !important;
}
body[data-dd-typography="1"] h3 {
  font-size: var(--dd-card) !important;
  margin-block-end: 12px !important;
}
body[data-dd-typography="1"] h4 { font-size: 18px !important; }
body[data-dd-typography="1"] :is(h5,h6) { font-size: 16px !important; }
body[data-dd-typography="1"] h1 :is(.hero-title,.hero-events) {
  font: inherit !important;
  letter-spacing: inherit !important;
}

/* Karten koennen semantisch h2 sein; visuell bleiben sie eine Kartenueberschrift. */
body[data-dd-typography="1"] :is(.portal-card,.event-card,.dd-customer-favorite-body,.dd-customer-order-top) h2,
body[data-dd-typography="1"] :is(.cart-head h3,.contact-details h2,.showcase-outro h3,.dd-service-row h3,.dd-after-checkout h3) {
  font-size: var(--dd-card) !important;
  margin-block-end: 12px !important;
}

body[data-dd-typography="1"] :is(p,li,dt,dd,td,th,.section-intro,.dialog-description,.dd-lead,.dd-description) {
  font-size: var(--dd-copy) !important;
  line-height: 1.65 !important;
}
body[data-dd-typography="1"] p { margin-block-start: 0; }
body[data-dd-typography="1"] :is(th,td) { letter-spacing: normal !important; text-transform: none !important; }
body[data-dd-typography="1"] th { font-weight: 600; }

body[data-dd-typography="1"] :is(button,input,select,textarea,summary) {
  font-size: var(--dd-copy) !important;
  line-height: 1.5 !important;
  letter-spacing: normal !important;
}
body[data-dd-typography="1"] :is(input,textarea,select) { font-weight: 400 !important; }
body[data-dd-typography="1"] :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="range"]),select,textarea) {
  min-height: 48px;
  min-width: 0;
  max-width: 100%;
}
body[data-dd-typography="1"] :is(button,.button,.cta,.outline-button,.dd-customer-button,.dialog-secondary,.dd-event-cta,.dd-secondary-button,.dd-favorite,.dd-customer-heart-link,.dd-customer-summary-action,.dd-customer-ticket-rows a,.dd-customer-pagination a,.nl-export,.filter-btn,.location-chip,.tabs button,.dd-customer-tabs a,.statistics-tabs a) {
  font-size: var(--dd-copy) !important;
  font-weight: 600 !important;
  line-height: 1.5 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}
body[data-dd-typography="1"] :is(.button,.cta,.outline-button,.dd-customer-button,.dialog-secondary,.dd-event-cta) {
  min-height: 48px;
  white-space: normal;
}
body[data-dd-typography="1"] .promo-checkout button { min-height: 48px; }
body[data-dd-typography="1"] label {
  font-size: var(--dd-note) !important;
  font-weight: 600 !important;
  line-height: 1.5 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}
body[data-dd-typography="1"] :is(.check,.dd-customer-check,.dd-terms,.dd-customer-news-choice) { font-weight: 400 !important; }

/* Hinweise, Metadaten und kleine Beschriftungen sind bewusst eine eigene Ebene. */
body[data-dd-typography="1"] :is(
  small,.small,.fineprint,.section-kicker,.dd-eyebrow,.eyebrow,
  .event-card-meta,.event-card-venue,.event-card-more,.showcase-meta,.showcase-location,.showcase-image-label,
  .service-price-note,.contact-form-intro,.contact-privacy-note,.legal-date,
  .meta-pill,.dialog-badge,.own-badge,.dialog-fact small,.portal-count,.back-link,
  .dd-hero-benefits,.dd-hero-benefits span,.dd-event-meta,.dd-event-venue,.dd-event-count,
  .dd-date-month,.dd-date-year,.event-date-badge span,.dd-event-brand,.dd-status,.dd-availability,.dd-panel-kicker,
  .dd-field-hint,.dd-checkout-help,.dd-summary-line > span:last-child,.dd-summary-total > span,
  .dd-payment-provider strong,.dd-detail-poster figcaption,.dd-detail-facts dt,.dd-detail-facts dd span,
  .dd-summary-shipping,.dd-summary-shipping p,.dd-payment-provider p,
  .dd-legal-text,.dd-reservation-note,.dd-back-link,.dd-checkout-steps li,
  .dd-checkout-steps li > span,.dd-after-checkout li > span,
  .dd-customer-help,.dd-customer-eyebrow,.dd-customer-badge,.dd-customer-ticket-meta,
  .dd-customer-group-title > small,.dd-customer-stat > span,.dd-customer-ticket-status,.dd-customer-ticket-detail dt,
  .partner-copy label,.partner-event-link p,.credit-mode small,.credit-totals > div > span,
  .credit-preview-label,.credit-receipt-help,.badge,.stat > span,.request-status,
  .partner-counts span,.nl-metrics span,.nl-kind span,.nl-recipients > div:last-child span,
  .dd-ticket-background-badge,.dd-ticket-background-grid .muted,
  .service-admin-help,.service-admin-description,.cart-total > span,.offer-number
) {
  font-size: var(--dd-note) !important;
  line-height: 1.6 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}
body[data-dd-typography="1"] :is(.section-kicker,.dd-eyebrow,.eyebrow,.dd-panel-kicker,.dd-customer-eyebrow) {
  font-weight: 600 !important;
}
body[data-dd-typography="1"] :is(.dd-date-block strong,.event-date-badge strong) {
  font-size: 32px !important;
  line-height: 1.2 !important;
  font-weight: 700 !important;
}
body[data-dd-typography="1"] :is(.credit-totals strong,.dd-customer-stat strong,.stat > strong,.cart-total > strong,.dd-customer-order-total) {
  font-size: 28px !important;
  line-height: 1.25 !important;
  font-weight: 700 !important;
}
body[data-dd-typography="1"] :is(footer,.footer) { font-size: var(--dd-note) !important; line-height: 1.6 !important; }

body[data-dd-typography="1"] nav a,
body[data-dd-typography="1"] .mobile-menu summary {
  font-size: var(--dd-copy) !important;
  font-weight: 600 !important;
  line-height: 1.5 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}
body[data-dd-typography="1"] .service-admin-nav { flex-wrap: wrap; }
body[data-dd-typography="1"] .service-admin-nav a { max-width: 100%; }
body[data-dd-typography="1"] :is(.dd-customer-main,.dd-customer-panel,.dd-order-summary,.dd-ticket-selection,.dd-panel-heading) { min-width: 0; }
body[data-dd-typography="1"] .dd-checkout-steps { flex-wrap: wrap; row-gap: 10px; }
body[data-dd-typography="1"] .dd-checkout-steps li { min-height: 30px; }
body[data-dd-typography="1"] .dd-checkout-steps li > span { min-width: 26px; min-height: 26px; }
body[data-dd-typography="1"] .dd-panel-kicker { flex-shrink: 0; }
body[data-dd-typography="1"] .dd-customer-password > input { padding-right: 52px; }
body[data-dd-typography="1"] .dd-customer-password > button { padding: 0; width: 44px; min-width: 44px; }

@media (max-width: 600px) {
  body[data-dd-typography="1"] { --dd-title: 32px; --dd-section: 24px; --dd-card: 20px; }
  body[data-dd-typography="1"] h1 { margin-block-end: 20px !important; }
  body[data-dd-typography="1"] :is(.dd-panel-heading,.dd-summary-event) { align-items: flex-start; }
  body[data-dd-typography="1"] .dd-panel-heading { flex-wrap: wrap; }
  body[data-dd-typography="1"] :is(.dd-customer-news-choice,.dd-customer-form-row) { overflow-wrap: anywhere; }
  body[data-dd-typography="1"] :is(.credit-totals strong,.dd-customer-stat strong,.stat > strong) { font-size: 24px !important; }
}
