/**
 * TCF En Ligne — Premium Checkout
 * Modern WooCommerce checkout shell. No frontend framework required.
 */

:root {
	--tcf-ink: #122b46;
	--tcf-ink-2: #334155;
	--tcf-muted: #4d5c6d;
	--tcf-faint: #7b8a9b;
	--tcf-canvas: #fafbfd;
	--tcf-surface: #ffffff;
	--tcf-line: #e2e8f0;
	--tcf-line-strong: #cbd5e1;
	--tcf-blue: #2563eb;
	--tcf-blue-dark: #1d4ed8;
	--tcf-blue-soft: #eff6ff;
	--tcf-green: #10b981;
	--tcf-green-dark: #047857;
	--tcf-green-soft: #ecfdf5;
	--tcf-accent: #c2410c;
	--tcf-accent-dark: #9a3412;
	--tcf-accent-soft: #fff7ed;
	--tcf-error: #cf2f2f;
	--tcf-error: oklch(54% 0.2 27);
	--tcf-error-soft: #fff0ef;
	--tcf-error-soft: oklch(96% 0.025 27);
	--tcf-on-dark: #ffffff;
	--tcf-radius-sm: 11px;
	--tcf-radius-md: 18px;
	--tcf-radius-lg: 28px;
	--tcf-ease: cubic-bezier(0.16, 1, 0.3, 1);
	--tcf-font: "Inter", "Segoe UI", sans-serif;
	--tcf-font-display: "Plus Jakarta Sans", "Segoe UI", sans-serif;
}

