/* ============================================================
   META Shop — Checkout & Angebot (Paket P10)
   B2B-Mehrschritt-Kasse + Angebotsformular.
   Nutzt Tokens aus site.css (dark steel + signal red). Eigene
   Klassen-Präfixe co- (checkout) / qf- (quote) — kollisionsfrei.
   ============================================================ */

.co{padding:clamp(26px,4vw,46px) 0 70px}
.co .crumbs{margin-bottom:.8rem}
.co-title{font-size:var(--fs-h2);margin-bottom:.4rem}
.co-sub{color:var(--muted);font-size:var(--fs-md);max-width:60ch}

/* ---------- two-column shell ---------- */
.co-layout{display:grid;grid-template-columns:1fr 372px;gap:30px;align-items:start;margin-top:clamp(20px,3vw,34px)}
.co-main{min-width:0}

/* ---------- stepper ---------- */
.co-steps{display:flex;gap:6px;margin-bottom:26px;flex-wrap:wrap}
.co-steps .stp{
  display:flex;align-items:center;gap:.6rem;flex:1;min-width:150px;
  padding:.7rem .9rem;border:1px solid var(--line);border-radius:var(--r);
  background:var(--panel);color:var(--muted);
  font-size:var(--fs-base);font-weight:var(--fw-medium);transition:.25s var(--ease);
}
.co-steps .stp .n{
  display:grid;place-items:center;width:26px;height:26px;border-radius:50%;flex:none;
  border:1px solid var(--line-2);background:var(--panel-2);font-weight:var(--fw-bold);font-size:var(--fs-sm);color:var(--muted-2)
}
.co-steps .stp.is-active{border-color:var(--red);color:var(--text);box-shadow:var(--sh-2)}
.co-steps .stp.is-active .n{background:var(--red);border-color:var(--red);color:#fff}
.co-steps .stp.is-done{color:var(--muted-2);border-color:var(--line-2)}
.co-steps .stp.is-done .n{background:var(--good);border-color:var(--good);color:#06210f}
.co-steps .stp.is-clickable{cursor:pointer}
.co-steps .stp.is-clickable:hover{border-color:var(--line-2)}

/* ---------- panel / steps ---------- */
.co-panel{
  border:1px solid var(--line);border-radius:var(--r-lg);
  background:var(--panel);
  padding:clamp(20px,3vw,30px)
}
.co-step{display:none;animation:co-fade .35s var(--ease)}
.co-step.is-active{display:block}
@keyframes co-fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.co-step h2{font-size:var(--fs-2xl);margin-bottom:.3rem}
.co-step .hint{color:var(--muted);font-size:var(--fs-base);margin-bottom:1.2rem}
.co-block{margin-top:1.5rem}
.co-block:first-of-type{margin-top:0}
.co-block > h3{font-size:var(--fs-xs);letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--muted-2);font-family:'Inter';font-weight:var(--fw-semibold);margin:0 0 .9rem}

/* ---------- form fields ---------- */
.co-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}
.field{display:flex;flex-direction:column;gap:.4rem;min-width:0}
.field.col-2{grid-column:1/-1}
.field.col-narrow{max-width:200px}
.field label{font-size:var(--fs-ms);color:var(--muted-2);font-weight:var(--fw-medium)}
.field label .req{color:var(--red)}
.field .opt{color:var(--muted);font-weight:var(--fw-body);font-size:var(--fs-sm)}
.field input,.field select,.field textarea{
  width:100%;padding:.72rem .85rem;border-radius:10px;border:1px solid var(--line-2);
  background:var(--ink);color:var(--text);font:inherit;font-size:var(--fs-base);transition:.18s
}
.field textarea{resize:vertical;min-height:96px}
.field input::placeholder,.field textarea::placeholder{color:var(--muted)}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(226,0,26,.15)
}
.field .note{font-size:var(--fs-sm);color:var(--muted)}
.err{font-size:var(--fs-sm);color:var(--red-text);display:none}/* Visual-Audit 2026-07-06 (#26): entkoppelt von .field — Standalone-Fehler (Unternehmer-Gate/AGB/Datenschutz) waren dauerhaft rot sichtbar */
.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:var(--red);box-shadow:0 0 0 3px rgba(226,0,26,.12)}
.field.invalid .err{display:block}

