.spa-form{margin:0 0 1em;clear:both}
.spa-row{display:flex;flex-wrap:wrap;margin:0 -6px}
.spa-col{box-sizing:border-box;padding:0 6px;margin-bottom:12px;width:100%}
.spa-col[hidden],.spa-section[hidden]{display:none}
@media(min-width:640px){
.spa-col-1{width:16.6667%}.spa-col-2{width:33.3333%}.spa-col-3{width:50%}.spa-col-4{width:66.6667%}.spa-col-5{width:83.3333%}.spa-col-6{width:100%}}
.spa-label{display:block;font-weight:600;margin-bottom:4px}
.spa-col input[type=number],.spa-col input[type=text],.spa-col select{width:100%;box-sizing:border-box}
.spa-options{display:flex;flex-direction:column;gap:6px}
.spa-options.spa-inline,.spa-options-image-group,.spa-options-color-group{flex-direction:row;flex-wrap:wrap}
.spa-option{display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.spa-opt-img{max-width:90px;height:auto;display:block}
.spa-options-image-group .spa-option{flex-direction:column;text-align:center}
.spa-swatch{width:30px;height:30px;border-radius:6px;border:1px solid #0003;display:inline-block}
.spa-opt-price{opacity:.75;font-size:.9em}
.spa-opt-qty{width:4.5em}
.spa-desc{font-size:.85em;opacity:.8;margin-top:4px}
.spa-file-list{list-style:none;margin:6px 0 0;padding:0;font-size:.9em}
.spa-file-list button{margin-left:8px}
.spa-summary:not(:empty){margin-top:12px;padding:10px 12px;border:1px solid #0002;border-radius:6px}
.spa-sum-line{display:flex;justify-content:space-between;gap:12px}
.spa-sum-total{font-weight:700}
.spa-errors{margin:0 0 12px;padding:10px 12px;border:1px solid #b32d2e;border-left-width:4px;background:#fcf0f1;color:#8a2424;border-radius:4px}.spa-errors ul{margin:0;padding-left:1.2em}

/* Version 1.1.0 : alignement sur l'affichage de WCPA (relevé en navigateur, bureau et mobile) */
.spa-desc{color:#777;font-size:16px;line-height:1.5;margin:0 0 8px}
.spa-label abbr.required{text-decoration:none;border:0;cursor:default}
.spa-opt-label{font-size:14px}
.spa-options-image-group,.spa-options-color-group{gap:12px 16px;align-items:flex-start}
.spa-options-image-group .spa-option{flex-direction:column;align-items:flex-start;text-align:left;gap:4px;max-width:100%;position:relative}
.spa-options-image-group input[type=radio],.spa-options-image-group input[type=checkbox]{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.spa-options-image-group .spa-opt-img{max-width:100%;height:auto;box-sizing:border-box;border:2px solid transparent;cursor:pointer}
.spa-options-image-group input:checked ~ .spa-opt-img{border-color:#7e3f9d}
.spa-options-image-group input:focus-visible ~ .spa-opt-img{outline:2px solid #1d4ed8;outline-offset:2px}
.spa-options-image-group .spa-opt-label{font-weight:700}
/* Envoi de fichier : champ et bouton d'une seule pièce, jamais coupé */
.spa-file-style{display:flex;position:relative;border:1px solid #ccc;border-radius:6px;overflow:hidden;background:#fff;cursor:pointer;min-height:40px}
.spa-file-style .spa-file-input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.spa-file-style:focus-within{outline:2px solid #1d4ed8;outline-offset:2px}
.spa-file-custom{display:flex;flex:1 1 auto;min-width:0;align-items:stretch;width:100%}
.spa-file-names{flex:1 1 auto;min-width:3em;padding:8px 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9em}
.spa-choose{flex:0 0 auto;display:flex;align-items:center;padding:8px 16px;background:#999;color:#fff;font-weight:700;font-size:.9em;white-space:nowrap}
.spa-file-list li{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0}
.spa-file-list .wcpa_file_details{display:flex;align-items:center;gap:8px}
.spa-file-list .wcpa_thumb img{max-height:48px;width:auto;display:block}
.spa-file-list .wcpa_remove_file{cursor:pointer;width:22px;height:22px;line-height:22px;text-align:center;border-radius:50%;background:#eee}
.spa-file-list .wcpa_remove_file::before{content:"\00d7"}
.spa-file-error{color:#8a2424}
.spa-summary:not(:empty){border:0;border-radius:0;padding:10px 0 0;margin-top:16px}
.spa-sum-total{font-size:1.3em;font-weight:700}
.spa-sum-line{align-items:baseline}
@media(max-width:639px){.spa-type-number.spa-col-1,.spa-type-select.spa-col-1{width:33.3333%}.spa-type-number.spa-col-2,.spa-type-number.spa-col-3,.spa-type-select.spa-col-2,.spa-type-select.spa-col-3{width:50%}.spa-options-image-group{gap:10px}.spa-file-names{min-width:0}.spa-choose{white-space:normal;text-align:center;flex:0 1 auto}}
.spa-file-style{width:100%;max-width:340px}

/* Cases et boutons radio : même rendu que WCPA (anneau, point, case violette cochée) */
.spa-options{gap:10px}
.spa-option input[type=radio],.spa-option input[type=checkbox]{-webkit-appearance:none;appearance:none;flex:0 0 auto;width:19px;height:19px;margin:0 8px 0 0;border:1px solid #c9ccd6;background-color:#fff;cursor:pointer;vertical-align:middle;padding:0}
.spa-option input[type=radio]{border-radius:50%}
.spa-option input[type=checkbox]{border-radius:4px}
.spa-option input[type=radio]:checked{border-color:#8a8d99;background:radial-gradient(circle closest-side,#000 0,#000 42%,#fff 48%)}
.spa-option input[type=checkbox]:checked{border-color:#7e3f9d;background:#7e3f9d url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.5l3.2 3.2L13 5' fill='none' stroke='%23fff' stroke-width='2'/%3E%3C/svg%3E") center/13px no-repeat}
.spa-option input:focus-visible{outline:2px solid #1d4ed8;outline-offset:2px}
.spa-options-image-group input[type=radio],.spa-options-image-group input[type=checkbox]{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.spa-options-color-group input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.spa-options-color-group .spa-option{position:relative}
.spa-options-color-group input:checked + .spa-swatch{box-shadow:0 0 0 2px #fff,0 0 0 4px #7e3f9d}
.spa-options-color-group input:focus-visible + .spa-swatch{outline:2px solid #1d4ed8;outline-offset:3px}
/* 1.1.2 : un seul bouton, identique à « Ajouter au panier » ; les noms des fichiers choisis s'affichent dessous.
   Le thème impose la couleur et la bordure des libellés : !important nécessaire. */
form.cart .spa-file-style{display:inline-flex;border:0!important;border-radius:0;background:transparent!important;min-height:0;width:auto;max-width:100%;overflow:visible}
form.cart .spa-file-custom{display:flex;flex-direction:column-reverse;align-items:flex-start;gap:6px;width:auto}
form.cart .spa-file-names{padding:0;color:#555!important;font-size:.9em;white-space:normal}
form.cart .spa-file-names:empty{display:none}
form.cart .spa-choose{background:#333!important;color:#fff!important;border-radius:30px;margin:0;padding:14px 40px;text-transform:uppercase;font-size:15px;letter-spacing:.02em;font-weight:700;line-height:1.2}
form.cart .spa-file-style:hover .spa-choose{background:#000!important}
