/* ── Checkout page (editorial restyle) ───────────────────────────────────── */

/* Wrapper — same horizontal gutter as cart so the editorial frame is consistent. */
.cos-woo.woocommerce-checkout .woocommerce { padding: 24px var(--gutter) 0; }

.cos-checkout {
	width: 100%;
	margin: 0;
}

.cos-checkout__header {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding-bottom: 24px;
	margin-bottom: 24px;
}
.cos-checkout__header .cos-checkout__title { letter-spacing: 0.02em; }

/* Override the legacy `.cos-woo .checkout` 1.4fr/1fr grid for the editorial
   layout (matches cart: items left, sticky summary right). */
.cos-woo .checkout.cos-checkout__form { display: block; }

.cos-checkout__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 56px;
	align-items: start;
	padding-bottom: 80px;
}
.cos-checkout__layout--3col {
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr) minmax(0, 1fr);
	gap: 40px;
}

.cos-checkout__main { min-width: 0; }
.cos-checkout__col {
	min-width: 0;
	background: var(--paper);
	border: 1px solid var(--line);
	padding: 26px 26px 28px;
}
.cos-checkout__col--summary { position: sticky; top: 96px; }
@media (max-width: 900px) {
	.cos-checkout__col--summary { position: static; }
	.cos-checkout__col { padding: 22px 20px 24px; }
}
.cos-checkout__col-title {
	font-family: var(--sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--ink);
	margin: 0 0 18px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--line);
}

/* Hide WC's per-section "Detalhes de facturação" / "Detalhes de envio"
   headings — the column-level title above already labels this block. */
.cos-woo .cos-checkout__col--details .woocommerce-billing-fields > h3,
.cos-woo .cos-checkout__col--details .woocommerce-shipping-fields > h3,
.cos-woo .cos-checkout__col--details .woocommerce-additional-fields > h3 {
	display: none;
}

/* Methods column (shipping + payment) ────────────────────────── */
.cos-checkout__methods-block + .cos-checkout__methods-block { margin-top: 32px; }

.cos-shipping-methods__list,
.cos-payment-methods__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0;
}
.cos-shipping-methods__item,
.cos-payment-methods__item {
	position: relative;
	border-bottom: 1px solid var(--line);
}
.cos-shipping-methods__item:last-child,
.cos-payment-methods__item:last-child { border-bottom: 0; }

.cos-shipping-methods__input,
.cos-payment-methods__input {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.cos-shipping-methods__label,
.cos-payment-methods__label {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px 0;
	cursor: pointer;
	font-family: var(--sans);
	font-size: 13px;
	color: var(--ink);
}
.cos-shipping-methods__label::before,
.cos-payment-methods__label::before {
	content: "";
	flex: 0 0 auto;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	border: 1px solid var(--line-strong);
	background: var(--paper);
	transition: border-color .15s ease, box-shadow .15s ease;
}
.cos-shipping-methods__input:checked + .cos-shipping-methods__label::before,
.cos-payment-methods__input:checked + .cos-payment-methods__label::before {
	border-color: var(--ink);
	box-shadow: inset 0 0 0 4px var(--ink);
}
.cos-shipping-methods__input:focus-visible + .cos-shipping-methods__label::before,
.cos-payment-methods__input:focus-visible + .cos-payment-methods__label::before {
	outline: 2px solid var(--ink);
	outline-offset: 2px;
}
.cos-shipping-methods__price {
	font-variant-numeric: tabular-nums;
	color: var(--stone);
	min-width: 56px;
}
.cos-payment-methods__icon img {
	height: 18px;
	width: auto;
	vertical-align: middle;
	margin-right: 6px;
}
.cos-payment-methods__box {
	padding: 0 0 16px 30px;
	font-family: var(--sans);
	font-size: 12px;
	color: var(--stone);
	line-height: 1.55;
}
.cos-payment-methods__box p { margin: 0 0 8px; }
.cos-payment-methods__box :last-child { margin-bottom: 0; }
.cos-shipping-methods__empty,
.cos-payment-methods__empty {
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.06em;
	color: var(--stone);
	margin: 8px 0 0;
}

/* Place-order block lives in col 3 (under the summary). Strip WC's default
   `#payment` chrome — our editorial card already provides the framing. */
.cos-woo .cos-checkout__col--summary .cos-checkout-place-order {
	background: transparent;
	border-top: 1px solid var(--line);
	margin: 18px 0 0;
	padding: 18px 0 0;
}
.cos-woo .cos-checkout__col--summary .form-row.place-order {
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.cos-woo .cos-checkout__col--summary #place_order {
	width: 100%;
	height: 56px;
	margin: 0;
}

/* Customer details — single-column stack, override WC's .col2-set */
.cos-woo .cos-checkout__customer.col2-set,
.cos-checkout__customer {
	display: flex;
	flex-direction: column;
	gap: 0;
	width: 100%;
	margin: 0;
}
.cos-woo .cos-checkout__customer .col-1,
.cos-woo .cos-checkout__customer .col-2 {
	width: 100%;
	max-width: 100%;
	float: none;
	margin: 0;
	padding: 0;
}

/* Panel — billing / shipping containers.
   ONE divider per section: the section heading's bottom border. No panel
   border-top or border-bottom — that creates twin lines + a hollow gap. */
.cos-checkout__panel {
	padding: 0;
	margin: 0 0 36px;
	border: 0;
}
.cos-checkout__panel:last-child { margin-bottom: 0; }

.cos-checkout__panel h3,
.cos-checkout__panel .woocommerce-billing-fields > h3,
.cos-checkout__panel .woocommerce-shipping-fields > h3,
.cos-checkout__panel .woocommerce-additional-fields > h3,
.cos-woo .cos-checkout__panel h3,
.cos-woo .cos-checkout__panel .woocommerce-billing-fields > h3,
.cos-woo .cos-checkout__panel .woocommerce-shipping-fields > h3,
.cos-woo .cos-checkout__panel .woocommerce-additional-fields > h3 {
	font-family: var(--sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ink);
	margin: 0 0 22px;
	padding: 0 0 14px;
	border-top: 0;
	border-bottom: 1px solid var(--line);
}

/* WC's billing/shipping fieldsets render with .woocommerce-billing-fields__field-wrapper
   that uses a 2-column grid via inline ::after clearfix. We use a SINGLE column
   so every field (name, surname, address, etc.) is full-width and uniform. */
.cos-woo .woocommerce-billing-fields__field-wrapper,
.cos-woo .woocommerce-shipping-fields__field-wrapper,
.cos-woo .woocommerce-additional-fields__field-wrapper {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 10px;
}
.cos-woo .woocommerce-billing-fields__field-wrapper > .form-row,
.cos-woo .woocommerce-shipping-fields__field-wrapper > .form-row,
.cos-woo .woocommerce-additional-fields__field-wrapper > .form-row {
	margin-bottom: 0;
	gap: 4px;
	width: 100%;
	float: none;
}
/* Defeat WC's `.form-row-first` / `.form-row-last` 48%-float layout — every
   row is full-width in our single-column grid. */
.cos-woo .cos-checkout__form .form-row.form-row-first,
.cos-woo .cos-checkout__form .form-row.form-row-last,
.cos-woo .cos-checkout__form .form-row-wide,
.cos-woo .cos-checkout__form .form-row-full {
	width: 100%;
	float: none;
	margin-right: 0;
	margin-left: 0;
}

/* Input rhythm tweaks scoped to checkout — heightens the editorial feel */
.cos-checkout__form .form-row label,
.cos-woo .cos-checkout__form .form-row label,
.cos-woo .cos-checkout__form .form-row.woocommerce-invalid label,
.cos-woo .cos-checkout__form .form-row.validate-required label,
.cos-woo .cos-checkout__form .form-row.woocommerce-validated label {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--stone);
	font-weight: 400;
	margin: 0;
}
.cos-woo .cos-checkout__form .form-row.woocommerce-invalid label,
.cos-woo .cos-checkout__form .form-row.woocommerce-invalid .required,
.cos-woo .cos-checkout__form .form-row.woocommerce-invalid abbr.required {
	color: var(--error) !important;
}
.cos-checkout__form .form-row .required,
.cos-checkout__form .form-row abbr.required,
.cos-woo .cos-checkout__form .form-row .required,
.cos-woo .cos-checkout__form .form-row abbr.required {
	color: var(--stone);
	text-decoration: none;
	border: 0;
	margin-left: 2px;
}

