/* ==========================================================================
   TCB Site 2.0.0 — Pages skin ("Cozy Counter"), CSS only.
   Scope: body.tcb-pg (+ tcb-pg--{menu|order|rewards|contact|secrets|perks|influencers|news|help|legal}).
   Page content, Elementor data and markup are untouched.
   ========================================================================== */

/* ---------- Shared: type, links, measure ---------- */
body.tcb-pg .entry-content,
body.tcb-pg .elementor-widget-text-editor {
	font-family: var(--tcb-font-body);
	color: var(--tcb-ink);
}
body.tcb-pg .elementor-widget-text-editor,
body.tcb-pg .elementor-widget-text-editor p { font-size: var(--tcb-step-0); line-height: 1.65; }
body.tcb-pg .elementor-heading-title,
body.tcb-pg .entry-content h1,
body.tcb-pg .entry-content h2,
body.tcb-pg .entry-content h3 {
	font-family: var(--tcb-font-display);
	letter-spacing: -0.02em;
	text-wrap: balance;
}
body.tcb-pg--legal .entry-content a:not([class]),
body.tcb-pg .elementor-widget-text-editor a:not([class]) {
	color: var(--tcb-red-deep);
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
}

/* Elementor buttons → token buttons */
body.tcb-pg .elementor-button {
	font-family: var(--tcb-font-body);
	font-weight: 800;
	border-radius: var(--tcb-r-pill);
	min-height: 48px;
	padding: 0.8rem 1.5rem;
	border: 2px solid var(--tcb-ink);
	box-shadow: 0 3px 0 var(--tcb-ink);
	transition: transform var(--tcb-dur-press) var(--tcb-ease-out), box-shadow var(--tcb-dur-press) var(--tcb-ease-out);
}
body.tcb-pg .elementor-button:active { transform: translateY(2px); box-shadow: 0 1px 0 var(--tcb-ink); }
body.tcb-pg .elementor-button:focus-visible { outline: 3px solid var(--tcb-ink); outline-offset: 3px; }

/* Elementor entrance animations must never leave content invisible. */
body.tcb-pg .elementor-invisible { visibility: visible; opacity: 1; animation: none; }

/* Accordions / tabs (Customer Help, Service Perks, Contact) */
body.tcb-pg .elementor-accordion .elementor-accordion-item,
body.tcb-pg .elementor-tabs .elementor-tab-content {
	border-color: var(--tcb-line);
}
body.tcb-pg .elementor-accordion .elementor-tab-title {
	font-family: var(--tcb-font-display);
	font-weight: 750;
	padding: 1rem 1.15rem;
	min-height: 48px;
	background: var(--tcb-cream);
}
body.tcb-pg .elementor-accordion .elementor-tab-title.elementor-active { background: var(--tcb-yellow); }
body.tcb-pg .elementor-accordion .elementor-tab-content { font-size: var(--tcb-step-0); line-height: 1.65; padding: 1rem 1.15rem 1.25rem; }
body.tcb-pg .elementor-tab-title:focus-visible { outline: 3px solid var(--tcb-ink); outline-offset: -3px; }

