/* ==========================================================================
   TCB Site — design tokens + site-wide base ("The Cozy Counter")
   Loaded on every public page. Keep this file small and low-specificity.
   ========================================================================== */

/* Fonts: self-hosted, latin subset, variable weight (SIL OFL 1.1). */
@font-face {
	font-family: "Bricolage Grotesque";
	font-style: normal;
	font-display: swap;
	font-weight: 200 800;
	src: url("../fonts/bricolage-latin-wght.woff2") format("woff2-variations"), url("../fonts/bricolage-latin-wght.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Inter";
	font-style: normal;
	font-display: swap;
	font-weight: 100 900;
	src: url("../fonts/inter-latin-wght.woff2") format("woff2-variations"), url("../fonts/inter-latin-wght.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* 2.0.3: metric-matched fallbacks, so the swap from the system font to the web font does not
   move text (the /menu/ CLS 0.137). Values computed with fontTools from the shipped woff2 files
   (variable instances at the weights used) against Arial / Arial Bold (Liberation Sans metrics),
   size-adjust = average advance width over the menu's own text; overrides = hhea metrics / size-adjust. */
@font-face {
	font-family: "Inter Fallback";
	font-weight: 100 600;
	src: local("Arial"), local("ArialMT"), local("Liberation Sans"), local("Helvetica");
	size-adjust: 106.86%;
	ascent-override: 90.66%;
	descent-override: 22.57%;
	line-gap-override: 0%;
}
@font-face {
	font-family: "Inter Fallback";
	font-weight: 700 900;
	src: local("Arial Bold"), local("Arial-BoldMT"), local("Liberation Sans Bold"), local("Helvetica Bold");
	size-adjust: 102.35%;
	ascent-override: 94.65%;
	descent-override: 23.57%;
	line-gap-override: 0%;
}
@font-face {
	font-family: "Bricolage Fallback";
	font-weight: 200 600;
	src: local("Arial"), local("ArialMT"), local("Liberation Sans"), local("Helvetica");
	size-adjust: 104.86%;
	ascent-override: 88.69%;
	descent-override: 25.75%;
	line-gap-override: 0%;
}
@font-face {
	font-family: "Bricolage Fallback";
	font-weight: 700 900;
	src: local("Arial Bold"), local("Arial-BoldMT"), local("Liberation Sans Bold"), local("Helvetica Bold");
	size-adjust: 102.67%;
	ascent-override: 90.58%;
	descent-override: 26.30%;
	line-gap-override: 0%;
}

/* Android has no Arial: a second family matched to Roboto (Android's sans), tried only when
   the Arial-based family's local() sources are missing. */
@font-face { font-family: "Inter Fallback Android"; font-weight: 100 600; src: local("Roboto"), local("Roboto-Regular"); size-adjust: 107.69%; ascent-override: 89.96%; descent-override: 22.40%; line-gap-override: 0%; }
@font-face { font-family: "Inter Fallback Android"; font-weight: 700 900; src: local("Roboto Bold"), local("Roboto-Bold"); size-adjust: 108.69%; ascent-override: 89.13%; descent-override: 22.19%; line-gap-override: 0%; }
@font-face { font-family: "Bricolage Fallback Android"; font-weight: 200 600; src: local("Roboto"), local("Roboto-Regular"); size-adjust: 105.68%; ascent-override: 88.00%; descent-override: 25.55%; line-gap-override: 0%; }
@font-face { font-family: "Bricolage Fallback Android"; font-weight: 700 900; src: local("Roboto Bold"), local("Roboto-Bold"); size-adjust: 109.03%; ascent-override: 85.29%; descent-override: 24.76%; line-gap-override: 0%; }

:root {
	/* Colour — brand */
	--tcb-ink: #161311;
	--tcb-broth: #1f1712;
	--tcb-broth-2: #2b2019;
	--tcb-paper: #fbf3e4;
	--tcb-cream: #fff9ef;
	--tcb-amber: #f6a623;
	--tcb-yellow: #ffc72c;
	--tcb-red: #ee2e24;      /* decorative / large only on light grounds */
	--tcb-red-deep: #c4261c; /* text + buttons with white (5.8:1) */
	--tcb-muted: #5c4e42;    /* 7.3:1 on paper */
	--tcb-muted-light: #d8c9b4; /* 10.9:1 on broth */
	--tcb-line: #e6d8c2;
	--tcb-white: #fff;

	/* Type */
	--tcb-font-display: "Bricolage Grotesque", "Bricolage Fallback", "Bricolage Fallback Android", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--tcb-font-body: "Inter", "Inter Fallback", "Inter Fallback Android", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--tcb-step--1: clamp(0.875rem, 0.85rem + 0.1vw, 0.9375rem);
	--tcb-step-0: clamp(1rem, 0.97rem + 0.15vw, 1.0625rem);
	--tcb-step-1: clamp(1.125rem, 1.07rem + 0.3vw, 1.3125rem);
	--tcb-step-2: clamp(1.375rem, 1.24rem + 0.6vw, 1.75rem);
	--tcb-step-3: clamp(1.75rem, 1.45rem + 1.4vw, 2.625rem);
	--tcb-step-4: clamp(2.375rem, 1.7rem + 3.2vw, 4.5rem);
	--tcb-leading-tight: 1.04;
	--tcb-leading: 1.6;

	/* Space (8-pt rhythm) */
	--tcb-s1: 0.25rem;
	--tcb-s2: 0.5rem;
	--tcb-s3: 0.75rem;
	--tcb-s4: 1rem;
	--tcb-s5: 1.5rem;
	--tcb-s6: 2rem;
	--tcb-s7: 3rem;
	--tcb-s8: 4rem;
	--tcb-section: clamp(3.5rem, 2.4rem + 5vw, 7rem);
	--tcb-gutter: clamp(1rem, 0.6rem + 2vw, 2rem);
	--tcb-max: 1200px;

	/* Shape + depth */
	--tcb-r-sm: 10px;
	--tcb-r: 18px;
	--tcb-r-lg: 28px;
	--tcb-r-pill: 999px;
	--tcb-shadow-1: 0 1px 2px rgb(22 19 17 / 0.06), 0 2px 8px rgb(22 19 17 / 0.06);
	--tcb-shadow-2: 0 2px 4px rgb(22 19 17 / 0.06), 0 12px 32px rgb(22 19 17 / 0.12);
	--tcb-sticker-shadow: 0 3px 0 var(--tcb-ink);

	/* Motion */
	--tcb-ease-out: cubic-bezier(0.23, 1, 0.32, 1);
	--tcb-ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
	--tcb-dur-press: 140ms;
	--tcb-dur-ui: 200ms;
	--tcb-dur-swap: 380ms;

	/* Focus */
	--tcb-focus: 0 0 0 3px var(--tcb-cream), 0 0 0 6px var(--tcb-ink);
}

/* Map Elementor kit globals onto our type so existing Elementor pages inherit it.
   Kit variables are declared on .elementor-kit-N (0,1,0); body[...] (0,1,1) wins. */
body.tcb-ds[class*="elementor-kit-"] {
	--e-global-typography-primary-font-family: "Bricolage Grotesque", "Bricolage Fallback", "Bricolage Fallback Android";
	--e-global-typography-secondary-font-family: "Bricolage Grotesque", "Bricolage Fallback", "Bricolage Fallback Android";
	--e-global-typography-text-font-family: "Inter", "Inter Fallback", "Inter Fallback Android";
	--e-global-typography-accent-font-family: "Inter", "Inter Fallback", "Inter Fallback Android";
}

/* ---------- Base ---------- */
html {
	-webkit-text-size-adjust: 100%;
	-webkit-tap-highlight-color: transparent;
}
body.tcb-ds {
	font-family: var(--tcb-font-body);
	color: var(--tcb-ink);
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
}
body.tcb-ds h1,
body.tcb-ds h2,
body.tcb-ds h3,
body.tcb-ds .elementor-heading-title {
	font-family: var(--tcb-font-display);
	letter-spacing: -0.015em;
	text-wrap: balance;
}
body.tcb-ds p { text-wrap: pretty; }
body.tcb-ds input,
body.tcb-ds select,
body.tcb-ds textarea { font-size: max(16px, 1em); } /* no iOS zoom-on-focus */

body.tcb-ds a,
body.tcb-ds button { touch-action: manipulation; }

body.tcb-ds :focus-visible {
	outline: 3px solid var(--tcb-ink);
	outline-offset: 3px;
	border-radius: 4px;
}

/* ---------- Promo bar (replaces snippet 12 .tcb-flexbar) ---------- */
.tcb-promo {
	background: var(--tcb-ink);
	color: var(--tcb-cream);
	font: 600 var(--tcb-step--1)/1.35 var(--tcb-font-body);
	padding: 0.5rem var(--tcb-gutter);
	padding-left: max(var(--tcb-gutter), env(safe-area-inset-left));
	padding-right: max(var(--tcb-gutter), env(safe-area-inset-right));
	text-align: center;
}
.tcb-promo__text { margin: 0; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.25rem 0.75rem; }
.tcb-promo__hl { color: var(--tcb-yellow); }
.tcb-promo__rest { color: var(--tcb-cream); }
.tcb-promo .tcb-promo__link {
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	padding: 0.25rem 0.9rem;
	border-radius: var(--tcb-r-pill);
	background: var(--tcb-yellow);
	color: var(--tcb-ink);
	font-weight: 800;
	text-decoration: none;
	transition: transform var(--tcb-dur-press) var(--tcb-ease-out);
}
.tcb-promo .tcb-promo__link:active { transform: scale(0.97); }
.tcb-promo .tcb-promo__link:focus-visible { outline-color: var(--tcb-yellow); }
@media (max-width: 599px) {
	.tcb-promo__rest { display: none; } /* keep it to one line on phones */
}
/* Snippet 12 used to hide the theme's red header widget band. */
.tcb-ds .header-widget-region { display: none; }

/* ---------- Shoptimizer header ---------- */
.tcb-ds .site-header,
.tcb-ds .header-4-container,
.tcb-ds .col-full-nav { background: var(--tcb-white); }
.tcb-ds .site-header .custom-logo { width: auto; max-height: 26px; }
@media (min-width: 993px) {
	.tcb-ds .site-header .custom-logo { max-height: 30px; }
}
.tcb-ds .main-navigation ul.menu > li > a,
.tcb-ds .main-navigation ul.menu > li > a span {
	font-family: var(--tcb-font-body);
	font-weight: 650;
	color: var(--tcb-ink);
	letter-spacing: 0;
}
@media (hover: hover) and (pointer: fine) {
	.tcb-ds .main-navigation ul.menu > li > a:hover span { color: var(--tcb-red-deep); }
}
.tcb-ds .main-navigation ul.menu > li.current-menu-item > a span {
	text-decoration: underline;
	text-decoration-thickness: 3px;
	text-underline-offset: 8px;
	text-decoration-color: var(--tcb-amber);
}
.tcb-ds .menu-toggle {
	min-width: 44px;
	min-height: 44px;
}
.tcb-ds .menu-toggle .bar { background-color: var(--tcb-ink); }

/* ---------- WooCommerce / theme buttons (was snippet 7, !important) ---------- */
body.tcb-ds .button,
body.tcb-ds a.button,
body.tcb-ds button.button,
body.tcb-ds input[type="submit"],
body.tcb-ds .wp-element-button {
	background: var(--tcb-yellow);
	color: var(--tcb-ink);
	border: 0;
	border-radius: var(--tcb-r-pill);
	font-family: var(--tcb-font-body);
	font-weight: 800;
	min-height: 44px;
	padding: 0.75rem 1.4rem;
	box-shadow: var(--tcb-sticker-shadow);
	transition: transform var(--tcb-dur-press) var(--tcb-ease-out), box-shadow var(--tcb-dur-press) var(--tcb-ease-out);
}
body.tcb-ds .button:active,
body.tcb-ds input[type="submit"]:active,
body.tcb-ds .wp-element-button:active {
	transform: translateY(2px);
	box-shadow: 0 1px 0 var(--tcb-ink);
}

/* ---------- Utilities shared with templates ---------- */
.tcb-ds .screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal;
}

@media (prefers-reduced-motion: reduce) {
	.tcb-ds *,
	.tcb-ds *::before,
	.tcb-ds *::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
	}
	/* Elementor entrance animations must never hide content. */
	.tcb-ds .elementor-invisible { visibility: visible !important; opacity: 1 !important; }
}

/* ==========================================================================
   1.0.1 — Cozy Rewards join panel (snippet 274) fixes
   ========================================================================== */
/* Panel asked for Figtree (never loaded) and form controls don't inherit fonts,
   so inputs/buttons fell back to the browser serif. */
body.tcb-ds #tcbp,
body.tcb-ds #tcbp input,
body.tcb-ds #tcbp select,
body.tcb-ds #tcbp button,
body.tcb-ds #tcbp textarea { font-family: var(--tcb-font-body); }
/* Panel sets 15px on text inputs: iOS zooms the page on focus below 16px. */
@media (max-width: 600px) {
	body.tcb-ds #tcbp input[type="text"],
	body.tcb-ds #tcbp input[type="email"],
	body.tcb-ds #tcbp input[type="tel"],
	body.tcb-ds #tcbp input[type="password"],
	body.tcb-ds #tcbp select { font-size: 16px; }
}

/* "Play & win" tab: on phones a compact pill, bottom-left, inside the safe area.
   z-index 99989 (the panel's own) stays far below WPConsent (900000), so the
   cookie banner always sits on top of it. Desktop keeps the side tab. */
@media (max-width: 600px) {
	body.tcb-ds #tcbp-tab {
		writing-mode: horizontal-tb;
		transform: none;
		animation: none;
		top: auto;
		right: auto;
		left: max(12px, env(safe-area-inset-left));
		bottom: max(12px, env(safe-area-inset-bottom));
		min-height: 44px;
		min-width: 44px;
		padding: 0 16px;
		border: 2px solid var(--tcb-ink);
		border-radius: var(--tcb-r-pill);
		background: var(--tcb-ink);
		color: var(--tcb-yellow);
		font: 800 14px/1 var(--tcb-font-body);
		letter-spacing: 0;
		text-transform: none;
		text-shadow: none;
		box-shadow: 0 4px 14px rgb(22 19 17 / 0.35), 0 0 0 2px var(--tcb-yellow);
		z-index: 99989;
		align-items: center;
		gap: 6px;
	}
	body.tcb-ds #tcbp-tab.on { display: inline-flex; }
	body.tcb-ds #tcbp-tab:active { transform: scale(0.97); }
	body.tcb-ds #tcbp-tab:focus-visible { outline: 3px solid var(--tcb-yellow); outline-offset: 3px; }
}