/* Override WC's default `.woocommerce-invalid` red border/label colours.
   These rules win against `frontend.css` because they're more specific. */
.cos-woo .cos-checkout__form .form-row.woocommerce-invalid input.input-text,
.cos-woo .cos-checkout__form .form-row.woocommerce-invalid select,
.cos-woo .cos-checkout__form .form-row.woocommerce-invalid textarea,
.cos-woo .cos-checkout__form .form-row.woocommerce-invalid .select2-container .select2-selection,
.cos-woo .cos-checkout__form .form-row.woocommerce-invalid .select2-container--default .select2-selection--single {
	border-color: var(--error) !important;
}
.cos-woo .cos-checkout__form .form-row.woocommerce-invalid input.input-text:focus,
.cos-woo .cos-checkout__form .form-row.woocommerce-invalid select:focus,
.cos-woo .cos-checkout__form .form-row.woocommerce-invalid textarea:focus {
	border-color: var(--error) !important;
}
.cos-woo .cos-checkout__form .form-row.woocommerce-validated input.input-text,
.cos-woo .cos-checkout__form .form-row.woocommerce-validated select,
.cos-woo .cos-checkout__form .form-row.woocommerce-validated .select2-container .select2-selection {
	border-color: var(--line-strong) !important;
}
.cos-woo .cos-checkout__form input[type="text"],
.cos-woo .cos-checkout__form input[type="email"],
.cos-woo .cos-checkout__form input[type="password"],
.cos-woo .cos-checkout__form input[type="tel"],
.cos-woo .cos-checkout__form input[type="number"],
.cos-woo .cos-checkout__form input[type="search"],
.cos-woo .cos-checkout__form input[type="url"],
.cos-woo .cos-checkout__form input.input-text,
.cos-woo .cos-checkout__form textarea,
.cos-woo .cos-checkout__form select {
	height: 48px;
	padding: 0 14px;
	font-size: 13px;
	letter-spacing: 0.02em;
	border-radius: 0 !important;
	-webkit-appearance: none;
	appearance: none;
	box-shadow: none;
}
.cos-woo .cos-checkout__form textarea {
	height: auto;
	min-height: 96px;
	padding: 12px 14px;
	line-height: 1.55;
}
.cos-woo .cos-checkout__form .select2-container,
.cos-woo .cos-checkout__form .select2-container--default,
.cos-woo .cos-checkout__form .select2-container .select2-selection,
.cos-woo .cos-checkout__form .select2-container .select2-selection--single,
.cos-woo .cos-checkout__form .select2-container--default .select2-selection--single,
.cos-woo .cos-checkout__form .select2-container--default .select2-selection--multiple,
.cos-woo .cos-checkout__form .select2-dropdown,
.cos-woo .cos-checkout__form .select2-search__field {
	border-radius: 0 !important;
}
.cos-woo .cos-checkout__form .select2-container .select2-selection--single,
.cos-woo .cos-checkout__form .select2-container--default .select2-selection--single {
	height: 48px;
}
.cos-woo .cos-checkout__form .select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: 46px;
	font-size: 13px;
}
.cos-woo .cos-checkout__form .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 46px;
}

/* Some browsers (Safari/Firefox) and theme.json presets add a subtle
   border-radius to native form controls; defeat it everywhere in the form. */
.cos-woo .cos-checkout__form .form-row input,
.cos-woo .cos-checkout__form .form-row select,
.cos-woo .cos-checkout__form .form-row textarea,
.cos-woo .cos-checkout__form .woocommerce-input-wrapper input,
.cos-woo .cos-checkout__form .woocommerce-input-wrapper select,
.cos-woo .cos-checkout__form .woocommerce-input-wrapper textarea,
.cos-woo .cos-checkout-coupon__input,
.cos-woo #payment input[type="text"],
.cos-woo #payment input[type="email"],
.cos-woo #payment input[type="tel"],
.cos-woo #payment input[type="number"],
.cos-woo #payment input.input-text,
.cos-woo #payment select,
.cos-woo #payment textarea {
	border-radius: 0 !important;
}

