/*
 * Scoped styles for the product detail pages (LPF EA, and future product pages).
 * Every selector is prefixed `.fv-shell.fv-product` so it never affects the home
 * or governance pages, which share the `.fv-shell` namespace. The variables and
 * base styles (.wrap, .crumb, .eyebrow, .hero, .section-head, .gov-link) come
 * from revamp-home.css; only the deltas and the product-only blocks live here.
 */

/* ===== Hero (tighter than the home hero) ===== */
.fv-shell.fv-product .hero{padding:56px 0 64px;}
.fv-shell.fv-product h1{font-size:44px; line-height:1.16; letter-spacing:-0.01em; margin-bottom:22px;}
.fv-shell.fv-product h1 em{font-style:normal; color:var(--fv-accent); font-weight:600;}
.fv-shell.fv-product .hero-kicker{font-family:var(--fv-mono); font-size:13px; color:var(--fv-ink-soft); margin-bottom:16px;}
.fv-shell.fv-product .hero-sub{font-size:17px; margin-bottom:32px;}
.fv-shell.fv-product .hero-meta{display:flex; gap:32px; flex-wrap:wrap;}
.fv-shell.fv-product .hero-meta div{font-size:13px; color:var(--fv-ink-soft);}
.fv-shell.fv-product .hero-meta strong{display:block; font-family:var(--fv-serif); font-size:15px; color:var(--fv-ink); font-weight:600;}

/* ===== Section rhythm (72px vs the home 80px) ===== */
.fv-shell.fv-product section{padding:72px 0;}
.fv-shell.fv-product .section-head{max-width:620px; margin-bottom:44px;}
.fv-shell.fv-product .section-head h2{font-size:28px; margin-bottom:12px;}
.fv-shell.fv-product .section-head p{font-size:15px;}

/* ===== Lifecycle diagram ===== */
.fv-shell.fv-product .lifecycle{margin-top:56px;}
.fv-shell.fv-product .lifecycle-label{font-family:var(--fv-mono); font-size:11px; letter-spacing:0.05em; text-transform:uppercase; color:var(--fv-ink-soft); margin-bottom:18px;}
.fv-shell.fv-product .lifecycle-svg-wrap{max-width:560px; margin:0 auto;}
.fv-shell.fv-product .lc-svg-caption{font-size:13.5px; color:var(--fv-ink-soft); line-height:1.6; max-width:520px; margin:20px auto 0; text-align:center;}
.fv-shell.fv-product .lc-svg-caption strong{color:var(--fv-ink); font-weight:600;}

