/* ==========================================================================
   WooCommerce — adaptations La Table d'Olivier
   Palette sauge/ivoire/encre · cohérent avec main.css
   Chargé uniquement sur les pages WC (cf. lto_enqueue_assets)
   ========================================================================== */

/* ==========================================================================
   PAGE BOUTIQUE — Grille de catégories (familles de produits)
   Override : woocommerce/archive-product.php
   ========================================================================== */

.lto-shop-intro {
	max-width: 760px;
	margin: 0 auto 4rem;
	padding: 4rem 1.5rem 0;
	text-align: center;
}
.lto-shop-intro .eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	color: var(--ink-light);
	font-family: 'Inter', sans-serif;
	font-size: 0.8rem;
	letter-spacing: 0.25em;
	text-transform: uppercase;
	font-weight: 400;
	margin-bottom: 1.5rem;
}
.lto-shop-intro .eyebrow::before,
.lto-shop-intro .eyebrow::after {
	content: '';
	width: 32px;
	height: 1px;
	background: var(--sage);
}
.lto-shop-title {
	font-family: 'Cormorant Garamond', serif;
	font-weight: 400;
	font-size: clamp(2.5rem, 5vw, 4rem);
	line-height: 1.1;
	color: var(--ink);
	margin: 0 0 1.5rem;
	letter-spacing: -0.01em;
}
.lto-shop-title em {
	color: var(--sage);
	font-style: italic;
}
.lto-shop-tagline {
	color: var(--ink-soft);
	font-size: 1.05rem;
	line-height: 1.7;
	max-width: 600px;
	margin: 0 auto;
}

.lto-cat-grid {
	max-width: 1280px;
	margin: 0 auto 5rem;
	padding: 0 1.5rem;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
	gap: 2rem;
}

.lto-cat-card {
	display: flex;
	flex-direction: column;
	background: var(--paper);
	border: 1px solid var(--paper-warm);
	text-decoration: none;
	color: inherit;
	transition: border-color .3s, transform .3s, box-shadow .3s;
	overflow: hidden;
}
.lto-cat-card:hover {
	border-color: var(--sage);
	transform: translateY(-3px);
	box-shadow: 0 12px 28px rgba(26, 29, 26, 0.08);
}

.lto-cat-card-image {
	aspect-ratio: 4/3;
	overflow: hidden;
	background: var(--ivory);
}
.lto-cat-card-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .6s ease-out;
}
.lto-cat-card:hover .lto-cat-card-image img {
	transform: scale(1.04);
}

.lto-cat-card-body {
	padding: 1.75rem 1.75rem 2rem;
	flex: 1;
	display: flex;
	flex-direction: column;
}

.lto-cat-card-count {
	color: var(--ink-light);
	font-family: 'Inter', sans-serif;
	font-size: 0.75rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	margin-bottom: 0.75rem;
}

.lto-cat-card-title {
	font-family: 'Cormorant Garamond', serif;
	font-weight: 400;
	font-size: 1.85rem;
	color: var(--ink);
	margin: 0 0 0.85rem;
	letter-spacing: -0.005em;
	line-height: 1.15;
}

.lto-cat-card-desc {
	color: var(--ink-soft);
	font-size: 0.95rem;
	line-height: 1.65;
	margin: 0 0 1.5rem;
	flex: 1;
}

.lto-cat-card-cta {
	color: var(--moss);
	font-family: 'Inter', sans-serif;
	font-size: 0.85rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	font-weight: 500;
	border-bottom: 1px solid transparent;
	padding-bottom: 0.25rem;
	align-self: flex-start;
	transition: border-color .25s, color .25s;
}
.lto-cat-card:hover .lto-cat-card-cta {
	border-bottom-color: var(--sage);
	color: var(--ink);
}

@media (max-width: 768px) {
	.lto-cat-grid {
		grid-template-columns: 1fr;
		gap: 1.5rem;
		padding: 0 1rem 4rem;
	}
	.lto-cat-card-body { padding: 1.5rem; }
	.lto-cat-card-title { font-size: 1.6rem; }
}


/* ---------- Conteneurs WC ---------- */
.woocommerce,
.woocommerce-page {
	color: var(--ink);
	font-family: 'Inter', system-ui, sans-serif;
}

.woocommerce .woocommerce-breadcrumb {
	color: var(--ink-light);
	font-size: 0.85rem;
	letter-spacing: 0.04em;
	margin-bottom: 2.5rem;
	font-family: 'Inter', sans-serif;
}
.woocommerce .woocommerce-breadcrumb a {
	color: var(--ink-light);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: border-color .2s, color .2s;
}
.woocommerce .woocommerce-breadcrumb a:hover {
	color: var(--moss);
	border-bottom-color: var(--sage);
}

