/* =========================================================================
   TopCloudShop - Ember Orange Infrastructure
   Design system for the Astra child theme. Token layer first, then
   components in the order they appear on the page.
   ========================================================================= */

/* ---------- Fonts (self-hosted, variable, latin subset) ---------- */
@font-face {
	font-family: "Sora";
	src: url("../fonts/sora-var.woff2") format("woff2");
	font-weight: 100 800;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Manrope";
	src: url("../fonts/manrope-var.woff2") format("woff2");
	font-weight: 200 800;
	font-style: normal;
	font-display: swap;
}

/* ---------- Tokens ---------- */
:root {
	--tcs-bg: #16110F;
	--tcs-surface: #29201C;
	--tcs-raised: #3B251C;
	--tcs-ink: #F5EDE7;
	--tcs-muted: #BCA99C;
	--tcs-accent: #FF7628;
	--tcs-accent-soft: #FFB15C;
	--tcs-accent-glow: #FF8A32;
	--tcs-line: #4A3228;
	--tcs-positive: #55C08A;

	--tcs-font-display: "Sora", "Trebuchet MS", sans-serif;
	--tcs-font-body: "Manrope", "Segoe UI", sans-serif;

	--tcs-xs: 6px;
	--tcs-sm: 12px;
	--tcs-md: 20px;
	--tcs-lg: 36px;
	--tcs-xl: 64px;
	--tcs-xxl: 104px;

	--tcs-r-sm: 6px;
	--tcs-r-md: 12px;
	--tcs-r-lg: 20px;
	--tcs-r-pill: 999px;

	--tcs-container: 1200px;
	--tcs-gutter: 20px;
	--tcs-measure: 68ch;

	--tcs-shadow: 0 10px 30px rgba(22, 17, 15, 0.6);
	--tcs-ease: cubic-bezier(0.2, 0.7, 0.3, 1);
}

/* ---------- Base reset ----------
   The child theme owns the whole document and Astra's stylesheet is dequeued
   on front-end views, so the few resets we relied on from it live here. */
*,
*::before,
*::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}
body { margin: 0; }
img, svg, video, canvas, iframe { max-width: 100%; }
img, svg, video { height: auto; }
button, input, select, textarea { font-family: inherit; font-size: inherit; color: inherit; }
figure { margin: 0; }
table { border-collapse: collapse; }
ul, ol { margin: 0 0 1em; }
main { display: block; }

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}
.screen-reader-text:focus {
	position: static;
	width: auto;
	height: auto;
	margin: 0;
	clip-path: none;
}

/* ---------- Base ---------- */
body,
body.woocommerce,
body.ast-separate-container,
body.ast-plain-container,
body.ast-page-builder-template {
	background-color: var(--tcs-bg);
	color: var(--tcs-ink);
	font-family: var(--tcs-font-body);
	font-size: 17px;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}
#page,
#content,
#primary,
.site-content,
.ast-container,
.ast-separate-container .ast-article-single,
.ast-separate-container #primary,
.ast-separate-container .ast-article-post,
.ast-separate-container .comment-respond,
.entry-content,
.site-main {
	background: transparent;
	background-color: transparent;
	box-shadow: none;
}

/* Astra prints its dynamic colour CSS inline in the head, after this
   stylesheet's link, so an equal-specificity rule would lose on source order.
   Prefixing with `body` raises these to (0,0,2) and settles it by weight. */
body h1, body h2, body h3, body h4, body h5, body h6,
body .entry-content h1, body .entry-content h2, body .entry-content h3,
body .entry-content h4, body .entry-content h5, body .entry-content h6 {
	font-family: var(--tcs-font-display);
	color: var(--tcs-ink);
	font-weight: 700;
	line-height: 1.12;
	margin: 0 0 var(--tcs-sm);
	letter-spacing: -0.01em;
}
h1 { font-size: clamp(2rem, 1.3rem + 2.6vw, 3.1rem); line-height: 1.06; }
h2 { font-size: clamp(1.6rem, 1.2rem + 1.5vw, 2.3rem); }
h3 { font-size: clamp(1.25rem, 1.1rem + 0.7vw, 1.5rem); }
h4 { font-size: 1.15rem; font-weight: 600; }

body p, body li { color: var(--tcs-ink); }
p { margin: 0 0 1.05em; }
body .tcs-lede, body .tcs-card__desc, body .tcs-hero__sub,
body .tcs-footer p, body .tcs-footer a, body .tcs-panel p,
body .tcs-steps p, body .tcs-featurelist span,
body .tcs-faq__item > div, body .tcs-postcard p, body .tcs-result p { color: var(--tcs-muted); }
body .tcs-eyebrow { color: var(--tcs-accent-soft); }
body .tcs-card__price, body .tcs-steps li::before { color: var(--tcs-accent); }

a {
	color: var(--tcs-accent);
	text-decoration-color: rgba(255, 118, 40, 0.4);
	text-underline-offset: 3px;
	transition: color 0.18s var(--tcs-ease);
}
a:hover { color: var(--tcs-accent-soft); }

strong, b { font-weight: 700; color: var(--tcs-ink); }
hr { border: 0; border-top: 1px solid var(--tcs-line); margin: var(--tcs-lg) 0; }

::selection { background: var(--tcs-accent); color: #16110F; }

/* Focus is always visible and never colour-only. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
	outline: 3px solid var(--tcs-accent-soft);
	outline-offset: 2px;
	border-radius: var(--tcs-r-sm);
}

.tcs-skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 1000;
	background: var(--tcs-accent);
	color: #16110F;
	padding: 10px 18px;
	font-weight: 700;
	border-radius: 0 0 var(--tcs-r-sm) 0;
}
.tcs-skip-link:focus { left: 0; }

/* ---------- Layout ---------- */
.tcs-wrap {
	width: 100%;
	max-width: var(--tcs-container);
	margin-inline: auto;
	padding-inline: var(--tcs-gutter);
}
.tcs-section { padding-block: var(--tcs-xl); position: relative; }
.tcs-section--tight { padding-block: var(--tcs-lg); }
.tcs-section--ruled { border-top: 1px solid var(--tcs-line); }

.tcs-eyebrow {
	font-family: var(--tcs-font-body);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--tcs-accent-soft);
	margin: 0 0 var(--tcs-sm);
	display: block;
}
.tcs-lede {
	font-size: 1.12rem;
	color: var(--tcs-muted);
	max-width: 62ch;
}
.tcs-section__head { margin-bottom: var(--tcs-lg); }
.tcs-section__head h2 { max-width: 24ch; }

/* ---------- Buttons ---------- */
.tcs-btn,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	font-family: var(--tcs-font-body);
	font-size: 0.97rem;
	font-weight: 700;
	line-height: 1.1;
	padding: 14px 26px;
	border-radius: var(--tcs-r-pill);
	border: 1px solid transparent;
	background: var(--tcs-accent);
	color: #16110F;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.18s var(--tcs-ease), border-color 0.18s var(--tcs-ease), transform 0.18s var(--tcs-ease);
}
.tcs-btn:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.wp-block-button__link:hover {
	background: var(--tcs-accent-soft);
	border-color: var(--tcs-accent-soft);
	color: #16110F;
	transform: translateY(-1px);
}
.tcs-btn--ghost {
	background: transparent;
	color: var(--tcs-ink);
	border-color: var(--tcs-line);
}
.tcs-btn--ghost:hover {
	background: transparent;
	border-color: var(--tcs-accent);
	color: var(--tcs-ink);
}
.tcs-btn--sm { padding: 10px 18px; font-size: 0.88rem; }
.tcs-btn[disabled],
.woocommerce button.button[disabled],
.woocommerce button.button:disabled {
	opacity: 0.5;
	cursor: not-allowed;
	transform: none;
}

/* ---------- Header ---------- */
.tcs-header {
	position: relative;
	z-index: 50;
	background: var(--tcs-bg);
}
.tcs-header--sticky { position: sticky; top: 0; }
.admin-bar .tcs-header--sticky { top: 32px; }

