/* Goodiespedia Studio — configurateur (styles neutres, hérite de la typographie du thème). */
.gsp-configurator { margin: 2rem 0; padding: 1.5rem; border: 1px solid rgba(0, 0, 0, 0.12); border-radius: 12px; background: #fff; }
.gsp-configurator .gsp-title { margin: 0 0 0.25rem; font-size: 1.4rem; }
.gsp-configurator .gsp-intro { margin: 0 0 1rem; opacity: 0.75; }
.gsp-body { display: grid; gap: 1.5rem; grid-template-columns: minmax(0, 3fr) minmax(280px, 2fr); }
@media (max-width: 800px) { .gsp-body { grid-template-columns: 1fr; } }
.gsp-block { margin-bottom: 1.25rem; }
.gsp-block h3 { font-size: 1rem; margin: 0 0 0.5rem; }
.gsp-swatches, .gsp-chips { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.gsp-swatch { width: 32px; height: 32px; border-radius: 50%; border: 2px solid rgba(0, 0, 0, 0.2); cursor: pointer; padding: 0; font-size: 0.7rem; }
.gsp-swatch.is-selected { border-color: #111; box-shadow: 0 0 0 2px #fff inset; outline: 2px solid #111; outline-offset: 2px; }
.gsp-chip { padding: 0.35rem 0.8rem; border: 1px solid rgba(0, 0, 0, 0.25); border-radius: 999px; background: #fff; cursor: pointer; }
.gsp-chip.is-selected { background: #111; color: #fff; border-color: #111; }
.gsp-qty { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; }
.gsp-input, .gsp-select { padding: 0.45rem 0.6rem; border: 1px solid rgba(0, 0, 0, 0.25); border-radius: 6px; font: inherit; background: #fff; }
.gsp-input { width: 7rem; }
.gsp-input-wide { width: 100%; }
.gsp-select-small { max-width: 12rem; }
.gsp-position { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; margin-bottom: 0.5rem; }
.gsp-label { flex: 1 0 100%; font-weight: 600; font-size: 0.9rem; }
.gsp-table { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
.gsp-table th, .gsp-table td { text-align: left; padding: 0.35rem 0.5rem; border-bottom: 1px solid rgba(0, 0, 0, 0.08); }
.gsp-table th { font-weight: 600; opacity: 0.7; }
.gsp-preview img { width: 100%; height: auto; border-radius: 8px; margin-bottom: 1rem; }
.gsp-summary { padding: 1rem; border-radius: 8px; background: rgba(0, 0, 0, 0.04); margin-bottom: 1.25rem; }
.gsp-summary h3 { margin: 0 0 0.5rem; font-size: 1rem; }
.gsp-summary-list { display: grid; grid-template-columns: 1fr auto; gap: 0.25rem 1rem; margin: 0; }
.gsp-summary-list dt { opacity: 0.75; }
.gsp-summary-list dd { margin: 0; text-align: right; white-space: nowrap; }
.gsp-strong { font-weight: 700; }
.gsp-muted { font-size: 0.85rem; opacity: 0.7; margin: 0.5rem 0 0; }
.gsp-form h3 { font-size: 1rem; margin: 0 0 0.5rem; }
.gsp-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.6rem; }
@media (max-width: 600px) { .gsp-form-grid { grid-template-columns: 1fr; } }
.gsp-field { display: flex; flex-direction: column; gap: 0.2rem; margin-bottom: 0.6rem; font-size: 0.9rem; }
.gsp-hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.gsp-submit { margin-top: 0.5rem; padding: 0.7rem 1.2rem; border: 0; border-radius: 8px; background: #111; color: #fff; font: inherit; font-weight: 600; cursor: pointer; }
.gsp-submit[disabled] { opacity: 0.6; cursor: wait; }
.gsp-status { margin: 0.6rem 0 0; font-size: 0.9rem; }
.gsp-success { color: #1a7f37; }
.gsp-error { color: #b42318; }
/* Le bloc « Marquage & personnalisation » généré dans la description est remplacé par le configurateur. */
.single-product .gsp-marking { display: none; }