/* ==========================================================================
   1.0.1 — WPConsent cookie banner
   WPConsent renders its template into #wpconsent-container (exposing ::part()
   names), so we style through ::part() AND plain descendants: whichever way the
   plugin mounts it (shadow root or light DOM), one set applies. Outer ::part()
   rules beat the plugin's own (non-!important) shadow styles.
   Legal: Reject and Accept All are styled IDENTICALLY (equal prominence).
   Nothing is hidden.
   ========================================================================== */
#wpconsent-root {
	--wpconsent-background: var(--tcb-ink) !important;
	--wpconsent-text: var(--tcb-cream) !important;
	--wpconsent-accept-bg: var(--tcb-cream) !important;
	--wpconsent-cancel-bg: var(--tcb-cream) !important;
	--wpconsent-accept-color: var(--tcb-ink) !important;
	--wpconsent-cancel-color: var(--tcb-ink) !important;
	--wpconsent-preferences-bg: transparent !important;
	--wpconsent-preferences-color: var(--tcb-cream) !important;
	--wpconsent-font-size: 14px !important;
}
#wpconsent-container::part(wpconsent-banner),
#wpconsent-container .wpconsent-banner {
	box-sizing: border-box;
	background: var(--tcb-ink);
	color: var(--tcb-cream);
	font-family: var(--tcb-font-body);
	font-size: 14px;
	line-height: 1.45;
	padding: 14px max(16px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
	border-radius: 18px 18px 0 0;
	border-top: 3px solid var(--tcb-amber); /* separates the sheet from the dark hero */
	box-shadow: 0 -8px 30px rgb(0 0 0 / 0.25);
	max-height: none;
}
#wpconsent-container::part(wpconsent-banner-body),
#wpconsent-container .wpconsent-banner-body { margin: 0 0 10px; padding: 0; font-size: 14px; }
#wpconsent-container .wpconsent-banner-message p { margin: 0; font-size: 14px; line-height: 1.45; }
#wpconsent-container::part(wpconsent-banner-footer),
#wpconsent-container .wpconsent-banner-footer {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) minmax(0, 1fr);
	gap: 8px;
	align-items: center;
	margin: 0;
	padding: 0;
	flex-direction: row;
}
#wpconsent-container::part(wpconsent-button-cancel),
#wpconsent-container::part(wpconsent-button-accept),
#wpconsent-container .wpconsent-cancel-all,
#wpconsent-container .wpconsent-accept-all {
	order: 0;
	width: 100%;
	min-height: 44px;
	margin: 0;
	padding: 8px 10px;
	border: 2px solid var(--tcb-cream);
	border-radius: var(--tcb-r-pill);
	background: var(--tcb-cream);
	color: var(--tcb-ink);
	font: 800 14px/1.1 var(--tcb-font-body);
	box-shadow: none;
	cursor: pointer;
}
#wpconsent-container::part(wpconsent-button-preferences),
#wpconsent-container .wpconsent-preferences-all {
	width: auto;
	min-height: 44px;
	margin: 0;
	padding: 8px 6px;
	border: 0;
	background: transparent;
	color: var(--tcb-cream);
	font: 700 14px/1.1 var(--tcb-font-body);
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}
@media (min-width: 900px) {
	/* Desktop: one slim bar — message left, actions right. */
	#wpconsent-container::part(wpconsent-banner),
	#wpconsent-container .wpconsent-banner {
		display: flex;
		align-items: center;
		gap: 24px;
		border-radius: 0;
		padding: 10px max(24px, calc((100vw - 1200px) / 2));
	}
	#wpconsent-container::part(wpconsent-banner-body),
	#wpconsent-container .wpconsent-banner-body { flex: 1; margin: 0; }
	#wpconsent-container::part(wpconsent-banner-footer),
	#wpconsent-container .wpconsent-banner-footer { flex: none; grid-template-columns: auto 140px 140px; }
}