/* Row 1: brand + utility */
.tcs-utility {
	background: var(--tcs-surface);
	border-bottom: 1px solid var(--tcs-line);
}
.tcs-utility__inner {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: var(--tcs-md);
	min-height: 78px;
	padding-block: 12px;
}
.tcs-brand {
	display: inline-flex;
	align-items: center;
	gap: 11px;
	text-decoration: none;
	color: var(--tcs-ink);
}
.tcs-brand:hover { color: var(--tcs-ink); }
.tcs-brand__mark { flex: 0 0 auto; display: block; }
.tcs-brand__text { display: flex; flex-direction: column; line-height: 1; }
.tcs-brand__name {
	font-family: var(--tcs-font-display);
	font-weight: 700;
	font-size: 1.32rem;
	letter-spacing: -0.02em;
}
.tcs-brand__name em {
	font-style: normal;
	color: var(--tcs-accent);
}
.tcs-brand__tag {
	font-size: 0.66rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--tcs-muted);
	margin-top: 5px;
	font-weight: 600;
}

.tcs-search { position: relative; max-width: 520px; width: 100%; justify-self: center; }
.tcs-search__field {
	display: flex;
	align-items: center;
	background: var(--tcs-bg);
	border: 1px solid var(--tcs-line);
	border-radius: var(--tcs-r-pill);
	transition: border-color 0.18s var(--tcs-ease);
}
.tcs-search__field:focus-within { border-color: var(--tcs-accent); }
.tcs-search input[type="search"] {
	flex: 1 1 auto;
	min-width: 0;
	background: transparent;
	border: 0;
	color: var(--tcs-ink);
	font-family: var(--tcs-font-body);
	font-size: 0.95rem;
	padding: 12px 6px 12px 20px;
	box-shadow: none;
}
.tcs-search input[type="search"]:focus { outline: none; }
.tcs-search input[type="search"]::placeholder { color: var(--tcs-muted); opacity: 1; }
.tcs-search__submit {
	flex: 0 0 auto;
	background: var(--tcs-accent);
	color: #16110F;
	border: 0;
	border-radius: var(--tcs-r-pill);
	width: 40px;
	height: 40px;
	margin: 4px;
	display: grid;
	place-items: center;
	cursor: pointer;
	transition: background-color 0.18s var(--tcs-ease);
}
.tcs-search__submit:hover { background: var(--tcs-accent-soft); }

.tcs-utility__actions { display: flex; align-items: center; gap: var(--tcs-sm); }
.tcs-iconbtn {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 16px;
	border: 1px solid var(--tcs-line);
	border-radius: var(--tcs-r-pill);
	color: var(--tcs-ink);
	background: var(--tcs-bg);
	text-decoration: none;
	font-size: 0.88rem;
	font-weight: 600;
	transition: border-color 0.18s var(--tcs-ease), color 0.18s var(--tcs-ease);
}
.tcs-iconbtn:hover { border-color: var(--tcs-accent); color: var(--tcs-ink); }
.tcs-iconbtn svg { flex: 0 0 auto; }
.tcs-iconbtn__count {
	position: absolute;
	top: -6px;
	right: -6px;
	min-width: 21px;
	height: 21px;
	padding: 0 5px;
	border-radius: var(--tcs-r-pill);
	background: var(--tcs-accent);
	color: #16110F;
	font-size: 0.7rem;
	font-weight: 700;
	display: grid;
	place-items: center;
	line-height: 1;
}
.tcs-iconbtn--icononly { padding: 11px; }

.tcs-navtoggle {
	display: none;
	align-items: center;
	gap: 9px;
	background: var(--tcs-bg);
	border: 1px solid var(--tcs-line);
	border-radius: var(--tcs-r-pill);
	color: var(--tcs-ink);
	font-family: var(--tcs-font-body);
	font-weight: 700;
	font-size: 0.88rem;
	padding: 11px 17px;
	cursor: pointer;
}

/* Row 2: primary navigation */
.tcs-nav {
	background: var(--tcs-bg);
	border-bottom: 1px solid var(--tcs-line);
}
.tcs-nav__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--tcs-md); }
.tcs-nav__list {
	display: flex;
	align-items: stretch;
	gap: 4px;
	list-style: none;
	margin: 0;
	padding: 0;
	flex-wrap: nowrap;
}
.tcs-nav__list li { position: relative; }
.tcs-nav__list a {
	display: flex;
	align-items: center;
	height: 100%;
	padding: 16px 15px;
	font-family: var(--tcs-font-body);
	font-size: 0.94rem;
	font-weight: 600;
	color: var(--tcs-ink);
	text-decoration: none;
	border-bottom: 2px solid transparent;
	white-space: nowrap;
	transition: color 0.18s var(--tcs-ease), border-color 0.18s var(--tcs-ease);
}
.tcs-nav__list a:hover { color: var(--tcs-accent-soft); border-bottom-color: var(--tcs-accent); }
.tcs-nav__list .current-menu-item > a,
.tcs-nav__list .current_page_item > a,
.tcs-nav__list .current-menu-ancestor > a,
.tcs-nav__list .current-product-ancestor > a,
.tcs-nav__list .tcs-nav--current > a {
	color: var(--tcs-accent);
	border-bottom-color: var(--tcs-accent);
	font-weight: 700;
}
/* Sub menus */
.tcs-nav__list .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 268px;
	background: var(--tcs-surface);
	border: 1px solid var(--tcs-line);
	border-radius: var(--tcs-r-md);
	padding: 8px;
	margin: 0;
	list-style: none;
	box-shadow: var(--tcs-shadow);
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity 0.16s var(--tcs-ease), transform 0.16s var(--tcs-ease), visibility 0.16s;
	z-index: 60;
}
.tcs-nav__list li:hover > .sub-menu,
.tcs-nav__list li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.tcs-nav__list .sub-menu a {
	padding: 10px 13px;
	border-bottom: 0;
	border-radius: var(--tcs-r-sm);
	font-weight: 500;
	white-space: normal;
}
.tcs-nav__list .sub-menu a:hover { background: var(--tcs-raised); color: var(--tcs-accent-soft); }

.tcs-nav__aside { display: flex; align-items: center; gap: var(--tcs-sm); }
.tcs-nav__note {
	font-size: 0.82rem;
	color: var(--tcs-muted);
	display: inline-flex;
	align-items: center;
	gap: 8px;
	white-space: nowrap;
}
.tcs-nav__note b { color: var(--tcs-ink); font-weight: 700; }

/* Mobile navigation panel */
.tcs-mobilenav {
	display: none;
	border-bottom: 1px solid var(--tcs-line);
	background: var(--tcs-surface);
}
.tcs-mobilenav[data-open="true"] { display: block; }
.tcs-mobilenav__list { list-style: none; margin: 0; padding: var(--tcs-sm) 0 var(--tcs-md); }
.tcs-mobilenav__list li { border-bottom: 1px solid var(--tcs-line); }
.tcs-mobilenav__list li:last-child { border-bottom: 0; }
.tcs-mobilenav__list a {
	display: block;
	padding: 14px 2px;
	color: var(--tcs-ink);
	font-weight: 600;
	text-decoration: none;
}
.tcs-mobilenav__list .current-menu-item > a,
.tcs-mobilenav__list .current_page_item > a { color: var(--tcs-accent); }
.tcs-mobilenav__list .sub-menu { list-style: none; margin: 0 0 8px; padding-left: 16px; }
.tcs-mobilenav__list .sub-menu a { padding: 10px 2px; font-weight: 500; color: var(--tcs-muted); }

/* ---------- Ambient atmosphere ---------- */
.tcs-amb { position: relative; isolation: isolate; }
.tcs-amb::before {
	content: "";
	position: absolute;
	inset: -10% -5% auto -5%;
	height: 120%;
	z-index: -1;
	pointer-events: none;
	background:
		radial-gradient(42% 52% at 76% 18%, rgba(255, 138, 50, 0.16), transparent 70%),
		radial-gradient(38% 48% at 8% 82%, rgba(255, 118, 40, 0.09), transparent 72%);
	animation: tcs-drift 26s ease-in-out infinite alternate;
}
.tcs-amb::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	opacity: 0.055;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cg fill='none' stroke='%23FFB15C' stroke-width='1'%3E%3Cpath d='M0 60h120M60 0v120M0 0l120 120M120 0L0 120'/%3E%3C/g%3E%3Cg fill='%23FF7628'%3E%3Ccircle cx='60' cy='60' r='2.5'/%3E%3Ccircle cx='0' cy='0' r='2'/%3E%3Ccircle cx='120' cy='0' r='2'/%3E%3Ccircle cx='0' cy='120' r='2'/%3E%3Ccircle cx='120' cy='120' r='2'/%3E%3C/g%3E%3C/svg%3E");
	background-size: 120px 120px;
}
@keyframes tcs-drift {
	from { transform: translate3d(0, 0, 0) scale(1); }
	to { transform: translate3d(-2.5%, 1.5%, 0) scale(1.06); }
}

