/* ==========================================================================
   WYBE - Efresio — Habillage WooCommerce (boutique, produit, panier, checkout)
   ========================================================================== */

.ef-woo { padding-top: 44px; padding-bottom: 40px; }
.ef-woo a { color: var(--ef-green); }

/* ---------- Hero d'archive (2 colonnes : texte + visuel/badge) ---------- */
.ef-shop-hero { background: linear-gradient(180deg, #EEF0F0 0%, #E6E9E9 100%); border-bottom: 1px solid var(--ef-border-soft); }
.ef-shop-hero__grid { display: grid; grid-template-columns: 1.02fr 1.1fr; gap: 56px; align-items: center; padding-top: 64px; padding-bottom: 44px; }
.ef-shop-hero__mark { display: inline-block; width: 5px; height: 5px; background: var(--ef-mint); transform: rotate(45deg); margin-right: 9px; vertical-align: middle; }
.ef-shop-hero__title { font-family: var(--ef-font-serif); font-weight: 300; font-size: 56px; line-height: 1.06; color: var(--ef-ink-strong); margin: 8px 0 20px; max-width: 520px; text-wrap: balance; }
.ef-shop-hero__lead { font-size: 18px; line-height: 1.55; color: var(--ef-ink-60); max-width: 460px; margin: 0 0 30px; }
.ef-shop-hero__cta { display: flex; gap: 13px; flex-wrap: wrap; }
.ef-shop-hero__visual { position: relative; aspect-ratio: 4/3.3; border-radius: var(--ef-r-xl); overflow: hidden; border: 1px solid var(--ef-border-soft); box-shadow: var(--ef-shadow-float); }
.ef-shop-hero__visual .ef-media, .ef-shop-hero__visual .ef-ph { position: absolute; inset: 0; width: 100%; height: 100%; }
.ef-shop-hero__badge { position: absolute; right: 18px; bottom: 16px; background: rgba(252,253,252,0.92); backdrop-filter: blur(8px); border-radius: var(--ef-r-md); padding: 11px 16px; box-shadow: 0 12px 30px -12px rgba(27,33,31,.35); }
.ef-shop-hero__badge-top { font-family: var(--ef-font-sans); font-weight: 700; font-size: 20px; color: var(--ef-ink-strong); line-height: 1; }
.ef-shop-hero__badge-sub { font-size: 12px; color: var(--ef-ink-45); margin-top: 3px; }

/* ---------- Layout boutique : rail gauche + grille ---------- */
.ef-shop { padding: 40px 0 0; }
.ef-shop__layout { display: grid; grid-template-columns: 250px 1fr; gap: 44px; align-items: start; padding-bottom: 10px; }
.ef-shop-rail { position: sticky; top: 90px; }
.ef-shop-rail__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding-bottom: 16px; margin-bottom: 22px; border-bottom: 1px solid var(--ef-border); }
.ef-shop-rail__title { font-family: var(--ef-font-serif); font-size: 26px; color: var(--ef-ink-strong); }
.ef-shop-rail__count { font-size: 13px; color: var(--ef-ink-45); white-space: nowrap; }
.ef-shop-rail__group { margin-bottom: 26px; }
.ef-shop-rail__label { font-family: var(--ef-font-sans); font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--ef-ink-35); margin-bottom: 12px; }
.ef-shop-rail__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.ef-shop-rail__sort { display: flex; flex-direction: column; gap: 2px; }
.ef-shop-rail__sort button { display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; text-align: left; padding: 9px 12px; border: none; background: none; border-radius: var(--ef-r-sm); font-family: var(--ef-font-sans); font-size: 14px; color: var(--ef-ink-60); cursor: pointer; transition: background .2s, color .2s; }
.ef-shop-rail__sort button:hover { background: var(--ef-surface); color: var(--ef-ink-strong); }
.ef-shop-rail__sort button.is-active { color: var(--ef-green); font-weight: 600; }
.ef-shop-rail__sort .ef-sort__check { color: var(--ef-teal); opacity: 0; }
.ef-shop-rail__sort button.is-active .ef-sort__check { opacity: 1; }

