@import url('../sections/fonts-v12.css');
@import url('../base-next.css');
@import url('../sections/system-v12.css');

/* Internal pages extend the approved paper, ink and lake-colour palette. */
.ip-site { --ip-ink:#14203e; --ip-muted:#56647a; --ip-blue:#294dc4; --ip-paper:#f8f7f2; color:var(--ip-ink); }
.ip-site .v2-site-header { position:relative; color:var(--ip-ink); background:var(--ip-paper); }
.ip-site .v2-site-header__inner { border:0; }
.ip-site .v2-site-header__brand img { filter:none; }
.ip-site .v2-site-header__lab { color:#5b6680; }
.ip-site .v2-site-header__nav a { border:0; padding-inline:13px; border-radius:7px; }
.ip-site .v2-site-header__nav { gap:5px; }
.ip-site .v2-site-header__nav [aria-current=page] { background:#e7ebf3; color:#263e8c; }
.ip-site .v2-site-header__nav a:hover { background:#e9edf2; }
.ip-site .v2-site-header__cta { border:0; background:#263e8c; color:white; border-radius:7px; }
.ip-site .v2-site-header__cta:hover { background:#182d6e; color:white; }
.ip-site .v2-site-header :focus-visible { outline-color:#294dc4; }
.ip-site .v2-site-header__menu { border:0; background:#e7ebf3; border-radius:8px; }
.ip-site .v2-site-header__menu-line { background:#14203e; }
.ip-site .v2-site-header__mobile { color:#fffefa; border:0; border-radius:16px; }
.ip-site .v2-site-header__mobile a { border:0; }
.ip-site .v2-site-header__mobile [aria-current=page] { color:#c5dcff; }
.ip-site .v2-site-header__mobile :focus-visible { outline-color:#fff; }
.ip-container { width:calc(100% - 64px); max-width:1220px; margin-inline:auto; }
.ip-hero { position:relative; isolation:isolate; overflow:hidden; padding:38px 0 70px; background:linear-gradient(112deg,#344c79,#193b70 63%,#28355e); color:#fffefa; }
.ip-hero::before,.ip-card:not(.ip-card--paper)::before,.ip-feature::before,.ip-callout--blue::before { content:''; pointer-events:none; position:absolute; inset:0; z-index:-1; background:url('../assets/v12-grain.svg') 0 0/170px 170px; opacity:.33; mix-blend-mode:soft-light; }
.ip-hero--light { background:#eef0f7; color:var(--ip-ink); }
.ip-hero--teal { background:radial-gradient(ellipse at 100% 0,#457d8f50,transparent 65%),linear-gradient(110deg,#25565d,#164664 62%,#193760); }
.ip-hero--violet { background:radial-gradient(ellipse at 100% 15%,#7171ae45,transparent 65%),linear-gradient(115deg,#384065,#252f5c 60%,#302951); }
.ip-breadcrumb { display:flex; gap:12px; align-items:center; margin-bottom:54px; font-size:12px; color:#d1daed; }
.ip-breadcrumb a { display:inline-flex; min-height:36px; align-items:center; }
.ip-breadcrumb a:hover { color:#fff; }
.ip-breadcrumb span[aria-hidden] { opacity:.6; }
.ip-hero--light .ip-breadcrumb { color:#53637d; }
.ip-hero--light .ip-breadcrumb a:hover { color:#294dc4; }
.ip-kicker { margin-bottom:18px; font-size:12px; line-height:1.5; letter-spacing:.035em; font-weight:600; }
.ip-hero h1 { max-width:930px; font-family:var(--v2-sans); font-size:clamp(44px,4.8vw,68px); line-height:1.04; letter-spacing:-.045em; font-weight:600; text-wrap:balance; }
.ip-lede { max-width:670px; margin-top:26px; font-size:18px; line-height:1.65; color:#e2e8f2; text-wrap:pretty; }
.ip-hero--light .ip-lede { color:var(--ip-muted); }
.ip-hero-meta { display:flex; align-items:center; flex-wrap:wrap; gap:14px; margin-top:30px; font-size:13px; }
.ip-hero .ip-status { background:#ffffff14; color:#fff; }
.ip-hero--light .ip-status { background:white; color:#324b7e; }
.ip-status { display:inline-flex; align-items:center; width:fit-content; padding:7px 11px; border-radius:6px; background:#edf1f6; color:#3f5476; font-size:11px; font-weight:600; letter-spacing:.02em; line-height:1.5; }
.ip-section { padding-block:88px; }
.ip-section--soft { background:#edf0f6; }
.ip-section--dark { background:#111c36; color:#fffefa; }
.ip-heading { margin-bottom:38px; max-width:800px; }
.ip-heading h2,.ip-editorial h2,.ip-callout h2,.ip-inquiry h2 { font-family:var(--v2-sans); font-weight:600; font-size:clamp(30px,3vw,42px); line-height:1.1; letter-spacing:-.04em; text-wrap:balance; }
.ip-heading p:not(.ip-kicker) { max-width:650px; margin-top:17px; color:var(--ip-muted); font-size:16px; line-height:1.7; }
.ip-heading--split { display:grid; grid-template-columns:1.1fr 1fr; align-items:end; gap:60px; max-width:none; }
.ip-heading--split>p { margin:0; }
.ip-grid { display:grid; gap:24px; }
.ip-grid--two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.ip-grid--three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.ip-card { position:relative; isolation:isolate; overflow:hidden; padding:34px; border-radius:24px; background:linear-gradient(137deg,#196971,#25438a); color:#fffefa; display:flex; flex-direction:column; }
.ip-card--teal { background:radial-gradient(ellipse at 0 0,#7bd4c755,transparent 60%),linear-gradient(137deg,#186b70,#174a68 65%,#233b80); }
.ip-card--blue { background:radial-gradient(ellipse at 0 0,#8dcbdc44,transparent 65%),linear-gradient(137deg,#256a95,#294db0 70%,#3d428f); }
.ip-card--violet { background:radial-gradient(ellipse at 100% 0,#c9a9eb44,transparent 65%),linear-gradient(137deg,#55549e,#3b3f7c 65%,#343064); }
.ip-card--paper { background:white; color:var(--ip-ink); }
.ip-card h2,.ip-card h3 { margin:38px 0 18px; font-size:clamp(27px,2.6vw,36px); font-weight:550; letter-spacing:-.04em; line-height:1.15; text-wrap:balance; }
.ip-card p { font-size:15px; line-height:1.7; color:#edf1fc; }
.ip-card p+p { margin-top:14px; }
.ip-card .ip-status { background:#ffffff17; color:#fff; }
.ip-card--paper .ip-status { background:#edf1f6; color:#3f5476; }
.ip-card--paper p { color:var(--ip-muted); }
.ip-card-body { margin-bottom:28px; }
.ip-card-actions { margin-top:auto; padding-top:28px; }
.ip-product { min-height:355px; }
.ip-product h2,.ip-product h3 { margin-top:60px; padding-top:0; }
.ip-site--collaborate .ip-grid--three .ip-card h3 { min-height:2.3em; }
.ip-card a.ip-link { color:inherit; }
.ip-card .ip-note { font-size:13px; color:#dae3f3; }
.ip-card--paper .ip-note { color:var(--ip-muted); }
.ip-button { display:inline-flex; min-height:48px; align-items:center; justify-content:center; gap:22px; border-radius:8px; padding:13px 19px; background:#294dc4; color:white; font-size:13px; line-height:1.5; font-weight:600; transition:background-color .16s; }
.ip-button:hover { background:#203a96; }
.ip-button--light { background:#fffefa; color:#14203e; }
.ip-button--light:hover { background:#e7edff; }
.ip-button--quiet { background:#e7ecf5; color:#263e8c; }
.ip-button--quiet:hover { background:#dde5f3; }
.ip-link { display:inline-flex; gap:10px; align-items:center; min-height:44px; color:#294dc4; font-size:14px; font-weight:600; line-height:1.5; }
.ip-link:hover { text-decoration:underline; text-underline-offset:5px; }
.ip-actions { display:flex; gap:18px; align-items:center; flex-wrap:wrap; margin-top:28px; }
.ip-note { color:var(--ip-muted); font-size:13px; line-height:1.7; }
.ip-caption { font-size:12px; line-height:1.65; color:var(--ip-muted); }
.ip-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-block:32px 20px; }
.ip-stat { background:#fff; padding:30px; border-radius:22px; color:var(--ip-ink); }
.ip-stat-value { font-family:var(--v2-sans); font-weight:600; font-size:54px; line-height:1; letter-spacing:-.05em; }
.ip-stat-value small { font-family:var(--v2-sans); font-size:12px; letter-spacing:0; margin-left:5px; color:var(--ip-muted); }
.ip-stat-label { display:block; margin-top:18px; font-size:15px; line-height:1.55; }
.ip-stat p { color:var(--ip-muted); margin-top:10px; font-size:12px; line-height:1.6; }
.ip-feature { position:relative; isolation:isolate; overflow:hidden; border-radius:28px; background:linear-gradient(125deg,#235b69,#23468b); color:#fffefa; padding:48px; display:grid; grid-template-columns:1.1fr .9fr; gap:60px; }
.ip-feature h2 { font-family:var(--v2-sans); font-size:clamp(32px,3.2vw,46px); font-weight:600; letter-spacing:-.04em; line-height:1.08; margin:25px 0 24px; }
.ip-feature p { color:#e3ebf6; line-height:1.7; font-size:15px; }
.ip-feature p+p { margin-top:16px; }
.ip-feature .ip-status { background:#ffffff17; color:#fff; }
.ip-feature-aside { align-self:center; padding:30px; background:#ffffff0d; border-radius:20px; }
.ip-feature-aside h3 { font-size:18px; margin-bottom:18px; font-weight:550; }
.ip-feature .ip-note { font-size:13px; color:#d7e2f4; margin-top:20px; }
.ip-feature .ip-link { color:#fff; }
.ip-editorial { display:grid; grid-template-columns:1fr 1.5fr; gap:90px; }
.ip-prose { max-width:760px; font-size:16px; line-height:1.8; color:var(--ip-muted); }
.ip-prose h3 { color:var(--ip-ink); font-size:21px; letter-spacing:-.02em; line-height:1.3; font-weight:600; margin:30px 0 12px; }
.ip-prose h3:first-child { margin-top:0; }
.ip-prose p+p { margin-top:20px; }
.ip-prose ul { padding-left:20px; margin:18px 0; }
.ip-prose li { margin-block:9px; padding-left:5px; }
.ip-prose a { color:#294dc4; text-decoration:underline; text-underline-offset:4px; }
.ip-prose .ip-button { color:white; text-decoration:none; }
.ip-prose .ip-button--quiet { color:#263e8c; }
.ip-prose .ip-button--light { color:#14203e; }
.ip-prose .ip-link { text-decoration:none; }
.ip-section-nav { display:flex; flex-wrap:wrap; gap:8px; padding:26px 0 0; list-style:none; }
.ip-section-nav a { min-height:44px; display:inline-flex; align-items:center; padding:10px 14px; background:#e9edf4; border-radius:7px; font-size:12px; font-weight:500; }
.ip-section-nav a:hover { background:#dde4f1; }
.ip-topic { display:grid; grid-template-columns:1fr 1.1fr; gap:65px; padding:50px; border-radius:26px; background:#fff; margin-bottom:24px; scroll-margin-top:28px; }
.ip-topic-intro h2 { font-family:var(--v2-sans); font-size:clamp(28px,2.6vw,36px); line-height:1.1; letter-spacing:-.04em; font-weight:600; margin:24px 0 18px; text-wrap:balance; }
.ip-topic-intro p { font-size:15px; line-height:1.7; color:var(--ip-muted); }
.ip-topic--green { background:#e5eee8; }
.ip-topic--teal { background:#e3edf0; }
.ip-topic--violet { background:#e9e7f2; }
.ip-topic--plum { background:#eee6ed; }
.ip-topic-detail dt { margin:20px 0 7px; font-size:12px; line-height:1.5; font-weight:700; color:#294569; }
.ip-topic-detail dt:first-child { margin-top:0; }
.ip-topic-detail dl>div+div { margin-top:20px; }
.ip-topic-detail dd { font-size:14px; line-height:1.7; color:#46566e; }
.ip-callout { padding:48px; border-radius:26px; background:white; }
.ip-callout p { max-width:720px; margin-top:20px; color:var(--ip-muted); font-size:16px; line-height:1.75; }
.ip-callout--blue { position:relative; isolation:isolate; overflow:hidden; color:#fffefa; background:linear-gradient(120deg,#1f5466,#234d94 65%,#35396c); }
.ip-callout--blue p { color:#e3eafa; }
.ip-callout--blue .ip-link { color:#fff; }
.ip-details { margin-top:16px; background:white; border-radius:16px; padding:6px 26px; }
.ip-details summary { cursor:pointer; padding:22px 0; font-size:16px; font-weight:600; line-height:1.5; }
.ip-details .ip-prose { padding-bottom:24px; font-size:14px; }
.ip-checklist { list-style:none; padding:0; margin:20px 0 0; }
.ip-checklist li { margin:18px 0; padding-left:0; font-size:15px; line-height:1.7; }
.ip-checklist strong { display:block; font-weight:600; color:var(--ip-ink); }
.ip-section--dark .ip-note,.ip-section--dark .ip-prose { color:#d7e1f2; }
.ip-section--dark .ip-heading p { color:#d7e1f2; }
.ip-reading { max-width:800px; font-size:12px; line-height:1.8; color:var(--ip-muted); margin-top:36px; }
.ip-reading a { color:#294dc4; text-decoration:underline; text-underline-offset:3px; }
.ip-inquiry { display:grid; grid-template-columns:1fr 1.1fr; gap:80px; padding:48px; border-radius:26px; background:#edf0f6; }
.ip-inquiry-body p { line-height:1.8; color:var(--ip-muted); font-size:15px; }
.ip-inquiry-body p+p { margin-top:18px; }
.ip-email { display:inline-block; margin-top:28px; font-size:clamp(22px,3vw,34px); letter-spacing:-.035em; color:#294dc4; overflow-wrap:anywhere; }
.ip-email:hover { text-decoration:underline; text-underline-offset:7px; }
.ip-site .v4-site-footer { border:0; }
.ip-site :focus-visible { outline:3px solid #6685d9; outline-offset:5px; }
.ip-site main:focus { outline:none; }
.ip-card:not(.ip-card--paper) :focus-visible,.ip-hero:not(.ip-hero--light) :focus-visible,.ip-feature :focus-visible { outline-color:#fff; }
.ip-home-link { padding:0 2px; }
.ip-review-footer { padding:16px 0; background:#0c1225; color:#afbad2; font-size:11px; }
.ip-review-footer .ip-container { display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.ip-review-footer a { text-decoration:underline; text-underline-offset:3px; }
.ip-site .v2-skip-link:not(:focus) { clip-path:inset(50%); width:1px; height:1px; overflow:hidden; white-space:nowrap; }
@media (max-width:1000px) {
  .ip-topic { padding:35px; gap:35px; }
  .ip-feature,.ip-inquiry { padding:36px; gap:35px; }
  .ip-editorial { gap:45px; }
  .ip-card { padding:28px; }
  .ip-stat { padding:25px; }
}
@media (max-width:760px) {
  .ip-hero { padding-bottom:52px; }
  .ip-hero h1 { font-size:48px; }
  .ip-breadcrumb { margin-bottom:35px; }
  .ip-lede { font-size:16px; }
  .ip-section { padding-block:60px; }
  .ip-grid--three,.ip-grid--two,.ip-feature,.ip-editorial,.ip-inquiry,.ip-heading--split,.ip-topic { grid-template-columns:1fr; }
  .ip-grid { gap:16px; }
  .ip-heading--split { gap:18px; }
  .ip-feature,.ip-inquiry,.ip-topic { gap:30px; }
  .ip-card { padding:30px; }
  .ip-card h2,.ip-card h3 { font-size:32px; }
  .ip-product { min-height:310px; }
  .ip-site--collaborate .ip-grid--three .ip-card h3 { min-height:0; }
  .ip-stats { gap:12px; }
  .ip-stat { padding:22px; }
  .ip-stat-value { font-size:46px; }
  .ip-stat-label { font-size:13px; }
}
@media (max-width:480px) {
  .ip-container { width:calc(100% - 36px); }
  .ip-hero { padding-top:22px; padding-bottom:42px; }
  .ip-hero h1 { font-size:36px; }
  .ip-breadcrumb { margin-bottom:26px; }
  .ip-section { padding-block:48px; }
  .ip-heading { margin-bottom:27px; }
  .ip-heading h2,.ip-editorial h2,.ip-callout h2,.ip-inquiry h2 { font-size:30px; }
  .ip-card,.ip-callout,.ip-topic,.ip-feature,.ip-inquiry { padding:25px; border-radius:21px; }
  .ip-feature-aside { padding:20px; }
  .ip-feature h2 { font-size:32px; }
  .ip-stats { grid-template-columns:1fr; }
  .ip-stat { display:grid; grid-template-columns:100px 1fr; column-gap:18px; align-items:center; }
  .ip-stat-label { margin:0; font-size:15px; }
  .ip-stat p { grid-column:2; }
  .ip-stat-value small { display:block; margin:8px 0 0; }
  .ip-topic { margin-bottom:16px; }
  .ip-topic-intro h2 { font-size:28px; }
  .ip-heading--split { gap:14px; }
  .ip-reading { margin-top:26px; }
  .ip-actions { gap:12px; }
}
@media (prefers-reduced-motion:reduce) { .ip-site * { scroll-behavior:auto; transition:none; } }