/* Editorial checkbox treatment shared by every form-row checkbox in the
   checkout (Criar uma conta?, Enviar para morada diferente?, Manter sessão,
   newsletter opt-ins, etc). All checkboxes adopt the same ink accent + label
   typography so they read as a single family of controls. */
.cos-woo .cos-checkout__form input[type="checkbox"],
.cos-woo .cos-checkout__form input[type="radio"] {
	width: 16px;
	height: 16px;
	margin: 0;
	padding: 0;
	accent-color: var(--ink);
	flex: 0 0 16px;
	border-radius: 0;
	vertical-align: middle;
}

.cos-woo .cos-checkout__form .form-row .woocommerce-form__label-for-checkbox,
.cos-woo .cos-checkout__form .form-row label.checkbox,
.cos-woo .cos-checkout__form .form-row.create-account label {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	cursor: pointer;
	margin: 0;
	font-family: var(--sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ink);
}
.cos-woo .cos-checkout__form .form-row.create-account {
	margin: 8px 0 4px;
}
.cos-woo .cos-checkout__form .woocommerce-account-fields {
	margin: 0 0 18px;
}

/* Account password fields (revealed when "Criar uma conta?" is ticked) */
.cos-woo .cos-checkout__form .create-account-fields,
.cos-woo .cos-checkout__form #account_password_field {
	margin-top: 4px;
}

/* Shipping address toggle (ship to a different address)
   WC renders this as <h3 id="ship-to-different-address"> — reset both the
   <h3> defaults and the global `.cos-woo h3` rule (which adds bottom border
   + padding-bottom). */
.cos-woo .cos-checkout__form h3#ship-to-different-address,
.cos-woo .cos-checkout__form #ship-to-different-address {
	display: block;
	margin: 8px 0 18px;
	padding: 0;
	border: 0;
	font-family: var(--sans);
	font-size: inherit;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
	line-height: 1.4;
}
.cos-woo .cos-checkout__form #ship-to-different-address > label,
.cos-woo .cos-checkout__form #ship-to-different-address .woocommerce-form__label,
.cos-woo .cos-checkout__form #ship-to-different-address .woocommerce-form__label-for-checkbox {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	padding: 0;
	cursor: pointer;
	color: var(--ink);
}
.cos-woo .cos-checkout__form #ship-to-different-address > label span,
.cos-woo .cos-checkout__form #ship-to-different-address .woocommerce-form__label span {
	font-family: var(--sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ink);
}
.cos-woo .cos-checkout__form #ship-to-different-address-checkbox {
	width: 16px;
	height: 16px;
	margin: 0;
	padding: 0;
	accent-color: var(--ink);
	flex: 0 0 16px;
	border-radius: 0;
}

/* Tiny breathing room above the woocommerce-shipping-fields wrapper that
   follows the `#ship-to-different-address` toggle, when it expands. */
.cos-woo .cos-checkout__form .woocommerce-shipping-fields { margin-top: 4px; }

/* The `<span class="woocommerce-input-wrapper">` that WC injects around every
   input must behave as a block so the input can fill the column width and
   the field hint sits underneath rather than next to the input. */
.cos-woo .cos-checkout__form .form-row .woocommerce-input-wrapper {
	display: block;
	width: 100%;
}
.cos-woo .cos-checkout__form .form-row .woocommerce-input-wrapper > input,
.cos-woo .cos-checkout__form .form-row .woocommerce-input-wrapper > select,
.cos-woo .cos-checkout__form .form-row .woocommerce-input-wrapper > textarea {
	width: 100%;
}
.cos-woo .cos-checkout__form .form-row .description {
	margin-top: 6px;
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.02em;
	color: var(--stone);
	line-height: 1.45;
}

/* Order notes textarea — sit cleanly under the address grid */
.cos-checkout__form .woocommerce-additional-fields { margin-top: 4px; }
.cos-checkout__form .woocommerce-additional-fields h3 {
	font-family: var(--sans);
	font-size: 12px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ink);
	font-weight: 500;
	margin: 0 0 14px;
	border: 0;
	padding: 0;
}

/* Aside ────────────────────────────────────────────────────── */
.cos-checkout__aside {
	position: sticky;
	top: 96px;
}
.cos-checkout__summary {
	background: transparent;
	border: 0;
	padding: 0;
}
.cos-checkout__summary-title {
	font-family: var(--sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--ink);
	margin: 0 0 18px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--line);
}

