/* Brand-preserving enterprise editorial layout. Native CSS, not an imitation of a vendor design system.
   Design variance 5 / motion 4 / density 4. Reuse existing films and the cyan brand accent. */
.fw-section { position:relative; padding:88px 5vw; background:#080f16; color:var(--pf-text); scroll-margin-top:90px; }
.fw-section:nth-of-type(2n) { background:#09121a; }
.fw-section [hidden] { display:none !important; }
.fw-wrap { max-width:1240px; margin-inline:auto; }
.fw-heading { max-width:760px; margin-bottom:38px; }
.fw-section .fw-heading h2 { font-size:clamp(27px,2.5vw,38px); line-height:1.35; letter-spacing:-.025em; margin:0 0 16px; text-wrap:balance; font-weight:600; }
.fw-heading > p { margin:0; color:#aebdc5; font-size:16px; line-height:1.9; max-width:64ch; }
.fw-section h3 { font-size:21px; line-height:1.5; font-weight:600; letter-spacing:-.02em; margin:0 0 14px; text-wrap:pretty; }
.fw-section p { text-wrap:pretty; }
.fw-section :is(article,li,figcaption) > p:not([class]) { color:#acbdc6; font-size:15px; line-height:1.9; }
.fw-section a { text-decoration:none; }
.fw-section .fw-link { display:inline-flex; align-items:center; gap:24px; font-size:14px; font-weight:600; color:#9df0ee; line-height:1.5; padding-block:12px; }
.fw-link > span { transition:transform .2s; }
.fw-link:hover > span { transform:translate(3px,-3px); }
.fw-link.is-secondary { color:#b5c5cc; }
.fw-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px 32px; margin-top:24px; }
.fw-actions:empty { display:none; }
.fw-category { font-size:12px; font-weight:500; color:#a6c4cb; margin:0 0 14px; }
.fw-outcomes { display:grid; grid-template-columns:1fr 1fr; gap:0 56px; }
.fw-outcomes article { border-top:1px solid #283840; padding:28px 0 22px; }
.fw-outcomes article:nth-child(2) { border-top-color:#76d9db; }
.fw-outcomes article > p:not([class]) { max-width:43ch; }
.fw-deliverable { border-left:2px solid #68c3c6; padding-left:15px; margin:22px 0 12px; }
.fw-deliverable span { display:block; color:#a3b4bd; font-size:12px; margin-bottom:5px; }
.fw-deliverable strong { color:#dfecee; font-size:14px; font-weight:500; }
.fw-measure { font-size:12px; color:#a3b4bd; margin:0 0 8px; line-height:1.8; }
.fw-demo { border:1px solid #2c424d; border-radius:16px; background:#0c1720; overflow:hidden; box-shadow:0 24px 80px #02080b50; }
.fw-demo-intro { display:flex; flex-wrap:wrap; gap:10px; justify-content:space-between; align-items:center; padding:19px 28px; border-bottom:1px solid #283840; font-size:14px; }
.fw-demo-intro strong { font-size:12px; color:#adbdc4; font-weight:400; }
.fw-demo-layout { display:grid; grid-template-columns:220px minmax(0,1fr); }
.fw-demo:not(.is-enhanced) .fw-demo-layout { display:block; }
.fw-demo-navigation { padding:22px 14px; border-right:1px solid #283840; }
.fw-demo-navigation button { display:flex; align-items:center; gap:14px; width:100%; padding:18px 14px; margin-bottom:6px; border:1px solid transparent; border-radius:8px; background:transparent; text-align:left; color:#adbdc4; font-size:14px; cursor:pointer; }
.fw-demo-navigation button > span:first-child { font-size:11px; font-variant-numeric:tabular-nums; color:#91acb8; }
.fw-demo-navigation button > span:last-child { margin-left:auto; }
.fw-demo-navigation button[aria-selected="true"] { color:#eaffff; background:#163039; border-color:#42717a; }
.fw-demo-navigation button:hover { background:#142832; }
.fw-demo-panels { min-width:0; }
.fw-demo-panels [data-fw-panel] { padding:28px 36px 24px; }
.fw-demo.is-enhanced .fw-demo-panels { min-height:485px; }
.fw-demo-context h3 { font-size:23px; margin-bottom:8px; }
.fw-demo-context p { font-size:14px; color:#aec0ca; line-height:1.8; margin:0 0 24px; }
.fw-output { border:1px solid #304551; background:#111f29; border-radius:10px; padding:20px 24px; }
.fw-output-heading { display:flex; gap:12px; align-items:center; }
.fw-output-heading strong { font-size:14px; font-weight:500; }
.fw-output-heading > span:last-child { color:#a6bbc6; font-size:11px; margin-left:auto; }
.fw-document-glyph { color:#97e9e8; font-size:21px; }
.fw-output-copy { white-space:pre-line; font-size:15px; line-height:1.9; margin:18px 0 24px; color:#e0ebef; }
.fw-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid #304551; gap:18px; padding-top:16px; margin:0; }
.fw-facts dt { font-size:11px; color:#9bb2bd; }
.fw-facts dd { margin:5px 0 0; font-size:12px; line-height:1.8; overflow-wrap:anywhere; }
.fw-demo-boundary { margin:16px 0 0; font-size:12px; color:#a4bac5; line-height:1.9; }
.fw-demo-footer { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 28px; border-top:1px solid #283840; }
.fw-demo-footer p { color:#a8bdc8; font-size:12px; margin:0; }
.fw-demo-footer > div { display:flex; align-items:center; gap:16px; }
.fw-action { display:inline-flex; align-items:center; justify-content:center; gap:20px; background:#8ce7e7; color:#092025; border:1px solid #8ce7e7; border-radius:8px; font-size:13px; font-weight:600; padding:12px 20px; cursor:pointer; white-space:nowrap; }
.fw-action:hover { background:#b1f4f0; }
.fw-plain-button { border:0; background:transparent; color:#b5c7cf; padding:12px 4px; font-size:12px; cursor:pointer; }
.fw-action:active { transform:translateY(1px); }
.fw-evidence { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr); gap:42px; align-items:start; }
.fw-film { margin:0; display:grid; grid-template-columns:minmax(190px,.8fr) minmax(0,1fr); gap:28px; align-items:center; }
.fw-film-player { background:#111b24; border:1px solid #344751; border-radius:12px; overflow:hidden; }
.fw-film video { width:100%; height:auto; aspect-ratio:9/16; object-fit:contain; background:#071016; }
.fw-film figcaption p:last-child { font-size:13px; line-height:1.9; color:#aabac4; }
.fw-evidence-links article { border-top:1px solid #2c3b45; padding:24px 0; }
.fw-evidence-links h3 { font-size:19px; }
.fw-engagement { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px; }
.fw-engagement li { border-top:2px solid #3b616a; padding:22px 0 0; }
.fw-engagement h3 { font-size:18px; }
.fw-participation { color:#c1d2d9; font-size:12px; line-height:1.8; margin:20px 0 8px; }
.fw-takeaway { color:#9bdadd; font-size:12px; line-height:1.8; margin:0; }
.fw-engagement:has(li:nth-child(2):last-child) { grid-template-columns:1fr 1fr; max-width:800px; }
.fw-learning { display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:24px; }
.fw-learning article { padding:28px; border-radius:12px; background:#10212b; border:1px solid #263e49; display:flex; flex-direction:column; align-items:flex-start; }
.fw-learning article:first-child { background:#153238; border-color:#416068; }
.fw-learning article:last-child { background:#131f2d; }
.fw-learning h3 { font-size:19px; }
.fw-learning .fw-link { margin-top:auto; }
.fw-learning .fw-facts { display:block; width:100%; margin:8px 0 16px; }
.fw-learning .fw-facts > div { display:grid; grid-template-columns:32px 1fr; gap:12px; margin-bottom:12px; }
.fw-learning .fw-facts dd { margin:0; }
.fw-learning .fw-takeaway { margin:0 0 16px; }
.fw-learning:has(article[hidden]) { grid-template-columns:minmax(0,640px); }
.fw-learning-filter { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:20px; }
.fw-learning-filter button { min-height:44px; padding:10px 16px; border:1px solid #38525e; border-radius:6px; color:#bdd0d8; background:#0c1a24; cursor:pointer; font:inherit; font-size:13px; }
.fw-learning-filter button[aria-pressed="true"] { border-color:#8ce7e7; background:#18383c; color:#e4ffff; }
.fw-section :is(a,button):focus-visible { outline:2px solid #a3f0ef; outline-offset:4px; }
/* Home-only composition. Other immersive pages retain their scene choreography. */
.pf-page-home:has(.fw-section) { --pf-type-display:clamp(36px,3.6vw,56px); --pf-type-heading:clamp(27px,2.5vw,38px); }
.pf-page-home:has(.fw-section)::before { opacity:.055; }
.pf-page-home:has(.fw-section) .pf-hero { min-height: min(820px,100svh); }
.pf-page-home:has(.fw-section) .pf-hero .pf-scene-content { padding-top:130px; padding-bottom:90px; }
body.pf-page-home:has(.fw-section) #hero h1 { font-size:clamp(36px,3.6vw,54px); line-height:1.35; font-weight:500; letter-spacing:-.025em; }
.pf-page-home:has(.fw-section) .pf-hero .pf-lead { max-width:34em; font-size:16px; line-height:1.9; }
.pf-page-home:has(.fw-section) .pf-hero .pf-eyebrow { font-size:12px; letter-spacing:.05em; }
.pf-page-home:has(.fw-section) .pf-hero .pf-ip-prompt { opacity:.7; }
.pf-page-home:has(.fw-section) #client-problems { min-height:670px; }
.pf-page-home:has(.fw-section) #client-problems .pf-scene-content { padding-top:80px; padding-bottom:80px; }
.pf-page-home:has(.fw-section) #client-problems h2 { font-size:clamp(27px,2.5vw,38px); line-height:1.4; }
.pf-page-home:has(.fw-section) #client-problems h3 { font-size:18px; }
.pf-page-home:has(.fw-section) #client-problems .pf-eyebrow { display:none; }
.pf-page-home:has(.fw-section) #engineering-trust { padding:80px 5vw; background:#080f16; }
.pf-page-home:has(.fw-section) #engineering-trust > header { max-width:1240px; margin-inline:auto; }
.pf-page-home:has(.fw-section) #engineering-trust h2 { font-size:clamp(27px,2.5vw,38px); line-height:1.4; }
.pf-page-home:has(.fw-section) #engineering-trust .pf-editorial-items { max-width:1240px; margin-inline:auto; }
.pf-page-home:has(.fw-section) #delivery-os { background:#10262e; }
.pf-page-home:has(.fw-section) #delivery-os .fw-actions > a:first-child { padding:14px 24px; background:#92e9e8; border-radius:8px; color:#0d272c; }
/* These keys previously held full-screen IP scenes. Clear their legacy grid tracks. */
body.pf-enterprise-site.pf-page-home #main > :is(#typical-scenarios,#delivery-os,#enterprise-overview).fw-section,
body.pf-enterprise-site.pf-page-home:has(.fw-section) #main > #engineering-trust {
  display:block; min-height:0; grid-template-rows:none; padding:88px 5vw;
}
@media(max-width:767px) {
  body.pf-enterprise-site.pf-page-home #main > :is(#typical-scenarios,#delivery-os,#enterprise-overview).fw-section,
  body.pf-enterprise-site.pf-page-home:has(.fw-section) #main > #engineering-trust { padding:48px 22px; }
}
@media (prefers-reduced-motion:no-preference) {
  .fw-demo.is-enhanced [data-fw-panel]:not([hidden]) { animation:fw-panel-in .24s ease-out; }
  @keyframes fw-panel-in { from {opacity:.35;transform:translateY(6px)} to {opacity:1;transform:none} }
}
body.is-motion-paused .fw-demo [data-fw-panel] { animation:none; }
@media(max-width:1000px) {
  .fw-section { padding:64px 5vw; }
  .fw-evidence { grid-template-columns:1fr; }
  .fw-evidence-links { display:grid; grid-template-columns:1fr 1fr; gap:32px; }
  .fw-film { grid-template-columns:minmax(190px,280px) minmax(0,1fr); }
  .fw-engagement { grid-template-columns:1fr 1fr; }
  .fw-learning { grid-template-columns:1fr; }
}
@media(max-width:767px) {
  .fw-section { padding:48px 22px; }
  .fw-heading { margin-bottom:28px; }
  .fw-heading > p { font-size:14px; line-height:1.85; }
  .fw-section .fw-heading h2 { font-size:27px; }
  .fw-outcomes { grid-template-columns:1fr; }
  .fw-outcomes article { padding:25px 0; }
  .fw-demo-intro { padding:16px; gap:5px; }
  .fw-demo-intro > span { font-size:13px; }
  .fw-demo-layout { grid-template-columns:1fr; }
  .fw-demo-navigation { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; padding:12px; border-right:0; border-bottom:1px solid #283840; }
  .fw-demo-navigation button { margin:0; padding:10px 6px; min-height:44px; justify-content:center; font-size:12px; gap:5px; }
  .fw-demo-navigation button > span { display:none; }
  .fw-demo-panels [data-fw-panel] { padding:24px 16px; }
  .fw-demo.is-enhanced .fw-demo-panels { min-height:565px; }
  .fw-demo-context h3 { font-size:21px; }
  .fw-output { padding:16px; }
  .fw-output-copy { font-size:14px; }
  .fw-facts { grid-template-columns:1fr; gap:8px; }
  .fw-facts > div { display:grid; grid-template-columns:70px minmax(0,1fr); gap:10px; }
  .fw-facts dd { margin:0; }
  .fw-demo-footer { align-items:flex-start; flex-direction:column; padding:14px 16px; gap:6px; }
  .fw-demo-footer > div { justify-content:space-between; width:100%; }
  .fw-film { grid-template-columns:1fr; }
  .fw-film-player { width:min(100%,260px); margin-inline:auto; }
  .fw-evidence-links { grid-template-columns:1fr; gap:0; }
  .fw-evidence { gap:14px; }
  .fw-engagement { grid-template-columns:1fr; gap:28px; }
  .fw-engagement:has(li:nth-child(2):last-child) { grid-template-columns:1fr; }
  .fw-learning article { padding:24px; }
  .fw-actions { margin-top:18px; }
  .pf-page-home:has(.fw-section) .pf-hero { min-height:720px; min-height: min(820px,100svh); }
  .pf-page-home:has(.fw-section) .pf-hero .pf-scene-content { padding:110px 22px 54px; }
  body.pf-page-home:has(.fw-section) #hero h1 { font-size:clamp(30px,7.8vw,36px); }
  .pf-page-home:has(.fw-section) .pf-hero .pf-lead { font-size:14px; max-width:29em; }
  body.pf-page-home:has(.fw-section) #hero .pf-ip-prompt { display:block; position:absolute; width:1px; height:1px; clip-path:inset(50%); overflow:hidden; white-space:nowrap; padding:0; border:0; }
  .pf-page-home:has(.fw-section) #client-problems { min-height:auto; }
  .pf-page-home:has(.fw-section) #client-problems .pf-scene-content { padding:48px 22px; }
  body.pf-page-home:has(.fw-section) #client-problems .pf-scene-heading h2 { max-width:none; width:100%; text-wrap:pretty; }
  .pf-page-home:has(.fw-section) #engineering-trust { padding:48px 22px; }
}
