/* ==========================================================================
   eBook Premium — surcharge WooCommerce
   Boutique, fiche produit, panier, commande, espace client.
   Mobile first, comme le reste du thème.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Boutique
   ----------------------------------------------------------------------- */

.ep-boutique-tete { margin-bottom: 1.75rem; }
.ep-boutique-tete__titre { font-size: var(--ep-t-2xl); margin-bottom: .25em; }
.ep-boutique-tete__chapo { color: var(--ep-encre-doux); max-width: 56ch; margin: 0; }

.ep-main--boutique { padding-top: 2rem; }

.woocommerce-result-count {
	font-size: var(--ep-t-sm);
	color: var(--ep-encre-doux);
	margin: 0 0 1rem;
}

.woocommerce-ordering select {
	padding: .55rem 2.2rem .55rem .9rem;
	border: 1.5px solid var(--ep-trait);
	border-radius: var(--ep-r-pill);
	background-color: #fff;
	font-size: var(--ep-t-sm);
	font-weight: 600;
}

.woocommerce-ordering { margin-bottom: 1.5rem; }

@media (min-width: 48em) {
	.woocommerce-result-count { float: left; margin-top: .7rem; }
	.woocommerce-ordering { float: right; }
	.ep-main--boutique ul.products { clear: both; }
}

.woocommerce-no-products-found,
.woocommerce-info,
.woocommerce-message,
.woocommerce-error {
	padding: 1rem 1.25rem;
	background: var(--ep-papier-2);
	border: 0;
	border-left: 4px solid var(--ep-orange);
	border-radius: var(--ep-r-sm);
	list-style: none;
	margin: 0 0 1.5rem;
	font-size: var(--ep-t-sm);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .75rem 1rem;
}
.woocommerce-message { border-left-color: var(--ep-vert); }
.woocommerce-error { border-left-color: var(--ep-rouge); }
.woocommerce-info::before,
.woocommerce-message::before,
.woocommerce-error::before { display: none; }
.woocommerce-info .button,
.woocommerce-message .button { margin-left: auto; }

/* --------------------------------------------------------------------------
   Boutons WooCommerce alignés sur ceux du thème
   ----------------------------------------------------------------------- */

.ep-theme .woocommerce a.button,
.ep-theme .woocommerce button.button,
.ep-theme .woocommerce input.button,
.ep-theme .woocommerce a.button.alt,
.ep-theme .woocommerce button.button.alt,
.ep-theme .woocommerce input.button.alt,
.ep-theme .woocommerce #respond input#submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	padding: .75rem 1.25rem;
	background: var(--ep-degrade);
	color: #fff;
	font-family: var(--ep-texte);
	font-size: var(--ep-t-base);
	font-weight: 600;
	line-height: 1.2;
	border: 0;
	border-radius: var(--ep-r-pill);
	box-shadow: 0 2px 0 rgba(168, 12, 31, .28);
	text-decoration: none;
	transition: transform .12s ease, filter .12s ease;
}
.ep-theme .woocommerce a.button:hover,
.ep-theme .woocommerce button.button:hover,
.ep-theme .woocommerce input.button:hover,
.ep-theme .woocommerce a.button.alt:hover,
.ep-theme .woocommerce button.button.alt:hover {
	background: var(--ep-degrade);
	color: #fff;
	filter: saturate(1.08);
	transform: translateY(-1px);
}
.ep-theme .woocommerce .button.wc-backward,
.ep-theme .woocommerce .button.wc-forward {
	background: transparent;
	color: var(--ep-encre);
	border: 1.5px solid var(--ep-trait);
	box-shadow: none;
}
.ep-theme .woocommerce .button.wc-backward:hover,
.ep-theme .woocommerce .button.wc-forward:hover {
	background: transparent;
	color: var(--ep-rouge-fonce);
	border-color: var(--ep-rouge);
}

.ep-theme .added_to_cart { display: none; }

/* --------------------------------------------------------------------------
   Fiche produit
   ----------------------------------------------------------------------- */

.single-product div.product {
	display: grid;
	gap: 1.75rem;
	margin-bottom: 3rem;
}