/* inline checkbox row */
.co-check{display:flex;align-items:flex-start;gap:.65rem;font-size:var(--fs-base);color:var(--muted-2);cursor:pointer;padding:.2rem 0}
.co-check input{accent-color:var(--red);width:18px;height:18px;flex:none;margin-top:1px}
.co-check a{color:var(--steel-2);text-decoration:underline;text-underline-offset:2px}
.co-check a:hover{color:var(--red-text)}

/* reveal block (abweichende Lieferadresse) */
.co-reveal{display:none;margin-top:1.2rem}
.co-reveal.is-open{display:block}

/* ---------- delivery / radio cards ---------- */
.co-opts{display:grid;gap:12px}
.opt-card{
  display:flex;gap:.9rem;align-items:flex-start;padding:16px 18px;cursor:pointer;
  border:1px solid var(--line-2);border-radius:var(--r);background:var(--ink-2);transition:.2s var(--ease);position:relative
}
.opt-card:hover{border-color:var(--steel)}
.opt-card input{accent-color:var(--red);width:19px;height:19px;flex:none;margin-top:2px}
.opt-card .oc-body{flex:1;min-width:0}
.opt-card .oc-title{font-weight:var(--fw-semibold);color:var(--text);display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.opt-card .oc-desc{color:var(--muted);font-size:var(--fs-ms);margin-top:.25rem}
.opt-card .oc-price{margin-left:auto;font-weight:var(--fw-semibold);color:var(--steel-2);font-size:var(--fs-base);white-space:nowrap}
.opt-card .oc-logo{display:grid;place-items:center;width:46px;height:30px;border-radius:7px;background:#fff;color:#0c0e12;font-weight:var(--fw-black);font-size:var(--fs-2xs);letter-spacing:-.02em;flex:none}
.opt-card .oc-logo.pp{color:#003087}
.opt-card .oc-logo.kl{background:#ffb3c7;color:#0c0e12}
.opt-card.is-sel{border-color:var(--red);background:rgba(226,0,26,.06);box-shadow:var(--sh-2)}
/* Design-Refresh 2026-07-16 P6: Textglyph „✓" ersetzt durch CSS-Häkchen (SVG-mask, kein Glyph); Rot bleibt = aktiver Auswahl-Zustand (Signal) */
.opt-card.is-sel::after{content:"";position:absolute;top:13px;right:14px;width:15px;height:15px;background-color:var(--red);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat}
.opt-card.is-sel .oc-price{color:var(--red-text)}

/* ---------- step actions ---------- */
.co-actions{display:flex;justify-content:space-between;gap:12px;margin-top:1.8rem;flex-wrap:wrap}
.co-actions .spacer{flex:1}
.btn-back{background:transparent;border:1px solid var(--line-2);color:var(--muted-2)}
.btn-back:hover{color:var(--text);border-color:var(--steel);background:rgba(0,0,0,.04)}

/* ---------- review (Übersicht) ---------- */
.rev-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.rev-card{border:1px solid var(--line);border-radius:var(--r);background:var(--ink-2);padding:16px 18px}
.rev-card h4{font-size:var(--fs-xs);letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--muted);font-family:'Inter';font-weight:var(--fw-semibold);margin:0 0 .6rem;display:flex;justify-content:space-between;align-items:center}
.rev-card h4 a{color:var(--steel-2);text-transform:none;letter-spacing:0;font-size:var(--fs-sm);text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.rev-card h4 a:hover{color:var(--red-text)}
.rev-card p{font-size:var(--fs-base);color:var(--muted-2);line-height:1.5;overflow-wrap:anywhere}
.rev-card p b{color:var(--text);font-weight:var(--fw-semibold)}

/* ---------- order summary (sidebar) ---------- */
.co-summary{
  position:sticky;top:88px;border:1px solid var(--line);border-radius:var(--r-lg);
  background:var(--panel);padding:22px 22px 24px
}
.co-summary h3{font-size:var(--fs-lg);margin-bottom:1rem;display:flex;justify-content:space-between;align-items:baseline}
.co-summary h3 a{font-size:var(--fs-sm);color:var(--steel-2);font-weight:var(--fw-medium);font-family:'Inter';text-decoration:underline;text-underline-offset:2px}
.co-summary h3 a:hover{color:var(--red-text)}
.sum-items{display:flex;flex-direction:column;gap:12px;max-height:340px;overflow:auto;margin:-4px -6px 4px;padding:4px 6px}
.sum-item{display:grid;grid-template-columns:40px 1fr auto;gap:11px;align-items:center}
.sum-thumb{width:40px;height:40px;border-radius:9px;border:1px solid var(--line);background:var(--panel-2);display:grid;place-items:center;color:var(--steel-2);flex:none}/* Design-Refresh 2026-07-16 P6: Medienfläche flach (Radial raus) */
.sum-thumb svg{width:24px;height:24px}
.sum-thumb.has-photo{background:#fff;overflow:hidden}
.sum-thumb.has-photo img{width:100%;height:100%;object-fit:contain;padding:3px}
.sum-meta{min-width:0}
.sum-name{font-size:var(--fs-ms);color:var(--text);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
/* VERIFY_cart-quote-en F6: .sum-facts hatte keine Regel → erbte 1rem und stand lauter als
   .sum-name (.84rem)/.sum-qty (.76rem). Auf die Umgebung angleichen; lange facts_line umbricht. */
.sum-facts{font-size:var(--fs-xs);color:var(--muted-2);line-height:1.35;margin-top:2px;overflow-wrap:anywhere}
.sum-qty{font-size:var(--fs-xs);color:var(--muted);margin-top:2px}
.sum-line{font-size:var(--fs-ms);font-weight:var(--fw-semibold);color:var(--text);white-space:nowrap;text-align:right}
.sum-totals{border-top:1px solid var(--line);margin-top:16px;padding-top:14px;display:flex;flex-direction:column;gap:.5rem}
.sum-row{display:flex;justify-content:space-between;font-size:var(--fs-base);color:var(--muted-2)}
.sum-row.muted{color:var(--muted);font-size:var(--fs-ms)}
.sum-row.grand{border-top:1px solid var(--line);margin-top:.5rem;padding-top:.7rem;font-size:var(--fs-xl);font-weight:var(--fw-bold);color:var(--text);font-family:'Sora'}
.sum-row.grand .vat-tag{font-size:var(--fs-xs);color:var(--muted);font-weight:var(--fw-body);font-family:'Inter'}
.sum-trust{display:flex;flex-direction:column;gap:.5rem;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.sum-trust span{display:flex;gap:.5rem;align-items:center;color:var(--muted);font-size:var(--fs-sm)}
.sum-trust svg{color:var(--good);flex:none;width:15px;height:15px}

/* ---------- quote note / hybrid banner ---------- */
.co-quote-note{
  display:flex;gap:.9rem;align-items:flex-start;padding:14px 16px;margin-bottom:20px;
  border:1px solid rgba(226,0,26,.3);background:rgba(226,0,26,.07);border-radius:var(--r)
}
.co-quote-note svg{color:var(--steel-2);flex:none;margin-top:2px}/* Design-Refresh 2026-07-16 P6: Deko-Icon → steel-2 */
.co-quote-note .qn-body{flex:1;font-size:var(--fs-base);color:var(--muted-2)}
.co-quote-note .qn-body b{color:var(--text)}
.co-quote-note a.btn{margin-top:.7rem}

/* ---------- empty / success states ---------- */
.co-state{text-align:center;padding:56px 20px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel);max-width:620px;margin:30px auto 0}
.co-state .ic{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;margin:0 auto 18px;background:rgba(35,197,82,.12);border:1px solid rgba(35,197,82,.4);color:var(--good)}
.co-state .ic.muted{background:rgba(0,0,0,.03);border-color:var(--line-2);color:var(--steel-2)}
.co-state h2{font-size:var(--fs-4xl);margin-bottom:.6rem}
.co-state p{color:var(--muted-2);max-width:46ch;margin:0 auto 1.4rem}
.co-state .ordno{display:inline-block;font-family:'Sora';font-weight:var(--fw-bold);color:var(--text);background:var(--ink-2);border:1px solid var(--line-2);border-radius:999px;padding:.4rem 1rem;margin-bottom:1.4rem;letter-spacing:.02em}
.co-state .actions{display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap}
/* Visual-Audit 2026-07-24 (id 58): leerer B2B-Checkout soll nicht als dünne Karte
   in grauer Fläche wirken — Karte etwas breiter, unten Rand statt nur oben, plus
   eine Vertrauens-Leiste (Rechnungskauf/SSL/Original META) unter der Aktion. */
.co-state-empty{max-width:660px;margin-bottom:30px}
.co-state-trust{
  display:inline-flex;flex-direction:column;gap:.55rem;align-items:flex-start;
  margin:1.8rem auto 0;padding-top:1.4rem;border-top:1px solid var(--line);
  text-align:left
}
.co-state-trust span{display:flex;gap:.5rem;align-items:center;color:var(--muted);font-size:var(--fs-sm)}
.co-state-trust svg{color:var(--good);flex:none;width:15px;height:15px}

/* ============================================================
   QUOTE — Angebot anfordern
   ============================================================ */
.qf-layout{display:grid;grid-template-columns:1fr 340px;gap:30px;align-items:start;margin-top:clamp(20px,3vw,34px)}
.qf-aside{position:sticky;top:88px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel);padding:22px}
.qf-aside h3{font-size:var(--fs-md);margin-bottom:.9rem}
.qf-aside ul{list-style:none;padding:0;margin:0;display:grid;gap:.7rem}
.qf-aside li{display:flex;gap:.6rem;align-items:flex-start;color:var(--muted-2);font-size:var(--fs-base)}
.qf-aside li svg{color:var(--steel-2);flex:none;margin-top:3px;width:17px;height:17px}/* Design-Refresh 2026-07-16 P6: Deko-Icon → steel-2 */
.qf-contact{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);color:var(--muted);font-size:var(--fs-ms);line-height:1.7}
.qf-contact b{color:var(--text);display:block;font-family:'Sora'}
/* Visual-Audit 2026-07-24 (id 71): Ablauf-Block in der Sidebar — füllt die untere Spalte
   neben dem längeren Formular, statt eine große weiße Leerfläche zu lassen. */
.qf-steps{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.qf-steps b{color:var(--text);display:block;font-family:'Sora';font-size:var(--fs-ms);margin-bottom:.8rem}
.qf-steps ol{list-style:none;padding:0;margin:0;display:grid;gap:.7rem}
.qf-steps li{display:flex;gap:.6rem;align-items:flex-start;color:var(--muted-2);font-size:var(--fs-ms);line-height:1.5}
.qf-steps li span{flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--ink-2);border:1px solid var(--line-2);color:var(--text);font-family:'Sora';font-weight:var(--fw-bold);font-size:var(--fs-xs)}

/* positions */
.qf-pos{display:flex;flex-direction:column;gap:10px;margin-top:.4rem}
.pos-row{display:grid;grid-template-columns:40px 1fr 92px 34px;gap:11px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--ink-2)}
.pos-row .sum-thumb{width:40px;height:40px}
.pos-meta{min-width:0}
.pos-name{font-size:var(--fs-ms);color:var(--text);line-height:1.3}
/* VERIFY_cart-quote-en F6: .pos-facts ohne Regel erbte 1rem; auf die Umgebung angleichen. */
.pos-facts{font-size:var(--fs-xs);color:var(--muted-2);line-height:1.35;margin-top:2px;overflow-wrap:anywhere}
.pos-sub{font-size:var(--fs-xs);color:var(--muted);margin-top:2px}
.pos-row input[type=number]{width:100%;padding:.5rem .55rem;border-radius:8px;border:1px solid var(--line-2);background:var(--ink);color:var(--text);font:inherit;font-size:var(--fs-base);text-align:center}
.pos-del{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;border:1px solid var(--line-2);background:transparent;color:var(--muted);cursor:pointer;transition:.18s}
.pos-del:hover{color:var(--red-text);border-color:var(--red);background:rgba(226,0,26,.1)}
/* Visual-Audit 2026-07-24 (id 73): leerer Positionen-Kasten las sich wie ein leeres Datei-Drop-Feld
   / defekter Zustand. Jetzt bewusster Info-Hinweis in der .co-info-note-Sprache: durchgezogener
   Rahmen, leicht getönt, linksbündig, mit Info-Glyph (::before). */
.qf-empty-pos{
  display:flex;gap:.6rem;align-items:flex-start;
  color:var(--muted-2);font-size:var(--fs-ms);line-height:1.5;
  padding:13px 15px;border:1px solid var(--line-2);border-radius:var(--r);
  background:var(--panel-2);text-align:left
}
.qf-empty-pos::before{
  content:"";flex:none;width:17px;height:17px;margin-top:1px;
  color:var(--steel-2);background:currentColor;
  -webkit-mask:no-repeat center/contain;mask:no-repeat center/contain;
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5M12 7.5h.01'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5M12 7.5h.01'/%3E%3C/svg%3E")
}

/* ============================================================
   P10 — Kaufmännische Regeln (shop_config.json): Info-Box,
   Bezahlarten, Summenzeilen (Zuschlag/Versand/Skonto), P20-Handoff.
   ============================================================ */

/* Liefer-Infobox (Insel-Ausschluss · Speditionsmodus · Anforderungen) */
.co-info-note{
  display:flex;gap:.7rem;align-items:flex-start;margin:0 0 1.1rem;
  padding:13px 15px;border:1px solid var(--line-2);border-radius:var(--r);
  background:var(--panel-2)
}
.co-info-note svg{color:var(--steel-2);flex:none;margin-top:1px}
.co-info-note .ci-body{display:flex;flex-direction:column;gap:.35rem;font-size:var(--fs-ms);color:var(--muted-2);line-height:1.5}
.co-info-note .ci-body span{display:block}

/* Bezahlart-Karten (dynamisch aus Config) */
.pay-card .oc-logo{
  background:var(--ink-2);border:1px solid var(--line-2);width:44px;height:44px;
  border-radius:10px;color:var(--steel-2)
}
.pay-card .oc-logo svg{width:24px;height:24px}
.pay-card.is-sel .oc-logo{border-color:var(--red)}
/* Feedback/Audit 2026-07-05: Marken-Icons waren für die alte DUNKLE Logo-Kachel gewählt (pastellig)
   und wuschen auf der jetzt HELLEN Kachel (var(--ink-2)=#eef1f5) aus. Dunklere, markennahe Töne mit
   ausreichendem Kontrast (≥3:1 für Grafik). */
.pay-card .pm-paypal{color:#005ea6}
.pay-card .pm-klarna{color:#d1386a}
.pay-card .pm-billie{color:#12946a}
.pay-card .pm-vorkasse{color:var(--steel-2)}
.opt-card .oc-badge{
  display:inline-block;font-size:var(--fs-2xs);letter-spacing:var(--ls-caps);font-weight:var(--fw-bold);text-transform:uppercase;
  padding:.12rem .42rem;border-radius:999px;margin-left:.4rem;vertical-align:middle;
  background:rgba(35,197,82,.16);color:var(--good-text);border:1px solid rgba(35,197,82,.35)
}
.opt-card .oc-badge.b2b{background:rgba(74,144,217,.16);color:#1d5c94;border-color:rgba(74,144,217,.35)}

/* Summenzeilen: Mindermengenzuschlag (Aufschlag) + Skonto (Gutschrift) */
.sum-row.add{color:var(--muted-2)}
.sum-row.add span:last-child{color:#b06a00;font-weight:var(--fw-semibold)}
.sum-row.save{color:var(--muted-2)}
.sum-row.save span:last-child{color:var(--good-text);font-weight:var(--fw-semibold)}
#sum-ship.is-free{color:var(--good-text);font-weight:var(--fw-semibold)}
.co-ship-hint{
  font-size:var(--fs-xs);color:var(--muted);line-height:1.45;margin:-.15rem 0 .15rem;
  padding-left:.1rem
}

/* P20-Übergabe / Bezahl-Handoff im Erfolgs-State */
.co-pay-handoff{
  text-align:left;margin:1.4rem auto 0;max-width:480px;
  border:1px solid var(--line-2);border-radius:var(--r);background:var(--ink-2);
  padding:18px 20px
}
.co-pay-handoff h3{font-size:var(--fs-md);margin:0 0 .5rem}
.co-pay-handoff p{color:var(--muted-2);font-size:var(--fs-base);line-height:1.55;margin:0;max-width:none}
.co-pay-handoff [data-payments]{margin-top:1rem}

/* ---------- responsive ---------- */
@media (max-width:1040px){
  .co-layout{grid-template-columns:1fr}
  .co-summary,.qf-aside{position:static}
  .qf-layout{grid-template-columns:1fr}
  /* Visual-Audit 2026-07-24 (id 72): Angebots-Sidebar NICHT mehr über das Formular heben —
     das Formular (Quellreihenfolge zuerst: „Angefragte Positionen" + erste Felder) soll mobil
     zuerst stehen, die Benefits-/„Lieber persönlich?"-Karte fällt darunter. Bewusst NUR .qf-aside;
     die .co-summary-Order-Regel unten (echte Kasse) bleibt unberührt. */
  /* Marketing-Audit 2026-07-05 (P2): Bestellübersicht mobil NACH OBEN (ehrliche Endsumme upfront,
     nicht ganz unten). Der Betrag bleibt beim Bezahlartwechsel synchron (checkout.js). */
  .co-summary{order:-1;margin-bottom:1.2rem}
}
@media (max-width:620px){
  .co-grid,.rev-grid{grid-template-columns:1fr}
  .co-steps .stp{min-width:0;flex:1 1 46%}
  .co-steps .stp .label{display:none}
  .co-steps .stp{justify-content:center}
  .pos-row{grid-template-columns:1fr 80px 34px}
  .pos-row .sum-thumb{display:none}
}
/* Mobile-Audit 2026-07-11 (P2-1): iOS Safari zoomt bei Fokus auf Felder <16px die Seite.
   Alle fokussierbaren Felder im Checkout/Angebot auf ≥16px (nur mobil — Desktop-Optik bleibt .94rem).
   Felder sind 100% breit, kein Layout-Risiko. */
@media (max-width:760px){
  .field input,.field select,.field textarea,
  .pos-row input[type=number]{font-size:16px}
  /* P3-8: Fehlermeldungen 12.48px an der Lesbarkeitsgrenze → ≥13.5px mobil. */
  .err{font-size:var(--fs-ms)}
}
/* ---------- P2-5 (Mobile-Audit 2026-07-11): Review-„Ändern"-Links auf 44px Hit-Area ----------
   Nackter <a data-goto> im <h4> war 46×14px (einzige Rücksprung-Affordanz je Block).
   Mobil zu einem echten 44px-Touch-Ziel; negatives margin absorbiert die Extrahöhe optisch. */
@media (max-width:760px){
  .rev-card h4 a[data-goto]{
    display:inline-flex;align-items:center;min-height:44px;
    padding:0 .7rem;margin:-15px -.7rem;
  }
}
