/**
 * WooCommerce styles — loaded only on shop pages.
 * Uses design tokens from theme.json via CSS custom properties.
 */

/* ===== Product grid ===== */
.wc-block-grid__products,
.wc-block-product-template,
.products {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: var(--wp--preset--spacing--40);
	list-style: none;
	padding: 0;
}

@media (max-width: 600px) {
	.wc-block-grid__products,
	.wc-block-product-template,
	.products {
		grid-template-columns: repeat(2, 1fr);
		gap: var(--wp--preset--spacing--20);
	}
}

/* ===== Product card ===== */
.wc-block-grid__product,
.wc-block-product,
.products .product {
	box-sizing: border-box;
	background: var(--wp--preset--color--white);
	border: 1px solid #e2e8f0;
	border-radius: var(--wp--custom--border-radius--card);
	padding: 1.25rem;
	box-shadow: var(--wp--custom--shadow--card, 0 1px 2px rgba(16,24,40,.06), 0 1px 3px rgba(16,24,40,.1));
	transition: box-shadow var(--wp--custom--transition--fast), transform var(--wp--custom--transition--fast);
}

.wc-block-grid__product *,
.wc-block-product *,
.products .product * {
	box-sizing: border-box;
}

.wc-block-grid__product:hover,
.wc-block-product:hover,
.products .product:hover {
	box-shadow: var(--wp--custom--shadow--card-hover);
	transform: translateY(-2px);
}

/* Product title: navy, not link blue — must also target the <a> inside */
.wc-block-grid__product .wc-block-grid__product-title,
.products .product .woocommerce-loop-product__title,
.wc-block-product .wp-block-post-title,
.wc-block-product .wp-block-post-title a {
	color: var(--wp--preset--color--primary);
	text-decoration: none;
}