.single-product .woocommerce-product-gallery {
	float: none !important;
	width: 100% !important;
	max-width: 22rem;
	margin: 0 auto;
}
.single-product .woocommerce-product-gallery__wrapper img {
	border-radius: var(--ep-r-md);
	box-shadow: var(--ep-ombre-couverture);
}
.single-product .woocommerce-product-gallery__trigger { border-radius: 50%; }

.single-product .summary {
	float: none !important;
	width: 100% !important;
	margin: 0 !important;
}

.single-product .product_title {
	font-size: var(--ep-t-2xl);
	margin-bottom: .3em;
	max-width: 22ch;
}

.single-product .woocommerce-product-rating { margin-bottom: 1rem; }

.single-product .price,
.single-product .summary .price {
	display: block;
	font-family: var(--ep-titre);
	font-size: 1.9rem;
	font-weight: 700;
	color: var(--ep-encre);
	margin-bottom: 1rem;
}
.single-product .price del { color: var(--ep-encre-tres-doux); font-size: .6em; font-weight: 400; }
.single-product .price ins { text-decoration: none; color: var(--ep-rouge); }

.single-product .woocommerce-product-details__short-description {
	color: var(--ep-encre-doux);
	max-width: 58ch;
	margin-bottom: 1.5rem;
}

.single-product form.cart {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
	margin-bottom: 1.5rem !important;
}
.single-product form.cart .quantity { display: none; }
.single-product form.cart .single_add_to_cart_button { flex: 1 1 auto; min-height: 3.25rem; }

.ep-specs {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1px;
	margin: 0 0 1.5rem;
	background: var(--ep-trait);
	border: 1px solid var(--ep-trait);
	border-radius: var(--ep-r-md);
	overflow: hidden;
}
.ep-specs > div { background: var(--ep-papier); padding: .75rem .9rem; }
.ep-specs dt { font-size: var(--ep-t-xs); color: var(--ep-encre-doux); margin-bottom: .15rem; }
.ep-specs dd { margin: 0; font-weight: 600; font-size: var(--ep-t-sm); }

.ep-reassurance {
	list-style: none;
	margin: 0 0 1.5rem;
	padding: 1rem 1.1rem;
	background: var(--ep-papier-2);
	border-radius: var(--ep-r-md);
	display: grid;
	gap: .65rem;
}
.ep-reassurance li {
	display: flex;
	align-items: flex-start;
	gap: .6rem;
	font-size: var(--ep-t-sm);
}
.ep-reassurance .ep-icone { color: var(--ep-vert); margin-top: .1rem; }

.single-product .product_meta {
	font-size: var(--ep-t-sm);
	color: var(--ep-encre-doux);
	padding-top: 1rem;
	border-top: 1px solid var(--ep-trait);
}
.single-product .product_meta > span { display: block; margin-bottom: .3rem; }

@media (min-width: 48em) {
	.single-product div.product {
		grid-template-columns: minmax(0, 22rem) minmax(0, 1fr);
		gap: 3rem;
		align-items: start;
	}
	.single-product .woocommerce-product-gallery { margin: 0; }
	.ep-specs { grid-template-columns: repeat(4, 1fr); }
	.single-product .woocommerce-tabs,
	.single-product .related,
	.single-product .up-sells { grid-column: 1 / -1; }
}

/* Onglets */
.woocommerce-tabs { margin-top: 3rem; }
.woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: .4rem;
	margin: 0 0 1.5rem !important;
	padding: 0 !important;
	list-style: none;
}
.woocommerce-tabs ul.tabs::before,
.woocommerce-tabs ul.tabs::after { display: none !important; }
.woocommerce-tabs ul.tabs li {
	margin: 0 !important;
	padding: 0 !important;
	background: none !important;
	border: 0 !important;
	border-radius: 0 !important;
}
.woocommerce-tabs ul.tabs li::before,
.woocommerce-tabs ul.tabs li::after { display: none !important; }
.woocommerce-tabs ul.tabs li a {
	display: block;
	padding: .55rem 1.1rem !important;
	background: #fff;
	border: 1px solid var(--ep-trait);
	border-radius: var(--ep-r-pill);
	font-weight: 600;
	font-size: var(--ep-t-sm);
	color: var(--ep-encre) !important;
	text-decoration: none;
}
.woocommerce-tabs ul.tabs li.active a {
	background: var(--ep-encre);
	border-color: var(--ep-encre);
	color: #fff !important;
}
.woocommerce-Tabs-panel { max-width: var(--ep-largeur-texte); }
.woocommerce-Tabs-panel h2 { font-size: var(--ep-t-lg); }

