/*
 * Globalize Base — pages de la boutique (catalogue, fiche produit, panier, commande, compte).
 * Remplace les feuilles de style de WooCommerce (désactivées par le thème). Les vignettes produit,
 * pastilles et prix sont dans main.css (utilisés aussi par les sections).
 */

/* --- Structure, fil d'Ariane, en-tête du catalogue ----------------------------------------------- */
.gb-shop { padding-bottom: clamp(48px, 7vw, 96px); }
.gb-breadcrumb { padding-top: 20px; font-size: .8125rem; color: var(--gb-muted); }
.gb-breadcrumb a { color: inherit; text-decoration: none; }
.gb-breadcrumb a:hover { text-decoration: underline; }
.gb-breadcrumb__sep { margin: 0 8px; opacity: .6; }
.woocommerce-products-header { padding: clamp(20px, 4vw, 44px) 0 8px; }
.woocommerce-products-header__title { margin: 0; }
.term-description { max-width: 680px; margin-top: 12px; color: var(--gb-muted); }
.term-description p:last-child { margin-bottom: 0; }

.gb-pills ul { display: flex; gap: 8px; margin: 20px 0 4px; padding: 0 0 6px; list-style: none; overflow-x: auto; scrollbar-width: none; }
.gb-pills ul::-webkit-scrollbar { display: none; }
.gb-pills a { display: inline-flex; align-items: center; min-height: 38px; padding: 0 16px; border: 1px solid var(--gb-line-strong); border-radius: 999px; font-size: .875rem; white-space: nowrap; text-decoration: none; transition: background-color .2s, color .2s; }
.gb-pills a:hover { border-color: var(--gb-text); }
.gb-pills a[aria-current] { background: var(--gb-text); color: var(--gb-bg); border-color: var(--gb-text); }

