/* Context Store & Context Assembly — isolated Frozion page components. */
:root { --cs-nav-height: 66px; }
.cs-hero { padding:32px 0 0; background: radial-gradient(ellipse at 88% 20%,#f2f1ff 0,#f8fafa 32%,#ffffff 68%); }
.cs-breadcrumb { display:flex; flex-wrap:wrap; gap:8px 16px; font-size:12px; margin-bottom:56px; color:#626a70; }
.cs-breadcrumb a { color:inherit; }
.cs-hero h1 { font-size:clamp(3rem,5.05vw,4.5rem); margin:24px 0 24px; }
.cs-hero-lead { font-size:20px; line-height:1.65; max-width:610px; color:#424a50; }
.cs-hero-support { font-size:14px; line-height:1.85; max-width:600px; }
.cs-foundation { margin-top:64px; border-top:1px solid var(--line); padding:24px 0 32px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px 24px; font-size:12px; }
.cs-foundation > span { color:#626a70; }
.cs-foundation strong { font-weight:500; }
.cs-cover { background:#ffffff; border:1px solid #e1ddff; border-radius:15px; box-shadow:0 22px 65px #2f1d990d; overflow:hidden; }
.cs-cover figcaption { padding:16px 24px; display:flex; justify-content:space-between; gap:16px; font-size:12px; letter-spacing:.8px; color:#626a70; border-bottom:1px solid var(--line); background:#f8fafa; }
.cs-cover figcaption span:last-child { letter-spacing:0; }
.cs-cover-scope { padding:16px 24px; font-size:12px; color:#626a70; border-bottom:1px solid var(--line); }
.cs-cover-inputs { padding:8px 24px; }
.cs-cover-row { display:grid; grid-template-columns:30px 1fr auto; gap:16px; align-items:center; padding:16px 0; border-bottom:1px solid #f2f1ff; font-size:12px; }
.cs-cover-row:last-child { border:0; }
.cs-cover-icon { display:grid; place-items:center; width:30px; height:30px; border:1px solid #e1ddff; border-radius:7px; color:#4128cc; background:#f2f1ff; font-size:12px; }
.cs-cover-row strong { display:block; color:#4128cc; font-size:12px; font-weight:500; }
.cs-cover-row small { display:block; margin-top:3px; color:#626a70; font-size:12px; }
.cs-cover-row > span:last-child { color:#626a70; font-size:12px; }
.cs-cover-package { margin:8px 24px 24px; border:1px solid #e1ddff; background:#f2f1ff; border-radius:8px; padding:16px; display:flex; justify-content:space-between; gap:16px; align-items:center; }
.cs-cover-package strong { display:block; color:#1f1266; font-size:14px; font-weight:500; }
.cs-cover-package small { font-size:12px; color:#626a70; }
.cs-cover-consumers { background:#f8fafa; border-top:1px solid var(--line); display:grid; grid-template-columns:repeat(3,1fr); text-align:center; padding:16px 8px; font-size:12px; color:#4128cc; }
.cs-cover-consumers span { border-right:1px solid #e1ddff; }
.cs-cover-consumers span:last-child { border:0; }
.cs-nav { position:sticky; top:var(--header-height); z-index:1020; background:#ffffff; border-block:1px solid var(--line); box-shadow:0 5px 12px #120a3d04; }
.cs-nav-links { display:grid; grid-template-columns:repeat(5,1fr); }
.cs-nav-links a { display:flex; gap:8px; align-items:center; min-height:66px; padding:16px 16px; font-size:12px; color:#626a70; border-bottom:3px solid transparent; }
.cs-nav-links a span { font-size:12px; color:#626a70; }
.cs-nav-links a.active { color:var(--brand); border-color:var(--brand); background:linear-gradient(0deg,#f2f1ff,transparent); }
.cs-nav-links a:hover { color:var(--brand); background-color:#f8fafa; }
.cs-nav-mobile { display:none; padding:16px 0; }
.cs-section { padding:96px 0; scroll-margin-top:calc(var(--header-height) + var(--cs-nav-height) + 22px); }
.cs-section h2 { font-size:clamp(2rem,3.35vw,3rem); }
.cs-section h3 { font-size:20px; }
.cs-section p { font-size:14px; line-height:1.85; }
.cs-section .lead-copy { font-size:20px; line-height:1.65; }
.cs-wash { background:#f8fafa; }
.cs-heading { margin-bottom:48px; }
.cs-label { display:block; font-size:12px; font-weight:600; letter-spacing:1px; text-transform:uppercase; color:#626a70; }
.cs-note { font-size:12px !important; line-height:1.75 !important; color:#626a70; margin-top:16px; }
.cs-subsection { margin-top:64px; padding-top:48px; border-top:1px solid var(--line); }
.cs-responsibilities { display:grid; grid-template-columns:1fr 1fr; border:1px solid var(--line); border-radius:12px; overflow:hidden; margin:40px 0; }
.cs-responsibilities > div { padding:32px 32px; }
.cs-responsibilities > div:last-child { border-left:1px solid var(--line); background:#f2f1ff; }
.cs-responsibilities h3 { margin:16px 0 16px; }
.cs-responsibilities p { font-size:14px; margin:0; }
.cs-roles { display:grid; grid-template-columns:repeat(4,1fr); gap:32px 32px; margin-top:32px; }
.cs-role { border-top:1px solid var(--line); padding-top:16px; }
.cs-role span { font-size:12px; color:#626a70; }
.cs-role h3 { font-size:16px; margin:8px 0; }
.cs-role p { font-size:12px; margin:0; }
.cs-badge { display:inline-flex; align-items:center; font-size:12px; font-weight:500; background:#eef1f2; color:#007260; border:1px solid #e6fffa; border-radius:5px; padding:4px 8px; line-height:1.5; white-space:nowrap; }
.cs-badge.is-warning { background:#fff9e6; border-color:#fff0bf; color:#664200; }
.cs-badge.is-denied { background:#ffecee; border-color:#ffd2d7; color:#701024; }
.cs-badge.is-neutral { background:#f2f1ff; border-color:#e1ddff; color:#626a70; }
.cs-demo { background:#ffffff; border:1px solid #e1ddff; border-radius:14px; overflow:hidden; box-shadow:0 16px 55px #2f1d9907; }
.cs-demo-toolbar { display:flex; justify-content:space-between; gap:24px; align-items:center; padding:24px 24px; background:#f2f1ff; border-bottom:1px solid var(--line); }
.cs-demo-toolbar h3 { font-size:16px; margin:6px 0 0; }
.cs-demo-toolbar .form-select { font-size:12px; min-width:230px; border-color:#e1ddff; background-color:#ffffff; }
.cs-demo-toolbar label { font-size:12px; display:block; margin-bottom:5px; color:#626a70; }
.cs-demo-scope { display:flex; gap:8px 24px; flex-wrap:wrap; padding:16px 24px; border-bottom:1px solid var(--line); font-size:12px; }
.cs-demo-body { padding:24px; }
.cs-inputs { border:1px solid var(--line); border-radius:9px; overflow:hidden; }
.cs-input { display:grid; grid-template-columns:180px 1fr 108px; gap:24px; padding:16px 24px; border-bottom:1px solid var(--line); align-items:center; }
.cs-input:last-child { border:0; }
.cs-input-title strong { display:block; font-size:12px; font-weight:500; }
.cs-input-title small { display:block; font-size:12px; margin-top:4px; color:#626a70; }
.cs-input-detail { font-size:12px; line-height:1.75; }
.cs-input-state { justify-self:end; }
.cs-trust-note { display:flex; gap:16px; margin:16px 0 0; font-size:12px !important; color:#626a70; }
.cs-gate { margin-top:24px; padding:24px; border:1px solid #e1ddff; border-left:3px solid var(--brand); background:#f2f1ff; border-radius:7px; }
.cs-gate.is-warning { background:#ffffff; border-color:#fff0bf; border-left-color:#996500; }
.cs-gate.is-denied { background:#f8fafa; border-color:#ffd2d7; border-left-color:#701024; }
.cs-gate-head { display:flex; align-items:center; gap:16px 16px; flex-wrap:wrap; margin-bottom:16px; }
.cs-gate-head h4 { font-size:16px; margin:0; }
.cs-gate p { font-size:12px; line-height:1.75; margin:0; }
.cs-gate-bottom { display:flex; align-items:center; gap:16px 24px; flex-wrap:wrap; margin-top:16px; }
.cs-gate-bottom small { font-size:12px; }
.cs-gate .btn { font-size:12px; }
.cs-package-heading { display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; padding:32px 0 16px; font-size:12px; color:#4128cc; }
.cs-package-heading strong { color:#1f1266; }
.cs-consumers { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border:1px solid var(--line); border-radius:9px; overflow:hidden; }
.cs-consumer { padding:24px; border-right:1px solid var(--line); }
.cs-consumer:last-child { border:0; }
.cs-consumer h4 { font-size:16px; margin:8px 0 16px; }
.cs-consumer p { font-size:12px; margin:0; }
.cs-consumer small { display:block; padding-top:16px; font-size:12px; color:#626a70; }
.cs-evidence-toggle { color:var(--brand); font-size:12px; padding:16px 0 0; background:transparent; border:0; font-weight:500; text-align:left; }
.cs-evidence-toggle::after { content:' +'; }
.cs-evidence-toggle[aria-expanded=true]::after { content:' −'; }
.cs-record { background:#f8fafa; padding:16px; margin-top:16px; border:1px solid var(--line); border-radius:7px; }
.cs-record dl { margin:0; }
.cs-record dl > div { display:grid; grid-template-columns:125px 1fr; gap:16px; padding:8px 0; border-bottom:1px solid var(--line); }
.cs-record dl > div:last-child { border:0; }
.cs-record dt { font-weight:500; color:#4128cc; font-size:12px; }
.cs-record dd { font-size:12px; margin:0; line-height:1.8; overflow-wrap:anywhere; }
.cs-demo-footer { background:#f8fafa; border-top:1px solid var(--line); padding:16px 24px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px 16px; font-size:12px; color:#626a70; }
.cs-reset { background:none; border:0; color:var(--brand); font-size:12px; padding:0; text-decoration:underline; text-underline-offset:3px; }
.cs-outcomes { display:grid; grid-template-columns:repeat(5,1fr); border-block:1px solid var(--line); margin-top:40px; }
.cs-outcomes > div { padding:24px 16px; border-right:1px solid var(--line); }
.cs-outcomes > div:first-child { padding-left:0; }
.cs-outcomes > div:last-child { padding-right:0; border:0; }
.cs-outcomes h3 { font-size:16px; letter-spacing:.01em; color:#4128cc; margin:0 0 16px; }
.cs-outcomes p { font-size:12px; margin:0; }
.cs-check-list { padding:0; list-style:none; }
.cs-check-list li { position:relative; padding:8px 0 8px 24px; border-bottom:1px solid var(--line); font-size:14px; }
.cs-check-list li::before { content:'✓'; position:absolute; left:0; color:var(--brand); font-size:12px; }
.cs-callout { border-left:3px solid #beb6ff; padding:7px 0 7px 24px; margin-top:24px; }
.cs-callout p { font-size:14px; margin:0; }
.cs-store-list { margin:0; border:1px solid var(--line); border-radius:10px; overflow:hidden; }
.cs-store-list > div { padding:24px 24px; display:grid; grid-template-columns:140px 1fr; gap:16px; border-bottom:1px solid var(--line); }
.cs-store-list > div:last-child { border:0; }
.cs-store-list dt { font-weight:500; color:#4128cc; font-size:12px; }
.cs-store-list dd { font-size:12px; margin:0; line-height:1.8; }
.cs-related { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--line); border-radius:12px; margin-top:40px; overflow:hidden; }
.cs-related a { padding:24px; border-right:1px solid var(--line); color:var(--body); }
.cs-related a:last-child { border:0; }
.cs-related a:hover { background:#f2f1ff; }
.cs-related strong { display:block; font-size:16px; margin-bottom:16px; }
.cs-related span { font-size:12px; line-height:1.7; display:block; }
.cs-related b { display:block; margin-top:16px; font-size:12px; font-weight:500; color:var(--brand); }
.cs-download { margin-top:24px; font-size:12px !important; }
@media (max-width:991px) {
  .cs-breadcrumb { margin-bottom:32px; }
  .cs-hero h1 { font-size:clamp(3rem,7vw,4.5rem); }
  .cs-cover { max-width:620px; }
  .cs-foundation { margin-top:48px; }
  .cs-section { padding:64px 0; }
  .cs-nav-links { display:none; }
  .cs-nav-mobile { display:flex; align-items:center; gap:16px; }
  .cs-nav-mobile label { font-size:12px; white-space:nowrap; }
  .cs-nav-mobile select { font-size:12px; }
  .cs-roles { grid-template-columns:repeat(2,1fr); }
  .cs-outcomes { grid-template-columns:repeat(3,1fr); border-bottom:0; }
  .cs-outcomes > div { padding:24px !important; border-bottom:1px solid var(--line) !important; }
  .cs-input { grid-template-columns:150px 1fr 100px; gap:16px; }
  .navbar-collapse.show { max-height:calc(100svh - 90px); overflow-y:auto; }
}
@media (max-width:767px) {
  .cs-hero h1 { font-size:3rem; }
  .cs-hero-lead { font-size:16px; }
  .cs-cover figcaption { font-size:12px; }
  .cs-cover-row { grid-template-columns:26px 1fr auto; gap:8px; }
  .cs-cover-icon { width:26px; height:26px; }
  .cs-foundation { display:grid; grid-template-columns:1fr 1fr; gap:16px; font-size:12px; }
  .cs-foundation > span { grid-column:1/-1; }
  .cs-responsibilities,.cs-consumers,.cs-related { grid-template-columns:1fr; }
  .cs-responsibilities > div { padding:24px; }
  .cs-responsibilities > div:last-child { border-left:0; border-top:1px solid var(--line); }
  .cs-demo-toolbar { flex-direction:column; align-items:stretch; padding:24px 16px; gap:16px; }
  .cs-demo-toolbar .form-select { min-width:0; }
  .cs-demo-scope { padding:16px 16px; }
  .cs-demo-body { padding:24px 16px; }
  .cs-input { grid-template-columns:1fr auto; gap:16px; padding:16px 16px; }
  .cs-input-detail { grid-row:2; grid-column:1/-1; }
  .cs-input-state { grid-row:1; grid-column:2; }
  .cs-trust-note { flex-direction:column; gap:4px; }
  .cs-gate { padding:16px; }
  .cs-gate-head { align-items:flex-start; }
  .cs-gate-head h4 { font-size:16px; }
  .cs-gate .btn { white-space:normal; text-align:center; }
  .cs-consumer { padding:24px; border-right:0; border-bottom:1px solid var(--line); }
  .cs-demo-footer { padding:16px 16px; }
  .cs-record dl > div,.cs-store-list > div { grid-template-columns:1fr; gap:5px; }
  .cs-outcomes { grid-template-columns:1fr; }
  .cs-outcomes > div { padding:16px 0 !important; border-right:0; }
  .cs-subsection { margin-top:48px; padding-top:40px; }
  .cs-related a { border-right:0; border-bottom:1px solid var(--line); }
}
@media (max-width:375px) { .cs-hero h1 { font-size:2.5rem; } .cs-roles { grid-template-columns:1fr; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
@media print { .cs-nav,.cs-demo-toolbar select,.cs-reset,#cs-resolve { display:none !important; } .cs-section { padding:32px 0; } .cs-hero { background:#ffffff; } }
