/* Wedding Sign – Personnalisation : aperçu en temps réel et champs prénoms / date */

.ws-perso-bloc{display:flex;flex-direction:column;gap:20px}

/* ---------- Aperçu ---------- */
.ws-apercu{margin:0}
.ws-apercu[hidden]{display:none}
.ws-apercu__carte{position:relative;width:100%;aspect-ratio:1/1;container-type:inline-size;overflow:hidden;border-radius:12px;background:#fff var(--ws-fond) center/cover no-repeat;box-shadow:0 18px 50px rgba(47,39,64,.14)}
.ws-apercu__masque{position:absolute;left:var(--m-x);top:var(--m-y);width:var(--m-l);height:var(--m-h);background:var(--m-c)}
.ws-apercu__masque--flou{border-radius:6cqi;box-shadow:0 0 3cqi 2cqi var(--m-c)}
.ws-apercu__masque--rond{border-radius:50%}
.ws-apercu__zone{position:absolute;left:var(--z-x);top:var(--z-y);width:var(--z-l);height:var(--z-h);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--gap,2cqi);text-align:center}
.ws-apercu__noms{margin:0;display:flex;flex-direction:column;align-items:center;font-size:calc(var(--n-taille,10cqi) * var(--k,1));line-height:var(--n-interligne,1);font-family:var(--n-police);font-weight:var(--n-graisse,400);color:var(--n-couleur);text-transform:var(--n-casse,none);letter-spacing:var(--n-espace,0)}
.ws-apercu__ligne{display:block;white-space:nowrap}
.ws-apercu__et{font-family:var(--e-police,inherit);color:var(--e-couleur,inherit);font-size:var(--e-taille,.6em);line-height:1;text-transform:none;letter-spacing:0}
.ws-apercu__et--fin{display:none}
.ws-apercu__date{margin:0;font-family:var(--d-police);font-weight:var(--d-graisse,400);font-size:calc(var(--d-taille,3.4cqi) * var(--kd,1));color:var(--d-couleur);letter-spacing:var(--d-espace,.15em);text-transform:var(--d-casse,uppercase);line-height:1.15;white-space:nowrap}
.ws-apercu__date:empty{display:none}
.ws-apercu__date span{display:block}
.ws-apercu__legende{margin:12px 2px 0;font-size:14px;line-height:1.5;color:#5E5470}
.ws-apercu.is-maj .ws-apercu__zone{animation:ws-maj .45s ease}
@keyframes ws-maj{from{opacity:.55;filter:blur(1px)}to{opacity:1;filter:none}}
@media (prefers-reduced-motion:reduce){.ws-apercu.is-maj .ws-apercu__zone{animation:none}}

/* Astro : capitales didones vert profond, « & » doré */
.ws-apercu[data-style="astro"]{--n-police:'Bodoni Moda',serif;--n-graisse:500;--n-taille:10.4cqi;--n-couleur:#003a3f;--n-casse:uppercase;--n-espace:.02em;--n-interligne:.98;--e-police:'Pinyon Script',cursive;--e-couleur:#c9a45c;--e-taille:.95em;--d-police:'Bodoni Moda',serif;--d-taille:3.7cqi;--d-couleur:#003a3f;--d-espace:.03em;--gap:1.6cqi}
.ws-apercu[data-style="astro"] .ws-apercu__et--seul{position:relative;z-index:1;margin:-.42em 0 -.5em;height:.9em}

/* Bohème : capitales ivoire sur cartouche terracotta */
.ws-apercu[data-style="boheme"]{--n-police:'Cormorant Garamond',serif;--n-graisse:500;--n-taille:10.6cqi;--n-couleur:#fcf4ee;--n-casse:uppercase;--n-espace:.02em;--n-interligne:.95;--e-police:'Pinyon Script',cursive;--e-couleur:#efc3a8;--e-taille:.8em;--d-police:'Cormorant Garamond',serif;--d-graisse:600;--d-taille:2.8cqi;--d-couleur:#fcf4ee;--d-espace:.3em}

/* Citron : manuscrite noire, date encadrée */
.ws-apercu[data-style="citron"]{--n-police:'Ms Madi',cursive;--n-taille:15cqi;--n-couleur:#1e1e1e;--n-interligne:1.08;--e-taille:1em;--d-police:'Cormorant Garamond',serif;--d-graisse:600;--d-taille:2.4cqi;--d-couleur:#2b2b2b;--d-espace:.18em;--gap:3cqi}
.ws-apercu[data-style="citron"] .ws-apercu__et--fin{display:inline}
.ws-apercu[data-style="citron"] .ws-apercu__et--seul{display:none}
.ws-apercu[data-style="citron"] .ws-apercu__date{display:flex;flex-direction:column;align-items:center;padding:0 3.2cqi;border-left:1px solid #2b2b2b;border-right:1px solid #2b2b2b}
.ws-apercu[data-style="citron"] .ws-date-jour{font-size:2.6em;letter-spacing:0;line-height:1.1}

/* Élégance : calligraphie dorée, mois cerclé d'or */
.ws-apercu[data-style="elegance"]{--n-police:'Great Vibes',cursive;--n-taille:13cqi;--n-couleur:#b8913f;--n-interligne:1;--e-couleur:#1f2a44;--e-taille:.5em;--d-police:'Bodoni Moda',serif;--d-taille:4.2cqi;--d-couleur:#1f2a44;--d-espace:.02em;--gap:2.4cqi}
.ws-apercu[data-style="elegance"] .ws-apercu__date{display:flex;align-items:center;gap:.25em}
.ws-apercu[data-style="elegance"] .ws-date-mois{display:inline-grid;place-items:center;width:1.9em;height:1.9em;border-radius:50%;background:linear-gradient(180deg,#d9b866,#a97e2f);color:#fff}

/* Floral : capitales bleues dans le médaillon */
.ws-apercu[data-style="floral"]{--n-police:'Montserrat',sans-serif;--n-graisse:500;--n-taille:4.6cqi;--n-couleur:#3f5689;--n-casse:uppercase;--n-espace:.03em;--n-interligne:1.3;--e-taille:1em;--d-police:'Montserrat',sans-serif;--d-graisse:500;--d-taille:1.9cqi;--d-couleur:#3f5689;--d-espace:.22em;--gap:1.4cqi}

/* Glamour : capitales fines dorées */
.ws-apercu[data-style="glamour"]{--n-police:'Italiana',serif;--n-taille:12.4cqi;--n-couleur:#b48a3e;--n-casse:uppercase;--n-espace:.02em;--n-interligne:1.04;--e-taille:.9em;--d-police:'Italiana',serif;--d-taille:4.6cqi;--d-couleur:#b48a3e;--d-espace:.12em;--gap:4cqi}
.ws-apercu[data-style="glamour"] .ws-apercu__et--seul{margin:.05em 0}

/* Nature : manuscrite dorée, « & » entre deux filets */
.ws-apercu[data-style="nature"]{--n-police:'Allura',cursive;--n-taille:13cqi;--n-couleur:#b48c4c;--n-interligne:1.05;--e-police:'Cormorant Garamond',serif;--e-couleur:#b48c4c;--e-taille:.5em;--d-police:'Cormorant Garamond',serif;--d-graisse:600;--d-taille:2.6cqi;--d-couleur:#6e5a3a;--d-espace:.25em;--gap:3cqi}
.ws-apercu[data-style="nature"] .ws-apercu__et--seul{display:flex;align-items:center;gap:.5em;margin:.2em 0}
.ws-apercu[data-style="nature"] .ws-apercu__et--seul::before,.ws-apercu[data-style="nature"] .ws-apercu__et--seul::after{content:"";width:3.2em;height:1px;background:currentColor;opacity:.7}
.ws-apercu[data-style="nature"] .ws-apercu__date{display:flex;flex-direction:column;align-items:center}
.ws-apercu[data-style="nature"] .ws-date-jour{font-size:2.6em;letter-spacing:0;line-height:1}

/* Romance : calligraphie bordeaux, jour en grand */
.ws-apercu[data-style="romance"]{--n-police:'Parisienne',cursive;--n-taille:13.5cqi;--n-couleur:#6b2c38;--n-interligne:1.05;--e-taille:.8em;--d-police:'Cormorant Garamond',serif;--d-graisse:600;--d-taille:2.8cqi;--d-couleur:#6b2c38;--d-espace:.16em;--gap:3cqi}
.ws-apercu[data-style="romance"] .ws-apercu__date{display:flex;flex-direction:column;align-items:center}
.ws-apercu[data-style="romance"] .ws-date-jour{font-size:2.5em;letter-spacing:0;line-height:1}

/* ---------- Sélecteur de style (démonstration) ---------- */
.ws-selecteur{display:flex;flex-wrap:wrap;gap:8px}
.ws-selecteur__style{appearance:none;border:1px solid #E4DEF0;background:#FDFCFE;color:#2F2740;border-radius:999px;padding:8px 16px;font:600 12px/1.2 Montserrat,sans-serif;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:background-color .2s,border-color .2s,color .2s}
.ws-selecteur__style:hover{border-color:#7566AE}
.ws-selecteur__style[aria-pressed="true"]{background:#7566AE;border-color:#7566AE;color:#fff}

/* ---------- Champs ---------- */
.ws-perso{display:flex;flex-direction:column;gap:14px;margin:0 0 20px;padding:22px;background:#F6F3FC;border-radius:12px}
.ws-perso__titre{margin:0;font:600 12px/1.3 Montserrat,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:#7566AE}
.ws-perso__noms{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:end;gap:12px}
.ws-perso__et{font:400 28px/1 Buenard,Georgia,serif;color:#C6A87A;padding-bottom:10px}
.ws-perso__champ{display:flex;flex-direction:column;gap:6px;margin:0;min-width:0}
.ws-perso__champ label{font:600 12px/1.3 Montserrat,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#2F2740}
.ws-perso__champ abbr.required{color:#A8424E;text-decoration:none;border:0}
.ws-perso__facultatif{font-weight:500;text-transform:none;letter-spacing:0;color:#5E5470}
.ws-perso__champ input,.ws-perso__champ textarea{width:100%;min-width:0;box-sizing:border-box;padding:12px 14px;border:1px solid #E4DEF0;border-radius:8px;background:#FDFCFE;color:#2F2740;font:400 16px/1.4 Roboto,sans-serif}
.ws-perso__champ input:focus,.ws-perso__champ textarea:focus{outline:none;border-color:#7566AE;box-shadow:0 0 0 3px rgba(117,102,174,.18)}
@media (max-width:480px){
	.ws-perso{padding:16px}
	.ws-perso__noms{grid-template-columns:minmax(0,1fr)}
	.ws-perso__et{display:none}
}

/* ---------- Vitrine de fiche produit : aperçu + photos ---------- */
.ws-vitrine{display:flex;flex-direction:column;gap:14px}
.ws-vitrine__vue .ws-apercu[hidden],.ws-vitrine__photo[hidden]{display:none}
.ws-vitrine__photo{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:12px;box-shadow:0 18px 50px rgba(47,39,64,.14);background:#F6F3FC}
.ws-vitrine__miniatures{display:flex;flex-wrap:wrap;gap:10px}
.ws-mini{appearance:none;position:relative;width:76px;height:76px;padding:0;border:2px solid #E4DEF0;border-radius:10px;overflow:hidden;background:#F6F3FC center/cover no-repeat;cursor:pointer;transition:border-color .2s,transform .2s}
.ws-mini:hover{transform:translateY(-2px);border-color:#C9BEEA}
.ws-mini[aria-pressed="true"]{border-color:#7566AE}
.ws-mini img{display:block;width:100%;height:100%;object-fit:cover}
.ws-mini--apercu span{position:absolute;inset:auto 0 0 0;padding:4px 2px;background:rgba(47,39,64,.82);color:#fff;font:600 9px/1.2 Montserrat,sans-serif;letter-spacing:.06em;text-transform:uppercase;text-align:center}
@media (max-width:480px){.ws-mini{width:62px;height:62px}}

/* Formulaire d'ajout au panier (Elementor le met en ligne) : les champs prennent toute la largeur au-dessus du bouton */
form.cart{flex-wrap:wrap!important;align-items:center;gap:12px}
form.cart .ws-perso{flex:1 0 100%!important;width:100%;max-width:100%;margin-bottom:8px}
.woocommerce-variation-add-to-cart{display:flex!important;flex-wrap:wrap!important;align-items:center;gap:12px}
.woocommerce-variation-add-to-cart .ws-perso{flex:1 0 100%!important;width:100%;max-width:100%}

/* Les styles de boutons du site ne doivent pas s'appliquer aux miniatures ni au sélecteur */
.ws-vitrine button.ws-mini{width:76px;min-width:0;height:76px;padding:0;border-radius:10px;background-color:#F6F3FC;box-shadow:none;line-height:1}
.ws-vitrine button.ws-mini:hover,.ws-vitrine button.ws-mini:focus{background-color:#F6F3FC}
.ws-selecteur button.ws-selecteur__style{padding:8px 16px;border-radius:999px;background-color:#FDFCFE;color:#2F2740;box-shadow:none}
.ws-selecteur button.ws-selecteur__style:hover{background-color:#FDFCFE;color:#2F2740}
.ws-selecteur button.ws-selecteur__style[aria-pressed="true"]{background-color:#7566AE;color:#fff}
@media (max-width:480px){.ws-vitrine button.ws-mini{width:62px;height:62px}}

/* ---------- Bloc « Essayez avec vos prénoms » en deux colonnes ---------- */
.ws-perso-bloc--colonnes{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:center}
.ws-perso-bloc__panneau{display:flex;flex-direction:column;gap:20px;min-width:0}
.ws-perso-bloc--colonnes .ws-perso{margin:0;background:#FDFCFE}
.ws-perso-bloc__actions{margin:0;display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.ws-perso-bloc a.ws-perso-bloc__cta{display:inline-flex;align-items:center;justify-content:center;gap:.35em;padding:16px 28px;border-radius:999px;background:#7566AE;color:#fff;font:600 13px/1.2 Montserrat,sans-serif;letter-spacing:.8px;text-transform:uppercase;text-decoration:none;transition:background-color .2s,transform .2s}
.ws-perso-bloc a.ws-perso-bloc__cta:hover,.ws-perso-bloc a.ws-perso-bloc__cta:focus{background:#2F2740;color:#fff;transform:translateY(-2px)}
.ws-perso-bloc__note{font-size:14px;line-height:1.5;color:#5E5470}
@media (max-width:900px){.ws-perso-bloc--colonnes{grid-template-columns:minmax(0,1fr);gap:28px}}

/* ---------- Filtres de la boutique ---------- */
.ws-filtres{display:flex;flex-direction:column;gap:12px}
.ws-filtres__groupe{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.ws-filtres__titre{min-width:84px;margin-right:4px;font:600 11px/1.2 Montserrat,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:#5E5470}
.ws-filtres a{display:inline-block;padding:8px 16px;border:1px solid #E4DEF0;border-radius:999px;background:#FDFCFE;color:#2F2740;font:600 12px/1.2 Montserrat,sans-serif;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;transition:border-color .2s,background-color .2s,color .2s}
.ws-filtres a:hover{border-color:#7566AE;color:#7566AE}
.ws-filtres a[aria-current="page"]{background:#7566AE;border-color:#7566AE;color:#fff}
@media (max-width:767px){.ws-filtres__titre{width:100%;min-width:0}.ws-filtres a{padding:7px 12px;font-size:11px}}
.ws-perso-bloc .ws-perso{background:#FDFCFE}

/* ---------- Choix du style et des dimensions en vignettes ---------- */
select[data-ws-cache]{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:0!important;overflow:hidden;clip:rect(0 0 0 0);opacity:0;pointer-events:none;border:0!important}
.variations_form table.variations,.variations_form table.variations tbody,.variations_form table.variations tr,.variations_form table.variations th,.variations_form table.variations td{display:block;width:100%;background:transparent!important;border:0!important;padding:0!important}
.variations_form table.variations{margin:0 0 18px!important}
.variations_form table.variations tr{margin-bottom:18px}
.variations_form table.variations th.label{margin-bottom:10px;text-align:left}
.variations_form table.variations th.label label{font:600 12px/1.3 Montserrat,sans-serif!important;letter-spacing:.12em;text-transform:uppercase;color:#2F2740!important}
.variations_form table.variations td.value{position:relative}
.variations_form .reset_variations{display:none!important}
.ws-options{display:flex;flex-wrap:wrap;gap:8px}
.ws-options button.ws-option{appearance:none!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:6px!important;width:auto!important;min-width:0!important;height:auto!important;margin:0!important;padding:10px 18px!important;border:1.5px solid #E4DEF0!important;border-radius:999px!important;background:#FDFCFE!important;color:#2F2740!important;font:600 12px/1.2 Montserrat,sans-serif!important;letter-spacing:.04em!important;text-transform:none!important;box-shadow:none!important;cursor:pointer;transition:border-color .2s,background-color .2s,color .2s,transform .2s}
.ws-options button.ws-option:hover{border-color:#C9BEEA!important}
.ws-options button.ws-option[aria-checked="true"]{border-color:#7566AE!important;background:#7566AE!important;color:#fff!important}
.ws-options--styles{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:10px}
.ws-options--styles button.ws-option--style{flex-direction:column!important;gap:6px!important;padding:6px 6px 8px!important;border-radius:12px!important;background:#FDFCFE!important;color:#2F2740!important}
.ws-options--styles button.ws-option--style[aria-checked="true"]{background:#FDFCFE!important;color:#2F2740!important;border-color:#7566AE!important;box-shadow:0 0 0 2px rgba(117,102,174,.3)!important}
.ws-options--styles button.ws-option--style:hover{transform:translateY(-2px)}
.ws-option__visuel{display:block;width:100%;aspect-ratio:1/1;border-radius:8px;background:#F6F3FC center/cover no-repeat}
.ws-option--style .ws-option__nom{font-size:10px;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}

/* Listes de produits : nombre de styles */
.ws-nb-styles{display:block;margin:-2px 0 8px;font:500 13px/1.4 Roboto,sans-serif;color:#7566AE}
.woocommerce-variation-price{margin:0 0 14px}
.woocommerce-variation-price .price{font:400 28px/1.2 Buenard,serif!important;color:#7566AE!important}
.woocommerce-variation-price .price del{font-size:.7em;color:#5E5470!important}