/* ---------- Chips famille olfactive (recharges / sprays) ---------- */
.ef-chip--fam { gap: 8px; }
.ef-chip__dot { width: 9px; height: 9px; border-radius: 50%; background: var(--fam, #999); flex: none; }
.ef-chip--fam.is-active { background: var(--fam); border-color: var(--fam); color: #fff; }
.ef-chip--fam.is-active .ef-chip__dot { background: #fff; }
.ef-chip--fam.is-active .ef-chip__count { color: rgba(255,255,255,.82); }

/* ---------- Bande abonnement (Recharge incluse chaque mois) ---------- */
.ef-subband { background: var(--ef-green); color: var(--ef-bg); }
.ef-subband__inner { display: flex; align-items: center; justify-content: space-between; gap: 40px; padding: 44px var(--ef-gutter); flex-wrap: wrap; }
.ef-subband__title { font-family: var(--ef-font-serif); font-weight: 300; font-size: 32px; line-height: 1.1; color: var(--ef-bg); margin: 6px 0 8px; }
.ef-subband__lead { font-size: 15px; line-height: 1.55; color: #C5D4CF; max-width: 620px; margin: 0; }

/* ---------- Carte produit — variantes boutique ---------- */
.ef-card__badge { position: absolute; top: 12px; right: 12px; padding: 5px 11px; background: rgba(252,253,252,0.92); backdrop-filter: blur(6px); border-radius: var(--ef-r-pill); font-family: var(--ef-font-sans); font-size: 11px; font-weight: 600; color: var(--ef-ink-strong); z-index: 1; }
.ef-card__tag--dark { background: var(--ef-green); color: var(--ef-bg); }
.ef-card__add--solid { background: var(--ef-green); color: var(--ef-bg); }
.ef-card__add--solid:hover { background: var(--ef-green-hover); color: var(--ef-bg); }

@media (max-width: 1024px) {
  .ef-shop-hero__grid { grid-template-columns: 1fr; gap: 32px; }
  .ef-shop-hero__title { font-size: 42px; }
  .ef-shop__layout { grid-template-columns: 1fr; gap: 22px; }
  .ef-shop-rail { position: static; }
  .ef-shop-rail__group { margin-bottom: 16px; }
  .ef-shop-rail__sort { flex-direction: row; flex-wrap: wrap; gap: 6px; }
  .ef-shop-rail__sort button { width: auto; border: 1px solid var(--ef-border-strong); border-radius: var(--ef-r-pill); padding: 8px 14px; }
  .ef-shop-rail__sort .ef-sort__check { display: none; }
}

/* ---------- Bande aide au choix ---------- */
.ef-shop-help { background: var(--ef-bg-alt); border-top: 1px solid var(--ef-border-soft); }
.ef-shop-help__inner { max-width: var(--ef-maxw); margin: 0 auto; padding: 56px var(--ef-gutter); display: flex; align-items: center; justify-content: space-between; gap: 40px; flex-wrap: wrap; }
.ef-shop-help__title { font-family: var(--ef-font-serif); font-weight: 400; font-size: 34px; color: var(--ef-ink-strong); margin: 6px 0 10px; }
.ef-shop-help__lead { font-size: 15.5px; line-height: 1.55; color: var(--ef-ink-60); margin: 0; max-width: 520px; }
.ef-shop-help__cta { display: flex; gap: 12px; flex-wrap: wrap; flex: none; }

@media (max-width: 720px) {
  .ef-shop-hero__title { font-size: 34px; }
  .ef-subband__inner { padding: 40px var(--ef-gutter) 42px; gap: 24px; }
  .ef-subband__title { font-size: 27px; }
  .ef-subband__lead { font-size: 14.5px; }
  .ef-shop-help__inner { padding: 44px var(--ef-gutter); gap: 24px; }
  .ef-shop-help__title { font-size: 28px; }
}

/* ---------- En-tête d'archive ---------- */
.woocommerce-products-header { margin-bottom: 30px; }
.woocommerce-products-header__title.page-title {
  font-family: var(--ef-font-serif); font-weight: 400; font-size: 42px; line-height: 1.08;
  color: var(--ef-ink-strong); margin: 0;
}
.woocommerce-products-header__title.page-title::before {
  content: "Boutique"; display: block; font-family: var(--ef-font-sans);
  font-size: 11px; letter-spacing: .2em; color: var(--ef-teal); text-transform: uppercase; margin-bottom: 10px;
}
.term-description, .woocommerce-archive-description { color: var(--ef-ink-60); max-width: 640px; margin: 12px 0 0; font-size: 16px; line-height: 1.55; }

/* ---------- Barre de tri ---------- */
.woocommerce .woocommerce-result-count { display: none; }
.woocommerce-ordering { margin-bottom: 26px; }
.woocommerce-ordering select {
  height: 44px; padding: 0 40px 0 16px; border: 1px solid var(--ef-border-strong);
  border-radius: var(--ef-r-sm); background: var(--ef-surface); color: var(--ef-ink);
  font-family: var(--ef-font-sans); font-size: 13.5px; cursor: pointer; appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%233A423E' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center;
}

/* ---------- Grille produits ---------- */
.woocommerce ul.products, .woocommerce-page ul.products {
  list-style: none; margin: 0; padding: 0; display: grid; gap: 20px;
  grid-template-columns: repeat(3, 1fr);
}
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product {
  width: auto !important; margin: 0 !important; padding: 0 !important; float: none !important;
}
.woocommerce ul.products li.product::before { display: none; }
.woocommerce ul.products li.product .ef-card { height: 100%; }

/* Pagination */
.woocommerce nav.woocommerce-pagination { margin-top: 44px; }
.woocommerce nav.woocommerce-pagination ul { border: none; display: flex; gap: 8px; justify-content: center; }
.woocommerce nav.woocommerce-pagination ul li { border: none; margin: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  min-width: 42px; height: 42px; display: grid; place-items: center; border-radius: var(--ef-r-sm);
  border: 1px solid var(--ef-border-strong); background: var(--ef-surface); color: var(--ef-ink); padding: 0 12px;
}
.woocommerce nav.woocommerce-pagination ul li span.current {
  background: var(--ef-green); color: var(--ef-bg); border-color: var(--ef-green);
}

/* ---------- Notices ---------- */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
  border-radius: var(--ef-r-md); border: 1px solid var(--ef-border); background: var(--ef-surface);
  padding: 14px 18px; font-family: var(--ef-font-sans); font-size: 14px; box-shadow: none; list-style: none;
}
.woocommerce-message { border-left: 3px solid var(--ef-mint); }
.woocommerce-error { border-left: 3px solid #b3453a; }
.woocommerce-message .button, .woocommerce-info .button { float: right; }

/* ---------- Boutons WooCommerce ---------- */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce a.button.alt, .woocommerce button.button.alt {
  background: var(--ef-green); color: var(--ef-bg); border: none; border-radius: var(--ef-r-md);
  font-family: var(--ef-font-sans); font-weight: 500; font-size: 14.5px; padding: 13px 22px;
  transition: background .25s ease; cursor: pointer;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover { background: var(--ef-green-hover); color: var(--ef-bg); }
.woocommerce .button.wc-backward, .woocommerce a.added_to_cart { background: #EAEEEC; color: var(--ef-green); }

/* ==========================================================================
   Fiche produit (PDP) — layout bespoke EFRESIO
   ========================================================================== */
.ef-pdp__crumb { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--ef-ink-45); margin-bottom: 26px; }
.ef-pdp__crumb a { color: var(--ef-ink-45); }
.ef-pdp__crumb a:hover { color: var(--ef-green); }
.ef-pdp__crumb span:last-child { color: var(--ef-ink); }

.ef-pdp__main { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: start; }

/* Galerie */
.ef-pdp__hero { position: relative; aspect-ratio: 1/1; background: var(--ef-surface-2); border: 1px solid var(--ef-border-soft); border-radius: var(--ef-r-xl); overflow: hidden; }
/* Image produit en plein cadre, au ratio naturel (pas de bandes, pas de recadrage) */
.ef-pdp__hero:has(img.ef-media) { aspect-ratio: auto; }
.ef-pdp__hero img.ef-media { position: static; inset: auto; display: block; width: 100%; height: auto; }
.ef-pdp__hero .ef-ph { position: absolute; inset: 0; width: 100%; height: 100%; }
.ef-pdp__badge { position: absolute; top: 16px; left: 16px; background: var(--ef-green); color: var(--ef-bg); font-family: var(--ef-font-sans); font-size: 11.5px; font-weight: 600; padding: 6px 13px; border-radius: var(--ef-r-pill); }
.ef-pdp__thumbs { display: flex; gap: 10px; margin-top: 14px; }
.ef-pdp__thumb { position: relative; width: 74px; height: 74px; border-radius: var(--ef-r-md); overflow: hidden; background: var(--ef-surface-2); border: 1.5px solid var(--ef-border); }
.ef-pdp__thumb .ef-media, .ef-pdp__thumb .ef-ph { position: absolute; inset: 0; width: 100%; height: 100%; }
.ef-pdp__thumb.is-active { border-color: var(--ef-green); }

/* Infos */
.ef-pdp__title { font-family: var(--ef-font-serif); font-weight: 400; font-size: 40px; line-height: 1.08; color: var(--ef-ink-strong); margin: 8px 0 14px; }
.ef-pdp__rating { display: flex; align-items: center; gap: 10px; margin-bottom: 20px; }
.ef-pdp__stars { color: var(--ef-teal); font-size: 15px; letter-spacing: 2px; }
.ef-pdp__score { font-size: 13.5px; color: var(--ef-ink-45); }
.ef-pdp__score b { color: var(--ef-ink-strong); }
.ef-pdp__price { display: flex; align-items: baseline; gap: 14px; margin-bottom: 20px; flex-wrap: wrap; }
.ef-pdp__amount { font-family: var(--ef-font-serif); font-size: 32px; color: var(--ef-ink-strong); }
.ef-pdp__amount .amount { font-family: var(--ef-font-serif); font-weight: 400; }
.ef-pdp__price-sub { font-size: 13px; color: var(--ef-ink-45); }
.ef-pdp__lead { font-size: 16px; line-height: 1.6; color: var(--ef-ink-60); margin: 0 0 24px; }

/* Finition */
.ef-pdp__finish { margin-bottom: 26px; }
.ef-pdp__finish-label { font-size: 13.5px; color: var(--ef-ink-60); margin-bottom: 10px; }
.ef-pdp__finish-label b { color: var(--ef-ink-strong); }
.ef-pdp__finish-opts { display: flex; gap: 9px; flex-wrap: wrap; }
.ef-pdp__finish-btn { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border: 1px solid var(--ef-border-strong); border-radius: var(--ef-r-pill); font-family: var(--ef-font-sans); font-size: 13px; font-weight: 500; color: var(--ef-ink); }
.ef-pdp__finish-btn.is-active { border-color: var(--ef-green); color: var(--ef-green); }
.ef-pdp__finish-dot { width: 15px; height: 15px; border-radius: 50%; border: 1px solid rgba(27,33,31,.2); background: #ddd; }
.ef-pdp__finish-dot[data-fin$=" ml"], .ef-pdp__finish-dot[data-fin$=" L"] { display: none; }
.ef-pdp__finish-dot[data-fin="Blanc"] { background: #F4F5F3; }
.ef-pdp__finish-dot[data-fin="Noir"] { background: #1B1E1C; }
.ef-pdp__finish-dot[data-fin="Métal / Or"],
.ef-pdp__finish-dot[data-fin="Or"] { background: linear-gradient(135deg, #d9c07f, #b8935a); }
.ef-pdp__finish-dot[data-fin="Titanium"] { background: linear-gradient(135deg, #c9cdd1, #8d9298); }

/* Buybox */
.ef-pdp__buybox { display: flex; gap: 12px; margin-bottom: 24px; flex-wrap: wrap; }
.ef-pdp__qty { display: flex; align-items: center; border: 1px solid var(--ef-border-strong); border-radius: var(--ef-r-md); overflow: hidden; background: var(--ef-surface); }
.ef-pdp__qty button { width: 44px; height: 52px; border: none; background: none; font-size: 18px; color: var(--ef-ink); cursor: pointer; transition: background .2s; }
.ef-pdp__qty button:hover { background: var(--ef-bg-alt); }
.ef-pdp__qty input { width: 44px; height: 52px; border: none; text-align: center; font-family: var(--ef-font-sans); font-size: 15px; font-weight: 600; color: var(--ef-ink-strong); background: none; }
.ef-pdp__add { flex: 1; min-width: 240px; height: 52px; }
.ef-pdp__add.is-added { background: var(--ef-mint); color: var(--ef-green-deep); }

/* Réassurance */
.ef-pdp__reassure { list-style: none; margin: 0 0 24px; padding: 22px 0; border-top: 1px solid var(--ef-border); border-bottom: 1px solid var(--ef-border); display: grid; grid-template-columns: 1fr 1fr; gap: 14px 24px; }
.ef-pdp__reassure li { display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--ef-ink); }
.ef-pdp__reassure svg { color: var(--ef-teal); flex: none; }

/* Paiement */
.ef-pdp__pay-title { display: flex; align-items: center; gap: 8px; font-family: var(--ef-font-sans); font-size: 13px; font-weight: 600; color: var(--ef-ink-strong); margin-bottom: 12px; }
.ef-pdp__pay-title svg { color: var(--ef-teal); }
.ef-pdp__pay-list { display: flex; gap: 8px; flex-wrap: wrap; }
.ef-pdp__pay-list span { display: inline-flex; align-items: center; height: 30px; padding: 0 11px; background: #F2F4F3; border: 1px solid rgba(27,33,31,0.1); border-radius: 7px; font-family: var(--ef-font-sans); font-size: 11.5px; font-weight: 600; letter-spacing: .02em; color: var(--ef-ink-60); }

/* Description + Caractéristiques */
.ef-pdp__detail { display: grid; grid-template-columns: 1.4fr 1fr; gap: 56px; margin-top: 64px; padding-top: 52px; border-top: 1px solid var(--ef-border); align-items: start; }
.ef-pdp__detail h2 { font-family: var(--ef-font-serif); font-weight: 400; font-size: 28px; color: var(--ef-ink-strong); margin: 0 0 16px; }
.ef-pdp__desc p { font-size: 16px; line-height: 1.7; color: var(--ef-ink-60); margin: 0 0 16px; }
.ef-pdp__tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.ef-pdp__tags span { display: inline-flex; align-items: center; padding: 7px 14px; background: #EAEEEC; border-radius: var(--ef-r-pill); font-family: var(--ef-font-sans); font-size: 12.5px; font-weight: 500; color: var(--ef-green); }
.ef-pdp__ideal { margin-top: 30px; }
.ef-pdp__ideal-title { font-family: var(--ef-font-serif); font-weight: 400; font-size: 21px; color: var(--ef-ink-strong); margin: 0 0 4px; }
.ef-pdp__tags--ideal { margin-top: 12px; }
.ef-pdp__tags--ideal span { background: #EEF3F2; color: var(--ef-teal); }
.ef-pdp__spec-table { border: 1px solid var(--ef-border); border-radius: var(--ef-r-lg); overflow: hidden; background: var(--ef-surface); }
.ef-pdp__spec-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 13px 16px; font-size: 14px; }
.ef-pdp__spec-row + .ef-pdp__spec-row { border-top: 1px solid var(--ef-border); }
.ef-pdp__spec-row span:first-child { color: var(--ef-ink-45); }
.ef-pdp__spec-row span:last-child { color: var(--ef-ink-strong); font-weight: 500; text-align: right; }

/* Vous aimerez aussi */
.ef-pdp__related { margin-top: 70px; }
.ef-pdp__related-title { font-family: var(--ef-font-serif); font-weight: 400; font-size: 30px; color: var(--ef-ink-strong); margin: 0 0 26px; }
.ef-pdp__related-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }

@media (max-width: 1024px) {
  .ef-pdp__main { grid-template-columns: 1fr; gap: 32px; }
  .ef-pdp__detail { grid-template-columns: 1fr; gap: 40px; }
  .ef-pdp__related-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .ef-pdp__title { font-size: 30px; }
  .ef-pdp__reassure { grid-template-columns: 1fr; }
  .ef-pdp__related-grid { grid-template-columns: 1fr; }
}

/* ---------- Ancienne fiche (legacy, non utilisée) ---------- */
.single-product div.product { display: grid; grid-template-columns: 1.05fr 1fr; gap: 52px; align-items: start; }
.single-product .woocommerce-product-gallery { margin: 0; width: 100%; position: relative; }
.single-product .woocommerce-product-gallery img,
.single-product .woocommerce-product-gallery__image img { width: 100%; height: auto; display: block; }
.single-product .woocommerce-product-gallery .flex-viewport { margin-bottom: 12px; }
.single-product .woocommerce-product-gallery .flex-control-thumbs { list-style: none; margin: 0; padding: 0; display: flex; gap: 10px; }
.single-product .woocommerce-product-gallery .flex-control-thumbs li { width: 72px; }
.single-product .woocommerce-product-gallery .flex-control-thumbs img { border-radius: var(--ef-r-sm); cursor: pointer; }
.single-product .woocommerce-product-gallery__wrapper { border-radius: var(--ef-r-xl); overflow: hidden; border: 1px solid var(--ef-border-soft); background: var(--ef-surface-2); }
.single-product .woocommerce-product-gallery img { border-radius: var(--ef-r-xl); }
.single-product .product_title {
  font-family: var(--ef-font-serif); font-weight: 400; font-size: 40px; line-height: 1.1; color: var(--ef-ink-strong); margin: 0 0 14px;
}
.single-product .woocommerce-product-rating { margin-bottom: 16px; }
.single-product p.price, .single-product .price {
  font-family: var(--ef-font-serif); font-size: 30px; color: var(--ef-ink-strong); margin: 0 0 20px;
}
.single-product .price del { color: var(--ef-ink-30); font-size: .7em; }
.single-product .price ins { text-decoration: none; }
.single-product .woocommerce-product-details__short-description { color: var(--ef-ink-60); font-size: 16px; line-height: 1.6; margin-bottom: 26px; }
.single-product form.cart { display: flex; align-items: center; gap: 12px; margin-bottom: 28px; flex-wrap: wrap; }
.single-product .quantity input.qty {
  width: 72px; height: 52px; text-align: center; border: 1px solid var(--ef-border-strong);
  border-radius: var(--ef-r-md); font-family: var(--ef-font-sans); font-size: 15px; background: var(--ef-surface);
}
.single-product .single_add_to_cart_button {
  height: 52px; padding: 0 30px; font-size: 15.5px; border-radius: var(--ef-r-md);
}
.single-product .product_meta { font-size: 13px; color: var(--ef-ink-45); border-top: 1px solid var(--ef-border); padding-top: 18px; }
.single-product .product_meta > span { display: block; margin-bottom: 6px; }

/* Onglets */
.woocommerce-tabs { grid-column: 1 / -1; margin-top: 20px; }
.woocommerce-tabs ul.tabs { list-style: none; margin: 0 0 24px; padding: 0 0 2px; display: flex; gap: 6px; border-bottom: 1px solid var(--ef-border); }
.woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce-tabs ul.tabs li { background: none; border: none; border-radius: 0; margin: 0; padding: 0; }
.woocommerce-tabs ul.tabs li a {
  font-family: var(--ef-font-sans); font-weight: 500; font-size: 14px; color: var(--ef-ink-45);
  padding: 10px 14px; display: block; border-bottom: 2px solid transparent;
}
.woocommerce-tabs ul.tabs li.active a { color: var(--ef-green); border-bottom-color: var(--ef-green); }
.woocommerce-tabs .panel { color: var(--ef-ink-60); line-height: 1.7; }
.woocommerce-tabs h2 { font-family: var(--ef-font-serif); font-size: 26px; margin-bottom: 12px; }

/* Produits liés / ventes croisées */
.related.products, .up-sells { grid-column: 1 / -1; margin-top: 40px; }
.related.products > h2, .up-sells > h2, .cross-sells > h2 {
  font-family: var(--ef-font-serif); font-weight: 400; font-size: 30px; color: var(--ef-ink-strong); margin-bottom: 24px;
}

/* ---------- Panier (table classique) ---------- */
.woocommerce-cart .ef-woo, .woocommerce-checkout .ef-woo, .woocommerce-account .ef-woo { max-width: 1100px; }

.woocommerce table.cart { width: 100%; border: 1px solid var(--ef-border); border-radius: var(--ef-r-lg); border-collapse: separate; border-spacing: 0; overflow: hidden; background: var(--ef-surface); }
.woocommerce table.cart thead th { text-align: left; font-family: var(--ef-font-sans); font-weight: 600; font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: var(--ef-ink-45); padding: 15px 16px; background: #EAEEEC; border: none; }
.woocommerce table.cart tbody td { padding: 16px; vertical-align: middle; border: none; border-top: 1px solid var(--ef-border); background: transparent; }
.woocommerce table.cart tbody tr:first-child td { border-top: none; }
.woocommerce table.cart td.product-remove { width: 44px; text-align: center; }
.woocommerce table.cart td.product-remove a.remove { color: var(--ef-ink-30) !important; font-size: 20px; width: 24px; height: 24px; line-height: 22px; }
.woocommerce table.cart td.product-remove a.remove:hover { background: none !important; color: #b3453a !important; }
.woocommerce table.cart td.product-thumbnail { width: 92px; }
.woocommerce table.cart td.product-thumbnail img { width: 72px; height: 72px; object-fit: cover; border-radius: 11px; border: 1px solid var(--ef-border-soft); }
.woocommerce table.cart td.product-name { font-size: 15px; }
.woocommerce table.cart td.product-name a { font-family: var(--ef-font-sans); font-weight: 600; color: var(--ef-ink-strong); }
.woocommerce table.cart td.product-name a:hover { color: var(--ef-green); }
.woocommerce table.cart td.product-price, .woocommerce table.cart td.product-subtotal { font-family: var(--ef-font-sans); color: var(--ef-ink); white-space: nowrap; }
.woocommerce table.cart td.product-subtotal { font-weight: 600; color: var(--ef-ink-strong); }
.woocommerce table.cart td.product-quantity .quantity { display: inline-flex; }
.woocommerce table.cart td.product-quantity input.qty { width: 64px; height: 44px; text-align: center; border: 1px solid var(--ef-border-strong); border-radius: var(--ef-r-sm); font-family: var(--ef-font-sans); font-size: 14px; }
.woocommerce table.cart td.actions { padding: 18px 16px; border-top: 1px solid var(--ef-border); }
.woocommerce table.cart td.actions .coupon { display: inline-flex; gap: 8px; vertical-align: middle; }
.woocommerce table.cart td.actions .coupon input.input-text { width: 180px; height: 46px; }
.woocommerce table.cart td.actions > button[name="update_cart"] { float: right; }
.woocommerce .cart-collaterals { margin-top: 30px; }
.woocommerce .cart_totals table.shop_table { width: 100%; }
.woocommerce .cart_totals table.shop_table th, .woocommerce .cart_totals table.shop_table td { padding: 12px 4px; border: none; border-top: 1px solid var(--ef-border); font-family: var(--ef-font-sans); }
.woocommerce .cart_totals table.shop_table tr:first-child th, .woocommerce .cart_totals table.shop_table tr:first-child td { border-top: none; }
.woocommerce .cart_totals .order-total th, .woocommerce .cart_totals .order-total td { font-size: 17px; color: var(--ef-ink-strong); }

@media (max-width: 720px) {
  .woocommerce table.cart thead { display: none; }
  .woocommerce table.cart tbody td { display: block; text-align: right; padding: 10px 16px; }
  .woocommerce table.cart td.product-thumbnail { text-align: left; }
  .woocommerce table.cart td.product-name { text-align: left; }
}

/* ---------- Checkout — raffinements ---------- */
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
.woocommerce-checkout .woocommerce-additional-fields { display: flow-root; }
.woocommerce-checkout form .form-row-first { float: left; width: calc(50% - 9px); }
.woocommerce-checkout form .form-row-last { float: right; width: calc(50% - 9px); }
.woocommerce-checkout form .form-row-wide { clear: both; }
.woocommerce-checkout .woocommerce-input-wrapper { display: block; }

.woocommerce-checkout-review-order-table { width: 100%; border-collapse: collapse; }
.woocommerce-checkout-review-order-table th, .woocommerce-checkout-review-order-table td { padding: 12px 2px; border: none; border-top: 1px solid var(--ef-border); font-family: var(--ef-font-sans); font-size: 14px; text-align: right; }
.woocommerce-checkout-review-order-table th { text-align: left; color: var(--ef-ink-45); font-weight: 500; }
.woocommerce-checkout-review-order-table thead th { border-top: none; font-size: 11px; text-transform: uppercase; letter-spacing: .05em; }
.woocommerce-checkout-review-order-table .cart_item .product-name { text-align: left; color: var(--ef-ink); }
.woocommerce-checkout-review-order-table .cart_item td, .woocommerce-checkout-review-order-table .cart_item th { padding-top: 14px; padding-bottom: 14px; vertical-align: middle; }
.woocommerce-checkout-review-order-table .ef-corev__item { display: inline-flex; align-items: center; gap: 12px; vertical-align: middle; }
.woocommerce-checkout-review-order-table .ef-corev__thumb { flex: 0 0 auto; }
.woocommerce-checkout-review-order-table .ef-corev__thumb img { width: 48px; height: 48px; object-fit: cover; border-radius: 10px; border: 1px solid var(--ef-border-soft); display: block; margin: 0; }
.woocommerce-checkout-review-order-table .ef-corev__thumb.ef-gift-thumb { width: 48px; height: 48px; border-radius: 10px; border: 1px solid rgba(46,139,127,.22); background: #EDF4F0 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 24 24' fill='none' stroke='%231E3A34' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='9' width='16' height='11' rx='1.5'/%3E%3Cpath d='M3 9h18M12 9v11M12 9c-1-3-6-3-6 0M12 9c1-3 6-3 6 0'/%3E%3C/svg%3E") center / 26px 26px no-repeat; }
/* Ligne cadeau détachée : fond teinté + liseré accentué */
.woocommerce-checkout-review-order-table tr.ef-gift-row td,
.woocommerce-checkout-review-order-table tr.ef-gift-row th { background: #F1F7F3; border-top: 1px solid rgba(46,139,127,.22); }
.woocommerce-checkout-review-order-table tr.ef-gift-row .ef-corev__name { color: var(--ef-ink-60); }
.woocommerce-checkout-review-order-table .ef-corev__name { text-align: left; line-height: 1.35; }
.woocommerce-checkout-review-order-table .order-total th, .woocommerce-checkout-review-order-table .order-total td { font-size: 17px; color: var(--ef-ink-strong); }

.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info { background: var(--ef-surface); border: 1px solid var(--ef-border); border-left: 3px solid var(--ef-mint); border-radius: var(--ef-r-md); }
.woocommerce-checkout #payment { margin-top: 16px; }
.woocommerce-checkout #payment ul.payment_methods { list-style: none; margin: 0; padding: 16px; }
.woocommerce-checkout #payment ul.payment_methods li { list-style: none; margin-bottom: 8px; }
.woocommerce-checkout #payment ul.payment_methods li label { font-family: var(--ef-font-sans); font-weight: 500; font-size: 14px; color: var(--ef-ink); }
.woocommerce-checkout #payment .payment_box { background: var(--ef-bg-alt); border-radius: var(--ef-r-md); font-size: 13px; color: var(--ef-ink-60); padding: 12px 14px; }
.woocommerce-checkout #payment .payment_box::before { display: none; }
.woocommerce-checkout #payment div.form-row.place-order { padding: 16px; }
.woocommerce table.shop_table {
  border: 1px solid var(--ef-border); border-radius: var(--ef-r-lg); border-collapse: separate; overflow: hidden; background: var(--ef-surface);
}
.woocommerce table.shop_table th { font-family: var(--ef-font-sans); font-weight: 600; color: var(--ef-ink-strong); }
.woocommerce table.shop_table td { border-top: 1px solid var(--ef-border); }
.woocommerce .cart-collaterals .cart_totals { float: right; width: 42%; }
.woocommerce .cart_totals h2 { font-family: var(--ef-font-serif); font-size: 24px; margin-bottom: 14px; }
.woocommerce .cart-collaterals .cart_totals .order-total .amount { color: var(--ef-ink-strong); font-size: 20px; }
.woocommerce .coupon input.input-text {
  height: 48px; border: 1px solid var(--ef-border-strong); border-radius: var(--ef-r-md); padding: 0 14px; font-family: var(--ef-font-sans);
}
.wc-proceed-to-checkout a.checkout-button { height: 54px; display: flex; align-items: center; justify-content: center; font-size: 16px; }

/* ---------- Checkout ---------- */
.woocommerce-checkout h3 { font-family: var(--ef-font-serif); font-weight: 400; font-size: 24px; color: var(--ef-ink-strong); margin-bottom: 16px; }
.woocommerce form .form-row label { font-family: var(--ef-font-sans); font-size: 13px; color: var(--ef-ink-60); }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row .select2-selection {
  width: 100%; box-sizing: border-box;
  border: 1px solid var(--ef-border-strong); border-radius: var(--ef-r-md); min-height: 48px; padding: 10px 14px;
  font-family: var(--ef-font-sans); font-size: 14.5px; background: var(--ef-surface);
}
.woocommerce-checkout form .form-row { margin: 0 0 16px; }
.woocommerce-checkout .select2-container { width: 100% !important; }
.woocommerce-checkout #payment { background: var(--ef-surface); border: 1px solid var(--ef-border); border-radius: var(--ef-r-lg); }
.woocommerce-checkout #payment ul.payment_methods { border-bottom: 1px solid var(--ef-border); }
.woocommerce #payment #place_order, .woocommerce-checkout #place_order { width: 100%; height: 56px; font-size: 16px; }
.woocommerce-checkout .woocommerce-checkout-review-order-table { background: var(--ef-surface); }

/* ---------- Pages WooCommerce (page.php large) ---------- */
.ef-page--wc .ef-page__hero { padding: 46px 0 8px; }
.ef-page__body--wide { max-width: var(--ef-maxw); padding: 30px var(--ef-gutter) 90px; }

/* Checkout : formulaire 2 colonnes + récap sticky */
.woocommerce-checkout form.checkout.woocommerce-checkout { display: grid; grid-template-columns: 1.55fr 1fr; gap: 44px; align-items: start; }
.woocommerce-checkout #customer_details { grid-column: 1; grid-row: 1 / span 2; }
.woocommerce-checkout #order_review_heading { grid-column: 2; grid-row: 1; margin: 0 0 14px; }
.woocommerce-checkout #order_review { grid-column: 2; grid-row: 2; position: sticky; top: 90px; background: var(--ef-surface); border: 1px solid var(--ef-border); border-radius: var(--ef-r-lg); padding: 8px 22px 22px; }
.woocommerce-checkout .col2-set .col-1, .woocommerce-checkout .col2-set .col-2 { float: none; width: 100%; }
.woocommerce-checkout #payment { border-radius: var(--ef-r-md); }

/* Panier : bloc totaux carté */
.woocommerce-cart .cart-collaterals .cart_totals { background: var(--ef-surface); border: 1px solid var(--ef-border); border-radius: var(--ef-r-lg); padding: 24px; }

/* ---------- Panier vide ---------- */
.woocommerce-cart .cart-empty.woocommerce-info { text-align: center; border: 1px solid var(--ef-border); border-left: 1px solid var(--ef-border); background: var(--ef-surface); padding: 48px 24px; font-family: var(--ef-font-serif); font-size: 22px; color: var(--ef-ink-strong); }
.woocommerce-cart .return-to-shop { text-align: center; margin-top: 22px; }
.woocommerce-cart .return-to-shop .button { height: 52px; display: inline-flex; align-items: center; padding: 0 28px; }
.woocommerce-cart .cross-sells { display: none; }

/* ---------- Confirmation de commande (merci) ---------- */
.woocommerce-order-received .ef-page__hero .ef-page__title::after { content: " ✓"; color: var(--ef-mint); }
.woocommerce-order .woocommerce-notice--success,
.woocommerce-thankyou-order-received { font-family: var(--ef-font-serif); font-size: 24px; color: var(--ef-ink-strong); background: #E4F1EC; border: 1px solid rgba(46,139,127,.3); border-radius: var(--ef-r-lg); padding: 24px 26px; margin-bottom: 28px; }
.woocommerce ul.order_details { list-style: none; display: flex; flex-wrap: wrap; gap: 26px; margin: 0 0 34px; padding: 24px 26px; background: var(--ef-surface); border: 1px solid var(--ef-border); border-radius: var(--ef-r-lg); }
.woocommerce ul.order_details li { border: none; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--ef-ink-45); }
.woocommerce ul.order_details li strong { display: block; font-size: 17px; letter-spacing: 0; text-transform: none; color: var(--ef-ink-strong); margin-top: 4px; }

/* ---------- Signature configurateur (méta ligne) ---------- */
.woocommerce .cart_item dl.variation, .woocommerce-mini-cart dl.variation, .ef-drawer dl.variation { font-size: 12px; color: var(--ef-ink-45); margin: 4px 0 0; }
.woocommerce dl.variation dt { font-weight: 600; display: inline; }
.woocommerce dl.variation dd { display: inline; margin: 0 0 0 4px; }
.woocommerce dl.variation dd p { display: inline; margin: 0; }

/* ---------- Compte ---------- */
/* Compte : une seule carte + switch Connexion / Inscription */
.woocommerce-account .ef-auth-switch { display: flex; max-width: 560px; margin: 0 auto 18px; padding: 4px; background: var(--ef-bg-alt); border-radius: 999px; }
.woocommerce-account .ef-auth-switch button { flex: 1; height: 42px; border: none; border-radius: 999px; background: none; font-family: var(--ef-font-sans); font-weight: 600; font-size: 14px; color: var(--ef-ink-60); cursor: pointer; transition: background .2s ease, color .2s ease, box-shadow .2s ease; }
.woocommerce-account .ef-auth-switch button:hover { color: var(--ef-ink); }
.woocommerce-account .ef-auth-switch button.is-active { background: var(--ef-surface); color: var(--ef-ink-strong); box-shadow: 0 2px 10px rgba(27,33,31,.08); }
.woocommerce-account #customer_login { display: block; max-width: 560px; margin: 0 auto; }
.woocommerce-account #customer_login .col-1,
.woocommerce-account #customer_login .col-2 { float: none; width: 100%; background: var(--ef-surface); border: 1px solid var(--ef-border); border-radius: var(--ef-r-lg); padding: 34px 32px 30px; }
.woocommerce-account #customer_login .col-2 { display: none; }
.woocommerce-account #customer_login.is-register .col-1 { display: none; }
.woocommerce-account #customer_login.is-register .col-2 { display: block; }
.woocommerce-account #customer_login h2 { font-family: var(--ef-font-serif); font-weight: 400; font-size: 27px; color: var(--ef-ink-strong); margin: 0 0 6px; }
.woocommerce-account .ef-account-sub { font-family: var(--ef-font-sans); font-size: 14px; color: var(--ef-ink-60); margin: 0 0 22px; line-height: 1.5; }
.woocommerce-account #customer_login .form-row { margin: 0 0 16px; }
.woocommerce-account #customer_login .form-row label { font-family: var(--ef-font-sans); font-size: 13px; color: var(--ef-ink-60); margin-bottom: 6px; display: block; }
.woocommerce-account #customer_login input.input-text { width: 100%; box-sizing: border-box; }
.show-password-input, .woocommerce .show-password-input { display: none; }
.woocommerce-account .woocommerce-form-login__rememberme { display: flex; align-items: center; gap: 8px; margin: 4px 0 18px; font-size: 14px; color: var(--ef-ink); cursor: pointer; }
.woocommerce-account .woocommerce-form-login__rememberme input { width: 16px; height: 16px; accent-color: var(--ef-green); margin: 0; }
.woocommerce-account .woocommerce-form-login__submit,
.woocommerce-account .woocommerce-form-register__submit { width: 100%; height: 52px; font-size: 15px; margin-top: 4px; }
.woocommerce-account .lost_password { margin: 14px 0 0; font-size: 13.5px; text-align: center; }
.woocommerce-account .lost_password a { color: var(--ef-ink-60); text-decoration: underline; text-underline-offset: 3px; }
.woocommerce-account .lost_password a:hover { color: var(--ef-green); }
.woocommerce-account .woocommerce-privacy-policy-text p { font-size: 12.5px; color: var(--ef-ink-45); line-height: 1.55; margin: 0 0 16px; }
@media (max-width: 900px) {
  .woocommerce-account #customer_login { grid-template-columns: 1fr; gap: 20px; }
  .woocommerce-account #customer_login .col-1, .woocommerce-account #customer_login .col-2 { padding: 26px 22px 24px; }
}

/* Force du mot de passe (inscription) : indicateur lisible + bouton grisé tant que trop faible */
.woocommerce-account .woocommerce-password-strength { margin: 10px 0 0; padding: 9px 12px; border-radius: 9px; font-family: var(--ef-font-sans); font-size: 13px; font-weight: 600; line-height: 1.4; }
.woocommerce-account .woocommerce-password-strength.short { background: #FBE9EA; color: #A8323E; }
.woocommerce-account .woocommerce-password-strength.bad { background: #FDEEDC; color: #9A4B00; }
.woocommerce-account .woocommerce-password-strength.good { background: #FFF4DB; color: #7A5300; }
.woocommerce-account .woocommerce-password-strength.strong { background: #E4F1EC; color: #1E5A4A; }
.woocommerce-account .woocommerce-password-hint { display: block; margin: 6px 0 0; font-family: var(--ef-font-sans); font-size: 12.5px; color: var(--ef-ink-60); line-height: 1.5; }
.woocommerce-account .ef-pw-help { font-family: var(--ef-font-sans); font-size: 12.5px; color: var(--ef-ink-60); line-height: 1.5; margin: -6px 0 16px; }
.woocommerce-account .woocommerce-form-register__submit[disabled] { opacity: .45; cursor: not-allowed; }

/* Espace connecté : menu latéral + carte de contenu */
.woocommerce-account.logged-in .ef-page__body--wide > .woocommerce { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 28px; align-items: start; }
.woocommerce-account.logged-in .ef-page__body--wide > .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
.woocommerce-account.logged-in .ef-page__body--wide > .woocommerce > .woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-account .woocommerce-MyAccount-navigation { float: none; width: auto; background: var(--ef-surface); border: 1px solid var(--ef-border); border-radius: var(--ef-r-lg); padding: 12px; position: sticky; top: 90px; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li + li { margin-top: 2px; }
.woocommerce-account .woocommerce-MyAccount-navigation li a {
  display: block; padding: 12px 14px; border-radius: 10px; color: var(--ef-ink-60); font-family: var(--ef-font-sans); font-weight: 500; font-size: 14.5px; text-decoration: none; transition: background .15s ease, color .15s ease;
}
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover { background: var(--ef-bg-alt); color: var(--ef-ink); }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { background: var(--ef-green); color: var(--ef-bg); }
.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout { margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--ef-border); }
.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a { color: #A8323E; }
.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a:hover { background: #FBE9EA; }
.woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; background: var(--ef-surface); border: 1px solid var(--ef-border); border-radius: var(--ef-r-lg); padding: 32px; font-family: var(--ef-font-sans); font-size: 15px; line-height: 1.65; color: var(--ef-ink); }
.woocommerce-account .woocommerce-MyAccount-content > p:first-child { font-family: var(--ef-font-serif); font-size: 24px; color: var(--ef-ink-strong); line-height: 1.3; margin: 0 0 12px; }
.woocommerce-account .woocommerce-MyAccount-content > p:first-child a { font-family: var(--ef-font-sans); font-size: 14px; }
.woocommerce-account .woocommerce-MyAccount-content p { margin: 0 0 14px; }
.woocommerce-account .woocommerce-MyAccount-content p:last-child { margin-bottom: 0; }
.woocommerce-account .woocommerce-MyAccount-content a { color: var(--ef-green); text-decoration: underline; text-underline-offset: 3px; }
.woocommerce-account .woocommerce-MyAccount-content h2, .woocommerce-account .woocommerce-MyAccount-content h3, .woocommerce-account .woocommerce-MyAccount-content legend { font-family: var(--ef-font-serif); font-weight: 400; color: var(--ef-ink-strong); }
.woocommerce-account .woocommerce-MyAccount-content .form-row input.input-text { width: 100%; box-sizing: border-box; }
.woocommerce-account .woocommerce-MyAccount-content .button { height: 50px; padding: 0 24px; }
/* Bandeaux d'info dans l'espace client (ex. « Aucune commande ») : texte + bouton alignés */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-message {
  display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap;
  margin: 0; padding: 16px 18px; background: var(--ef-bg); border: 1px solid var(--ef-border); border-left: 3px solid var(--ef-mint); border-radius: var(--ef-r-md);
  font-size: 15px; color: var(--ef-ink);
}
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info::before,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-message::before { display: none; }
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info .button,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-message .button {
  float: none; order: 2; margin: 0; height: 44px; padding: 0 20px; display: inline-flex; align-items: center; font-size: 14px; white-space: nowrap; text-decoration: none;
}
/* Boutons de l'espace client : texte blanc (les liens du contenu sont verts, pas les boutons) */
body.efresio.woocommerce-account .woocommerce-MyAccount-content .button,
body.efresio.woocommerce-account .woocommerce-MyAccount-content a.button,
body.efresio.woocommerce-account .woocommerce-MyAccount-content button.button { color: var(--ef-bg); text-decoration: none; }
body.efresio.woocommerce-account .woocommerce-MyAccount-content .button:hover { color: var(--ef-bg); }
@media (max-width: 900px) {
  .woocommerce-account.logged-in .ef-page__body--wide > .woocommerce { grid-template-columns: 1fr; gap: 18px; }
  .woocommerce-account .woocommerce-MyAccount-navigation { position: static; }
  .woocommerce-account .woocommerce-MyAccount-content { padding: 22px 20px; }
}

/* ---------- Responsive ---------- */
@media (max-width: 1120px) {
  .woocommerce ul.products, .woocommerce-page ul.products { grid-template-columns: repeat(2, 1fr); }
  .single-product div.product { grid-template-columns: 1fr; gap: 32px; }
  .woocommerce .cart-collaterals .cart_totals { float: none; width: 100%; }
}
@media (max-width: 900px) {
  /* Checkout : une seule colonne, récap sous le formulaire (plus de sticky) */
  .woocommerce-checkout form.checkout.woocommerce-checkout { grid-template-columns: 1fr; gap: 28px; }
  .woocommerce-checkout #customer_details,
  .woocommerce-checkout #order_review_heading,
  .woocommerce-checkout #order_review { grid-column: 1; grid-row: auto; }
  .woocommerce-checkout #order_review_heading { margin-top: 6px; }
  .woocommerce-checkout #order_review { position: static; top: auto; }
}
@media (max-width: 720px) {
  .woocommerce ul.products, .woocommerce-page ul.products { grid-template-columns: 1fr; }
  .woocommerce-products-header__title.page-title { font-size: 32px; }
}
@media (max-width: 560px) {
  /* Champs Prénom / Nom empilés sur mobile */
  .woocommerce-checkout form .form-row-first,
  .woocommerce-checkout form .form-row-last { float: none; width: 100%; }
}

/* ---------- Notes olfactives (pastilles fiche produit) ---------- */
.ef-pdp__notes { margin-top: 20px; }
.ef-pdp__notes-title { font-family: var(--ef-font-sans); font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--ef-ink-35); margin: 0 0 10px; font-weight: 600; }
.ef-pdp__tags--notes span { display: inline-flex; align-items: baseline; gap: 6px; background: #EDF4F0; border-color: rgba(46,139,127,.22); color: var(--ef-green-deep); }
.ef-pdp__tags--notes em { font-style: normal; font-size: 10px; letter-spacing: .06em; text-transform: uppercase; color: var(--ef-teal); opacity: .8; }

/* ---------- Détail de commande (espace client + page de confirmation) ---------- */
.woocommerce-order,
.woocommerce-MyAccount-content { font-family: var(--ef-font-sans); }

/* Titres de section plus aérés */
.woocommerce-order h2,
.woocommerce-MyAccount-content h2,
.woocommerce-order-details__title,
.woocommerce-column__title,
.woocommerce-customer-details h2 {
  font-family: var(--ef-font-serif); font-weight: 400; font-size: 26px;
  color: var(--ef-ink-strong); margin: 40px 0 18px;
}
.woocommerce-MyAccount-content > p:first-child + h2 { margin-top: 28px; }

/* Tableau de commande : pleine largeur, cellules aérées */
.woocommerce table.shop_table.order_details,
.woocommerce-order table.shop_table,
.woocommerce-MyAccount-content table.shop_table {
  width: 100%; margin: 0 0 8px;
  border: 1px solid var(--ef-border); border-radius: var(--ef-r-lg);
  border-collapse: separate; border-spacing: 0; overflow: hidden;
  background: var(--ef-surface);
}
.woocommerce table.shop_table.order_details th,
.woocommerce table.shop_table.order_details td,
.woocommerce-MyAccount-content table.shop_table th,
.woocommerce-MyAccount-content table.shop_table td {
  padding: 16px 20px; font-size: 15px; line-height: 1.5; vertical-align: middle;
}
.woocommerce table.shop_table.order_details thead th,
.woocommerce-MyAccount-content table.shop_table thead th {
  background: var(--ef-bg-alt); font-size: 11px; letter-spacing: .08em;
  text-transform: uppercase; color: var(--ef-ink-45); font-weight: 600;
  border-top: none; padding-top: 13px; padding-bottom: 13px;
}
.woocommerce table.shop_table.order_details tbody td { border-top: 1px solid var(--ef-border); }
.woocommerce table.shop_table.order_details tfoot th,
.woocommerce table.shop_table.order_details tfoot td { border-top: 1px solid var(--ef-border); background: #FBFCFB; }
.woocommerce table.shop_table.order_details tfoot tr:last-child th,
.woocommerce table.shop_table.order_details tfoot tr:last-child td { font-size: 18px; color: var(--ef-green); font-weight: 700; }
.woocommerce table.shop_table.order_details td.product-total,
.woocommerce table.shop_table.order_details th:last-child,
.woocommerce table.shop_table.order_details td:last-child { text-align: right; white-space: nowrap; }
.woocommerce table.shop_table.order_details .product-name a { color: var(--ef-ink-strong); text-decoration: none; font-weight: 500; }
.woocommerce table.shop_table.order_details .product-name a:hover { color: var(--ef-green); }

/* Bandeau récapitulatif de la page de confirmation */
.woocommerce ul.order_details { gap: 34px; padding: 26px 28px; }

/* Adresses : deux colonnes en cartes */
.woocommerce-customer-details .woocommerce-columns--addresses { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin: 0; }
.woocommerce-customer-details .woocommerce-column { margin: 0; }
.woocommerce-customer-details .woocommerce-column__title { margin-top: 0; font-size: 20px; }
.woocommerce-customer-details address {
  font-style: normal; font-size: 15px; line-height: 1.75; color: var(--ef-ink);
  background: var(--ef-surface); border: 1px solid var(--ef-border);
  border-radius: var(--ef-r-lg); padding: 20px 22px;
}
@media (max-width: 720px) {
  .woocommerce-customer-details .woocommerce-columns--addresses { grid-template-columns: 1fr; }
  .woocommerce table.shop_table.order_details th,
  .woocommerce table.shop_table.order_details td,
  .woocommerce-MyAccount-content table.shop_table th,
  .woocommerce-MyAccount-content table.shop_table td { padding: 13px 14px; font-size: 14px; }
}

/* ---------- Bloc paiement : habillage épuré (un seul moyen, Stripe) ---------- */
.woocommerce-checkout #payment ul.payment_methods { padding: 20px 20px 4px; border-bottom: none; }
/* Un seul moyen disponible : le bouton radio n'a plus d'utilité visuelle. */
.woocommerce-checkout #payment li.wc_payment_method:only-child > input[type="radio"] { position: absolute; opacity: 0; pointer-events: none; }
.woocommerce-checkout #payment li.wc_payment_method > label {
  display: block; margin: 0 0 4px;
  font-family: var(--ef-font-sans); font-size: 11px; font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase; color: var(--ef-ink-45);
}
.woocommerce-checkout #payment li.wc_payment_method > label img { display: none; }
/* Le module Stripe respire directement sur le fond de la carte, sans boîte grise. */
.woocommerce-checkout #payment .payment_box.payment_method_stripe {
  background: transparent; border: none; border-radius: 0;
  padding: 6px 0 0; margin: 0; font-size: 14px; color: var(--ef-ink);
}
.woocommerce-checkout #payment .payment_box.payment_method_stripe::before,
.woocommerce-checkout #payment .payment_box::after { display: none; }
/* Encart « mode test » discret */
.woocommerce-checkout #payment .payment_box p:first-child:not(:only-child) {
  font-size: 12.5px; line-height: 1.55; color: var(--ef-ink-45);
  background: #F4F7F5; border-radius: 10px; padding: 11px 13px; margin: 0 0 14px;
}
/* Bouton Commander : bien visible en bas de la carte de commande */
.woocommerce-checkout #payment div.form-row.place-order { padding: 18px 20px 20px; margin: 0; }

/* ---------- Stripe : neutralise les styles par défaut du navigateur ---------- */
/* WooCommerce Stripe rend ses champs dans des <fieldset> non stylés : le navigateur
   applique alors sa bordure « groove » d'origine, d'où les cadres imbriqués. */
.woocommerce-checkout #payment fieldset,
.woocommerce-checkout #payment .wc-upe-form,
.woocommerce-checkout #payment #wc-stripe-upe-form {
  border: 0; margin: 0; padding: 0; min-width: 0;
}
/* Champ sonde utilisé par Stripe pour lire les styles du thème : il doit rester
   dans le DOM (sinon l'apparence est mal calculée) mais ne pas être visible. */
.woocommerce-checkout #payment #wc-stripe-hidden-style-input {
  position: absolute; left: -9999px; top: 0; opacity: 0; pointer-events: none;
}
/* Sélecteur de devise vide (boutique en euros uniquement). */
.woocommerce-checkout #payment #wc-stripe-currency-selector { display: none; }
/* Liste des moyens enregistrés, vide tant qu'aucune carte n'est mémorisée. */
.woocommerce-checkout #payment .woocommerce-SavedPaymentMethods:empty { display: none; }
/* Paiement express (Apple Pay / Google Pay) : Stripe rend ses boutons dans une iframe
   dont on ne maîtrise que l'enveloppe. On cale l'espacement et le séparateur sur la
   grille du tunnel pour que le bloc ne flotte pas au-dessus du formulaire. */
#wc-stripe-express-checkout-element { margin: 0 0 18px; }
#wc-stripe-express-checkout-element:empty { display: none; }
#wc-stripe-express-checkout-button-separator {
  display: flex; align-items: center; gap: 14px;
  margin: 0 0 18px;
  font-family: var(--ef-font-sans); font-size: 12px; letter-spacing: .08em;
  text-transform: uppercase; color: var(--ef-ink-45);
}
#wc-stripe-express-checkout-button-separator::before,
#wc-stripe-express-checkout-button-separator::after {
  content: ""; flex: 1; height: 1px; background: var(--ef-border);
}
