﻿/* Compatibility layer for parent-theme templates adjusted during the 2026 mandate.
 * Extracted from the archived redesign bundle (v2.css); scoped to the service-status
 * notices and the restructured WooCommerce product, cart and checkout views. */

@font-face {
	font-family: "Dr Brutus Sans";
	src: url("../fonts/NunitoSans-Regular.ttf") format("truetype");
	font-style: normal;
	font-weight: 400;
	font-display: swap;
}

@font-face {
	font-family: "Dr Brutus Sans";
	src: url("../fonts/NunitoSans-SemiBold.ttf") format("truetype");
	font-style: normal;
	font-weight: 600 700;
	font-display: swap;
}

@font-face {
	font-family: "Dr Brutus Display";
	src: url("../fonts/TheSeasons-Lt.otf") format("opentype");
	font-style: normal;
	font-weight: 300 500;
	font-display: swap;
}

:root {
	--drb-color-ink: #333a42;
	--drb-color-slate: #434953;
	--drb-color-sand: #c5af9b;
	--drb-color-soft-sand: #dad4ca;
	--drb-color-mist: #f1f2f0;
	--drb-color-white: #fff;
	--drb-color-focus: #1d5f8a;
	--drb-color-line: rgb(51 58 66 / 16%);
	--drb-content-width: 760px;
	--drb-wide-width: 1280px;
	--drb-radius: 0;
	--drb-transition: 180ms ease;
}

.alignwide {
	width: min(calc(100% - 2rem), var(--drb-wide-width));
	margin-inline: auto;
}

.eyebrow {
	margin: 0 0 1rem;
	color: #876f5b;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	line-height: 1.4;
	text-transform: uppercase;
}

.text-link,
.card-link {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	border-bottom: 1px solid currentColor;
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-decoration: none;
	text-transform: uppercase;
}

.text-link--light {
	color: var(--drb-color-white);
}

/* Service status and intervention template. */
.service-status-notice {
	padding-block: 2.5rem;
	border-bottom: 1px solid #d8c2ad;
	background: #f1e8df;
}

.service-status-notice__inner {
	display: grid;
	gap: 0.5rem 4rem;
}

.service-status-notice h2 {
	font-size: clamp(1.7rem, 1.45rem + 1vw, 2.4rem);
}

.service-status-notice p:not(.eyebrow) {
	max-width: 55rem;
}

/* The parent theme turns the product gallery wrapper into a four-column grid.
 * WooCommerce's FlexSlider also sizes that wrapper as a horizontal track,
 * which makes products with several images overflow by several viewports. */
.single-product .product-font .flex.justify-center {
	min-width: 0;
	max-width: 100%;
}

.single-product .product-font .woocommerce-product-gallery {
	box-sizing: border-box;
	float: none !important;
	width: 100% !important;
	min-width: 0 !important;
	max-width: 100% !important;
}

.single-product .product-font .woocommerce-product-gallery .flex-viewport {
	width: 100% !important;
	min-width: 0;
	max-width: 100%;
}

.single-product .product-font .woocommerce-product-gallery__wrapper {
	display: block !important;
	grid-template-columns: none !important;
	gap: 0 !important;
}

.single-product .product-font .woocommerce-product-gallery__image:first-child {
	grid-column: auto !important;
}

/* WooCommerce purchase affordances retained from the established bookstore. */
.site-header__cart {
	position: relative;
	display: inline-grid;
	flex: 0 0 2.75rem;
	width: 2.75rem;
	height: 2.75rem;
	place-items: center;
	border: 1px solid rgb(51 58 66 / 18%);
	border-radius: 999px;
	color: var(--drb-color-ink);
	text-decoration: none;
}

.site-header__cart:hover,
.site-header__cart:focus-visible {
	border-color: var(--drb-color-sand);
	background: var(--drb-color-mist);
	color: var(--drb-color-ink);
}

.site-header__cart svg {
	display: block;
	width: 1.35rem;
	height: 1.35rem;
}

.site-header__cart-count {
	position: absolute;
	top: -0.3rem;
	right: -0.3rem;
	display: grid;
	min-width: 1.25rem;
	height: 1.25rem;
	padding-inline: 0.25rem;
	place-items: center;
	border: 2px solid var(--drb-color-white);
	border-radius: 999px;
	background: var(--drb-color-ink);
	color: var(--drb-color-white);
	font-family: "Dr Brutus Sans", Arial, sans-serif;
	font-size: 0.65rem;
	font-weight: 800;
	line-height: 1;
}

