/*
Theme Name: Texotec (Astra Child)
Theme URI: https://texotec.ca/
Template: astra
Author: Texotec
Description: Texotec redesign built on Astra. Informational site: services, projects, support and consultation booking. No e-commerce.
Version: 0.12.5
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: texotec
*/

/* Brand: logo black + power-button red. Display face Sora echoes the logo's rounded geometry. */
:root {
	--tx-ink: #16181b;
	--tx-ink-2: #2a2e33;
	--tx-muted: #5f666d;
	--tx-paper: #ffffff;
	--tx-mist: #f4f5f6;
	--tx-line: #e1e4e7;
	--tx-red: #c51b30;
	--tx-red-dark: #9e1426;
	--tx-display: "Sora", "Segoe UI", Arial, sans-serif;
	--tx-body: "Figtree", "Segoe UI", Arial, sans-serif;
	--tx-wrap: 1200px;
	--tx-radius: 10px;
	--tx-gutter: max(20px, env(safe-area-inset-left, 0px));
}

body {
	font-family: var(--tx-body);
	color: var(--tx-ink);
	background: var(--tx-paper);
	font-size: 17px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, .tx-display {
	font-family: var(--tx-display);
	color: var(--tx-ink);
	letter-spacing: -0.02em;
	text-wrap: balance;
	line-height: 1.15;
}
a { color: var(--tx-red); }
a:focus-visible, button:focus-visible { outline: 2px solid var(--tx-red); outline-offset: 3px; }
.tx-wrap { max-width: var(--tx-wrap); margin-inline: auto; padding-inline: var(--tx-gutter); }
.tx-eyebrow { font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--tx-red); margin: 0 0 12px; }

