/*
Theme Name: Ternion
Template: twentytwentyfive
Description: Ternion "Signal" child theme. Dark, Orbitron / Titillium Web / Open Sans, purple-to-pink accents.
Author: Ternion LLC
Version: 1.0.0
Requires at least: 6.6
Requires PHP: 7.4
Text Domain: ternion
*/

:root {
  --tn-alt: #060409; --tn-panel: #0c0a12; --tn-border: #241d30; --tn-chip: #2b2440;
  --tn-line: rgba(255,255,255,.08); --tn-line-2: rgba(255,255,255,.1); --tn-line-3: rgba(255,255,255,.14);
  --tn-t1: #b7b0c2; --tn-t2: #9a94a6; --tn-t3: #8a8398; --tn-t4: #7a7488; --tn-t5: #6b6478;
  --tn-pink: #F72585; --tn-purple: #7209B7;
  --tn-grad: linear-gradient(120deg,#7209B7,#F72585);
  --tn-grad-stat: linear-gradient(120deg,#9410AB,#F72585);
  --tn-max: 1320px; --tn-gutter: clamp(24px, 4.2vw, 60px);
  --tn-orb: 'Orbitron', sans-serif; --tn-tit: 'Titillium Web', sans-serif; --tn-sans: 'Open Sans', sans-serif; --tn-mono: 'Courier New', ui-monospace, monospace;
}

/* ---------- Base + reset (all rules prefixed with body so they beat WordPress defaults) ---------- */
body { background: #000; color: #fff; font-family: var(--tn-sans); font-weight: 300; -webkit-font-smoothing: antialiased; }
body .wp-site-blocks > * { margin-block-start: 0; }
body [class*="tn-"] > * { margin-block: 0; }
body [class*="tn-"] { box-sizing: border-box; }

/* ---------- Header ---------- */
body .tn-header { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 30px var(--tn-gutter); border-bottom: 1px solid var(--tn-line); background: #000; position: relative; z-index: 10; margin: 0; }
body .tn-logo { margin: 0; font-family: var(--tn-orb); font-weight: 700; font-size: 21px; letter-spacing: .34em; text-transform: uppercase; line-height: 1; }
body .tn-logo a { color: #fff; text-decoration: none; }
body .tn-nav { font-family: var(--tn-tit); font-weight: 600; font-size: 12px; letter-spacing: .2em; text-transform: uppercase; }
body .tn-nav ul, body .tn-nav .wp-block-navigation__container { display: flex; align-items: center; gap: 44px; list-style: none; margin: 0; padding: 0; }
body .tn-nav a { color: var(--tn-t2); text-decoration: none; transition: color .15s; }
body .tn-nav a:hover { color: #fff; }
body .tn-nav .current-menu-item > a { color: #fff; border-bottom: 1px solid var(--tn-pink); padding-bottom: 3px; }
body .tn-nav .tn-nav-cta > a { color: #fff; border: 1px solid rgba(255,255,255,.7); padding: 11px 20px; letter-spacing: .16em; transition: background .15s, color .15s; }
body .tn-nav .tn-nav-cta > a:hover, body .tn-nav .tn-nav-cta.current-menu-item > a { background: #fff; color: #000; border-bottom-color: rgba(255,255,255,.7); padding-bottom: 11px; }
body .tn-nav .wp-block-navigation__responsive-container-open, body .tn-nav .wp-block-navigation__responsive-container-close { color: #fff; }
body .tn-nav.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open { background: #000; color: #fff; padding: 32px var(--tn-gutter); }
body .tn-nav .is-menu-open .wp-block-navigation__container { flex-direction: column; align-items: flex-start; gap: 28px; font-size: 16px; }

/* ---------- Sections ---------- */
body .tn-section { position: relative; overflow: hidden; padding: 96px var(--tn-gutter); border-top: 1px solid var(--tn-line); margin: 0; }
body .tn-alt { background: var(--tn-alt); }
body .tn-wrap { position: relative; z-index: 1; max-width: var(--tn-max); margin: 0 auto; }
body .tn-hero { padding: 112px var(--tn-gutter) 96px; border-top: 0; }
body .tn-hero--home { padding: 128px var(--tn-gutter) 116px; }
body .tn-service-sec { padding-block: 92px; }
body .tn-section--results { padding-block: 76px; }
body .tn-section--stack { padding-block: 84px; }
body .tn-section--band { padding-block: 56px; }
body .tn-book-sec { padding: 110px var(--tn-gutter) 120px; }

body .tn-glow::before { content: ""; position: absolute; top: -280px; left: 27%; width: 820px; height: 820px; background: radial-gradient(circle, rgba(114,9,183,.52), rgba(247,37,133,.13) 42%, transparent 68%); filter: blur(30px); pointer-events: none; animation: tnPulse 7s ease-in-out infinite; }
body .tn-glow--right::before { left: auto; right: -140px; }
@keyframes tnPulse { 0%, 100% { opacity: .5; } 50% { opacity: .95; } }
@media (prefers-reduced-motion: reduce) { body .tn-glow::before { animation: none; opacity: .75; } }

/* ---------- Type ---------- */
body .tn-eyebrow { font-family: var(--tn-orb); font-weight: 500; font-size: 12px; letter-spacing: .34em; text-transform: uppercase; color: var(--tn-pink); line-height: 1.5; }
body .tn-eyebrow--muted { color: var(--tn-t4); }
body .tn-h1 { font-family: var(--tn-orb); font-weight: 900; font-size: clamp(34px, 5vw, 72px); line-height: 1.03; letter-spacing: -.01em; color: #fff; margin-top: 30px; max-width: 1000px; text-transform: uppercase; overflow-wrap: break-word; }
body .tn-h1--xl { font-size: clamp(36px, 5.7vw, 82px); line-height: 1.02; max-width: 960px; }
body .tn-h1--md { font-size: clamp(32px, 4.4vw, 64px); line-height: 1.04; margin-top: 28px; }
body .tn-lede { font-size: clamp(17px, 1.4vw, 20px); line-height: 1.6; color: var(--tn-t1); max-width: 640px; margin-top: 30px; }
body .tn-h2 { font-family: var(--tn-tit); font-weight: 700; font-size: clamp(28px, 2.9vw, 42px); line-height: 1.13; letter-spacing: 0; color: #fff; margin-top: 22px; max-width: 720px; }
body .tn-body { font-size: clamp(16px, 1.25vw, 18px); line-height: 1.7; color: var(--tn-t1); max-width: 700px; margin-top: 24px; }
body .tn-body + .tn-body { margin-top: 20px; }
body .tn-small { font-size: 15px; line-height: 1.6; color: var(--tn-t2); margin-top: 8px; }
body .tn-label { font-family: var(--tn-tit); font-weight: 600; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--tn-t3); }
body .tn-mono-label { font-family: var(--tn-mono); font-weight: 700; font-size: 14px; letter-spacing: .1em; text-transform: uppercase; color: var(--tn-pink); }

/* ---------- Buttons ---------- */
body .tn-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 28px; margin-top: 44px; }
body .tn-actions--center { justify-content: center; margin-top: 40px; }
body .tn-btn { margin: 0; }
body .tn-btn .wp-block-button__link { display: inline-flex; align-items: center; gap: 10px; font-family: var(--tn-tit); font-weight: 600; font-size: 14px; letter-spacing: .14em; text-transform: uppercase; line-height: 1.2; color: #000; background: #fff; padding: 16px 30px; border: 0; border-radius: 0; text-decoration: none; transition: background .15s, color .15s; }
body .tn-btn .wp-block-button__link:hover, body .tn-btn .wp-block-button__link:focus-visible { background: var(--tn-pink); color: #fff; }
body .tn-btn--lg .wp-block-button__link { font-size: 15px; padding: 18px 36px; }
body .tn-btn--text .wp-block-button__link { background: none; color: var(--tn-t2); padding: 16px 0; }
body .tn-btn--text .wp-block-button__link:hover { background: none; color: #fff; }

/* ---------- Numbered rows (Home: What we do) ---------- */
body .tn-numrows { margin-top: 52px; border-bottom: 1px solid var(--tn-line-2); }
body .tn-numrow { display: grid; grid-template-columns: 90px minmax(0,340px) minmax(0,1fr); gap: 40px; align-items: start; padding: 34px 0; border-top: 1px solid var(--tn-line-2); }
body .tn-num { font-family: var(--tn-orb); font-weight: 900; font-size: 34px; line-height: 1.1; background: var(--tn-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
body .tn-num--lg { font-size: 40px; }
body .tn-num--sm { font-size: 28px; }
body .tn-numrow-title { font-family: var(--tn-tit); font-weight: 600; font-size: 25px; line-height: 1.25; color: #fff; }
body .tn-numrow-text { font-size: 17px; line-height: 1.65; color: var(--tn-t2); max-width: 560px; }

/* ---------- Split (copy + image) ---------- */
body .tn-split { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,520px); gap: 72px; align-items: center; }
body .tn-split--wide { grid-template-columns: minmax(0,1fr) minmax(0,620px); }
body .tn-split .tn-h2, body .tn-split .tn-body { max-width: 560px; }
body .tn-media { margin: 0; }
body .tn-media img { display: block; width: 100%; height: auto; border: 1px solid var(--tn-border); }

/* ---------- Stats ---------- */
body .tn-stats { display: grid; gap: 40px 56px; margin-top: 52px; }
body .tn-stats--2 { grid-template-columns: repeat(2, minmax(0,1fr)); max-width: 520px; }
body .tn-stats--4 { grid-template-columns: repeat(4, minmax(0,1fr)); gap: 40px; margin-top: 44px; }
body .tn-stats--ruled .tn-stat { border-top: 1px solid var(--tn-line-3); padding-top: 26px; }
body .tn-stat-num { font-family: var(--tn-orb); font-weight: 900; font-size: clamp(38px, 3.8vw, 56px); line-height: 1; color: #fff; }
body .tn-stat-label { font-family: var(--tn-tit); font-weight: 600; font-size: 13px; letter-spacing: .12em; text-transform: uppercase; color: var(--tn-t3); margin-top: 12px; }

/* ---------- Services hero aside ---------- */
body .tn-hero-split { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,420px); gap: 80px; align-items: end; }
body .tn-aside { border-left: 1px solid rgba(255,255,255,.12); padding-left: 34px; }
body .tn-aside-num { font-family: var(--tn-orb); font-weight: 900; font-size: 44px; line-height: 1.1; color: #fff; margin-top: 12px; }
body .tn-aside-unit { font-size: 20px; color: var(--tn-t2); letter-spacing: .04em; }
body .tn-aside-text { font-size: 15px; line-height: 1.6; color: var(--tn-t2); margin-top: 14px; }

/* ---------- Service blocks ---------- */
body .tn-service { display: grid; grid-template-columns: 100px minmax(0,1fr) minmax(0,460px); gap: 56px; align-items: start; }
body .tn-service .tn-h2 { font-size: clamp(28px, 2.7vw, 38px); line-height: 1.15; }
body .tn-service .tn-body { margin-top: 20px; max-width: 620px; }
body .tn-chips { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
body .tn-chip { font-family: var(--tn-tit); font-weight: 600; font-size: 13px; letter-spacing: .06em; line-height: 1.3; color: var(--tn-t2); border: 1px solid var(--tn-chip); border-radius: 40px; padding: 9px 18px; }
body .tn-panel { background: var(--tn-panel); border: 1px solid var(--tn-border); padding: 32px 30px; }
body .tn-panel-label { font-family: var(--tn-tit); font-weight: 600; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--tn-pink); }

/* ---------- Lists ---------- */
body .tn-arrows { list-style: none; padding: 0; margin: 20px 0 0; display: grid; gap: 14px; }
body .tn-arrows li { display: grid; grid-template-columns: 18px minmax(0,1fr); gap: 12px; font-size: 15px; line-height: 1.55; color: var(--tn-t1); }
body .tn-arrows li::before { content: "→"; color: var(--tn-pink); }
body .tn-arrows--lg { margin-top: 32px; max-width: 520px; }
body .tn-arrows--lg li { font-size: 16px; }
body .tn-crosses { list-style: none; padding: 0; margin: 40px 0 0; max-width: 700px; border-bottom: 1px solid var(--tn-line-2); }
body .tn-crosses li { display: grid; grid-template-columns: 20px minmax(0,1fr); gap: 16px; padding: 16px 0; border-top: 1px solid var(--tn-line-2); font-size: 16px; line-height: 1.55; color: var(--tn-t2); }
body .tn-crosses li::before { content: "×"; color: var(--tn-pink); }

/* ---------- Phases + stack ---------- */
body .tn-phases { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 32px; margin-top: 60px; }
body .tn-phase { border-top: 1px solid var(--tn-line-3); padding-top: 26px; }
body .tn-hidden, body .wp-block-navigation .tn-hidden { display: none !important; }
/* Sub-header + lead-in list (pattern: ternion/part-leadin-list) */
body .tn-subhead { font-family: var(--tn-tit); font-weight: 700; font-size: clamp(22px, 2vw, 26px); line-height: 1.2; color: #fff; margin: 48px 0 20px; }
body ul.tn-leadin-list { list-style: none; padding: 0; margin: 0; max-width: 700px; border-bottom: 1px solid rgba(255,255,255,.1); }
body ul.tn-leadin-list > li { position: relative; margin: 0; padding: 18px 0 18px 36px; border-top: 1px solid rgba(255,255,255,.1); font-weight: 300; font-size: 17px; line-height: 1.7; color: var(--tn-t2, #b7b0c2); text-wrap: pretty; }
body ul.tn-leadin-list > li::before { content: ""; position: absolute; left: 0; top: 29px; width: 8px; height: 8px; background: var(--tn-pink, #F72585); }
body ul.tn-leadin-list > li strong { font-family: var(--tn-tit); font-weight: 600; color: #fff; }
@media (max-width: 600px) { body ul.tn-leadin-list > li { font-size: 16px; padding-left: 26px; } body ul.tn-leadin-list > li::before { top: 28px; } }
body .tn-phase .tn-mono-label { font-size: 16px; }
body .tn-phase-title { font-family: var(--tn-tit); font-weight: 600; font-size: 21px; line-height: 1.3; color: #fff; margin-top: 12px; }
body .tn-phase .tn-small { margin-top: 10px; }
body .tn-two { display: grid; grid-template-columns: minmax(0,340px) minmax(0,1fr); gap: 72px; align-items: start; }
body .tn-two .tn-body { font-size: 17px; color: var(--tn-t2); margin-top: 20px; }
body .tn-tags { display: flex; flex-wrap: wrap; gap: 12px; }
body .tn-tag { font-family: var(--tn-mono); font-size: 14px; letter-spacing: .06em; line-height: 1.2; color: var(--tn-t1); border: 1px solid var(--tn-border); padding: 12px 20px; }

/* ---------- Case study ---------- */
body .tn-meta { display: flex; flex-wrap: wrap; gap: 24px 56px; margin-top: 52px; padding-top: 30px; border-top: 1px solid rgba(255,255,255,.12); max-width: 900px; }
body .tn-meta-label { font-family: var(--tn-tit); font-weight: 600; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--tn-t5); }
body .tn-meta-value { font-family: var(--tn-tit); font-weight: 600; font-size: 16px; color: #fff; margin-top: 7px; }
body .tn-labelled { display: grid; grid-template-columns: minmax(0,300px) minmax(0,1fr); gap: 72px; align-items: start; }
body .tn-labelled > .tn-eyebrow { padding-top: 8px; }
body .tn-labelled .tn-body { margin-top: 26px; }
body .tn-steps { margin-top: 44px; max-width: 760px; border-bottom: 1px solid var(--tn-line-2); }
body .tn-step { display: grid; grid-template-columns: 72px minmax(0,1fr); gap: 28px; align-items: start; padding: 30px 0; border-top: 1px solid var(--tn-line-2); }
body .tn-step-title { font-family: var(--tn-tit); font-weight: 600; font-size: 20px; line-height: 1.3; color: #fff; }
body .tn-step .tn-small { font-size: 16px; }
body .tn-steps--compact { margin-top: 56px; max-width: 520px; }
body .tn-steps--compact .tn-step { grid-template-columns: 64px minmax(0,1fr); gap: 24px; padding: 26px 0; }
body .tn-steps--compact .tn-num { font-size: 26px; }
body .tn-steps--compact .tn-step-title { font-size: 18px; }
body .tn-steps--compact .tn-small { font-size: 15px; margin-top: 6px; }
body .tn-quote { position: relative; padding-left: 47px; max-width: 1040px; }
body .tn-quote::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: linear-gradient(180deg,#7209B7,#F72585); }
body .tn-quote-text { font-family: var(--tn-tit); font-weight: 300; font-style: italic; font-size: clamp(22px, 2.2vw, 32px); line-height: 1.45; color: #fff; }
body .tn-quote-cite { font-family: var(--tn-tit); font-weight: 600; font-size: 13px; letter-spacing: .16em; text-transform: uppercase; color: var(--tn-t3); margin-top: 28px; }

/* ---------- CTA ---------- */
body .tn-cta { padding: 124px var(--tn-gutter); text-align: center; }
body .tn-cta::before { content: ""; position: absolute; bottom: -320px; left: 50%; transform: translateX(-50%); width: 900px; height: 700px; background: radial-gradient(circle, rgba(180,23,158,.5), transparent 66%); filter: blur(30px); pointer-events: none; }
body .tn-cta-title { font-family: var(--tn-orb); font-weight: 900; font-size: clamp(30px, 3.7vw, 54px); line-height: 1.08; color: #fff; max-width: 820px; margin-inline: auto; text-transform: uppercase; }
body .tn-cta .tn-lede { margin: 24px auto 0; max-width: 560px; }

/* ---------- Book a call ---------- */
body .tn-book { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,640px); gap: 88px; align-items: start; }
body .tn-book .tn-lede { max-width: 520px; font-size: clamp(17px, 1.35vw, 19px); line-height: 1.65; margin-top: 28px; }
body .tn-email { margin-top: 44px; font-size: 14px; color: var(--tn-t5); }
body .tn-email a { color: var(--tn-t2); }
body .tn-email a:hover { color: var(--tn-pink); }
body .tn-form-panel { position: relative; background: var(--tn-panel); border: 1px solid var(--tn-border); padding: 48px 44px; }
body .tn-form-panel::before { content: ""; position: absolute; left: -1px; right: -1px; top: -1px; height: 2px; background: linear-gradient(90deg,#7209B7,#F72585); }
body .tn-reassure { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 60px; }
body .tn-reassure-title { font-family: var(--tn-tit); font-weight: 600; font-size: 15px; color: #fff; }
body .tn-reassure .tn-small { font-size: 14px; }

/* ---------- Form (Contact Form 7) ---------- */
body .tn-form { display: grid; gap: 26px; }
body .tn-form-2col { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 22px; }
body .tn-field { display: grid; gap: 9px; margin: 0; }
body .tn-field-label { font-family: var(--tn-tit); font-weight: 600; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--tn-t3); }
body .tn-field-label em { font-style: normal; font-weight: 400; text-transform: none; letter-spacing: 0; color: var(--tn-t5); }
body .tn-form .wpcf7-form-control-wrap { display: block; }
body .tn-form input[type="text"], body .tn-form input[type="email"], body .tn-form textarea { width: 100%; box-sizing: border-box; background: #000; border: 1px solid var(--tn-chip); border-radius: 0; color: #fff; font-family: var(--tn-sans); font-weight: 300; font-size: 15px; line-height: 1.5; padding: 14px 16px; outline: none; transition: border-color .15s; }
body .tn-form input:focus, body .tn-form textarea:focus { border-color: var(--tn-pink); }
body .tn-form ::placeholder { color: var(--tn-t5); opacity: 1; }
body .tn-form textarea { resize: vertical; line-height: 1.6; min-height: 120px; }
body .tn-pills { display: flex; flex-wrap: wrap; gap: 10px; }
body .tn-pills .wpcf7-list-item { margin: 0; }
body .tn-pills label { position: relative; display: block; cursor: pointer; }
body .tn-pills input { position: absolute; opacity: 0; width: 1px; height: 1px; }
body .tn-pills .wpcf7-list-item-label { display: block; font-family: var(--tn-tit); font-weight: 600; font-size: 13px; letter-spacing: .06em; color: var(--tn-t2); border: 1px solid var(--tn-chip); border-radius: 40px; padding: 9px 18px; transition: border-color .15s, color .15s, background .15s; }
body .tn-pills label:hover .wpcf7-list-item-label { border-color: var(--tn-pink); color: #fff; }
body .tn-pills input:checked + .wpcf7-list-item-label { color: #fff; border-color: var(--tn-pink); background: rgba(247,37,133,.12); }
body .tn-pills input:focus-visible + .wpcf7-list-item-label { outline: 2px solid var(--tn-pink); outline-offset: 2px; }
body .tn-form-foot { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 20px; margin-top: 6px; }
body .tn-form .wpcf7-submit { appearance: none; font-family: var(--tn-tit); font-weight: 600; font-size: 14px; letter-spacing: .14em; text-transform: uppercase; color: #000; background: #fff; border: 0; border-radius: 0; padding: 16px 32px; cursor: pointer; transition: background .15s, color .15s; }
body .tn-form .wpcf7-submit:hover, body .tn-form .wpcf7-submit:focus-visible { background: var(--tn-pink); color: #fff; }
body .tn-form-note { font-size: 13px; line-height: 1.5; color: var(--tn-t5); text-align: right; }
body .wpcf7-spinner { margin: 0 0 0 12px; }
body .wpcf7 form .wpcf7-response-output { margin: 24px 0 0; padding: 14px 16px; border: 1px solid var(--tn-chip); color: var(--tn-t1); font-size: 14px; }
body .wpcf7 form.sent .wpcf7-response-output { border-color: #33d17a; }
body .wpcf7 form.invalid .wpcf7-response-output, body .wpcf7 form.failed .wpcf7-response-output { border-color: var(--tn-pink); }
body .wpcf7-not-valid-tip { color: var(--tn-pink); font-size: 13px; margin-top: 6px; }

/* ---------- Footer ---------- */
body .tn-footer { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px 24px; padding: 34px var(--tn-gutter); border-top: 1px solid var(--tn-line); background: #000; margin: 0; }
body .tn-footer-logo { font-family: var(--tn-orb); font-weight: 700; font-size: 14px; letter-spacing: .3em; text-transform: uppercase; color: #fff; }
body .tn-footer-meta { font-size: 13px; color: var(--tn-t5); }
body .tn-footer-meta a { color: inherit; text-decoration: none; }
body .tn-footer-meta a:hover { color: var(--tn-pink); }

/* ---------- Gradient text (keep after colour rules) ---------- */
body .tn-grad-text { background: var(--tn-grad-stat); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* ---------- Tablet ≤ 980px ---------- */
@media (max-width: 980px) {
  body .tn-nav ul, body .tn-nav .wp-block-navigation__container { gap: 28px; }
  body .tn-section { padding-block: 68px; }
  body .tn-hero { padding-block: 88px 80px; }
  body .tn-service-sec { padding-block: 64px; }
  body .tn-section--results { padding-block: 56px; }
  body .tn-section--band { padding-block: 44px; }
  body .tn-book-sec { padding-block: 80px 88px; }
  body .tn-cta { padding-block: 88px; }
  body .tn-split, body .tn-split--wide, body .tn-hero-split, body .tn-labelled, body .tn-two, body .tn-book { grid-template-columns: minmax(0,1fr); gap: 48px; }
  body .tn-labelled { gap: 20px; }
  body .tn-two { gap: 28px; }
  body .tn-aside { border-left: 0; border-top: 1px solid rgba(255,255,255,.12); padding: 28px 0 0; max-width: 420px; }
  body .tn-numrow { grid-template-columns: 64px minmax(0,1fr); gap: 10px 24px; }
  body .tn-numrow-text { grid-column: 2; }
  body .tn-service { grid-template-columns: 64px minmax(0,1fr); gap: 32px; }
  body .tn-service > :nth-child(3) { grid-column: 2; }
  body .tn-stats--4 { grid-template-columns: repeat(2, minmax(0,1fr)); }
  body .tn-phases { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 40px 32px; }
  body .tn-reassure { gap: 32px; }
  body .tn-glow::before { width: 640px; height: 640px; top: -240px; }
}

/* ---------- Phone ≤ 767px ---------- */
@media (max-width: 767px) {
  body .tn-header { padding-block: 18px; }
  body .tn-logo { font-size: 17px; letter-spacing: .3em; }
  body .tn-section { padding-block: 48px; }
  body .tn-hero, body .tn-hero--home { padding-block: 56px 48px; }
  body .tn-service-sec { padding-block: 44px; }
  body .tn-section--results { padding-block: 40px; }
  body .tn-section--band { padding-block: 36px; }
  body .tn-book-sec { padding-block: 52px 56px; }
  body .tn-cta { padding-block: 60px; }
  body .tn-h1 { margin-top: 20px; }
  body .tn-lede { margin-top: 20px; }
  body .tn-actions { gap: 20px; margin-top: 32px; }
  body .tn-numrows { margin-top: 32px; }
  body .tn-numrow { grid-template-columns: 48px minmax(0,1fr); gap: 8px 16px; padding: 24px 0; }
  body .tn-num { font-size: 26px; }
  body .tn-num--lg { font-size: 30px; }
  body .tn-numrow-title { font-size: 21px; }
  body .tn-numrow-text { font-size: 16px; }
  body .tn-service { grid-template-columns: minmax(0,1fr); gap: 20px; }
  body .tn-service > :nth-child(3) { grid-column: auto; margin-top: 8px; }
  body .tn-panel { padding: 26px 22px; }
  body .tn-stats { gap: 28px 24px; margin-top: 36px; }
  body .tn-stats--4 { margin-top: 32px; }
  body .tn-phases, body .tn-reassure { grid-template-columns: minmax(0,1fr); gap: 28px; }
  body .tn-phases { margin-top: 36px; }
  body .tn-meta { gap: 20px 32px; margin-top: 36px; }
  body .tn-step { grid-template-columns: 48px minmax(0,1fr); gap: 16px; padding: 22px 0; }
  body .tn-steps--compact .tn-step { grid-template-columns: 48px minmax(0,1fr); gap: 16px; padding: 22px 0; }
  body .tn-steps--compact { margin-top: 36px; }
  body .tn-quote { padding-left: 24px; }
  body .tn-form-panel { padding: 32px 22px; }
  body .tn-form-2col { grid-template-columns: minmax(0,1fr); }
  body .tn-form-foot { flex-direction: column; align-items: flex-start; }
  body .tn-form-note { text-align: left; }
  body .tn-footer { flex-direction: column; align-items: flex-start; padding-block: 28px; }
  body .tn-glow::before { width: 520px; height: 520px; top: -200px; left: 10%; }
  body .tn-glow--right::before { left: auto; right: -200px; }
}

/* ---------- First child never gets a top margin (keep last) ---------- */
body [class*="tn-"] > :first-child { margin-top: 0; }
