/**
 * Otakara — panier, validation de commande, commande reçue, mon compte.
 *
 * S'applique aux widgets WooCommerce d'Elementor Pro qui portent la classe
 * « otk-commerce » (Avancé → Classes CSS). Les réglages de style de ces
 * widgets doivent rester vides : tout se règle ici, pour que les quatre
 * pages parlent la même langue que les cartes produit et le bloc virement.
 *
 * Priorité aux variables CSS exposées par les widgets. Quand un widget code
 * une valeur en dur (fond des champs, couleur des boutons), la règle est
 * reprise avec un sélecteur un cran plus précis.
 */

.otk-commerce {
	/* Jetons Otakara */
	--otk-red: #e30613;
	--otk-ink: #101216;
	--otk-ink-2: #4a5060;
	--otk-ink-3: #858c9b;
	--otk-line: #e6e8ee;
	--otk-soft: #f6f7f9;
	--otk-radius: 8px;
	--otk-field-h: 48px;

	/* Bouton principal (Passer à la commande, Commander). */
	--otk-cta: var(--otk-ink);
	--otk-cta-hover: #2c313c;

	/* Variables des widgets Elementor */
	--sections-background-color: #fff;
	--sections-border-type: solid;
	--sections-border-color: var(--otk-line);
	--sections-border-radius: var(--otk-radius);
	--sections-padding: 28px;
	--sections-margin: 24px;
	--sections-title-color: var(--otk-ink);
	--sections-title-spacing: 20px;
	--sections-secondary-title-color: var(--otk-ink);
	--sections-descriptions-color: var(--otk-ink-2);
	--sections-messages-color: var(--otk-ink-2);
	--sections-radio-buttons-color: var(--otk-ink);
	--sections-checkboxes-color: var(--otk-ink-2);

	--forms-labels-color: var(--otk-ink-2);
	--forms-label-spacing: 6px;
	--forms-rows-gap: 16px;
	--forms-fields-border-radius: var(--otk-radius);
	--forms-fields-padding: 12px 14px;
	--forms-fields-normal-color: var(--otk-ink);
	--forms-fields-focus-color: var(--otk-ink);
	--forms-buttons-border-radius: var(--otk-radius);
	--forms-buttons-padding: 12px 20px;
	--forms-buttons-border-type: solid;
	--forms-buttons-border-color: var(--otk-line);
	--forms-buttons-normal-text-color: var(--otk-ink);
	--forms-buttons-hover-text-color: var(--otk-ink);

	--purchase-button-border-radius: var(--otk-radius);
	--purchase-button-padding: 17px 24px;
	--purchase-button-width: 100%;
	--purchase-button-normal-text-color: #fff;
	--purchase-button-hover-text-color: #fff;
	--checkout-button-border-radius: var(--otk-radius);
	--checkout-button-padding: 17px 24px;
	--checkout-button-width: 100%;
	--checkout-button-normal-text-color: #fff;
	--checkout-button-hover-text-color: #fff;

	--links-normal-color: var(--otk-ink);
	--links-hover-color: var(--otk-red);
	--product-link-normal-color: var(--otk-ink);
	--product-link-hover-color: var(--otk-red);

	--order-summary-title-color: var(--otk-ink);
	--order-summary-color: var(--otk-ink);
	--order-summary-items-color: var(--otk-ink);
	--order-summary-items-divider-color: var(--otk-line);
	--order-summary-totals-color: var(--otk-ink);
	--order-summary-totals-divider-color: var(--otk-line);
	--order-summary-variations-color: var(--otk-ink-3);
	--totals-color: var(--otk-ink);
	--totals-divider-color: var(--otk-line);

	color: var(--otk-ink);
}

.otk-commerce *,
.otk-commerce *::before,
.otk-commerce *::after {
	box-sizing: border-box;
}

/* Le conteneur de page aligne ses enfants à gauche sans les étirer : le
 * widget prendrait alors la largeur de son contenu. */
.elementor-widget.otk-commerce {
	width: 100%;
}

/* =========================================================================
 * Titres de section
 * ====================================================================== */

.otk-commerce .woocommerce h2,
.otk-commerce .woocommerce h3 {
	margin: 0 0 var(--sections-title-spacing);
	color: var(--otk-ink);
	font-size: 18px;
	font-weight: 700;
	line-height: 1.3;
	text-transform: none;
	letter-spacing: 0;
}

/* =========================================================================
 * Champs de formulaire — fond blanc, bordure fine, noire au focus
 * ====================================================================== */

.elementor-widget.otk-commerce .woocommerce .form-row label {
	color: var(--otk-ink-2);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.4;
}

.elementor-widget.otk-commerce .woocommerce .form-row .required {
	color: var(--otk-red);
	text-decoration: none;
}

.elementor-widget.otk-commerce .woocommerce .form-row .optional {
	color: var(--otk-ink-3);
	font-weight: 400;
}