/* ---------- Titres ---------- */
.woocommerce-products-header__title,
.woocommerce h1,
.woocommerce h2.woocommerce-loop-product__title,
.woocommerce-page h1 {
	font-family: 'Cormorant Garamond', serif;
	font-weight: 400;
	color: var(--ink);
	letter-spacing: -0.01em;
}
.woocommerce-products-header__title { font-size: clamp(2.2rem, 4vw, 3.5rem); margin: 0 0 2rem; }
.woocommerce h2.woocommerce-loop-product__title {
	font-size: 1.25rem;
	font-weight: 400;
	margin: 0.8rem 0 0.4rem;
	line-height: 1.3;
}

/* ---------- Grille produits ---------- */
.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 2.5rem;
	padding: 0;
	margin: 2rem 0;
	list-style: none;
}
.woocommerce ul.products li.product {
	width: 100%;
	margin: 0;
	padding: 0;
	float: none;
	text-align: left;
	background: var(--paper);
	padding: 1.5rem;
	border: 1px solid var(--paper-warm);
	transition: border-color .25s, transform .25s;
}
.woocommerce ul.products li.product:hover {
	border-color: var(--sage);
	transform: translateY(-2px);
}
.woocommerce ul.products li.product a img {
	margin: 0 0 1rem;
	box-shadow: none;
	aspect-ratio: 4/5;
	object-fit: cover;
}
.woocommerce ul.products li.product .price {
	color: var(--moss);
	font-size: 1.1rem;
	font-weight: 500;
	font-family: 'Inter', sans-serif;
}
.woocommerce ul.products li.product .price del {
	color: var(--ink-light);
	opacity: 0.6;
	margin-right: 0.5rem;
}
.woocommerce ul.products li.product .price ins {
	background: transparent;
	color: var(--moss);
	font-weight: 600;
	text-decoration: none;
}