/* ==========================================================================
   2.0.0 — Site footer (server-rendered, replaces Elementor template 8221)
   ========================================================================== */
.tcb-foot {
	background: var(--tcb-ink);
	color: var(--tcb-cream);
	font: 400 15px/1.6 var(--tcb-font-body);
	border-top: 4px solid var(--tcb-amber);
	clear: both;
}
.tcb-foot__wrap {
	max-width: var(--tcb-max);
	margin: 0 auto;
	padding: clamp(2.5rem, 2rem + 2vw, 4rem) max(var(--tcb-gutter), env(safe-area-inset-right)) max(1.25rem, env(safe-area-inset-bottom)) max(var(--tcb-gutter), env(safe-area-inset-left));
	box-sizing: border-box;
}
.tcb-foot__grid {
	display: grid;
	gap: 2rem 1.5rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	grid-template-areas: "brand brand" "nav sec" "join join";
}
.tcb-foot__brand { grid-area: brand; }
.tcb-foot__col:nth-of-type(1) { grid-area: nav; }
.tcb-foot__col:nth-of-type(2) { grid-area: sec; }
.tcb-foot__join { grid-area: join; }
@media (min-width: 1000px) {
	.tcb-foot__grid {
		gap: 2rem 2.5rem;
		grid-template-columns: minmax(0, 1.3fr) minmax(0, 0.8fr) minmax(0, 0.8fr) minmax(0, 1.3fr);
		grid-template-areas: "brand nav sec join";
	}
}
.tcb-foot .tcb-foot__h {
	margin: 0 0 0.75rem;
	font: 800 0.8125rem/1.2 var(--tcb-font-body);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--tcb-yellow);
}
.tcb-foot ul { list-style: none; margin: 0; padding: 0; }
.tcb-foot__col li { margin: 0; }
.tcb-foot a { color: var(--tcb-cream); text-decoration: none; }
.tcb-foot__col a, .tcb-foot__legal a, .tcb-foot__nap a {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	text-decoration: underline;
	text-decoration-color: rgb(255 249 239 / 0.35);
	text-underline-offset: 4px;
}
@media (hover: hover) and (pointer: fine) {
	.tcb-foot__col a:hover, .tcb-foot__legal a:hover, .tcb-foot__nap a:hover { text-decoration-color: var(--tcb-yellow); color: var(--tcb-yellow); }
}
.tcb-foot a:focus-visible { outline: 3px solid var(--tcb-yellow); outline-offset: 3px; border-radius: 6px; }
.tcb-foot__logo { display: inline-block; margin-bottom: 0.75rem; }
.tcb-foot__logo img { width: 132px; height: auto; display: block; }
.tcb-foot__nap { font-style: normal; color: var(--tcb-muted-light); margin: 0; }
.tcb-foot__nap strong { color: var(--tcb-cream); }
.tcb-foot__join {
	background: var(--tcb-broth-2);
	border: 1px solid rgb(255 249 239 / 0.14);
	border-radius: var(--tcb-r);
	padding: 1.25rem;
	align-self: start;
}
.tcb-foot__join p { margin: 0 0 1rem; color: var(--tcb-cream); }
.tcb-foot .tcb-foot__btn {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	min-height: 48px;
	padding: 0.7rem 1.3rem;
	border-radius: var(--tcb-r-pill);
	background: var(--tcb-yellow);
	color: var(--tcb-ink);
	font-weight: 800;
	border: 2px solid var(--tcb-ink);
	box-shadow: 0 3px 0 rgb(0 0 0 / 0.45);
	transition: transform var(--tcb-dur-press) var(--tcb-ease-out);
}
.tcb-foot .tcb-foot__btn:active { transform: translateY(2px); }
.tcb-foot__base {
	margin-top: 2rem;
	padding-top: 1.25rem;
	border-top: 1px solid rgb(255 249 239 / 0.14);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}