.elementor-widget.otk-commerce .woocommerce #customer_details .form-row .input-text,
.elementor-widget.otk-commerce .woocommerce #customer_details .form-row select,
.elementor-widget.otk-commerce .woocommerce #customer_details .form-row textarea,
.elementor-widget.otk-commerce .woocommerce .e-coupon-box .form-row .input-text,
.elementor-widget.otk-commerce .woocommerce .e-woocommerce-login-anchor .form-row .input-text,
.elementor-widget.otk-commerce .woocommerce .coupon .input-text,
.elementor-widget.otk-commerce .woocommerce form .form-row .input-text,
.elementor-widget.otk-commerce .woocommerce form .form-row select,
.elementor-widget.otk-commerce .woocommerce form .form-row textarea,
.elementor-widget.otk-commerce .woocommerce .select2-container--default .select2-selection--single {
	min-height: var(--otk-field-h);
	padding: var(--forms-fields-padding);
	border: 1px solid var(--otk-line);
	border-radius: var(--otk-radius);
	background-color: #fff;
	box-shadow: none;
	color: var(--otk-ink);
	font-family: inherit;
	font-size: 15px;
	line-height: 1.4;
	transition: border-color .15s ease, box-shadow .15s ease;
}

.elementor-widget.otk-commerce .woocommerce form .form-row textarea {
	min-height: 96px;
}

.elementor-widget.otk-commerce .woocommerce #customer_details .form-row .input-text:focus,
.elementor-widget.otk-commerce .woocommerce #customer_details .form-row select:focus,
.elementor-widget.otk-commerce .woocommerce #customer_details .form-row textarea:focus,
.elementor-widget.otk-commerce .woocommerce .e-coupon-box .form-row .input-text:focus,
.elementor-widget.otk-commerce .woocommerce .e-woocommerce-login-anchor .form-row .input-text:focus,
.elementor-widget.otk-commerce .woocommerce .coupon .input-text:focus,
.elementor-widget.otk-commerce .woocommerce form .form-row .input-text:focus,
.elementor-widget.otk-commerce .woocommerce form .form-row select:focus,
.elementor-widget.otk-commerce .woocommerce form .form-row textarea:focus,
.elementor-widget.otk-commerce .woocommerce .select2-container--focus .select2-selection--single,
.elementor-widget.otk-commerce .woocommerce .select2-container--open .select2-selection--single {
	border-color: var(--otk-ink);
	background-color: #fff;
	box-shadow: 0 0 0 3px rgba(16, 18, 22, .08);
	outline: none;
}

/* Champ en erreur après validation. */
.elementor-widget.otk-commerce .woocommerce .form-row.woocommerce-invalid .input-text,
.elementor-widget.otk-commerce .woocommerce .form-row.woocommerce-invalid select,
.elementor-widget.otk-commerce .woocommerce .form-row.woocommerce-invalid .select2-selection--single {
	border-color: var(--otk-red);
}

/* Liste déroulante « Pays » (Select2). */
.elementor-widget.otk-commerce .woocommerce .select2-container--default .select2-selection--single {
	display: flex;
	align-items: center;
	height: var(--otk-field-h);
	padding: 0;
}

.elementor-widget.otk-commerce .woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered {
	padding: 0 40px 0 14px;
	color: var(--otk-ink);
	line-height: calc(var(--otk-field-h) - 2px);
}

.elementor-widget.otk-commerce .woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow {
	top: 0;
	right: 8px;
	height: calc(var(--otk-field-h) - 2px);
}

/* Cases à cocher et boutons radio aux couleurs de la marque. */
.otk-commerce input[type="checkbox"],
.otk-commerce input[type="radio"] {
	accent-color: var(--otk-ink);
}

/* =========================================================================
 * Boutons
 * ====================================================================== */

/* Secondaires : mettre à jour le panier, appliquer un code promo. */
.elementor-widget.otk-commerce .woocommerce button.button,
.elementor-widget.otk-commerce .woocommerce a.button:not(.checkout-button),
.elementor-widget.otk-commerce .woocommerce button.woocommerce-button {
	min-height: var(--otk-field-h);
	padding: var(--forms-buttons-padding);
	border: 1px solid var(--otk-ink);
	border-radius: var(--otk-radius);
	background: #fff;
	color: var(--otk-ink);
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	text-transform: none;
	letter-spacing: 0;
	transition: background-color .15s ease, color .15s ease, opacity .15s ease;
}

.elementor-widget.otk-commerce .woocommerce button.button:hover,
.elementor-widget.otk-commerce .woocommerce a.button:not(.checkout-button):hover,
.elementor-widget.otk-commerce .woocommerce button.woocommerce-button:hover {
	background: var(--otk-ink);
	color: #fff;
}

.elementor-widget.otk-commerce .woocommerce button.button:disabled,
.elementor-widget.otk-commerce .woocommerce button.button[disabled] {
	border-color: var(--otk-line);
	background: #fff;
	color: var(--otk-ink-3);
	opacity: 1;
	cursor: not-allowed;
}

