/* ==========================================================================
   REVORIA : WooCommerce (panier, paiement, fiche produit, compte)
   Compatible avec les pages classiques (shortcodes) et les blocs Panier / Paiement.
   ========================================================================== */

.shop-head { padding: calc(var(--header-h) + clamp(40px, 7vw, 96px)) 0 24px; }
.shop-head__title { font-size: clamp(2.1rem, 5.4vw, 4.6rem); letter-spacing: -.04em; margin-bottom: 32px; }
.shop-spacer { height: calc(var(--header-h) + 48px); }
.shop-page { padding-top: 16px; }

/* Étapes */
.steps { list-style: none; display: flex; align-items: center; gap: 0; max-width: 620px; }
.steps__item { display: flex; align-items: center; gap: 10px; flex: 1; font-weight: 700; font-size: .92rem; color: var(--ink-2); }
.steps__item + .steps__item::before { content: ""; flex: 1; height: 2px; margin-right: 10px; background: var(--line-2); border-radius: 2px; }
.steps__item.is-done + .steps__item::before, .steps__item.is-current::before { background: var(--pink); }
.steps__dot { display: grid; place-items: center; flex: none; width: 34px; height: 34px; border-radius: 50%; border: 1.5px solid var(--line-2); font-family: var(--f-display); font-size: .85rem; }
.steps__dot .rv-ico { width: 16px; height: 16px; }
.steps__item.is-current { color: var(--ink); }
.steps__item.is-current .steps__dot { background: var(--pink); border-color: var(--pink); color: var(--navy); }
.steps__item.is-done .steps__dot { background: var(--ink); border-color: var(--ink); color: var(--bg); }

/* Notices */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner {
	margin: 0 0 24px !important; padding: 16px 20px !important; border: 1px solid var(--line) !important; border-radius: var(--r-m) !important;
	background: var(--bg-2) !important; color: var(--ink) !important; list-style: none;
}
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { display: none !important; }
.woocommerce-error { border-color: #E5484D !important; }
.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, .woocommerce-page .button,
.wc-block-components-button:not(.is-link), .wp-element-button.wc-block-components-button {
	display: inline-flex !important; align-items: center; justify-content: center; gap: .5em;
	padding: .95em 1.6em !important; border: 1.5px solid var(--pink) !important; border-radius: 999px !important;
	background: var(--pink) !important; color: var(--navy) !important;
	font-family: var(--f-body) !important; font-weight: 800 !important; font-size: 1rem !important; line-height: 1 !important;
	text-decoration: none !important; transition: background .3s, color .3s, border-color .3s, transform .3s var(--ease) !important;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce-page .button:hover, .wc-block-components-button:not(.is-link):hover {
	background: var(--ink) !important; border-color: var(--ink) !important; color: var(--bg) !important;
}
.woocommerce button.button:disabled, .woocommerce button.button.disabled { opacity: .5; }
#place_order, .wc-block-components-checkout-place-order-button { width: 100%; padding-block: 1.15em !important; font-size: 1.08rem !important; }

/* Champs */
.woocommerce form .form-row label, .wc-block-components-text-input label { font-weight: 700; color: var(--ink-2); }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select,
.woocommerce .quantity .qty, .select2-container--default .select2-selection--single {
	padding: .85em 1em !important; border: 1.5px solid var(--line-2) !important; border-radius: var(--r-s) !important;
	background: var(--bg) !important; color: var(--ink) !important; font: inherit !important; min-height: 52px;
}
/* Blocs Paiement : on garde l'espacement de WooCommerce (étiquettes flottantes), on applique seulement les couleurs. */
.wc-block-components-text-input input, .wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-blocks-components-select .wc-blocks-components-select__select, .wc-block-components-textarea {
	border: 1.5px solid var(--line-2) !important; border-radius: var(--r-s) !important;
	background: var(--bg) !important; color: var(--ink) !important;
}
.wc-blocks-components-select .wc-blocks-components-select__label, .wc-block-components-text-input label { color: var(--ink-2) !important; }
.select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--ink); line-height: 1.6; padding: 0; }
.select2-container--default .select2-selection--single .select2-selection__arrow { top: 12px; right: 10px; }
.select2-dropdown { background: var(--bg-2); color: var(--ink); border-color: var(--line-2); }
.woocommerce form .form-row input.input-text:focus, .woocommerce form .form-row textarea:focus,
.wc-block-components-text-input input:focus { border-color: var(--pink) !important; box-shadow: 0 0 0 4px rgba(255, 77, 154, .18) !important; outline: none; }
.wc-block-components-text-input.is-active label, .wc-block-components-text-input label { color: var(--ink-2) !important; }