/* ---------- Hero ---------- */
.tcs-hero { padding-block: clamp(48px, 4vw + 28px, 92px) var(--tcs-xl); }
.tcs-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
	gap: clamp(28px, 4vw, 64px);
	align-items: center;
}
.tcs-hero h1 { margin-bottom: var(--tcs-md); max-width: 19ch; }
.tcs-hero h1 em { font-style: normal; color: var(--tcs-accent); }
.tcs-hero__sub {
	font-size: 1.14rem;
	color: var(--tcs-muted);
	max-width: 48ch;
	margin-bottom: var(--tcs-lg);
}
.tcs-hero__cta { display: flex; flex-wrap: wrap; gap: var(--tcs-sm); }

/* Ambient panel: an honest abstract network diagram, not a fake dashboard. */
.tcs-hero__panel {
	position: relative;
	border: 1px solid var(--tcs-line);
	border-radius: var(--tcs-r-lg);
	background:
		radial-gradient(70% 70% at 68% 26%, rgba(255, 138, 50, 0.14), transparent 68%),
		linear-gradient(170deg, var(--tcs-surface), var(--tcs-bg));
	padding: var(--tcs-lg);
	overflow: hidden;
}
.tcs-hero__panel svg { display: block; width: 100%; height: auto; }

.tcs-hero__strip {
	display: flex;
	flex-wrap: wrap;
	gap: var(--tcs-sm) var(--tcs-lg);
	margin-top: var(--tcs-xl);
	padding-top: var(--tcs-md);
	border-top: 1px solid var(--tcs-line);
	list-style: none;
	padding-left: 0;
}
.tcs-hero__strip li {
	font-size: 0.9rem;
	color: var(--tcs-muted);
	display: inline-flex;
	align-items: center;
	gap: 9px;
}
.tcs-hero__strip svg { color: var(--tcs-accent); flex: 0 0 auto; }

/* ---------- Platform grid ---------- */
.tcs-grid {
	display: grid;
	gap: var(--tcs-md);
	grid-template-columns: repeat(auto-fit, minmax(258px, 1fr));
}
.tcs-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.tcs-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tcs-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.tcs-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: var(--tcs-sm);
	background: var(--tcs-surface);
	border: 1px solid var(--tcs-line);
	border-radius: var(--tcs-r-md);
	padding: var(--tcs-md);
	transition: border-color 0.2s var(--tcs-ease), transform 0.2s var(--tcs-ease), box-shadow 0.2s var(--tcs-ease);
}
.tcs-card:hover,
.tcs-card:focus-within {
	border-color: rgba(255, 118, 40, 0.45);
	transform: translateY(-2px);
	box-shadow: var(--tcs-shadow);
}
.tcs-card__provider {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	font-size: 0.74rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--tcs-muted);
}
.tcs-chip-mark {
	width: 28px;
	height: 28px;
	border-radius: var(--tcs-r-sm);
	background: var(--tcs-raised);
	border: 1px solid var(--tcs-line);
	display: grid;
	place-items: center;
	font-family: var(--tcs-font-display);
	font-size: 0.7rem;
	font-weight: 700;
	color: var(--tcs-accent-soft);
	letter-spacing: 0;
	flex: 0 0 auto;
}
.tcs-card__title { font-size: 1.17rem; margin: 0; }
.tcs-card__title a { color: var(--tcs-ink); text-decoration: none; }
.tcs-card__title a:hover { color: var(--tcs-accent-soft); }
.tcs-card__desc { font-size: 0.95rem; color: var(--tcs-muted); margin: 0; }
.tcs-card__meta {
	margin-top: auto;
	padding-top: var(--tcs-sm);
	border-top: 1px solid var(--tcs-line);
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--tcs-sm);
	flex-wrap: wrap;
}
.tcs-card__from { font-size: 0.8rem; color: var(--tcs-muted); }
.tcs-card__price {
	font-family: var(--tcs-font-display);
	font-weight: 700;
	font-size: 1.1rem;
	color: var(--tcs-accent);
	display: block;
}
.tcs-card__link {
	font-weight: 700;
	font-size: 0.9rem;
	display: inline-flex;
	align-items: center;
	gap: 7px;
	text-decoration: none;
}
.tcs-card__link svg { transition: transform 0.2s var(--tcs-ease); }
.tcs-card:hover .tcs-card__link svg { transform: translateX(3px); }
.tcs-card__count { font-size: 0.8rem; color: var(--tcs-muted); }

/* ---------- Process list ---------- */
.tcs-steps { list-style: none; margin: 0; padding: 0; counter-reset: tcs-step; display: grid; gap: 0; }
.tcs-steps li {
	counter-increment: tcs-step;
	display: grid;
	grid-template-columns: 54px minmax(0, 1fr);
	gap: var(--tcs-md);
	padding: var(--tcs-md) 0;
	border-top: 1px solid var(--tcs-line);
	align-items: start;
}
.tcs-steps li:last-child { border-bottom: 1px solid var(--tcs-line); }
.tcs-steps li::before {
	content: counter(tcs-step, decimal-leading-zero);
	font-family: var(--tcs-font-display);
	font-weight: 700;
	font-size: 1.5rem;
	color: var(--tcs-accent);
	line-height: 1.2;
}
.tcs-steps h3 { font-size: 1.06rem; margin-bottom: 4px; }
.tcs-steps p { margin: 0; color: var(--tcs-muted); font-size: 0.97rem; }

/* ---------- Feature split ---------- */
.tcs-split {
	display: grid;
	grid-template-columns: minmax(0, 0.86fr) minmax(0, 1.14fr);
	gap: clamp(28px, 4vw, 64px);
	align-items: start;
}
.tcs-featurelist { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--tcs-sm); }
.tcs-featurelist li {
	display: grid;
	grid-template-columns: 22px minmax(0, 1fr);
	gap: 13px;
	padding: 15px var(--tcs-md);
	background: var(--tcs-surface);
	border: 1px solid var(--tcs-line);
	border-radius: var(--tcs-r-md);
	align-items: start;
}
.tcs-featurelist svg { color: var(--tcs-accent); margin-top: 4px; flex: 0 0 auto; }
.tcs-featurelist b { display: block; font-family: var(--tcs-font-display); font-size: 1rem; margin-bottom: 2px; }
.tcs-featurelist span { color: var(--tcs-muted); font-size: 0.95rem; }

/* ---------- Long-form prose ---------- */
.tcs-prose { max-width: var(--tcs-measure); }
.tcs-prose--wide { max-width: 82ch; }
.tcs-prose > *:first-child { margin-top: 0; }
.tcs-prose h2 { margin-top: var(--tcs-xl); padding-top: var(--tcs-md); border-top: 1px solid var(--tcs-line); }
.tcs-prose h3 { margin-top: var(--tcs-lg); }
.tcs-prose h4 { margin-top: var(--tcs-md); color: var(--tcs-accent-soft); }
.tcs-prose p { color: var(--tcs-ink); }
.tcs-prose ul,
.tcs-prose ol { padding-left: 1.3em; margin: 0 0 1.2em; }
.tcs-prose li { margin-bottom: 0.5em; }
.tcs-prose ul li::marker { color: var(--tcs-accent); }
.tcs-prose ol li::marker { color: var(--tcs-accent); font-weight: 700; font-family: var(--tcs-font-display); }
.tcs-prose blockquote {
	margin: var(--tcs-md) 0;
	padding: var(--tcs-md);
	border: 1px solid var(--tcs-line);
	border-left: 3px solid var(--tcs-accent);
	border-radius: 0 var(--tcs-r-md) var(--tcs-r-md) 0;
	background: var(--tcs-surface);
	font-style: normal;
}
.tcs-prose blockquote p:last-child { margin-bottom: 0; }