/* Principal : Passer à la commande, Commander, Se connecter, Enregistrer. */
.elementor-widget.otk-commerce .woocommerce .checkout-button,
.elementor-widget.otk-commerce.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order,
.elementor-widget.otk-commerce .woocommerce button.button.alt,
.elementor-widget.otk-commerce .woocommerce .woocommerce-form-login__submit,
.elementor-widget.otk-commerce .woocommerce .woocommerce-form-register__submit,
.elementor-widget.otk-commerce .woocommerce .woocommerce-Button[name="save_account_details"],
.elementor-widget.otk-commerce .woocommerce .woocommerce-Button[name="save_address"] {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 54px;
	border: 0;
	border-radius: var(--otk-radius);
	background: var(--otk-cta);
	color: #fff;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0;
	text-transform: none;
	transition: background-color .15s ease;
}

.elementor-widget.otk-commerce .woocommerce .checkout-button:hover,
.elementor-widget.otk-commerce.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order:hover,
.elementor-widget.otk-commerce .woocommerce button.button.alt:hover,
.elementor-widget.otk-commerce .woocommerce .woocommerce-form-login__submit:hover,
.elementor-widget.otk-commerce .woocommerce .woocommerce-form-register__submit:hover,
.elementor-widget.otk-commerce .woocommerce .woocommerce-Button[name="save_account_details"]:hover,
.elementor-widget.otk-commerce .woocommerce .woocommerce-Button[name="save_address"]:hover {
	background: var(--otk-cta-hover);
	color: #fff;
}

/* Les boutons d'enregistrement du compte n'ont pas à occuper toute la largeur. */
.elementor-widget.otk-commerce .woocommerce .woocommerce-Button[name="save_account_details"],
.elementor-widget.otk-commerce .woocommerce .woocommerce-Button[name="save_address"] {
	width: auto;
	padding: 0 28px;
}

/* =========================================================================
 * Messages (notices WooCommerce)
 * ====================================================================== */

.otk-commerce .woocommerce-message,
.otk-commerce .woocommerce-info,
.otk-commerce .woocommerce-error,
.otk-commerce .woocommerce-notice {
	margin: 0 0 20px;
	padding: 14px 18px 14px 46px;
	border: 1px solid var(--otk-line);
	border-left-width: 3px;
	border-radius: var(--otk-radius);
	background: #fff;
	color: var(--otk-ink);
	font-size: 14px;
	line-height: 1.5;
}

.otk-commerce .woocommerce-message {
	border-left-color: #1f8f4e;
}

.otk-commerce .woocommerce-message::before {
	color: #1f8f4e;
}

.otk-commerce .woocommerce-info {
	border-left-color: var(--otk-ink);
}

.otk-commerce .woocommerce-info::before {
	color: var(--otk-ink);
}

.otk-commerce .woocommerce-error {
	border-left-color: var(--otk-red);
	background: #fff5f5;
}

.otk-commerce .woocommerce-error::before {
	color: var(--otk-red);
}

.otk-commerce .woocommerce-message .button,
.otk-commerce .woocommerce-info .button {
	float: right;
	min-height: 0;
	margin-left: 12px;
	padding: 6px 14px;
	font-size: 13px;
}

/* =========================================================================
 * Tableaux récapitulatifs (panier, commande, commande reçue, compte)
 * ====================================================================== */

.elementor-widget.otk-commerce .woocommerce table.shop_table {
	border: 0;
	border-collapse: collapse;
	font-size: 15px;
}

.elementor-widget.otk-commerce .woocommerce table.shop_table th,
.elementor-widget.otk-commerce .woocommerce table.shop_table td {
	padding: 14px 0;
	border: 0;
	border-top: 1px solid var(--otk-line);
	background: transparent;
	vertical-align: middle;
}

.elementor-widget.otk-commerce .woocommerce table.shop_table thead th {
	padding-top: 0;
	border-top: 0;
	color: var(--otk-ink-3);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.elementor-widget.otk-commerce .woocommerce table.shop_table tr:nth-child(odd) > td,
.elementor-widget.otk-commerce .woocommerce table.shop_table tr:nth-child(odd) > th {
	background: transparent;
	padding: 12px 6px;
}

.elementor-widget.otk-commerce .woocommerce table.shop_table tfoot th {
	color: var(--otk-ink-2);
	font-weight: 500;
}

.elementor-widget.otk-commerce .woocommerce table.shop_table tfoot td {
	color: var(--otk-ink);
	font-weight: 600;
	text-align: right;
}

/* Le total, la valeur que le client regarde en dernier : en grand. */
.elementor-widget.otk-commerce .woocommerce table.shop_table .order-total th,
.elementor-widget.otk-commerce .woocommerce table.shop_table .order-total td {
	padding-top: 18px;
	border-top: 1px solid var(--otk-ink);
	color: var(--otk-ink);
	font-size: 16px;
	font-weight: 700;
}

.elementor-widget.otk-commerce .woocommerce table.shop_table .order-total td .amount {
	font-size: 24px;
	font-weight: 700;
}

.elementor-widget.otk-commerce .woocommerce table.shop_table .order-total .includes_tax,
.elementor-widget.otk-commerce .woocommerce table.shop_table small.includes_tax {
	display: block;
	color: var(--otk-ink-3);
	font-size: 12px;
	font-weight: 400;
}

.elementor-widget.otk-commerce .woocommerce table.shop_table .order-total .includes_tax .amount {
	font-size: 12px;
	font-weight: 400;
}

/* =========================================================================
 * Modes de livraison (panier et commande)
 * ====================================================================== */

.elementor-widget.otk-commerce .woocommerce ul#shipping_method {
	width: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
	text-align: left;
}