.related > h2,
.up-sells > h2 { font-size: var(--ep-t-xl); margin-bottom: 1.5rem; }

/* Avis */
.woocommerce #reviews #comments ol.commentlist { padding: 0; }
.woocommerce #reviews .comment_container {
	display: flex;
	gap: 1rem;
	padding: 1.1rem;
	background: var(--ep-papier-2);
	border-radius: var(--ep-r-md);
}
.woocommerce #reviews img.avatar {
	position: static !important;
	width: 46px !important;
	height: 46px;
	border-radius: 50% !important;
	border: 0 !important;
	padding: 0 !important;
	float: none !important;
}
.woocommerce #reviews .comment-text {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	width: auto !important;
}
.woocommerce .star-rating span { color: var(--ep-orange); }
.woocommerce p.stars a { color: var(--ep-orange); }

/* --------------------------------------------------------------------------
   Panier
   ----------------------------------------------------------------------- */

.woocommerce table.shop_table {
	border: 1px solid var(--ep-trait);
	border-radius: var(--ep-r-md);
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
	background: #fff;
	font-size: var(--ep-t-sm);
}
.woocommerce table.shop_table th {
	background: var(--ep-papier-2);
	font-size: var(--ep-t-xs);
	color: var(--ep-encre-doux);
	padding: .8rem 1rem;
}
.woocommerce table.shop_table td { padding: 1rem; border-top: 1px solid var(--ep-trait); }
.woocommerce table.shop_table .product-thumbnail img {
	width: 62px;
	border-radius: var(--ep-r-sm);
	box-shadow: var(--ep-ombre-1);
}
.woocommerce a.remove {
	color: var(--ep-rouge) !important;
	font-weight: 400;
}
.woocommerce a.remove:hover { background: var(--ep-rouge) !important; color: #fff !important; }

.woocommerce .cart-collaterals .cart_totals,
.woocommerce-checkout #order_review,
.woocommerce .cart_totals {
	background: var(--ep-papier-2);
	border-radius: var(--ep-r-lg);
	padding: 1.5rem;
}
.woocommerce .cart_totals h2,
.woocommerce-checkout #order_review_heading { font-size: var(--ep-t-lg); }
.woocommerce .cart_totals table.shop_table { background: transparent; border: 0; }
.woocommerce .cart_totals table.shop_table td,
.woocommerce .cart_totals table.shop_table th { border-color: rgba(26, 18, 16, .08); }
.woocommerce .wc-proceed-to-checkout .checkout-button { width: 100%; }

.woocommerce .quantity .qty {
	width: 4.5rem;
	padding: .5rem;
	text-align: center;
	border: 1.5px solid var(--ep-trait);
	border-radius: var(--ep-r-sm);
}

/* --------------------------------------------------------------------------
   Commande
   ----------------------------------------------------------------------- */

.woocommerce-checkout .col2-set { display: grid; gap: 2rem; }
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 { width: 100% !important; float: none !important; }

.woocommerce form .form-row { padding: 0; margin-bottom: 1rem; }
.woocommerce form .form-row label { font-size: var(--ep-t-sm); font-weight: 600; margin-bottom: .3rem; }
.woocommerce form .form-row .required { color: var(--ep-rouge); }
.woocommerce .select2-container--default .select2-selection--single {
	height: auto;
	padding: .45rem .6rem;
	border: 1.5px solid var(--ep-trait);
	border-radius: var(--ep-r-sm);
}

#payment {
	background: transparent !important;
	border-radius: var(--ep-r-md);
}
#payment ul.payment_methods {
	padding: 0 !important;
	border: 0 !important;
	display: grid;
	gap: .6rem;
}
#payment ul.payment_methods li {
	list-style: none;
	padding: .9rem 1rem !important;
	background: #fff;
	border: 1.5px solid var(--ep-trait);
	border-radius: var(--ep-r-md);
}
#payment div.payment_box {
	background: var(--ep-papier-2) !important;
	border-radius: var(--ep-r-sm);
	font-size: var(--ep-t-sm);
	color: var(--ep-encre-doux);
}
#payment div.payment_box::before { display: none !important; }
#payment .place-order .button { width: 100%; min-height: 3.5rem; font-size: var(--ep-t-md); }