.site-header .site-header__cart {
	color: var(--drb-color-white);
	border-color: rgb(255 255 255 / 24%);
}

.site-header .site-header__cart:hover,
.site-header .site-header__cart:focus-visible {
	border-color: var(--drb-color-sand);
	background: transparent;
	color: var(--drb-color-soft-sand);
}

/* Product-card presentation belongs to the active theme, not to repeated
 * inline <style> blocks inside each WooCommerce list item. */
ul.products li.product,
.single-product .related.products li.product {
	list-style: none;
}

ul.products li.product a img,
.single-product .related.products li.product a img {
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	transition: opacity 0.3s ease;
}

ul.products li.product a:hover img,
.single-product .related.products li.product a:hover img {
	opacity: 0.72;
}

ul.products li.product .woocommerce-loop-product__title,
.single-product .related.products li.product .woocommerce-loop-product__title {
	margin: 1.5rem 0 0.5rem;
	color: var(--drb-color-ink) !important;
	font-family: "Dr Brutus Sans", Arial, sans-serif !important;
	font-size: 0.875rem !important;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
}

ul.products li.product .price,
.single-product .related.products li.product .price {
	text-align: center;
}

ul.products li.product .button {
	display: inline-flex;
	width: 100%;
	min-height: 2.75rem;
	align-items: center;
	justify-content: center;
	margin-top: 0.75rem !important;
	text-align: center;
}

/* The archive template uses a native CSS grid, while WooCommerce's legacy
 * stylesheet still floats every card at 22.05%. Let each card occupy its grid
 * cell and keep the purchase action aligned at the bottom of the row. */
:is(.post-type-archive-product, .tax-product_cat)ul.products li.product {
	display: flex;
	float: none !important;
	width: 100% !important;
	min-width: 0;
	height: 100%;
	flex-direction: column;
	justify-content: space-between;
	margin: 0 !important;
}

ul.products::before,
ul.products::after {
	display: none !important;
	content: none !important;
}

:is(.post-type-archive-product, .tax-product_cat)ul.products li.product > :is(.woocommerce-LoopProduct-link, .woocommerce-loop-product__link) {
	display: flex;
	min-width: 0;
	flex: 1 1 auto;
	flex-direction: column;
}

:is(.post-type-archive-product, .tax-product_cat)ul.products li.product .custom-product-wrapper {
	display: flex;
	min-width: 0;
	flex: 1 1 auto;
	flex-direction: column;
}

:is(.post-type-archive-product, .tax-product_cat)ul.products li.product .price {
	margin-top: auto;
}

:is(.post-type-archive-product, .tax-product_cat)ul.products li.product > .button {
	flex: 0 0 auto;
	margin-top: auto !important;
}

/* Keep purchase actions recognizable from the established bookstore while
 * preventing WooCommerce's default purple "alt" button and legacy Tailwind
 * text utilities from leaking into the V2. The hover/focus treatment retains
 * the brand palette with stronger contrast than the historical gold-on-white
 * hover state. */
div.product form.cart .single_add_to_cart_button.button.alt,
.single-product .related.products a.button {
	min-height: 2.75rem;
	border: 2px solid var(--drb-color-sand);
	border-radius: 9999px;
	background: var(--drb-color-sand);
	color: var(--drb-color-ink) !important;
	box-shadow: 0 1px 2px rgb(0 0 0 / 5%);
	font-size: 0.875rem !important;
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.2;
	text-decoration: none;
}