.elementor-widget.otk-commerce .woocommerce ul#shipping_method li {
	position: relative;
	display: block;
	width: 100%;
	margin: 0 0 8px;
	padding: 12px 14px 12px 40px;
	border: 1px solid var(--otk-line);
	border-radius: var(--otk-radius);
	background: #fff;
	line-height: 1.4;
	transition: border-color .15s ease;
}

.elementor-widget.otk-commerce .woocommerce ul#shipping_method li:last-child {
	margin-bottom: 0;
}

.elementor-widget.otk-commerce .woocommerce ul#shipping_method li:has(input:checked) {
	border-color: var(--otk-ink);
	box-shadow: inset 0 0 0 1px var(--otk-ink);
}

.elementor-widget.otk-commerce .woocommerce ul#shipping_method li input[type="radio"] {
	position: absolute;
	top: 15px;
	left: 14px;
	margin: 0;
}

.elementor-widget.otk-commerce .woocommerce ul#shipping_method li label {
	display: block;
	margin: 0;
	color: var(--otk-ink);
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
}

.elementor-widget.otk-commerce .woocommerce ul#shipping_method li label .amount {
	font-weight: 700;
}

/* Point relais Boxtal, sous Mondial Relay. */
.elementor-widget.otk-commerce .woocommerce ul#shipping_method li .bw-parcel-point-info,
.elementor-widget.otk-commerce .woocommerce ul#shipping_method li [class*="bw-"] {
	margin-top: 8px;
	background: transparent;
	font-size: 13px;
	font-weight: 400;
}

.elementor-widget.otk-commerce .woocommerce .woocommerce-shipping-destination,
.elementor-widget.otk-commerce .woocommerce .shipping-calculator-button {
	color: var(--otk-ink-2);
	font-size: 13px;
	text-align: left;
}

/* Sur le panier et la commande, la colonne de droite est trop étroite pour
 * mettre le libellé « Expédition » à côté des options : on empile. */
.elementor-widget.otk-commerce .woocommerce table.shop_table {
	width: 100%;
	table-layout: auto;
}

/*
 * Récapitulatif de commande et totaux du panier : chaque ligne devient une
 * rangée flexible « libellé — montant ». Un vrai tableau force la ligne
 * Expédition dans la largeur de la première colonne, et ses options de
 * livraison s'écrasent sur 70 px.
 */
.elementor-widget.otk-commerce .woocommerce table.woocommerce-checkout-review-order-table,
.elementor-widget.otk-commerce .woocommerce table.woocommerce-checkout-review-order-table > thead,
.elementor-widget.otk-commerce .woocommerce table.woocommerce-checkout-review-order-table > tbody,
.elementor-widget.otk-commerce .woocommerce table.woocommerce-checkout-review-order-table > tfoot,
.elementor-widget.otk-commerce .woocommerce .cart_totals table.shop_table,
.elementor-widget.otk-commerce .woocommerce .cart_totals table.shop_table > tbody {
	display: block;
	width: 100%;
}

.elementor-widget.otk-commerce .woocommerce table.woocommerce-checkout-review-order-table tr,
.elementor-widget.otk-commerce .woocommerce .cart_totals table.shop_table tr {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	border-top: 1px solid var(--otk-line);
}

.elementor-widget.otk-commerce .woocommerce table.woocommerce-checkout-review-order-table > thead tr {
	border-top: 0;
}

.elementor-widget.otk-commerce .woocommerce table.woocommerce-checkout-review-order-table th,
.elementor-widget.otk-commerce .woocommerce table.woocommerce-checkout-review-order-table td,
.elementor-widget.otk-commerce .woocommerce .cart_totals table.shop_table th,
.elementor-widget.otk-commerce .woocommerce .cart_totals table.shop_table td {
	display: block;
	width: auto;
	max-width: none; /* Elementor bride certaines cellules à 70 ou 150 px. */
	border-top: 0;
}