/* Price emphasis */
.wc-block-grid__product .wc-block-grid__product-price,
.wc-block-product .wc-block-components-product-price,
.products .product .price {
	color: var(--wp--preset--color--accent, #2c7a7b);
	font-weight: 700;
	font-size: var(--wp--preset--font-size--large);
}

/* Button alignment */
.wc-block-grid__product .wp-block-button,
.wc-block-product .wp-block-button,
.products .product .button {
	text-align: left;
}

/* ===== Product gallery ===== */
/* Force opacity:1 — wc-single-product.js not loaded (no slider/lightbox/zoom).
   !important overrides the inline style="opacity:0" set by WC template.
   transition:none prevents the 250ms fade-in delay. */
.woocommerce-product-gallery {
	opacity: 1 !important;
	transition: none !important;
	margin-bottom: var(--wp--preset--spacing--30);
}

.woocommerce-product-gallery__wrapper {
	background: var(--wp--preset--color--surface);
	border-radius: var(--wp--custom--border-radius--card);
}
.woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image {
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--wp--preset--color--surface, #f7fafc);
}
.woocommerce-product-gallery__image img {
	object-fit: contain !important;
	max-height: 500px;
	width: auto !important;
	height: auto !important;
}
/* FlexSlider thumbnail nav */
.woocommerce-product-gallery .flex-control-thumbs {
	display: flex;
	gap: 0.5rem;
	margin-top: 0.5rem;
	list-style: none;
	padding: 0;
}
.woocommerce-product-gallery .flex-control-thumbs li {
	flex: 0 0 60px;
}
.woocommerce-product-gallery .flex-control-thumbs li img {
	border-radius: 4px;
	border: 2px solid transparent;
	cursor: pointer;
	opacity: 0.6;
	transition: opacity 0.2s, border-color 0.2s;
}
.woocommerce-product-gallery .flex-control-thumbs li img:hover,
.woocommerce-product-gallery .flex-control-thumbs li img.flex-active {
	opacity: 1;
	border-color: var(--wp--preset--color--accent, #2c7a7b);
}

.woocommerce-product-gallery__image img {
	border-radius: var(--wp--custom--border-radius--card);
	width: 100%;
	height: 100%;
	object-fit: cover;
	box-sizing: border-box;
}

/* Placeholder image in product CARDS (grids, collections): dimmed */
img.wc-block-components-product-image__image[src*="woocommerce-placeholder"],
.wc-block-product img[src*="woocommerce-placeholder"] {
	object-fit: contain !important;
	background: var(--wp--preset--color--surface, #F7FAFC);
	padding: 2rem;
	box-sizing: border-box;
	opacity: 0.35;
}

/* Placeholder image in single product GALLERY: full opacity, visible */
.woocommerce-product-gallery__image img[src*="woocommerce-placeholder"],
.woocommerce-product-gallery__image--placeholder img[src*="woocommerce-placeholder"] {
	object-fit: contain !important;
	background: var(--wp--preset--color--surface, #F7FAFC);
	padding: 2rem;
	box-sizing: border-box;
	opacity: 1;
}

/* Gallery mobile: horizontal scroll snap */
@media (max-width: 782px) {
	.woocommerce-product-gallery__wrapper {
		display: flex;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		-ms-overflow-style: none;
		scrollbar-width: none;
	}
	.woocommerce-product-gallery__wrapper::-webkit-scrollbar {
		display: none;
	}
	.woocommerce-product-gallery__image {
		flex: 0 0 100%;
		scroll-snap-align: start;
	}
}

/* ===== Quantity selector ===== */
div.wc-block-add-to-cart-form .wc-block-components-quantity-selector.quantity,
.wp-block-woocommerce-add-to-cart-form .wc-block-components-quantity-selector,
.wc-block-components-quantity-selector {
	border: 2px solid #1a365d !important;
	border-radius: 6px !important;
	background: #fff !important;
}
div.wc-block-add-to-cart-form .wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input,
.wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input {
	font-size: 1rem !important;
	font-weight: 600 !important;
	color: #1a365d !important;
}
div.wc-block-add-to-cart-form .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button,
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button {
	opacity: 0.8 !important;
	font-weight: 700 !important;
	color: #1a365d !important;
}
div.wc-block-add-to-cart-form .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:hover,
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:hover {
	opacity: 1 !important;
	background: #f7fafc !important;
}
/* Fallback for classic .qty input */
.woocommerce .quantity .qty {
	border: 2px solid #1a365d;
	border-radius: 6px;
	padding: 0.5rem;
	font-size: 1rem;
	font-weight: 600;
	text-align: center;
	width: 4em;
}

/* ===== Price ===== */
.woocommerce .price,
.wc-block-components-product-price {
	color: var(--wp--preset--color--primary);
	font-weight: 700;
	font-size: var(--wp--preset--font-size--large);
}

.woocommerce .price del {
	color: var(--wp--preset--color--muted);
	font-weight: 400;
}

/* ===== Add to cart button ===== */
.woocommerce .button,
.wc-block-grid__product .wp-block-button__link,
.add_to_cart_button,
.single_add_to_cart_button {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--white);
	border: none;
	border-radius: var(--wp--custom--border-radius--button);
	padding: 0.75rem 1.5rem;
	font-weight: 600;
	font-size: 1rem;
	cursor: pointer;
	transition: background var(--wp--custom--transition--fast);
	text-decoration: none;
	display: inline-block;
	text-align: center;
}

.woocommerce .button:hover,
.add_to_cart_button:hover,
.single_add_to_cart_button:hover {
	background: var(--wp--preset--color--accent-hover, #285E61);
	color: var(--wp--preset--color--white);
}

/* ===== Quantity input ===== */
.woocommerce .quantity .qty {
	border: 1px solid var(--wp--preset--color--surface);
	border-radius: var(--wp--custom--border-radius--badge);
	padding: 0.5rem;
	width: 60px;
	text-align: center;
}

/* ===== Section navigation (sticky anchors) ===== */
.od-section-nav {
	position: sticky;
	top: 0;
	z-index: 10;
	background: var(--wp--preset--color--white);
	border-bottom: 2px solid var(--wp--preset--color--surface);
	padding: 0.75rem 0;
	display: flex;
	gap: var(--wp--preset--spacing--30);
	overflow-x: auto;
	-ms-overflow-style: none;
	scrollbar-width: none;
}

.od-section-nav::-webkit-scrollbar {
	display: none;
}

.od-section-nav a {
	white-space: nowrap;
	text-decoration: none;
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	padding: 0.25rem 0.5rem;
	border-radius: var(--wp--custom--border-radius--badge);
	transition: color var(--wp--custom--transition--fast), background var(--wp--custom--transition--fast);
}

.od-section-nav a:hover,
.od-section-nav a.is-active {
	color: var(--wp--preset--color--primary);
	background: var(--wp--preset--color--surface);
}

/* ===== Product sections (stacked) ===== */
.od-product-section {
	scroll-margin-top: 4rem;
	padding: var(--wp--preset--spacing--50) 0;
	border-bottom: 1px solid var(--wp--preset--color--surface);
}

.od-product-section:last-child {
	border-bottom: none;
}

.od-product-section:empty,
.od-product-section:has(:only-child:empty) {
	display: none;
}

.od-product-section h2 {
	font-size: clamp(1.25rem, 2.5vw, 1.5rem);
	color: var(--wp--preset--color--primary);
	margin-bottom: var(--wp--preset--spacing--30);
}

/* ===== Pack upsell card ===== */
.od-pack-card {
	background: var(--wp--preset--color--surface);
	border-radius: var(--wp--custom--border-radius--card);
	padding: 1.25rem;
	margin-top: 1.5rem;
}

.od-pack-card p {
	margin: 0 0 0.5rem;
}

.od-pack-card .od-pack-title {
	font-weight: 700;
	color: var(--wp--preset--color--primary);
}

.od-pack-card .od-pack-desc {
	font-size: 0.9rem;
	color: var(--wp--preset--color--muted);
	margin-bottom: 0.75rem;
}

/* ===== Specs list ===== */
.od-specs {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	margin: 1rem 0;
	list-style: none;
	padding: 0;
}

.od-specs li {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.9rem;
	color: var(--wp--preset--color--dark);
}

.od-specs li svg {
	flex-shrink: 0;
	color: var(--wp--preset--color--success);
}

/* ===== Sticky bar mobile ===== */
.od-sticky-bar {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 100;
	background: var(--wp--preset--color--white);
	box-shadow: var(--wp--custom--shadow--sticky-bar);
	padding: 0.75rem var(--wp--preset--spacing--30);
	display: none;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.od-sticky-bar.is-visible {
	display: flex;
}

.od-sticky-bar .od-sticky-price {
	font-weight: 700;
	font-size: var(--wp--preset--font-size--large);
	color: var(--wp--preset--color--primary);
}

.od-sticky-bar .od-sticky-btn {
	background: var(--wp--preset--color--secondary);
	color: var(--wp--preset--color--white);
	border: none;
	border-radius: var(--wp--custom--border-radius--button);
	padding: 0.6rem 1.25rem;
	font-weight: 600;
	font-size: 0.875rem;
	cursor: pointer;
	text-decoration: none;
	white-space: nowrap;
	transition: background var(--wp--custom--transition--fast);
}

.od-sticky-bar .od-sticky-btn:hover {
	background: var(--wp--preset--color--primary);
}

@media (min-width: 783px) {
	.od-sticky-bar {
		display: none !important;
	}
}

/* ===== Related products ===== */
.od-related-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 1.25rem;
}
.od-related-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid #e2e8f0;
	border-radius: 10px;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	transition: box-shadow 0.2s, transform 0.2s;
}
.od-related-card:hover {
	box-shadow: 0 4px 16px rgba(0,0,0,0.1);
	transform: translateY(-2px);
}
.od-related-card__img {
	background: var(--wp--preset--color--surface, #f7fafc);
	padding: 1rem;
	display: flex;
	align-items: center;
	justify-content: center;
}
.od-related-card__img img {
	width: 100%;
	max-height: 180px;
	object-fit: contain;
	border-radius: 6px;
}
.od-related-card__info {
	padding: 0.75rem 1rem 1rem;
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}
.od-related-card__name {
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--wp--preset--color--primary, #1a365d);
	line-height: 1.3;
}
.od-related-card__price {
	font-size: 1rem;
	font-weight: 700;
	color: var(--wp--preset--color--accent, #2c7a7b);
}
@media (max-width: 600px) {
	.od-related-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 0.75rem;
	}
	.od-related-card__img { padding: 0.75rem; }
	.od-related-card__img img { max-height: 120px; }
	.od-related-card__info { padding: 0.5rem 0.75rem 0.75rem; }
}

/* ===== Breadcrumbs ===== */
.woocommerce-breadcrumb {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
	margin-bottom: var(--wp--preset--spacing--20);
}

.woocommerce-breadcrumb a {
	color: var(--wp--preset--color--secondary);
	text-decoration: none;
}

/* ===== Specs table ===== */
.od-specs-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9rem;
}

.od-specs-table th,
.od-specs-table td {
	padding: 0.5rem 0.75rem;
	text-align: left;
	border-bottom: 1px solid var(--wp--preset--color--surface);
}

.od-specs-table th {
	font-weight: 600;
	color: var(--wp--preset--color--primary);
	width: 40%;
}

/* ===== FAQ details ===== */
.od-product-section details {
	border-bottom: 1px solid #e2e8f0;
	padding: 0.75rem 0;
}

.od-product-section details:last-child {
	border-bottom: none;
}

.od-product-section summary {
	cursor: pointer;
	font-weight: 600;
	color: var(--wp--preset--color--primary);
}

.od-product-section details p {
	margin: 0.5rem 0 0;
	color: var(--wp--preset--color--muted);
	font-size: 0.9rem;
	line-height: 1.6;
}

/* ===== Notices ===== */
.woocommerce-message,
.woocommerce-info {
	background: var(--wp--preset--color--surface);
	border-left: 4px solid var(--wp--preset--color--secondary);
	padding: var(--wp--preset--spacing--30);
	margin-bottom: var(--wp--preset--spacing--30);
	border-radius: var(--wp--custom--border-radius--badge);
}

.woocommerce-error {
	background: #fff5f5;
	border-left: 4px solid #e53e3e;
	padding: var(--wp--preset--spacing--30);
	margin-bottom: var(--wp--preset--spacing--30);
	border-radius: var(--wp--custom--border-radius--badge);
}

/* ===== Reviews section ===== */
.od-reviews-summary {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: var(--wp--preset--spacing--40);
	align-items: start;
	margin-bottom: var(--wp--preset--spacing--40);
	padding-bottom: var(--wp--preset--spacing--30);
	border-bottom: 1px solid var(--wp--preset--color--surface);
}

@media (max-width: 600px) {
	.od-reviews-summary {
		grid-template-columns: 1fr;
	}
}

.od-reviews-avg {
	text-align: center;
}

.od-reviews-avg__number {
	display: block;
	font-size: 2.5rem;
	font-weight: 700;
	color: var(--wp--preset--color--primary);
	line-height: 1;
}

.od-reviews-avg__stars {
	display: flex;
	gap: 2px;
	justify-content: center;
	margin: 0.5rem 0 0.25rem;
	color: #ecc94b;
}

.od-reviews-avg__count {
	font-size: 0.85rem;
	color: var(--wp--preset--color--muted);
}

/* Star colors */
.od-star { color: #ecc94b; }
.od-star--empty { color: #cbd5e0; }

/* Distribution bars */
.od-reviews-distribution {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	max-width: 320px;
}

.od-reviews-bar {
	display: grid;
	grid-template-columns: 3rem 1fr 2rem;
	gap: 0.5rem;
	align-items: center;
	font-size: 0.85rem;
}

.od-reviews-bar__label {
	text-align: right;
	color: var(--wp--preset--color--muted);
	white-space: nowrap;
}

.od-reviews-bar__track {
	height: 8px;
	background: var(--wp--preset--color--surface);
	border-radius: 4px;
	overflow: hidden;
}

.od-reviews-bar__fill {
	height: 100%;
	background: #ecc94b;
	border-radius: 4px;
	transition: width var(--wp--custom--transition--fast);
}

.od-reviews-bar__count {
	font-size: 0.8rem;
	color: var(--wp--preset--color--muted);
}

/* Individual reviews */
.od-reviews-list {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--30);
}

.od-review {
	padding-bottom: var(--wp--preset--spacing--30);
	border-bottom: 1px solid var(--wp--preset--color--surface);
}

.od-review:last-child {
	border-bottom: none;
}

.od-review__header {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 0.25rem;
}

.od-review__stars {
	display: flex;
	gap: 1px;
	color: #ecc94b;
}

.od-review__date {
	font-size: 0.8rem;
	color: var(--wp--preset--color--muted);
}

.od-review__meta {
	margin-bottom: 0.5rem;
	font-size: 0.9rem;
}

.od-review__author {
	color: var(--wp--preset--color--primary);
}

.od-review__verified {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	font-size: 0.75rem;
	color: var(--wp--preset--color--success);
	font-weight: 500;
}

.od-review__verified::before {
	content: "✓";
}

.od-review__text {
	font-size: 0.9rem;
	line-height: 1.6;
	color: var(--wp--preset--color--dark);
}

.od-review__text p {
	margin: 0;
}

/* Review form */
.od-review-form {
	margin-top: var(--wp--preset--spacing--40);
	padding-top: var(--wp--preset--spacing--30);
	border-top: 1px solid var(--wp--preset--color--surface);
}

.od-review-form h3 {
	font-size: 1.1rem;
	color: var(--wp--preset--color--primary);
	margin-bottom: var(--wp--preset--spacing--30);
}

.od-review-form__form {
	max-width: 480px;
}

.od-review-form__field {
	margin-bottom: var(--wp--preset--spacing--30);
}

.od-review-form__field label,
.od-review-form__rating label {
	display: block;
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--wp--preset--color--primary);
	margin-bottom: 0.35rem;
}

.od-review-form__field label .required,
.od-review-form__rating label .required {
	color: #e53e3e;
}

.od-review-form__field textarea {
	width: 100%;
	border: 1px solid #cbd5e0;
	border-radius: var(--wp--custom--border-radius--button);
	padding: 0.75rem;
	font-family: var(--wp--preset--font-family--system);
	font-size: 0.9rem;
	resize: vertical;
	transition: border-color var(--wp--custom--transition--fast);
	box-sizing: border-box;
}

.od-review-form__field textarea:focus {
	border-color: var(--wp--preset--color--secondary);
	outline: none;
}

/* Star input (clickable) */
.od-star-input {
	display: flex;
	gap: 4px;
	margin-bottom: var(--wp--preset--spacing--20);
}

.od-star-input__radio {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
}

.od-star-input__label {
	cursor: pointer;
	color: #cbd5e0;
	transition: color var(--wp--custom--transition--fast);
}

.od-star-input__label svg {
	display: block;
	fill: currentColor;
	stroke: currentColor;
}

/* Stars highlighted via JS class .is-selected */
.od-star-input__label.is-selected,
.od-star-input__label.is-hovered {
	color: #ecc94b;
}

.od-star-input__radio:focus-visible + .od-star-input__label {
	outline: 2px solid var(--wp--preset--color--secondary);
	outline-offset: 2px;
	border-radius: 2px;
}

.od-review-form__submit {
	background: var(--wp--preset--color--secondary);
	color: var(--wp--preset--color--white);
	border: none;
	border-radius: var(--wp--custom--border-radius--button);
	padding: 0.75rem 1.5rem;
	font-weight: 600;
	font-size: 0.95rem;
	cursor: pointer;
	transition: background var(--wp--custom--transition--fast);
}

.od-review-form__submit:hover {
	background: var(--wp--preset--color--primary);
}

.od-review-form__notice {
	font-size: 0.8rem;
	color: var(--wp--preset--color--muted);
	margin-top: 0.5rem;
}

/* Hide WooCommerce default review elements that might leak through */
.woocommerce-Reviews-title,
.woocommerce-noreviews,
#review_form_wrapper .comment-form-cookies-consent {
	display: none;
}

/* Legacy star rating (fallback) */
.star-rating {
	color: #ecc94b;
	font-size: 0.875rem;
}

/* ===== Sale badge ===== */
.onsale {
	background: var(--wp--preset--color--success);
	color: var(--wp--preset--color--white);
	padding: 0.25rem 0.75rem;
	border-radius: var(--wp--custom--border-radius--badge);
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
}

/* ===== Mobile layout ===== */
@media (max-width: 782px) {
	.wp-block-columns {
		flex-direction: column;
	}
	.wp-block-column {
		flex-basis: 100% !important;
	}
}

/* ===== Single product: full-width add to cart ===== */
.woocommerce div.product form.cart .single_add_to_cart_button,
.woocommerce div.product form.cart .button,
.woocommerce div.product .wp-block-button .wp-block-button__link {
	width: 100%;
	box-sizing: border-box;
}
.woocommerce div.product form.cart {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}
.woocommerce div.product form.cart .single_add_to_cart_button {
	flex: 1 0 100%;
}

/* ===== Buy box reassurance ===== */
.od-reassurance {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.5rem;
	padding: 1rem 0;
	border-top: 1px solid var(--wp--preset--color--border, #E2E8F0);
	margin-top: 0.5rem;
}

.od-reassurance__item {
	display: flex;
	align-items: center;
	gap: 0.35rem;
	font-size: 0.8rem;
	color: var(--wp--preset--color--success);
	font-weight: 500;
}

.od-reassurance__item svg {
	flex-shrink: 0;
}

.od-delivery-info {
	padding: 0.75rem 0;
	border-top: 1px solid var(--wp--preset--color--border, #E2E8F0);
}

.od-delivery-info p {
	margin: 0 0 0.35rem;
	font-size: 0.8rem;
	color: var(--wp--preset--color--muted);
	line-height: 1.5;
}

.od-delivery-info p:last-child {
	margin-bottom: 0;
}

/* ===== Category navigation ===== */
.od-category-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-bottom: var(--wp--preset--spacing--40);
}

.od-category-nav a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 1rem;
	border: 2px solid var(--wp--preset--color--border, #E2E8F0);
	border-radius: var(--wp--custom--border-radius--button);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	color: var(--wp--preset--color--muted);
	text-decoration: none;
	transition: all var(--wp--custom--transition--fast);
	min-height: 44px;
}

.od-category-nav a:hover {
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent);
	background: rgba(44, 122, 123, 0.06);
}

.od-category-nav a:focus-visible {
	outline: 2px solid var(--wp--preset--color--secondary, #2b6cb0);
	outline-offset: 2px;
}

.od-category-nav a.is-active {
	background: var(--wp--preset--color--accent);
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--white);
	font-weight: 700;
	box-shadow: inset 0 -3px 0 rgba(0,0,0,0.15);
}

/* ===== P1-Z: Neutralize WC grid flex-basis/max-width on children (causes 75px cards in desktop) ===== */
/* Specificity must beat all-products.css ".theme-twentytwenty .wc-block-grid.has-4-columns .wc-block-grid__product" (0-3-0) */
.wc-block-grid__products > .wc-block-grid__product {
	max-width: none !important;
	flex-basis: auto !important;
	width: auto;
}

/* ===== Uniform card heights ===== */
.wc-block-product-template,
.wc-block-grid__products {
	align-items: stretch;
}

.wc-block-product,
.wc-block-grid__product,
.products .product {
	display: flex;
	flex-direction: column;
}

/* Title: reserve 2 lines to align prices across cards */
.wc-block-product .wp-block-post-title,
.wc-block-grid__product .wc-block-grid__product-title,
.products .product .woocommerce-loop-product__title {
	min-height: 2.8em;
	line-height: 1.4;
}

/* Push benefit + button + view-product to bottom */
.wc-block-product .od-card-benefit,
.wc-block-product .wc-block-components-product-price,
.wc-block-grid__product .wc-block-grid__product-price {
	margin-top: auto;
}

.wc-block-product .wp-block-button,
.wc-block-grid__product .wp-block-button,
.products .product .button {
	margin-top: 0.5rem;
}

/* ===== Card benefit line ===== */
.od-card-benefit {
	font-size: 0.8rem;
	color: var(--wp--preset--color--success);
	font-weight: 500;
	margin: 0 0 0.5rem;
	line-height: 1.4;
}

/* ===== "Voir le produit" link ===== */
.od-view-product {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	color: var(--wp--preset--color--secondary);
	text-decoration: none;
	margin-top: 0.35rem;
	transition: color var(--wp--custom--transition--fast);
}

.od-view-product:hover {
	color: var(--wp--preset--color--primary);
	text-decoration: underline;
}

/* ===== Hide invisible "Voir le panier" links (WC add-to-cart response) ===== */
.added_to_cart,
.wc-block-components-notice-banner__content a,
a.added_to_cart {
	display: none !important;
}

/* ===== Empty paragraphs in cards ===== */
.wc-block-product p:empty,
.wc-block-grid__product p:empty {
	display: none;
}

/* ===== Cart & checkout ===== */
.wc-block-cart,
.wc-block-checkout {
	font-family: var(--wp--preset--font-family--system);
}

/* ===== Toast notification (add-to-cart feedback) ===== */
.od-cart-toast {
	position: fixed;
	bottom: 1.5rem;
	left: 50%;
	transform: translateX(-50%) translateY(100%);
	background: var(--wp--preset--color--primary, #1a365d);
	color: #fff;
	padding: 0.75rem 1.25rem;
	border-radius: 8px;
	font-size: 0.9rem;
	font-weight: 500;
	z-index: 9999;
	opacity: 0;
	transition: transform 0.3s ease, opacity 0.3s ease;
	pointer-events: none;
	max-width: 90vw;
	text-align: center;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
.od-cart-toast.is-visible {
	transform: translateX(-50%) translateY(0);
	opacity: 1;
	pointer-events: auto;
}
.od-cart-toast a {
	color: #fff;
	text-decoration: underline;
	font-weight: 700;
}
@media (max-width: 782px) {
	body.single-product .od-cart-toast {
		bottom: 5rem;
	}
}

/* ===== Franco progress bar (cart page) ===== */
.od-franco-bar {
	margin-bottom: 1.5rem;
	padding: 1rem 1.25rem;
	background: var(--wp--preset--color--surface, #F7FAFC);
	border-radius: 8px;
}
.od-franco-text {
	margin: 0 0 0.5rem;
	font-size: 0.9rem;
	color: var(--wp--preset--color--primary, #1a365d);
}
.od-franco-text--ok {
	color: var(--wp--preset--color--success, #38a169);
	font-weight: 600;
	display: flex;
	align-items: center;
	gap: 0.35rem;
}
.od-franco-track {
	height: 6px;
	background: #e2e8f0;
	border-radius: 3px;
	overflow: hidden;
}
.od-franco-fill {
	height: 100%;
	background: var(--wp--preset--color--accent, #2c7a7b);
	border-radius: 3px;
	transition: width 0.3s ease;
}

/* ===== Checkout: widen order summary on desktop ===== */
@media (min-width: 783px) {
	.wc-block-checkout .wp-block-woocommerce-checkout-totals-block {
		flex-basis: 45%;
		max-width: 45%;
	}
	.wc-block-checkout .wp-block-woocommerce-checkout-fields-block {
		flex-basis: 55%;
		max-width: 55%;
	}
}

/* ===== Checkout reassurance under button ===== */
.od-checkout-reassurance {
	display: flex;
	justify-content: center;
	gap: 1.25rem;
	flex-wrap: wrap;
	margin-top: 0.75rem;
	font-size: 0.8rem;
	color: var(--wp--preset--color--muted, #637085);
}
.od-checkout-reassurance span {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	white-space: nowrap;
}
/* P2-G: On desktop, align reassurance under form fields column (left) */
@media (min-width: 783px) {
	.od-checkout-reassurance {
		max-width: 440px;
		margin-left: 0 !important;
		margin-right: auto !important;
	}
}