/* ---------- Specification table ---------- */
.tcs-table-wrap { overflow-x: auto; margin: var(--tcs-md) 0 var(--tcs-lg); border: 1px solid var(--tcs-line); border-radius: var(--tcs-r-md); }
table.tcs-table,
.tcs-prose table,
.woocommerce table.shop_table,
.woocommerce table.shop_attributes {
	width: 100%;
	border-collapse: collapse;
	background: var(--tcs-surface);
	color: var(--tcs-ink);
	font-size: 0.95rem;
	border: 0;
	margin: 0;
}
table.tcs-table th,
.tcs-prose table th,
.woocommerce table.shop_table th,
.woocommerce table.shop_attributes th {
	text-align: left;
	font-family: var(--tcs-font-body);
	font-weight: 700;
	color: var(--tcs-muted);
	background: var(--tcs-raised);
	padding: 13px 16px;
	border-bottom: 1px solid var(--tcs-line);
	font-style: normal;
}
table.tcs-table td,
.tcs-prose table td,
.woocommerce table.shop_table td,
.woocommerce table.shop_attributes td {
	padding: 13px 16px;
	border-bottom: 1px solid var(--tcs-line);
	color: var(--tcs-ink);
	font-style: normal;
	background: transparent;
}
table.tcs-table tr:last-child td,
.woocommerce table.shop_attributes tr:last-child td { border-bottom: 0; }
table.tcs-table td.tcs-table__price { color: var(--tcs-accent); font-family: var(--tcs-font-display); font-weight: 700; white-space: nowrap; }
table.tcs-table td.tcs-table__price--ask { color: var(--tcs-muted); font-family: var(--tcs-font-body); font-weight: 600; white-space: normal; }

/* ---------- FAQ accordion (native details) ---------- */
.tcs-faq { display: grid; gap: var(--tcs-sm); }
.tcs-faq__item,
.tcs-prose details {
	background: var(--tcs-surface);
	border: 1px solid var(--tcs-line);
	border-radius: var(--tcs-r-md);
	overflow: hidden;
}
.tcs-faq__item[open],
.tcs-prose details[open] { border-color: rgba(255, 118, 40, 0.45); }
.tcs-faq__item > summary,
.tcs-prose details > summary {
	cursor: pointer;
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--tcs-md);
	padding: 17px var(--tcs-md);
	font-family: var(--tcs-font-display);
	font-weight: 600;
	font-size: 1.02rem;
	color: var(--tcs-ink);
}
.tcs-faq__item > summary::-webkit-details-marker,
.tcs-prose details > summary::-webkit-details-marker { display: none; }
.tcs-faq__item > summary::after,
.tcs-prose details > summary::after {
	content: "";
	flex: 0 0 auto;
	width: 11px;
	height: 11px;
	border-right: 2px solid var(--tcs-accent);
	border-bottom: 2px solid var(--tcs-accent);
	transform: rotate(45deg);
	transition: transform 0.2s var(--tcs-ease);
}
.tcs-faq__item[open] > summary::after,
.tcs-prose details[open] > summary::after { transform: rotate(-135deg); }
.tcs-faq__item > div,
.tcs-faq__item > p,
.tcs-prose details > div,
.tcs-prose details > p {
	padding: 0 var(--tcs-md) var(--tcs-md);
	color: var(--tcs-muted);
	margin: 0;
}
.tcs-faq__item > div > p:last-child { margin-bottom: 0; }

/* ---------- Final CTA ---------- */
.tcs-cta {
	border: 1px solid var(--tcs-line);
	border-radius: var(--tcs-r-lg);
	background:
		radial-gradient(60% 100% at 82% 10%, rgba(255, 138, 50, 0.15), transparent 70%),
		linear-gradient(160deg, var(--tcs-surface), var(--tcs-bg));
	padding: clamp(28px, 4vw, 56px);
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: var(--tcs-lg);
	align-items: center;
}
.tcs-cta h2 { max-width: 26ch; }
.tcs-cta p { color: var(--tcs-muted); max-width: 54ch; margin: 0; }
.tcs-cta__actions { display: flex; flex-direction: column; gap: var(--tcs-sm); }

/* ---------- Footer ---------- */
.tcs-footer {
	background: var(--tcs-surface);
	border-top: 1px solid var(--tcs-line);
	margin-top: var(--tcs-xxl);
	color: var(--tcs-muted);
}
.tcs-footer__main {
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr));
	gap: var(--tcs-lg);
	padding-block: var(--tcs-xl) var(--tcs-lg);
}
.tcs-footer h2 {
	font-size: 0.78rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--tcs-ink);
	margin-bottom: var(--tcs-sm);
	font-family: var(--tcs-font-body);
	font-weight: 700;
}
.tcs-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.tcs-footer a { color: var(--tcs-muted); text-decoration: none; font-size: 0.93rem; }
.tcs-footer a:hover { color: var(--tcs-accent-soft); text-decoration: underline; }
.tcs-footer__about p { font-size: 0.93rem; max-width: 42ch; color: var(--tcs-muted); }
.tcs-footer__bar {
	border-top: 1px solid var(--tcs-line);
	padding-block: var(--tcs-md);
	display: flex;
	flex-wrap: wrap;
	gap: var(--tcs-sm) var(--tcs-md);
	justify-content: space-between;
	align-items: center;
	font-size: 0.86rem;
}
.tcs-footer__bar p { margin: 0; }
.tcs-footer__brand { display: inline-flex; align-items: center; gap: 10px; margin-bottom: var(--tcs-sm); }

/* ---------- WooCommerce: loop / archive ---------- */
.woocommerce ul.products,
.woocommerce-page ul.products {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(258px, 1fr));
	gap: var(--tcs-md);
	margin: 0;
	padding: 0;
	list-style: none;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { content: none; display: none; }
.woocommerce ul.products li.product {
	width: 100%;
	margin: 0;
	float: none;
	clear: none;
	background: var(--tcs-surface);
	border: 1px solid var(--tcs-line);
	border-radius: var(--tcs-r-md);
	padding: var(--tcs-md);
	display: flex;
	flex-direction: column;
	gap: 10px;
	text-align: left;
	transition: border-color 0.2s var(--tcs-ease), transform 0.2s var(--tcs-ease), box-shadow 0.2s var(--tcs-ease);
}
.woocommerce ul.products li.product:hover {
	border-color: rgba(255, 118, 40, 0.45);
	transform: translateY(-2px);
	box-shadow: var(--tcs-shadow);
}
.woocommerce ul.products li.product a img {
	margin: 0 0 4px;
	border-radius: var(--tcs-r-sm);
	background: var(--tcs-raised);
	aspect-ratio: 16 / 10;
	object-fit: cover;
	width: 100%;
	height: auto;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--tcs-font-display);
	font-size: 1.12rem;
	font-weight: 700;
	color: var(--tcs-ink);
	padding: 0;
	margin: 0;
}
.woocommerce ul.products li.product a { text-decoration: none; }
.woocommerce ul.products li.product .price {
	color: var(--tcs-accent);
	font-family: var(--tcs-font-display);
	font-weight: 700;
	font-size: 1.05rem;
	margin: 0;
	display: block;
}
.woocommerce ul.products li.product .price del { color: var(--tcs-muted); opacity: 0.8; font-weight: 400; }
.woocommerce ul.products li.product .price ins { text-decoration: none; }
.woocommerce ul.products li.product .woocommerce-loop-product__link { display: block; }
.woocommerce ul.products li.product .button { margin-top: auto; align-self: flex-start; }
.woocommerce ul.products li.product .onsale,
.woocommerce span.onsale {
	background: var(--tcs-accent);
	color: #16110F;
	border-radius: var(--tcs-r-pill);
	font-weight: 700;
	font-size: 0.75rem;
	padding: 4px 13px;
	min-height: 0;
	min-width: 0;
	line-height: 1.6;
	top: var(--tcs-sm);
	left: var(--tcs-sm);
	right: auto;
	margin: 0;
}
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering { color: var(--tcs-muted); }
.woocommerce .woocommerce-ordering select,
.woocommerce select,
.woocommerce input[type="text"],
.woocommerce input[type="email"],
.woocommerce input[type="tel"],
.woocommerce input[type="password"],
.woocommerce input[type="number"],
.woocommerce input[type="search"],
.woocommerce textarea,
.woocommerce .select2-container .select2-selection--single {
	background: var(--tcs-bg);
	border: 1px solid var(--tcs-line);
	color: var(--tcs-ink);
	border-radius: var(--tcs-r-sm);
	padding: 11px 13px;
	font-family: var(--tcs-font-body);
	box-shadow: none;
	height: auto;
}
.woocommerce select option { background: var(--tcs-surface); color: var(--tcs-ink); }
.select2-dropdown,
.select2-container--default .select2-results__option,
.select2-container--default .select2-search--dropdown .select2-search__field {
	background: var(--tcs-surface);
	color: var(--tcs-ink);
	border-color: var(--tcs-line);
}
.select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--tcs-accent); color: #16110F; }