.single-product .product-quantity-label {
	margin: 0 0 0.5rem;
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

/* Checkout
 *
 * The legacy checkout was nested inside the editorial 760px content measure,
 * then reduced by another 32px and split around a 192px gap. At desktop that
 * left each column only 236px wide. These rules give the transactional view a
 * true wide canvas and keep every surface aligned to the same two-column grid.
 */
.woocommerce-checkout .singular-entry > .entry-content.aligncontent {
	width: 100%;
	max-width: none;
	margin-inline: 0;
}

.woocommerce-checkout .entry-content > .woocommerce {
	width: min(calc(100% - 2rem), var(--drb-wide-width));
	max-width: none;
	margin-inline: auto;
}

.woocommerce-checkout div.woocommerce-notices-wrapper,
.woocommerce-checkout div.woocommerce-form-coupon-toggle,
.woocommerce-checkout form.checkout_coupon.woocommerce-form-coupon {
	position: relative;
	z-index: 1;
	width: 100%;
	margin-inline: 0;
}

@media (max-width: 47.99rem) {
	/* WooCommerce floats this action into the message text by default. */
	.woocommerce-checkout .woocommerce-message {
		display: flex;
		flex-direction: column-reverse;
		align-items: stretch;
		gap: 1rem;
	}

	.woocommerce-checkout .woocommerce-message .button.wc-forward {
		float: none;
		width: 100%;
		min-height: 2.75rem;
		margin: 0;
		justify-content: center;
		text-align: center;
	}
}

.woocommerce-checkout .drb-checkout-shell {
	width: 100%;
	margin-top: 2rem;
	overflow: hidden;
	border: 1px solid var(--drb-color-line);
	background: var(--drb-color-white);
}

.woocommerce-checkout form.checkout.drb-checkout-layout {
	display: grid;
	width: 100%;
	max-width: none;
	grid-template-columns: minmax(0, 1fr);
	column-gap: 0 !important;
	padding: 0;
	margin: 0;
}

.woocommerce-checkout .drb-checkout-customer,
.woocommerce-checkout .drb-checkout-summary {
	min-width: 0;
	padding: clamp(2rem, 5vw, 4rem);
}

.woocommerce-checkout .drb-checkout-summary {
	border-top: 1px solid var(--drb-color-line);
	background: var(--drb-color-mist);
}

.woocommerce-checkout .drb-checkout-column-inner {
	width: 100%;
	max-width: 36rem;
	margin-inline: auto;
}

.woocommerce-checkout .drb-checkout-summary .drb-checkout-column-inner {
	max-width: 30rem;
}

.woocommerce-checkout .drb-checkout-section {
	padding: 0;
	margin: 0;
}

.woocommerce-checkout .drb-checkout-section + .drb-checkout-section {
	padding-top: clamp(2.5rem, 5vw, 4rem);
}

.woocommerce-checkout .drb-checkout-section > h2,
.woocommerce-checkout #summary-heading {
	margin: 0 0 1.5rem;
	font-size: clamp(2rem, 2.4vw, 3rem);
	line-height: 1.05;
}

.woocommerce-checkout .drb-checkout-additional > h2 {
	font-family: "Dr Brutus Display", Georgia, serif;
	font-size: clamp(1.65rem, 2vw, 2.25rem);
	font-weight: 300;
	line-height: 1.1;
}

.woocommerce-checkout .drb-checkout-fields {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: 1.25rem !important;
	margin-top: 0;
}

.woocommerce-checkout .drb-checkout-fields > * {
	width: 100% !important;
	grid-column: 1 / -1 !important;
	margin: 0 !important;
	float: none !important;
	clear: none !important;
}

.woocommerce-checkout form.checkout label {
	display: block;
	margin-bottom: 0.4rem;
	font-size: 0.8125rem !important;
	font-weight: 700;
	letter-spacing: 0.035em;
	line-height: 1.35;
	text-transform: uppercase;
}

.woocommerce-checkout form.checkout abbr {
	text-decoration: none;
}

.woocommerce-checkout form.checkout .optional {
	display: none;
}

.woocommerce-checkout form.checkout :is(input.input-text, select, textarea),
.woocommerce-checkout form.checkout .select2-selection {
	width: 100% !important;
	min-height: 3rem;
	border: 1px solid rgb(48 55 64 / 42%) !important;
	border-radius: 0 !important;
	background: var(--drb-color-white);
	box-shadow: none;
	font-family: inherit !important;
}

.woocommerce-checkout form.checkout :is(input.input-text, select, textarea) {
	padding: 0.7rem 0.85rem;
}

.woocommerce-checkout form.checkout textarea.input-text {
	min-height: 8rem;
	resize: vertical;
}

.woocommerce-checkout form.checkout .select2-container {
	display: block;
	width: 100% !important;
}

.woocommerce-checkout form.checkout .select2-selection {
	display: flex;
	align-items: center;
}