/* Checkout page isolation ------------------------------------------------ */
body.tcf-checkout-page {
	margin: 0;
	background:
		radial-gradient(52% 34% at 78% 0%, rgba(219, 234, 254, 0.72), transparent 72%),
		linear-gradient(180deg, #f8fbff 0%, var(--tcf-canvas) 34%, var(--tcf-canvas) 100%) !important;
	color: var(--tcf-ink);
	font-family: var(--tcf-font);
	font-size: 16px;
	line-height: 1.5;
	letter-spacing: -0.006em;
	-webkit-font-smoothing: antialiased;
}

body.tcf-checkout-page *,
body.tcf-checkout-page *::before,
body.tcf-checkout-page *::after {
	box-sizing: border-box;
}

body.tcf-checkout-page #masthead,
body.tcf-checkout-page .site-header,
body.tcf-checkout-page .site-header--bb,
body.tcf-checkout-page .site-footer,
body.tcf-checkout-page #footer,
body.tcf-checkout-page footer,
body.tcf-checkout-page .bb-mobile-panel-wrapper,
body.tcf-checkout-page .bb-mobile-header,
body.tcf-checkout-page .bb-mobile-header-wrapper,
body.tcf-checkout-page .buddypanel,
body.tcf-checkout-page .bb-buddypanel,
body.tcf-checkout-page .widget-area,
body.tcf-checkout-page .header-aside,
body.tcf-checkout-page .header-search-wrap,
body.tcf-checkout-page #theme-header,
body.tcf-checkout-page .below-header-area,
body.tcf-checkout-page .site-branding,
body.tcf-checkout-page .custom-logo-link,
body.tcf-checkout-page .footer-widget-area,
body.tcf-checkout-page .bb-footer,
body.tcf-checkout-page #colophon,
body.tcf-checkout-page .entry-header,
body.tcf-checkout-page .entry-title,
body.tcf-checkout-page .page-header,
body.tcf-checkout-page .page-title,
body.tcf-checkout-page .woocommerce-products-header {
	display: none !important;
}

body.tcf-checkout-page .site-content,
body.tcf-checkout-page .bb-grid,
body.tcf-checkout-page .site-content-grid,
body.tcf-checkout-page .container,
body.tcf-checkout-page .bb-content-area-cell {
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
}

body.tcf-checkout-page .entry-content,
body.tcf-checkout-page #page,
body.tcf-checkout-page .site {
	margin: 0 !important;
	padding: 0 !important;
}

body.tcf-checkout-page button,
body.tcf-checkout-page input,
body.tcf-checkout-page select {
	font-family: inherit;
}

body.tcf-checkout-page .screen-reader-text {
	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;
	border: 0 !important;
}

/* Layout ----------------------------------------------------------------- */
.tcf-checkout-wrapper {
	width: min(1248px, calc(100% - 40px));
	margin: 0 auto;
	padding: clamp(28px, 4vw, 56px) 0 112px;
	font-family: var(--tcf-font);
}

.tcf-checkout-layout {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(320px, 0.8fr);
	align-items: start;
	gap: clamp(32px, 5vw, 92px);
}

.tcf-checkout-left,
.tcf-checkout-right {
	min-width: 0;
}

.tcf-checkout-right {
	position: sticky;
	top: 32px;
}

/* Intro ------------------------------------------------------------------ */
.tcf-checkout-intro {
	margin: 0 0 clamp(32px, 4vw, 56px);
}

.tcf-eyebrow {
	display: inline-flex;
	align-items: center;
	margin: 0 0 16px;
	padding: 7px 11px;
	border: 1px solid #a7f3d0;
	border-radius: 9999px;
	background: rgba(255, 255, 255, 0.76);
	color: var(--tcf-green-dark);
	font-size: 11px;
	font-weight: 750;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.tcf-checkout-intro h1 {
	max-width: 11ch;
	margin: 0;
	color: var(--tcf-blue-dark);
	font-family: var(--tcf-font-display);
	font-size: clamp(44px, 5vw, 66px);
	font-weight: 800;
	line-height: 0.98;
	letter-spacing: -0.055em;
}

.tcf-checkout-intro h1 span {
	position: relative;
	z-index: 0;
	color: var(--tcf-blue-dark);
}

.tcf-checkout-intro h1 span::after {
	content: "";
	position: absolute;
	z-index: -1;
	left: 0.03em;
	right: -0.05em;
	bottom: 0.05em;
	height: 0.15em;
	border-radius: 9999px;
	background: #fed7aa;
}

.tcf-checkout-intro > p:last-child {
	max-width: 560px;
	margin: 18px 0 0;
	color: var(--tcf-muted);
	font-size: clamp(15px, 1.4vw, 17px);
	letter-spacing: -0.018em;
}

/* Form surface ----------------------------------------------------------- */
.tcf-form-surface {
	container-type: inline-size;
	border: 1px solid var(--tcf-line);
	border-radius: var(--tcf-radius-lg);
	background: var(--tcf-surface);
	box-shadow: 0 24px 48px -20px rgba(23, 37, 84, 0.18);
	overflow: hidden;
}

.tcf-form-section {
	padding: clamp(22px, 4vw, 36px);
}

.tcf-form-section + .tcf-form-section {
	border-top: 1px solid var(--tcf-line);
}

.tcf-section-heading {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 25px;
}

.tcf-section-title-row {
	display: flex;
	align-items: baseline;
	gap: 12px;
}

.tcf-section-index {
	color: var(--tcf-blue);
	font-size: 10px;
	font-weight: 750;
	letter-spacing: 0.08em;
}

.tcf-section-heading h2 {
	margin: 0;
	color: var(--tcf-ink);
	font-family: var(--tcf-font-display);
	font-size: 17px;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: -0.035em;
}

.tcf-section-heading p {
	margin: 4px 0 0;
	color: var(--tcf-muted);
	font-size: 13px;
}

.tcf-login-link {
	align-self: center;
	flex: 0 0 auto;
	color: var(--tcf-blue);
	font-size: 12px;
	font-weight: 650;
	text-decoration: none;
}

.tcf-login-link:hover { text-decoration: underline; }

/* WooCommerce customer fields ------------------------------------------ */
body.tcf-checkout-page .woocommerce-billing-fields > h3,
body.tcf-checkout-page .woocommerce-account-fields > h3,
body.tcf-checkout-page .woocommerce-additional-fields,
body.tcf-checkout-page .col2-set .col-2 {
	display: none !important;
}

body.tcf-checkout-page #customer_details,
body.tcf-checkout-page #customer_details .col-1,
body.tcf-checkout-page .woocommerce-billing-fields,
body.tcf-checkout-page .woocommerce-account-fields {
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
}

body.tcf-checkout-page #customer_details .woocommerce-account-fields {
	margin-top: 16px !important;
}

body.tcf-checkout-page .woocommerce-billing-fields__field-wrapper,
body.tcf-checkout-page .woocommerce-account-fields .create-account {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

body.tcf-checkout-page .woocommerce-checkout .form-row {
	position: relative;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
}

body.tcf-checkout-page .woocommerce-checkout .form-row-first,
body.tcf-checkout-page .woocommerce-checkout .form-row-last {
	grid-column: auto;
}

body.tcf-checkout-page .woocommerce-checkout .form-row-wide,
body.tcf-checkout-page .woocommerce-account-fields,
body.tcf-checkout-page .woocommerce-account-fields .form-row-wide {
	grid-column: 1 / -1;
}

body.tcf-checkout-page .woocommerce-checkout .form-row label {
	display: block;
	margin: 0 0 7px;
	color: var(--tcf-ink-2);
	font-family: var(--tcf-font);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.3;
}

body.tcf-checkout-page .woocommerce-checkout .form-row label .required {
	color: var(--tcf-error);
	font-weight: 500;
}

body.tcf-checkout-page .woocommerce-input-wrapper {
	display: block;
	position: relative;
}

body.tcf-checkout-page .woocommerce-checkout .form-row input.input-text,
body.tcf-checkout-page .woocommerce-checkout .form-row select,
body.tcf-checkout-page .woocommerce-checkout .form-row textarea {
	width: 100% !important;
	min-height: 54px;
	margin: 0;
	padding: 13px 15px;
	border: 1px solid var(--tcf-line) !important;
	border-radius: var(--tcf-radius-sm) !important;
	background: color-mix(in oklch, var(--tcf-canvas), var(--tcf-surface) 58%) !important;
	color: var(--tcf-ink) !important;
	font-family: var(--tcf-font);
	font-size: 15px;
	font-weight: 450;
	line-height: 1.35;
	letter-spacing: -0.018em;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72) !important;
	transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
	-webkit-appearance: none;
	appearance: none;
}

body.tcf-checkout-page .woocommerce-checkout .form-row input.input-text::placeholder,
body.tcf-checkout-page .woocommerce-checkout .form-row textarea::placeholder {
	color: #7d879a;
	opacity: 1;
}

body.tcf-checkout-page .woocommerce-checkout .form-row input.input-text:hover,
body.tcf-checkout-page .woocommerce-checkout .form-row select:hover {
	border-color: var(--tcf-line-strong) !important;
	background: var(--tcf-surface) !important;
}

body.tcf-checkout-page .woocommerce-checkout .form-row input.input-text:focus,
body.tcf-checkout-page .woocommerce-checkout .form-row select:focus,
body.tcf-checkout-page .woocommerce-checkout .form-row textarea:focus {
	border-color: var(--tcf-blue) !important;
	background: var(--tcf-surface) !important;
	box-shadow: 0 0 0 3px var(--tcf-blue-soft) !important;
	outline: none;
}

body.tcf-checkout-page .form-row.woocommerce-validated input.input-text,
body.tcf-checkout-page .form-row.tcf-valid input.input-text,
body.tcf-checkout-page .form-row.woocommerce-validated select,
body.tcf-checkout-page .form-row.tcf-valid select {
	border-color: var(--tcf-green) !important;
}

body.tcf-checkout-page .form-row.woocommerce-invalid input.input-text,
body.tcf-checkout-page .form-row.woocommerce-invalid select {
	border-color: var(--tcf-error) !important;
	background: var(--tcf-error-soft) !important;
}

body.tcf-checkout-page .form-row.woocommerce-validated::after,
body.tcf-checkout-page .form-row.tcf-valid::after {
	content: "✓";
	position: absolute;
	right: 15px;
	top: 40px;
	color: var(--tcf-green-dark);
	font-size: 15px;
	font-weight: 800;
	pointer-events: none;
}

body.tcf-checkout-page .form-row.tcf-password-field::after,
body.tcf-checkout-page #billing_country_field::after {
	display: none;
}