.tcs-archive-head { padding-block: var(--tcs-lg) var(--tcs-md); }
.woocommerce .woocommerce-products-header__title,
.woocommerce h1.page-title { font-family: var(--tcs-font-display); color: var(--tcs-ink); }
.term-description { color: var(--tcs-muted); max-width: 72ch; }

/* ---------- WooCommerce: single product ---------- */
.tcs-pdp { padding-top: var(--tcs-md); }
.tcs-breadcrumb {
	font-size: 0.86rem;
	color: var(--tcs-muted);
	padding-block: var(--tcs-sm) var(--tcs-md);
}
.tcs-breadcrumb a { color: var(--tcs-muted); text-decoration: none; }
.tcs-breadcrumb a:hover { color: var(--tcs-accent-soft); text-decoration: underline; }
.tcs-breadcrumb ol { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; }
.tcs-breadcrumb li { display: inline-flex; align-items: center; gap: 8px; }
.tcs-breadcrumb li + li::before { content: "/"; color: var(--tcs-line); }
.woocommerce .woocommerce-breadcrumb { color: var(--tcs-muted); font-size: 0.86rem; margin: 0; }
.woocommerce .woocommerce-breadcrumb a { color: var(--tcs-muted); }

.tcs-pdp__top {
	display: grid;
	grid-template-columns: minmax(0, 0.84fr) minmax(0, 1.16fr);
	gap: clamp(24px, 3.4vw, 52px);
	align-items: start;
}
.woocommerce div.product { margin: 0; }
.woocommerce div.product div.images,
.woocommerce div.product div.summary { width: 100%; float: none; margin: 0; }

.tcs-pdp__gallery {
	position: relative;
	border: 1px solid var(--tcs-line);
	border-radius: var(--tcs-r-lg);
	background:
		radial-gradient(72% 72% at 62% 24%, rgba(255, 138, 50, 0.16), transparent 68%),
		linear-gradient(170deg, var(--tcs-surface), var(--tcs-bg));
	padding: var(--tcs-md);
	overflow: hidden;
}
.tcs-pdp__gallery img { border-radius: var(--tcs-r-md); display: block; width: 100%; height: auto; }
.tcs-pdp__placeholder { display: block; width: 100%; height: auto; border-radius: var(--tcs-r-md); }
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper { margin: 0; }
.woocommerce div.product div.images .flex-control-thumbs { margin-top: var(--tcs-sm); display: flex; gap: 10px; padding: 0; }
.woocommerce div.product div.images .flex-control-thumbs li { width: auto; float: none; margin: 0; }
.woocommerce div.product div.images .flex-control-thumbs img {
	width: 72px;
	border: 1px solid var(--tcs-line);
	border-radius: var(--tcs-r-sm);
	opacity: 0.7;
}
.woocommerce div.product div.images .flex-control-thumbs img.flex-active,
.woocommerce div.product div.images .flex-control-thumbs img:hover { opacity: 1; border-color: var(--tcs-accent); }
.woocommerce div.product div.images .woocommerce-product-gallery__trigger {
	background: var(--tcs-raised);
	border: 1px solid var(--tcs-line);
	border-radius: var(--tcs-r-pill);
	color: var(--tcs-ink);
	top: var(--tcs-sm);
	right: var(--tcs-sm);
}

.tcs-pdp__summary {
	background: var(--tcs-surface);
	border: 1px solid var(--tcs-line);
	border-radius: var(--tcs-r-lg);
	padding: clamp(20px, 2.4vw, 32px);
}
.woocommerce div.product .product_title,
.tcs-pdp__summary .product_title {
	font-family: var(--tcs-font-display);
	font-size: clamp(1.6rem, 1.2rem + 1.3vw, 2.15rem);
	color: var(--tcs-ink);
	margin: 0 0 var(--tcs-sm);
	padding: 0;
	line-height: 1.12;
}
.tcs-pdp__provider {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	font-size: 0.74rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--tcs-muted);
	margin-bottom: var(--tcs-sm);
}
.woocommerce div.product p.price,
.woocommerce div.product span.price,
.tcs-pdp__summary .price {
	font-family: var(--tcs-font-display);
	font-weight: 700;
	font-size: 1.72rem;
	color: var(--tcs-accent);
	margin: 0 0 var(--tcs-sm);
	line-height: 1.2;
}
.woocommerce div.product p.price del,
.woocommerce div.product span.price del { color: var(--tcs-muted); font-size: 0.6em; font-weight: 400; }
.woocommerce div.product p.price ins { text-decoration: none; }
.woocommerce-product-details__short-description,
.tcs-pdp__short {
	color: var(--tcs-muted);
	font-size: 1.01rem;
	margin-bottom: var(--tcs-md);
}
.woocommerce-product-details__short-description p:last-child { margin-bottom: 0; }

/* Variation form as selectable chips */
.woocommerce div.product form.cart { margin: 0; }
.woocommerce div.product form.cart::before,
.woocommerce div.product form.cart::after { content: none; display: none; }
.tcs-variants { margin: 0 0 var(--tcs-md); }
.tcs-variants__label {
	display: block;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--tcs-muted);
	margin-bottom: 10px;
}
.tcs-chips { display: flex; flex-wrap: wrap; gap: 9px; margin: 0 0 var(--tcs-sm); padding: 0; list-style: none; }
.tcs-chip {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 10px 17px;
	border: 1px solid var(--tcs-line);
	background: var(--tcs-surface);
	color: var(--tcs-ink);
	border-radius: var(--tcs-r-pill);
	font-family: var(--tcs-font-body);
	font-size: 0.9rem;
	font-weight: 600;
	cursor: pointer;
	text-align: left;
	transition: border-color 0.18s var(--tcs-ease), background-color 0.18s var(--tcs-ease);
}
.tcs-chip::before {
	content: "";
	width: 9px;
	height: 9px;
	border-radius: 50%;
	border: 1px solid var(--tcs-muted);
	flex: 0 0 auto;
}
.tcs-chip:hover { border-color: var(--tcs-accent-soft); }
.tcs-chip[aria-pressed="true"] {
	border-color: var(--tcs-accent);
	background: var(--tcs-raised);
	font-weight: 700;
}
.tcs-chip[aria-pressed="true"]::before { background: var(--tcs-accent); border-color: var(--tcs-accent); }
.tcs-chip__price { color: var(--tcs-accent); font-family: var(--tcs-font-display); font-weight: 700; }
.tcs-chip--unpriced .tcs-chip__price { color: var(--tcs-muted); font-family: var(--tcs-font-body); font-weight: 600; font-size: 0.82rem; }

.woocommerce div.product form.cart .variations { display: none; }
/* Without script the chips cannot drive the form, so the native select is the
   control and the chips are hidden. */
.tcs-no-js .woocommerce div.product form.cart .variations { display: table; width: 100%; margin-bottom: var(--tcs-sm); }
.tcs-no-js .tcs-variants { display: none; }
.woocommerce div.product form.cart .variations td,
.woocommerce div.product form.cart .variations th { border: 0; padding: 4px 0; background: transparent; }
.woocommerce div.product form.cart .reset_variations {
	display: inline-block;
	margin-top: 8px;
	font-size: 0.84rem;
	color: var(--tcs-muted);
}
.woocommerce div.product .woocommerce-variation-price { margin-bottom: var(--tcs-sm); }
.woocommerce div.product .woocommerce-variation-availability p { margin: 0 0 var(--tcs-sm); color: var(--tcs-muted); font-size: 0.93rem; }
.woocommerce div.product .woocommerce-variation-description p { color: var(--tcs-muted); font-size: 0.93rem; }
.woocommerce div.product form.cart .single_variation_wrap { display: block; }
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart-disabled .single_add_to_cart_button {
	opacity: 0.45;
	cursor: not-allowed;
	pointer-events: none;
}
.tcs-ask-price {
	display: block;
	background: var(--tcs-raised);
	border: 1px solid var(--tcs-line);
	border-radius: var(--tcs-r-md);
	padding: var(--tcs-sm) var(--tcs-md);
	color: var(--tcs-ink);
	font-size: 0.94rem;
	margin-bottom: var(--tcs-sm);
}

