/*
 * LA CAVE GOURMANDE — Design system responsive
 * Compatible avec Kadence gratuit et WooCommerce gratuit.
 * Les réglages du Header/Footer Kadence restent à faire dans Apparence > Personnaliser.
 */

:root {
	--cg-beige: #EBE6DA;
	--cg-burgundy: #4A2429;
	--cg-brown: #594435;
	--cg-charcoal: #292823;
	--cg-gold: #A68B61;
	--cg-white: #FAF9F5;
	--cg-muted: #746E64;
	--cg-border: #DED7CA;
	--cg-radius: 8px;
	--cg-content-width: 1240px;
	--cg-shadow: 0 8px 24px rgba(41, 40, 35, .08);
}

/* Base */
html { scroll-behavior: smooth; }
body {
	color: var(--cg-charcoal);
	background: var(--cg-white);
	font-family: "DM Sans", Arial, sans-serif;
	font-size: 16px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, h5, h6,
.site-title, .entry-title {
	color: var(--cg-brown);
	font-family: "Cormorant Garamond", Georgia, serif;
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -.015em;
}
h1 { font-size: clamp(2.15rem, 4vw, 3.6rem); }
h2 { font-size: clamp(1.8rem, 3vw, 2.65rem); }
h3 { font-size: clamp(1.35rem, 2vw, 1.8rem); }
a { color: var(--cg-burgundy); text-underline-offset: .18em; }
a:hover { color: var(--cg-brown); }
img { height: auto; }
:focus-visible {
	outline: 3px solid var(--cg-gold);
	outline-offset: 3px;
}

/* Conteneurs et contenus */
.content-area,
.site-container,
.entry-content-wrap {
	max-width: var(--cg-content-width);
}
.entry-content p { margin-bottom: 1.15em; }
.wp-block-separator { border-color: var(--cg-border); }

/* Boutons : styles communs, sans imposer de dimensions aux éléments non interactifs */
button,
input[type="button"],
input[type="submit"],
input[type="reset"],
.wp-element-button,
.wp-block-button__link,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce button.alt,
.woocommerce a.button.alt {
	border: 1px solid var(--cg-burgundy);
	border-radius: var(--cg-radius);
	background: var(--cg-burgundy);
	color: #fff;
	font-family: "DM Sans", Arial, sans-serif;
	font-size: .94rem;
	font-weight: 700;
	line-height: 1.25;
	padding: .85rem 1.2rem;
	text-decoration: none;
	transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}
button:hover,
input[type="button"]:hover,
input[type="submit"]:hover,
.wp-element-button:hover,
.wp-block-button__link:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce button.alt:hover,
.woocommerce a.button.alt:hover {
	border-color: var(--cg-brown);
	background: var(--cg-brown);
	color: #fff;
	transform: translateY(-1px);
}

/* Champs */
input[type="text"], input[type="email"], input[type="tel"],
input[type="password"], input[type="search"], input[type="number"],
select, textarea, .select2-container .select2-selection--single {
	min-height: 46px;
	border: 1px solid var(--cg-border);
	border-radius: 6px;
	background: #fff;
	color: var(--cg-charcoal);
	font: inherit;
	padding: .65rem .8rem;
}
textarea { min-height: 120px; }
input:focus, select:focus, textarea:focus {
	border-color: var(--cg-gold);
	box-shadow: 0 0 0 3px rgba(166, 139, 97, .16);
	outline: 0;
}

/* Encadrés éditoriaux et blocs */
.cg-editorial,
.cg-service-card {
	border: 1px solid var(--cg-border);
	border-radius: var(--cg-radius);
	background: var(--cg-beige);
	padding: clamp(1.2rem, 2.5vw, 2rem);
}
.cg-eyebrow {
	color: var(--cg-gold);
	font-size: .75rem;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}

/* WooCommerce — catalogue */
.woocommerce .woocommerce-breadcrumb {
	color: var(--cg-muted);
	font-size: .82rem;
	margin: 0 0 1.25rem;
}
.woocommerce .woocommerce-result-count {
	color: var(--cg-muted);
	font-size: .9rem;
}
.woocommerce .woocommerce-ordering select {
	min-height: 44px;
}
.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 28px 20px;
	margin: 1.5rem 0;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product {
	display: flex;
	float: none;
	flex-direction: column;
	width: auto !important;
	margin: 0 !important;
	padding: 12px;
	border: 1px solid var(--cg-border);
	border-radius: var(--cg-radius);
	background: #fff;
	overflow: hidden;
	transition: box-shadow .2s ease, transform .2s ease;
}
.woocommerce ul.products li.product:hover {
	box-shadow: var(--cg-shadow);
	transform: translateY(-2px);
}
.woocommerce ul.products li.product a img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: contain;
	margin: 0 0 12px;
	background: var(--cg-white);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	color: var(--cg-brown);
	font-family: "DM Sans", Arial, sans-serif;
	font-size: .98rem;
	font-weight: 700;
	line-height: 1.35;
	padding: 0;
	margin: 0 0 8px;
}
.woocommerce ul.products li.product .price {
	color: var(--cg-charcoal);
	font-size: 1.05rem;
	font-weight: 800;
	margin: auto 0 12px;
}
.woocommerce ul.products li.product .price del {
	color: var(--cg-muted);
	font-size: .85em;
	font-weight: 400;
}
.woocommerce ul.products li.product .price ins { text-decoration: none; }
.woocommerce ul.products li.product .button {
	display: block;
	width: 100%;
	margin-top: 8px;
	text-align: center;
}
.woocommerce span.onsale {
	top: 10px;
	left: 10px;
	min-height: auto;
	min-width: auto;
	padding: .45rem .65rem;
	border-radius: 4px;
	background: var(--cg-gold);
	color: #fff;
	font-size: .72rem;
	font-weight: 800;
	line-height: 1.2;
}