/* Review order — line items */
.cos-checkout-review {
	display: flex;
	flex-direction: column;
	gap: 18px;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
}
.cos-checkout-review__lines {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding-bottom: 18px;
	border-bottom: 1px solid var(--line);
}
.cos-checkout-line {
	display: grid;
	grid-template-columns: 64px minmax(0, 1fr) auto;
	gap: 14px;
	align-items: flex-start;
}
.cos-checkout-line__media {
	position: relative;
	width: 64px;
	height: 80px;
	flex: 0 0 64px;
	background: transparent;
	overflow: visible;
}
.cos-checkout-line__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	background: var(--sand);
}
.cos-checkout-line__qty-badge {
	position: absolute;
	top: -8px;
	right: -8px;
	min-width: 22px;
	height: 22px;
	padding: 0 6px;
	background: var(--ink);
	color: var(--paper);
	font-family: var(--mono);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.02em;
	line-height: 1;
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 0 0 2px var(--paper-tint);
	z-index: 2;
}
.cos-checkout-line__body {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}
.cos-checkout-line__name {
	font-family: var(--sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ink);
	line-height: 1.3;
}
.cos-checkout-line__meta {
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.04em;
	color: var(--stone);
	line-height: 1.4;
}
.cos-checkout-line__meta dl { margin: 0; }
.cos-checkout-line__meta dt { display: inline; font-weight: 500; margin-right: 4px; }
.cos-checkout-line__meta dd { display: inline; margin: 0; }
.cos-checkout-line__meta dd p { display: inline; margin: 0; }
.cos-checkout-line__meta dd::after { content: ""; display: block; margin-bottom: 2px; }
.cos-checkout-line__subtotal {
	font-family: var(--sans);
	font-size: 13px;
	font-weight: 500;
	color: var(--ink);
	letter-spacing: 0.01em;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

/* Reuse cart-totals styling for the review-order totals (mirrors mark-up) */
.cos-checkout-review__totals {
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

/* Checkout CTAs + modal popups (login + coupon) ──────────────
   Two editorial ghost buttons replace the legacy inline notices.
   Stacked on mobile, side-by-side on desktop. */
.cos-checkout-intro {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 0 0 22px;
}
.cos-checkout-cta { flex: 1 1 0; min-width: 0; margin: 0; }
.cos-checkout-cta__button {
	width: 100%;
	justify-content: center;
	gap: 10px;
	height: 52px;
	padding: 0 22px;
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}
.cos-checkout-cta__button .material-symbols-outlined { font-size: 18px; }
.cos-checkout-cta__label { display: inline-block; }
@media (min-width: 768px) {
	.cos-checkout-intro { flex-direction: row; gap: 12px; }
}

/* Modal shell — shared by the login and coupon popups. */
.cos-modal {
	position: fixed;
	inset: 0;
	z-index: 1000;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	pointer-events: none;
	transition: opacity .18s ease;
}
.cos-modal[data-on="1"] { opacity: 1; pointer-events: auto; }
.cos-modal[hidden] { display: none; }
.cos-modal__backdrop {
	position: absolute;
	inset: 0;
	background: var(--overlay-modal-backdrop);
	backdrop-filter: blur(2px);
	-webkit-backdrop-filter: blur(2px);
}
.cos-modal__panel {
	position: relative;
	width: min(480px, calc(100vw - 32px));
	max-height: calc(100vh - 48px);
	overflow-y: auto;
	background: var(--paper);
	border: 1px solid var(--line);
	padding: 40px 32px 32px;
	box-shadow: var(--shadow-modal);
	transform: translateY(8px);
	transition: transform .22s ease;
}
.cos-modal[data-on="1"] .cos-modal__panel { transform: translateY(0); }
.cos-modal__close {
	position: absolute;
	top: 12px;
	right: 12px;
	width: 36px;
	height: 36px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 0;
	color: var(--stone);
	cursor: pointer;
	border-radius: 0;
}
.cos-modal__close:hover,
.cos-modal__close:focus-visible { color: var(--ink); }
.cos-modal__close .material-symbols-outlined { font-size: 22px; }
.cos-modal__header { margin: 0 0 20px; }
.cos-modal__eyebrow {
	margin: 0 0 6px;
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--stone);
}
.cos-modal__title {
	margin: 0 0 8px;
	font-family: var(--sans);
	font-size: 26px;
	font-weight: 500;
	letter-spacing: 0;
	color: var(--ink);
}
.cos-modal__intro {
	margin: 0;
	font-family: var(--sans);
	font-size: 13px;
	line-height: 1.55;
	color: var(--stone);
}
.cos-modal__body { display: block; }
body.cos-modal-open,
html.cos-modal-open { overflow: hidden; }

/* Inline login form inside the modal — drop the global form.login border /
   padding and force every form-row (including WC's `.form-row-first` and
   `.form-row-last` 48% halves) to span the full modal width. */
.cos-woo .cos-modal__body form.login,
.cos-woo .cos-modal__body form.register {
	border: 0;
	background: transparent;
	padding: 0;
	margin: 0;
}
.cos-woo .cos-modal__body form.login .form-row,
.cos-woo .cos-modal__body form.register .form-row,
.cos-woo .cos-modal__body form.login .form-row.form-row-first,
.cos-woo .cos-modal__body form.login .form-row.form-row-last,
.cos-woo .cos-modal__body form.login .form-row-wide {
	width: 100%;
	float: none;
	display: flex;
	margin-left: 0;
	margin-right: 0;
}
.cos-woo .cos-modal__body form.login .woocommerce-form__label-for-checkbox,
.cos-woo .cos-modal__body form.login .lost_password {
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.06em;
}
.cos-woo .cos-modal__body form.login button[type="submit"],
.cos-woo .cos-modal__body form.login .button {
	width: 100%;
	margin-top: 4px;
}
.cos-woo .cos-modal__body form.login .password-input,
.cos-woo .cos-modal__body form.login .woocommerce-password-input {
	display: block;
	width: 100%;
}
.cos-woo .cos-modal__body form.login input[type="text"],
.cos-woo .cos-modal__body form.login input[type="email"],
.cos-woo .cos-modal__body form.login input[type="password"] {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	height: 48px;
}

/* Coupon form (now lives inside the coupon modal). The `!important`
   beats WC's inline `style="display:none"` injected by checkout.js. */
.cos-modal__body .cos-checkout-coupon__form,
.cos-woo .cos-modal__body form.checkout_coupon {
	display: flex !important;
	flex-direction: column;
	gap: 14px;
	padding: 0;
	background: transparent;
	border: 0;
	margin: 0;
}
.cos-modal__body .cos-checkout-coupon__field {
	grid-template-columns: 1fr;
	gap: 10px;
}
.cos-modal__body .cos-checkout-coupon__apply { width: 100%; min-width: 0; }
.cos-checkout-coupon__label {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--stone);
}
.cos-checkout-coupon__field {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 8px;
	align-items: stretch;
}
.cos-woo .cos-checkout-coupon__input {
	height: 44px;
	border: 1px solid var(--line-strong);
	background: var(--paper);
	padding: 0 12px;
	font-family: var(--mono);
	font-size: 12px;
	color: var(--ink);
	letter-spacing: 0.02em;
	border-radius: 0;
}
.cos-woo .cos-checkout-coupon__input:focus {
	outline: none;
	border-color: var(--ink);
}
.cos-checkout-coupon__apply {
	height: 44px;
	min-width: 110px;
}