/* ===== Win-win explainer (dark band) ===== */
.fv-shell.fv-product .winwin{background:var(--fv-ink); color:var(--fv-paper);}
.fv-shell.fv-product .winwin .section-head h2{color:var(--fv-paper);}
.fv-shell.fv-product .winwin .section-head p{color:#A9BBCB;}
.fv-shell.fv-product .winwin .eyebrow{color:var(--fv-accent);}
.fv-shell.fv-product .ww-split{display:grid; grid-template-columns:1fr 1fr; border:1px solid rgba(255,255,255,0.14);}
.fv-shell.fv-product .ww-col{padding:28px 32px;}
.fv-shell.fv-product .ww-col:first-child{border-right:1px solid rgba(255,255,255,0.14);}
.fv-shell.fv-product .ww-col h3{font-family:var(--fv-mono); font-size:12px; letter-spacing:0.06em; text-transform:uppercase; color:var(--fv-accent); margin-bottom:16px;}
.fv-shell.fv-product .ww-col p{font-size:14.5px; color:#C3D2DE; line-height:1.65;}

/* ===== Stage grid ===== */
.fv-shell.fv-product .stage-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.fv-shell.fv-product .stage-card{background:var(--fv-card); border:1px solid var(--fv-rule); border-radius:6px; padding:26px;}
.fv-shell.fv-product .stage-num{font-family:var(--fv-mono); font-size:12px; color:var(--fv-accent); font-weight:600; display:block; margin-bottom:8px;}
.fv-shell.fv-product .stage-card h3{font-family:var(--fv-serif); font-size:18px; font-weight:600; margin-bottom:16px; letter-spacing:-0.005em;}
.fv-shell.fv-product .stage-block{margin-bottom:16px;}
.fv-shell.fv-product .stage-label{font-family:var(--fv-mono); font-size:10px; letter-spacing:0.05em; text-transform:uppercase; color:var(--fv-ink-soft); display:block; margin-bottom:4px;}
.fv-shell.fv-product .stage-block p{font-size:13.5px; color:var(--fv-ink-soft); line-height:1.55;}
.fv-shell.fv-product .stage-outcomes{display:grid; grid-template-columns:1fr 1fr; gap:14px; padding-top:14px; border-top:1px solid var(--fv-paper-line);}
.fv-shell.fv-product .stage-outcomes p{font-size:12.5px; color:var(--fv-ink); font-weight:500; line-height:1.45;}

/* ===== Contact band (dark, centred) ===== */
.fv-shell.fv-product .contact-band{background:var(--fv-ink); color:#fff; text-align:center; padding:72px 0;}
.fv-shell.fv-product .contact-band .eyebrow{color:#6FB6E0; justify-content:center;}
.fv-shell.fv-product .contact-band h2{font-family:var(--fv-serif); font-size:30px; font-weight:600; margin-bottom:14px; letter-spacing:-0.01em;}
.fv-shell.fv-product .contact-band p{font-size:15px; color:#B9C6D4; max-width:520px; margin:0 auto 28px; line-height:1.65;}
.fv-shell.fv-product .contact-open-btn{
  display:inline-block; background:var(--fv-accent); color:#fff; font-size:14px; font-weight:600;
  padding:14px 34px; border-radius:4px; border:none; cursor:pointer; transition:background 0.15s;
}
.fv-shell.fv-product .contact-open-btn:hover{background:var(--fv-accent-dark);}

/* ===== Governance recap ===== */
.fv-shell.fv-product .gov-recap{background:var(--fv-paper);}
.fv-shell.fv-product .gov-recap-list{list-style:none; display:grid; grid-template-columns:repeat(2,1fr); gap:24px 40px;}
.fv-shell.fv-product .gov-recap-list li{border-top:1px solid var(--fv-rule); padding-top:16px;}
.fv-shell.fv-product .gov-recap-list li:last-child{grid-column:1 / -1;}
.fv-shell.fv-product .gov-recap-list strong{display:block; font-size:14.5px; font-weight:600; margin-bottom:6px;}
.fv-shell.fv-product .gov-recap-list span{font-size:13px; color:var(--fv-ink-soft); line-height:1.55;}
.fv-shell.fv-product .gov-link{margin-top:28px;}

/* ===== mSignal — flagship badge ===== */
.fv-shell.fv-product .flagship-badge{
  display:inline-flex; align-items:center; gap:8px; font-family:var(--fv-mono); font-size:11.5px;
  letter-spacing:0.04em; color:#8A5A0F; background:#FDF2E0; border:1px solid #F0DBA8;
  padding:6px 14px; border-radius:20px; margin-bottom:22px; font-weight:600;
}
.fv-shell.fv-product .flagship-badge::before{content:'\25CF'; font-size:8px; color:#C87F1C;}

/* ===== mSignal — module overview table (dark band) ===== */
.fv-shell.fv-product .overview{background:var(--fv-ink); color:var(--fv-paper);}
.fv-shell.fv-product .overview .section-head h2{color:var(--fv-paper);}
.fv-shell.fv-product .overview .section-head p{color:#A9BBCB;}
.fv-shell.fv-product .overview .eyebrow{color:var(--fv-accent);}
.fv-shell.fv-product .ov-table{width:100%; border-collapse:collapse; border:1px solid rgba(255,255,255,0.14);}
.fv-shell.fv-product .ov-table th{
  text-align:left; font-family:var(--fv-mono); font-size:10.5px; letter-spacing:0.05em; text-transform:uppercase;
  color:#8598AB; padding:14px 18px; border-bottom:1px solid rgba(255,255,255,0.14); font-weight:500;
}
.fv-shell.fv-product .ov-table td{padding:14px 18px; border-bottom:1px solid rgba(255,255,255,0.1); font-size:13.5px; vertical-align:top;}
.fv-shell.fv-product .ov-table tr:last-child td{border-bottom:none;}
.fv-shell.fv-product .ov-table td:first-child{font-weight:500; width:22%;}
.fv-shell.fv-product .ov-table td:nth-child(2){color:#C3D2DE; width:53%;}
.fv-shell.fv-product .ov-table .office-tag{
  font-family:var(--fv-mono); font-size:10.5px; letter-spacing:0.04em; text-transform:uppercase;
  color:var(--fv-accent); white-space:nowrap;
}

/* ===== mSignal — control diagram ===== */
.fv-shell.fv-product .control-diagram{margin:8px 0 48px;}
.fv-shell.fv-product .control-svg-wrap{max-width:520px; margin:0 auto;}
.fv-shell.fv-product .control-caption{font-size:13.5px; color:var(--fv-ink-soft); line-height:1.6; max-width:560px; margin:20px auto 0; text-align:center;}
.fv-shell.fv-product .control-caption strong{color:var(--fv-ink); font-weight:600;}

/* ===== mSignal — outcome grid ===== */
.fv-shell.fv-product .outcome-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:20px;}
.fv-shell.fv-product .outcome-card{background:var(--fv-card); border:1px solid var(--fv-rule); border-radius:6px; padding:26px;}
.fv-shell.fv-product .outcome-card .om-tag{font-family:var(--fv-mono); font-size:11px; color:var(--fv-accent); font-weight:600; display:block; margin-bottom:6px;}
.fv-shell.fv-product .outcome-card h3{font-family:var(--fv-serif); font-size:19px; font-weight:600; margin-bottom:14px; letter-spacing:-0.005em;}
.fv-shell.fv-product .outcome-card .om-outcome{font-size:14px; color:var(--fv-ink); line-height:1.55; margin-bottom:18px; padding-bottom:18px; border-bottom:1px solid var(--fv-paper-line);}
.fv-shell.fv-product .om-io{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.fv-shell.fv-product .om-io-label{font-family:var(--fv-mono); font-size:10px; letter-spacing:0.05em; text-transform:uppercase; color:var(--fv-ink-soft); display:block; margin-bottom:4px;}
.fv-shell.fv-product .om-io p{font-size:13px; color:var(--fv-ink-soft); line-height:1.5;}

/* ===== mSignal — autonomy control ===== */
.fv-shell.fv-product .autonomy{background:var(--fv-paper);}
.fv-shell.fv-product .autonomy-card{border:1px solid var(--fv-rule); background:var(--fv-card); padding:36px;}
.fv-shell.fv-product .autonomy-card > p{font-size:14.5px; color:var(--fv-ink-soft); max-width:700px; line-height:1.65; margin-bottom:28px;}
.fv-shell.fv-product .autonomy-scale{display:flex; border:1px solid var(--fv-rule); margin-bottom:28px;}
.fv-shell.fv-product .autonomy-band{flex:1; padding:16px 18px; border-right:1px solid var(--fv-rule);}
.fv-shell.fv-product .autonomy-band:last-child{border-right:none;}
.fv-shell.fv-product .autonomy-band .range{font-family:var(--fv-mono); font-size:11px; color:var(--fv-accent); margin-bottom:6px; font-weight:600;}
.fv-shell.fv-product .autonomy-band .label{font-size:12.5px; color:var(--fv-ink-soft); line-height:1.5;}
.fv-shell.fv-product .safeguard{
  background:rgba(184,118,59,0.08); border:1px solid rgba(184,118,59,0.25);
  padding:20px 24px; border-radius:2px;
}
.fv-shell.fv-product .safeguard strong{display:block; font-size:14px; margin-bottom:6px;}
.fv-shell.fv-product .safeguard p{font-size:13.5px; color:var(--fv-ink-soft); line-height:1.6;}

/* ===== mSignal — lifecycle modules ===== */
.fv-shell.fv-product .lifecycle-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--fv-rule); border:1px solid var(--fv-rule);}
.fv-shell.fv-product .lc-card{background:var(--fv-card); padding:28px;}
.fv-shell.fv-product .lc-card .office-tag{font-family:var(--fv-mono); font-size:10.5px; text-transform:uppercase; letter-spacing:0.04em; color:var(--fv-accent); display:block; margin-bottom:10px;}
.fv-shell.fv-product .lc-card h3{font-family:var(--fv-serif); font-size:18px; font-weight:600; margin-bottom:10px;}
.fv-shell.fv-product .lc-card p.lc-intro{font-size:13px; color:var(--fv-ink-soft); margin-bottom:16px; line-height:1.55;}

/* ===== mSignal — governance recap list ===== */
.fv-shell.fv-product .sig-gov-list{list-style:none; display:grid; grid-template-columns:repeat(2,1fr); gap:24px 40px;}
.fv-shell.fv-product .sig-gov-list li{border-top:1px solid var(--fv-rule); padding-top:16px;}
.fv-shell.fv-product .sig-gov-list strong{display:block; font-size:14.5px; font-weight:600; margin-bottom:6px;}
.fv-shell.fv-product .sig-gov-list span{font-size:13px; color:var(--fv-ink-soft); line-height:1.55;}

/* ===== aFA Agent — who it's for (dark band) ===== */
.fv-shell.fv-product .who{background:var(--fv-ink); color:var(--fv-paper);}
.fv-shell.fv-product .who .section-head h2{color:var(--fv-paper);}
.fv-shell.fv-product .who .section-head p{color:#A9BBCB;}
.fv-shell.fv-product .who .eyebrow{color:var(--fv-accent);}
.fv-shell.fv-product .scope-note{
  font-family:var(--fv-mono); font-size:12.5px; color:#6FB6E0; background:rgba(7,104,159,0.18);
  display:inline-block; padding:6px 12px; border-radius:4px; margin-bottom:14px; font-weight:600;
}
.fv-shell.fv-product .who-card{border:1px solid rgba(255,255,255,0.14); padding:32px;}
.fv-shell.fv-product .who-card .tier-badge{
  font-family:var(--fv-mono); font-size:10px; letter-spacing:0.05em; text-transform:uppercase;
  padding:4px 9px; border-radius:2px; font-weight:600; background:#E4EEE7; color:#4A7A5E;
  display:inline-block; margin-bottom:16px;
}
.fv-shell.fv-product .who-card h3{font-family:var(--fv-serif); font-size:20px; font-weight:600; margin-bottom:6px;}
.fv-shell.fv-product .who-card .tier-users{font-size:13px; color:var(--fv-accent); margin-bottom:16px; font-weight:500;}
.fv-shell.fv-product .who-card p{font-size:14.5px; color:#C3D2DE; line-height:1.65; margin-bottom:20px;}
.fv-shell.fv-product .who-stats{display:flex; gap:40px;}
.fv-shell.fv-product .tier-stat{font-family:var(--fv-serif); font-size:26px; font-weight:600; margin-bottom:4px;}
.fv-shell.fv-product .tier-stat-note{font-size:11.5px; color:#8598AB; font-family:var(--fv-mono);}

/* ===== aFA Agent — design principles ===== */
.fv-shell.fv-product .principles-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--fv-rule); border:1px solid var(--fv-rule);}
.fv-shell.fv-product .principle-card{background:var(--fv-card); padding:26px;}
.fv-shell.fv-product .principle-num{font-family:var(--fv-mono); font-size:12px; color:var(--fv-accent); display:block; margin-bottom:12px;}
.fv-shell.fv-product .principle-card h3{font-family:var(--fv-serif); font-size:16.5px; font-weight:600; margin-bottom:8px;}
.fv-shell.fv-product .principle-card p{font-size:13px; color:var(--fv-ink-soft); line-height:1.6;}

/* ===== aFA Agent — capability modules ===== */
.fv-shell.fv-product .mod-group{margin-bottom:52px;}
.fv-shell.fv-product .mod-group:last-child{margin-bottom:0;}
.fv-shell.fv-product .mod-group-head{display:flex; align-items:center; gap:12px; margin-bottom:20px;}
.fv-shell.fv-product .mod-group-head h3{font-family:var(--fv-serif); font-size:19px; font-weight:600;}
.fv-shell.fv-product .mod-list{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--fv-rule); border:1px solid var(--fv-rule);}
.fv-shell.fv-product .mod-list.cols-3{grid-template-columns:repeat(3,1fr);}
.fv-shell.fv-product .mod-item{background:var(--fv-card); padding:18px 22px;}
.fv-shell.fv-product .mod-item .tag{font-family:var(--fv-mono); font-size:11px; color:var(--fv-accent); margin-right:8px; font-weight:500;}
.fv-shell.fv-product .mod-item .name{font-weight:500; font-size:14px;}
.fv-shell.fv-product .mod-item p{font-size:12.5px; color:var(--fv-ink-soft); margin-top:6px; line-height:1.55;}

/* ===== aFA Agent — proof / methodology ===== */
.fv-shell.fv-product .packs{background:var(--fv-paper);}
.fv-shell.fv-product .proof-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--fv-rule); border:1px solid var(--fv-rule);}
.fv-shell.fv-product .proof-card{background:var(--fv-card); padding:28px;}
.fv-shell.fv-product .proof-card .tag{font-family:var(--fv-mono); font-size:11px; color:var(--fv-accent); text-transform:uppercase; letter-spacing:0.04em; display:block; margin-bottom:12px;}
.fv-shell.fv-product .proof-card h3{font-family:var(--fv-serif); font-size:18px; font-weight:600; margin-bottom:10px;}
.fv-shell.fv-product .proof-card p{font-size:13px; color:var(--fv-ink-soft); line-height:1.6;}
.fv-shell.fv-product .pack-note{margin-top:28px; font-size:12.5px; color:var(--fv-ink-soft); max-width:680px; line-height:1.6;}

/* ===== aFA Agent — governance recap list ===== */
.fv-shell.fv-product .fa-gov-list{list-style:none; display:grid; grid-template-columns:repeat(2,1fr); gap:24px 40px;}
.fv-shell.fv-product .fa-gov-list li{border-top:1px solid var(--fv-rule); padding-top:16px;}
.fv-shell.fv-product .fa-gov-list strong{display:block; font-size:14.5px; font-weight:600; margin-bottom:6px;}
.fv-shell.fv-product .fa-gov-list span{font-size:13px; color:var(--fv-ink-soft); line-height:1.55;}

@media (max-width:1080px){
  .fv-shell.fv-product .stage-grid{grid-template-columns:repeat(2,1fr);}
  .fv-shell.fv-product .outcome-grid{grid-template-columns:1fr;}
  .fv-shell.fv-product .mod-list.cols-3{grid-template-columns:repeat(2,1fr);}
}

@media (max-width:860px){
  .fv-shell.fv-product h1{font-size:32px;}
  .fv-shell.fv-product .ww-split{grid-template-columns:1fr;}
  .fv-shell.fv-product .ww-col:first-child{border-right:none; border-bottom:1px solid rgba(255,255,255,0.14);}
  .fv-shell.fv-product .stage-grid{grid-template-columns:1fr;}
  .fv-shell.fv-product .gov-recap-list{grid-template-columns:1fr;}
  .fv-shell.fv-product .lifecycle-svg-wrap{max-width:420px;}
  .fv-shell.fv-product .ov-table{font-size:12px;}
  .fv-shell.fv-product .lifecycle-grid{grid-template-columns:1fr;}
  .fv-shell.fv-product .sig-gov-list{grid-template-columns:1fr;}
  .fv-shell.fv-product .autonomy-scale{flex-direction:column;}
  .fv-shell.fv-product .autonomy-band{border-right:none; border-bottom:1px solid var(--fv-rule);}
  .fv-shell.fv-product .autonomy-band:last-child{border-bottom:none;}
  .fv-shell.fv-product .principles-grid{grid-template-columns:1fr;}
  .fv-shell.fv-product .mod-list, .fv-shell.fv-product .mod-list.cols-3{grid-template-columns:1fr;}
  .fv-shell.fv-product .proof-grid{grid-template-columns:1fr;}
  .fv-shell.fv-product .fa-gov-list{grid-template-columns:1fr;}
  .fv-shell.fv-product .who-stats{flex-direction:column; gap:16px;}
}
@media (prefers-reduced-motion:reduce){ .fv-shell.fv-product *{transition:none !important;} }

/* =========================================================================
 * Fundsview Global Platform (investor-platform) — page-specific blocks.
 * Ported from revamp/products/investor-platform/index.html, re-namespaced
 * under .fv-shell.fv-product and mapped onto the --fv-* variable set.
 * Every class is prefixed `ip-` so it never collides with the shared
 * product classes above (.outcome-card, .lifecycle-grid, etc.).
 * ========================================================================= */

/* ----- Header: Login link (only rendered on this page's nav) ----- */
.fv-shell .main-nav .nav-login{display:inline-flex; align-items:center; gap:6px; font-size:13.5px; color:var(--fv-ink-soft); font-weight:500;}
.fv-shell .main-nav .nav-login:hover{color:var(--fv-ink);}
.fv-shell .main-nav .nav-login svg{width:16px; height:16px;}

/* ----- Hero flagship note ----- */
.fv-shell.fv-product .ip-hero-flagship{
  font-size:14px; color:var(--fv-accent); max-width:600px; line-height:1.6; margin:-16px 0 32px;
  padding-left:14px; border-left:2px solid var(--fv-accent); font-weight:500;
}

/* ----- Do good. Better outcomes. ----- */
.fv-shell.fv-product .ip-outcomes{background:var(--fv-slate-soft);}
.fv-shell.fv-product .ip-outcomes-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:8px;}
.fv-shell.fv-product .ip-outcome-card{background:var(--fv-card); border:1px solid var(--fv-rule); border-radius:6px; padding:28px;}
.fv-shell.fv-product .ip-outcome-card h3{font-family:var(--fv-serif); font-size:18px; font-weight:600; margin-bottom:10px;}
.fv-shell.fv-product .ip-outcome-card p{font-size:13.5px; color:var(--fv-ink-soft); line-height:1.65;}

/* ----- What it does for your firm (GP feature grid) ----- */
.fv-shell.fv-product .ip-feature-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--fv-rule); border:1px solid var(--fv-rule);}
.fv-shell.fv-product .ip-feature-card{background:var(--fv-card); padding:24px 22px;}
.fv-shell.fv-product .ip-feature-num{font-family:var(--fv-mono); font-size:12px; color:var(--fv-accent); margin-bottom:14px; display:block;}
.fv-shell.fv-product .ip-feature-card h3{font-family:var(--fv-serif); font-size:18px; font-weight:600; margin-bottom:10px;}
.fv-shell.fv-product .ip-feature-card p{font-size:13.5px; color:var(--fv-ink-soft); line-height:1.6;}

/* ----- What your investors get (dark band) ----- */
.fv-shell.fv-product .ip-investors{background:var(--fv-ink); color:var(--fv-paper);}
.fv-shell.fv-product .ip-investors .section-head h2{color:var(--fv-paper);}
.fv-shell.fv-product .ip-investors .section-head p{color:#A9BBCB;}
.fv-shell.fv-product .ip-investors .eyebrow{color:var(--fv-accent);}
.fv-shell.fv-product .ip-lp-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:32px;}
.fv-shell.fv-product .ip-lp-card{border-top:1px solid rgba(255,255,255,0.14); padding-top:20px;}
.fv-shell.fv-product .ip-lp-card h3{font-family:var(--fv-serif); font-size:17px; font-weight:600; margin-bottom:8px;}
.fv-shell.fv-product .ip-lp-card p{font-size:13.5px; color:#A9BBCB; line-height:1.6;}
.fv-shell.fv-product .ip-lp-note{
  margin-top:40px; padding:20px 24px; background:rgba(184,118,59,0.12);
  border:1px solid rgba(184,118,59,0.3); font-size:13.5px; color:#E8D9C4; border-radius:2px;
}

/* ----- Fund structures supported ----- */
.fv-shell.fv-product .ip-structures{background:var(--fv-paper);}
.fv-shell.fv-product .ip-structure-list{display:grid; grid-template-columns:repeat(5,1fr); gap:1px; background:var(--fv-rule); border:1px solid var(--fv-rule);}
.fv-shell.fv-product .ip-structure-item{background:var(--fv-card); padding:22px 18px; text-align:center;}
.fv-shell.fv-product .ip-structure-item .n{font-family:var(--fv-mono); font-size:11px; color:var(--fv-accent); display:block; margin-bottom:10px;}
.fv-shell.fv-product .ip-structure-item span.label{font-size:13.5px; font-weight:500; line-height:1.4; display:block;}

/* ----- Pricing ----- */
.fv-shell.fv-product .ip-pricing-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--fv-rule); border:1px solid var(--fv-rule);}
.fv-shell.fv-product .ip-plan{background:var(--fv-card); padding:32px 26px; display:flex; flex-direction:column;}
.fv-shell.fv-product .ip-plan.enterprise{background:var(--fv-ink); color:var(--fv-paper);}
.fv-shell.fv-product .ip-plan-tier{font-family:var(--fv-mono); font-size:12px; letter-spacing:0.05em; text-transform:uppercase; color:var(--fv-accent); margin-bottom:6px;}
.fv-shell.fv-product .ip-plan-stage{font-size:12.5px; color:var(--fv-ink-soft); margin-bottom:22px;}
.fv-shell.fv-product .ip-plan.enterprise .ip-plan-stage{color:#A9BBCB;}
.fv-shell.fv-product .ip-plan-price{font-family:var(--fv-serif); font-size:30px; font-weight:600; line-height:1.1;}
.fv-shell.fv-product .ip-plan-price-note{font-size:12px; color:var(--fv-ink-soft); margin-bottom:22px;}
.fv-shell.fv-product .ip-plan.enterprise .ip-plan-price-note{color:#A9BBCB;}
.fv-shell.fv-product .ip-plan-cta{
  display:block; text-align:center; font-size:13px; font-weight:600;
  border:1px solid var(--fv-ink); padding:10px 0; border-radius:2px; margin-bottom:24px;
  transition:background 0.15s, color 0.15s;
}
.fv-shell.fv-product .ip-plan-cta:hover{background:var(--fv-ink); color:var(--fv-paper);}
.fv-shell.fv-product .ip-plan.enterprise .ip-plan-cta{border-color:var(--fv-accent); color:var(--fv-accent);}
.fv-shell.fv-product .ip-plan.enterprise .ip-plan-cta:hover{background:var(--fv-accent); color:var(--fv-ink);}
.fv-shell.fv-product .ip-plan-includes{font-family:var(--fv-mono); font-size:10.5px; letter-spacing:0.04em; text-transform:uppercase; color:var(--fv-ink-soft); border-top:1px solid var(--fv-rule); padding-top:16px; margin-bottom:14px;}
.fv-shell.fv-product .ip-plan.enterprise .ip-plan-includes{color:#8598AB; border-top-color:rgba(255,255,255,0.14);}
.fv-shell.fv-product .ip-plan-list{list-style:none; flex:1;}
.fv-shell.fv-product .ip-plan-list li{font-size:13px; color:var(--fv-ink-soft); padding:7px 0 7px 16px; position:relative; line-height:1.45;}
.fv-shell.fv-product .ip-plan-list li::before{content:'\2014'; position:absolute; left:0; color:var(--fv-accent);}
.fv-shell.fv-product .ip-plan.enterprise .ip-plan-list li{color:#C3D2DE;}
.fv-shell.fv-product .ip-pricing-note{margin-top:28px; font-size:12.5px; color:var(--fv-ink-soft); max-width:640px; line-height:1.6;}
.fv-shell.fv-product .ip-pricing-note strong{color:var(--fv-ink); font-weight:600;}

/* ----- FAQ ----- */
.fv-shell.fv-product .ip-faq{margin-top:56px;}
.fv-shell.fv-product .ip-faq-item{border-top:1px solid var(--fv-rule); padding:22px 0;}
.fv-shell.fv-product .ip-faq-item:last-child{border-bottom:1px solid var(--fv-rule);}
.fv-shell.fv-product .ip-faq-item h4{font-family:var(--fv-serif); font-size:16px; font-weight:600; margin-bottom:8px;}
.fv-shell.fv-product .ip-faq-item p{font-size:13.5px; color:var(--fv-ink-soft); line-height:1.6; max-width:720px;}

@media (max-width:1080px){
  .fv-shell.fv-product .ip-feature-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:860px){
  .fv-shell.fv-product .ip-feature-grid{grid-template-columns:1fr;}
  .fv-shell.fv-product .ip-outcomes-grid{grid-template-columns:1fr;}
  .fv-shell.fv-product .ip-lp-grid{grid-template-columns:1fr;}
  .fv-shell.fv-product .ip-structure-list{grid-template-columns:repeat(2,1fr);}
  .fv-shell.fv-product .ip-pricing-grid{grid-template-columns:1fr 1fr;}
}