body.tcf-checkout-page .select2-container {
	width: 100% !important;
}

body.tcf-checkout-page .select2-container .select2-selection--single {
	min-height: 54px !important;
	border: 1px solid var(--tcf-line) !important;
	border-radius: var(--tcf-radius-sm) !important;
	background: var(--tcf-canvas) !important;
	padding: 11px 42px 11px 15px;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72) !important;
}

body.tcf-checkout-page .select2-container .select2-selection__rendered {
	padding: 0 !important;
	color: var(--tcf-ink) !important;
	font-family: var(--tcf-font);
	font-size: 15px;
	line-height: 30px !important;
}

body.tcf-checkout-page .select2-container .select2-selection__arrow {
	top: 14px !important;
	right: 12px !important;
}

body.tcf-checkout-page .select2-container--focus .select2-selection--single,
body.tcf-checkout-page .select2-container--open .select2-selection--single {
	border-color: var(--tcf-blue) !important;
	box-shadow: 0 0 0 3px var(--tcf-blue-soft) !important;
}

/* Country selector ------------------------------------------------------ */
body.tcf-checkout-page .tcf-country-control {
	position: relative;
}

body.tcf-checkout-page .tcf-country-flag {
	position: absolute;
	z-index: 4;
	left: 14px;
	top: 50%;
	width: 30px;
	height: 22px;
	border-radius: 6px;
	box-shadow: 0 0 0 1px rgba(18, 43, 70, 0.1), 0 4px 10px rgba(23, 37, 84, 0.1);
	transform: translateY(-50%);
	pointer-events: none;
}