/* Fiche produit */
.woocommerce div.product div.images img {
	border-radius: 6px;
	background: var(--cg-white);
}
.woocommerce div.product .product_title {
	color: var(--cg-brown);
	font-size: clamp(2rem, 3vw, 3rem);
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	color: var(--cg-burgundy);
	font-size: 1.55rem;
	font-weight: 800;
}
.woocommerce div.product form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin-top: 1.25rem;
}
.woocommerce .quantity .qty {
	min-height: 48px;
	width: 76px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	border-color: var(--cg-border);
	background: var(--cg-beige);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
	background: #fff;
	border-bottom-color: #fff;
}

/* Panier, commande et compte */
.woocommerce table.shop_table {
	border-color: var(--cg-border);
	border-radius: var(--cg-radius);
}
.woocommerce table.shop_table th {
	color: var(--cg-brown);
	font-weight: 800;
}
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-checkout #payment,
.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register {
	border: 1px solid var(--cg-border);
	border-radius: var(--cg-radius);
	background: #fff;
	padding: 1.2rem;
}
.woocommerce-checkout #payment { background: var(--cg-beige); }
.woocommerce-info,
.woocommerce-message {
	border-top-color: var(--cg-gold);
	background: var(--cg-white);
}
.woocommerce-info::before,
.woocommerce-message::before { color: var(--cg-brown); }

/* Accessibilité : réduire les animations si l'utilisateur le demande */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
}

/* Tablette */
@media (max-width: 1024px) {
	:root { --cg-content-width: 100%; }
	.woocommerce ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 22px 16px;
	}
}

/* Mobile */
@media (max-width: 767px) {
	body { font-size: 16px; }
	.site-container { padding-left: 16px; padding-right: 16px; }
	.entry-content p { margin-bottom: 1rem; }
	.woocommerce ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 14px 10px;
	}
	.woocommerce ul.products li.product { padding: 8px; }
	.woocommerce ul.products li.product .woocommerce-loop-product__title {
		font-size: .88rem;
	}
	.woocommerce ul.products li.product .price { font-size: .98rem; }
	.woocommerce ul.products li.product .button {
		min-height: 44px;
		padding: .72rem .45rem;
		font-size: .82rem;
	}
	.woocommerce .woocommerce-result-count { float: none; margin-bottom: .75rem; }
	.woocommerce .woocommerce-ordering { float: none; margin-bottom: 1rem; }
	.woocommerce .woocommerce-ordering select { width: 100%; }
	.woocommerce div.product div.images,
	.woocommerce div.product div.summary { float: none; width: 100%; }
	.woocommerce div.product div.summary { margin-top: 1.25rem; }
	.woocommerce div.product form.cart { align-items: stretch; }
	.woocommerce div.product form.cart .quantity { margin: 0; }
	.woocommerce div.product form.cart .single_add_to_cart_button {
		flex: 1 1 100%;
		min-height: 48px;
	}
	.woocommerce table.shop_table_responsive tr td {
		padding: .75rem .5rem;
	}
	.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
		display: block;
		min-height: 50px;
		padding: 1rem;
	}
}

/* Très petits écrans */
@media (max-width: 360px) {
	.woocommerce ul.products { gap: 10px 8px; }
	.woocommerce ul.products li.product { padding: 6px; }
	.woocommerce ul.products li.product .button { font-size: .76rem; }
}
