/* ============================================
   CSS spécifique aux pages individuelles
   (extraits du 2e <style> de chaque HTML du zip)
   coming-soon.html / maintenance.html exclus
   car ils contiennent des règles 'body' globales
   qui cassent les autres pages.
   ============================================ */


/* ===== Scrollbar globale du site (rose, fine) — barre de droite + conteneurs scrollables.
   Les composants avec un style propre (recherche, dropdowns du compte) restent prioritaires. ===== */
html { scrollbar-width: auto; scrollbar-color: var(--rose-soft) transparent; }
::-webkit-scrollbar { width: 16px; height: 16px; }
::-webkit-scrollbar-thumb { background: var(--rose-soft); border-radius: 99px; border: 3px solid var(--cream); background-clip: padding-box; }
::-webkit-scrollbar-thumb:hover { background: var(--rose); background-clip: padding-box; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-button { display: none; }


/* ===== Profil public membre (/membre/{slug}/) ===== */
.pubprofile { max-width: 720px; margin: 44px auto 64px; padding: 0 20px; }
.pubprofile-card { text-align: center; background: #fff; border: 1px solid var(--rose-soft); border-radius: 20px; padding: 34px 24px 28px; }
.pubprofile-avatar { width: 96px; height: 96px; border-radius: 50%; margin: 0 auto 14px; background: var(--rose-mist); border: 1px solid var(--rose-soft); display: flex; align-items: center; justify-content: center; font-size: 40px; color: var(--rose-deep); font-family: var(--font-display); overflow: hidden; }
.pubprofile-avatar img { width: 100%; height: 100%; object-fit: cover; }
.pubprofile-name { font-family: var(--font-display); font-weight: 500; font-size: 26px; margin: 0 0 10px; color: var(--ink); }
.pubprofile-meta { display: flex; flex-wrap: wrap; gap: 8px 12px; justify-content: center; align-items: center; }
.pubprofile-badge { background: var(--rose); color: #fff; border-radius: 99px; padding: 4px 14px; font-size: 13px; font-weight: 600; }
.pubprofile-since { font-size: 13px; color: var(--ink-mute); }
.pubprofile-bio { margin: 13px auto 0; max-width: 460px; font-size: 14px; color: var(--ink-soft); line-height: 1.55; }
.pubprofile-discord { display: inline-flex; align-items: center; gap: 6px; margin-top: 13px; padding: 5px 13px; border-radius: 99px; background: #5865F2; color: #fff; font-size: 13px; font-weight: 600; }
.pubprofile-discord svg { flex: 0 0 auto; }
.pubprofile-share { display: flex; align-items: center; justify-content: center; gap: 7px; margin: 16px auto 0; padding: 9px 18px; border: 1px solid var(--rose); border-radius: 99px; background: #fff; color: var(--rose-deep); font-size: 14px; font-weight: 600; cursor: pointer; transition: .15s; }
.pubprofile-share:hover { background: var(--rose); color: #fff; }
.pubprofile-pet-date { display: block; font-size: 12px; color: var(--rose-deep); margin-top: 5px; }
.pubprofile-pets { margin-top: 26px; }
.pubprofile-pets h2 { font-family: var(--font-display); font-weight: 500; font-size: 20px; text-align: center; margin: 0 0 16px; color: var(--ink); }
.pubprofile-pets-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 14px; }
.pubprofile-pet { text-align: center; background: #fff; border: 1px solid var(--rose-soft); border-radius: 16px; padding: 18px 12px; }
.pubprofile-pet.is-bday { border-color: var(--rose); background: var(--rose-mist); }
.pubprofile-pet-emoji { width: 64px; height: 64px; border-radius: 50%; margin: 0 auto 10px; background: var(--rose-mist); border: 1px solid var(--rose-soft); display: flex; align-items: center; justify-content: center; font-size: 32px; overflow: hidden; }
.pubprofile-pet-emoji img { width: 100%; height: 100%; object-fit: cover; }
.pubprofile-pet-name { display: block; font-weight: 600; font-size: 15px; color: var(--ink); }
.pubprofile-pet-meta { display: block; font-size: 12.5px; color: var(--ink-mute); margin-top: 1px; }
.pubprofile-pet-bday { display: block; font-size: 12px; font-weight: 600; color: var(--rose-deep); margin-top: 5px; }
.pubprofile-empty { text-align: center; color: var(--ink-soft); }
.pubprofile-foot { text-align: center; margin-top: 28px; font-size: 13px; }
.pubprofile-foot a { color: var(--rose-deep); }

/* Liste d'envies — bouton fiche produit + grille publique */
.leden-wish-btn { display: inline-flex; align-items: center; gap: 8px; margin-top: 12px; padding: 10px 18px; border: 1px solid var(--rose-soft); border-radius: 99px; background: #fff; color: var(--rose-deep); font-size: 14px; font-weight: 500; cursor: pointer; transition: .15s; }
.leden-wish-btn:hover { border-color: var(--rose); background: var(--rose-mist); }
.leden-wish-btn.is-in { background: var(--rose); border-color: var(--rose); color: #fff; }
.leden-wish-btn.is-in svg { fill: currentColor; }
.leden-wish-btn svg { flex: 0 0 auto; }

/* ============================================================
   SCORE EDEN (nutri) — badges cartes/fiche + page guide
   ============================================================ */
/* Pastille sur la carte (coin bas-gauche de l'image) */
.nutri-cardwrap { position: absolute; inset: 0; z-index: 4; pointer-events: none; }
.nutri-card { position: absolute; left: 10px; bottom: 10px; z-index: 3; pointer-events: auto; display: inline-flex; align-items: center; gap: 4px; background: rgba(255,255,255,0.94); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); border: 1px solid color-mix(in oklab, var(--nf, #3fae6a) 38%, #e5e4df); border-radius: 8px; padding: 3px 8px; font-family: var(--font-body); font-size: 12px; font-weight: 500; color: var(--ink); text-decoration: none; box-shadow: 0 2px 10px -5px rgba(0,0,0,.3); cursor: default; }
.nutri-card svg { width: 11px; height: 11px; color: var(--nf, #3fae6a); flex: 0 0 auto; }
.nutri-card:hover { border-color: var(--nf, #3fae6a); }
/* Tooltip Fréquence au survol (même info que la modale fiche), pleine largeur de la photo. */
.nutri-card__pop {
	position: absolute; left: 8px; right: 8px; bottom: 46px;
	max-height: calc(100% - 56px); overflow-y: auto;
	background: rgba(255,255,255,0.97); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px);
	border: 1px solid color-mix(in oklab, var(--nf, #3fae6a) 35%, var(--rose-soft));
	border-radius: 12px; box-shadow: 0 14px 34px -16px rgba(0,0,0,0.32);
	padding: 9px 13px; text-align: left;
	opacity: 0; visibility: hidden; transform: translateY(6px);
	transition: opacity 0.18s, transform 0.18s, visibility 0.18s;
	pointer-events: auto; z-index: 6;
}
.nutri-cardwrap:hover .nutri-card__pop { opacity: 1; visibility: visible; transform: translateY(0); }
.nutri-card__pop-head { display: flex; align-items: center; gap: 5px; font-size: 11px; font-weight: 600; color: var(--nf, #3fae6a); margin-bottom: 5px; }
.nutri-card__pop-head svg { width: 12px; height: 12px; color: var(--nf, #3fae6a); }
.nutri-card__pop-freq { display: block; font-family: var(--font-body); font-size: 14px; font-weight: 600; color: var(--ink); margin-bottom: 4px; }
.nutri-card__pop-txt { display: block; font-size: 13px; line-height: 1.5; color: var(--ink-soft); }
/* Bloc complet sur la fiche */
.nutri-full { margin: 0 0 18px; border: 1px solid var(--rose-soft); border-radius: 14px; padding: 14px 16px; background: color-mix(in oklab, var(--green-soft) 16%, #fff); }
.nutri-full__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.nutri-full__title { display: inline-flex; align-items: center; gap: 6px; font-family: var(--font-display); font-size: 14.5px; font-weight: 500; color: var(--ink); }
.nutri-full__title svg { color: var(--sage, #7aa15a); }
.nutri-full__more { font-family: var(--font-body); font-size: 12px; font-weight: 500; color: var(--rose-deep); text-decoration: none; white-space: nowrap; }
.nutri-full__more:hover { text-decoration: underline; }
.nutri-full__freq { display: flex; align-items: center; gap: 8px; font-family: var(--font-body); font-size: 13.5px; color: var(--ink-soft); margin-bottom: 10px; }
.nutri-full__freq strong { color: var(--ink); font-weight: 500; }
.nutri-dot { width: 12px; height: 12px; border-radius: 99px; flex: 0 0 auto; }
.nutri-row { display: flex; align-items: center; gap: 10px; font-family: var(--font-body); font-size: 13px; color: var(--ink-soft); margin: 5px 0; }
.nutri-row__lbl { width: 60px; flex: 0 0 auto; }
.nutri-row__val { color: var(--ink); font-weight: 500; }
.nutri-meter { display: inline-flex; gap: 3px; }
.nutri-meter__bar { width: 15px; height: 7px; border-radius: 3px; background: #e3e0dc; }
/* Page guide */
.nutri-guide { max-width: 1120px; margin: 0 auto; }
.nutri-guide__intro { font-size: 15.5px; line-height: 1.7; color: var(--ink-soft); margin: 0 0 28px; }
.nutri-guide__legend { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin: 0 0 40px; }
.nutri-guide__col { border: 1px solid var(--rose-soft); border-radius: 16px; padding: 20px 22px; background: #fff; }
.nutri-guide__col h3 { font-family: var(--font-display); font-size: 16px; font-weight: 500; margin: 0 0 14px; color: var(--ink); }
.nutri-guide__col h3 small { display: block; margin-top: 3px; font-weight: 400; color: var(--ink-mute); font-size: 11.5px; }
.nutri-legend { list-style: none; padding: 0; margin: 0; display: grid; gap: 11px; }
.nutri-legend li { display: flex; align-items: center; gap: 10px; font-size: 13.5px; color: var(--ink-soft); }
.nutri-guide__h2 { font-family: var(--font-display); font-size: 24px; font-weight: 500; letter-spacing: -0.02em; margin: 10px 0 22px; }
.nutri-guide__note { font-size: 12.5px; color: var(--ink-mute); margin-top: 30px; font-style: italic; }
.nutri-guide__empty { color: var(--ink-soft); }
@media (max-width: 760px) { .nutri-guide__legend { grid-template-columns: 1fr; } }

/* Lien « Voir le panier » que WooCommerce colle après le bouton (AJAX) : le drawer suffit. */
.added_to_cart,
.added_to_cart.wc-forward { display: none !important; }

/* Modale (eden-modal) — disponible partout où il y a le cœur liste d'envies (cartes, fiche…) */
.eden-modal[hidden] { display: none; }
.eden-modal { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 20px; }
.eden-modal__overlay { position: absolute; inset: 0; background: rgba(40,25,38,.45); animation: eden-modal-fade .15s ease; cursor: pointer; }
.eden-modal__box { position: relative; background: #fff; border-radius: 18px; max-width: 380px; width: 100%; margin-bottom: 6vh; padding: 26px 26px 22px; box-shadow: 0 18px 50px rgba(0,0,0,.22); text-align: center; animation: eden-modal-pop .18s ease; }
.eden-modal__icon { width: 54px; height: 54px; border-radius: 50%; background: #fbeaea; color: #b14a4a; display: inline-flex; align-items: center; justify-content: center; margin: 0 0 14px; }
.eden-modal__icon--danger { background: #fbeaea; color: #b14a4a; }
.eden-modal__icon--ok { background: #eef8f1; color: #3fae6a; }
.eden-modal__icon--love { background: var(--rose-mist); color: var(--rose-deep); }
.eden-modal__box h3 { font-family: var(--font-display); font-weight: 500; font-size: 20px; margin: 0 0 8px; color: #1A1A1A; }
.eden-modal__box p { font-size: 14px; color: #4F4F4F; line-height: 1.55; margin: 0 0 20px; }
.eden-modal__actions { display: flex; gap: 10px; }
.eden-modal__actions button { flex: 1 1 0; border-radius: 9px; padding: 9px 16px; font-size: 13px; font-weight: 400; cursor: pointer; transition: .15s; margin: 0; outline: none; }
.eden-modal__confirm.is-ok { background: var(--rose); color: #fff; border: 1px solid var(--rose); }
.eden-modal__confirm.is-ok:hover { background: var(--rose-deep); border-color: var(--rose-deep); }
@keyframes eden-modal-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes eden-modal-pop { from { opacity: 0; transform: translateY(8px) scale(.98); } to { opacity: 1; transform: none; } }
.giftlist-public { margin-top: 22px; }
.giftlist-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 16px; }
.giftlist-item { text-align: center; background: #fff; border: 1px solid var(--rose-soft); border-radius: 16px; padding: 14px; }
.giftlist-thumb { display: block; }
.giftlist-thumb img { width: 100%; height: auto; border-radius: 10px; }
.giftlist-name { display: block; margin-top: 8px; font-size: 14px; font-weight: 600; color: var(--ink); text-decoration: none; }
.giftlist-name:hover { color: var(--rose-deep); }
.giftlist-price { display: block; margin-top: 3px; font-size: 13px; color: var(--rose-deep); }
.giftlist-price .amount { color: var(--rose-deep); }
.giftlist-offer { display: inline-flex; align-items: center; justify-content: center; gap: 5px; margin-top: 10px; padding: 8px 16px; border: 1px solid var(--rose); border-radius: 99px; background: var(--rose); color: #fff; font-size: 13px; font-weight: 600; text-decoration: none; transition: .15s; }
.giftlist-offer:hover { background: var(--rose-deep); border-color: var(--rose-deep); color: #fff; }


/* ===== 404.html (lines 2271-2289 = 19) ===== */

.err-page { min-height: 40vh; display: flex; align-items: center; justify-content: center; padding: 28px 24px; text-align: center; }
.err-inner { max-width: 580px; }
.err-num { font-family: var(--font-display); font-size: clamp(72px, 13vw, 116px); letter-spacing: -0.05em; line-height: 0.9; color: var(--rose); font-style: italic; }
@media (max-width: 600px) { .err-title { font-size: 24px; } .err-text { font-size: 13.5px; } }
/* Home : sections masquées (demande client, déploiement). */
body.home .seo-bloc { display: none !important; }                              /* Bien choisir / Nourriture pour lapin */
body.home section.about { display: none !important; }                          /* Notre histoire */
body.home section.blog,
body.home .section-title:has(+ section.blog) { display: none !important; }     /* Nos derniers / blog + son titre */
body.home section.univers,
body.home .section-title:has(+ section.univers) { display: none !important; }  /* slider catégories (univers) + son titre « +1300 articles » */
/* Page connexion/inscription : boutons sociaux grisés + form WC réel (lost-password) habillé dans la carte. */
.log-social button.is-disabled, .log-social button[disabled] { opacity: .45; cursor: not-allowed; }
.log-social button.is-disabled:hover, .log-social button[disabled]:hover { border-color: var(--rose-soft); }
.log-card .woocommerce-form-row, .log-card p.form-row { margin: 0 0 14px; }
.log-card.woocommerce input.input-text { width: 100%; box-sizing: border-box; font: inherit; padding: 12px 16px; border: 1.5px solid var(--rose-soft); border-radius: 12px; background: #fff; font-size: 14px; }
.log-card.woocommerce input.input-text:focus { outline: none; border-color: var(--rose); }
.log-card.woocommerce .button { width: 100%; background: var(--rose); color: #fff; border: none; border-radius: 10px; padding: 9px 16px; font: inherit; font-weight: 400; font-size: 13.5px; cursor: pointer; transition: background .2s; }
.log-card.woocommerce .button:hover,
.log-card.woocommerce .button:focus,
.log-card.woocommerce .button:active { background: var(--rose-deep) !important; color: #fff !important; border-color: var(--rose-deep) !important; outline: none; }
/* Mention de confidentialité WooCommerce (formulaire inscription) : petite, discrète, espacée du bouton. */
.log-card .woocommerce-privacy-policy-text { font-size: 11.5px; color: var(--ink-mute); line-height: 1.55; margin: 2px 0 18px; }
.log-card .woocommerce-privacy-policy-text p { margin: 0; }
.log-card .woocommerce-privacy-policy-text a { color: var(--rose-deep); }
/* Mot de passe oublié — formulaire WC centré et aéré dans la carte pleine largeur. */
.log-card .woocommerce-ResetPassword { max-width: 460px; margin: 6px auto 0; }
.log-card .woocommerce-ResetPassword > p:first-child { font-size: 14px; color: var(--ink-soft); line-height: 1.55; margin: 0 0 18px; text-align: center; }
.log-card .woocommerce-ResetPassword label { display: block; font-size: 14px; color: var(--ink-soft); font-weight: 500; margin-bottom: 5px; }
.log-card .woocommerce-ResetPassword .form-row { margin: 0 0 14px; }
.log-card .woocommerce-ResetPassword .button { width: 100%; }
.log-card .woocommerce-ResetPassword input.input-text { width: 100% !important; box-sizing: border-box; }
.log-card .woocommerce-ResetPassword .clear { display: none; }
/* Carte mot de passe oublié : moins d'espace sous « Retour à la connexion ». */
.log-card.woocommerce { padding-bottom: 20px; }
/* Inscription : on masque l'indicateur de force natif WooCommerce (le nôtre, .leden-pw-*,
   le remplace) — sinon son texte s'insère dans .log-pwd et décale l'œil. */
.log-card .woocommerce-password-strength,
.log-card .woocommerce-password-hint { display: none !important; }
.log-card .leden-pw-tools { margin-top: 4px; }
/* Pas de bouton « Générer » sur l'inscription (utile seulement sur l'espace client). */
.log-card .leden-pw-gen { display: none; }
/* Encart explicatif sous les boutons sociaux (désactivés). */
.log-social-note { display: flex; align-items: center; gap: 9px; margin: 28px 0 0; padding: 10px 13px; background: var(--rose-mist, #F8E8F1); border: 1px solid var(--rose-soft); border-radius: 10px; font-size: 12px; color: var(--ink-soft); line-height: 1.45; text-align: left; }
.log-social-note svg { flex: 0 0 auto; color: var(--rose-deep); }
/* « Se souvenir de moi » : checkbox stylée comme le checkout. */
.log-row label { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; }
.log-row input[type="checkbox"] { appearance: none; -webkit-appearance: none; flex: 0 0 auto; width: 18px; height: 18px; margin: 0; border: 1.5px solid var(--rose-soft); border-radius: 6px; background: #fff; cursor: pointer; position: relative; transition: background .15s, border-color .15s; }
.log-row input[type="checkbox"]:checked { background: var(--rose); border-color: var(--rose); }
.log-row input[type="checkbox"]:checked::after { content: ""; position: absolute; left: 5px; top: 1.5px; width: 5px; height: 9px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
/* Page connexion/inscription — responsive mobile (colonnes empilées). */
@media (max-width: 820px) {
  .log-grid { grid-template-columns: 1fr !important; gap: 16px; }
  .log-card { padding: 24px 20px; border-radius: 16px; }
  .log-page { margin: -20px auto 0; padding: 0 16px 30px; }
}
@media (max-width: 480px) {
  .log-card { padding: 20px 16px; }
  .log-card h2 { font-size: 20px; }
}
.err-num em { font-style: italic; }
.err-tag { font-family: var(--font-hand); font-size: 28px; color: var(--rose-deep); transform: rotate(-2deg); display: inline-block; margin-bottom: 12px; }
.err-title { font-family: var(--font-display); font-size: 32px; font-weight: 500; letter-spacing: -0.022em; margin: 0 0 14px; }
.err-title em { font-style: italic; color: var(--rose-deep); }
.err-text { font-size: 14.5px; color: var(--ink-soft); line-height: 1.65; margin: 0 0 28px; }
.err-search { display: flex; max-width: 460px; margin: 0 auto 22px; background: #fff; border: 1.5px solid var(--rose-soft); border-radius: 99px; padding: 4px 4px 4px 18px; }
.err-search input { flex: 1; border: none; background: none; outline: none; padding: 10px 0; font: inherit; font-size: 14px; }
.err-search button { background: var(--rose); color: #fff; border: none; border-radius: 99px; padding: 10px 18px; font: inherit; font-size: 13px; font-weight: 500; cursor: pointer; }
.err-actions { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.err-actions a { display: inline-flex; align-items: center; gap: 8px; padding: 11px 22px; border-radius: 99px; font-size: 13.5px; font-weight: 500; text-decoration: none; transition: all 0.2s; }
.err-action-primary { background: var(--ink); color: #fff; }
.err-action-primary:hover { background: var(--rose); }
.err-action-ghost { background: transparent; color: var(--ink); border: 1.5px solid var(--rose-soft); }
.err-action-ghost:hover { border-color: var(--rose); color: var(--rose-deep); }


/* ===== archive.html (lines 2271-2302 = 32) ===== */

.bp-hero { padding: 48px 24px 24px; text-align: center; max-width: 720px; margin: 0 auto; }
.bp-hero .tag { font-family: var(--font-hand); font-size: 26px; color: var(--rose-deep); transform: rotate(-1.5deg); display: inline-block; margin-bottom: 4px; }
.bp-hero h1 { font-family: var(--font-display); font-size: 38px; font-weight: 500; letter-spacing: -0.025em; margin: 0 0 12px; }
.bp-hero h1 em { font-style: italic; color: var(--rose-deep); }
.bp-hero p { font-size: 14.5px; color: var(--ink-soft); margin: 0 0 22px; line-height: 1.6; }
.bp-cats { display: flex; gap: 6px; justify-content: center; flex-wrap: wrap; }
.bp-cat { padding: 6px 14px; border: 1.5px solid var(--rose-soft); border-radius: 99px; font-size: 12.5px; color: var(--ink-soft); cursor: pointer; transition: all 0.2s; text-decoration: none; }
.bp-cat:hover { border-color: var(--rose); color: var(--rose-deep); }
.bp-cat.active { background: var(--rose); color: #fff; border-color: var(--rose); }
.bp-layout { max-width: 1280px; margin: 0 auto; padding: 24px 24px 64px; }
.bp-feature { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-items: center; background: var(--rose-mist); border-radius: 22px; padding: 32px; margin-bottom: 32px; }
.bp-feature-img { aspect-ratio: 4/3; border-radius: 16px; background-size: cover; background-position: center; box-shadow: 0 20px 40px -20px rgba(204,139,185,0.4); }
.bp-feature .badge { font-family: var(--font-hand); font-size: 22px; color: var(--rose-deep); transform: rotate(-2deg); display: inline-block; }
.bp-feature h2 { font-family: var(--font-display); font-size: 28px; font-weight: 500; letter-spacing: -0.022em; line-height: 1.1; margin: 6px 0 12px; }
.bp-feature h2 em { font-style: italic; color: var(--rose-deep); }
.bp-feature .meta { display: flex; gap: 14px; font-size: 12px; color: var(--ink-soft); margin-bottom: 10px; }
.bp-feature .meta span { display: inline-flex; align-items: center; gap: 4px; }
.bp-feature p { font-size: 14.5px; color: var(--ink-soft); line-height: 1.6; margin: 0 0 16px; }
.bp-feature .read { display: inline-flex; align-items: center; gap: 6px; color: var(--rose-deep); font-weight: 500; font-size: 13.5px; text-decoration: none; border-bottom: 1.5px solid var(--rose-deep); padding-bottom: 2px; }
.bp-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.bp-card { display: flex; flex-direction: column; cursor: pointer; transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1); text-decoration: none; color: inherit; }
.bp-card:hover { transform: translateY(-4px); }
.bp-card-img { aspect-ratio: 4/3; border-radius: 14px; background-size: cover; background-position: center; background-color: var(--rose-mist); margin-bottom: 14px; }
.bp-card-cat { font-family: var(--font-hand); font-size: 16px; color: var(--rose-deep); margin-bottom: 2px; }
.bp-card h3 { font-family: var(--font-display); font-size: 18px; font-weight: 500; letter-spacing: -0.012em; line-height: 1.25; margin: 0 0 8px; }
.bp-card .meta { display: flex; gap: 12px; font-size: 11.5px; color: var(--ink-mute); margin-bottom: 8px; }
.bp-card p { font-size: 13.5px; color: var(--ink-soft); line-height: 1.55; margin: 0; }
.bp-pagination { display: flex; justify-content: center; gap: 6px; margin-top: 48px; }
.bp-pagination button { width: 36px; height: 36px; border-radius: 99px; background: #fff; border: 1px solid var(--rose-soft); cursor: pointer; font: inherit; font-size: 13px; }
.bp-pagination button.active { background: var(--rose); color: #fff; border-color: var(--rose); }


/* ===== author.html (lines 2271-2282 = 12) ===== */

.au-page { max-width: 1100px; margin: 0 auto; padding: 48px 24px 64px; }
.au-hero { background: var(--rose-mist); border-radius: 22px; padding: 40px 44px; display: grid; grid-template-columns: 140px 1fr; gap: 32px; align-items: center; margin-bottom: 40px; }
.au-avatar { width: 140px; height: 140px; border-radius: 99px; background: linear-gradient(180deg, var(--rose-soft), var(--rose-mist)); display: flex; align-items: center; justify-content: center; font-family: var(--font-display); font-style: italic; font-size: 56px; color: var(--rose-deep); box-shadow: 0 16px 32px -16px rgba(204,139,185,0.45); }
.au-info .tag { font-family: var(--font-hand); font-size: 22px; color: var(--rose-deep); transform: rotate(-1.5deg); display: inline-block; }
.au-info h1 { font-family: var(--font-display); font-size: 34px; font-weight: 500; letter-spacing: -0.022em; margin: 2px 0 6px; }
.au-info h1 em { font-style: italic; color: var(--rose-deep); }
.au-info p { font-size: 14.5px; color: var(--ink); line-height: 1.6; margin: 0 0 12px; max-width: 540px; }
.au-stats { display: flex; gap: 20px; font-size: 13px; color: var(--ink-soft); }
.au-stats strong { color: var(--ink); font-family: var(--font-display); font-style: italic; font-size: 18px; }
.au-section h2 { font-family: var(--font-display); font-size: 24px; font-weight: 500; letter-spacing: -0.018em; margin: 0 0 22px; }


/* ===== blog.html (lines 2271-2302 = 32) ===== */

.bp-hero { padding: 48px 24px 24px; text-align: center; max-width: 720px; margin: 0 auto; }
.bp-hero .tag { font-family: var(--font-hand); font-size: 26px; color: var(--rose-deep); transform: rotate(-1.5deg); display: inline-block; margin-bottom: 4px; }
.bp-hero h1 { font-family: var(--font-display); font-size: 38px; font-weight: 500; letter-spacing: -0.025em; margin: 0 0 12px; }
.bp-hero h1 em { font-style: italic; color: var(--rose-deep); }
.bp-hero p { font-size: 14.5px; color: var(--ink-soft); margin: 0 0 22px; line-height: 1.6; }
.bp-cats { display: flex; gap: 6px; justify-content: center; flex-wrap: wrap; }
.bp-cat { padding: 6px 14px; border: 1.5px solid var(--rose-soft); border-radius: 99px; font-size: 12.5px; color: var(--ink-soft); cursor: pointer; transition: all 0.2s; text-decoration: none; }
.bp-cat:hover { border-color: var(--rose); color: var(--rose-deep); }
.bp-cat.active { background: var(--rose); color: #fff; border-color: var(--rose); }
.bp-layout { max-width: 1280px; margin: 0 auto; padding: 24px 24px 64px; }
.bp-feature { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-items: center; background: var(--rose-mist); border-radius: 22px; padding: 32px; margin-bottom: 32px; }
.bp-feature-img { aspect-ratio: 4/3; border-radius: 16px; background-size: cover; background-position: center; box-shadow: 0 20px 40px -20px rgba(204,139,185,0.4); }
.bp-feature .badge { font-family: var(--font-hand); font-size: 22px; color: var(--rose-deep); transform: rotate(-2deg); display: inline-block; }
.bp-feature h2 { font-family: var(--font-display); font-size: 28px; font-weight: 500; letter-spacing: -0.022em; line-height: 1.1; margin: 6px 0 12px; }
.bp-feature h2 em { font-style: italic; color: var(--rose-deep); }
.bp-feature .meta { display: flex; gap: 14px; font-size: 12px; color: var(--ink-soft); margin-bottom: 10px; }
.bp-feature .meta span { display: inline-flex; align-items: center; gap: 4px; }
.bp-feature p { font-size: 14.5px; color: var(--ink-soft); line-height: 1.6; margin: 0 0 16px; }
.bp-feature .read { display: inline-flex; align-items: center; gap: 6px; color: var(--rose-deep); font-weight: 500; font-size: 13.5px; text-decoration: none; border-bottom: 1.5px solid var(--rose-deep); padding-bottom: 2px; }
.bp-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.bp-card { display: flex; flex-direction: column; cursor: pointer; transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1); text-decoration: none; color: inherit; }
.bp-card:hover { transform: translateY(-4px); }
.bp-card-img { aspect-ratio: 4/3; border-radius: 14px; background-size: cover; background-position: center; background-color: var(--rose-mist); margin-bottom: 14px; }
.bp-card-cat { font-family: var(--font-hand); font-size: 16px; color: var(--rose-deep); margin-bottom: 2px; }
.bp-card h3 { font-family: var(--font-display); font-size: 18px; font-weight: 500; letter-spacing: -0.012em; line-height: 1.25; margin: 0 0 8px; }
.bp-card .meta { display: flex; gap: 12px; font-size: 11.5px; color: var(--ink-mute); margin-bottom: 8px; }
.bp-card p { font-size: 13.5px; color: var(--ink-soft); line-height: 1.55; margin: 0; }
.bp-pagination { display: flex; justify-content: center; gap: 6px; margin-top: 48px; }
.bp-pagination button { width: 36px; height: 36px; border-radius: 99px; background: #fff; border: 1px solid var(--rose-soft); cursor: pointer; font: inherit; font-size: 13px; }
.bp-pagination button.active { background: var(--rose); color: #fff; border-color: var(--rose); }


/* ===== cart-empty.html (lines 2271-2271 = 1) ===== */


/* ===== cart.html (lines 2271-2374 = 104) ===== */

.cart-page { max-width: 1280px; margin: 0 auto; padding: 32px 24px 64px; }
.cart-header { display: flex; align-items: baseline; gap: 14px; margin-bottom: 28px; }
.cart-header h1 { font-family: var(--font-display); font-size: 36px; font-weight: 500; letter-spacing: -0.025em; margin: 0; }
.cart-header h1 em { font-style: italic; color: var(--rose-deep); font-variation-settings: "opsz" 144, "SOFT" 100; }
.cart-header-count { font-size: 13px; color: var(--ink-soft); font-style: italic; }
.cart-layout { display: grid; grid-template-columns: 1fr 380px; gap: 32px; align-items: flex-start; }
/* Page panier : repli en 1 colonne sur mobile/tablette (il manquait le media query). */
@media (max-width: 960px) { .cart-layout { grid-template-columns: 1fr; gap: 16px; } }
.cart-items { background: #fff; border: 1px solid var(--rose-soft); border-radius: 18px; overflow: hidden; }
.cart-item { display: grid; grid-template-columns: 100px 1fr auto; gap: 20px; padding: 20px 22px; align-items: center; border-bottom: 1px dashed var(--rose-soft); }
.cart-item:last-child { border-bottom: none; }
.cart-item-img {
  aspect-ratio: 1 / 1;
  border-radius: 14px;
  background-color: var(--rose-mist);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
.cart-item-info { display: flex; flex-direction: column; gap: 4px; }
.cart-item-brand { font-family: var(--font-display); font-style: italic; font-size: 12.5px; color: var(--rose-deep); }
.cart-item-name { font-family: var(--font-display); font-size: 16px; font-weight: 500; letter-spacing: -0.008em; line-height: 1.2; }
.cart-item-variant { font-size: 12px; color: var(--ink-mute); margin-top: 2px; }
.cart-item-bottom { display: flex; align-items: center; gap: 14px; margin-top: 6px; }
.cart-item-qty { display: inline-flex; align-items: center; background: var(--cream); border: 1px solid var(--rose-soft); border-radius: 99px; }
.cart-item-qty button { width: 30px; height: 30px; background: none; border: none; cursor: pointer; color: var(--ink); font-size: 14px; }
.cart-item-qty input { width: 30px; text-align: center; border: none; background: none; font: inherit; font-weight: 600; font-size: 13px; }
.cart-item-remove { background: none; border: none; color: var(--ink-mute); font-size: 12px; cursor: pointer; text-decoration: underline; font-family: var(--font-body); }
.cart-item-remove:hover { color: var(--rose-deep); }
.cart-item-price { text-align: right; }
.cart-item-price-now { font-family: var(--font-display); font-size: 22px; font-weight: 500; letter-spacing: -0.015em; line-height: 1; }
.cart-item-price-now small { font-size: 14px; color: var(--ink-soft); }
.cart-item-price-unit { font-size: 11.5px; color: var(--ink-mute); margin-top: 4px; }
.cart-empty { padding: 64px 32px; text-align: center; }
.cart-empty-icon { color: var(--rose-soft); margin-bottom: 18px; }
.cart-empty h3 { font-family: var(--font-display); font-size: 24px; font-weight: 500; margin: 0 0 8px; }
.cart-empty p { font-size: 14px; color: var(--ink-soft); margin: 0 0 24px; }

.cart-coupon { margin-top: 16px; display: flex; gap: 8px; }
.cart-coupon input {
  flex: 1;
  border: 1.5px solid var(--rose-soft);
  background: #fff;
  border-radius: 99px;
  padding: 11px 18px;
  font: inherit;
  font-size: 13px;
  outline: none;
}
.cart-coupon input:focus { border-color: var(--rose); }
.cart-coupon button {
  background: var(--ink);
  color: #fff;
  border: none;
  border-radius: 99px;
  padding: 11px 20px;
  font: inherit;
  font-weight: 500;
  font-size: 13px;
  cursor: pointer;
}

.cart-summary { background: var(--rose-mist); border-radius: 16px; padding: 28px; position: sticky; top: 20px; }
.cart-summary h3 { font-family: var(--font-display); font-size: 22px; font-weight: 500; margin: 0 0 18px; }
.cart-summary-row { display: flex; justify-content: space-between; padding: 8px 0; font-size: 14px; color: var(--ink-soft); }
.cart-summary-row strong { color: var(--ink); font-weight: 500; }
.cart-summary-row.discount { color: var(--rose-deep); }
.cart-summary-divider { height: 1px; background: var(--rose-soft); margin: 14px 0; }
.cart-summary-total { display: flex; justify-content: space-between; align-items: baseline; padding: 8px 0 18px; font-size: 14px; }
.cart-summary-total-num { font-family: var(--font-display); font-size: 28px; font-weight: 500; letter-spacing: -0.02em; }
.cart-summary-total-num small { font-size: 16px; color: var(--ink-soft); }
.cart-checkout-btn {
  display: block;
  width: 100%;
  background: var(--rose);
  color: #fff;
  border: none;
  border-radius: 14px;
  padding: 16px;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 14px;
  cursor: pointer;
  text-align: center;
  text-decoration: none;
  transition: all 0.2s;
  box-shadow: 0 10px 24px -8px color-mix(in oklab, var(--rose) 70%, transparent);
}
.cart-checkout-btn:hover { background: var(--rose-deep); transform: translateY(-1px); }
.cart-continue {
  display: block;
  text-align: center;
  font-size: 13px;
  color: var(--ink-soft);
  text-decoration: underline;
  margin-top: 14px;
}
.cart-trust { margin-top: 20px; padding-top: 18px; border-top: 1px dashed var(--rose-soft); display: grid; gap: 10px; font-size: 12.5px; color: var(--ink-soft); }
.cart-trust div { display: flex; align-items: center; gap: 8px; }
.cart-trust svg { color: var(--rose); flex-shrink: 0; }

.cart-crosssell { margin-top: 56px; }
.cart-crosssell h3 { font-family: var(--font-display); font-size: 24px; font-weight: 500; letter-spacing: -0.022em; margin: 0 0 18px; }
.cart-crosssell-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }


/* ===== category.html (lines 2271-2302 = 32) ===== */

.bp-hero { padding: 48px 24px 24px; text-align: center; max-width: 720px; margin: 0 auto; }
.bp-hero .tag { font-family: var(--font-hand); font-size: 26px; color: var(--rose-deep); transform: rotate(-1.5deg); display: inline-block; margin-bottom: 4px; }
.bp-hero h1 { font-family: var(--font-display); font-size: 38px; font-weight: 500; letter-spacing: -0.025em; margin: 0 0 12px; }
.bp-hero h1 em { font-style: italic; color: var(--rose-deep); }
.bp-hero p { font-size: 14.5px; color: var(--ink-soft); margin: 0 0 22px; line-height: 1.6; }
.bp-cats { display: flex; gap: 6px; justify-content: center; flex-wrap: wrap; }
.bp-cat { padding: 6px 14px; border: 1.5px solid var(--rose-soft); border-radius: 99px; font-size: 12.5px; color: var(--ink-soft); cursor: pointer; transition: all 0.2s; text-decoration: none; }
.bp-cat:hover { border-color: var(--rose); color: var(--rose-deep); }
.bp-cat.active { background: var(--rose); color: #fff; border-color: var(--rose); }
.bp-layout { max-width: 1280px; margin: 0 auto; padding: 24px 24px 64px; }
.bp-feature { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-items: center; background: var(--rose-mist); border-radius: 22px; padding: 32px; margin-bottom: 32px; }
.bp-feature-img { aspect-ratio: 4/3; border-radius: 16px; background-size: cover; background-position: center; box-shadow: 0 20px 40px -20px rgba(204,139,185,0.4); }
.bp-feature .badge { font-family: var(--font-hand); font-size: 22px; color: var(--rose-deep); transform: rotate(-2deg); display: inline-block; }
.bp-feature h2 { font-family: var(--font-display); font-size: 28px; font-weight: 500; letter-spacing: -0.022em; line-height: 1.1; margin: 6px 0 12px; }
.bp-feature h2 em { font-style: italic; color: var(--rose-deep); }
.bp-feature .meta { display: flex; gap: 14px; font-size: 12px; color: var(--ink-soft); margin-bottom: 10px; }
.bp-feature .meta span { display: inline-flex; align-items: center; gap: 4px; }
.bp-feature p { font-size: 14.5px; color: var(--ink-soft); line-height: 1.6; margin: 0 0 16px; }
.bp-feature .read { display: inline-flex; align-items: center; gap: 6px; color: var(--rose-deep); font-weight: 500; font-size: 13.5px; text-decoration: none; border-bottom: 1.5px solid var(--rose-deep); padding-bottom: 2px; }
.bp-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.bp-card { display: flex; flex-direction: column; cursor: pointer; transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1); text-decoration: none; color: inherit; }
.bp-card:hover { transform: translateY(-4px); }
.bp-card-img { aspect-ratio: 4/3; border-radius: 14px; background-size: cover; background-position: center; background-color: var(--rose-mist); margin-bottom: 14px; }
.bp-card-cat { font-family: var(--font-hand); font-size: 16px; color: var(--rose-deep); margin-bottom: 2px; }
.bp-card h3 { font-family: var(--font-display); font-size: 18px; font-weight: 500; letter-spacing: -0.012em; line-height: 1.25; margin: 0 0 8px; }
.bp-card .meta { display: flex; gap: 12px; font-size: 11.5px; color: var(--ink-mute); margin-bottom: 8px; }
.bp-card p { font-size: 13.5px; color: var(--ink-soft); line-height: 1.55; margin: 0; }
.bp-pagination { display: flex; justify-content: center; gap: 6px; margin-top: 48px; }
.bp-pagination button { width: 36px; height: 36px; border-radius: 99px; background: #fff; border: 1px solid var(--rose-soft); cursor: pointer; font: inherit; font-size: 13px; }
.bp-pagination button.active { background: var(--rose); color: #fff; border-color: var(--rose); }


/* ===== category-product.html (lines 2271-2303 = 33) ===== */

.cat-banner {
  position: relative;
  background: linear-gradient(135deg, var(--rose-mist), color-mix(in oklab, var(--rose-soft) 50%, var(--cream)));
  padding: 56px 24px 32px;
  text-align: center;
  margin-bottom: 24px;
}
.cat-banner .tag { font-family: var(--font-hand); font-size: 24px; color: var(--rose-deep); transform: rotate(-2deg); display: inline-block; }
.cat-banner h1 { font-family: var(--font-display); font-size: 48px; font-weight: 500; letter-spacing: -0.028em; margin: 4px 0 14px; }
.cat-banner h1 em { font-style: italic; color: var(--rose-deep); }
.cat-banner p { font-size: 15px; color: var(--ink-soft); line-height: 1.6; margin: 0 auto; max-width: 620px; }
.cat-pill { display: inline-flex; align-items: center; gap: 8px; background: #fff; padding: 6px 16px; border-radius: 99px; font-size: 12.5px; color: var(--ink-soft); margin-top: 18px; border: 1px solid var(--rose-soft); }

.shop-layout { max-width: 1280px; margin: 0 auto; padding: 0 24px 64px; display: grid; grid-template-columns: 240px 1fr; gap: 32px; }
.shop-filters { background: #fff; border: 1px solid var(--rose-soft); border-radius: 16px; padding: 22px; align-self: flex-start; position: sticky; top: 20px; }
.shop-filter-group { padding: 14px 0; border-bottom: 1px dashed var(--rose-soft); }
.shop-filter-group:last-child { border: none; padding-bottom: 0; }
.shop-filter-group:first-child { padding-top: 0; }
.shop-filter-title { font-family: var(--font-display); font-size: 15px; font-weight: 600; margin: 0 0 12px; }
.shop-filter-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.shop-filter-item { display: flex; align-items: center; gap: 10px; font-size: 13px; color: var(--ink-soft); cursor: pointer; }
.shop-filter-item input { appearance: none; width: 14px; height: 14px; border: 1.5px solid var(--rose-soft); border-radius: 4px; position: relative; cursor: pointer; }
.shop-filter-item input:checked { background: var(--rose); border-color: var(--rose); }
.shop-filter-item input:checked::after { content: "✓"; position: absolute; top: -3px; left: 1px; color: #fff; font-size: 11px; font-weight: 700; }
.shop-filter-item .shop-filter-count { margin-left: auto; color: var(--ink-mute); font-size: 11.5px; }
.shop-toolbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; padding: 12px 18px; background: #fff; border: 1px solid var(--rose-soft); border-radius: 99px; }
.shop-count { font-size: 13px; color: var(--ink-soft); }
.shop-count strong { color: var(--ink); font-weight: 600; }
.shop-sort { display: flex; align-items: center; gap: 8px; font-size: 13px; }
.shop-sort select { font: inherit; font-size: 13px; padding: 6px 10px; border: 1px solid var(--rose-soft); border-radius: 99px; background: var(--cream); cursor: pointer; }
.shop-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }


/* ===== checkout.html (lines 2271-2319 = 49) ===== */

.co-page { max-width: 1280px; margin: 0 auto; padding: 39px 24px 26px; }
/* Checkout = header épuré : logo centré, menu/burger/recherche/icônes retirés. */
body.woocommerce-checkout .nav { display: none !important; }
body.woocommerce-checkout .header-inner > *:not(.logo) { display: none !important; }
body.woocommerce-checkout .header-inner { justify-content: center !important; }
body.woocommerce-checkout .logo { margin: 0 auto; }
.co-header { text-align: center; margin-bottom: 32px; }
.co-header h1 { font-family: var(--font-display); font-size: 36px; font-weight: 500; letter-spacing: -0.025em; margin: 0; }
.co-header h1 em { font-style: italic; color: var(--rose-deep); }
.co-steps { display: flex; justify-content: center; gap: 4px; margin: 18px 0 0; font-size: 12.5px; color: var(--ink-mute); }
.co-step.active { color: var(--rose-deep); font-weight: 600; }
.co-step.done { color: var(--ink); }
.co-step-sep { opacity: 0.4; }
.co-layout { display: grid; grid-template-columns: 1fr 380px; gap: 32px; align-items: flex-start; }
.co-layout > #customer_details { grid-column: 1 !important; grid-row: 1 !important; min-width: 0; }
.co-layout > .co-summary { grid-column: 2 !important; grid-row: 1 !important; align-self: start; }
.co-layout > :not(#customer_details):not(.co-summary) { grid-column: 1 / -1; }
.co-form { display: flex; flex-direction: column; gap: 14px; align-items: stretch; }
.co-card { background: #fff; border: 1px solid var(--rose-soft); border-radius: 18px; padding: 24px 28px; }
.co-page--wc .woocommerce-billing-fields > .co-card:first-child { margin-top: 0 !important; } /* 1re carte (Contact) collée en haut */
.co-card h3 { font-family: var(--font-display); font-size: 18px; font-weight: 500; margin: 0 0 16px; display: flex; align-items: center; gap: 8px; }
.co-card h3 .co-num { background: var(--rose); color: #fff; width: 22px; height: 22px; border-radius: 99px; display: inline-flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; font-family: var(--font-body); }
.co-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 12px; }
.co-row.single { grid-template-columns: 1fr; }
.co-field { display: flex; flex-direction: column; gap: 4px; }
.co-field label { font-size: 12px; color: var(--ink-soft); font-weight: 500; }
.co-field input, .co-field select { font: inherit; padding: 11px 14px; border: 1.5px solid var(--rose-soft); border-radius: 10px; background: #fff; color: var(--ink); font-size: 14px; transition: border-color 0.2s; }
.co-field input:focus, .co-field select:focus { outline: none; border-color: var(--rose); }
.co-pay-options { display: grid; gap: 8px; }
.co-pay-option { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border: 1.5px solid var(--rose-soft); border-radius: 12px; cursor: pointer; transition: all 0.2s; background: #fff; }
.co-pay-option.active { border-color: var(--rose); background: var(--rose-mist); }
.co-pay-option input { accureance: none; -webkit-appearance: none; appearance: none; width: 18px; height: 18px; border: 2px solid var(--rose-soft); border-radius: 99px; position: relative; cursor: pointer; }
.co-pay-option input:checked { border-color: var(--rose); }
.co-pay-option input:checked::after { content: ""; position: absolute; inset: 3px; background: var(--rose); border-radius: 99px; }
.co-pay-option-icon { font-family: var(--font-display); font-style: italic; font-size: 14px; color: var(--rose-deep); margin-left: auto; }
.co-pay-name { font-size: 14px; font-weight: 500; }
.co-pay-sub { font-size: 12px; color: var(--ink-soft); display: block; margin-top: 2px; }
.co-summary { background: var(--rose-mist); border-radius: 18px; padding: 28px; position: sticky; top: 20px; }
.co-summary h3 { font-family: var(--font-display); font-size: 20px; font-weight: 500; margin: 0 0 16px; }
/* Barre déroulante du récap (visible uniquement sur mobile via le media query). */
.co-summary-toggle { display: none; align-items: center; gap: 10px; width: 100%; background: transparent; border: 0; cursor: pointer; padding: 16px 18px; text-align: left; }
.co-summary-toggle-label { flex: 0 0 auto; font-family: var(--font-display); font-size: 18px; font-weight: 500; color: var(--ink); }
.co-summary-toggle-total { flex: 1 1 auto; text-align: right; font-family: var(--font-display); font-size: 16px; font-weight: 400; color: var(--ink); }
.co-summary-toggle-total strong, .co-summary-toggle-total .amount, .co-summary-toggle-total .co-summary-total { font-weight: 400 !important; font-size: 16px; }
.co-summary-toggle-total small { display: none; }
.co-summary-chevron { flex: 0 0 auto; color: var(--ink-soft); transition: transform .2s ease; }
.co-summary.is-open .co-summary-chevron { transform: rotate(180deg); }
.co-mini-item { display: grid; grid-template-columns: 50px 1fr auto; gap: 12px; padding: 10px 0; align-items: center; }
.co-mini-img { width: 50px; height: 50px; border-radius: 10px; background: #fff; background-size: contain; background-repeat: no-repeat; background-position: center; position: relative; }
.co-mini-qty { position: absolute; top: -6px; right: -6px; background: var(--ink); color: #fff; font-size: 10px; font-weight: 600; width: 18px; height: 18px; border-radius: 99px; display: inline-flex; align-items: center; justify-content: center; }
.co-mini-name { font-size: 12.5px; font-weight: 500; line-height: 1.3; }
.co-mini-variant { font-size: 11px; color: var(--ink-soft); }
.co-mini-price { font-family: var(--font-display); font-size: 14px; font-weight: 500; }
.co-summary-totals { margin-top: 14px; padding-top: 14px; border-top: 1px dashed var(--rose-soft); display: grid; gap: 6px; font-size: 13px; }
.co-summary-totals .row { display: flex; justify-content: space-between; color: var(--ink-soft); }
/* Montants des lignes dans la même police que le total (display), pour l'harmonie. */
.co-summary-totals .row strong { font-family: var(--font-display); font-weight: 500; font-size: 14.5px; color: var(--ink); }
.co-summary-totals .discount { color: var(--rose-deep); }
.co-summary-totals .discount strong { color: var(--rose-deep); }
.co-summary-total-row { display: flex; justify-content: space-between; align-items: baseline; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--rose-soft); }
.co-summary-total-row > span:first-child { font-family: var(--font-display); font-size: 15px; font-weight: 500; }
.co-summary-total { font-family: var(--font-display); font-size: 18px; font-weight: 500; letter-spacing: -0.01em; }
.co-summary-total strong, .co-summary-total .amount { font-weight: 500; }
.co-summary-total small { font-size: 12.5px; font-weight: 400; color: var(--ink-soft); }

/* Totaux récurrents (abonnements) — table WCS enveloppée, alignée sur le récap V2. */
.co-page--wc .co-recurring { width: 100%; border-collapse: collapse; margin-top: 14px; padding-top: 0; }
.co-page--wc .co-recurring tr { border: 0; }
.co-page--wc .co-recurring th,
.co-page--wc .co-recurring td { padding: 4px 0; border: 0; background: none; font-family: var(--font-body); font-weight: 400; font-size: 13px; color: var(--ink-soft); text-align: left; vertical-align: baseline; }
.co-page--wc .co-recurring td { text-align: right; }
/* Titre « Totaux récurrents » */
.co-page--wc .co-recurring .recurring-totals th { font-family: var(--font-display); font-size: 13.5px; font-weight: 500; color: var(--ink); padding: 12px 0 6px; border-top: 1px dashed var(--rose-soft); }
/* Ligne total récurrent : un peu plus marquée */
.co-page--wc .co-recurring .order-total th,
.co-page--wc .co-recurring .order-total td,
.co-page--wc .co-recurring .recurring-total.order-total th,
.co-page--wc .co-recurring .recurring-total.order-total td { font-family: var(--font-display); font-weight: 500; font-size: 14px; color: var(--ink); }
.co-page--wc .co-recurring .order-total td small,
.co-page--wc .co-recurring td small,
.co-page--wc .co-recurring .first-payment-date td,
.co-page--wc .co-recurring .first-payment-date th { font-size: 11.5px; font-weight: 400; color: var(--ink-soft); }
.co-page--wc .co-recurring .first-payment-date td { text-align: right; }
/* Note simplifiée Eden : « Premier prélèvement le … » sur toute la largeur, discrète. */
.co-page--wc .co-recurring .co-recurring-note { text-align: left !important; font-family: var(--font-body); font-size: 11.5px; font-weight: 400; line-height: 1.45; color: var(--ink-soft); padding: 4px 0 0 !important; }
/* Boîte blanche autour des totaux récurrents pour démarquer du fond rosé du récap. */
.co-page--wc .co-recurring-box { background: #fff; border: 1px solid var(--rose-soft); border-radius: 14px; padding: 12px 16px 14px; margin-top: 16px; }
.co-page--wc .co-recurring-box .co-recurring { width: 100%; margin: 0; border-collapse: collapse; }
/* Dans la boîte, le titre n'a plus besoin du séparateur en pointillés ni du padding haut. */
.co-page--wc .co-recurring-box .recurring-totals th { border-top: 0; padding-top: 0; }
/* Montants récurrents un peu plus discrets (prix « pas trop gros »).
   Le vrai coupable était « .co-page--wc .order-total .amount { font-size:22px } » qui
   stylait le <span class="amount"> directement → on le surcharge avec plus de spécificité. */
.co-page--wc .co-recurring-box .recurring-total.order-total th,
.co-page--wc .co-recurring-box .recurring-total.order-total td { font-size: 13.5px !important; }
.co-page--wc .co-recurring-box .recurring-total.order-total td strong { font-weight: 500 !important; }
.co-page--wc .co-recurring-box .recurring-total.order-total td .amount { font-size: 16px !important; font-weight: 500 !important; }
.co-page--wc .co-recurring-box .recurring-total.order-total td small,
.co-page--wc .co-recurring-box .recurring-total.order-total td small .amount { font-size: 11.5px !important; }
/* WCS sort déjà sa propre ligne « Premier renouvellement » dans le td : on la masque
   puisqu'on affiche notre note simplifiée juste en dessous (sinon doublon). */
.co-page--wc .co-recurring-box .first-payment-date { display: none !important; }

/* Notices WooCommerce (erreur CGV, etc.) — pills V2 (sinon rendu brut « ancien thème »). */
body.woocommerce-checkout .woocommerce-error,
body.woocommerce-checkout .woocommerce-message,
body.woocommerce-checkout .woocommerce-info { list-style: none; margin: 0 0 14px; padding: 11px 15px; border-radius: 10px; font-size: 13px; line-height: 1.45; border: 1px solid transparent; }
body.woocommerce-checkout .woocommerce-error li,
body.woocommerce-checkout .woocommerce-message li,
body.woocommerce-checkout .woocommerce-info li { list-style: none; margin: 0; }
body.woocommerce-checkout .woocommerce-error { background: #fcebe9; border-color: #f3cfca; color: #a8421c; }
body.woocommerce-checkout .woocommerce-message { background: #eef7e9; border-color: #cfe6bf; color: #3f6b2e; }
body.woocommerce-checkout .woocommerce-info { background: var(--rose-mist); border-color: var(--rose-soft); color: var(--ink); }
body.woocommerce-checkout .woocommerce-error::before,
body.woocommerce-checkout .woocommerce-message::before,
body.woocommerce-checkout .woocommerce-info::before { display: none !important; }
/* WC ajoute une « .checkout-inline-error-message » rouge à côté du champ invalide (la petite ligne rouge
   en double sous la case CGV) → on la masque, on garde uniquement le pill récapitulatif. */
body.woocommerce-checkout .checkout-inline-error-message { display: none !important; }
/* WC préfixe les erreurs DANS le <form> (= ma grille) → on force le bloc à occuper toute la largeur
   (sinon il devient une cellule de grille au coin haut-gauche et casse la mise en page). */
.co-page--wc .woocommerce-NoticeGroup,
.co-page--wc .woocommerce-NoticeGroup-checkout { grid-column: 1 / -1; margin: 12px 0 0; }
/* Zone « save » Stripe : on enlève les bordures de fieldset (la « ligne intérieure » immonde). */
.co-page--wc #payment fieldset { border: 0 !important; margin: 0 !important; padding: 0 !important; }
.co-page--wc #payment .woocommerce-SavedPaymentMethods-saveNew { border-top: 0 !important; }
/* Case « Enregistrer mes informations de paiement » : case à gauche, texte à droite (pas centré). */
.co-page--wc .woocommerce-SavedPaymentMethods-saveNew,
.co-page--wc p.woocommerce-SavedPaymentMethods-saveNew { display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; align-items: center; justify-content: flex-start; gap: 9px; margin: 12px 0 0 !important; padding: 0 !important; text-align: left !important; float: none !important; }
.co-page--wc .woocommerce-SavedPaymentMethods-saveNew label { margin: 0 !important; display: inline !important; font-family: var(--font-body); font-size: 13px; color: var(--ink-soft); cursor: pointer; }
.co-page--wc .woocommerce-SavedPaymentMethods-saveNew input[type="checkbox"] { appearance: none !important; -webkit-appearance: none !important; flex: 0 0 auto !important; width: 20px !important; height: 20px !important; min-width: 20px !important; margin: 0 !important; border: 1.5px solid var(--rose-soft) !important; border-radius: 6px !important; background: #fff !important; cursor: pointer; position: relative; transition: background .15s, border-color .15s; }
.co-page--wc .woocommerce-SavedPaymentMethods-saveNew input[type="checkbox"]:checked { background: var(--rose) !important; border-color: var(--rose) !important; }
.co-page--wc .woocommerce-SavedPaymentMethods-saveNew input[type="checkbox"]:checked::after { content: ""; position: absolute; left: 6px; top: 2px; width: 5px; height: 10px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
/* Case CGV : case à gauche, texte juste devant (flex robuste). */
.co-page--wc .woocommerce-terms-and-conditions-wrapper label.checkbox,
.co-page--wc .woocommerce-terms-and-conditions-wrapper label.woocommerce-form__label-for-checkbox { display: flex !important; align-items: flex-start; gap: 9px; }
.co-page--wc .woocommerce-terms-and-conditions-wrapper label .woocommerce-terms-and-conditions-checkbox-text { flex: 1 1 auto; }
.co-place-order { display: block; width: 100%; background: var(--rose); color: #fff; border: none; border-radius: 99px; padding: 16px; font: inherit; font-weight: 500; font-size: 14px; cursor: pointer; margin-top: 18px; text-align: center; text-decoration: none; box-shadow: 0 10px 24px -8px color-mix(in oklab, var(--rose) 70%, transparent); }
.co-place-order:hover { background: var(--rose-deep); }
.co-tos { font-size: 11.5px; color: var(--ink-mute); margin-top: 12px; text-align: center; line-height: 1.5; }
.co-tos a { color: var(--rose-deep); text-decoration: underline; }

/* ===== Checkout : header épuré (logo centré, sans recherche / Bien choisir / compte / favoris / panier) ===== */
body.woocommerce-checkout .header .search-wrap,
body.woocommerce-checkout .header .utils { display: none !important; }
body.woocommerce-checkout .header .header-inner { display: flex; justify-content: center; }
body.woocommerce-checkout .nav { display: none !important; }
/* Checkout épuré : pas de widget Discord ni d'icônes réseaux sociaux dans le topbar. */
body.woocommerce-checkout .eden-discord--topbar,
body.woocommerce-checkout .topbar-socials { display: none !important; }
/* Checkout épuré : on masque le texte défilant mais on GARDE .topbar-center (colonne 1fr de la grille)
   pour que le bloc Support reste dans la 3e colonne, à droite. */
body.woocommerce-checkout .topbar-rotator { display: none !important; }

/* Code promo dans le récap — « pill » unique (icône étiquette + input + bouton rose), version claire */
.co-page--wc .co-coupon { display: flex !important; gap: 0; align-items: center; margin: 14px 0; padding: 4px 4px 4px 0; background: #fff; border: 1px solid var(--rose-soft); border-radius: 12px; position: relative; transition: border-color .15s ease, box-shadow .15s ease; }
.co-page--wc .co-coupon:focus-within { border-color: var(--rose); box-shadow: 0 0 0 3px var(--rose-mist); }
.co-page--wc .co-coupon::before { content: ""; position: absolute; left: 13px; top: 50%; transform: translateY(-50%); width: 16px; height: 16px; pointer-events: none; background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23A66898' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z'/%3E%3Cline x1='7' y1='7' x2='7.01' y2='7'/%3E%3C/svg%3E"); }
.co-page--wc .co-coupon .co-coupon-input { flex: 1 1 auto; min-width: 0; box-sizing: border-box; background: transparent; border: 0; outline: none; box-shadow: none; padding: 10px 10px 10px 40px; font-size: 13.5px; font-weight: 500; letter-spacing: .02em; text-transform: uppercase; color: var(--ink); font-family: var(--font-body); }
.co-page--wc .co-coupon .co-coupon-input::placeholder { text-transform: none; letter-spacing: 0; font-weight: 400; color: var(--ink-mute); }
.co-page--wc .co-coupon-btn { flex: 0 0 auto; background: var(--rose); color: #fff; border: 0; border-radius: 9px; padding: 9px 16px; font-family: var(--font-body); font-size: 13px; font-weight: 500; letter-spacing: .01em; text-transform: none; cursor: pointer; transition: background .15s ease, transform .1s ease; }
.co-page--wc .co-coupon-btn:hover { background: var(--rose-deep); }
.co-page--wc .co-coupon-btn:active { transform: scale(.97); }
.co-page--wc .co-coupon-btn:active { transform: scale(.98); }
.co-page--wc .co-coupon-msg { display: flex; align-items: flex-start; gap: 8px; margin: -4px 0 12px; padding: 8px 12px; border-radius: 10px; font-size: 12.5px; line-height: 1.4; border: 1px solid transparent; }
.co-page--wc .co-coupon-msg[hidden] { display: none !important; }
.co-page--wc .co-coupon-msg-text { flex: 1 1 auto; }
.co-page--wc .co-coupon-msg-close { flex: 0 0 auto; background: transparent; border: 0; padding: 0 2px; margin: -1px -2px 0 0; font-size: 17px; line-height: 1; cursor: pointer; color: inherit; opacity: .55; transition: opacity .15s; }
.co-page--wc .co-coupon-msg-close:hover { opacity: 1; }
.co-page--wc .co-coupon-msg.is-success { background: #eef7e9; border-color: #cfe6bf; color: #3f6b2e; }
.co-page--wc .co-coupon-msg.is-error { background: #fcebe9; border-color: #f3cfca; color: #a8421c; }
.co-page--wc .co-summary-totals .woocommerce-remove-coupon { margin-left: 6px; font-size: 11px; color: var(--rose-deep); text-decoration: underline; }
.co-page--wc .co-summary-totals .leden-gc-remove { margin-left: 6px; font-size: 11px; color: var(--rose-deep); text-decoration: underline; }
/* Smart Coupons injecte un bloc message + des <style> en haut de la colonne gauche (enfants du grid)
   → ils créaient un track + un gap qui décalait la 1re carte. On les neutralise. */
.co-page.co-page--wc { margin-top: -70px; position: relative; z-index: 6; } /* remonte le contenu au-dessus du brush divider du hero (z-index:3) */
/* Hero centré sur le checkout uniquement. */
body.woocommerce-checkout .cat-banner,
body.woocommerce-checkout .cat-banner__content { text-align: center; }
body.woocommerce-checkout .cat-banner__content { margin-left: auto; margin-right: auto; }
.co-page--wc .wc_coupon_message_wrap { display: none !important; }
.co-page--wc .co-form > style { display: none !important; }
/* L'accordéon « Codes promos disponibles (0) » de Smart Coupons : 1er bloc du grid → créait le gap de 24px. */
.co-page--wc #coupons_list, .co-page--wc #sc-cc { display: none !important; }
/* Aligne le haut du récap (droite) sur les cartes (gauche) : même padding-haut + même hauteur de titre → titres sur la même ligne. */
.co-page--wc .co-summary { padding-top: 24px; position: static; }
.co-page--wc .co-summary h3#order_review_heading { font-size: 18px; line-height: 22px; min-height: 22px; display: flex; align-items: center; margin: 0 0 16px; }

/* ===== Checkout WC réel habillé au style V2 (scopé .co-page--wc) ===== */
.co-page--wc .co-empty { text-align: center; }
.co-page--wc .co-empty p { margin: 0 0 14px; color: var(--ink-soft); }
/* Champs (billing / shipping / notes) → look .co-field, disposés en grille */
.co-page--wc .woocommerce-billing-fields__field-wrapper,
.co-page--wc .woocommerce-shipping-fields__field-wrapper,
.co-page--wc .woocommerce-additional-fields__field-wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.co-page--wc .form-row { display: flex; flex-direction: column; gap: 4px; margin: 0 0 4px; padding: 0; float: none !important; width: auto !important; }
.co-page--wc .form-row-wide, .co-page--wc .form-row.notes, .co-page--wc .woocommerce-additional-fields__field-wrapper { grid-column: 1 / -1; }
.co-page--wc .form-row label { font-size: 12px; color: var(--ink-soft); font-weight: 500; }
.co-page--wc .form-row label .required { color: var(--rose-deep); border: 0; }
.co-page--wc .form-row .input-text,
.co-page--wc .form-row select,
.co-page--wc .form-row textarea { font: inherit; width: 100%; box-sizing: border-box; padding: 11px 14px; border: 1.5px solid var(--rose-soft); border-radius: 10px; background: #fff; color: var(--ink); font-size: 14px; transition: border-color .2s; }
.co-page--wc .form-row .input-text:focus,
.co-page--wc .form-row select:focus,
.co-page--wc .form-row textarea:focus { outline: none; border-color: var(--rose); }
/* Reset focus propre sur TOUS les champs du checkout (supprime le contour/shadow carré par défaut du navigateur) */
.co-page--wc input:focus,
.co-page--wc input:focus-visible,
.co-page--wc select:focus,
.co-page--wc textarea:focus { outline: none !important; box-shadow: none !important; }
/* Les champs avec bordure signalent le focus en rose (recherche relais GLS incluse) */
.co-page--wc .gls-search-input:focus,
.co-page--wc .gls-customer-mobile:focus { border-color: var(--rose); }
/* Section « Expédier vers une adresse différente ? » (livraison native WC) */
.co-page--wc .woocommerce-shipping-fields { margin-top: 16px; padding-top: 16px; border-top: 1px dashed var(--rose-soft); }
.co-page--wc #ship-to-different-address { margin: 0; }
.co-page--wc #ship-to-different-address label { display: flex; align-items: center; gap: 9px; cursor: pointer; font-family: var(--font-body); font-size: 14px; font-weight: 500; color: var(--ink); }
.co-page--wc #ship-to-different-address input[type="checkbox"] { flex: 0 0 auto; appearance: none; -webkit-appearance: none; width: 20px; height: 20px; margin: 0; border: 1.5px solid var(--rose-soft); border-radius: 6px; background: #fff; cursor: pointer; position: relative; transition: background .15s, border-color .15s; }
.co-page--wc #ship-to-different-address input[type="checkbox"]:checked { background: var(--rose); border-color: var(--rose); }
.co-page--wc #ship-to-different-address input[type="checkbox"]:checked::after { content: ""; position: absolute; left: 6px; top: 2px; width: 5px; height: 10px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.co-page--wc .shipping_address { margin-top: 16px; }
.co-page--wc .select2-container .select2-selection--single { height: auto; min-height: 44px; padding: 5px 8px; border: 1.5px solid var(--rose-soft); border-radius: 10px; display: flex; align-items: center; }
.co-page--wc .select2-container--default .select2-selection--single .select2-selection__arrow { top: 50%; transform: translateY(-50%); }
.co-page--wc #ship-to-different-address { font-family: var(--font-display); font-size: 18px; font-weight: 500; margin: 0 0 12px; }
.co-page--wc #ship-to-different-address label { display: flex; align-items: center; gap: 8px; cursor: pointer; }
.co-page--wc .woocommerce-shipping-fields > h3:first-child:not(#ship-to-different-address) { font-family: var(--font-display); font-size: 18px; font-weight: 500; margin: 0 0 12px; }
/* Récap commande (table items + totaux) */
.co-page--wc #order_review { font-size: 13px; }
.co-page--wc .woocommerce-checkout-review-order-table { width: 100%; border-collapse: collapse; margin: 0; }
.co-page--wc .woocommerce-checkout-review-order-table thead { display: none; }
.co-page--wc .woocommerce-checkout-review-order-table th,
.co-page--wc .woocommerce-checkout-review-order-table td { padding: 9px 0; border: 0; text-align: left; vertical-align: top; }
.co-page--wc .woocommerce-checkout-review-order-table .cart_item td:last-child,
.co-page--wc .woocommerce-checkout-review-order-table tfoot td,
.co-page--wc .woocommerce-checkout-review-order-table tfoot th { text-align: right; }
.co-page--wc .woocommerce-checkout-review-order-table .product-name { color: var(--ink); font-weight: 500; }
.co-page--wc .woocommerce-checkout-review-order-table .product-quantity { color: var(--ink-soft); }
.co-page--wc .woocommerce-checkout-review-order-table tfoot tr th { font-weight: 500; color: var(--ink-soft); padding-top: 12px; border-top: 1px dashed var(--rose-soft); }
.co-page--wc .woocommerce-checkout-review-order-table tfoot tr td { padding-top: 12px; border-top: 1px dashed var(--rose-soft); }
.co-page--wc .woocommerce-checkout-review-order-table tfoot .order-total th,
.co-page--wc .woocommerce-checkout-review-order-table tfoot .order-total td { border-top: 1px solid var(--rose-soft); }
.co-page--wc .order-total .amount { font-family: var(--font-display); font-size: 22px; font-weight: 500; color: var(--ink); }
/* Modes de livraison (dans le récap) → pastilles */
.co-page--wc #shipping_method { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 6px; }
.co-page--wc #shipping_method li { display: flex; align-items: center; gap: 8px; }
.co-page--wc #shipping_method li input { accent-color: var(--rose); }
.co-page--wc #shipping_method li label { margin: 0; }
/* Paiement → look .co-pay-option */
.co-page--wc #payment { background: transparent; border-radius: 0; padding: 14px 0 0; }
.co-page--wc #payment .wc_payment_methods { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.co-page--wc #payment .wc_payment_method > input { display: none; }
.co-page--wc #payment .wc_payment_method > label { display: flex; align-items: center; gap: 10px; padding: 13px 16px; border: 1.5px solid var(--rose-soft); border-radius: 12px; cursor: pointer; font-size: 14px; font-weight: 500; margin: 0; }
.co-page--wc #payment .wc_payment_method > input:checked + label { border-color: var(--rose); background: var(--rose-mist); }
.co-page--wc #payment .wc_payment_method img { margin-left: auto; max-height: 24px; }
.co-page--wc #payment .payment_box { background: #fff !important; border: 1px solid var(--rose-soft) !important; border-radius: 10px; padding: 13px 14px; margin: 8px 0 0; color: var(--ink-soft); line-height: 1.5; box-shadow: none !important; }
.co-page--wc #payment .payment_box, .co-page--wc #payment .payment_box p { font-size: 14px !important; }
.co-page--wc #payment .payment_box p { margin: 0; }
.co-page--wc #payment .payment_box::before { display: none !important; }
/* Champs carte Stripe (legacy elements) : bordure rose + lueur ROSE au focus (pas bleue). */
.co-page--wc .wc-stripe-elements-field,
.co-page--wc .wc-stripe-iban-element-field { border: 1.5px solid var(--rose-soft) !important; border-radius: 10px !important; padding: 11px 12px !important; background: #fff !important; box-shadow: none !important; transition: border-color .15s ease, box-shadow .15s ease; }
.co-page--wc .wc-stripe-elements-field.focused,
.co-page--wc .wc-stripe-elements-field.StripeElement--focus,
.co-page--wc .StripeElement--focus,
.co-page--wc .wc-stripe-elements-field:focus-within { border-color: var(--rose) !important; box-shadow: 0 0 0 3px var(--rose-mist) !important; outline: none !important; }
/* Erreurs de champ Stripe : petit texte rouge inline (pas un gros pill). */
.co-page--wc .stripe-source-errors { margin: 4px 0 0; }
.co-page--wc .stripe-source-errors .woocommerce-error,
.co-page--wc .stripe-source-errors .wc-stripe-error { list-style: none; margin: 0 !important; padding: 0 !important; background: transparent !important; border: 0 !important; font-size: 11.5px !important; font-weight: 400 !important; color: #c0392b !important; line-height: 1.35; }
.co-page--wc .stripe-source-errors li { list-style: none; margin: 0 !important; font-size: 11.5px !important; }
/* Récap d'étape replié : montant moins gras. */
.co-page--wc .co-step-summary strong { font-weight: 500; }
/* Conteneurs internes Stripe : pas de fond gris (UPE element + save-info). */
.co-page--wc #payment .wc-stripe-upe-element,
.co-page--wc #payment .StripeElement,
.co-page--wc #payment .woocommerce-SavedPaymentMethods,
.co-page--wc #payment .woocommerce-SavedPaymentMethods-saveNew,
.co-page--wc #payment .wc-stripe-save-payment-method { background: transparent !important; border-top: 0 !important; }
.co-page--wc #payment .place-order { padding: 0; margin: 0; }
/* Case CGV (conditions générales) avant le bouton Payer */
.co-page--wc .woocommerce-terms-and-conditions-wrapper { margin: 16px 0 2px; }
.co-page--wc .woocommerce-terms-and-conditions-wrapper .form-row { margin: 0; padding: 0; }
.co-page--wc .woocommerce-terms-and-conditions-wrapper label { display: flex; align-items: flex-start; gap: 9px; margin: 0; cursor: pointer; font-family: var(--font-body); font-size: 13px; color: var(--ink-soft); line-height: 1.45; }
.co-page--wc #terms { appearance: none; -webkit-appearance: none; flex: 0 0 auto; width: 20px; height: 20px; margin: 1px 0 0; border: 1.5px solid var(--rose-soft); border-radius: 6px; background: #fff; cursor: pointer; position: relative; transition: background .15s, border-color .15s; }
.co-page--wc #terms:checked { background: var(--rose); border-color: var(--rose); }
.co-page--wc #terms:checked::after { content: ""; position: absolute; left: 6px; top: 2px; width: 5px; height: 10px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.co-page--wc .woocommerce-terms-and-conditions-checkbox-text a { color: var(--rose-deep); text-decoration: underline; }
.co-page--wc .woocommerce-terms-and-conditions-wrapper .required { color: var(--rose-deep); border: 0; }
.co-page--wc .woocommerce-terms-and-conditions-wrapper { font-size: 12px; color: var(--ink-mute); margin: 12px 0 0; }
.co-page--wc #place_order { display: block; width: 100%; background: #CC8BB9; color: #fff; border: 1px solid #CC8BB9; border-radius: 9px; padding: 12px; font: inherit; font-weight: 500; font-size: 14px; cursor: pointer; margin-top: 4px; box-shadow: none; transition: .15s; }
/* Bloc paiement compact : on resserre l'espace au-dessus du bouton (comme les boutons « Continuer »). */
.co-page--wc #payment { padding-top: 8px; }
.co-page--wc #payment .place-order { padding: 0 !important; margin: 0 !important; }
.co-page--wc .woocommerce-terms-and-conditions-wrapper { margin: 12px 0 0; }
.co-page--wc #place_order:hover { background: #A66898; border-color: #A66898; color: #fff; }
.co-page--wc .woocommerce-form-coupon-toggle { margin-bottom: 16px; }
/* Récap V2 : mini-article avec vraie image + badge quantité */
.co-page--wc .co-mini-imgwrap { position: relative; width: 50px; height: 50px; }
.co-page--wc .co-mini-imgwrap img { width: 50px; height: 50px; border-radius: 10px; object-fit: contain; background: #fff; display: block; }
.co-page--wc .co-mini-info { min-width: 0; }
.co-page--wc .co-ship-empty { font-size: 13px; color: var(--ink-soft); margin: 0; padding: 4px 2px; }
.co-page--wc .co-card--payment .co-pay-name { font-weight: 500; }
/* Écart entre les cartes Contact et Adresse via margin (PAS de gap : un gap pousse aussi la 1re carte). */
.co-page--wc .woocommerce-billing-fields { display: block; }
.co-page--wc .woocommerce-billing-fields > .co-card { margin: 0 0 14px; }
.co-page--wc .woocommerce-billing-fields > .co-card:last-child { margin-bottom: 0; }

/* ===== Checkout en étapes (accordéon) — couleurs Eden, par-dessus les .co-card ===== */
.co-layout[data-steps="on"] .co-step { transition: border-color .2s ease, opacity .2s ease, padding .2s ease; }
/* Bouton « Modifier » dans le titre (visible seulement en done) */
.co-layout[data-steps="on"] .co-step h3 .co-step-edit {
	margin-left: auto; background: transparent; border: 0; padding: 4px 8px; font-family: var(--font-body);
	font-size: 13px; font-weight: 500; color: var(--rose-deep); cursor: pointer; border-radius: 8px; display: none;
}
.co-layout[data-steps="on"] .co-step h3 .co-step-edit:hover { background: var(--rose-mist); }
/* Récap (visible seulement en done) */
.co-layout[data-steps="on"] .co-step .co-step-summary { display: none; padding-left: 30px; font-size: 14px; line-height: 1.5; margin-top: -6px; }
.co-layout[data-steps="on"] .co-step .co-step-summary-line { display: block; color: var(--ink); }
.co-layout[data-steps="on"] .co-step .co-step-summary-line--mute { color: var(--ink-soft); font-size: 13px; margin-top: 2px; }
/* Bouton « Continuer » — style membre rose */
.co-layout[data-steps="on"] .co-step .co-step-continue {
	margin-top: 16px; width: 100%; display: block; background: #CC8BB9; color: #fff; border: 1px solid #CC8BB9;
	border-radius: 9px; padding: 11px 18px; font-family: var(--font-body); font-size: 14px; font-weight: 500;
	cursor: pointer; transition: background .15s ease;
}
.co-layout[data-steps="on"] .co-step .co-step-continue:hover { background: #A66898; border-color: #A66898; }

/* ÉTAT locked : replié, grisé */
.co-layout[data-steps="on"] .co-step[data-step-state="locked"] { opacity: .55; padding-top: 16px; padding-bottom: 16px; }
.co-layout[data-steps="on"] .co-step[data-step-state="locked"] .co-step-body,
.co-layout[data-steps="on"] .co-step[data-step-state="locked"] .co-step-continue,
.co-layout[data-steps="on"] .co-step[data-step-state="locked"] .co-step-summary { display: none; }
.co-layout[data-steps="on"] .co-step[data-step-state="locked"] h3 { margin-bottom: 0; }
.co-layout[data-steps="on"] .co-step[data-step-state="locked"] .co-step-body { pointer-events: none; }

/* ÉTAT active : bordure rose accentuée, corps visible */
.co-layout[data-steps="on"] .co-step[data-step-state="active"] { border-color: var(--rose); }
.co-layout[data-steps="on"] .co-step[data-step-state="active"] .co-step-summary { display: none; }

/* ÉTAT done : replié, récap + Modifier + coche */
.co-layout[data-steps="on"] .co-step[data-step-state="done"] { padding-top: 16px; padding-bottom: 16px; }
.co-layout[data-steps="on"] .co-step[data-step-state="done"] .co-step-body,
.co-layout[data-steps="on"] .co-step[data-step-state="done"] .co-step-continue { display: none; }
.co-layout[data-steps="on"] .co-step[data-step-state="done"] .co-step-summary { display: block; }
.co-layout[data-steps="on"] .co-step[data-step-state="done"] h3 { margin-bottom: 8px; }
.co-layout[data-steps="on"] .co-step[data-step-state="done"] h3 .co-step-edit { display: inline-flex; }
/* Numéro → coche en done */
.co-layout[data-steps="on"] .co-step[data-step-state="done"] h3 .co-num { font-size: 0; }
.co-layout[data-steps="on"] .co-step[data-step-state="done"] h3 .co-num::after { content: "✓"; font-size: 12px; font-weight: 700; }

/* Erreur de validation : secousse + bordure rouge */
.co-layout[data-steps="on"] .co-step.is-error { border-color: #d9534f; animation: coStepShake .25s ease-in-out; }
@keyframes coStepShake { 0%,100% { transform: translateX(0); } 25% { transform: translateX(-4px); } 75% { transform: translateX(4px); } }

/* ===== Étape Cagnotte : « carte bancaire » prairie aux lapins (couleurs Eden) ===== */
/* Le bloc loyalty interne devient une vraie carte type CB (dégradé + puce + prairie). */
.co-page--wc .co-card--cashback #co-cashback-mount .wc-loyalty-cashback-toggle {
	position: relative; overflow: hidden; isolation: isolate;
	border: 0 !important; border-radius: 14px; padding: 14px 16px 32px !important; margin: 0 !important;
	background: linear-gradient(160deg, #fdeaf4 0%, #f3cfe6 38%, #e7d4ef 57%, #cee9c7 100%);
	box-shadow: 0 6px 18px rgba(204,139,185,.18), inset 0 1px 0 rgba(255,255,255,.6);
}
/* Colline verte (prairie) en bas de la CB */
.co-page--wc .co-card--cashback .wc-loyalty-cashback-toggle::before {
	content: ""; position: absolute; left: -8%; right: -8%; bottom: -14px; height: 44px; z-index: 0; pointer-events: none;
	background: radial-gradient(60% 100% at 32% 0, #c4e8ad 0, #a9dc90 58%, #8ccf74 100%);
	border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}
/* Quelques lapins discrets sur la prairie */
.co-page--wc .co-card--cashback .wc-loyalty-cashback-toggle::after {
	content: "🐇   🌿   🐰"; position: absolute; left: 0; right: 0; bottom: 7px; z-index: 1; pointer-events: none;
	text-align: center; font-size: 13px; letter-spacing: 3px; line-height: 1; opacity: .9;
}
/* Tout le contenu interne transparent (fin du cadre blanc + barre bleue) — au-dessus de la prairie */
.co-page--wc .co-card--cashback .cashback-toggle-header,
.co-page--wc .co-card--cashback .cashback-balance-info,
.co-page--wc .co-card--cashback .cashback-toggle-control,
.co-page--wc .co-card--cashback .balance-amount,
.co-page--wc .co-card--cashback .balance-amount .woocommerce-Price-amount {
	background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; position: relative; z-index: 2;
}
/* En-tête : label carte + puce dorée à droite */
.co-page--wc .co-card--cashback .cashback-toggle-header { display: flex !important; flex-direction: column; gap: 2px; margin: 0 !important; }
.co-page--wc .co-card--cashback .cashback-toggle-header::after {
	content: ""; position: absolute; top: 1px; right: 0; width: 36px; height: 27px; border-radius: 6px; z-index: 2;
	background-image: linear-gradient(135deg, #ecc862, #d3aa49), repeating-linear-gradient(90deg, transparent 0 6px, rgba(0,0,0,.06) 6px 7px);
	box-shadow: inset 0 0 0 1px rgba(255,255,255,.45);
}
.co-page--wc .co-card--cashback .cashback-toggle-title {
	font-family: var(--font-body); font-size: 11px; font-weight: 700; letter-spacing: 1.6px;
	text-transform: uppercase; color: var(--rose-deep); margin: 0 0 8px !important;
}
.co-page--wc .co-card--cashback .cashback-balance-info { display: flex !important; flex-direction: column; gap: 0; margin: 0 !important; }
.co-page--wc .co-card--cashback .balance-label { font-size: 11px; color: var(--ink-soft); letter-spacing: .3px; }
.co-page--wc .co-card--cashback .balance-amount,
.co-page--wc .co-card--cashback .balance-amount .woocommerce-Price-amount {
	font-family: var(--font-display); font-size: 22px; font-weight: 600; color: var(--ink); letter-spacing: -.02em; line-height: 1.1;
}
.co-page--wc .co-card--cashback .cashback-toggle-control { margin-top: 14px !important; }
.co-page--wc .co-card--cashback .cashback-note { position: relative; z-index: 2; font-size: 11.5px; color: var(--ink-soft); margin: 8px 0 0 !important; max-width: 66%; line-height: 1.45; }

/* Poids des boutons du checkout aligné sur le tableau de bord (400). */
.co-page--wc .co-step-continue,
.co-page--wc #place_order,
.co-page--wc .co-coupon-btn,
.co-page--wc .co-place-order,
.co-page--wc .lrm-trigger,
.co-page--wc .lrm-chosen-change,
.lrm__confirm { font-weight: 400 !important; }

/* GLS — sélecteur de point relais habillé V2 */
.co-page--wc .gls-container { margin-top: 12px; }
/* Livraison gratuite : « Offert » en vert (méthode de livraison + récap) */
.co-page--wc .co-ship-free { color: #2e9e5b; font-weight: 600; }

/* ===== Modale point relais (bouton dans la carte + popup carte gauche / liste droite) ===== */
/* Le widget GLS vit dans la modale → on le masque s'il reste en ligne dans la carte (anti-flash). */
.co-page--wc .co-card--ship .gls-container { display: none !important; }
.co-page--wc .lrm-bar { margin-top: 14px; display: flex; flex-direction: column; align-items: stretch; gap: 10px; }
/* Bouton « Choisir un point relais » : LARGE + outline (distinct du bouton plein « Continuer »). */
.co-page--wc .lrm-trigger { width: 100%; display: inline-flex; align-items: center; justify-content: center; gap: 8px; background: #fff; color: var(--rose-deep); border: 1.5px solid var(--rose); border-radius: 10px; padding: 12px 18px; font-family: var(--font-body); font-size: 13.5px; font-weight: 500; cursor: pointer; transition: background .15s, color .15s; }
.co-page--wc .lrm-trigger::before { content: "📍"; }
.co-page--wc .lrm-trigger:hover { background: var(--rose-mist); }
/* Relais choisi : carte rose-mist avec poubelle à droite + lien « Changer » dedans */
.co-page--wc .lrm-chosen { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; box-sizing: border-box; padding: 12px 14px; background: var(--rose-mist); border: 1px solid var(--rose-soft); border-radius: 10px; font-size: 13.5px; }
.co-page--wc .lrm-chosen[hidden] { display: none; }
.co-page--wc .lrm-chosen-info { flex: 1 1 auto; min-width: 0; }
.co-page--wc .lrm-chosen-name { font-family: var(--font-body); font-size: 13.5px; font-weight: 500; color: var(--ink); }
.co-page--wc .lrm-chosen-addr { color: var(--ink-soft); font-size: 12.5px; margin-top: 2px; }
.co-page--wc .lrm-chosen-change { display: inline-flex; align-items: center; gap: 5px; margin-top: 8px; background: transparent; border: 0; padding: 0; color: var(--rose-deep); font-family: var(--font-body); font-size: 12.5px; font-weight: 500; cursor: pointer; text-decoration: none; }
.co-page--wc .lrm-chosen-change::before { content: "✏️"; font-size: 11px; text-decoration: none; }
.co-page--wc .lrm-chosen-change:hover { color: var(--rose); }
.co-page--wc .lrm-chosen-remove { flex: 0 0 auto; background: transparent; border: 0; padding: 4px; line-height: 0; color: var(--ink-mute); cursor: pointer; border-radius: 8px; transition: color .15s, background .15s; }
.co-page--wc .lrm-chosen-remove:hover { color: #c0392b; background: #fff; }

/* Overlay + panneau (ajouté au <body>, donc hors .co-page) */
.lrm { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 20px; }
.lrm[hidden] { display: none; }
.lrm__backdrop { position: absolute; inset: 0; background: rgba(26, 26, 26, .55); }
.lrm__panel { position: relative; z-index: 1; width: min(980px, 96vw); background: #fff; border-radius: 18px; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 24px 70px rgba(0, 0, 0, .32); }
.lrm__head { display: flex; align-items: center; justify-content: space-between; padding: 15px 20px; border-bottom: 1px solid var(--rose-soft); flex: 0 0 auto; }
.lrm__head h3 { margin: 0; font-family: var(--font-display); font-size: 18px; font-weight: 500; color: var(--ink); }
.lrm__close { background: transparent; border: 0; font-size: 26px; line-height: 1; color: var(--ink-soft); cursor: pointer; padding: 0 4px; }
.lrm__close:hover { color: var(--ink); }
.lrm__panel { height: min(90vh, 660px); max-height: 94vh; }
.lrm__foot { flex: 0 0 auto; display: flex; align-items: center; justify-content: flex-end; gap: 12px; padding: 12px 20px; border-top: 1px solid var(--rose-soft); }
.lrm__selected { margin-right: auto; min-width: 0; font-size: 13px; font-weight: 600; color: var(--rose-deep); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lrm__selected[hidden] { display: none; }
.lrm__confirm { flex: 0 0 auto; background: var(--rose); color: #fff; border: 0; border-radius: 9px; padding: 9px 16px; font-family: var(--font-body); font-size: 13px; font-weight: 500; cursor: pointer; transition: background .15s; }
.lrm__confirm:hover { background: var(--rose-deep); }
.lrm__confirm[disabled] { opacity: .45; cursor: not-allowed; }
.lrm__list--nudge { animation: lrmNudge .3s ease; }
@keyframes lrmNudge { 0%,100% { transform: translateX(0); } 25% { transform: translateX(-5px); } 75% { transform: translateX(5px); } }
body.lrm-open { overflow: hidden; }
/* 2 colonnes propres : la carte et la liste sont DÉPLACÉES dans ces conteneurs par checkout-steps.js. */
.lrm__body { flex: 1 1 auto; min-height: 0; display: flex; }
.lrm__map { position: relative; flex: 1 1 50%; min-width: 0; }
.lrm__map .gls-relay-map { position: absolute; inset: 0; height: auto !important; margin: 0 !important; padding: 0 !important; max-width: none; }
.lrm__map #gls-map { position: absolute; inset: 0; height: 100% !important; width: 100% !important; border-radius: 0; }
/* Marqueurs de la carte : pin goutte rose, lettre blanche dedans (la wrapper EST le pin). */
.lrm .leaflet-div-icon, .lrm .nkmgls-osmap-marker-icon { background: transparent !important; border: 0 !important; box-shadow: none !important; }
.lrm .gls-marker-img { display: none !important; }
/* La lettre jaune (#ffd100) du plugin est rendue via .gls-marker-wrapper:before → on la masque (on garde notre ::after blanc). */
.lrm .gls-marker-wrapper::before { content: none !important; display: none !important; }
.lrm .gls-marker-wrapper {
	display: flex !important; align-items: center; justify-content: center;
	width: 28px !important; height: 28px !important; box-sizing: border-box !important;
	background: var(--rose, #CC8BB9) !important; color: #fff !important;
	border: 2px solid #fff !important; border-radius: 50% 50% 50% 0 !important;
	transform: rotate(-45deg); box-shadow: 0 2px 6px rgba(0,0,0,.4) !important;
}
.lrm .gls-marker-wrapper::after { content: attr(data-marker-id); transform: rotate(45deg); color: #fff; font-family: var(--font-body); font-size: 13px; font-weight: 700; line-height: 1; }
.lrm__list { flex: 1 1 50%; min-width: 0; overflow-y: auto; padding: 12px; border-left: 1px solid var(--rose-soft); }
/* la liste scrolle → on montre tous les relais, pas de « voir plus » */
.lrm__list .gls-loadmore { display: none !important; }
.lrm__list .relay-enable { display: block !important; }
/* neutralise marges/paddings bootstrap du plugin (sinon ça déborde) */
.lrm__list .gls-relay-list { width: 100%; }
.lrm__list .row { margin: 0 !important; }
.lrm__list [class*="col-"] { padding-left: 0 !important; padding-right: 0 !important; max-width: 100%; flex-basis: auto; }
.lrm__list .gls-relay-infos .card-body > .row [class*="col-"] { width: auto; }
.lrm__list .relay-enable + .relay-enable { margin-top: 8px !important; }
/* Cartes relais plus compactes dans la modale (titres + petits, on gagne en hauteur) */
.lrm__list .gls-relay-infos { padding: 9px 12px !important; }
.lrm__list .gls-relay-name, .lrm__list .gls-relay-name strong { font-size: 12.5px !important; font-weight: 500 !important; }
.lrm__list .gls-relay-label { width: 17px !important; height: 17px !important; font-size: 10px !important; margin-left: 5px !important; }
.lrm__list .gls-relay-address { font-size: 11.5px !important; margin-top: 1px !important; line-height: 1.35 !important; }
.lrm__list .gls-relay-distance { font-size: 11.5px !important; font-weight: 600 !important; color: var(--rose-deep) !important; background: var(--rose-mist); padding: 2px 7px; border-radius: 99px; white-space: nowrap; }
@media (max-width: 720px) {
	.lrm__panel { height: 90vh; }
	.lrm__body { flex-direction: column; }
	.lrm__map { flex: 0 0 40%; }
	.lrm__list { flex: 1 1 auto; border-left: 0; border-top: 1px solid var(--rose-soft); }
}
.co-page--wc .gls-heading, .co-page--wc .gls-sub-heading { font-size: 13px; font-weight: 600; color: var(--ink); margin: 0 0 8px; }
.co-page--wc #gls-search-form { margin-top: 10px; }
.co-page--wc #gls-search-form .form-row, .co-page--wc #gls-search-form .input-group { display: flex !important; flex-direction: row !important; flex-wrap: wrap; gap: 8px; margin: 0; align-items: center; }
.co-page--wc .gls-search-input, .co-page--wc .gls-search-postcode, .co-page--wc .gls-search-city, .co-page--wc .gls-search-country { flex: 1 1 140px; min-width: 0; width: auto !important; padding: 10px 12px; border: 1.5px solid var(--rose-soft); border-radius: 10px; font-size: 14px; background: #fff; box-sizing: border-box; }
.co-page--wc #gls-search-form .gls-search-relay { flex: 0 0 auto; margin-top: 0; }
.co-page--wc .gls-search-relay { flex: 0 0 auto; padding: 10px 18px; border: 1px solid #CC8BB9; border-radius: 10px; background: #CC8BB9; color: #fff; font-weight: 400; font-size: 14px; cursor: pointer; transition: .15s; }
.co-page--wc .gls-search-relay:hover { background: #A66898; border-color: #A66898; }
.co-page--wc .gls-search-form-toggler { display: inline-block; color: var(--rose-deep); font-size: 13px; text-decoration: underline; cursor: pointer; margin-bottom: 8px; }
.co-page--wc .gls-relay-list { display: grid; gap: 8px; margin: 8px 0; max-height: none !important; overflow: visible !important; }
.co-page--wc .gls-loadmore { display: block; margin: 10px auto 18px; background: #CC8BB9; border: 1px solid #CC8BB9; color: #fff; border-radius: 10px; padding: 9px 18px; font-size: 13px; font-weight: 400; cursor: pointer; transition: .15s; }
.co-page--wc .gls-loadmore:hover { background: #A66898; border-color: #A66898; }
/* Neutralise la grille Bootstrap du widget (marges négatives + paddings qui débordent) */
.co-page--wc .gls-relay-list .row { margin: 0 !important; }
.co-page--wc .gls-relay-list [class*="col-"], .co-page--wc .gls-relay-list .col, .co-page--wc .gls-relay-list .card-body { padding-left: 0 !important; padding-right: 0 !important; }
.co-page--wc .gls-relay-list * { box-sizing: border-box; max-width: 100%; }
.co-page--wc .gls-relay-infos { border: 1.5px solid var(--rose-soft); border-radius: 12px; background: #fff; padding: 12px 14px; cursor: pointer; transition: border-color .15s, background .15s; width: 100%; }
.co-page--wc .gls-relay-infos:hover { border-color: var(--rose); }
.co-page--wc .gls-relay-infos:has(.gls-select-relay:checked) { border-color: var(--rose); background: var(--rose-mist); }
.co-page--wc .gls-relay-infos .card-body { padding: 0; }
.co-page--wc .gls-relay-infos .card-body > .row { display: flex; align-items: flex-start; gap: 10px; flex-wrap: nowrap; width: 100%; }
.co-page--wc .gls-relay-infos .card-title { display: flex; align-items: center; flex-wrap: wrap; gap: 2px 6px; margin: 0; }
.co-page--wc .col-select-relay { flex: 0 0 auto; width: auto; }
.co-page--wc .gls-select-relay { appearance: none; -webkit-appearance: none; width: 18px; height: 18px; margin: 2px 0 0; border: 2px solid var(--rose-soft); border-radius: 50%; position: relative; cursor: pointer; flex: 0 0 auto; }
.co-page--wc .gls-select-relay:checked { border-color: var(--rose); }
.co-page--wc .gls-select-relay:checked::after { content: ""; position: absolute; inset: 3px; background: var(--rose); border-radius: 50%; }
.co-page--wc .gls-relay-infos label.col { flex: 1 1 auto; margin: 0; cursor: pointer; min-width: 0; }
.co-page--wc .gls-relay-name { font-size: 14px; font-weight: 600; color: var(--ink); }
.co-page--wc .gls-relay-infos .separator { display: none; }
.co-page--wc .gls-relay-label { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 50%; background: var(--rose); color: #fff; font-size: 11px; font-weight: 700; margin-left: 6px; }
.co-page--wc .gls-relay-address { font-size: 12.5px; color: var(--ink-soft); margin-top: 2px; line-height: 1.4; }
.co-page--wc .gls-relay-distance { font-size: 12px; color: var(--ink-mute); white-space: nowrap; }
.co-page--wc .gls-relay-map, .co-page--wc #gls-map { height: 280px; border-radius: 12px; overflow: hidden; margin-top: 8px; }
.co-page--wc .gls-relay-map .leaflet-container { height: 280px; }
/* Arrondis forcés (le CSS Bootstrap/plugin GLS mettait des coins carrés) */
.co-page--wc .gls-relay-infos, .co-page--wc .gls-container .card, .co-page--wc .gls-relay-list .card { border-radius: 14px !important; }
.co-page--wc .gls-search-input, .co-page--wc .gls-search-postcode, .co-page--wc .gls-search-city, .co-page--wc .gls-search-country, .co-page--wc .gls-customer-mobile { border-radius: 10px !important; }
.co-page--wc .gls-search-relay { border-radius: 10px !important; }
.co-page--wc .gls-relay-map, .co-page--wc #gls-map, .co-page--wc .gls-relay-map .leaflet-container { border-radius: 12px !important; }
.co-page--wc .co-pay-option { border-radius: 12px !important; }
/* Masque le bouton de secours sans-JS « Mettre à jour le pays/région » (le JS gère la maj) */
.co-page--wc button[name="woocommerce_checkout_update_totals"] { display: none !important; }
/* Bouton « Payer » au style de l'espace membre (rose, radius 10px, pas pilule) */
.co-page--wc .co-place-order { display: block; width: 100%; background: #CC8BB9; border: 1px solid #CC8BB9; border-radius: 10px; padding: 14px; font: inherit; font-weight: 500; font-size: 15px; color: #fff; cursor: pointer; margin-top: 16px; box-shadow: none; transition: .15s; }
.co-page--wc .co-place-order:hover { background: #A66898; border-color: #A66898; color: #fff; }
@media (max-width: 960px) {
	.co-page { padding: 32px 24px 28px; }
	.co-page--wc { overflow-x: clip; }
	.co-page--wc .co-layout { grid-template-columns: 1fr; gap: 14px; }
	/* Un peu d'air entre le titre « Finaliser ma commande » et le récap. */
	.co-page--wc .co-layout { margin-top: 10px; }
	/* Récap remonté EN HAUT (avant les étapes), pleine largeur, et déroulant. */
	.co-page--wc .co-layout > .co-summary { grid-column: 1 / -1 !important; grid-row: 1 !important; position: static; min-width: 0; max-width: 100%; padding: 0; }
	.co-page--wc .co-layout > #customer_details { grid-row: 2 !important; min-width: 0; max-width: 100%; }
	.co-page--wc .co-summary-toggle { display: flex; }
	.co-page--wc .co-summary-body { display: none; padding: 0 18px 22px; }
	.co-page--wc .co-summary.is-open .co-summary-body { display: block; }
	.co-page--wc #order_review_heading, .co-page--wc .co-summary-body > h3 { display: none !important; } /* redondant avec la barre */
}


/* ===== comments.html (lines 2271-2295 = 25) ===== */

.cm-page { max-width: 760px; margin: 0 auto; padding: 48px 24px 64px; }
.cm-page > .tag { font-family: var(--font-hand); font-size: 22px; color: var(--rose-deep); transform: rotate(-1.5deg); display: inline-block; }
.cm-page h1 { font-family: var(--font-display); font-size: 32px; font-weight: 500; letter-spacing: -0.022em; margin: 4px 0 32px; }
.cm-page h1 em { font-style: italic; color: var(--rose-deep); }
.cm-list { display: grid; gap: 22px; margin-bottom: 40px; }
.cm-item { display: grid; grid-template-columns: 44px 1fr; gap: 14px; padding: 18px 22px; background: #fff; border: 1px solid var(--rose-soft); border-radius: 14px; }
.cm-item.reply { margin-left: 40px; background: var(--rose-mist); }
.cm-avatar { width: 44px; height: 44px; border-radius: 99px; background: linear-gradient(180deg, var(--rose-soft), var(--rose-mist)); display: flex; align-items: center; justify-content: center; font-family: var(--font-display); font-style: italic; color: var(--rose-deep); font-size: 18px; flex-shrink: 0; }
.cm-meta { display: flex; align-items: baseline; gap: 10px; margin-bottom: 6px; font-size: 12px; }
.cm-name { font-weight: 600; color: var(--ink); font-size: 14px; }
.cm-name .badge { display: inline-block; margin-left: 6px; background: var(--rose-mist); color: var(--rose-deep); font-size: 10.5px; font-weight: 600; padding: 2px 7px; border-radius: 99px; }
.cm-date { color: var(--ink-mute); }
.cm-text { font-size: 14px; color: var(--ink); line-height: 1.6; margin: 0 0 8px; }
.cm-actions { font-size: 12px; }
.cm-actions a { color: var(--rose-deep); text-decoration: underline; margin-right: 14px; }
.cm-form { background: var(--rose-mist); border-radius: 16px; padding: 28px 32px; }
.cm-form h3 { font-family: var(--font-display); font-size: 22px; font-weight: 500; margin: 0 0 6px; }
.cm-form p { font-size: 13px; color: var(--ink-soft); margin: 0 0 18px; }
.cm-field { display: flex; flex-direction: column; gap: 4px; margin-bottom: 12px; }
.cm-field label { font-size: 12px; color: var(--ink-soft); font-weight: 500; }
.cm-field input, .cm-field textarea { font: inherit; padding: 11px 14px; border: 1.5px solid var(--rose-soft); border-radius: 10px; background: #fff; font-size: 14px; }
.cm-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.cm-submit { background: var(--rose); color: #fff; border: none; border-radius: 99px; padding: 12px 26px; font: inherit; font-weight: 500; font-size: 14px; cursor: pointer; }


/* ===== contact.html (lines 2271-2297 = 27) ===== */

.ct-page { max-width: 1100px; margin: 0 auto; padding: 48px 24px 64px; }
.ct-header { text-align: center; margin-bottom: 32px; }
.ct-header .tag { font-family: var(--font-hand); font-size: 24px; color: var(--rose-deep); transform: rotate(-2deg); display: inline-block; }
.ct-header h1 { font-family: var(--font-display); font-size: 38px; font-weight: 500; letter-spacing: -0.025em; margin: 4px 0 12px; }
.ct-header h1 em { font-style: italic; color: var(--rose-deep); }
.ct-header p { font-size: 14.5px; color: var(--ink-soft); margin: 0; max-width: 540px; margin: 0 auto; line-height: 1.6; }
.ct-grid { display: grid; grid-template-columns: 1fr 1.4fr; gap: 32px; }
.ct-info { background: var(--rose-mist); border-radius: 18px; padding: 32px 28px; }
.ct-info h3 { font-family: var(--font-display); font-size: 18px; font-weight: 500; margin: 0 0 18px; }
.ct-info-block { display: flex; gap: 14px; margin-bottom: 18px; }
.ct-info-icon { width: 36px; height: 36px; border-radius: 99px; background: var(--rose); color: #fff; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ct-info-block h4 { font-size: 13.5px; font-weight: 600; margin: 0 0 2px; }
.ct-info-block p { font-size: 13px; color: var(--ink-soft); margin: 0; line-height: 1.5; }
.ct-info-block p a { color: var(--rose-deep); text-decoration: underline; }
.ct-form { background: #fff; border: 1px solid var(--rose-soft); border-radius: 18px; padding: 32px 36px; }
.ct-form h3 { font-family: var(--font-display); font-size: 22px; font-weight: 500; margin: 0 0 18px; }
.ct-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ct-field { display: flex; flex-direction: column; gap: 4px; margin-bottom: 12px; }
.ct-field label { font-size: 12px; color: var(--ink-soft); font-weight: 500; }
.ct-field input, .ct-field select, .ct-field textarea { font: inherit; padding: 11px 14px; border: 1.5px solid var(--rose-soft); border-radius: 10px; background: #fff; font-size: 14px; resize: vertical; }
.ct-field input:focus, .ct-field textarea:focus { outline: none; border-color: var(--rose); }
.ct-send { background: var(--rose); color: #fff; border: none; border-radius: 99px; padding: 13px 28px; font: inherit; font-weight: 500; font-size: 14px; cursor: pointer; box-shadow: 0 10px 24px -8px color-mix(in oklab, var(--rose) 70%, transparent); }
.ct-send:hover { background: var(--rose-deep); }
.ct-map { aspect-ratio: 21/9; border-radius: 18px; margin-top: 32px; background: linear-gradient(135deg, var(--rose-mist), var(--green-soft)); position: relative; overflow: hidden; }
.ct-map::after { content: "📍"; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-size: 40px; }


/* ===== login-register.html (lines 2271-2299 = 29) ===== */

.log-page { max-width: 1280px; margin: -28px auto 0; padding: 0 24px 10px; position: relative; z-index: 2; }
.log-header { text-align: center; margin-bottom: 32px; }
.log-header h1 { font-family: var(--font-display); font-size: 36px; font-weight: 500; letter-spacing: -0.025em; margin: 0 0 4px; }
.log-header h1 em { font-style: italic; color: var(--rose-deep); }
.log-header p { font-size: 14px; color: var(--ink-soft); margin: 0; }
.log-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.log-card { background: #fff; border: 1px solid var(--rose-soft); border-radius: 14px; padding: 26px 22px; }
.log-card h2 { font-family: var(--font-display); font-size: 19px; font-weight: 500; margin: 0 0 6px; letter-spacing: -0.01em; }
.log-card p { font-size: 14.5px; color: var(--ink-soft); margin: 0 0 20px; }
.log-field { display: flex; flex-direction: column; gap: 4px; margin-bottom: 14px; }
.log-field label { font-size: 14px; color: var(--ink); font-weight: 500; }
.log-field input { font: inherit; padding: 12px 16px; border: 1.5px solid var(--rose-soft); border-radius: 12px; background: #fff; font-size: 14px; }
.log-field input:focus { outline: none; border-color: var(--rose); }
.log-pwd { position: relative; display: block; }
.log-pwd input { width: 100%; box-sizing: border-box; padding-right: 42px; }
.log-pwd button { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; padding: 0; background: none; border: none; cursor: pointer; color: var(--ink-mute); transition: color .15s; }
.log-pwd button:hover { color: var(--rose); }
.log-row { display: flex; justify-content: space-between; align-items: center; margin: 8px 0 16px; font-size: 12.5px; }
.log-row label { display: flex; align-items: center; gap: 6px; color: var(--ink-soft); }
.log-row a { color: var(--rose-deep); text-decoration: underline; }
.log-submit { width: 100%; background: var(--rose); color: #fff; border: none; border-radius: 10px; padding: 9px 16px; font: inherit; font-weight: 400; font-size: 13.5px; cursor: pointer; transition: background 0.2s; }
.log-submit:hover { background: var(--rose-deep); }
.log-or { display: flex; align-items: center; gap: 10px; margin: 18px 0; font-size: 11.5px; color: var(--ink-mute); text-transform: uppercase; letter-spacing: 0.1em; }
.log-or::before, .log-or::after { content: ""; flex: 1; height: 1px; background: var(--rose-soft); }
.log-social { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.log-social button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; background: #fff; border: 1.5px solid var(--rose-soft); border-radius: 10px; padding: 11px; font: inherit; font-size: 13px; cursor: pointer; }
.log-social button:hover { border-color: var(--rose); }
.log-cgu { font-size: 11px; color: var(--ink-mute); margin-top: 14px; line-height: 1.5; }
.log-cgu a { color: var(--rose-deep); text-decoration: underline; }


/* ===== lost-password.html (lines 2271-2299 = 29) ===== */

.log-page { max-width: 1280px; margin: -28px auto 0; padding: 0 24px 10px; position: relative; z-index: 2; }
.log-header { text-align: center; margin-bottom: 32px; }
.log-header h1 { font-family: var(--font-display); font-size: 36px; font-weight: 500; letter-spacing: -0.025em; margin: 0 0 4px; }
.log-header h1 em { font-style: italic; color: var(--rose-deep); }
.log-header p { font-size: 14px; color: var(--ink-soft); margin: 0; }
.log-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.log-card { background: #fff; border: 1px solid var(--rose-soft); border-radius: 14px; padding: 26px 22px; }
.log-card h2 { font-family: var(--font-display); font-size: 19px; font-weight: 500; margin: 0 0 6px; letter-spacing: -0.01em; }
.log-card p { font-size: 14.5px; color: var(--ink-soft); margin: 0 0 20px; }
.log-field { display: flex; flex-direction: column; gap: 4px; margin-bottom: 14px; }
.log-field label { font-size: 14px; color: var(--ink); font-weight: 500; }
.log-field input { font: inherit; padding: 12px 16px; border: 1.5px solid var(--rose-soft); border-radius: 12px; background: #fff; font-size: 14px; }
.log-field input:focus { outline: none; border-color: var(--rose); }
.log-pwd { position: relative; display: block; }
.log-pwd input { width: 100%; box-sizing: border-box; padding-right: 42px; }
.log-pwd button { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; padding: 0; background: none; border: none; cursor: pointer; color: var(--ink-mute); transition: color .15s; }
.log-pwd button:hover { color: var(--rose); }
.log-row { display: flex; justify-content: space-between; align-items: center; margin: 8px 0 16px; font-size: 12.5px; }
.log-row label { display: flex; align-items: center; gap: 6px; color: var(--ink-soft); }
.log-row a { color: var(--rose-deep); text-decoration: underline; }
.log-submit { width: 100%; background: var(--rose); color: #fff; border: none; border-radius: 10px; padding: 9px 16px; font: inherit; font-weight: 400; font-size: 13.5px; cursor: pointer; transition: background 0.2s; }
.log-submit:hover { background: var(--rose-deep); }
.log-or { display: flex; align-items: center; gap: 10px; margin: 18px 0; font-size: 11.5px; color: var(--ink-mute); text-transform: uppercase; letter-spacing: 0.1em; }
.log-or::before, .log-or::after { content: ""; flex: 1; height: 1px; background: var(--rose-soft); }
.log-social { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.log-social button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; background: #fff; border: 1.5px solid var(--rose-soft); border-radius: 10px; padding: 11px; font: inherit; font-size: 13px; cursor: pointer; }
.log-social button:hover { border-color: var(--rose); }
.log-cgu { font-size: 11px; color: var(--ink-mute); margin-top: 14px; line-height: 1.5; }
.log-cgu a { color: var(--rose-deep); text-decoration: underline; }


/* ===== my-account-addresses.html (lines 2271-2314 = 44) ===== */

.acc-page { max-width: 1280px; margin: -40px auto 0; padding: 44px 24px 5px; }
.acc-header { margin-bottom: 28px; }
.acc-header h1 { font-family: var(--font-display); font-size: 36px; font-weight: 500; letter-spacing: -0.025em; margin: 0 0 4px; }
.acc-header h1 em { font-style: italic; color: var(--rose-deep); }
.acc-header p { font-size: 14px; color: var(--ink-soft); margin: 0; }
.acc-layout { display: grid; grid-template-columns: 240px 1fr; gap: 24px; align-items: flex-start; }
.acc-nav { background: #fff; border: 1px solid var(--rose-soft); border-radius: 18px; padding: 14px; position: sticky; top: 20px; }
.acc-nav-user { display: flex; align-items: center; gap: 12px; padding: 8px 12px 16px; border-bottom: 1px dashed var(--rose-soft); margin-bottom: 12px; }
.acc-nav-avatar { width: 42px; height: 42px; border-radius: 99px; background: linear-gradient(180deg, var(--rose-soft), var(--rose-mist)); display: flex; align-items: center; justify-content: center; font-family: var(--font-display); font-style: italic; font-size: 18px; color: var(--rose-deep); }
.acc-nav-info { display: flex; flex-direction: column; line-height: 1.2; }
.acc-nav-name { font-size: 14px; font-weight: 600; }
.acc-nav-role { font-size: 11.5px; color: var(--ink-soft); font-style: italic; }
.acc-nav a { display: flex; align-items: center; gap: 10px; padding: 9px 12px; font-size: 14px; color: var(--ink); border-radius: 10px; text-decoration: none; transition: all 0.2s; }
.acc-nav a:hover { background: var(--rose-mist); color: var(--rose-deep); }
.acc-nav a.active { background: var(--rose); color: #fff; }
.acc-nav svg { color: var(--rose-deep); opacity: 0.8; flex-shrink: 0; }
.acc-nav a.logout { color: var(--ink-mute); margin-top: 8px; padding-top: 12px; border-top: 1px dashed var(--rose-soft); border-radius: 0; }
.acc-section { background: #fff; border: 1px solid var(--rose-soft); border-radius: 18px; padding: 24px 28px; margin-bottom: 18px; }
.acc-section h2 { font-family: var(--font-display); font-size: 20px; font-weight: 500; margin: 0 0 7px; }
.acc-table { display: grid; gap: 1px; background: var(--rose-soft); border: 1px solid var(--rose-soft); border-radius: 12px; overflow: hidden; }
.acc-table .row { display: grid; gap: 16px; padding: 14px 18px; background: #fff; align-items: center; font-size: 13px; }
.acc-table .row.head { background: var(--rose-mist); font-weight: 600; font-size: 11.5px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--ink-soft); }
.acc-status { font-size: 11.5px; font-weight: 600; padding: 3px 10px; border-radius: 99px; display: inline-block; }
.acc-status-delivered { background: #DCE7CC; color: #466b25; }
.acc-status-shipped { background: var(--rose-mist); color: var(--rose-deep); }
.acc-field { display: flex; flex-direction: column; gap: 4px; margin-bottom: 12px; }
.acc-field label { font-size: 12px; color: var(--ink-soft); font-weight: 500; }
.acc-field input, .acc-field select, .acc-field textarea { font: inherit; padding: 11px 14px; border: 1.5px solid var(--rose-soft); border-radius: 10px; background: #fff; font-size: 14px; }
.acc-field input:focus { outline: none; border-color: var(--rose); }
.acc-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.acc-save { background: var(--rose); color: #fff; border: none; border-radius: 99px; padding: 11px 24px; font: inherit; font-weight: 500; font-size: 13.5px; cursor: pointer; margin-top: 8px; }
.acc-save:hover { background: var(--rose-deep); }
.acc-addresses { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.acc-address-card { background: #fff; border: 1.5px solid var(--rose-soft); border-radius: 14px; padding: 18px 22px; position: relative; }
.acc-address-card.default { border-color: var(--rose); }
.acc-address-tag { position: absolute; top: -10px; left: 16px; background: var(--rose); color: #fff; font-family: var(--font-hand); font-size: 14px; padding: 2px 10px; border-radius: 99px; }
.acc-address-card h4 { font-family: var(--font-display); font-size: 15px; font-weight: 500; margin: 0 0 8px; }
.acc-address-card p { font-size: 13px; color: var(--ink-soft); line-height: 1.5; margin: 0 0 12px; }
.acc-address-actions { display: flex; gap: 12px; font-size: 12px; }
.acc-address-actions a { color: var(--rose-deep); text-decoration: underline; }
.acc-empty { text-align: center; padding: 40px; color: var(--ink-soft); }
.acc-empty h3 { font-family: var(--font-display); font-size: 22px; font-weight: 500; color: var(--ink); margin: 0 0 8px; }


/* ===== my-account-dashboard.html (lines 2271-2319 = 49) ===== */

.acc-page { max-width: 1280px; margin: -40px auto 0; padding: 44px 24px 5px; }
.acc-header { margin-bottom: 28px; }
.acc-header h1 { font-family: var(--font-display); font-size: 36px; font-weight: 500; letter-spacing: -0.025em; margin: 0 0 4px; }
.acc-header h1 em { font-style: italic; color: var(--rose-deep); }
.acc-header p { font-size: 14px; color: var(--ink-soft); margin: 0; }
.acc-layout { display: grid; grid-template-columns: 240px 1fr; gap: 24px; align-items: flex-start; }
.acc-nav { background: #fff; border: 1px solid var(--rose-soft); border-radius: 18px; padding: 14px; position: sticky; top: 20px; }
.acc-nav-user { display: flex; align-items: center; gap: 12px; padding: 8px 12px 16px; border-bottom: 1px dashed var(--rose-soft); margin-bottom: 12px; }
.acc-nav-avatar { width: 42px; height: 42px; border-radius: 99px; background: linear-gradient(180deg, var(--rose-soft), var(--rose-mist)); display: flex; align-items: center; justify-content: center; font-family: var(--font-display); font-style: italic; font-size: 18px; color: var(--rose-deep); }
.acc-nav-info { display: flex; flex-direction: column; line-height: 1.2; }
.acc-nav-name { font-size: 14px; font-weight: 600; }
.acc-nav-role { font-size: 11.5px; color: var(--ink-soft); font-style: italic; }
.acc-nav a { display: flex; align-items: center; gap: 10px; padding: 9px 12px; font-size: 14px; color: var(--ink); border-radius: 10px; text-decoration: none; transition: all 0.2s; }
.acc-nav a:hover { background: var(--rose-mist); color: var(--rose-deep); }
.acc-nav a.active { background: var(--rose); color: #fff; }
.acc-nav a.active svg { color: #fff; }
.acc-nav svg { color: var(--rose-deep); opacity: 0.8; flex-shrink: 0; }
.acc-nav a.logout { color: var(--ink-mute); margin-top: 8px; padding-top: 12px; border-top: 1px dashed var(--rose-soft); border-radius: 0; }

.acc-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 24px; }
.acc-card { background: #fff; border: 1px solid var(--rose-soft); border-radius: 18px; padding: 22px 24px; }
.acc-card-label { font-family: var(--font-hand); font-size: 18px; color: var(--rose-deep); transform: rotate(-1deg); display: inline-block; margin-bottom: 4px; }
.acc-card-value { font-family: var(--font-display); font-size: 32px; font-weight: 500; letter-spacing: -0.022em; line-height: 1; }
.acc-card-value small { font-size: 16px; color: var(--ink-soft); }
.acc-card-sub { font-size: 12.5px; color: var(--ink-soft); margin-top: 6px; }

.acc-section { background: #fff; border: 1px solid var(--rose-soft); border-radius: 18px; padding: 24px; margin-bottom: 18px; }
.acc-section-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
.acc-section-head h2 { font-family: var(--font-display); font-size: 20px; font-weight: 500; letter-spacing: -0.015em; margin: 0; }
.acc-section-head a { font-size: 13px; color: var(--rose-deep); text-decoration: underline; }

.acc-orders-table { display: grid; gap: 1px; background: var(--rose-soft); border: 1px solid var(--rose-soft); border-radius: 12px; overflow: hidden; }
.acc-order-row { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr auto; gap: 16px; padding: 14px 18px; background: #fff; align-items: center; }
.acc-order-id { font-family: var(--font-display); font-size: 14px; font-weight: 500; }
.acc-order-date, .acc-order-amount { font-size: 13px; color: var(--ink-soft); }
.acc-order-status { font-size: 11.5px; font-weight: 600; padding: 3px 10px; border-radius: 99px; display: inline-block; }
.acc-status-delivered { background: #DCE7CC; color: #466b25; }
.acc-status-shipped { background: var(--rose-mist); color: var(--rose-deep); }
.acc-status-pending { background: #fff4d6; color: #936a13; }
.acc-order-link { font-size: 13px; color: var(--rose-deep); text-decoration: underline; white-space: nowrap; }

.acc-welcome { background: var(--rose-mist); border: 1px solid var(--rose-soft); border-radius: 18px; padding: 28px; margin-bottom: 24px; display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center; }
.acc-welcome h2 { font-family: var(--font-display); font-size: 26px; font-weight: 500; letter-spacing: -0.022em; margin: 0 0 4px; }
.acc-welcome h2 em { font-style: italic; color: var(--rose-deep); }
.acc-welcome p { font-size: 14px; color: var(--ink-soft); margin: 0; }
.acc-welcome-cta { background: var(--rose); color: #fff; border: none; border-radius: 14px; padding: 12px 22px; font: inherit; font-weight: 500; font-size: 13px; cursor: pointer; text-decoration: none; }
.acc-welcome-cta:hover { background: var(--rose-deep); }


/* ===== my-account-downloads.html (lines 2271-2314 = 44) ===== */

.acc-page { max-width: 1280px; margin: -40px auto 0; padding: 44px 24px 5px; }
.acc-header { margin-bottom: 28px; }
.acc-header h1 { font-family: var(--font-display); font-size: 36px; font-weight: 500; letter-spacing: -0.025em; margin: 0 0 4px; }
.acc-header h1 em { font-style: italic; color: var(--rose-deep); }
.acc-header p { font-size: 14px; color: var(--ink-soft); margin: 0; }
.acc-layout { display: grid; grid-template-columns: 240px 1fr; gap: 24px; align-items: flex-start; }
.acc-nav { background: #fff; border: 1px solid var(--rose-soft); border-radius: 18px; padding: 14px; position: sticky; top: 20px; }
.acc-nav-user { display: flex; align-items: center; gap: 12px; padding: 8px 12px 16px; border-bottom: 1px dashed var(--rose-soft); margin-bottom: 12px; }
.acc-nav-avatar { width: 42px; height: 42px; border-radius: 99px; background: linear-gradient(180deg, var(--rose-soft), var(--rose-mist)); display: flex; align-items: center; justify-content: center; font-family: var(--font-display); font-style: italic; font-size: 18px; color: var(--rose-deep); }
.acc-nav-info { display: flex; flex-direction: column; line-height: 1.2; }
.acc-nav-name { font-size: 14px; font-weight: 600; }
.acc-nav-role { font-size: 11.5px; color: var(--ink-soft); font-style: italic; }
.acc-nav a { display: flex; align-items: center; gap: 10px; padding: 9px 12px; font-size: 14px; color: var(--ink); border-radius: 10px; text-decoration: none; transition: all 0.2s; }
.acc-nav a:hover { background: var(--rose-mist); color: var(--rose-deep); }
.acc-nav a.active { background: var(--rose); color: #fff; }
.acc-nav svg { color: var(--rose-deep); opacity: 0.8; flex-shrink: 0; }
.acc-nav a.logout { color: var(--ink-mute); margin-top: 8px; padding-top: 12px; border-top: 1px dashed var(--rose-soft); border-radius: 0; }
.acc-section { background: #fff; border: 1px solid var(--rose-soft); border-radius: 18px; padding: 24px 28px; margin-bottom: 18px; }
.acc-section h2 { font-family: var(--font-display); font-size: 20px; font-weight: 500; margin: 0 0 7px; }
.acc-table { display: grid; gap: 1px; background: var(--rose-soft); border: 1px solid var(--rose-soft); border-radius: 12px; overflow: hidden; }
.acc-table .row { display: grid; gap: 16px; padding: 14px 18px; background: #fff; align-items: center; font-size: 13px; }
.acc-table .row.head { background: var(--rose-mist); font-weight: 600; font-size: 11.5px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--ink-soft); }
.acc-status { font-size: 11.5px; font-weight: 600; padding: 3px 10px; border-radius: 99px; display: inline-block; }
.acc-status-delivered { background: #DCE7CC; color: #466b25; }
.acc-status-shipped { background: var(--rose-mist); color: var(--rose-deep); }
.acc-field { display: flex; flex-direction: column; gap: 4px; margin-bottom: 12px; }
.acc-field label { font-size: 12px; color: var(--ink-soft); font-weight: 500; }
.acc-field input, .acc-field select, .acc-field textarea { font: inherit; padding: 11px 14px; border: 1.5px solid var(--rose-soft); border-radius: 10px; background: #fff; font-size: 14px; }
.acc-field input:focus { outline: none; border-color: var(--rose); }
.acc-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.acc-save { background: var(--rose); color: #fff; border: none; border-radius: 99px; padding: 11px 24px; font: inherit; font-weight: 500; font-size: 13.5px; cursor: pointer; margin-top: 8px; }
.acc-save:hover { background: var(--rose-deep); }
.acc-addresses { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.acc-address-card { background: #fff; border: 1.5px solid var(--rose-soft); border-radius: 14px; padding: 18px 22px; position: relative; }
.acc-address-card.default { border-color: var(--rose); }
.acc-address-tag { position: absolute; top: -10px; left: 16px; background: var(--rose); color: #fff; font-family: var(--font-hand); font-size: 14px; padding: 2px 10px; border-radius: 99px; }
.acc-address-card h4 { font-family: var(--font-display); font-size: 15px; font-weight: 500; margin: 0 0 8px; }
.acc-address-card p { font-size: 13px; color: var(--ink-soft); line-height: 1.5; margin: 0 0 12px; }
.acc-address-actions { display: flex; gap: 12px; font-size: 12px; }
.acc-address-actions a { color: var(--rose-deep); text-decoration: underline; }
.acc-empty { text-align: center; padding: 40px; color: var(--ink-soft); }
.acc-empty h3 { font-family: var(--font-display); font-size: 22px; font-weight: 500; color: var(--ink); margin: 0 0 8px; }


/* ===== my-account-edit-account.html (lines 2271-2314 = 44) ===== */

.acc-page { max-width: 1280px; margin: -40px auto 0; padding: 44px 24px 5px; }
.acc-header { margin-bottom: 28px; }
.acc-header h1 { font-family: var(--font-display); font-size: 36px; font-weight: 500; letter-spacing: -0.025em; margin: 0 0 4px; }
.acc-header h1 em { font-style: italic; color: var(--rose-deep); }
.acc-header p { font-size: 14px; color: var(--ink-soft); margin: 0; }
.acc-layout { display: grid; grid-template-columns: 240px 1fr; gap: 24px; align-items: flex-start; }
.acc-nav { background: #fff; border: 1px solid var(--rose-soft); border-radius: 18px; padding: 14px; position: sticky; top: 20px; }
.acc-nav-user { display: flex; align-items: center; gap: 12px; padding: 8px 12px 16px; border-bottom: 1px dashed var(--rose-soft); margin-bottom: 12px; }
.acc-nav-avatar { width: 42px; height: 42px; border-radius: 99px; background: linear-gradient(180deg, var(--rose-soft), var(--rose-mist)); display: flex; align-items: center; justify-content: center; font-family: var(--font-display); font-style: italic; font-size: 18px; color: var(--rose-deep); }
.acc-nav-info { display: flex; flex-direction: column; line-height: 1.2; }
.acc-nav-name { font-size: 14px; font-weight: 600; }
.acc-nav-role { font-size: 11.5px; color: var(--ink-soft); font-style: italic; }
.acc-nav a { display: flex; align-items: center; gap: 10px; padding: 9px 12px; font-size: 14px; color: var(--ink); border-radius: 10px; text-decoration: none; transition: all 0.2s; }
.acc-nav a:hover { background: var(--rose-mist); color: var(--rose-deep); }
.acc-nav a.active { background: var(--rose); color: #fff; }
.acc-nav svg { color: var(--rose-deep); opacity: 0.8; flex-shrink: 0; }
.acc-nav a.logout { color: var(--ink-mute); margin-top: 8px; padding-top: 12px; border-top: 1px dashed var(--rose-soft); border-radius: 0; }
.acc-section { background: #fff; border: 1px solid var(--rose-soft); border-radius: 18px; padding: 24px 28px; margin-bottom: 18px; }
.acc-section h2 { font-family: var(--font-display); font-size: 20px; font-weight: 500; margin: 0 0 7px; }
.acc-table { display: grid; gap: 1px; background: var(--rose-soft); border: 1px solid var(--rose-soft); border-radius: 12px; overflow: hidden; }
.acc-table .row { display: grid; gap: 16px; padding: 14px 18px; background: #fff; align-items: center; font-size: 13px; }
.acc-table .row.head { background: var(--rose-mist); font-weight: 600; font-size: 11.5px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--ink-soft); }
.acc-status { font-size: 11.5px; font-weight: 600; padding: 3px 10px; border-radius: 99px; display: inline-block; }
.acc-status-delivered { background: #DCE7CC; color: #466b25; }
.acc-status-shipped { background: var(--rose-mist); color: var(--rose-deep); }
.acc-field { display: flex; flex-direction: column; gap: 4px; margin-bottom: 12px; }
.acc-field label { font-size: 12px; color: var(--ink-soft); font-weight: 500; }
.acc-field input, .acc-field select, .acc-field textarea { font: inherit; padding: 11px 14px; border: 1.5px solid var(--rose-soft); border-radius: 10px; background: #fff; font-size: 14px; }
.acc-field input:focus { outline: none; border-color: var(--rose); }
.acc-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.acc-save { background: var(--rose); color: #fff; border: none; border-radius: 99px; padding: 11px 24px; font: inherit; font-weight: 500; font-size: 13.5px; cursor: pointer; margin-top: 8px; }
.acc-save:hover { background: var(--rose-deep); }
.acc-addresses { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.acc-address-card { background: #fff; border: 1.5px solid var(--rose-soft); border-radius: 14px; padding: 18px 22px; position: relative; }
.acc-address-card.default { border-color: var(--rose); }
.acc-address-tag { position: absolute; top: -10px; left: 16px; background: var(--rose); color: #fff; font-family: var(--font-hand); font-size: 14px; padding: 2px 10px; border-radius: 99px; }
.acc-address-card h4 { font-family: var(--font-display); font-size: 15px; font-weight: 500; margin: 0 0 8px; }
.acc-address-card p { font-size: 13px; color: var(--ink-soft); line-height: 1.5; margin: 0 0 12px; }
.acc-address-actions { display: flex; gap: 12px; font-size: 12px; }
.acc-address-actions a { color: var(--rose-deep); text-decoration: underline; }
.acc-empty { text-align: center; padding: 40px; color: var(--ink-soft); }
.acc-empty h3 { font-family: var(--font-display); font-size: 22px; font-weight: 500; color: var(--ink); margin: 0 0 8px; }


/* ===== my-account-orders.html (lines 2271-2314 = 44) ===== */

.acc-page { max-width: 1280px; margin: -40px auto 0; padding: 44px 24px 5px; }
.acc-header { margin-bottom: 28px; }
.acc-header h1 { font-family: var(--font-display); font-size: 36px; font-weight: 500; letter-spacing: -0.025em; margin: 0 0 4px; }
.acc-header h1 em { font-style: italic; color: var(--rose-deep); }
.acc-header p { font-size: 14px; color: var(--ink-soft); margin: 0; }
.acc-layout { display: grid; grid-template-columns: 240px 1fr; gap: 24px; align-items: flex-start; }
.acc-nav { background: #fff; border: 1px solid var(--rose-soft); border-radius: 18px; padding: 14px; position: sticky; top: 20px; }
.acc-nav-user { display: flex; align-items: center; gap: 12px; padding: 8px 12px 16px; border-bottom: 1px dashed var(--rose-soft); margin-bottom: 12px; }
.acc-nav-avatar { width: 42px; height: 42px; border-radius: 99px; background: linear-gradient(180deg, var(--rose-soft), var(--rose-mist)); display: flex; align-items: center; justify-content: center; font-family: var(--font-display); font-style: italic; font-size: 18px; color: var(--rose-deep); }
.acc-nav-info { display: flex; flex-direction: column; line-height: 1.2; }
.acc-nav-name { font-size: 14px; font-weight: 600; }
.acc-nav-role { font-size: 11.5px; color: var(--ink-soft); font-style: italic; }
.acc-nav a { display: flex; align-items: center; gap: 10px; padding: 9px 12px; font-size: 14px; color: var(--ink); border-radius: 10px; text-decoration: none; transition: all 0.2s; }
.acc-nav a:hover { background: var(--rose-mist); color: var(--rose-deep); }
.acc-nav a.active { background: var(--rose); color: #fff; }
.acc-nav svg { color: var(--rose-deep); opacity: 0.8; flex-shrink: 0; }
.acc-nav a.logout { color: var(--ink-mute); margin-top: 8px; padding-top: 12px; border-top: 1px dashed var(--rose-soft); border-radius: 0; }
.acc-section { background: #fff; border: 1px solid var(--rose-soft); border-radius: 18px; padding: 24px 28px; margin-bottom: 18px; }
.acc-section h2 { font-family: var(--font-display); font-size: 20px; font-weight: 500; margin: 0 0 7px; }
.acc-table { display: grid; gap: 1px; background: var(--rose-soft); border: 1px solid var(--rose-soft); border-radius: 12px; overflow: hidden; }
.acc-table .row { display: grid; gap: 16px; padding: 14px 18px; background: #fff; align-items: center; font-size: 13px; }
.acc-table .row.head { background: var(--rose-mist); font-weight: 600; font-size: 11.5px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--ink-soft); }
.acc-status { font-size: 11.5px; font-weight: 600; padding: 3px 10px; border-radius: 99px; display: inline-block; }
.acc-status-delivered { background: #DCE7CC; color: #466b25; }
.acc-status-shipped { background: var(--rose-mist); color: var(--rose-deep); }
.acc-field { display: flex; flex-direction: column; gap: 4px; margin-bottom: 12px; }
.acc-field label { font-size: 12px; color: var(--ink-soft); font-weight: 500; }
.acc-field input, .acc-field select, .acc-field textarea { font: inherit; padding: 11px 14px; border: 1.5px solid var(--rose-soft); border-radius: 10px; background: #fff; font-size: 14px; }
.acc-field input:focus { outline: none; border-color: var(--rose); }
.acc-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.acc-save { background: var(--rose); color: #fff; border: none; border-radius: 99px; padding: 11px 24px; font: inherit; font-weight: 500; font-size: 13.5px; cursor: pointer; margin-top: 8px; }
.acc-save:hover { background: var(--rose-deep); }
.acc-addresses { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.acc-address-card { background: #fff; border: 1.5px solid var(--rose-soft); border-radius: 14px; padding: 18px 22px; position: relative; }
.acc-address-card.default { border-color: var(--rose); }
.acc-address-tag { position: absolute; top: -10px; left: 16px; background: var(--rose); color: #fff; font-family: var(--font-hand); font-size: 14px; padding: 2px 10px; border-radius: 99px; }
.acc-address-card h4 { font-family: var(--font-display); font-size: 15px; font-weight: 500; margin: 0 0 8px; }
.acc-address-card p { font-size: 13px; color: var(--ink-soft); line-height: 1.5; margin: 0 0 12px; }
.acc-address-actions { display: flex; gap: 12px; font-size: 12px; }
.acc-address-actions a { color: var(--rose-deep); text-decoration: underline; }
.acc-empty { text-align: center; padding: 40px; color: var(--ink-soft); }
.acc-empty h3 { font-family: var(--font-display); font-size: 22px; font-weight: 500; color: var(--ink); margin: 0 0 8px; }


/* ===== my-account-view-order.html (lines 2271-2314 = 44) ===== */

.acc-page { max-width: 1280px; margin: -40px auto 0; padding: 44px 24px 5px; }
.acc-header { margin-bottom: 28px; }
.acc-header h1 { font-family: var(--font-display); font-size: 36px; font-weight: 500; letter-spacing: -0.025em; margin: 0 0 4px; }
.acc-header h1 em { font-style: italic; color: var(--rose-deep); }
.acc-header p { font-size: 14px; color: var(--ink-soft); margin: 0; }
.acc-layout { display: grid; grid-template-columns: 240px 1fr; gap: 24px; align-items: flex-start; }
.acc-nav { background: #fff; border: 1px solid var(--rose-soft); border-radius: 18px; padding: 14px; position: sticky; top: 20px; }
.acc-nav-user { display: flex; align-items: center; gap: 12px; padding: 8px 12px 16px; border-bottom: 1px dashed var(--rose-soft); margin-bottom: 12px; }
.acc-nav-avatar { width: 42px; height: 42px; border-radius: 99px; background: linear-gradient(180deg, var(--rose-soft), var(--rose-mist)); display: flex; align-items: center; justify-content: center; font-family: var(--font-display); font-style: italic; font-size: 18px; color: var(--rose-deep); }
.acc-nav-info { display: flex; flex-direction: column; line-height: 1.2; }
.acc-nav-name { font-size: 14px; font-weight: 600; }
.acc-nav-role { font-size: 11.5px; color: var(--ink-soft); font-style: italic; }
.acc-nav a { display: flex; align-items: center; gap: 10px; padding: 9px 12px; font-size: 14px; color: var(--ink); border-radius: 10px; text-decoration: none; transition: all 0.2s; }
.acc-nav a:hover { background: var(--rose-mist); color: var(--rose-deep); }
.acc-nav a.active { background: var(--rose); color: #fff; }
.acc-nav svg { color: var(--rose-deep); opacity: 0.8; flex-shrink: 0; }
.acc-nav a.logout { color: var(--ink-mute); margin-top: 8px; padding-top: 12px; border-top: 1px dashed var(--rose-soft); border-radius: 0; }
.acc-section { background: #fff; border: 1px solid var(--rose-soft); border-radius: 18px; padding: 24px 28px; margin-bottom: 18px; }
.acc-section h2 { font-family: var(--font-display); font-size: 20px; font-weight: 500; margin: 0 0 7px; }
.acc-table { display: grid; gap: 1px; background: var(--rose-soft); border: 1px solid var(--rose-soft); border-radius: 12px; overflow: hidden; }
.acc-table .row { display: grid; gap: 16px; padding: 14px 18px; background: #fff; align-items: center; font-size: 13px; }
.acc-table .row.head { background: var(--rose-mist); font-weight: 600; font-size: 11.5px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--ink-soft); }
.acc-status { font-size: 11.5px; font-weight: 600; padding: 3px 10px; border-radius: 99px; display: inline-block; }
.acc-status-delivered { background: #DCE7CC; color: #466b25; }
.acc-status-shipped { background: var(--rose-mist); color: var(--rose-deep); }
.acc-field { display: flex; flex-direction: column; gap: 4px; margin-bottom: 12px; }
.acc-field label { font-size: 12px; color: var(--ink-soft); font-weight: 500; }
.acc-field input, .acc-field select, .acc-field textarea { font: inherit; padding: 11px 14px; border: 1.5px solid var(--rose-soft); border-radius: 10px; background: #fff; font-size: 14px; }
.acc-field input:focus { outline: none; border-color: var(--rose); }
.acc-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.acc-save { background: var(--rose); color: #fff; border: none; border-radius: 99px; padding: 11px 24px; font: inherit; font-weight: 500; font-size: 13.5px; cursor: pointer; margin-top: 8px; }
.acc-save:hover { background: var(--rose-deep); }
.acc-addresses { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.acc-address-card { background: #fff; border: 1.5px solid var(--rose-soft); border-radius: 14px; padding: 18px 22px; position: relative; }
.acc-address-card.default { border-color: var(--rose); }
.acc-address-tag { position: absolute; top: -10px; left: 16px; background: var(--rose); color: #fff; font-family: var(--font-hand); font-size: 14px; padding: 2px 10px; border-radius: 99px; }
.acc-address-card h4 { font-family: var(--font-display); font-size: 15px; font-weight: 500; margin: 0 0 8px; }
.acc-address-card p { font-size: 13px; color: var(--ink-soft); line-height: 1.5; margin: 0 0 12px; }
.acc-address-actions { display: flex; gap: 12px; font-size: 12px; }
.acc-address-actions a { color: var(--rose-deep); text-decoration: underline; }
.acc-empty { text-align: center; padding: 40px; color: var(--ink-soft); }
.acc-empty h3 { font-family: var(--font-display); font-size: 22px; font-weight: 500; color: var(--ink); margin: 0 0 8px; }


/* ===== order-received.html (lines 2271-2301 = 31) ===== */

.or-page { max-width: 920px; margin: 0 auto; padding: 48px 24px 64px; }
.or-hero { background: var(--rose-mist); border-radius: 22px; padding: 40px 36px; text-align: center; margin-bottom: 24px; position: relative; overflow: hidden; }
.or-check { width: 64px; height: 64px; border-radius: 99px; background: var(--rose); color: #fff; display: inline-flex; align-items: center; justify-content: center; margin-bottom: 16px; }
.or-tag { font-family: var(--font-hand); font-size: 22px; color: var(--rose-deep); transform: rotate(-2deg); display: inline-block; margin-bottom: 4px; }
.or-hero h1 { font-family: var(--font-display); font-size: 32px; font-weight: 500; letter-spacing: -0.022em; margin: 4px 0 12px; }
.or-hero h1 em { font-style: italic; color: var(--rose-deep); }
.or-hero p { font-size: 14.5px; color: var(--ink-soft); margin: 0; max-width: 540px; margin: 0 auto; line-height: 1.6; }
.or-card { background: #fff; border: 1px solid var(--rose-soft); border-radius: 18px; padding: 24px 28px; margin-bottom: 16px; }
.or-card h3 { font-family: var(--font-display); font-size: 18px; font-weight: 500; margin: 0 0 14px; }
.or-meta { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.or-meta-item label { font-size: 11.5px; color: var(--ink-mute); text-transform: uppercase; letter-spacing: 0.04em; display: block; margin-bottom: 4px; }
.or-meta-item div { font-size: 14px; font-weight: 500; }
.or-items { display: grid; gap: 12px; }
.or-item { display: grid; grid-template-columns: 60px 1fr auto; gap: 14px; align-items: center; padding: 10px 0; border-bottom: 1px dashed var(--rose-soft); }
.or-item:last-child { border: none; }
.or-item-img { width: 60px; height: 60px; border-radius: 10px; background-size: contain; background-repeat: no-repeat; background-position: center; background-color: var(--rose-mist); }
.or-item-name { font-size: 14px; font-weight: 500; line-height: 1.3; }
.or-item-meta { font-size: 12px; color: var(--ink-soft); }
.or-item-price { font-family: var(--font-display); font-size: 16px; font-weight: 500; }
.or-totals { display: grid; gap: 6px; font-size: 13px; color: var(--ink-soft); }
.or-totals .row { display: flex; justify-content: space-between; }
.or-totals .row strong { color: var(--ink); }
.or-totals .total { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--rose-soft); font-size: 16px; }
.or-totals .total strong { font-family: var(--font-display); font-size: 20px; }
.or-cta { display: flex; gap: 10px; margin-top: 24px; justify-content: center; flex-wrap: wrap; }
.or-cta a { padding: 12px 24px; border-radius: 14px; font-size: 13.5px; font-weight: 500; text-decoration: none; }
.or-cta a.primary { background: var(--ink); color: #fff; }
.or-cta a.primary:hover { background: var(--rose); }
.or-cta a.ghost { color: var(--ink); border: 1.5px solid var(--rose-soft); }


/* ===== page.html (lines 2271-2288 = 18) ===== */

.lg-page { max-width: 760px; margin: 0 auto; padding: 48px 24px 64px; }
.lg-page > .tag { font-family: var(--font-hand); font-size: 22px; color: var(--rose-deep); transform: rotate(-1.5deg); display: inline-block; }
.lg-page h1 { font-family: var(--font-display); font-size: 38px; font-weight: 500; letter-spacing: -0.025em; line-height: 1.05; margin: 4px 0 24px; }
.lg-page h1 em { font-style: italic; color: var(--rose-deep); }
.lg-updated { font-size: 12px; color: var(--ink-mute); margin-bottom: 32px; }
.lg-content { font-size: 15px; line-height: 1.7; color: var(--ink); }
.lg-content h2 { font-family: var(--font-display); font-size: 22px; font-weight: 500; letter-spacing: -0.015em; margin: 32px 0 12px; }
.lg-content p { margin: 0 0 16px; color: var(--ink-soft); }
.lg-content ul { margin: 0 0 16px; padding-left: 22px; color: var(--ink-soft); }
.lg-content li { margin-bottom: 6px; }
.lg-content strong { color: var(--ink); font-weight: 600; }
.lg-toc { background: var(--rose-mist); border-radius: 14px; padding: 18px 22px; margin-bottom: 32px; }
.lg-toc-title { font-family: var(--font-display); font-style: italic; color: var(--rose-deep); font-size: 14px; margin-bottom: 8px; }
.lg-toc ol { margin: 0; padding-left: 22px; font-size: 13.5px; }
.lg-toc ol a { color: var(--ink); text-decoration: none; }
.lg-toc ol a:hover { color: var(--rose-deep); text-decoration: underline; }


/* ===== privacy-policy.html (lines 2271-2288 = 18) ===== */

.lg-page { max-width: 760px; margin: 0 auto; padding: 48px 24px 64px; }
.lg-page > .tag { font-family: var(--font-hand); font-size: 22px; color: var(--rose-deep); transform: rotate(-1.5deg); display: inline-block; }
.lg-page h1 { font-family: var(--font-display); font-size: 38px; font-weight: 500; letter-spacing: -0.025em; line-height: 1.05; margin: 4px 0 24px; }
.lg-page h1 em { font-style: italic; color: var(--rose-deep); }
.lg-updated { font-size: 12px; color: var(--ink-mute); margin-bottom: 32px; }
.lg-content { font-size: 15px; line-height: 1.7; color: var(--ink); }
.lg-content h2 { font-family: var(--font-display); font-size: 22px; font-weight: 500; letter-spacing: -0.015em; margin: 32px 0 12px; }
.lg-content p { margin: 0 0 16px; color: var(--ink-soft); }
.lg-content ul { margin: 0 0 16px; padding-left: 22px; color: var(--ink-soft); }
.lg-content li { margin-bottom: 6px; }
.lg-content strong { color: var(--ink); font-weight: 600; }
.lg-toc { background: var(--rose-mist); border-radius: 14px; padding: 18px 22px; margin-bottom: 32px; }
.lg-toc-title { font-family: var(--font-display); font-style: italic; color: var(--rose-deep); font-size: 14px; margin-bottom: 8px; }
.lg-toc ol { margin: 0; padding-left: 22px; font-size: 13.5px; }
.lg-toc ol a { color: var(--ink); text-decoration: none; }
.lg-toc ol a:hover { color: var(--rose-deep); text-decoration: underline; }


/* ===== shop.html ===== */

.shop-hero {
  padding: 48px 24px 24px;
  text-align: center;
}
.shop-breadcrumb {
  max-width: 1280px;
  margin: 0 auto 12px;
  font-size: 12px;
  color: var(--ink-mute);
  display: flex;
  justify-content: center;
  gap: 8px;
}
.shop-breadcrumb a { color: var(--ink-soft); }
.shop-breadcrumb span { opacity: 0.5; }
.shop-title { font-family: var(--font-display); font-size: 44px; letter-spacing: -0.025em; font-weight: 500; margin: 0 0 8px; }
.shop-title em { font-style: italic; color: var(--rose-deep); font-variation-settings: "opsz" 144, "SOFT" 100; }
.shop-sub { font-size: 14px; color: var(--ink-soft); font-style: italic; }
.shop-layout { max-width: 1280px; margin: 0 auto; padding: 24px 24px 64px; display: grid; grid-template-columns: 240px 1fr; gap: 32px; }
.shop-filters { background: #fff; border: 1px solid var(--rose-soft); border-radius: 16px; padding: 22px 22px; align-self: flex-start; position: sticky; top: 20px; }
.shop-filter-group { padding: 14px 0; border-bottom: 1px dashed var(--rose-soft); }
.shop-filter-group:last-child { border: none; padding-bottom: 0; }
.shop-filter-group:first-child { padding-top: 0; }
.shop-filter-title { font-family: var(--font-display); font-size: 15px; font-weight: 600; margin: 0 0 12px; display: flex; justify-content: space-between; align-items: center; }
.shop-filter-title svg { color: var(--ink-mute); }
.shop-filter-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.shop-filter-item { display: flex; align-items: center; gap: 10px; font-size: 13px; color: var(--ink-soft); cursor: pointer; }
.shop-filter-item input { appearance: none; width: 14px; height: 14px; border: 1.5px solid var(--rose-soft); border-radius: 4px; position: relative; cursor: pointer; }
.shop-filter-item input:checked { background: var(--rose); border-color: var(--rose); }
.shop-filter-item input:checked::after { content: "✓"; position: absolute; top: -3px; left: 1px; color: #fff; font-size: 11px; font-weight: 700; }
.shop-filter-item .shop-filter-count { margin-left: auto; color: var(--ink-mute); font-size: 11.5px; }
.shop-toolbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; padding: 12px 18px; background: #fff; border: 1px solid var(--rose-soft); border-radius: 99px; }
.shop-count { font-size: 13px; color: var(--ink-soft); }
.shop-count strong { color: var(--ink); font-weight: 600; }
.shop-sort { display: flex; align-items: center; gap: 8px; font-size: 13px; }
.shop-sort select { font: inherit; font-size: 13px; padding: 6px 10px; border: 1px solid var(--rose-soft); border-radius: 99px; background: var(--cream); cursor: pointer; }
.shop-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.shop-pagination { display: flex; justify-content: center; gap: 6px; margin-top: 48px; }
.shop-page { width: 36px; height: 36px; border-radius: 99px; display: inline-flex; align-items: center; justify-content: center; background: #fff; border: 1px solid var(--rose-soft); color: var(--ink); font-size: 13px; cursor: pointer; transition: all 0.2s; }
.shop-page:hover, .shop-page.active { background: var(--rose); color: #fff; border-color: var(--rose); }
.shop-page.disabled { opacity: 0.4; cursor: default; }


/* ===== single.html (lines 2271-2329 = 59) ===== */

.sp-page { max-width: 760px; margin: 0 auto; padding: 32px 24px 64px; }
.sp-breadcrumb { font-size: 12px; color: var(--ink-mute); margin-bottom: 14px; display: flex; gap: 8px; }
.sp-breadcrumb a { color: var(--ink-soft); }
.sp-cat { font-family: var(--font-hand); font-size: 22px; color: var(--rose-deep); transform: rotate(-1.5deg); display: inline-block; margin-bottom: 4px; }
.sp-title { font-family: var(--font-display); font-size: 42px; font-weight: 500; letter-spacing: -0.028em; line-height: 1.05; margin: 4px 0 16px; }
.sp-title em { font-style: italic; color: var(--rose-deep); }
.sp-meta { display: flex; gap: 14px; align-items: center; font-size: 13px; color: var(--ink-soft); margin-bottom: 28px; padding-bottom: 20px; border-bottom: 1px dashed var(--rose-soft); }
.sp-author { display: flex; align-items: center; gap: 8px; }
.sp-author-avatar { width: 32px; height: 32px; border-radius: 99px; background: linear-gradient(180deg, var(--rose-soft), var(--rose-mist)); display: flex; align-items: center; justify-content: center; font-family: var(--font-display); font-style: italic; color: var(--rose-deep); font-size: 14px; }
.sp-cover { aspect-ratio: 16/9; border-radius: 18px; background-size: cover; background-position: center; margin-bottom: 32px; box-shadow: 0 24px 48px -24px rgba(0,0,0,0.18); }
.sp-content { font-size: 16px; line-height: 1.75; color: var(--ink); }
.sp-content p { margin: 0 0 18px; }
.sp-content h2 { font-family: var(--font-display); font-size: 26px; font-weight: 500; letter-spacing: -0.018em; margin: 32px 0 12px; }
.sp-content h2 em { font-style: italic; color: var(--rose-deep); }
.sp-content h3 { font-family: var(--font-display); font-size: 20px; font-weight: 500; margin: 28px 0 10px; }
.sp-content blockquote { border-left: 3px solid var(--rose); padding: 8px 0 8px 20px; margin: 24px 0; font-family: var(--font-display); font-style: italic; font-size: 18px; color: var(--rose-deep); }
.sp-content ul { padding-left: 22px; margin: 0 0 18px; }
.sp-content ul li { margin-bottom: 6px; }
.sp-content strong { color: var(--ink); font-weight: 600; }
.sp-share { margin: 40px 0; padding: 18px 22px; background: var(--rose-mist); border-radius: 14px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.sp-share-label { font-family: var(--font-hand); font-size: 18px; color: var(--rose-deep); }
.sp-share-buttons { display: flex; gap: 8px; }
.sp-share-buttons a { width: 32px; height: 32px; border-radius: 99px; background: #fff; display: inline-flex; align-items: center; justify-content: center; color: var(--rose-deep); }
.sp-related { margin-top: 56px; }
.sp-related h3 { font-family: var(--font-display); font-size: 22px; font-weight: 500; margin: 0 0 18px; }
.sp-related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }

.bp-hero { padding: 48px 24px 24px; text-align: center; max-width: 720px; margin: 0 auto; }
.bp-hero .tag { font-family: var(--font-hand); font-size: 26px; color: var(--rose-deep); transform: rotate(-1.5deg); display: inline-block; margin-bottom: 4px; }
.bp-hero h1 { font-family: var(--font-display); font-size: 38px; font-weight: 500; letter-spacing: -0.025em; margin: 0 0 12px; }
.bp-hero h1 em { font-style: italic; color: var(--rose-deep); }
.bp-hero p { font-size: 14.5px; color: var(--ink-soft); margin: 0 0 22px; line-height: 1.6; }
.bp-cats { display: flex; gap: 6px; justify-content: center; flex-wrap: wrap; }
.bp-cat { padding: 6px 14px; border: 1.5px solid var(--rose-soft); border-radius: 99px; font-size: 12.5px; color: var(--ink-soft); cursor: pointer; transition: all 0.2s; text-decoration: none; }
.bp-cat:hover { border-color: var(--rose); color: var(--rose-deep); }
.bp-cat.active { background: var(--rose); color: #fff; border-color: var(--rose); }
.bp-layout { max-width: 1280px; margin: 0 auto; padding: 24px 24px 64px; }
.bp-feature { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-items: center; background: var(--rose-mist); border-radius: 22px; padding: 32px; margin-bottom: 32px; }
.bp-feature-img { aspect-ratio: 4/3; border-radius: 16px; background-size: cover; background-position: center; box-shadow: 0 20px 40px -20px rgba(204,139,185,0.4); }
.bp-feature .badge { font-family: var(--font-hand); font-size: 22px; color: var(--rose-deep); transform: rotate(-2deg); display: inline-block; }
.bp-feature h2 { font-family: var(--font-display); font-size: 28px; font-weight: 500; letter-spacing: -0.022em; line-height: 1.1; margin: 6px 0 12px; }
.bp-feature h2 em { font-style: italic; color: var(--rose-deep); }
.bp-feature .meta { display: flex; gap: 14px; font-size: 12px; color: var(--ink-soft); margin-bottom: 10px; }
.bp-feature .meta span { display: inline-flex; align-items: center; gap: 4px; }
.bp-feature p { font-size: 14.5px; color: var(--ink-soft); line-height: 1.6; margin: 0 0 16px; }
.bp-feature .read { display: inline-flex; align-items: center; gap: 6px; color: var(--rose-deep); font-weight: 500; font-size: 13.5px; text-decoration: none; border-bottom: 1.5px solid var(--rose-deep); padding-bottom: 2px; }
.bp-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.bp-card { display: flex; flex-direction: column; cursor: pointer; transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1); text-decoration: none; color: inherit; }
.bp-card:hover { transform: translateY(-4px); }
.bp-card-img { aspect-ratio: 4/3; border-radius: 14px; background-size: cover; background-position: center; background-color: var(--rose-mist); margin-bottom: 14px; }
.bp-card-cat { font-family: var(--font-hand); font-size: 16px; color: var(--rose-deep); margin-bottom: 2px; }
.bp-card h3 { font-family: var(--font-display); font-size: 18px; font-weight: 500; letter-spacing: -0.012em; line-height: 1.25; margin: 0 0 8px; }
.bp-card .meta { display: flex; gap: 12px; font-size: 11.5px; color: var(--ink-mute); margin-bottom: 8px; }
.bp-card p { font-size: 13.5px; color: var(--ink-soft); line-height: 1.55; margin: 0; }
.bp-pagination { display: flex; justify-content: center; gap: 6px; margin-top: 48px; }
.bp-pagination button { width: 36px; height: 36px; border-radius: 99px; background: #fff; border: 1px solid var(--rose-soft); cursor: pointer; font: inherit; font-size: 13px; }
.bp-pagination button.active { background: var(--rose); color: #fff; border-color: var(--rose); }


/* ===== single-product.html (lines 2271-2332 = 62) ===== */

.product-page { max-width: 1280px; margin: 0 auto; padding: 32px 24px 64px; }
.product-breadcrumb { font-size: 12px; color: var(--ink-mute); margin-bottom: 20px; display: flex; gap: 8px; }
.product-breadcrumb a { color: var(--ink-soft); }
.product-breadcrumb span { opacity: 0.5; }
.product-layout { display: grid; grid-template-columns: 1.1fr 1fr; gap: 56px; align-items: flex-start; }
.product-gallery { position: sticky; top: 20px; }
.product-gallery-main {
  aspect-ratio: 1 / 1;
  background: linear-gradient(180deg, var(--rose-mist), color-mix(in oklab, var(--rose-mist) 50%, #fff));
  border-radius: 22px;
  position: relative;
  overflow: hidden;
  margin-bottom: 12px;
}
.product-gallery-img { position: absolute; inset: 32px; background-size: contain; background-position: center; background-repeat: no-repeat; }
.product-gallery-badge { position: absolute; top: 20px; left: 20px; font-family: var(--font-hand); font-size: 22px; color: var(--rose-deep); font-weight: 700; transform: rotate(-6deg); text-shadow: 0 2px 4px rgba(255,255,255,0.8); }
.product-gallery-thumbs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.product-thumb { aspect-ratio: 1 / 1; border-radius: 12px; background: var(--rose-mist); border: 2px solid transparent; cursor: pointer; overflow: hidden; background-size: contain; background-position: center; background-repeat: no-repeat; transition: border-color 0.2s; }
.product-thumb.active, .product-thumb:hover { border-color: var(--rose); }

.product-detail-brand { font-family: var(--font-hand); font-size: 24px; color: var(--rose-deep); font-weight: 600; transform: rotate(-1deg); display: inline-block; margin-bottom: 4px; }
.product-detail-name { font-family: var(--font-display); font-size: 36px; font-weight: 500; letter-spacing: -0.025em; line-height: 1.05; margin: 4px 0 14px; }
.product-detail-rating { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; }
.product-detail-stars { color: var(--rose); display: inline-flex; gap: 2px; }
.product-detail-rating-text { font-size: 13.5px; color: var(--ink-soft); }
.product-detail-rating-text a { color: var(--rose-deep); text-decoration: underline; }
.product-detail-price-row { display: flex; align-items: baseline; gap: 14px; padding: 18px 0; border-top: 1px solid var(--rose-soft); border-bottom: 1px solid var(--rose-soft); }
.product-detail-price { font-family: var(--font-display); font-size: 40px; font-weight: 500; letter-spacing: -0.025em; line-height: 1; }
.product-detail-price small { font-size: 22px; color: var(--ink-soft); }
.product-detail-was { text-decoration: line-through; color: var(--ink-mute); font-size: 18px; }
.product-detail-save { background: var(--rose-mist); color: var(--rose-deep); padding: 4px 10px; border-radius: 99px; font-size: 11.5px; font-weight: 600; }
.product-detail-stock { margin: 18px 0; display: flex; align-items: center; gap: 8px; font-size: 13.5px; color: var(--ink); }
.product-detail-stock-dot { width: 8px; height: 8px; border-radius: 99px; background: #6b9333; }
.product-detail-variant { margin: 18px 0; }
.product-detail-variant-label { font-size: 12.5px; font-weight: 600; margin-bottom: 8px; }
.product-detail-variant-label span { color: var(--ink-soft); font-weight: 400; }
.product-detail-variant-options { display: flex; gap: 8px; flex-wrap: wrap; }
.product-detail-variant-options button { background: #fff; border: 1.5px solid var(--rose-soft); border-radius: 99px; padding: 8px 16px; font-size: 13px; cursor: pointer; font-family: var(--font-body); transition: all 0.2s; }
.product-detail-variant-options button.active { background: var(--ink); color: #fff; border-color: var(--ink); }
.product-detail-variant-options button:hover:not(.active) { border-color: var(--rose); color: var(--rose-deep); }
.product-detail-actions { display: flex; gap: 10px; margin: 22px 0 14px; }
.product-detail-qty { display: flex; align-items: center; background: #fff; border: 1.5px solid var(--rose-soft); border-radius: 99px; overflow: hidden; }
.product-detail-qty button { width: 40px; height: 44px; background: none; border: none; cursor: pointer; font-size: 16px; }
.product-detail-qty input { width: 40px; text-align: center; border: none; background: none; font: inherit; font-weight: 600; }
.product-detail-add { flex: 1; background: var(--rose); color: #fff; border: none; border-radius: 99px; padding: 14px 24px; font: inherit; font-weight: 500; font-size: 14px; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 8px; box-shadow: 0 8px 20px -8px color-mix(in oklab, var(--rose) 60%, transparent); }
.product-detail-add:hover { background: var(--rose-deep); }
.product-detail-fav { width: 48px; height: 48px; background: #fff; border: 1.5px solid var(--rose-soft); border-radius: 99px; display: inline-flex; align-items: center; justify-content: center; color: var(--rose-deep); cursor: pointer; }
.product-detail-bullet { margin: 18px 0 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.product-detail-bullet li { display: flex; align-items: flex-start; gap: 10px; font-size: 13.5px; color: var(--ink-soft); }
.product-detail-bullet li svg { color: var(--rose); flex-shrink: 0; margin-top: 2px; }

.product-tabs { margin: 56px 0 0; }
.product-tabs-nav { display: flex; gap: 4px; border-bottom: 1px solid var(--rose-soft); margin-bottom: 32px; }
.product-tabs-btn { background: none; border: none; padding: 14px 22px; font: inherit; font-weight: 500; color: var(--ink-soft); cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -1px; }
.product-tabs-btn.active { color: var(--ink); border-bottom-color: var(--rose); }
.product-tabs-panel { display: none; max-width: 760px; font-size: 14.5px; line-height: 1.7; }
.product-tabs-panel.active { display: block; }
.product-tabs-panel h4 { font-family: var(--font-display); font-size: 18px; font-weight: 500; margin: 0 0 8px; }
.product-tabs-panel p { margin: 0 0 14px; color: var(--ink-soft); }
.product-tabs-panel ul { padding-left: 18px; color: var(--ink-soft); }

/* =========================================================
   FICHE PRODUIT DYNAMIQUE — form natif WC + réassurance
   ========================================================= */

/* Prix (markup WooCommerce) */
.product-detail-price-wc,
.product-detail-price-wc .price,
.product-detail-price-wc .woocommerce-Price-amount {
	font-family: var(--font-display);
	font-size: 34px;
	font-weight: 500;
	letter-spacing: -0.02em;
	color: var(--ink);
	line-height: 1;
}
.product-detail-price-wc del,
.product-detail-price-wc del .woocommerce-Price-amount {
	font-size: 20px;
	color: var(--ink-mute);
	text-decoration: line-through;
	margin-right: 8px;
}
.product-detail-price-wc ins { text-decoration: none; }
.product-detail-price-wc ins .woocommerce-Price-amount { color: var(--rose-deep); }
.product-detail-save { background: var(--rose-mist); color: var(--rose-deep); padding: 4px 10px; border-radius: 99px; font-size: 11.5px; font-weight: 600; }

/* Court descriptif */
.product-detail-short { font-size: 14px; line-height: 1.65; color: var(--ink-soft); margin: 16px 0; }
.product-detail-short p { margin: 0 0 8px; }
.product-detail-short p:last-child { margin-bottom: 0; }

/* Stock rupture */
.product-detail-stock.is-out { color: #c0392b; }
.product-detail-stock.is-out .product-detail-stock-dot { background: #c0392b; }

/* ── Form natif (variations / quantité / bouton) ── */
.product-detail-form { margin: 20px 0 6px; }
.product-detail-form .variations { width: 100%; border-collapse: collapse; margin: 0 0 16px; }
.product-detail-form .variations tr { display: block; margin-bottom: 12px; }
.product-detail-form .variations th,
.product-detail-form .variations td { display: block; text-align: left; padding: 0; }
.product-detail-form .variations .label label { font-size: 12.5px; font-weight: 600; color: var(--ink); margin-bottom: 6px; display: block; }
.product-detail-form select,
.product-detail-form .variations .value select {
	width: 100%;
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	background-color: #fff;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23A66898' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	border: 1.5px solid var(--rose-soft);
	border-radius: 12px;
	padding: 12px 40px 12px 16px;
	font: inherit;
	font-size: 14px;
	color: var(--ink);
	cursor: pointer;
}
.product-detail-form select:focus {
	outline: none;
	border-color: var(--rose);
	box-shadow: 0 0 0 3px var(--rose-mist);
}
.product-detail-form .reset_variations {
	display: inline-block;
	margin-top: 6px;
	font-size: 12px;
	color: var(--rose-deep);
	text-decoration: underline;
}

/* Sélecteur de variation en PAVÉS (remplace le menu déroulant — façon sixtystones) */
.variations_form.lv-has-pills .variations { display: none; }
.lv-pills { margin: 4px 0 18px; }
.lv-pills__label {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ink);
	margin-bottom: 11px;
}
.lv-pills__opts { display: flex; flex-wrap: wrap; gap: 10px; }
.lv-pill {
	position: relative;
	background: #fff;
	border: 1.5px solid var(--rose-soft);
	border-radius: 12px;
	padding: 12px 18px;
	font: inherit;
	font-size: 14px;
	font-weight: 500;
	color: var(--ink);
	cursor: pointer;
	transition: border-color 0.15s, background 0.15s, color 0.15s, box-shadow 0.15s;
}
.lv-pill:hover:not(.is-oos):not(.is-active) { border-color: var(--rose); background: var(--rose-mist); }
.lv-pill.is-active {
	background: var(--rose);
	border-color: var(--rose);
	color: #fff;
	box-shadow: 0 6px 16px -8px color-mix(in oklab, var(--rose) 70%, transparent);
}
.lv-pill.is-oos {
	color: var(--ink-mute);
	text-decoration: line-through;
	cursor: not-allowed;
	border-style: dashed;
	background: color-mix(in oklab, var(--cream) 55%, #ece7ea);
}
.lv-pill__badge {
	position: absolute;
	top: -9px;
	left: 12px;
	background: #c0392b;
	color: #fff;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	padding: 2px 7px;
	border-radius: 99px;
	text-decoration: none;
	line-height: 1.4;
}
.product-detail-form .single_variation .price {
	display: block;
	font-family: var(--font-display);
	font-size: 24px;
	font-weight: 500;
	color: var(--ink);
	margin: 4px 0 12px;
}
.product-detail-form .single_variation .stock { font-size: 13px; color: var(--ink-soft); }
.product-detail-form .single_variation .wc-no-matching-variations { font-size: 13px; color: #c0392b; }

/* Ligne quantité + bouton (simple ET variation) */
.product-detail-form form.cart:not(.variations_form),
.product-detail-form .woocommerce-variation-add-to-cart {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
}
.product-detail-form .quantity {
	display: flex;
	align-items: center;
	background: #fff;
	border: 1.5px solid var(--rose-soft);
	border-radius: 99px;
	overflow: hidden;
	flex-shrink: 0;
}
.product-detail-form .quantity .qty {
	width: 54px;
	height: 46px;
	text-align: center;
	border: none;
	background: none;
	font: inherit;
	font-weight: 600;
	color: var(--ink);
	-moz-appearance: textfield;
}
.product-detail-form .quantity .qty::-webkit-outer-spin-button,
.product-detail-form .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.product-detail-form .quantity .qty { width: 46px; }
.product-detail-form .lv-qty-btn {
	width: 40px;
	height: 46px;
	background: none;
	border: none;
	font-size: 18px;
	line-height: 1;
	color: var(--ink-soft);
	cursor: pointer;
	transition: color 0.15s, background 0.15s;
}
.product-detail-form .lv-qty-btn:hover { color: var(--rose-deep); background: var(--rose-mist); }
.product-detail-form .single_add_to_cart_button {
	flex: 1;
	background: var(--rose);
	color: #fff;
	border: none;
	border-radius: 99px;
	padding: 15px 24px;
	font: inherit;
	font-weight: 500;
	font-size: 14px;
	cursor: pointer;
	transition: background 0.18s, transform 0.18s;
	box-shadow: 0 8px 20px -8px color-mix(in oklab, var(--rose) 60%, transparent);
}
.product-detail-form .single_add_to_cart_button:hover { background: var(--rose-deep); transform: translateY(-1px); }
.product-detail-form .single_add_to_cart_button.disabled,
.product-detail-form .single_add_to_cart_button:disabled { opacity: 0.45; cursor: not-allowed; box-shadow: none; transform: none; }
/* Abonnements : mention de récurrence */
.product-detail-form .subscription-details,
.product-detail-form .subscription-price { font-size: 13px; color: var(--ink-soft); }

/* Stock affiché en double : on cache celui de WC (on garde notre .product-detail-stock au-dessus) */
.product-detail-form > .stock { display: none; }

/* Liste d'envies : sur sa PROPRE ligne, pleine largeur, sous « Ajouter au panier » */
.product-detail-form form.cart:not(.variations_form),
.product-detail-form .woocommerce-variation-add-to-cart { flex-wrap: wrap; }
.product-detail-form .leden-wish-btn {
	width: 100%;
	flex-basis: 100%;
	justify-content: center;
	margin-top: 4px;
	order: 9;
	height: 44px;
}

/* « Ajouter à un abonnement existant » (WCS) + bloc plugin pofw vide : masqués (look sixtystones épuré) */
.product-detail-form .wcs_add_to_cart_button_text,
.product-detail-form .wcs-add-to-subscription-wrapper,
.product-detail-form .add_to_subscription_button,
.product-detail-form .wcs-products-add-to-subscription { display: none !important; }

/* Labels d'accessibilité WooCommerce (« quantité de … ») — masqués partout (la règle WC manquait) */
.screen-reader-text,
.woocommerce .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.screen-reader-text:focus {
	position: static !important;
	width: auto;
	height: auto;
	margin: 0;
	clip: auto;
	white-space: normal;
}

/* Ligne livraison estimée */
.product-detail-delivery { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--ink-soft); margin: 16px 0; }
.product-detail-delivery svg { color: var(--rose-deep); flex-shrink: 0; }
.product-detail-delivery strong { color: var(--ink); font-weight: 600; }

/* Réassurance — bandeau de 3 boîtes sous les colonnes */
.product-trust { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 40px 0 0; }
.product-trust-item {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 18px 20px;
	border: 1px solid var(--rose-soft);
	border-radius: 16px;
	background: #fff;
}
.product-trust-item svg { color: var(--rose-deep); flex-shrink: 0; }
.product-trust-item strong { display: block; font-family: var(--font-display); font-size: 14.5px; font-weight: 500; color: var(--ink); letter-spacing: -0.01em; }
.product-trust-item span { font-size: 12px; color: var(--ink-soft); }
@media (max-width: 720px) { .product-trust { grid-template-columns: 1fr; } }

/* Paiements */
.product-detail-pay { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.product-detail-pay-label { font-size: 12px; color: var(--ink-soft); }
.product-detail-pay-icons { display: flex; gap: 7px; flex-wrap: wrap; align-items: center; }
.product-detail-pay-icons .pc { height: 27px; width: auto; display: block; }

/* « All Products for Subscriptions » : on masque la case « Ajouter à un abonnement existant ? »
   et les options d'abonnement sur la fiche (look épuré sixtystones). */
.product-detail .wcsatt-options-wrapper,
.product-detail .wcsatt-options-prompt-wrapper,
.product-detail [class*="wcsatt-add-to-subscription"],
.product-detail [class*="wcsatt-add-cart-to-subscription"],
.product-detail .wcsatt-sub-options,
.product-detail .wcsatt-options-product { display: none !important; }

/* Méta (SKU + catégorie) */
.product-detail-meta { margin-top: 16px; display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--ink-mute); }
.product-detail-meta a { color: var(--rose-deep); }

/* Badge promo galerie */
.product-gallery-badge--sale {
	background: var(--rose-deep);
	color: #fff;
	font-family: var(--font-body);
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	padding: 4px 10px;
	border-radius: 99px;
	transform: none;
	text-shadow: none;
}

/* Masque le bloc d'options plugin (pofw) quand il est vide */
.product-detail .pofw-product-options-wrapper:not(:has(input, select, textarea)) { display: none; }

/* ── Sections fluides du bas (description / caractéristiques / avis), façon sixtystones ── */
.product-section { max-width: 860px; margin: 48px 0 0; padding-top: 40px; border-top: 1px solid var(--rose-soft); }
.product-section-title { font-family: var(--font-display); font-size: 24px; font-weight: 500; letter-spacing: -0.02em; margin: 0 0 18px; }

/* Description (prose + voir plus) */
.product-prose { font-size: 14.5px; line-height: 1.75; color: var(--ink-soft); }
.product-prose p { margin: 0 0 14px; }
.product-prose p:last-child { margin-bottom: 0; }
.product-prose h2, .product-prose h3, .product-prose h4 { font-family: var(--font-display); font-weight: 500; color: var(--ink); margin: 22px 0 8px; }
.product-prose ul, .product-prose ol { padding-left: 20px; margin: 0 0 14px; }
.product-prose img { max-width: 100%; height: auto; border-radius: 12px; }
.product-prose a { color: var(--rose-deep); }
.product-desc-clamp { position: relative; max-height: 280px; overflow: hidden; transition: max-height 0.3s ease; }
.product-desc-clamp::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 90px; background: linear-gradient(to bottom, transparent, var(--cream)); pointer-events: none; transition: opacity 0.2s; }
.product-desc-clamp.is-open { max-height: 6000px; }
.product-desc-clamp.is-open::after { opacity: 0; }
.product-desc-toggle { margin-top: 14px; background: none; border: none; color: var(--rose-deep); font: inherit; font-weight: 600; font-size: 14px; cursor: pointer; padding: 6px 0; display: inline-flex; align-items: center; gap: 6px; }
.product-desc-toggle:hover { color: var(--ink); }

/* Caractéristiques — table d'attributs */
.product-section .woocommerce-product-attributes { width: 100%; border-collapse: collapse; font-size: 14px; }
.product-section .woocommerce-product-attributes th,
.product-section .woocommerce-product-attributes td { text-align: left; padding: 11px 14px; border-bottom: 1px solid var(--rose-soft); vertical-align: top; }
.product-section .woocommerce-product-attributes tr:nth-child(odd) th,
.product-section .woocommerce-product-attributes tr:nth-child(odd) td { background: color-mix(in oklab, var(--rose-mist) 30%, transparent); }
.product-section .woocommerce-product-attributes th { font-weight: 600; color: var(--ink); width: 32%; }
.product-section .woocommerce-product-attributes td { color: var(--ink-soft); }
.product-section .woocommerce-product-attributes td p { margin: 0; }

/* Avis (reviews WooCommerce) */
.product-reviews { max-width: 860px; }
.product-no-review { font-size: 14px; color: var(--ink-soft); }
.product-reviews #reviews { max-width: none; }
.product-reviews .commentlist { list-style: none; padding: 0; margin: 0 0 28px; display: grid; gap: 16px; }
.product-reviews .commentlist li { border: 1px solid var(--rose-soft); border-radius: 14px; padding: 16px 18px; background: #fff; }
.product-reviews .commentlist .comment_container { display: flex; gap: 12px; }
.product-reviews .commentlist .avatar { width: 42px; height: 42px; border-radius: 99px; }
.product-reviews .commentlist .meta { font-size: 13px; color: var(--ink); margin-bottom: 4px; }
.product-reviews .star-rating { color: var(--rose); margin-bottom: 6px; }
.product-reviews .comment-form-rating .stars a { color: var(--rose); }
.product-reviews #respond { border: 1px solid var(--rose-soft); border-radius: 16px; padding: 22px; background: var(--cream); margin-top: 8px; }
.product-reviews #respond input[type="text"],
.product-reviews #respond input[type="email"],
.product-reviews #respond textarea {
	width: 100%;
	border: 1.5px solid var(--rose-soft);
	border-radius: 10px;
	padding: 10px 12px;
	font: inherit;
	background: #fff;
}
.product-reviews #respond input:focus,
.product-reviews #respond textarea:focus { outline: none; border-color: var(--rose); box-shadow: 0 0 0 3px var(--rose-mist); }
.product-reviews #respond .form-submit input,
.product-reviews #respond input#submit {
	background: var(--rose);
	color: #fff;
	border: none;
	border-radius: 99px;
	padding: 12px 26px;
	font: inherit;
	font-weight: 500;
	cursor: pointer;
	width: auto;
}
.product-reviews #respond .form-submit input:hover { background: var(--rose-deep); }

/* Produits similaires */
.product-related { margin: 56px 0 0; padding-top: 44px; border-top: 1px solid var(--rose-soft); }
.product-related-title { font-family: var(--font-display); font-size: 26px; font-weight: 500; letter-spacing: -0.02em; margin: 0 0 24px; }


/* ===== terms.html (lines 2271-2288 = 18) ===== */

.lg-page { max-width: 760px; margin: 0 auto; padding: 48px 24px 64px; }
.lg-page > .tag { font-family: var(--font-hand); font-size: 22px; color: var(--rose-deep); transform: rotate(-1.5deg); display: inline-block; }
.lg-page h1 { font-family: var(--font-display); font-size: 38px; font-weight: 500; letter-spacing: -0.025em; line-height: 1.05; margin: 4px 0 24px; }
.lg-page h1 em { font-style: italic; color: var(--rose-deep); }
.lg-updated { font-size: 12px; color: var(--ink-mute); margin-bottom: 32px; }
.lg-content { font-size: 15px; line-height: 1.7; color: var(--ink); }
.lg-content h2 { font-family: var(--font-display); font-size: 22px; font-weight: 500; letter-spacing: -0.015em; margin: 32px 0 12px; }
.lg-content p { margin: 0 0 16px; color: var(--ink-soft); }
.lg-content ul { margin: 0 0 16px; padding-left: 22px; color: var(--ink-soft); }
.lg-content li { margin-bottom: 6px; }
.lg-content strong { color: var(--ink); font-weight: 600; }
.lg-toc { background: var(--rose-mist); border-radius: 14px; padding: 18px 22px; margin-bottom: 32px; }
.lg-toc-title { font-family: var(--font-display); font-style: italic; color: var(--rose-deep); font-size: 14px; margin-bottom: 8px; }
.lg-toc ol { margin: 0; padding-left: 22px; font-size: 13.5px; }
.lg-toc ol a { color: var(--ink); text-decoration: none; }
.lg-toc ol a:hover { color: var(--rose-deep); text-decoration: underline; }


/* ============ CAT-BANNER : background hero-like (override) ============ */
.cat-banner {
	position: relative;
	background:
		radial-gradient(ellipse 80% 60% at 20% 30%, color-mix(in oklab, var(--rose-mist) 60%, transparent) 0%, transparent 100%),
		radial-gradient(ellipse 70% 60% at 85% 70%, color-mix(in oklab, var(--green-soft) 40%, transparent) 0%, transparent 100%),
		linear-gradient(180deg, var(--cream) 0%, color-mix(in oklab, var(--rose-mist) 25%, var(--cream)) 60%, var(--cream) 100%);
	padding: 54px 24px 39px;
	text-align: center;
	margin-bottom: 20px;
	overflow: hidden;
}
/* Resserrage UNIQUEMENT sur les archives catégorie/boutique (le contenu remonte là). */
.tax-product_cat .cat-banner,
.term-description .cat-banner,
.post-type-archive-product .cat-banner,
.woocommerce-shop .cat-banner { padding-bottom: 16px; margin-bottom: 0; }
.cat-banner .brush-divider { height: 28px !important; }
.cat-banner::after { height: 22px; }
.cat-banner { text-align: left; }
.cat-banner__inner {
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 24px;
	position: relative;
	z-index: 1;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 36px;
}
.cat-banner { padding-left: 0; padding-right: 0; }
.cat-banner__content { min-width: 0; }

/* Breadcrumb */
.cat-breadcrumb {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--font-body);
	font-size: 12px;
	color: var(--ink-soft);
	letter-spacing: 0.02em;
	margin-bottom: 14px;
	padding: 4px 12px;
	background: rgba(255, 255, 255, 0.55);
	border: 1px solid var(--rose-soft);
	border-radius: 99px;
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
}
.cat-breadcrumb a {
	color: var(--ink-soft);
	text-decoration: none;
	transition: color 0.16s;
}
.cat-breadcrumb a:hover { color: var(--rose-deep); }
.cat-breadcrumb [aria-current="page"] { color: var(--ink); font-weight: 500; }
.cat-breadcrumb__sep { color: var(--rose-soft); }

/* H1 + lead */
.cat-banner h1 {
	font-family: var(--font-display);
	font-size: 26px;
	font-weight: 400;
	letter-spacing: -0.022em;
	line-height: 1.15;
	margin: 0 0 8px;
	color: var(--ink);
}
.cat-banner h1 em { font-style: italic; color: var(--rose-deep); }
.cat-banner h1 .cat-title-accent { color: var(--rose-deep); font-style: italic; }
.cat-banner .cat-banner__lead {
	font-size: 14.5px;
	color: var(--ink-soft);
	line-height: 1.55;
	max-width: 520px;
	margin: 0;
}
.cat-lead-wrap.is-long .cat-banner__lead {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	text-overflow: ellipsis;
}
.cat-lead-wrap.is-long .cat-lead-toggle__input:checked ~ .cat-banner__lead {
	display: block;
	-webkit-line-clamp: unset;
	overflow: visible;
}
.cat-lead-toggle__btn {
	display: inline-block;
	margin-top: 6px;
	font-size: 12.5px;
	font-weight: 500;
	color: var(--rose-deep);
	cursor: pointer;
	background: none;
	border: none;
	padding: 0;
	user-select: none;
}
.cat-lead-toggle__btn:hover { color: var(--ink); }
.cat-lead-toggle__less { display: none; }
.cat-lead-toggle__input:checked ~ .cat-lead-toggle__btn .cat-lead-toggle__more { display: none; }
.cat-lead-toggle__input:checked ~ .cat-lead-toggle__btn .cat-lead-toggle__less { display: inline; }

/* Bloc stat à droite — slim */
.cat-stat {
	display: flex;
	flex-direction: column;
	gap: 8px;
	flex-shrink: 0;
	min-width: 0;
}
.cat-stat__num {
	display: inline-flex;
	align-items: baseline;
	gap: 5px;
	font-family: var(--font-body);
	font-size: 13px;
	font-weight: 500;
	color: var(--ink-soft);
	background: rgba(255, 255, 255, 0.65);
	border: 1px solid var(--rose-soft);
	border-radius: 9px;
	padding: 5px 12px;
	line-height: 1;
	align-self: flex-start;
}
.cat-stat__num strong {
	font-family: var(--font-display);
	font-size: 16px;
	color: var(--rose-deep);
	font-weight: 500;
}
.cat-stat__label { display: none; }
.cat-stat__divider { display: none; }
.cat-stat__trust {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.cat-stat__trust li {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	color: var(--ink-soft);
	line-height: 1.3;
}
.cat-stat__trust svg { color: var(--rose-deep); flex-shrink: 0; width: 12px; height: 12px; }

@media (max-width: 860px) {
	.cat-banner { text-align: center; }
	.cat-banner__inner { grid-template-columns: 1fr; gap: 18px; }
	.cat-banner__content { display: flex; flex-direction: column; align-items: center; }
	.cat-banner__lead { margin: 0 auto; }
	.cat-stat { justify-self: center; min-width: 180px; }
	.cat-stat__trust { text-align: center; }
	.cat-stat__trust li { justify-content: center; }
	.cat-banner h1 { font-size: 28px; }
}
@media (max-width: 480px) {
	.cat-banner { padding: 40px 16px 20px; }
	.cat-banner h1 { font-size: 24px; }
	.cat-stat__num { font-size: 40px; }
}
.cat-banner::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: radial-gradient(circle, color-mix(in oklab, var(--rose) 25%, transparent) 1px, transparent 1.5px);
	background-size: 28px 28px;
	opacity: 0.4;
	pointer-events: none;
}
.cat-banner > * { position: relative; z-index: 1; }

/* Fondu doux vers cream en bas */
.cat-banner::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 80px;
	background: linear-gradient(180deg, transparent 0%, color-mix(in oklab, var(--cream) 60%, transparent) 55%, var(--cream) 100%);
	pointer-events: none;
}

/* ============ NAV : emojis devant les items (test) ============ */
.nav-item[href*="alimentation"]::before { content: "🌿 "; }
.nav-item[href*="foins"]::before         { content: "🌾 "; }
.nav-item[href*="accessoires"]::before   { content: "🛍️ "; }
.nav-item[href*="litieres"]::before      { content: "🪵 "; }
.nav-item[href*="jouets"]::before        { content: "🐰 "; }
.nav-item[href*="box"]::before           { content: "📦 "; }
.nav-item[href*="promo"]::before,
.nav-item.soldes::before                 { content: "🏷️ "; }
.nav-item:where(:not([href*="alimentation"]):not([href*="foins"]):not([href*="accessoires"]):not([href*="litieres"]):not([href*="jouets"]):not([href*="box"]):not([href*="promo"]):not([href*="chouchoute"]))[href="#"]::before {
	content: "✦ ";
}

/* ============ NAV : icônes (images depuis meta _menu_item_icon-id) ============ */
.nav-item { display: inline-flex; align-items: center; gap: 8px; }
.nav-item .nav-icon {
	width: 24px;
	height: 24px;
	object-fit: contain;
	vertical-align: middle;
	flex-shrink: 0;
}
/* Si une icône image est présente, on désactive l'emoji ::before */
.nav-item:has(.nav-icon)::before { content: none !important; }

/* ============ NAV : sous-menus mega-bar pleine largeur ============ */
.nav { position: relative; }
.nav .nav-inner { display: flex; justify-content: stretch; align-items: stretch; gap: 4px; flex-wrap: nowrap; }
.nav-item-wrap { position: static; flex: 1 1 auto; min-width: 0; display: flex; }
.nav-item-wrap > .nav-item { flex: 1 1 auto; justify-content: center; min-width: 0; }

.nav-submenu {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	width: 100%;
	background: var(--cream);
	border-bottom: 1px solid var(--rose-soft);
	box-shadow: 0 8px 18px -14px rgba(166, 104, 152, 0.18);
	padding: 11px 24px;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(-3px);
	transition: opacity 0.16s ease, transform 0.16s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.16s;
	z-index: 50;
}
.nav-submenu::before {
	content: "";
	position: absolute;
	top: -8px; left: 0; right: 0; height: 10px;
}
.nav-item-wrap:hover > .nav-submenu,
.nav-item-wrap:focus-within > .nav-submenu {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateY(0);
}

.nav-submenu-inner {
	max-width: 1232px;
	margin: 0 auto;
	display: flex;
	flex-wrap: wrap;
	justify-content: stretch;
	gap: 7px;
}
.nav-submenu-inner .nav-pill {
	flex: 1 1 auto;
	justify-content: center;
	min-width: 0;
}

.nav-pill {
	--pill-color: #CC8BB9;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 7px 13px;
	border-radius: 10px;
	background: #fff;
	border: 1.25px solid var(--rose-soft, #E8C8DC);
	color: var(--ink, #1A1A1A);
	text-decoration: none;
	font-size: 13.5px;
	font-weight: 400;
	line-height: 1;
	letter-spacing: -0.005em;
	transition: background 0.16s, border-color 0.16s, color 0.16s;
}
.nav-pill:hover {
	background: color-mix(in srgb, var(--pill-color) 12%, #fff);
	border-color: var(--pill-color);
	color: var(--pill-color);
}
.nav-pill.is-active {
	background: var(--pill-color);
	border-color: var(--pill-color);
	color: #fff;
}
.nav-pill__emoji { display: none; }
.nav-pill__name { white-space: nowrap; }

@supports not (background: color-mix(in srgb, red, blue)) {
	.nav-pill:hover { background: var(--rose-mist, #F8E8F1); }
}

@supports not (background: color-mix(in srgb, red, blue)) {
	.nav-pill { background: rgba(204, 139, 185, 0.08); border-color: rgba(204, 139, 185, 0.45); }
	.nav-pill:hover { background: rgba(204, 139, 185, 0.18); }
}

/* Indicateur visuel des items à enfants — SVG centré, pivote en place */
.nav-item-wrap.has-children > .nav-item::after {
	content: "";
	width: 10px; height: 10px;
	margin-left: 5px;
	display: inline-block;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'><path d='M2 4 L5 7 L8 4' stroke='currentColor' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	opacity: 0.55;
	transform: rotate(0deg);
	transform-origin: center center;
	transition: transform 0.2s, opacity 0.2s;
	vertical-align: middle;
}
.nav-item-wrap.has-children:hover > .nav-item::after {
	transform: rotate(180deg);
	opacity: 1;
}

/* ============ NAV : sizes (override) ============ */
.nav { padding: 10px 0 4px; }
.nav .nav-inner { gap: 6px; }
.nav-item {
	padding: 7px 13px;
	font-size: 15.5px;
	gap: 8px;
}
.nav-item .nav-icon { width: 24px; height: 24px; }

/* (Anciens overrides compact du sous-menu retirés : la mega-bar pleine largeur les
   remplace, définie plus haut dans le bloc "NAV : sous-menus mega-bar".) */

/* ============================================================
   Roadmap publique — template-roadmap.php
   ============================================================ */
.rm-hero {
	position: relative;
	background:
		radial-gradient(ellipse 80% 60% at 20% 30%, color-mix(in oklab, var(--rose-mist) 60%, transparent) 0%, transparent 100%),
		radial-gradient(ellipse 70% 60% at 85% 70%, color-mix(in oklab, var(--green-soft) 40%, transparent) 0%, transparent 100%),
		linear-gradient(180deg, var(--cream) 0%, color-mix(in oklab, var(--rose-mist) 30%, var(--cream)) 60%, var(--cream) 100%);
	padding: 80px 24px 60px;
	text-align: center;
	overflow: hidden;
}
.rm-hero::before {
	content: ""; position: absolute; inset: 0;
	background-image: radial-gradient(circle, color-mix(in oklab, var(--rose) 25%, transparent) 1px, transparent 1.5px);
	background-size: 28px 28px;
	opacity: 0.35; pointer-events: none;
}
.rm-hero > * { position: relative; z-index: 2; }
.rm-hero__tag { font-family: var(--font-hand); font-size: 28px; color: var(--rose-deep); transform: rotate(-2deg); display: inline-block; }
.rm-hero__title { font-family: var(--font-display); font-size: clamp(34px, 4.5vw, 52px); font-weight: 500; letter-spacing: -0.028em; margin: 6px 0 16px; line-height: 1.1; }
.rm-hero__title em { font-style: italic; color: var(--rose-deep); }
.rm-hero__sub { font-size: 16px; color: var(--ink-soft); line-height: 1.65; margin: 0 auto 36px; max-width: 640px; }
.rm-hero__counts { display: inline-flex; gap: 12px; flex-wrap: wrap; justify-content: center; }
.rm-counter {
	display: inline-flex; flex-direction: column; align-items: center;
	padding: 16px 28px;
	background: #fff;
	border: 1.5px solid var(--rose-soft);
	border-radius: 16px;
	min-width: 110px;
	box-shadow: 0 4px 12px -6px rgba(166,104,152,0.15);
}
.rm-counter__num { font-family: var(--font-display); font-size: 32px; font-weight: 500; color: var(--ink); line-height: 1; font-variant-numeric: tabular-nums; }
.rm-counter__lbl { font-size: 11px; font-weight: 700; letter-spacing: 0.10em; text-transform: uppercase; color: var(--ink-soft); margin-top: 6px; }
.rm-counter--wip  { border-color: #f5b14a; }
.rm-counter--wip  .rm-counter__num { color: #c0660d; }
.rm-counter--done { border-color: var(--sage); }
.rm-counter--done .rm-counter__num { color: #4a6b27; }
.rm-counter--todo { border-color: var(--rose-soft); }
.rm-counter--todo .rm-counter__num { color: var(--rose-deep); }

.rm-layout { max-width: 1200px; margin: 48px auto 80px; padding: 0 24px; }
.rm-section { margin-bottom: 56px; }
.rm-section__head { display: flex; align-items: center; gap: 14px; margin-bottom: 22px; padding-bottom: 14px; border-bottom: 1px dashed var(--rose-soft); }
.rm-section__icon { font-size: 26px; line-height: 1; }
.rm-section__title { font-family: var(--font-display); font-size: 28px; font-weight: 500; letter-spacing: -0.018em; margin: 0; color: var(--ink); }
.rm-section__count { font-size: 12px; font-weight: 700; letter-spacing: 0.06em; padding: 4px 12px; border-radius: 99px; background: var(--rose-mist); color: var(--rose-deep); }
.rm-section--wip  .rm-section__count { background: #ffefcd; color: #c0660d; }
.rm-section--done .rm-section__count { background: var(--green-soft); color: #4a6b27; }
.rm-section--todo .rm-section__count { background: var(--rose-mist); color: var(--rose-deep); }
.rm-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.rm-card {
	position: relative;
	background: #fff;
	border: 1.5px solid var(--rose-soft);
	border-radius: 16px;
	padding: 20px 22px;
	transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.rm-card:hover { transform: translateY(-3px); box-shadow: 0 12px 28px -16px rgba(166,104,152,0.30); border-color: var(--rose); }
.rm-card--wip  { border-left: 4px solid #f5b14a; }
.rm-card--done { border-left: 4px solid var(--sage); opacity: 0.92; }
.rm-card--todo { border-left: 4px solid var(--rose-soft); background: color-mix(in oklab, var(--cream) 92%, var(--rose-mist)); }
.rm-card__head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 10px; }
.rm-card__cat {
	display: inline-flex; align-items: center;
	font-size: 10.5px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
	padding: 3px 10px; border-radius: 99px;
	color: #fff;
	background: var(--rm-cat-color, var(--rose));
}
.rm-card__date { font-size: 11.5px; color: var(--ink-soft); font-weight: 500; }
.rm-card__title { font-family: var(--font-display); font-size: 18px; font-weight: 500; letter-spacing: -0.015em; margin: 0 0 8px; color: var(--ink); line-height: 1.3; }
.rm-card__descr { font-size: 13.5px; color: var(--ink-soft); line-height: 1.55; margin: 0; }

.rm-cta {
	margin: 48px auto 0; max-width: 720px;
	background: linear-gradient(135deg, var(--rose-mist) 0%, color-mix(in oklab, var(--rose-soft) 50%, var(--cream)) 100%);
	border: 1.5px solid var(--rose-soft);
	border-radius: 22px;
	padding: 32px 28px;
	text-align: center;
}
.rm-cta p { font-size: 16px; color: var(--ink); line-height: 1.6; margin: 0 0 18px; }
.rm-cta p strong { font-family: var(--font-display); font-weight: 500; color: var(--rose-deep); font-size: 22px; display: block; margin-bottom: 6px; }


/* ============================================================
   CATÉGORIE PRODUITS — REDESIGN V2 (no sidebar, top filters)
   ============================================================ */

/* Strip horizontal sous-catégories */
.shop-subcats {
	max-width: 1280px;
	margin: 0 auto 18px;
	padding: 0 24px;
}
.shop-subcats__inner {
	display: flex;
	gap: 8px;
	overflow-x: auto;
	padding: 4px 0 8px;
	scrollbar-width: thin;
	scrollbar-color: var(--rose-soft) transparent;
}
.shop-subcats__inner::-webkit-scrollbar { height: 4px; }
.shop-subcats__inner::-webkit-scrollbar-thumb { background: var(--rose-soft); border-radius: 4px; }
.subcat-chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 14px 8px 16px;
	background: #fff;
	border: 1px solid var(--rose-soft);
	border-radius: 99px;
	color: var(--ink);
	text-decoration: none;
	font-size: 13.5px;
	font-weight: 500;
	line-height: 1;
	white-space: nowrap;
	transition: background 0.16s, border-color 0.16s, color 0.16s, transform 0.16s;
	flex-shrink: 0;
}
.subcat-chip:hover {
	border-color: var(--rose);
	color: var(--rose-deep);
	transform: translateY(-1px);
}
.subcat-chip.is-active {
	background: var(--rose);
	border-color: var(--rose);
	color: #fff;
}
.subcat-chip__count {
	font-size: 11.5px;
	font-weight: 500;
	padding: 2px 7px;
	border-radius: 99px;
	background: color-mix(in oklab, var(--rose-soft) 60%, transparent);
	color: var(--rose-deep);
}
.subcat-chip.is-active .subcat-chip__count {
	background: rgba(255, 255, 255, 0.25);
	color: #fff;
}

/* Layout principal sans sidebar */
.shop-wide {
	max-width: 1280px;
	margin: 0 auto;
	padding: 18px 24px 16px;
}

/* Toolbar V2 — filtres + meta */
.shop-toolbar-v2 {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	margin-top: -5px;
	margin-bottom: 20px;
	padding: 8px 12px;
	background: #fff;
	border: 1px solid color-mix(in oklab, var(--rose-soft) 70%, #fff);
	border-radius: 14px;
	box-shadow: 0 2px 8px -6px rgba(166, 104, 152, 0.14);
	position: relative;
	z-index: 20;
}
.shop-toolbar-v2__filters {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	align-items: center;
}
.shop-toolbar-v2__meta {
	display: flex;
	align-items: center;
	gap: 14px;
	flex-shrink: 0;
}
.shop-toolbar-v2__count {
	font-size: 12.5px;
	color: var(--ink-soft);
	white-space: nowrap;
}
.shop-toolbar-v2__count strong { color: var(--ink); font-weight: 600; }

/* ===== Filtres « tout visible » (chips fréquence + prix inline) ===== */
.shop-toolbar-v2__filters { gap: 8px 14px; }
.shop-fgroup { display: inline-flex; align-items: center; gap: 9px; }
.shop-fgroup__label { font-size: 11.5px; font-weight: 600; color: var(--ink-soft); text-transform: uppercase; letter-spacing: .05em; white-space: nowrap; }
.shop-fchips { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.shop-fchip { position: relative; display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 99px; border: 1.5px solid var(--rose-soft); background: #fff; font-size: 13px; color: var(--ink); cursor: pointer; user-select: none; transition: border-color .15s, background .15s; }
.shop-fchip input { position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none; }
.shop-fchip__dot { width: 9px; height: 9px; border-radius: 50%; background: var(--fc, var(--rose)); flex-shrink: 0; }
.shop-fchip:hover { border-color: var(--fc, var(--rose)); }
.shop-fchip.is-on { border-color: var(--fc, var(--rose)); background: color-mix(in srgb, var(--fc, #cc8bb9) 13%, #fff); font-weight: 600; }
.shop-fprice { display: inline-flex; align-items: center; border: 1.5px solid var(--rose-soft); border-radius: 11px; background: #fff; padding-left: 12px; transition: border-color .15s, box-shadow .15s; }
.shop-fprice:focus-within { border-color: var(--rose); box-shadow: 0 0 0 3px rgba(204, 139, 185, 0.14); }
.shop-fprice input { width: 50px; border: 0; background: transparent; padding: 8px 0; font-size: 13px; text-align: center; color: var(--ink); -moz-appearance: textfield; }
.shop-fprice input::-webkit-outer-spin-button, .shop-fprice input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.shop-fprice input:focus { outline: none; }
.shop-fprice input::placeholder { color: var(--ink-mute); }
.shop-fprice__sep { color: var(--rose-soft); font-weight: 600; }
.shop-fprice__cur { color: var(--ink-soft); font-size: 13px; padding: 0 8px 0 5px; }
.shop-fprice__go { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; margin: 3px; border: 0; border-radius: 8px; background: var(--rose); color: #fff; cursor: pointer; transition: background .15s; flex-shrink: 0; }
.shop-fprice__go:hover { background: var(--rose-deep); }
.shop-fprice__go svg { width: 15px; height: 15px; }

/* Filter popover (details/summary) */
.shop-fpop { position: relative; }
.shop-fpop > summary {
	list-style: none;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 12px;
	background: var(--cream);
	border: 1px solid color-mix(in oklab, var(--rose-soft) 75%, #fff);
	border-radius: 9px;
	font-size: 12.5px;
	font-weight: 500;
	color: var(--ink);
	transition: background 0.16s, border-color 0.16s;
	white-space: nowrap;
}
.shop-fpop > summary svg:first-of-type { width: 13px; height: 13px; opacity: .8; }
.shop-fpop > summary::-webkit-details-marker { display: none; }
.shop-fpop > summary:hover {
	background: var(--rose-mist);
	border-color: var(--rose);
}
.shop-fpop[open] > summary {
	background: var(--rose-mist);
	border-color: var(--rose);
	color: var(--rose-deep);
}
.shop-fpop > summary.has-active {
	background: var(--rose);
	border-color: var(--rose);
	color: #fff;
}
.shop-fpop > summary.has-active svg { color: #fff; }
.shop-fpop__pill {
	background: rgba(255, 255, 255, 0.25);
	font-size: 11px;
	font-weight: 600;
	padding: 1px 7px;
	border-radius: 99px;
}
.shop-fpop__chev {
	margin-left: 2px;
	transition: transform 0.18s;
	opacity: 0.7;
}
.shop-fpop[open] > summary .shop-fpop__chev {
	transform: rotate(180deg);
}

.shop-fpop__panel {
	position: absolute;
	top: calc(100% + 8px);
	left: 0;
	min-width: 240px;
	max-width: 360px;
	background: #fff;
	border: 1px solid var(--rose-soft);
	border-radius: 10px;
	box-shadow: 0 24px 48px -24px rgba(166, 104, 152, 0.28), 0 8px 24px -16px rgba(166, 104, 152, 0.12);
	padding: 6px;
	z-index: 30;
	animation: shop-fpop-in 0.16s cubic-bezier(0.16, 1, 0.3, 1);
}
.shop-fpop__panel--narrow { min-width: 220px; padding: 12px; }
/* Pastille couleur de fréquence (vert/orange/rouge…) dans le déroulant. */
.shop-fpop__dot { width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0; }
@keyframes shop-fpop-in {
	from { opacity: 0; transform: translateY(-4px); }
	to   { opacity: 1; transform: translateY(0); }
}
.shop-fpop__list {
	display: flex;
	flex-direction: column;
	gap: 2px;
	max-height: 320px;
	overflow-y: auto;
	scrollbar-width: thin;
	scrollbar-color: var(--rose-soft) transparent;
}
.shop-fpop__opt {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 9px 12px;
	border-radius: 10px;
	font-size: 13px;
	color: var(--ink);
	cursor: pointer;
	transition: background 0.16s;
}
.shop-fpop__opt:hover { background: var(--rose-mist); }
.shop-fpop__opt input {
	appearance: none;
	width: 16px; height: 16px;
	border: 1.5px solid var(--rose-soft);
	border-radius: 4px;
	cursor: pointer;
	position: relative;
	flex-shrink: 0;
	transition: background 0.16s, border-color 0.16s;
}
.shop-fpop__opt input:checked {
	background: var(--rose);
	border-color: var(--rose);
}
.shop-fpop__opt input:checked::after {
	content: "";
	position: absolute;
	top: 2px; left: 4px;
	width: 4px; height: 8px;
	border-right: 2px solid #fff;
	border-bottom: 2px solid #fff;
	transform: rotate(45deg);
}
.shop-fpop__opt-label { flex: 1; line-height: 1.2; }
.shop-fpop__opt-count {
	font-size: 11.5px;
	color: var(--ink-soft);
	background: var(--cream);
	padding: 2px 7px;
	border-radius: 99px;
}

.shop-fpop__price {
	display: flex;
	gap: 8px;
	margin-bottom: 12px;
}
.shop-fpop__price label {
	flex: 1;
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	color: var(--ink-soft);
}
.shop-fpop__price label span {
	font-weight: 500;
	color: var(--ink);
}
.shop-fpop__price input {
	width: 100%;
	font: inherit;
	font-size: 13px;
	padding: 7px 10px;
	border: 1px solid var(--rose-soft);
	border-radius: 8px;
	background: var(--cream);
	color: var(--ink);
}
.shop-fpop__price input:focus { outline: 2px solid var(--rose); outline-offset: -1px; }
.shop-fpop__apply {
	width: 100%;
	padding: 9px 12px;
	background: var(--rose);
	border: none;
	border-radius: 9px;
	color: #fff;
	font-weight: 500;
	font-size: 13px;
	cursor: pointer;
	transition: background 0.16s;
}
.shop-fpop__apply:hover { background: var(--rose-deep); }

.shop-fpop__reset {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 6px 12px;
	font-size: 12.5px;
	color: var(--ink-soft);
	text-decoration: none;
	border-radius: 9px;
	transition: color 0.16s, background 0.16s;
}
.shop-fpop__reset:hover {
	background: var(--rose-mist);
	color: var(--rose-deep);
}

/* État vide stylisé (aucun produit pour les filtres) — inspiré du déroulant de recherche. */
.shop-empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 8px;
	padding: 56px 24px;
	background: #fff;
	border: 1px solid var(--rose-soft);
	border-radius: 16px;
}
.shop-empty__emoji { font-size: 40px; line-height: 1; }
.shop-empty__title { font-family: var(--font-display); font-size: 19px; font-weight: 500; color: var(--ink); margin: 4px 0 0; }
.shop-empty__text { font-size: 13.5px; color: var(--ink-soft); margin: 0; max-width: 380px; line-height: 1.5; }
.shop-empty__reset {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin-top: 8px;
	padding: 10px 18px;
	background: var(--rose);
	color: #fff;
	border-radius: 9px;
	font-size: 13px;
	font-weight: 500;
	text-decoration: none;
	transition: background 0.16s;
}
.shop-empty__reset:hover { background: var(--rose-deep); }

/* Bouton « Voir plus » (load more) + progression */
.shop-loadmore-wrap { display: flex; flex-direction: column; align-items: center; gap: 14px; margin: 40px 0 0; }
.shop-loadmore__progress { display: flex; flex-direction: column; align-items: center; gap: 8px; width: 240px; max-width: 80%; }
.shop-loadmore__seen { font-family: var(--font-body); font-size: 12.5px; color: var(--ink-soft); }
.shop-loadmore__seen strong { color: var(--ink); font-weight: 600; }
.shop-loadmore__bar { width: 100%; height: 4px; background: var(--rose-mist); border-radius: 99px; overflow: hidden; }
.shop-loadmore__bar > span { display: block; height: 100%; background: var(--rose); border-radius: 99px; transition: width 0.4s ease; }
.shop-loadmore__chev { transition: transform 0.2s; }
.shop-loadmore:hover .shop-loadmore__chev { transform: translateY(2px); }
.shop-loadmore.is-loading .shop-loadmore__chev { display: none; }
.shop-loadmore {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	width: 240px; max-width: 80%;
	padding: 9px 24px;
	background: #fff; border: 1px solid var(--rose); color: var(--rose-deep);
	border-radius: 9px;
	font-family: var(--font-body); font-size: 13px; font-weight: 500;
	text-decoration: none; cursor: pointer;
	transition: background 0.16s, color 0.16s;
}
.shop-loadmore__chev { width: 14px; height: 14px; }
.shop-loadmore:hover { background: var(--rose); color: #fff; }
.shop-loadmore.is-loading { cursor: default; }
.shop-loadmore__spin {
	display: none; width: 15px; height: 15px; flex: 0 0 auto;
	border: 2px solid currentColor; border-top-color: transparent;
	border-radius: 50%; animation: leden-loadmore-spin 0.7s linear infinite;
}
.shop-loadmore.is-loading .shop-loadmore__spin { display: inline-block; }
@keyframes leden-loadmore-spin { to { transform: rotate(360deg); } }

/* Toggle pills (En stock / Promo) */
.shop-toggle {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 12px;
	background: var(--cream);
	border: 1px solid color-mix(in oklab, var(--rose-soft) 75%, #fff);
	border-radius: 9px;
	font-size: 12.5px;
	font-weight: 500;
	color: var(--ink);
	cursor: pointer;
	transition: background 0.16s, border-color 0.16s, color 0.16s;
	white-space: nowrap;
}
.shop-toggle svg { width: 12px; height: 12px; opacity: .85; }
.shop-toggle.is-on svg { opacity: 1; }
.shop-toggle:hover { border-color: var(--rose); }
.shop-toggle input {
	position: absolute;
	width: 1px; height: 1px;
	opacity: 0; pointer-events: none;
}
.shop-toggle.is-on {
	background: var(--rose);
	border-color: var(--rose);
	color: #fff;
}
.shop-toggle.is-on svg { color: #fff; }

/* Sort V2 */
.shop-sort-v2 {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 10px 14px;
	background: #fff;
	border: 1px solid #ece6ec;
	border-radius: 10px;
	font-size: 14px;
	cursor: pointer;
	transition: border-color 0.16s, box-shadow 0.16s;
	position: relative;
}
.shop-sort-v2:hover { border-color: var(--rose); }
.shop-sort-v2:focus-within { border-color: var(--rose); box-shadow: 0 0 0 2px rgba(204, 139, 185, 0.25); }
.shop-sort-v2 > span {
	color: var(--ink-soft);
	font-weight: 500;
}
.shop-sort-v2 select {
	appearance: none;
	-webkit-appearance: none;
	background: transparent;
	border: none;
	font: inherit;
	font-size: 14px;
	color: var(--ink);
	font-weight: 500;
	cursor: pointer;
	padding-right: 16px;
}
.shop-sort-v2 select:focus { outline: none; }
.shop-sort-v2 svg { color: var(--rose-deep); }

/* ===== Select custom (déroulé stylé, façon formulaire support) ===== */
.shop-csel { padding: 0; gap: 0; align-items: center; }
.shop-csel.is-open { border-color: var(--rose); box-shadow: 0 0 0 2px rgba(204, 139, 185, 0.25); }
.shop-csel__native { display: none !important; }
.shop-csel > span { display: inline-flex; align-items: center; padding: 9px 2px 9px 13px; color: var(--ink-soft); font-weight: 500; font-size: 13px; line-height: 1; }
.shop-csel__btn { display: inline-flex; align-items: center; gap: 8px; background: transparent; border: 0; font: inherit; font-size: 13px; font-weight: 500; color: var(--ink); cursor: pointer; padding: 9px 13px 9px 6px; line-height: 1; }
.shop-csel__val { white-space: nowrap; line-height: 1; }
.shop-csel__chev { display: inline-flex; color: var(--rose-deep); transition: transform .18s ease; }
.shop-csel__chev svg { position: static !important; right: auto !important; top: auto !important; opacity: 1 !important; }
.shop-csel.is-open .shop-csel__chev { transform: rotate(180deg); }
.shop-csel__list { position: absolute; top: calc(100% + 5px); left: 0; min-width: 100%; z-index: 60; margin: 0; padding: 6px; list-style: none; background: #fff; border: 1px solid #ece6ec; border-radius: 12px; box-shadow: 0 10px 30px rgba(166, 104, 152, 0.18); max-height: 280px; overflow-y: auto; }
.shop-csel__opt { padding: 9px 14px; border-radius: 8px; cursor: pointer; font-size: 13.5px; white-space: nowrap; color: var(--ink); transition: background .12s; }
.shop-csel__opt:hover { background: var(--rose-mist); }
.shop-csel__opt.is-active { background: var(--rose-deep); color: #fff; }
.shop-sort-v2 svg {
	position: absolute;
	right: 12px;
	pointer-events: none;
	opacity: 0.7;
}

/* Grid plus large car pas de sidebar — 4 colonnes */
.shop-wide .shop-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
}

/* ============================================================
   PRODUCT CARD — clean white avec image bien centrée
   ============================================================ */

.shop-wide .product-card {
	background: #fff;
	border: 1px solid var(--rose-soft);
	border-radius: 18px;
	overflow: hidden;
	position: relative;
	display: flex;
	flex-direction: column;
	transition: transform 0.32s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.32s, border-color 0.22s;
	box-shadow: 0 1px 0 rgba(166, 104, 152, 0.04);
}
.shop-wide .product-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 24px 48px -24px rgba(166, 104, 152, 0.34);
	border-color: var(--rose);
}

/* Image wrapper — ratio carré, fond crème */
.shop-wide .product-img-wrap {
	position: relative;
	aspect-ratio: 1 / 1;
	background: #fff;
	overflow: hidden;
	border-bottom: 1px solid color-mix(in oklab, var(--rose-soft) 50%, transparent);
}
.shop-wide .product-img {
	position: absolute !important;
	inset: 18px !important;
	background-size: contain !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
	transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
	aspect-ratio: auto !important;
	display: block !important;
	border-radius: 0 !important;
}
.shop-wide .product-card:hover .product-img { transform: scale(1.06); }
/* 2e visuel au survol (fond la 1re image de galerie par-dessus). */
.shop-wide .product-img-hover {
	position: absolute; inset: 18px; z-index: 1;
	background-size: contain; background-repeat: no-repeat; background-position: center;
	opacity: 0; pointer-events: none;
	transition: opacity 0.4s ease, transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}
.shop-wide .product-card:hover .product-img-hover { opacity: 1; transform: scale(1.06); }

/* Badges en haut à gauche */
.shop-wide .product-badges {
	position: absolute;
	top: 12px;
	left: 12px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	z-index: 2;
	align-items: flex-start;
}
.shop-wide .badge-sale {
	background: var(--rose-deep);
	color: #fff;
	border-radius: 99px;
	padding: 4px 10px;
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	line-height: 1;
	box-shadow: 0 4px 10px -4px rgba(166, 104, 152, 0.5);
}
.shop-wide .badge-new {
	background: none;
	color: var(--rose-deep);
	font-family: var(--font-hand);
	font-size: 22px;
	font-weight: 700;
	letter-spacing: 0.02em;
	transform: rotate(-6deg);
	padding: 0;
	text-shadow: 0 2px 6px rgba(255,255,255,0.9);
	line-height: 1;
}

/* Labels de groupe dans le déroulant carte (Achat unique / Abonnement mensuel) */
.shop-wide .pv-group-label {
	display: block;
	font-size: 12.5px;
	font-weight: 500;
	color: var(--ink-soft);
	margin: 4px 0 6px;
}
.shop-wide .pv-group-label--sub {
	margin-top: 10px;
	padding-top: 14px;
	border-top: 1px solid var(--rose-soft);
}
/* Option abonnement dans le déroulant carte */
.shop-wide .pv-opt--sub {
	border-color: var(--rose);
	background: var(--rose-mist);
}
.shop-wide .pv-opt__freq { font-size: 10px; font-weight: 400; color: var(--ink-mute); margin-left: 1px; }


/* Favori en haut à droite */
.shop-wide .product-fav {
	position: absolute;
	top: 12px;
	right: 12px;
	width: 34px;
	height: 34px;
	border-radius: 99px;
	background: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--rose-deep);
	z-index: 2;
	border: 1px solid var(--rose-soft);
	cursor: pointer;
	transition: background 0.16s, color 0.16s, transform 0.16s, border-color 0.16s;
	box-shadow: 0 4px 12px -6px rgba(166, 104, 152, 0.25);
}
.shop-wide .product-fav:hover {
	background: var(--rose);
	color: #fff;
	border-color: var(--rose);
	transform: scale(1.06);
}
/* Cœur PLEIN quand le produit est dans la liste d'envies */
.shop-wide .product-fav.is-in {
	background: var(--rose);
	color: #fff;
	border-color: var(--rose);
}
.shop-wide .product-fav.is-in svg { fill: currentColor; }

/* Avis sur la photo : badge note + aperçu d'avis au survol (libère le corps de la carte).
   Le conteneur couvre toute la largeur de la photo (pointer-events:none) pour que le
   popover puisse s'étendre sur toute la largeur ; seuls le badge et le pop captent la souris. */
.shop-wide .product-reviews { position: absolute; inset: 0; z-index: 5; pointer-events: none; }
.shop-wide .product-reviews__badge {
	position: absolute; right: 10px; bottom: 10px; pointer-events: auto;
	display: inline-flex; align-items: center; gap: 4px;
	background: rgba(255, 255, 255, 0.94);
	-webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
	border: 1px solid var(--rose-soft);
	border-radius: 8px;
	padding: 3px 8px;
	font-family: var(--font-body); font-size: 12px; color: var(--ink);
	box-shadow: 0 2px 10px -5px rgba(0, 0, 0, 0.3);
	cursor: default;
}
.shop-wide .product-reviews__badge svg { color: var(--rose); flex: 0 0 auto; }
.shop-wide .product-reviews__badge strong { font-weight: 600; }
.shop-wide .product-reviews__count { color: var(--ink-soft); font-size: 11px; }
/* Popover d'aperçu */
/* Le popover occupe toute la largeur de la photo (impossible à couper par overflow:hidden). */
.shop-wide .product-reviews__pop {
	position: absolute; left: 8px; right: 8px; bottom: 46px;
	max-height: calc(100% - 56px); overflow-y: auto;
	background: rgba(255, 255, 255, 0.97);
	-webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px);
	border: 1px solid var(--rose-soft); border-radius: 12px;
	box-shadow: 0 14px 34px -16px rgba(166, 104, 152, 0.5);
	padding: 11px 14px 7px;
	opacity: 0; visibility: hidden; transform: translateY(6px);
	transition: opacity 0.18s, transform 0.18s, visibility 0.18s;
	pointer-events: auto; z-index: 6;
}
.shop-wide .product-reviews:hover .product-reviews__pop { opacity: 1; visibility: visible; transform: translateY(0); }
.shop-wide .prp-head { display: block; font-size: 11.5px; font-weight: 500; color: var(--ink-soft); padding: 0 0 6px; margin-bottom: 4px; border-bottom: 1px solid var(--rose-mist); }
.shop-wide .prp-item { padding: 8px 0; border-bottom: 1px solid var(--rose-mist); }
.shop-wide .prp-item:last-child { border-bottom: 0; }
.shop-wide .prp-stars { color: var(--rose); display: flex; gap: 1px; margin-bottom: 4px; }
.shop-wide .prp-stars svg { width: 12px; height: 12px; }
.shop-wide .prp-text { font-size: 13px; line-height: 1.45; color: var(--ink-soft); margin: 0 0 4px; font-style: italic; }
.shop-wide .prp-author { font-size: 12px; font-weight: 600; color: var(--ink); }

/* Bloc info — sur fond blanc du color-block */
.shop-wide .product-info {
	position: relative;
	z-index: 2;
	background: transparent;
	padding: 14px 18px 18px;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 6px;
	flex: 1;
}
.shop-wide .product-name {
	font-family: var(--font-display);
	font-size: 16px;
	font-weight: 500;
	color: var(--ink);
	line-height: 1.3;
	letter-spacing: -0.01em;
	margin: 0;
	min-height: 2.6em;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.shop-wide .product-name a { color: inherit; text-decoration: none; transition: color 0.16s; }
.shop-wide .product-name a:hover { color: var(--rose-deep); }

.shop-wide .product-rating {
	display: inline-flex;
	align-items: center;
	gap: 3px;
	color: var(--rose-deep);
	font-size: 11.5px;
}
.shop-wide .product-rating svg { width: 11px; height: 11px; }
.shop-wide .product-rating-num {
	color: var(--ink);
	font-weight: 600;
	margin-left: 4px;
	font-family: var(--font-body);
	font-size: 11.5px;
}
.shop-wide .product-rating-count {
	color: var(--ink-soft);
	margin-left: 2px;
	font-family: var(--font-body);
	font-weight: 400;
	font-size: 11px;
}

/* Bottom : prix + bouton plus */
.shop-wide .product-bottom {
	margin-top: auto;
	padding-top: 10px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	border-top: none;
}
.shop-wide .product-price {
	font-family: var(--font-display);
	font-size: 24px;
	font-weight: 500;
	color: var(--ink);
	letter-spacing: -0.02em;
	line-height: 1;
	display: inline-flex;
	align-items: baseline;
}
.shop-wide .product-price-cents {
	font-size: 14px;
	font-weight: 500;
	color: var(--ink);
}
.shop-wide .product-price small {
	font-size: 14px;
	color: var(--ink);
	margin-left: 2px;
	font-weight: 500;
}
/* Prix barré (régulier) à côté du prix en promo, façon fiche produit. */
.shop-wide .product-price-old {
	font-family: var(--font-display);
	font-size: 15px;
	font-weight: 400;
	color: var(--ink-mute);
	text-decoration: line-through;
	margin-left: 8px;
	align-self: center;
}

/* Bouton + à droite du prix */
.shop-wide .product-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 99px;
	background: var(--rose-deep);
	color: #fff;
	text-decoration: none;
	border: none;
	cursor: pointer;
	transition: background 0.18s, transform 0.22s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.22s;
	flex-shrink: 0;
	box-shadow: 0 6px 14px -8px rgba(166, 104, 152, 0.6);
}
.shop-wide .product-cta svg {
	width: 18px;
	height: 18px;
	stroke: currentColor;
	transition: transform 0.22s;
}
.shop-wide .product-cta:hover {
	background: var(--ink);
	transform: scale(1.08) rotate(90deg);
	box-shadow: 0 10px 22px -10px rgba(0, 0, 0, 0.35);
}
.shop-wide .product-cta:focus-visible {
	outline: 2px solid var(--rose-deep);
	outline-offset: 2px;
}

/* Bouton « Choisir » (produits variables) : pas de rotation, juste un léger zoom */
.shop-wide .product-cta--choose:hover {
	background: var(--ink);
	box-shadow: 0 10px 22px -10px rgba(0, 0, 0, 0.35);
}
.shop-wide .product-card--has-options.is-choosing .product-cta--choose {
	background: var(--ink);
}

/* Boutons LONGS sur les cartes catégorie (prix au-dessus, bouton pleine largeur) */
.shop-wide .product-bottom {
	flex-direction: column;
	align-items: center;
	width: 100%;
	gap: 15px;
}
.shop-wide .product-cta--long {
	width: 100%;
	height: 42px;
	border-radius: 12px;
	gap: 8px;
	background: var(--rose);
	font-family: var(--font-body);
	font-size: 13px;
	font-weight: 400;
	letter-spacing: 0.01em;
	box-shadow: none;
}
.shop-wide .product-cta--long svg {
	width: 16px;
	height: 16px;
}
.shop-wide .product-cta--long:hover,
.shop-wide .product-cta--long.product-cta--choose:hover {
	background: var(--rose-deep);
	transform: translateY(-2px);
	box-shadow: none;
}
.shop-wide .product-cta--long:hover svg {
	transform: none;
}
.shop-wide .product-price-from {
	font-size: 12px;
	font-weight: 500;
	color: var(--ink-soft);
	align-self: center;
	margin-right: 1px;
}

/* État rupture de stock : bouton grisé, non cliquable */
.shop-wide .product-cta--oos,
.shop-wide .product-cta--oos:hover {
	background: color-mix(in oklab, var(--cream) 45%, #e7e2e5);
	color: var(--ink-soft);
	border: 1px solid var(--rose-soft);
	box-shadow: none;
	transform: none;
	cursor: not-allowed;
	pointer-events: none;
}
.shop-wide .product-cta--oos svg { opacity: 0.7; }

/* ── Panneau de déclinaisons (overlay sur la carte, façon « quick add ») ── */
.shop-wide .product-choose {
	position: absolute;
	inset: 0;
	z-index: 5;
	background: color-mix(in oklab, var(--cream) 92%, #fff);
	backdrop-filter: blur(2px);
	display: flex;
	flex-direction: column;
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity 0.22s ease, transform 0.28s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.22s;
}
.shop-wide .product-card.is-choosing .product-choose {
	opacity: 1;
	visibility: visible;
	transform: none;
}
.shop-wide .product-choose__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 12px 14px 10px;
	border-bottom: 1px solid color-mix(in oklab, var(--rose-soft) 60%, transparent);
	flex-shrink: 0;
}
.shop-wide .product-choose__title {
	font-family: var(--font-display);
	font-size: 13.5px;
	font-weight: 500;
	color: var(--ink);
	letter-spacing: -0.01em;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.shop-wide .product-choose__close {
	width: 28px;
	height: 28px;
	flex-shrink: 0;
	border-radius: 99px;
	border: 1px solid var(--rose-soft);
	background: #fff;
	color: var(--rose-deep);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: background 0.16s, color 0.16s, border-color 0.16s;
}
.shop-wide .product-choose__close:hover {
	background: var(--rose-deep);
	color: #fff;
	border-color: var(--rose-deep);
}
.shop-wide .product-choose__opts {
	flex: 1;
	overflow-y: auto;
	padding: 12px 14px 14px;
	display: flex;
	flex-direction: column;
	gap: 7px;
	scrollbar-width: thin;
	scrollbar-color: var(--rose-soft) transparent;
}

/* --- Choix achat unique / abonnement (step 2 du chooser carte) --- */
.shop-wide .product-choose__sub {
	display: none;
	flex-direction: column;
	gap: 8px;
	margin-top: 10px;
	padding-top: 10px;
	border-top: 1px solid var(--rose-soft);
}
.shop-wide .product-choose__sub.is-visible { display: flex; }
.shop-wide .pv-sub-btn {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	width: 100%;
	padding: 10px 13px;
	border: 1.5px solid var(--rose-soft);
	border-radius: 11px;
	background: var(--cream);
	cursor: pointer;
	font-family: var(--font-body);
	font-size: 13.5px;
	text-align: left;
	transition: border-color 0.13s, background 0.13s;
}
.shop-wide .pv-sub-btn:hover { border-color: var(--rose); background: var(--rose-mist); }
.shop-wide .pv-sub-btn__label { font-weight: 600; color: var(--ink); }
.shop-wide .pv-sub-btn__price { font-size: 12.5px; color: var(--ink-soft); font-weight: 500; white-space: nowrap; }
/* Bouton abonnement : accent rose */
.shop-wide .pv-sub-btn--sub { border-color: var(--rose); }
.shop-wide .pv-sub-btn--sub .pv-sub-btn__label { color: var(--rose-deep); }
.shop-wide .pv-sub-btn--sub .pv-sub-btn__price { color: var(--rose-deep); }

.shop-wide .product-choose__opts::-webkit-scrollbar { width: 6px; }
.shop-wide .product-choose__opts::-webkit-scrollbar-thumb {
	background: var(--rose-soft);
	border-radius: 99px;
}
.shop-wide .pv-opt {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	width: 100%;
	padding: 9px 13px;
	border-radius: 12px;
	border: 1px solid var(--rose-soft);
	background: #fff;
	cursor: pointer;
	text-align: left;
	transition: background 0.15s, border-color 0.15s, transform 0.15s, box-shadow 0.15s;
}
.shop-wide .pv-opt:hover {
	border-color: var(--rose);
	background: var(--rose-mist);
	transform: translateX(2px);
}
.shop-wide .pv-opt__label {
	font-family: var(--font-body);
	font-size: 13.5px;
	font-weight: 500;
	color: var(--ink);
}
.shop-wide .pv-opt__price {
	font-family: var(--font-display);
	font-size: 13.5px;
	font-weight: 500;
	color: var(--rose-deep);
	flex-shrink: 0;
}
.shop-wide .pv-opt.is-disabled,
.shop-wide .pv-opt:disabled {
	opacity: 0.5;
	cursor: not-allowed;
	background: color-mix(in oklab, var(--cream) 70%, #fff);
}
.shop-wide .pv-opt.is-disabled:hover,
.shop-wide .pv-opt:disabled:hover {
	border-color: var(--rose-soft);
	background: color-mix(in oklab, var(--cream) 70%, #fff);
	transform: none;
}
.shop-wide .pv-opt.is-disabled .pv-opt__price {
	color: var(--ink-soft);
	font-family: var(--font-body);
	font-size: 11.5px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.shop-wide .pv-opt.is-loading {
	opacity: 0.6;
	pointer-events: none;
}

/* ============================================================
   PAGINATION — refonte refined
   ============================================================ */
.shop-wide .shop-pagination {
	display: flex;
	justify-content: center;
	gap: 6px;
	margin-top: 56px;
	padding: 0;
	list-style: none;
}
.shop-wide .shop-pagination ul {
	display: inline-flex;
	gap: 6px;
	list-style: none;
	padding: 0;
	margin: 0;
	background: #fff;
	border: 1px solid var(--rose-soft);
	border-radius: 99px;
	padding: 6px;
	box-shadow: 0 6px 16px -10px rgba(166, 104, 152, 0.22);
}
.shop-wide .shop-pagination li { list-style: none; }
.shop-wide .shop-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 10px;
	border-radius: 99px;
	background: transparent;
	color: var(--ink-soft);
	font-size: 13px;
	font-weight: 500;
	text-decoration: none;
	border: none;
	transition: background 0.18s, color 0.18s, transform 0.18s;
	cursor: pointer;
}
.shop-wide .shop-pagination .page-numbers:hover {
	background: var(--rose-mist);
	color: var(--rose-deep);
}
.shop-wide .shop-pagination .page-numbers.current {
	background: var(--rose);
	color: #fff;
	font-weight: 600;
}
.shop-wide .shop-pagination .page-numbers.dots {
	background: transparent;
	color: var(--ink-soft);
	cursor: default;
	pointer-events: none;
}
.shop-wide .shop-pagination .page-numbers.prev,
.shop-wide .shop-pagination .page-numbers.next {
	color: var(--rose-deep);
	font-size: 16px;
	font-weight: 600;
}
.shop-wide .shop-pagination .page-numbers.prev:hover,
.shop-wide .shop-pagination .page-numbers.next:hover {
	background: var(--rose-deep);
	color: #fff;
	transform: scale(1.05);
}

/* ============================================================
   CAT-DESCRIPTION — refonte card éditoriale
   ============================================================ */
.cat-description {
	max-width: 1280px;
	margin: 28px auto 24px;
	padding: 0 24px 0;
}
.cat-description-inner {
	background: #fff;
	border: 1px solid var(--rose-soft);
	border-radius: 22px;
	padding: 36px 48px 24px;
	box-shadow: 0 16px 40px -24px rgba(166, 104, 152, 0.22);
	position: relative;
}
/* Repli « Voir plus / Voir moins » (toggle CSS via case à cocher cachée). */
.cat-description__body {
	position: relative;
	max-height: 8.5em;
	overflow: hidden;
	transition: max-height 0.35s ease;
}
.cat-description__body::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 4em;
	background: linear-gradient(transparent, #fff);
	pointer-events: none;
}
.cat-description__toggle-in:checked ~ .cat-description__body { max-height: 2000px; }
.cat-description__toggle-in:checked ~ .cat-description__body::after { opacity: 0; }
.cat-description__toggle {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	margin-top: 16px;
	cursor: pointer;
	font-family: var(--font-body);
	font-size: 14px;
	font-weight: 500;
	color: var(--rose-deep);
	transition: opacity 0.15s;
}
.cat-description__toggle:hover { opacity: 0.78; }
.cat-description__toggle .less { display: none; }
.cat-description__toggle-in:checked ~ .cat-description__toggle .more { display: none; }
.cat-description__toggle-in:checked ~ .cat-description__toggle .less { display: inline; }
.cat-description-inner::before {
	content: "";
	position: absolute;
	top: 0; left: 32px;
	width: 80px; height: 4px;
	background: linear-gradient(90deg, var(--rose), var(--rose-soft));
	border-radius: 0 0 4px 4px;
}
.cat-description-inner h1,
.cat-description-inner h2 {
	font-family: var(--font-display);
	font-size: 24px;
	font-weight: 500;
	color: var(--ink);
	letter-spacing: -0.02em;
	margin: 32px 0 14px;
	line-height: 1.2;
}
.cat-description-inner h1:first-child,
.cat-description-inner h2:first-child {
	margin-top: 0;
}
.cat-description-inner h3 {
	font-family: var(--font-display);
	font-size: 18px;
	font-weight: 500;
	color: var(--rose-deep);
	margin: 24px 0 10px;
	letter-spacing: -0.015em;
}
.cat-description-inner p {
	font-family: var(--font-body);
	font-size: 15px;
	line-height: 1.7;
	color: var(--ink-soft);
	margin: 0 0 16px;
}
.cat-description-inner p strong {
	color: var(--ink);
	font-weight: 600;
}
.cat-description-inner a {
	color: var(--rose-deep);
	text-decoration: none;
	border-bottom: 1px solid color-mix(in oklab, var(--rose-soft) 70%, transparent);
	transition: color 0.16s, border-color 0.16s;
}
.cat-description-inner a:hover {
	color: var(--ink);
	border-bottom-color: var(--rose-deep);
}
.cat-description-inner ul,
.cat-description-inner ol {
	font-size: 15px;
	line-height: 1.7;
	color: var(--ink-soft);
	padding-left: 22px;
	margin: 0 0 18px;
}
.cat-description-inner li {
	margin-bottom: 6px;
}
.cat-description-inner ul li::marker {
	color: var(--rose-deep);
}
.cat-description-inner blockquote {
	border-left: 3px solid var(--rose);
	padding: 4px 0 4px 20px;
	margin: 20px 0;
	font-style: italic;
	color: var(--ink);
	font-family: var(--font-display);
	font-size: 16px;
	line-height: 1.6;
}
.cat-description-inner img {
	max-width: 100%;
	height: auto;
	border-radius: 14px;
	margin: 16px 0;
}

@media (max-width: 720px) {
	.cat-description { margin-top: 40px; padding: 0 16px 56px; }
	.cat-description-inner { padding: 28px 22px; border-radius: 18px; }
	.cat-description-inner h2 { font-size: 20px; }
	.cat-description-inner p, .cat-description-inner ul, .cat-description-inner ol { font-size: 14px; }
}

/* Responsive */
@media (max-width: 860px) {
	.shop-toolbar-v2 {
		flex-direction: column;
		align-items: stretch;
		border-radius: 14px;
	}
	.shop-toolbar-v2__meta {
		justify-content: space-between;
		border-top: 1px dashed var(--rose-soft);
		padding-top: 10px;
	}
	.shop-toolbar-v2__filters { flex-wrap: wrap; }
	.shop-wide .shop-grid { grid-template-columns: repeat(2, 1fr); gap: 14px; }
}
@media (max-width: 480px) {
	.shop-wide .shop-grid { grid-template-columns: 1fr; }
}

/* Connexion mobile : doit venir APRES les regles desktop .log-page (l.1098/1131) sinon ecrasee
   par l'ordre source (meme specificite). Marge bas = marge haut (hero 30px). */
@media (max-width: 820px) {
	.log-page { margin: -20px auto 0; padding: 0 16px 30px; }
}

/* ===== Pages WP standard (page.php) : contenu habille sous le hero cat-banner ===== */
.page-prose-wrap { max-width: 1280px; margin: -28px auto 0; padding: 0 24px 10px; position: relative; z-index: 2; }
.page-prose { background: #fff; border: 1px solid var(--rose-soft); border-radius: 14px; padding: 26px 22px; }
.page-prose > *:first-child { margin-top: 0; }
.page-prose > *:last-child { margin-bottom: 0; }
.page-prose h2 { font-family: var(--font-display); font-size: 19px; font-weight: 500; color: var(--ink); letter-spacing: -0.01em; margin: 28px 0 10px; }
.page-prose h3 { font-size: 16px; font-weight: 400; color: var(--ink); margin: 22px 0 8px; }
.page-prose p { font-size: 14.5px; line-height: 1.6; color: var(--ink-soft); margin: 0 0 15px; }
.page-prose a { color: var(--rose-deep); }
.page-prose strong { color: var(--ink); font-weight: 600; }
.page-prose ul, .page-prose ol { margin: 0 0 15px; padding-left: 20px; }
.page-prose li { font-size: 14.5px; line-height: 1.6; color: var(--ink-soft); margin-bottom: 6px; }
.page-prose img { max-width: 100%; height: auto; border-radius: 12px; }
.page-prose table { width: 100%; border-collapse: collapse; margin: 0 0 15px; font-size: 13.5px; }
.page-prose th, .page-prose td { border: 1px solid var(--rose-soft); padding: 8px 10px; text-align: left; color: var(--ink-soft); }
/* Boutons Eden dans le contenu (CTA). */
.page-prose .page-cta { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-top: 24px; }
.page-prose .page-btn { display: inline-block; background: var(--rose); color: #fff; border-radius: 10px; padding: 10px 20px; font-size: 13.5px; font-weight: 400; transition: background .2s ease; }
.page-prose .page-btn:hover { background: var(--rose-deep); color: #fff; }
.page-prose .page-btn--ghost { background: #fff; color: var(--rose-deep); border: 1.5px solid var(--rose-soft); }
.page-prose .page-btn--ghost:hover { background: var(--rose-mist); border-color: var(--rose); color: var(--rose-deep); }
@media (max-width: 600px) {
	.page-prose-wrap { margin: -20px auto 0; padding: 0 16px 30px; }
	.page-prose { padding: 24px 20px; border-radius: 14px; }
	.page-prose h2 { font-size: 17px; }
	.page-prose h3 { font-size: 15.5px; }
}

/* ===== Checkout : « Déjà client ? » login WooCommerce habillé Eden (sinon rendu brut = tache) ===== */
.co-page--wc .woocommerce-form-login-toggle { margin: 0 0 14px; }
.co-page--wc form.woocommerce-form-login {
	background: #fff;
	border: 1.5px solid var(--rose-soft);
	border-radius: 12px;
	padding: 18px 18px 14px;
	margin: 0 0 18px;
}
.co-page--wc form.woocommerce-form-login > p:first-child { font-size: 13px; color: var(--ink-soft); margin: 0 0 14px; line-height: 1.5; }
.co-page--wc form.woocommerce-form-login .form-row { margin: 0 0 12px; padding: 0; width: 100%; }
.co-page--wc form.woocommerce-form-login label { display: block; font-size: 14px; font-weight: 500; color: var(--ink); margin: 0 0 5px; }
.co-page--wc form.woocommerce-form-login input.input-text {
	width: 100%; box-sizing: border-box; font: inherit; font-size: 14px;
	padding: 11px 14px; border: 1.5px solid var(--rose-soft); border-radius: 10px;
	background: #fff; color: var(--ink); transition: border-color .2s;
}
.co-page--wc form.woocommerce-form-login input.input-text:focus { outline: none; border-color: var(--rose); }
.co-page--wc form.woocommerce-form-login .woocommerce-form-login__rememberme { display: flex; align-items: center; gap: 9px; font-size: 13.5px; font-weight: 400; color: var(--ink-soft); cursor: pointer; margin: 0; }
.co-page--wc form.woocommerce-form-login .woocommerce-form-login__rememberme input[type="checkbox"] {
	appearance: none; -webkit-appearance: none; flex: 0 0 auto; width: 20px; height: 20px; margin: 0;
	border: 1.5px solid var(--rose-soft); border-radius: 6px; background: #fff; cursor: pointer; position: relative; transition: background .15s, border-color .15s;
}
.co-page--wc form.woocommerce-form-login .woocommerce-form-login__rememberme input[type="checkbox"]:checked { background: var(--rose); border-color: var(--rose); }
.co-page--wc form.woocommerce-form-login .woocommerce-form-login__rememberme input[type="checkbox"]:checked::after { content: ""; position: absolute; left: 6px; top: 2px; width: 5px; height: 10px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.co-page--wc form.woocommerce-form-login button.woocommerce-form-login__submit {
	display: inline-block; width: auto; background: var(--rose); color: #fff; border: 1px solid var(--rose);
	border-radius: 10px; padding: 10px 22px; font: inherit; font-weight: 400; font-size: 14px; cursor: pointer; transition: background .15s, border-color .15s;
}
.co-page--wc form.woocommerce-form-login button.woocommerce-form-login__submit:hover { background: var(--rose-deep); border-color: var(--rose-deep); }
.co-page--wc form.woocommerce-form-login .woocommerce-LostPassword { margin: 12px 0 0; font-size: 13.5px; }
.co-page--wc form.woocommerce-form-login .woocommerce-LostPassword a { color: var(--rose-deep); }

/* « Déjà client ? » dans la colonne gauche du checkout (lien vers la connexion stylée). */
.co-page--wc .co-login-hint { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; padding: 14px 18px; }
.co-page--wc .co-login-hint__txt { font-size: 13.5px; color: var(--ink-soft); line-height: 1.45; }
.co-page--wc .co-login-hint__btn { flex: 0 0 auto; background: var(--rose); color: #fff; border: 1px solid var(--rose); border-radius: 10px; padding: 9px 18px; font-size: 13.5px; font-weight: 400; text-decoration: none; white-space: nowrap; transition: background .15s, border-color .15s; }
.co-page--wc .co-login-hint__btn:hover { background: var(--rose-deep); border-color: var(--rose-deep); color: #fff; }

/* Composants de Box (produits chaînés) au checkout : compacts, sans image, groupés sous le parent. */
.co-mini-item--chained { grid-template-columns: 1fr auto; padding: 3px 0 3px 18px; gap: 8px; position: relative; }
.co-mini-item--chained::before { content: '\21B3'; position: absolute; left: 2px; top: 50%; transform: translateY(-50%); color: var(--ink-soft); opacity: .55; font-size: 12px; }
.co-mini-item--chained .co-mini-name { font-size: 12.5px; color: var(--ink-soft); font-weight: 400; line-height: 1.3; }
.co-mini-item--chained .co-mini-cqty { font-size: 11.5px; color: var(--ink-soft); }
.co-mini-item--chained .co-mini-price { font-size: 12px; }
.co-mini-item--chained .co-mini-free { color: var(--ink); font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .03em; }

/* Icônes de paiement sous le total du checkout. */
.co-summary-pay { display: flex; justify-content: center; flex-wrap: wrap; margin: 22px 0 -6px; }
.co-summary-pay .footer-payment-icons { justify-content: center; }
.co-summary-pay .payment-icons__icon { width: 34px; height: 22px; }
