:root {
  --ink: #17231f;
  --muted: #5d6964;
  --paper: #f7f4ed;
  --white: #fffdf8;
  --forest: #234a3c;
  --forest-deep: #102c24;
  --copper: #c86b3c;
  --copper-dark: #974524;
  --sage: #dce5dc;
  --line: #d8d9d1;
  --danger: #9f2d21;
  --warning: #8a5a17;
  --shadow: 0 24px 60px rgba(17, 43, 34, .12);
  --radius: 20px;
  --shell: min(1160px, calc(100% - 32px));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 16px; line-height: 1.6; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration-thickness: .08em; text-underline-offset: .18em; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid #e59a65; outline-offset: 3px; }
h1, h2, h3 { margin: 0 0 .65em; font-family: Georgia, "Times New Roman", serif; line-height: 1.04; letter-spacing: -.025em; }
h1 { font-size: clamp(2.65rem, 8vw, 5.7rem); }
h2 { font-size: clamp(2rem, 5vw, 3.55rem); }
h3 { font-size: 1.55rem; }
p { margin: 0 0 1.15em; }
.shell { width: var(--shell); margin-inline: auto; }
.narrow { max-width: 800px; }
.skip-link { position: fixed; z-index: 1000; top: 12px; left: 12px; transform: translateY(-160%); padding: 12px 16px; color: white; background: var(--forest-deep); border-radius: 8px; }
.skip-link:focus { transform: none; }
.eyebrow { margin: 0 0 14px; color: var(--copper-dark); font-size: .77rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.lede { color: #34443e; font-size: clamp(1.15rem, 2.5vw, 1.42rem); line-height: 1.5; }
.microcopy { color: var(--muted); font-size: .87rem; }
.text-link { color: var(--forest); font-weight: 750; }
.is-hidden { display: none !important; }

.site-header { position: sticky; z-index: 50; top: 0; background: rgba(247, 244, 237, .95); border-bottom: 1px solid rgba(23,35,31,.1); backdrop-filter: blur(16px); }
.nav-shell { display: flex; align-items: center; gap: 22px; min-height: 76px; }
.brand { display: inline-flex; align-items: center; gap: 11px; min-width: max-content; text-decoration: none; }
.brand-mark { display: grid; width: 42px; height: 42px; place-items: center; color: var(--white); background: var(--forest); border-radius: 50% 50% 12px 50%; font-size: .75rem; font-weight: 900; letter-spacing: .08em; transform: rotate(-4deg); }
.brand-logo { width: 42px; height: 42px; object-fit: contain; border-radius: 8px; }
.brand > span:last-child { display: grid; line-height: 1.1; }
.brand strong { font-family: Georgia, serif; font-size: 1.07rem; }
.brand small { margin-top: 4px; color: var(--muted); font-size: .64rem; letter-spacing: .045em; }
.site-header .desktop-nav { display: none; margin-left: auto; align-items: center; gap: 18px; }
.site-header nav a { color: #33413c; font-size: .84rem; font-weight: 700; text-decoration: none; white-space: nowrap; }
.site-header nav a[aria-current="page"] { color: var(--copper-dark); }
.site-header .desktop-cta { display: none; }
.mobile-menu { position: relative; margin-left: auto; }
.mobile-menu summary { padding: 8px 10px; color: var(--forest); font-weight: 800; cursor: pointer; }
.mobile-menu nav { position: absolute; top: calc(100% + 15px); right: 0; display: grid; min-width: 245px; gap: 6px; padding: 16px; background: var(--white); border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow); }
.mobile-menu nav a { padding: 8px; }
.mobile-menu nav .button { color: white; }
.site-header .text-link { margin-left: auto; font-size: .86rem; }

.button { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; padding: 13px 21px; color: white; background: var(--copper-dark); border: 2px solid var(--copper-dark); border-radius: 999px; font-weight: 800; line-height: 1.2; text-align: center; text-decoration: none; cursor: pointer; transition: transform .18s ease, background .18s ease, box-shadow .18s ease; }
.button:hover { background: #793319; border-color: #793319; box-shadow: 0 10px 25px rgba(151,69,36,.2); transform: translateY(-2px); }
.button-ghost { color: var(--forest); background: transparent; border-color: #98aaa2; }
.button-ghost:hover { color: white; background: var(--forest); border-color: var(--forest); }
.button-small { min-height: 42px; padding: 10px 17px; font-size: .82rem; }

.hero { padding: 44px 0 62px; overflow: hidden; }
.hero-grid { display: grid; gap: 30px; align-items: center; }
.hero-copy { position: relative; z-index: 2; }
.hero-copy h1 { max-width: 880px; }
.hero-copy .lede { max-width: 670px; }
.hero-actions { display: flex; flex-direction: column; gap: 12px; margin: 28px 0 17px; }
.hero-media { position: relative; margin: 0; }
.hero-media::before { position: absolute; z-index: -1; inset: -22px 26% 20% -20px; content: ""; background: var(--sage); border-radius: 50%; }
.hero-media img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 10px 90px 10px 90px; box-shadow: var(--shadow); }
.hero-media figcaption { padding: 10px 4px; color: var(--muted); font-size: .76rem; }
.hero-grid-text { grid-template-columns: 1fr; }
.readiness-card { align-self: center; padding: 28px; background: #fff7e8; border: 1px solid #e4cfa9; border-radius: var(--radius); box-shadow: var(--shadow); }
.readiness-card h2 { font-size: 2rem; }
.hero-legal { padding-bottom: 12px; }
.section { padding: 72px 0; }
.section-dark { color: white; background: var(--forest-deep); }
.two-col { display: grid; gap: 36px; }
.two-col > div > p:not(.eyebrow) { color: #42524c; font-size: 1.08rem; }
.principles { align-self: start; padding: 28px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.principles ul { display: grid; gap: 18px; margin: 0; padding: 0; list-style: none; }
.principles li { position: relative; padding-left: 32px; font-weight: 700; }
.principles li::before { position: absolute; left: 0; content: "✓"; color: var(--copper-dark); font-weight: 900; }
.process { display: grid; gap: 36px; }
.process > div { border-top: 1px solid rgba(255,255,255,.25); padding-top: 24px; }
.process span { color: #f0a477; font-size: .78rem; font-weight: 900; letter-spacing: .15em; }
.process p { color: #c6d5cf; }
.centered { max-width: 800px; text-align: center; }

.page-hero { padding: 76px 0 44px; }
.page-hero h1 { max-width: 900px; }
.card-grid { display: grid; gap: 22px; }
.content-card, .empty-state { padding: 28px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); }
.content-card h2 { font-size: 1.75rem; }
.prose { max-width: 790px; }
.article-body { margin: 44px 0; font-family: Georgia, serif; font-size: 1.16rem; }
.faq-list { display: grid; max-width: 900px; gap: 14px; }
.faq-list details { background: var(--white); border: 1px solid var(--line); border-radius: 14px; }
.faq-list summary { padding: 21px 24px; font-weight: 800; cursor: pointer; }
.faq-list details p { padding: 0 24px 22px; color: #41504b; }
.notice { margin: 20px 0; padding: 18px 20px; background: #eef3ed; border-left: 4px solid var(--forest); border-radius: 7px; }
.notice.danger, .error-summary { color: #6f2018; background: #fff0ed; border-color: var(--danger); }

.campaign-main { background: #f2f0e9; }
.campaign-intro { padding: 48px 0 24px; }
.campaign-intro-grid { display: grid; gap: 24px; }
.campaign-intro h1 { max-width: 900px; font-size: clamp(2.5rem, 7vw, 4.8rem); }
.campaign-intro aside { padding: 22px; background: #fff7e8; border: 1px solid #e4cfa9; border-radius: 16px; }
.campaign-intro aside p { margin: 6px 0 0; color: #6b512c; }
.form-section { padding-top: 22px; }
.form-shell { max-width: 930px; }
.error-summary { margin-bottom: 18px; padding: 16px 20px; border-left: 4px solid; border-radius: 9px; }
.error-summary p { margin: 4px 0 0; }
.progress-wrap { position: sticky; z-index: 20; top: 76px; margin-bottom: 16px; padding: 14px 18px; background: rgba(255,253,248,.96); border: 1px solid var(--line); border-radius: 14px; backdrop-filter: blur(10px); }
.progress-wrap > span { display: block; margin-bottom: 8px; font-size: .8rem; font-weight: 800; }
.progress-track { height: 7px; overflow: hidden; background: #dce1dc; border-radius: 999px; }
.progress-track span { display: block; width: 100%; height: 100%; background: var(--copper); border-radius: inherit; transition: width .25s ease; }
.js .progress-track span { width: 14.285%; }
.js .progress-2 .progress-track span { width: 28.57%; }.js .progress-3 .progress-track span { width: 42.85%; }.js .progress-4 .progress-track span { width: 57.14%; }.js .progress-5 .progress-track span { width: 71.42%; }.js .progress-6 .progress-track span { width: 85.71%; }.js .progress-7 .progress-track span { width: 100%; }
.qualification-form { display: grid; gap: 18px; }
.step-panel { min-width: 0; margin: 0 0 18px; padding: 24px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 14px 36px rgba(17,43,34,.07); }
.js .step-panel:not(.is-active) { display: none; }
.step-panel > legend { max-width: 100%; padding: 0; font-family: Georgia, serif; font-size: clamp(1.7rem, 5vw, 2.6rem); font-weight: 700; line-height: 1.1; }
.step-panel > legend span { display: block; margin-bottom: 7px; color: var(--copper-dark); font-family: Inter, sans-serif; font-size: .72rem; letter-spacing: .15em; text-transform: uppercase; }
.field-grid { display: grid; gap: 17px; margin-top: 24px; }
label { display: grid; gap: 7px; color: #2f3d38; font-size: .93rem; font-weight: 750; }
input, select, textarea { width: 100%; min-height: 50px; padding: 12px 14px; color: var(--ink); background: white; border: 1px solid #aeb8b3; border-radius: 9px; }
textarea { min-height: 118px; resize: vertical; }
input[aria-invalid="true"], select[aria-invalid="true"], textarea[aria-invalid="true"] { border: 2px solid var(--danger); }
.field-error { min-height: 1em; color: var(--danger); font-size: .78rem; font-weight: 700; }
.condition-list { display: grid; gap: 12px; margin-top: 22px; }
.condition-row { display: grid; grid-template-columns: 1fr; gap: 9px; margin: 0; padding: 16px; border: 1px solid var(--line); border-radius: 12px; }
.condition-row legend { width: 100%; margin-bottom: 3px; font-weight: 800; }
.condition-row label { display: flex; align-items: center; gap: 8px; padding: 8px 11px; background: #f5f5f0; border: 1px solid transparent; border-radius: 8px; cursor: pointer; }
.condition-row input { width: 20px; min-height: 20px; margin: 0; }
.step-actions { display: flex; flex-direction: column-reverse; gap: 10px; margin-top: 28px; }
.next-step, .prev-step { display: none; }
.js .next-step, .js .prev-step { display: inline-flex; }
.upload-zone { padding: 28px; text-align: center; background: #f4f7f3; border: 2px dashed #94a59d; border-radius: 15px; }
.upload-zone input { padding: 8px; background: white; }
.check-card { grid-template-columns: auto 1fr; align-items: start; padding: 15px; background: #f4f6f2; border-radius: 10px; }
.check-card input { width: 22px; min-height: 22px; margin: 1px 0 0; }
.review-card { margin-top: 24px; padding: 22px; background: #edf3ed; border-radius: 14px; }
.honeypot { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

.result-main { min-height: 70vh; }
.result-card { position: relative; overflow: hidden; padding: clamp(28px, 6vw, 58px); background: var(--white); border: 1px solid var(--line); border-radius: 28px; box-shadow: var(--shadow); }
.result-card::before { position: absolute; top: 0; right: 0; left: 0; height: 8px; content: ""; background: var(--forest); }
.result-repair::before { background: var(--warning); }.result-evaluation::before { background: #4e6d86; }.result-route::before { background: #6e657e; }
.result-label { display: inline-flex; margin-bottom: 22px; padding: 8px 12px; color: var(--forest-deep); background: var(--sage); border-radius: 999px; font-size: .78rem; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }

.panel { padding: 24px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.form-grid { display: grid; gap: 17px; }
.form-grid h2 { grid-column: 1 / -1; margin-top: 18px; font-size: 1.55rem; }
.requirement-grid { display: grid; gap: 8px; margin: 24px 0; }
.requirement { display: flex; gap: 10px; padding: 10px 13px; background: white; border: 1px solid var(--line); border-radius: 8px; }
.requirement.pass span { color: var(--forest); }.requirement.fail span { color: var(--danger); }
.installer-body { min-height: 100vh; padding: 48px 0; }
.installer-shell { width: min(820px, calc(100% - 32px)); margin: auto; }

.assistant-band { padding: 62px 0; background: var(--sage); }
.assistant-grid { display: grid; gap: 28px; }
.assistant-form { display: grid; gap: 10px; }
.assistant-answer { min-height: 50px; padding: 13px 0; color: #30443b; }
.site-footer { padding: 60px 0 22px; color: #d6e2dc; background: #0e241d; }
.footer-grid { display: grid; gap: 32px; }
.footer-grid > div { display: grid; align-content: start; gap: 8px; }
.footer-grid a { color: #d6e2dc; text-decoration: none; }
.brand-footer { color: white !important; margin-bottom: 10px; }
.brand-footer .brand-mark { background: var(--copper-dark); }
.footer-base { display: flex; flex-direction: column; gap: 7px; margin-top: 42px; padding-top: 18px; color: #8fa59b; border-top: 1px solid rgba(255,255,255,.14); font-size: .77rem; }

@media (min-width: 620px) {
  .hero-actions, .step-actions { flex-direction: row; }
  .field-grid, .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wide { grid-column: 1 / -1; }
  .condition-row { grid-template-columns: minmax(220px, 1fr) repeat(3, auto); align-items: center; }
  .condition-row legend { grid-column: 1; }
  .condition-row label { min-width: 98px; }
  .condition-row .field-error { grid-column: 1 / -1; }
  .step-actions .next-step, .step-actions button[type="submit"] { margin-left: auto; }
  .footer-grid { grid-template-columns: 1.5fr 1fr 1fr; }
  .card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 900px) {
  .site-header .desktop-nav { display: flex; }
  .site-header .desktop-cta { display: inline-flex; }
  .mobile-menu { display: none; }
  .hero { padding: 76px 0 88px; }
  .hero-grid { grid-template-columns: 1.08fr .92fr; gap: 48px; }
  .hero-grid-text { grid-template-columns: 1.12fr .88fr; }
  .hero-media { margin-right: -8vw; }
  .hero-media img { min-height: 520px; }
  .two-col { grid-template-columns: 1.15fr .85fr; gap: 76px; }
  .process { grid-template-columns: repeat(3, 1fr); }
  .campaign-intro-grid { grid-template-columns: 1.35fr .65fr; align-items: end; }
  .assistant-grid { grid-template-columns: .8fr 1.2fr; align-items: start; }
  .section { padding: 96px 0; }
  .step-panel { padding: 40px; }
}
@media (min-width: 900px) and (max-width: 1180px) {
  .site-header .desktop-nav { gap: 10px; }
  .site-header nav a { font-size: .76rem; }
  .nav-shell { gap: 12px; }
}

@media (max-width: 899px) {
  .nav-shell { min-height: 70px; }
  .brand small { display: none; }
  .site-header .text-link { max-width: 150px; text-align: right; }
  .progress-wrap { top: 70px; }
}

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

/* v0.1.9 public brand and assistant correction. Admin retains its own treatment below. */
body:not(.admin-body) { --ink:#0D2B4F; --muted:#4B5563; --paper:#F8FAFC; --white:#FFFFFF; --forest:#0D2B4F; --forest-deep:#081D36; --copper:#C8102E; --copper-dark:#A30D26; --sage:#EEF2F7; --line:#CBD5E1; --shadow:0 20px 55px rgba(13,43,79,.14); }
body:not(.admin-body) .site-header { background:rgba(255,255,255,.96); border-color:#D7DEE8; }
body:not(.admin-body) .site-header nav a, body:not(.admin-body) label { color:#0D2B4F; }
body:not(.admin-body) .eyebrow, body:not(.admin-body) .text-link { color:#A30D26; }
body:not(.admin-body) .lede, body:not(.admin-body) .two-col > div > p:not(.eyebrow), body:not(.admin-body) .assistant-answer { color:#243B53; }
body:not(.admin-body) .button { background:#C8102E; border-color:#C8102E; }
body:not(.admin-body) .button:hover { background:#A30D26; border-color:#A30D26; }
body:not(.admin-body) .button-ghost { color:#0D2B4F; border-color:#0D2B4F; }
body:not(.admin-body) .button-ghost:hover { background:#0D2B4F; border-color:#0D2B4F; }
body:not(.admin-body) .section-dark, body:not(.admin-body) .site-footer { background:#0D2B4F; }
body:not(.admin-body) .process p, body:not(.admin-body) .site-footer, body:not(.admin-body) .footer-grid a, body:not(.admin-body) .footer-base { color:#E5E7EB; }
body:not(.admin-body) .process span, body:not(.admin-body) .principles li::before { color:#EF4762; }
.assistant-launcher { position:fixed; z-index:80; right:24px; bottom:24px; min-height:52px; padding:12px 18px; color:#fff; background:#C8102E; border:2px solid #fff; border-radius:999px; box-shadow:0 12px 30px rgba(13,43,79,.3); font-weight:800; cursor:pointer; }
.assistant-panel { position:fixed; z-index:90; right:24px; bottom:88px; width:min(420px,calc(100vw - 32px)); max-height:min(700px,calc(100vh - 112px)); overflow:auto; padding:28px; color:#0D2B4F; background:#fff; border:1px solid #CBD5E1; border-radius:18px; box-shadow:0 24px 64px rgba(8,29,54,.25); }
.assistant-panel[hidden] { display:none; }.assistant-close { position:absolute; top:10px; right:12px; width:38px; height:38px; color:#0D2B4F; background:#EEF2F7; border:0; border-radius:50%; font-size:1.5rem; cursor:pointer; }.assistant-panel h2 { font-size:2rem; }.assistant-form { display:grid; gap:12px; }.assistant-form textarea { min-height:115px; }.assistant-assessment { font-weight:800; }.assistant-form button:disabled { opacity:.65; cursor:wait; }
@media (max-width:619px){.assistant-launcher{right:16px;bottom:16px;min-height:48px;padding:10px 14px}.assistant-panel{right:16px;bottom:76px;width:calc(100vw - 32px);padding:22px}.assistant-panel h2{font-size:1.65rem}}

/* v0.1.10 premium public readability and restrained hero motion. */
body:not(.admin-body) { --public-navy:#0D2B4F; --public-red:#C8102E; --public-light:#F8FAFC; --public-stone:#E5E7EB; --public-dark:#16283D; }
body:not(.admin-body) h1,body:not(.admin-body) h2,body:not(.admin-body) h3,body:not(.admin-body) p,body:not(.admin-body) li,body:not(.admin-body) label,body:not(.admin-body) summary { color:var(--public-navy); }
body:not(.admin-body) .microcopy,body:not(.admin-body) .hero-media figcaption { color:#334155; }
body:not(.admin-body) .section-dark h1,body:not(.admin-body) .section-dark h2,body:not(.admin-body) .section-dark h3,body:not(.admin-body) .section-dark p,body:not(.admin-body) .section-dark li { color:#fff; }
body:not(.admin-body) .section-dark .eyebrow { color:#FCA5A5; }
body:not(.admin-body) .hero { position:relative; padding-top:56px; background:linear-gradient(112deg,#fff 0%,#F8FAFC 52%,#E8EEF6 100%); }
body:not(.admin-body) .hero::after { position:absolute; inset:0; z-index:0; content:""; pointer-events:none; background:linear-gradient(110deg,transparent 25%,rgba(255,255,255,.66) 48%,transparent 70%); transform:translateX(-110%); animation:trl-sun-sweep 14s ease-in-out infinite; }
body:not(.admin-body) .hero-copy,body:not(.admin-body) .hero-media { z-index:1; }
body:not(.admin-body) .hero-copy h1 { max-width:780px; font-size:clamp(2.2rem,4.4vw,3.7rem); line-height:1.08; }
body:not(.admin-body) .hero-copy .lede { max-width:640px; color:#243B53; font-size:clamp(1.08rem,1.8vw,1.28rem); }
body:not(.admin-body) .hero-media { overflow:hidden; border-radius:12px 68px 12px 68px; background:var(--public-navy); }
body:not(.admin-body) .hero-media::after { position:absolute; inset:0; content:""; pointer-events:none; background:linear-gradient(125deg,rgba(13,43,79,.08),rgba(13,43,79,.01) 54%,rgba(255,255,255,.22)); }
body:not(.admin-body) .hero-media img { border-radius:inherit; animation:trl-hero-drift 18s ease-in-out infinite alternate; }
body:not(.admin-body) .principles,body:not(.admin-body) .content-card,body:not(.admin-body) .empty-state,body:not(.admin-body) .panel { background:#fff; border-color:var(--public-stone); }
body:not(.admin-body) .site-footer p,body:not(.admin-body) .site-footer small,body:not(.admin-body) .site-footer strong { color:#fff; }
@keyframes trl-hero-drift { from{transform:scale(1)} to{transform:scale(1.035) translate3d(-.6%,0,0)} }
@keyframes trl-sun-sweep { 0%,35%{transform:translateX(-110%)} 65%,100%{transform:translateX(110%)} }
@media (max-width:899px){body:not(.admin-body) .hero{padding-top:36px}body:not(.admin-body) .hero-copy h1{font-size:clamp(2.15rem,9vw,2.7rem)}body:not(.admin-body) .hero-media{margin-top:12px}}
@media (prefers-reduced-motion:reduce){body:not(.admin-body) .hero::after,body:not(.admin-body) .hero-media img{animation:none!important}}

/* v0.1.11 top-of-page to compact sticky header transformation. */
body:not(.admin-body) .site-header { min-height:82px; transition:background .24s ease,border-color .24s ease,box-shadow .24s ease; }
body:not(.admin-body) .nav-shell { min-height:82px; transition:min-height .24s ease,gap .24s ease; }
body:not(.admin-body) .site-header .brand-logo,body:not(.admin-body) .site-header .brand-mark { width:48px; height:48px; transition:width .24s ease,height .24s ease,transform .24s ease; }
body:not(.admin-body) .site-header:not(.is-scrolled) { background:rgba(255,255,255,.84); border-color:rgba(255,255,255,.72); backdrop-filter:blur(15px); }
body:not(.admin-body) .site-header.is-scrolled { background:rgba(255,255,255,.98); border-color:#CBD5E1; box-shadow:0 8px 22px rgba(13,43,79,.12); }
body:not(.admin-body) .site-header.is-scrolled .nav-shell { min-height:64px; gap:15px; }
body:not(.admin-body) .site-header.is-scrolled .brand-logo,body:not(.admin-body) .site-header.is-scrolled .brand-mark { width:38px; height:38px; }
body:not(.admin-body) .site-header.is-scrolled .desktop-nav { gap:13px; }
@media (max-width:899px){body:not(.admin-body) .site-header,body:not(.admin-body) .nav-shell{min-height:70px}body:not(.admin-body) .site-header.is-scrolled .nav-shell{min-height:60px}body:not(.admin-body) .site-header .brand-logo,body:not(.admin-body) .site-header .brand-mark{width:42px;height:42px}}
@media (prefers-reduced-motion:reduce){body:not(.admin-body) .site-header,body:not(.admin-body) .nav-shell,body:not(.admin-body) .site-header .brand-logo,body:not(.admin-body) .site-header .brand-mark{transition:none!important}}

/* v0.1.11 semantic contrast corrective pass: surface-aware, not global text overrides. */
body:not(.admin-body) .hero,body:not(.admin-body) .section:not(.section-dark),body:not(.admin-body) .page-hero,body:not(.admin-body) .content-card,body:not(.admin-body) .empty-state,body:not(.admin-body) .principles,body:not(.admin-body) .panel,body:not(.admin-body) .faq-list details,body:not(.admin-body) .assistant-panel { color:#16283D; }
body:not(.admin-body) .hero p,body:not(.admin-body) .section:not(.section-dark) p,body:not(.admin-body) .page-hero p,body:not(.admin-body) .content-card p,body:not(.admin-body) .empty-state p,body:not(.admin-body) .principles p,body:not(.admin-body) .panel p,body:not(.admin-body) .faq-list p,body:not(.admin-body) .assistant-panel p { color:#1F2937; }
body:not(.admin-body) .hero h1,body:not(.admin-body) .section:not(.section-dark) h1,body:not(.admin-body) .section:not(.section-dark) h2,body:not(.admin-body) .section:not(.section-dark) h3,body:not(.admin-body) .page-hero h1,body:not(.admin-body) .content-card h2,body:not(.admin-body) .principles h2,body:not(.admin-body) .assistant-panel h2 { color:#0D2B4F; }
body:not(.admin-body) .section-dark,body:not(.admin-body) .section-dark .two-col,body:not(.admin-body) .site-footer { color:#F8FAFC; }
body:not(.admin-body) .section-dark h1,body:not(.admin-body) .section-dark h2,body:not(.admin-body) .section-dark h3,body:not(.admin-body) .section-dark p,body:not(.admin-body) .section-dark li,body:not(.admin-body) .section-dark label,body:not(.admin-body) .section-dark a { color:#FFFFFF; }
body:not(.admin-body) .section-dark .microcopy,body:not(.admin-body) .section-dark .process p,body:not(.admin-body) .site-footer p,body:not(.admin-body) .site-footer small,body:not(.admin-body) .footer-base,body:not(.admin-body) .footer-grid a { color:#E5E7EB; }
body:not(.admin-body) .section-dark .eyebrow { color:#FDA4AF; }
body:not(.admin-body) .microcopy,body:not(.admin-body) .hero-media figcaption { color:#475569; }
body:not(.admin-body) input::placeholder,body:not(.admin-body) textarea::placeholder { color:#475569; opacity:1; }
body:not(.admin-body) .mobile-menu nav { background:#FFFFFF; border-color:#CBD5E1; }body:not(.admin-body) .mobile-menu nav a { color:#0D2B4F; }

/* v0.1.13 cinematic homepage hero and visibility-governed navigation. */
body:not(.admin-body){--motion-fast:180ms;--motion-normal:240ms;--motion-slow:280ms;--motion-ease:cubic-bezier(.2,.8,.2,1)}
body.home-page .site-header{position:absolute;width:100%;background:rgba(255,255,255,.78);border-color:rgba(255,255,255,.62)}
body.home-page .site-header.is-scrolled{position:fixed;background:rgba(255,255,255,.98)}
body:not(.admin-body) .hero-home{position:relative;display:grid;min-height:clamp(600px,72vh,760px);padding:clamp(128px,15vh,174px) 0 72px;isolation:isolate;background:#081D36}
body:not(.admin-body) .hero-home::before{position:absolute;z-index:-1;inset:0;content:"";background:linear-gradient(92deg,rgba(8,29,54,.92) 0%,rgba(13,43,79,.75) 42%,rgba(13,43,79,.24) 72%,rgba(8,29,54,.14) 100%)}
body:not(.admin-body) .hero-home::after{z-index:0;background:linear-gradient(105deg,transparent 22%,rgba(253,230,190,.20) 48%,transparent 70%);animation:trl-cinematic-light 12s ease-in-out infinite}
body:not(.admin-body) .hero-backdrop{position:absolute;z-index:-2;inset:0;margin:0;overflow:hidden}
body:not(.admin-body) .hero-backdrop img{width:100%;height:100%;max-width:none;object-fit:cover;object-position:center 46%;animation:trl-cinematic-drift 18s var(--motion-ease) infinite alternate}
body:not(.admin-body) .hero-home .hero-grid{display:flex;align-items:center;min-height:100%}
body:not(.admin-body) .hero-home .hero-copy{max-width:730px;animation:trl-hero-enter 620ms var(--motion-ease) both}
body:not(.admin-body) .hero-home .hero-copy h1{max-width:700px;color:#fff;font-size:clamp(2.2rem,4.4vw,3.7rem);text-shadow:0 2px 16px rgba(8,29,54,.28)}
body:not(.admin-body) .hero-home .eyebrow{color:#FEE2E2}.home-page .hero-home .lede{color:#F8FAFC}.home-page .hero-home .microcopy{color:#E5E7EB}.home-page .hero-home .button{box-shadow:0 12px 28px rgba(8,29,54,.28)}.home-page .hero-home .button-ghost{color:#fff;border-color:rgba(255,255,255,.9);background:rgba(255,255,255,.08)}.home-page .hero-home .button-ghost:hover{color:#0D2B4F;background:#fff;border-color:#fff}
@keyframes trl-cinematic-drift{from{transform:scale(1) translate3d(0,0,0)}to{transform:scale(1.052) translate3d(-1.8%,-.8%,0)}}@keyframes trl-cinematic-light{0%,30%{transform:translateX(-105%)}70%,100%{transform:translateX(105%)}}@keyframes trl-hero-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
body:not(.admin-body) .desktop-nav{gap:22px}.nav-services{position:relative}.nav-services-toggle{padding:10px 0;color:#0D2B4F;background:transparent;border:0;font-weight:750;cursor:pointer}.nav-services-toggle::after,.desktop-nav>a::after{display:block;width:0;height:2px;margin-top:3px;content:"";background:#C8102E;transition:width var(--motion-fast) var(--motion-ease)}.nav-services-toggle:hover,.desktop-nav>a:hover{color:#A30D26}.nav-services-toggle:hover::after,.desktop-nav>a:hover::after{width:100%}.services-menu{position:absolute;top:calc(100% + 12px);left:-18px;display:grid;width:300px;gap:3px;padding:13px;background:rgba(255,255,255,.98);border:1px solid #CBD5E1;border-radius:14px;box-shadow:0 18px 40px rgba(8,29,54,.18)}.services-menu a{padding:10px 12px!important;border-radius:8px}.services-menu a:hover,.services-menu a:focus-visible{color:#A30D26;background:#F8FAFC}.mobile-services{display:grid;gap:3px}.mobile-services summary{padding:8px;font-weight:800;cursor:pointer}.mobile-services a{padding-left:20px!important}.trust-card{position:relative;background:#fff!important;border-color:#CBD5E1!important;box-shadow:0 18px 42px rgba(0,0,0,.16)}.trust-card::before{position:absolute;top:22px;bottom:22px;left:0;width:4px;content:"";background:#C8102E;border-radius:0 4px 4px 0}.trust-card .eyebrow{color:#C8102E!important;font-size:.84rem!important;font-weight:800!important;letter-spacing:.09em!important}.trust-card h2{color:#0D2B4F!important;font-size:clamp(1.35rem,2.2vw,1.85rem)!important;line-height:1.3!important}.trust-card p{color:#1F2937!important}
@media(max-width:899px){body.home-page .site-header{position:absolute}body:not(.admin-body) .hero-home{min-height:clamp(620px,92vh,710px);padding:126px 0 52px}body:not(.admin-body) .hero-home::before{background:linear-gradient(180deg,rgba(8,29,54,.88),rgba(13,43,79,.76) 58%,rgba(8,29,54,.64))}body:not(.admin-body) .hero-backdrop img{object-position:58% center}.home-page .hero-home .hero-actions{width:min(100%,360px)}.mobile-menu nav{max-height:calc(100vh - 90px);overflow:auto}.mobile-menu nav a,.mobile-menu summary{min-height:44px;display:flex;align-items:center}}
@media(prefers-reduced-motion:reduce){body:not(.admin-body) .hero-home::after,body:not(.admin-body) .hero-backdrop img,body:not(.admin-body) .hero-home .hero-copy{animation:none!important;transform:none!important;opacity:1!important}.nav-services-toggle::after,.desktop-nav>a::after{transition:none!important}}

/* v0.1.14: explicit disclosure state and dark-surface reading hierarchy. */
body.home-page .hero-home .lede{color:#FFFFFF!important}
body.home-page .section-dark > .shell > .two-col > div > p:not(.eyebrow){color:#FFFFFF!important;opacity:1!important}
body.home-page .section-dark > .shell > .two-col > div > h2{color:#FFFFFF!important}
body.home-page .section-dark .trust-card .eyebrow{color:#C8102E!important}
body.home-page .section-dark .trust-card h2{color:#0D2B4F!important}
body.home-page .section-dark .trust-card p{color:#1F2937!important}
.services-menu[hidden]{display:none!important}
@media(min-width:900px){.services-menu:not([hidden]){animation:trl-services-reveal 200ms var(--motion-ease) both}.nav-services{padding-bottom:12px;margin-bottom:-12px}.nav-services-toggle:focus-visible{outline:3px solid #C8102E;outline-offset:4px}}
@keyframes trl-services-reveal{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.services-menu:not([hidden]){animation:none}}

/* v0.2.0 public authority and Learning Center surfaces. Keep every rule
   scoped away from the Admin interface and use high-contrast faint sections. */
body:not(.admin-body) .section-soft { background:linear-gradient(180deg,#F4F7FA 0%,#EEF2F7 100%); border-top:1px solid #E2E8F0; border-bottom:1px solid #E2E8F0; }
body:not(.admin-body) .section-soft h1,body:not(.admin-body) .section-soft h2,body:not(.admin-body) .section-soft h3,body:not(.admin-body) .section-soft p,body:not(.admin-body) .section-soft li { color:#0D2B4F; }
body:not(.admin-body) .section-heading { max-width:820px; margin-bottom:30px; }
body:not(.admin-body) .section-heading p:not(.eyebrow),body:not(.admin-body) .authority-intro-grid > div:last-child > p:not(.trust-line) { color:#1F2937; font-size:1.06rem; }
body:not(.admin-body) .authority-intro { background:#fff; }
body:not(.admin-body) .authority-intro-grid { display:grid; gap:28px; align-items:start; }
body:not(.admin-body) .trust-line { color:#A30D26!important; font-weight:850; }
body:not(.admin-body) .authority-card-grid,body:not(.admin-body) .comparison-grid,body:not(.admin-body) .condition-grid,body:not(.admin-body) .weather-grid,body:not(.admin-body) .market-links { display:grid; gap:14px; }
body:not(.admin-body) .authority-card-grid { grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
body:not(.admin-body) .authority-card-grid article,body:not(.admin-body) .comparison-grid article,body:not(.admin-body) .topic-card { padding:25px; background:#fff; border:1px solid #CBD5E1; border-radius:16px; box-shadow:0 10px 28px rgba(13,43,79,.07); }
body:not(.admin-body) .authority-card-grid h3,body:not(.admin-body) .comparison-grid h3,body:not(.admin-body) .topic-card h2 { font-size:1.35rem; }
body:not(.admin-body) .authority-card-grid p,body:not(.admin-body) .comparison-grid li,body:not(.admin-body) .topic-card p,body:not(.admin-body) .topic-card li { color:#1F2937; }
body:not(.admin-body) .section-action { margin-top:30px; }
body:not(.admin-body) .comparison-grid { grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
body:not(.admin-body) .comparison-label { display:inline-flex; margin-bottom:12px; padding:5px 10px; color:#0D2B4F; background:#E5E7EB; border-radius:999px; font-size:.72rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
body:not(.admin-body) .comparison-disclaimer { margin-top:25px; color:#1F2937; font-weight:700; }
body:not(.admin-body) .condition-grid { grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); }
body:not(.admin-body) .condition-grid span,body:not(.admin-body) .weather-grid span { padding:14px 16px; color:#fff; background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.25); border-radius:10px; font-weight:700; }
body:not(.admin-body) .weather-grid { grid-template-columns:repeat(2,minmax(0,1fr)); align-self:center; }
body:not(.admin-body) .weather-grid span { color:#0D2B4F; background:#EEF2F7; border-color:#CBD5E1; }
body:not(.admin-body) .market-links { grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); }
body:not(.admin-body) .market-links a,body:not(.admin-body) .related-links a { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:15px 16px; color:#0D2B4F; background:#fff; border:1px solid #CBD5E1; border-radius:10px; font-weight:800; text-decoration:none; }
body:not(.admin-body) .market-links a:hover,body:not(.admin-body) .related-links a:hover { color:#A30D26; border-color:#A30D26; }
body:not(.admin-body) .photo-cta { color:#fff; background:#0D2B4F; }
body:not(.admin-body) .photo-cta h2,body:not(.admin-body) .photo-cta p { color:#fff; }
body:not(.admin-body) .photo-cta .eyebrow { color:#FDA4AF; }
body:not(.admin-body) .photo-cta-inner { display:grid; gap:25px; align-items:center; }
body:not(.admin-body) .photo-cta-inner .button { justify-self:start; }
body:not(.admin-body) .trust-standard { margin-top:32px; padding:24px; background:#fff; border-left:5px solid #C8102E; border-radius:10px; box-shadow:0 10px 28px rgba(13,43,79,.1); }
body:not(.admin-body) .trust-standard h3 { color:#0D2B4F; }
body:not(.admin-body) .trust-standard p { color:#1F2937; }
body:not(.admin-body) .article-index-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:18px; }
body:not(.admin-body) .article-card { display:flex; flex-direction:column; min-width:0; padding:25px; background:#fff; border:1px solid #CBD5E1; border-radius:16px; box-shadow:0 10px 28px rgba(13,43,79,.07); }
body:not(.admin-body) .article-card h2 { font-size:1.55rem; }
body:not(.admin-body) .article-card h2 a { color:#0D2B4F; text-decoration:none; }
body:not(.admin-body) .article-card p:not(.article-kicker) { color:#1F2937; }
body:not(.admin-body) .article-card .text-link { margin-top:auto; }
body:not(.admin-body) .article-kicker,body:not(.admin-body) .article-meta { color:#A30D26!important; font-size:.78rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
body:not(.admin-body) .learning-hero,body:not(.admin-body) .article-hero,body:not(.admin-body) .faq-hero { background:linear-gradient(115deg,#fff 0%,#F8FAFC 55%,#E8EEF6 100%); }
body:not(.admin-body) .article-layout { display:grid; gap:32px; align-items:start; }
body:not(.admin-body) .article-body { max-width:800px; margin:0; color:#1F2937; }
body:not(.admin-body) .article-body p { color:#1F2937; }
body:not(.admin-body) .article-section + .article-section { margin-top:38px; padding-top:32px; border-top:1px solid #CBD5E1; }
body:not(.admin-body) .article-section h2 { font-size:clamp(1.7rem,3vw,2.45rem); }
body:not(.admin-body) .article-aside,body:not(.admin-body) .learning-cta .principles,body:not(.admin-body) .article-next .principles { display:grid; gap:14px; }
body:not(.admin-body) .breadcrumbs { display:flex; flex-wrap:wrap; gap:8px; padding-top:25px; color:#475569; font-size:.88rem; }
body:not(.admin-body) .breadcrumbs a { color:#0D2B4F; font-weight:750; }
body:not(.admin-body) .faq-layout { display:grid; gap:32px; align-items:start; }
body:not(.admin-body) .faq-layout .faq-list { max-width:none; }
body:not(.admin-body) .faq-layout .principles h2 { font-size:1.8rem; }
body:not(.admin-body) .learning-cta .principles a:not(.button),body:not(.admin-body) .article-next .principles a:not(.button) { justify-self:start; }
@media (min-width:760px){body:not(.admin-body) .authority-intro-grid{grid-template-columns:1fr 1fr}body:not(.admin-body) .article-layout,body:not(.admin-body) .faq-layout{grid-template-columns:minmax(0,1.25fr) minmax(250px,.75fr)}body:not(.admin-body) .photo-cta-inner{grid-template-columns:1fr auto}}
@media (min-width:900px){body:not(.admin-body) .article-index-grid{grid-template-columns:repeat(3,minmax(0,1fr))}body:not(.admin-body) .learning-hero,body:not(.admin-body) .article-hero,body:not(.admin-body) .faq-hero{padding-top:94px}}

/* v0.2.1 curated public visual system. */
body:not(.admin-body) .section-visual,body:not(.admin-body) .condition-visual,body:not(.admin-body) .learning-lead-visual,body:not(.admin-body) .article-lead-visual{margin:0;overflow:hidden;background:#DDE6EF;border:1px solid #CBD5E1;border-radius:16px;box-shadow:0 14px 34px rgba(13,43,79,.12)}
body:not(.admin-body) .section-visual img,body:not(.admin-body) .condition-visual img,body:not(.admin-body) .learning-lead-visual img,body:not(.admin-body) .article-lead-visual img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
body:not(.admin-body) .section-visual figcaption,body:not(.admin-body) .condition-visual figcaption,body:not(.admin-body) .learning-lead-visual figcaption,body:not(.admin-body) .article-lead-visual figcaption{padding:9px 12px;color:#334155;background:#F8FAFC;font-size:.75rem;line-height:1.4}
body:not(.admin-body) .section-visual-detail{margin-top:24px}
body:not(.admin-body) .section-visual-boundary{margin-top:22px}
body:not(.admin-body) .section-visual-wide{width:min(980px,100%);margin:0 auto 28px}
body:not(.admin-body) .condition-visual-grid{display:grid;gap:16px;margin:0 0 24px}
body:not(.admin-body) .condition-visual{border-color:rgba(255,255,255,.3);box-shadow:0 14px 34px rgba(0,0,0,.2)}
body:not(.admin-body) .condition-visual figcaption{color:#fff;background:#183B63;font-weight:750}
body:not(.admin-body) .weather-visual-stack{display:grid;gap:16px}
body:not(.admin-body) .learning-hero-grid,body:not(.admin-body) .article-hero-grid,body:not(.admin-body) .content-intro-grid{display:grid;gap:30px;align-items:start}
body:not(.admin-body) .learning-lead-visual,body:not(.admin-body) .article-lead-visual{align-self:center}
body:not(.admin-body) .article-card-visual{display:block;margin:-25px -25px 20px;overflow:hidden;border-radius:15px 15px 0 0;background:#DDE6EF}
body:not(.admin-body) .article-card-visual img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;transition:transform .3s ease}
body:not(.admin-body) .article-card:hover .article-card-visual img{transform:scale(1.025)}
@media(min-width:760px){body:not(.admin-body) .condition-visual-grid{grid-template-columns:repeat(3,minmax(0,1fr))}body:not(.admin-body) .learning-hero-grid,body:not(.admin-body) .article-hero-grid{grid-template-columns:minmax(0,1.05fr) minmax(300px,.95fr)}body:not(.admin-body) .content-intro-grid{grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr)}}
@media(prefers-reduced-motion:reduce){body:not(.admin-body) .article-card-visual img{transition:none!important;transform:none!important}}

/* v0.2.1 Ridge conversation UI and semantic dark-section corrections. */
body:not(.admin-body) .assistant-launcher{display:flex;align-items:center;gap:10px;padding:7px 15px 7px 7px;text-align:left}
body:not(.admin-body) .assistant-launcher img{width:44px;height:44px;object-fit:cover;border:2px solid rgba(255,255,255,.9);border-radius:50%;background:#fff}
body:not(.admin-body) .assistant-launcher span{display:grid;line-height:1.08}
body:not(.admin-body) .assistant-launcher strong{color:#fff;font-size:.92rem}
body:not(.admin-body) .assistant-launcher small{color:#FEE2E2;font-size:.68rem;font-weight:750}
body:not(.admin-body) .assistant-panel{display:grid;grid-template-rows:auto minmax(150px,1fr) auto auto;gap:15px;overflow:hidden;padding:22px;max-height:min(720px,calc(100vh - 112px))}
body:not(.admin-body) .assistant-panel[hidden]{display:none}
body:not(.admin-body) .assistant-identity{display:flex;align-items:flex-start;gap:13px;padding-right:32px}
body:not(.admin-body) .assistant-identity img{flex:0 0 auto;width:64px;height:64px;object-fit:cover;border:3px solid #E2E8F0;border-radius:50%;background:#F8FAFC}
body:not(.admin-body) .assistant-identity h2{margin:0;font-size:1.65rem}
body:not(.admin-body) .assistant-identity .eyebrow{margin:0 0 2px;color:#A30D26}
body:not(.admin-body) .assistant-identity p:last-child{margin:5px 0 0;color:#334155;font-size:.78rem;line-height:1.4}
body:not(.admin-body) .assistant-conversation{display:grid;align-content:start;gap:12px;min-height:150px;max-height:320px;overflow-y:auto;padding:15px;background:#F1F5F9;border:1px solid #CBD5E1;border-radius:13px;overscroll-behavior:contain;scrollbar-gutter:stable}
body:not(.admin-body) .assistant-message{max-width:88%;padding:10px 12px;border-radius:13px;box-shadow:0 3px 12px rgba(13,43,79,.06)}
body:not(.admin-body) .assistant-message span{display:block;margin-bottom:3px;color:#475569;font-size:.68rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
body:not(.admin-body) .assistant-message p{margin:0;color:#16283D;white-space:pre-wrap;overflow-wrap:anywhere;font-size:.94rem;line-height:1.5}
body:not(.admin-body) .assistant-message-ridge{justify-self:start;background:#fff;border:1px solid #D7DEE8;border-bottom-left-radius:4px}
body:not(.admin-body) .assistant-message-visitor{justify-self:end;background:#0D2B4F;border:1px solid #0D2B4F;border-bottom-right-radius:4px}
body:not(.admin-body) .assistant-message-visitor span,body:not(.admin-body) .assistant-message-visitor p{color:#fff}
body:not(.admin-body) .assistant-status{min-height:1.25em;color:#334155;font-size:.82rem;font-weight:700}
body:not(.admin-body) .assistant-form{gap:9px}
body:not(.admin-body) .assistant-form textarea{min-height:82px;max-height:160px;resize:vertical}
body:not(.admin-body) .assistant-actions{display:flex;flex-wrap:wrap;gap:8px}
body:not(.admin-body) .assistant-actions .button{min-height:42px;padding:9px 14px}
body:not(.admin-body) .assistant-form .microcopy{margin:0;color:#475569;font-size:.72rem}
body:not(.admin-body) .photo-cta.section-dark h2,body:not(.admin-body) .photo-cta.section-dark p{color:#fff;opacity:1}
body:not(.admin-body) .conditions-section .section-heading{margin-bottom:22px}
body:not(.admin-body) .conditions-section .section-heading>p:not(.eyebrow){color:#fff;opacity:1}
@media(max-width:619px){body:not(.admin-body) .assistant-launcher{padding:6px 11px 6px 6px}body:not(.admin-body) .assistant-launcher img{width:38px;height:38px}body:not(.admin-body) .assistant-panel{grid-template-rows:auto minmax(130px,1fr) auto auto;gap:11px;padding:18px;max-height:calc(100dvh - 90px)}body:not(.admin-body) .assistant-identity img{width:52px;height:52px}body:not(.admin-body) .assistant-identity h2{font-size:1.4rem}body:not(.admin-body) .assistant-conversation{max-height:280px;padding:12px}body:not(.admin-body) .assistant-message{max-width:94%}}
@media(prefers-reduced-motion:reduce){body:not(.admin-body) .assistant-panel,body:not(.admin-body) .assistant-message{scroll-behavior:auto;transition:none!important;animation:none!important}}

/* Secure Admin */
.admin-body { background: #edf0eb; }
.admin-top { position: sticky; z-index: 60; top: 0; display: flex; min-height: 70px; align-items: center; justify-content: space-between; gap: 18px; padding: 10px 18px; background: #fffdf8; border-bottom: 1px solid var(--line); }
.admin-top > div { display: flex; align-items: center; gap: 12px; font-size: .85rem; }
.admin-top form { margin: 0; }
.text-button { padding: 5px 0; color: var(--copper-dark); background: transparent; border: 0; font-weight: 800; text-decoration: underline; cursor: pointer; }
.admin-frame { min-height: calc(100vh - 70px); }
.admin-nav { display: flex; overflow-x: auto; gap: 9px; padding: 12px 16px; background: var(--forest-deep); }
.admin-nav nav { display: flex; gap: 8px; }
.admin-nav a { min-width: max-content; padding: 9px 12px; color: #d8e4df; border-radius: 8px; font-size: .82rem; font-weight: 750; text-decoration: none; }
.admin-nav a[aria-current="page"] { color: white; background: rgba(255,255,255,.14); }
.admin-main { min-width: 0; padding: 26px 16px 70px; }
.admin-heading { margin-bottom: 24px; }
.admin-heading h1 { font-size: clamp(2rem, 5vw, 3.2rem); }
.admin-grid { display: grid; gap: 18px; }
.metric-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 24px; }
.metric { padding: 18px; background: white; border: 1px solid var(--line); border-radius: 14px; }
.metric span { display: block; color: var(--muted); font-size: .75rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.metric strong { display: block; margin-top: 5px; font-family: Georgia, serif; font-size: 1.7rem; }
.admin-card { min-width: 0; padding: 20px; background: white; border: 1px solid var(--line); border-radius: 15px; }
.admin-card h2 { font-size: 1.55rem; }
.record-item { padding: 13px 0; border-bottom: 1px solid #e4e6e1; }
.record-item:last-child { border-bottom: 0; }
.record-item p { overflow-wrap: anywhere; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: .88rem; }
th, td { padding: 11px 12px; text-align: left; border-bottom: 1px solid #e4e6e1; vertical-align: top; }
th { color: var(--muted); font-size: .7rem; letter-spacing: .07em; text-transform: uppercase; }
.status-pill { display: inline-flex; padding: 5px 8px; background: #e5eee7; border-radius: 999px; font-size: .72rem; font-weight: 800; }
.status-warning { background: #fff0d2; }
.admin-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.admin-actions .button { min-height: 42px; padding: 9px 14px; font-size: .8rem; }
.admin-section { margin-top: 22px; }
.admin-tabs { display: flex; overflow-x: auto; gap: 8px; margin-bottom: 22px; }
.admin-tabs a { min-width: max-content; padding: 9px 13px; background: white; border: 1px solid var(--line); border-radius: 999px; font-size: .82rem; font-weight: 750; text-decoration: none; }
.definition-list { display: grid; gap: 10px; }
.definition-list > div { display: grid; grid-template-columns: minmax(0, 150px) minmax(0, 1fr); gap: 12px; padding-bottom: 9px; border-bottom: 1px solid #e4e6e1; }
.definition-list dt { color: var(--muted); font-size: .78rem; font-weight: 800; }
.definition-list dd { min-width: 0; margin: 0; overflow-wrap: anywhere; }
.media-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 18px; margin-top: 22px; }
.media-card { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: #fafaf6; }
.media-card > a { display: block; background: #dfe5df; }
.media-card img { display: block; width: 100%; height: 190px; object-fit: cover; }
.media-card-body { display: grid; gap: 10px; padding: 15px; }
.media-card h3 { margin: 0; overflow-wrap: anywhere; font-size: 1rem; }
.media-card details { padding: 10px 0; border-top: 1px solid var(--line); }
.media-card summary { cursor: pointer; font-weight: 800; }
.danger-zone { margin-top: 12px; padding: 16px; border: 2px solid #cc6a5a; border-radius: 12px; background: #fff5f3; }
.button-danger { color: #fff; background: #8c291f; border-color: #8c291f; }
.button-danger:hover, .button-danger:focus-visible { background: #6f2018; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

@media (max-width: 520px) {
  .definition-list > div { grid-template-columns: 1fr; gap: 2px; }
}
.login-body { display: grid; min-height: 100vh; padding: 22px; place-items: center; background: var(--forest-deep); }
.login-card { width: min(480px, 100%); padding: 30px; background: var(--white); border-radius: 22px; box-shadow: var(--shadow); }
.login-card .brand { margin-bottom: 34px; }
.login-card h1 { font-size: 3rem; }

@media (min-width: 820px) {
  .admin-frame { display: grid; grid-template-columns: 230px 1fr; }
  .admin-nav { position: sticky; top: 70px; display: flex; height: calc(100vh - 70px); flex-direction: column; overflow: auto; padding: 24px 14px; }
  .admin-nav nav { display: grid; gap: 5px; }
  .admin-nav > .text-link { margin-top: auto; }
  .admin-main { padding: 40px; }
  .metric-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .admin-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* v0.2.2 grouped navigation, uncropped supporting media, conversion preview, and natural Ridge chat. */
body:not(.admin-body) .services-mega{width:min(790px,calc(100vw - 48px));grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:20px;left:50%;transform:translateX(-42%)}
body:not(.admin-body) .services-group{min-width:0}
body:not(.admin-body) .services-group h2{margin:0 10px 8px;color:#A30D26;font-family:inherit;font-size:.7rem;line-height:1.35;letter-spacing:.1em;text-transform:uppercase}
body:not(.admin-body) .services-group a{display:block;white-space:normal;line-height:1.35}
body:not(.admin-body) .services-group a[aria-current="page"],body:not(.admin-body) .mobile-services a[aria-current="page"]{color:#A30D26;background:#F1F5F9}
body:not(.admin-body) .mobile-services-group{display:grid;gap:3px;padding:10px 0;border-top:1px solid #E2E8F0}
body:not(.admin-body) .mobile-services-group:first-of-type{border-top:0}
body:not(.admin-body) .mobile-services-group>strong{padding:4px 8px;color:#A30D26;font-size:.69rem;letter-spacing:.08em;text-transform:uppercase}
body:not(.admin-body) .mobile-menu nav{max-height:calc(100dvh - 100px);overflow-y:auto;overscroll-behavior:contain}
body:not(.admin-body) .page-topic-visual img,body:not(.admin-body) .section-visual img,body:not(.admin-body) .condition-visual img,body:not(.admin-body) .learning-lead-visual img,body:not(.admin-body) .article-lead-visual img,body:not(.admin-body) .faq-lead-visual img,body:not(.admin-body) .article-card-visual img{width:100%;height:auto;max-height:min(680px,72vh);aspect-ratio:auto;object-fit:contain;object-position:center;background:#E8EEF6}
body:not(.admin-body) .page-topic-visual figcaption,body:not(.admin-body) .section-visual figcaption,body:not(.admin-body) .condition-visual figcaption,body:not(.admin-body) .learning-lead-visual figcaption,body:not(.admin-body) .article-lead-visual figcaption,body:not(.admin-body) .faq-lead-visual figcaption{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
body:not(.admin-body) .form-preview{display:grid;gap:24px;padding:clamp(24px,4vw,44px);color:#16283D;background:linear-gradient(135deg,#fff,#F1F5F9);border:1px solid #CBD5E1;border-radius:22px;box-shadow:0 20px 48px rgba(13,43,79,.12)}
body:not(.admin-body) .form-preview h2{font-size:clamp(1.8rem,3.5vw,2.8rem)}
body:not(.admin-body) .form-preview p{max-width:760px;color:#1F2937}
body:not(.admin-body) .form-preview-fields{display:grid;gap:14px}
body:not(.admin-body) .form-preview-fields input,body:not(.admin-body) .form-preview-fields textarea{color:#64748B;background:#fff;opacity:1}
body:not(.admin-body) .form-preview-fields textarea{min-height:90px}
body:not(.admin-body) .form-preview-cta{justify-self:start}
@media(min-width:700px){body:not(.admin-body) .form-preview-fields{grid-template-columns:repeat(2,minmax(0,1fr))}body:not(.admin-body) .form-preview-fields .wide{grid-column:1/-1}}
body:not(.admin-body) .assistant-panel{height:min(78vh,820px);max-height:calc(100dvh - 108px);grid-template-rows:auto minmax(0,1fr) auto auto;padding-bottom:max(22px,env(safe-area-inset-bottom))}
body:not(.admin-body) .assistant-conversation{min-height:0;max-height:none;overflow-y:auto;scroll-behavior:smooth;scroll-padding-block:16px}
body:not(.admin-body) .assistant-form{position:relative;align-self:end;padding-top:2px;background:#fff}
@media(max-width:619px){body:not(.admin-body) .assistant-panel{inset:auto 8px max(8px,env(safe-area-inset-bottom)) 8px;width:auto;height:min(90dvh,900px);max-height:90dvh;padding:16px 16px max(16px,env(safe-area-inset-bottom));border-radius:18px}body:not(.admin-body) .assistant-conversation{max-height:none}body:not(.admin-body) .assistant-form textarea{min-height:68px;max-height:120px}}
@media(max-height:620px){body:not(.admin-body) .assistant-panel{height:calc(100dvh - 20px);max-height:calc(100dvh - 20px);bottom:10px}}
@media(prefers-reduced-motion:reduce){body:not(.admin-body) .assistant-conversation{scroll-behavior:auto}}