/* Inline login form (woocommerce_login_form output on checkout) ───
   WC's frontend.css ships `.woocommerce form.login` with a 5px radius and
   a faded purple border + 20px padding. Reset to the editorial pattern. */
.cos-woo form.login,
.cos-woo form.register,
.cos-woo form.lost_reset_password,
.cos-woo form.woocommerce-ResetPassword,
.cos-woo form.checkout_coupon {
	border: 1px solid var(--line);
	border-radius: 0;
	background: var(--paper);
	padding: 24px 26px;
	margin: 0 0 24px;
}
.cos-woo form.login .form-row,
.cos-woo form.register .form-row,
.cos-woo form.lost_reset_password .form-row,
.cos-woo form.woocommerce-ResetPassword .form-row {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-bottom: 16px;
	width: 100%;
	float: none;
}
.cos-woo form.login .form-row.form-row-first,
.cos-woo form.login .form-row.form-row-last {
	width: calc(50% - 8px);
	float: none;
	display: inline-flex;
	vertical-align: top;
}
.cos-woo form.login .form-row.form-row-first { margin-right: 16px; }
@media (max-width: 720px) {
	.cos-woo form.login .form-row.form-row-first,
	.cos-woo form.login .form-row.form-row-last {
		width: 100%;
		margin-right: 0;
	}
}
.cos-woo form.login label,
.cos-woo form.register label,
.cos-woo form.lost_reset_password label,
.cos-woo form.woocommerce-ResetPassword label {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--stone);
	font-weight: 400;
}
.cos-woo form.login label .required,
.cos-woo form.login .required,
.cos-woo form.register label .required {
	color: var(--stone);
	text-decoration: none;
	border: 0;
}
.cos-woo form.login input[type="text"],
.cos-woo form.login input[type="email"],
.cos-woo form.login input[type="password"],
.cos-woo form.login input.input-text,
.cos-woo form.register input[type="text"],
.cos-woo form.register input[type="email"],
.cos-woo form.register input[type="password"],
.cos-woo form.register input.input-text,
.cos-woo form.lost_reset_password input.input-text,
.cos-woo form.lost_reset_password input[type="text"],
.cos-woo form.lost_reset_password input[type="password"],
.cos-woo form.woocommerce-ResetPassword input.input-text,
.cos-woo form.woocommerce-ResetPassword input[type="text"],
.cos-woo form.woocommerce-ResetPassword input[type="password"] {
	height: 48px;
	padding: 0 14px;
	border: 1px solid var(--line-strong);
	background: var(--paper);
	border-radius: 0;
	font-family: var(--mono);
	font-size: 13px;
	color: var(--ink);
	letter-spacing: 0.02em;
	-webkit-appearance: none;
	appearance: none;
	box-shadow: none;
}
.cos-woo form.login input.input-text:focus,
.cos-woo form.register input.input-text:focus,
.cos-woo form.lost_reset_password input.input-text:focus,
.cos-woo form.woocommerce-ResetPassword input.input-text:focus {
	outline: none;
	border-color: var(--ink);
}

/* "Remember me" row + submit row ─ flat, no float oddities */
.cos-woo form.login .form-row:last-of-type {
	margin-bottom: 0;
}
.cos-woo form.login .lost_password {
	margin: 12px 0 0;
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.06em;
}
.cos-woo form.login .lost_password a {
	color: var(--ink);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.cos-woo form.login label.woocommerce-form__label-for-checkbox,
.cos-woo form.login label.woocommerce-form__label-for-checkbox span {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--ink);
}
.cos-woo form.login input[type="checkbox"] {
	width: 14px;
	height: 14px;
	margin: 0;
	accent-color: var(--ink);
	flex: 0 0 14px;
}

/* Submit — block primary, matches #place_order and cos-btn--primary */
.cos-woo form.login button[type="submit"],
.cos-woo form.login .woocommerce-button.button,
.cos-woo form.login button.woocommerce-button,
.cos-woo form.register button[type="submit"],
.cos-woo form.register .woocommerce-button.button,
.cos-woo form.lost_reset_password button[type="submit"],
.cos-woo form.lost_reset_password .woocommerce-button.button,
.cos-woo form.woocommerce-ResetPassword button[type="submit"],
.cos-woo form.woocommerce-ResetPassword .woocommerce-button.button {
	width: 100%;
	height: 52px;
	padding: 0 22px;
	background: var(--ink);
	color: var(--paper);
	border: 1px solid var(--ink);
	border-radius: 0;
	font-family: var(--sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-shadow: none;
	transition: background .15s ease, border-color .15s ease;
}
.cos-woo form.login button[type="submit"]:hover,
.cos-woo form.login button[type="submit"]:focus-visible,
.cos-woo form.register button[type="submit"]:hover,
.cos-woo form.register button[type="submit"]:focus-visible,
.cos-woo form.lost_reset_password button[type="submit"]:hover,
.cos-woo form.lost_reset_password button[type="submit"]:focus-visible,
.cos-woo form.woocommerce-ResetPassword button[type="submit"]:hover,
.cos-woo form.woocommerce-ResetPassword button[type="submit"]:focus-visible {
	background: var(--ink-soft);
	border-color: var(--ink-soft);
}

/* Password visibility toggle injected by WC */
.cos-woo form.login .password-input,
.cos-woo form.register .password-input {
	position: relative;
	display: block;
	width: 100%;
}
.cos-woo form.login .show-password-input,
.cos-woo form.register .show-password-input {
	position: absolute;
	top: 50%;
	right: 12px;
	transform: translateY(-50%);
	color: var(--stone);
	cursor: pointer;
}
.cos-woo form.login .show-password-input:hover,
.cos-woo form.register .show-password-input:hover { color: var(--ink); }

/* My Account — login + register tabbed UI ───────────────────── */
.cos-woo.woocommerce-account .woocommerce { padding: 32px var(--gutter) 80px; }
.cos-account-auth {
	max-width: 520px;
	margin: 0 auto;
	padding: 48px 0 32px;
}
@media (max-width: 720px) {
	.cos-account-auth { padding: 24px 0 32px; }
}
.cos-account-auth__tabs {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	margin: 0 0 24px;
}
.cos-account-auth__tab {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 48px;
	padding: 0 18px;
	background: var(--paper);
	border: 1px solid var(--line-strong);
	border-radius: 0;
	font-family: var(--sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ink);
	cursor: pointer;
	transition: background .15s ease, color .15s ease, border-color .15s ease;
	box-shadow: none;
}
.cos-account-auth__tab:hover {
	background: var(--paper-soft);
	border-color: var(--ink);
}
.cos-account-auth__tab[aria-selected="true"] {
	background: var(--ink);
	border-color: var(--ink);
	color: var(--paper);
}
.cos-account-auth__tab[aria-selected="true"]:hover {
	background: var(--ink-soft);
	border-color: var(--ink-soft);
}
.cos-account-auth__tab:focus-visible {
	outline: 2px solid var(--ink);
	outline-offset: 2px;
}
.cos-account-auth__panels { display: block; }
.cos-account-auth__panel[hidden] { display: none; }
.cos-account-auth__hint {
	font-family: var(--sans);
	font-size: 12px;
	line-height: 1.55;
	color: var(--stone);
	margin: 0 0 12px;
}

/* Lost-password screen header (matches the tabbed login styling). */
.cos-account-auth--lost .cos-account-auth__header {
	margin: 0 0 22px;
	padding-bottom: 18px;
	border-bottom: 1px solid var(--line);
}
.cos-account-auth__eyebrow {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--stone);
	margin: 0 0 6px;
}
.cos-account-auth__title {
	font-family: var(--sans);
	font-size: 22px;
	font-weight: 500;
	letter-spacing: 0;
	color: var(--ink);
	margin: 0 0 10px;
}
.cos-account-auth__intro {
	font-family: var(--sans);
	font-size: 13px;
	line-height: 1.55;
	color: var(--stone);
	margin: 0;
}
.cos-account-auth__back {
	margin: 16px 0 0;
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.06em;
}
.cos-account-auth__back a {
	color: var(--ink);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Privacy policy / generic paragraphs WC injects into the register form. */
.cos-woo .woocommerce-privacy-policy-text,
.cos-woo form.register p:not(.form-row):not(.woocommerce-FormRow) {
	font-family: var(--sans);
	font-size: 12px;
	line-height: 1.55;
	color: var(--stone);
	margin: 0 0 12px;
}
.cos-woo .woocommerce-privacy-policy-text a,
.cos-woo form.register p a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }

