/* FSA Inox — Coupe au mètre : câble (bloc léger, reprend les couleurs du thème) */
.fsacc-hidden, .fsacc [hidden] { display: none !important; }
.fsacc { --fsacc-ink: #2c3e50; --fsacc-line: #dde2e6; --fsacc-soft: #f6f8f9; --fsacc-muted: #6b7885;
  margin: 12px 0; color: var(--fsacc-ink); font-size: 14px; }
.fsacc-title { margin: 0 0 12px; font-size: 16px; font-weight: 700; }
.fsacc-title span { font-weight: 400; color: var(--fsacc-muted); font-size: 13px; margin-left: 4px; }
.fsacc-step { margin: 0 0 12px; min-width: 0; }
.fsacc-label { display: block; margin: 0 0 6px; font-size: 13px; font-weight: 600; }

.fsacc-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.fsacc-pill { display: inline-flex; flex-direction: column; align-items: flex-start; min-height: 44px; padding: 6px 14px; border: 1px solid var(--fsacc-line); border-radius: 4px; background: #fff; color: var(--fsacc-ink); font: inherit; line-height: 1.25; cursor: pointer; }
.fsacc-pill strong { font-size: 15px; }
.fsacc-pill span { font-size: 12px; color: var(--fsacc-muted); }
.fsacc-pill:hover:not(:disabled) { border-color: var(--fsacc-ink); }
.fsacc-pill[aria-pressed="true"] { border: 2px solid var(--fsacc-ink); padding: 5px 13px; background: var(--fsacc-soft); }
.fsacc-pill:disabled { opacity: .45; cursor: not-allowed; }

/* Tube, bois : configurateur pleine largeur sous le bloc d'achat, sur le modèle du kit câble serti */
.fsacc--wide { margin: 28px 0; font-size: 14px; }
.fsacc-wide-title { margin: 0 0 6px; font-size: 22px; font-weight: 700; color: var(--fsacc-ink); }
.fsacc-wide-lead { margin: 0 0 18px; color: var(--fsacc-muted); max-width: 80ch; }
.fsacc-wide-grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 24px; align-items: start; }
.fsacc-wide-main { display: grid; gap: 16px; min-width: 0; }
.fsacc-panel { margin: 0; padding: 16px; min-width: 0; border: 1px solid var(--fsacc-line); border-radius: 4px; background: #fff; }
.fsacc-panel-title { float: left; display: flex; align-items: center; width: auto; margin: 0 0 12px; padding: 0; border: 0; font-size: 16px; font-weight: 600; color: var(--fsacc-ink); }
.fsacc--wide .fsacc-num { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; margin-right: 10px; border: 1.5px solid var(--fsacc-ink); border-radius: 50%; font-size: 12px; }
.fsacc-panel-title + *, .fsacc-panel-title + .fsacc-inputs { clear: both; }
.fsacc-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; }
.fsacc-card { display: flex; flex-direction: column; gap: 4px; padding: 8px; border: 1px solid var(--fsacc-line); border-radius: 4px; background: #fff; color: var(--fsacc-ink); font: inherit; font-size: 13px; line-height: 1.25; text-align: center; cursor: pointer; }
.fsacc-card:hover:not(:disabled) { border-color: var(--fsacc-ink); }
.fsacc-card[aria-pressed="true"] { border: 2px solid var(--fsacc-ink); padding: 7px; }
.fsacc-card:disabled { opacity: .45; cursor: not-allowed; }
.fsacc-card-img { display: block; aspect-ratio: 1 / 1; max-width: 100%; margin: 0 0 4px; background: #fff; overflow: hidden; }
.fsacc-card-img img { width: 100%; height: 100%; object-fit: contain; }
.fsacc-card-name { font-weight: 700; }
.fsacc-card-sub { font-size: 12px; color: var(--fsacc-muted); }
.fsacc-summary { position: sticky; top: var(--fsacc-top, 16px); z-index: 2; padding: 16px; border: 1px solid var(--fsacc-line); border-radius: 4px; background: #fff; }
.fsacc-summary-title { margin: 0 0 10px; font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--fsacc-muted); }
.fsacc-summary .fsacc-total { margin: 10px 0 0; }
.fsacc-summary .fsacc-delay { margin-top: 10px; }
.fsacc-summary.is-js-follow { position: relative; top: auto; will-change: transform; }
.fsacc-locked { display: flex; align-items: center; margin: 0; padding: 14px 16px; border: 1px dashed var(--fsacc-line); border-radius: 4px; color: var(--fsacc-muted); font-size: 16px; font-weight: 600; }
.fsacc-locked small { margin-left: 6px; font-weight: 400; font-size: 13px; }
.fsacc-locked .fsacc-num { border-color: var(--fsacc-line) !important; color: var(--fsacc-muted); }
@media (max-width: 991px) {
  .fsacc-wide-grid { grid-template-columns: 1fr; }
  .fsacc-summary { position: static; }
  .fsacc-summary.is-js-follow { transform: none !important; }
}
/* Téléphone : barre fixe en bas d'écran, prix + Ajouter au panier */
.fsacc-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1000; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--fsacc-line); box-shadow: 0 -4px 14px rgba(44, 62, 80, .12); }
.fsacc-bar[hidden] { display: none; }
.fsacc-bar-price { font-size: 18px; font-weight: 700; color: var(--fsacc-ink); white-space: nowrap; }
.fsacc-bar-add { min-height: 44px; }
@media (min-width: 992px) { .fsacc-bar { display: none !important; } }