.woocommerce-checkout form.checkout .select2-selection__rendered {
	padding-inline: 0.85rem 2.5rem;
	line-height: 1.35 !important;
}

.woocommerce-checkout form.checkout .select2-selection__arrow {
	top: 50% !important;
	right: 0.65rem !important;
	transform: translateY(-50%);
}

/* Tailwind's w-full utility otherwise overrides Select2's visually-hidden
 * native select and reports a false horizontal overflow on small screens. */
.woocommerce-checkout form.checkout select.select2-hidden-accessible {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
}

.woocommerce-checkout form.checkout :is(input.input-text, select, textarea):focus,
.woocommerce-checkout form.checkout .select2-container--focus .select2-selection,
.woocommerce-checkout form.checkout .select2-container--open .select2-selection {
	border-color: var(--drb-color-focus) !important;
	outline: 3px solid rgb(23 103 140 / 22%);
	outline-offset: 1px;
}

.woocommerce-checkout .drb-checkout-pickup-note {
	padding: 1rem;
	margin: 0 0 1.5rem;
	border-left: 3px solid var(--drb-color-sand);
	background: rgb(255 255 255 / 72%);
	font-size: 0.9rem;
	line-height: 1.5;
}

.woocommerce-checkout .drb-checkout-items {
	padding: 0;
	margin: 0;
	list-style: none;
}

.woocommerce-checkout .drb-checkout-item {
	display: grid;
	grid-template-columns: 4.5rem minmax(0, 1fr) auto;
	gap: 1rem;
	align-items: start;
	padding: 1.5rem 0;
	border-top: 1px solid var(--drb-color-line);
}

.woocommerce-checkout .drb-checkout-item > img {
	width: 4.5rem !important;
	height: 4.5rem !important;
	object-fit: contain;
}

.woocommerce-checkout .drb-checkout-item__details {
	min-width: 0;
}

.woocommerce-checkout .drb-checkout-item__title {
	margin: 0 0 0.35rem;
	font-family: "Dr Brutus Sans", Arial, sans-serif;
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.035em;
	line-height: 1.3;
	text-transform: uppercase;
	overflow-wrap: anywhere;
}

.woocommerce-checkout .drb-checkout-item__quantity,
.woocommerce-checkout .drb-checkout-item__meta,
.woocommerce-checkout .drb-checkout-item__price {
	margin: 0;
	font-size: 0.875rem;
	line-height: 1.45;
}

.woocommerce-checkout .drb-checkout-item__price {
	font-weight: 700;
	white-space: nowrap;
}

.woocommerce-checkout .drb-checkout-totals {
	padding-top: 1.5rem;
	margin: 0;
	border-top: 1px solid var(--drb-color-line);
}

.woocommerce-checkout .drb-checkout-totals > div {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	padding-block: 0.65rem;
}

.woocommerce-checkout .drb-checkout-totals :is(dt, dd, p) {
	margin: 0;
}

.woocommerce-checkout .drb-checkout-totals > div:last-of-type {
	padding-top: 1.25rem;
	margin-top: 0.5rem;
	border-top: 1px solid var(--drb-color-line);
	font-size: 1.125rem;
}

.woocommerce-checkout #payment {
	margin-top: 1.5rem;
}

.woocommerce-checkout #payment .woocommerce-info {
	padding: 1rem 1rem 1rem 3rem;
	margin: 0;
	border: 1px solid var(--drb-color-line);
	border-top: 3px solid var(--drb-color-sand);
	background: rgb(255 255 255 / 74%);
	line-height: 1.5;
}

.woocommerce-checkout #payment .woocommerce-info::before {
	top: 1rem;
	left: 1rem;
}

.woocommerce-checkout .wc_payment_methods {
	gap: 1rem;
	margin: 0;
}

.woocommerce-checkout .payment_method_square_credit_card,
.woocommerce-checkout .payment_method_square_credit_card p {
	margin-bottom: 0.5rem;
	font-family: "Dr Brutus Sans", Arial, sans-serif !important;
	font-weight: 600 !important;
}

.woocommerce-checkout .drb-checkout-place-order {
	padding: 1rem;
	margin: 1rem 0 0 !important;
	background: rgb(255 255 255 / 54%);
}