/* ---------- Header ---------- */
.tx-topbar { background: var(--tx-ink); color: #cfd3d7; font-size: 14px; }
.tx-topbar .tx-wrap { display: flex; justify-content: flex-end; gap: 22px; padding-block: 6px; }
.tx-topbar a { color: #fff; text-decoration: none; }
.tx-topbar a:hover { color: #ffb3bd; }
.tx-header { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.96); backdrop-filter: blur(8px); border-bottom: 1px solid var(--tx-line); }
.admin-bar .tx-header { top: 32px; }
.tx-header .tx-wrap { display: flex; align-items: center; gap: 28px; min-height: 76px; }
.tx-logo img { display: block; height: 30px; width: auto; }
.tx-nav { flex: 1; }
.tx-nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 4px; flex-wrap: wrap; }
.tx-nav li { position: relative; }
.tx-nav a { display: block; padding: 8px 12px; color: var(--tx-ink); text-decoration: none; font-weight: 600; font-size: 15.5px; border-radius: 6px; }
.tx-nav a:hover, .tx-nav .current-menu-item > a, .tx-nav .current-menu-ancestor > a { color: var(--tx-red); }
.tx-nav .sub-menu { display: none; position: absolute; top: 100%; left: 0; min-width: 250px; background: #fff; border: 1px solid var(--tx-line); border-radius: var(--tx-radius); box-shadow: 0 18px 40px rgba(0,0,0,.08); padding: 8px; flex-direction: column; gap: 0; }
.tx-nav li:hover > .sub-menu, .tx-nav li:focus-within > .sub-menu { display: flex; }
.tx-nav .sub-menu a { font-weight: 500; }
.tx-nav .menu-item-has-children > a::after { content: ""; display: inline-block; width: 6px; height: 6px; margin-left: 7px; border-right: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor; transform: translateY(-3px) rotate(45deg); }
a.tx-btn, .wp-block-button.tx-btn .wp-block-button__link {
	display: inline-flex; align-items: center; gap: 8px; padding: 12px 22px; border-radius: 999px;
	background: var(--tx-red); color: #fff; font-weight: 700; font-size: 15.5px; text-decoration: none; border: 2px solid var(--tx-red); line-height: 1.2;
	transition: background .15s, border-color .15s, color .15s;
}
a.tx-btn:hover, .wp-block-button.tx-btn .wp-block-button__link:hover { background: var(--tx-red-dark); border-color: var(--tx-red-dark); color: #fff; }
a.tx-btn--ghost, .wp-block-button.tx-btn--ghost .wp-block-button__link { background: transparent; color: var(--tx-ink); border-color: var(--tx-ink); }
a.tx-btn--ghost:hover, .wp-block-button.tx-btn--ghost .wp-block-button__link:hover { background: var(--tx-ink); color: #fff; border-color: var(--tx-ink); }
.tx-menu-toggle { display: none; margin-left: auto; background: none; border: 1.5px solid var(--tx-ink); border-radius: 8px; padding: 8px 12px; font: 600 15px var(--tx-body); color: var(--tx-ink); cursor: pointer; }

@media (max-width: 1080px) {
	.tx-menu-toggle { display: inline-block; }
	.tx-header .tx-wrap { flex-wrap: wrap; gap: 12px; min-height: 64px; }
	.tx-header .tx-btn { display: none; }
	.tx-nav { display: none; flex-basis: 100%; padding-bottom: 14px; }
	.tx-nav.is-open { display: block; }
	.tx-nav ul { flex-direction: column; }
	.tx-nav .sub-menu { display: flex; position: static; box-shadow: none; border: 0; padding: 0 0 0 14px; min-width: 0; }
	.tx-nav .menu-item-has-children > a::after { display: none; }
	.tx-topbar .tx-wrap { justify-content: space-between; }
	.admin-bar .tx-header { top: 0; }
}

/* Sticky call/book bar on phones */
.tx-mobilebar { display: none; }
@media (max-width: 720px) {
	.tx-mobilebar { display: grid; grid-template-columns: 1fr 1fr; position: fixed; inset: auto 0 0 0; z-index: 60; background: var(--tx-ink); padding-bottom: env(safe-area-inset-bottom, 0px); }
	.tx-mobilebar a { color: #fff; text-align: center; padding: 14px; font-weight: 700; text-decoration: none; }
	.tx-mobilebar a + a { background: var(--tx-red); }
	body { padding-bottom: 52px; }
}

/* ---------- Page sections (block classes) ---------- */
.tx-section { padding-block: clamp(56px, 8vw, 104px); }
.tx-section--mist { background: var(--tx-mist); }
.tx-section--ink { background: var(--tx-ink); color: #e6e8ea; }
.tx-section--ink h2, .tx-section--ink h3 { color: #fff; }
.tx-section h2 { font-size: clamp(30px, 3.6vw, 44px); margin: 0 0 14px; }
.tx-lede { font-size: 19px; color: var(--tx-muted); max-width: 62ch; }
.tx-section--ink .tx-lede { color: #b9bec3; }

/* Hero */
.tx-hero.wp-block-cover { min-height: min(78vh, 720px) !important; padding: 0 !important; align-items: flex-end; }
.tx-hero .wp-block-cover__inner-container { max-width: var(--tx-wrap); width: 100%; margin-inline: auto; padding: 0 var(--tx-gutter) clamp(48px, 7vw, 88px); color: #fff; }
.tx-hero h1 { color: #fff; font-size: clamp(40px, 6vw, 76px); max-width: 13ch; margin: 0 0 18px; }
.tx-hero p { font-size: 20px; max-width: 46ch; color: #eceef0; }
.tx-hero .tx-eyebrow { color: #ffb3bd; }
.tx-hero .wp-block-buttons { margin-top: 26px; gap: 12px; }
.tx-hero .tx-btn--ghost .wp-block-button__link { color: #fff; border-color: #fff; }
.tx-hero .tx-btn--ghost .wp-block-button__link:hover { background: #fff; color: var(--tx-ink); }

/* Trust strip */
.tx-trust { border-bottom: 1px solid var(--tx-line); }
.tx-trust .tx-wrap { display: flex; flex-wrap: wrap; gap: 10px 34px; padding-block: 18px; font-weight: 600; color: var(--tx-muted); font-size: 15px; }
.tx-trust span::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--tx-red); margin-right: 10px; vertical-align: middle; }

/* Audience paths */
.tx-paths { gap: 20px !important; margin-top: 34px; }
.tx-path { background: #fff; border: 1px solid var(--tx-line); border-radius: var(--tx-radius); overflow: hidden; display: flex; flex-direction: column; transition: border-color .15s, transform .15s; }
.tx-path:hover { border-color: var(--tx-ink); transform: translateY(-2px); }
.tx-path .wp-block-image { margin: 0; }
.tx-path .wp-block-image img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.tx-path-body { padding: 22px 24px 26px; }
.tx-path h3 { font-size: 22px; margin: 0 0 8px; }
.tx-path p { color: var(--tx-muted); margin: 0 0 14px; }
.tx-path a.tx-arrow { font-weight: 700; color: var(--tx-ink); text-decoration: none; }
.tx-path a.tx-arrow::after { content: " →"; color: var(--tx-red); }

/* Systems explorer */
.tx-systems { margin-top: 30px; }
.tx-tabs { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 26px; }
.tx-tab { border: 1.5px solid var(--tx-line); background: #fff; border-radius: 999px; padding: 9px 18px; font: 600 15px var(--tx-body); color: var(--tx-ink); cursor: pointer; }
.tx-tab[aria-selected="true"] { background: var(--tx-ink); border-color: var(--tx-ink); color: #fff; }
.tx-panel { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(24px, 4vw, 56px); align-items: center; }
.tx-panel img, .tx-panel .tx-ph { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--tx-radius); }
.tx-ph { background: repeating-linear-gradient(135deg, var(--tx-mist) 0 14px, #eceef0 14px 28px); display: grid; place-items: center; color: var(--tx-muted); font-size: 14px; text-align: center; padding: 20px; }
.tx-panel h3 { font-size: clamp(24px, 2.6vw, 32px); margin: 0 0 12px; }
.tx-panel p { color: var(--tx-muted); }
.tx-brands { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 22px; }
.tx-brands span { font-size: 13px; font-weight: 700; letter-spacing: .04em; border: 1px solid var(--tx-line); border-radius: 6px; padding: 3px 10px; color: var(--tx-ink-2); }
.tx-panel-actions { display: flex; gap: 12px; flex-wrap: wrap; }
@media (max-width: 820px) { .tx-panel { grid-template-columns: 1fr; } .tx-tabs { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 6px; } .tx-tab { flex: none; } }

/* Process steps */
.tx-steps { list-style: none; margin: 34px 0 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 18px; counter-reset: step; }
.tx-steps li { counter-increment: step; border-top: 2px solid var(--tx-ink); padding-top: 16px; }
.tx-steps li::before { content: counter(step, decimal-leading-zero); font: 700 14px var(--tx-display); color: var(--tx-red); display: block; margin-bottom: 8px; }
.tx-steps strong { display: block; font-family: var(--tx-display); font-size: 18px; margin-bottom: 6px; }
.tx-steps span { color: var(--tx-muted); font-size: 15.5px; }
@media (max-width: 900px) { .tx-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .tx-steps { grid-template-columns: 1fr; } }

/* Service area */
.tx-areas { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; padding: 0; list-style: none; }
.tx-areas li { border: 1px solid var(--tx-line); border-radius: 999px; padding: 5px 14px; font-weight: 600; font-size: 15px; background: #fff; }

/* Journal cards (latest posts block) */
.tx-journal .wp-block-latest-posts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; padding: 0; margin-top: 30px; }
.tx-journal .wp-block-latest-posts li { border-top: 2px solid var(--tx-ink); padding-top: 16px; margin: 0; }
.tx-journal .wp-block-latest-posts__post-title { font: 700 19px/1.3 var(--tx-display); color: var(--tx-ink); text-decoration: none; }
.tx-journal .wp-block-latest-posts__post-date { color: var(--tx-muted); font-size: 14px; display: block; margin-top: 8px; }
@media (max-width: 820px) { .tx-journal .wp-block-latest-posts { grid-template-columns: 1fr; } }

/* CTA band */
.tx-cta .tx-wrap { display: flex; flex-wrap: wrap; gap: 24px; align-items: center; justify-content: space-between; }
.tx-cta h2 { margin: 0; }
.tx-cta p { margin: 6px 0 0; color: #b9bec3; }

/* Placeholder notice for content we still need from Texotec (visible on staging only) */
.tx-needs-content { border: 2px dashed var(--tx-red); border-radius: var(--tx-radius); padding: 18px 22px; color: var(--tx-red-dark); background: #fff5f6; font-size: 15px; }

/* ---------- Footer ---------- */
.tx-footer { background: var(--tx-ink); color: #b9bec3; font-size: 15px; padding-top: 64px; }
.tx-footer a { color: #e6e8ea; text-decoration: none; }
.tx-footer a:hover { color: #ffb3bd; }
.tx-footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 32px; }
.tx-footer h4 { color: #fff; font-size: 14px; letter-spacing: .08em; text-transform: uppercase; margin: 0 0 14px; }
.tx-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.tx-footer .tx-logo img { filter: brightness(0) invert(1); height: 26px; margin-bottom: 16px; }
.tx-footer-legal { border-top: 1px solid #33383d; margin-top: 48px; padding-block: 20px; display: flex; flex-wrap: wrap; gap: 8px 22px; font-size: 14px; }
.tx-footer-legal span { margin-right: auto; }
@media (max-width: 860px) { .tx-footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .tx-footer-grid { grid-template-columns: 1fr; } }

/* Astra content area: let our full-width sections breathe */
.tx-full .site-content > .ast-container { max-width: none; padding: 0; display: block; }
.tx-full .entry-content > * { margin-block: 0; }
.tx-full #primary { margin: 0; padding: 0; }
.tx-full .entry-header { display: none; }
.tx-full .entry-content > .alignfull { margin-inline: 0; max-width: none; width: 100%; }

@media (prefers-reduced-motion: reduce) { * { transition: none !important; scroll-behavior: auto !important; } }

/* Hero readability: stronger, bottom-weighted shade so text holds on bright photos */
.tx-hero .wp-block-cover__background { opacity: 1 !important; background: linear-gradient(to top, rgba(10,11,13,.86) 0%, rgba(10,11,13,.55) 45%, rgba(10,11,13,.15) 100%) !important; }
.tx-hero h1, .tx-hero p { text-shadow: 0 1px 18px rgba(0,0,0,.35); }

/* Astra scroll-to-top in brand colours */
#ast-scroll-top { background-color: var(--tx-ink) !important; border-radius: 8px; }
#ast-scroll-top:hover { background-color: var(--tx-red) !important; }
.tx-panel[hidden] { display: none; }
.tx-hero .tx-eyebrow { display: inline-block; background: rgba(10,11,13,.6); color: #fff; padding: 5px 12px; border-radius: 999px; font-size: 12px; }
/* WordPress marks bright cover images "is-light" and darkens text; the hero always has a dark shade */
.tx-hero.wp-block-cover .wp-block-cover__inner-container, .tx-hero.wp-block-cover .wp-block-cover__inner-container :is(p, h1) { color: #fff; }
.tx-hero.wp-block-cover p { color: #eceef0; }
/* Astra's builder footer is replaced by .tx-footer */
footer.site-footer { display: none; }
/* Outranks Astra's inline "body .wp-block-cover:not(...) p" colour rule */
body .tx-hero.wp-block-cover.alignfull .wp-block-cover__inner-container p { color: #eceef0; }
body .tx-hero.wp-block-cover.alignfull .wp-block-cover__inner-container p.tx-eyebrow { color: #fff; }
.tx-menu-toggle:hover, .tx-menu-toggle:focus, .tx-menu-toggle[aria-expanded="true"] { background: var(--tx-ink); color: #fff; border-color: var(--tx-ink); }
.tx-nav .ast-menu-toggle { display: none; }
@media (max-width: 1080px) {
	.tx-nav.is-open { max-height: calc(100dvh - 120px); overflow-y: auto; overscroll-behavior: contain; }
}

/* ---------- Service pages ---------- */
.tx-svc-top { padding-block: clamp(36px, 5vw, 64px) clamp(48px, 6vw, 80px); }
.tx-svc-top h1 { font-size: clamp(36px, 4.8vw, 58px); margin: 0 0 16px; max-width: 16ch; }
.tx-svc-hero { gap: clamp(28px, 5vw, 64px) !important; align-items: center !important; margin-top: 18px; }
.tx-svc-photo { aspect-ratio: 4 / 3; border-radius: var(--tx-radius); }
.tx-crumbs { display: flex; flex-wrap: wrap; gap: 8px; font-size: 14px; color: var(--tx-muted); }
.tx-crumbs a { color: var(--tx-muted); text-decoration: none; }
.tx-crumbs a:hover { color: var(--tx-red); }
.tx-benefits { gap: 28px !important; margin-top: 28px; }
.tx-benefit { border-top: 2px solid var(--tx-ink); padding-top: 18px; }
.tx-benefit h3 { font-size: 20px; margin: 0 0 8px; }
.tx-benefit p { color: var(--tx-muted); margin: 0; }
.tx-split { gap: clamp(28px, 5vw, 72px) !important; }
.tx-aside { background: #fff; border: 1px solid var(--tx-line); border-radius: var(--tx-radius); padding: 26px 28px; align-self: start; }
.tx-aside h3 { font-size: 20px; margin: 0 0 6px; }
.tx-brands--lg span { font-size: 14px; padding: 6px 12px; background: var(--tx-mist); border-color: transparent; }
.tx-small { font-size: 14.5px; color: var(--tx-muted); }
ul.tx-check, ul.tx-numbered { list-style: none; padding: 0; margin: 22px 0 0; display: grid; gap: 12px; }
ul.tx-check li { position: relative; padding-left: 32px; }
ul.tx-check li::before { content: ""; position: absolute; left: 2px; top: 6px; width: 16px; height: 9px; border-left: 2.5px solid var(--tx-red); border-bottom: 2.5px solid var(--tx-red); transform: rotate(-45deg); }
ul.tx-numbered { counter-reset: n; }
ul.tx-numbered li { counter-increment: n; display: grid; grid-template-columns: 40px 1fr; gap: 8px; padding: 14px 0; border-bottom: 1px solid var(--tx-line); font-weight: 600; }
ul.tx-numbered li::before { content: counter(n, decimal-leading-zero); font: 700 14px var(--tx-display); color: var(--tx-red); padding-top: 2px; }
.tx-gallery { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: repeat(2, minmax(140px, 1fr)); gap: 12px; margin-top: 26px; }
.tx-gallery .tx-ph { border-radius: var(--tx-radius); min-height: 140px; }
.tx-gallery .tx-ph:first-child { grid-row: span 2; }
.tx-gallery .tx-ph:last-child { grid-column: span 2; }
@media (max-width: 700px) { .tx-gallery { grid-template-columns: 1fr 1fr; grid-template-rows: auto; } .tx-gallery .tx-ph:first-child, .tx-gallery .tx-ph:last-child { grid-row: auto; grid-column: span 2; } }
.tx-faq { border-bottom: 1px solid var(--tx-line); padding: 4px 0; max-width: 820px; }
.tx-faq:first-of-type { border-top: 1px solid var(--tx-line); margin-top: 24px; }
.tx-faq summary { cursor: pointer; list-style: none; font: 600 18px/1.4 var(--tx-display); padding: 16px 40px 16px 0; position: relative; }
.tx-faq summary::-webkit-details-marker { display: none; }
.tx-faq summary::after { content: "+"; position: absolute; right: 4px; top: 12px; font: 400 26px var(--tx-body); color: var(--tx-red); }
.tx-faq[open] summary::after { content: "−"; }
.tx-faq p { color: var(--tx-muted); margin: 0 0 18px; max-width: 68ch; }
.tx-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-top: 26px; }
.tx-card { display: flex; flex-direction: column; gap: 8px; background: #fff; border: 1px solid var(--tx-line); border-radius: var(--tx-radius); padding: 22px 24px; text-decoration: none; color: var(--tx-ink); transition: border-color .15s, transform .15s; }
.tx-card:hover { border-color: var(--tx-ink); transform: translateY(-2px); color: var(--tx-ink); }
.tx-card strong { font: 700 19px/1.3 var(--tx-display); }
.tx-card span { color: var(--tx-muted); font-size: 15.5px; }
.tx-card em { font-style: normal; font-weight: 700; margin-top: auto; padding-top: 6px; }
.tx-card em::after { content: " →"; color: var(--tx-red); }
.tx-card--svc { padding: 0 0 22px; overflow: hidden; }
.tx-card--svc .tx-ph { aspect-ratio: 16 / 10; margin-bottom: 8px; }
.tx-card--svc strong, .tx-card--svc span, .tx-card--svc em { padding-inline: 22px; }
.tx-card[hidden] { display: none; }
@media (max-width: 900px) { .tx-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .tx-cards { grid-template-columns: 1fr; } }
.tx-filter { display: flex; flex-wrap: wrap; gap: 8px; }
.tx-chip { border: 1.5px solid var(--tx-line); background: #fff; border-radius: 999px; padding: 8px 16px; font: 600 15px var(--tx-body); color: var(--tx-ink); cursor: pointer; }
.tx-chip:hover { border-color: var(--tx-ink); background: #fff; color: var(--tx-ink); }
.tx-chip[aria-pressed="true"] { background: var(--tx-ink); border-color: var(--tx-ink); color: #fff; }
.tx-callout { border: 1px solid var(--tx-line); border-left: 4px solid var(--tx-red); border-radius: var(--tx-radius); padding: 28px 32px; display: grid; gap: 4px; }
.tx-callout h3 { margin: 0 0 4px; font-size: 24px; }
.tx-callout p { color: var(--tx-muted); margin: 0 0 12px; }
.tx-section + .tx-section:not(.tx-section--mist):not(.tx-section--ink) { padding-top: 0; }
.entry-content :is(a.tx-card, .tx-crumbs a, a.tx-arrow, a.tx-btn, .wp-block-button__link) { text-decoration: none; }
/* Production: any section still waiting on Texotec content stays hidden */
.tx-env-production .tx-section:has(.tx-needs-content), .tx-env-production .tx-needs-content { display: none; }

/* ---------- For Homes / For Business ---------- */
/* Day timeline: real clock times down a rail */
.tx-day { list-style: none; margin: 34px 0 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; border-top: 2px solid var(--tx-ink); }
.tx-day li { padding: 18px 18px 0 0; position: relative; }
.tx-day li::before { content: ""; position: absolute; top: -7px; left: 0; width: 12px; height: 12px; border-radius: 50%; background: var(--tx-red); border: 3px solid #fff; }
.tx-day time { display: block; font: 700 26px var(--tx-display); color: var(--tx-ink); font-variant-numeric: tabular-nums; }
.tx-day strong { display: block; font-family: var(--tx-display); margin: 4px 0 6px; }
.tx-day span { color: var(--tx-muted); font-size: 15.5px; }
@media (max-width: 900px) {
	.tx-day { grid-template-columns: 1fr; border-top: 0; border-left: 2px solid var(--tx-ink); padding-left: 22px; gap: 22px; }
	.tx-day li { padding: 0; }
	.tx-day li::before { top: 8px; left: -30px; }
}

/* Floor plan: a schematic house made of room buttons */
.tx-rooms { display: grid; grid-template-columns: 1.2fr 1fr; gap: clamp(24px, 4vw, 56px); align-items: start; margin-top: 30px; }
.tx-plan { display: grid; grid-template-columns: repeat(4, 1fr); grid-template-rows: repeat(3, minmax(92px, auto)); gap: 6px; background: var(--tx-ink); padding: 6px; border-radius: var(--tx-radius); margin: 0; flex-wrap: nowrap; }
.tx-plan .tx-room { border: 0; border-radius: 4px; background: #fff; color: var(--tx-ink); font: 600 15px var(--tx-display); display: flex; align-items: flex-end; justify-content: flex-start; padding: 12px; text-align: left; min-height: 0; }
.tx-plan .tx-room:hover { background: #fdecee; color: var(--tx-ink); }
.tx-plan .tx-room[aria-selected="true"] { background: var(--tx-red); color: #fff; }
.tx-room--living { grid-column: 1 / 3; grid-row: 1 / 3; }
.tx-room--kitchen { grid-column: 3 / 5; grid-row: 1; }
.tx-room--theatre { grid-column: 3; grid-row: 2; }
.tx-room--bedroom { grid-column: 4; grid-row: 2; }
.tx-room--office { grid-column: 1; grid-row: 3; }
.tx-room--entry { grid-column: 2; grid-row: 3; }
.tx-room--outdoor { grid-column: 3; grid-row: 3; }
.tx-room--garage { grid-column: 4; grid-row: 3; }
.tx-room-detail .tx-room-panel { display: block; background: #fff; border: 1px solid var(--tx-line); border-radius: var(--tx-radius); padding: 28px; }
.tx-room-detail .tx-room-panel[hidden] { display: none; }
.tx-room-panel h3 { margin: 0 0 8px; font-size: 26px; }
.tx-tags { list-style: none; padding: 0; margin: 16px 0 20px; display: flex; flex-wrap: wrap; gap: 8px; }
.tx-tags li { background: var(--tx-mist); border-radius: 999px; padding: 4px 12px; font-size: 14.5px; font-weight: 600; }
.tx-links { display: flex; flex-wrap: wrap; gap: 6px 16px; }
.tx-links a { font-weight: 700; color: var(--tx-ink); text-decoration: none; }
.tx-links a::after { content: " →"; color: var(--tx-red); }
.tx-links--stack { flex-direction: column; margin-bottom: 20px; }
@media (max-width: 900px) { .tx-rooms { grid-template-columns: 1fr; } .tx-plan { grid-template-rows: repeat(3, minmax(70px, auto)); } .tx-plan .tx-room { font-size: 13.5px; padding: 8px; } }

/* Typical scopes */
.tx-scopes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: 30px 0 28px; }
.tx-scope { border: 1px solid var(--tx-line); border-radius: var(--tx-radius); padding: 26px; }
.tx-scope--key { border: 2px solid var(--tx-ink); }
.tx-scope .tx-eyebrow { margin-bottom: 6px; }
.tx-scope h3 { font-size: 24px; margin: 0 0 14px; }
.tx-scope ul { margin: 0; padding-left: 18px; display: grid; gap: 6px; color: var(--tx-ink-2); }
@media (max-width: 900px) { .tx-scopes { grid-template-columns: 1fr; } }

.tx-cards--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 700px) { .tx-cards--2 { grid-template-columns: 1fr; } }

/* DIY vs professional */
.tx-compare { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 28px; }
.tx-compare > div { border-radius: var(--tx-radius); padding: 28px; border: 1px solid var(--tx-line); }
.tx-compare h3 { font-size: 20px; margin: 0 0 14px; }
.tx-compare ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.tx-compare li { padding-left: 28px; position: relative; color: var(--tx-muted); }
.tx-compare li::before { content: "–"; position: absolute; left: 6px; color: var(--tx-muted); }
.tx-compare-pro { background: var(--tx-ink); border-color: var(--tx-ink) !important; }
.tx-compare-pro h3 { color: #fff; }
.tx-compare-pro li { color: #e6e8ea; }
.tx-compare-pro li::before { content: ""; left: 2px; top: 7px; width: 14px; height: 8px; border-left: 2.5px solid #ff6b7d; border-bottom: 2.5px solid #ff6b7d; transform: rotate(-45deg); }
@media (max-width: 700px) { .tx-compare { grid-template-columns: 1fr; } }

/* Business sectors */
.tx-panel--sector { grid-template-columns: 1.4fr 1fr; align-items: start; }
.tx-panel--sector h3 { margin: 0 0 10px; }
.tx-panel--sector .tx-aside .tx-btn { margin-top: 4px; }
.tx-steps--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 900px) { .tx-steps--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .tx-panel--sector { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .tx-steps--4 { grid-template-columns: 1fr; } }
.entry-content .tx-links a { text-decoration: none; }
.entry-content ul.tx-tags, .entry-content .tx-scope ul, .entry-content .tx-compare ul { margin-left: 0; }
@media (max-width: 720px) { #ast-scroll-top { bottom: calc(64px + env(safe-area-inset-bottom, 0px)) !important; } }

/* ---------- Trade Partners: build stages ---------- */
.tx-stages { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 0; margin: 30px 0 26px; border-top: 2px solid var(--tx-ink); }
.tx-stages .tx-stage { border: 0; border-radius: 0; background: transparent; text-align: left; padding: 16px 12px 14px 0; display: flex; flex-direction: column; gap: 2px; font: 700 17px var(--tx-display); color: var(--tx-ink); position: relative; cursor: pointer; }
.tx-stages .tx-stage::before { content: ""; position: absolute; top: -8px; left: 0; width: 14px; height: 14px; border-radius: 50%; background: #fff; border: 2px solid var(--tx-ink); }
.tx-stages .tx-stage b { font-size: 13px; color: var(--tx-red); }
.tx-stages .tx-stage small { font: 500 14px var(--tx-body); color: var(--tx-muted); }
.tx-stages .tx-stage:hover { background: transparent; color: var(--tx-red); }
.tx-stages .tx-stage[aria-selected="true"] { background: transparent; color: var(--tx-red); }
.tx-stages .tx-stage[aria-selected="true"]::before { background: var(--tx-red); border-color: var(--tx-red); }
.tx-stage-panel { grid-template-columns: 1.3fr 1fr; align-items: start; }
.tx-stage-panel h3 { font-size: 20px; margin: 0 0 4px; }
@media (max-width: 900px) {
	.tx-stages { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 18px; }
	.tx-stage-panel { grid-template-columns: 1fr; }
}
@media (max-width: 520px) { .tx-stages { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
div.tx-card { cursor: default; }
div.tx-card:hover { transform: none; border-color: var(--tx-line); }
#stages { display: block; scroll-margin-top: 110px; }

/* 0.2 — owner-requested navy palette, with the red TEXOTEC identity retained. */
:root{--tx-ink:#102840;--tx-ink-2:#193b5c;--tx-muted:#526478;--tx-mist:#f1f5f9;--tx-line:#d7e1ec;--tx-radius:14px}
.tx-topbar,.tx-footer{background:#0c2137}.tx-header{background:rgba(255,255,255,.98)}.tx-header .tx-logo img{height:39px}.tx-header .tx-wrap{gap:20px}.tx-nav a{padding-inline:9px;font-size:15px}.tx-footer .tx-logo{display:inline-block;background:#fff;padding:12px;border-radius:8px}.tx-footer .tx-logo img{filter:none;height:34px;margin:0}.tx-footer .tx-logo{margin-bottom:18px}.tx-footer a:focus-visible{outline-color:#fff}.txe-hero{background:linear-gradient(125deg,#0a1f34,#174b76);color:#fff;padding-block:clamp(64px,9vw,124px)}.txe-hero-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:60px;align-items:center}.txe-hero h1{color:#fff;font-size:clamp(42px,5.7vw,76px);max-width:14ch;line-height:1.08;margin:0 0 26px}.txe-hero p{max-width:48ch;font-size:19px;color:#dce7f1}.txe-hero .tx-eyebrow{color:#ffb3bd;font-size:13px}.txe-hero .tx-btn--ghost{border-color:#fff;color:#fff}.txe-hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-block:30px}.txe-hero-product{background:#fff;padding:20px;border-radius:18px;box-shadow:0 26px 55px #00122255}.txe-hero-product img{width:100%;height:290px;object-fit:cover;border-radius:10px}.txe-hero-product p{color:#344e66;font-size:15px;margin:16px 2px 4px}.txe-hero-product a{font-size:15px}.txe-hero-product strong{color:#102840}.tx-ph{background:linear-gradient(135deg,#edf3f9,#dfeaf5);color:#244d73;font-weight:600;border:1px solid #cbd8e6}.txe-product-image{width:100%;height:190px;object-fit:contain;margin-bottom:24px;border-radius:10px;background:#f4f7fa}.txe-section-lead{max-width:65ch}.txe-page-heading{max-width:900px}.txe-page-heading h1{font-size:clamp(36px,5vw,58px);margin:0 0 22px;line-height:1.12}.txe-content-columns{display:grid;grid-template-columns:1.5fr 1fr;gap:50px;margin-top:36px}.txe-section-nav{display:flex;flex-wrap:wrap;gap:18px;margin-top:20px}.txe-footer-social{display:flex;gap:14px;flex-wrap:wrap;margin-top:20px}.txe-footer-social a{font-size:14px}.txe-search-nav{font-size:14px;font-weight:600}.txe-article-list{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.txe-article-card{padding:28px;border:1px solid #d7e1ec;border-radius:14px}.txe-article-card h2{font-size:25px}.txe-step-list{counter-reset:tx-step;list-style:none;padding:0}.txe-step-list li{counter-increment:tx-step;padding:25px 0;border-bottom:1px solid #d7e1ec}.txe-step-list h2{font-size:28px}.txe-step-list h2:before{content:counter(tx-step,decimal-leading-zero);font-size:18px;color:#c51b30;margin-right:15px}.txe-staging-banner{background:#e9f2fb;padding:10px 20px;text-align:center;font-size:14px;color:#163f65}.txe-links a{padding-block:8px}.txe-contact-details{font-style:normal;line-height:1.9}
@media(max-width:1100px){.tx-header .tx-logo img{height:34px}}@media(max-width:900px){.txe-hero-grid,.txe-content-columns{grid-template-columns:1fr;gap:32px}.txe-hero-product{max-width:560px}.txe-hero-product img{height:250px}.txe-article-list{grid-template-columns:1fr}.txe-hero h1{max-width:16ch}}@media(max-width:520px){.txe-hero-product img{height:190px}.txe-hero-product{padding:14px}.txe-hero{padding-top:48px}.txe-page-heading h1{font-size:38px}.tx-header .tx-logo img{height:30px}.txe-content-columns{gap:26px}}
.tx-path .tx-ph{aspect-ratio:auto!important;min-height:100px;padding:25px;background:#e5eef7;color:#204b73}.tx-panel>img{object-fit:contain;background:#edf3f8}.tx-svc-hero img{object-fit:contain;background:#edf3f8}
/* Full-width custom sections follow the same canvas as Gutenberg full-width groups. */
body.tx-full #primary{margin:0!important;padding:0}.tx-full .entry-content>.txe-hero,.tx-full .entry-content>.tx-section{max-width:none;width:100%;margin-inline:0}.txe-hero{padding-block:76px}.txe-hero h1{font-size:clamp(42px,4.8vw,66px);max-width:17ch}.txe-hero-grid{gap:44px}.txe-hero-product img{height:275px}
@media(min-width:1081px){.tx-nav{display:flex;align-items:center;gap:14px}.tx-nav>ul{flex:1;flex-wrap:nowrap}.txe-search-nav{white-space:nowrap;padding-block:8px}}
@media(max-width:900px){.txe-hero{padding-block:50px}.txe-hero h1{font-size:48px}.txe-hero-product img{height:230px}}
@media(max-width:520px){.txe-hero h1{font-size:42px}.txe-hero-product img{height:190px}}