.fsacc-inputs { display: flex; flex-wrap: wrap; gap: 0 20px; }
.fsacc-stepper { display: flex; width: 200px; max-width: 100%; }
.fsacc-stepper-sm { width: 150px; }
.fsacc-btn { flex: 0 0 40px; min-height: 42px; border: 1px solid var(--fsacc-line); background: #fff; color: var(--fsacc-ink); font-size: 18px; line-height: 1; cursor: pointer; }
.fsacc-btn:first-child { border-radius: 4px 0 0 4px; }
.fsacc-btn:last-child { border-radius: 0 4px 4px 0; }
.fsacc-btn:hover { background: var(--fsacc-soft); }
.fsacc-field { position: relative; flex: 1 1 auto; display: flex; min-width: 0; }
.fsacc-field input { width: 100%; min-width: 0; min-height: 42px; padding: 4px 24px 4px 6px; border: 1px solid var(--fsacc-line); border-left: 0; border-right: 0; font-size: 17px; font-weight: 700; text-align: center; color: var(--fsacc-ink); background: #fff; -moz-appearance: textfield; }
.fsacc-stepper-sm .fsacc-field input { padding-right: 6px; }
.fsacc-field input::-webkit-outer-spin-button, .fsacc-field input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.fsacc-unit { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); color: var(--fsacc-muted); pointer-events: none; }

.fsacc-result { padding: 12px 14px; border: 1px solid var(--fsacc-line); border-radius: 4px; background: #fff; }
.fsacc-result-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; }
.fsacc-result-cut { min-width: 0; }
.fsacc-cut { margin: 0; font-weight: 600; }
.fsacc-range { margin: 2px 0 0; font-size: 13px; color: var(--fsacc-muted); }
.fsacc-range:empty { display: none; }
.fsacc-total { margin: 0; font-size: 22px; font-weight: 700; white-space: nowrap; }
.fsacc-add { width: 100%; min-height: 44px; margin: 10px 0 0; }
.fsacc-tier { margin: 8px 0 0; font-size: 13px; color: #1e7e34; }
.fsacc-errors, .fsacc-warnings { list-style: none; margin: 8px 0 0; padding: 6px 10px; font-size: 13px; border-radius: 3px; }
.fsacc-errors { background: #fdf2f2; border-left: 3px solid #c0392b; }
.fsacc-warnings { background: var(--fsacc-soft); border-left: 3px solid var(--fsacc-muted); }
.fsacc-added { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 12px; margin: 8px 0 0; font-size: 13px; color: #1e7e34; font-weight: 600; }
.fsacc-again { padding: 0; border: 0; background: none; color: var(--fsacc-ink); font: inherit; font-weight: 400; text-decoration: underline; cursor: pointer; }
.fsacc-delay { margin: 8px 0 0; font-size: 12px; color: var(--fsacc-muted); }
