@layer reset, base, layout, components, responsive;
@layer reset {
  *, *::before, *::after { box-sizing: border-box; }
  body, h1, h2, h3, h4, p, ul { margin: 0; }
  button, input { font: inherit; }
  button, a { -webkit-tap-highlight-color: transparent; }
  button { color: inherit; }
  a { color: inherit; text-decoration: none; }
  img, svg { display: block; max-width: 100%; }
  button { cursor: pointer; }
  [hidden] { display: none !important; }
}
@layer base {
  :root { --ink: #021a2e; --muted: #526574; --primary: #006f95; --primary-deep: #005b7b; --accent-cyan: #12b5dd; --paper: #fff; --surface: #f3f8fa; --line: #dde8ed; --brand-red: #f52c20; --heading-tracking: -.058em; }
  html { scroll-behavior: smooth; scroll-padding-top: 106px; }
  body { color: var(--ink); background: var(--paper); font-family: Inter, "Helvetica Neue", Arial, sans-serif; font-size: 16px; line-height: 1.6; -webkit-font-smoothing: antialiased; }
  ::selection { background: var(--accent-cyan); color: var(--ink); }
  :focus-visible { outline: 3px solid var(--primary); outline-offset: 5px; border-radius: 3px; }
  h1, h2, h3, h4 { line-height: 1.08; font-weight: 550; letter-spacing: var(--heading-tracking); }
  h2 { font-size: clamp(2.1rem, 3.5vw, 3.1rem); }
  .muted-heading { color: #687f8c; }
  .sr-only, .external-label { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
  .skip-link { position: fixed; left: 12px; top: -100px; z-index: 100; background: var(--ink); color: white; padding: 12px 18px; }
  .skip-link:focus { top: 12px; }
}
@layer layout {
  .container { width: min(1296px, calc(100% - 112px)); margin-inline: auto; }
  .section { padding-block: 110px; }
  .site-header { position: sticky; top: 0; z-index: 20; background: #021a2e; color: #e5eff5; border-bottom: 1px solid #15374b; backdrop-filter: blur(14px); }
  .header-inner { min-height: 92px; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
  .main-nav { display: flex; align-items: center; gap: 32px; font-size: 14px; font-weight: 500; }
  .main-nav > a:not(.button) { display: flex; gap: 7px; align-items: center; }
  .main-nav > a:not(.button):hover { color: #65d5ef; }
  .hero { display: grid; grid-template-columns: 1.03fr 1.1fr; align-items: center; gap: 36px; padding-block: 76px 78px; }
  .hero-copy { padding-block: 15px; }
  .hero h1 { font-size: clamp(3.4rem, 4.65vw, 4.7rem); line-height: 1.04; letter-spacing: -.065em; margin-top: 28px; margin-bottom: 27px; font-weight: 550; }
  .hero h1 > span { color: var(--primary); }
  .hero-description { font-size: 21px; line-height: 1.48; letter-spacing: -.025em; margin-bottom: 16px; }
  .hero-detail { color: var(--muted); line-height: 1.7; max-width: 425px; }
  .hero-actions { display: flex; align-items: center; gap: 25px; margin-top: 28px; flex-wrap: wrap; }
  .hero-footnote { display: flex; align-items: center; gap: 12px; margin-top: 38px; color: var(--muted); font-size: 13px; line-height: 1.6; }
  .hero-footnote strong { font-weight: 500; color: #354057; }
  .hero-visual { background: #e8f5f9; border-radius: 14px; padding: 24px; position: relative; min-width: 0; background-image: linear-gradient(135deg, #eef8fb 0%, #d8edf4 66%, #d4eff3 100%); }
  .visual-topline, .visual-bottomline { display: flex; align-items: center; justify-content: space-between; gap: 16px; font-size: 12px; }
  .visual-topline { color: #586889; margin-bottom: 39px; }
  .visual-topline > span:first-child { letter-spacing: .11em; font-size: 12px; }
  .visual-bottomline { margin-top: 34px; color: #4b5874; }
  .product-signoff { font-weight: 500; }
  .audience-strip { border-block: 1px solid var(--line); }
  .audience-inner { display: flex; align-items: center; justify-content: space-between; gap: 36px; padding-block: 27px; }
  .audience-inner > p { font-size: 13px; line-height: 1.6; color: var(--muted); flex-shrink: 0; }
  .audience-inner > p strong { color: #364158; font-weight: 500; }
  .audience-types { display: flex; gap: 29px; align-items: center; justify-content: space-between; width: 76%; }
  .audience-types span { font-size: 14px; color: #4f5b70; font-weight: 500; }
  .section-intro { display: flex; justify-content: space-between; align-items: flex-end; gap: 60px; margin-bottom: 48px; }
  .section-intro > p { max-width: 376px; font-size: 16px; line-height: 1.8; color: var(--muted); }
  .platform-explorer { display: grid; grid-template-columns: .82fr 1.5fr; gap: 30px; align-items: stretch; }
  .feature-tabs { display: flex; flex-direction: column; gap: 8px; }
  .product-panels { min-width: 0; display: grid; }
  .advisory-section { background: var(--surface); }
  .advisory-section .section-intro { gap: 30px; }
  .advisory-section .section-intro h2 { font-size: clamp(2rem, 3.2vw, 2.8rem); }
  .advisory-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
  .advisory-bottom { display: flex; justify-content: space-between; align-items: center; gap: 30px; margin-top: 32px; font-size: 14px; color: var(--muted); }
  .approach-section { display: grid; grid-template-columns: 1fr 1fr; gap: 88px; align-items: center; }
  .approach-art { position: relative; background: #021a2e; border-radius: 12px; overflow: hidden; height: 530px; }
  .approach-art img { width: 100%; height: 100%; object-fit: cover; }
  .approach-copy h2 { font-size: clamp(2rem, 3.2vw, 2.85rem); margin-bottom: 24px; }
  .approach-copy > p:not(.eyebrow) { font-size: 16px; line-height: 1.75; color: var(--muted); margin-top: 17px; }
  .contact-section { padding-bottom: 0; }
  .contact-inner { display: flex; gap: 60px; justify-content: space-between; align-items: center; background: var(--ink); color: white; border-radius: 12px; padding: 66px 72px; }
  .contact-inner h2 { font-size: clamp(2.6rem, 4.5vw, 4.2rem); }
  .contact-inner h2 > span { color: var(--accent-cyan); }
  .contact-inner > div > p:not(.eyebrow) { max-width: 475px; color: #b9c2d5; font-size: 16px; margin-top: 21px; }
  .contact-actions { flex-shrink: 0; min-width: 245px; }
  .contact-actions > p { font-size: 13px !important; text-align: center; line-height: 1.8; }
  .site-footer { padding-top: 75px; padding-bottom: 25px; }
  .footer-top { display: flex; justify-content: space-between; gap: 50px; margin-bottom: 55px; }
  .footer-top > div > p { margin-top: 15px; color: var(--muted); font-size: 14px; }
  .footer-links { display: flex; gap: 100px; padding-right: 80px; }
  .footer-links > div { display: flex; flex-direction: column; gap: 9px; font-size: 14px; color: var(--muted); }
  .footer-links strong { font-weight: 500; margin-bottom: 8px; color: var(--ink); }
  .footer-links a:hover, .footer-bottom a:hover { color: var(--primary); }
  .footer-bottom { border-top: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-top: 22px; font-size: 12px; color: var(--muted); }
  .footer-bottom > div { display: flex; gap: 24px; }
}
@layer components {
  .wordmark { display: inline-flex; align-items: center; gap: 12px; flex-shrink: 0; line-height: 1; background: #021a2e; color: white; }
  .brand-logo { display: block; width: 225px; height: auto; }
  .brand-risk { font-size: 14px; font-weight: 500; letter-spacing: .16em; padding-left: 13px; border-left: 1px solid #426176; }
  .site-footer .wordmark { padding: 9px 16px 9px 6px; border-radius: 4px; }
  .site-header :focus-visible, .contact-inner :focus-visible { outline-color: #69d9f5; }
  .site-header .nav-tag { background: #073b54; border-color: #125474; color: #83d2e9; }
  .site-header .nav-cta { background: #12b5dd; color: #021a2e; }
  .site-header .nav-cta:hover { background: #61cfe9; }
  .site-header .menu-toggle { border-color: #31576d; background: #06283e; color: white; }
  .nav-tag { background: #e6f4f8; color: #006482; font-size: 12px; font-weight: 400; border: 1px solid #cce5ef; padding: 0 6px; border-radius: 4px; }
  .tiny-arrow { width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-width: 1.7; }
  .button { display: inline-flex; align-items: center; justify-content: space-between; gap: 23px; padding: 14px 21px; min-height: 49px; border: 1px solid transparent; border-radius: 6px; font-size: 14px; font-weight: 500; line-height: 1.4; transition: background .18s ease, transform .18s ease, box-shadow .18s ease; }
  .button > span[aria-hidden] { font-size: 20px; line-height: 1; }
  .button:hover { transform: translateY(-2px); box-shadow: 0 5px 16px rgb(20 32 70 / 10%); }
  .button-dark { background: var(--ink); color: white; }
  .button-dark:hover { background: #0c3952; }
  .button-blue { color: white; background: var(--primary); }
  .button-blue:hover { background: var(--primary-deep); }
  .button-accent { background: var(--accent-cyan); color: #021a2e; width: 100%; }
  .button-accent:hover { background: #61cfe9; }
  .nav-cta { min-height: 45px; padding: 12px 18px; margin-left: 13px; }
  .text-link { font-size: 14px; font-weight: 500; display: inline-flex; align-items: center; gap: 14px; }
  .text-link:hover { color: var(--primary); }
  .text-link span[aria-hidden] { font-size: 19px; }
  .announcement { display: inline-flex; gap: 11px; align-items: center; padding: 5px 10px 5px 5px; border: 1px solid #dfe5ee; border-radius: 6px; font-size: 12px; color: #526078; }
  .announcement:hover { border-color: var(--primary); }
  .announcement-tag { background: #e8f6fa; color: #006988; font-size: 12px; font-weight: 600; padding: 3px 7px; border-radius: 3px; letter-spacing: .025em; }
  .small-grid { color: var(--primary); font-size: 35px; line-height: 1; }
  .overview-window { border: 1px solid #d9e9f0; border-radius: 9px; background: #fff; box-shadow: 0 16px 34px -14px rgb(32 50 109 / 22%), 0 2px 5px rgb(45 60 100 / 4%); overflow: hidden; }
  .app-topbar { display: flex; gap: 13px; align-items: center; padding: 15px 19px; border-bottom: 1px solid #e9edf5; }
  .app-brand { font-weight: 550; font-size: 22px; line-height: 1; letter-spacing: -.065em; display: inline-flex; gap: 6px; align-items: center; }
  .sapere-symbol { background: var(--primary); color: #fff; display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 24px; font-size: 22px; font-style: italic; font-weight: 600; border-radius: 5px; letter-spacing: -.04em; padding-right: 2px; padding-bottom: 3px; }
  .workspace-label { font-size: 12px; color: #64708a; border-left: 1px solid var(--line); padding-left: 14px; margin-left: auto; }
  .workspace-label > span { margin-left: 7px; }
  .avatar { font-size: 12px; width: 26px; height: 26px; display: flex; align-items: center; justify-content: center; background: #e6f2f6; border-radius: 50%; color: #426d81; }
  .app-nav { display: flex; gap: 19px; padding-inline: 20px; border-bottom: 1px solid #e9edf5; font-size: 12px; color: #6e7890; }
  .app-nav > span { padding-block: 11px; }
  .app-nav > .app-nav-active { color: var(--primary); border-bottom: 2px solid var(--primary); }
  .app-content { padding: 23px 19px 18px; }
  .app-heading { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 20px; }
  .app-eyebrow { font-size: 12px; letter-spacing: .08em; color: #758099; }
  .app-heading h2 { font-size: 23px; margin-top: 6px; letter-spacing: -.04em; }
  .sample-label { font-size: 12px; color: #63708a; white-space: nowrap; }
  .app-heading .sample-label { background: #f1f4f9; border-radius: 4px; padding: 3px 6px; }
  .metric-row { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--line); border-radius: 6px; margin-bottom: 22px; }
  .metric-row > div { padding: 13px 12px 11px; min-width: 0; }
  .metric-row > div + div { border-left: 1px solid var(--line); }
  .metric-row span { color: #5c6980; font-size: 12px; display: block; }
  .metric-row strong { font-size: 31px; letter-spacing: -.045em; font-weight: 500; line-height: 1.5; display: block; }
  .metric-row small { font-size: 12px; color: #67768f; display: block; line-height: 1.4; }
  .dashboard-bottom { display: grid; grid-template-columns: 1.08fr 1fr; gap: 24px; }
  .mini-title { font-size: 12px; font-weight: 500; color: #3c4961; display: flex; justify-content: space-between; gap: 10px; }
  .mini-title > span { color: #76829a; font-weight: 400; }
  .heatmap-shell { position: relative; padding: 12px 0 19px 20px; }
  .heatmap { display: grid; grid-template-columns: repeat(5, 1fr); gap: 4px; }
  .heatmap i { aspect-ratio: 1.18; border-radius: 3px; font-style: normal; display: flex; align-items: center; justify-content: center; }
  .heatmap b { font-size: 12px; font-weight: 500; width: 21px; height: 21px; display: flex; justify-content: center; align-items: center; background: #fff; border: 1px solid rgb(28 58 140 / 10%); box-shadow: 0 2px 3px rgb(0 0 0 / 8%); color: #29355d; border-radius: 50%; }
  .h1 { background: #e9f5fa; }.h2 { background: #d2eaf3; }.h3 { background: #a4d3e3; }.h4 { background: #66abc4; }.h5 { background: #ef8278; }
  .axis-y { position: absolute; top: 43%; left: -32px; transform: rotate(-90deg); font-size: 12px; color: #6e7a91; }
  .axis-x { position: absolute; bottom: -2px; left: 46%; font-size: 12px; color: #6e7a91; }
  .axis-x > span { margin-left: 20px; }
  .review-list { border-left: 1px solid #e9edf5; padding-left: 17px; }
  .focus-item { display: flex; align-items: center; gap: 9px; margin-top: 17px; }
  .focus-icon { width: 27px; height: 27px; border-radius: 6px; display: flex; align-items: center; justify-content: center; font-size: 16px; flex-shrink: 0; }
  .focus-blue { background: #e4f3f8; color: #00769c; }.focus-teal { background: #e5f5f6; color: #367b80; }.focus-orange { background: #fff0e7; color: #b86a32; }
  .focus-item strong { font-size: 12px; font-weight: 500; line-height: 1.4; display: block; }
  .focus-item small { font-size: 12px; color: #6e7a8e; display: block; margin-top: 2px; }
  .coverage-note { font-size: 12px; line-height: 1.5; margin-top: 18px; color: #7d879b; }
  .coverage-note strong { color: #52617b; font-weight: 400; }
  .eyebrow { display: flex; align-items: center; gap: 10px; font-size: 12px; font-weight: 500; letter-spacing: .12em; color: var(--primary); margin-bottom: 19px; }
  .eyebrow-line { width: 19px; height: 2px; background: var(--primary); }
  .feature-tab { text-align: left; background: white; border: 1px solid transparent; padding: 23px 18px; display: grid; grid-template-columns: 24px 1fr 15px; gap: 11px; border-radius: 8px; width: 100%; transition: background .2s; }
  .feature-tab:hover { background: #f0f7fa; }
  .feature-tab[aria-selected="true"] { background: #eaf5f9; border-color: #cfe8f2; }
  .tab-number { font-size: 12px; color: #8b94a9; line-height: 2; }
  .feature-tab[aria-selected="true"] .tab-number { color: var(--primary); }
  .feature-tab strong { display: block; font-size: 19px; font-weight: 500; letter-spacing: -.03em; line-height: 1.4; }
  .tab-description { display: block; font-size: 14px; line-height: 1.75; color: #627087; margin-top: 6px; }
  .tab-topic { font-size: 12px; display: block; color: var(--primary); margin-top: 12px; }
  .tab-arrow { color: #929bb1; font-size: 17px; }
  .feature-tab[aria-selected="true"] .tab-arrow { color: var(--primary); }
  .product-panel { border: 1px solid var(--line); border-radius: 9px; padding: 27px 28px 0; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 6px 20px -15px rgb(22 38 69 / 25%); }
  .panel-kicker { display: flex; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--line); padding-bottom: 20px; }
  .panel-title { margin-top: 29px; margin-bottom: 27px; display: flex; align-items: center; justify-content: space-between; gap: 15px; }
  .panel-title h3 { font-size: 27px; margin-top: 11px; }
  .counter-badge { font-size: 12px; padding: 4px 9px; background: #f2f4f9; border: 1px solid #e7eaf1; border-radius: 4px; color: #57647c; white-space: nowrap; }
  .table-scroll { overflow-x: auto; }
  .product-table { width: 100%; border-collapse: collapse; text-align: left; font-size: 14px; min-width: 500px; }
  .product-table th { background: #f3f8fa; color: #63708a; font-weight: 400; padding: 10px; font-size: 12px; white-space: nowrap; }
  .product-table td { border-bottom: 1px solid #e9edf5; padding: 15px 10px; white-space: nowrap; color: #475570; }
  .product-table td:first-child { color: #28364f; }
  .record-id { display: block; color: #7b879c; font-size: 12px; line-height: 1.3; margin-bottom: 4px; }
  .status { display: inline-block; border-radius: 4px; font-size: 12px; padding: 3px 8px; line-height: 1.5; white-space: nowrap; }
  .status-high { background: #fff0ea; color: #a44727; }.status-medium { background: #fff7dc; color: #86621a; }.status-low { background: #edf6e5; color: #487331; }
  .person-avatar { display: flex; width: 28px; height: 28px; align-items: center; justify-content: center; font-size: 12px; border-radius: 50%; background: #e5f2f7; color: #3f7288; }
  .avatar-teal { background: #e6f2f3; color: #3e6c74; }.avatar-purple { background: #f0eafa; color: #8361aa; }
  .panel-footer { margin: auto -28px 0; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 18px 28px; font-size: 12px; line-height: 1.6; background: #f8f9fc; color: #61708b; border-top: 1px solid #e9edf5; }
  .panel-footer svg { width: 18px; height: 18px; flex-shrink: 0; stroke: #25848e; stroke-width: 1.8; fill: none; }
  .product-table { margin-bottom: 27px; }
  .linked-risk { background: #eaf5f9; padding: 15px 18px; border: 1px solid #cde6ef; border-radius: 5px; }
  .linked-risk strong { font-size: 18px; font-weight: 500; }
  .linked-risk p { font-size: 12px; color: #667590; margin-top: 4px; }
  .control-links { list-style: none; padding: 4px 0 24px; }
  .control-links li { display: flex; align-items: center; gap: 13px; padding: 13px 8px; }
  .link-line { color: #8cb8c9; font-size: 20px; }
  .control-links strong { font-size: 14px; font-weight: 400; }
  .control-links .status { margin-left: auto; }
  .report-preview { display: grid; grid-template-columns: .8fr 1fr; gap: 27px; padding: 0 0 27px; }
  .report-cover { background: #006f95; color: white; padding: 22px; min-height: 270px; border-radius: 4px; position: relative; }
  .report-cover > span { font-size: 12px; display: block; }
  .report-cover > span:first-child { letter-spacing: .045em; color: #c2e5f1; }
  .report-cover h4 { font-size: 36px; line-height: 1.06; margin-top: 25px; margin-bottom: 23px; }
  .report-cover > .report-cover-mark { position: absolute; right: 19px; bottom: 8px; font-size: 40px; color: var(--accent-cyan); }
  .report-detail { padding-top: 8px; }
  .report-detail h4 { font-size: 22px; letter-spacing: -.04em; line-height: 1.25; margin-top: 15px; }
  .report-detail p { font-size: 14px; line-height: 1.7; color: #69758b; margin-top: 11px; margin-bottom: 20px; }
  .review-step { display: flex; align-items: center; gap: 9px; font-size: 12px; margin-top: 10px; color: #4f5e79; }
  .review-step > span { display: flex; align-items: center; justify-content: center; width: 19px; height: 19px; background: #e8f5f9; color: #39758c; font-size: 12px; border-radius: 50%; flex-shrink: 0; }
  .muted-step { color: #7a879b; }
  .platform-endnote { display: flex; justify-content: space-between; gap: 25px; align-items: center; padding-top: 28px; font-size: 14px; color: var(--muted); }
  .platform-endnote .text-link { color: var(--primary); }
  .advisory-card { background: white; border: 1px solid var(--line); border-radius: 8px; padding: 30px; }
  .card-top { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 40px; }
  .card-top svg { width: 29px; height: 29px; stroke: var(--primary); stroke-width: 1.45; fill: none; }
  .card-top > span { color: #7a859a; font-size: 12px; letter-spacing: .055em; }
  .advisory-card h3 { font-size: 30px; font-weight: 500; margin-bottom: 19px; line-height: 1.15; }
  .advisory-card > p { color: #657086; font-size: 14px; line-height: 1.8; }
  .advisory-card ul { list-style: none; padding: 22px 0 0; margin-top: 26px; border-top: 1px solid var(--line); }
  .advisory-card li { color: #4f5b73; font-size: 13px; line-height: 1.6; margin-top: 10px; display: flex; gap: 9px; }
  .advisory-card li::before { content: '+'; color: var(--primary); }
  .art-caption { position: absolute; inset: auto 0 0; padding: 65px 32px 32px; background: linear-gradient(transparent, rgb(9 20 46 / 85%)); color: white; }
  .art-caption > span { display: block; letter-spacing: .12em; font-size: 12px; color: #b3c4e2; }
  .art-caption strong { font-size: 23px; font-weight: 400; letter-spacing: -.04em; display: block; margin-top: 10px; }
  .principles { margin-top: 26px; }
  .principles > div { border-top: 1px solid var(--line); padding: 15px 0; }
  .principles strong { display: block; font-size: 15px; font-weight: 500; line-height: 1.5; }
  .principles span { display: block; font-size: 14px; color: var(--muted); line-height: 1.6; margin-top: 3px; }
  .contact-inner .eyebrow { color: #adb9d3; margin-bottom: 23px; }
  .contact-secondary { display: flex; align-items: center; justify-content: center; gap: 13px; font-size: 13px; color: #d2d9e8; padding-block: 20px; }
  .contact-secondary:hover { color: var(--accent-cyan); }
  .back-to-top { display: flex; align-items: center; gap: 15px; }
  .menu-toggle { display: none; align-items: center; gap: 10px; border: 1px solid var(--line); border-radius: 5px; padding: 9px 10px; background: white; font-size: 14px; min-height: 44px; }
  .menu-toggle svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.5; }
}
@layer responsive {
  @media (min-width: 1600px) { .hero { gap: 52px; }.hero h1 { font-size: 4.95rem; }.hero-visual { padding: 30px; } }
  @media (max-width: 1200px) { .container { width: calc(100% - 72px); }.main-nav { gap: 21px; }.hero { gap: 25px; }.hero h1 { font-size: 3.85rem; }.hero-description { font-size: 19px; }.hero-visual { padding: 18px; }.visual-topline { margin-bottom: 27px; }.visual-bottomline { margin-top: 25px; }.dashboard-bottom { gap: 14px; }.app-content { padding-inline: 14px; }.metric-row > div { padding-inline: 9px; }.review-list { padding-left: 12px; }.focus-item { gap: 7px; }.focus-icon { width: 23px; height: 25px; }.coverage-note { margin-top: 13px; }.audience-types { gap: 20px; }.audience-types span { font-size: 13px; }.section-intro { gap: 40px; }.platform-explorer { grid-template-columns: .8fr 1.4fr; gap: 18px; }.feature-tab { padding: 21px 13px; gap: 8px; grid-template-columns: 21px 1fr 12px; }.feature-tab strong { font-size: 18px; }.product-panel { padding: 23px 20px 0; }.panel-footer { margin-inline: -20px; padding-inline: 20px; }.advisory-card { padding: 24px; }.card-top { gap: 10px; }.advisory-card li { font-size: 12px; }.approach-section { gap: 52px; }.approach-art { height: 540px; }.contact-inner { padding: 57px; gap: 35px; }.footer-links { padding-right: 20px; gap: 75px; } }
  @media (max-width: 1020px) { .brand-logo { width: 192px; }.brand-risk { font-size: 12px; padding-left: 10px; }.container { width: calc(100% - 56px); }.header-inner { min-height: 82px; }.main-nav { gap: 19px; }.nav-tag { display: none; }.nav-cta { margin-left: 0; }.hero { grid-template-columns: 1fr; gap: 42px; padding-block: 55px; }.hero-copy { max-width: 740px; }.hero h1 { font-size: clamp(3.8rem, 8.1vw, 5.8rem); }.hero-description { font-size: 23px; }.desktop-break { display: none; }.hero-detail { max-width: 610px; }.hero-footnote { margin-top: 27px; }.hero-visual { max-width: 750px; width: 100%; margin: 0 auto; padding: 27px; }.visual-topline { margin-bottom: 27px; }.app-content { padding: 25px; }.app-topbar { padding-inline: 25px; }.app-nav { padding-inline: 25px; }.metric-row > div { padding: 17px; }.dashboard-bottom { gap: 35px; }.heatmap i { aspect-ratio: 1.75; }.review-list { padding-left: 25px; }.focus-item { gap: 10px; margin-top: 20px; }.focus-icon { width: 28px; height: 28px; }.coverage-note { margin-top: 24px; }.audience-inner { display: block; padding-block: 25px; }.audience-inner > p { display: none; }.audience-types { width: 100%; }.section { padding-block: 78px; }.section-intro { align-items: flex-start; gap: 33px; }.section-intro > p { max-width: 315px; }.section-intro h2 { font-size: 2.6rem; }.platform-explorer { grid-template-columns: 1fr; gap: 22px; }.feature-tabs { flex-direction: row; align-items: stretch; }.feature-tab { grid-template-columns: 1fr; gap: 9px; padding: 19px; align-content: start; }.tab-arrow { display: none; }.tab-description { font-size: 13px; }.tab-number { line-height: 1; }.feature-tab strong { font-size: 17px; }.product-panel { min-height: 480px; padding: 27px 28px 0; }.panel-footer { margin-inline: -28px; padding-inline: 28px; }.report-preview { grid-template-columns: .65fr 1fr; }.report-cover h4 { font-size: 36px; }.report-cover { min-height: 260px; }.report-detail { padding: 18px; }.advisory-grid { gap: 15px; }.advisory-card { padding: 22px; }.card-top { display: block; margin-bottom: 28px; }.card-top > span { display: block; margin-top: 15px; font-size: 12px; }.advisory-card h3 { font-size: 27px; }.advisory-card p { font-size: 14px; }.advisory-card ul { padding-top: 15px; }.advisory-card li { font-size: 13px; }.approach-section { gap: 35px; }.approach-art { height: 620px; }.approach-copy h2 { font-size: 2.3rem; }.art-caption { padding: 50px 23px 25px; }.art-caption strong { font-size: 21px; }.contact-inner { padding: 47px; }.contact-inner h2 { font-size: 3.7rem; }.contact-actions { min-width: 226px; }.contact-inner > div > p:not(.eyebrow) { font-size: 14px; }.footer-bottom { flex-wrap: wrap; }.footer-top { margin-bottom: 42px; } }
  @media (max-width: 820px) { html { scroll-padding-top: 88px; }.container { width: calc(100% - 40px); }.header-inner { min-height: 74px; gap: 16px; }.wordmark { gap: 8px; }.brand-logo { width: 174px; }.brand-risk { padding-left: 9px; font-size: 12px; letter-spacing: .12em; }.menu-toggle { display: inline-flex; }.main-nav { display: none; position: absolute; top: 74px; left: 0; right: 0; background: #021a2e; color: #e5eff5; padding: 16px 20px 24px; flex-direction: column; align-items: stretch; gap: 0; border-bottom: 1px solid var(--line); box-shadow: 0 15px 24px rgb(30 44 80 / 7%); }.main-nav.is-open { display: flex; }.main-nav > a:not(.button) { padding: 12px 4px; min-height: 45px; font-size: 16px; }.main-nav > .nav-cta { margin-top: 10px; justify-content: center; font-size: 16px; }.nav-tag { display: inline; }.hero { padding-block: 37px 44px; gap: 27px; }.hero-copy { padding-block: 10px; }.hero h1 { font-size: clamp(2.95rem, 9.5vw, 4.5rem); letter-spacing: -.061em; margin-top: 25px; margin-bottom: 21px; line-height: 1.07; }.hero-description { font-size: 20px; line-height: 1.55; max-width: 470px; }.hero-detail { font-size: 16px; max-width: 460px; }.hero-actions { gap: 22px; margin-top: 24px; }.hero-footnote { margin-top: 26px; }.hero-visual { padding: 17px; border-radius: 9px; }.visual-topline { gap: 5px; margin-bottom: 19px; }.visual-topline > span:first-child { font-size: 12px; letter-spacing: .04em; }.visual-topline > span:last-child { display: none; }.visual-bottomline { margin-top: 18px; }.app-topbar { padding: 13px; gap: 8px; }.app-brand { font-size: 21px; }.workspace-label { border: 0; padding-left: 0; font-size: 12px; }.app-nav { padding-inline: 13px; gap: 23px; }.app-nav > span { padding-block: 9px; }.app-content { padding: 18px 13px; }.app-heading { margin-bottom: 15px; }.app-heading h2 { font-size: 23px; }.app-eyebrow { font-size: 12px; letter-spacing: .035em; }.metric-row { margin-bottom: 19px; }.metric-row > div { padding: 10px 9px; }.metric-row strong { font-size: 28px; }.metric-row small { font-size: 12px; min-height: 34px; }.dashboard-bottom { gap: 16px; grid-template-columns: 1fr; }.risk-map { max-width: 400px; }.heatmap i { aspect-ratio: 1.9; }.heatmap-shell { padding-left: 25px; padding-bottom: 20px; }.heatmap b { width: 23px; height: 23px; }.axis-y { left: -31px; }.review-list { display: none; }.section { padding-block: 62px; }.audience-types { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 20px; }.audience-types span { font-size: 13px; }.audience-inner { padding-block: 23px; }.section-intro { display: block; margin-bottom: 31px; }.section-intro > p { max-width: none; margin-top: 23px; font-size: 16px; }.section-intro h2 { font-size: 2.55rem; line-height: 1.12; }.eyebrow { font-size: 12px; margin-bottom: 16px; }.feature-tabs { flex-direction: column; gap: 7px; }.feature-tab { grid-template-columns: 22px 1fr 18px; gap: 9px; padding: 17px; }.tab-number { line-height: 2; }.tab-arrow { display: block; }.feature-tab strong { font-size: 18px; }.tab-description { font-size: 14px; display: none; }.feature-tab[aria-selected="true"] .tab-description { display: block; }.tab-topic { margin-top: 8px; }.feature-tab[aria-selected="false"] .tab-topic { margin-top: 5px; }.product-panel { min-height: 480px; padding: 22px 18px 0; }.panel-kicker { flex-wrap: wrap; gap: 12px; padding-bottom: 18px; }.panel-kicker .sample-label { font-size: 12px; }.panel-title { margin-top: 24px; margin-bottom: 22px; }.panel-title h3 { font-size: 24px; line-height: 1.15; }.panel-footer { margin-inline: -18px; padding: 17px 18px; }.product-table { min-width: 490px; }.table-scroll { margin-right: -18px; padding-right: 18px; }.platform-endnote { display: block; padding-top: 23px; font-size: 14px; }.platform-endnote .text-link { margin-top: 14px; }.control-links li { gap: 8px; padding-inline: 0; }.control-links strong { font-size: 13px; }.linked-risk { padding: 13px; }.control-links .status { padding: 3px 5px; }.report-preview { grid-template-columns: .7fr 1fr; gap: 15px; }.report-cover { padding: 15px; min-height: 250px; }.report-cover h4 { font-size: 29px; }.report-cover > span:first-child { font-size: 12px; line-height: 1.5; }.report-cover > .report-cover-mark { font-size: 32px; }.report-detail { padding: 0; }.report-detail h4 { font-size: 20px; }.report-detail p { font-size: 13px; }.review-step { font-size: 12px; gap: 6px; }.advisory-section .section-intro h2 { font-size: 2.5rem; }.advisory-grid { grid-template-columns: 1fr; gap: 16px; }.advisory-card { padding: 28px; }.card-top { display: flex; margin-bottom: 25px; }.card-top > span { margin-top: 0; }.advisory-card h3 { font-size: 31px; }.advisory-card h3 br { display: none; }.advisory-card > p { font-size: 16px; }.advisory-card li { font-size: 14px; }.advisory-card ul { margin-top: 22px; }.advisory-bottom { display: block; margin-top: 25px; font-size: 14px; }.advisory-bottom .text-link { margin-top: 18px; }.approach-section { grid-template-columns: 1fr; gap: 35px; }.approach-art { height: 350px; }.approach-art img { object-position: center 45%; }.approach-copy h2 { font-size: 2.55rem; line-height: 1.12; }.approach-copy p:not(.eyebrow) { font-size: 16px; }.art-caption { padding: 60px 25px 25px; }.art-caption strong { font-size: 23px; }.principles strong { font-size: 16px; }.principles span { font-size: 14px; }.contact-inner { display: block; padding: 35px 27px; border-radius: 9px; }.contact-inner h2 { font-size: 3.2rem; }.contact-inner > div > p:not(.eyebrow) { font-size: 16px; }.contact-actions { margin-top: 29px; max-width: 360px; }.contact-actions > p { text-align: left; }.contact-secondary { justify-content: flex-start; }.contact-actions .button { justify-content: space-between; }.site-footer { padding-top: 55px; padding-bottom: 22px; }.footer-top { flex-direction: column; gap: 38px; }.footer-links { gap: 70px; padding-right: 0; }.footer-links > div { font-size: 14px; }.footer-bottom { flex-direction: column; align-items: flex-start; gap: 14px; font-size: 12px; }.footer-bottom > div { gap: 25px; }.back-to-top { margin-top: 4px; min-height: 36px; }.announcement { font-size: 12px; gap: 7px; }.announcement-tag { font-size: 12px; } }
  @media (max-width: 380px) { .brand-logo { width: 140px; }.brand-risk { font-size: 12px; }.container { width: calc(100% - 32px); }.hero h1 { font-size: 2.86rem; }.hero-actions { align-items: flex-start; flex-direction: column; gap: 18px; }.hero-visual { padding: 12px; }.visual-bottomline { flex-wrap: wrap; gap: 3px; }.workspace-label { display: none; }.app-topbar .avatar { margin-left: auto; }.metric-row span { line-height: 1.45; }.metric-row small { display: none; }.app-heading { align-items: flex-end; }.app-heading .sample-label { padding: 2px 4px; font-size: 12px; }.metric-row > div { padding-inline: 8px; }.section-intro h2, .approach-copy h2 { font-size: 2.35rem; }.advisory-section .section-intro h2 { font-size: 2.2rem; }.report-preview { grid-template-columns: 1fr; }.report-cover { min-height: 235px; }.report-cover h4 { font-size: 36px; }.report-detail { padding-bottom: 10px; }.counter-badge { display: none; }.control-links li { flex-wrap: wrap; }.control-links .status { margin-left: 24px; }.contact-inner { padding: 32px 23px; }.contact-inner h2 { font-size: 2.8rem; } }
  @media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; animation: none !important; } }
  @media print { .site-header { position: static; }.menu-toggle, .contact-section { display: none; }.container { width: 100%; }.section { padding-block: 30px; }.hero { padding-block: 30px; }.hero-visual { break-inside: avoid; }.advisory-card, .product-panel { break-inside: avoid; }.site-footer { padding-top: 30px; } }
}

@layer layout {
  body { overflow-x: clip; }
  .main-nav { gap: 25px; }
  .main-nav [aria-current="page"], .main-nav .current-section { color: #65d5ef; }
  .service-nav { background: #eef6f8; border-bottom: 1px solid var(--line); }
  .service-nav-inner { min-height: 58px; display: flex; align-items: stretch; gap: 28px; }
  .service-nav-label { display: flex; align-items: center; flex: 0 0 auto; color: var(--ink); font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
  .service-nav-scroll { display: flex; align-items: stretch; gap: 22px; min-width: 0; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: thin; }
  .service-nav-scroll a { display: inline-flex; align-items: center; min-height: 44px; padding-top: 2px; border-bottom: 2px solid transparent; color: #536777; font-size: 13px; line-height: 1.35; white-space: nowrap; }
  .service-nav-scroll a:hover { color: var(--primary); }
  .service-nav-scroll a[aria-current="page"] { border-bottom-color: var(--primary); color: var(--primary); font-weight: 600; }

  .ways-section { background: var(--ink); color: white; }
  .ways-section .section-intro { align-items: flex-start; }
  .ways-section .section-intro h2 { max-width: 550px; }
  .ways-section .section-intro > p { color: #b9c7d2; }
  .ways-section .eyebrow { color: #70daef; }
  .ways-section .eyebrow-line { background: #70daef; }
  .ways-list { border-top: 1px solid #29475a; }
  .ways-item { display: grid; grid-template-columns: 64px minmax(180px, .55fr) minmax(300px, 1fr) auto; align-items: start; gap: 28px; padding-block: 30px; border-bottom: 1px solid #29475a; }
  .ways-number { color: #72d7ec; font-size: 12px; letter-spacing: .08em; }
  .ways-item h3 { color: white; font-size: 25px; font-weight: 500; }
  .ways-item p { max-width: 620px; color: #bac7d2; line-height: 1.75; }
  .ways-item .text-link { color: #79def2; white-space: nowrap; }
  .ways-item .text-link:hover { color: white; }

  .page-hero { background: linear-gradient(135deg, #eef8fb 0%, #fff 58%, #e8f5f7 100%); border-bottom: 1px solid var(--line); }
  .page-hero-inner { max-width: 1040px; padding-block: 86px 92px; }
  .page-hero h1 { max-width: 900px; font-size: clamp(3.25rem, 6.5vw, 5.7rem); line-height: 1; color: var(--ink); }
  .page-hero h1 span { color: var(--primary); }
  .page-lede { max-width: 820px; margin-top: 30px; color: var(--muted); font-size: 20px; line-height: 1.7; }
  .page-hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 25px; margin-top: 32px; }

  .breadcrumbs ol { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; font-size: 13px; }
  .breadcrumbs li { display: inline-flex; align-items: center; gap: 8px; }
  .breadcrumbs li:not(:last-child)::after { content: '/'; color: #8ca0ab; }
  .breadcrumbs a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
  .breadcrumbs a:hover { color: var(--primary); }

  .service-detail-hero { background: var(--ink); color: white; padding-block: 30px 82px; }
  .service-detail-hero .breadcrumbs { color: #b8c7d0; }
  .service-detail-hero .breadcrumbs a:hover { color: #73d8ed; }
  .service-hero-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(250px, .55fr); align-items: end; gap: 90px; margin-top: 62px; }
  .service-detail-hero .eyebrow { color: #73d8ed; }
  .service-detail-hero .eyebrow-line { background: #73d8ed; }
  .service-detail-hero h1 { max-width: 860px; font-size: clamp(3.1rem, 5.6vw, 5.25rem); line-height: 1; }
  .service-introduction { max-width: 770px; margin-top: 27px; color: #c2ced7; font-size: 19px; line-height: 1.72; }
  .service-detail-hero .button { margin-top: 31px; }
  .service-hero-summary { padding-left: 27px; border-left: 1px solid #315064; }
  .service-hero-summary > span { display: block; margin-bottom: 20px; color: #6ed7ec; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; }
  .service-hero-summary ul { margin: 0; padding: 0; list-style: none; }
  .service-hero-summary li { padding-block: 12px; border-top: 1px solid #284759; color: #d7e0e6; font-size: 14px; line-height: 1.5; }

  .content-section { padding-block: 96px; }
  .content-section.surface { background: var(--surface); }
  .section-split { display: grid; grid-template-columns: minmax(220px, .58fr) minmax(0, 1.42fr); gap: 86px; align-items: start; }
  .section-heading h2 { max-width: 470px; font-size: clamp(2.25rem, 3.9vw, 3.45rem); }
  .section-heading > p:not(.eyebrow) { max-width: 440px; margin-top: 20px; color: var(--muted); line-height: 1.75; }
  .section-heading .scope-note { padding-top: 19px; border-top: 1px solid var(--line); font-size: 13px; }

  .situation-list { margin: 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
  .situation-list li { display: grid; grid-template-columns: 52px 1fr; gap: 20px; padding-block: 23px; border-bottom: 1px solid var(--line); font-size: 19px; line-height: 1.55; letter-spacing: -.015em; }
  .list-number { padding-top: 4px; color: var(--primary); font-size: 12px; letter-spacing: .08em; }

  .deliverable-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0 30px; margin: 0; padding: 0; list-style: none; }
  .deliverable-list li { position: relative; padding: 18px 0 18px 31px; border-top: 1px solid #d5e2e7; color: #364d5c; line-height: 1.65; }
  .deliverable-list li::before { content: '＋'; position: absolute; top: 17px; left: 0; color: var(--primary); font-size: 18px; line-height: 1.4; }
  .deliverable-list li:nth-last-child(-n + 2) { border-bottom: 1px solid #d5e2e7; }
  .deliverable-list.single-column { grid-template-columns: 1fr; }
  .deliverable-list.single-column li:last-child { border-bottom: 1px solid #d5e2e7; }

  .split-deliverables { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
  .deliverable-group { padding: 31px; border: 1px solid #d7e4e9; border-radius: 9px; background: white; }
  .deliverable-group-label { display: block; margin-bottom: 13px; color: var(--primary); font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
  .deliverable-group h3 { margin-bottom: 22px; font-size: 26px; }
  .deliverable-group .deliverable-list li:nth-last-child(-n + 2) { border-bottom: 0; }
  .deliverable-group .deliverable-list li:last-child { border-bottom: 1px solid #d5e2e7; }
  .context-note { grid-column: 1 / -1; margin-top: 3px; padding: 22px 25px; border-left: 3px solid var(--primary); background: #e6f3f7; color: #405867; line-height: 1.7; }

  .phase-groups { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
  .phase-group { padding: 28px; border-top: 3px solid var(--primary); background: white; box-shadow: 0 10px 32px -28px rgb(2 26 46 / 50%); }
  .phase-number { display: block; margin-bottom: 25px; color: var(--primary); font-size: 12px; letter-spacing: .08em; }
  .phase-group h3 { margin-bottom: 18px; font-size: 25px; }
  .phase-group ul { margin: 0; padding-left: 18px; color: #48606f; }
  .phase-group li { margin-top: 11px; line-height: 1.6; }

  .process-section { padding-block: 96px; }
  .process-heading { max-width: 700px; margin-bottom: 45px; }
  .process-heading h2 { font-size: clamp(2.25rem, 3.8vw, 3.35rem); }
  .process-heading p { margin-top: 17px; color: var(--muted); line-height: 1.75; }
  .process-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; margin: 0; padding: 0; list-style: none; counter-reset: service-step; }
  .process-steps.five-steps { grid-template-columns: repeat(5, 1fr); }
  .process-steps li { counter-increment: service-step; padding-top: 20px; border-top: 2px solid var(--primary); }
  .process-steps li::before { content: '0' counter(service-step); display: block; margin-bottom: 16px; color: var(--primary); font-size: 12px; letter-spacing: .08em; }
  .process-steps strong { display: block; margin-bottom: 9px; font-size: 18px; font-weight: 550; line-height: 1.35; }
  .process-steps span { color: var(--muted); font-size: 14px; line-height: 1.65; }

  .sapere-callout { display: grid; grid-template-columns: minmax(230px, .62fr) minmax(0, 1.38fr); gap: 60px; align-items: center; padding: 46px 50px; border: 1px solid #c9e3ec; border-radius: 10px; background: #eaf6f9; }
  .sapere-callout .app-brand { margin-bottom: 17px; }
  .sapere-callout h2 { font-size: clamp(2rem, 3vw, 2.75rem); }
  .sapere-callout-copy p { color: #45606e; line-height: 1.75; }
  .sapere-callout-copy .text-link { margin-top: 19px; color: var(--primary); }

  .related-section { padding-block: 90px; }
  .related-reading { padding-block: 28px 48px; }
  .related-reading h2 { font-size: 21px; margin-bottom: 18px; }
  .related-reading ul { display: grid; gap: 8px; padding: 0; list-style: none; }
  .related-reading a { display: inline-block; padding-block: 10px; color: var(--primary-deep); text-decoration: underline; text-underline-offset: 4px; overflow-wrap: anywhere; }
  .related-reading a:hover { color: var(--ink); }
  .related-header { display: flex; align-items: end; justify-content: space-between; gap: 35px; margin-bottom: 35px; }
  .related-header h2 { font-size: clamp(2.1rem, 3.3vw, 2.9rem); }
  .related-header > a { color: var(--primary); }
  .related-links { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); }
  .related-links a { display: flex; flex-direction: column; justify-content: space-between; gap: 34px; min-height: 175px; padding: 27px 28px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .related-links a:first-child { border-left: 1px solid var(--line); }
  .related-links a:hover { background: var(--surface); color: var(--primary); }
  .related-links strong { max-width: 310px; font-size: 21px; line-height: 1.3; }
  .related-links span { align-self: flex-end; color: var(--primary); font-size: 22px; }

  .service-enquiry { padding-block: 0 24px; }
  .service-enquiry .contact-inner h2 { max-width: 660px; font-size: clamp(2.45rem, 4.3vw, 4rem); }
  .service-enquiry .contact-actions { min-width: 270px; }

  .starting-point-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0 38px; margin: 0; padding: 0; list-style: none; }
  .starting-point-list li { position: relative; padding: 19px 10px 19px 30px; border-top: 1px solid var(--line); color: #344b5a; font-size: 17px; line-height: 1.55; }
  .starting-point-list li::before { content: '→'; position: absolute; left: 0; color: var(--primary); }
  .starting-point-list li:nth-last-child(-n + 2) { border-bottom: 1px solid var(--line); }

  .support-models { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--line); border-radius: 9px; background: white; overflow: hidden; }
  .support-model { padding: 36px; }
  .support-model + .support-model { border-left: 1px solid var(--line); }
  .support-model > span { display: block; margin-bottom: 15px; color: var(--primary); font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
  .support-model h3 { margin-bottom: 15px; font-size: 27px; }
  .support-model p { color: var(--muted); line-height: 1.75; }

  .overview-sapere { display: grid; grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr); gap: 58px; align-items: center; padding: 50px; border-radius: 11px; background: var(--ink); color: white; }
  .overview-sapere h2 { font-size: clamp(2.2rem, 3.8vw, 3.25rem); }
  .overview-sapere h2 span { color: var(--accent-cyan); }
  .overview-sapere p { color: #c0ccd4; line-height: 1.75; }
  .overview-sapere .text-link { margin-top: 20px; color: #76dcef; }
  .overview-sapere .text-link:hover { color: white; }

  .ownership-note { margin-top: 24px; padding: 22px 25px; border-left: 3px solid var(--primary); background: #e7f3f6; color: #3d5665; line-height: 1.7; }
  .independence-note { margin-top: 24px; color: #435c6a; line-height: 1.7; }
}

@layer components {
  .advisory-card { display: flex; flex-direction: column; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
  .advisory-card:hover { border-color: #b9d8e2; box-shadow: 0 18px 34px -30px rgb(2 26 46 / 55%); transform: translateY(-3px); }
  .advisory-card .card-top { margin-bottom: 30px; }
  .advisory-card h3 { font-size: 27px; line-height: 1.2; }
  .advisory-card h3 a:hover { color: var(--primary); }
  .advisory-card .card-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: auto; padding-top: 25px; color: var(--primary); font-size: 14px; font-weight: 550; }
  .advisory-card .card-link span { font-size: 19px; }
  .service-index { color: var(--brand-red); }
}

@layer responsive {
  @media (max-width: 1200px) {
    .main-nav { gap: 17px; font-size: 13px; }
    .nav-cta { margin-left: 3px; }
    .service-nav-inner { gap: 20px; }
    .service-nav-scroll { gap: 18px; }
    .service-hero-grid { gap: 55px; }
    .section-split { gap: 58px; }
    .process-steps.five-steps { gap: 14px; }
  }

  @media (max-width: 1020px) {
    .service-nav-label { display: none; }
    .service-nav-scroll { width: 100%; }
    .service-hero-grid { grid-template-columns: 1fr .5fr; gap: 40px; }
    .section-split { grid-template-columns: .66fr 1.34fr; gap: 45px; }
    .ways-item { grid-template-columns: 48px .55fr 1fr; }
    .ways-item .text-link { grid-column: 3; }
    .process-steps.five-steps { grid-template-columns: repeat(3, 1fr); row-gap: 35px; }
  }

  @media (max-width: 960px) {
    html { scroll-padding-top: 88px; }
    .menu-toggle { display: inline-flex; }
    .main-nav { display: none; position: absolute; top: 82px; left: 0; right: 0; max-height: calc(100vh - 82px); overflow-y: auto; background: #021a2e; color: #e5eff5; padding: 16px max(20px, calc((100% - 908px) / 2)) 24px; flex-direction: column; align-items: stretch; gap: 0; border-bottom: 1px solid var(--line); box-shadow: 0 15px 24px rgb(30 44 80 / 7%); }
    .main-nav.is-open { display: flex; }
    .main-nav > a:not(.button) { min-height: 45px; padding: 12px 4px; font-size: 16px; }
    .main-nav > .nav-cta { justify-content: center; margin-top: 10px; font-size: 16px; }
    .service-hero-grid { grid-template-columns: 1fr; gap: 46px; margin-top: 48px; }
    .service-hero-summary { max-width: 620px; }
    .section-split { grid-template-columns: 1fr; gap: 38px; }
    .section-heading h2, .section-heading > p:not(.eyebrow) { max-width: 690px; }
    .split-deliverables { gap: 16px; }
    .phase-groups { grid-template-columns: 1fr; }
    .phase-group { display: grid; grid-template-columns: 60px minmax(150px, .45fr) 1fr; align-items: start; gap: 20px; }
    .phase-number, .phase-group h3 { margin-bottom: 0; }
    .process-steps { grid-template-columns: 1fr 1fr; row-gap: 36px; }
    .process-steps.five-steps { grid-template-columns: 1fr 1fr; }
    .sapere-callout { gap: 38px; padding: 40px; }
    .ways-item { grid-template-columns: 44px 1fr; gap: 16px 25px; }
    .ways-item p, .ways-item .text-link { grid-column: 2; }
  }

  @media (max-width: 820px) {
    .main-nav { top: 74px; max-height: calc(100vh - 74px); padding-inline: 20px; }
    .service-nav-inner { width: 100%; }
    .service-nav-scroll { padding-inline: 20px; }
    .page-hero-inner { padding-block: 64px 70px; }
    .page-hero h1 { font-size: clamp(2.8rem, 11vw, 4.35rem); }
    .page-lede { font-size: 18px; }
    .service-detail-hero { padding-block: 25px 65px; }
    .service-detail-hero h1 { font-size: clamp(2.75rem, 11vw, 4.2rem); }
    .service-introduction { font-size: 18px; }
    .content-section, .process-section { padding-block: 68px; }
    .situation-list li { font-size: 17px; }
    .deliverable-list { grid-template-columns: 1fr; }
    .deliverable-list li:nth-last-child(-n + 2) { border-bottom: 0; }
    .deliverable-list li:last-child { border-bottom: 1px solid #d5e2e7; }
    .split-deliverables { grid-template-columns: 1fr; }
    .context-note { grid-column: 1; }
    .sapere-callout { grid-template-columns: 1fr; gap: 24px; padding: 34px; }
    .related-section { padding-block: 66px; }
    .related-header { align-items: flex-start; flex-direction: column; }
    .related-links { grid-template-columns: 1fr; }
    .related-links a { min-height: 130px; border-left: 1px solid var(--line); }
    .service-enquiry .contact-actions { min-width: 0; }
    .starting-point-list { grid-template-columns: 1fr; }
    .starting-point-list li:nth-last-child(-n + 2) { border-bottom: 0; }
    .starting-point-list li:last-child { border-bottom: 1px solid var(--line); }
    .support-models { grid-template-columns: 1fr; }
    .support-model + .support-model { border-top: 1px solid var(--line); border-left: 0; }
    .overview-sapere { grid-template-columns: 1fr; gap: 25px; padding: 38px 32px; }
  }

  @media (max-width: 580px) {
    .service-nav-scroll { gap: 17px; }
    .service-nav-scroll a { font-size: 12px; }
    .service-hero-grid { gap: 36px; margin-top: 40px; }
    .service-hero-summary { padding-left: 20px; }
    .service-detail-hero .button, .page-hero .button { width: 100%; }
    .page-hero-actions { align-items: stretch; flex-direction: column; }
    .situation-list li { grid-template-columns: 37px 1fr; gap: 12px; }
    .deliverable-group { padding: 25px 22px; }
    .phase-group { display: block; }
    .phase-number { margin-bottom: 18px; }
    .phase-group h3 { margin-bottom: 18px; }
    .process-steps, .process-steps.five-steps { grid-template-columns: 1fr; gap: 28px; }
    .sapere-callout { padding: 29px 24px; }
    .ways-item { grid-template-columns: 34px 1fr; padding-block: 25px; }
    .ways-item h3 { font-size: 22px; }
    .support-model { padding: 28px 24px; }
    .related-links a { padding: 24px; }
    .table-scroll { margin-right: 0; padding-right: 0; overflow-x: visible; }
    .product-table { min-width: 0; table-layout: fixed; }
    .product-table th, .product-table td { padding-inline: 5px; overflow: hidden; text-overflow: ellipsis; }
    .product-table th:first-child { width: 55%; }
    .product-table th:nth-child(2), .product-table td:nth-child(2) { display: none; }
    .product-table th:nth-child(3) { width: 28%; }
    .product-table th:nth-child(4) { width: 17%; }
    .product-table .status { padding-inline: 5px; }
    .product-table .person-avatar { width: 24px; height: 24px; }
  }

  @media print {
    .service-nav { display: none; }
    .service-detail-hero { background: white; color: var(--ink); padding-block: 20px 35px; }
    .service-detail-hero .breadcrumbs, .service-introduction { color: var(--muted); }
    .service-detail-hero .button, .service-enquiry { display: none; }
    .content-section, .process-section, .related-section { padding-block: 32px; }
    .deliverable-group, .phase-group, .sapere-callout, .overview-sapere { break-inside: avoid; box-shadow: none; }
  }
}

/* Executive services, catalogue and company pages. */
@layer components {
  .main-nav > a { white-space: nowrap; }
  .executive-promise { margin: -7px 0 31px; padding-left: 16px; border-left: 3px solid var(--primary); color: #345769; font-size: 15px; }
  .benefit-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; margin-top: 42px; }
  .benefit-grid article { border-top: 2px solid var(--primary); padding-top: 23px; }
  .benefit-grid article > span, .workflow-grid article > span { display: block; margin-bottom: 20px; color: var(--primary-deep); font-size: 11px; letter-spacing: .09em; font-weight: 600; }
  .benefit-grid h3 { font-size: 25px; line-height: 1.18; margin-bottom: 17px; }
  .benefit-grid p, .about-principles p { color: var(--muted); font-size: 15px; line-height: 1.8; }
  .catalogue-product { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .85fr); gap: 65px; padding: 49px; border: 1px solid #cee4ec; background: #edf8fb; border-radius: 10px; }
  .catalogue-product h2 { max-width: 600px; }
  .catalogue-product > div > p:not(.eyebrow) { margin-top: 22px; color: #415f6f; line-height: 1.8; }
  .catalogue-product .button { margin-top: 27px; }
  .catalogue-product-list { padding: 0; list-style: none; }
  .catalogue-product-list li { padding: 22px 0; border-bottom: 1px solid #c9dfe8; }
  .catalogue-product-list li:first-child { border-top: 1px solid #c9dfe8; }
  .catalogue-product-list strong { display: block; font-weight: 550; font-size: 18px; }
  .catalogue-product-list span { display: block; margin-top: 7px; color: #415f6f; font-size: 14px; }
  .catalogue-note { max-width: 900px; margin-top: 20px; color: var(--muted); font-size: 13px; }
  .about-prose { min-width: 0; }
  .about-prose p { max-width: 680px; color: var(--muted); line-height: 1.85; }
  .about-prose p + p { margin-top: 20px; }
  .about-prose .text-link { margin-top: 23px; color: var(--primary-deep); }
  .about-experience { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 85px; }
  .about-role { margin: 17px 0 26px; color: var(--primary-deep); font-size: 18px; }
  .credentials-panel { padding: 33px; border-top: 3px solid var(--primary); background: #fff; }
  .credentials-panel .eyebrow { line-height: 1.8; }
  .credentials-panel h3 { font-size: 25px; line-height: 1.25; }
  .credentials-panel ul { padding: 0; list-style: none; margin-top: 25px; }
  .credentials-panel li { padding: 18px 0; border-top: 1px solid var(--line); }
  .credentials-panel strong { display: block; font-size: 15px; font-weight: 550; }
  .credentials-panel li span { display: block; margin-top: 5px; font-size: 13px; color: var(--muted); }
  .about-principles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; margin-top: 37px; }
  .about-principles article { padding-top: 25px; border-top: 1px solid #bbdce7; }
  .about-principles h3 { font-size: 28px; margin-bottom: 18px; }
  .workflow-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 23px; }
  .workflow-grid article { padding: 29px; border: 1px solid var(--line); border-radius: 7px; }
  .workflow-grid h3 { font-size: 26px; line-height: 1.2; margin-bottom: 20px; }
  .workflow-grid p { color: var(--muted); font-size: 15px; line-height: 1.8; }
  .workflow-grid .workflow-question { border-top: 1px solid var(--line); margin-top: 24px; padding-top: 20px; font-size: 14px; }
  .workflow-question strong { display: block; color: #2b4e61; font-weight: 550; }
}
@layer responsive {
  @media (max-width: 1100px) {
    .benefit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 35px; }
    .about-experience { gap: 45px; }
    .catalogue-product { padding: 35px; gap: 35px; }
    .workflow-grid { gap: 15px; }
    .workflow-grid article { padding: 25px 21px; }
  }
  @media (max-width: 820px) {
    .about-experience, .catalogue-product { grid-template-columns: 1fr; }
    .about-principles { gap: 25px; }
    .workflow-grid { grid-template-columns: 1fr; }
    .main-nav > a { white-space: normal; }
    .workflow-grid article { padding: 28px; }
  }
  @media (max-width: 580px) {
    .benefit-grid, .about-principles { grid-template-columns: 1fr; gap: 29px; }
    .benefit-grid h3 { font-size: 27px; }
    .credentials-panel, .catalogue-product { padding: 27px 23px; }
    .catalogue-product .button { white-space: normal; }
  }
}

/* Keep the service catalogue visible in the primary navigation. */
@layer components {
  .team-experience-copy { margin-top: 26px; }
}
@layer responsive {
  @media (max-width: 1180px) {
    .menu-toggle { display: inline-flex; }
    .main-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; max-height: calc(100vh - 92px); max-height: calc(100dvh - 92px); overflow-y: auto; overscroll-behavior: contain; padding: 16px 28px 24px; flex-direction: column; align-items: stretch; gap: 0; background: #021a2e; color: #e5eff5; border-bottom: 1px solid var(--line); box-shadow: 0 15px 24px rgb(30 44 80 / 7%); }
    .main-nav.is-open { display: flex; }
    .main-nav > a:not(.button) { min-height: 45px; padding: 12px 4px; font-size: 16px; white-space: normal; }
    .main-nav > .nav-cta { justify-content: center; margin-top: 10px; font-size: 16px; }
  }
  @media (max-width: 820px) {
    .main-nav { padding-inline: 20px; }
  }
}