.ep-note-paiement {
	display: flex;
	align-items: flex-start;
	gap: .5rem;
	padding: .9rem 1rem;
	margin-bottom: 1rem;
	background: rgba(14, 122, 95, .08);
	border-radius: var(--ep-r-sm);
	font-size: var(--ep-t-sm);
	color: var(--ep-encre-doux);
}
.ep-note-paiement .ep-icone { color: var(--ep-vert); flex: none; margin-top: .15rem; }

@media (min-width: 62em) {
	.woocommerce-checkout .col2-set { grid-template-columns: 1fr 1fr; gap: 3rem; }
	.woocommerce-checkout form.checkout { display: grid; grid-template-columns: 1.15fr .85fr; gap: 3rem; align-items: start; }
	.woocommerce-checkout form.checkout .col2-set { grid-column: 1; grid-template-columns: 1fr; }
	.woocommerce-checkout form.checkout #order_review_heading,
	.woocommerce-checkout form.checkout #order_review { grid-column: 2; }
	.woocommerce-checkout form.checkout #order_review_heading { align-self: end; margin-bottom: 0; }
}

/* Confirmation de commande */
.woocommerce-order {
	max-width: 46rem;
}
.woocommerce-thankyou-order-received {
	font-family: var(--ep-titre);
	font-size: var(--ep-t-xl);
	color: var(--ep-vert);
	margin-bottom: 1.5rem;
}
.woocommerce ul.order_details {
	display: grid;
	gap: 1px;
	margin: 0 0 2rem !important;
	padding: 0 !important;
	background: var(--ep-trait);
	border: 1px solid var(--ep-trait);
	border-radius: var(--ep-r-md);
	overflow: hidden;
}
.woocommerce ul.order_details li {
	float: none !important;
	margin: 0 !important;
	padding: .9rem 1rem !important;
	border: 0 !important;
	background: var(--ep-papier);
	font-size: var(--ep-t-xs);
	color: var(--ep-encre-doux);
	text-transform: none;
}
.woocommerce ul.order_details li strong {
	display: block;
	font-family: var(--ep-titre);
	font-size: 1.05rem;
	color: var(--ep-encre);
	margin-top: .2rem;
}
@media (min-width: 48em) {
	.woocommerce ul.order_details { grid-template-columns: repeat(4, 1fr); }
}

.woocommerce .woocommerce-order-downloads,
.woocommerce-order-downloads { margin-bottom: 2rem; }

/* --------------------------------------------------------------------------
   Espace client
   ----------------------------------------------------------------------- */

.woocommerce-account .woocommerce-MyAccount-navigation {
	width: 100% !important;
	float: none !important;
	margin-bottom: 2rem;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: .4rem;
}
.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: block;
	padding: .5rem 1rem;
	background: #fff;
	border: 1px solid var(--ep-trait);
	border-radius: var(--ep-r-pill);
	font-size: var(--ep-t-sm);
	font-weight: 600;
	color: var(--ep-encre);
	text-decoration: none;
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
	background: var(--ep-encre);
	border-color: var(--ep-encre);
	color: #fff;
}
.woocommerce-account .woocommerce-MyAccount-content {
	width: 100% !important;
	float: none !important;
}

.woocommerce-account .woocommerce-form-login,
.woocommerce-account .woocommerce-form-register {
	max-width: 32rem;
	padding: 1.75rem;
	background: var(--ep-papier-2);
	border: 0;
	border-radius: var(--ep-r-lg);
}

@media (min-width: 62em) {
	.woocommerce-account .woocommerce-MyAccount-navigation ul { gap: .5rem; }
}

/* Widgets de filtres */
.ep-filtre { margin-bottom: 1.5rem; }
.ep-filtre__titre { font-size: var(--ep-t-base); margin-bottom: .6em; }