.tcs-pdp__buyrow { display: flex; flex-wrap: wrap; gap: var(--tcs-sm); align-items: center; }
.woocommerce .quantity input.qty,
.woocommerce div.product form.cart div.quantity input.qty {
	background: var(--tcs-bg);
	border: 1px solid var(--tcs-line);
	color: var(--tcs-ink);
	border-radius: var(--tcs-r-sm);
	width: 74px;
	padding: 13px 10px;
	text-align: center;
	font-family: var(--tcs-font-body);
	font-weight: 700;
}
.woocommerce div.product form.cart div.quantity { float: none; margin: 0; }
.woocommerce div.product form.cart .button { float: none; }

.tcs-pdp__assure { list-style: none; margin: var(--tcs-md) 0 0; padding: var(--tcs-md) 0 0; border-top: 1px solid var(--tcs-line); display: grid; gap: 10px; }
.tcs-pdp__assure li { display: grid; grid-template-columns: 19px minmax(0, 1fr); gap: 11px; font-size: 0.92rem; color: var(--tcs-muted); align-items: start; }
.tcs-pdp__assure svg { color: var(--tcs-accent); margin-top: 3px; }

.tcs-pdp__telegram {
	display: flex;
	align-items: center;
	gap: var(--tcs-sm);
	flex-wrap: wrap;
	margin-top: var(--tcs-md);
	padding: var(--tcs-sm) var(--tcs-md);
	background: var(--tcs-raised);
	border: 1px solid var(--tcs-line);
	border-radius: var(--tcs-r-md);
	font-size: 0.92rem;
	color: var(--tcs-muted);
}

.tcs-pdp__body { padding-top: var(--tcs-xl); }
.tcs-pdp__layout { display: grid; grid-template-columns: minmax(0, 1fr) 282px; gap: clamp(28px, 3.4vw, 56px); align-items: start; }
.tcs-pdp__aside { position: sticky; top: var(--tcs-md); display: grid; gap: var(--tcs-md); }
.tcs-panel {
	background: var(--tcs-surface);
	border: 1px solid var(--tcs-line);
	border-radius: var(--tcs-r-md);
	padding: var(--tcs-md);
}
.tcs-panel h2 { font-size: 0.78rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--tcs-muted); font-family: var(--tcs-font-body); margin-bottom: var(--tcs-sm); }
.tcs-panel ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.tcs-panel a { font-size: 0.92rem; text-decoration: none; color: var(--tcs-ink); }
.tcs-panel a:hover { color: var(--tcs-accent-soft); }
.tcs-panel p { font-size: 0.92rem; color: var(--tcs-muted); margin: 0; }

/* Tabs are replaced by stacked sections, but hide any that render. */
.woocommerce div.product .woocommerce-tabs ul.tabs { display: none; }
.woocommerce div.product .woocommerce-tabs { padding: 0; }
.woocommerce div.product .woocommerce-tabs .panel { background: transparent; padding: 0; margin: 0; }

.woocommerce div.product .related,
.woocommerce div.product .upsells { padding-top: var(--tcs-xl); border-top: 1px solid var(--tcs-line); margin-top: var(--tcs-xl); }
.woocommerce div.product .related > h2,
.woocommerce div.product .upsells > h2 { margin-bottom: var(--tcs-lg); }

/* ---------- WooCommerce: cart, checkout, account, notices ---------- */
.woocommerce-cart .tcs-pagewrap,
.woocommerce-checkout .tcs-pagewrap { padding-top: var(--tcs-lg); }
.woocommerce table.shop_table { border-radius: var(--tcs-r-md); overflow: hidden; border: 1px solid var(--tcs-line); }
.woocommerce table.shop_table td,
.woocommerce table.shop_table th { border-color: var(--tcs-line); }
.woocommerce table.shop_table thead th { background: var(--tcs-raised); }
.woocommerce table.shop_table tfoot td,
.woocommerce table.shop_table tfoot th { background: var(--tcs-raised); font-weight: 700; }
.woocommerce .cart_totals h2,
.woocommerce-checkout h3,
.woocommerce-billing-fields h3,
.woocommerce-additional-fields h3 { color: var(--tcs-ink); }
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-checkout #order_review,
.woocommerce-checkout .woocommerce-checkout-review-order {
	background: var(--tcs-surface);
	border: 1px solid var(--tcs-line);
	border-radius: var(--tcs-r-md);
	padding: var(--tcs-md);
}
.woocommerce .cart_totals table.shop_table { border: 0; background: transparent; }
.woocommerce form .form-row label,
.woocommerce-checkout label,
.woocommerce label { color: var(--tcs-ink); font-weight: 600; font-size: 0.92rem; }
.woocommerce form .form-row .required { color: var(--tcs-accent); }
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-error,
.woocommerce-notices-wrapper .woocommerce-info,
.woocommerce-notices-wrapper .woocommerce-message {
	background: var(--tcs-surface);
	border-top: 3px solid var(--tcs-accent);
	border-right: 1px solid var(--tcs-line);
	border-bottom: 1px solid var(--tcs-line);
	border-left: 1px solid var(--tcs-line);
	border-radius: var(--tcs-r-md);
	color: var(--tcs-ink);
	padding: 16px var(--tcs-md);
	margin-bottom: var(--tcs-md);
	list-style: none;
}
.woocommerce .woocommerce-error { border-top-color: #E2574C; }
.woocommerce .woocommerce-info::before,
.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-error::before { display: none; }
.woocommerce #payment,
.woocommerce-checkout #payment { background: transparent; border-radius: 0; }
.woocommerce #payment ul.payment_methods {
	background: var(--tcs-bg);
	border: 1px solid var(--tcs-line);
	border-radius: var(--tcs-r-md);
	padding: var(--tcs-md);
}
.woocommerce #payment div.payment_box {
	background: var(--tcs-raised);
	color: var(--tcs-muted);
	border-radius: var(--tcs-r-sm);
}
.woocommerce #payment div.payment_box::before { border-bottom-color: var(--tcs-raised); }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.woocommerce-MyAccount-navigation a {
	display: block;
	padding: 11px 15px;
	background: var(--tcs-surface);
	border: 1px solid var(--tcs-line);
	border-radius: var(--tcs-r-sm);
	color: var(--tcs-ink);
	text-decoration: none;
	font-weight: 600;
	font-size: 0.93rem;
}
.woocommerce-MyAccount-navigation li.is-active a { border-color: var(--tcs-accent); color: var(--tcs-accent); }
.woocommerce .woocommerce-form-login,
.woocommerce .woocommerce-form-register,
.woocommerce-account .woocommerce-Address address,
.woocommerce .woocommerce-customer-details address {
	background: var(--tcs-surface);
	border: 1px solid var(--tcs-line);
	border-radius: var(--tcs-r-md);
	padding: var(--tcs-md);
	color: var(--tcs-ink);
}
.woocommerce nav.woocommerce-pagination ul { border: 0; display: flex; gap: 8px; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	background: var(--tcs-surface);
	border: 1px solid var(--tcs-line);
	border-radius: var(--tcs-r-sm);
	color: var(--tcs-ink);
	padding: 9px 15px;
}
.woocommerce nav.woocommerce-pagination ul li span.current { border-color: var(--tcs-accent); color: var(--tcs-accent); }

