/* Configurateur de marquage (fiche produit) — tout est préfixé fsc-, aucun style global.
   Palette alignée sur le thème PRSADD040 : rouge #f02640, texte #414141/#242424,
   bordures #ebebeb, fonds #f6f6f6, succès #4cbb6c, rayon 4 px. Police héritée. */
.fsc {
  box-sizing: border-box;
  margin: 1rem 0;
  padding: 1rem;
  border: 1px solid #ebebeb;
  border-radius: 4px;
  background: #fff;
  color: #414141;
  font-family: inherit;
  font-size: 14px;
  line-height: 1.5;
  text-align: left;
}
.fsc *, .fsc *::before, .fsc *::after { box-sizing: border-box; }
.fsc [hidden] { display: none !important; }
.fsc-title { margin: 0 0 .75rem; font-size: 1.0625rem; font-weight: 700; color: #242424; text-transform: none; }
.fsc-state { margin: 0; color: #414141; }
.fsc-step { margin: 0 0 1rem; }
.fsc-label { display: block; margin: 0 0 .35rem; font-weight: 600; color: #242424; }
/* Le thème aligne les <label> de .product-actions à droite (float/largeur fixe) : on neutralise ici. */
.fsc .fsc-label { float: none; width: auto; text-align: left; padding: 0; }
.fsc-hint { margin: .35rem 0 0; font-size: 13px; color: #6b6b6b; }

.fsc-input {
  display: block; width: 100%; min-height: 42px; padding: .5rem .75rem;
  border: 1px solid #ebebeb; border-radius: 4px; background: #fff;
  color: #414141; font: inherit; box-shadow: none;
}
.fsc-input:focus, .fsc-file:focus + .fsc-drop-main, .fsc-btn:focus, .fsc-chip:focus, .fsc-link:focus {
  outline: 2px solid #f02640; outline-offset: 1px; border-color: #f02640;
}
.fsc-qty-row { display: flex; flex-direction: column; gap: .5rem; }
.fsc-qty { max-width: 9rem; }
.fsc-chips { display: flex; flex-wrap: wrap; gap: .4rem; }
.fsc-chip {
  min-height: 36px; padding: .25rem .8rem; border: 1px solid #ebebeb; border-radius: 4px;
  background: #f6f6f6; color: #414141; font: inherit; cursor: pointer;
}
.fsc-chip:hover { border-color: #f02640; }
.fsc-chip.is-active { border-color: #f02640; background: #fff; color: #f02640; font-weight: 600; }

.fsc-drop {
  display: block; margin: 0 0 .5rem; padding: .6rem 1rem; text-align: center; cursor: pointer;
  border: 2px dashed #ebebeb; border-radius: 4px; background: #f6f6f6; position: relative;
}
.fsc-drop:hover, .fsc-drop.is-over { border-color: #f02640; background: #fff; }
.fsc-drop.is-busy { opacity: .6; cursor: progress; }
.fsc-file { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; }
.fsc-drop-main { display: block; font-weight: 600; color: #242424; }
.fsc-drop-main::before { content: "+ "; color: #f02640; }
.fsc-optional { font-weight: 400; color: #6b6b6b; }
.fsc-drop-sub { display: block; font-size: 12px; color: #6b6b6b; }
.fsc-file-ok { display: flex; align-items: center; gap: .75rem; margin: 0 0 .5rem; color: #242424; }
.fsc-file-ok::before { content: "\2713"; color: #4cbb6c; font-weight: 700; }
.fsc-file-name { word-break: break-all; font-weight: 600; }
.fsc-link {
  padding: 0; border: 0; background: none; color: #f02640; font: inherit;
  text-decoration: underline; cursor: pointer;
}
.fsc-check { display: flex; align-items: flex-start; gap: .5rem; margin: 0 0 .5rem; cursor: pointer; font-weight: 400; }
.fsc-check input { margin-top: .25rem; }

.fsc-apercu { margin: .5rem 0 0; }
.fsc-apercu .fsc-btn { min-height: 40px; border-color: #f02640; color: #f02640; }
.fsc-apercu .fsc-btn:hover:not(:disabled) { background: #f02640; color: #fff; }
.fsc-apercu .fsc-btn:disabled { opacity: .6; cursor: progress; }
.fsc-apercu-img { display: block; width: 100%; max-width: 20rem; margin: .5rem auto 0; border: 1px solid #ebebeb; border-radius: 4px; background: #fff; cursor: zoom-in; }
.fsc-grid { display: grid; grid-template-columns: 1fr; gap: .75rem; }
.fsc-field { min-width: 0; }
.fsc-preview { display: flex; align-items: center; gap: .75rem; margin-top: .75rem; }
.fsc-preview img { width: 72px; height: 72px; object-fit: contain; border: 1px solid #ebebeb; border-radius: 4px; background: #fff; cursor: zoom-in; }
.fsc-preview img:hover { border-color: #f02640; }
.fsc-zoom { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 100000; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 1rem; background: rgba(36, 36, 36, .85); cursor: zoom-out; }
.fsc-zoom img { max-width: 100%; max-height: 85vh; object-fit: contain; border-radius: 4px; background: #fff; }
.fsc-zoom-caption { margin: .75rem 0 0; color: #fff; font-size: 15px; font-weight: 600; text-align: center; }
.fsc.fsc-is-none [data-fsc="logo-step"], .fsc.fsc-is-none [data-fsc="marking-step"] { display: none; }

.fsc-summary { margin: 1rem 0 .75rem; padding: .85rem 1rem; border-radius: 4px; background: #f6f6f6; transition: opacity .15s; }
.fsc-summary.is-loading { opacity: .5; }
/* Lecture du prix : le total d'abord (gros), le prix par pièce, puis le détail en petit. */
.fsc-total { margin: 0 0 .15rem; font-size: 1.5rem; font-weight: 700; line-height: 1.2; color: #242424; }
.fsc-sub { margin: 0; color: #414141; }
.fsc-line { margin: .4rem 0 0; font-size: 12px; color: #6b6b6b; }
.fsc-error { margin: 0 0 .75rem; padding: .5rem .75rem; border: 1px solid #f02640; border-radius: 4px; color: #f02640; background: #fff; }

.fsc-actions { display: flex; flex-direction: column; gap: .5rem; }
.fsc-btn {
  display: block; width: 100%; min-height: 46px; padding: .6rem 1rem; border-radius: 4px;
  border: 1px solid transparent; font: inherit; font-weight: 700; text-align: center; cursor: pointer;
}
.fsc-btn-primary { background: #f02640; border-color: #f02640; color: #fff; }
.fsc-btn-primary:hover:not(:disabled) { background: #d41f37; border-color: #d41f37; }
.fsc-btn-primary:disabled { background: #ebebeb; border-color: #ebebeb; color: #9b9b9b; cursor: not-allowed; }
.fsc-btn-primary.is-busy { cursor: progress; }
.fsc-btn-secondary { background: #fff; border-color: #ebebeb; color: #414141; }
.fsc-btn-secondary:hover { border-color: #f02640; color: #f02640; }
.fsc-reassure { margin: .5rem 0 0; font-size: 13px; text-align: center; color: #4cbb6c; font-weight: 600; }
.fsc-reassure::before { content: "\2713\00a0"; }
.fsc-more { margin: .6rem 0 0; font-size: 13px; text-align: center; color: #9b9b9b; }
.fsc-more .fsc-link { color: #414141; }
.fsc-more .fsc-link:hover { color: #f02640; }

/* Sans la grille de prix dégressifs, le bloc stock/délai (inline-block dans le libellé « HT » du thème,
   à côté d'un prix flottant) se tassait sur la ligne du prix : on le repasse sous le prix, une
   information par ligne. Le détail « Stock par variante » est retiré (fiche simplifiée). */
/* Prix et « HT » sur la même ligne ; stock et délai en dessous. */
#main .product-prices .product-price,
#main .product-prices .product-price .current-price { display: inline-block; float: none; margin: 0; }
#main .product-prices .tax-shipping-delivery-label { display: inline; float: none; margin: 0 0 0 .35rem; font-weight: 600; }
#main .fluxstudio-product-info { display: block; margin-top: .5rem; font-weight: 400; }
#main .fluxstudio-product-info > div { display: block; margin: 0 0 .35rem; }
#main .fluxstudio-variant-details { display: none; }
/* Formulaire de devis : replié tant que le client ne le demande pas (lien « Demander un devis »),
   aux couleurs du thème plutôt qu'en vert. */
body.fsc-has-configurator #main .fluxstudio-lead:not(.is-open) { display: none; }
#main .fluxstudio-lead { margin: 1rem 0; border: 1px solid #ebebeb; border-top: 3px solid #f02640; border-radius: 4px; box-shadow: none; color: #414141; }
#main .fluxstudio-lead .fluxstudio-lead-title { background: #fff; color: #242424; padding: 1rem 1rem 0; font-size: 1.0625rem !important; }
#main .fluxstudio-lead .fluxstudio-lead-btn { background: #f02640; border-radius: 4px; }
#main .fluxstudio-lead .fluxstudio-lead-btn:hover { background: #d41f37; filter: none; }

/* Onglets Photo/Personnaliser du studio : masqués tant que le client n'a pas demandé le studio avancé. */
body.fsc-has-configurator:not(.fsc-studio-on) .fluxstudio-media-switch { display: none; }

/* Panier : « Modifier le marquage » (même formulaire que la fiche, dans une fenêtre). */
body.fsc-modal-open { overflow: hidden; }
.fsc-modal { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 99999; display: flex; align-items: flex-start; justify-content: center; padding: 1rem; overflow-y: auto; background: rgba(36, 36, 36, .6); }
.fsc-modal-box { position: relative; width: 100%; max-width: 36rem; margin: auto; background: #fff; border-radius: 4px; }
.fsc-modal .fsc { margin: 0; border: 0; border-top: 3px solid #f02640; }
.fsc-modal-close { position: absolute; top: .5rem; right: .75rem; z-index: 1; padding: 0 .25rem; border: 0; background: none; font-size: 1.75rem; line-height: 1; color: #414141; cursor: pointer; }
.fsc-modal-close:hover { color: #f02640; }
.fsc-modal .fsc-title { padding-right: 2rem; }
.fsc-modal [data-fsc="quote"], .fsc-modal [data-fsc="studio-wrap"], .fsc-modal .fsc-more > [aria-hidden] { display: none !important; }

@media (min-width: 576px) {
  .fsc { padding: 1.25rem; }
  .fsc-qty-row { flex-direction: row; align-items: center; flex-wrap: wrap; }
  .fsc-grid { grid-template-columns: 1fr 1fr; }
}
