/* f3dprint - ruhigeres, besser lesbares Erscheinungsbild.
   Liegt über site.css und ändert Schrift, Gewichte, Rundungen und Abstände global, ohne jede Seite einzeln anzufassen. */

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; line-height: 1.6; letter-spacing: 0; text-rendering: optimizeLegibility; font-feature-settings: 'calt' 1, 'case' 0; }
html:not([data-theme="dark"]) body { background-color: #f6f7f9 !important; color: #1f2937; }

/* ---- Schrift: kein Kursiv, kein Dauer-Großbuchstabe, weniger "schwarz" */
.italic { font-style: normal !important; }
.uppercase { text-transform: none !important; }
.font-black, .font-\[900\] { font-weight: 700 !important; }
.font-extrabold { font-weight: 700 !important; }
.tracking-widest, .tracking-wider, .tracking-\[0\.2em\], .tracking-\[0\.25em\], .tracking-\[0\.3em\], .tracking-\[0\.4em\] { letter-spacing: .01em !important; }
h1, h2, h3, h4 { font-style: normal !important; text-transform: none !important; font-weight: 700; letter-spacing: -0.022em; }
h1 { letter-spacing: -0.03em; }
/* Winzige Schriften etwas größer, damit i, l und I sicher unterscheidbar bleiben */
.text-\[6px\], .text-\[7px\], .text-\[8px\], .text-\[9px\], .text-\[10px\] { font-size: 12px !important; }
.text-\[11px\] { font-size: 13px !important; }
.text-xs { font-size: .8125rem; }

/* ---- Logo: so geschrieben wie der Firmenname, klein und gut lesbar */
a[href="./"].tracking-tighter, a[href="./"].tracking-tighter { text-transform: none !important; font-style: normal !important; font-weight: 700 !important; letter-spacing: -0.035em; font-size: 1.65rem; }
@media (min-width: 768px) { a[href="./"].tracking-tighter, a[href="./"].tracking-tighter { font-size: 1.85rem; } }
a[href="./"].tracking-tighter + span { text-transform: none !important; letter-spacing: .02em !important; font-weight: 500 !important; font-size: 12px !important; color: #64748b; }

/* ---- Formen: weniger Extremrundungen, weichere Schatten */
.rounded-\[40px\], .rounded-\[35px\], .rounded-\[30px\], .rounded-\[2rem\], .rounded-\[24px\], .rounded-\[28px\], .rounded-3xl, .glass-card, .legal-card, .item-card, .mat-card, .service-card { border-radius: 22px !important; }
.shadow-2xl, .shadow-xl, .shadow-lg { box-shadow: 0 10px 40px -12px rgba(15, 23, 42, .14) !important; }
.shadow-md, .shadow-sm { box-shadow: 0 1px 2px rgba(15, 23, 42, .05), 0 4px 14px -6px rgba(15, 23, 42, .08) !important; }
html:not([data-theme="dark"]) .glass-nav { background: rgba(255, 255, 255, .8) !important; border-bottom: 1px solid rgba(15, 23, 42, .06) !important; box-shadow: none !important; backdrop-filter: saturate(180%) blur(18px); -webkit-backdrop-filter: saturate(180%) blur(18px); }

/* ---- Knöpfe: Pillenform, klare Beschriftung */
a.bg-slate-900, button.bg-slate-900, a.bg-indigo-600, button.bg-indigo-600, a.bg-indigo-500, button.bg-indigo-500 { border-radius: 999px !important; font-weight: 600 !important; letter-spacing: 0 !important; }
a.bg-slate-900:not(.w-10), button.bg-slate-900:not(.w-10) { transition: background-color .2s, transform .2s; }
a.bg-slate-900:active, button.bg-slate-900:active, a.bg-indigo-600:active, button.bg-indigo-600:active { transform: scale(.98); }
:focus-visible { outline: 2px solid #6366f1; outline-offset: 3px; border-radius: 6px; }

/* ---- Auswahlkarten auf der Startseite */
.choice-card { display: flex; flex-direction: column; gap: .5rem; padding: 1.6rem; background: #fff; border: 1px solid #e5e7eb; border-radius: 22px; text-align: left; text-decoration: none; transition: transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s, border-color .25s; }
.choice-card:hover { transform: translateY(-3px); border-color: #a5b4fc; box-shadow: 0 18px 40px -18px rgba(79, 70, 229, .35); }
.choice-ico { display: inline-flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; border-radius: 14px; background: #eef2ff; color: #4f46e5; margin-bottom: .6rem; }
.choice-ico svg { width: 1.45rem; height: 1.45rem; }
.choice-title { font-size: 1.2rem; font-weight: 700; color: #0f172a; letter-spacing: -0.02em; line-height: 1.25; }
.choice-text { color: #475569; font-size: .95rem; line-height: 1.55; }
.choice-cta { margin-top: auto; padding-top: .8rem; color: #4f46e5; font-weight: 600; font-size: .95rem; }
.choice-card:hover .choice-cta { text-decoration: underline; text-underline-offset: 4px; }
.step-dot { width: 1.6rem; height: 1.6rem; flex-shrink: 0; border-radius: 999px; background: #4f46e5; color: #fff; font-size: .8rem; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }

/* ---- Abschnitte: mehr Luft */
section.w-full, section[id] { scroll-margin-top: 90px; }

@media (prefers-reduced-motion: reduce) { *:not(.promo-track) { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }

/* ---- Dunkelmodus für die neuen Teile */
html[data-theme="dark"] .choice-card { background: #111a2e; border-color: #263353; }
html[data-theme="dark"] .choice-card:hover { border-color: #6366f1; box-shadow: 0 18px 40px -18px rgba(99, 102, 241, .5); }
html[data-theme="dark"] .choice-ico { background: #1e2750; color: #a5b4fc; }
html[data-theme="dark"] .choice-title { color: #f1f5f9; }
html[data-theme="dark"] .choice-text { color: #aab6c8; }
html[data-theme="dark"] .choice-cta { color: #a5b4fc; }
html[data-theme="dark"] a[href="./"].tracking-tighter + span { color: #94a3b8; }

/* Gutschein-Beträge */
.gv-amt { padding: 1rem; border-radius: 18px; border: 2px solid #e2e8f0; background: #fff; color: #0f172a; font-weight: 800; font-size: 1.05rem; cursor: pointer; transition: all .15s; }
.gv-amt:hover { border-color: #6366f1; }
.gv-amt.is-on { border-color: #4f46e5; background: #4f46e5; color: #fff; }
html[data-theme="dark"] .gv-amt { background: #1e293b; border-color: #334155; color: #f1f5f9; }
html[data-theme="dark"] .gv-amt.is-on { background: #6366f1; border-color: #818cf8; color: #fff; }

/* Formularfelder (auch auf Seiten ohne eigene .form-input-Regel) */
.form-input { width: 100%; background: #fff; border: 2px solid #e2e8f0; border-radius: 18px; padding: 1rem 1.1rem; outline: none; transition: border-color .15s, box-shadow .15s; font-weight: 600; color: #0f172a; font-size: 1rem; }
.form-input::placeholder { color: #718096; font-weight: 500; opacity: 1; }
.form-input:focus { border-color: #6366f1; box-shadow: 0 0 0 4px rgba(99, 102, 241, .12); }
html[data-theme="dark"] .form-input { background: #0f172a; border-color: #334155; color: #f1f5f9; }
html[data-theme="dark"] .form-input::placeholder { color: #8391a7; }
html[data-theme="dark"] .form-input:focus { border-color: #818cf8; }

/* Kundenkonto */
.acc-card { background: #fff; border: 1px solid #e2e8f0; border-radius: 22px; padding: 1.4rem 1.5rem; margin-bottom: 1rem; box-shadow: 0 1px 2px rgba(15, 23, 42, .04); }
.acc-stat { background: #fff; border: 1px solid #e2e8f0; border-radius: 18px; padding: .9rem 1rem; }
.acc-tab { padding: .6rem 1.1rem; border-radius: 999px; background: #f1f5f9; color: #334155; font-weight: 700; font-size: .85rem; border: 1px solid transparent; cursor: pointer; }
.acc-tab.is-on { background: #0f172a; color: #fff; }
html[data-theme="dark"] .acc-card, html[data-theme="dark"] .acc-stat { background: #111a2e; border-color: #263353; box-shadow: none; }
html[data-theme="dark"] .acc-tab { background: #1e293b; color: #cbd5e1; }
html[data-theme="dark"] .acc-tab.is-on { background: #6366f1; color: #fff; }
html[data-theme="dark"] .acc-card .text-slate-900, html[data-theme="dark"] .acc-stat .text-slate-900 { color: #f1f5f9 !important; }
html[data-theme="dark"] .acc-card .bg-slate-100 { background: #1e293b !important; color: #e2e8f0 !important; }
html[data-theme="dark"] .acc-card .text-indigo-700 { color: #a5b4fc !important; }

/* Geburtstagsgeschenk im Konto */
.acc-gift { background: linear-gradient(135deg, #4f46e5, #7c3aed); color: #fff; border-radius: 22px; padding: 1.4rem 1.5rem; margin-bottom: 1.25rem; box-shadow: 0 14px 34px -16px rgba(79, 70, 229, .65); }


/* =====================================================================
   Lesbarkeit im hellen Design: blasse Grautöne kräftiger (Kontrast >= 4,5:1)
   ===================================================================== */
html:not([data-theme="dark"]) :where(.text-slate-300) { color: #8693a7; }
html:not([data-theme="dark"]) :where(.text-indigo-400) { color: #5a5df0; }
html:not([data-theme="dark"]) :where(.text-slate-400) { color: #66758b; }
html:not([data-theme="dark"]) :where(.text-slate-500) { color: #526075; }
html:not([data-theme="dark"]) :where(.bg-slate-900, .bg-slate-800, .gradient-indigo, .process-card-dark, .bg-indigo-600) :where(.text-slate-300, .text-slate-400, .text-slate-500) { color: #cbd5e1; }
html:not([data-theme="dark"]) input::placeholder, html:not([data-theme="dark"]) textarea::placeholder { color: #718096; opacity: 1; }
html[data-theme="dark"] input::placeholder, html[data-theme="dark"] textarea::placeholder { color: #8391a7; opacity: 1; }
.footer-active { color: #4f46e5 !important; font-weight: 700 !important; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; }
html[data-theme="dark"] .footer-active { color: #a5b4fc !important; }
/* Konfigurator vor dem Hochladen: gesperrt, aber gut lesbar */
#config-settings.opacity-50 { opacity: .85; }

/* Dunkle Karte "Alles aus einer Hand" (Design-Service): Hintergrund und Titel waren weiß auf weiß */
.service-card.bg-slate-900 { background-color: #0f172a !important; border: 0 !important; color: #fff; }
.service-card.bg-slate-900 h3 { color: #fff !important; }
.service-card.bg-slate-900 p { color: #cbd5e1 !important; }
html[data-theme="dark"] .service-card.bg-slate-900 { background-color: #1e2750 !important; border: 1px solid #33407a !important; }
html[data-theme="dark"] .service-card.bg-slate-900 p { color: #c7d2fe !important; }

/* =====================================================================
   Handy-Feinschliff: Kopfzeile, Menü, Fußzeile, Tippflächen, Abstände
   ===================================================================== */
nav.glass-nav .nav-burger { display: inline-flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; border-radius: 14px; background: #f1f5f9; color: #334155; border: 0; cursor: pointer; flex-shrink: 0; }
nav.glass-nav .nav-burger svg { width: 1.5rem; height: 1.5rem; }
nav.glass-nav .nav-burger .i-close { display: none; }
body.no-scroll nav.glass-nav .nav-burger .i-burger { display: none; }
body.no-scroll nav.glass-nav .nav-burger .i-close { display: block; }
@media (min-width: 1024px) { nav.glass-nav .nav-burger { display: none; } }
html[data-theme="dark"] nav.glass-nav .nav-burger { background: #16213a; color: #e2e8f0; }

#mobile-menu { background: #fff; overflow-y: auto; overscroll-behavior: contain; padding: 0 !important; text-align: left !important; }
#mobile-menu .mm-inner { max-width: 560px; margin: 0 auto; padding: 5.25rem 1.25rem 2.5rem; min-height: 100%; display: flex; flex-direction: column; }
#mobile-menu .mm-link { display: flex; align-items: center; justify-content: space-between; min-height: 3.5rem; padding: .5rem .15rem; font-size: 1.15rem; font-weight: 600; letter-spacing: -.01em; color: #0f172a; border-bottom: 1px solid #e8ebf1; text-decoration: none; }
#mobile-menu .mm-link::after { content: ''; width: .5rem; height: .5rem; margin-right: .25rem; border-right: 2px solid #94a3b8; border-top: 2px solid #94a3b8; transform: rotate(45deg); flex-shrink: 0; }
#mobile-menu .mm-link[aria-current="page"] { color: #4f46e5; }
#mobile-menu .mm-link[aria-current="page"]::after { border-color: #4f46e5; }
#mobile-menu .mm-account { margin-top: 1.5rem; display: flex; align-items: center; justify-content: center; gap: .6rem; min-height: 3.25rem; border-radius: 999px; background: #0f172a; color: #fff; font-weight: 600; font-size: 1rem; text-decoration: none; }
#mobile-menu .mm-account svg { width: 1.15rem; height: 1.15rem; }
#mobile-menu .mm-tools { margin-top: 1rem; display: flex; gap: .75rem; }
#mobile-menu .mm-tools .f3d-tool { flex: 1 1 0; height: 3rem; font-size: 14px; font-weight: 600; letter-spacing: 0; text-transform: none; gap: .5rem; border-radius: 999px; }
#mobile-menu .mm-tools .f3d-tool svg { width: 18px; height: 18px; }
html[data-theme="dark"] #mobile-menu { background: #0b1120 !important; }
html[data-theme="dark"] #mobile-menu .mm-link { color: #f1f5f9; border-bottom-color: #1e2a47; }
html[data-theme="dark"] #mobile-menu .mm-link::after { border-color: #64748b; }
html[data-theme="dark"] #mobile-menu .mm-link[aria-current="page"] { color: #a5b4fc; }
html[data-theme="dark"] #mobile-menu .mm-account { background: #4f46e5; }

@media (max-width: 767px) {
  /* Kopfzeile: nur Logo, Warenkorb und Menü; Sprache/Design/Konto liegen im Menü */
  nav.glass-nav { padding-top: .65rem !important; padding-bottom: .65rem !important; }
  nav.glass-nav > div { padding-left: 1.25rem !important; padding-right: 1.25rem !important; }
  .f3d-tools--head { display: none !important; }
  nav.glass-nav a[href="warenkorb"] { min-height: 2.75rem; padding: 0 .9rem !important; border-radius: 999px !important; }
  nav.glass-nav a[href="warenkorb"] #cart-count-nav { font-size: 12px; padding: .1rem .5rem; }
  a[href="./"].tracking-tighter + span { white-space: nowrap; font-size: 12px !important; }

  /* Seitenkopf: etwas näher an der Kopfzeile, Überschriften mit ordentlichem Zeilenabstand */
  header.pt-32 { padding-top: 6.75rem !important; }
  header.pt-36 { padding-top: 7rem !important; }
  h1, h2 { line-height: 1.18 !important; }
  h3 { line-height: 1.3 !important; }
  h1 { line-height: 1.14 !important; }
  .responsive-title, .mid-title, .long-title { line-height: 1.14 !important; }

  /* Fußzeile: aufgeräumt, zentriert, gut tippbar */
  footer { padding: 2.5rem 1.25rem 3rem !important; text-align: center; }
  footer > div > div:first-child { align-items: center !important; gap: 1.25rem !important; margin-bottom: 1.5rem !important; }
  footer > div > div:first-child > div:first-child { align-items: center !important; text-align: center; }
  footer .h-px { margin-bottom: .75rem !important; }
  footer > div > div:last-child { align-items: stretch !important; gap: .75rem !important; text-align: center !important; }
  footer > div > div:last-child > p { order: 2; text-align: center; font-size: .8rem; font-weight: 500; letter-spacing: 0; padding-top: .5rem; }
  footer > div > div:last-child > div { order: 1; display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 .75rem !important; width: 100%; }
  footer > div > div:last-child > div > a, footer > div > div:last-child > div > button { display: flex !important; align-items: center; justify-content: center; min-height: 3rem; padding: .4rem .25rem !important; font-size: .95rem !important; font-weight: 600 !important; letter-spacing: 0 !important; color: #475569; border-bottom: 1px solid #eef0f4; background: none; }
  footer > div > div:last-child > div > button { grid-column: 1 / -1; border-bottom: 0; }
  footer > div > div:last-child > div > a:nth-last-of-type(1):nth-of-type(odd) { grid-column: 1 / -1; }
  html[data-theme="dark"] footer > div > div:last-child > div > a, html[data-theme="dark"] footer > div > div:last-child > div > button { color: #cbd5e1 !important; border-bottom-color: #1e2a47; }
  html[data-theme="dark"] footer > div > div:last-child > p { color: #94a3b8 !important; }

  /* Tippflächen */
  button[onclick^="applyToAll"] { min-height: 2.5rem; padding: .5rem .35rem !important; }
  button[onclick^="openMaterialModal"] { min-height: 2.5rem; padding: .5rem 0 !important; }
  button[onclick^="openExpressInfo"] { width: 2.5rem !important; height: 2.5rem !important; }
  .f3d-tool { height: 2.75rem; min-width: 2.75rem; }

  /* Konfigurator: mehr Luft im Kasten, größere Auswahlfelder */
  main .glass-card { padding: 1.25rem !important; }
  #config-settings .space-y-5 > * + * { margin-top: 1.6rem !important; }
  #material-grid { gap: .6rem !important; }
  #material-grid label { padding: .8rem .9rem !important; }
  label.block.custom-radio-label, .custom-radio + label { min-height: 3.1rem; }
  input[name="infill"] + label { padding-top: .6rem !important; padding-bottom: .6rem !important; }
  .grid.grid-cols-4.gap-1\.5 { gap: .5rem !important; }
  #config-settings label.block, #config-settings .text-slate-400 { letter-spacing: 0 !important; }

  /* Formulare */
  .form-input { padding: .95rem 1rem; font-size: 16px; }
  label.block.text-\[10px\], label.block.text-\[9px\] { font-size: 13px !important; font-weight: 600 !important; color: #475569; letter-spacing: 0 !important; margin-bottom: .45rem !important; }
  html[data-theme="dark"] label.block.text-\[10px\], html[data-theme="dark"] label.block.text-\[9px\] { color: #cbd5e1 !important; }
  button.bg-slate-900, a.bg-slate-900, button.bg-indigo-600 { min-height: 3rem; }
  button.bg-slate-900.w-full, button.bg-indigo-600.w-full { min-height: 3.25rem; font-size: 15px !important; }
}

/* Staffel-Anzeige im Warenkorb (noch nicht erreicht): gedämpft, aber lesbar */
html:not([data-theme="dark"]) .tier-inactive { color: #5b6a80 !important; }
html[data-theme="dark"] :where(.text-indigo-500, .text-indigo-400) { color: #a5b4fc !important; }
h1, h2 { text-wrap: balance; }
@media (max-width: 767px) {
  /* Fließtext und Einwilligungen: ruhiger Zeilenabstand, besser lesbar */
  p.leading-tight, p.leading-snug, li.leading-tight, li.leading-snug, label.leading-snug, label.leading-tight, span.leading-snug.block { line-height: 1.55 !important; }
  label.flex.items-start > span, label.flex.gap-3 > span { font-size: 13px !important; line-height: 1.55 !important; font-weight: 500 !important; letter-spacing: 0 !important; text-transform: none !important; color: #475569; }
  html[data-theme="dark"] label.flex.items-start > span, html[data-theme="dark"] label.flex.gap-3 > span { color: #cbd5e1 !important; }
  input[type="checkbox"], input[type="radio"].w-5 { width: 1.25rem; height: 1.25rem; }
  p.text-xs, p.text-sm { line-height: 1.55; }
}

@media (max-width: 767px) {
  a[href="./"].tracking-tighter { display: inline-block; padding: .7rem .75rem .5rem 0; margin: -.7rem 0 -.5rem; }
  footer a[href="./"].tracking-tighter { padding-left: .75rem; }
  a[href="./"].tracking-tighter + span { font-size: 12px !important; }
  #multi-pills button { min-height: 2.75rem; }
}

#quantity { background: transparent; }
@media (max-width: 767px) {
  /* Rechtstexte: breitere Textspalte, kein riesiger Innenabstand */
  .legal-card { margin-left: -.5rem; margin-right: -.5rem; }
  .card-padding { padding: 1.5rem 1.25rem 1.75rem !important; }
  .legal-content > h2:first-child { margin-top: 0 !important; }
  .legal-content h2 { margin-top: 2.25rem !important; margin-bottom: 1rem !important; }
  .legal-content p, .legal-content li { font-size: .95rem; line-height: 1.7; }
  .highlight-box, .alert-box { padding: 1.1rem 1.15rem !important; margin: 1.5rem 0 !important; }
}

.acc-stat .stat-long { white-space: nowrap; font-size: clamp(1.05rem, 5vw, 1.9rem); }
@media (min-width: 768px) { .acc-stat .stat-long { font-size: 1.875rem; } }

/* Handy-Menü: auf allen Seiten geschlossen, bis der Menü-Knopf gedrückt wird (auch auf der 404-Seite ohne eigenes Inline-CSS) */
#mobile-menu { transform: translateY(-100%); opacity: 0; visibility: hidden; pointer-events: none; transition: transform .3s cubic-bezier(.4, 0, .2, 1), opacity .3s ease, visibility .3s; }
#mobile-menu.open { transform: none; opacity: 1; visibility: visible; pointer-events: auto; }
nav.glass-nav { z-index: 110; }

/* Leere Kapsel neben „2. Spezifikationen“ ausblenden, solange noch keine Datei gewählt ist */
#active-file-title:empty { display: none; }

/* Kopfzeile: Sprach-/Themen-Knöpfe gut lesbar */
nav .f3d-tool { font-size: 12px; }

/* Tablet-Breite: Überschriften nicht zu eng gesetzt */
@media (min-width: 768px) and (max-width: 1023px) {
  h1, .responsive-title, .mid-title, .long-title { line-height: 1.14 !important; }
  h1[class*="leading-none"], h1[class*="leading-["], h2[class*="leading-none"], h2[class*="leading-["] { line-height: 1.14 !important; }
}

/* Touch-Geräte ab Tablet-Breite: großzügigere Tippflächen; am Desktop mit Maus bleibt alles wie gehabt */
@media (pointer: coarse) and (min-width: 768px) {
  nav .f3d-tool { height: 2.75rem; min-width: 2.75rem; }
  button[onclick^="applyToAll"], button[onclick^="openMaterialModal"] { min-height: 2.5rem; padding-top: .5rem !important; padding-bottom: .5rem !important; }
  button[onclick^="openExpressInfo"] { width: 2.5rem !important; height: 2.5rem !important; }
  #multi-pills button { min-height: 2.5rem; }
  nav .hidden.lg\:flex > a { padding: .7rem 0; margin: -.7rem 0; }
  footer .flex.flex-wrap { row-gap: .25rem; }
  footer .flex.flex-wrap > a, footer .flex.flex-wrap > button { display: inline-flex; align-items: center; min-height: 2.75rem; }
  a[href="./"].tracking-tighter { display: inline-block; padding: .7rem .75rem .5rem 0; margin: -.7rem 0 -.5rem; }
}

/* Datei-Auswahl (Design-Formular): Beschriftung nie abschneiden, auf allen Breiten gleich lesbar */
#file-text { white-space: normal !important; max-width: none !important; overflow: visible !important; text-overflow: clip !important; overflow-wrap: anywhere; text-align: center; line-height: 1.3; text-transform: none !important; letter-spacing: 0 !important; font-size: 14px !important; font-weight: 600 !important; }

/* Footer-Links auf Touch-Tablets: auch kurze Wörter („AGB“) bekommen eine ausreichend breite Tippfläche */
@media (pointer: coarse) and (min-width: 768px) {
  footer .flex.flex-wrap { column-gap: 1rem; }
  footer .flex.flex-wrap > a, footer .flex.flex-wrap > button { padding-left: .5rem; padding-right: .5rem; justify-content: center; }
}

/* Auswahlkästchen nie zusammendrücken (sonst werden sie bei langen Texten schmal und schief) */
input[type="checkbox"], input[type="radio"] { flex-shrink: 0; }

/* Handy: Kopfzeile etwas deckender, damit kein Text durchscheint */
@media (max-width: 767px) {
  html:not([data-theme="dark"]) .glass-nav { background: rgba(255, 255, 255, .93) !important; }
}

/* Symbole in Flex-Zeilen nie zusammendrücken (z. B. Upload-Symbol neben langem Text) */
svg[class*="w-"]:not([class*="w-full"]) { flex-shrink: 0; }

/* Mengen-Knöpfe (– / +): feste, gut tippbare Breite, das Zahlenfeld nimmt den Rest */
button[onclick^="changeQuantity"] { flex: 0 0 2.75rem; width: 2.75rem; }

/* Handy: verschachtelte Karte (Design-Formular) ohne doppelten Innenabstand, Textfelder mit ruhigem Zeilenabstand */
@media (max-width: 767px) {
  main .glass-card.overflow-hidden { padding: 0 !important; }
  main .glass-card.overflow-hidden > .p-10 { padding: 2rem 1.5rem !important; }
  main .glass-card.overflow-hidden > .p-8 { padding: 1.75rem 1.25rem 2rem !important; }
  textarea { line-height: 1.45 !important; }
}

/* Offenes Handy-Menü: Kopfzeile deckend, damit beim Scrollen kein Menütext durchscheint */
body.no-scroll nav.glass-nav { background: #fff !important; backdrop-filter: none; -webkit-backdrop-filter: none; }
html[data-theme="dark"] body.no-scroll nav.glass-nav { background: #0b1120 !important; }

/* Kopfzeile: gleiche Proportionen in Deutsch und Englisch (feste Mindestbreiten, damit nichts verrutscht, wenn ein Wort kürzer ist) */
nav.glass-nav a[href="warenkorb"] > span:not([id]) { min-width: 5.4em; text-align: center; }
@media (min-width: 1024px) {
  nav.glass-nav .hidden.lg\:flex > a { text-align: center; white-space: nowrap; }
  nav.glass-nav .hidden.lg\:flex > a[href="druck-service"] { min-width: 7.9rem; }
  nav.glass-nav .hidden.lg\:flex > a[href="design-service"] { min-width: 6.5rem; }
  nav.glass-nav .hidden.lg\:flex > a[href="projekte"] { min-width: 3.65rem; }
  nav.glass-nav .hidden.lg\:flex > a[href="materialien"] { min-width: 4.8rem; }
}
nav.glass-nav .f3d-tools--head .f3d-tool { min-width: 2.4rem; }
@media (pointer: coarse) { nav.glass-nav .f3d-tools--head .f3d-tool { min-width: 2.75rem; } }
