/* Lesbarkeit (Peter, 2026-10-10): loaded LAST, after tiefe.css.
   1) Floors for text that was measured too small (9–14px) on 375px and 1366px, 14 pages.
      Each selector was checked on all measured pages: it never matches text that is already
      larger than its floor, so these rules only enlarge. Labels 12px, body copy 15–16px.
      Device mock-ups (watch, phone screens) are left as they are on purpose.
   2) Tablet: the full menu did not fit between 721 and 1100px (Kontakt button off-screen),
      so the burger menu now starts at 1100px — same rules as style.css/refined.css at 720px.
   3) No sideways wobble on phones (the cookie box was 10px too wide). */

html { overflow-x: clip; }
/* Cookie note: tiefe.css had made it position:relative, so it sat unseen under the footer.
   Peter (2026-10-10): floating, bottom centre. Centred with margins (not transform: tiefe.css
   animates transforms on cards). Hidden for good once «Verstanden» is clicked. */
body .ck-hinweis { position: fixed; left: 16px; right: 16px; bottom: 16px; margin: 0 auto; width: auto; max-width: 560px; z-index: 90; }
@media (max-width: 480px) { body .ck-hinweis { left: 10px; right: 10px; bottom: 10px; } }
/* Long German words («Softwareentwicklung») pushed a two-column card 6px off the phone screen. */
.result-grid > * { min-width: 0; }
@media (max-width: 480px) { main h3, main p { hyphens: auto; overflow-wrap: break-word; } }

/* ---- 1. Labels, eyebrows, numbers, small notes: at least 12px ---- */
.motion-copy p.motion-kicker,
.motion-actions a.motion-primary,
.motion-actions a.motion-discover,
.motion-origin small,
.motion-copy a.motion-ki,
.motion-bottom span,
.motion-scroll span,
.wv-kopf-text div.eyebrow,
.wv-ergebnisse li,
.section-heading div.eyebrow,
.os-fn span.os-fn-nr,
.os-agents-strip span.eyebrow,
.rs-kopf div.eyebrow,
.rs-text span.rs-status.live,
.service-cat h3.service-cat-title,
.service-card-img figcaption,
.sch-text div.eyebrow,
.kb-text div.eyebrow,
.kb-karte-inhalt span.kb-karte-name,
.vergleich-tabelle th,
.kr-oszlop h3,
.kr-lista span.kr-szam,
.kr-rendszer b,
.kr-oszlop.kr-inhaber h3,
.kr-munka b,
.wachstum-pont span.wp-szam,
.wachstum-pont span.wp-cimke,
.est span,
.ep-inner div.eyebrow,
.ep-inner h3.ep-untertitel,
.ep-modell span.ep-nr,
.ep-fuss h3.ep-untertitel,
.product-section-title span.eyebrow,
.product-feature.feature-wide span.feature-number,
.product-feature.feature-dark span.feature-number,
.product-feature.feature-bottom span.feature-number,
.platform-plan-grid span.eyebrow,
.price small,
.price-heading span.popular-badge,
.consulting span.eyebrow,
.section.faq-section div.eyebrow,
.closing div.eyebrow,
.footer-top span.eyebrow,
.footer-bottom span,
.company-intro span.company-eyebrow,
.ausbildung strong,
.tags span,
.company-details span,
.company-foot span,
.section.about-hero div.eyebrow,
.px-heritage div.px-kicker,
.px-facts span,
.process-grid span.step,
.section.process-section p.small-note,
.contact-intro div.eyebrow,
.contact-details span.eyebrow,
.contact-details small,
.section.legal-page div.eyebrow,
.section.legal-page.ref-seite div.eyebrow,
.ref-meta-zeile dt,
.ki-ja span.ki-flag,
.ki-talan span.ki-flag,
.ki-nein span.ki-flag,
.section.service-hero div.eyebrow,
.service-figure figcaption,
.investment span.eyebrow,
.investment small,
.related-card span.mono,
.service-card-tags li,
.footer-bottom span.swiss
{ font-size: 12px !important; }

.footer-bottom a,
.legal-sub strong
{ font-size: 13px !important; }

/* ---- 2. Text in cards and sections: at least 15px ---- */
.real-os p.real-os-filmhinweis,
.os-fn p,
.os-fn small,
.rs-text p.rs-ergebnis,
.rs-text p.rs-leistung,
.sch-text p,
.kb-karte-inhalt p,
.problem-pont p,
.dst-lepes p,
.dst-zaro p,
.kr-lista p,
.kr-oszlop.kr-inhaber p.kr-lead,
.wachstum-pont p,
.ep-modell p,
.ausbildung span,
.company-person-text p,
.section.contact-page p.small-note,
.standard-grid p,
.process-grid p
{ font-size: 15px !important; }

.footer-top p,
.footer-top p.fuss-haltung,
.ck-hinweis p
{ font-size: 14px !important; }

/* ---- 3. Long reading text (legal pages, references, knowledge): 16px ---- */
.section.legal-page p,
.section.legal-page.ref-seite p.ref-lede,
.section.legal-page p.ref-lede,
.ref-fall p,
.ref-liste li,
.ref-ergebnis p,
.ref-punkte p,
.ref-meta-zeile dd,
.ref-schluss p,
.wissen-karte p,
.legal-sub p,
.legal-sub li,
.ki-ja p,
.ki-talan p,
.ki-nein p
{ font-size: 16px !important; }

/* ---- 4. Width-dependent cases (smaller only at one width) ---- */
@media (min-width: 761px) {
  .pricing-section .consulting p,
  .pricing-section .financing p { font-size: 15px !important; }
}
@media (max-width: 760px) {
  .motion-copy p.motion-description { font-size: 15px !important; }
}
form p.form-notice { font-size: 14px !important; }

/* ---- Tablet: burger menu up to 1100px (copied from the 720px rules) ---- */
@media (min-width: 721px) and (max-width: 1100px) {
  .header { height: 76px; padding: 0 6%; gap: 15px; }
  .brand { font-size: 25px; }
  .brand svg { width: 29px; }
  .header-actions { gap: 16px; }
  /* the «Kontakt aufnehmen» button stays visible on tablets: there is room, and the menu has no contact link */
  .menu-toggle { display: flex; flex-direction: column; justify-content: center; gap: 5px; background: none; border: 0; width: 28px; height: 38px; padding: 3px; }
  .menu-toggle span { height: 1px; background: var(--ink); width: 22px; }
  .header nav { display: none; position: absolute; top: 76px; left: 0; right: 0; padding: 20px 6%; background: #fff; border-bottom: 1px solid var(--line); box-shadow: 0 15px 20px #17251f0d; }
  .header nav.open { display: flex; flex-direction: column; gap: 5px; }
  .header nav a { font-size: 17px; padding: 12px; }
  .language-menu > summary { min-height: 44px; }
}