/* ---------- WooCommerce Cart and Checkout blocks ----------
   The cart and checkout pages render as blocks, which carry their own class
   namespace and ship a light-theme stylesheet. These rules put them on the
   dark palette; they are deliberately scoped to wc-block-* so nothing else
   is affected. */
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout,
.wc-block-cart,
.wc-block-checkout {
	color: var(--tcs-ink);
	--wp--preset--color--contrast: var(--tcs-ink);
}
.wc-block-components-title,
.wc-block-cart__main h2,
.wc-block-components-checkout-step__title,
.wc-block-components-order-summary__button-text {
	color: var(--tcs-ink);
	font-family: var(--tcs-font-display);
}
.wc-block-components-checkout-step__description,
.wc-block-components-product-metadata,
.wc-block-components-product-metadata__description,
.wc-block-cart-item__prices,
.wc-block-components-totals-item__label,
.wc-block-components-order-summary-item__description,
.wc-block-components-formatted-money-amount,
.wc-block-components-text-input label,
.wc-block-components-checkbox__label,
.wc-block-components-address-card address,
.wc-block-components-radio-control__label {
	color: var(--tcs-muted);
}
.wc-block-cart-items,
.wc-block-cart-items th,
.wc-block-cart-items td,
.wc-block-cart__totals-title,
.wc-block-components-totals-item {
	background: transparent;
	color: var(--tcs-ink);
	border-color: var(--tcs-line);
}
.wc-block-cart-items__header {
	color: var(--tcs-muted);
	border-bottom: 1px solid var(--tcs-line);
}
.wc-block-cart-items__row {
	border-bottom: 1px solid var(--tcs-line);
}
.wc-block-components-product-name,
.wc-block-components-order-summary-item__individual-prices,
.wc-block-cart-item__total-price-and-sale-badge-wrapper {
	color: var(--tcs-ink);
	text-decoration: none;
}
.wc-block-components-product-name:hover { color: var(--tcs-accent-soft); }
.wc-block-cart__sidebar .wc-block-components-sidebar,
.wc-block-checkout__sidebar .wc-block-components-sidebar,
.wc-block-components-sidebar .wc-block-components-totals-wrapper,
.wc-block-components-order-summary {
	background: var(--tcs-surface);
	border: 1px solid var(--tcs-line);
	border-radius: var(--tcs-r-md);
}
.wc-block-components-totals-wrapper { border-top-color: var(--tcs-line); }
.wc-block-components-totals-footer-item,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	color: var(--tcs-ink);
	font-family: var(--tcs-font-display);
}
.wc-block-components-button:not(.is-link),
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	background: var(--tcs-accent);
	color: #16110F;
	border-radius: var(--tcs-r-pill);
	font-family: var(--tcs-font-body);
	font-weight: 700;
	border: 1px solid transparent;
}
.wc-block-components-button:not(.is-link):hover,
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover {
	background: var(--tcs-accent-soft);
	color: #16110F;
}
.wc-block-components-button.is-link,
.wc-block-cart-item__remove-link,
.wc-block-components-panel__button {
	color: var(--tcs-muted);
}
.wc-block-components-button.is-link:hover,
.wc-block-cart-item__remove-link:hover { color: var(--tcs-accent-soft); }
.wc-block-components-text-input input,
.wc-block-components-textarea,
.wc-block-components-select__container,
.wc-block-components-combobox-control input,
.wc-block-components-quantity-selector input {
	background: var(--tcs-bg);
	border: 1px solid var(--tcs-line);
	color: var(--tcs-ink);
	border-radius: var(--tcs-r-sm);
}
.wc-block-components-text-input.is-active label,
.wc-block-components-text-input input:focus { color: var(--tcs-ink); border-color: var(--tcs-accent); }
.wc-block-components-quantity-selector__button { color: var(--tcs-accent); background: transparent; }
.wc-block-components-panel,
.wc-block-components-radio-control-accordion-option,
.wc-block-components-radio-control__option,
.wc-block-components-shipping-rates-control__package {
	background: var(--tcs-bg);
	border: 1px solid var(--tcs-line);
	border-radius: var(--tcs-r-sm);
	color: var(--tcs-ink);
}
.wc-block-components-notice-banner {
	background: var(--tcs-surface);
	border: 1px solid var(--tcs-line);
	border-left: 3px solid var(--tcs-accent);
	border-radius: var(--tcs-r-md);
	color: var(--tcs-ink);
}
.wc-block-components-notice-banner > .wc-block-components-notice-banner__content { color: var(--tcs-ink); }
.wc-block-cart__empty-cart__title,
.wc-block-components-order-summary-item__quantity {
	color: var(--tcs-ink);
	background: var(--tcs-raised);
}
.wc-block-cart-item__image img,
.wc-block-components-order-summary-item__image img {
	background: var(--tcs-raised);
	border: 1px solid var(--tcs-line);
	border-radius: var(--tcs-r-sm);
}
.wc-block-components-sidebar-layout .wc-block-components-main { color: var(--tcs-ink); }
.wc-block-components-checkout-step {
	border-bottom: 1px solid var(--tcs-line);
	padding-bottom: var(--tcs-md);
}
.wc-block-components-address-card__edit { color: var(--tcs-accent); }
.wc-block-components-totals-coupon__form .wc-block-components-text-input { margin: 0; }

/* Search results page */
.tcs-searchresults { display: grid; gap: var(--tcs-sm); }
.tcs-result {
	background: var(--tcs-surface);
	border: 1px solid var(--tcs-line);
	border-radius: var(--tcs-r-md);
	padding: var(--tcs-md);
}
.tcs-result h2 { font-size: 1.14rem; margin-bottom: 6px; }
.tcs-result h2 a { color: var(--tcs-ink); text-decoration: none; }
.tcs-result h2 a:hover { color: var(--tcs-accent-soft); }
.tcs-result p { color: var(--tcs-muted); font-size: 0.95rem; margin: 0; }
.tcs-result__kind { font-size: 0.74rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--tcs-accent-soft); font-weight: 700; }

/* Blog */
.tcs-postgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: var(--tcs-md); }
.tcs-postcard {
	background: var(--tcs-surface);
	border: 1px solid var(--tcs-line);
	border-radius: var(--tcs-r-md);
	padding: var(--tcs-md);
	display: flex;
	flex-direction: column;
	gap: 10px;
	transition: border-color 0.2s var(--tcs-ease), transform 0.2s var(--tcs-ease);
}
.tcs-postcard:hover { border-color: rgba(255, 118, 40, 0.45); transform: translateY(-2px); }
.tcs-postcard__date { font-size: 0.8rem; color: var(--tcs-muted); letter-spacing: 0.04em; }
.tcs-postcard h2 { font-size: 1.17rem; margin: 0; }
.tcs-postcard h2 a { color: var(--tcs-ink); text-decoration: none; }
.tcs-postcard h2 a:hover { color: var(--tcs-accent-soft); }
.tcs-postcard p { color: var(--tcs-muted); font-size: 0.95rem; margin: 0; }
.tcs-postcard__more { margin-top: auto; font-weight: 700; font-size: 0.9rem; text-decoration: none; }

.tcs-empty {
	border: 1px dashed var(--tcs-line);
	border-radius: var(--tcs-r-md);
	padding: var(--tcs-xl) var(--tcs-md);
	text-align: center;
	color: var(--tcs-muted);
	background: var(--tcs-surface);
}
.tcs-empty h2 { margin-bottom: var(--tcs-sm); }

.tcs-pagehead { padding-block: var(--tcs-lg) 0; }
.tcs-pagehead h1 { max-width: 30ch; }
.tcs-pagewrap { padding-bottom: var(--tcs-xl); }

/* Contact / form */
.tcs-form { display: grid; gap: var(--tcs-md); max-width: 560px; }
.tcs-form label { display: block; font-weight: 600; font-size: 0.92rem; margin-bottom: 7px; color: var(--tcs-ink); }
.tcs-form input,
.tcs-form textarea,
.tcs-form select {
	width: 100%;
	background: var(--tcs-bg);
	border: 1px solid var(--tcs-line);
	border-radius: var(--tcs-r-sm);
	color: var(--tcs-ink);
	padding: 13px 15px;
	font-family: var(--tcs-font-body);
	font-size: 0.97rem;
}
.tcs-form input:focus,
.tcs-form textarea:focus { border-color: var(--tcs-accent); outline-offset: 1px; }
.tcs-form .tcs-form__hint { font-size: 0.86rem; color: var(--tcs-muted); margin-top: 6px; }
.tcs-form__error { color: #FF9C8F; font-size: 0.88rem; margin-top: 6px; display: block; font-weight: 600; }
.tcs-form__ok {
	background: var(--tcs-surface);
	border: 1px solid var(--tcs-positive);
	border-radius: var(--tcs-r-md);
	padding: var(--tcs-md);
	color: var(--tcs-ink);
}
.tcs-contactgrid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 0.8fr); gap: clamp(28px, 4vw, 64px); align-items: start; }