/* Elementor plafonne la colonne produit à 150 px : on lui rend la largeur. */
.elementor-widget.otk-commerce .woocommerce table.woocommerce-checkout-review-order-table .product-name {
	flex: 1 1 auto;
	min-width: 0;
	max-width: none;
}

.elementor-widget.otk-commerce .woocommerce table.woocommerce-checkout-review-order-table .product-total {
	flex: 0 0 auto;
	white-space: nowrap;
}

.elementor-widget.otk-commerce .woocommerce table.woocommerce-checkout-review-order-table tfoot td,
.elementor-widget.otk-commerce .woocommerce .cart_totals table.shop_table td {
	text-align: right;
}

/* Le total : filet noir au-dessus. */
.elementor-widget.otk-commerce .woocommerce table.woocommerce-checkout-review-order-table tr.order-total,
.elementor-widget.otk-commerce .woocommerce .cart_totals table.shop_table tr.order-total {
	border-top: 1px solid var(--otk-ink);
}

.elementor-widget.otk-commerce .woocommerce table.shop_table tr.order-total th,
.elementor-widget.otk-commerce .woocommerce table.shop_table tr.order-total td {
	border-top: 0;
}

/* Sur mobile, WooCommerce répète le libellé devant chaque montant : le nôtre
 * est déjà affiché à gauche. */
.elementor-widget.otk-commerce .woocommerce table.woocommerce-checkout-review-order-table td::before,
.elementor-widget.otk-commerce .woocommerce .cart_totals table.shop_table td::before {
	display: none;
	content: none;
}

/* Expédition : le libellé au-dessus, les options sur toute la largeur. */
.elementor-widget.otk-commerce .woocommerce tr.woocommerce-shipping-totals {
	flex-direction: column;
	align-items: stretch;
	gap: 0;
}

.elementor-widget.otk-commerce .woocommerce tr.woocommerce-shipping-totals th,
.elementor-widget.otk-commerce .woocommerce tr.woocommerce-shipping-totals td {
	width: 100%;
	text-align: left;
}

.elementor-widget.otk-commerce .woocommerce tr.woocommerce-shipping-totals th {
	padding-bottom: 8px;
}

.elementor-widget.otk-commerce .woocommerce tr.woocommerce-shipping-totals td {
	padding-top: 0;
	border-top: 0;
}

.elementor-widget.otk-commerce .woocommerce tr.woocommerce-shipping-totals td::before {
	display: none;
}

/* =========================================================================
 * Panier
 * ====================================================================== */

.otk-commerce.elementor-widget-woocommerce-cart .e-cart-section,
.otk-commerce.elementor-widget-woocommerce-cart .e-cart-totals {
	border: 1px solid var(--otk-line);
	border-radius: var(--otk-radius);
	background: #fff;
	margin: auto auto 24px auto;
}

.elementor-widget.otk-commerce.elementor-widget-woocommerce-cart .woocommerce table.cart img {
	width: 72px;
	height: 72px;
	padding: 6px;
	border-radius: 6px;
	background: #f2f3f6;
	object-fit: contain;
}

.elementor-widget.otk-commerce.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name a {
	color: var(--otk-ink);
	font-weight: 600;
	line-height: 1.35;
}

.elementor-widget.otk-commerce.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name a:hover {
	color: var(--otk-red);
}

.elementor-widget.otk-commerce.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal {
	font-weight: 700;
}

.elementor-widget.otk-commerce.elementor-widget-woocommerce-cart .woocommerce table.cart a.remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	color: var(--otk-ink-3) !important;
	font-size: 20px;
	font-weight: 400;
	line-height: 1;
}

.elementor-widget.otk-commerce.elementor-widget-woocommerce-cart .woocommerce table.cart a.remove:hover {
	background: #fff5f5;
	color: var(--otk-red) !important;
}

/* Quantité */
.elementor-widget.otk-commerce .woocommerce .quantity .qty {
	width: 64px;
	min-height: 40px;
	padding: 6px 8px;
	border: 1px solid var(--otk-line);
	border-radius: var(--otk-radius);
	background: #fff;
	color: var(--otk-ink);
	font-size: 15px;
	font-weight: 600;
	text-align: center;
}

.elementor-widget.otk-commerce .woocommerce .quantity .qty:focus {
	border-color: var(--otk-ink);
	outline: none;
}

/* Code promo : champ et bouton sur une ligne. */
.otk-commerce.elementor-widget-woocommerce-cart .coupon .coupon-col {
	display: flex;
	gap: 12px;
}

.otk-commerce.elementor-widget-woocommerce-cart .coupon .coupon-col-start {
	flex: 1 1 auto;
}

.otk-commerce.elementor-widget-woocommerce-cart .coupon .coupon-col-start .input-text {
	width: 100%;
}

/* Totaux : titre discret, total mis en valeur. */
.otk-commerce.elementor-widget-woocommerce-cart .cart_totals > h2 {
	color: var(--otk-ink);
	font-size: 18px;
}