/* Paiement classique : deux colonnes */
@media (min-width: 961px) {
	.woocommerce-checkout form.checkout { display: grid; grid-template-columns: minmax(0, 7fr) minmax(320px, 5fr); gap: 0 clamp(32px, 4vw, 64px); align-items: start; }
	.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup, .woocommerce-checkout form.checkout > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
	.woocommerce-checkout #customer_details { grid-column: 1; grid-row: 1 / span 3; }
	.woocommerce-checkout #order_review_heading, .woocommerce-checkout #order_review { grid-column: 2; }
	.woocommerce-checkout #order_review { position: sticky; top: calc(var(--header-h) + 24px); }
	.woocommerce-checkout .col2-set .col-1, .woocommerce-checkout .col2-set .col-2 { float: none; width: 100%; }
}
.woocommerce-checkout h3, #order_review_heading { font-size: 1.35rem; margin: 0 0 20px; }
.woocommerce-billing-fields, .woocommerce-additional-fields, .woocommerce-checkout-review-order, .woocommerce-checkout #order_review {
	padding: clamp(20px, 2.6vw, 32px); border-radius: var(--r-l); background: var(--bg-2); border: 1px solid var(--line);
}
.woocommerce-additional-fields { margin-top: 20px; }
#order_review_heading { padding: 0; }
.woocommerce-checkout #order_review { border-top-left-radius: var(--r-l); }
.woocommerce table.shop_table { border: 0 !important; border-radius: 0; margin: 0 0 20px; border-collapse: collapse; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: 14px 0 !important; border-top: 1px solid var(--line) !important; background: none !important; color: var(--ink); }
.woocommerce table.shop_table .order-total .amount { font-family: var(--f-display); font-size: 1.5rem; color: var(--ink); }
.woocommerce-checkout #payment { background: transparent !important; border-radius: 0 !important; }
.woocommerce-checkout #payment ul.payment_methods { padding: 0 0 16px !important; border-bottom: 1px solid var(--line) !important; }
.woocommerce-checkout #payment ul.payment_methods li { list-style: none; padding: 12px 14px; border: 1.5px solid var(--line); border-radius: var(--r-s); margin-bottom: 8px; }
.woocommerce-checkout #payment div.payment_box { background: var(--bg-3) !important; color: var(--ink) !important; border-radius: var(--r-s) !important; }
.woocommerce-checkout #payment div.payment_box::before { display: none !important; }
.woocommerce-checkout #payment div.form-row { padding: 16px 0 0 !important; }
.woocommerce-terms-and-conditions-wrapper { font-size: .9rem; color: var(--ink-2); }

