/* TriLumen site theme layer (Oct 2026 redesign).
   Loaded AFTER each page's own <style>, so it restyles type and tone site-wide
   without touching page layouts. Manrope = headlines + UI, IBM Plex Sans = body. */
@font-face{font-family:'Manrope';src:url('/assets/fonts/manrope-latin-wght-normal.woff2') format('woff2');font-weight:200 800;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Manrope';src:url('/assets/fonts/manrope-latin-ext-wght-normal.woff2') format('woff2');font-weight:200 800;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'IBM Plex Sans';src:url('/assets/fonts/ibm-plex-sans-latin-400-normal.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'IBM Plex Sans';src:url('/assets/fonts/ibm-plex-sans-latin-500-normal.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'IBM Plex Sans';src:url('/assets/fonts/ibm-plex-sans-latin-600-normal.woff2') format('woff2');font-weight:600 800;font-style:normal;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('/assets/fonts/ibm-plex-mono-latin-400-normal.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('/assets/fonts/ibm-plex-mono-latin-500-normal.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}

:root{--tl-head:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;--tl-body:'IBM Plex Sans',system-ui,-apple-system,'Segoe UI',sans-serif;--tl-mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace}

/* body copy, form fields */
body,input,select,textarea{font-family:var(--tl-body)}
/* headlines + interface chrome */
h1,h2,h3,h4,.logo,.nav-links,.nav-cta,.mobile-menu,.footer-col h4,
button,.btn,[class*="btn-"],[class^="btn"],a[class*="cta"],
.eyebrow,.kicker,.badge,.pill,.chip,.tag,.step-num,.num,.stat,.stat-num,.big-num,.price,
summary,th{font-family:var(--tl-head)}
h1,h2{letter-spacing:-.02em}
h1{font-weight:800}
h2,h3{font-weight:700}
/* the italic Playfair accent is retired: keep the emphasis, lose the serif italic */
em{font-family:inherit;font-style:normal;font-weight:inherit;color:#4C4272}
code,pre,kbd,samp,.mono{font-family:var(--tl-mono)}
/* numbers read cleaner when they line up */
.stat,.stat-num,.num,.big-num,.price,td,th{font-variant-numeric:tabular-nums}
/* keyboard focus is visible everywhere */
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #8B5CF6;outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* ===== page system (Oct 2026): the home page's bands, headers and stat rows, shared across pages ===== */
:root{--tl-band:#2A2444;--tl-tint:#ECE8F8;--tl-page:#F4F2FA;--tl-onband:rgba(241,238,251,.74);--tl-bandline:rgba(241,238,251,.18)}
/* page headers: calmer tint, bigger Manrope headline, soft violet light in the corner */
.page-header,.nl-hero{background:radial-gradient(ellipse 60% 120% at 92% -20%,rgba(139,92,246,.14),transparent 60%),var(--tl-page)}
.page-header{padding-top:clamp(48px,7vw,84px);padding-bottom:clamp(40px,6vw,68px)}
.page-header h1{font-size:clamp(34px,5vw,56px)!important;line-height:1.05;letter-spacing:-.03em;font-weight:800;text-wrap:balance;margin-bottom:18px}
.page-header p{font-size:clamp(16px,1.8vw,19px)!important;line-height:1.55}
/* dark bands share the home page's deep violet */
.cta-band,.work-cta,.assessment,.close-cta,.process{background:var(--tl-band)!important;color:#F1EEFB}
.cta-band h2,.work-cta h2,.assessment h2,.close-cta h2,.process h2{color:#fff;letter-spacing:-.02em}
.work-cta p,.assessment p,.close-cta p{color:var(--tl-onband)!important}
.process .step-card{background:rgba(241,238,251,.07)!important;border:1px solid var(--tl-bandline)}
.process .step-num{color:#D9CCFB!important}
.cta-band .btn-primary,.work-cta .btn-primary,.assessment .btn-primary,.close-cta .btn-primary{background:#fff;color:#2A2444}
@media(hover:hover) and (pointer:fine){.cta-band .btn-primary:hover,.work-cta .btn-primary:hover,.assessment .btn-primary:hover{background:#ECE8F8}}
/* results rows read as the home stats band */
.ent-proof{background:var(--tl-band)!important;padding:34px 0!important}
.ent-proof-label{color:var(--tl-onband)!important}
.ent-proof-grid{gap:0!important;border:1px solid var(--tl-bandline);border-radius:14px;overflow:hidden}
.ent-stat{background:transparent!important;border:0!important;border-radius:0!important;padding:24px!important;color:#F1EEFB;box-shadow:none!important;transform:none!important}
.ent-stat+.ent-stat{border-left:1px solid var(--tl-bandline)!important}
.ent-stat .n{color:#fff!important;font-family:var(--tl-head);font-weight:700;letter-spacing:-.02em;font-size:clamp(20px,2vw,28px)!important}
.ent-stat .l{color:var(--tl-onband)!important}
.ent-proof-link{color:#D9CCFB!important}
@media(max-width:900px){.ent-stat:nth-child(odd){border-left:0!important}.ent-stat:nth-child(n+3){border-top:1px solid var(--tl-bandline)}}
@media(max-width:560px){.ent-stat+.ent-stat{border-left:0!important;border-top:1px solid var(--tl-bandline)}}
/* case-study stat tiles: headline numbers in Manrope, calmer tint */
.stat .num,.sb-stat .num,.stat-num{font-family:var(--tl-head);letter-spacing:-.02em}
.stat-grid .stat,.sb-stats .sb-stat{background:var(--tl-page)}
.proof-box,.sb-proof-box{box-shadow:0 1px 0 rgba(76,66,114,.04),0 12px 32px -18px rgba(76,66,114,.25)}
/* alternating light sections use one tint */
.service-section:nth-child(even),.coverage,.faq-mini{background:#F7F5FC}
.pos-cta-box,.sb-proof-box{border-color:#E2DCF3}
/* cards lift a little on hover, only where hover exists */
@media(hover:hover) and (pointer:fine){.pkg-card,.fork-card,.case-card,.tpl-card{transition:transform .18s cubic-bezier(.23,1,.32,1),box-shadow .18s cubic-bezier(.23,1,.32,1)}.pkg-card:hover,.case-card:hover,.tpl-card:hover{transform:translateY(-2px);box-shadow:0 14px 30px -16px rgba(76,66,114,.35)}}
.result-box{background:var(--tl-band)!important}

/* division under page headers, so the header reads as its own band */
.page-header{border-bottom:1px solid #DCD5F0}
/* quotes: quiet tinted band, Manrope instead of the old serif italic, readable everywhere */
.quote-band{background:var(--tl-tint)!important;color:#18181B;padding:64px 24px!important}
.quote-band .wrap-quote{border-left:3px solid #8B5CF6!important;max-width:760px!important}
.quote-band .quote-text,.case-quote p{font-family:var(--tl-head)!important;font-style:normal!important;font-weight:500!important;color:#2A2444!important;font-size:clamp(18px,2vw,22px)!important;line-height:1.5!important;letter-spacing:-.01em}
.quote-band .quote-attr,.case-quote cite{color:#4C4272!important;font-family:var(--tl-body)!important}
/* case studies: clearer rhythm between stories */
.case-card{border-bottom:1px solid #DCD5F0}
.case-card:nth-child(even){background:#F7F5FC}
.case-card h2{font-size:clamp(24px,3vw,34px)!important;letter-spacing:-.02em;line-height:1.15}
.case-card .case-label{background:#E4DDF7;color:#2A2444}
.case-index{background:var(--tl-tint)!important}
.case-index-card{background:#fff}
.case-quote{border-left:3px solid #8B5CF6!important}
.case-section h3{color:#4C4272;letter-spacing:.08em}
.trust-section{background:#fff}

/* ===== card system: one professional card used for pains, rules, phases, offers, questions ===== */
.trust,.retainer,.leaks,.pain,.rollout{background:var(--tl-page)!important;color:#18181B}
.trust .section-head,.retainer .section-head,.retainer h2,.leaks .section-head,.pain .section-head,.rollout .section-head,.rules .section-head{color:#18181B;letter-spacing:-.02em}
.section-sub,.retainer .section-sub,.trust .section-sub{color:#52525B!important}
.leak,.pain-item,.rule,.phase,.offer-card,.trust-item,.retainer-card,.rule-item,.faq-mini-item,.step-card.light{
  position:relative;background:#fff!important;border:1px solid #E2DCF3!important;border-left-width:1px!important;border-radius:16px!important;
  padding:26px 26px 24px!important;box-shadow:0 1px 0 rgba(76,66,114,.04),0 14px 30px -22px rgba(76,66,114,.35)!important;color:#18181B}
.leak h3,.rule h3,.phase h3,.offer-card h3,.retainer-card h3,.trust-item h4,.rule-item h4,.faq-mini-item h4{font-family:var(--tl-head);font-weight:700;letter-spacing:-.015em;color:#18181B!important;font-size:17px!important;line-height:1.3;margin:0 0 8px}
.leak p,.rule p,.phase p,.offer-card p,.retainer-card p,.trust-item p,.rule-item p,.faq-mini-item p{color:#52525B!important;font-size:14.5px!important;line-height:1.62}
.leak-grid,.rule-grid,.pain-grid,.trust-grid,.phase-grid,.rules-grid{counter-reset:tlc;gap:18px!important}
.leak-grid{grid-template-columns:repeat(3,1fr)!important;max-width:1092px!important}
.rule-grid{grid-template-columns:repeat(2,1fr)!important;max-width:1092px!important}
.pain-grid{max-width:1092px!important;grid-template-columns:repeat(2,1fr)!important}
.leak::before,.pain-item::before,.trust-item::before,.rule-item::before{counter-increment:tlc;content:counter(tlc,decimal-leading-zero);display:flex;align-items:center;justify-content:center;width:36px;height:36px;margin-bottom:16px;border-radius:10px;background:#ECE8F8;color:#4C4272;font-family:var(--tl-mono);font-size:13px;font-weight:500;letter-spacing:.02em}
.pain-item{font-family:var(--tl-head);font-weight:600!important;font-size:16px!important;line-height:1.4;letter-spacing:-.01em;display:flex;flex-direction:column}
.leak.wide{grid-column:1/-1}
/* rules: a violet rail on top and a pill label */
.rule{overflow:hidden;background:#F7F5FC!important}
.rule::after{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,#8B5CF6,#C2AEF6)}
.rule-k{display:inline-block;margin-bottom:14px;padding:5px 11px;border-radius:999px;background:#fff;border:1px solid #DCD5F0;color:#4C4272;font-family:var(--tl-mono);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase}
.rules{background:#fff!important}
/* phases and offers */
.phase .when{display:inline-block;margin-bottom:12px;padding:5px 11px;border-radius:999px;background:#ECE8F8;color:#4C4272;font-family:var(--tl-mono);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase}
.retainer-price,.offer-price,.pkg-price{font-family:var(--tl-head);color:#4C4272!important;letter-spacing:-.02em}
.retainer-hours{color:#71717A!important}
.retainer-rules{border-top-color:#DCD5F0!important}
.rules-head{color:#18181B!important}
.rules-grid{gap:18px!important}
/* questions: a two-column card grid on a tint band */
.faq-mini{max-width:1092px!important;margin:0 auto!important;padding:72px 24px!important;background:transparent!important;
  display:grid;grid-template-columns:repeat(2,1fr);gap:18px;box-shadow:0 0 0 100vmax #F7F5FC;clip-path:inset(0 -100vmax);background-color:#F7F5FC!important}
.faq-mini h2{grid-column:1/-1;text-align:center;margin:0 0 14px!important;letter-spacing:-.02em;font-size:clamp(26px,3vw,36px)}
.faq-mini-item{padding-top:24px!important}
.faq-mini-item::before{content:"?";display:flex;align-items:center;justify-content:center;width:32px;height:32px;margin-bottom:14px;border-radius:50%;background:#4C4272;color:#fff;font-family:var(--tl-head);font-weight:700;font-size:15px}
@media(max-width:900px){.leak-grid,.rule-grid{grid-template-columns:repeat(2,1fr)!important}}
@media(max-width:640px){.leak-grid,.rule-grid,.pain-grid,.faq-mini{grid-template-columns:1fr!important}.leak,.pain-item,.rule,.phase,.faq-mini-item{padding:22px!important}}

/* ===== surfaces: every section is white, tint or dark, and neighbours never match (data-s set per page) ===== */
:root{--tl-t:#EFEAFB}
section[data-s="w"]{background:#fff!important;color:#18181B}
section[data-s="t"]{background:var(--tl-t)!important;color:#18181B}
section[data-s="d"]{background:var(--tl-band)!important;color:#F1EEFB}
.faq-mini[data-s="w"]{box-shadow:0 0 0 100vmax #fff}
.faq-mini[data-s="t"]{box-shadow:0 0 0 100vmax var(--tl-t)}
section[data-s="t"] .quote-band,.quote-band[data-s="t"]{background:var(--tl-t)!important}
/* cards need to read on either surface */
section[data-s="w"] :is(.leak,.pain-item,.phase,.offer-card,.trust-item,.retainer-card,.rule-item,.faq-mini-item,.combo-row,.step-card,.stat,.sb-stat){background:#F7F5FC!important}
section[data-s="t"] :is(.leak,.pain-item,.phase,.offer-card,.trust-item,.retainer-card,.rule-item,.faq-mini-item,.combo-row,.step-card){background:#fff!important}
section[data-s="w"] .rule{background:var(--tl-t)!important}
section[data-s="t"] .rule{background:#fff!important}
.faq-mini[data-s="w"] .faq-mini-item{background:#F7F5FC!important}
/* combine and process blocks, now light */
.combine{color:#18181B}.combine-head{color:#18181B;letter-spacing:-.02em}.combine-sub{color:#52525B!important}
.combo-row{border:1px solid #E2DCF3;box-shadow:0 14px 30px -22px rgba(76,66,114,.35)}
.combo-outcome{color:#3F3F46!important}.combo-arrow{color:#4C4272!important}.mini-tile,.mini-tile span{color:#fff!important}.mini-label{font-size:9.5px!important;letter-spacing:.04em;opacity:.95!important}
.process-band .section-head{color:#18181B}.process-band .band-sub{color:#52525B!important}
.process-band .step-card h4{color:#18181B}.process-band .step-card p{color:#52525B}.process-band .step-num{color:#4C4272}
/* one header: every page title and hero is the same bold Manrope, same band, same rhythm */
.page-header,.hero:not(.hero-new),.nl-hero{background:radial-gradient(ellipse 60% 120% at 92% -20%,rgba(139,92,246,.16),transparent 60%),var(--tl-t)!important;border-bottom:1px solid #DCD5F0;padding:clamp(52px,7vw,88px) 0 clamp(44px,6vw,72px)!important;text-align:center}
.page-header h1,.hero:not(.hero-new) h1,.nl-hero h1{font-family:var(--tl-head)!important;font-size:clamp(38px,5.2vw,60px)!important;font-weight:800!important;line-height:1.04!important;letter-spacing:-.035em!important;color:#18181B;text-wrap:balance;margin:0 0 18px}
.page-header h1 em,.hero h1 em,.nl-hero h1 em{color:#4C4272}
.page-header p,.hero:not(.hero-new) .sub,.hero:not(.hero-new) p.lede,.nl-hero p{font-size:clamp(16px,1.8vw,19px)!important;line-height:1.55;color:#52525B}
.hero .tag,.page-header .tag,.nl-hero .tag{font-family:var(--tl-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#4C4272;margin-bottom:16px}
/* one section headline: same weight, size and tracking everywhere */
.tl-page section h2,.tl-page .section-head{font-family:var(--tl-head);font-size:clamp(28px,3.4vw,42px);font-weight:800;line-height:1.1;letter-spacing:-.03em;color:#18181B;text-wrap:balance}
.tl-page section[data-s="d"] h2{color:#fff}
.tl-page .section-sub,.tl-page .combine-sub,.tl-page .works-with-head p{font-size:clamp(15px,1.5vw,17px);line-height:1.6}
.tl-page .section-head{margin-bottom:12px}
.tl-page .rules-head,.tl-page .retainer-rules h3{font-size:clamp(22px,2.4vw,28px)!important;font-weight:800;letter-spacing:-.025em}
.faq-mini-item:last-child:nth-child(even){grid-column:1/-1}
.tl-page .service-content h2{font-size:clamp(26px,2.6vw,34px);letter-spacing:-.025em}

/* ===== varied rhythm (replaces zebra): hero tint matches home; sections are white, band, fade, panel or dark ===== */
:root{--tl-t:#F4F2FA}
section[data-s="t"]{background:var(--tl-t)!important}
section[data-s="g"]{background:linear-gradient(180deg,var(--tl-t) 0%,#fff 100%)!important}
section[data-s="p"]{background:var(--tl-t)!important;max-width:calc(100% - 48px);margin:28px auto;border-radius:28px;padding-left:0;padding-right:0}
section[data-s="p"] .wrap{max-width:1092px}
@media(max-width:700px){section[data-s="p"]{max-width:calc(100% - 20px);border-radius:20px;margin:16px auto}}
.faq-mini[data-s="t"]{box-shadow:0 0 0 100vmax var(--tl-t)}
section[data-s="t"] :is(.leak,.pain-item,.phase,.offer-card,.trust-item,.retainer-card,.rule-item,.faq-mini-item,.combo-row,.step-card),
section[data-s="g"] :is(.leak,.pain-item,.phase,.offer-card,.trust-item,.retainer-card,.rule-item,.faq-mini-item,.combo-row,.step-card),
section[data-s="p"] :is(.leak,.pain-item,.phase,.offer-card,.trust-item,.retainer-card,.rule-item,.faq-mini-item,.combo-row,.step-card){background:#fff!important}
section[data-s="g"] .rule,section[data-s="p"] .rule,section[data-s="t"] .rule{background:#fff!important}
.page-header,.hero:not(.hero-new),.nl-hero{background:radial-gradient(ellipse 60% 120% at 92% -20%,rgba(139,92,246,.10),transparent 60%),#F4F2FA!important;border-bottom:0!important}
.service-section{border-bottom:1px solid #E6E0F5!important}
.tl-page section[data-s="w"]+section[data-s="w"]{border-top:1px solid #E6E0F5}
/* small gray labels were too faint: one readable gray everywhere */
.step-label,.consent,.footer-tagline,.footer-recognized-label,.post-date,.clarity-card-date,.case-index-kicker,.formula-eyebrow,.fine,.tools-label,.works-note,.works-group-label,.pos-subhead,.lab,.company,.works-with small,.retainer-price span,.pkg-price span,.offer-price span,.footer-bottom span,.footer-legal span{color:#63636E!important}
section[data-s="d"] .tools-label,section[data-s="d"] .consent{color:rgba(241,238,251,.75)!important}
/* centered hero titles: keep auto side margins (the margin shorthand above resets them) */
.hero:not(.hero-new) h1{margin-left:auto;margin-right:auto;text-wrap:balance}