.otk-commerce.elementor-widget-woocommerce-cart .wc-proceed-to-checkout {
	padding: 20px 0 0;
}

/* =========================================================================
 * Validation de commande
 * ====================================================================== */

/* Récapitulatif produits */
.elementor-widget.otk-commerce.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table td.product-name {
	color: var(--otk-ink);
	font-weight: 600;
	line-height: 1.4;
}

.elementor-widget.otk-commerce.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table td.product-name .product-quantity {
	color: var(--otk-ink-3);
	font-weight: 500;
}

.elementor-widget.otk-commerce.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table td.product-total {
	font-weight: 600;
	text-align: right;
}

/* Code promo : lien discret plutôt qu'un gros encadré. */
.otk-commerce .e-woocommerce-coupon-nudge {
	margin: 0;
	color: var(--otk-ink-2);
	font-size: 14px;
}

.otk-commerce .e-woocommerce-coupon-nudge a {
	color: var(--otk-ink);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Moyens de paiement : une carte par moyen, la carte choisie se détache. */
.elementor-widget.otk-commerce .woocommerce #payment ul.payment_methods {
	margin: 0 0 20px;
	padding: 0;
	border: 0;
	list-style: none;
}

.elementor-widget.otk-commerce .woocommerce #payment ul.payment_methods li.wc_payment_method {
	margin: 0 0 8px;
	padding: 14px 16px;
	border: 1px solid var(--otk-line);
	border-radius: var(--otk-radius);
	background: #fff;
	line-height: 1.4;
	transition: border-color .15s ease;
}

.elementor-widget.otk-commerce .woocommerce #payment ul.payment_methods li.wc_payment_method:has(> input:checked) {
	border-color: var(--otk-ink);
	box-shadow: inset 0 0 0 1px var(--otk-ink);
}

.elementor-widget.otk-commerce .woocommerce #payment ul.payment_methods li.wc_payment_method > input[type="radio"] {
	margin: 0 10px 0 0;
	vertical-align: middle;
}

.elementor-widget.otk-commerce .woocommerce #payment ul.payment_methods li.wc_payment_method > label {
	color: var(--otk-ink);
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
}

.elementor-widget.otk-commerce .woocommerce #payment ul.payment_methods li.wc_payment_method > label img {
	max-height: 22px;
	margin-left: 6px;
	vertical-align: middle;
}

.elementor-widget.otk-commerce.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box {
	margin: 12px 0 0;
	padding: 12px 14px;
	border-radius: 6px;
	background: var(--otk-soft);
	color: var(--otk-ink-2);
	font-size: 14px;
	line-height: 1.55;
}

.elementor-widget.otk-commerce .woocommerce #payment .payment_box p:last-child {
	margin-bottom: 0;
}

/* Mentions sous le paiement */
.otk-commerce .woocommerce-privacy-policy-text,
.otk-commerce .woocommerce-terms-and-conditions-wrapper {
	color: var(--otk-ink-3);
	font-size: 13px;
	line-height: 1.55;
}

.otk-commerce .woocommerce-terms-and-conditions-wrapper .woocommerce-form__label-for-checkbox {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 16px 0;
	color: var(--otk-ink);
	font-size: 14px;
	font-weight: 500;
}

.otk-commerce .woocommerce-terms-and-conditions-wrapper .woocommerce-form__label-for-checkbox input {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	margin: 1px 0 0;
}

.otk-commerce .woocommerce-privacy-policy-text a,
.otk-commerce .woocommerce-terms-and-conditions-wrapper a {
	color: var(--otk-ink);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* =========================================================================
 * Commande reçue (rendue dans le widget de validation)
 * ====================================================================== */

.otk-commerce .woocommerce-order > p.woocommerce-thankyou-order-received,
.otk-commerce .woocommerce-order > .woocommerce-notice--success {
	margin: 0 0 20px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--otk-ink);
	font-size: 20px;
	font-weight: 700;
}

.otk-commerce .woocommerce-order > .woocommerce-notice--success::before {
	display: none;
}

.otk-commerce ul.woocommerce-order-overview {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 0;
	margin: 0 0 8px;
	padding: 0;
	border: 1px solid var(--otk-line);
	border-radius: var(--otk-radius);
	list-style: none;
}

/* Les « clearfix » de WooCommerce deviendraient des cases de la grille. */
.otk-commerce ul.woocommerce-order-overview::before,
.otk-commerce ul.woocommerce-order-overview::after,
.otk-commerce .woocommerce-customer-details .woocommerce-columns--addresses::before,
.otk-commerce .woocommerce-customer-details .woocommerce-columns--addresses::after {
	display: none;
	content: none;
}

.otk-commerce .woocommerce-order {
	width: 100%;
	max-width: 880px;
}

.otk-commerce ul.woocommerce-order-overview li {
	margin: 0;
	padding: 14px 18px;
	border: 0;
	border-left: 1px solid var(--otk-line);
	color: var(--otk-ink-3);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .04em;
	line-height: 1.5;
	text-transform: uppercase;
}