.woocommerce-checkout #payment #place_order.drb-checkout-submit {
	display: inline-flex;
	width: 100%;
	min-height: 3.25rem;
	align-items: center;
	justify-content: center;
	padding: 0.85rem 1.25rem;
	margin: 0 !important;
	float: none;
	border: 2px solid var(--drb-color-ink);
	border-radius: 0;
	background: var(--drb-color-ink);
	color: var(--drb-color-white);
	font-family: "Dr Brutus Sans", Arial, sans-serif !important;
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.3;
	text-align: center;
	text-transform: uppercase;
}

.woocommerce-checkout #payment #place_order.drb-checkout-submit:hover,
.woocommerce-checkout #payment #place_order.drb-checkout-submit:focus-visible {
	border-color: var(--drb-color-sand);
	background: var(--drb-color-sand);
	color: var(--drb-color-ink);
}

.woocommerce-checkout #payment #place_order.drb-checkout-submit:focus-visible {
	outline: 3px solid var(--drb-color-focus);
	outline-offset: 3px;
}

.woocommerce-checkout #payment #place_order.drb-checkout-submit:disabled {
	cursor: not-allowed;
	opacity: 0.55;
}

.woocommerce-checkout a.woocommerce-remove-coupon {
	font-family: inherit !important;
}

@media (max-width: 39.99rem) {
	.woocommerce-checkout .drb-checkout-fields {
		grid-template-columns: minmax(0, 1fr) !important;
	}

	.woocommerce-checkout .drb-checkout-fields > .form-row-first,
	.woocommerce-checkout .drb-checkout-fields > .form-row-last {
		grid-column: 1 !important;
	}

	.woocommerce-checkout .drb-checkout-item {
		grid-template-columns: 3.75rem minmax(0, 1fr);
		gap: 0.75rem;
	}

	.woocommerce-checkout .drb-checkout-item > img {
		width: 3.75rem !important;
		height: 3.75rem !important;
	}

	.woocommerce-checkout .drb-checkout-item__price {
		grid-column: 2;
	}
}

@media (min-width: 40rem) {
	.woocommerce-checkout .drb-checkout-fields:not(.drb-checkout-fields--single) > .form-row-first {
		grid-column: 1 !important;
	}

	.woocommerce-checkout .drb-checkout-fields:not(.drb-checkout-fields--single) > .form-row-last {
		grid-column: 2 !important;
	}
}

@media (min-width: 64rem) {
	.woocommerce-checkout form.checkout.drb-checkout-layout {
		grid-template-columns: minmax(0, 1.1fr) minmax(22rem, 0.9fr) !important;
	}

	.woocommerce-checkout .drb-checkout-customer,
	.woocommerce-checkout .drb-checkout-summary {
		grid-row: 1;
	}

	.woocommerce-checkout .drb-checkout-customer {
		grid-column: 1;
	}

	.woocommerce-checkout .drb-checkout-summary {
		grid-column: 2;
		border-top: 0;
		border-left: 1px solid var(--drb-color-line);
	}
}

.woocommerce-cart a.woocommerce-remove-coupon,
.woocommerce-cart .input-text {
	font-family: inherit !important;
}

.woocommerce-cart .input-text {
	border-color: #d1d5db;
	border-radius: 0 !important;
}

.woocommerce-cart .variation dt {
	margin-top: 1rem;
}

.woocommerce-cart .woocommerce-shipping-destination {
	margin-block: 0.5rem;
}

.single-product .related.products a.button {
	width: 100%;
	margin-top: 0.75rem !important;
}

div.product form.cart .single_add_to_cart_button.button.alt:hover,
div.product form.cart .single_add_to_cart_button.button.alt:focus-visible,
.single-product .related.products a.button:hover,
.single-product .related.products a.button:focus-visible {
	border-color: var(--drb-color-ink);
	background: var(--drb-color-ink);
	color: var(--drb-color-white) !important;
}

div.product form.cart .single_add_to_cart_button.button.alt:focus-visible,
.single-product .related.products a.button:focus-visible {
	outline: 3px solid var(--drb-color-ink);
	outline-offset: 3px;
}

div.product form.cart .single_add_to_cart_button.button.alt:disabled,
div.product form.cart .single_add_to_cart_button.button.alt.disabled,
.single-product .related.products a.button:disabled,
.single-product .related.products a.button.disabled {
	cursor: not-allowed;
	opacity: 0.55;
}
/* Strict WooCommerce product alignment. Semantic classes on the parent
 * templates isolate these corrections from editorial grids and microsites. */
