.zmf-tech-faq, .zmf-tech-faq *, .zmf-tech-faq *::before, .zmf-tech-faq *::after { box-sizing: border-box; }

.zmf-tech-faq {
    --orange:#ff671f;
    --orange-light:#ff8e53;
    --blue-light:#81c4ff;
    --blue-dark:#2455ea;
    --navy:#0d2c6e;
    --ink:#1b2440;
    --gray:#6b7785;
    --paper:#f6f9fd;
    --line:#e4ebf7;
    font-family:'Inter',ui-sans-serif,system-ui,-apple-system,sans-serif;
    color:var(--ink);
    background:#ffffff;
    max-width:1180px; margin:0 auto; padding:8px 20px 40px;
}

.zmf-tech-faq .zmf-faq-head { display:flex; align-items:center; gap:12px; margin:0 0 22px; }
.zmf-tech-faq .zmf-faq-bar { width:4px; height:24px; border-radius:3px; background:linear-gradient(180deg, var(--orange), var(--orange-light)); flex-shrink:0; }
.zmf-tech-faq .zmf-faq-title { font-family:'Sora',sans-serif; font-weight:800; font-size:20px; color:var(--ink); margin:0; }

.zmf-tech-faq .zmf-faq-list { display:flex; flex-direction:column; gap:10px; }

/* ---- Checkbox-driven accordion item (no JS required) ---- */
.zmf-tech-faq .zmf-faq-item { border:1px solid var(--line); border-radius:14px; background:#fff; overflow:hidden; transition:border-color .15s ease; }
.zmf-tech-faq .zmf-faq-check { position:absolute; opacity:0; pointer-events:none; }
.zmf-tech-faq .zmf-faq-label {
    display:flex; align-items:center; justify-content:space-between; gap:14px;
    padding:18px 20px; cursor:pointer; user-select:none;
}
.zmf-tech-faq .zmf-faq-q {
    font-family:'Sora',sans-serif; font-weight:700; font-size:15px; line-height:1.4; color:var(--ink); margin:0;
}
.zmf-tech-faq .zmf-faq-q .zmf-faq-make { color:var(--blue-dark); }
.zmf-tech-faq .zmf-faq-icon {
    flex-shrink:0; width:28px; height:28px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    background:var(--paper); color:var(--blue-dark);
    transition:background .2s ease, color .2s ease, transform .25s ease;
}
.zmf-tech-faq .zmf-faq-icon svg { width:14px; height:14px; transition:transform .25s ease; }

.zmf-tech-faq .zmf-faq-panel {
    max-height:0; overflow:hidden;
    transition:max-height .3s ease;
}
.zmf-tech-faq .zmf-faq-body { padding:0 20px 20px; font-size:14px; line-height:1.7; color:var(--gray); }
.zmf-tech-faq .zmf-faq-body p { margin:0 0 14px; }
.zmf-tech-faq .zmf-faq-body p:last-child { margin-bottom:0; }
.zmf-tech-faq .zmf-faq-body strong { color:var(--ink); font-weight:700; }

/* Checked state */
.zmf-tech-faq .zmf-faq-check:checked ~ .zmf-faq-label { background:var(--paper); }
.zmf-tech-faq .zmf-faq-check:checked ~ .zmf-faq-label .zmf-faq-icon { background:var(--orange); color:#fff; transform:rotate(180deg); }
.zmf-tech-faq .zmf-faq-check:checked ~ .zmf-faq-panel { max-height:1400px; }
.zmf-tech-faq .zmf-faq-item:has(.zmf-faq-check:checked) { border-color:var(--blue-light); }

/* Fallback for browsers without :has() support — keep panels independently toggleable via sibling selector above; .zmf-faq-item border tint is a non-critical enhancement only */

/* Keyboard focus */
.zmf-tech-faq .zmf-faq-check:focus-visible ~ .zmf-faq-label { outline:2px solid var(--blue-dark); outline-offset:-2px; }

/* ---- Spec datatable (Card 2) — restyled to match the spec-grid language used on the main fiche page ---- */
.zmf-tech-faq .zmf-spec-table-wrap { margin:6px 0 18px; border:1px solid var(--line); border-radius:14px; overflow:hidden; }
.zmf-tech-faq .zmf-spec-table-row {
    display:grid; grid-template-columns:34% 66%;
    border-bottom:1px solid var(--line);
}
.zmf-tech-faq .zmf-spec-table-row:last-child { border-bottom:none; }
.zmf-tech-faq .zmf-spec-table-row.is-head {
    background:var(--navy);
}
.zmf-tech-faq .zmf-spec-table-row.is-head .zmf-spec-table-cell {
    font-family:'Space Mono',monospace; font-weight:700; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:#fff;
}
.zmf-tech-faq .zmf-spec-table-cell { padding:14px 18px; font-size:13.5px; line-height:1.55; }
.zmf-tech-faq .zmf-spec-table-row:not(.is-head) { background:#fff; }
.zmf-tech-faq .zmf-spec-table-row:not(.is-head):nth-child(even) { background:var(--paper); }
.zmf-tech-faq .zmf-spec-table-row:not(.is-head) .zmf-spec-table-cell:first-child { font-family:'Sora',sans-serif; font-weight:700; font-size:13.5px; color:var(--ink); border-right:1px solid var(--line); }
.zmf-tech-faq .zmf-spec-table-row:not(.is-head) .zmf-spec-table-cell:last-child { color:var(--gray); }
.zmf-tech-faq .zmf-spec-table-cell strong { color:var(--blue-dark); }

@media (prefers-reduced-motion: reduce) {
    .zmf-tech-faq .zmf-faq-panel,
    .zmf-tech-faq .zmf-faq-icon,
    .zmf-tech-faq .zmf-faq-icon svg,
    .zmf-tech-faq .zmf-faq-item { transition:none !important; }
}

@media (max-width:767px) {
    .zmf-tech-faq { padding:8px 16px 32px; }
    .zmf-tech-faq .zmf-faq-label { padding:15px 16px; }
    .zmf-tech-faq .zmf-faq-q { font-size:14px; }
    .zmf-tech-faq .zmf-faq-body { padding:0 16px 18px; font-size:13.5px; }
    .zmf-tech-faq .zmf-spec-table-row { grid-template-columns:1fr; }
    .zmf-tech-faq .zmf-spec-table-row:not(.is-head) .zmf-spec-table-cell:first-child { border-right:none; border-bottom:1px solid var(--line); }
    .zmf-tech-faq .zmf-spec-table-row.is-head .zmf-spec-table-cell:last-child { display:none; }
}