.gb-shop-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin: 12px 0 28px; padding: 12px 0; border-bottom: 1px solid var(--gb-line); }
.woocommerce-result-count { margin: 0; font-size: .875rem; color: var(--gb-muted); }
.woocommerce-ordering { margin: 0; }
.woocommerce-ordering select { min-height: 40px; padding: 0 36px 0 12px; border: 1px solid var(--gb-line-strong); border-radius: var(--gb-radius); background: var(--gb-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23666' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 12px center; appearance: none; font-size: .875rem; }
.woocommerce-no-products-found { padding: 32px 0; }

.woocommerce-pagination ul.page-numbers { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin: 56px 0 0; padding: 0; list-style: none; }
.woocommerce-pagination .page-numbers a, .woocommerce-pagination .page-numbers span { display: inline-flex; align-items: center; justify-content: center; min-width: 42px; height: 42px; padding: 0 12px; border-radius: var(--gb-btn-radius); text-decoration: none; }
.woocommerce-pagination .page-numbers .current { background: var(--gb-text); color: var(--gb-bg); }
.woocommerce-pagination .page-numbers a:hover { background: var(--gb-surface); }

/* --- Messages ------------------------------------------------------------------------------------ */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-notice {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px;
	margin: 0 0 24px; padding: 14px 18px;
	background: var(--gb-surface); border-left: 3px solid var(--gb-text); border-radius: var(--gb-radius);
	list-style: none; font-size: .9375rem;
}
.woocommerce-error { border-left-color: var(--gb-sale); }
.woocommerce-error li { margin: 0; }
.woocommerce-message .button, .woocommerce-info .button { order: 2; }

/* --- Boutons et formulaires WooCommerce ----------------------------------------------------------- */
.woocommerce .button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button, .woocommerce #respond input#submit {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 48px; padding: 0 24px;
	background: var(--gb-accent); color: var(--gb-on-accent);
	border: 1px solid transparent; border-radius: var(--gb-btn-radius);
	font-weight: 600; font-size: .9375rem; line-height: 1.2; text-decoration: none;
	cursor: pointer; transition: background-color .2s;
}
.woocommerce .button:hover { background: color-mix(in srgb, var(--gb-accent) 86%, var(--gb-on-accent)); }
.woocommerce .button:disabled, .woocommerce .button.disabled, .woocommerce .button[disabled] { opacity: .5; cursor: not-allowed; }
.woocommerce .button.is-loading, .woocommerce .button.loading { opacity: .6; pointer-events: none; }
.woocommerce-message .button, .woocommerce-info .button { min-height: 40px; padding: 0 16px; background: transparent; color: inherit; border-color: currentColor; }

.woocommerce form .form-row { margin: 0 0 16px; padding: 0; }
.woocommerce form .form-row label { display: block; margin-bottom: 6px; font-size: .875rem; font-weight: 600; }
.woocommerce form .form-row label.checkbox, .woocommerce form .form-row label.woocommerce-form__label-for-checkbox { display: inline-flex; align-items: center; gap: 8px; font-weight: 400; }
.woocommerce form .form-row .required { color: var(--gb-sale); text-decoration: none; border: 0; }
.woocommerce form .input-text, .woocommerce form select, .woocommerce form textarea, .woocommerce .quantity .qty,
.woocommerce-cart table.cart td.actions .coupon .input-text, #reviews textarea, #reviews input[type="text"], #reviews input[type="email"] {
	width: 100%; min-height: 48px; padding: 11px 14px;
	background: var(--gb-bg); color: var(--gb-text);
	border: 1px solid var(--gb-line-strong); border-radius: var(--gb-radius);
}
.woocommerce form textarea { min-height: 120px; }
.woocommerce form .input-text:focus, .woocommerce form select:focus, .woocommerce form textarea:focus, .woocommerce .quantity .qty:focus { outline: none; border-color: var(--gb-text); box-shadow: 0 0 0 1px var(--gb-text); }
.woocommerce form .form-row-first, .woocommerce form .form-row-last { width: 100%; }
@media (min-width: 640px) {
	.woocommerce form .form-row-first, .woocommerce form .form-row-last { display: inline-block; width: calc(50% - 8px); vertical-align: top; }
	.woocommerce form .form-row-first { margin-right: 12px; }
}
.woocommerce .password-input { position: relative; display: block; }
.woocommerce .show-password-input { position: absolute; top: 50%; right: 6px; width: 38px; height: 38px; padding: 0; transform: translateY(-50%); background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23555' stroke-width='1.6'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12Z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") no-repeat center; border: 0; cursor: pointer; }
.woocommerce .show-password-input.display-password { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23555' stroke-width='1.6'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12Z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M3 3l18 18'/%3E%3C/svg%3E"); }

/* Note en étoiles (police d'icônes de WooCommerce non chargée) */
.star-rating { position: relative; display: inline-block; width: 5.6em; height: 1.1em; overflow: hidden; font-size: .95rem; line-height: 1.1; letter-spacing: .12em; }
.star-rating::before { content: "★★★★★"; position: absolute; top: 0; left: 0; color: var(--gb-line-strong); }
.star-rating span { position: absolute; top: 0; left: 0; height: 100%; overflow: hidden; padding-top: 1.5em; }
.star-rating span::before { content: "★★★★★"; position: absolute; top: 0; left: 0; color: var(--gb-star); }
p.stars { margin: 0 0 16px; }
p.stars a { position: relative; display: inline-block; width: 1.4em; height: 1.4em; text-indent: -999em; text-decoration: none; font-size: 1.4rem; }
p.stars a::before { content: "☆"; position: absolute; top: 0; left: 0; width: 1em; text-indent: 0; line-height: 1; color: var(--gb-star); }
p.stars:hover a::before, p.stars.selected a.active::before, p.stars.selected a:not(.active)::before { content: "★"; }
p.stars:hover a:hover ~ a::before, p.stars.selected a.active ~ a::before { content: "☆"; }

/* --- Fiche produit -------------------------------------------------------------------------------- */
.single-product div.product { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px clamp(32px, 5vw, 72px); padding-top: 20px; }
@media (min-width: 900px) {
	.single-product div.product { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); padding-top: 28px; }
	.single-product div.product .summary { position: sticky; top: calc(var(--gb-header-h) + 24px); align-self: start; }
	.admin-bar.single-product div.product .summary { top: calc(var(--gb-header-h) + 56px); }
}
.single-product div.product > .onsale { position: absolute; top: 34px; left: 14px; z-index: 3; }
.single-product div.product .woocommerce-tabs, .single-product div.product .related, .single-product div.product .upsells { grid-column: 1 / -1; }

.woocommerce-product-gallery { position: relative; opacity: 1 !important; margin: 0; }
.woocommerce-product-gallery__wrapper { display: flex; gap: 10px; margin: 0; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.woocommerce-product-gallery__wrapper::-webkit-scrollbar { display: none; }
.woocommerce-product-gallery__image { flex: 0 0 88%; scroll-snap-align: start; border-radius: var(--gb-radius); overflow: hidden; background: var(--gb-surface); }
.woocommerce-product-gallery__image:only-child { flex-basis: 100%; }
.woocommerce-product-gallery__image a { display: block; cursor: zoom-in; }
.woocommerce-product-gallery__image img { width: 100%; height: auto; }
@media (min-width: 900px) {
	.woocommerce-product-gallery__wrapper { display: grid; grid-template-columns: 1fr 1fr; overflow: visible; }
	.woocommerce-product-gallery__image:first-child, .woocommerce-product-gallery__image:only-child { grid-column: 1 / -1; }
}
.woocommerce-product-gallery__trigger { display: none; }

.summary .product_title { margin: 0 0 10px; font-size: calc(clamp(1.75rem, 1.4rem + 1.2vw, 2.4rem) * var(--gb-heading-scale)); }
.summary .woocommerce-product-rating { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; font-size: .875rem; }
.summary .woocommerce-review-link { color: var(--gb-muted); }
.summary .price { margin: 0 0 20px; font-size: 1.375rem; }
.summary .price ins { font-weight: 600; }
.summary .woocommerce-product-details__short-description { margin-bottom: 24px; color: color-mix(in srgb, var(--gb-text) 85%, var(--gb-bg)); }
.summary .stock { margin: 0 0 14px; font-size: .875rem; font-weight: 600; }
.summary .stock.in-stock { color: var(--gb-success); }
.summary .stock.out-of-stock { color: var(--gb-sale); }

form.cart { margin: 0 0 24px; }
form.cart:not(.variations_form), .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: 10px; }
table.variations { width: 100%; margin: 0 0 8px; border-collapse: collapse; }
table.variations tr { display: block; margin-bottom: 16px; }
table.variations th, table.variations td { display: block; padding: 0; text-align: left; }
table.variations th.label { padding-bottom: 6px; font-size: .875rem; font-weight: 600; }
table.variations select { width: 100%; min-height: 48px; padding: 0 40px 0 14px; border: 1px solid var(--gb-line-strong); border-radius: var(--gb-radius); background: var(--gb-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23666' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 14px center; appearance: none; }
.reset_variations { display: inline-block; margin-top: 8px; font-size: .8125rem; color: var(--gb-muted); }
.single_variation_wrap .woocommerce-variation { margin-bottom: 14px; }
.single_variation_wrap .woocommerce-variation-price .price { margin-bottom: 4px; }
.quantity { flex: none; }
.quantity .qty { width: 84px !important; min-height: 52px !important; text-align: center; -moz-appearance: textfield; }
.single_add_to_cart_button { flex: 1 1 200px; min-height: 52px !important; font-size: 1rem !important; }
.product_meta { display: grid; gap: 4px; padding-top: 18px; border-top: 1px solid var(--gb-line); font-size: .8125rem; color: var(--gb-muted); }
.product_meta a { color: inherit; }
.gb-reassurance { display: grid; gap: 10px; margin: 0 0 24px; padding: 18px 0 0; list-style: none; border-top: 1px solid var(--gb-line); font-size: .9375rem; }
.gb-reassurance li { display: flex; align-items: center; gap: 10px; }

.woocommerce-tabs { margin-top: clamp(24px, 5vw, 56px); }
.woocommerce-tabs ul.tabs { display: flex; gap: 28px; margin: 0 0 28px; padding: 0; list-style: none; overflow-x: auto; border-bottom: 1px solid var(--gb-line); scrollbar-width: none; }
.woocommerce-tabs ul.tabs li { margin: 0; }
.woocommerce-tabs ul.tabs a { display: block; padding: 14px 0; color: var(--gb-muted); font-weight: 600; white-space: nowrap; text-decoration: none; }
.woocommerce-tabs ul.tabs li.active a { color: var(--gb-text); box-shadow: inset 0 -2px 0 currentColor; }
.woocommerce-Tabs-panel { max-width: 760px; }
.woocommerce-Tabs-panel > h2:first-child { display: none; }
.woocommerce-product-attributes { width: 100%; border-collapse: collapse; }
.woocommerce-product-attributes th, .woocommerce-product-attributes td { padding: 12px 0; border-bottom: 1px solid var(--gb-line); text-align: left; vertical-align: top; }
.woocommerce-product-attributes th { width: 34%; font-weight: 600; }
.woocommerce-product-attributes td p { margin: 0; }
#reviews .commentlist { margin: 0 0 32px; padding: 0; list-style: none; }
#reviews .commentlist li { padding: 18px 0; border-bottom: 1px solid var(--gb-line); }
#reviews .comment_container { display: grid; grid-template-columns: 44px 1fr; gap: 14px; }
#reviews .avatar { border-radius: 50%; }
#reviews .meta { margin: 4px 0 6px; font-size: .8125rem; color: var(--gb-muted); }
#review_form .comment-reply-title { display: block; margin-bottom: 12px; font-weight: 600; font-size: 1.125rem; }
#review_form .comment-form > p { margin-bottom: 14px; }
#review_form label { display: block; margin-bottom: 6px; font-weight: 600; font-size: .875rem; }
.related > h2, .upsells > h2 { margin: clamp(48px, 7vw, 88px) 0 28px; font-size: calc(1.75rem * var(--gb-heading-scale)); }

/* --- Panier et commande (blocs WooCommerce) ------------------------------------------------------ */
.wc-block-components-button:not(.is-link), .wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button {
	min-height: 52px;
	background: var(--gb-accent) !important; color: var(--gb-on-accent) !important;
	border-radius: var(--gb-btn-radius) !important;
	font-weight: 600;
}
.wc-block-components-button:not(.is-link):hover { background: color-mix(in srgb, var(--gb-accent) 86%, var(--gb-on-accent)) !important; }
.wc-block-components-text-input input, .wc-block-components-combobox .wc-block-components-combobox-control input, .wc-blocks-components-select select, .wc-block-components-textarea { border-radius: var(--gb-radius) !important; }
.wc-block-components-sidebar-layout { margin-top: 8px; }
.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout { font-family: var(--gb-font-body); }

/* Panier et commande classiques (code court) */
.woocommerce table.shop_table { width: 100%; margin: 0 0 32px; border-collapse: collapse; font-size: .9375rem; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: 14px 10px; border-bottom: 1px solid var(--gb-line); text-align: left; vertical-align: middle; }
.woocommerce table.shop_table .product-thumbnail img { width: 72px; border-radius: var(--gb-radius); }
.woocommerce table.shop_table .product-remove a { font-size: 1.3rem; text-decoration: none; }
.woocommerce .cart-collaterals .cart_totals { max-width: 460px; margin-left: auto; }
.woocommerce .col2-set { display: grid; gap: 32px; }
@media (min-width: 900px) { .woocommerce .col2-set { grid-template-columns: 1fr 1fr; } }
#payment ul.payment_methods { margin: 0 0 20px; padding: 0; list-style: none; }
#payment ul.payment_methods li { padding: 14px 0; border-bottom: 1px solid var(--gb-line); }
#payment .payment_box { margin-top: 10px; padding: 14px; background: var(--gb-surface); border-radius: var(--gb-radius); font-size: .875rem; }
#place_order { width: 100%; min-height: 56px; font-size: 1.0625rem; }
.woocommerce-terms-and-conditions-wrapper { margin: 16px 0; font-size: .875rem; }

/* --- Compte client ------------------------------------------------------------------------------- */
.woocommerce-account .gb-prose > .woocommerce { display: grid; gap: 32px; }
@media (min-width: 900px) { .woocommerce-account.logged-in .gb-prose > .woocommerce { grid-template-columns: 230px minmax(0, 1fr); gap: 56px; } }
.woocommerce-MyAccount-navigation ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 2px; }
.woocommerce-MyAccount-navigation a { display: block; padding: 10px 14px; border-radius: var(--gb-radius); text-decoration: none; }
.woocommerce-MyAccount-navigation a:hover { background: var(--gb-surface); }
.woocommerce-MyAccount-navigation .is-active a { background: var(--gb-surface); font-weight: 600; }
.woocommerce-account .woocommerce-form-login, .woocommerce-account .woocommerce-form-register { max-width: 460px; }
.woocommerce-account .u-columns { display: grid; gap: 48px; }
@media (min-width: 900px) { .woocommerce-account .u-columns { grid-template-columns: 1fr 1fr; } }
.woocommerce-orders-table .button, .woocommerce-account .woocommerce-Address .edit { min-height: 36px; padding: 0 14px; font-size: .8125rem; }
.woocommerce-order-overview { display: grid; gap: 10px; margin: 0 0 32px; padding: 20px; background: var(--gb-surface); border-radius: var(--gb-radius-lg); list-style: none; }
@media (min-width: 760px) { .woocommerce-order-overview { grid-template-columns: repeat(4, 1fr); } }
.woocommerce-order-overview strong { display: block; }

/* Alerte de retour en stock (Globalize Studio) */
.gstudio-stock-alert { margin: 0 0 24px; padding: 18px; border: 1px solid var(--gb-line); border-radius: var(--gb-radius-lg); background: var(--gb-surface); }
.gstudio-stock-alert[hidden] { display: none; }
.gstudio-stock-alert__title { margin: 0 0 10px; }
.gstudio-stock-alert__row { display: flex; flex-wrap: wrap; gap: 8px; }
.gstudio-stock-alert__row[hidden] { display: none; }
.gstudio-stock-alert__row input[type="email"] { flex: 1 1 200px; min-height: 48px; padding: 11px 14px; border: 1px solid var(--gb-line-strong); border-radius: var(--gb-radius); background: var(--gb-bg); }
.gstudio-stock-alert__msg { margin: 8px 0 0; font-weight: 600; }
.gstudio-stock-alert__msg:empty { display: none; }
.gstudio-stock-alert__privacy { margin: 8px 0 0; font-size: .8125rem; color: var(--gb-muted); }