.single-product .drb-product-main,
.single-product .drb-product-layout,
.single-product .drb-product-gallery,
.single-product .drb-product-summary {
	box-sizing: border-box;
	min-width: 0;
}

.single-product .product-font .drb-product-summary.summary.entry-summary {
	width: 100% !important;
	max-width: 32rem;
	margin: 0 !important;
	float: none !important;
	clear: none !important;
}

.single-product form.cart.drb-product-cart {
	display: grid !important;
	width: 100%;
	max-width: 28rem;
	gap: 1rem;
	align-items: stretch;
	margin-top: 1.5rem;
	float: none !important;
}

.single-product form.cart.drb-product-cart::before,
.single-product form.cart.drb-product-cart::after {
	display: none !important;
	content: none !important;
}

.single-product .drb-product-cart__quantity,
.single-product .drb-product-cart__quantity .quantity {
	width: auto;
	margin: 0 !important;
	float: none !important;
}

.single-product .drb-product-cart__quantity .qty {
	width: 5rem;
	min-height: 3rem;
	padding: 0.65rem 0.75rem;
	border: 1px solid rgb(48 55 64 / 42%);
	border-radius: 0;
}

.single-product .drb-product-cart__submit.single_add_to_cart_button {
	display: inline-flex !important;
	width: 100% !important;
	max-width: none !important;
	min-height: 3rem;
	align-items: center;
	justify-content: center;
	padding: 0.75rem 1.25rem;
	margin: 0 !important;
	float: none !important;
	text-align: center;
	text-transform: uppercase;
}

.single-product .drb-related-products > .drb-related-grid {
	display: grid !important;
	width: 100%;
	max-width: none;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 18rem)) !important;
	gap: clamp(2rem, 4vw, 3rem) 2rem !important;
	justify-content: center;
	padding: 0 !important;
	margin: 2rem auto 0 !important;
}

.single-product .drb-related-products {
	width: 100% !important;
	margin-inline: 0 !important;
}

.single-product .drb-related-products > .drb-related-grid::before,
.single-product .drb-related-products > .drb-related-grid::after {
	display: none !important;
	content: none !important;
}

.single-product .drb-related-grid > li.product {
	display: flex;
	width: 100% !important;
	min-width: 0;
	height: 100%;
	flex-direction: column;
	margin: 0 !important;
	float: none !important;
}

.single-product .drb-related-grid > li.product > :is(.woocommerce-LoopProduct-link, .woocommerce-loop-product__link) {
	display: flex;
	min-width: 0;
	flex: 1;
	flex-direction: column;
	text-decoration: none;
}

.single-product .drb-related-grid .custom-product-wrapper {
	display: flex;
	flex: 1;
	flex-direction: column;
}

.single-product .drb-related-grid .price {
	margin-top: auto;
}

.single-product .drb-related-grid > li.product > .button {
	flex: 0 0 auto;
}

@media (min-width: 64rem) {
	.single-product .drb-product-layout {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: clamp(2.5rem, 5vw, 5rem) !important;
		align-items: start;
	}

	.single-product .drb-product-summary {
		padding-top: 0;
	}
}

@media (max-width: 47.99rem) {
	.single-product .drb-product-main {
		padding-top: 2rem;
	}

	.single-product .drb-product-summary {
		padding-top: 2rem;
	}
}
/*
 * Grille du menu de pied de page — courriel 3, demandes 2 et 3.
 *
 * Le pied de page comptait six entrées sur une rangée à partir de 1280 px
 * (`xl:grid-cols-6`). Le retrait de « Diagnoses » et « Surgery » en laisse
 * quatre, qui doivent continuer de remplir la rangée.
 *
 * La classe utilitaire `xl:grid-cols-4` n'existe pas : le bundle Tailwind du
 * thème parent est précompilé et n'a généré que les utilitaires réellement
 * employés par le code d'alors. L'écrire dans le gabarit produisait une classe
 * morte, la grille retombait sur `md:grid-cols-3` tout en gardant
 * `xl:grid-rows-1`, et les quatre entrées débordaient de leur rangée.
 *
 * La règle est donc portée ici, avec un nom qui dit ce qu'elle fait plutôt
 * qu'un faux utilitaire Tailwind. `!important` est nécessaire pour l'emporter
 * sur `md:grid-cols-3`, que le bundle déclare lui-même en `!important`.
 */