/* Réassurance */
.checkout-assure { display: grid; gap: 8px; margin: 0 0 20px; padding: 16px; border-radius: var(--r-s); background: var(--bg-3); }
.checkout-assure p { display: flex; align-items: center; gap: 10px; margin: 0; font-size: .9rem; font-weight: 700; }
.checkout-assure .rv-ico { color: var(--pink-ink); }
.shop-help { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 20px; margin-top: 40px; padding: 20px 24px; border-radius: var(--r-m); background: var(--navy); color: #F4F2FA; }
.shop-help img { width: 56px; height: 56px; border-radius: 50%; border: 2px solid var(--pink); object-fit: cover; }
.shop-help p { flex: 1; min-width: 200px; margin: 0; }
.shop-help .link-underline { color: var(--pink); }

/* Blocs Panier / Paiement */
.wc-block-cart, .wc-block-checkout { color: var(--ink); }
.wc-block-components-sidebar-layout .wc-block-components-main { padding-right: clamp(16px, 3vw, 48px); }
.wc-block-components-sidebar, .wc-block-checkout__sidebar .wc-block-components-totals-wrapper { border-radius: var(--r-m); }
.wc-block-components-sidebar { padding: 24px !important; background: var(--bg-2); border: 1px solid var(--line); border-radius: var(--r-l); }
.wc-block-components-title, .wc-block-components-checkout-step__title { font-family: var(--f-display) !important; font-weight: 800 !important; }
.wc-block-components-checkout-step { padding: 24px !important; margin-bottom: 16px !important; border-radius: var(--r-l); background: var(--bg-2); border: 1px solid var(--line); }
.wc-block-components-checkout-step::after, .wc-block-components-checkout-step__container::after { display: none !important; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-family: var(--f-display); font-size: 1.4rem; }
.wc-block-components-radio-control__option, .wc-block-components-radio-control-accordion-option { border-radius: var(--r-s) !important; }
.wc-block-components-product-name { font-weight: 800; color: var(--ink) !important; text-decoration: none; }
.wc-block-components-panel__button, .wc-block-components-totals-item { color: var(--ink); }
.wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title { font-family: var(--f-display); }

/* Panier classique */
.woocommerce-cart-form { padding: clamp(16px, 2.4vw, 28px); border-radius: var(--r-l); background: var(--bg-2); border: 1px solid var(--line); }
.woocommerce table.cart img { width: 64px; border-radius: var(--r-s); }
.woocommerce table.cart td.actions .coupon .input-text { width: 180px !important; margin-right: 8px; }
.woocommerce a.remove { display: grid !important; place-items: center; width: 32px !important; height: 32px !important; border-radius: 50% !important; color: var(--ink) !important; background: var(--bg-3); font-size: 1.2rem !important; }
.woocommerce a.remove:hover { background: var(--pink) !important; color: var(--navy) !important; }
.cart-collaterals .cart_totals { width: 100% !important; max-width: 480px; margin-left: auto; margin-top: 32px; padding: clamp(20px, 2.6vw, 32px); border-radius: var(--r-l); background: var(--bg-2); border: 1px solid var(--line); }
.cart-collaterals h2 { font-size: 1.35rem; margin-bottom: 16px; }

/* Grille produits et fiche produit */
.woocommerce ul.products { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin: 0; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; }
.woocommerce ul.products li.product { width: auto !important; margin: 0 !important; float: none !important; padding: 24px; border-radius: var(--r-m); background: var(--bg-2); border: 1px solid var(--line); transition: transform .5s var(--ease), box-shadow .5s var(--ease); }
.woocommerce ul.products li.product:hover { transform: translateY(-6px); box-shadow: var(--shadow); }
.woocommerce ul.products li.product a img { border-radius: var(--r-s); margin-bottom: 16px; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: var(--f-display); font-size: 1.4rem !important; padding: 0 0 6px !important; }
.woocommerce ul.products li.product .price, .woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--ink) !important; font-family: var(--f-display); font-weight: 800; font-size: 1.6rem !important; }
.woocommerce span.onsale { background: var(--pink); color: var(--navy); border-radius: 99px; min-height: 0; min-width: 0; padding: .3em .8em; line-height: 1.4; }
.woocommerce div.product { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 80px); }
.woocommerce div.product div.images, .woocommerce div.product div.summary { width: 100% !important; float: none !important; margin: 0 !important; }
.woocommerce div.product div.images img { border-radius: var(--r-l); }
.woocommerce div.product .product_title { font-size: clamp(2.2rem, 5vw, 4rem); letter-spacing: -.04em; margin-bottom: 16px; }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--ink-2); font-size: 1.12rem; }
.woocommerce div.product form.cart { display: flex; gap: 12px; margin: 24px 0; }
.woocommerce div.product .woocommerce-tabs, .woocommerce div.product .related, .woocommerce div.product .upsells { grid-column: 1 / -1; }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0 !important; margin: 0 0 24px !important; display: flex; gap: 8px; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { margin: 0 !important; padding: 0 !important; border: 1px solid var(--line-2) !important; border-radius: 99px !important; background: none !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: .5em 1.1em !important; color: var(--ink) !important; font-weight: 700; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: var(--ink) !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--bg) !important; }
.product_meta { font-size: .88rem; color: var(--ink-2); }
.pack-detail { margin: 20px 0; padding: 20px 0; border-block: 1px solid var(--line); }
.pack-detail__monthly { font-weight: 800; color: var(--pink-ink); }
.woocommerce .woocommerce-ordering select { padding: .6em 1em; border-radius: 99px; border: 1px solid var(--line-2); background: var(--bg-2); color: var(--ink); }
.woocommerce nav.woocommerce-pagination ul { border: 0; display: flex; gap: 8px; justify-content: center; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span { min-width: 44px; padding: .75em; border-radius: 99px; border: 1px solid var(--line-2); }

/* Commande reçue */
.thanks { position: relative; display: grid; gap: 12px; justify-items: start; margin-bottom: 32px; padding: clamp(28px, 4vw, 48px); border-radius: var(--r-l); background: var(--navy); color: #F4F2FA; }
.thanks__star { width: 48px; height: 48px; animation: rv-spin 8s linear infinite; }
.thanks h2 { font-size: clamp(1.8rem, 3.6vw, 3rem); }
.thanks p { max-width: 52ch; color: #C6C9E6; margin: 0; }
.thanks img { position: absolute; right: 28px; top: 28px; width: 64px; height: 64px; border-radius: 50%; border: 2px solid var(--pink); }
.woocommerce-order-overview { list-style: none; display: flex; flex-wrap: wrap; gap: 12px; padding: 0 !important; margin: 0 0 32px !important; }
.woocommerce-order-overview li { padding: 14px 18px !important; margin: 0 !important; border: 1px solid var(--line) !important; border-radius: var(--r-s); background: var(--bg-2); }

/* Mon compte */
.woocommerce-account .woocommerce { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: clamp(24px, 4vw, 64px); }
.woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { width: 100% !important; float: none !important; }
.woocommerce-MyAccount-navigation ul { list-style: none; display: grid; gap: 4px; }
.woocommerce-MyAccount-navigation a { display: block; padding: .7em 1em; border-radius: 99px; font-weight: 700; text-decoration: none; }
.woocommerce-MyAccount-navigation .is-active a, .woocommerce-MyAccount-navigation a:hover { background: var(--ink); color: var(--bg); }
.woocommerce-account:not(.logged-in) .woocommerce { grid-template-columns: 1fr; max-width: 560px; }
.woocommerce form.login, .woocommerce form.register { padding: clamp(20px, 3vw, 36px) !important; border: 1px solid var(--line) !important; border-radius: var(--r-l) !important; background: var(--bg-2); }

@media (max-width: 960px) {
	.woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.woocommerce div.product { grid-template-columns: 1fr; }
	.woocommerce-account .woocommerce { grid-template-columns: 1fr; }
	.woocommerce-checkout #order_review { margin-top: 20px; }
}
@media (max-width: 640px) {
	.woocommerce ul.products { grid-template-columns: 1fr; }
	.steps__label { display: none; }
	.steps__item.is-current .steps__label { display: inline; }
	.woocommerce table.shop_table_responsive tr td::before { color: var(--ink-2); }
	.thanks img { position: static; }
}
.checkout-care { margin: 0 0 16px; padding: 12px 14px; border-radius: var(--r-s); background: color-mix(in srgb, var(--pink) 14%, transparent); font-size: .9rem; font-weight: 600; }


/* v1.2.1 : en-tête toujours visible sur le panier, le paiement et le compte */
.woocommerce-cart .site-header, .woocommerce-checkout .site-header, .woocommerce-account .site-header { transform: none !important; background: color-mix(in srgb, var(--bg) 88%, transparent); -webkit-backdrop-filter: blur(14px) saturate(140%); backdrop-filter: blur(14px) saturate(140%); box-shadow: 0 1px 0 var(--line); }
.woocommerce-cart .menu-open .site-header, .woocommerce-checkout .menu-open .site-header { background: transparent; }
.wc-block-components-sidebar .wc-block-components-totals-wrapper, .wc-block-components-sidebar .wp-block-woocommerce-checkout-order-summary-block { border-color: var(--line) !important; }
.wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block { border: 0 !important; }
