/*
 * OS Framework — WooCommerce compatibility layer.
 *
 * Structural safeguards only. Catalogue cards, product pages, premium account,
 * cart and checkout design belong to the optional OS WooCommerce module.
 */

.woocommerce-page .os-main--woocommerce,
.woocommerce-page .os-commerce-page,
.woocommerce-page .woocommerce,
.woocommerce-page .woocommerce > * {
	min-width: 0;
}

.woocommerce-page .os-commerce-page {
	width: 100%;
	max-width: none;
}

.woocommerce-page .woocommerce::before,
.woocommerce-page .woocommerce::after,
.woocommerce-page .cart-collaterals::before,
.woocommerce-page .cart-collaterals::after {
	display: none !important;
	content: none !important;
}

.woocommerce img,
.woocommerce-page img,
.wc-block-components-product-image img {
	max-width: 100%;
	height: auto;
}

.woocommerce table.shop_table,
.wc-block-cart-items,
.wc-block-components-order-summary {
	max-width: 100%;
}

.woocommerce form .form-row,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
	max-width: 100%;
}

/* Neutralise uniquement les anciens floats sur les pages système. */
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content,
.woocommerce-account .woocommerce-Addresses .woocommerce-Address,
.woocommerce-account:not(.logged-in) .u-column1,
.woocommerce-account:not(.logged-in) .u-column2,
.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2,
.woocommerce-checkout #order_review,
.woocommerce-checkout #order_review_heading {
	float: none;
	max-width: none;
}

/* Mise en page de secours : lisible sans module OS WooCommerce. */
.woocommerce-account.logged-in .woocommerce {
	display: grid;
	grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
	gap: clamp(28px, 4vw, 52px);
	align-items: start;
}

.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content {
	width: 100%;
	min-width: 0;
	margin: 0;
}

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

.woocommerce-account .woocommerce-MyAccount-navigation a {
	display: block;
	padding: .75rem 0;
	color: inherit;
	text-decoration: none;
	border-bottom: 1px solid var(--os-border);
}

.woocommerce-account .woocommerce-MyAccount-navigation .is-active > a {
	font-weight: 700;
}

.woocommerce-account:not(.logged-in) .u-columns,
.woocommerce-account .woocommerce-Addresses {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(24px, 4vw, 48px);
}

.woocommerce-account:not(.logged-in) :is(.u-column1, .u-column2),
.woocommerce-account .woocommerce-Address {
	width: 100%;
	margin: 0;
}

.woocommerce-cart .cart-collaterals {
	display: flex;
	justify-content: flex-end;
	width: 100%;
}

.woocommerce-cart .cart-collaterals .cart_totals {
	width: min(100%, 560px);
	margin: 0;
}

.woocommerce-checkout form.checkout {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
	gap: clamp(30px, 5vw, 64px);
	align-items: start;
}

.woocommerce-checkout #customer_details,
.woocommerce-checkout #order_review,
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout #customer_details :is(.col-1, .col-2) {
	width: 100%;
	min-width: 0;
}

.woocommerce-checkout #order_review,
.woocommerce-checkout #order_review_heading {
	grid-column: 2;
}

.wc-block-cart,
.wc-block-checkout,
.wc-block-components-sidebar-layout,
.wc-block-components-main,
.wc-block-components-sidebar {
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
}

@media (max-width: 960px) {
	.woocommerce-account.logged-in .woocommerce,
	.woocommerce-checkout form.checkout {
		grid-template-columns: 1fr;
	}

	.woocommerce-checkout #order_review,
	.woocommerce-checkout #order_review_heading {
		grid-column: 1;
	}
}

@media (max-width: 767px) {
	.woocommerce-account:not(.logged-in) .u-columns,
	.woocommerce-account .woocommerce-Addresses {
		grid-template-columns: 1fr;
	}

	.woocommerce-cart .cart-collaterals .cart_totals {
		width: 100%;
	}

	.woocommerce table.shop_table_responsive tr,
	.woocommerce-page table.shop_table_responsive tr {
		display: block;
	}
}


/*
 * Account endpoint safeguards.
 * Targeted structural corrections only: no template override and no impact on
 * catalogue, cart, checkout or product pages.
 */
.woocommerce-account .woocommerce-Addresses {
	align-items: stretch;
}

.woocommerce-account .woocommerce-Addresses > :is(
	.woocommerce-Address,
	.u-column1,
	.u-column2,
	.col-1,
	.col-2
) {
	width: 100% !important;
	max-width: none !important;
	min-width: 0;
	margin: 0 !important;
	float: none !important;
}