/* Payment block + place order ─────────────────────────────── */
.cos-woo .woocommerce-checkout #payment,
.cos-woo .cos-checkout__summary #payment {
	background: transparent;
	border: 0;
	padding: 0;
	margin-top: 22px;
}
.cos-woo .woocommerce-checkout #payment ul.payment_methods {
	margin: 0 0 18px;
	padding: 0;
	list-style: none;
	border: 0;
	background: transparent;
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.cos-woo .woocommerce-checkout #payment ul.payment_methods li {
	padding: 12px 0;
	border-bottom: 1px solid var(--line);
	background: transparent;
}
.cos-woo .woocommerce-checkout #payment ul.payment_methods li:last-child { border-bottom: 0; }
.cos-woo .woocommerce-checkout #payment ul.payment_methods li > input[type="radio"] {
	width: 14px;
	height: 14px;
	margin: 0 10px 0 0;
	accent-color: var(--ink);
	vertical-align: middle;
}
.cos-woo .woocommerce-checkout #payment ul.payment_methods li label {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--ink);
	cursor: pointer;
}
.cos-woo .woocommerce-checkout #payment ul.payment_methods li label img {
	max-height: 22px;
	width: auto;
	margin: 0;
	display: inline-block;
	vertical-align: middle;
}
.cos-woo .woocommerce-checkout #payment ul.payment_methods li .payment_box {
	margin: 10px 0 0;
	padding: 12px 0 0;
	background: transparent;
	border: 0;
	border-top: 1px dashed var(--line);
	font-family: var(--mono);
	font-size: 12px;
	line-height: 1.6;
	color: var(--ink-soft);
}
.cos-woo .woocommerce-checkout #payment ul.payment_methods li .payment_box p { margin: 0; }
.cos-woo .woocommerce-checkout #payment ul.payment_methods li .payment_box::before { display: none; }

.cos-woo .woocommerce-checkout #payment .form-row.place-order {
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
}
.cos-woo .woocommerce-checkout #payment .terms,
.cos-woo .woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper {
	margin: 0 0 14px;
	font-family: var(--mono);
	font-size: 12px;
	color: var(--ink-soft);
	letter-spacing: 0.02em;
	line-height: 1.55;
}
.cos-woo .woocommerce-checkout #payment .terms label,
.cos-woo .woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper label {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-family: var(--mono);
	font-size: 12px;
	letter-spacing: 0.02em;
	text-transform: none;
	color: var(--ink);
}
.cos-woo .woocommerce-checkout #payment .terms input[type="checkbox"],
.cos-woo .woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper input[type="checkbox"] {
	margin: 2px 0 0;
	accent-color: var(--ink);
	width: 14px;
	height: 14px;
	flex: 0 0 14px;
}

/* Place order — primary cos-btn block style */
.cos-woo .woocommerce-checkout #place_order,
.cos-woo .woocommerce-checkout button#place_order {
	width: 100%;
	height: 56px;
	padding: 0 22px;
	background: var(--ink);
	color: var(--paper);
	border: 1px solid var(--ink);
	border-radius: 0;
	font-family: var(--sans);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background .15s ease, border-color .15s ease;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	margin-top: 4px;
	box-shadow: none;
}
.cos-woo .woocommerce-checkout #place_order:hover,
.cos-woo .woocommerce-checkout #place_order:focus-visible,
.cos-woo .woocommerce-checkout button#place_order:hover,
.cos-woo .woocommerce-checkout button#place_order:focus-visible {
	background: var(--ink-soft);
	border-color: var(--ink-soft);
	color: var(--paper);
}

/* Trust note under the summary */
.cos-checkout__note {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	margin: 16px 0 0;
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--stone);
	white-space: nowrap;
}
.cos-checkout__note .material-symbols-outlined { font-size: 13px; }

