/* Handy/Tablet: Mindestschriftgröße 12 px und größere Tippflächen. Verändert das Layout nicht:
   Tippflächen werden unsichtbar vergrößert (::after), Schrift nur dort angehoben, wo sie kleiner als 12 px war. */
@media (max-width: 1100px) {
  /* !important, weil einzelne Abschnitte mit höherer Spezifität kleinere Werte setzen */
  .eyebrow, .eyebrow span, small, .planning-small, .kpi-label, .live-row-label, .well-label, .planning-invest,
  .compare-model-note, .compare-yield-label, .compare-chart-subtitle, .compare-legend span, .compare-daysteps p span,
  .hero-identity, .live-data-status, .live-kpi-since, .operation-preview-badge, .operation-demo-bottom span,
  .benefits-limit-note, .inquiry-location-note, .inquiry-privacy, .inquiry-reassurance, .inquiry-form-heading span,
  .assembly-film-later, .assembly-option-tags span, .about-photo-hint, .hero-live-link, .hero-buttons .button,
  .operation-video-toggle, .planning-detail-link, .planning-technical span, .planning-chart-legend span,
  .planning-card-head span, .planning-zone small, .planning-source, .planning-source a, .planning-kpis span,
  .planning-result-title p, .planning-slider-head output, .specs-pdf span, .explain-examples h3, .nav-cta,
  .compare-table caption, .compare-table th, .compare-table td, .compare-table td a, .compare-source, .compare-source-links a,
  .well-value .sub, .planning-map-select, .planning-zone span, .planning-anchor-grid p, .planning-disclaimer, .planning-disclaimer a,
  .planning-heading p, .planning-controls label, .planning-calc-footer button, .assembly-facts span, .assembly-options-button,
  .assembly-electric p, .assembly-electric p strong, .assembly-electric p a, .specs-inline-status, .specs-pdf p, .specs-footnote,
  .faq-personal-label, .about-photo figcaption, .inquiry-required label { font-size: 12px !important; }

  .site-footer a, .site-footer button, .live-map-actions a, .live-map-actions button,
  .operation-text-link, .planning-detail-link, .compare-source-links a, .planning-source a,
  .planning-disclaimer a, .inquiry-privacy a, .faq-inline-contact, .section-next, .hero-live-link,
  .assembly-options-button, .live-tab, .hero-video-toggle, .menu-button, .nav-cta { position: relative; }
  .site-footer a::after, .site-footer button::after, .live-map-actions a::after, .live-map-actions button::after,
  .operation-text-link::after, .planning-detail-link::after, .compare-source-links a::after, .planning-source a::after,
  .planning-disclaimer a::after, .inquiry-privacy a::after, .faq-inline-contact::after, .section-next::after,
  .hero-live-link::after, .assembly-options-button::after, .hero-video-toggle::after, .menu-button::after, .nav-cta::after {
    content: ""; position: absolute; inset: -12px -8px; /* unsichtbare, ca. 44 px hohe Tippfläche */
  }
  .site-footer a, .site-footer button { padding-block: 6px; }
  .live-tab { min-height: 40px; }
  .hero-video-toggle::after, .menu-button::after, .nav-cta::after { inset: -6px; }
}

/* Reglergriffe: größere Bedienfläche, Layout bleibt gleich (Polster wird durch negativen Rand ausgeglichen) */
@media (pointer: coarse), (max-width: 1100px) {
  .planning-controls input[type=range], #planning-assumptions input[type=range]:not(#rc-alt-year) {
    box-sizing: content-box; padding: 12px 0; margin: -2px 0 -4px; background-clip: content-box;
  }
  .planning-controls input[type=range]::-webkit-slider-thumb, #planning-assumptions input[type=range]:not(#rc-alt-year)::-webkit-slider-thumb { width: 24px; height: 24px; border-width: 3px; }
  .planning-controls input[type=range]::-moz-range-thumb, #planning-assumptions input[type=range]:not(#rc-alt-year)::-moz-range-thumb { width: 18px; height: 18px; }
}

/* Fokus-Sprung zum Kontaktbereich soll keinen Rahmen um die Überschrift zeichnen */
#kontakt h2[tabindex="-1"]:focus { outline: none; }

/* Prüfbericht 3: Tippflächen und Diagrammschrift */
@media (pointer: coarse), (max-width: 1100px) {
  .live-tab { min-height: 44px; }
  .planning-controls input[type=range], #planning-assumptions input[type=range]:not(#rc-alt-year) { padding: 20px 0; margin: -10px 0 -12px; }
}
@media (max-width: 900px) {
  /* SVG-Beschriftungen werden mit der Grafik verkleinert; hier so groß zeichnen, dass sie am Handy etwa 12 px erreichen */
  #rc-chart svg text { font-size: 12.5px !important; }
  .compare-model-svg text { font-size: 14px !important; }
}

/* Nachbesserung Prüfbericht 4: Auswahlfelder und Pfeile mit 44 px Höhe, Live-/Kontakt-Kleintexte */
@media (max-width: 1100px) {
  #compare-month, #planning-state, #swk-place-select, #rc-panel { min-height: 44px; }
  .planning-site-grid button.button, #planning-form button[type=submit] { min-height: 44px; }
  #live-day-prev, #live-day-next { min-width: 44px; min-height: 44px; }
  #live .unit, #live small, #live .live-tab, #kontakt .inquiry-steps p, #kontakt .inquiry-steps small { font-size: 12px !important; }
}
@media (max-width: 900px) {
  #rc-chart svg text { font-size: 14.5px !important; }
  .compare-model-svg text { font-size: 16px !important; }
}

/* Tablet-Befund 15.10.: Reglerspur – der Rechner setzt die Füllfarbe per Inline-Hintergrund; ohne !important würde das Polster mit eingefärbt */
@media (pointer: coarse), (max-width: 1100px) {
  .planning-controls input[type=range], #planning-assumptions input[type=range]:not(#rc-alt-year) { background-clip: content-box !important; }
}
/* Tablet-Befund 15.10.: Montagefilm bis 900 px in eigener Fläche über der Bildunterschrift statt hinter der Schritt-Tabelle (Lage aus montage-mobil.js) */
@media (max-width: 900px) {
  #montage.assembly-video-section .assembly-film { min-height: 0; padding-top: 56.25vw; }
  #montage .assembly-background img, #montage .assembly-background video { top: var(--film-top, 0); bottom: auto; height: 56.25vw; object-fit: cover; object-position: center; }
  #montage .assembly-play-big { top: calc(var(--film-top, 0px) + 28.125vw); }
}