body.tcf-checkout-page .tcf-country-field--enhanced select {
	min-height: 58px !important;
	padding-left: 57px !important;
	border-color: #dbeafe !important;
	border-radius: 14px !important;
	background: linear-gradient(150deg, #ffffff, #f8fbff) !important;
	font-weight: 600;
}

body.tcf-checkout-page .tcf-country-field--enhanced .select2-selection--single {
	min-height: 58px !important;
	padding-block: 13px !important;
	border-color: #dbeafe !important;
	border-radius: 14px !important;
	background: linear-gradient(150deg, #ffffff, #f8fbff) !important;
	box-shadow: 0 8px 22px -18px rgba(29, 78, 216, 0.65) !important;
}

body.tcf-checkout-page .tcf-country-field--enhanced .select2-selection__rendered {
	padding: 0 !important;
	color: var(--tcf-ink) !important;
	font-weight: 650;
}

body.tcf-checkout-page .tcf-country-choice {
	min-width: 0;
	display: inline-flex;
	align-items: center;
	gap: 12px;
}

body.tcf-checkout-page .tcf-country-choice__flag {
	flex: 0 0 auto;
	width: 30px;
	height: 22px;
	border-radius: 6px;
	box-shadow: 0 0 0 1px rgba(18, 43, 70, 0.1), 0 4px 10px rgba(23, 37, 84, 0.08);
}

body.tcf-checkout-page .tcf-country-choice__name {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

body.tcf-checkout-page .tcf-country-field--enhanced .select2-selection__arrow {
	top: 16px !important;
	right: 14px !important;
	width: 24px !important;
	height: 24px !important;
	border-radius: 8px;
	background: var(--tcf-blue-soft);
}

body.tcf-checkout-page .tcf-country-field--enhanced .select2-selection__arrow b {
	left: 8px !important;
	top: 7px !important;
	margin: 0 !important;
	border-width: 5px 4px 0 !important;
	border-top-color: var(--tcf-blue-dark) !important;
}

body.tcf-checkout-page .tcf-country-field--enhanced .select2-container--open .select2-selection__arrow b {
	border-width: 0 4px 5px !important;
	border-bottom-color: var(--tcf-blue-dark) !important;
}

body.tcf-checkout-page.tcf-country-dropdown-open .select2-container--open .select2-dropdown,
body.tcf-checkout-page .select2-dropdown.tcf-country-dropdown {
	z-index: 99999 !important;
	margin-top: 7px;
	padding: 7px;
	border: 1px solid #dbeafe !important;
	border-radius: 16px !important;
	background: #ffffff !important;
	box-shadow: 0 24px 54px -18px rgba(23, 37, 84, 0.28) !important;
	overflow: hidden;
}

body.tcf-checkout-page.tcf-country-dropdown-open .select2-container--open .select2-search--dropdown,
body.tcf-checkout-page .select2-dropdown.tcf-country-dropdown .select2-search--dropdown {
	display: block;
	padding: 5px 5px 9px;
	background: #ffffff !important;
}

body.tcf-checkout-page.tcf-country-dropdown-open .select2-container--open .select2-search__field,
body.tcf-checkout-page .select2-dropdown.tcf-country-dropdown .select2-search__field {
	width: 100% !important;
	min-height: 44px;
	padding: 9px 12px !important;
	border: 1px solid var(--tcf-line) !important;
	border-radius: 10px !important;
	background: #f8fafc !important;
	color: var(--tcf-ink) !important;
	font-family: var(--tcf-font);
	font-size: 15px;
	outline: none;
}

body.tcf-checkout-page.tcf-country-dropdown-open .select2-container--open .select2-search__field:focus,
body.tcf-checkout-page .select2-dropdown.tcf-country-dropdown .select2-search__field:focus {
	border-color: var(--tcf-blue) !important;
	box-shadow: 0 0 0 3px var(--tcf-blue-soft) !important;
}

body.tcf-checkout-page.tcf-country-dropdown-open .select2-container--open .select2-results,
body.tcf-checkout-page .select2-dropdown.tcf-country-dropdown .select2-results {
	background: #ffffff !important;
}

body.tcf-checkout-page.tcf-country-dropdown-open .select2-container--open .select2-results__options,
body.tcf-checkout-page .select2-dropdown.tcf-country-dropdown .select2-results__options {
	max-height: min(312px, 48vh) !important;
	padding: 2px;
	background: #ffffff !important;
}

body.tcf-checkout-page.tcf-country-dropdown-open .select2-container--open .select2-results__option,
body.tcf-checkout-page .select2-dropdown.tcf-country-dropdown .select2-results__option {
	position: relative;
	min-height: 46px;
	display: flex;
	align-items: center;
	margin: 2px 0;
	padding: 9px 38px 9px 10px !important;
	border: 0 !important;
	border-radius: 10px;
	background: #ffffff !important;
	color: var(--tcf-ink-2) !important;
	font-family: var(--tcf-font);
	font-size: 14px;
	font-weight: 550;
	line-height: 1.3;
}

body.tcf-checkout-page.tcf-country-dropdown-open .select2-container--open .select2-results__option .tcf-country-choice,
body.tcf-checkout-page .select2-dropdown.tcf-country-dropdown .select2-results__option .tcf-country-choice {
	display: flex;
	align-items: center;
	gap: 12px;
}

body.tcf-checkout-page.tcf-country-dropdown-open .select2-container--open .select2-results__option .tcf-country-choice__flag,
body.tcf-checkout-page .select2-dropdown.tcf-country-dropdown .select2-results__option .tcf-country-choice__flag {
	flex: 0 0 auto;
	width: 28px;
	height: 21px;
	border-radius: 5px;
	box-shadow: 0 0 0 1px rgba(18, 43, 70, 0.1);
}

body.tcf-checkout-page.tcf-country-dropdown-open .select2-container--open .select2-results__option[aria-selected="true"],
body.tcf-checkout-page .select2-dropdown.tcf-country-dropdown .select2-results__option[aria-selected="true"] {
	background: var(--tcf-blue-soft) !important;
	color: var(--tcf-blue-dark) !important;
	font-weight: 700;
}

body.tcf-checkout-page.tcf-country-dropdown-open .select2-container--open .select2-results__option[aria-selected="true"]::after,
body.tcf-checkout-page .select2-dropdown.tcf-country-dropdown .select2-results__option[aria-selected="true"]::after {
	content: "✓";
	position: absolute;
	right: 13px;
	top: 50%;
	color: var(--tcf-green-dark);
	font-size: 15px;
	font-weight: 800;
	transform: translateY(-50%);
}

body.tcf-checkout-page.tcf-country-dropdown-open .select2-container--open .select2-results__option--highlighted,
body.tcf-checkout-page .select2-dropdown.tcf-country-dropdown .select2-results__option--highlighted {
	background: #f1f5f9 !important;
	color: var(--tcf-ink) !important;
}

.tcf-password-wrapper { position: relative; display: block; }
.tcf-password-wrapper input { padding-right: 84px !important; }
body.tcf-checkout-page .woocommerce-checkout button.tcf-password-toggle {
	position: absolute;
	right: 7px;
	top: 50%;
	transform: translateY(-50%);
	min-height: 40px;
	padding: 0 10px;
	border: 0 !important;
	border-radius: 7px !important;
	background: transparent !important;
	color: var(--tcf-blue) !important;
	font-size: 11px;
	font-weight: 700;
	box-shadow: none !important;
	filter: none !important;
	text-decoration: none !important;
	cursor: pointer;
}
body.tcf-checkout-page .woocommerce-checkout button.tcf-password-toggle:hover,
body.tcf-checkout-page .woocommerce-checkout button.tcf-password-toggle:focus-visible {
	border-color: transparent !important;
	border-radius: 7px !important;
	background: var(--tcf-blue-soft) !important;
	color: var(--tcf-blue-dark) !important;
	box-shadow: none !important;
	filter: none !important;
}
body.tcf-checkout-page .woocommerce-checkout button.tcf-password-toggle:active {
	background: #dbeafe !important;
	color: var(--tcf-blue-dark) !important;
}

.tcf-almost-done {
	display: none;
	align-items: center;
	gap: 8px;
	margin: 0 0 18px;
	padding: 11px 13px;
	border-radius: 10px;
	background: var(--tcf-green-soft);
	color: var(--tcf-green-dark);
	font-size: 12px;
	font-weight: 650;
}
.tcf-almost-done.visible { display: flex; }
.tcf-almost-done svg { width: 16px; }

/* Payment --------------------------------------------------------------- */
body.tcf-checkout-page .tcf-payment-section .woocommerce-checkout-review-order-table {
	display: none !important;
}

body.tcf-checkout-page #payment {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

body.tcf-checkout-page #payment .payment_methods {
	margin: 0 !important;
	padding: 0 !important;
	border: 1px solid var(--tcf-line) !important;
	border-radius: var(--tcf-radius-md) !important;
	background: var(--tcf-surface) !important;
	list-style: none !important;
	overflow: hidden;
}

body.tcf-checkout-page #payment .payment_methods > li {
	margin: 0 !important;
	padding: 16px !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: var(--tcf-surface) !important;
}

body.tcf-checkout-page #payment .payment_methods > li + li {
	border-top: 1px solid var(--tcf-line) !important;
}

body.tcf-checkout-page #payment .payment_methods input[type="radio"] {
	accent-color: var(--tcf-blue);
}