/* ---------- Forms: Elementor form (Contact) and Gravity Forms (Influencers) ---------- */
body.tcb-pg .elementor-field-group .elementor-field-label,
body.tcb-pg .gform_wrapper .gfield_label,
body.tcb-pg .gform_wrapper .gform-field-label {
	font: 700 var(--tcb-step--1)/1.3 var(--tcb-font-body);
	color: var(--tcb-ink);
}
body.tcb-pg .elementor-field-group .elementor-field-textual,
body.tcb-pg .elementor-field-group select,
body.tcb-pg .gform_wrapper input:not([type="radio"]):not([type="checkbox"]):not([type="submit"]):not([type="button"]):not([type="hidden"]),
body.tcb-pg .gform_wrapper select,
body.tcb-pg .gform_wrapper textarea {
	font-family: var(--tcb-font-body);
	font-size: 16px;
	min-height: 48px;
	padding: 0.7rem 0.9rem;
	color: var(--tcb-ink);
	background: var(--tcb-white);
	border: 2px solid #b9a88f; /* 3.1:1 on white (non-text contrast) */
	border-radius: 12px;
	box-shadow: none;
}
body.tcb-pg .elementor-field-group textarea.elementor-field-textual { min-height: 140px; }
body.tcb-pg .elementor-field-group .elementor-field-textual:focus,
body.tcb-pg .elementor-field-group select:focus,
body.tcb-pg .gform_wrapper input:focus,
body.tcb-pg .gform_wrapper select:focus,
body.tcb-pg .gform_wrapper textarea:focus {
	outline: 3px solid var(--tcb-ink);
	outline-offset: 2px;
	border-color: var(--tcb-ink);
}
body.tcb-pg .elementor-field-type-submit .elementor-button,
body.tcb-pg .gform_wrapper .gform_footer input[type="submit"],
body.tcb-pg .gform_wrapper .gform_footer button,
body.tcb-pg .gform_wrapper .gform_page_footer .button {
	background: var(--tcb-yellow);
	color: var(--tcb-ink);
}
body.tcb-pg .elementor-message-danger,
body.tcb-pg .gform_wrapper .validation_message { color: #a3160e; font-weight: 700; }

/* ---------- Legal pages (Privacy, Cookies): readable measure ---------- */
body.tcb-pg--legal .entry-header,
body.tcb-pg--legal .entry-content { max-width: 72ch; margin-inline: auto; }
body.tcb-pg--legal .entry-title {
	font-family: var(--tcb-font-display);
	font-size: var(--tcb-step-4);
	letter-spacing: -0.03em;
	line-height: 1.05;
	margin: clamp(1.5rem, 1rem + 3vw, 3rem) 0 1rem;
}
body.tcb-pg--legal .entry-content { font-size: var(--tcb-step-0); line-height: 1.7; }
body.tcb-pg--legal .entry-content h2 { font-size: var(--tcb-step-2); margin: 2rem 0 0.5rem; }
body.tcb-pg--legal .entry-content li { margin-bottom: 0.4rem; }

/* ==========================================================================
   Menu (page 9278, raw-HTML .cbm menu)
   ========================================================================== */
body.tcb-pg--menu .cbm {
	--ink: var(--tcb-ink);
	--red: var(--tcb-red);
	--amber: var(--tcb-amber);
	--yellow: var(--tcb-yellow);
	--cream: var(--tcb-cream);
	--paper: var(--tcb-paper);
	font-family: var(--tcb-font-body);
}
/* Every Poppins declaration in the menu becomes the token type. */
body.tcb-pg--menu .cbm [class],
body.tcb-pg--menu .cbm h2,
body.tcb-pg--menu .cbm h3 { font-family: inherit; }
body.tcb-pg--menu .cbm h1,
body.tcb-pg--menu .cbm h2,
body.tcb-pg--menu .cbm h3,
body.tcb-pg--menu .cbm .cbm-price,
body.tcb-pg--menu .cbm .cbm-btn { font-family: var(--tcb-font-display); }

/* Hero → the homepage hero language: broth-ink ground, cream title, yellow highlight. */
body.tcb-pg--menu .cbm-hero {
	background:
		radial-gradient(60% 80% at 80% 10%, rgb(246 166 35 / 0.32), transparent 70%),
		radial-gradient(40% 50% at 10% 0%, rgb(238 46 36 / 0.18), transparent 70%),
		var(--tcb-broth);
	animation: none;
	color: var(--tcb-cream);
}
body.tcb-pg--menu .cbm-hero h1 { color: var(--tcb-cream); letter-spacing: -0.035em; font-weight: 800; }
body.tcb-pg--menu .cbm-hero h1 .hl { color: var(--tcb-yellow); }
body.tcb-pg--menu .cbm-hero h1 .hl::after { background: var(--tcb-yellow); }
body.tcb-pg--menu .cbm-hero .sub { color: var(--tcb-muted-light); }
body.tcb-pg--menu .cbm-hero .cbm-eyebrow { background: var(--tcb-yellow); color: var(--tcb-ink); }
body.tcb-pg--menu .cbm-stats span { background: rgb(255 249 239 / 0.1); color: var(--tcb-cream); backdrop-filter: none; border: 1px solid rgb(255 249 239 / 0.2); }
body.tcb-pg--menu .cbm-hero .em1,
body.tcb-pg--menu .cbm-hero .em2,
body.tcb-pg--menu .cbm-hero .em3,
body.tcb-pg--menu .cbm-hero .em4 { opacity: 0.12; }

/* Content must not depend on a reveal script. */
body.tcb-pg--menu .cbm-anim { opacity: 1; transform: none; }

/* Tools bar, chips, category nav: token pills with 40px+ targets. */
body.tcb-pg--menu .cbm-search input { font-size: 16px; min-height: 46px; border-radius: var(--tcb-r-pill); }
body.tcb-pg--menu .cbm-chip,
body.tcb-pg--menu .cbm-catnav a,
body.tcb-pg--menu .cbm-plat a,
body.tcb-pg--menu .cbm-sort,
body.tcb-pg--menu .cbm-surprise {
	min-height: 40px;
	display: inline-flex;
	align-items: center;
	font-size: 13.5px;
	border-radius: var(--tcb-r-pill);
}
body.tcb-pg--menu .cbm-chip[aria-pressed="true"],
body.tcb-pg--menu .cbm-catnav a.active { background: var(--tcb-ink); color: var(--tcb-yellow); border-color: var(--tcb-ink); }
body.tcb-pg--menu .cbm-crumbs,
body.tcb-pg--menu .cbm-legend,
body.tcb-pg--menu .cbm-plat .lbl { color: var(--tcb-muted); } /* was #8a8175 (3.5:1) → 7.3:1 */

/* Cards: sticker-style edge, readable text, no oversized hover lift. */
body.tcb-pg--menu .cbm-grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
body.tcb-pg--menu .cbm-card { border: 2px solid var(--tcb-ink); border-radius: var(--tcb-r); box-shadow: 0 4px 0 var(--tcb-ink); }
body.tcb-pg--menu .cbm-card::before { display: none; }
@media (hover: hover) and (pointer: fine) {
	body.tcb-pg--menu .cbm-card:hover { transform: translateY(-3px); box-shadow: 0 7px 0 var(--tcb-ink); }
}
body.tcb-pg--menu .cbm-card h3 { font-size: 18px; font-weight: 750; }
body.tcb-pg--menu .cbm-desc { font-size: 15px; color: #3f372f; }
body.tcb-pg--menu .cbm-price { background: var(--tcb-yellow); color: var(--tcb-ink); border: 2px solid var(--tcb-ink); }
body.tcb-pg--menu .cbm-price .cur { color: var(--tcb-ink); }
body.tcb-pg--menu .cbm-fav { width: 40px; height: 40px; }
@media (max-width: 599px) {
	body.tcb-pg--menu .cbm-card { padding: 16px; }
	body.tcb-pg--menu .cbm-hero { padding-top: 44px; }
}

/* ==========================================================================
   Menu & Order (page 7741, raw-HTML .tcb-order)
   ========================================================================== */
body.tcb-pg--order .tcb-order {
	--ink: var(--tcb-ink);
	--cream: var(--tcb-cream);
	--amber: var(--tcb-amber);
	font-family: var(--tcb-font-body);
}
body.tcb-pg--order .tcb-order h1,
body.tcb-pg--order .tcb-order h2,
body.tcb-pg--order .tcb-order h3,
body.tcb-pg--order .tcb-order .wm { font-family: var(--tcb-font-display); letter-spacing: -0.03em; }
body.tcb-pg--order .tcb-order .tcb-card { border: 2px solid var(--tcb-ink); box-shadow: 0 5px 0 var(--tcb-ink); animation: none; opacity: 1; }
@media (hover: hover) and (pointer: fine) {
	body.tcb-pg--order .tcb-order .tcb-card:hover { transform: translateY(-3px); box-shadow: 0 8px 0 var(--tcb-ink); }
}
body.tcb-pg--order .tcb-order .tcb-btn { min-height: 48px; border-radius: var(--tcb-r-pill); font-weight: 800; }
@media (max-width: 1023px) {
	body.tcb-pg--order .tcb-order .tcb-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 599px) {
	body.tcb-pg--order .tcb-order .tcb-cards { grid-template-columns: minmax(0, 1fr); }
}

/* ==========================================================================
   Cozy Rewards (page 7914) — keeps its own game branding (Lilita One, iframe, panel).
   Only the body copy moves to the token font.
   ========================================================================== */
body.tcb-pg--rewards .tcbr { font-family: var(--tcb-font-body); }

/* ==========================================================================
   Elementor content pages: Secrets, Perks, Influencers, News, Help, Contact
   ========================================================================== */
body.tcb-pg--secrets .elementor-widget-heading .elementor-heading-title,
body.tcb-pg--perks .elementor-widget-heading .elementor-heading-title,
body.tcb-pg--influencers .elementor-widget-heading .elementor-heading-title,
body.tcb-pg--news .elementor-widget-heading .elementor-heading-title,
body.tcb-pg--help .elementor-widget-heading .elementor-heading-title,
body.tcb-pg--contact .elementor-widget-heading .elementor-heading-title { font-weight: 800; }
/* Layout widths, image treatments and section backgrounds of Elementor pages are left to
   their page designs: changing them from CSS would fight per-page Elementor settings. */

/* Menu: contrast fixes (axe, 2.0.0). Red text on cream was 3.8:1, grey 3.1–3.5:1. */
body.tcb-pg--menu .cbm-intro a,
body.tcb-pg--menu .cbm-legend b,
body.tcb-pg--menu .cbm-xcard .go,
body.tcb-pg--menu .cbm-meta .clall { color: var(--tcb-red-deep); }
body.tcb-pg--menu .cbm-heat.mild,
body.tcb-pg--menu .cbm-explore .es,
body.tcb-pg--menu .cbm-foot,
body.tcb-pg--menu .cbm-foot a,
body.tcb-pg--menu .cbm-picks-empty,
body.tcb-pg--menu .cbm .hint { color: var(--tcb-muted); }
body.tcb-pg--menu .cbm-heat { color: var(--tcb-red-deep); }
body.tcb-pg--menu .cbm footer > a,
body.tcb-pg--menu .cbm .cbm-order { background-color: var(--tcb-red-deep); }
body.tcb-pg--menu .cbm-intro a { text-decoration: underline; text-underline-offset: 3px; }

/* Menu & Order: brand colours at accessible strength (axe, 2.0.0). The bright brand hue stays
   on the decorative top accent bar; text and white-on-colour buttons use deeper shades. */
body.tcb-pg--order .tcb-order {
	--deliveroo-text: #00756c;
	--justeat-text: #a84700;
	--ubereats-text: #04773f;
	--amberdk: #8a4f00;
}
body.tcb-pg--order .tcb-order .c-deliveroo .wm { color: var(--deliveroo-text); }
body.tcb-pg--order .tcb-order .c-deliveroo .tcb-btn { background: var(--deliveroo-text); }
body.tcb-pg--order .tcb-order .c-justeat .wm { color: var(--justeat-text); }
body.tcb-pg--order .tcb-order .c-justeat .tcb-btn { background: var(--justeat-text); }
body.tcb-pg--order .tcb-order .c-ubereats .wm .g { color: var(--ubereats-text); }
body.tcb-pg--menu .cbm-crumbs a { color: var(--tcb-muted); text-decoration: underline; text-underline-offset: 3px; }