/* ---------- Boutons (panier, ajouter, etc.) ---------- */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce #content input.button,
.woocommerce-page a.button,
.woocommerce-page button.button,
.woocommerce-page input.button,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce-page a.button.alt {
	background: var(--moss);
	color: var(--ivory);
	border: 1px solid var(--moss);
	padding: 0.85rem 1.8rem;
	font-family: 'Inter', sans-serif;
	font-weight: 400;
	font-size: 0.85rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	border-radius: 0;
	text-decoration: none;
	transition: background .2s, color .2s, border-color .2s;
	cursor: pointer;
	box-shadow: none;
	text-shadow: none;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover {
	background: var(--ink);
	border-color: var(--ink);
	color: var(--ivory);
}

/* Bouton secondaire / discret (continuer mes achats, etc.) */
.woocommerce .button.wc-backward,
.woocommerce-cart .return-to-shop .button {
	background: transparent;
	color: var(--moss);
	border: 1px solid var(--sage);
}
.woocommerce .button.wc-backward:hover,
.woocommerce-cart .return-to-shop .button:hover {
	background: var(--sage);
	color: var(--ivory);
}

/* ---------- Single product ---------- */
.woocommerce div.product {
	margin-top: 2rem;
}
.woocommerce div.product .product_title {
	font-family: 'Cormorant Garamond', serif;
	font-weight: 400;
	font-size: clamp(2rem, 3.5vw, 3rem);
	color: var(--ink);
	margin-bottom: 1rem;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	color: var(--moss);
	font-family: 'Inter', sans-serif;
	font-size: 1.5rem;
	font-weight: 500;
	margin: 0 0 1.5rem;
}
.woocommerce div.product .woocommerce-product-details__short-description {
	color: var(--ink-soft);
	line-height: 1.7;
	font-size: 1rem;
}
.woocommerce div.product .product_meta {
	color: var(--ink-light);
	font-size: 0.85rem;
	border-top: 1px solid var(--paper-warm);
	padding-top: 1.5rem;
	margin-top: 2rem;
}

/* Onglets (description, avis…) */
.woocommerce div.product .woocommerce-tabs ul.tabs {
	padding: 0;
	margin: 2.5rem 0 0;
	border-bottom: 1px solid var(--paper-warm);
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: transparent;
	border: none;
	border-radius: 0;
	padding: 0;
	margin: 0 2rem 0 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	color: var(--ink-light);
	font-family: 'Inter', sans-serif;
	font-size: 0.85rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	padding: 1rem 0;
	border-bottom: 2px solid transparent;
	transition: color .2s, border-color .2s;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
	color: var(--moss);
	border-bottom-color: var(--sage);
}
.woocommerce div.product .woocommerce-tabs .panel {
	padding: 2rem 0;
	color: var(--ink-soft);
	line-height: 1.7;
}

/* Quantité */
.woocommerce .quantity .qty {
	border: 1px solid var(--paper-warm);
	padding: 0.6rem 0.5rem;
	font-family: 'Inter', sans-serif;
	font-size: 1rem;
	color: var(--ink);
	background: var(--ivory);
	width: 4.5rem;
	border-radius: 0;
	text-align: center;
}
.woocommerce .quantity .qty:focus {
	outline: none;
	border-color: var(--sage);
}

/* ---------- Cart / Checkout ---------- */
.woocommerce table.shop_table {
	border: none;
	border-radius: 0;
	background: transparent;
	border-collapse: collapse;
}
.woocommerce table.shop_table thead {
	background: transparent;
}
.woocommerce table.shop_table thead th {
	background: transparent;
	color: var(--ink-light);
	border-bottom: 1px solid var(--paper-warm);
	font-family: 'Inter', sans-serif;
	font-weight: 400;
	font-size: 0.8rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	padding: 1rem 0.75rem;
}
.woocommerce table.shop_table tbody td {
	background: transparent;
	border-bottom: 1px solid var(--paper-warm);
	padding: 1.25rem 0.75rem;
	font-family: 'Inter', sans-serif;
	color: var(--ink);
}
.woocommerce table.shop_table tbody td.product-name a {
	color: var(--ink);
	text-decoration: none;
	font-weight: 500;
	font-family: 'Cormorant Garamond', serif;
	font-size: 1.1rem;
}
.woocommerce table.shop_table tbody td.product-name a:hover { color: var(--moss); }
.woocommerce table.shop_table tfoot th,
.woocommerce table.shop_table tfoot td {
	background: transparent;
	border-bottom: 1px solid var(--paper-warm);
	font-family: 'Inter', sans-serif;
	color: var(--ink);
	padding: 1rem 0.75rem;
}
.woocommerce table.shop_table tfoot .order-total .amount {
	color: var(--moss);
	font-size: 1.25rem;
	font-weight: 500;
}

/* Coupon / bon-cadeau */
.woocommerce-cart table.cart td.actions .coupon .input-text,
.woocommerce form.checkout_coupon .input-text,
.pwgc-redeem-gift-card-input {
	border: 1px solid var(--paper-warm);
	padding: 0.85rem 1rem;
	font-family: 'Inter', sans-serif;
	font-size: 0.95rem;
	background: var(--ivory);
	color: var(--ink);
	border-radius: 0;
}
.woocommerce-cart table.cart td.actions .coupon .input-text:focus,
.pwgc-redeem-gift-card-input:focus {
	outline: none;
	border-color: var(--sage);
}

/* Cart totals box */
.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-checkout #order_review {
	background: var(--paper);
	padding: 2rem;
	border: 1px solid var(--paper-warm);
}
.woocommerce-cart .cart-collaterals .cart_totals h2,
.woocommerce-checkout #order_review_heading {
	font-family: 'Cormorant Garamond', serif;
	font-weight: 400;
	font-size: 1.75rem;
	color: var(--ink);
	margin: 0 0 1.5rem;
	padding: 0;
	border: none;
}

/* ---------- Formulaire checkout ---------- */
.woocommerce form .form-row label {
	display: block;
	font-family: 'Inter', sans-serif;
	font-size: 0.85rem;
	letter-spacing: 0.05em;
	color: var(--ink-light);
	margin-bottom: 0.5rem;
	font-weight: 400;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page form .form-row input.input-text,
.woocommerce-page form .form-row textarea,
.select2-container--default .select2-selection--single {
	border: 1px solid var(--paper-warm);
	background: var(--ivory);
	padding: 0.85rem 1rem;
	font-family: 'Inter', sans-serif;
	font-size: 1rem;
	color: var(--ink);
	border-radius: 0;
	width: 100%;
	min-height: auto;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
	outline: none;
	border-color: var(--sage);
}
.select2-container--default .select2-selection--single {
	height: auto;
	padding: 0.85rem 1rem;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
	color: var(--ink);
	padding: 0;
	line-height: 1.4;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 100%;
	right: 0.75rem;
}
.select2-dropdown {
	border: 1px solid var(--paper-warm);
	border-radius: 0;
	background: var(--ivory);
}
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[data-selected] {
	background: var(--sage);
	color: var(--ivory);
}

/* Méthodes de livraison (sélection) */
#shipping_method li {
	padding: 0.5rem 0;
	font-size: 0.95rem;
}
#shipping_method li input[type="radio"] {
	margin-right: 0.5rem;
	accent-color: var(--moss);
}