/* Comparison table page */
.tcs-compare th:first-child,
.tcs-compare td:first-child { position: sticky; left: 0; background: var(--tcs-raised); z-index: 2; }
.tcs-compare th { white-space: nowrap; }

/* ---------- Telegram placements ---------- */
.tcs-fab {
	position: fixed;
	right: var(--tcs-md);
	bottom: var(--tcs-md);
	z-index: 90;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 13px 20px;
	border-radius: var(--tcs-r-pill);
	background: var(--tcs-accent);
	color: #16110F;
	font-family: var(--tcs-font-body);
	font-weight: 700;
	font-size: 0.92rem;
	text-decoration: none;
	border: 1px solid transparent;
	box-shadow: var(--tcs-shadow);
	transition: background-color 0.18s var(--tcs-ease), transform 0.18s var(--tcs-ease);
}
.tcs-fab:hover {
	background: var(--tcs-accent-soft);
	color: #16110F;
	transform: translateY(-2px);
}
.tcs-fab svg { flex: 0 0 auto; }

.tcs-telegram-card {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	gap: var(--tcs-md);
	align-items: center;
	background:
		radial-gradient(60% 120% at 88% 10%, rgba(255, 138, 50, 0.14), transparent 70%),
		var(--tcs-surface);
	border: 1px solid var(--tcs-line);
	border-radius: var(--tcs-r-md);
	padding: var(--tcs-md);
	margin: var(--tcs-lg) 0;
}
.tcs-telegram-card__icon {
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	border-radius: var(--tcs-r-md);
	background: var(--tcs-raised);
	border: 1px solid var(--tcs-line);
	color: var(--tcs-accent);
	flex: 0 0 auto;
}
.tcs-telegram-card h3 { font-size: 1.1rem; margin: 0 0 4px; }
body .tcs-telegram-card p { color: var(--tcs-muted); font-size: 0.95rem; margin: 0; }

.tcs-telegram-help {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--tcs-sm);
	padding: var(--tcs-sm) var(--tcs-md);
	margin: var(--tcs-md) 0 var(--tcs-lg);
	background: var(--tcs-surface);
	border: 1px solid var(--tcs-line);
	border-radius: var(--tcs-r-md);
	font-size: 0.93rem;
}
body .tcs-telegram-help span { color: var(--tcs-muted); }
.tcs-telegram-help svg { color: var(--tcs-accent); flex: 0 0 auto; }
.tcs-telegram-help .tcs-btn { margin-left: auto; }

.tcs-mobilenav__telegram { padding: var(--tcs-sm) 0 var(--tcs-md); }
.tcs-mobilenav__telegram .tcs-btn { width: 100%; }

@media (max-width: 640px) {
	.tcs-fab { right: var(--tcs-sm); bottom: var(--tcs-sm); padding: 13px; }
	.tcs-fab__label {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip-path: inset(50%);
		white-space: nowrap;
	}
	.tcs-telegram-card { grid-template-columns: minmax(0, 1fr); }
	.tcs-telegram-card__icon { display: none; }
	.tcs-telegram-help .tcs-btn { margin-left: 0; width: 100%; }
}

@media print {
	.tcs-fab { display: none; }
}

/* ---------- Reveal on scroll (degrades to visible) ---------- */
.tcs-js .tcs-reveal { opacity: 0; transform: translateY(14px); }
.tcs-js .tcs-reveal.tcs-in { opacity: 1; transform: none; transition: opacity 0.5s var(--tcs-ease), transform 0.5s var(--tcs-ease); }

/* ---------- Astra neutralisation ---------- */
.ast-separate-container .ast-article-single,
.ast-separate-container .ast-article-post,
.ast-separate-container .ast-archive-description,
.ast-separate-container .comments-area,
.ast-separate-container .ast-woocommerce-container {
	background-color: transparent;
	border: 0;
	padding: 0;
}
.ast-no-sidebar .entry-content .alignwide { margin: 0; }
#ast-scroll-top { background-color: var(--tcs-accent); color: #16110F; }
.ast-mobile-header-wrap,
.ast-desktop-header,
.site-header .main-header-bar-wrap,
.ast-above-header,
.ast-below-header,
.ast-mobile-popup-wrapper,
.site-footer .ast-builder-grid-row-container,
.site-footer .site-primary-footer-wrap,
.site-footer .site-below-footer-wrap { display: none; }
.site-header, .site-footer { background: transparent; border: 0; box-shadow: none; }

/* ---------- Responsive ---------- */
@media (max-width: 1120px) {
	.tcs-nav__note { display: none; }
	.tcs-nav__list a { padding: 15px 11px; font-size: 0.9rem; }
	.tcs-pdp__layout { grid-template-columns: minmax(0, 1fr); }
	.tcs-pdp__aside { position: static; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); }
}
@media (max-width: 1024px) {
	.tcs-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tcs-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tcs-hero__grid { grid-template-columns: minmax(0, 1fr); }
	.tcs-hero__panel { order: -1; }
	.tcs-split { grid-template-columns: minmax(0, 1fr); }
	.tcs-pdp__top { grid-template-columns: minmax(0, 1fr); }
	.tcs-footer__main { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tcs-cta { grid-template-columns: minmax(0, 1fr); }
	.tcs-cta__actions { flex-direction: row; flex-wrap: wrap; }
	.tcs-contactgrid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 880px) {
	.tcs-nav { display: none; }
	.tcs-navtoggle { display: inline-flex; }
	.tcs-utility__inner {
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-areas: "brand actions" "search search";
		row-gap: var(--tcs-sm);
		gap: var(--tcs-sm);
	}
	.tcs-brand { grid-area: brand; min-width: 0; }
	.tcs-brand__text { min-width: 0; }
	.tcs-brand__name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	.tcs-utility__actions { grid-area: actions; flex: 0 0 auto; }
	.tcs-search { grid-area: search; max-width: none; justify-self: stretch; }
}
@media (max-width: 640px) {
	body { font-size: 16px; }
	:root { --tcs-xl: 48px; --tcs-xxl: 64px; }
	.tcs-grid,
	.tcs-grid--4,
	.tcs-grid--3,
	.tcs-grid--2 { grid-template-columns: minmax(0, 1fr); }
	.woocommerce ul.products,
	.woocommerce-page ul.products { grid-template-columns: minmax(0, 1fr); }
	.tcs-footer__main { grid-template-columns: minmax(0, 1fr); gap: var(--tcs-md); }
	.tcs-iconbtn__label { display: none; }
	.tcs-iconbtn { padding: 11px; }
	.tcs-navtoggle { padding: 11px; }
	.tcs-navtoggle span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
	.tcs-brand__name { font-size: 1.06rem; }
	.tcs-brand { gap: 8px; }
	.tcs-utility__inner { min-height: 0; }
	.tcs-search input[type="search"] { padding-left: 16px; font-size: 0.9rem; }
	.tcs-steps li { grid-template-columns: 40px minmax(0, 1fr); gap: var(--tcs-sm); }
	.tcs-chips { gap: 7px; }
	.tcs-chip { padding: 9px 14px; font-size: 0.86rem; }
	.tcs-pdp__buyrow { width: 100%; }
	.tcs-pdp__buyrow .single_add_to_cart_button { flex: 1 1 auto; }
	.tcs-brand__tag { display: none; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.tcs-amb::before { animation: none; }
	.tcs-js .tcs-reveal { opacity: 1; transform: none; }
	*,
	*::before,
	*::after {
		animation-duration: 0.001ms;
		animation-iteration-count: 1;
		transition-duration: 0.001ms;
	}
}

/* ---------- Print ---------- */
@media print {
	.tcs-header, .tcs-footer { display: none; }
	.tcs-amb::before, .tcs-amb::after { display: none; }
	body { background: #fff; color: #000; }
}