/*
 * Le sélecteur est composé à dessein. Le thème parent inline son bundle dans
 * un <style> placé APRÈS wp_head(), donc après la feuille de ce thème enfant :
 * à spécificité égale, c'est le parent qui l'emporte, quel que soit l'ordre
 * d'enqueue. Deux classes suffisent à passer devant `.md\:grid-cols-3`, que le
 * bundle déclare en !important.
 */
@media (min-width: 80rem) {
	.drb-footer-nav.grid {
		grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	}
}




/*
 * Hauteur des menus déroulants.
 *
 * Le gabarit parent leur impose une hauteur fixe de 380 px, avec
 * `overflow: hidden` et un contenu centré verticalement. Le menu « Surgery »
 * compte huit entrées plus le bouton d'appel à l'action, soit 458 px en
 * anglais et 490 px en français : la première entrée était coupée en haut et
 * le bouton en bas, sans que rien ne l'indique.
 *
 * Ce n'est pas un effet de la dynamisation — le thème enfant avait déjà porté
 * ce menu à huit entrées — mais une hauteur figée n'a plus de sens dès lors
 * que la cliente peut ajouter une entrée depuis WordPress.
 *
 * La hauteur suit donc le contenu, avec 380 px comme plancher pour que les
 * menus courts gardent leur allure d'origine. Mesuré : Surgery passe à 522 px
 * (554 en français), Publications à 426, les autres restent à 380.
 */
@media (min-width: 64rem) {
	#header .pathologies-dropdown {
		height: auto !important;
		min-height: 380px;
		padding-top: 1.5rem !important;
		padding-bottom: 1.5rem !important;
	}
}

/*
 * Pages du panier et du paiement : alignement du titre sur le contenu.
 *
 * Ces deux pages sont rendues par `page.php`, le gabarit generique, qui place
 * le titre dans un `<article>` sans conteneur. Le titre « Cart » se retrouvait
 * a x=0, colle au bord gauche, alors que le tableau du panier vit dans un
 * conteneur centre de 1024 px avec 48 px de marge interne.
 *
 * Sur le site publie, le titre est aligne sur ce tableau. Le meme conteneur
 * lui est donc applique ici, ce qui garde l alignement a toutes les largeurs :
 * x=256 sur un ecran de 1440, x=496 sur 1920, comme le contenu.
 *
 * Le titre de la page de paiement est masque : le site publie n en affiche
 * aucun, le formulaire portant ses propres intitules de section.
 *
 * Les avis WooCommerce — « … a bien ete ajoute a votre panier » — s etiraient
 * eux aussi d un bord a l autre; ils recoivent la marge courante du site.
 *
 * Ces selecteurs dependent des classes de `<body>`, qui n etaient pas emises
 * avant la correction de la balise en double.
 */
:is(.woocommerce-cart, .woocommerce-checkout) article > header.header {
	box-sizing: border-box;
	width: 100%;
	max-width: 1024px;
	margin-inline: auto;
	padding-inline: 48px;
}

.woocommerce-checkout article > header.header {
	display: none;
}

.woocommerce-notices-wrapper {
	padding-left: 2rem;
	padding-right: 2rem;
}

@media (min-width: 64rem) {
	.woocommerce-notices-wrapper {
		padding-left: 72px;
		padding-right: 72px;
	}
}

/*
 * CTA de candidature du panneau lateral — Dupuytren et doigt a gachette.
 *
 * Le libelle demande par la cliente est plus long que l'ancien « Contact ».
 * Le conteneur flex etait centre, mais son texte multiligne conservait un
 * alignement a gauche et la hauteur fixe de 48 px le comprimait. Cette classe
 * n'est emise que pour les deux parcours de candidature; les autres panneaux
 * lateraux conservent donc strictement leur presentation d'origine.
 */
.navButtons.drb-candidate-cta {
	height: auto !important;
	min-height: 3.5rem;
	justify-content: center !important;
	padding: 0.65rem 1.25rem !important;
	text-align: center !important;
	line-height: 1.25;
	text-wrap: balance;
}