.tcb-foot__social { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.tcb-foot__social a {
	display: inline-grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: rgb(255 249 239 / 0.08);
	color: var(--tcb-cream);
	transition: background-color var(--tcb-dur-ui) ease, color var(--tcb-dur-ui) ease;
}
@media (hover: hover) and (pointer: fine) {
	.tcb-foot__social a:hover { background: var(--tcb-yellow); color: var(--tcb-ink); }
}
.tcb-foot__legal { margin: 0; color: var(--tcb-muted-light); font-size: 14px; }

/* 2.0.2 — footer links: one treatment for every text link (no underline; underline on hover/focus) */
.tcb-foot .tcb-foot__col a,
.tcb-foot .tcb-foot__legal a,
.tcb-foot .tcb-foot__nap a {
	text-decoration: none;
	text-underline-offset: 4px;
	text-decoration-thickness: 2px;
}
.tcb-foot .tcb-foot__col a:focus-visible,
.tcb-foot .tcb-foot__legal a:focus-visible,
.tcb-foot .tcb-foot__nap a:focus-visible { text-decoration: underline; text-decoration-color: var(--tcb-yellow); }
@media (hover: hover) and (pointer: fine) {
	.tcb-foot .tcb-foot__col a:hover,
	.tcb-foot .tcb-foot__legal a:hover,
	.tcb-foot .tcb-foot__nap a:hover { text-decoration: underline; text-decoration-color: var(--tcb-yellow); color: var(--tcb-yellow); }
}

/* 2.0.2 — mobile bottom clutter */
@media (max-width: 600px) {
	/* room for the fixed "Play & win" pill so it never covers the legal line */
	.tcb-foot .tcb-foot__wrap { padding-bottom: calc(76px + env(safe-area-inset-bottom)); }
	/* pages that already have their own fixed order button: no Play & win pill on phones */
	body.page-id-9278 #tcbp-tab,
	body.single-post #tcbp-tab,
	body.single-product #tcbp-tab,
	body.page-id-9278 #tcbp-tab.on,
	body.single-post #tcbp-tab.on,
	body.single-product #tcbp-tab.on { display: none !important; }
	/* reCAPTCHA badge (must stay visible): above the bottom CTA row and below page controls.
	   Google sets bottom/z-index inline, hence !important. */
	.grecaptcha-badge {
		bottom: calc(88px + env(safe-area-inset-bottom)) !important;
		z-index: 40 !important;
	}
}