/* Méthodes de paiement (BACS) */
.woocommerce-checkout #payment {
	background: var(--paper);
	border: 1px solid var(--paper-warm);
	border-radius: 0;
}
.woocommerce-checkout #payment ul.payment_methods {
	border-bottom: 1px solid var(--paper-warm);
	padding: 1.5rem;
}
.woocommerce-checkout #payment ul.payment_methods li {
	font-family: 'Inter', sans-serif;
	color: var(--ink);
}
.woocommerce-checkout #payment ul.payment_methods li label {
	font-weight: 500;
	color: var(--ink);
	margin-left: 0.5rem;
}
.woocommerce-checkout #payment div.payment_box {
	background: var(--ivory);
	color: var(--ink-soft);
	border-radius: 0;
	font-size: 0.92rem;
	line-height: 1.6;
}
.woocommerce-checkout #payment div.payment_box::before {
	border-bottom-color: var(--ivory);
}
.woocommerce-checkout #payment div.form-row.place-order {
	padding: 1.5rem;
	background: transparent;
}

/* ---------- Notices (success, error, info) ---------- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-notice {
	background: var(--paper);
	border-top: 3px solid var(--sage);
	color: var(--ink);
	padding: 1.25rem 1.5rem;
	font-family: 'Inter', sans-serif;
	font-size: 0.95rem;
	border-radius: 0;
}
.woocommerce-message::before,
.woocommerce-info::before {
	color: var(--moss);
}
.woocommerce-error {
	border-top-color: #b07a00;
	background: #fff8e6;
}
.woocommerce-error::before { color: #b07a00; }
.woocommerce-message .button,
.woocommerce-info .button {
	padding: 0.5rem 1rem;
	font-size: 0.75rem;
}

/* ---------- My Account ---------- */
.woocommerce-account .woocommerce-MyAccount-navigation ul {
	list-style: none;
	padding: 0;
	margin: 0;
	border: 1px solid var(--paper-warm);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li {
	border-bottom: 1px solid var(--paper-warm);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li:last-child {
	border-bottom: none;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
	display: block;
	padding: 0.85rem 1.25rem;
	color: var(--ink-light);
	text-decoration: none;
	font-family: 'Inter', sans-serif;
	font-size: 0.9rem;
	letter-spacing: 0.04em;
	transition: background .2s, color .2s;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
	background: var(--paper);
	color: var(--moss);
}

/* ---------- Gift cards (PW plugin) ---------- */
.pwgc-redeem-gift-card,
.pwgc-cart-redeem-gift-card {
	background: var(--paper);
	padding: 1.5rem;
	border: 1px solid var(--paper-warm);
	margin: 1.5rem 0;
}
.pwgc-redeem-gift-card label,
.pwgc-cart-redeem-gift-card label {
	font-family: 'Inter', sans-serif;
	font-size: 0.85rem;
	color: var(--ink-light);
	letter-spacing: 0.05em;
	display: block;
	margin-bottom: 0.5rem;
}
.pwgc-applied-gift-card {
	background: rgba(122, 138, 110, 0.1);
	color: var(--moss);
	padding: 0.75rem 1rem;
	border-left: 3px solid var(--sage);
	font-family: 'Inter', sans-serif;
}

/* ---------- Container max-width pour les pages WC ---------- */
.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce,
.woocommerce-account .woocommerce,
.archive.woocommerce-page .woocommerce,
.single-product .woocommerce {
	max-width: 1280px;
	margin: 0 auto;
	padding: 3rem 1.5rem 5rem;
}

/* ---------- Responsive ---------- */
@media (max-width: 768px) {
	.woocommerce ul.products {
		grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
		gap: 1.5rem;
	}
	.woocommerce ul.products li.product { padding: 1rem; }
	.woocommerce-cart .cart-collaterals .cart_totals,
	.woocommerce-checkout #order_review { padding: 1.25rem; }
}

@media (max-width: 480px) {
	.woocommerce ul.products {
		grid-template-columns: 1fr;
	}
}