body.tcf-checkout-page #payment .payment_methods label {
	color: var(--tcf-ink-2);
	font-family: var(--tcf-font);
	font-size: 13px;
	font-weight: 700;
}

body.tcf-checkout-page #payment .payment_methods input + label {
	margin-left: 6px;
}

body.tcf-checkout-page #payment .payment_methods label img {
	max-height: 22px;
	margin-left: 6px;
}

body.tcf-checkout-page #payment .payment_box {
	margin: 14px -16px -16px !important;
	padding: 18px 16px !important;
	border-radius: 0 !important;
	background: var(--tcf-canvas) !important;
	color: var(--tcf-muted) !important;
	font-family: var(--tcf-font);
	font-size: 12px;
}

body.tcf-checkout-page #payment .payment_box::before { display: none !important; }

body.tcf-checkout-page .wc-stripe-elements-field,
body.tcf-checkout-page .StripeElement {
	min-height: 52px !important;
	padding: 15px !important;
	border: 1px solid var(--tcf-line) !important;
	border-radius: var(--tcf-radius-sm) !important;
	background: var(--tcf-surface) !important;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72) !important;
}

body.tcf-checkout-page .StripeElement--focus {
	border-color: var(--tcf-blue) !important;
	box-shadow: 0 0 0 3px var(--tcf-blue-soft) !important;
}

body.tcf-checkout-page #payment .place-order {
	width: 100% !important;
	margin: 18px 0 0 !important;
	padding: 22px clamp(22px, 4vw, 36px) clamp(22px, 4vw, 32px) !important;
	border-top: 1px solid var(--tcf-line);
	background: var(--tcf-canvas) !important;
	float: none !important;
	clear: both !important;
}

body.tcf-checkout-page .woocommerce-terms-and-conditions-wrapper,
body.tcf-checkout-page .woocommerce-terms-and-conditions,
body.tcf-checkout-page .woocommerce-privacy-policy-text,
body.tcf-checkout-page #payment .place-order > p.form-row:not(.tcf-keep) {
	display: none !important;
}

.tcf-payment-assurances {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 9px;
	margin-bottom: 17px;
}

.tcf-payment-assurance {
	min-width: 0;
	display: grid;
	grid-template-columns: 36px minmax(0, 1fr);
	align-items: center;
	gap: 8px;
	padding: 8px;
	border: 1px solid var(--tcf-line);
	border-radius: 11px;
	background: var(--tcf-surface);
}

.tcf-payment-assurance__visual,
.tcf-payment-assurance__visual svg {
	display: block;
	width: 36px;
	height: 36px;
}

.tcf-payment-assurance > span:last-child { display: grid; min-width: 0; max-width: 100%; line-height: 1.15; }
.tcf-payment-assurance strong,
.tcf-payment-assurance small {
	display: block;
	max-width: 100%;
	white-space: normal;
	overflow-wrap: break-word;
	hyphens: auto;
}
.tcf-payment-assurance strong { color: var(--tcf-ink-2); font-size: 10px; font-weight: 700; }
.tcf-payment-assurance small { margin-top: 3px; color: var(--tcf-muted); font-size: 9px; line-height: 1.25; }

body.tcf-checkout-page #payment #place_order {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	min-height: 59px !important;
	margin: 0 !important;
	padding: 14px 20px !important;
	border: 0 !important;
	border-radius: 9999px !important;
	background: linear-gradient(135deg, var(--tcf-accent-dark), var(--tcf-accent)) !important;
	color: #ffffff !important;
	font-family: var(--tcf-font-display) !important;
	font-size: 15px !important;
	font-weight: 750 !important;
	line-height: 1.2 !important;
	letter-spacing: -0.025em;
	box-shadow: 0 12px 28px -10px rgba(234, 88, 12, 0.6) !important;
	cursor: pointer !important;
	transition: transform 0.28s var(--tcf-ease), background 0.18s ease, box-shadow 0.28s var(--tcf-ease);
}

body.tcf-checkout-page #payment #place_order:hover {
	background: linear-gradient(135deg, #7c2d12, var(--tcf-accent-dark)) !important;
	box-shadow: 0 16px 34px -10px rgba(194, 65, 12, 0.58) !important;
	transform: translateY(-2px);
}

body.tcf-checkout-page #payment #place_order:active { transform: translateY(0); }

.tcf-privacy-note {
	margin: 13px 0 0;
	padding: 0 18px;
	color: var(--tcf-muted);
	font-size: 11px;
	line-height: 1.5;
	text-align: center;
}
.tcf-privacy-note a { color: var(--tcf-blue); text-decoration: none; }
.tcf-privacy-note a:hover { text-decoration: underline; }

/* Order summary ---------------------------------------------------------- */
.tcf-order-summary {
	position: relative;
	isolation: isolate;
	border: 1px solid #dbeafe;
	border-radius: var(--tcf-radius-lg);
	background: var(--tcf-surface);
	color: var(--tcf-ink);
	box-shadow: 0 24px 48px -16px rgba(23, 37, 84, 0.18);
	overflow: hidden;
}

.tcf-order-summary::before {
	content: none;
}

.tcf-order-summary::after {
	content: none;
}