.otk-commerce ul.woocommerce-order-overview li:first-child {
	border-left: 0;
}

.otk-commerce ul.woocommerce-order-overview li strong {
	display: block;
	margin-top: 4px;
	color: var(--otk-ink);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0;
	text-transform: none;
	overflow-wrap: anywhere;
}

.otk-commerce .woocommerce-order-details,
.otk-commerce .woocommerce-customer-details,
.otk-commerce .woocommerce-order .bw-order-parcelpoint,
.otk-commerce .woocommerce-order .bw-order-tracking {
	margin: 24px 0 0;
	padding: 28px;
	border: 1px solid var(--otk-line);
	border-radius: var(--otk-radius);
	background: #fff;
}

.otk-commerce .woocommerce-order-details__title,
.otk-commerce .woocommerce-column__title,
.otk-commerce .woocommerce-order .bw-order-parcelpoint h2,
.otk-commerce .woocommerce-order .bw-order-tracking h2 {
	margin: 0 0 16px;
	font-size: 18px;
	font-weight: 700;
}

.elementor-widget.otk-commerce .woocommerce .woocommerce-table--order-details .product-total {
	text-align: right;
	white-space: nowrap;
}

.otk-commerce .woocommerce-table--order-details .product-name a {
	color: var(--otk-ink);
	font-weight: 600;
}

.otk-commerce .woocommerce-customer-details .woocommerce-columns--addresses {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}

.otk-commerce .woocommerce-customer-details .woocommerce-column {
	width: auto;
	float: none;
	margin: 0;
	padding: 0;
}

.otk-commerce .woocommerce-customer-details address {
	padding: 0;
	border: 0;
	color: var(--otk-ink-2);
	font-size: 14px;
	font-style: normal;
	line-height: 1.6;
}

/* =========================================================================
 * Mon compte
 * ====================================================================== */

.otk-commerce.elementor-widget-woocommerce-my-account {
	--tabs-normal-color: var(--otk-ink-2);
	--tabs-hover-color: var(--otk-ink);
	--tabs-active-color: var(--otk-ink);
	--tabs-border-radius: var(--otk-radius);
	--tabs-border-type: solid;
	--tabs-border-color: transparent;
	--tabs-hover-border-color: transparent;
	--tabs-active-border-color: var(--otk-line);
	--tabs-padding: 12px 16px;
	--tabs-spacing: 4px;
	--tabs-divider-weight: 0;
	--general-text-color: var(--otk-ink-2);
	--tables-title-color: var(--otk-ink-3);
	--tables-items-color: var(--otk-ink);
	--tables-divider-border-type: solid;
	--tables-divider-border-color: var(--otk-line);
	--tables-divider-border-width: 1px;
	--tables-links-normal-color: var(--otk-ink);
	--tables-links-hover-color: var(--otk-red);
	--typography-section-titles-color: var(--otk-ink);
	--login-messages-color: var(--otk-ink-2);
	--forms-fields-normal-background-color: #fff;
	--forms-fields-focus-background-color: #fff;
}

/* Le widget Mon compte code en dur fond gris et bouton bleu avec des
 * sélecteurs très précis : on reprend les mêmes, un cran au-dessus. */
.elementor-widget.otk-commerce.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .form-row .input-text,
.elementor-widget.otk-commerce.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .form-row select,
.elementor-widget.otk-commerce.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .form-row textarea,
.elementor-widget.otk-commerce.elementor-widget-woocommerce-my-account .e-my-account-tab .select2-container--default .select2-selection--single {
	min-height: var(--otk-field-h);
	padding: var(--forms-fields-padding);
	border: 1px solid var(--otk-line);
	border-radius: var(--otk-radius);
	background: #fff;
	color: var(--otk-ink);
	font-size: 15px;
}

.elementor-widget.otk-commerce.elementor-widget-woocommerce-my-account .e-my-account-tab .select2-container--default .select2-selection--single {
	padding: 0;
}

.elementor-widget.otk-commerce.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .form-row .input-text:focus,
.elementor-widget.otk-commerce.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .form-row select:focus,
.elementor-widget.otk-commerce.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .form-row textarea:focus {
	border-color: var(--otk-ink);
	box-shadow: 0 0 0 3px rgba(16, 18, 22, .08);
	outline: none;
}

.elementor-widget.otk-commerce.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .login .button,
.elementor-widget.otk-commerce.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .register .button,
.elementor-widget.otk-commerce.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .woocommerce-ResetPassword .button,
.elementor-widget.otk-commerce.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .woocommerce-Button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 54px;
	padding: 0 28px;
	border: 0;
	border-radius: var(--otk-radius);
	background: var(--otk-cta);
	color: #fff;
	font-size: 16px;
	font-weight: 700;
}

