/* GEO service offers V1.1: existing homepage grid and editorial reading shell. */
.nav-dropdown-menu.nav-dropdown-menu--services { width: min(720px, calc(100vw - 32px)); left: 50%; transform: translateX(-50%); margin-top: 22px; padding: 16px; }
.nav-dropdown-menu--services::before { content: ""; position: absolute; inset: -22px 0 auto; height: 22px; }
.nav-service-groups { display: grid; grid-template-columns: minmax(0, 55fr) minmax(0, 45fr); gap: 12px 24px; }
.nav-service-group:first-child { grid-row: span 2; padding: 12px; border-radius: 8px; background: #eff7fc; }
.nav-service-group:nth-child(3) { border-top: 1px solid var(--line); padding-top: 14px; }
.nav-dropdown-menu--services a { white-space: normal; }
.nav-dropdown-menu--services .nav-service-group__title { color: var(--primary); font-weight: 600; font-size: 16px; line-height: 1.5; padding: 10px; }
.nav-dropdown-menu--services .nav-service-group__link { color: var(--ink); font-weight: 400; font-size: 14px; line-height: 1.5; padding: 10px; }
.nav-service-group:first-child .nav-service-group__link { position: relative; padding-right: 30px; }
.nav-service-group:first-child .nav-service-group__link::after { content: ""; position: absolute; right: 13px; top: calc(50% - 3px); width: 6px; height: 6px; border: solid currentColor; border-width: 0 1.5px 1.5px 0; transform: rotate(-45deg); opacity: .65; }
.nav-dropdown-menu--services .nav-service-group a:hover, .nav-dropdown-menu--services .nav-service-group a:focus-visible, .nav-dropdown-menu--services .nav-service-group a.active { color: var(--accent); background: var(--bg-soft); }
.nav-dropdown-menu--services .nav-service-group:first-child a:hover, .nav-dropdown-menu--services .nav-service-group:first-child a:focus-visible, .nav-dropdown-menu--services .nav-service-group:first-child a.active { background: #fff; }
.nav-dropdown-menu a.active { color: var(--accent); background: var(--bg-soft); }
.nav-dropdown-menu a:focus-visible, .hp-business-title-link:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.hp-service-grid .hp-business-title-link { color: inherit; }
.hp-business-title-link:hover { text-decoration: underline; text-underline-offset: .2em; text-decoration-thickness: 1px; }
@media (max-width: 860px) {
    .site-nav { max-height: calc(100dvh - 80px); overflow-y: auto; overscroll-behavior: contain; }
    .nav-dropdown .nav-dropdown-menu--services { width: auto; min-width: 0; transform: none; margin-top: 0; padding: 0 14px 10px; }
    .nav-dropdown-menu--services::before { display: none; }
    .nav-service-groups { grid-template-columns: 1fr; gap: 6px; }
    .nav-service-group:first-child { grid-row: auto; padding: 0; border-radius: 0; background: transparent; }
    .nav-service-group:nth-child(3) { border: 0; padding-top: 0; }
    .nav-dropdown-menu--services .nav-service-group__title { font-size: 14px; padding: 10px; }
    .nav-dropdown-menu--services .nav-service-group__link { padding: 11px 10px 11px 24px; min-height: 44px; }
    .nav-service-group:first-child .nav-service-group__link::after { display: none; }
}
.hp-service-grid.hp-service-grid--business { grid-template-rows: auto auto; }
.hp-service-grid--business .hp-service-primary { grid-row: 1 / 3; min-height: 580px; }
.hp-geo-offers { position: relative; z-index: 2; padding: 0; margin: 28px 0 70px; list-style: none; }
.hp-geo-offers li + li { border-top: 1px solid #ffffff22; }
.hp-geo-offers a { display: flex; justify-content: space-between; gap: 12px; padding: 12px 0; color: #fff; font-size: 16px; }
.hp-geo-offers a:hover { color: var(--gold); }
.hp-service-business-support { padding-block: 34px; }
.hp-business-sub-link { display: inline-block; margin-top: 14px; color: var(--accent); font-size: 13px; }
.geo-offer-legacy { margin-top: 20px; font-size: 14px; color: var(--muted); }
.geo-offer-legacy summary { cursor: pointer; padding-block: 10px; }
.geo-offer-legacy a { display: inline-block; margin: 8px 20px 8px 0; color: var(--accent); }
.geo-offer-detail .page-hero { padding-block: 56px; }
.geo-offer-detail .page-hero h1 { font-size: clamp(30px, 3.5vw, 48px); }
.geo-offer-intro { max-width: 820px; line-height: 1.9; margin: 22px 0 28px; color: var(--muted); }
.geo-offer-reading { align-items: start; }
.geo-offer-body > h2:first-child { margin-top: 0; }
.geo-offer-next { margin-top: 56px; padding: 28px; border: 1px solid var(--line); border-radius: 8px; background: var(--bg-soft); }
.geo-offer-next h2 { font-size: 24px; margin: 0 0 20px; }
.geo-offer-related { margin-top: 24px; padding: 24px; border: 1px solid var(--line); border-radius: 8px; }
.geo-offer-related h2 { font-size: 17px; margin: 0 0 16px; }
.geo-offer-related a { display: flex; justify-content: space-between; gap: 10px; padding-block: 12px; color: var(--primary); font-size: 14px; }
.geo-offer-related a[aria-current] { color: var(--accent); font-weight: 700; }
.geo-offer-detail .aside-cta h2 { font-size: 22px; color: #fff; line-height: 1.5; }
.contact-e1-layout .lead-form select { width: 100%; min-height: 48px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 8px; font: inherit; font-size: 16px; background: #fff; color: var(--ink); }
.contact-e1-layout .lead-form select:focus-visible, .hp-geo-offers a:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
@media (max-width: 980px) {
    .hp-service-grid.hp-service-grid--business { grid-template-rows: auto; }
    .hp-service-grid--business .hp-service-primary { grid-row: auto; min-height: 0; padding-bottom: 100px; }
    .geo-offer-detail .article-aside { display: none; }
}
@media (max-width: 640px) {
    .geo-offer-detail .page-hero { padding-block: 34px; }
    .geo-offer-detail .btn-row { flex-direction: column; align-items: stretch; }
    .geo-offer-detail .btn { min-height: 48px; text-align: center; justify-content: center; }
    .hp-geo-offers a { font-size: 15px; min-height: 44px; }
}

/* 贞元营销官网 — 视觉系统
   设计方向：简约高级打底 + 克制的科技质感（数据等宽标签 / 细网格 / AI 推荐意象）
   颜色主色由 config/brand.php 注入（:root 在 layout 内）。
   这里再补充间距、圆角、阴影、等宽字体等设计令牌——想微调风格，先动下面这段 :root。 */
:root {
    --maxw: 1180px;
    --radius: 6px;          /* 普通区块 0–6px */
    --radius-sm: 4px;
    --radius-lg: 10px;      /* 数据面板上限 10px */
    --shadow-sm: 0 1px 2px rgba(8, 40, 63, .06);
    --shadow: 0 10px 30px rgba(8, 40, 63, .10);
    --shadow-lg: 0 30px 70px rgba(8, 40, 63, .22);
    --font-mono: ui-monospace, "SF Mono", "JetBrains Mono", "Cascadia Code", Menlo, Consolas, monospace;
    --grid-color: rgba(18, 158, 232, .06);
    --navy-grad: linear-gradient(158deg, #0b3049 0%, #08283f 55%, #061d30 100%);
    --ring: rgba(18, 158, 232, .38);
    --sp-section: 108px;    /* 桌面端区块上下留白 96–120px */
}

/* ============ Contact and branded 404 (E1 scoped) ============ */
.contact-e1-page .page-hero h1 { text-wrap: balance; }
.article-layout.contact-e1-layout { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); padding-top: 64px; padding-bottom: 80px; }
.article-layout.contact-e1-layout--form-only { grid-template-columns: minmax(0, 1fr); }
.contact-e1-layout :is(#contact-form, #contact-information), .contact-e1-office { scroll-margin-top: 100px; }
.contact-e1-hero-links { flex-wrap: wrap; }
.contact-e1-location-link { display: inline-flex; align-items: center; min-height: 48px; font-size: 14px; }
.contact-e1-eyebrow { display: block; color: var(--accent); font: 700 11px/1.5 var(--font-mono); letter-spacing: .1em; }
.contact-e1-information { padding: 32px; }
.contact-e1-information h2 { margin: 16px 0; font-size: 26px; line-height: 1.5; }
.contact-e1-company { color: var(--muted); font-size: 14px; }
.contact-e1-information dl { margin: 28px 0 0; }
.contact-e1-information dl > div { padding-block: 22px; border-top: 1px solid var(--line); }
.contact-e1-information dl > div:last-child { padding-bottom: 0; }
.contact-e1-information dt { color: var(--muted); font-size: 13px; margin-bottom: 6px; }
.contact-e1-information dd { margin: 0; color: var(--primary); font-size: 18px; overflow-wrap: anywhere; }
.contact-e1-information dd a { display: inline-flex; align-items: center; min-height: 44px; max-width: 100%; }
.contact-e1-information address, .contact-e1-office address { font-style: normal; }
.contact-e1-information .contact-e1-address-link { font-size: 14px; }
.contact-e1-office { padding-block: 80px 96px; border-top: 1px solid var(--line); background: var(--bg-soft); }
.contact-e1-office-inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 72px; }
.contact-e1-office-copy h2 { margin: 18px 0 24px; font-size: 32px; }
.contact-e1-office-copy p { color: var(--muted); font-size: 15px; margin-bottom: 12px; }
.contact-e1-office address { color: var(--primary); font-size: 20px; line-height: 1.8; overflow-wrap: anywhere; }
.contact-e1-map-access { min-width: 0; border-left: 2px solid var(--line); padding-left: 32px; }
.contact-e1-map-access h3 { font-size: 20px; margin: 0 0 16px; }
.contact-e1-map-access p { color: var(--muted); font-size: 15px; line-height: 1.8; }
.contact-e1-map-access .btn { margin-block: 10px 20px; min-height: 48px; }
.contact-e1-map-access .contact-e1-map-notice { margin: 0; font-size: 13px; }
.contact-e1-layout > .article-main { padding: 0; }
.contact-e1-layout > .article-aside { order: 0; }
.contact-e1-layout .contact-e1-required, .contact-e1-layout .contact-e1-help { color: var(--muted); font-size: 13px; margin: 0 0 20px; }
.contact-e1-layout .contact-e1-help { margin: 6px 0 0; }
.contact-e1-layout .req { color: #a63232; }
.contact-e1-layout .lead-form :is(input, textarea) { font-size: 16px; min-height: 48px; }
.contact-e1-layout .lead-form [aria-invalid="true"] { border-color: #a63232; }
.contact-e1-layout .lead-form button { min-height: 48px; }
.contact-e1-errors { padding: 20px; margin-bottom: 24px; border: 1px solid #e7bcbc; border-radius: 8px; background: #fff8f8; color: #8b2727; font-size: 14px; }
.contact-e1-errors ul { padding-left: 20px; margin: 10px 0 0; }
.contact-e1-errors a { color: inherit; text-decoration: underline; }
.contact-e1-layout .lead-form .hp { width: 1px; height: 1px; overflow: hidden; }
.not-found-e1 { background: var(--bg-soft); padding-block: 110px 120px; }
.not-found-e1-inner { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); align-items: center; gap: 64px; }
.not-found-e1-copy { min-width: 0; }
.not-found-e1 .l-eyebrow { color: var(--accent); font: 700 12px/1.5 var(--font-mono); letter-spacing: .1em; }
.not-found-e1 h1 { margin: 22px 0; font-size: clamp(30px, 3.2vw, 46px); line-height: 1.4; }
.not-found-e1-copy > p { max-width: 650px; color: var(--muted); font-size: 17px; line-height: 1.9; }
.not-found-e1-links { display: flex; flex-wrap: wrap; gap: 12px 26px; margin-top: 44px; border-top: 1px solid var(--line); padding-top: 24px; font-size: 14px; }
.not-found-e1-links a { display: inline-flex; align-items: center; min-height: 44px; }
.not-found-e1-number { font: 700 clamp(100px, 13vw, 180px)/1 var(--font-mono); letter-spacing: -.08em; color: #dce6ed; text-align: center; }
@media (max-width: 980px) {
    .article-layout.contact-e1-layout { grid-template-columns: minmax(0, 1fr); gap: 40px; }
    .contact-e1-office-inner { grid-template-columns: minmax(0, 1fr); gap: 32px; }
    .contact-e1-map-access { border-left: 0; border-top: 1px solid var(--line); padding: 28px 0 0; }
    .not-found-e1-inner { grid-template-columns: minmax(0, 1fr); gap: 30px; }
    .not-found-e1-number { display: none; }
}
@media (max-width: 640px) {
    .article-layout.contact-e1-layout { padding-top: 40px; padding-bottom: 56px; }
    .contact-e1-hero-links { gap: 12px; }
    .contact-e1-hero-links .btn { flex: 1 1 auto; justify-content: center; padding-inline: 18px; }
    .contact-e1-location-link { flex-basis: 100%; }
    .contact-e1-information { padding: 26px 22px; }
    .contact-e1-office { padding-block: 56px 64px; }
    .not-found-e1 { padding-block: 64px 76px; }
    .not-found-e1-copy > p { font-size: 16px; }
    .not-found-e1 .btn-row { flex-direction: column; align-items: stretch; }
    .not-found-e1 .btn { justify-content: center; min-height: 48px; }
    .contact-e1-layout .lead-form button { width: 100%; justify-content: center; }
}

/* ============ Insights editorial V2 (Article pages only) ============ */
.insight-v2-index .page-hero { padding-block: 64px; }
.insight-v2-detail .page-hero { padding-block: 44px 40px; }
.insight-v2-detail .page-hero h1 { max-width: 980px; font-size: clamp(30px, 3.4vw, 48px); line-height: 1.4; text-wrap: balance; }
.insight-v2-index .insight-v2-collection { padding-top: 64px; padding-bottom: 100px; }
.insight-v2-kicker { font: 700 11px/1.5 var(--font-mono); letter-spacing: .12em; color: var(--accent); }
.insight-v2-categories { display: flex; flex-wrap: wrap; gap: 12px 28px; align-items: center; padding-bottom: 32px; font-size: 14px; }
.insight-v2-categories > span { color: var(--muted); }
.insight-v2-featured { border-top: 3px solid var(--accent); background: var(--bg-soft); padding: 36px 44px 40px; margin-bottom: 76px; }
.insight-v2-featured:last-child { margin-bottom: 0; }
.insight-v2-card { min-width: 0; padding-bottom: 32px; border-bottom: 1px solid var(--line); }
.insight-v2-card h2 { margin: 15px 0 18px; font-size: clamp(23px, 2vw, 29px); line-height: 1.5; text-wrap: balance; }
.insight-v2-card h2 a { color: var(--primary); }
.insight-v2-card-copy { min-width: 0; }
.insight-v2-card p { margin-bottom: 26px; max-width: 760px; font-size: 16px; line-height: 1.9; color: var(--muted); }
.insight-v2-meta { display: flex; gap: 10px 22px; align-items: center; flex-wrap: wrap; color: var(--muted); font-size: 13px; }
.insight-v2-meta time { font-family: var(--font-mono); }
.insight-v2-card--featured { margin-top: 24px; padding: 0; border: 0; }
.insight-v2-card--featured h2 { max-width: 860px; margin-top: 16px; font-size: clamp(28px, 3vw, 38px); line-height: 1.45; }
.insight-v2-card--featured.insight-v2-card--image { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 40px; align-items: center; }
.insight-v2-card-cover { display: block; margin-bottom: 28px; background: var(--bg-soft); }
.insight-v2-card-cover img { display: block; max-width: 100%; width: auto; height: auto; max-height: 360px; margin-inline: auto; }
.insight-v2-card--featured .insight-v2-card-cover { margin-bottom: 0; }
.insight-v2-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 44px; align-items: start; }
.insight-v2-read { display: inline-flex; align-items: center; gap: 16px; min-height: 44px; font-size: 14px; font-weight: 700; }
.insight-v2-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.insight-v2-empty { padding-block: 32px; max-width: 700px; }
.insight-v2-empty h2 { margin-block: 20px; font-size: 28px; }
.insight-v2-empty p { color: var(--muted); }
.insight-v2-detail .insight-v2-meta { margin-top: 20px; }
.insight-v2-detail .page-hero .insight-v2-meta-item { display: inline-flex; align-items: center; gap: 7px; max-width: 100%; }
.insight-v2-detail .page-hero .insight-v2-meta-item svg { width: 18px; height: 18px; flex-shrink: 0; color: inherit; }
.insight-v2-detail .insight-v2-summary { margin: 0 0 30px; padding: 20px 24px; border-left: 3px solid var(--accent); border-radius: 0 8px 8px 0; background: var(--bg-soft); color: var(--ink); font-size: 18px; line-height: 1.9; overflow-wrap: anywhere; }
.insight-v2-cover { margin: 0 0 32px; }
.insight-v2-cover img { display: block; width: auto; max-width: 100%; height: auto; max-height: 700px; }
.insight-v2-detail .insight-v2-reading { max-width: var(--maxw); display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 56px; padding-top: 44px; padding-bottom: 64px; }
.insight-v2-article { min-width: 0; width: 100%; }
.insight-v2-aside { min-width: 0; align-self: stretch; }
.insight-v2-sidebar { display: flex; flex-direction: column; gap: 20px; position: sticky; top: 92px; max-height: calc(100dvh - 112px); overflow-y: auto; }
.insight-v2-toc.toc { max-width: none; margin: 0; flex-shrink: 0; }
.insight-v2-toc summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 30px; cursor: pointer; list-style: none; }
.insight-v2-toc summary::-webkit-details-marker { display: none; }
.insight-v2-toc-toggle { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border: 1px solid var(--line); border-radius: 7px; color: var(--muted); background: #fff; flex-shrink: 0; }
.insight-v2-toc .toc-item a[aria-current="location"] { color: var(--accent); font-weight: 700; }
.insight-v2-toc .toc-item:has(a[aria-current="location"])::before { border-color: var(--accent); }
.insight-v2-toc :is(a, summary):focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 2px; }
.insight-v2-aside-cta { flex-shrink: 0; }
.insight-v2-body.prose { max-width: none; padding: 0; margin: 0; font-size: 16px; line-height: 1.7; overflow-wrap: anywhere; }
.insight-v2-body > :first-child { margin-top: 0; }
.insight-v2-body h2 { margin: 36px 0 16px; scroll-margin-top: 100px; }
.insight-v2-body h3 { margin: 0 0 10px; font-size: 20px; line-height: inherit; }
.insight-v2-body p { margin: 0 0 16px; }
.insight-v2-body ul, .insight-v2-body ol { padding-left: 22px; margin-block: 16px; }
.insight-v2-body li { margin: 0; }
.insight-v2-body a { text-decoration: underline; text-underline-offset: 4px; }
.insight-v2-body img { display: block; max-width: 100% !important; width: auto; height: auto !important; margin: 32px auto; object-fit: contain; }
.insight-v2-body figure { max-width: 100%; margin: 32px 0; }
.insight-v2-body figcaption { color: var(--muted); font-size: 13px; line-height: 1.8; }
.insight-v2-body blockquote { margin: 30px 0; padding: 18px 26px; background: var(--bg-soft); border-left: 3px solid var(--accent); }
.insight-v2-body table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; font-size: 15px; }
.insight-v2-body td, .insight-v2-body th { padding: 12px; border: 1px solid var(--line); }
.insight-v2-body pre { max-width: 100%; overflow-x: auto; }
.insight-v2-faq { margin-top: 56px; padding: 32px 0 0; border-top: 1px solid var(--line); }
.insight-v2-faq > h2 { margin: 0 0 28px; font-size: 26px; }
.insight-v2-faq h3 { font-size: 18px; margin-bottom: 14px; }
.insight-v2-faq p { font-size: 16px; line-height: 1.95; color: var(--muted); }
.insight-v2-tags { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 40px; }
.insight-v2-tags span { padding: 6px 12px; background: var(--bg-soft); color: var(--muted); font-size: 12px; }
.insight-v2-end { margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--line); font-size: 14px; }
.insight-v2-related { padding-block: 80px 96px; border-top: 1px solid var(--line); background: var(--bg-soft); }
.insight-v2-related .insight-v2-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 36px; }
.insight-v2-related .insight-v2-card h2 { font-size: 23px; }
.insight-v2-cta { padding-block: 88px; }
.insight-v2-cta h2 { margin: 20px 0; font-size: clamp(26px, 3vw, 36px); text-wrap: balance; }
.insight-v2-cta p { color: #c2d4e0; font-size: 17px; }
@media (max-width: 980px) {
    .insight-v2-detail .insight-v2-reading { grid-template-columns: minmax(0, 1fr); gap: 0; padding-top: 28px; }
    .insight-v2-aside { display: none; }
    .insight-v2-reading > .insight-v2-toc { margin-bottom: 26px; }
    .insight-v2-toc summary { min-height: 44px; }
    .insight-v2-toc a { display: inline-block; min-height: 44px; padding-block: 8px; }
    .insight-v2-toc .toc-item { padding-block: 0; }
    .insight-v2-related .insight-v2-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .insight-v2-index .page-hero { padding-block: 40px; }
    .insight-v2-detail .page-hero { padding-block: 30px; }
    .insight-v2-detail .page-hero .insight-v2-meta { column-gap: 14px; }
    .insight-v2-index .insight-v2-collection { padding-top: 40px; padding-bottom: 64px; }
    .insight-v2-featured { padding: 26px 22px 30px; margin-bottom: 52px; }
    .insight-v2-grid, .insight-v2-related .insight-v2-grid, .insight-v2-card--featured.insight-v2-card--image { grid-template-columns: minmax(0, 1fr); gap: 36px; }
    .insight-v2-related { padding-block: 56px 64px; }
    .insight-v2-detail .insight-v2-summary { padding: 16px 18px; font-size: 16px; margin-bottom: 26px; }
    .insight-v2-body blockquote { padding: 16px 18px; }
    .insight-v2-cta { padding-block: 64px; }
    .insight-v2-cta .btn-row { flex-direction: column; }
    .insight-v2-cta .btn { justify-content: center; text-align: center; min-height: 48px; }
}

/* ============ Editorial Case Study V2 ============ */
.case-v2-index .page-hero, .case-v2-detail .page-hero { padding-bottom: 64px; }
.case-v2-detail .page-hero h1 { max-width: 960px; }
.case-v2-index .case-v2-portfolio { padding-top: 64px; padding-bottom: 96px; }
.case-v2-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 56px 40px; align-items: start; }
.case-v2-grid[data-case-count="1"] { grid-template-columns: minmax(0, 840px); }
.case-v2-card { min-width: 0; padding-bottom: 30px; border-bottom: 1px solid var(--line); }
.case-v2-card-media { display: grid; place-items: center; height: 288px; margin-bottom: 28px; padding: 18px; background: var(--bg-soft); border: 1px solid var(--line); }
.case-v2-card-media img { display: block; max-width: 100%; max-height: 250px; width: auto; height: auto; object-fit: contain; }
.case-v2-card--text { padding: 34px 30px 30px; background: var(--bg-soft); border-top: 2px solid var(--accent); }
.case-v2-card-client { margin: 0 0 12px; color: var(--muted); font-size: 13px; }
.case-v2-card :is(h2, h3) { margin: 0 0 18px; font-size: clamp(23px, 2.2vw, 30px); line-height: 1.4; letter-spacing: -.4px; }
.case-v2-card :is(h2, h3) a { color: var(--primary); }
.case-v2-excerpt { margin: 18px 0 22px; color: var(--muted); font-size: 15px; line-height: 1.9; }
.case-v2-read-link { display: inline-flex; gap: 12px; align-items: center; color: var(--accent); font-size: 14px; font-weight: 700; }
.case-v2-read-link .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.case-v2-tags { display: flex; flex-wrap: wrap; gap: 7px; }
.case-v2-tags span { display: inline-block; padding: 4px 9px; color: #32617a; background: #edf5fa; font-size: 12px; }
.case-v2-empty { max-width: 760px; padding: 46px; background: var(--bg-soft); border-block: 1px solid var(--line); }
.case-v2-empty > span, .case-v2-kicker { color: var(--accent); font: 700 11px/1.5 var(--font-mono); letter-spacing: .12em; }
.case-v2-empty h2 { margin: 18px 0; color: var(--primary); font-size: 30px; }
.case-v2-empty p { margin-bottom: 28px; color: var(--muted); }
.case-v2-cover { display: grid; place-items: center; margin: 40px 0 0; padding: 24px; background: #fff; border: 1px solid var(--line); }
.case-v2-cover img { display: block; max-width: 100%; max-height: 620px; width: auto; height: auto; object-fit: contain; }
.case-v2-detail .case-v2-reading { padding-top: 64px; padding-bottom: 96px; }
.case-v2-reading--aside { display: grid; grid-template-columns: minmax(0, 1fr) 270px; gap: 72px; align-items: start; }
.case-v2-article { min-width: 0; max-width: 800px; }
.case-v2-body.prose { max-width: none; margin: 0; padding: 0; font-size: 17px; line-height: 1.95; overflow-wrap: anywhere; }
.case-v2-body > :first-child { margin-top: 0; }
.case-v2-body h2 { margin: 54px 0 22px; font-size: 30px; line-height: 1.4; }
.case-v2-body h3 { margin: 36px 0 16px; font-size: 22px; line-height: 1.5; }
.case-v2-body p { margin: 0 0 22px; }
.case-v2-body img { display: block; max-width: 100% !important; width: auto; height: auto !important; margin: 30px auto; object-fit: contain; }
.case-v2-body figure { max-width: 100%; margin: 30px 0; }
.case-v2-body figcaption { color: var(--muted); font-size: 13px; line-height: 1.7; }
.case-v2-body blockquote { margin: 28px 0; padding: 16px 24px; border-left: 3px solid var(--accent); background: var(--bg-soft); }
.case-v2-body table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; }
.case-v2-body td, .case-v2-body th { padding: 12px; border: 1px solid var(--line); }
.case-v2-body pre { max-width: 100%; overflow-x: auto; white-space: pre-wrap; }
.case-v2-article-end { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 22px; margin-top: 52px; padding-top: 28px; border-top: 1px solid var(--line); font-size: 14px; }
.case-v2-project { min-width: 0; padding: 28px 24px; background: var(--bg-soft); border-top: 2px solid var(--primary); }
.case-v2-project h2 { margin: 0 0 22px; color: var(--primary); font-size: 18px; }
.case-v2-facts { margin: 0; }
.case-v2-facts > div + div { margin-top: 22px; }
.case-v2-facts dt { margin-bottom: 7px; color: var(--muted); font-size: 12px; }
.case-v2-facts dd { margin: 0; color: var(--ink); font-size: 14px; line-height: 1.8; overflow-wrap: anywhere; white-space: pre-line; }
.case-v2-facts ul { margin: 0; padding-left: 18px; }
.case-v2-legacy { margin-top: 26px; padding-top: 20px; border-top: 1px solid var(--line); }
.case-v2-legacy summary { cursor: pointer; color: var(--primary); font-size: 14px; font-weight: 700; }
.case-v2-legacy[open] summary { margin-bottom: 22px; }
.case-v2-related { padding: 80px 0 96px; border-top: 1px solid var(--line); }
.case-v2-related .case-v2-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; }
.case-v2-related .case-v2-card-media { height: 180px; }
.case-v2-related .case-v2-card-media img { max-height: 144px; }
.case-v2-related .case-v2-card :is(h2, h3) { font-size: 21px; }
.case-v2-related .case-v2-card--text { padding: 24px; }
.case-v2-cta { padding-block: 88px; }
@media (max-width: 980px) {
    .case-v2-reading--aside { grid-template-columns: minmax(0, 1fr); gap: 48px; }
    .case-v2-project { max-width: 800px; }
    .case-v2-related .case-v2-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .case-v2-index .page-hero, .case-v2-detail .page-hero { padding-bottom: 44px; }
    .case-v2-grid, .case-v2-related .case-v2-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
    .case-v2-index .case-v2-portfolio, .case-v2-detail .case-v2-reading { padding-top: 40px; padding-bottom: 64px; }
    .case-v2-card-media { height: 230px; padding: 14px; margin-bottom: 22px; }
    .case-v2-card-media img { max-height: 200px; }
    .case-v2-card--text, .case-v2-empty { padding: 28px 22px; }
    .case-v2-cover { margin-top: 28px; padding: 12px; }
    .case-v2-cover img { max-height: none; }
    .case-v2-body.prose { font-size: 16px; line-height: 1.95; }
    .case-v2-body h2 { margin-top: 40px; font-size: 26px; }
    .case-v2-body h3 { font-size: 21px; }
    .case-v2-related { padding-block: 60px; }
    .case-v2-cta { padding-block: 64px; }
    .case-v2-read-link { min-height: 44px; }
}

/* ============ Scenario Solution V2 ============ */
.solution-v2-index { max-width: var(--maxw); margin: 0 auto; padding: 56px 24px 96px; }
.solution-v2-index .list-filter { margin-bottom: 36px; }
.solution-v2-empty { max-width: 760px; padding: 54px; border: 1px solid var(--line); background: var(--bg-soft); }
.solution-v2-empty > span, .solution-v2-kicker, .solution-v2-eyebrow, .solution-v2-section-head > span, .solution-v2-final > .container > span { color: var(--accent); font: 700 11px/1.5 var(--font-mono); letter-spacing: .12em; }
.solution-v2-empty h2 { margin: 12px 0; color: var(--primary); font-size: 29px; }
.solution-v2-empty p { max-width: 600px; margin: 0 0 26px; color: var(--muted); line-height: 1.8; }
.solution-v2-featured { display: grid; grid-template-columns: minmax(300px, .85fr) minmax(0, 1.15fr); min-height: 390px; border-block: 1px solid var(--line); }
.solution-v2-featured-visual { position: relative; min-height: 330px; overflow: hidden; background: linear-gradient(145deg, #dcebf3, #f7fbfd); }
.solution-v2-featured-visual img { width: 100%; height: 100%; object-fit: cover; }
.solution-v2-featured-visual span::before, .solution-v2-featured-visual span::after { content: ""; position: absolute; width: 150px; height: 150px; right: 19%; top: 27%; transform: rotate(45deg); background: linear-gradient(145deg, #80aac0, #dbeaf0); box-shadow: -28px 28px 60px rgba(8,40,63,.16); }
.solution-v2-featured-visual span::after { width: 92px; height: 92px; right: 46%; top: 50%; opacity: .7; }
.solution-v2-featured-body { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 54px 60px; }
.solution-v2-featured-body h2 { margin: 12px 0 16px; font-size: clamp(28px, 3vw, 42px); line-height: 1.22; }
.solution-v2-featured-body h2 a, .solution-v2-card h2 a { color: var(--primary); }
.solution-v2-featured-body p { max-width: 650px; margin: 0 0 22px; color: var(--muted); font-size: 16px; line-height: 1.8; }
.solution-v2-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 24px; }
.solution-v2-tags span { padding: 6px 10px; color: #32617a; background: #eef8fc; font-size: 12px; }
.solution-v2-link { display: inline-flex; gap: 12px; margin-top: 10px; color: var(--accent); font-weight: 700; }
.solution-v2-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.solution-v2-card { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; padding: 40px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.solution-v2-card:nth-child(2n) { border-right: 0; }
.solution-v2-card-cover { width: 100%; aspect-ratio: 16 / 8; margin-bottom: 25px; overflow: hidden; }
.solution-v2-card-cover img { width: 100%; height: 100%; object-fit: cover; }
.solution-v2-card h2 { margin: 10px 0 12px; color: var(--primary); font-size: 25px; line-height: 1.35; }
.solution-v2-card p { flex-grow: 1; margin: 0 0 18px; color: var(--muted); line-height: 1.75; }

.solution-v2-detail { overflow: clip; }
.solution-v2-hero { position: relative; padding: 26px 0 92px; color: #d7e5ef; background: var(--navy-grad); }
.solution-v2-hero::before { content: ""; position: absolute; inset: 0; pointer-events: none; background-image: linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px); background-size: 32px 32px; -webkit-mask: linear-gradient(90deg, #000, transparent); mask: linear-gradient(90deg, #000, transparent); }
.solution-v2-hero .container { position: relative; }
.solution-v2-hero .breadcrumb, .solution-v2-hero .breadcrumb a, .solution-v2-hero .breadcrumb .current { color: #96acbd; }
.solution-v2-hero-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(350px, .75fr); gap: 72px; align-items: center; padding-top: 40px; }
.solution-v2-hero-grid.is-text-only { grid-template-columns: minmax(0, 850px); }
.solution-v2-hero h1 { max-width: 880px; margin: 12px 0 20px; color: #fff; font-size: clamp(42px, 5.2vw, 66px); line-height: 1.14; letter-spacing: -1.8px; }
.solution-v2-lead { max-width: 760px; margin: 0 0 25px; color: #b8cad7; font-size: 18px; line-height: 1.85; }
.solution-v2-hero .solution-v2-tags span { color: #b9d9ec; background: rgba(255,255,255,.08); }
.solution-v2-hero .btn-row { margin-top: 30px; }
.solution-v2-hero-media { min-height: 360px; margin: 0; overflow: hidden; border: 1px solid rgba(255,255,255,.14); }
.solution-v2-hero-media img { width: 100%; height: 100%; min-height: 360px; object-fit: cover; }
.solution-v2-section { padding: 104px 0; }
.solution-v2-section:nth-of-type(even) { background: var(--bg-soft); }
.solution-v2-split { display: grid; grid-template-columns: minmax(260px, .62fr) minmax(0, 1.18fr); gap: 88px; align-items: start; }
.solution-v2-section-head { max-width: 750px; margin-bottom: 42px; }
.solution-v2-section-head h2 { margin: 9px 0 13px; color: var(--primary); font-size: clamp(31px, 3.4vw, 44px); line-height: 1.2; letter-spacing: -.8px; }
.solution-v2-section-head p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.8; }
.solution-v2-split .solution-v2-section-head { margin: 0; }
.solution-v2-richtext { max-width: 760px; padding: 0; }
.solution-v2-journey { background: #fff; }
.solution-v2-journey-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; padding: 0; border-block: 1px solid var(--line); list-style: none; }
.solution-v2-journey-list li { min-width: 0; padding: 28px 22px 31px; border-right: 1px solid var(--line); }
.solution-v2-journey-list li:last-child { border-right: 0; }
.solution-v2-journey-list b { display: block; color: var(--accent); font: 700 11px/1.5 var(--font-mono); }
.solution-v2-journey-list strong { display: block; margin: 18px 0 9px; color: var(--primary); font-size: 17px; }
.solution-v2-journey-list span { display: block; color: var(--muted); font-size: 13px; line-height: 1.65; }
.solution-v2-architecture { color: #cbdce8; background: var(--navy-grad) !important; }
.solution-v2-architecture .solution-v2-section-head h2 { color: #fff; }
.solution-v2-architecture .solution-v2-section-head p { color: #9fb5c5; }
.solution-v2-service-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid rgba(255,255,255,.13); border-left: 1px solid rgba(255,255,255,.13); }
.solution-v2-service-grid[data-service-count="1"] { grid-template-columns: 1fr; }
.solution-v2-service-grid[data-service-count="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.solution-v2-service-grid a { min-width: 0; padding: 34px 32px; border-right: 1px solid rgba(255,255,255,.13); border-bottom: 1px solid rgba(255,255,255,.13); color: inherit; }
.solution-v2-service-grid a > span { color: var(--accent2); font: 700 11px/1.5 var(--font-mono); }
.solution-v2-service-grid h3 { margin: 18px 0 10px; color: #fff; font-size: 23px; }
.solution-v2-service-grid p { margin: 0 0 20px; color: #a8bdcb; line-height: 1.7; }
.solution-v2-service-grid b { color: var(--accent2); font-size: 13px; }
.solution-v2-line-list { border-top: 1px solid var(--line); }
.solution-v2-line-list > div { display: grid; grid-template-columns: 48px minmax(180px, .55fr) minmax(0, 1fr); gap: 22px; padding: 27px 0; border-bottom: 1px solid var(--line); align-items: start; }
.solution-v2-line-list b { color: var(--accent); font: 700 11px/1.6 var(--font-mono); }
.solution-v2-line-list h3 { margin: 0; color: var(--primary); font-size: 18px; }
.solution-v2-line-list p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.7; }
.solution-v2-delivery { background: #eef7fc !important; }
.solution-v2-delivery-list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; }
.solution-v2-delivery-list li { position: relative; min-width: 0; padding: 25px 24px; border-top: 1px solid #cddfe9; border-bottom: 1px solid #cddfe9; }
.solution-v2-delivery-list li + li { border-left: 1px solid #cddfe9; }
.solution-v2-delivery-list span { color: var(--accent); font: 700 11px/1.5 var(--font-mono); }
.solution-v2-delivery-list strong { display: block; margin: 18px 0 10px; color: var(--primary); }
.solution-v2-delivery-list p { margin: 0; color: var(--muted); font-size: 12.5px; line-height: 1.65; }
.solution-v2-deliverable-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.solution-v2-deliverable-grid li { position: relative; padding: 22px 22px 22px 48px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--primary); font-weight: 700; }
.solution-v2-deliverable-grid li:nth-child(2n) { border-right: 0; }
.solution-v2-deliverable-grid li::before { content: "✓"; position: absolute; left: 21px; color: var(--accent); }
.solution-v2-evidence { background: var(--bg-soft); }
.solution-v2-case-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.solution-v2-case-grid a { min-width: 0; padding: 34px 30px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.solution-v2-case-grid a:nth-child(2n) { border-right: 0; }
.solution-v2-case-grid span { color: var(--accent); font: 700 11px/1.5 var(--font-mono); }
.solution-v2-case-grid h3 { margin: 13px 0 8px; color: var(--primary); font-size: 22px; }
.solution-v2-case-grid p { color: var(--muted); }
.solution-v2-case-grid b { color: var(--accent); font-size: 13px; }
.solution-v2-fit-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.solution-v2-fit-grid > div { padding: 36px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.solution-v2-fit-grid > div:last-child { border-right: 0; }
.solution-v2-fit-grid h3 { margin: 0 0 20px; color: var(--primary); font-size: 23px; }
.solution-v2-fit-grid ul { display: grid; gap: 12px; margin: 0; padding-left: 20px; color: var(--muted); line-height: 1.7; }
.solution-v2-final { padding: 94px 0; color: #b7c9d7; background: var(--navy-grad); }
.solution-v2-final h2 { max-width: 900px; margin: 14px 0; color: #fff; font-size: clamp(32px, 4vw, 50px); line-height: 1.2; }
.solution-v2-final p { max-width: 720px; margin: 0 0 28px; line-height: 1.8; }

@media (max-width: 900px) {
    .solution-v2-featured, .solution-v2-hero-grid, .solution-v2-split { grid-template-columns: 1fr; gap: 42px; }
    .solution-v2-featured-body { padding: 40px 34px; }
    .solution-v2-journey-list, .solution-v2-delivery-list { grid-template-columns: 1fr; }
    .solution-v2-service-grid[data-service-count] { grid-template-columns: 1fr; }
    .solution-v2-journey-list li, .solution-v2-delivery-list li, .solution-v2-delivery-list li + li { border-right: 0; border-left: 0; border-bottom: 1px solid var(--line); }
    .solution-v2-delivery-list li + li { border-top: 0; }
}

@media (max-width: 640px) {
    .solution-v2-index { padding: 38px 20px 72px; }
    .solution-v2-empty { padding: 32px 24px; }
    .solution-v2-featured { grid-template-columns: 1fr; }
    .solution-v2-featured-visual { min-height: 210px; }
    .solution-v2-featured-body { padding: 31px 0 0; }
    .solution-v2-grid, .solution-v2-service-grid, .solution-v2-deliverable-grid, .solution-v2-case-grid, .solution-v2-fit-grid { grid-template-columns: 1fr; }
    .solution-v2-card, .solution-v2-deliverable-grid li, .solution-v2-case-grid a, .solution-v2-fit-grid > div { border-right: 0; }
    .solution-v2-card { padding: 30px 0; }
    .solution-v2-hero { padding: 22px 0 68px; }
    .solution-v2-hero-grid { padding-top: 24px; }
    .solution-v2-hero h1 { font-size: 39px; letter-spacing: -1px; }
    .solution-v2-hero .btn-row, .solution-v2-final .btn-row { width: 100%; flex-direction: column; }
    .solution-v2-hero .btn, .solution-v2-final .btn { justify-content: center; text-align: center; }
    .solution-v2-section { padding: 72px 0; }
    .solution-v2-section-head { margin-bottom: 30px; }
    .solution-v2-section-head h2 { font-size: 31px; }
    .solution-v2-line-list > div { grid-template-columns: 40px minmax(0, 1fr); }
    .solution-v2-line-list p { grid-column: 2; }
    .solution-v2-final { padding: 72px 0; }
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
    margin: 0;
    font-family: -apple-system, "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif;
    color: var(--ink);
    background: var(--bg);
    line-height: 1.7;
    font-size: 16px;
    -webkit-font-smoothing: antialiased;
}
a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }
img { max-width: 100%; height: auto; }
.container { max-width: var(--maxw); margin: 0 auto; padding: 0 24px; }
mark { background: transparent; color: inherit; }

/* ============ Header / nav（深蓝，全站吸顶） ============ */
.site-header { position: sticky; top: 0; background: rgba(8,40,63,.82); border-bottom: 1px solid rgba(255,255,255,.08); backdrop-filter: saturate(150%) blur(14px); z-index: 50; }
.header-inner { display: flex; align-items: center; justify-content: space-between; height: 72px; }
.brand-name { font-size: 20px; font-weight: 800; color: #fff; letter-spacing: .5px; }
.brand { flex-shrink: 0; display: inline-flex; align-items: center; }
.brand:hover { text-decoration: none; }
.nav-toggle { display: none; align-items: center; justify-content: center; width: 44px; height: 44px; border: 1px solid rgba(255,255,255,.22); border-radius: 8px; background: transparent; color: #fff; cursor: pointer; padding: 0; flex-shrink: 0; }
.nav-toggle:hover { border-color: var(--accent2); color: var(--accent2); }
.nav-toggle .ico-close { display: none; }
.brand-logo { height: 40px; width: auto; display: block; }
.site-nav { display: flex; align-items: center; gap: 28px; }
.site-nav a { color: rgba(233,242,249,.82); font-size: 15.5px; transition: color .15s; font-weight: 400; }
.site-nav a:hover { text-decoration: none; color: #fff; }
.site-nav a.active { color: #fff; font-weight: 600; }
.site-nav .nav-cta { background: var(--gold); color: #08283f; font-weight: 700; padding: 9px 20px; border-radius: 6px; box-shadow: 0 8px 18px rgba(255,181,28,.28); }
.site-nav .nav-cta:hover { text-decoration: none; transform: translateY(-1px); box-shadow: 0 12px 24px rgba(255,181,28,.4); }

/* ============ Section scaffolding ============ */
section { padding: var(--sp-section) 0; }
.section-soft { background: var(--bg-soft); }
.section-navy { background: var(--navy-grad); color: #cfe0ee; position: relative; overflow: hidden; }
.section-navy h2, .section-navy h3 { color: #fff; }

h1 { font-size: 56px; line-height: 1.14; color: var(--primary); margin: 0 0 18px; font-weight: 800; letter-spacing: -1px; }
h2 { font-size: 40px; line-height: 1.22; color: var(--primary); margin: 0 0 16px; font-weight: 800; letter-spacing: -.6px; }
h3 { font-size: 20px; margin: 0 0 10px; font-weight: 700; }
.eyebrow { color: var(--accent); font-weight: 700; letter-spacing: 1.5px; font-size: 12px; text-transform: uppercase; }
.lead { font-size: 18px; color: var(--muted); max-width: 760px; }

/* 区块标题：编号(等宽) + 中文标题 + 副标题 */
.section-head { margin-bottom: 40px; max-width: 720px; }
.section-head .kicker { font-family: var(--font-mono); font-size: 12px; letter-spacing: 1px; color: var(--accent); display: inline-flex; align-items: center; gap: 8px; margin-bottom: 14px; }
.section-head .kicker::before { content: ""; width: 24px; height: 1px; background: var(--accent2); display: inline-block; }
.section-head h2 { margin: 0; }
.section-head p { color: var(--muted); margin: 12px 0 0; font-size: 16.5px; }
.section-navy .section-head p { color: #9db6cc; }

/* ============ Buttons ============ */
.btn { display: inline-flex; align-items: center; gap: 8px; padding: 13px 26px; border-radius: var(--radius); font-weight: 700; transition: transform .15s, box-shadow .15s, opacity .15s; }
.btn:hover { text-decoration: none; }
.btn-primary { background: var(--gold); color: var(--primary); box-shadow: 0 8px 20px rgba(244,178,35,.3); }
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(244,178,35,.42); }
.btn-ghost { border: 1px solid var(--line); color: var(--primary); background: #fff; }
.btn-ghost:hover { border-color: var(--accent); color: var(--accent); }
.btn-row { display: flex; gap: 14px; margin-top: 30px; flex-wrap: wrap; }
.section-navy .btn-ghost { background: transparent; border-color: rgba(255,255,255,.28); color: #fff; }
.section-navy .btn-ghost:hover { border-color: #fff; }

/* ============ Hero ============ */
.hero { position: relative; min-height: calc(100vh - 74px); display: grid; grid-template-rows: 1fr auto; overflow: hidden; background:
    radial-gradient(1000px 520px at 82% 0%, rgba(2,174,238,.13), transparent 58%),
    radial-gradient(760px 460px at -5% 105%, rgba(27,134,207,.08), transparent 55%),
    linear-gradient(180deg, var(--bg-soft), #fbfdff); }
.hero::before { /* 细网格纹理 */
    content: ""; position: absolute; inset: 0;
    background-image: linear-gradient(var(--grid-color) 1px, transparent 1px), linear-gradient(90deg, var(--grid-color) 1px, transparent 1px);
    background-size: 38px 38px; -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 58%, transparent 94%); mask-image: linear-gradient(180deg, #000 0%, #000 58%, transparent 94%);
}
.hero .container { position: relative; z-index: 1; }
.hero-main { align-self: center; padding-top: 44px; padding-bottom: 44px; }
.hero-strip { padding-bottom: 24px; padding-top: 12px; display: flex; align-items: center; gap: 28px; flex-wrap: wrap; }
.hero-strip .hs-label { font-family: var(--font-mono); font-size: 12px; letter-spacing: .5px; color: var(--muted); display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; }
.hero-strip .hs-label::before { content: ""; width: 22px; height: 1px; background: var(--accent2); }
.hs-logos { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.hs-logos .pf { display: inline-flex; align-items: center; }
.hs-logos .pf img { height: 30px; width: auto; object-fit: contain; opacity: .82; filter: grayscale(12%); transition: opacity .2s, filter .2s; }
.hs-logos .pf img:hover { opacity: 1; filter: none; }
.hs-logos .pf-chip { display: inline-flex; align-items: center; height: 36px; padding: 0 18px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--primary); font-weight: 600; font-size: 14.5px; box-shadow: var(--shadow-sm); transition: border-color .2s, color .2s; }
.hs-logos .pf-chip:hover { border-color: var(--accent); color: var(--accent); }
.hero-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 56px; align-items: center; }
.hero-kicker { font-family: var(--font-mono); font-size: 13px; letter-spacing: 1px; color: var(--accent); display: inline-flex; align-items: center; gap: 10px; margin-bottom: 30px; }
.hero-kicker::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--accent2); box-shadow: 0 0 0 4px rgba(2,174,238,.18); }
.hero h1 { margin: 0 0 18px; max-width: 640px; }
.hero .ht-sm { display: block; font-size: 38px; font-weight: 700; color: var(--accent); line-height: 1.2; }
.hero .ht-lg { display: block; font-size: 42px; font-weight: 800; color: var(--primary); line-height: 1.18; letter-spacing: -.5px; margin-top: 4px; }
.hero .lead { margin-top: 16px; }

/* Hero 概念卡：演示「品牌在 AI 回答里被推荐」 */
.hero-visual { transform: translateY(38px); }
.ai-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); overflow: hidden; }
.ai-card-head { display: flex; align-items: center; gap: 7px; padding: 14px 18px; border-bottom: 1px solid var(--line); background: #fbfdff; }
.ai-card-head .dot { width: 10px; height: 10px; border-radius: 50%; background: #e2e8f0; }
.ai-card-head .dot:nth-child(1) { background: #ff5f57; } .ai-card-head .dot:nth-child(2) { background: #febc2e; } .ai-card-head .dot:nth-child(3) { background: #28c840; }
.ai-card-head .ai-card-title { margin-left: 8px; font-family: var(--font-mono); font-size: 12px; color: var(--muted); }
.ai-card-body { padding: 24px 20px 22px; }
.ai-msg { font-size: 15px; line-height: 1.75; margin: 0 0 16px; }
.ai-q { color: var(--primary); font-weight: 700; padding-left: 14px; border-left: 3px solid var(--accent2); }
.ai-a { color: #46566a; }
.ai-a mark { background: linear-gradient(transparent 62%, rgba(244,178,35,.5) 0); color: var(--primary); font-weight: 700; padding: 0 2px; }
.ai-sources { display: flex; align-items: center; gap: 8px; margin: 18px 0 10px; flex-wrap: wrap; }
.ai-sources .ai-src-label { font-family: var(--font-mono); font-size: 11px; color: var(--muted); }
.ai-sources .ai-src { font-size: 12px; padding: 4px 11px; border: 1px solid var(--line); border-radius: 999px; color: var(--accent); background: rgba(27,134,207,.05); }
.ai-foot { display: flex; align-items: center; gap: 8px; font-family: var(--font-mono); font-size: 11.5px; color: var(--muted); }
.ai-foot .cursor { width: 7px; height: 14px; background: var(--accent); display: inline-block; animation: blink 1.1s steps(2) infinite; }
@keyframes blink { 0%,50% { opacity: 1; } 51%,100% { opacity: 0; } }

/* ============ Lead Hero v2（深蓝首屏 + 品牌 AI 认知诊断面板） ============ */
.lead-hero { position: relative; background: var(--navy-grad); color: #cdddec; overflow: hidden; padding: 78px 0 92px; }
.lead-hero::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(18,158,232,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(18,158,232,.05) 1px, transparent 1px); background-size: 46px 46px; -webkit-mask-image: radial-gradient(130% 92% at 72% -5%, #000, transparent 72%); mask-image: radial-gradient(130% 92% at 72% -5%, #000, transparent 72%); }
.lead-hero::after { content: ""; position: absolute; top: -180px; right: -160px; width: 680px; height: 680px; background: radial-gradient(circle, rgba(18,158,232,.28), transparent 62%); pointer-events: none; }
.lead-hero .container { position: relative; z-index: 1; }
.lh-grid { display: grid; grid-template-columns: 1.02fr .98fr; gap: 60px; align-items: center; }
.lh-eyebrow { display: inline-flex; align-items: center; gap: 10px; font-family: var(--font-mono); font-size: 12.5px; letter-spacing: 1px; color: var(--accent2); text-transform: uppercase; margin-bottom: 26px; }
.lh-eyebrow::before { content: ""; width: 26px; height: 1px; background: var(--accent2); }
.lh-title { color: #fff; font-size: 60px; line-height: 1.12; letter-spacing: -1.4px; margin: 0 0 22px; font-weight: 800; }
.lh-title .hl { color: var(--gold); }
.lh-sub { color: #a9c2d6; font-size: 18px; line-height: 1.75; max-width: 560px; margin: 0; }
.lead-hero .btn-row { margin-top: 34px; }
.lead-hero .btn-ghost { background: transparent; border: 1px solid rgba(255,255,255,.26); color: #fff; }
.lead-hero .btn-ghost:hover { border-color: #fff; color: #fff; }
.lh-stats { display: flex; gap: 44px; margin-top: 44px; padding-top: 30px; border-top: 1px solid rgba(255,255,255,.12); }
.lh-stat .n { font-family: var(--font-mono); font-size: 38px; font-weight: 700; color: #fff; line-height: 1; letter-spacing: -1px; }
.lh-stat .n i { font-style: normal; font-size: 22px; color: var(--accent2); margin-left: 1px; }
.lh-stat .l { display: block; margin-top: 9px; font-size: 13.5px; color: #8fabc2; }

/* 诊断面板 */
.lh-panel { background: #fff; border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); color: var(--ink); overflow: hidden; }
.lh-panel-top { display: flex; align-items: center; justify-content: space-between; padding: 15px 20px; border-bottom: 1px solid var(--line); background: #fbfdff; }
.lh-panel-top .t { font-weight: 700; color: var(--primary); font-size: 14.5px; display: flex; align-items: center; gap: 9px; }
.lh-panel-top .t::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #28c840; box-shadow: 0 0 0 3px rgba(40,200,64,.16); }
.lh-panel-top .demo { font-size: 11px; font-family: var(--font-mono); color: var(--muted); border: 1px solid var(--line); border-radius: 4px; padding: 2px 8px; }
.lh-panel-body { padding: 22px 22px 24px; }
.lh-score { display: flex; align-items: center; gap: 20px; margin-bottom: 22px; }
.lh-gauge { position: relative; width: 96px; height: 96px; flex-shrink: 0; }
.lh-gauge svg { display: block; transform: rotate(-90deg); }
.lh-gauge .g-val { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.lh-gauge .g-num { font-family: var(--font-mono); font-size: 27px; font-weight: 700; color: var(--primary); line-height: 1; }
.lh-gauge .g-unit { font-size: 10px; color: var(--muted); margin-top: 3px; letter-spacing: .5px; }
.lh-score-meta .sm-label { font-size: 12px; color: var(--muted); font-family: var(--font-mono); }
.lh-score-meta .sm-title { font-size: 16px; font-weight: 700; color: var(--primary); margin: 3px 0 6px; }
.lh-score-meta .sm-tip { font-size: 12.5px; color: var(--muted); line-height: 1.6; }
.lh-bars { display: flex; flex-direction: column; gap: 15px; }
.lh-bar .b-head { display: flex; justify-content: space-between; align-items: baseline; font-size: 13px; margin-bottom: 7px; }
.lh-bar .b-head .bl { color: var(--ink); }
.lh-bar .b-head .bv { font-family: var(--font-mono); font-weight: 700; color: var(--primary); font-size: 13px; }
.lh-bar .b-track { height: 7px; border-radius: 99px; background: #eef3f7; overflow: hidden; }
.lh-bar .b-fill { height: 100%; border-radius: 99px; background: linear-gradient(90deg, var(--accent), var(--accent2)); }
.lh-bar.gap .b-fill { background: linear-gradient(90deg, #f0a63c, var(--gold)); }
.lh-bar.gap .b-head .bv { color: #d98a12; }

/* ============ Stats band ============ */
.stats-band { position: relative; padding: 48px 0; }
.stats-band::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(rgba(255,255,255,.05) 1px, transparent 1px); background-size: 26px 26px; }
.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; position: relative; z-index: 1; }
.stat { text-align: center; }
.stat .num { font-family: var(--font-mono); font-size: 42px; font-weight: 700; color: #fff; line-height: 1; letter-spacing: -1px; }
.stat .num .u { font-size: 20px; color: var(--accent2); margin-left: 2px; }
.stat .label { margin-top: 10px; font-size: 14px; color: #9db6cc; }

/* ============ Cards / grids ============ */
.grid { display: grid; gap: 22px; }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-2 { grid-template-columns: repeat(2, 1fr); }
.card { position: relative; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 26px; background: #fff; transition: box-shadow .2s, transform .2s, border-color .2s; }
.card::before { content: ""; position: absolute; left: 0; top: 0; height: 3px; width: 0; background: linear-gradient(90deg, var(--accent), var(--accent2)); border-radius: var(--radius-lg) var(--radius-lg) 0 0; transition: width .25s; }
.card:hover { box-shadow: var(--shadow); transform: translateY(-3px); border-color: transparent; }
.card:hover::before { width: 100%; }
.card h3 a { color: var(--primary); }
.card h3 a:hover { text-decoration: none; color: var(--accent); }
.card .meta { font-size: 14px; color: var(--muted); }
.tag { display: inline-block; font-size: 12px; padding: 3px 11px; border-radius: 999px; background: rgba(27,134,207,.08); color: var(--accent); margin-right: 6px; font-weight: 600; }

/* 服务卡：图标 */
.svc-icon { width: 48px; height: 48px; border-radius: 12px; display: flex; align-items: center; justify-content: center; background: linear-gradient(150deg, rgba(27,134,207,.12), rgba(2,174,238,.10)); color: var(--accent); margin-bottom: 16px; }
.svc-icon svg { width: 24px; height: 24px; }
.card .svc-more { font-family: var(--font-mono); font-size: 12px; color: var(--accent); margin-top: 16px; display: inline-flex; align-items: center; gap: 6px; }

/* ============ VTP 方法论（招牌区块） ============ */
.vtp { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; background: #fff; }
.vtp-stage { padding: 32px 28px; position: relative; border-right: 1px solid var(--line); }
.vtp-stage:last-child { border-right: none; }
.vtp-stage .vtp-mark { font-family: var(--font-mono); font-size: 13px; font-weight: 700; color: #fff; width: 34px; height: 34px; border-radius: 9px; display: flex; align-items: center; justify-content: center; background: var(--primary); margin-bottom: 16px; }
.vtp-stage:nth-child(2) .vtp-mark { background: var(--accent); }
.vtp-stage:nth-child(3) .vtp-mark { background: var(--gold); color: var(--primary); }
.vtp-stage h3 { color: var(--primary); }
.vtp-stage .en { font-family: var(--font-mono); font-size: 12px; color: var(--muted); letter-spacing: 1px; text-transform: uppercase; }
.vtp-stage p { color: var(--muted); font-size: 14.5px; margin: 8px 0 0; }
.vtp-stage::after { content: "→"; position: absolute; right: -11px; top: 50%; transform: translateY(-50%); color: var(--accent2); font-size: 18px; background: #fff; width: 22px; height: 22px; border-radius: 50%; display: flex; align-items: center; justify-content: center; z-index: 2; }
.vtp-stage:last-child::after { display: none; }

/* ============ Cases（带数据指标） ============ */
.case-card .case-client { font-family: var(--font-mono); font-size: 12px; color: var(--muted); letter-spacing: .5px; }
.case-card h3 { margin-top: 8px; }
.case-metrics { display: flex; gap: 22px; margin-top: 18px; padding-top: 16px; border-top: 1px dashed var(--line); }
.case-metrics .m .v { font-family: var(--font-mono); font-size: 24px; font-weight: 700; color: var(--accent); line-height: 1; }
.case-metrics .m .l { font-size: 12px; color: var(--muted); margin-top: 5px; }

/* ============ Why us ============ */
.why { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; }
.why-item { background: #fff; padding: 30px 30px; display: flex; gap: 18px; align-items: flex-start; }
.why-item .idx { font-family: var(--font-mono); font-size: 13px; font-weight: 700; color: var(--accent2); padding-top: 3px; }
.why-item h3 { color: var(--primary); margin-bottom: 6px; }
.why-item p { color: var(--muted); font-size: 14.5px; margin: 0; }

/* ============ Articles ============ */
.article-card .date { font-family: var(--font-mono); font-size: 12px; color: var(--muted); }

/* ============ CTA band ============ */
.cta-band { text-align: center; }
.cta-band h2 { color: #fff; font-size: 32px; }
.cta-band p { color: #9db6cc; max-width: 620px; margin: 12px auto 0; }
.cta-band .btn-row { justify-content: center; }

/* ============ Logo wall ============ */
.logo-wall-section { padding: 56px 0; }
.logo-wall-title { text-align: center; margin-bottom: 28px; }
.logo-wall { display: grid; grid-template-columns: repeat(6, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; }
.logo-wall .logo-item { display: flex; align-items: center; justify-content: center; background: #fff; padding: 15px 18px; min-height: 90px; }
.logo-wall .logo-item img { max-height: 52px; max-width: 100%; width: auto; object-fit: contain; filter: grayscale(100%); opacity: .6; transition: filter .2s, opacity .2s; }
.logo-wall .logo-item:hover img { filter: grayscale(0); opacity: 1; }

/* ============ Prose / article / faq / vtp-layer ============ */
.prose { max-width: 760px; }
.prose p { margin: 0 0 16px; }
.prose h2 { margin-top: 36px; }
/* Long-form headings, not marketing sections or compact Service Evidence. */
.prose:not(.rep-detail-case-result) h2 { font-size: 32px; line-height: 1.4; }
.prose:not(.rep-detail-case-result) h3 { font-size: 24px; line-height: 1.5; }
@media (max-width: 640px) {
    .prose:not(.rep-detail-case-result) h2 { font-size: 26px; }
    .prose:not(.rep-detail-case-result) h3 { font-size: 21px; }
}
.prose ul, .prose ol { padding-left: 22px; }
.summary-box { background: var(--bg-soft); border-left: 4px solid var(--accent); padding: 16px 20px; border-radius: 0 8px 8px 0; margin-bottom: 28px; font-size: 17px; }
.faq-item { border-bottom: 1px solid var(--line); padding: 18px 0; }
.faq-item .q { font-weight: 700; color: var(--primary); }
.faq-item .a { color: var(--muted); margin-top: 6px; }
.vtp-layer { border: 1px solid var(--line); border-radius: 12px; padding: 24px; margin-bottom: 18px; }
.vtp-layer .step { color: var(--accent); font-weight: 800; font-size: 13px; letter-spacing: 1px; }

/* ============ Footer ============ */
.site-footer { background: var(--navy-grad); color: #cdd8e3; margin-top: 0; }
.footer-inner { display: flex; justify-content: space-between; gap: 32px; padding: 52px 0 30px; flex-wrap: wrap; }
.site-footer strong { color: #fff; font-size: 18px; }
.site-footer p { margin: 6px 0; font-size: 14px; }
.footer-bottom { display: flex; justify-content: space-between; padding: 16px 24px; border-top: 1px solid rgba(255,255,255,.12); font-size: 13px; flex-wrap: wrap; gap: 8px; }
.site-footer a { color: #9fb6cc; }
.footer-links { display: flex; flex-wrap: wrap; gap: 16px; align-content: flex-start; }
.footer-links a { color: #9fb6cc; font-size: 14px; }
.footer-links a:hover { color: #fff; }

/* ============ Nav dropdown ============ */
.nav-dropdown { position: relative; display: inline-block; }
.nav-dropdown .caret { font-size: 10px; opacity: .6; margin-left: 2px; }
.nav-dropdown-menu { position: absolute; top: 100%; left: 0; min-width: 168px; background: #fff; border: 1px solid var(--line); border-radius: 10px; box-shadow: var(--shadow); padding: 15px 6px; display: none; z-index: 50; }
.nav-dropdown:hover .nav-dropdown-menu, .nav-dropdown:focus-within .nav-dropdown-menu { display: block; }
.nav-dropdown-menu a { display: block; padding: 9px 12px; border-radius: 7px; white-space: nowrap; color: var(--ink); font-size: 14px;}
.nav-dropdown-menu a:hover, .nav-dropdown-menu a:focus-visible { background: var(--bg-soft); color: var(--accent); text-decoration: none; }
.site-nav a:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }

/* ============ Hero carousel (Banner 路径) ============ */
.hero-carousel { position: relative; }
.hero-slide { display: none; padding: 88px 0 72px; background: linear-gradient(160deg, var(--bg-soft), #fff); background-size: cover; background-position: center; }
.hero-slide.active { display: block; }
.hero-slide h1, .hero-slide h2 { font-size: 44px; max-width: 880px; color: var(--primary); }
.hero-slide .lead { margin-top: 14px; }
.hero-slide.has-image { position: relative; }
.hero-slide.has-image::before { content: ""; position: absolute; inset: 0; background: rgba(12,44,71,.6); }
.hero-slide.has-image .container { position: relative; z-index: 1; }
.hero-slide.has-image h1, .hero-slide.has-image h2, .hero-slide.has-image .lead { color: #fff; }
.hero-slide.has-image .btn-ghost { color: #fff; border-color: rgba(255,255,255,.6); background: transparent; }
.hero-dots { display: flex; gap: 8px; justify-content: center; padding: 18px 0; }
.hero-dots button { width: 10px; height: 10px; border-radius: 50%; border: none; background: var(--line); cursor: pointer; padding: 0; }
.hero-dots button.active { background: var(--accent); }

/* ============ Pagination ============ */
.pagination { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.pagination .page { display: inline-flex; align-items: center; justify-content: center; min-width: 38px; height: 38px; padding: 0 12px; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); font-size: 14px; background: #fff; }
.pagination a.page:hover { border-color: var(--accent); color: var(--accent); text-decoration: none; }
.pagination .page.active { background: var(--accent); border-color: var(--accent); color: #fff; }
.pagination .page.disabled { color: var(--muted); opacity: .5; background: transparent; }
.pagination .page.dots { border: none; background: transparent; min-width: auto; padding: 0 4px; }

/* ============ Responsive ============ */
@media (max-width: 980px) {
    .lh-grid { grid-template-columns: 1fr; gap: 40px; }
    .lh-title { font-size: 46px; }
    .lh-panel { max-width: 460px; }
}
@media (max-width: 900px) {
    .hero-grid { grid-template-columns: 1fr; gap: 36px; }
    .ai-card { max-width: 420px; }
    .stats { grid-template-columns: repeat(2, 1fr); gap: 30px 20px; }
    .vtp { grid-template-columns: 1fr; }
    .vtp-stage { border-right: none; border-bottom: 1px solid var(--line); }
    .vtp-stage:last-child { border-bottom: none; }
    .vtp-stage::after { display: none; }
    .why { grid-template-columns: 1fr; }
    .logo-wall { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 860px) {
    .grid-3, .grid-2 { grid-template-columns: 1fr; }
    .nav-toggle { display: inline-flex; }
    .brand-logo { height: 40px; }
    .site-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; flex-direction: column; align-items: stretch; gap: 0; background: #fff; border-top: 1px solid var(--line); box-shadow: var(--shadow); padding: 8px 0; }
    .site-nav a { color: var(--ink); }
    body.nav-open .site-nav { display: flex; }
    body.nav-open .nav-toggle .ico-open { display: none; }
    body.nav-open .nav-toggle .ico-close { display: inline; }
    .site-nav > a { display: block; padding: 13px 24px; font-size: 16px; }
    .site-nav .nav-cta { margin: 10px 24px 6px; text-align: center; padding: 12px; box-shadow: none; }
    .nav-dropdown { position: static; }
    .nav-dropdown .nav-dropdown-toggle { display: block; padding: 13px 24px; font-size: 16px; }
    .nav-dropdown .caret { display: none; }
    .nav-dropdown:hover .nav-dropdown-menu, .nav-dropdown-menu { position: static; display: block; border: none; box-shadow: none; padding: 0; min-width: 0; background: transparent; }
    .nav-dropdown-menu a { padding: 10px 24px 10px 42px; color: var(--muted); }
    section { padding: 68px 0; }
    .hero { min-height: auto; display: block; padding: 0; }
    .hero-visual { transform: none; }
    .hero .ht-sm { font-size: 26px; }
    .hero .ht-lg { font-size: 30px; }
    h1 { font-size: 34px; } h2 { font-size: 28px; }
    .cta-band h2 { font-size: 26px; }
    .stat .num { font-size: 34px; }
    /* Lead hero v2 移动端 */
    .lead-hero { padding: 52px 0 60px; }
    .lh-title { font-size: 34px; letter-spacing: -.6px; }
    .lh-sub { font-size: 16px; }
    .lh-stats { gap: 26px; flex-wrap: wrap; }
    .lh-stat .n { font-size: 30px; }
}
@media (max-width: 560px) {
    .lead-hero .btn-row { flex-direction: column; align-items: stretch; }
    .lead-hero .btn-row .btn { justify-content: center; }
    .lh-score { flex-wrap: wrap; gap: 14px; }
}
@media (max-width: 480px) {
    .logo-wall { grid-template-columns: repeat(2, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .card, .btn, .site-nav .nav-cta { transition: none; }
    .ai-foot .cursor { animation: none; }
}
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

/* ============ CTA panel（收尾转化，soft 区块内的 navy 面板） ============ */
.cta-panel { background: var(--navy-grad); border-radius: var(--radius-lg); padding: 58px 40px; text-align: center; position: relative; overflow: hidden; }
.cta-panel::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(rgba(255,255,255,.05) 1px, transparent 1px); background-size: 24px 24px; }
.cta-panel > * { position: relative; z-index: 1; }
.cta-panel h2 { color: #fff; font-size: 30px; margin: 0; }
.cta-panel p { color: #9db6cc; max-width: 600px; margin: 14px auto 0; }
.cta-panel .btn-row { justify-content: center; margin-top: 26px; }
.cta-panel .btn-ghost { background: transparent; border-color: rgba(255,255,255,.3); color: #fff; }
.cta-panel .btn-ghost:hover { border-color: #fff; }
@media (max-width: 860px) { .cta-panel { padding: 40px 22px; } .cta-panel h2 { font-size: 24px; } }

/* ============ 文章目录 TOC ============ */
.prose h2 { scroll-margin-top: 92px; }
.toc { border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--bg-soft); padding: 16px 22px 18px; margin: 0 0 30px; max-width: 520px; }
.toc-head { display: flex; align-items: center; justify-content: space-between; }
.toc-title { display: inline-flex; align-items: center; gap: 9px; font-weight: 700; color: var(--primary); font-size: 16px; }
.toc-title svg { color: var(--accent); }
.toc-collapse { width: 30px; height: 30px; border: 1px solid var(--line); background: #fff; border-radius: 7px; color: var(--muted); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.toc-collapse:hover { border-color: var(--accent); color: var(--accent); }
.toc .toc-list { list-style: none; margin: 14px 0 0; padding: 0; position: relative; }
.toc .toc-list::before { content: ""; position: absolute; left: 5px; top: 12px; bottom: 14px; width: 2px; background: var(--line); border-radius: 2px; }
.toc .toc-item { position: relative; padding: 8px 0 8px 26px; margin: 0; }
.toc .toc-item::before { content: ""; position: absolute; left: 0; top: 15px; width: 12px; height: 12px; border-radius: 50%; background: #fff; border: 3px solid #c5cfdb; box-sizing: border-box; transition: border-color .15s; }
.toc .toc-item a { color: var(--ink); font-size: 15.5px; }
.toc .toc-item a:hover { color: var(--accent); text-decoration: none; }
.toc .toc-item:hover::before { border-color: var(--accent); }
.toc .toc-item.toc-hidden { display: none; }
.toc.toc-expanded .toc-item.toc-hidden { display: block; }
.toc-more { margin: 6px 0 0 26px; border: none; background: none; color: var(--accent); cursor: pointer; font-size: 14px; padding: 4px 0; display: inline-flex; align-items: center; gap: 5px; font-family: inherit; }
.toc-more::after { content: "▾"; font-size: 10px; }
.toc.toc-expanded .toc-more::after { content: "▴"; }
.toc.toc-collapsed .toc-list, .toc.toc-collapsed .toc-more { display: none; }

/* ============ 文章详情页 v2（Hero + 两栏 + 吸顶侧栏） ============ */
.article-hero { position: relative; border-bottom: 1px solid var(--line); background: var(--bg-soft); padding: 36px 0 30px; overflow: hidden; }
.article-hero::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(var(--grid-color) 1px, transparent 1px), linear-gradient(90deg, var(--grid-color) 1px, transparent 1px); background-size: 28px 28px; -webkit-mask: linear-gradient(180deg, #000, transparent 92%); mask: linear-gradient(180deg, #000, transparent 92%); pointer-events: none; }
.article-hero > .container { position: relative; }
.breadcrumb { font-size: 13px; color: var(--muted); margin-bottom: 18px; display: flex; align-items: center; flex-wrap: wrap; gap: 2px; }
.breadcrumb a { color: var(--muted); }
.breadcrumb a:hover { color: var(--accent); text-decoration: none; }
.breadcrumb .sep { margin: 0 9px; color: #c7d0db; }
.breadcrumb .current { color: var(--ink); }
.article-hero h1 { font-size: 38px; line-height: 1.28; color: var(--primary); max-width: 920px; margin: 0; letter-spacing: -.5px; }
.article-meta-row { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 18px; margin-top: 20px; color: var(--muted); font-size: 14px; }
.article-meta-row .am { display: inline-flex; align-items: center; gap: 6px; }
.article-meta-row .am svg { opacity: .7; }
.article-meta-row .am-tag { padding: 3px 12px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--accent); font-size: 12.5px; }

.article-layout { max-width: var(--maxw); margin: 0 auto; padding: 44px 24px 64px; display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 56px; }
.article-main { min-width: 0; }
.article-main .prose { max-width: none; padding: 0; }
.article-aside { display: flex; flex-direction: column; gap: 20px; align-self: stretch; }
.article-aside .toc { position: sticky; top: 92px; z-index: 2; background: var(--bg-soft); }
.article-aside .toc { max-width: none; margin: 0; }

.aside-cta { background: var(--navy-grad); color: #cfe0ee; border-radius: var(--radius-lg); padding: 22px 22px 24px; position: relative; overflow: hidden; }
.aside-cta::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px); background-size: 22px 22px; pointer-events: none; }
.aside-cta .ac-label { position: relative; font-family: var(--font-mono); font-size: 11px; letter-spacing: 1px; color: var(--accent2); }
.aside-cta h4 { position: relative; color: #fff; font-size: 18px; margin: 8px 0 8px; line-height: 1.4; }
.aside-cta p { position: relative; font-size: 13.5px; line-height: 1.7; margin: 0 0 16px; color: #aebfce; }
.aside-cta .ac-btn { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 6px; width: 100%; padding: 11px; background: var(--gold); color: #3a2a00; font-weight: 700; border-radius: 10px; font-size: 14.5px; }
.aside-cta .ac-btn:hover { text-decoration: none; filter: brightness(1.05); }

@media (max-width: 980px) {
    .article-hero h1 { font-size: 28px; }
    .article-layout { grid-template-columns: 1fr; gap: 0; padding-top: 28px; }
    .article-aside { order: -1; margin-bottom: 26px; align-self: auto; }
    .article-aside .toc { position: static; }
    .article-aside .aside-cta { display: none; }
}

/* 相关文章 */
.related { max-width: var(--maxw); margin: 0 auto; padding: 4px 24px 60px; }
.related-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 22px; gap: 16px; }
.related-head h2 { font-size: 24px; color: var(--primary); margin: 0; }
.related-head a { font-family: var(--font-mono); font-size: 13px; color: var(--accent); white-space: nowrap; }
.related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.related-grid .card h3 { font-size: 17px; margin: 10px 0 8px; line-height: 1.45; }
.related-grid .card p { font-size: 14px; color: var(--muted); line-height: 1.65; margin: 0 0 14px; }
.related-grid .card .r-eyebrow { font-family: var(--font-mono); font-size: 11.5px; letter-spacing: .5px; color: var(--accent); }
.related-grid .card .meta { font-size: 12.5px; }
@media (max-width: 980px) { .related-grid { grid-template-columns: 1fr; } }

/* ============ 通用内页 Hero（.page-hero） ============ */
.page-hero { position: relative; border-bottom: 1px solid var(--line); background: var(--bg-soft); padding: 40px 0 36px; overflow: hidden; }
.page-hero::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(var(--grid-color) 1px, transparent 1px), linear-gradient(90deg, var(--grid-color) 1px, transparent 1px); background-size: 28px 28px; -webkit-mask: linear-gradient(180deg, #000, transparent 92%); mask: linear-gradient(180deg, #000, transparent 92%); pointer-events: none; }
.page-hero > .container { position: relative; }
.page-hero h1 { font-size: 38px; line-height: 1.25; color: var(--primary); margin: 0; max-width: 900px; letter-spacing: -.5px; }
.page-hero .ph-sub { margin: 16px 0 0; font-size: 16px; line-height: 1.7; color: var(--muted); max-width: 760px; }
.page-hero .ph-eyebrow { font-family: var(--font-mono); font-size: 12px; letter-spacing: 1px; color: var(--accent); margin-bottom: 14px; }
@media (max-width: 860px) { .page-hero h1 { font-size: 28px; } }

/* 列表页通用网格 */
.list-wrap { max-width: var(--maxw); margin: 0 auto; padding: 48px 24px 64px; }
.list-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.list-grid .card h3 { font-size: 18px; margin: 12px 0 8px; line-height: 1.45; color: var(--primary); }
.list-grid .card p { font-size: 14px; color: var(--muted); line-height: 1.65; margin: 0 0 16px; }
.list-grid .card .l-eyebrow { font-family: var(--font-mono); font-size: 11.5px; letter-spacing: .5px; color: var(--accent); }
.list-grid .card .l-foot { font-size: 13px; color: var(--accent); font-weight: 700; }
@media (max-width: 940px) { .list-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .list-grid { grid-template-columns: 1fr; } }
.list-grid .card .meta { font-size: 12.5px; color: var(--muted); }
.list-grid .card:hover h3 { color: var(--accent); }
.service-index-card { display: flex; flex-direction: column; align-items: flex-start; }
.service-index-card > p { flex-grow: 1; }
.service-index-card > .l-foot { margin-top: 18px; }
.service-index-children { width: 100%; display: grid; gap: 8px; margin-top: 6px; padding: 16px 0; border-block: 1px solid var(--line); }
.service-index-children strong { color: var(--muted); font-size: 12px; }
.service-index-children a { display: flex; justify-content: space-between; gap: 12px; color: var(--primary); font-size: 13px; font-weight: 600; }
.service-index-children a:hover { color: var(--accent); text-decoration: none; }
.service-index-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.service-index-card { min-width: 0; }
.service-index-card--featured { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); column-gap: 64px; padding: 44px; background: var(--navy-grad); color: #bfd4e3; }
.service-index-card--featured > .l-eyebrow, .service-index-card--featured > h3, .service-index-card--featured > p, .service-index-card--featured > .l-foot { grid-column: 1; }
.service-index-card--featured > h3 { font-size: 32px; line-height: 1.4; }
.service-index-card--featured > h3 a { color: #fff; }
.service-index-card--featured > p { margin-bottom: 0; color: #bfd4e3; }
.service-index-card--featured > .l-foot { color: var(--gold); }
.service-index-card--featured .service-index-children { grid-column: 2; grid-row: 1 / 5; align-self: center; gap: 16px; margin: 0; padding: 24px 0 24px 36px; border: 0; border-left: 1px solid rgba(255,255,255,.2); }
.service-index-card--featured .service-index-children strong { color: #8fb6cf; }
.service-index-card--featured .service-index-children a { color: #fff; font-size: 15px; }
.service-index-card--featured .service-index-children a:hover { color: var(--accent2); }
@media (max-width: 980px) {
    .service-index-grid { grid-template-columns: minmax(0, 1fr); }
    .service-index-card--featured { grid-template-columns: minmax(0, 1fr); padding: 32px; }
    .service-index-card--featured .service-index-children { grid-column: 1; grid-row: auto; margin-top: 16px; padding: 22px 0; border-left: 0; border-block: 1px solid rgba(255,255,255,.2); }
}
@media (max-width: 640px) {
    .service-index-card--featured { padding: 28px 24px; }
    .service-index-card--featured > h3 { font-size: 27px; }
}
.list-group-title { font-size: 22px; color: var(--primary); margin: 44px 0 20px; }
.list-wrap > .list-group-title:first-child { margin-top: 0; }
.list-filter { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 28px; }
.list-filter .chip { font-size: 14px; padding: 7px 16px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); background: #fff; }
.list-filter .chip:hover { border-color: var(--accent); color: var(--accent); text-decoration: none; }
.list-filter .chip.is-active { background: var(--accent); border-color: var(--accent); color: #fff; }
.list-pagination { margin-top: 36px; }

/* ============ 详情页（服务 / 案例）两栏 ============ */
/* 侧栏吸顶包裹：服务/案例详情侧栏只有 CTA，让它吸顶 */
.article-aside .aside-sticky { position: sticky; top: 92px; }

/* 卖点清单 */
.svc-highlights { list-style: none; padding: 0; margin: 4px 0 30px; display: grid; gap: 12px; }
.svc-highlights li { position: relative; padding-left: 30px; color: var(--ink); line-height: 1.6; }
.svc-highlights li::before { content: "✓"; position: absolute; left: 0; top: 0; width: 20px; height: 20px; line-height: 20px; text-align: center; font-size: 13px; font-weight: 700; color: #fff; background: var(--accent); border-radius: 50%; }

/* 数据指标 */
.cd-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 4px 0 32px; }
.cd-metric { padding: 22px 20px; background: var(--bg-soft); border: 1px solid var(--line); border-radius: var(--radius); text-align: center; }
.cd-metric .m-value { font-size: 30px; font-weight: 800; color: var(--accent); line-height: 1.1; letter-spacing: -.5px; }
.cd-metric .m-label { font-size: 13px; color: var(--muted); margin-top: 8px; }
@media (max-width: 560px) { .cd-metrics { grid-template-columns: 1fr; } }

/* 服务标签 chips（案例正文上方） */
.detail-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 24px; }
.detail-tags .tag { font-family: var(--font-mono); font-size: 12px; letter-spacing: .5px; padding: 5px 12px; border-radius: 999px; background: rgba(27,134,207,.1); color: var(--accent); }

/* 子项（子服务 / 子页面）列表 */
.child-list { display: grid; gap: 14px; margin: 8px 0 8px; }
.child-item { display: block; padding: 18px 20px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; transition: border-color .15s, box-shadow .15s, transform .15s; }
.child-item:hover { border-color: var(--accent); box-shadow: var(--shadow); transform: translateY(-1px); text-decoration: none; }
.child-item .c-name { display: block; font-size: 16px; font-weight: 700; color: var(--primary); }
.child-item .c-sum { display: block; font-size: 14px; color: var(--muted); margin-top: 6px; line-height: 1.6; }

@media (max-width: 980px) {
    .article-aside .aside-sticky { position: static; }
}

/* ============ 第3批：方法论 / 关于 / FAQ / 联系 / 单页 ============ */
/* 方法论：居中引言 */
.mx-lead { max-width: 800px; margin: 0 auto 8px; text-align: center; font-size: 18px; line-height: 1.85; color: var(--muted); }
.mx-lead strong { color: var(--primary); font-weight: 700; }

/* VTP 三阶 竖向步进器 */
.vtp-steps { max-width: 820px; margin: 0 auto; }
.vtp-step { display: grid; grid-template-columns: 56px 1fr; gap: 22px; }
.vs-rail { display: flex; flex-direction: column; align-items: center; }
.vs-dot { width: 46px; height: 46px; border-radius: 50%; background: var(--navy-grad); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 800; font-family: var(--font-mono); font-size: 17px; flex-shrink: 0; }
.vs-line { width: 2px; flex: 1; background: var(--line); margin: 6px 0; }
.vtp-step:last-child .vs-line { display: none; }
.vs-body { padding-bottom: 34px; }
.vs-en { font-family: var(--font-mono); font-size: 12px; letter-spacing: 1.5px; color: var(--accent); }
.vs-body h3 { font-size: 21px; color: var(--primary); margin: 5px 0 10px; }
.vs-body p { color: var(--muted); line-height: 1.75; margin: 0 0 12px; }
.vs-layer { display: inline-block; font-size: 13px; padding: 5px 13px; border-radius: 999px; background: var(--bg-soft); border: 1px solid var(--line); color: var(--ink); }
@media (max-width: 600px) { .vtp-step { grid-template-columns: 44px 1fr; gap: 16px; } }

/* FAQ 折叠 */
.faq-group-title { font-size: 19px; color: var(--primary); margin: 30px 0 14px; }
.faq-list > .faq-group-title:first-child { margin-top: 0; }
.faq-item2 { border: 1px solid var(--line); border-radius: var(--radius); margin-bottom: 12px; background: #fff; overflow: hidden; }
.faq-item2 summary { cursor: pointer; padding: 16px 20px; font-weight: 600; color: var(--primary); list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.faq-item2 summary::-webkit-details-marker { display: none; }
.faq-item2 summary::after { content: "+"; font-size: 22px; font-weight: 400; color: var(--accent); flex-shrink: 0; line-height: 1; }
.faq-item2[open] summary::after { content: "−"; }
.faq-item2 .faq-a { padding: 0 20px 18px; color: var(--muted); line-height: 1.78; }

/* 联系页 表单 */
.lead-form .field { margin-bottom: 16px; }
.lead-form label { display: block; font-weight: 600; margin-bottom: 6px; color: var(--primary); font-size: 14px; }
.lead-form input, .lead-form textarea { width: 100%; padding: 11px 13px; border: 1px solid var(--line); border-radius: 8px; font-size: 15px; font-family: inherit; background: #fff; box-sizing: border-box; }
.lead-form input:focus, .lead-form textarea:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(27,134,207,.12); }
.lead-form .err { color: #d33; font-size: 13px; margin-top: 4px; }
.lead-form .hp { position: absolute; left: -9999px; }
.lead-form-notice { max-width: 680px; margin: 2px 0 16px; color: var(--muted); font-size: 13px; line-height: 1.7; }
.lead-success { background: #e8f7ee; border: 1px solid #b6e3c6; color: #1a7a45; padding: 14px 18px; border-radius: 8px; margin-bottom: 24px; }
.req { color: #d33; }
.info-card { background: var(--bg-soft); border: 1px solid var(--line); border-radius: var(--radius); padding: 24px; }
.info-card h4 { margin: 0 0 14px; color: var(--primary); font-size: 16px; }
.info-list { list-style: none; padding: 0; margin: 0 0 18px; display: grid; gap: 11px; }
.info-list li { padding-left: 26px; position: relative; color: var(--ink); line-height: 1.6; font-size: 14px; }
.info-list li::before { content: "✓"; position: absolute; left: 0; color: var(--accent); font-weight: 700; }
.info-contact { font-size: 14px; color: var(--muted); line-height: 1.9; border-top: 1px solid var(--line); padding-top: 16px; }

/* 关于：要点 */
.about-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 4px 0 30px; }
.about-fact { padding: 18px 20px; background: var(--bg-soft); border: 1px solid var(--line); border-radius: var(--radius); }
.about-fact .f-k { font-family: var(--font-mono); font-size: 11.5px; letter-spacing: .5px; color: var(--accent); }
.about-fact .f-v { font-size: 16px; font-weight: 700; color: var(--primary); margin-top: 7px; line-height: 1.4; }
@media (max-width: 640px) { .about-facts { grid-template-columns: 1fr; } }

/* ============ 案例封面图 ============ */
.case-cover { display: block; aspect-ratio: 16 / 10; border-radius: var(--radius); overflow: hidden; margin-bottom: 15px; background: var(--bg-soft); }
.case-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.card.case-card .case-cover { margin-bottom: 16px; }
/* 详情页封面 */
.cd-cover { width: 100%; border-radius: var(--radius-lg); overflow: hidden; margin-bottom: 28px; background: var(--bg-soft); aspect-ratio: 16 / 7; }
.cd-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ============ 富文本内容：文字颜色 / 高亮（Filament RichEditor 产物） ============ */
/* Filament 用 .color 类 + --color 变量上色，前台 .prose 需这条才显色 */
.prose .color { color: var(--color); }
/* 全局 mark 被重置为透明（见上方 hero 用法），这里在正文里恢复高亮（金色底纹） */
.prose mark { background: linear-gradient(transparent 60%, rgba(244, 178, 35, .55) 0); color: inherit; padding: 0 1px; }

/* ============ 顶部导航：悬停/当前页 文字变亮蓝加粗 + 从中间展开的下划线 ============ */
.site-nav > a:not(.nav-cta),
.nav-dropdown-toggle {
    position: relative;
    transition: color .2s ease;
}
.site-nav > a:not(.nav-cta)::after,
.nav-dropdown-toggle::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -3px;
    height: 2px;
    background: var(--accent2);
    border-radius: 2px;
    transform: scaleX(0);
    transform-origin: center;
    transition: transform .28s ease;
}
.site-nav > a:not(.nav-cta):hover,
.site-nav > a:not(.nav-cta).active,
.nav-dropdown-toggle:hover,
.nav-dropdown-toggle.active {
    color: var(--accent2);
    font-weight: 700;
}
.site-nav > a:not(.nav-cta):hover::after,
.site-nav > a:not(.nav-cta).active::after,
.nav-dropdown-toggle:hover::after,
.nav-dropdown-toggle.active::after {
    transform: scaleX(1);
}

/* ============ GEO 全链路闭环流程条（首页 Hero 下方，替代数字战绩） ============ */
.gf-eyebrow { text-align:center; color:var(--accent); font-weight:700; letter-spacing:.08em; font-size:13px; text-transform:uppercase; margin:0 0 8px; }
.gf-heading { text-align:center; font-size:26px; line-height:1.35; color:var(--primary); margin:0 0 36px; }
.gf-track { display:flex; align-items:stretch; justify-content:center; gap:6px; }
.gf-node { flex:1; display:flex; flex-direction:column; align-items:center; text-align:center; gap:12px; padding:22px 10px; background:#fff; border:1px solid var(--line); border-radius:var(--radius); text-decoration:none; transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
a.gf-node:hover { transform:translateY(-3px); box-shadow:var(--shadow); border-color:var(--accent2); }
.gf-num { width:38px; height:38px; flex:none; display:grid; place-items:center; border-radius:50%; background:var(--primary); color:#fff; font-weight:700; font-size:17px; }
.gf-title { font-size:14px; line-height:1.5; color:var(--ink); font-weight:600; }
/*a.gf-node .gf-title::after { content:" →"; color:var(--accent2); font-weight:700; }*/
.gf-arrow { align-self:center; color:var(--accent2); font-weight:700; font-size:18px; flex:none; }
.gf-loop { margin-top:22px; text-align:center; position:relative; }
.gf-loop::before { content:""; display:block; height:1px; background:linear-gradient(90deg, transparent, var(--accent2), transparent); margin-bottom:-11px; }
.gf-loop-label { position:relative; display:inline-block; background:var(--bg-soft); padding:0 16px; color:var(--accent); font-weight:600; font-size:13px; }
@media (max-width:900px){
  .gf-track { flex-direction:column; align-items:stretch; gap:4px; }
  .gf-node { flex-direction:row; justify-content:flex-start; text-align:left; gap:14px; padding:14px 16px; }
  .gf-arrow { transform:rotate(90deg); margin:2px 0; }
  .gf-heading { font-size:21px; }
}

/* GEO 闭环模块：浅蓝底区分 */
.section-flow { background: #eff7fd; }

/* 服务卡：图标 + 标题并排，下面 slogan + 简介 */
.svc-head { display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.svc-head .svc-icon { margin-bottom:0; flex:none; }
.svc-head h3 { margin:0; font-size:18px; line-height:1.35; }
.svc-slogan { color:var(--ink); font-weight:600; font-size:16px; line-height:1.55; margin:0 0 8px; }

/* 案例证据卡 */
.ev-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:8px; }
.ev-client { font-size:12.5px; color:var(--muted); white-space:nowrap; }
.ev-block { margin:12px 0; }
.ev-block-label { display:block; font-size:11px; font-weight:700; letter-spacing:.06em; color:var(--accent); margin-bottom:4px; }
.ev-block p { margin:0; font-size:13.5px; color:var(--ink); line-height:1.6; }
.ev-outcomes { display:flex; flex-wrap:wrap; gap:6px; }
.ev-tag { font-size:12px; padding:3px 10px; border-radius:999px; background:rgba(2,174,238,.10); color:var(--accent); font-weight:600; line-height:1.7; }
.case-card .ev-outcomes { margin-top:12px; }
.case-card .case-client { display:block; margin-top:12px; }

/* ============ Homepage Product & UI V2 (hp- namespace) ============ */
.site-header {
    background: rgba(255,255,255,.96);
    border-bottom-color: rgba(8,40,63,.10);
    box-shadow: 0 4px 18px rgba(8,40,63,.04);
}
.brand-name { color: var(--primary); }
.nav-toggle { border-color: var(--line); color: var(--primary); background: #fff; }
.nav-toggle:hover { border-color: var(--accent); color: var(--accent); }
.site-nav { gap: 25px; }
.site-nav a { color: #294458; font-size: 14.5px; font-weight: 600; }
.site-nav a:hover, .site-nav a.active { color: var(--accent); }
.site-nav .nav-cta { color: var(--primary); padding: 10px 19px; }
.site-nav > a:not(.nav-cta)::after, .nav-dropdown-toggle::after { background: var(--accent); }
.nav-dropdown-menu { border-radius: 6px; padding: 8px; }
.nav-dropdown-menu a { border-radius: 4px; }

.hp-section { padding: 116px 0; }
.hp-section-head { max-width: 790px; margin-bottom: 48px; }
.hp-section-head h2 { margin: 0; font-size: clamp(32px, 3vw, 44px); letter-spacing: -.8px; }
.hp-section-head > p:last-child, .hp-section-head > div > p:last-child { margin: 16px 0 0; color: var(--muted); font-size: 17px; max-width: 740px; }
.hp-section-head-row { max-width: none; display: flex; justify-content: space-between; align-items: flex-end; gap: 36px; }
.hp-section-head-row > div { max-width: 790px; }
.hp-eyebrow { margin: 0 0 14px; color: var(--accent); font: 700 12px/1.4 var(--font-mono); letter-spacing: .13em; text-transform: uppercase; }
.hp-eyebrow-light { color: #75c8f3; }
.hp-text-link { display: inline-flex; align-items: center; gap: 8px; color: var(--accent); font-weight: 700; white-space: nowrap; }
.hp-text-link:hover { text-decoration: none; color: var(--primary); }

/* Hero */
.hp-hero { position: relative; isolation: isolate; overflow: hidden; padding: 0; color: #d8e7f3; background:
    radial-gradient(700px 420px at 74% 48%, rgba(18,158,232,.18), transparent 62%),
    linear-gradient(112deg, #061e31 0%, #092f4a 57%, #071c2f 100%); }
.hp-hero::before { content: ""; position: absolute; z-index: -1; inset: 0; opacity: .48; background-image:
    linear-gradient(rgba(84,183,235,.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(84,183,235,.06) 1px, transparent 1px); background-size: 52px 52px; -webkit-mask-image: linear-gradient(90deg, #000, transparent 76%); mask-image: linear-gradient(90deg, #000, transparent 76%); }
.hp-hero::after { content: ""; position: absolute; z-index: -1; right: -8%; bottom: -24%; width: 58%; height: 72%; opacity: .48; background:
    linear-gradient(145deg, transparent 42%, rgba(31,112,160,.36) 42.4% 58%, transparent 58.4%),
    linear-gradient(35deg, transparent 47%, rgba(11,71,108,.76) 47.5% 72%, transparent 72.4%);
    clip-path: polygon(0 100%, 18% 62%, 31% 76%, 51% 20%, 67% 70%, 78% 47%, 100% 100%); }
.hp-hero-media { position: absolute; inset: 0; z-index: -2; }
.hp-hero-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5,26,43,.96) 0%, rgba(5,30,49,.88) 48%, rgba(5,27,44,.78) 100%); }
.hp-hero-media-item { position: absolute; inset: 0; opacity: 0; background-size: cover; background-position: center; transition: opacity 1s ease; }
.hp-hero-media-item.is-active { opacity: .38; }
.hp-hero-inner { min-height: 650px; display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(420px, .88fr); align-items: center; gap: 76px; padding-top: 84px; padding-bottom: 88px; }
.hp-hero-copy { position: relative; }
.hp-hero-copy h1 { color: #fff; font-size: clamp(48px, 4.5vw, 58px); letter-spacing: -1.8px; line-height: 1.13; margin: 0; }
.hp-hero-copy h1 span { color: var(--gold); }
.hp-hero-lead { max-width: 660px; margin: 24px 0 0; font-size: 17px; line-height: 1.9; color: #b7ccdc; }
.hp-hero-actions { margin-top: 34px; }
.hp-hero .btn-ghost { color: #e8f2f9; border-color: rgba(255,255,255,.36); background: rgba(255,255,255,.03); }
.hp-hero .btn-ghost:hover { color: #fff; border-color: #fff; }
.hp-hero-line { height: 3px; background: linear-gradient(90deg, var(--gold), var(--accent) 30%, transparent 82%); }

.hp-diagnosis { background: rgba(255,255,255,.97); color: var(--ink); border-radius: 9px; padding: 30px; box-shadow: 0 30px 80px rgba(0,0,0,.28); border: 1px solid rgba(255,255,255,.7); }
.hp-diagnosis-head { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.hp-diagnosis-kicker { display: block; color: var(--accent); font: 700 10px/1.4 var(--font-mono); letter-spacing: .1em; }
.hp-diagnosis h2 { margin: 6px 0 0; color: var(--primary); font-size: 21px; letter-spacing: -.3px; }
.hp-demo-label { color: var(--muted); font-size: 11px; white-space: nowrap; }
.hp-diagnosis-state { display: grid; grid-template-columns: 72px 1fr; gap: 18px; align-items: center; padding: 24px 0 20px; }
.hp-state-ring { width: 66px; height: 66px; display: grid; place-items: center; border-radius: 50%; border: 8px solid #e6f4fc; border-top-color: var(--accent); transform: rotate(26deg); }
.hp-state-ring i { width: 28px; height: 28px; border-radius: 50%; background: radial-gradient(circle, var(--accent) 0 24%, #d8f1fd 27% 100%); }
.hp-diagnosis-state strong { color: var(--primary); font-size: 16px; }
.hp-diagnosis-state p { color: var(--muted); margin: 5px 0 0; font-size: 13px; line-height: 1.6; }
.hp-diagnosis-list { margin: 0; display: grid; gap: 15px; }
.hp-diagnosis-list > div { display: grid; grid-template-columns: 62px 1fr; gap: 14px; align-items: center; }
.hp-diagnosis-list dt { color: var(--primary); font-size: 13px; font-weight: 700; }
.hp-diagnosis-list dd { margin: 0; display: grid; grid-template-columns: minmax(80px, 1fr) auto; align-items: center; gap: 12px; }
.hp-diagnosis-list dd > span { height: 7px; border-radius: 10px; overflow: hidden; background: #e7eef3; }
.hp-diagnosis-list dd > span::before { content: ""; display: block; width: var(--progress); height: 100%; background: linear-gradient(90deg, var(--accent2), var(--accent)); border-radius: inherit; }
.hp-diagnosis-list b { color: var(--muted); font-size: 11px; font-weight: 500; white-space: nowrap; }
.hp-diagnosis-gap { margin-top: 23px; padding-top: 18px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; gap: 18px; font-size: 13px; }
.hp-diagnosis-gap span { color: var(--muted); }
.hp-diagnosis-gap strong { color: #bd7900; }

/* Trust band */
.hp-trust { padding: 42px 0; background: #fff; border-bottom: 1px solid #e8eef2; }
.hp-trust-inner { display: grid; grid-template-columns: auto minmax(380px, 1fr); align-items: center; gap: 54px; }
.hp-trust-facts { display: flex; align-items: stretch; }
.hp-trust-fact { min-width: 150px; padding: 3px 28px; border-right: 1px solid var(--line); }
.hp-trust-fact:first-child { padding-left: 0; }
.hp-trust-fact strong, .hp-trust-fact span { display: block; }
.hp-trust-fact strong { color: var(--primary); font-size: 19px; line-height: 1.25; }
.hp-trust-fact sup { color: var(--accent); font-size: 12px; }
.hp-trust-fact span { margin-top: 5px; color: var(--muted); font-size: 12px; }
.hp-trust-clients > span { display: block; margin-bottom: 12px; color: #91a2af; font-size: 11px; }
.hp-trust-logos { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); align-items: center; gap: 13px; }
.hp-trust-logos > * { min-width: 0; height: 36px; display: grid; place-items: center; }
.hp-trust-logos img { display: block; max-height: 32px; max-width: min(76px, 100%); object-fit: contain; filter: grayscale(1); opacity: .54; }

/* Problems */
.hp-problems-section { background:
    radial-gradient(560px 260px at 100% 50%, rgba(18,158,232,.10), transparent 76%),
    linear-gradient(180deg, #fff, #f8fbfd); }
.hp-problems-panel { display: grid; grid-template-columns: repeat(3, 1fr); border-block: 1px solid var(--line); }
.hp-problem { position: relative; padding: 42px 40px 40px; border-right: 1px solid var(--line); }
.hp-problem:last-child { border-right: 0; }
.hp-problem-num { position: absolute; right: 24px; top: 25px; color: #c6d6e0; font: 600 12px/1 var(--font-mono); }
.hp-problem-icon { width: 47px; height: 47px; display: grid; place-items: center; border: 1px solid #bce3f8; border-radius: 50%; color: var(--accent); background: #f2faff; font-size: 26px; }
.hp-problem h3 { margin: 22px 0 10px; color: var(--primary); font-size: 21px; }
.hp-problem p { margin: 0; color: var(--muted); font-size: 14.5px; }

/* VTP */
.hp-vtp-section { padding: 128px 0 116px; position: relative; overflow: hidden; color: #afc6d7; background:
    radial-gradient(640px 380px at 78% 52%, rgba(18,158,232,.18), transparent 68%),
    linear-gradient(130deg, #061e31, #0a3451 61%, #071e31); }
.hp-vtp-section::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(112deg, transparent 52%, rgba(117,200,243,.12) 52.2% 52.45%, transparent 52.7%); }
.hp-vtp-layout { display: grid; grid-template-columns: .78fr 1.22fr; gap: 72px; align-items: end; position: relative; z-index: 1; }
.hp-vtp-intro h2 { color: #fff; margin: 0; font-size: 44px; }
.hp-vtp-intro > p:not(.hp-eyebrow) { max-width: 500px; }
.hp-vtp-lead { color: #fff; font-size: 19px; font-weight: 600; line-height: 1.6; }
.hp-vtp-intro .btn { margin-top: 20px; }
.hp-vtp-stairs { position: relative; min-height: 390px; display: grid; grid-template-columns: repeat(3, 1fr); align-items: end; gap: 7px; }
.hp-vtp-step { position: relative; padding: 30px 24px; text-align: center; border: 1px solid rgba(117,200,243,.28); background: linear-gradient(180deg, rgba(31,117,169,.70), rgba(10,49,76,.92)); box-shadow: 0 18px 34px rgba(0,0,0,.18); }
.hp-vtp-visible { min-height: 220px; }
.hp-vtp-trusted { min-height: 285px; }
.hp-vtp-preferred { min-height: 350px; border-color: rgba(255,181,28,.55); background: linear-gradient(180deg, rgba(149,105,23,.77), rgba(49,48,43,.94)); }
.hp-vtp-letter { display: block; margin-bottom: 4px; color: #68c5f5; font: 800 50px/1 var(--font-mono); }
.hp-vtp-preferred .hp-vtp-letter { color: var(--gold); }
.hp-vtp-en { color: #9bc9df; font: 600 10px/1.4 var(--font-mono); letter-spacing: .12em; text-transform: uppercase; }
.hp-vtp-step h3 { color: #fff; font-size: 22px; margin: 16px 0 10px; }
.hp-vtp-preferred h3 { color: var(--gold); }
.hp-vtp-step p { color: #b8d0df; margin: 0; font-size: 13.5px; }

/* Services */
.hp-services-section { background: #fff; }
.hp-service-grid { display: grid; grid-template-columns: 1.35fr .95fr; grid-template-rows: auto auto auto; gap: 14px; }
.hp-service-grid > article { position: relative; overflow: hidden; border: 1px solid var(--line); border-radius: 6px; }
.hp-service-primary { grid-row: 1 / 4; min-height: 520px; padding: 54px 48px; color: #c8dbe9; background: linear-gradient(145deg, #092c45, #061c2d); }
.hp-service-primary::after { content: ""; position: absolute; inset: auto -14% -25% 17%; height: 56%; opacity: .6; background: radial-gradient(ellipse, rgba(18,158,232,.45), transparent 65%); transform: rotate(-9deg); }
.hp-service-index { position: relative; z-index: 1; margin: 0 0 22px; color: var(--accent2); font: 700 11px/1.4 var(--font-mono); letter-spacing: .11em; }
.hp-service-primary h3 { position: relative; z-index: 1; max-width: 500px; color: #fff; font-size: 38px; margin: 0 0 22px; }
.hp-service-primary > p:not(.hp-service-index) { position: relative; z-index: 1; max-width: 540px; font-size: 16px; }
.hp-service-primary > strong { position: relative; z-index: 1; display: block; margin-top: 22px; color: #fff; font-size: 16px; }
.hp-service-primary > a { position: absolute; z-index: 2; left: 48px; bottom: 48px; display: inline-flex; gap: 10px; color: var(--gold); font-weight: 700; }
.hp-service-orbit { position: absolute; right: -80px; bottom: -100px; width: 410px; height: 410px; border: 1px solid rgba(117,200,243,.17); border-radius: 50%; }
.hp-service-orbit::before, .hp-service-orbit::after { content: ""; position: absolute; border: 1px solid rgba(117,200,243,.16); border-radius: 50%; inset: 54px; }
.hp-service-orbit::after { inset: 112px; }
.hp-service-orbit i { position: absolute; width: 8px; height: 8px; border-radius: 50%; background: var(--accent2); box-shadow: 0 0 20px var(--accent2); }
.hp-service-orbit i:nth-child(1) { left: 40px; top: 130px; }.hp-service-orbit i:nth-child(2) { left: 205px; top: 52px; }.hp-service-orbit i:nth-child(3) { left: 135px; top: 242px; }
.hp-service-website { padding: 34px 36px; background: linear-gradient(135deg, #eef9ff, #fff); }
.hp-service-website h3 { color: var(--primary); font-size: 25px; }
.hp-service-website > p:not(.hp-service-index) { color: var(--muted); margin: 0 0 15px; }
.hp-service-website ul { display: flex; flex-wrap: wrap; gap: 7px; margin: 0 0 20px; padding: 0; list-style: none; }
.hp-service-website li { padding: 5px 10px; color: #31627d; background: #fff; border: 1px solid #d7eaf4; border-radius: 4px; font-size: 12px; }
.hp-service-website > a { color: var(--accent); font-weight: 700; }
.hp-service-support { min-height: 122px; display: grid; grid-template-columns: 38px 1fr 30px; gap: 18px; align-items: center; padding: 25px 30px; background: #fff; }
.hp-service-support .hp-service-index { margin: 0; }
.hp-service-support h3 { margin: 0 0 5px; color: var(--primary); font-size: 18px; }
.hp-service-support p { margin: 0; color: var(--muted); font-size: 13.5px; line-height: 1.6; }
.hp-service-support > a { width: 30px; height: 30px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; }

/* Execution */
.hp-execution-section { background: #eef7fc; }
.hp-execution-flow { --hp-execution-axis: 23.5px; position: relative; display: grid; grid-template-columns: repeat(6, 1fr); gap: 0; margin: 0; padding: 0; list-style: none; }
.hp-execution-flow::before { content: ""; position: absolute; left: calc(100% / 12); right: calc(100% / 12); top: calc(var(--hp-execution-axis) - .5px); height: 1px; background: linear-gradient(90deg, #b7dbea, var(--accent), #b7dbea); }
.hp-execution-flow li { position: relative; padding: 0 18px; text-align: center; }
.hp-execution-connector { position: absolute; left: -7px; top: calc(var(--hp-execution-axis) - 7px); width: 14px; height: 14px; fill: none; stroke: var(--accent); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; pointer-events: none; }
.hp-execution-flow span { position: relative; z-index: 1; width: 47px; height: 47px; margin: 0 auto 24px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: linear-gradient(145deg, var(--accent2), var(--accent)); box-shadow: 0 0 0 7px #eef7fc; font: 700 13px/1 var(--font-mono); }
.hp-execution-flow h3 { color: var(--primary); font-size: 16px; line-height: 1.45; }
.hp-execution-flow p { color: var(--muted); font-size: 13px; line-height: 1.6; }

/* Solutions */
.hp-solutions-section { background: #fff; }
.hp-solution-grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr; border-block: 1px solid var(--line); }
.hp-solution-item { min-width: 0; display: grid; grid-template-rows: 150px 1fr; padding: 28px; border-right: 1px solid var(--line); }
.hp-solution-item:last-child { border-right: 0; }
.hp-solution-item.is-featured { grid-template-rows: 210px 1fr; padding-left: 0; }
.hp-solution-grid.is-single { grid-template-columns: 1fr; }
.hp-solution-grid.is-single .hp-solution-item.is-featured { grid-template-columns: minmax(300px, .85fr) minmax(0, 1.15fr); grid-template-rows: minmax(280px, 1fr); padding: 0; }
.hp-solution-grid.is-single .hp-solution-body { padding: 46px; }
.hp-solution-grid.is-single .hp-arrow-link { top: 46px; right: 46px; }
.hp-solution-visual { position: relative; overflow: hidden; background: linear-gradient(145deg, #dcebf3, #f7fbfd); }
.hp-solution-visual::before, .hp-solution-visual::after { content: ""; position: absolute; background: linear-gradient(145deg, #8aaec2, #e1edf3); box-shadow: -20px 20px 50px rgba(8,40,63,.15); transform: rotate(45deg); }
.hp-solution-visual::before { width: 110px; height: 110px; right: 15%; top: 28%; }
.hp-solution-visual::after { width: 74px; height: 74px; right: 37%; top: 52%; opacity: .72; }
.hp-solution-visual span { position: absolute; left: 12%; right: 8%; bottom: 20%; height: 1px; background: var(--accent); transform: rotate(-12deg); }
.hp-solution-visual i { position: absolute; width: 7px; height: 7px; right: 11%; bottom: 34%; border-radius: 50%; background: var(--gold); }
.hp-solution-body { position: relative; padding-top: 24px; padding-right: 28px; }
.hp-solution-meta { display: flex; gap: 8px; flex-wrap: wrap; }
.hp-solution-meta span { color: var(--accent); font-size: 11px; font-weight: 700; }
.hp-solution-meta span + span { color: var(--muted); }
.hp-solution-body h3 { margin: 10px 0; color: var(--primary); font-size: 21px; }
.hp-solution-body h3 a { color: inherit; }
.hp-solution-body p { color: var(--muted); font-size: 14px; }
.hp-arrow-link { position: absolute; right: 0; top: 24px; }
.hp-content-empty { padding: 34px; display: flex; justify-content: space-between; gap: 24px; border-block: 1px solid var(--line); background: var(--bg-soft); }
.hp-content-empty p { margin: 0; }
.hp-content-empty a { font-weight: 700; }

/* Cases */
.hp-cases-section { background: #f5f7f8; }
.hp-case-layout { display: grid; grid-template-columns: 1.8fr .8fr; gap: 18px; }
.hp-case-featured { display: grid; grid-template-columns: .9fr 1.1fr; min-height: 440px; background: #fff; border: 1px solid var(--line); border-radius: 6px; overflow: hidden; }
.hp-case-media { min-height: 100%; background: #dce8ee; }
.hp-case-media img { width: 100%; height: 100%; display: block; object-fit: cover; }
.hp-case-placeholder { height: 100%; min-height: 340px; position: relative; overflow: hidden; background: linear-gradient(145deg, #aec2ce, #edf4f7); }
.hp-case-placeholder::before, .hp-case-placeholder::after { content: ""; position: absolute; inset: auto -12% -18% -10%; height: 72%; background: #7297ab; clip-path: polygon(0 100%, 25% 32%, 38% 65%, 58% 5%, 72% 62%, 86% 38%, 100% 100%); }
.hp-case-placeholder::after { opacity: .45; inset: auto -5% -30% 8%; background: #d1e2ea; transform: scaleX(-1); }
.hp-case-body { padding: 40px; }
.hp-case-labels { display: flex; justify-content: space-between; gap: 16px; color: var(--accent); font-size: 11px; font-weight: 700; }
.hp-case-labels span + span { color: var(--muted); font-weight: 500; }
.hp-case-body h3 { color: var(--primary); font-size: 26px; line-height: 1.35; margin: 16px 0 22px; }
.hp-case-body h3 a { color: inherit; }
.hp-case-evidence { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; padding-block: 20px; border-block: 1px solid var(--line); }
.hp-case-evidence strong { display: block; color: var(--accent); font: 700 10px/1.4 var(--font-mono); letter-spacing: .1em; }
.hp-case-evidence p { margin: 7px 0 0; color: var(--muted); font-size: 13px; }
.hp-case-outcomes { display: flex; flex-wrap: wrap; gap: 7px; margin: 20px 0; }
.hp-case-outcomes span { padding: 5px 9px; background: #eef8fd; color: #24698d; border-radius: 4px; font-size: 11px; font-weight: 700; }
.hp-case-secondary { display: grid; gap: 18px; }
.hp-case-secondary article { position: relative; padding: 30px; background: #fff; border: 1px solid var(--line); border-radius: 6px; }
.hp-case-secondary article > span { color: var(--accent); font-size: 11px; font-weight: 700; }
.hp-case-secondary h3 { margin: 12px 28px 10px 0; color: var(--primary); font-size: 18px; line-height: 1.45; }
.hp-case-secondary h3 a { color: inherit; }
.hp-case-secondary p { margin: 0; color: var(--muted); font-size: 13px; }
.hp-case-secondary article > a { position: absolute; right: 24px; top: 28px; }

/* Why */
.hp-why-section { background: #fff; }
.hp-why-grid { display: grid; grid-template-columns: 1fr 1fr; border-block: 1px solid var(--line); }
.hp-why-grid article { display: grid; grid-template-columns: 38px 1fr; column-gap: 18px; padding: 36px 38px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.hp-why-grid article:nth-child(even) { border-right: 0; }
.hp-why-grid article:nth-last-child(-n+2) { border-bottom: 0; }
.hp-why-grid article > span { grid-row: 1 / 3; color: var(--accent); font: 700 12px/1.5 var(--font-mono); }
.hp-why-grid h3 { color: var(--primary); font-size: 20px; }
.hp-why-grid p { margin: 0; color: var(--muted); font-size: 14px; }

/* Insights */
.hp-insights-section { background: #f6f8f9; }
.hp-insight-grid { display: grid; grid-template-columns: 1.35fr .9fr; gap: 18px; }
.hp-insight-featured { min-height: 320px; display: grid; grid-template-columns: .8fr 1.2fr; background: #fff; border: 1px solid var(--line); border-radius: 6px; overflow: hidden; }
.hp-insight-visual { position: relative; overflow: hidden; min-height: 260px; background: linear-gradient(145deg, #c9d9e1, #edf4f7); }
.hp-insight-visual img { width: 100%; height: 100%; object-fit: cover; }
.hp-insight-visual span, .hp-insight-visual i { position: absolute; inset: auto -20% -7% -20%; height: 65%; background: #678ea3; clip-path: polygon(0 100%, 28% 25%, 42% 63%, 63% 0, 79% 60%, 100% 25%, 100% 100%); }
.hp-insight-visual i { opacity: .35; background: #dce9ef; transform: translate(12%, 20%); }
.hp-insight-featured > div:last-child { padding: 40px; }
.hp-insight-featured > div:last-child > span, .hp-insight-secondary article > span { color: var(--accent); font-size: 11px; font-weight: 700; }
.hp-insight-featured h3 { margin: 12px 0; color: var(--primary); font-size: 24px; line-height: 1.4; }
.hp-insight-featured h3 a { color: inherit; }
.hp-insight-featured p { color: var(--muted); font-size: 14px; }
.hp-insight-featured time { color: #91a1ad; font: 500 11px/1.4 var(--font-mono); }
.hp-insight-secondary { display: grid; gap: 18px; }
.hp-insight-secondary article { position: relative; padding: 32px; background: #fff; border: 1px solid var(--line); border-radius: 6px; }
.hp-insight-secondary h3 { margin: 12px 36px 0 0; color: var(--primary); font-size: 17px; line-height: 1.5; }
.hp-insight-secondary h3 a { color: inherit; }
.hp-insight-secondary article > a { position: absolute; right: 28px; top: 50%; transform: translateY(-50%); }

/* Final CTA and footer */
.hp-final-cta { padding: 92px 0; color: #b8ccda; background:
    radial-gradient(620px 240px at 5% 100%, rgba(18,158,232,.18), transparent 72%),
    linear-gradient(120deg, #061d30, #0a3451); }
.hp-final-inner { display: flex; align-items: center; justify-content: space-between; gap: 60px; }
.hp-final-inner > div:first-child { max-width: 720px; }
.hp-final-inner h2 { color: #fff; font-size: 38px; margin: 0; }
.hp-final-inner p:last-child { margin: 15px 0 0; }
.hp-final-inner .btn-row { flex-shrink: 0; flex-direction: column; margin: 0; }
.hp-final-inner .btn { justify-content: center; }
.hp-final-inner .btn-ghost { color: #fff; border-color: rgba(255,255,255,.34); background: transparent; }

.footer-inner { display: grid; grid-template-columns: 1.45fr 1.05fr .8fr .7fr 1.15fr; gap: 40px; padding: 72px 24px 48px; }
.footer-brand { max-width: 260px; }
.footer-logo { width: 128px; height: auto; display: block; filter: brightness(0) invert(1); opacity: .96; }
.footer-brand p { margin-top: 18px; color: #9fb6c7; line-height: 1.8; }
.footer-group, .footer-contact { display: flex; flex-direction: column; align-items: flex-start; gap: 9px; }
.footer-group strong, .footer-contact strong { margin-bottom: 5px; color: #fff; font-size: 14px; }
.footer-group a, .footer-contact a, .footer-contact p { color: #9fb6c7; font-size: 13px; line-height: 1.6; }
.footer-contact p { margin: 0; }
.footer-bottom { color: #829caf; }

@media (max-width: 1180px) {
    .site-nav { gap: 18px; }
    .site-nav a { font-size: 13.5px; }
    .hp-hero-inner { gap: 44px; }
    .hp-trust-inner { grid-template-columns: 1fr; gap: 30px; }
    .hp-trust-facts { justify-content: center; }
    .hp-trust-clients { text-align: center; }
    .hp-trust-logos { max-width: 760px; margin: auto; }
    .footer-inner { grid-template-columns: 1.4fr repeat(3, 1fr); }
    .footer-contact { grid-column: 2 / 5; flex-direction: row; flex-wrap: wrap; }
    .footer-contact strong { flex-basis: 100%; }
}

@media (max-width: 1024px) {
    .hp-section { padding: 92px 0; }
    .hp-hero-inner { min-height: 0; grid-template-columns: 1fr; padding-top: 84px; padding-bottom: 84px; }
    .hp-hero-copy { max-width: 760px; }
    .hp-diagnosis { max-width: 600px; }
    .hp-vtp-layout { grid-template-columns: 1fr; }
    .hp-vtp-intro { max-width: 680px; }
    .hp-service-grid { grid-template-columns: 1.12fr .88fr; }
    .hp-execution-flow { grid-template-columns: repeat(3, 1fr); row-gap: 48px; }
    .hp-execution-flow::before, .hp-execution-connector { display: none; }
    .hp-solution-grid { grid-template-columns: 1.15fr 1fr; }
    .hp-solution-item:nth-child(2) { border-right: 0; }
    .hp-solution-item:nth-child(3) { grid-column: 1 / -1; border-top: 1px solid var(--line); }
    .hp-case-layout { grid-template-columns: 1fr; }
    .hp-case-secondary { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 860px) {
    .site-header { backdrop-filter: none; }
    .site-nav { background: #fff; }
    .site-nav a { color: var(--ink); }
    .site-nav > a:not(.nav-cta)::after, .nav-dropdown-toggle::after { display: none; }
    .site-nav .nav-cta { color: var(--primary); }
    .hp-section-head-row { align-items: flex-start; flex-direction: column; }
    .hp-problems-panel { grid-template-columns: 1fr; }
    .hp-problem { border-right: 0; border-bottom: 1px solid var(--line); }
    .hp-problem:last-child { border-bottom: 0; }
    .hp-service-grid { grid-template-columns: 1fr; grid-template-rows: auto; }
    .hp-service-primary { grid-row: auto; min-height: 460px; }
    .hp-execution-flow { grid-template-columns: 1fr; gap: 0; padding-left: 23px; }
    .hp-execution-flow::before { display: block; left: calc(23px + var(--hp-execution-axis) - .5px); right: auto; top: var(--hp-execution-axis); bottom: 24px; width: 1px; height: auto; }
    .hp-execution-flow li { min-height: 116px; display: grid; grid-template-columns: 47px 1fr; column-gap: 24px; padding: 0 0 28px; text-align: left; }
    .hp-execution-flow span { grid-row: 1 / 3; margin: 0; box-shadow: 0 0 0 7px #eef7fc; }
    .hp-execution-flow h3 { margin: 2px 0 5px; }
    .hp-execution-flow p { margin: 0; }
    .hp-insight-grid { grid-template-columns: 1fr; }
    .hp-final-inner { align-items: flex-start; flex-direction: column; }
    .hp-final-inner .btn-row { flex-direction: row; }
    .footer-inner { grid-template-columns: 1.3fr 1fr 1fr; }
    .footer-brand { grid-column: 1 / -1; }
    .footer-contact { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
    .hp-section { padding: 76px 0; }
    .hp-section-head { margin-bottom: 36px; }
    .hp-section-head h2 { font-size: 30px; }
    .hp-section-head > p:last-child, .hp-section-head > div > p:last-child { font-size: 15px; }
    .hp-hero-inner { padding-top: 68px; padding-bottom: 72px; gap: 44px; }
    .hp-hero-copy h1 { font-size: 40px; letter-spacing: -1px; }
    .hp-hero-lead { font-size: 15.5px; line-height: 1.8; }
    .hp-hero-actions { flex-direction: column; align-items: stretch; }
    .hp-hero-actions .btn { justify-content: center; }
    .hp-diagnosis { padding: 22px; }
    .hp-diagnosis-head { display: block; }
    .hp-demo-label { display: inline-block; margin-top: 8px; }
    .hp-diagnosis-state { grid-template-columns: 56px 1fr; }
    .hp-state-ring { width: 52px; height: 52px; border-width: 6px; }
    .hp-diagnosis-list > div { grid-template-columns: 54px 1fr; }
    .hp-diagnosis-list dd { grid-template-columns: 1fr; gap: 4px; }
    .hp-trust { padding: 34px 0; }
    .hp-trust-facts { display: grid; grid-template-columns: 1fr 1fr; }
    .hp-trust-fact { min-width: 0; padding: 12px 16px; }
    .hp-trust-fact:first-child { padding-left: 16px; }
    .hp-trust-fact:nth-child(2) { border-right: 0; }
    .hp-trust-fact:last-child { grid-column: 1 / -1; border: 0; border-top: 1px solid var(--line); }
    .hp-trust-logos { grid-template-columns: repeat(4, 1fr); }
    .hp-problem { padding: 34px 22px; }
    .hp-vtp-section { padding: 80px 0; }
    .hp-vtp-intro h2 { font-size: 34px; }
    .hp-vtp-stairs { min-height: 0; grid-template-columns: 1fr; align-items: stretch; gap: 0; padding-left: 28px; }
    .hp-vtp-stairs::before { content: ""; position: absolute; left: 14px; top: 26px; bottom: 26px; width: 1px; background: linear-gradient(#68c5f5, var(--gold)); }
    .hp-vtp-step { min-height: 0; padding: 27px 25px; text-align: left; }
    .hp-vtp-step::before { content: ""; position: absolute; left: -21px; top: 29px; width: 11px; height: 11px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 5px #082c45; }
    .hp-vtp-letter { font-size: 38px; }
    .hp-service-primary { min-height: 500px; padding: 38px 28px; }
    .hp-service-primary h3 { font-size: 31px; }
    .hp-service-primary > a { left: 28px; bottom: 36px; }
    .hp-service-website { padding: 30px 26px; }
    .hp-service-support { grid-template-columns: 32px 1fr; padding: 24px; }
    .hp-service-support > a { grid-column: 2; }
    .hp-solution-grid { grid-template-columns: 1fr; }
    .hp-solution-item, .hp-solution-item.is-featured { grid-template-rows: 170px 1fr; padding: 24px 0; border-right: 0; border-bottom: 1px solid var(--line); }
    .hp-solution-grid.is-single .hp-solution-item.is-featured { grid-template-columns: 1fr; grid-template-rows: 170px 1fr; padding: 24px 0; }
    .hp-solution-grid.is-single .hp-solution-body { padding: 24px 28px 0 0; }
    .hp-solution-grid.is-single .hp-arrow-link { top: 24px; right: 0; }
    .hp-solution-item:nth-child(3) { grid-column: auto; border-top: 0; }
    .hp-solution-item:last-child { border-bottom: 0; }
    .hp-solution-body { padding-right: 28px; }
    .hp-case-featured { grid-template-columns: 1fr; }
    .hp-case-media { min-height: 250px; }
    .hp-case-body { padding: 30px 24px; }
    .hp-case-evidence { grid-template-columns: 1fr; }
    .hp-case-secondary { grid-template-columns: 1fr; }
    .hp-why-grid { grid-template-columns: 1fr; }
    .hp-why-grid article { padding: 30px 22px; border-right: 0; }
    .hp-why-grid article:nth-last-child(2) { border-bottom: 1px solid var(--line); }
    .hp-insight-featured { grid-template-columns: 1fr; }
    .hp-insight-featured > div:last-child { padding: 28px 24px; }
    .hp-final-cta { padding: 76px 0; }
    .hp-final-inner h2 { font-size: 31px; }
    .hp-final-inner .btn-row { width: 100%; flex-direction: column; }
    .footer-inner { grid-template-columns: 1fr 1fr; gap: 34px 24px; padding-top: 58px; }
    .footer-brand, .footer-contact { grid-column: 1 / -1; }
    .footer-contact { flex-direction: column; }
}

@media (max-width: 390px) {
    .container { padding-left: 20px; padding-right: 20px; }
    .hp-hero-copy h1 { font-size: 36px; }
    .hp-diagnosis-gap { flex-direction: column; gap: 3px; }
    .hp-service-orbit { right: -180px; }
}

/* ============ SEO Search Growth Detail V2 (seo-detail- namespace) ============ */
.seo-detail { overflow: clip; background: #fff; }
.seo-detail-section { padding: 112px 0; }
.seo-detail-eyebrow { margin: 0 0 15px; color: var(--accent); font: 700 11px/1.5 var(--font-mono); letter-spacing: .13em; text-transform: uppercase; }
.seo-detail-section-head { max-width: 880px; margin-bottom: 54px; }
.seo-detail-section-head h2 { margin: 0; color: var(--primary); font-size: clamp(34px, 3.2vw, 46px); letter-spacing: -.9px; }
.seo-detail-section-head > p:last-child { max-width: 780px; margin: 17px 0 0; color: var(--muted); font-size: 17px; }
.seo-detail-conclusion { margin: 48px 0 0; padding: 30px 36px; border-left: 4px solid var(--gold); color: var(--primary); background: #f5f9fb; font-size: 20px; font-weight: 700; line-height: 1.65; }

.seo-detail-hero { position: relative; padding: 42px 0 92px; overflow: hidden; background: radial-gradient(650px 350px at 88% 35%, rgba(18,158,232,.15), transparent 68%), linear-gradient(180deg, #fbfdfe, #edf7fb); }
.seo-detail-hero::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .72; background-image: linear-gradient(rgba(18,158,232,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(18,158,232,.045) 1px, transparent 1px); background-size: 48px 48px; -webkit-mask-image: linear-gradient(90deg, transparent, #000 58%, #000); mask-image: linear-gradient(90deg, transparent, #000 58%, #000); }
.seo-detail-hero .container { position: relative; z-index: 1; }
.seo-detail-breadcrumb { display: flex; align-items: center; gap: 10px; margin-bottom: 54px; color: #8094a3; font-size: 12px; }
.seo-detail-breadcrumb a { color: #547086; }
.seo-detail-breadcrumb a:hover { color: var(--accent); }
.seo-detail-hero-grid { display: grid; grid-template-columns: minmax(0, 1.03fr) minmax(430px, .97fr); gap: 72px; align-items: center; }
.seo-detail-hero-copy h1 { margin: 0; color: var(--primary); font-size: clamp(48px, 4.5vw, 66px); letter-spacing: -1.8px; }
.seo-detail-hero-proposition { max-width: 720px; margin: 24px 0 0; color: var(--primary); font-size: 25px; font-weight: 700; line-height: 1.55; }
.seo-detail-hero-summary { max-width: 710px; margin: 20px 0 0; color: var(--muted); font-size: 16.5px; line-height: 1.9; }
.seo-detail-hero-actions { margin-top: 34px; }
.seo-detail-growth-map { position: relative; padding: 28px; border: 1px solid #cbdfe8; background: rgba(255,255,255,.94); box-shadow: 0 28px 64px rgba(8,40,63,.14); }
.seo-detail-growth-map::before { content: "SEARCH GROWTH SYSTEM"; display: block; padding-bottom: 19px; border-bottom: 1px solid var(--line); color: var(--accent); font: 700 9px/1.4 var(--font-mono); letter-spacing: .13em; }
.seo-detail-growth-stage { position: relative; display: grid; grid-template-columns: 36px 1fr; gap: 14px; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--line); }
.seo-detail-growth-stage:last-child { border-bottom: 0; }
.seo-detail-growth-stage > span { width: 31px; height: 31px; display: grid; place-items: center; border: 1px solid #b9d9e8; border-radius: 50%; color: var(--accent); font: 700 9px/1 var(--font-mono); }
.seo-detail-growth-stage:not(:last-child)::after { content: "↓"; position: absolute; right: 5px; bottom: -8px; z-index: 1; padding: 0 4px; color: #7cbddc; background: #fff; font-size: 13px; }
.seo-detail-growth-stage small, .seo-detail-growth-stage strong { display: block; }
.seo-detail-growth-stage small { color: #7892a3; font: 700 9px/1.4 var(--font-mono); letter-spacing: .1em; }
.seo-detail-growth-stage strong { margin-top: 3px; color: var(--primary); font-size: 16px; }
.seo-detail-capabilities { border-block: 1px solid var(--line); background: #fff; }
.seo-detail-capabilities .container { display: grid; grid-template-columns: repeat(6, 1fr); padding-top: 25px; padding-bottom: 25px; }
.seo-detail-capabilities span { min-width: 0; display: flex; align-items: center; gap: 8px; padding: 4px 15px; border-right: 1px solid var(--line); color: #3a5568; font-size: 12px; font-weight: 600; line-height: 1.45; }
.seo-detail-capabilities span:first-child { padding-left: 0; }
.seo-detail-capabilities span:last-child { padding-right: 0; border-right: 0; }
.seo-detail-capabilities i { color: var(--accent); font: 700 9px/1 var(--font-mono); font-style: normal; }

.seo-detail-change { background: #fff; }
.seo-detail-change-list { display: grid; grid-template-columns: repeat(3, 1fr); border-block: 1px solid var(--line); }
.seo-detail-change-list article { padding: 34px 34px 34px 0; border-right: 1px solid var(--line); }
.seo-detail-change-list article + article { padding-left: 34px; }
.seo-detail-change-list article:last-child { padding-right: 0; border-right: 0; }
.seo-detail-change-list span { color: var(--accent); font: 700 11px/1.4 var(--font-mono); }
.seo-detail-change-list h3 { margin: 13px 0 9px; color: var(--primary); font-size: 21px; }
.seo-detail-change-list p { margin: 0; color: var(--muted); font-size: 13.5px; }

.seo-detail-synergy { color: #acc3d2; background: radial-gradient(700px 430px at 8% 92%, rgba(18,158,232,.16), transparent 70%), linear-gradient(130deg, #061d30, #0a3451 70%, #061d30); }
.seo-detail-synergy .seo-detail-section-head h2 { color: #fff; }
.seo-detail-synergy .seo-detail-section-head > p:last-child { color: #a8c0d0; }
.seo-detail-synergy .seo-detail-eyebrow { color: #72c9f4; }
.seo-detail-synergy-grid { display: grid; grid-template-columns: 1fr 230px 1fr; border: 1px solid rgba(117,200,243,.2); }
.seo-detail-synergy-grid article { padding: 39px 42px; }
.seo-detail-synergy-grid article > span { color: var(--gold); font: 800 32px/1 var(--font-mono); }
.seo-detail-synergy-grid h3 { margin: 14px 0 22px; color: #fff; font-size: 22px; }
.seo-detail-synergy-grid ul { margin: 0; padding: 0; list-style: none; }
.seo-detail-synergy-grid li { padding: 10px 0; border-top: 1px solid rgba(255,255,255,.1); color: #a8c0d0; font-size: 13px; }
.seo-detail-shared { display: flex; flex-direction: column; justify-content: center; gap: 9px; padding: 30px 25px; border-inline: 1px solid rgba(117,200,243,.2); background: rgba(18,158,232,.07); text-align: center; }
.seo-detail-shared small { margin-bottom: 8px; color: #72c9f4; font: 700 8px/1.4 var(--font-mono); letter-spacing: .1em; }
.seo-detail-shared strong { padding: 9px; border: 1px solid rgba(117,200,243,.18); color: #d9e9f1; font-size: 12px; }
.seo-detail-synergy .seo-detail-conclusion { color: #fff; background: rgba(255,255,255,.055); }

.seo-detail-framework { background: #f1f7fa; }
.seo-detail-framework-flow { display: grid; grid-template-columns: repeat(5, 1fr); margin: 0; padding: 0; border-block: 1px solid #cadfe9; list-style: none; }
.seo-detail-framework-flow li { position: relative; min-width: 0; padding: 32px 25px; border-right: 1px solid #cadfe9; }
.seo-detail-framework-flow li:last-child { border-right: 0; }
.seo-detail-framework-flow li:not(:last-child)::after { content: "→"; position: absolute; top: 31px; right: -10px; z-index: 1; color: var(--accent); background: #f1f7fa; }
.seo-detail-framework-flow span { color: var(--accent); font: 800 24px/1 var(--font-mono); }
.seo-detail-framework-flow small { display: block; margin-top: 25px; color: #7892a3; font: 700 9px/1.4 var(--font-mono); letter-spacing: .09em; }
.seo-detail-framework-flow h3 { margin: 6px 0 12px; color: var(--primary); font-size: 20px; }
.seo-detail-framework-flow p { margin: 0; color: var(--muted); font-size: 12.5px; }

.seo-detail-objects { background: #fff; }
.seo-detail-object-matrix { border-top: 1px solid var(--line); }
.seo-detail-object-matrix article { display: grid; grid-template-columns: minmax(250px, .55fr) minmax(320px, 1fr) minmax(250px, .75fr); gap: 38px; align-items: center; padding: 31px 0; border-bottom: 1px solid var(--line); }
.seo-detail-object-title { display: grid; grid-template-columns: 44px 1fr; align-content: start; }
.seo-detail-object-title > span { grid-row: 1 / 3; color: var(--accent); font: 700 11px/1.5 var(--font-mono); }
.seo-detail-object-title small { color: #7892a3; font: 700 9px/1.4 var(--font-mono); letter-spacing: .09em; }
.seo-detail-object-title h3 { margin: 4px 0 0; color: var(--primary); font-size: 21px; }
.seo-detail-object-matrix ul { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.seo-detail-object-matrix li { padding: 6px 9px; color: #32617a; background: #eef8fc; font-size: 11.5px; }
.seo-detail-object-matrix article > p { margin: 0; color: var(--muted); font-size: 13px; }

.seo-detail-delivery { background: #eef7fc; }
.seo-detail-delivery-list { margin: 0; padding: 0; border-top: 1px solid #cadfe9; list-style: none; }
.seo-detail-delivery-list > li { display: grid; grid-template-columns: minmax(190px, .55fr) minmax(0, 1.2fr) minmax(0, .8fr); gap: 36px; padding: 31px 0; border-bottom: 1px solid #cadfe9; }
.seo-detail-delivery-phase { display: grid; grid-template-columns: 44px 1fr; align-content: start; }
.seo-detail-delivery-phase span { grid-row: 1 / 3; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--primary); font: 700 10px/1 var(--font-mono); }
.seo-detail-delivery-phase small { color: var(--accent); font: 700 9px/1.4 var(--font-mono); letter-spacing: .1em; }
.seo-detail-delivery-phase h3 { margin: 5px 0 0; color: var(--primary); font-size: 17px; }
.seo-detail-delivery-list > li > div:not(:first-child) { padding-left: 28px; border-left: 1px solid #cadfe9; }
.seo-detail-delivery-list > li > div:not(:first-child) > strong { color: var(--accent); font: 700 9px/1.4 var(--font-mono); letter-spacing: .12em; }
.seo-detail-delivery-list ul { display: flex; flex-wrap: wrap; gap: 5px; margin: 9px 0 0; padding: 0; list-style: none; }
.seo-detail-delivery-list ul li { padding: 5px 7px; border: 1px solid #d3e7f0; color: #4a687b; background: rgba(255,255,255,.7); font-size: 10.5px; }

.seo-detail-deliverables { background: #fff; }
.seo-detail-deliverable-system { display: grid; grid-template-columns: repeat(4, 1fr); border-block: 1px solid var(--line); }
.seo-detail-deliverable-system article { padding: 34px 28px; border-right: 1px solid var(--line); }
.seo-detail-deliverable-system article:last-child { border-right: 0; }
.seo-detail-deliverable-system article > span { color: var(--accent); font: 700 9px/1.4 var(--font-mono); letter-spacing: .1em; }
.seo-detail-deliverable-system h3 { margin: 10px 0 22px; color: var(--primary); font-size: 22px; }
.seo-detail-deliverable-system ul { margin: 0; padding: 0; list-style: none; }
.seo-detail-deliverable-system li { padding: 8px 0; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; }

.seo-detail-fit { background: #f7fafb; }
.seo-detail-fit-list { display: grid; grid-template-columns: 1fr 1fr; column-gap: 52px; margin: 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.seo-detail-fit-list li { display: grid; grid-template-columns: 42px 1fr; gap: 18px; padding: 28px 0; border-bottom: 1px solid var(--line); }
.seo-detail-fit-list span { color: var(--accent); font: 700 11px/1.5 var(--font-mono); }
.seo-detail-fit-list h3 { margin: 0; color: var(--primary); font-size: 17px; line-height: 1.55; }

.seo-detail-evidence { background: #edf2f4; }
.seo-detail-case { display: grid; grid-template-columns: minmax(0, 1fr) minmax(350px, .7fr); overflow: hidden; border: 1px solid #d3dfe5; background: #fff; box-shadow: 0 20px 54px rgba(8,40,63,.08); }
.seo-detail-case-copy { padding: 45px 48px; }
.seo-detail-case-copy > span { color: var(--accent); font: 700 9px/1.4 var(--font-mono); letter-spacing: .12em; }
.seo-detail-case-copy > h3 { margin: 10px 0 7px; color: var(--primary); font-size: 28px; line-height: 1.4; }
.seo-detail-case-copy > p { margin: 0; color: var(--muted); font-size: 13px; }
.seo-detail-case-copy dl { margin: 30px 0 0; }
.seo-detail-case-copy dl > div { display: grid; grid-template-columns: 95px 1fr; gap: 20px; padding: 13px 0; border-top: 1px solid var(--line); }
.seo-detail-case-copy dt, .seo-detail-case-outcomes > strong { color: var(--accent); font: 700 9px/1.4 var(--font-mono); letter-spacing: .1em; }
.seo-detail-case-copy dd { margin: 0; color: var(--muted); font-size: 13px; }
.seo-detail-case-outcomes { margin-top: 27px; }
.seo-detail-case-outcomes ul { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 11px 0 0; padding: 0; list-style: none; }
.seo-detail-case-outcomes li { padding: 12px 14px; color: var(--primary); background: #eef8fc; font-size: 12px; font-weight: 700; }
.seo-detail-case-copy > a { display: inline-flex; margin-top: 30px; font-weight: 700; }
.seo-detail-case > img { width: 100%; height: 100%; min-height: 430px; object-fit: cover; }

.seo-detail-continuous { color: #acc3d2; background: linear-gradient(130deg, #071f32, #0c3b59); }
.seo-detail-continuous-layout { display: grid; grid-template-columns: minmax(280px, .72fr) minmax(0, 1.28fr); gap: 80px; align-items: center; }
.seo-detail-continuous .seo-detail-section-head { margin: 0; }
.seo-detail-continuous .seo-detail-section-head h2 { color: #fff; }
.seo-detail-continuous .seo-detail-section-head > p:last-child { color: #9fbbcc; }
.seo-detail-continuous .seo-detail-eyebrow { color: #72c9f4; }
.seo-detail-cycle { display: grid; grid-template-columns: repeat(5, 1fr); margin: 0; padding: 0; list-style: none; }
.seo-detail-cycle li { position: relative; min-width: 0; padding: 25px 14px; border-block: 1px solid rgba(117,200,243,.22); text-align: center; }
.seo-detail-cycle li:not(:last-child)::after { content: "→"; position: absolute; top: 50%; right: -7px; z-index: 1; color: var(--gold); transform: translateY(-50%); }
.seo-detail-cycle span, .seo-detail-cycle strong { display: block; }
.seo-detail-cycle span { color: var(--gold); font: 700 10px/1.4 var(--font-mono); text-transform: uppercase; }
.seo-detail-cycle strong { margin-top: 9px; color: #fff; font-size: 12px; }

.seo-detail-faq { background: #f6f9fa; }
.seo-detail-faq-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: 80px; align-items: start; }
.seo-detail-faq-layout .seo-detail-section-head { position: sticky; top: 112px; margin: 0; }
.seo-detail-faq-list { border-top: 1px solid var(--line); }
.seo-detail-faq-list details { border-bottom: 1px solid var(--line); }
.seo-detail-faq-list summary { display: flex; justify-content: space-between; gap: 20px; padding: 23px 0; color: var(--primary); cursor: pointer; font-weight: 700; list-style: none; }
.seo-detail-faq-list summary::-webkit-details-marker { display: none; }
.seo-detail-faq-list summary::after { content: "+"; color: var(--accent); font-size: 22px; font-weight: 400; }
.seo-detail-faq-list details[open] summary::after { content: "−"; }
.seo-detail-faq-list details > div { padding: 0 42px 24px 0; color: var(--muted); }
.seo-detail-final { padding: 88px 0; color: #aac2d1; background: radial-gradient(540px 300px at 90% 40%, rgba(18,158,232,.16), transparent 70%), linear-gradient(130deg, #061d30, #0a3451); }
.seo-detail-final-inner { display: flex; justify-content: space-between; gap: 70px; align-items: center; }
.seo-detail-final .seo-detail-eyebrow { color: #72c8f3; }
.seo-detail-final h2 { max-width: 760px; margin: 0; color: #fff; font-size: clamp(34px, 3.1vw, 46px); }
.seo-detail-final p:not(.seo-detail-eyebrow) { max-width: 720px; margin: 16px 0 0; color: #9fbbcc; }
.seo-detail-final .btn-row { flex: 0 0 auto; justify-content: flex-end; }
.seo-detail-final .btn-ghost { border-color: rgba(255,255,255,.34); color: #fff; background: transparent; }

@media (max-width: 1180px) {
    .seo-detail-hero-grid { grid-template-columns: 1fr 400px; gap: 44px; }
    .seo-detail-capabilities .container { grid-template-columns: repeat(3, 1fr); }
    .seo-detail-capabilities span:nth-child(3) { border-right: 0; }
    .seo-detail-framework-flow { grid-template-columns: repeat(3, 1fr); }
    .seo-detail-framework-flow li:nth-child(3) { border-right: 0; }
    .seo-detail-framework-flow li:nth-child(-n+3) { border-bottom: 1px solid #cadfe9; }
    .seo-detail-framework-flow li::after { display: none; }
    .seo-detail-object-matrix article { grid-template-columns: 230px 1fr; }
    .seo-detail-object-matrix article > p { grid-column: 2; }
    .seo-detail-deliverable-system { grid-template-columns: 1fr 1fr; }
    .seo-detail-deliverable-system article:nth-child(2) { border-right: 0; }
    .seo-detail-deliverable-system article:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
    .seo-detail-continuous-layout { gap: 48px; }
}

@media (max-width: 900px) {
    .seo-detail-section { padding: 88px 0; }
    .seo-detail-hero { padding-bottom: 78px; }
    .seo-detail-hero-grid, .seo-detail-continuous-layout { grid-template-columns: 1fr; }
    .seo-detail-growth-map { max-width: 650px; }
    .seo-detail-synergy-grid { grid-template-columns: 1fr; }
    .seo-detail-shared { border-inline: 0; border-block: 1px solid rgba(117,200,243,.2); }
    .seo-detail-object-matrix article { grid-template-columns: 210px 1fr; gap: 28px; }
    .seo-detail-delivery-list > li { grid-template-columns: 190px 1fr; }
    .seo-detail-delivery-list > li > div:last-child { grid-column: 2; }
    .seo-detail-case { grid-template-columns: 1fr; }
    .seo-detail-case > img { max-height: 520px; min-height: 0; }
    .seo-detail-cycle { max-width: 740px; }
    .seo-detail-faq-layout { grid-template-columns: 1fr; gap: 42px; }
    .seo-detail-faq-layout .seo-detail-section-head { position: static; }
    .seo-detail-final-inner { display: block; }
    .seo-detail-final .btn-row { justify-content: flex-start; margin-top: 32px; }
}

@media (max-width: 640px) {
    .seo-detail-section { padding: 72px 0; }
    .seo-detail-section-head { margin-bottom: 38px; }
    .seo-detail-section-head h2 { font-size: 32px; }
    .seo-detail-section-head > p:last-child { font-size: 15px; }
    .seo-detail-hero { padding: 28px 0 66px; }
    .seo-detail-breadcrumb { margin-bottom: 38px; }
    .seo-detail-hero-copy h1 { font-size: 42px; letter-spacing: -1.1px; }
    .seo-detail-hero-proposition { font-size: 21px; }
    .seo-detail-hero-actions { align-items: stretch; }
    .seo-detail-hero-actions .btn { width: 100%; justify-content: center; }
    .seo-detail-growth-map { padding: 21px; }
    .seo-detail-capabilities .container { grid-template-columns: 1fr 1fr; }
    .seo-detail-capabilities span { padding: 10px 9px; border-bottom: 1px solid var(--line); }
    .seo-detail-capabilities span:nth-child(3) { border-right: 1px solid var(--line); }
    .seo-detail-capabilities span:nth-child(even) { border-right: 0; }
    .seo-detail-change-list { grid-template-columns: 1fr; }
    .seo-detail-change-list article, .seo-detail-change-list article + article { padding: 27px 0; border-right: 0; border-bottom: 1px solid var(--line); }
    .seo-detail-conclusion { margin-top: 35px; padding: 24px; font-size: 17px; }
    .seo-detail-synergy-grid article { padding: 32px 25px; }
    .seo-detail-framework-flow { grid-template-columns: 1fr; }
    .seo-detail-framework-flow li, .seo-detail-framework-flow li:nth-child(3) { padding: 26px 0; border-right: 0; border-bottom: 1px solid #cadfe9; }
    .seo-detail-framework-flow li:last-child { border-bottom: 0; }
    .seo-detail-framework-flow small { margin-top: 13px; }
    .seo-detail-object-matrix article { grid-template-columns: 1fr; gap: 18px; padding: 27px 0; }
    .seo-detail-object-matrix article > p { grid-column: auto; }
    .seo-detail-delivery-list > li { grid-template-columns: 1fr; gap: 22px; padding: 27px 0; }
    .seo-detail-delivery-list > li > div:not(:first-child) { padding: 0; border-left: 0; }
    .seo-detail-delivery-list > li > div:last-child { grid-column: auto; }
    .seo-detail-deliverable-system { grid-template-columns: 1fr; }
    .seo-detail-deliverable-system article, .seo-detail-deliverable-system article:nth-child(2) { padding: 27px 0; border-right: 0; border-bottom: 1px solid var(--line); }
    .seo-detail-deliverable-system article:last-child { border-bottom: 0; }
    .seo-detail-fit-list { grid-template-columns: 1fr; }
    .seo-detail-case-copy { padding: 32px 25px; }
    .seo-detail-case-copy > h3 { font-size: 23px; }
    .seo-detail-case-copy dl > div { grid-template-columns: 1fr; gap: 5px; }
    .seo-detail-case-outcomes ul { grid-template-columns: 1fr; }
    .seo-detail-cycle { grid-template-columns: 1fr; }
    .seo-detail-cycle li { padding: 16px; border-bottom: 0; }
    .seo-detail-cycle li:last-child { border-bottom: 1px solid rgba(117,200,243,.22); }
    .seo-detail-cycle li::after { display: none; }
    .seo-detail-faq-list details > div { padding-right: 0; }
    .seo-detail-final { padding: 72px 0; }
    .seo-detail-final h2 { font-size: 34px; }
    .seo-detail-final .btn-row { align-items: stretch; }
    .seo-detail-final .btn { width: 100%; justify-content: center; }
}

@media (max-width: 390px) {
    .seo-detail-hero-copy h1 { font-size: 36px; }
    .seo-detail-capabilities .container { grid-template-columns: 1fr; }
    .seo-detail-capabilities span, .seo-detail-capabilities span:nth-child(3) { border-right: 0; }
    .seo-detail-fit-list li { grid-template-columns: 34px 1fr; gap: 13px; }
}

@media (prefers-reduced-motion: reduce) {
    .seo-detail * { scroll-behavior: auto !important; }
}

/* ============ Reputation & Cognition Governance Detail V2 (rep-detail- namespace) ============ */
.rep-detail { overflow: clip; background: #fff; }
.rep-detail-section { padding: 112px 0; }
.rep-detail-eyebrow { margin: 0 0 15px; color: var(--accent); font: 700 11px/1.5 var(--font-mono); letter-spacing: .13em; text-transform: uppercase; }
.rep-detail-section-head { max-width: 890px; margin-bottom: 54px; }
.rep-detail-section-head h2 { margin: 0; color: var(--primary); font-size: clamp(34px, 3.2vw, 46px); letter-spacing: -.9px; }
.rep-detail-section-head > p:last-child { max-width: 780px; margin: 17px 0 0; color: var(--muted); font-size: 17px; }
.rep-detail-conclusion { margin: 48px 0 0; padding: 30px 36px; border-left: 4px solid var(--gold); color: var(--primary); background: #f5f9fb; font-size: 20px; font-weight: 700; line-height: 1.65; }

.rep-detail-hero { position: relative; padding: 42px 0 92px; overflow: hidden; background: radial-gradient(690px 380px at 88% 35%, rgba(18,158,232,.14), transparent 68%), linear-gradient(180deg, #fbfdfe, #eef7fa); }
.rep-detail-hero::before { content: ""; position: absolute; inset: 0; opacity: .7; pointer-events: none; background-image: linear-gradient(rgba(18,158,232,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(18,158,232,.045) 1px, transparent 1px); background-size: 48px 48px; -webkit-mask-image: linear-gradient(90deg, transparent, #000 58%, #000); mask-image: linear-gradient(90deg, transparent, #000 58%, #000); }
.rep-detail-hero .container { position: relative; z-index: 1; }
.rep-detail-breadcrumb { display: flex; align-items: center; gap: 10px; margin-bottom: 54px; color: #8094a3; font-size: 12px; }
.rep-detail-breadcrumb a { color: #547086; }
.rep-detail-breadcrumb a:hover { color: var(--accent); }
.rep-detail-hero-grid { display: grid; grid-template-columns: minmax(0, 1.03fr) minmax(430px, .97fr); gap: 72px; align-items: center; }
.rep-detail-hero-copy h1 { margin: 0; color: var(--primary); font-size: clamp(46px, 4.3vw, 64px); letter-spacing: -1.8px; }
.rep-detail-hero-proposition { max-width: 720px; margin: 24px 0 0; color: var(--primary); font-size: 25px; font-weight: 700; line-height: 1.55; }
.rep-detail-hero-summary { max-width: 710px; margin: 20px 0 0; color: var(--muted); font-size: 16.5px; line-height: 1.9; }
.rep-detail-hero-actions { margin-top: 34px; }
.rep-detail-environment { padding: 28px; border: 1px solid #cbdfe8; background: rgba(255,255,255,.95); box-shadow: 0 28px 64px rgba(8,40,63,.14); text-align: center; }
.rep-detail-environment > p { margin: 0 0 22px; padding-bottom: 18px; border-bottom: 1px solid var(--line); color: var(--accent); font: 700 9px/1.4 var(--font-mono); letter-spacing: .13em; text-align: left; }
.rep-detail-environment-sources { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; }
.rep-detail-environment-sources span { min-width: 0; padding: 12px 5px; border: 1px solid #d8e7ee; color: #45677a; background: #f6fafc; font: 700 9px/1.35 var(--font-mono); }
.rep-detail-environment-flow { display: flex; flex-direction: column; align-items: center; height: 43px; color: var(--accent); }
.rep-detail-environment-flow i { width: 1px; flex: 1; background: #a8d3e7; }
.rep-detail-environment-flow b { font-size: 16px; }
.rep-detail-environment > strong { display: block; padding: 20px; color: #fff; background: var(--primary); font-size: 22px; }
.rep-detail-environment-outcomes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; }
.rep-detail-environment-outcomes span { padding: 12px 5px; border: 1px solid #d8e7ee; color: var(--primary); font-size: 11px; font-weight: 700; }
.rep-detail-environment-outcomes span:nth-child(2) { color: #8a5b00; border-color: #efd28e; background: #fff9e9; }
.rep-detail-capabilities { border-block: 1px solid var(--line); background: #fff; }
.rep-detail-capabilities .container { display: grid; grid-template-columns: repeat(6, 1fr); padding-top: 25px; padding-bottom: 25px; }
.rep-detail-capabilities span { min-width: 0; display: flex; align-items: center; gap: 8px; padding: 4px 15px; border-right: 1px solid var(--line); color: #3a5568; font-size: 12px; font-weight: 600; line-height: 1.45; }
.rep-detail-capabilities span:first-child { padding-left: 0; }
.rep-detail-capabilities span:last-child { padding-right: 0; border-right: 0; }
.rep-detail-capabilities i { color: var(--accent); font: 700 9px/1 var(--font-mono); font-style: normal; }

.rep-detail-monitoring { background: #fff; }
.rep-detail-monitoring-list { display: grid; grid-template-columns: 1fr 1fr; margin: 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.rep-detail-monitoring-list > li { display: grid; grid-template-columns: 42px 1fr; gap: 20px; padding: 31px 32px 31px 0; border-bottom: 1px solid var(--line); }
.rep-detail-monitoring-list > li:nth-child(odd) { border-right: 1px solid var(--line); }
.rep-detail-monitoring-list > li:nth-child(even) { padding-left: 32px; }
.rep-detail-monitoring-list span { color: var(--accent); font: 700 11px/1.5 var(--font-mono); }
.rep-detail-monitoring-list h3 { margin: 0 0 8px; color: var(--primary); font-size: 18px; }
.rep-detail-monitoring-list p { margin: 0; color: var(--muted); font-size: 13.5px; }

.rep-detail-framework { color: #acc3d2; background: radial-gradient(700px 430px at 8% 92%, rgba(18,158,232,.16), transparent 70%), linear-gradient(130deg, #061d30, #0a3451 70%, #061d30); }
.rep-detail-framework-layout { display: grid; grid-template-columns: minmax(290px, .62fr) minmax(0, 1.38fr); gap: 78px; align-items: start; }
.rep-detail-framework .rep-detail-section-head { position: sticky; top: 110px; margin: 0; }
.rep-detail-framework .rep-detail-section-head h2 { color: #fff; }
.rep-detail-framework .rep-detail-section-head > p:last-child { color: #a8c0d0; }
.rep-detail-framework .rep-detail-eyebrow { color: #72c9f4; }
.rep-detail-framework-path { margin: 0; padding: 0; list-style: none; }
.rep-detail-framework-path > li { display: grid; grid-template-columns: 58px 1fr; gap: 18px; }
.rep-detail-framework-marker { display: flex; flex-direction: column; align-items: center; }
.rep-detail-framework-marker span { width: 43px; height: 43px; display: grid; place-items: center; border: 1px solid rgba(117,200,243,.38); border-radius: 50%; color: #72c9f4; font: 700 10px/1 var(--font-mono); }
.rep-detail-framework-marker i { width: 1px; flex: 1; min-height: 25px; background: rgba(117,200,243,.25); }
.rep-detail-framework-path > li:last-child .rep-detail-framework-marker i { display: none; }
.rep-detail-framework-stage { margin-bottom: 10px; padding: 24px 27px; border: 1px solid rgba(117,200,243,.18); background: rgba(255,255,255,.035); }
.rep-detail-framework-stage small { color: var(--gold); font: 700 9px/1.4 var(--font-mono); letter-spacing: .12em; }
.rep-detail-framework-stage h3 { margin: 5px 0 13px; color: #fff; font-size: 22px; }
.rep-detail-framework-stage > strong { color: #d8e8f0; font-size: 14px; }
.rep-detail-framework-stage ul { display: flex; flex-wrap: wrap; gap: 5px; margin: 14px 0 12px; padding: 0; list-style: none; }
.rep-detail-framework-stage li { padding: 5px 7px; border: 1px solid rgba(117,200,243,.17); color: #9fbdce; font-size: 10.5px; }
.rep-detail-framework-stage p { margin: 0; color: #6fc8f4; font: 700 9px/1.4 var(--font-mono); letter-spacing: .08em; }
.rep-detail-framework-note { grid-column: 2; margin: 20px 0 0; padding: 22px 26px; border-left: 3px solid var(--gold); color: #fff; background: rgba(255,255,255,.05); font-weight: 700; }

.rep-detail-govern { background: #fff; }
.rep-detail-govern-map { display: grid; grid-template-columns: 280px 1fr; gap: 36px; align-items: stretch; }
.rep-detail-govern-center { display: flex; flex-direction: column; justify-content: center; padding: 36px; color: #fff; background: var(--primary); text-align: center; }
.rep-detail-govern-center small { color: #72c9f4; font: 700 9px/1.4 var(--font-mono); letter-spacing: .12em; }
.rep-detail-govern-center strong { margin-top: 16px; font-size: 32px; line-height: 1.15; }
.rep-detail-govern-center span { margin-top: 10px; color: #9fbdce; }
.rep-detail-govern-environments { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.rep-detail-govern-environments article { padding: 25px 28px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.rep-detail-govern-environments small { color: var(--accent); font: 700 9px/1.4 var(--font-mono); letter-spacing: .1em; }
.rep-detail-govern-environments h3 { margin: 7px 0 10px; color: var(--primary); font-size: 19px; }
.rep-detail-govern-environments p { margin: 0; color: var(--muted); font-size: 12px; }

.rep-detail-risk-map { background: #f3f7f9; }
.rep-detail-risk-table { border-top: 1px solid #d4e1e7; }
.rep-detail-risk-table article { display: grid; grid-template-columns: 44px minmax(190px, .5fr) minmax(0, 1.25fr) minmax(170px, .45fr); gap: 27px; align-items: center; padding: 28px 0; border-bottom: 1px solid #d4e1e7; }
.rep-detail-risk-table article > span { color: var(--accent); font: 700 11px/1.5 var(--font-mono); }
.rep-detail-risk-table small { color: #7892a3; font: 700 9px/1.4 var(--font-mono); letter-spacing: .09em; }
.rep-detail-risk-table h3 { margin: 4px 0 0; color: var(--primary); font-size: 19px; }
.rep-detail-risk-table p { margin: 0; color: var(--muted); font-size: 13px; }
.rep-detail-risk-table article > strong { padding: 8px 10px; color: #32617a; background: #e7f3f8; font-size: 11px; text-align: center; }

.rep-detail-delivery { background: #eaf5fa; }
.rep-detail-delivery-list { margin: 0; padding: 0; border-top: 1px solid #c8dde7; list-style: none; }
.rep-detail-delivery-list > li { display: grid; grid-template-columns: minmax(210px, .58fr) minmax(0, 1.15fr) minmax(0, .85fr); gap: 36px; padding: 31px 0; border-bottom: 1px solid #c8dde7; }
.rep-detail-delivery-phase { display: grid; grid-template-columns: 44px 1fr; align-content: start; }
.rep-detail-delivery-phase span { grid-row: 1 / 3; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--primary); font: 700 10px/1 var(--font-mono); }
.rep-detail-delivery-phase small { color: var(--accent); font: 700 9px/1.4 var(--font-mono); letter-spacing: .1em; }
.rep-detail-delivery-phase h3 { margin: 5px 0 0; color: var(--primary); font-size: 17px; }
.rep-detail-delivery-list > li > div:not(:first-child) { padding-left: 28px; border-left: 1px solid #c8dde7; }
.rep-detail-delivery-list > li > div:not(:first-child) > strong { color: var(--accent); font: 700 9px/1.4 var(--font-mono); letter-spacing: .12em; }
.rep-detail-delivery-list ul { display: flex; flex-wrap: wrap; gap: 5px; margin: 9px 0 0; padding: 0; list-style: none; }
.rep-detail-delivery-list ul li { padding: 5px 7px; border: 1px solid #d3e7f0; color: #4a687b; background: rgba(255,255,255,.72); font-size: 10.5px; }

.rep-detail-deliverables { background: #fff; }
.rep-detail-deliverable-columns { display: grid; grid-template-columns: repeat(4, 1fr); border-block: 1px solid var(--line); }
.rep-detail-deliverable-columns article { padding: 34px 28px; border-right: 1px solid var(--line); }
.rep-detail-deliverable-columns article:last-child { border-right: 0; }
.rep-detail-deliverable-columns small { color: var(--accent); font: 700 9px/1.4 var(--font-mono); letter-spacing: .1em; }
.rep-detail-deliverable-columns h3 { margin: 10px 0 22px; color: var(--primary); font-size: 22px; }
.rep-detail-deliverable-columns ul { margin: 0; padding: 0; list-style: none; }
.rep-detail-deliverable-columns li { padding: 8px 0; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; }

.rep-detail-fit { background: #f7fafb; }
.rep-detail-fit-list { display: grid; grid-template-columns: 1fr 1fr; column-gap: 52px; margin: 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.rep-detail-fit-list li { display: grid; grid-template-columns: 42px 1fr; gap: 18px; padding: 28px 0; border-bottom: 1px solid var(--line); }
.rep-detail-fit-list span { color: var(--accent); font: 700 11px/1.5 var(--font-mono); }
.rep-detail-fit-list h3 { margin: 0; color: var(--primary); font-size: 17px; line-height: 1.55; }

.rep-detail-evidence { background: #edf2f4; }
.rep-detail-case { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(360px, .75fr); overflow: hidden; border: 1px solid #d3dfe5; background: #fff; box-shadow: 0 20px 54px rgba(8,40,63,.08); }
.rep-detail-case-copy { min-width: 0; padding: 43px 46px; }
.rep-detail-case-copy > small { color: var(--accent); font: 700 9px/1.4 var(--font-mono); letter-spacing: .12em; }
.rep-detail-case-copy > h3 { margin: 10px 0 7px; color: var(--primary); font-size: 27px; line-height: 1.4; }
.rep-detail-case-copy > p { margin: 0; color: var(--muted); font-size: 13px; }
.rep-detail-case-copy dl { margin: 27px 0 0; }
.rep-detail-case-copy dl > div { display: grid; grid-template-columns: 90px 1fr; gap: 18px; padding: 12px 0; border-top: 1px solid var(--line); }
.rep-detail-case-copy dt { color: var(--accent); font: 700 9px/1.4 var(--font-mono); letter-spacing: .1em; }
.rep-detail-case-copy dd { margin: 0; color: var(--muted); font-size: 13px; }
.rep-detail-case-copy dd ul { margin: 0; padding-left: 18px; }
.rep-detail-case-result { max-height: 340px; margin-top: 28px; padding-right: 14px; overflow: auto; color: #496276; }
.rep-detail-case-result h2 { margin: 20px 0 8px; color: var(--primary); font-size: 17px; }
.rep-detail-case-result h2:first-child { margin-top: 0; }
.rep-detail-case-result h3 { color: var(--primary); font-size: 14px; }
.rep-detail-case-result p, .rep-detail-case-result li { font-size: 12.5px; line-height: 1.7; }
.rep-detail-case-copy > a { display: inline-flex; margin-top: 28px; font-weight: 700; }
.rep-detail-case > img { width: 100%; height: 100%; min-height: 540px; object-fit: cover; }

.rep-detail-continuous { color: #acc3d2; background: linear-gradient(130deg, #071f32, #0c3b59); }
.rep-detail-continuous-layout { display: grid; grid-template-columns: minmax(280px, .7fr) minmax(0, 1.3fr); gap: 80px; align-items: start; }
.rep-detail-continuous .rep-detail-section-head { margin: 0; }
.rep-detail-continuous .rep-detail-section-head h2 { color: #fff; }
.rep-detail-continuous .rep-detail-section-head > p:last-child { color: #9fbbcc; }
.rep-detail-continuous .rep-detail-eyebrow { color: #72c9f4; }
.rep-detail-continuous-variables { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid rgba(117,200,243,.2); }
.rep-detail-continuous-variables article { padding: 29px 25px; border-right: 1px solid rgba(117,200,243,.2); }
.rep-detail-continuous-variables article:last-child { border-right: 0; }
.rep-detail-continuous-variables small { color: var(--gold); font: 700 9px/1.4 var(--font-mono); }
.rep-detail-continuous-variables h3 { margin: 8px 0 10px; color: #fff; font-size: 18px; }
.rep-detail-continuous-variables p { margin: 0; color: #9fbbcc; font-size: 12px; }
.rep-detail-cycle { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(6, 1fr); margin: 18px 0 0; padding: 0; list-style: none; }
.rep-detail-cycle li { position: relative; padding: 15px 5px; border-block: 1px solid rgba(117,200,243,.2); color: #fff; font: 700 10px/1.4 var(--font-mono); text-align: center; }
.rep-detail-cycle li:not(:last-child)::after { content: "→"; position: absolute; right: -6px; color: var(--gold); }
.rep-detail-continuous-note { grid-column: 1 / -1; margin: 20px 0 0; padding: 24px 28px; border-left: 3px solid var(--gold); color: #fff; background: rgba(255,255,255,.05); font-weight: 700; }

.rep-detail-faq { background: #f6f9fa; }
.rep-detail-faq-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: 80px; align-items: start; }
.rep-detail-faq-layout .rep-detail-section-head { position: sticky; top: 112px; margin: 0; }
.rep-detail-faq-list { border-top: 1px solid var(--line); }
.rep-detail-faq-list details { border-bottom: 1px solid var(--line); }
.rep-detail-faq-list summary { display: flex; justify-content: space-between; gap: 20px; padding: 23px 0; color: var(--primary); cursor: pointer; font-weight: 700; list-style: none; }
.rep-detail-faq-list summary::-webkit-details-marker { display: none; }
.rep-detail-faq-list summary::after { content: "+"; color: var(--accent); font-size: 22px; font-weight: 400; }
.rep-detail-faq-list details[open] summary::after { content: "−"; }
.rep-detail-faq-list details > div { padding: 0 42px 24px 0; color: var(--muted); }
.rep-detail-final { padding: 88px 0; color: #aac2d1; background: radial-gradient(540px 300px at 90% 40%, rgba(18,158,232,.16), transparent 70%), linear-gradient(130deg, #061d30, #0a3451); }
.rep-detail-final-inner { display: flex; justify-content: space-between; gap: 70px; align-items: center; }
.rep-detail-final .rep-detail-eyebrow { color: #72c8f3; }
.rep-detail-final h2 { max-width: 760px; margin: 0; color: #fff; font-size: clamp(34px, 3.1vw, 46px); }
.rep-detail-final p:not(.rep-detail-eyebrow) { max-width: 720px; margin: 16px 0 0; color: #9fbbcc; }
.rep-detail-final .btn-row { flex: 0 0 auto; justify-content: flex-end; }
.rep-detail-final .btn-ghost { border-color: rgba(255,255,255,.34); color: #fff; background: transparent; }

@media (max-width: 1180px) {
    .rep-detail-hero-grid { grid-template-columns: 1fr 400px; gap: 44px; }
    .rep-detail-capabilities .container { grid-template-columns: repeat(3, 1fr); }
    .rep-detail-capabilities span:nth-child(3) { border-right: 0; }
    .rep-detail-framework-layout { gap: 48px; }
    .rep-detail-deliverable-columns { grid-template-columns: 1fr 1fr; }
    .rep-detail-deliverable-columns article:nth-child(2) { border-right: 0; }
    .rep-detail-deliverable-columns article:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
    .rep-detail-continuous-layout { gap: 48px; }
}

@media (max-width: 900px) {
    .rep-detail-section { padding: 88px 0; }
    .rep-detail-hero { padding-bottom: 78px; }
    .rep-detail-hero-grid, .rep-detail-framework-layout, .rep-detail-continuous-layout { grid-template-columns: 1fr; }
    .rep-detail-environment { max-width: 650px; }
    .rep-detail-framework .rep-detail-section-head, .rep-detail-faq-layout .rep-detail-section-head { position: static; }
    .rep-detail-framework-note { grid-column: 1; }
    .rep-detail-govern-map { grid-template-columns: 1fr; }
    .rep-detail-govern-center { min-height: 240px; }
    .rep-detail-risk-table article { grid-template-columns: 42px 180px 1fr; }
    .rep-detail-risk-table article > strong { grid-column: 3; justify-self: start; }
    .rep-detail-delivery-list > li { grid-template-columns: 210px 1fr; }
    .rep-detail-delivery-list > li > div:last-child { grid-column: 2; }
    .rep-detail-case { grid-template-columns: 1fr; }
    .rep-detail-case > img { max-height: 540px; min-height: 0; }
    .rep-detail-faq-layout { grid-template-columns: 1fr; gap: 42px; }
    .rep-detail-final-inner { display: block; }
    .rep-detail-final .btn-row { justify-content: flex-start; margin-top: 32px; }
}

@media (max-width: 640px) {
    .rep-detail-section { padding: 72px 0; }
    .rep-detail-section-head { margin-bottom: 38px; }
    .rep-detail-section-head h2 { font-size: 32px; }
    .rep-detail-section-head > p:last-child { font-size: 15px; }
    .rep-detail-hero { padding: 28px 0 66px; }
    .rep-detail-breadcrumb { margin-bottom: 38px; }
    .rep-detail-hero-copy h1 { font-size: 40px; letter-spacing: -1px; }
    .rep-detail-hero-proposition { font-size: 21px; }
    .rep-detail-hero-actions { align-items: stretch; }
    .rep-detail-hero-actions .btn { width: 100%; justify-content: center; }
    .rep-detail-environment { padding: 19px; }
    .rep-detail-environment-sources { grid-template-columns: repeat(2, 1fr); }
    .rep-detail-capabilities .container { grid-template-columns: 1fr 1fr; }
    .rep-detail-capabilities span { padding: 10px 9px; border-bottom: 1px solid var(--line); }
    .rep-detail-capabilities span:nth-child(3) { border-right: 1px solid var(--line); }
    .rep-detail-capabilities span:nth-child(even) { border-right: 0; }
    .rep-detail-monitoring-list { grid-template-columns: 1fr; }
    .rep-detail-monitoring-list > li, .rep-detail-monitoring-list > li:nth-child(even) { padding: 25px 0; border-right: 0; }
    .rep-detail-conclusion { margin-top: 35px; padding: 24px; font-size: 17px; }
    .rep-detail-framework-path > li { grid-template-columns: 44px 1fr; gap: 12px; }
    .rep-detail-framework-marker span { width: 38px; height: 38px; }
    .rep-detail-framework-stage { padding: 22px 19px; }
    .rep-detail-govern-environments { grid-template-columns: 1fr; }
    .rep-detail-govern-center { min-height: 210px; }
    .rep-detail-risk-table article { grid-template-columns: 35px 1fr; gap: 15px; }
    .rep-detail-risk-table article > p, .rep-detail-risk-table article > strong { grid-column: 2; }
    .rep-detail-delivery-list > li { grid-template-columns: 1fr; gap: 22px; padding: 27px 0; }
    .rep-detail-delivery-list > li > div:not(:first-child) { padding: 0; border-left: 0; }
    .rep-detail-delivery-list > li > div:last-child { grid-column: auto; }
    .rep-detail-deliverable-columns { grid-template-columns: 1fr; }
    .rep-detail-deliverable-columns article, .rep-detail-deliverable-columns article:nth-child(2) { padding: 27px 0; border-right: 0; border-bottom: 1px solid var(--line); }
    .rep-detail-deliverable-columns article:last-child { border-bottom: 0; }
    .rep-detail-fit-list { grid-template-columns: 1fr; }
    .rep-detail-case-copy { padding: 32px 24px; }
    .rep-detail-case-copy > h3 { font-size: 23px; }
    .rep-detail-case-copy dl > div { grid-template-columns: 1fr; gap: 5px; }
    .rep-detail-case-result { max-height: none; padding-right: 0; overflow: visible; }
    .rep-detail-continuous-variables { grid-template-columns: 1fr; }
    .rep-detail-continuous-variables article { border-right: 0; border-bottom: 1px solid rgba(117,200,243,.2); }
    .rep-detail-continuous-variables article:last-child { border-bottom: 0; }
    .rep-detail-cycle { grid-template-columns: 1fr 1fr; }
    .rep-detail-cycle li:nth-child(odd) { border-right: 1px solid rgba(117,200,243,.2); }
    .rep-detail-cycle li::after { display: none; }
    .rep-detail-faq-list details > div { padding-right: 0; }
    .rep-detail-final { padding: 72px 0; }
    .rep-detail-final h2 { font-size: 34px; }
    .rep-detail-final .btn-row { align-items: stretch; }
    .rep-detail-final .btn { width: 100%; justify-content: center; }
}

@media (max-width: 390px) {
    .rep-detail-hero-copy h1 { font-size: 35px; }
    .rep-detail-capabilities .container { grid-template-columns: 1fr; }
    .rep-detail-capabilities span, .rep-detail-capabilities span:nth-child(3) { border-right: 0; }
    .rep-detail-fit-list li { grid-template-columns: 34px 1fr; gap: 13px; }
}

@media (prefers-reduced-motion: reduce) {
    .rep-detail * { scroll-behavior: auto !important; }
}

@media (prefers-reduced-motion: reduce) {
    .hp-hero-media-item { transition: none; }
}

/* ============ AI-friendly Website Detail V2 (aiw-detail- namespace) ============ */
.aiw-detail { overflow: clip; background: #fff; }
.aiw-detail-section { padding: 112px 0; }
.aiw-detail-eyebrow { margin: 0 0 15px; color: var(--accent); font: 700 11px/1.5 var(--font-mono); letter-spacing: .13em; text-transform: uppercase; }
.aiw-detail-section-head { max-width: 850px; margin-bottom: 54px; }
.aiw-detail-section-head h2 { margin: 0; color: var(--primary); font-size: clamp(34px, 3.2vw, 46px); letter-spacing: -.9px; }
.aiw-detail-section-head > p:last-child { max-width: 760px; margin: 17px 0 0; color: var(--muted); font-size: 17px; }
.aiw-detail-conclusion { margin: 48px 0 0; padding: 30px 36px; border-left: 4px solid var(--gold); color: var(--primary); background: #f5f9fb; font-size: 20px; font-weight: 700; line-height: 1.65; }

/* Hero architecture */
.aiw-detail-hero { position: relative; padding: 42px 0 92px; overflow: hidden; background: radial-gradient(680px 360px at 88% 35%, rgba(18,158,232,.13), transparent 68%), linear-gradient(180deg, #fbfdfe, #eef7fb); }
.aiw-detail-hero::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .7; background-image: linear-gradient(rgba(18,158,232,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(18,158,232,.045) 1px, transparent 1px); background-size: 48px 48px; -webkit-mask-image: linear-gradient(90deg, transparent, #000 58%, #000); mask-image: linear-gradient(90deg, transparent, #000 58%, #000); }
.aiw-detail-hero .container { position: relative; z-index: 1; }
.aiw-detail-breadcrumb { display: flex; align-items: center; gap: 10px; margin-bottom: 54px; color: #8094a3; font-size: 12px; }
.aiw-detail-breadcrumb a { color: #547086; }
.aiw-detail-breadcrumb a:hover { color: var(--accent); }
.aiw-detail-hero-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(430px, .95fr); gap: 72px; align-items: center; }
.aiw-detail-hero-copy h1 { margin: 0; color: var(--primary); font-size: clamp(48px, 4.5vw, 66px); letter-spacing: -1.8px; }
.aiw-detail-hero-proposition { max-width: 700px; margin: 24px 0 0; color: var(--primary); font-size: 25px; font-weight: 700; line-height: 1.55; }
.aiw-detail-hero-summary { max-width: 710px; margin: 20px 0 0; color: var(--muted); font-size: 16.5px; line-height: 1.9; }
.aiw-detail-hero-actions { margin-top: 34px; }
.aiw-detail-architecture { padding: 25px; border: 1px solid #cedfe8; border-radius: 8px; background: rgba(255,255,255,.94); box-shadow: 0 28px 64px rgba(8,40,63,.14); }
.aiw-detail-architecture header { padding-bottom: 20px; border-bottom: 1px solid var(--line); text-align: center; }
.aiw-detail-architecture header span, .aiw-detail-architecture header strong { display: block; }
.aiw-detail-architecture header span { color: var(--accent); font: 700 9px/1.5 var(--font-mono); letter-spacing: .12em; }
.aiw-detail-architecture header strong { margin-top: 7px; color: var(--primary); font-size: 22px; }
.aiw-detail-entity-grid { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; padding: 28px 0 6px; }
.aiw-detail-entity-grid::before { content: ""; position: absolute; top: 12px; left: 16%; right: 16%; height: 16px; border: solid #b8d8e7; border-width: 0 1px 1px; }
.aiw-detail-entity-grid span { position: relative; padding: 12px 7px; border: 1px solid #d8e7ee; color: #31566c; background: #f5fafc; font: 700 11px/1.4 var(--font-mono); text-align: center; }
.aiw-detail-architecture-flow { display: flex; flex-direction: column; align-items: center; height: 48px; color: var(--accent); }
.aiw-detail-architecture-flow i { width: 1px; flex: 1; background: #a8d3e7; }
.aiw-detail-architecture-flow b { font-size: 18px; }
.aiw-detail-destinations { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; }
.aiw-detail-destinations span { padding: 12px 5px; color: #fff; background: var(--primary); font-size: 10.5px; font-weight: 700; text-align: center; }
.aiw-detail-capabilities { border-block: 1px solid var(--line); background: #fff; }
.aiw-detail-capabilities .container { display: grid; grid-template-columns: repeat(6, 1fr); padding-top: 25px; padding-bottom: 25px; }
.aiw-detail-capabilities span { min-width: 0; display: flex; align-items: center; gap: 8px; padding: 4px 15px; border-right: 1px solid var(--line); color: #3a5568; font-size: 12px; font-weight: 600; line-height: 1.45; }
.aiw-detail-capabilities span:first-child { padding-left: 0; }
.aiw-detail-capabilities span:last-child { padding-right: 0; border-right: 0; }
.aiw-detail-capabilities i { color: var(--accent); font: 700 9px/1 var(--font-mono); font-style: normal; }

/* Website gap */
.aiw-detail-gap { background: #fff; }
.aiw-detail-gap-list { display: grid; grid-template-columns: 1fr 1fr; margin: 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.aiw-detail-gap-list li { display: grid; grid-template-columns: 42px 1fr; gap: 20px; padding: 31px 32px 31px 0; border-bottom: 1px solid var(--line); }
.aiw-detail-gap-list li:nth-child(odd) { border-right: 1px solid var(--line); }
.aiw-detail-gap-list li:nth-child(even) { padding-left: 32px; }
.aiw-detail-gap-list li > span { color: var(--accent); font: 700 11px/1.5 var(--font-mono); }
.aiw-detail-gap-list h3 { margin: 0 0 8px; color: var(--primary); font-size: 18px; }
.aiw-detail-gap-list p { margin: 0; color: var(--muted); font-size: 13.5px; }

/* Five-layer framework */
.aiw-detail-framework { color: #abc2d2; background: radial-gradient(700px 430px at 8% 92%, rgba(18,158,232,.16), transparent 70%), linear-gradient(130deg, #061d30, #0a3451 70%, #061d30); }
.aiw-detail-framework-layout { display: grid; grid-template-columns: minmax(270px, .62fr) minmax(0, 1.38fr); gap: 78px; align-items: start; }
.aiw-detail-framework .aiw-detail-section-head { position: sticky; top: 110px; margin: 0; }
.aiw-detail-framework .aiw-detail-section-head h2 { color: #fff; }
.aiw-detail-framework .aiw-detail-section-head > p:last-child { color: #a8c0d0; }
.aiw-detail-framework .aiw-detail-eyebrow { color: #72c9f4; }
.aiw-detail-layer-stack { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.aiw-detail-layer-stack > li { display: grid; grid-template-columns: minmax(155px, .48fr) minmax(0, 1.52fr); gap: 28px; padding: 25px 28px; border: 1px solid rgba(117,200,243,.17); background: rgba(255,255,255,.035); }
.aiw-detail-layer-stack > li:first-child { border-color: rgba(255,181,28,.38); background: rgba(255,181,28,.055); }
.aiw-detail-layer-title { display: flex; gap: 15px; align-items: flex-start; }
.aiw-detail-layer-title > span { color: #6fc8f4; font: 800 29px/1 var(--font-mono); }
.aiw-detail-layer-stack > li:first-child .aiw-detail-layer-title > span, .aiw-detail-layer-stack > li:first-child h3 { color: var(--gold); }
.aiw-detail-layer-title small { color: #6e9ab3; font: 700 9px/1.4 var(--font-mono); letter-spacing: .12em; }
.aiw-detail-layer-title h3 { margin: 3px 0 0; color: #fff; font-size: 20px; }
.aiw-detail-layer-body > strong { color: #fff; font-size: 14px; }
.aiw-detail-layer-body ul { display: flex; flex-wrap: wrap; gap: 5px; margin: 11px 0 9px; padding: 0; list-style: none; }
.aiw-detail-layer-body li { padding: 4px 7px; border: 1px solid rgba(117,200,243,.16); color: #bad1df; font-size: 10.5px; }
.aiw-detail-layer-body p { margin: 0; color: #87a6ba; font-size: 12.5px; }

/* Rebuild matrix */
.aiw-detail-rebuild { background: #fff; }
.aiw-detail-rebuild-matrix { border-top: 1px solid var(--line); }
.aiw-detail-rebuild-matrix article { display: grid; grid-template-columns: minmax(260px, .42fr) minmax(0, .58fr); gap: 54px; padding: 32px 0; border-bottom: 1px solid var(--line); }
.aiw-detail-rebuild-title { display: grid; grid-template-columns: 45px 1fr; align-content: start; }
.aiw-detail-rebuild-title > span { grid-row: 1 / 3; color: var(--accent); font: 700 11px/1.5 var(--font-mono); }
.aiw-detail-rebuild-title small { color: #7690a1; font: 700 9px/1.5 var(--font-mono); letter-spacing: .11em; }
.aiw-detail-rebuild-title h3 { margin: 4px 0 0; color: var(--primary); font-size: 22px; }
.aiw-detail-rebuild-matrix article > div:last-child ul { display: flex; flex-wrap: wrap; gap: 7px; margin: 0; padding: 0; list-style: none; }
.aiw-detail-rebuild-matrix article > div:last-child li { padding: 6px 9px; color: #32617a; background: #eef8fc; font-size: 11.5px; }
.aiw-detail-rebuild-matrix article > div:last-child p { margin: 14px 0 0; color: var(--muted); font-size: 13.5px; }

/* Delivery modes */
.aiw-detail-modes { background: #f1f7fa; }
.aiw-detail-mode-grid { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid #cadfe9; background: #fff; }
.aiw-detail-mode-grid article { padding: 43px 46px; }
.aiw-detail-mode-grid article + article { border-left: 1px solid #cadfe9; }
.aiw-detail-mode-grid article > span { color: var(--accent); font: 700 10px/1.5 var(--font-mono); letter-spacing: .12em; }
.aiw-detail-mode-grid h3 { margin: 10px 0 28px; color: var(--primary); font-size: 28px; }
.aiw-detail-mode-grid dl { margin: 0; }
.aiw-detail-mode-grid dl > div { display: grid; grid-template-columns: 90px 1fr; gap: 17px; padding: 14px 0; border-top: 1px solid var(--line); }
.aiw-detail-mode-grid dt { color: var(--primary); font-size: 13px; font-weight: 700; }
.aiw-detail-mode-grid dd { margin: 0; color: var(--muted); font-size: 13px; }
.aiw-detail-mode-grid article > a { display: inline-flex; gap: 9px; margin-top: 28px; font-weight: 700; }

/* Information architecture */
.aiw-detail-ia { background: #fff; }
.aiw-detail-ia-layout { display: grid; grid-template-columns: minmax(280px, .7fr) minmax(0, 1.3fr); gap: 84px; align-items: center; }
.aiw-detail-ia .aiw-detail-section-head { margin: 0; }
.aiw-detail-ia .aiw-detail-section-head > strong { display: block; margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--line); color: var(--primary); font-size: 17px; line-height: 1.65; }
.aiw-detail-ia-map { position: relative; padding: 34px; border: 1px solid #d5e3ea; background: #f8fbfc; }
.aiw-detail-ia-root { width: 54%; margin: 0 auto 54px; padding: 19px 24px; color: #fff; background: var(--primary); font-size: 19px; font-weight: 700; text-align: center; }
.aiw-detail-ia-root small { display: block; margin-top: 3px; color: #9fbdcf; font-size: 10px; font-weight: 500; }
.aiw-detail-ia-branches { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.aiw-detail-ia-branches::before { content: ""; position: absolute; left: 8%; right: 8%; top: -29px; height: 29px; border: solid #9fc9dc; border-width: 1px 1px 0; }
.aiw-detail-ia-branches > div { position: relative; min-height: 102px; padding: 18px 15px; border: 1px solid #d4e5ed; background: #fff; }
.aiw-detail-ia-branches > div::before { content: ""; position: absolute; left: 50%; top: -30px; width: 1px; height: 29px; background: #9fc9dc; }
.aiw-detail-ia-branches strong, .aiw-detail-ia-branches span { display: block; }
.aiw-detail-ia-branches strong { color: var(--primary); font-size: 13px; }
.aiw-detail-ia-branches span { margin-top: 6px; color: var(--muted); font-size: 10.5px; }

/* Delivery and deliverables */
.aiw-detail-delivery { background: #eef7fc; }
.aiw-detail-delivery-list { margin: 0; padding: 0; border-top: 1px solid #cadfe9; list-style: none; }
.aiw-detail-delivery-list > li { display: grid; grid-template-columns: minmax(190px, .55fr) minmax(0, 1.2fr) minmax(0, .8fr); gap: 36px; padding: 31px 0; border-bottom: 1px solid #cadfe9; }
.aiw-detail-delivery-phase { display: grid; grid-template-columns: 44px 1fr; align-content: start; }
.aiw-detail-delivery-phase span { grid-row: 1 / 3; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--primary); font: 700 10px/1 var(--font-mono); }
.aiw-detail-delivery-phase small { color: var(--accent); font: 700 9px/1.4 var(--font-mono); letter-spacing: .1em; }
.aiw-detail-delivery-phase h3 { margin: 5px 0 0; color: var(--primary); font-size: 17px; }
.aiw-detail-delivery-list > li > div:not(:first-child) { padding-left: 28px; border-left: 1px solid #cadfe9; }
.aiw-detail-delivery-list > li > div:not(:first-child) > strong { color: var(--accent); font: 700 9px/1.4 var(--font-mono); letter-spacing: .12em; }
.aiw-detail-delivery-list ul { display: flex; flex-wrap: wrap; gap: 5px; margin: 9px 0 0; padding: 0; list-style: none; }
.aiw-detail-delivery-list ul li { padding: 5px 7px; border: 1px solid #d3e7f0; color: #4a687b; background: rgba(255,255,255,.65); font-size: 10.5px; }
.aiw-detail-deliverables { background: #fff; }
.aiw-detail-deliverable-system { display: grid; grid-template-columns: repeat(4, 1fr); border-block: 1px solid var(--line); }
.aiw-detail-deliverable-system article { padding: 34px 28px; border-right: 1px solid var(--line); }
.aiw-detail-deliverable-system article:last-child { border-right: 0; }
.aiw-detail-deliverable-system article > span { color: var(--accent); font: 700 9px/1.4 var(--font-mono); letter-spacing: .1em; }
.aiw-detail-deliverable-system h3 { margin: 10px 0 22px; color: var(--primary); font-size: 22px; }
.aiw-detail-deliverable-system ul { margin: 0; padding: 0; list-style: none; }
.aiw-detail-deliverable-system li { padding: 8px 0; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; }
.aiw-detail-cms-note { margin: 32px 0 0; padding: 20px 25px; border-left: 3px solid var(--gold); color: var(--primary); background: #f6f9fb; font-weight: 700; }

/* Evidence, fit and FAQ */
.aiw-detail-evidence { background: #edf2f4; }
.aiw-detail-case { overflow: hidden; border: 1px solid #d3dfe5; background: #fff; box-shadow: 0 20px 54px rgba(8,40,63,.08); }
.aiw-detail-case-head { display: flex; justify-content: space-between; gap: 36px; align-items: flex-start; padding: 42px 46px; color: #fff; background: var(--primary); }
.aiw-detail-case-head span { color: #72c8f3; font: 700 9px/1.4 var(--font-mono); letter-spacing: .12em; }
.aiw-detail-case-head h3 { max-width: 730px; margin: 9px 0 7px; color: #fff; font-size: 28px; line-height: 1.4; }
.aiw-detail-case-head p { margin: 0; color: #9fbbcc; font-size: 12.5px; }
.aiw-detail-case-tags { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.aiw-detail-case-tags span { padding: 5px 8px; border: 1px solid rgba(117,200,243,.28); color: #b9d8e8; letter-spacing: 0; }
.aiw-detail-case-structure { display: grid; grid-template-columns: repeat(4, 1fr); border-bottom: 1px solid var(--line); }
.aiw-detail-case-structure > div { padding: 28px; border-right: 1px solid var(--line); }
.aiw-detail-case-structure > div:last-child { border-right: 0; }
.aiw-detail-case-structure strong { color: var(--accent); font: 700 9px/1.4 var(--font-mono); letter-spacing: .1em; }
.aiw-detail-case-structure p, .aiw-detail-case-structure ul { margin: 9px 0 0; color: var(--muted); font-size: 12.5px; }
.aiw-detail-case-result { padding: 40px 46px 28px; columns: 3; column-gap: 46px; column-rule: 1px solid var(--line); color: #496276; }
.aiw-detail-case-result h2 { break-after: avoid; margin: 0 0 10px; color: var(--primary); font-size: 18px; }
.aiw-detail-case-result h2:not(:first-child) { margin-top: 0; }
.aiw-detail-case-result h3 { color: var(--primary); font-size: 15px; }
.aiw-detail-case-result p, .aiw-detail-case-result li { font-size: 13px; line-height: 1.75; }
.aiw-detail-case > img { width: calc(100% - 92px); max-height: 520px; display: block; margin: 12px 46px 28px; object-fit: cover; }
.aiw-detail-case-link { display: inline-flex; gap: 8px; margin: 0 46px 40px; font-weight: 700; }
.aiw-detail-fit { background: #fff; }
.aiw-detail-fit-list { display: grid; grid-template-columns: 1fr 1fr; column-gap: 52px; margin: 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.aiw-detail-fit-list li { display: grid; grid-template-columns: 42px 1fr; gap: 18px; padding: 28px 0; border-bottom: 1px solid var(--line); }
.aiw-detail-fit-list span { color: var(--accent); font: 700 11px/1.5 var(--font-mono); }
.aiw-detail-fit-list h3 { margin: 0; color: var(--primary); font-size: 17px; line-height: 1.55; }
.aiw-detail-faq { background: #f6f9fa; }
.aiw-detail-faq-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: 80px; align-items: start; }
.aiw-detail-faq-layout .aiw-detail-section-head { position: sticky; top: 112px; margin: 0; }
.aiw-detail-faq-list { border-top: 1px solid var(--line); }
.aiw-detail-faq-list details { border-bottom: 1px solid var(--line); }
.aiw-detail-faq-list summary { display: flex; justify-content: space-between; gap: 20px; padding: 23px 0; color: var(--primary); cursor: pointer; font-weight: 700; list-style: none; }
.aiw-detail-faq-list summary::-webkit-details-marker { display: none; }
.aiw-detail-faq-list summary::after { content: "+"; color: var(--accent); font-size: 22px; font-weight: 400; }
.aiw-detail-faq-list details[open] summary::after { content: "−"; }
.aiw-detail-faq-list details > div { padding: 0 42px 24px 0; color: var(--muted); }

/* Final CTA */
.aiw-detail-final { padding: 88px 0; color: #aac2d1; background: radial-gradient(540px 300px at 90% 40%, rgba(18,158,232,.16), transparent 70%), linear-gradient(130deg, #061d30, #0a3451); }
.aiw-detail-final-inner { display: flex; justify-content: space-between; gap: 70px; align-items: center; }
.aiw-detail-final .aiw-detail-eyebrow { color: #72c8f3; }
.aiw-detail-final h2 { max-width: 760px; margin: 0; color: #fff; font-size: clamp(34px, 3.1vw, 46px); }
.aiw-detail-final p:not(.aiw-detail-eyebrow) { max-width: 720px; margin: 16px 0 0; color: #9fbbcc; }
.aiw-detail-final .btn-row { flex: 0 0 auto; justify-content: flex-end; }
.aiw-detail-final .btn-ghost { border-color: rgba(255,255,255,.34); color: #fff; background: transparent; }

@media (max-width: 1100px) {
    .aiw-detail-hero-grid { grid-template-columns: 1fr 400px; gap: 44px; }
    .aiw-detail-capabilities .container { grid-template-columns: repeat(3, 1fr); }
    .aiw-detail-capabilities span:nth-child(3) { border-right: 0; }
    .aiw-detail-framework-layout, .aiw-detail-ia-layout { gap: 48px; }
    .aiw-detail-deliverable-system { grid-template-columns: 1fr 1fr; }
    .aiw-detail-deliverable-system article:nth-child(2) { border-right: 0; }
    .aiw-detail-deliverable-system article:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
}

@media (max-width: 900px) {
    .aiw-detail-section { padding: 88px 0; }
    .aiw-detail-hero { padding-bottom: 78px; }
    .aiw-detail-hero-grid, .aiw-detail-framework-layout, .aiw-detail-ia-layout { grid-template-columns: 1fr; }
    .aiw-detail-architecture { max-width: 650px; }
    .aiw-detail-framework .aiw-detail-section-head, .aiw-detail-faq-layout .aiw-detail-section-head { position: static; }
    .aiw-detail-framework-layout { gap: 48px; }
    .aiw-detail-rebuild-matrix article { grid-template-columns: 230px 1fr; gap: 34px; }
    .aiw-detail-mode-grid { grid-template-columns: 1fr; }
    .aiw-detail-mode-grid article + article { border-top: 1px solid #cadfe9; border-left: 0; }
    .aiw-detail-ia-map { max-width: 700px; }
    .aiw-detail-delivery-list > li { grid-template-columns: 190px 1fr; }
    .aiw-detail-delivery-list > li > div:last-child { grid-column: 2; }
    .aiw-detail-case-result { columns: 1; }
    .aiw-detail-faq-layout { grid-template-columns: 1fr; gap: 42px; }
    .aiw-detail-final-inner { display: block; }
    .aiw-detail-final .btn-row { justify-content: flex-start; margin-top: 32px; }
}

@media (max-width: 680px) {
    .aiw-detail-section { padding: 72px 0; }
    .aiw-detail-section-head { margin-bottom: 38px; }
    .aiw-detail-section-head h2 { font-size: 32px; }
    .aiw-detail-section-head > p:last-child { font-size: 15px; }
    .aiw-detail-hero { padding: 28px 0 66px; }
    .aiw-detail-breadcrumb { margin-bottom: 38px; }
    .aiw-detail-hero-copy h1 { font-size: 42px; letter-spacing: -1.1px; }
    .aiw-detail-hero-proposition { font-size: 21px; }
    .aiw-detail-hero-actions { align-items: stretch; }
    .aiw-detail-hero-actions .btn { width: 100%; justify-content: center; }
    .aiw-detail-architecture { padding: 19px; }
    .aiw-detail-entity-grid { grid-template-columns: repeat(2, 1fr); }
    .aiw-detail-entity-grid::before { display: none; }
    .aiw-detail-destinations { grid-template-columns: 1fr; }
    .aiw-detail-capabilities .container { grid-template-columns: 1fr 1fr; }
    .aiw-detail-capabilities span { padding: 10px 9px; border-bottom: 1px solid var(--line); }
    .aiw-detail-capabilities span:nth-child(3) { border-right: 1px solid var(--line); }
    .aiw-detail-capabilities span:nth-child(even) { border-right: 0; }
    .aiw-detail-gap-list, .aiw-detail-fit-list { grid-template-columns: 1fr; }
    .aiw-detail-gap-list li, .aiw-detail-gap-list li:nth-child(even) { padding: 25px 0; border-right: 0; }
    .aiw-detail-conclusion { margin-top: 35px; padding: 24px; font-size: 17px; }
    .aiw-detail-layer-stack > li { grid-template-columns: 1fr; gap: 17px; padding: 24px 21px; }
    .aiw-detail-rebuild-matrix article { grid-template-columns: 1fr; gap: 20px; padding: 27px 0; }
    .aiw-detail-mode-grid article { padding: 32px 25px; }
    .aiw-detail-mode-grid h3 { font-size: 24px; }
    .aiw-detail-mode-grid dl > div { grid-template-columns: 1fr; gap: 5px; }
    .aiw-detail-ia-root { width: 80%; margin-bottom: 35px; }
    .aiw-detail-ia-branches { grid-template-columns: 1fr; }
    .aiw-detail-ia-branches::before, .aiw-detail-ia-branches > div::before { display: none; }
    .aiw-detail-ia-branches > div { min-height: 0; }
    .aiw-detail-delivery-list > li { grid-template-columns: 1fr; gap: 22px; padding: 27px 0; }
    .aiw-detail-delivery-list > li > div:not(:first-child) { padding: 0; border-left: 0; }
    .aiw-detail-delivery-list > li > div:last-child { grid-column: auto; }
    .aiw-detail-deliverable-system { grid-template-columns: 1fr; }
    .aiw-detail-deliverable-system article, .aiw-detail-deliverable-system article:nth-child(2) { padding: 27px 0; border-right: 0; border-bottom: 1px solid var(--line); }
    .aiw-detail-deliverable-system article:last-child { border-bottom: 0; }
    .aiw-detail-case-head { display: block; padding: 30px 25px; }
    .aiw-detail-case-head h3 { font-size: 23px; }
    .aiw-detail-case-tags { justify-content: flex-start; margin-top: 20px; }
    .aiw-detail-case-structure { grid-template-columns: 1fr; }
    .aiw-detail-case-structure > div { padding: 24px; border-right: 0; border-bottom: 1px solid var(--line); }
    .aiw-detail-case-result { padding: 30px 25px 20px; }
    .aiw-detail-case > img { width: calc(100% - 50px); margin: 10px 25px 24px; }
    .aiw-detail-case-link { margin: 0 25px 30px; }
    .aiw-detail-final { padding: 72px 0; }
    .aiw-detail-final h2 { font-size: 34px; }
    .aiw-detail-final .btn-row { align-items: stretch; }
    .aiw-detail-final .btn { width: 100%; justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
    .aiw-detail * { scroll-behavior: auto !important; }
}

/* ============ GEO Service Detail V2 (geo-detail- namespace) ============ */
.geo-detail { background: #fff; overflow: clip; }
.geo-detail section { padding: 112px 0; }
.geo-detail-eyebrow { margin: 0 0 15px; color: var(--accent); font: 700 11px/1.5 var(--font-mono); letter-spacing: .13em; text-transform: uppercase; }
.geo-detail-section-head { max-width: 830px; margin-bottom: 54px; }
.geo-detail-section-head h2 { margin: 0; font-size: clamp(34px, 3.2vw, 46px); letter-spacing: -.9px; }
.geo-detail-section-head > p:last-child { max-width: 760px; margin: 17px 0 0; color: var(--muted); font-size: 17px; }
.geo-detail-label { margin: 0 0 7px; color: var(--accent); font: 700 10px/1.5 var(--font-mono); letter-spacing: .1em; text-transform: uppercase; }
.geo-detail-conclusion { margin: 48px 0 0; padding: 30px 36px; border-left: 4px solid var(--gold); color: var(--primary); background: #f6f9fb; font-size: 20px; font-weight: 700; line-height: 1.65; }

/* Hero */
.geo-detail .geo-detail-hero { position: relative; padding: 42px 0 92px; overflow: hidden; background:
    radial-gradient(720px 360px at 88% 28%, rgba(18,158,232,.14), transparent 68%),
    linear-gradient(180deg, #f9fcfe, #eef7fc); }
.geo-detail-hero::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .8; background-image:
    linear-gradient(rgba(18,158,232,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18,158,232,.045) 1px, transparent 1px); background-size: 52px 52px; -webkit-mask-image: linear-gradient(90deg, #000, transparent 84%); mask-image: linear-gradient(90deg, #000, transparent 84%); }
.geo-detail-hero .container { position: relative; z-index: 1; }
.geo-detail-breadcrumb { display: flex; align-items: center; gap: 10px; margin-bottom: 54px; color: #8094a3; font-size: 12px; }
.geo-detail-breadcrumb a { color: #547086; }
.geo-detail-breadcrumb a:hover { color: var(--accent); }
.geo-detail-hero-grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(400px, .92fr); gap: 76px; align-items: center; }
.geo-detail-hero-copy h1 { margin: 0; font-size: clamp(48px, 4.6vw, 66px); letter-spacing: -1.8px; }
.geo-detail-hero-proposition { max-width: 690px; margin: 24px 0 0; color: var(--primary); font-size: 25px; font-weight: 700; line-height: 1.55; }
.geo-detail-hero-summary { max-width: 710px; margin: 20px 0 0; color: var(--muted); font-size: 16.5px; line-height: 1.9; }
.geo-detail-hero-actions { margin-top: 34px; }
.geo-detail-cognition { overflow: hidden; border: 1px solid #d9e7ee; border-radius: 9px; background: rgba(255,255,255,.95); box-shadow: 0 28px 64px rgba(8,40,63,.14); }
.geo-detail-cognition-head { padding: 23px 26px 20px; border-bottom: 1px solid var(--line); background: #fbfdfe; }
.geo-detail-cognition-head span, .geo-detail-cognition-head strong { display: block; }
.geo-detail-cognition-head span { color: var(--accent); font: 700 10px/1.5 var(--font-mono); letter-spacing: .12em; }
.geo-detail-cognition-head strong { margin-top: 5px; color: var(--primary); font-size: 19px; }
.geo-detail-cognition dl { margin: 0; padding: 10px 26px; }
.geo-detail-cognition dl > div { display: grid; grid-template-columns: 90px 1fr; gap: 18px; padding: 15px 0; border-bottom: 1px solid #e8eef2; }
.geo-detail-cognition dl > div:last-child { border-bottom: 0; }
.geo-detail-cognition dt { color: var(--primary); font-size: 14px; font-weight: 700; }
.geo-detail-cognition dd { margin: 0; color: var(--muted); font-size: 13.5px; }
.geo-detail-cognition > p { margin: 0; padding: 17px 26px; color: #2f607a; background: #eef8fd; font-size: 13px; font-weight: 700; text-align: center; }
.geo-detail-cognition > p span { padding: 0 9px; color: var(--accent); }
.geo-detail-capabilities { border-block: 1px solid var(--line); background: #fff; }
.geo-detail-capabilities .container { display: grid; grid-template-columns: repeat(6, 1fr); padding-top: 25px; padding-bottom: 25px; }
.geo-detail-capabilities span { min-width: 0; display: flex; align-items: center; gap: 9px; padding: 4px 16px; border-right: 1px solid var(--line); color: #3a5568; font-size: 12.5px; font-weight: 600; line-height: 1.45; }
.geo-detail-capabilities span:first-child { padding-left: 0; }
.geo-detail-capabilities span:last-child { border-right: 0; padding-right: 0; }
.geo-detail-capabilities i { color: var(--accent); font: 700 10px/1 var(--font-mono); font-style: normal; }

/* Cognition maturity */
.geo-detail-gap { background: #fff; }
.geo-detail-maturity { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); margin: 0; padding: 0; list-style: none; }
.geo-detail-maturity::before { content: ""; position: absolute; left: 5%; right: 5%; top: 21px; height: 1px; background: linear-gradient(90deg, #b9dbea, var(--accent), var(--gold)); }
.geo-detail-maturity > li { position: relative; padding-right: 34px; }
.geo-detail-maturity-index { height: 44px; display: flex; align-items: center; margin-bottom: 26px; }
.geo-detail-maturity-index span { position: relative; z-index: 1; width: 43px; height: 43px; display: grid; place-items: center; border: 1px solid #afd9eb; border-radius: 50%; color: var(--accent); background: #fff; font: 700 11px/1 var(--font-mono); }
.geo-detail-maturity h3 { margin: 0 0 12px; color: var(--primary); font-size: 20px; }
.geo-detail-maturity li > div:last-child > p:not(.geo-detail-label) { min-height: 76px; margin: 0 0 16px; color: var(--muted); font-size: 14px; }
.geo-detail-maturity strong { display: block; padding-top: 15px; border-top: 1px solid var(--line); color: #38546a; font-size: 13px; line-height: 1.65; }

/* VTP */
.geo-detail .geo-detail-vtp { padding: 128px 0; color: #b7cbda; background:
    radial-gradient(600px 400px at 15% 85%, rgba(18,158,232,.17), transparent 72%),
    linear-gradient(130deg, #061d30, #0a3451 64%, #061d30); }
.geo-detail-vtp-layout { display: grid; grid-template-columns: minmax(280px, .68fr) minmax(0, 1.32fr); gap: 82px; align-items: start; }
.geo-detail-vtp .geo-detail-eyebrow { color: #75c8f3; }
.geo-detail-vtp h2 { color: #fff; font-size: clamp(38px, 3.2vw, 48px); }
.geo-detail-vtp-intro > p:not(.geo-detail-eyebrow) { color: #a9c1d2; font-size: 16.5px; }
.geo-detail-vtp-path { margin-top: 44px; display: grid; gap: 10px; }
.geo-detail-vtp-path span { display: grid; grid-template-columns: 42px 1fr; align-items: center; gap: 16px; padding: 14px 17px; border: 1px solid rgba(117,200,243,.2); color: #e5f0f7; background: rgba(255,255,255,.035); font-size: 14px; font-weight: 700; }
.geo-detail-vtp-path span b { color: #64c0ee; font: 800 22px/1 var(--font-mono); }
.geo-detail-vtp-path span.is-preferred { border-color: rgba(255,181,28,.45); color: var(--gold); }
.geo-detail-vtp-path span.is-preferred b { color: var(--gold); }
.geo-detail-vtp-path > i { margin-left: 34px; color: #5ea7cc; font-style: normal; }
.geo-detail-vtp-details { border-top: 1px solid rgba(255,255,255,.16); }
.geo-detail-vtp-details article { display: grid; grid-template-columns: minmax(170px, .75fr) minmax(0, 1.25fr); gap: 32px; padding: 31px 0; border-bottom: 1px solid rgba(255,255,255,.16); }
.geo-detail-vtp-title { display: flex; gap: 16px; align-items: flex-start; }
.geo-detail-vtp-title > span { color: #66c6f4; font: 800 36px/1 var(--font-mono); }
.geo-detail-vtp-title small { color: #75a7c2; font: 600 9px/1.4 var(--font-mono); letter-spacing: .12em; }
.geo-detail-vtp-title h3 { margin: 4px 0 0; color: #fff; font-size: 21px; }
.geo-detail-vtp-details article > div:last-child > strong { color: #fff; font-size: 15px; }
.geo-detail-vtp-details ul { display: flex; flex-wrap: wrap; gap: 7px; margin: 14px 0 12px; padding: 0; list-style: none; }
.geo-detail-vtp-details li { padding: 5px 9px; border: 1px solid rgba(117,200,243,.19); color: #b9d4e4; background: rgba(255,255,255,.035); font-size: 11.5px; }
.geo-detail-vtp-details article p { margin: 0; color: #8faec2; font-size: 13px; }
.geo-detail-vtp-details article.is-preferred .geo-detail-vtp-title > span,
.geo-detail-vtp-details article.is-preferred .geo-detail-vtp-title h3 { color: var(--gold); }
.geo-detail-vtp-details article.is-preferred li { border-color: rgba(255,181,28,.24); color: #e8d2a1; }

/* Optimization objects */
.geo-detail-objects { background: #fff; }
.geo-detail-object-flow { display: grid; grid-template-columns: repeat(5, 1fr); margin: 0; padding: 0; list-style: none; border-block: 1px solid var(--line); }
.geo-detail-object-flow > li { position: relative; padding: 34px 25px 30px; border-right: 1px solid var(--line); }
.geo-detail-object-flow > li:last-child { border-right: 0; }
.geo-detail-object-flow > li:not(:last-child)::after { content: "→"; position: absolute; z-index: 2; top: 49px; right: -12px; width: 23px; height: 23px; display: grid; place-items: center; border-radius: 50%; color: var(--accent); background: #fff; font-weight: 800; }
.geo-detail-object-flow > li > span { color: var(--accent); font: 700 10px/1.4 var(--font-mono); letter-spacing: .1em; }
.geo-detail-object-flow h3 { margin: 10px 0; color: var(--primary); font-size: 19px; }
.geo-detail-object-flow p { min-height: 94px; margin: 0 0 18px; color: var(--muted); font-size: 13.5px; }
.geo-detail-object-flow ul { display: flex; flex-wrap: wrap; gap: 5px; margin: 0; padding: 0; list-style: none; }
.geo-detail-object-flow ul li { padding: 4px 7px; color: #3a667e; background: #eef8fd; font-size: 10.5px; }

/* Delivery */
.geo-detail-delivery { background: #eef7fc; }
.geo-detail-delivery-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid #cfe2ec; }
.geo-detail-delivery-list > li { display: grid; grid-template-columns: minmax(220px, .75fr) minmax(0, 1.25fr) minmax(0, 1fr); gap: 38px; padding: 33px 0; border-bottom: 1px solid #cfe2ec; }
.geo-detail-delivery-phase { display: grid; grid-template-columns: 46px 1fr; gap: 17px; align-items: start; }
.geo-detail-delivery-phase span { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--primary); font: 700 11px/1 var(--font-mono); }
.geo-detail-delivery-phase h3 { margin: 8px 0 0; color: var(--primary); font-size: 18px; }
.geo-detail-delivery-column > strong { color: var(--accent); font: 700 10px/1.4 var(--font-mono); letter-spacing: .12em; }
.geo-detail-delivery-column ul { display: flex; flex-wrap: wrap; gap: 6px; margin: 11px 0 0; padding: 0; list-style: none; }
.geo-detail-delivery-column li { padding: 5px 8px; border: 1px solid #d4e7f0; color: #4d697c; background: rgba(255,255,255,.68); font-size: 11.5px; }
.geo-detail-delivery-output { padding-left: 30px; border-left: 1px solid #cfe2ec; }
.geo-detail-delivery-output > strong { color: #ad720d; }
.geo-detail-delivery-note { margin: 30px 0 0; color: var(--primary); font-size: 17px; font-weight: 700; }
.geo-detail-specialties { display: grid; grid-template-columns: .8fr 1.2fr; gap: 60px; align-items: center; margin-top: 56px; padding: 36px 40px; border: 1px solid #cadfe9; background: #fff; }
.geo-detail-specialties h3 { color: var(--primary); font-size: 24px; }
.geo-detail-specialties > div:first-child > p:last-child { color: var(--muted); font-size: 14px; }
.geo-detail-specialties > div:last-child { border-top: 1px solid var(--line); }
.geo-detail-specialties a { display: flex; justify-content: space-between; gap: 20px; padding: 13px 0; border-bottom: 1px solid var(--line); color: var(--primary); font-weight: 700; }
.geo-detail-specialties a:hover { color: var(--accent); text-decoration: none; }
.geo-detail-specialties a i { color: var(--accent); font-style: normal; }

/* Deliverables and fit */
.geo-detail-deliverables { background: #fff; }
.geo-detail-deliverable-grid { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--line); }
.geo-detail-deliverable-grid article { min-height: 270px; padding: 38px 42px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.geo-detail-deliverable-grid article:nth-child(even) { border-right: 0; }
.geo-detail-deliverable-grid article:nth-last-child(-n+2) { border-bottom: 0; }
.geo-detail-deliverable-grid article > span { color: var(--accent); font: 700 10px/1.4 var(--font-mono); letter-spacing: .12em; }
.geo-detail-deliverable-grid h3 { margin: 11px 0 24px; color: var(--primary); font-size: 26px; }
.geo-detail-deliverable-grid ul { display: flex; flex-wrap: wrap; gap: 9px; margin: 0; padding: 0; list-style: none; }
.geo-detail-deliverable-grid li { padding: 7px 11px; color: #385c71; background: #f0f7fa; font-size: 12.5px; }
.geo-detail-fit { background: #f6f8f9; }
.geo-detail-fit-list { display: grid; grid-template-columns: 1fr 1fr; column-gap: 54px; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.geo-detail-fit-list li { display: grid; grid-template-columns: 42px 1fr; gap: 19px; padding: 29px 0; border-bottom: 1px solid var(--line); }
.geo-detail-fit-list li > span { color: var(--accent); font: 700 11px/1.5 var(--font-mono); }
.geo-detail-fit-list h3 { margin: 0 0 7px; color: var(--primary); font-size: 18px; }
.geo-detail-fit-list p { margin: 0; color: var(--muted); font-size: 13.5px; }

/* Evidence */
.geo-detail-evidence { background: #edf2f4; }
.geo-detail-case { height: 620px; display: grid; grid-template-columns: 1fr 1fr; overflow: hidden; border: 1px solid #d5e0e5; background: #fff; box-shadow: 0 20px 54px rgba(8,40,63,.09); }
.geo-detail-case-copy { padding: 50px; }
.geo-detail-case-copy > h3 { margin: 8px 0 10px; color: var(--primary); font-size: 29px; line-height: 1.4; }
.geo-detail-case-client { margin: 0 0 28px; color: var(--muted); font-size: 13px; }
.geo-detail-case-copy > div { margin-top: 20px; padding-top: 17px; border-top: 1px solid var(--line); }
.geo-detail-case-copy > div > strong { color: var(--accent); font: 700 10px/1.5 var(--font-mono); letter-spacing: .11em; }
.geo-detail-case-copy > div p { margin: 7px 0 0; color: #496276; font-size: 13.5px; line-height: 1.75; }
.geo-detail-case-copy > div ul { display: flex; flex-wrap: wrap; gap: 7px; margin: 9px 0 0; padding: 0; list-style: none; }
.geo-detail-case-copy > div li { padding: 5px 9px; color: #2c6787; background: #edf8fd; font-size: 11.5px; }
.geo-detail-case-link { display: inline-flex; gap: 9px; margin-top: 28px; font-weight: 700; }
.geo-detail-case-media { min-width: 0; min-height: 100%; overflow: hidden; background: linear-gradient(145deg, #b8ccd7, #e8f1f5); }
.geo-detail-case-media img { width: 100%; height: 100%; display: block; object-fit: cover; }
.geo-detail-case-evidence-text { height: 100%; min-height: 460px; display: flex; flex-direction: column; justify-content: flex-end; padding: 50px; color: #fff; background:
    linear-gradient(180deg, transparent 20%, rgba(5,34,54,.92)),
    linear-gradient(145deg, #759eb3, #153f58); }
.geo-detail-case-evidence-text span { font: 700 10px/1.4 var(--font-mono); letter-spacing: .12em; }
.geo-detail-case-evidence-text strong { margin-top: 8px; font-size: 28px; }
.geo-detail-case-evidence-text p { max-width: 420px; color: #c0d3df; }

/* Continuous, FAQ, CTA */
.geo-detail-continuous { color: #b7cad8; background: linear-gradient(125deg, #061d30, #0a3451); }
.geo-detail-continuous .geo-detail-section-head h2 { color: #fff; }
.geo-detail-continuous .geo-detail-eyebrow { color: #75c8f3; }
.geo-detail-change-list { display: grid; grid-template-columns: repeat(3, 1fr); border-block: 1px solid rgba(255,255,255,.16); }
.geo-detail-change-list article { padding: 36px 34px; border-right: 1px solid rgba(255,255,255,.16); }
.geo-detail-change-list article:last-child { border-right: 0; }
.geo-detail-change-list span { color: #70c7f1; font: 700 11px/1.4 var(--font-mono); }
.geo-detail-change-list h3 { margin: 12px 0 9px; color: #fff; font-size: 22px; }
.geo-detail-change-list p { margin: 0; color: #9fb8ca; font-size: 14px; }
.geo-detail-loop { display: flex; align-items: center; justify-content: space-between; gap: 50px; margin-top: 42px; padding: 31px 34px; border: 1px solid rgba(255,181,28,.35); background: rgba(255,181,28,.06); }
.geo-detail-loop > strong { max-width: 580px; color: #fff; font-size: 17px; line-height: 1.65; }
.geo-detail-loop > p { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0; color: var(--gold); font: 700 10px/1.5 var(--font-mono); }
.geo-detail-loop > p i { color: #6baacb; font-style: normal; }
.geo-detail-faq { background: #fff; }
.geo-detail-faq-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: 80px; align-items: start; }
.geo-detail-faq-layout .geo-detail-section-head { position: sticky; top: 112px; margin: 0; }
.geo-detail-faq-list { border-top: 1px solid var(--line); }
.geo-detail-faq-list details { border-bottom: 1px solid var(--line); }
.geo-detail-faq-list summary { display: flex; justify-content: space-between; gap: 20px; padding: 23px 0; color: var(--primary); cursor: pointer; font-weight: 700; list-style: none; }
.geo-detail-faq-list summary::-webkit-details-marker { display: none; }
.geo-detail-faq-list summary::after { content: "+"; color: var(--accent); font-size: 22px; font-weight: 400; }
.geo-detail-faq-list details[open] summary::after { content: "−"; }
.geo-detail-faq-list details > div { padding: 0 42px 24px 0; color: var(--muted); font-size: 14.5px; }
.geo-detail .geo-detail-final { padding: 94px 0; color: #b7cad8; background:
    radial-gradient(560px 240px at 0% 100%, rgba(18,158,232,.2), transparent 72%),
    linear-gradient(120deg, #061d30, #0a3451); }
.geo-detail-final-inner { display: flex; align-items: center; justify-content: space-between; gap: 72px; }
.geo-detail-final-inner > div:first-child { max-width: 760px; }
.geo-detail-final .geo-detail-eyebrow { color: #75c8f3; }
.geo-detail-final h2 { margin: 0; color: #fff; font-size: 38px; }
.geo-detail-final p:not(.geo-detail-eyebrow) { margin: 15px 0 0; color: #a7bece; }
.geo-detail-final .btn-row { flex-shrink: 0; flex-direction: column; margin: 0; }
.geo-detail-final .btn { justify-content: center; }
.geo-detail-final .btn-ghost { color: #fff; border-color: rgba(255,255,255,.3); background: transparent; }

@media (max-width: 1100px) {
    .geo-detail section { padding: 96px 0; }
    .geo-detail-hero-grid { gap: 48px; }
    .geo-detail-capabilities .container { grid-template-columns: repeat(3, 1fr); row-gap: 16px; }
    .geo-detail-capabilities span:nth-child(3) { border-right: 0; }
    .geo-detail-maturity { grid-template-columns: 1fr 1fr; row-gap: 44px; }
    .geo-detail-maturity::before { display: none; }
    .geo-detail-object-flow { grid-template-columns: repeat(3, 1fr); }
    .geo-detail-object-flow > li { border-bottom: 1px solid var(--line); }
    .geo-detail-object-flow > li:nth-child(3) { border-right: 0; }
    .geo-detail-object-flow > li:nth-last-child(-n+2) { border-bottom: 0; }
    .geo-detail-object-flow > li:not(:last-child)::after { display: none; }
    .geo-detail-delivery-list > li { grid-template-columns: minmax(190px, .7fr) minmax(0, 1.3fr); gap: 28px; }
    .geo-detail-delivery-output { grid-column: 2; padding: 18px 0 0; border-left: 0; border-top: 1px solid #cfe2ec; }
    .geo-detail-final-inner { align-items: flex-start; flex-direction: column; }
    .geo-detail-final .btn-row { flex-direction: row; }
}

@media (max-width: 860px) {
    .geo-detail-hero-grid, .geo-detail-vtp-layout, .geo-detail-specialties, .geo-detail-faq-layout { grid-template-columns: 1fr; }
    .geo-detail-cognition { max-width: 620px; }
    .geo-detail-vtp-layout, .geo-detail-faq-layout { gap: 54px; }
    .geo-detail-faq-layout .geo-detail-section-head { position: static; }
    .geo-detail-object-flow { grid-template-columns: 1fr 1fr; }
    .geo-detail-object-flow > li:nth-child(3) { border-right: 1px solid var(--line); }
    .geo-detail-object-flow > li:nth-child(even) { border-right: 0; }
    .geo-detail-object-flow > li:nth-last-child(-n+2) { border-bottom: 1px solid var(--line); }
    .geo-detail-object-flow > li:last-child { border-bottom: 0; }
    .geo-detail-case { grid-template-columns: 1fr; }
    .geo-detail-case { height: auto; }
    .geo-detail-case-media { min-height: 440px; max-height: 620px; }
    .geo-detail-loop { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 640px) {
    .geo-detail section { padding: 76px 0; }
    .geo-detail-section-head { margin-bottom: 38px; }
    .geo-detail-section-head h2 { font-size: 30px; }
    .geo-detail-section-head > p:last-child { font-size: 15px; }
    .geo-detail-conclusion { margin-top: 34px; padding: 24px 23px; font-size: 17px; }
    .geo-detail .geo-detail-hero { padding: 28px 0 70px; }
    .geo-detail-breadcrumb { margin-bottom: 38px; }
    .geo-detail-hero-copy h1 { font-size: 40px; letter-spacing: -1px; }
    .geo-detail-hero-proposition { margin-top: 19px; font-size: 20px; }
    .geo-detail-hero-summary { font-size: 15px; }
    .geo-detail-hero-actions { flex-direction: column; align-items: stretch; }
    .geo-detail-hero-actions .btn { justify-content: center; }
    .geo-detail-cognition-head, .geo-detail-cognition dl { padding-left: 20px; padding-right: 20px; }
    .geo-detail-cognition dl > div { grid-template-columns: 74px 1fr; gap: 12px; }
    .geo-detail-capabilities .container { grid-template-columns: 1fr 1fr; gap: 0; padding-top: 18px; padding-bottom: 18px; }
    .geo-detail-capabilities span { padding: 10px 12px; border-bottom: 1px solid var(--line); }
    .geo-detail-capabilities span:nth-child(3) { border-right: 1px solid var(--line); }
    .geo-detail-capabilities span:nth-child(even) { border-right: 0; }
    .geo-detail-capabilities span:nth-last-child(-n+2) { border-bottom: 0; }
    .geo-detail-maturity { grid-template-columns: 1fr; gap: 0; }
    .geo-detail-maturity > li { display: grid; grid-template-columns: 44px 1fr; gap: 18px; padding: 0 0 34px; }
    .geo-detail-maturity > li:last-child { padding-bottom: 0; }
    .geo-detail-maturity-index { position: relative; height: 100%; margin: 0; align-items: flex-start; }
    .geo-detail-maturity-index::after { content: ""; position: absolute; left: 21px; top: 43px; bottom: -1px; width: 1px; background: #b9dbea; }
    .geo-detail-maturity > li:last-child .geo-detail-maturity-index::after { display: none; }
    .geo-detail-maturity li > div:last-child > p:not(.geo-detail-label) { min-height: 0; }
    .geo-detail .geo-detail-vtp { padding: 82px 0; }
    .geo-detail-vtp h2 { font-size: 34px; }
    .geo-detail-vtp-details article { grid-template-columns: 1fr; gap: 18px; }
    .geo-detail-vtp-path { margin-top: 32px; }
    .geo-detail-object-flow { grid-template-columns: 1fr; border-bottom: 0; }
    .geo-detail-object-flow > li, .geo-detail-object-flow > li:nth-child(3) { border-right: 0; border-bottom: 1px solid var(--line); }
    .geo-detail-object-flow > li { padding: 28px 22px; }
    .geo-detail-object-flow p { min-height: 0; }
    .geo-detail-delivery-list > li { grid-template-columns: 1fr; gap: 22px; padding: 30px 0; }
    .geo-detail-delivery-output { grid-column: auto; }
    .geo-detail-specialties { gap: 25px; padding: 28px 24px; }
    .geo-detail-deliverable-grid { grid-template-columns: 1fr; }
    .geo-detail-deliverable-grid article { min-height: 0; padding: 31px 26px; border-right: 0; border-bottom: 1px solid var(--line); }
    .geo-detail-deliverable-grid article:nth-last-child(2) { border-bottom: 1px solid var(--line); }
    .geo-detail-fit-list { grid-template-columns: 1fr; }
    .geo-detail-case-copy { padding: 32px 24px; }
    .geo-detail-case-copy > h3 { font-size: 24px; }
    .geo-detail-case-media { min-height: 280px; }
    .geo-detail-change-list { grid-template-columns: 1fr; }
    .geo-detail-change-list article { padding: 29px 22px; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.16); }
    .geo-detail-change-list article:last-child { border-bottom: 0; }
    .geo-detail-loop { padding: 26px 23px; }
    .geo-detail-loop > p { gap: 6px; }
    .geo-detail-faq-list details > div { padding-right: 0; }
    .geo-detail .geo-detail-final { padding: 76px 0; }
    .geo-detail-final h2 { font-size: 30px; }
    .geo-detail-final .btn-row { width: 100%; flex-direction: column; }
}

@media (max-width: 390px) {
    .geo-detail-hero-copy h1 { font-size: 36px; }
    .geo-detail-cognition dl > div { grid-template-columns: 1fr; gap: 3px; }
    .geo-detail-capabilities .container { grid-template-columns: 1fr; }
    .geo-detail-capabilities span, .geo-detail-capabilities span:nth-child(3) { border-right: 0; border-bottom: 1px solid var(--line); }
    .geo-detail-capabilities span:last-child { border-bottom: 0; }
    .geo-detail-vtp-title > span { font-size: 31px; }
    .geo-detail-fit-list li { grid-template-columns: 34px 1fr; gap: 13px; }
}

/* ============ GEO child Compact Service Detail V2 ============ */
.geo-child { --geo-child-accent: var(--accent2); --geo-child-soft: #edf8fd; }
.geo-child--foundation { --geo-child-accent: #57c4a8; --geo-child-soft: #edf9f6; }
.geo-child--defense { --geo-child-accent: #ffb65c; --geo-child-soft: #fff7eb; }
.geo-child-hero { position: relative; overflow: hidden; padding: 30px 0 84px; color: #c9dceb; background: radial-gradient(680px 420px at 82% 20%, color-mix(in srgb, var(--geo-child-accent) 20%, transparent), transparent 70%), var(--navy-grad); }
.geo-child-hero::before { content: ""; position: absolute; inset: 0; pointer-events: none; background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px); background-size: 42px 42px; -webkit-mask-image: linear-gradient(90deg, transparent, #000 40%, #000); mask-image: linear-gradient(90deg, transparent, #000 40%, #000); }
.geo-child-hero .container { position: relative; z-index: 1; }
.geo-child-breadcrumb { display: flex; align-items: center; gap: 9px; margin-bottom: 48px; font-size: 13px; color: #7f9db4; flex-wrap: wrap; }
.geo-child-breadcrumb a { color: #9cb8cd; }
.geo-child-breadcrumb a:hover { color: #fff; }
.geo-child-hero-grid { display: grid; grid-template-columns: minmax(0, 1.14fr) minmax(330px, .86fr); gap: 76px; align-items: center; }
.geo-child-eyebrow { margin: 0 0 17px; color: var(--geo-child-accent); font: 700 12px/1.3 var(--font-mono); letter-spacing: 1.25px; text-transform: uppercase; }
.geo-child-parent { display: flex; align-items: center; gap: 8px; margin: 0 0 14px; color: #8ea9bd; font-size: 13px; }
.geo-child-parent::before { content: ""; width: 18px; height: 1px; background: var(--geo-child-accent); }
.geo-child-parent a { color: #d7e7f2; font-weight: 600; }
.geo-child-hero h1 { max-width: 720px; margin: 0; color: #fff; font-size: clamp(42px, 5vw, 62px); line-height: 1.12; letter-spacing: -1.5px; }
.geo-child--growth .geo-child-hero h1 { text-wrap: balance; word-break: keep-all; overflow-wrap: anywhere; }
@media (min-width: 981px) {
    .geo-child--growth .geo-child-hero h1 { font-size: clamp(42px, 4vw, 54px); }
}
.geo-child-proposition { max-width: 700px; margin: 22px 0 0; color: #fff; font-size: 22px; font-weight: 700; line-height: 1.55; }
.geo-child-summary { max-width: 690px; margin: 16px 0 0; color: #a9c1d3; font-size: 16px; line-height: 1.8; }
.geo-child-actions { margin-top: 31px; }
.geo-child-actions .btn-ghost { color: #fff; border-color: rgba(255,255,255,.3); background: rgba(255,255,255,.03); }
.geo-child-actions .btn-ghost:hover { color: #fff; border-color: #fff; }
.geo-child-signal { border: 1px solid rgba(255,255,255,.15); background: rgba(5,30,48,.58); box-shadow: 0 28px 65px rgba(0,0,0,.2); backdrop-filter: blur(12px); }
.geo-child-signal-kicker { margin: 0; padding: 17px 21px; border-bottom: 1px solid rgba(255,255,255,.12); color: #7899b1; font: 700 11px/1.3 var(--font-mono); letter-spacing: 1px; }
.geo-child-signal-row { display: grid; grid-template-columns: 42px 1fr; gap: 15px; align-items: center; padding: 22px 21px; border-bottom: 1px solid rgba(255,255,255,.1); }
.geo-child-signal-row:last-child { border-bottom: 0; }
.geo-child-signal-row > span { display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid color-mix(in srgb, var(--geo-child-accent) 65%, transparent); border-radius: 50%; color: var(--geo-child-accent); font: 700 11px/1 var(--font-mono); }
.geo-child-signal-row div { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.geo-child-signal-row small { color: #7795aa; font: 700 10px/1.4 var(--font-mono); letter-spacing: .65px; }
.geo-child-signal-row strong { color: #fff; font-size: 16px; }

.geo-child-section { padding: 88px 0; }
.geo-child-section-head { max-width: 750px; margin-bottom: 38px; }
.geo-child-section-head h2 { margin: 0; font-size: 38px; }
.geo-child-section-head > p:last-child:not(.geo-child-eyebrow) { margin: 14px 0 0; color: var(--muted); font-size: 16px; line-height: 1.8; }
.geo-child-scenarios { background: var(--geo-child-soft); }
.geo-child-scenario-list { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; margin: 0; padding: 0; list-style: none; border: 1px solid var(--line); background: #fff; }
.geo-child-scenario-list li { min-height: 174px; padding: 25px 21px; border-right: 1px solid var(--line); }
.geo-child-scenario-list li:last-child { border-right: 0; }
.geo-child-scenario-list span { color: var(--geo-child-accent); font: 700 12px/1 var(--font-mono); }
.geo-child-scenario-list p { margin: 39px 0 0; color: var(--primary); font-size: 15px; font-weight: 700; line-height: 1.65; }

.geo-child-objects { position: relative; overflow: hidden; color: #afc5d5; background: #09283f; }
.geo-child-objects::after { content: ""; position: absolute; width: 520px; height: 520px; right: -180px; top: -220px; border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--geo-child-accent) 20%, transparent), transparent 67%); }
.geo-child-objects .container { position: relative; z-index: 1; }
.geo-child-section-head--inverse h2 { color: #fff; }
.geo-child-section-head--inverse > p:last-child:not(.geo-child-eyebrow) { color: #9cb4c6; }
.geo-child-object-grid { display: grid; grid-template-columns: repeat(5, 1fr); border-top: 1px solid rgba(255,255,255,.16); border-bottom: 1px solid rgba(255,255,255,.16); }
.geo-child-object-grid article { min-height: 232px; padding: 27px 21px; border-right: 1px solid rgba(255,255,255,.13); }
.geo-child-object-grid article:last-child { border-right: 0; }
.geo-child-object-grid small { display: block; min-height: 32px; color: var(--geo-child-accent); font: 700 10px/1.5 var(--font-mono); letter-spacing: .6px; }
.geo-child-object-grid h3 { margin: 29px 0 9px; color: #fff; font-size: 19px; }
.geo-child-object-grid p { margin: 0; color: #94aec1; font-size: 14px; line-height: 1.7; }

.geo-child-process-list { position: relative; display: grid; grid-template-columns: repeat(5, 1fr); gap: 26px; margin: 0; padding: 0; list-style: none; }
.geo-child-process-list::before { content: ""; position: absolute; top: 20px; left: 20px; right: 20px; height: 1px; background: var(--line); }
.geo-child-process-list li { position: relative; padding-top: 57px; }
.geo-child-process-list li > span { position: absolute; top: 0; left: 0; display: grid; place-items: center; width: 41px; height: 41px; border: 1px solid var(--geo-child-accent); border-radius: 50%; color: var(--geo-child-accent); background: #fff; font: 700 11px/1 var(--font-mono); }
.geo-child-process-list small { color: var(--muted); font: 700 10px/1.4 var(--font-mono); letter-spacing: .7px; }
.geo-child-process-list h3 { margin: 8px 0 0; color: var(--primary); font-size: 17px; line-height: 1.55; }

.geo-child-deliverables { background: var(--bg-soft); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.geo-child-deliverable-grid { display: grid; grid-template-columns: repeat(4, 1fr); background: #fff; border: 1px solid var(--line); }
.geo-child-deliverable-grid article { min-height: 205px; padding: 28px 25px; border-right: 1px solid var(--line); }
.geo-child-deliverable-grid article:last-child { border-right: 0; }
.geo-child-deliverable-grid small { color: var(--geo-child-accent); font: 700 10px/1.4 var(--font-mono); letter-spacing: .6px; }
.geo-child-deliverable-grid h3 { margin: 34px 0 8px; color: var(--primary); font-size: 19px; }
.geo-child-deliverable-grid p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.7; }

.geo-child-relationship-inner { display: grid; grid-template-columns: .8fr 1.2fr; gap: 80px; align-items: start; padding-top: 38px; padding-bottom: 38px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.geo-child-relationship h2 { margin: 0; font-size: 34px; }
.geo-child-relationship-inner > div:last-child > p { margin: 0; color: var(--muted); font-size: 17px; line-height: 1.9; }
.geo-child-text-links { display: flex; flex-wrap: wrap; gap: 12px 24px; margin-top: 22px; }
.geo-child-text-links a { color: var(--primary); font-weight: 700; }
.geo-child-text-links a span { color: var(--geo-child-accent); }

.geo-child-evidence { background: #f5f8fa; }
.geo-child-case { display: grid; grid-template-columns: 1.1fr .9fr; min-height: 320px; overflow: hidden; border: 1px solid var(--line); background: #fff; box-shadow: var(--shadow); }
.geo-child-case-copy { padding: 37px 40px; }
.geo-child-case-meta { margin: 0 0 11px; color: var(--geo-child-accent); font: 700 11px/1.5 var(--font-mono); letter-spacing: .6px; }
.geo-child-case h3 { margin: 0 0 17px; color: var(--primary); font-size: 27px; line-height: 1.35; }
.geo-child-case-copy > p:not(.geo-child-case-meta) { margin: 0 0 21px; color: var(--muted); line-height: 1.8; }
.geo-child-case-copy > a { color: var(--primary); font-weight: 700; }
.geo-child-case-copy > a span { color: var(--geo-child-accent); }
.geo-child-case-media { display: grid; min-height: 320px; background: linear-gradient(145deg, #0d3957, #071f33); }
.geo-child-case-media img { width: 100%; height: 100%; object-fit: cover; }
.geo-child-case-media:has(> img) { height: 420px; min-height: 0; overflow: hidden; }
.geo-child-case-media > img { display: block; object-position: center top; }
.geo-child-case-media > div { display: flex; flex-direction: column; justify-content: center; padding: 45px; color: #9eb8ca; }
.geo-child-case-media span { color: var(--geo-child-accent); font: 700 11px/1.4 var(--font-mono); letter-spacing: .8px; }
.geo-child-case-media strong { margin-top: 13px; color: #fff; font-size: 25px; }
.geo-child-case-media p { margin: 11px 0 0; font-size: 14px; line-height: 1.75; }

.geo-child-final { padding: 77px 0; color: #c5d8e7; background: var(--navy-grad); }
.geo-child-final-inner { display: flex; align-items: center; justify-content: space-between; gap: 42px; }
.geo-child-final h2 { max-width: 660px; margin: 0; color: #fff; font-size: 36px; }
.geo-child-final .btn-row { flex-shrink: 0; margin: 0; }
.geo-child-final .btn-ghost { color: #fff; border-color: rgba(255,255,255,.3); background: transparent; }

@media (max-width: 980px) {
    .geo-child-hero-grid { grid-template-columns: 1fr; gap: 48px; }
    .geo-child-signal { max-width: 670px; }
    .geo-child-scenario-list, .geo-child-object-grid { grid-template-columns: repeat(3, 1fr); }
    .geo-child-scenario-list li:nth-child(3), .geo-child-object-grid article:nth-child(3) { border-right: 0; }
    .geo-child-scenario-list li:nth-child(-n+3), .geo-child-object-grid article:nth-child(-n+3) { border-bottom: 1px solid var(--line); }
    .geo-child-object-grid article:nth-child(-n+3) { border-bottom-color: rgba(255,255,255,.13); }
    .geo-child-process-list { grid-template-columns: repeat(3, 1fr); row-gap: 34px; }
    .geo-child-process-list::before { display: none; }
    .geo-child-deliverable-grid { grid-template-columns: repeat(2, 1fr); }
    .geo-child-deliverable-grid article:nth-child(2) { border-right: 0; }
    .geo-child-deliverable-grid article:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
    .geo-child-relationship-inner { grid-template-columns: 1fr; gap: 25px; }
    .geo-child-final-inner { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 640px) {
    .geo-child-hero { padding: 22px 0 68px; }
    .geo-child-breadcrumb { margin-bottom: 35px; }
    .geo-child-hero h1 { font-size: 38px; letter-spacing: -.8px; }
    .geo-child-proposition { font-size: 19px; }
    .geo-child-summary { font-size: 15px; }
    .geo-child-actions { flex-direction: column; align-items: stretch; }
    .geo-child-actions .btn { justify-content: center; text-align: center; }
    .geo-child-signal-row div { align-items: flex-start; flex-direction: column; gap: 4px; }
    .geo-child-section { padding: 68px 0; }
    .geo-child-section-head { margin-bottom: 30px; }
    .geo-child-section-head h2, .geo-child-relationship h2 { font-size: 30px; }
    .geo-child-scenario-list, .geo-child-object-grid, .geo-child-process-list, .geo-child-deliverable-grid { grid-template-columns: 1fr; }
    .geo-child-scenario-list li, .geo-child-object-grid article, .geo-child-deliverable-grid article { min-height: 0; border-right: 0; border-bottom: 1px solid var(--line); }
    .geo-child-object-grid article { border-bottom-color: rgba(255,255,255,.13); }
    .geo-child-scenario-list li:last-child, .geo-child-object-grid article:last-child, .geo-child-deliverable-grid article:last-child { border-bottom: 0; }
    .geo-child-scenario-list p { margin-top: 20px; }
    .geo-child-object-grid article { padding: 25px 22px; }
    .geo-child-object-grid small { min-height: 0; }
    .geo-child-object-grid h3 { margin-top: 20px; }
    .geo-child-process-list { gap: 0; }
    .geo-child-process-list li { min-height: 104px; padding: 0 0 28px 58px; }
    .geo-child-process-list li:not(:last-child)::after { content: ""; position: absolute; left: 20px; top: 42px; bottom: 0; width: 1px; background: var(--line); }
    .geo-child-deliverable-grid article { padding: 26px 22px; }
    .geo-child-deliverable-grid h3 { margin-top: 21px; }
    .geo-child-relationship-inner { padding-top: 30px; padding-bottom: 30px; }
    .geo-child-relationship-inner > div:last-child > p { font-size: 15px; }
    .geo-child-case { grid-template-columns: 1fr; }
    .geo-child-case-copy { padding: 30px 23px; }
    .geo-child-case h3 { font-size: 23px; }
    .geo-child-case-media { min-height: 240px; }
    .geo-child-case-media:has(> img) { height: 280px; min-height: 0; }
    .geo-child-case-media > div { padding: 31px 24px; }
    .geo-child-final { padding: 66px 0; }
    .geo-child-final h2 { font-size: 30px; }
    .geo-child-final .btn-row { width: 100%; flex-direction: column; }
    .geo-child-final .btn { justify-content: center; text-align: center; }
}

/* ============ Floating consultation — independent of page reading layouts ============ */
.floating-contact { position: fixed; z-index: 40; right: 22px; bottom: 28%; width: 72px; color: var(--primary); }
.floating-contact[hidden], .floating-contact [hidden] { display: none !important; }
.floating-contact__actions { overflow: hidden; padding: 4px; border: 1px solid #dce7ef; border-radius: 18px; background: #fff; box-shadow: 0 12px 36px rgba(8,40,63,.12); }
.floating-contact__item { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; width: 100%; min-height: 70px; padding: 10px 2px; border: 0; background: transparent; color: var(--primary); font: inherit; font-size: 12px; font-weight: 600; line-height: 1.5; cursor: pointer; }
.floating-contact__item > span { white-space: nowrap; }
.floating-contact__item + .floating-contact__item { border-top: 1px solid #e8eff4; }
.floating-contact svg { display: block; width: 23px; height: 23px; flex-shrink: 0; }
.floating-contact__item--primary svg { color: #ad760d; }
.floating-contact__item:hover { color: var(--accent); background: #f0f8fd; text-decoration: none; }
.floating-contact :is(a, button, input):focus-visible { outline: 2px solid var(--accent); outline-offset: -3px; border-radius: 10px; }
.floating-contact__mobile { display: none; }
.floating-contact__top { position: absolute; top: calc(100% + 10px); right: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; width: 72px; height: 48px; padding: 4px; border: 1px solid #dce7ef; border-radius: 14px; background: #edf3f7; color: var(--primary); box-shadow: 0 6px 18px rgba(8,40,63,.08); font: 600 10px/1.3 var(--font-mono); cursor: pointer; }
.floating-contact__top svg { width: 20px; height: 20px; }
.floating-contact__top:hover { color: var(--accent); background: var(--sky); }
.floating-contact__popover { position: absolute; right: calc(100% + 14px); bottom: 0; width: 288px; max-width: calc(100vw - 32px); max-height: calc(100dvh - 140px); overflow-y: auto; padding: 26px; border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: 0 16px 42px rgba(8,40,63,.16); }
.floating-contact__popover h2 { margin: 0 25px 12px 0; color: var(--primary); font-size: 20px; line-height: 1.5; }
.floating-contact__popover p { margin: 0 0 16px; color: var(--muted); font-size: 13px; line-height: 1.8; }
.floating-contact__qr { display: block; width: 220px; max-width: 100%; height: auto; margin: 0 auto 16px; padding: 8px; object-fit: contain; background: #fff; }
.floating-contact__qr-mobile { display: none; }
.floating-contact__close { position: absolute; top: 8px; right: 8px; width: 44px; height: 44px; border: 0; border-radius: 10px; background: transparent; color: var(--muted); font-size: 24px; cursor: pointer; }
.floating-contact__fallback { display: flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px; border-radius: 8px; background: var(--primary); color: #fff; font-size: 14px; font-weight: 600; line-height: 1.5; }
.floating-contact__fallback:hover { background: var(--navy2); color: #fff; text-decoration: none; }
@media (max-width: 1399px) {
    .floating-contact { right: 16px; bottom: calc(24px + env(safe-area-inset-bottom, 0px)); width: 56px; }
    .floating-contact__mobile:not([hidden]) { display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; padding: 0; border: 1px solid #dce7ef; border-radius: 18px; background: var(--primary); color: #fff; box-shadow: 0 8px 24px rgba(8,40,63,.2); cursor: pointer; }
    .floating-contact__mobile:hover { background: var(--navy2); }
    .floating-contact__top { top: auto; right: 6px; bottom: 68px; width: 44px; height: 44px; border-radius: 50%; }
    .floating-contact__top > span { display: none; }
    .floating-contact__actions { position: absolute; right: 0; bottom: 70px; width: 184px; }
    .floating-contact__item { flex-direction: row; justify-content: flex-start; gap: 14px; min-height: 54px; padding: 12px 16px; font-size: 14px; }
    .floating-contact__popover { right: 0; bottom: 70px; }
}
@media (max-width: 768px) {
    .floating-contact__qr-desktop { display: none; }
    .floating-contact__qr-mobile { display: block; }
}

/* ============ Methodology V2 — editorial framework, not a dashboard ============ */
.methodology-v2 .page-hero { padding-block: 60px 64px; }
.methodology-v2 .page-hero h1 { font-size: 46px; line-height: 1.3; }
.methodology-v2 .page-hero .ph-sub { font-size: 18px; line-height: 1.85; }
.methodology-v2 .methodology-v2-intro { max-width: 790px; margin: 22px 0 28px; color: var(--muted); font-size: 16px; line-height: 1.85; text-align: left; }
.methodology-v2 .methodology-v2-intro strong { color: var(--primary); }
.methodology-v2 .methodology-v2-section { padding-block: 104px; scroll-margin-top: 92px; }
.methodology-v2 .section-head { max-width: 840px; margin-bottom: 44px; }
.methodology-v2 .section-head h2, .methodology-v2 .methodology-v2-final h2 { font-size: 38px; line-height: 1.35; }
.methodology-v2 .section-head p { font-size: 16px; line-height: 1.85; }
.methodology-v2 .methodology-v2-note { margin: 28px 0 0; color: var(--muted); font-size: 14px; line-height: 1.85; }
.methodology-v2 .methodology-v2-framework, .methodology-v2 .methodology-v2-uses, .methodology-v2 .methodology-v2-loop { background: var(--bg-soft); border-block: 1px solid var(--line); }
.methodology-v2 .methodology-v2-framework-layout { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.3fr); gap: 80px; align-items: start; }
.methodology-v2 .methodology-v2-framework .section-head { margin: 0; }
.methodology-v2 .vtp-steps { width: 100%; min-width: 0; max-width: none; margin: 0; }
.methodology-v2 .vtp-step { grid-template-columns: 48px minmax(0, 1fr); gap: 24px; }
.methodology-v2 .vs-body { padding-bottom: 40px; }
.methodology-v2 .vtp-step:last-child .vs-body { padding-bottom: 0; }
.methodology-v2 .vs-body h3 { font-size: 23px; line-height: 1.5; margin-block: 8px 12px; }
.methodology-v2 .vs-body p { margin: 0; font-size: 15px; line-height: 1.85; }
.methodology-v2 .vtp-step:last-child .vs-dot { background: var(--gold); color: var(--primary); }
.methodology-v2 .vtp-step:last-child .vs-en { color: #936311; }
.methodology-v2 .methodology-v2-indicator-bands { border-top: 2px solid var(--primary); }
.methodology-v2 .methodology-v2-indicator-band { display: grid; grid-template-columns: 225px minmax(0, 1fr); gap: 50px; padding-block: 36px; border-bottom: 1px solid var(--line); }
.methodology-v2 .methodology-v2-dimension { display: flex; align-items: flex-start; gap: 22px; }
.methodology-v2 .methodology-v2-dimension > span { font: 700 54px/1 var(--font-mono); color: var(--accent); }
.methodology-v2 .methodology-v2-dimension p { margin: 0 0 6px; color: var(--muted); font: 600 12px/1.5 var(--font-mono); }
.methodology-v2 .methodology-v2-dimension h3 { margin: 0 0 10px; font-size: 24px; line-height: 1.4; }
.methodology-v2 .methodology-v2-dimension small { color: var(--muted); font-size: 13px; }
.methodology-v2 .methodology-v2-indicator-band--preferred .methodology-v2-dimension > span { color: #b77b0f; }
.methodology-v2 .methodology-v2-indicator-band dl { margin: 0; }
.methodology-v2 .methodology-v2-indicator-band dl > div { display: grid; grid-template-columns: minmax(180px, .8fr) minmax(0, 1.2fr); gap: 30px; padding-block: 15px; border-bottom: 1px solid var(--line); }
.methodology-v2 .methodology-v2-indicator-band dl > div:first-child { padding-top: 0; }
.methodology-v2 .methodology-v2-indicator-band dl > div:last-child { padding-bottom: 0; border: 0; }
.methodology-v2 .methodology-v2-indicator-band dt { font-weight: 700; font-size: 16px; line-height: 1.75; color: var(--primary); }
.methodology-v2 .methodology-v2-indicator-band dd { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.85; }
.methodology-v2 .methodology-v2-boundaries { margin-top: 32px; padding-left: 24px; border-left: 3px solid var(--gold); }
.methodology-v2 .methodology-v2-boundaries strong { display: block; margin-bottom: 10px; color: var(--primary); font-size: 19px; }
.methodology-v2 .methodology-v2-boundaries p { margin: 0; color: var(--muted); font-size: 15px; }
.methodology-v2 .methodology-v2-use-list { margin: 0; border-top: 1px solid var(--line); }
.methodology-v2 .methodology-v2-use-list > div { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 50px; padding-block: 26px; border-bottom: 1px solid var(--line); }
.methodology-v2 .methodology-v2-use-list dt { font-weight: 700; color: var(--primary); font-size: 22px; }
.methodology-v2 .methodology-v2-use-list dt span { display: block; margin-bottom: 6px; color: var(--accent); font: 600 11px/1.5 var(--font-mono); letter-spacing: .06em; }
.methodology-v2 .methodology-v2-use-list dd { align-self: center; margin: 0; color: var(--muted); font-size: 16px; line-height: 1.85; }
.methodology-v2 .methodology-v2-sampling { max-width: 880px; margin-top: 40px; padding-left: 24px; border-left: 2px solid var(--accent); }
.methodology-v2 .methodology-v2-sampling h3 { font-size: 21px; line-height: 1.5; }
.methodology-v2 .methodology-v2-sampling p { margin: 10px 0 0; color: var(--muted); font-size: 15px; line-height: 1.85; }
.methodology-v2 .methodology-v2-chain-list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); list-style: none; margin: 58px 0 0; padding: 0; border-top: 2px solid var(--accent); }
.methodology-v2 .methodology-v2-chain-list > li { min-width: 0; position: relative; padding: 30px 22px 0; border-right: 1px solid var(--line); }
.methodology-v2 .methodology-v2-chain-list > li:last-child { border-right: 0; }
.methodology-v2 .methodology-v2-chain-list > li::before { content: ""; position: absolute; top: -7px; left: 22px; width: 12px; height: 12px; border-radius: 50%; background: var(--accent); border: 3px solid #fff; box-shadow: 0 0 0 1px var(--accent); }
.methodology-v2 .methodology-v2-chain-list span { display: block; margin-bottom: 14px; color: var(--accent); font: 600 12px/1.5 var(--font-mono); }
.methodology-v2 .methodology-v2-chain-list h3 { font-size: 21px; line-height: 1.5; }
.methodology-v2 .methodology-v2-chain-list p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.85; }
.methodology-v2 .methodology-v2-loop-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); list-style: none; padding: 0; margin: 54px 0 0; }
.methodology-v2 .methodology-v2-loop-list > li { position: relative; min-width: 0; padding: 0 28px 0 0; }
.methodology-v2 .methodology-v2-loop-list > li::before { content: ""; position: absolute; top: 21px; left: 44px; right: 0; height: 1px; background: #bed3e1; }
.methodology-v2 .methodology-v2-loop-list > li:last-child::before { display: none; }
.methodology-v2 .methodology-v2-loop-list > li > span { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin-bottom: 24px; border-radius: 50%; color: #fff; background: var(--primary); font: 700 13px/1 var(--font-mono); }
.methodology-v2 .methodology-v2-loop-list h3 { margin-bottom: 14px; font-size: 23px; line-height: 1.5; }
.methodology-v2 .methodology-v2-loop-list p { margin-bottom: 16px; color: var(--muted); font-size: 15px; line-height: 1.85; }
.methodology-v2 .methodology-v2-loop-list small { color: #3d647e; font-size: 12px; }
.methodology-v2 .methodology-v2-quality { margin-top: 50px; padding-top: 30px; border-top: 1px solid var(--line); }
.methodology-v2 .methodology-v2-quality h3 { font-size: 21px; }
.methodology-v2 .methodology-v2-quality ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; margin: 24px 0 0; padding: 0; list-style: none; }
.methodology-v2 .methodology-v2-quality strong { display: block; margin-bottom: 7px; color: var(--primary); font-size: 16px; }
.methodology-v2 .methodology-v2-quality li > span { display: block; color: var(--muted); font-size: 14px; line-height: 1.85; }
.methodology-v2 .methodology-v2-service-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.methodology-v2 .methodology-v2-service-list > a { display: block; min-width: 0; padding: 30px; border-bottom: 1px solid var(--line); }
.methodology-v2 .methodology-v2-service-list > a:nth-child(odd) { border-right: 1px solid var(--line); }
.methodology-v2 .methodology-v2-service-list > a:first-child { background: var(--bg-soft); box-shadow: inset 3px 0 var(--accent); }
.methodology-v2 .methodology-v2-service-list > a > span { color: var(--accent); font: 600 11px/1.5 var(--font-mono); }
.methodology-v2 .methodology-v2-service-list h3 { margin: 14px 0; font-size: 23px; line-height: 1.5; }
.methodology-v2 .methodology-v2-service-list p { color: var(--muted); font-size: 15px; line-height: 1.85; }
.methodology-v2 .methodology-v2-service-list b { color: var(--accent); font-size: 14px; }
.methodology-v2 .methodology-v2-service-list > a:hover { background: var(--bg-soft); text-decoration: none; }
.methodology-v2 a:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
.methodology-v2 .methodology-v2-final { color: #c2d4e0; }
.methodology-v2 .methodology-v2-final-copy { max-width: 850px; }
.methodology-v2 .methodology-v2-final h2 { color: #fff; margin-bottom: 22px; }
.methodology-v2 .methodology-v2-final-copy > p { font-size: 17px; line-height: 1.85; }
.methodology-v2 .methodology-v2-final .btn-row { margin-top: 30px; }
.methodology-v2 .methodology-v2-attribution { margin: 48px 0 0; border-top: 1px solid rgba(255,255,255,.16); padding-top: 24px; color: #9cb8cb; font-size: 12px; line-height: 1.9; }
@media (max-width: 980px) {
    .methodology-v2 .methodology-v2-framework-layout { grid-template-columns: minmax(0, 1fr); gap: 44px; }
    .methodology-v2 .methodology-v2-indicator-band { grid-template-columns: 180px minmax(0, 1fr); gap: 30px; }
    .methodology-v2 .methodology-v2-indicator-band dl > div { grid-template-columns: minmax(0, 1fr); gap: 6px; }
    .methodology-v2 .methodology-v2-chain-list { grid-template-columns: minmax(0, 1fr); border-top: 0; margin-top: 36px; }
    .methodology-v2 .methodology-v2-chain-list > li { padding: 0 0 30px 28px; margin-left: 6px; border-right: 0; border-left: 2px solid var(--accent); }
    .methodology-v2 .methodology-v2-chain-list > li::before { top: 4px; left: -7px; }
    .methodology-v2 .methodology-v2-chain-list > li:last-child { padding-bottom: 0; border-left-color: transparent; }
    .methodology-v2 .methodology-v2-chain-list span { margin-bottom: 8px; }
    .methodology-v2 .methodology-v2-loop-list { grid-template-columns: minmax(0, 1fr); }
    .methodology-v2 .methodology-v2-loop-list > li { padding: 0 0 32px 68px; }
    .methodology-v2 .methodology-v2-loop-list > li > span { position: absolute; left: 0; top: 0; margin: 0; }
    .methodology-v2 .methodology-v2-loop-list > li::before { top: 44px; bottom: 0; left: 21px; width: 1px; height: auto; right: auto; }
    .methodology-v2 .methodology-v2-loop-list > li:last-child { padding-bottom: 0; }
}
@media (max-width: 640px) {
    .methodology-v2 .page-hero { padding-block: 40px; }
    .methodology-v2 .page-hero h1 { font-size: 32px; }
    .methodology-v2 .page-hero .ph-sub { font-size: 16px; }
    .methodology-v2 .methodology-v2-intro { font-size: 15px; margin-block: 20px 24px; }
    .methodology-v2 .methodology-v2-section { padding-block: 68px; }
    .methodology-v2 .section-head { margin-bottom: 32px; }
    .methodology-v2 .section-head h2, .methodology-v2 .methodology-v2-final h2 { font-size: 28px; }
    .methodology-v2 .section-head p { font-size: 15px; }
    .methodology-v2 .vtp-step { grid-template-columns: 44px minmax(0, 1fr); gap: 18px; }
    .methodology-v2 .vs-body h3 { font-size: 21px; }
    .methodology-v2 .methodology-v2-indicator-band { grid-template-columns: minmax(0, 1fr); gap: 28px; padding-block: 30px; }
    .methodology-v2 .methodology-v2-dimension > span { font-size: 44px; }
    .methodology-v2 .methodology-v2-dimension h3 { font-size: 22px; }
    .methodology-v2 .methodology-v2-use-list > div { grid-template-columns: minmax(0, 1fr); gap: 14px; }
    .methodology-v2 .methodology-v2-use-list dt { font-size: 21px; }
    .methodology-v2 .methodology-v2-use-list dd { font-size: 15px; }
    .methodology-v2 .methodology-v2-quality ul, .methodology-v2 .methodology-v2-service-list { grid-template-columns: minmax(0, 1fr); }
    .methodology-v2 .methodology-v2-service-list > a { padding: 26px 20px; }
    .methodology-v2 .methodology-v2-service-list > a:nth-child(odd) { border-right: 0; }
    .methodology-v2 .methodology-v2-service-list h3 { font-size: 21px; }
    .methodology-v2 .btn-row { align-items: stretch; }
    .methodology-v2 .btn { min-height: 48px; justify-content: center; text-align: center; }
    .methodology-v2 .page-hero .btn-row, .methodology-v2 .methodology-v2-final .btn-row { flex-direction: column; }
    .methodology-v2 .methodology-v2-attribution { margin-top: 36px; }
}