.tcf-summary-hero {
	position: relative;
	min-height: 210px;
	padding: 24px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	background:
		radial-gradient(70% 80% at 92% 8%, rgba(219, 234, 254, 0.92), transparent 68%),
		linear-gradient(165deg, #eff6ff 0%, #f8fbff 58%, #ffffff 100%);
}

.tcf-summary-topline {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	color: var(--tcf-blue-dark);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.tcf-item-count {
	padding: 5px 9px;
	border-radius: 999px;
	background: var(--tcf-green-soft);
	color: var(--tcf-green-dark);
	font-size: 9px;
	letter-spacing: 0.04em;
	text-transform: none;
}

.tcf-summary-code {
	position: absolute;
	right: 20px;
	bottom: 2px;
	color: rgba(37, 99, 235, 0.07);
	font-family: var(--tcf-font-display);
	font-size: 104px;
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.12em;
}

.tcf-summary-heading { position: relative; max-width: 230px; }
.tcf-summary-heading > span { display: block; margin-bottom: 7px; color: var(--tcf-green-dark); font-size: 10px; font-weight: 750; letter-spacing: 0.12em; text-transform: uppercase; }
.tcf-summary-heading h2 { margin: 0; color: var(--tcf-blue-dark); font-family: var(--tcf-font-display); font-size: clamp(29px, 3.6vw, 40px); font-weight: 800; line-height: 1; letter-spacing: -0.05em; }

.tcf-summary-details { border-top: 1px solid #dbeafe; }

.tcf-products { padding: 18px 24px 4px; }
.tcf-product-card {
	display: grid;
	grid-template-columns: 48px minmax(0, 1fr) auto;
	align-items: center;
	gap: 12px;
	padding: 12px 0;
	color: var(--tcf-ink);
}
.tcf-product-card + .tcf-product-card { border-top: 1px solid var(--tcf-line); }
.tcf-product-card__image { width: 48px; height: 48px; border: 1px solid #dbeafe; border-radius: 12px; background: var(--tcf-blue-soft); overflow: hidden; }
.tcf-product-card__image img { width: 100%; height: 100%; object-fit: cover; }
.tcf-plan-badge { width: 100%; height: 100%; display: grid; place-items: center; color: #fff; font-size: 16px; font-weight: 800; }
.tcf-plan-badge--gold { background: linear-gradient(135deg, #d97706, #fbbf24); }
.tcf-plan-badge--silver { background: linear-gradient(135deg, #8b96aa, #566176); }
.tcf-plan-badge--bronze { background: linear-gradient(135deg, #c3794f, #8f4f31); }
.tcf-product-card__info { min-width: 0; }
.tcf-product-card__name { margin: 0 0 7px; color: var(--tcf-ink); font-size: 12px; font-weight: 700; line-height: 1.3; }
.tcf-product-card__qty-controls { display: inline-flex; border: 1px solid var(--tcf-line); border-radius: 7px; overflow: hidden; }
.tcf-qty-btn { width: 27px; height: 27px; display: grid; place-items: center; border: 0; background: var(--tcf-canvas); color: var(--tcf-muted); padding: 0; cursor: pointer; }
.tcf-qty-btn:hover { background: var(--tcf-blue-soft); color: var(--tcf-blue-dark); }
.tcf-qty-btn svg { width: 13px; }
.tcf-qty-value { min-width: 28px; height: 27px; display: grid; place-items: center; border-inline: 1px solid var(--tcf-line); color: var(--tcf-ink-2); font-size: 11px; font-weight: 650; }
.tcf-product-card__actions { display: grid; justify-items: end; gap: 7px; }
.tcf-product-card__price { color: var(--tcf-ink); font-size: 12px; font-weight: 700; white-space: nowrap; }
body.tcf-checkout-page .tcf-order-summary button.tcf-remove-item { min-height: 28px; display: inline-flex; align-items: center; gap: 4px; padding: 2px 5px; border: 0 !important; border-radius: 6px !important; background: transparent !important; color: var(--tcf-faint) !important; font-size: 9px; box-shadow: none !important; filter: none !important; text-decoration: none !important; cursor: pointer; }
body.tcf-checkout-page .tcf-order-summary button.tcf-remove-item:hover,
body.tcf-checkout-page .tcf-order-summary button.tcf-remove-item:focus-visible { border-color: transparent !important; border-radius: 6px !important; background: var(--tcf-error-soft) !important; color: var(--tcf-error) !important; box-shadow: none !important; filter: none !important; }
body.tcf-checkout-page .tcf-order-summary button.tcf-remove-item:active { background: #fee2e2 !important; color: var(--tcf-error) !important; }
.tcf-remove-item svg { width: 12px; }

.tcf-order-benefits { display: grid; padding: 10px 24px 18px; background: #fbfdff; }
.tcf-order-benefits > div { display: grid; grid-template-columns: 18px 1fr; gap: 10px; padding: 10px 0; color: var(--tcf-muted); font-size: 11px; }
.tcf-order-benefits > div + div { border-top: 1px solid var(--tcf-line); }
.tcf-order-benefits svg { width: 14px; margin-top: 2px; color: var(--tcf-green); }
.tcf-order-benefits strong { color: var(--tcf-ink); font-weight: 700; }

.tcf-order-totals { padding: 18px 24px 22px; border-top: 1px solid var(--tcf-line); }
body.tcf-checkout-page .tcf-order-summary .woocommerce-checkout-review-order-table { width: 100%; margin: 0; border: 0; background: transparent; }
body.tcf-checkout-page .tcf-order-summary .woocommerce-checkout-review-order-table thead,
body.tcf-checkout-page .tcf-order-summary .woocommerce-checkout-review-order-table tbody { display: none; }
body.tcf-checkout-page .tcf-order-summary .woocommerce-checkout-review-order-table tfoot tr { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 5px 0; border: 0; }
body.tcf-checkout-page .tcf-order-summary .woocommerce-checkout-review-order-table tfoot th,
body.tcf-checkout-page .tcf-order-summary .woocommerce-checkout-review-order-table tfoot td { padding: 0; border: 0; background: transparent; color: var(--tcf-muted); font-family: var(--tcf-font); font-size: 11px; font-weight: 500; text-align: left; }
body.tcf-checkout-page .tcf-order-summary .woocommerce-checkout-review-order-table tfoot td { margin-left: auto; text-align: right; font-variant-numeric: tabular-nums; }
body.tcf-checkout-page .tcf-order-summary .woocommerce-checkout-review-order-table tfoot .order-total { margin-top: 8px; padding-top: 14px; border-top: 1px solid var(--tcf-line); }
body.tcf-checkout-page .tcf-order-summary .woocommerce-checkout-review-order-table tfoot .order-total th { color: var(--tcf-ink); font-family: var(--tcf-font-display); font-size: 13px; font-weight: 700; }
body.tcf-checkout-page .tcf-order-summary .woocommerce-checkout-review-order-table tfoot .order-total td { color: var(--tcf-blue-dark); font-family: var(--tcf-font-display); font-size: 31px; font-weight: 800; letter-spacing: -0.05em; }
body.tcf-checkout-page .tcf-order-summary .remove { color: var(--tcf-error); }
.tcf-currency-note { margin: -3px 0 0; color: var(--tcf-faint); font-size: 9px; letter-spacing: 0.08em; text-align: right; text-transform: uppercase; }

.tcf-coupon { border-top: 1px solid var(--tcf-line); background: var(--tcf-canvas); }
body.tcf-checkout-page .tcf-order-summary button.tcf-coupon-toggle { width: 100%; min-height: 51px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 24px; border: 0 !important; border-radius: 0 !important; background: transparent !important; color: var(--tcf-muted) !important; font-family: var(--tcf-font); font-size: 11px; font-weight: 600; box-shadow: none !important; filter: none !important; text-decoration: none !important; cursor: pointer; }
body.tcf-checkout-page .tcf-order-summary button.tcf-coupon-toggle:hover,
body.tcf-checkout-page .tcf-order-summary button.tcf-coupon-toggle:focus-visible { border-color: transparent !important; border-radius: 0 !important; background: var(--tcf-blue-soft) !important; color: var(--tcf-blue-dark) !important; box-shadow: none !important; filter: none !important; }
body.tcf-checkout-page .tcf-order-summary button.tcf-coupon-toggle:active { background: #dbeafe !important; color: var(--tcf-blue-dark) !important; }
.tcf-coupon-toggle svg { width: 13px; transition: transform 0.25s var(--tcf-ease); }
.tcf-coupon-toggle.open svg { transform: rotate(180deg); }
.tcf-coupon-form { display: none; grid-template-columns: 1fr auto; gap: 8px; padding: 0 24px 18px; }
.tcf-coupon-form.visible { display: grid; }
.tcf-coupon-form input { min-width: 0; min-height: 43px; padding: 10px 12px; border: 1px solid var(--tcf-line); border-radius: 8px; background: var(--tcf-surface); color: var(--tcf-ink); font-size: 12px; }
.tcf-coupon-form input::placeholder { color: var(--tcf-faint); }
.tcf-coupon-form input:focus { border-color: var(--tcf-blue); outline: 2px solid rgba(37, 99, 235, 0.18); outline-offset: 1px; }
.tcf-coupon-form button { min-height: 43px; padding: 9px 14px; border: 0; border-radius: 8px; background: var(--tcf-blue-dark); color: #fff; font-size: 11px; font-weight: 700; cursor: pointer; }

.tcf-mobile-summary-toggle { display: none; }
.tcf-mobile-summary-content { display: block; }

/* Reassurance ------------------------------------------------------------ */
.tcf-social-proof { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 14px; padding: 0 3px; color: var(--tcf-muted); font-size: 10px; }
.tcf-social-proof strong { color: var(--tcf-ink-2); }
.tcf-stars { color: #d69828; letter-spacing: 0.06em; }

.tcf-trust-dock {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin-top: clamp(32px, 4vw, 56px);
	border: 1px solid var(--tcf-line);
	border-radius: var(--tcf-radius-md);
	background: rgba(254, 254, 255, 0.92);
	box-shadow: 0 14px 45px rgba(24, 32, 50, 0.045);
	overflow: hidden;
}
.tcf-trust-signal { min-width: 0; display: flex; align-items: center; gap: 13px; padding: 16px 18px; }
.tcf-trust-signal + .tcf-trust-signal { border-left: 1px solid var(--tcf-line); }
.tcf-trust-visual,
.tcf-trust-visual svg { flex: 0 0 auto; display: block; width: 52px; height: 52px; }
.tcf-trust-visual svg { filter: drop-shadow(0 6px 9px rgba(24, 32, 50, 0.09)); }
.tcf-trust-signal > span:last-child { min-width: 0; display: grid; line-height: 1.18; }
.tcf-trust-signal strong { color: var(--tcf-ink-2); font-size: 11px; font-weight: 700; }
.tcf-trust-signal small { margin-top: 3px; color: var(--tcf-muted); font-size: 9px; }

/* Notices and theme leftovers ------------------------------------------ */
body.tcf-checkout-page .woocommerce-error,
body.tcf-checkout-page .woocommerce-message,
body.tcf-checkout-page .woocommerce-info {
	width: min(1248px, calc(100% - 40px));
	margin: 16px auto !important;
	padding: 14px 18px;
	border-radius: 12px;
	font-family: var(--tcf-font);
	font-size: 13px;
}
body.tcf-checkout-page .woocommerce-NoticeGroup { width: 100%; margin: 0; }
body.tcf-checkout-page .woocommerce-form-coupon-toggle,
body.tcf-checkout-page .checkout_coupon.woocommerce-form-coupon,
body.tcf-checkout-page .woocommerce-form-login-toggle,
body.tcf-checkout-page .woocommerce-info:not(.tcf-keep) { display: none !important; }

body.tcf-checkout-page :focus-visible {
	outline: 3px solid rgba(37, 99, 235, 0.62);
	outline-offset: 3px;
}

body.tcf-checkout-page .blockUI.blockOverlay { background: rgba(243, 245, 250, 0.76) !important; }

/* Responsive ------------------------------------------------------------- */
@container (max-width: 530px) {
	body.tcf-checkout-page .woocommerce-billing-fields__field-wrapper,
	body.tcf-checkout-page .woocommerce-account-fields .create-account,
	.tcf-payment-assurances {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 980px) {
	.tcf-checkout-layout {
		grid-template-columns: minmax(0, 1fr) minmax(288px, 0.74fr);
		gap: 32px;
	}

	.tcf-trust-signal { padding: 14px 12px; gap: 8px; }
	.tcf-trust-visual,
	.tcf-trust-visual svg { width: 44px; height: 44px; }
}

@media (max-width: 800px) {
	body.tcf-checkout-page { padding-bottom: env(safe-area-inset-bottom); }

	.tcf-checkout-wrapper {
		width: min(100% - 24px, 760px);
		padding: 24px 0 40px;
	}

	.tcf-checkout-layout { grid-template-columns: 1fr; gap: 24px; }
	.tcf-checkout-right { position: static; grid-row: 1; }
	.tcf-checkout-left { grid-row: 2; }
	.tcf-checkout-intro { margin-bottom: 28px; }
	.tcf-checkout-intro h1 { max-width: 11ch; font-size: clamp(40px, 10vw, 54px); }
	.tcf-summary-hero { display: none; }
	.tcf-order-summary::before,
	.tcf-order-summary::after { display: none; }

	.tcf-mobile-summary-toggle {
		width: 100%;
		min-height: 59px;
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 16px;
		padding: 12px 16px;
		border: 0;
		border-bottom: 1px solid #dbeafe;
		background: linear-gradient(155deg, var(--tcf-blue-soft), #ffffff);
		color: var(--tcf-ink);
		font-size: 11px;
		font-weight: 650;
		cursor: pointer;
	}

	.tcf-mobile-summary-price { display: flex; align-items: center; gap: 8px; font-size: 16px; font-weight: 700; }
	.tcf-mobile-summary-price { color: var(--tcf-blue-dark); font-family: var(--tcf-font-display); }
	.tcf-mobile-summary-price svg { width: 13px; color: var(--tcf-green-dark); transition: transform 0.25s var(--tcf-ease); }
	.tcf-mobile-summary-toggle.open .tcf-mobile-summary-price svg { transform: rotate(180deg); }
	.tcf-mobile-summary-content { display: none; }
	.tcf-mobile-summary-content.visible { display: block; }

	.tcf-trust-dock { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 24px; }
	.tcf-trust-signal:nth-child(3) { border-left: 0; border-top: 1px solid var(--tcf-line); }
	.tcf-trust-signal:nth-child(4) { border-top: 1px solid var(--tcf-line); }

	body.tcf-checkout-page #payment .place-order {
		position: static !important;
		margin: 18px 0 0 !important;
		padding: 20px 16px max(22px, env(safe-area-inset-bottom)) !important;
		border-top: 1px solid var(--tcf-line) !important;
		background: var(--tcf-canvas) !important;
		box-shadow: none !important;
		backdrop-filter: none;
	}

	body.tcf-checkout-page #payment #place_order { min-height: 55px !important; }
	body.tcf-checkout-page .wc-stripe-elements-field,
	body.tcf-checkout-page .StripeElement { scroll-margin-bottom: 28px; }
}

@media (max-width: 560px) {
	.tcf-checkout-wrapper { width: min(100% - 20px, 540px); padding-top: 18px; }
	.tcf-form-surface,
	.tcf-order-summary { border-radius: 20px; }
	.tcf-form-section { padding: 20px 16px; }
	.tcf-section-heading { margin-bottom: 20px; }
	.tcf-login-link { display: none; }
	body.tcf-checkout-page .woocommerce-billing-fields__field-wrapper,
	body.tcf-checkout-page .woocommerce-account-fields .create-account { grid-template-columns: 1fr; gap: 13px; }
	body.tcf-checkout-page .woocommerce-checkout .form-row-first,
	body.tcf-checkout-page .woocommerce-checkout .form-row-last,
	body.tcf-checkout-page .woocommerce-checkout .form-row-wide { grid-column: auto; }
	body.tcf-checkout-page .woocommerce-checkout .form-row input.input-text,
	body.tcf-checkout-page .woocommerce-checkout .form-row select { min-height: 54px; font-size: 16px; }
	.tcf-product-card { grid-template-columns: 44px minmax(0, 1fr) auto; gap: 9px; }
	.tcf-product-card__image { width: 44px; height: 44px; }
	.tcf-order-benefits,
	.tcf-products,
	.tcf-order-totals { padding-inline: 17px; }
	body.tcf-checkout-page .tcf-order-summary button.tcf-coupon-toggle { padding-inline: 17px; }
	.tcf-coupon-form { padding-inline: 17px; }
	.tcf-trust-signal { padding: 13px 9px; }
	.tcf-trust-visual,
	.tcf-trust-visual svg { width: 44px; height: 44px; }
	.tcf-trust-signal strong { font-size: 10px; }
	.tcf-trust-signal small { font-size: 8px; }
	.tcf-privacy-note { padding-inline: 8px; }
}

@media (prefers-reduced-motion: no-preference) {
	.tcf-checkout-intro,
	.tcf-form-surface,
	.tcf-checkout-right {
		opacity: 0;
		transform: translateY(14px);
		animation: tcf-reveal 0.65s var(--tcf-ease) forwards;
	}
	.tcf-form-surface { animation-delay: 0.08s; }
	.tcf-checkout-right { animation-delay: 0.16s; }
	@keyframes tcf-reveal { to { opacity: 1; transform: translateY(0); } }
}

@media (prefers-reduced-motion: reduce) {
	body.tcf-checkout-page *,
	body.tcf-checkout-page *::before,
	body.tcf-checkout-page *::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}

@media print {
	.tcf-trust-dock,
	.tcf-payment-assurances,
	.tcf-social-proof { display: none !important; }
}