.woocommerce-account .woocommerce-Address {
	padding: clamp(20px, 2.4vw, 28px);
	border: 1px solid var(--os-border);
	border-radius: var(--os-layout-card-radius, 12px);
	background: var(--os-surface-alt, #f7f9fc);
}

.woocommerce-account .woocommerce-Address-title {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 14px;
}

.woocommerce-account .woocommerce-Address-title :is(h2, h3) {
	max-width: 70%;
	margin: 0;
	font-size: clamp(20px, 2vw, 28px);
	line-height: 1.15;
}

.woocommerce-account .woocommerce-Address-title .edit {
	flex: 0 0 auto;
	margin: 2px 0 0;
	float: none !important;
	font-size: .875rem;
	font-weight: 700;
}

@media (max-width: 767px) {
	.woocommerce-account .woocommerce-Address-title {
		display: block;
	}

	.woocommerce-account .woocommerce-Address-title :is(h2, h3) {
		max-width: none;
		font-size: 20px;
	}

	.woocommerce-account .woocommerce-Address-title .edit {
		display: inline-block;
		margin-top: 8px;
	}
}

/*
 * Product purchase form spacing.
 * Adds a neutral separation from the product content above without changing
 * the active client design, button styling or WooCommerce structure.
 */
.single-product div.product .summary form.cart {
	margin-top: 1.5rem;
}

@media (max-width: 767px) {
	.single-product div.product .summary form.cart {
		margin-top: 1.125rem;
	}
}

/*
 * Quantity controls on touch screens.
 * Kept visually neutral: colors, radius and typography remain inherited from
 * the active client design. Desktop keeps the theme/WooCommerce native UI.
 */
.os-qty-control {
	display: none;
}

@media (max-width: 767px) {
	.single-product form.cart .quantity {
		display: inline-flex;
		align-items: stretch;
		justify-content: center;
		width: auto;
		min-width: 108px;
		margin: 0;
		overflow: hidden;
	}

	.single-product form.cart .quantity .qty {
		flex: 0 0 42px;
		width: 42px;
		min-width: 42px;
		max-width: 42px;
		margin: 0;
		padding-inline: 4px;
		text-align: center;
		border-radius: 0;
		appearance: textfield;
		-moz-appearance: textfield;
	}

	.single-product form.cart .quantity .qty::-webkit-inner-spin-button,
	.single-product form.cart .quantity .qty::-webkit-outer-spin-button {
		margin: 0;
		-webkit-appearance: none;
	}

	.single-product form.cart .quantity .os-qty-control {
		display: inline-flex;
		flex: 0 0 33px;
		align-items: center;
		justify-content: center;
		width: 33px;
		min-width: 33px;
		min-height: 44px;
		margin: 0;
		padding: 0;
		color: inherit;
		font: inherit;
		font-size: 20px;
		font-weight: 500;
		line-height: 1;
		background: transparent;
		border: 0;
		border-radius: 0;
		box-shadow: none;
		cursor: pointer;
		touch-action: manipulation;
	}

	.single-product form.cart .quantity .os-qty-control:disabled {
		cursor: not-allowed;
		opacity: .45;
	}
}


/* ==========================================================
   CORRECTIF CIBLÉ — MON COMPTE / ADRESSES
   Force la grille WooCommerce sans modifier les templates.
   ========================================================== */

body.woocommerce-account.woocommerce-edit-address
.woocommerce-MyAccount-content
.woocommerce-Addresses,
body.woocommerce-account
.woocommerce-MyAccount-content
.u-columns.woocommerce-Addresses.col2-set.addresses {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	grid-auto-flow: row !important;
	gap: 24px !important;
	width: 100% !important;
	max-width: none !important;
	margin: 24px 0 0 !important;
	padding: 0 !important;
	clear: both !important;
}

body.woocommerce-account
.woocommerce-MyAccount-content
.woocommerce-Addresses
> .u-column1.woocommerce-Address {
	grid-column: 1 !important;
	grid-row: 1 !important;
}

body.woocommerce-account
.woocommerce-MyAccount-content
.woocommerce-Addresses
> .u-column2.woocommerce-Address {
	grid-column: 2 !important;
	grid-row: 1 !important;
}

body.woocommerce-account
.woocommerce-MyAccount-content
.woocommerce-Addresses
> .woocommerce-Address {
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	min-width: 0 !important;
	height: auto !important;
	margin: 0 !important;
	padding: 22px !important;
	float: none !important;
	clear: none !important;
	box-sizing: border-box !important;
	border: 1px solid var(--os-border, #dbe5ec) !important;
	border-radius: 14px !important;
	background: var(--os-surface-alt, #f7f9fc) !important;
}

body.woocommerce-account
.woocommerce-MyAccount-content
.woocommerce-Address-title {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto !important;
	gap: 12px 18px !important;
	align-items: start !important;
	width: 100% !important;
	margin: 0 0 14px !important;
	padding: 0 !important;
}

body.woocommerce-account
.woocommerce-MyAccount-content
.woocommerce-Address-title
:is(h2, h3) {
	min-width: 0 !important;
	max-width: none !important;
	margin: 0 !important;
	font-size: clamp(20px, 2vw, 27px) !important;
	line-height: 1.12 !important;
	overflow-wrap: normal !important;
	word-break: normal !important;
	hyphens: none !important;
}

body.woocommerce-account
.woocommerce-MyAccount-content
.woocommerce-Address-title
.edit {
	align-self: start !important;
	margin: 3px 0 0 !important;
	float: none !important;
	white-space: nowrap !important;
	font-size: 12px !important;
	line-height: 1.35 !important;
}

body.woocommerce-account
.woocommerce-MyAccount-content
.woocommerce-Address address {
	margin: 0 !important;
	font-size: 15px !important;
	line-height: 1.65 !important;
}

body.woocommerce-account .os-entry-header h1 {
	font-size: clamp(38px, 4vw, 54px) !important;
	line-height: 1 !important;
}

body.woocommerce-account
.woocommerce-MyAccount-content
:is(h1, h2, h3) {
	overflow-wrap: normal !important;
	word-break: normal !important;
	hyphens: none !important;
}

@media (max-width: 900px) {
	body.woocommerce-account
	.woocommerce-MyAccount-content
	.u-columns.woocommerce-Addresses.col2-set.addresses {
		grid-template-columns: 1fr !important;
	}

	body.woocommerce-account
	.woocommerce-MyAccount-content
	.woocommerce-Addresses
	> .u-column1.woocommerce-Address,
	body.woocommerce-account
	.woocommerce-MyAccount-content
	.woocommerce-Addresses
	> .u-column2.woocommerce-Address {
		grid-column: 1 !important;
		grid-row: auto !important;
	}
}

@media (max-width: 600px) {
	body.woocommerce-account .os-entry-header h1 {
		font-size: 34px !important;
	}

	body.woocommerce-account
	.woocommerce-MyAccount-content
	.woocommerce-Address-title {
		grid-template-columns: 1fr !important;
	}

	body.woocommerce-account
	.woocommerce-MyAccount-content
	.woocommerce-Address-title
	.edit {
		margin-top: 0 !important;
		white-space: normal !important;
	}

	body.woocommerce-account
	.woocommerce-MyAccount-content
	.woocommerce-Address-title
	:is(h2, h3) {
		font-size: 21px !important;
	}
}


/* ==========================================================
   CORRECTIF CIBLÉ — CONNEXION MON COMPTE / ORDINATEUR
   Aligne le titre et le formulaire sans toucher au compte connecté.
   ========================================================== */

@media (min-width: 901px) {

	body.woocommerce-account:not(.logged-in)
	main.os-main
	.os-entry-content
	> .woocommerce {
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		width: 100% !important;
		max-width: 560px !important;
		margin-right: auto !important;
		margin-left: auto !important;
	}

	body.woocommerce-account:not(.logged-in)
	main.os-main
	.os-entry-content
	> .woocommerce
	> .woocommerce-notices-wrapper {
		width: 100% !important;
		max-width: 440px !important;
		margin-right: auto !important;
		margin-left: auto !important;
	}

	body.woocommerce-account:not(.logged-in)
	main.os-main
	.os-entry-content
	> .woocommerce
	> h2 {
		display: block !important;
		width: 100% !important;
		max-width: 440px !important;
		margin: 0 auto 20px !important;
		padding: 0 !important;
		float: none !important;
		clear: both !important;
		text-align: center !important;
	}

	body.woocommerce-account:not(.logged-in)
	main.os-main
	.os-entry-content
	> .woocommerce
	> form.woocommerce-form-login {
		display: block !important;
		width: 100% !important;
		max-width: 440px !important;
		margin: 0 auto !important;
		float: none !important;
		clear: both !important;
		box-sizing: border-box !important;
	}

	body.woocommerce-account:not(.logged-in)
	main.os-main
	.os-entry-content
	> .woocommerce
	> form.woocommerce-form-login
	.form-row {
		width: 100% !important;
		float: none !important;
		clear: both !important;
		box-sizing: border-box !important;
	}

	body.woocommerce-account:not(.logged-in)
	main.os-main
	.os-entry-content
	> .woocommerce
	> form.woocommerce-form-login
	.woocommerce-form-login__rememberme {
		width: auto !important;
		float: none !important;
	}
}