.elementor-widget.otk-commerce.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .login .button:hover,
.elementor-widget.otk-commerce.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .register .button:hover,
.elementor-widget.otk-commerce.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .woocommerce-ResetPassword .button:hover,
.elementor-widget.otk-commerce.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .woocommerce-Button:hover {
	background: var(--otk-cta-hover);
	color: #fff;
}

/* Enregistrer (adresses, détails du compte) : largeur du texte. */
.elementor-widget.otk-commerce.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .woocommerce-Button[name="save_account_details"],
.elementor-widget.otk-commerce.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .woocommerce-Button[name="save_address"] {
	width: auto;
}

/* Boutons dans les tableaux (Voir une commande) : secondaires. */
.elementor-widget.otk-commerce.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .shop_table .button {
	min-height: 36px;
	padding: 6px 14px;
	border: 1px solid var(--otk-ink);
	border-radius: var(--otk-radius);
	background: #fff;
	color: var(--otk-ink);
	font-size: 13px;
	font-weight: 600;
	display: inline;
	margin-left: auto;
    margin-right: 12px;
}

.elementor-widget.otk-commerce.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .shop_table .button:hover {
	background: var(--otk-ink);
	color: #fff;
}

/* Connexion seule (inscription désactivée) : formulaire centré, largeur de lecture. */
.otk-commerce .woocommerce > h2 + form.login,
.otk-commerce .woocommerce > form.login {
	max-width: 440px;
}

.otk-commerce .woocommerce-MyAccount-navigation ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.otk-commerce .woocommerce-MyAccount-navigation-link a {
	display: block;
	border-radius: var(--otk-radius);
	color: var(--otk-ink-2);
	font-size: 15px;
	font-weight: 600;
	transition: background-color .15s ease, color .15s ease;
}

.elementor-widget.otk-commerce .woocommerce-MyAccount-navigation-link a {
	background: transparent;
}

.elementor-widget.otk-commerce .woocommerce-MyAccount-navigation-link a:hover {
	background: var(--otk-soft);
	color: var(--otk-ink);
}

.elementor-widget.otk-commerce .woocommerce-MyAccount-navigation-link.is-active a {
	border: 1px solid var(--otk-line);
	background: #fff;
	color: var(--otk-ink);
}

.otk-commerce .woocommerce-MyAccount-navigation-link--customer-logout a {
	color: var(--otk-ink-3);
}

.otk-commerce .woocommerce-MyAccount-content {
	padding: 28px;
	border-radius: var(--otk-radius);
	background: #fff;
	color: var(--otk-ink-2);
	font-size: 15px;
	line-height: 1.6;
}

.otk-commerce .woocommerce-MyAccount-content a:not(.button) {
	color: var(--otk-ink);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.otk-commerce .woocommerce-MyAccount-content a:not(.button):hover {
	color: var(--otk-red);
}

/* Statut de commande en pastille */
.otk-commerce .woocommerce-orders-table__cell-order-status {
	font-size: 13px;
	font-weight: 600;
}

/* Formulaires de connexion et d'inscription */
.otk-commerce .woocommerce form.login,
.otk-commerce .woocommerce form.register {
	margin: 0;
	padding: 28px;
	border: 1px solid var(--otk-line);
	border-radius: var(--otk-radius);
	background: #fff;
}

.otk-commerce .woocommerce .lost_password a {
	color: var(--otk-ink-2);
	font-size: 14px;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* =========================================================================
 * Mobile
 * ====================================================================== */

@media (max-width: 767px) {
	.otk-commerce {
		--sections-padding: 20px 16px;
		--sections-margin: 16px;
	}

	.otk-commerce .woocommerce-MyAccount-content,
	.otk-commerce .woocommerce-order-details,
	.otk-commerce .woocommerce-customer-details,
	.otk-commerce .woocommerce form.login,
	.otk-commerce .woocommerce form.register {
		padding: 20px 16px;
	}

	.otk-commerce .woocommerce-customer-details .woocommerce-columns--addresses {
		grid-template-columns: 1fr;
	}

	.otk-commerce ul.woocommerce-order-overview {
		grid-template-columns: 1fr 1fr;
	}

	.otk-commerce ul.woocommerce-order-overview li {
		border-top: 1px solid var(--otk-line);
	}

	.otk-commerce ul.woocommerce-order-overview li:nth-child(odd) {
		border-left: 0;
	}

	.otk-commerce ul.woocommerce-order-overview li:nth-child(-n+2) {
		border-top: 0;
	}

	.otk-commerce.elementor-widget-woocommerce-cart .coupon .coupon-col {
		flex-direction: column;
	}
}


.elementor-widget-woocommerce-checkout-page .e-checkout__container{
	gap: 24px;
}

.e-checkout__column-inner.e-sticky-right-column > div {
	margin-bottom: 24px !important;
}

#wc-stripe-upe-form{
	margin: 0 !important;
	padding: 0 !important; 
	border: none !important;
}

.form-row.validate-required{
	margin-bottom: 12px !important;
}