
/* Terra Vita Hub · Assurance Layer v373
   Page-scoped institutional blueprint styles. No dependency on protected data. */
:root{
  --tvh-assurance-navy:#092944;
  --tvh-assurance-navy-2:#0d3557;
  --tvh-assurance-line:rgba(177,205,236,.42);
  --tvh-assurance-text:#f7fbff;
  --tvh-assurance-muted:rgba(247,251,255,.72);
  --tvh-assurance-paper:#f7f4eb;
  --tvh-assurance-ink:#0a2a43;
  --tvh-assurance-gold:#d6b26a;
}
.tvh-assurance-page{background:var(--tvh-assurance-paper);color:var(--tvh-assurance-ink)}
.tvh-assurance-hero{position:relative;overflow:hidden;padding:92px 0 72px;background:linear-gradient(145deg,#061d32 0%,#0a2a43 54%,#133e60 100%);color:#fffdf6}
.tvh-assurance-hero:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.055) 1px, transparent 1px),linear-gradient(90deg,rgba(255,255,255,.055) 1px, transparent 1px);background-size:46px 46px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.92),rgba(0,0,0,.12));pointer-events:none}
.tvh-assurance-hero:after{content:"";position:absolute;width:820px;height:820px;right:-260px;top:-360px;background:radial-gradient(circle,rgba(214,178,106,.22),transparent 62%);pointer-events:none}
.tvh-assurance-hero .tvh-container{position:relative;z-index:2}
.tvh-assurance-hero h1{max-width:1060px;margin:22px 0 0;font-size:clamp(42px,7vw,88px);line-height:.94;letter-spacing:-.06em;color:#fffdf6}
.tvh-assurance-hero .accent{color:#d6b26a}
.tvh-assurance-lead{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:26px;align-items:stretch;margin-top:28px}
.tvh-assurance-lead p{font-size:clamp(18px,2.1vw,25px);line-height:1.42;color:rgba(255,253,246,.88);margin:0}
.tvh-assurance-boundary{border:1px solid rgba(255,253,246,.18);border-left:3px solid var(--tvh-assurance-gold);border-radius:20px;padding:22px;background:rgba(255,255,255,.065);box-shadow:0 16px 44px rgba(0,0,0,.18)}
.tvh-assurance-boundary strong{display:block;text-transform:uppercase;font-size:11px;letter-spacing:.18em;color:#e8c978;margin-bottom:8px}
.tvh-assurance-boundary span{font-size:14px;line-height:1.55;color:rgba(255,253,246,.78)}
.tvh-assurance-sequence{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:34px}
.tvh-assurance-sequence div{border:1px solid rgba(255,253,246,.18);border-radius:16px;padding:16px;background:rgba(255,255,255,.065)}
.tvh-assurance-sequence span{display:block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#b8cee8;margin-bottom:7px}
.tvh-assurance-sequence b{font-size:15px;color:#fffdf6}
.tvh-assurance-section{padding:72px 0;background:#f7f4eb}
.tvh-assurance-section.alt{background:#efe9dc}
.tvh-assurance-section.dark{background:#082640;color:#fffdf6}
.tvh-assurance-section h2{font-size:clamp(34px,4vw,58px);line-height:1.02;letter-spacing:-.045em;margin:0;color:inherit}
.tvh-assurance-section h2 + .tvh-assurance-intro{margin-top:16px}
.tvh-assurance-intro{max-width:940px;font-size:18px;line-height:1.62;color:rgba(10,42,67,.74)}
.tvh-assurance-section.dark .tvh-assurance-intro{color:rgba(255,253,246,.76)}
.tvh-assurance-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:34px;align-items:start;margin-top:38px}
.tvh-assurance-rail{position:sticky;top:96px;border:1px solid rgba(10,42,67,.14);border-radius:22px;background:rgba(255,255,255,.48);padding:18px;box-shadow:0 18px 45px rgba(9,41,68,.08)}
.tvh-assurance-rail strong{display:block;margin-bottom:8px;font-size:13px;text-transform:uppercase;letter-spacing:.14em;color:#0a2a43}
.tvh-assurance-rail a{display:block;text-decoration:none;color:rgba(10,42,67,.75);border-top:1px solid rgba(10,42,67,.1);padding:12px 0;font-size:14px}
.tvh-assurance-rail a:hover{color:#0a2a43}
.tvh-assurance-blueprint{border:1px solid rgba(255,255,255,.14);border-radius:28px;background:linear-gradient(180deg,#0d3557,#071f36);padding:22px;box-shadow:0 28px 90px rgba(8,38,64,.28);overflow:hidden}
.tvh-assurance-blueprint img{display:block;width:100%;height:auto;border-radius:18px;background:#092944}
.tvh-assurance-blueprint figcaption{font-size:13px;line-height:1.5;color:rgba(255,253,246,.72);margin-top:12px}
.tvh-assurance-blueprint.light{background:#fff;border-color:rgba(10,42,67,.12);box-shadow:0 22px 70px rgba(9,41,68,.12)}
.tvh-assurance-blueprint.light figcaption{color:rgba(10,42,67,.68)}
.tvh-component-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:34px}
.tvh-component-card{border:1px solid rgba(10,42,67,.13);border-radius:24px;background:#fffdf6;padding:24px;box-shadow:0 18px 50px rgba(9,41,68,.08)}
.tvh-component-card .num{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border-radius:50%;background:#0a2a43;color:#fffdf6;font-size:12px;font-weight:800;letter-spacing:.08em;margin-bottom:16px}
.tvh-component-card h3{font-size:22px;margin:0 0 8px;color:#0a2a43;letter-spacing:-.02em}
.tvh-component-card p{margin:0 0 16px;color:rgba(10,42,67,.74);line-height:1.55}
.tvh-component-card ul{margin:0;padding-left:18px;color:rgba(10,42,67,.78);font-size:14px;line-height:1.55}
.tvh-component-card li{margin:6px 0}
.tvh-component-card .output{margin-top:18px;padding-top:14px;border-top:1px solid rgba(10,42,67,.1);font-size:13px;color:#0a2a43}
.tvh-component-card .output b{display:block;text-transform:uppercase;letter-spacing:.12em;font-size:10px;color:rgba(10,42,67,.52);margin-bottom:6px}
.tvh-reliance-banner{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;border:1px solid rgba(255,253,246,.16);border-radius:26px;padding:30px;background:linear-gradient(135deg,rgba(255,255,255,.08),rgba(255,255,255,.03));box-shadow:0 22px 70px rgba(0,0,0,.18);margin-top:34px}
.tvh-reliance-banner h3{font-size:clamp(26px,3vw,42px);line-height:1.05;margin:0;color:#fffdf6}
.tvh-reliance-banner p{margin:10px 0 0;color:rgba(255,253,246,.75);line-height:1.55;max-width:780px}
.tvh-reliance-chain{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end;color:#fffdf6;font-weight:800}
.tvh-reliance-chain span{border:1px solid rgba(255,253,246,.18);border-radius:999px;padding:10px 12px;background:rgba(255,255,255,.07);font-size:12px;letter-spacing:.06em;text-transform:uppercase}
.tvh-control-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:26px}
.tvh-control-card{border:1px solid rgba(255,253,246,.14);border-radius:22px;background:rgba(255,255,255,.06);padding:24px}
.tvh-control-card h3{margin:0 0 8px;color:#fffdf6}
.tvh-control-card p{margin:0;color:rgba(255,253,246,.74);line-height:1.55}
.tvh-reference-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:30px}
.tvh-reference-card{border:1px solid rgba(10,42,67,.12);border-radius:24px;background:#fffdf6;overflow:hidden;box-shadow:0 18px 50px rgba(9,41,68,.08)}
.tvh-reference-card img{display:block;width:100%;height:auto;background:#0a2a43}
.tvh-reference-card figcaption{padding:14px 16px;font-size:13px;line-height:1.45;color:rgba(10,42,67,.68)}
.tvh-fieldtrace-flow{border:1px solid rgba(255,253,246,.15);border-radius:28px;background:linear-gradient(180deg,#0b2f4d,#071f36);padding:28px;margin-top:34px;box-shadow:0 28px 90px rgba(0,0,0,.26)}
.tvh-flow-stage{border:1px solid rgba(193,214,239,.33);border-radius:18px;background:rgba(255,255,255,.055);padding:18px;text-align:center;color:#fffdf6}
.tvh-flow-stage h3{margin:0 0 8px;font-size:20px;letter-spacing:.02em;color:#fffdf6;text-transform:uppercase}
.tvh-flow-stage p{margin:0;color:rgba(255,253,246,.72);font-size:14px;line-height:1.45}
.tvh-flow-row{display:grid;gap:14px;margin:16px 0}
.tvh-flow-row.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.tvh-flow-row.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.tvh-flow-arrow{text-align:center;color:#c7d9ef;font-size:30px;line-height:1;margin:10px 0;text-shadow:0 0 20px rgba(199,217,239,.35)}
.tvh-flow-band{border:1px solid rgba(193,214,239,.34);border-radius:20px;background:rgba(255,255,255,.075);padding:20px;text-align:center;color:#fffdf6}
.tvh-flow-band b{font-size:24px;letter-spacing:.04em;text-transform:uppercase}
.tvh-flow-band span{display:block;margin-top:8px;color:rgba(255,253,246,.72)}
.tvh-assurance-callout{border:1px solid rgba(10,42,67,.12);border-left:4px solid #d6b26a;border-radius:20px;background:#fffdf6;padding:24px;margin-top:28px;box-shadow:0 16px 42px rgba(9,41,68,.07)}
.tvh-assurance-callout h3{margin:0 0 8px;color:#0a2a43}
.tvh-assurance-callout p{margin:0;color:rgba(10,42,67,.74);line-height:1.55}
.tvh-assurance-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.tvh-mini-table{width:100%;border-collapse:collapse;margin-top:26px;background:#fffdf6;border-radius:20px;overflow:hidden;border:1px solid rgba(10,42,67,.12)}
.tvh-mini-table th,.tvh-mini-table td{padding:14px 16px;border-bottom:1px solid rgba(10,42,67,.08);text-align:left;vertical-align:top}
.tvh-mini-table th{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:rgba(10,42,67,.58);background:rgba(10,42,67,.04)}
.tvh-mini-table td{font-size:14px;line-height:1.48;color:rgba(10,42,67,.78)}
.tvh-mini-table tr:last-child td{border-bottom:0}
@media (max-width: 980px){
  .tvh-assurance-lead,.tvh-assurance-layout,.tvh-reliance-banner{grid-template-columns:1fr}
  .tvh-assurance-rail{position:relative;top:auto}
  .tvh-component-grid,.tvh-reference-grid{grid-template-columns:1fr}
  .tvh-assurance-sequence,.tvh-flow-row.three,.tvh-flow-row.two{grid-template-columns:1fr}
  .tvh-reliance-chain{justify-content:flex-start}
}
@media (max-width: 640px){
  .tvh-assurance-hero{padding:74px 0 52px}
  .tvh-assurance-section{padding:52px 0}
  .tvh-assurance-blueprint,.tvh-fieldtrace-flow{padding:14px;border-radius:22px}
  .tvh-component-card,.tvh-control-card{padding:20px}
}