/* Notices on checkout — match cart treatment */
.cos-woo.woocommerce-checkout .woocommerce-message,
.cos-woo.woocommerce-checkout .woocommerce-info,
.cos-woo.woocommerce-checkout .woocommerce-error,
.cos-woo.woocommerce-checkout .woocommerce-NoticeGroup ul.woocommerce-error {
	background: var(--paper-soft);
	border: 0;
	border-left: 2px solid var(--ink);
	color: var(--ink);
	font-family: var(--mono);
	font-size: 12px;
	letter-spacing: 0.04em;
	padding: 14px 18px;
	margin: 0 0 20px;
	border-radius: 0;
	list-style: none;
}
.cos-woo.woocommerce-checkout .woocommerce-error,
.cos-woo.woocommerce-checkout .woocommerce-NoticeGroup ul.woocommerce-error { border-left-color: var(--error); }

/* Locked-out screen (registration disabled, not logged in) */
.cos-checkout-locked {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 80px 24px 120px;
	gap: 14px;
}
.cos-checkout-locked__icon {
	font-size: 64px;
	color: var(--stone-soft);
	margin-bottom: 8px;
}
.cos-checkout-locked__title {
	max-width: 30ch;
	margin: 0;
	font-size: clamp(20px, 1.8vw, 28px);
	line-height: 1.15;
}
.cos-checkout-locked .cos-btn { min-width: 240px; margin-top: 8px; }

/* Loading overlay shown by WC during ajax updates — neutralise default */
.cos-woo .blockUI.blockOverlay {
	background: var(--paper-92) !important;
}

/* Thank-you / order-received page ─────────────────────────── */
.cos-woo.woocommerce-order-received .woocommerce { padding: 24px var(--gutter) 64px; }

.cos-thankyou {
	max-width: 760px;
	margin: 0 auto;
	padding: 24px 0 80px;
}
.cos-thankyou__header {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 10px;
	padding: 32px 0 40px;
	border-bottom: 1px solid var(--line);
	margin-bottom: 32px;
}
.cos-thankyou__icon {
	font-size: 56px;
	color: var(--ink);
	margin-bottom: 4px;
}
.cos-thankyou__header--failed .cos-thankyou__icon { color: var(--error); }
.cos-thankyou__title {
	max-width: 28ch;
	margin: 0;
	font-size: clamp(24px, 2.4vw, 36px);
	line-height: 1.1;
}
.cos-thankyou__copy {
	max-width: 52ch;
	margin: 0;
	font-size: 14px;
	line-height: 1.6;
	color: var(--ink-soft);
}
.cos-thankyou__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: center;
	margin-top: 12px;
}

/* Overview grid — order number / date / total / payment */
.cos-thankyou__overview {
	display: flex;
	flex-wrap: wrap;
	gap: 1px;                       /* the 1px gaps reveal the container bg as hairline dividers */
	margin: 0 0 40px;
	padding: 0;
	list-style: none;
	border: 1px solid var(--line);
	background: var(--line);        /* divider colour shown through the gaps */
}
/* WooCommerce adds clearfix ::before/::after (content:" "; display:table) to
   ul.order_details. As a flex container those pseudo-elements become stray flex
   items. Kill them so only the real fields are laid out. */
.cos-thankyou .cos-thankyou__overview.order_details::before,
.cos-thankyou .cos-thankyou__overview.order_details::after { content: none; display: none; }
.cos-thankyou__overview-item {
	flex: 1 1 200px;                /* equal-ish cells; the last row grows to fill — no orphan field, no empty cells */
	min-width: 0;                   /* allow shrinking so long values (email) wrap instead of overflowing */
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 20px 22px;
	background: var(--paper-soft);
}
/* Reset WooCommerce's default `ul.order_details li` rules (float, margin-right:2em,
   padding-right:2em, dashed border-right, fixed width) — they have higher
   specificity and were breaking the flex layout (wide grey gaps, items not filling). */
.cos-thankyou__overview.order_details .cos-thankyou__overview-item {
	float: none;
	width: auto;
	margin: 0;
	padding: 20px 22px;
	border: 0;
}
@media (max-width: 520px) {
	.cos-thankyou__overview-item { flex-basis: 100%; }   /* single column on phones */
}
.cos-thankyou__overview-label {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--stone);
}
.cos-thankyou__overview-value,
.cos-thankyou__overview-item strong {
	font-family: var(--sans);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.02em;
	color: var(--ink);
	font-variant-numeric: tabular-nums;
	overflow-wrap: anywhere;   /* wrap long unbroken values (e.g. email) inside the cell */
}
.cos-thankyou__overview-value .woocommerce-Price-amount,
.cos-thankyou__overview-item strong .woocommerce-Price-amount { color: var(--ink); }

/* Order details (thank-you page + painel view-order). Partilhado entre
   `.cos-thankyou` e `.cos-account__main` — mesma tabela editorial. */
:is(.cos-thankyou, .cos-account__main) .woocommerce-order-details,
:is(.cos-thankyou, .cos-account__main) .woocommerce-customer-details {
	margin: 0 0 40px;
}
:is(.cos-thankyou, .cos-account__main) .woocommerce-order-details h2,
:is(.cos-thankyou, .cos-account__main) .woocommerce-customer-details h2,
:is(.cos-thankyou, .cos-account__main) .woocommerce-order-details__title {
	font-family: var(--sans);
	font-size: 12px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	font-weight: 500;
	color: var(--ink);
	margin: 0 0 18px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--line);
}
:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details,
:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-downloads {
	width: 100%;
	border-collapse: collapse;
	font-family: var(--mono);
	font-size: 13px;
	color: var(--ink);
	background: transparent;
	border: 0;
}
:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details th,
:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details td {
	padding: 14px 0;
	/* WC core põe `border-top` por célula com `border-collapse: separate`,
	   o que aparece como segmentos quebrados quando o tr vai para grid no
	   mobile — zeramos top/sides e usamos só border-bottom para o separador. */
	border: 0;
	border-bottom: 1px solid var(--line);
	text-align: left;
	font-weight: 400;
	background: transparent;
}
:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details thead th {
	font-family: var(--sans);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	font-weight: 500;
	color: var(--stone);
	padding: 14px 0;
	border-bottom: 1px solid var(--line-strong);
}
:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details tfoot th { color: var(--ink); font-weight: 500; padding: 14px 0; }
:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details td.product-total,
:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details td.product-quantity,
:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details tfoot td {
	text-align: right;
	font-variant-numeric: tabular-nums;
}
/* Tfoot: totais empilhados sem separadores entre si — só o último item do
   tbody dá o break visual; "order-total" leva uma linha discreta acima.
   WC core injecta `border-top` em `tfoot th/td` (specificity 0,2,3), por
   isso fazemos reset explícito para garantir que nada herda do core. */
:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details tfoot th,
:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details tfoot td {
	border: 0;
	padding: 6px 0;
}
:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details tfoot tr:first-child th,
:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details tfoot tr:first-child td {
	padding-top: 14px;
}
:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details tfoot tr.order-total th,
:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details tfoot tr.order-total td {
	padding-top: 12px;
	padding-bottom: 12px;
	border-top: 1px solid var(--line);
	font-weight: 600;
}
:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details .product-name a {
	color: var(--ink);
	border-bottom: 1px solid transparent;
	transition: border-color .15s ease;
}
:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details .product-name a:hover { border-bottom-color: var(--ink); }
:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details .product-quantity {
	color: var(--stone);
	font-weight: 400;
	margin-left: 4px;
}
:is(.cos-thankyou, .cos-account__main) .woocommerce-customer-details address {
	font-family: var(--mono);
	font-size: 13px;
	line-height: 1.6;
	color: var(--ink-soft);
	font-style: normal;
	padding: 18px 20px;
	background: var(--paper-soft);
	border: 1px solid var(--line);
	border-radius: 0;
}
:is(.cos-thankyou, .cos-account__main) .woocommerce-column__title {
	font-family: var(--sans);
	font-size: 12px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	font-weight: 500;
	color: var(--ink);
	margin: 0 0 12px;
}

/* Cabeçalho da view-order: "Encomenda #98 criada a … e está actualmente …" */
.cos-account__main > p:has(> mark.order-number),
.cos-account__main > .woocommerce-customer-details + p,
.cos-account__main > p:first-of-type:has(mark) {
	font-family: var(--mono);
	font-size: 12px;
	line-height: 1.7;
	color: var(--ink-soft);
	background: var(--paper-soft);
	border-left: 2px solid var(--ink);
	padding: 14px 16px;
	margin: 0 0 28px;
}
.cos-account__main mark.order-number,
.cos-account__main mark.order-date,
.cos-account__main mark.order-status {
	background: transparent;
	color: var(--ink);
	font-weight: 500;
	padding: 0;
}

/* Layout de moradas no fundo do view-order (.col2-set com .col-1/.col-2)
   já é tratado pelo bloco anterior — só ajustamos o grid para 2-col aqui */
.cos-account__main .woocommerce-customer-details .col2-set {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
	margin-top: 8px;
}
@media (max-width: 720px) {
	.cos-account__main .woocommerce-customer-details .col2-set { grid-template-columns: 1fr; }
}

/* Lista "Actions" da encomenda (Cancel order, Pay) — botões secundários */
.cos-account__main .woocommerce-order-overview { display: none; } /* já mostrado pelo nosso <p> */

/* Responsive ──────────────────────────────────────────────── */
@media (max-width: 1200px) {
	.cos-checkout__layout--3col {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: 32px;
	}
	.cos-checkout__col--summary { grid-column: 1 / -1; }
}
@media (max-width: 1100px) {
	.cos-checkout__layout {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: 40px;
	}
}
@media (max-width: 900px) {
	.cos-woo.woocommerce-checkout .woocommerce { padding: 16px 24px 0; }
	.cos-checkout__layout,
	.cos-checkout__layout--3col {
		grid-template-columns: 1fr;
		gap: 32px;
	}
	.cos-checkout__col--summary { grid-column: auto; }
	.cos-checkout__aside { position: static; }
}
@media (max-width: 720px) {
	.cos-checkout-line { grid-template-columns: 56px minmax(0, 1fr) auto; gap: 12px; }
	.cos-checkout-line__media { width: 56px; height: 70px; }
	.cos-checkout__panel { padding: 22px 0; }
	:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details,
	:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details thead,
	:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details tbody,
	:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details tfoot {
		display: block;
		width: 100%;
	}
	:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details thead {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		white-space: nowrap;
	}
	:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details tbody tr,
	:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details tfoot tr {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		column-gap: 16px;
		row-gap: 8px;
		width: 100%;
		padding: 16px 0;
		border-bottom: 1px solid var(--line);
	}
	:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details tfoot tr {
		padding: 6px 0;
		border-bottom: 0;
	}
	:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details tfoot tr:first-child {
		padding-top: 14px;
	}
	:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details tfoot tr.order-total {
		padding: 12px 0;
		border-top: 1px solid var(--line);
	}
	:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details th,
	:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details td,
	:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details tfoot th,
	:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details tfoot td {
		display: block;
		padding: 0;
		/* Reset total — o WC core injecta `border-top` por célula que, com
		   `tr` em grid + column-gap, aparecia como segmentos quebrados. */
		border: 0;
		min-width: 0;
	}
	:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details td::before {
		content: none;
		display: none;
	}
	:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details td.product-name {
		display: flex;
		flex-wrap: wrap;
		align-items: baseline;
		gap: 4px 8px;
	}
	:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details .product-name a {
		min-width: 0;
		overflow-wrap: anywhere;
	}
	:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details .wc-item-meta {
		flex: 0 0 100%;
		margin-top: 6px;
	}
	:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details .product-quantity {
		flex: 0 0 auto;
		margin-left: 0;
		white-space: nowrap;
	}
	:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details td.product-total,
	:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details tfoot td {
		align-self: start;
		text-align: right;
		white-space: nowrap;
	}
	:is(.cos-thankyou, .cos-account__main) table.woocommerce-table--order-details tr.product-purchase-note td {
		grid-column: 1 / -1;
		text-align: left;
		white-space: normal;
	}
}
