/* Boutique : catalogue, fiche produit, panier, commande, compte. */
.rv-shop__layout, .rv-product__wrap, .rv-woo-page { max-width: var(--rv-max); margin: 0 auto; padding: 0 var(--rv-gutter) var(--wp--preset--spacing--80); box-sizing: border-box; }
.rv-woo-page { padding-top: var(--wp--preset--spacing--50); }
.rv-woo-page .wp-block-post-title { font: 450 var(--wp--preset--font-size--xxl)/1.05 var(--rv-serif); margin-bottom: 28px; }
.rv-shop__layout { display: grid; gap: 40px; }
@media (min-width: 1024px) { .rv-shop__layout { grid-template-columns: 260px 1fr; } .rv-shop__aside { position: sticky; top: calc(var(--rv-header-h) + 24px); align-self: start; } }
.rv-shop__bar { margin-bottom: 24px; gap: 16px; font-size: .9375rem; }
.rv-shop-filters { display: grid; gap: 24px; }
.rv-filter__title { margin: 0 0 10px !important; font: 600 .75rem var(--rv-sans) !important; letter-spacing: .14em; text-transform: uppercase; color: var(--rv-sauge-ink, #4B5C43); }
.rv-shop .wc-block-product-filter-checkbox-list__label { min-height: 36px; }

/* Grille produits (Product Collection) */
.rv-products-grid .wc-block-product-template { gap: 32px 20px !important; }
.rv-products-grid .wc-block-product { position: relative; text-align: left; }
.rv-products-grid .wc-block-components-product-image { border-radius: 20px; overflow: hidden; background: var(--rv-mousse); margin-bottom: 12px !important; }
.rv-products-grid .wc-block-components-product-image img { aspect-ratio: 1; object-fit: cover; transition: transform .9s var(--rv-ease); }
.rv-products-grid .wc-block-product:hover .wc-block-components-product-image img { transform: scale(1.04); }
.rv-products-grid .rv-badges { margin-bottom: 8px; }
.rv-product-title { margin: 0 0 4px !important; font: 500 1.1875rem/1.3 var(--rv-serif) !important; }
.rv-product-title a { color: var(--rv-foret); text-decoration: none; }
.wc-block-components-product-price, .price { font-weight: 600; color: var(--rv-terre-dark); font-variant-numeric: tabular-nums; }
.wc-block-components-product-price del, .price del { color: var(--rv-ink-soft); font-weight: 400; }
.wc-block-components-product-price ins, .price ins { text-decoration: none; }
.wp-block-button__link, .wc-block-components-button:not(.is-link), .single_add_to_cart_button, .wc-block-components-product-button__button, .button.alt, .checkout-button { min-height: 48px; border-radius: 999px !important; background: var(--rv-terre) !important; color: #fff !important; font-weight: 600 !important; border: 0 !important; padding: 12px 24px !important; }
.wp-block-button__link:hover, .wc-block-components-button:not(.is-link):hover, .single_add_to_cart_button:hover { background: var(--rv-terre-dark) !important; }
.wc-block-components-product-button__button { width: auto; }

/* Fiche produit */
.rv-product__grid { display: grid; gap: 40px; padding-top: var(--wp--preset--spacing--40); }
@media (min-width: 960px) { .rv-product__grid { grid-template-columns: 1.15fr 1fr; gap: clamp(40px, 6vw, 96px); } .rv-product__summary { position: sticky; top: calc(var(--rv-header-h) + 24px); align-self: start; } }
.rv-product__media .woocommerce-product-gallery__image img, .rv-product__media .wc-block-product-gallery-large-image img { border-radius: 24px; }
.rv-product__media .flex-control-thumbs { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-top: 10px !important; padding: 0; list-style: none; }
.rv-product__media .flex-control-thumbs img { border-radius: 12px; cursor: pointer; opacity: .7; }
.rv-product__media .flex-control-thumbs img.flex-active { opacity: 1; outline: 2px solid var(--rv-sauge); }
.rv-product__summary .wp-block-post-title { font: 450 var(--wp--preset--font-size--xxl)/1.05 var(--rv-serif); margin: 12px 0 14px; }
.rv-product__price { font-size: 1.5rem; margin-bottom: 16px; }
.rv-product .wp-block-post-excerpt { color: var(--rv-ink-soft); }
.rv-buy form.cart { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; margin-top: 24px; }
.rv-buy form.variations_form { display: block; }
.rv-buy .quantity input { width: 84px; text-align: center; }
.rv-buy table.variations { width: 100%; border: 0; margin-bottom: 16px; }
.rv-buy table.variations th, .rv-buy table.variations td { display: block; padding: 0 0 8px; border: 0; text-align: left; }
.rv-buy table.variations select { width: 100%; }
.rv-swatches { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.rv-swatch { min-height: 44px; padding: 8px 16px; border-radius: 999px; border: 1.5px solid var(--rv-pierre); background: #fff; font: 500 .9375rem var(--rv-sans); color: var(--rv-foret); cursor: pointer; }
.rv-swatch[aria-pressed="true"] { border-color: var(--rv-foret); background: var(--rv-foret); color: var(--rv-lin); }
.rv-swatch[disabled] { opacity: .45; text-decoration: line-through; cursor: not-allowed; }
.rv-swatch__dot { display: inline-block; width: 14px; height: 14px; margin-right: 8px; border-radius: 50%; vertical-align: -2px; border: 1px solid rgba(0,0,0,.15); }
.rv-product__details { margin-top: var(--wp--preset--spacing--70); }
.rv-product__details .wc-tabs, .rv-product__details .wp-block-woocommerce-product-details ul.tabs { display: flex; gap: 8px; flex-wrap: wrap; padding: 0; margin: 0 0 24px; list-style: none; border-bottom: 1px solid rgba(31,42,34,.12); }
.rv-product__details .wc-tabs li a { display: inline-block; padding: 12px 18px; color: var(--rv-foret); text-decoration: none; font-weight: 600; }
.rv-product__details .wc-tabs li.active a { box-shadow: inset 0 -3px 0 var(--rv-sauge); }
.rv-product__details .woocommerce-Tabs-panel { max-width: 820px; }
.rv-product__details .woocommerce-Tabs-panel h2 { font-size: var(--wp--preset--font-size--xl); }
.rv-product .wp-block-woocommerce-related-products { margin-top: var(--wp--preset--spacing--70); }
.rv-related-grid { gap: 20px !important; }
.rv-related-grid .wc-block-components-product-image img { border-radius: 18px; aspect-ratio: 1; object-fit: cover; }
.rv-addon { margin: 18px 0; padding: 16px 18px; border-radius: 14px; border: 1.5px solid var(--rv-pierre); background: #fff; }
.rv-addon label { display: flex; gap: 12px; align-items: center; cursor: pointer; font-weight: 600; }
.rv-addon input { width: 20px; height: 20px; accent-color: var(--rv-sauge); }
.rv-slot { margin: 18px 0; display: grid; gap: 10px; }
.rv-slot label { font-weight: 600; }
.rv-giftcard { margin: 18px 0; display: grid; gap: 8px; }
.rv-sap-price { display: block; margin-top: 4px; font-size: .9375rem; font-weight: 500; color: var(--rv-sauge-ink, #4B5C43); }

/* Panier / commande (blocs natifs) */
.wc-block-cart, .wc-block-checkout { font-family: var(--rv-sans); }
.wc-block-components-sidebar-layout .wc-block-components-main { padding-right: 4%; }
.wc-block-components-totals-wrapper, .wc-block-components-order-summary { border-color: rgba(31,42,34,.12) !important; }
.wc-block-components-text-input input, .wc-block-components-combobox .components-combobox-control__input, .wc-block-components-select select, .wc-blocks-components-select__select { border-radius: 12px !important; border-color: var(--rv-pierre) !important; background: #fff !important; }
.wc-block-components-checkout-step__title { font: 500 1.375rem var(--rv-serif) !important; }
.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button { width: 100%; }
.wc-block-components-notice-banner { border-radius: 14px; }

/* Mon compte / espace client */
/* Connexion / inscription */
.woocommerce-account:not(.logged-in) .woocommerce { max-width: 1100px; }
.woocommerce-account .u-columns.col2-set { display: grid; gap: 28px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); }
.woocommerce-account .u-columns .u-column1, .woocommerce-account .u-columns .u-column2 { float: none; width: auto; }
.woocommerce-account .u-columns h2 { font: 500 1.75rem/1.2 var(--rv-serif); margin: 0 0 16px; }
.woocommerce-account form.login, .woocommerce-account form.register { padding: 28px; border-radius: 22px; background: #fff; border: 1px solid rgba(31,42,34,.1); margin: 0; }
.woocommerce-account form.login input.input-text, .woocommerce-account form.register input.input-text { width: 100%; }
.woocommerce-account .woocommerce-form-login__rememberme { display: flex; gap: 8px; align-items: center; margin: 8px 0 16px; }
.woocommerce-account .woocommerce-LostPassword { margin-top: 14px; }
.woocommerce-account .rvc-magic { margin-top: 28px; }
.woocommerce-account .woocommerce-privacy-policy-text { font-size: .875rem; color: var(--rv-ink-soft); }
.woocommerce .password-input { position: relative; display: block; }
.woocommerce .show-password-input { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); border: 0; background: none; }
/* Galerie produit visible même avant l'initialisation du script */
.woocommerce-product-gallery { opacity: 1 !important; }
.woocommerce table.shop_table, .rv-table { width: 100%; border-collapse: collapse; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: 12px; border-bottom: 1px solid rgba(31,42,34,.12); text-align: left; }
.woocommerce-message, .woocommerce-info, .woocommerce-error { list-style: none; margin: 0 0 20px; padding: 16px 18px; border-radius: 14px; background: var(--rv-mousse); }
.woocommerce-error { background: #F6E3DE; color: #7A2216; }
.woocommerce form .form-row { margin-bottom: 16px; }
.woocommerce form .form-row label { display: block; margin-bottom: 6px; font-weight: 600; }
.woocommerce form .form-row input.input-text { width: 100%; }
.woocommerce-account .u-columns.col2-set::before, .woocommerce-account .u-columns.col2-set::after { display: none; }
.rv-product__media .woocommerce-product-gallery { width: 100% !important; float: none !important; }
.rv-product__media .woocommerce-product-gallery__image img { width: 100%; height: auto; border-radius: 24px; background: var(--rv-mousse); }
.rv-product__media .flex-control-thumbs li { width: auto !important; float: none !important; }
.rv-product__media .flex-control-thumbs img { width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; }
.rv-product__media .woocommerce-product-gallery__trigger { position: absolute; top: 16px; right: 16px; z-index: 5; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: #fff; }

/* Galerie statique : grande image puis vignettes en grille (aucun recalcul JS de mise en page) */
.rv-product__media .woocommerce-product-gallery__wrapper { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin: 0; }
.rv-product__media .woocommerce-product-gallery__image:first-child { grid-column: 1 / -1; }
.rv-product__media .woocommerce-product-gallery__image:not(:first-child) img { aspect-ratio: 1; object-fit: cover; border-radius: 14px; }
