body.services-v2-page { min-width: 0; overflow-x: clip; background: var(--paper); }
body.services-v2-page .container { min-width: 0; }
body.services-v2-page .v4-shared-header { border-bottom-color: var(--line); }
body.services-v2-page .v4-shared-header .nav-links a[aria-current="page"] { color: var(--copper); }

.services-v3-hero,
.situation-section,
.support-section,
.support-model-section,
.insights-section { width: min(1240px, calc(100% - 56px)); margin: 0 auto; box-sizing: border-box; }
.services-v3-hero { display: grid; grid-template-columns: minmax(0, .9fr) minmax(430px, 1.1fr); gap: 74px; align-items: center; min-height: 690px; padding-top: 82px; padding-bottom: 92px; border-bottom: 1px solid var(--line); }
.services-v3-hero-copy { min-width: 0; }
.services-v3-hero h1 { max-width: 650px; margin: 0 0 24px; color: var(--ink); font-family: var(--serif); font-size: clamp(50px, 5.3vw, 78px); font-weight: 500; line-height: .99; letter-spacing: -.035em; }
.services-v3-hero .hero-support { max-width: 480px; margin: 0; color: var(--muted); font-size: 19px; line-height: 1.55; }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 22px; margin-top: 34px; }
.hero-actions .button { width: auto; }
.hero-boundary { max-width: 410px; margin: 45px 0 0; padding-top: 16px; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; line-height: 1.55; }

.decision-map { position: relative; min-width: 0; margin: 0; padding: 22px 26px 20px; background: linear-gradient(135deg, rgba(220,233,223,.68), rgba(251,250,245,.22) 68%); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.decision-map figcaption { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; padding-bottom: 12px; }
.decision-map figcaption strong { color: var(--ink); font-family: var(--serif); font-size: 18px; font-weight: 500; }
.decision-map-art { width: 100%; aspect-ratio: 560 / 420; }
.decision-map-art svg { display: block; width: 100%; height: 100%; overflow: visible; }
.map-line { fill: none; stroke: var(--copper); stroke-dasharray: 4 9; stroke-linecap: round; stroke-width: 1.1; opacity: .74; animation: map-flow 9s linear infinite; }
.map-orbit { fill: none; stroke: rgba(20,61,53,.2); stroke-dasharray: 3 8; stroke-width: 1; }
.map-center { fill: var(--ink); stroke: var(--paper); stroke-width: 4; }
.map-center-label { fill: var(--paper); font-family: var(--sans); font-size: 12px; font-weight: 700; }
.map-node circle { fill: var(--paper); stroke: var(--copper); stroke-width: 1.5; transition: fill .25s ease, transform .25s ease; transform-origin: center; }
.map-node text { fill: var(--ink); font-family: var(--sans); font-size: 11px; font-weight: 700; }
.map-node:hover circle { fill: #fffdf6; transform: scale(1.08); }
.decision-map-note { margin: 0; color: var(--muted); font-size: 11px; letter-spacing: .05em; text-transform: uppercase; }
@keyframes map-flow { to { stroke-dashoffset: -78; } }

.situation-section { padding-top: 114px; padding-bottom: 126px; }
.section-heading { max-width: 680px; }
.section-heading h2 { max-width: 650px; margin: 0 0 20px; color: var(--ink); font-family: var(--serif); font-size: clamp(42px, 4.3vw, 65px); font-weight: 500; line-height: 1.03; letter-spacing: -.035em; }
.section-heading > p:last-child { max-width: 520px; margin: 0; color: var(--muted); font-size: 16px; line-height: 1.7; }
.situation-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin-top: 50px; border-top: 1px solid var(--line); }
.situation-entry { display: grid; grid-template-columns: 34px 1fr; gap: 13px; align-items: start; min-width: 0; padding: 26px 26px 24px 0; border-bottom: 1px solid var(--line); transition: background .28s ease, color .25s ease, transform .25s ease; }
.situation-entry + .situation-entry { padding-left: 26px; border-left: 1px solid var(--line); }
.situation-entry:hover, .situation-entry:focus-visible { background: rgba(220,233,223,.32); color: var(--copper); transform: translateY(-3px); }
.situation-icon { grid-row: span 2; display: grid; place-items: center; width: 30px; height: 30px; color: var(--copper); }
.situation-icon svg { width: 29px; height: 29px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.45; transition: transform .25s ease, color .25s ease; }
.situation-entry:hover .situation-icon svg, .situation-entry:focus-visible .situation-icon svg { color: var(--ink); transform: translateY(-2px) scale(1.08); }
.situation-number { color: var(--copper); font-size: 11px; font-weight: 700; letter-spacing: .12em; }
.situation-copy { display: grid; gap: 18px; min-width: 0; }
.situation-copy strong { color: var(--ink); font-family: var(--serif); font-size: 22px; font-weight: 500; line-height: 1.2; }
.situation-copy small { color: var(--muted); font-size: 12px; font-weight: 700; }
.situation-copy small b { display: inline-block; padding-left: 7px; color: var(--copper); font-size: 18px; font-weight: 400; transition: transform .25s ease; }
.situation-entry:hover .situation-copy small b, .situation-entry:focus-visible .situation-copy small b { transform: translateX(4px); }

.support-section { display: grid; grid-template-columns: minmax(270px, .7fr) minmax(0, 1.3fr); gap: 86px; padding-top: 112px; padding-bottom: 128px; border-top: 1px solid var(--line); }
.support-heading { position: sticky; top: 110px; align-self: start; }
.service-architecture { min-width: 0; border-top: 1px solid var(--line); }
.service-module { position: relative; border-bottom: 1px solid var(--line); }
.service-module::before { position: absolute; top: -1px; left: 0; width: 0; height: 2px; background: var(--copper); content: ""; transition: width .35s ease; }
.service-module:hover::before, .service-module:focus-within::before, .service-module[open]::before { width: 120px; }
.service-module > summary { display: grid; grid-template-columns: 31px 36px minmax(0, 1fr) auto; gap: 15px; align-items: start; padding: 24px 0; list-style: none; cursor: pointer; transition: padding-left .25s ease, background .28s ease; }
.service-module > summary::-webkit-details-marker { display: none; }
.service-module > summary::marker { display: none; }
.service-module > summary:hover, .service-module > summary:focus-visible, .service-module[open] > summary { padding-left: 8px; background: linear-gradient(90deg, rgba(220,233,223,.55), rgba(251,250,245,0) 80%); }
.service-module > summary:focus-visible { outline: 2px solid var(--copper); outline-offset: 4px; }
.module-number { padding-top: 4px; color: var(--copper); font-size: 12px; font-weight: 700; letter-spacing: .1em; }
.module-icon { display: block; width: 30px; height: 30px; color: var(--copper); }
.module-icon svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.45; transition: transform .25s ease, color .25s ease, stroke-width .25s ease; }
.service-module:hover .module-icon svg, .service-module:focus-within .module-icon svg { color: var(--ink); transform: translateY(-2px) scale(1.07); stroke-width: 1.8; }
.module-copy { min-width: 0; }
.module-copy strong { display: block; color: var(--ink); font-family: var(--serif); font-size: clamp(22px, 2.1vw, 31px); font-weight: 500; line-height: 1.1; }
.module-copy small { display: block; margin-top: 7px; color: var(--muted); font-size: 13px; line-height: 1.5; }
.module-action { display: inline-flex; align-items: center; gap: 9px; padding-top: 6px; color: var(--muted); font-size: 12px; font-weight: 700; white-space: nowrap; }
.module-action b { color: var(--copper); font-size: 20px; font-weight: 400; transition: transform .25s ease; }
.service-module > summary:hover .module-action, .service-module > summary:focus-visible .module-action { color: var(--copper); }
.service-module > summary:hover .module-action b, .service-module > summary:focus-visible .module-action b { transform: translateX(4px); }
.service-module[open] .module-action b { transform: rotate(90deg); }
.module-details { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; margin: 0 0 25px 82px; padding: 21px 18px 22px; border-top: 1px solid rgba(216,222,215,.8); background: linear-gradient(135deg, rgba(245,241,232,.8), rgba(251,250,245,.45)); animation: detail-open .32s ease both; }
@keyframes detail-open { from { opacity: .2; transform: translateY(-5px); } to { opacity: 1; transform: none; } }
.detail-label { margin: 0 0 8px; color: var(--copper); font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.module-details p:last-child { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.62; }
.module-details a { display: inline-flex; align-items: flex-start; gap: 6px; color: var(--ink); font-family: var(--serif); font-size: 15px; font-weight: 500; line-height: 1.25; }
.module-details a span { color: var(--copper); font-family: var(--sans); font-size: 17px; transition: transform .25s ease; }
.module-details a:hover, .module-details a:focus-visible { color: var(--copper); }
.module-details a:hover span, .module-details a:focus-visible span { transform: translateX(4px); }

.support-model-section { display: grid; grid-template-columns: minmax(280px, .7fr) minmax(450px, 1.3fr); gap: 70px; align-items: center; max-width: none; width: 100%; padding: 116px max(28px, calc((100vw - 1240px) / 2)); box-sizing: border-box; background: var(--soft); }
.support-model-copy { max-width: 520px; }
.support-model-copy h2 { margin: 0 0 20px; color: var(--ink); font-family: var(--serif); font-size: clamp(40px, 4.1vw, 60px); font-weight: 500; line-height: 1.04; letter-spacing: -.03em; }
.support-model-copy > p:not(.section-index) { max-width: 450px; margin: 0 0 25px; color: var(--muted); font-size: 16px; line-height: 1.65; }
.support-model-visual { position: relative; min-height: 430px; overflow: hidden; background: linear-gradient(145deg, rgba(220,233,223,.72), rgba(251,250,245,.55)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.support-model-center { position: absolute; top: 50%; left: 50%; z-index: 2; display: grid; place-items: center; width: 148px; height: 148px; padding: 20px; box-sizing: border-box; border-radius: 50%; transform: translate(-50%, -50%); background: var(--ink); color: var(--paper); text-align: center; font-size: 13px; font-weight: 700; line-height: 1.35; }
.support-node { position: absolute; z-index: 3; display: grid; gap: 3px; width: 126px; min-height: 80px; padding: 14px 15px; box-sizing: border-box; background: rgba(251,250,245,.85); border: 1px solid var(--copper); transition: transform .25s ease, background .25s ease, color .25s ease; }
.support-node:hover { transform: translateY(-4px); background: #fffdf6; }
.support-node b { color: var(--copper); font-size: 10px; letter-spacing: .12em; }
.support-node strong { color: var(--ink); font-family: var(--serif); font-size: 21px; font-weight: 500; }
.support-node small { color: var(--muted); font-size: 11px; line-height: 1.35; }
.node-clarify { top: 30px; left: 8%; }.node-assess { top: 30px; right: 8%; }.node-review { bottom: 30px; left: 8%; }.node-coordinate { right: 8%; bottom: 30px; }
.support-line { position: absolute; z-index: 1; width: 26%; height: 1px; background: var(--copper); opacity: .58; transform-origin: left center; animation: support-line-in 1.1s ease both; }
.line-one { top: 39%; left: 29%; transform: rotate(22deg); }.line-two { top: 39%; right: 29%; transform: rotate(158deg); }.line-three { bottom: 39%; left: 29%; transform: rotate(-22deg); }.line-four { right: 29%; bottom: 39%; transform: rotate(-158deg); }
@keyframes support-line-in { from { opacity: 0; transform: scaleX(0); } to { opacity: .58; } }

.insights-section { padding-top: 116px; padding-bottom: 124px; }
.insight-editorial-list { margin-top: 48px; border-top: 1px solid var(--line); }
.insight-editorial-item { display: grid; grid-template-columns: 150px minmax(0, 1fr) 18px; gap: 20px; align-items: start; padding: 25px 0; border-bottom: 1px solid var(--line); transition: transform .25s ease, color .25s ease; }
.insight-editorial-item:hover, .insight-editorial-item:focus-visible { transform: translateX(6px); color: var(--copper); }
.insight-meta { color: var(--copper); font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.insight-content { display: grid; gap: 8px; }
.insight-content strong { color: var(--ink); font-family: var(--serif); font-size: 25px; font-weight: 500; line-height: 1.15; }
.insight-content small { color: var(--muted); font-size: 13px; line-height: 1.5; }
.insight-editorial-item > b { color: var(--copper); font-size: 20px; font-weight: 400; transition: transform .25s ease; }
.insight-editorial-item:hover > b, .insight-editorial-item:focus-visible > b { transform: translateX(4px); }
.all-insights-link { margin-top: 26px; }
.services-final-cta { margin-top: 0; }
body.services-v2-page .services-final-cta h2 { color: var(--paper); }
body.services-v2-page .services-final-cta p { color: #c8d4cd; }

.reveal-on-view { opacity: 1; transform: translateY(0); transition: opacity .7s ease, transform .7s ease; }
.reveal-on-view.is-visible { opacity: 1; transform: none; }
.situation-entry:nth-child(2), .service-module:nth-child(2), .insight-editorial-item:nth-child(2) { transition-delay: .08s; }
.situation-entry:nth-child(3), .service-module:nth-child(3) { transition-delay: .16s; }
.service-module:nth-child(4) { transition-delay: .24s; }

@media (max-width: 980px) {
  .services-v3-hero { grid-template-columns: 1fr; gap: 55px; min-height: 0; padding-top: 76px; padding-bottom: 84px; }
  .decision-map { max-width: 680px; }
  .situation-grid { grid-template-columns: 1fr; }
  .situation-entry, .situation-entry + .situation-entry { padding-left: 0; border-left: 0; }
  .support-section { grid-template-columns: 1fr; gap: 46px; }
  .support-heading { position: static; }
  .support-model-section { grid-template-columns: 1fr; gap: 44px; }
  .support-model-copy { max-width: 680px; }
}

@media (max-width: 620px) {
  .services-v3-hero, .situation-section, .support-section, .insights-section { width: calc(100% - 40px); }
  .services-v3-hero { gap: 38px; padding-top: 62px; padding-bottom: 72px; }
  .services-v3-hero h1 { font-size: clamp(43px, 12vw, 58px); line-height: 1.02; }
  .services-v3-hero .hero-support { font-size: 17px; }
  .hero-actions { display: block; margin-top: 28px; }
  .hero-actions .button { width: 100%; }
  .hero-actions .text-link { margin-top: 18px; }
  .hero-boundary { margin-top: 35px; }
  .decision-map { padding: 18px 12px 16px; }
  .decision-map figcaption { display: grid; gap: 4px; }
  .decision-map figcaption strong { font-size: 17px; }
  .decision-map-art { aspect-ratio: 1 / .9; }
  .map-center { r: 53px; }
  .map-center-label { font-size: 10px; }
  .map-node circle { r: 27px; }
  .map-node text { font-size: 9px; }
  .situation-section { padding-top: 70px; padding-bottom: 78px; }
  .section-heading h2, .support-model-copy h2 { font-size: 42px; }
  .situation-grid { margin-top: 34px; }
  .situation-entry { grid-template-columns: 30px 1fr; gap: 11px; padding: 22px 0; }
  .situation-icon { width: 26px; height: 26px; }
  .situation-copy strong { font-size: 21px; }
  .situation-copy { gap: 13px; }
  .support-section { gap: 36px; padding-top: 70px; padding-bottom: 82px; }
  .service-module > summary { grid-template-columns: 28px 28px minmax(0, 1fr); gap: 10px; padding: 21px 0; }
  .module-icon { width: 26px; height: 26px; }
  .module-copy strong { font-size: 24px; }
  .module-copy small { font-size: 13px; }
  .module-action { grid-column: 3; padding-top: 7px; }
  .module-details { grid-template-columns: 1fr; gap: 20px; margin-left: 38px; padding: 20px 12px 22px; }
  .support-model-section { padding: 72px 20px 82px; gap: 35px; }
  .support-model-visual { min-height: 420px; }
  .support-model-center { width: 126px; height: 126px; font-size: 12px; }
  .support-node { width: 114px; padding: 12px; }
  .node-clarify { left: 2%; }.node-assess { right: 2%; }.node-review { left: 2%; }.node-coordinate { right: 2%; }
  .insights-section { padding-top: 70px; padding-bottom: 78px; }
  .insight-editorial-list { margin-top: 34px; }
  .insight-editorial-item { grid-template-columns: 1fr 18px; gap: 8px; padding: 22px 0; }
  .insight-meta, .insight-content { grid-column: 1; }
  .insight-editorial-item > b { grid-column: 2; grid-row: 1 / span 2; }
  .insight-content strong { font-size: 22px; }
  .reveal-on-view { transform: translateY(10px); }
}

/* V4.6.2 image-integrated refinement: image-led moments and open editorial
   relationships replace repeated boxed visual treatment without changing the
   approved Services content or service logic. */
body.services-v462-page .services-v46-hero { grid-template-columns: minmax(0, .86fr) minmax(500px, 1.14fr); gap: 64px; min-height: 748px; padding-top: 88px; padding-bottom: 116px; }
body.services-v462-page .services-v46-hero h1 { max-width: 680px; font-size: clamp(48px, 4.35vw, 68px); line-height: 1.035; }
body.services-v462-page .services-v46-hero h1 span { display: block; }
body.services-v462-page .services-hero-image { margin-right: 18px; padding: 18px 0 0 24px; }
body.services-v462-page .services-hero-image::before { position: absolute; top: 0; left: 0; width: 46%; height: 76%; background: linear-gradient(135deg, rgba(220,233,223,.82), rgba(251,250,245,0)); content: ""; pointer-events: none; }
body.services-v462-page .services-hero-image::after { right: -18px; bottom: 82px; width: 32%; height: 52%; background: linear-gradient(135deg, rgba(181,108,61,.12), rgba(181,108,61,0)); }
body.services-v462-page .services-hero-image img { position: relative; z-index: 1; aspect-ratio: 1.16 / 1; object-position: 66% 50%; filter: saturate(.78) contrast(1.01); box-shadow: none; mask-image: linear-gradient(90deg, transparent 0%, #000 9%, #000 100%); }
body.services-v462-page .services-hero-image figcaption { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(120px, .72fr) minmax(190px, 1.28fr); gap: 20px; width: 86%; margin: -26px 0 0 auto; padding: 20px 0 0 24px; background: var(--paper); border-top: 1px solid var(--line); }
body.services-v462-page .services-hero-image figcaption span { padding-top: 2px; }

body.services-v462-page .decision-snapshot-map { min-height: 410px; background: linear-gradient(120deg, rgba(220,233,223,.18), rgba(251,250,245,0)); }
body.services-v462-page .snapshot-center { width: 138px; height: 138px; border: 1px solid var(--copper); background: rgba(251,250,245,.82); color: var(--ink); box-shadow: 0 0 0 10px rgba(181,108,61,.05); }
body.services-v462-page .snapshot-node { background: rgba(251,250,245,.34); border-top: 0; border-bottom: 1px solid rgba(216,222,215,.95); }
body.services-v462-page .snapshot-node:hover { background: rgba(255,253,246,.66); }

body.services-v462-page .support-model-section { background: var(--paper); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
body.services-v462-page .support-model-visual { background: transparent; }

body.services-v462-page .evidence-section { grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); gap: 92px; }
body.services-v462-page .evidence-image { position: relative; padding-bottom: 22px; }
body.services-v462-page .evidence-image::after { position: absolute; right: 0; bottom: 0; left: 16%; height: 1px; background: var(--copper); content: ""; opacity: .7; }
body.services-v462-page .evidence-image img { aspect-ratio: 1.28 / 1; object-position: 50% 52%; filter: saturate(.76) contrast(1.01); box-shadow: none; mask-image: linear-gradient(90deg, #000 0%, #000 88%, transparent 100%); }
body.services-v462-page .evidence-image figcaption { position: relative; z-index: 1; max-width: 600px; padding-top: 16px; border-top: 0; }

@media (max-width: 980px) {
  body.services-v462-page .services-v46-hero { grid-template-columns: 1fr; gap: 48px; min-height: 0; }
  body.services-v462-page .services-hero-image { max-width: 720px; }
}

@media (max-width: 620px) {
  body.services-v462-page .services-v46-hero { gap: 38px; padding-top: 62px; padding-bottom: 74px; }
  body.services-v462-page .services-v46-hero h1 { max-width: 100%; font-size: clamp(40px, 10.6vw, 50px); line-height: 1.04; }
  body.services-v462-page .services-hero-image { margin-right: 0; padding: 10px 0 0; }
  body.services-v462-page .services-hero-image img { aspect-ratio: 1 / 1.12; object-position: 63% 50%; mask-image: linear-gradient(180deg, #000 0%, #000 94%, transparent 100%); }
  body.services-v462-page .services-hero-image figcaption { grid-template-columns: 1fr; gap: 6px; width: 88%; margin-top: -16px; padding: 16px 0 0 18px; }
  body.services-v462-page .decision-snapshot-map { min-height: 410px; }
  body.services-v462-page .snapshot-center { width: 116px; height: 116px; font-size: 11px; }
  body.services-v462-page .evidence-image { padding-bottom: 16px; }
  body.services-v462-page .evidence-image img { aspect-ratio: 1.05 / 1; mask-image: linear-gradient(180deg, #000 0%, #000 94%, transparent 100%); }
  body.services-v462-page .evidence-image::after { left: 0; }
}

@media (prefers-reduced-motion: reduce) {
  body.services-v462-page .services-hero-image img, body.services-v462-page .evidence-image img { transition: none; }
}

@media (prefers-reduced-motion: reduce) {
  .map-line, .support-line { animation: none; }
  .reveal-on-view, .reveal-on-view.is-visible, .situation-entry, .service-module, .insight-editorial-item, .module-action b, .module-icon svg { transition: none; transform: none; }
  .module-details { animation: none; }
}

/* V4.5 keeps the service page editorial and intervention-led, with the CTA
   treated as an invitation rather than a conversion button. */
body.services-v45-page .services-v3-hero { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: 720px; gap: 62px; }
body.services-v45-page .services-v3-hero h1 { max-width: 620px; font-size: clamp(48px, 4.55vw, 66px); line-height: 1.01; }
body.services-v45-page .decision-map { background: linear-gradient(135deg, rgba(220,233,223,.5), rgba(251,250,245,.08) 72%); }
body.services-v45-page .support-model-section { background: var(--soft); }
body.services-v45-page .support-model-boundary { max-width: 450px; margin: -8px 0 24px; padding-left: 16px; border-left: 1px solid var(--copper); color: var(--ink); font-size: 13px; line-height: 1.55; }
body.services-v45-page .services-final-cta { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 42px; align-items: end; padding: 72px max(28px, calc((100vw - 1240px) / 2)) 78px; background: var(--ink); }
body.services-v45-page .services-final-cta .services-cta-link { display: inline-flex; align-items: center; gap: 12px; width: max-content; padding-bottom: 10px; border-bottom: 1px solid rgba(247,244,236,.72); color: var(--paper); font-size: 14px; font-weight: 750; letter-spacing: .02em; text-decoration: none; transition: color .25s ease, border-color .25s ease, gap .25s ease; }
body.services-v45-page .services-final-cta .services-cta-link span { color: var(--copper); font-size: 20px; font-weight: 400; }
body.services-v45-page .services-final-cta .services-cta-link:hover, body.services-v45-page .services-final-cta .services-cta-link:focus-visible { gap: 17px; border-color: var(--copper); color: #f2d8c5; }
body.services-v45-page .services-final-cta .services-cta-link:focus-visible { outline: 2px solid var(--copper); outline-offset: 7px; }

@media (max-width: 980px) {
  body.services-v45-page .services-v3-hero { grid-template-columns: 1fr; min-height: 0; }
  body.services-v45-page .services-final-cta { grid-template-columns: 1fr; align-items: start; }
}

@media (max-width: 620px) {
  body.services-v45-page .services-final-cta { padding: 58px 20px 64px; gap: 28px; }
  body.services-v45-page .services-final-cta .services-cta-link { width: auto; }
  body.services-v45-page .support-model-boundary { margin-top: -4px; }
}

/* V4.6 visual rebuild: images and decision relationships carry more of the
   page's meaning while the approved service detail remains progressive. */
body.services-v46-page .services-v46-hero,
body.services-v46-page .decision-snapshot,
body.services-v46-page .evidence-section { width: min(1240px, calc(100% - 56px)); margin: 0 auto; box-sizing: border-box; }
body.services-v46-page .services-v46-hero { display: grid; grid-template-columns: minmax(0, .92fr) minmax(460px, 1.08fr); gap: 70px; align-items: center; min-height: 700px; padding: 92px 0 112px; border-bottom: 1px solid var(--line); }
body.services-v46-page .services-v46-hero-copy { min-width: 0; }
body.services-v46-page .services-v46-hero h1 { max-width: 640px; margin: 0 0 24px; color: var(--ink); font-family: var(--serif); font-size: clamp(48px, 4.65vw, 70px); font-weight: 500; line-height: 1.01; letter-spacing: -.035em; }
body.services-v46-page .services-hero-image { position: relative; min-width: 0; margin: 0; }
body.services-v46-page .services-hero-image::after { position: absolute; right: -14px; bottom: 54px; width: 42%; height: 70%; background: linear-gradient(135deg, rgba(181,108,61,.15), rgba(181,108,61,0)); content: ""; pointer-events: none; mix-blend-mode: multiply; }
body.services-v46-page .services-hero-image img { display: block; width: 100%; aspect-ratio: 1.45 / 1; object-fit: cover; filter: saturate(.78) contrast(1.02); mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 100%); box-shadow: 18px 18px 0 rgba(181,108,61,.14); }
body.services-v46-page .services-hero-image figcaption { display: flex; justify-content: space-between; gap: 22px; padding-top: 16px; color: var(--muted); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
body.services-v46-page .services-hero-image figcaption strong { max-width: 300px; color: var(--ink); font-family: var(--serif); font-size: 16px; font-weight: 500; letter-spacing: 0; line-height: 1.35; text-transform: none; }

body.services-v46-page .decision-snapshot { display: grid; grid-template-columns: minmax(280px, .76fr) minmax(0, 1.24fr); gap: 72px; align-items: center; padding-top: 112px; padding-bottom: 122px; border-bottom: 1px solid var(--line); }
body.services-v46-page .decision-snapshot-copy { max-width: 510px; }
body.services-v46-page .decision-snapshot-copy h2 { max-width: 510px; margin: 0 0 20px; color: var(--ink); font-family: var(--serif); font-size: clamp(38px, 4vw, 58px); font-weight: 500; line-height: 1.04; letter-spacing: -.03em; }
body.services-v46-page .decision-snapshot-copy > p:last-child { max-width: 460px; margin: 0; color: var(--muted); font-size: 16px; line-height: 1.72; }
body.services-v46-page .decision-snapshot-map { position: relative; min-height: 470px; margin: 0; overflow: hidden; background: linear-gradient(145deg, rgba(220,233,223,.66), rgba(251,250,245,.25)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
body.services-v46-page .snapshot-center { position: absolute; top: 50%; left: 50%; z-index: 2; display: grid; place-items: center; width: 142px; height: 142px; border-radius: 50%; transform: translate(-50%, -50%); background: var(--ink); color: var(--paper); font-size: 13px; font-weight: 700; line-height: 1.35; text-align: center; }
body.services-v46-page .snapshot-node { position: absolute; z-index: 3; display: grid; gap: 4px; width: 170px; padding: 14px 15px; background: rgba(251,250,245,.86); border-left: 2px solid var(--copper); transition: transform .25s ease, background .25s ease; }
body.services-v46-page .snapshot-node:hover { transform: translateY(-4px); background: #fffdf6; }
body.services-v46-page .snapshot-node > span { color: var(--copper); font-size: 10px; font-weight: 700; letter-spacing: .12em; }
body.services-v46-page .snapshot-node strong { color: var(--ink); font-family: var(--serif); font-size: 20px; font-weight: 500; line-height: 1.1; }
body.services-v46-page .snapshot-node small { color: var(--muted); font-size: 11px; line-height: 1.35; }
body.services-v46-page .snapshot-node-one { top: 48px; left: 6%; }.snapshot-node-two { top: 48px; right: 6%; }.snapshot-node-three { bottom: 48px; left: 6%; }.snapshot-node-four { right: 6%; bottom: 48px; }
body.services-v46-page .snapshot-line { position: absolute; z-index: 1; width: 27%; height: 1px; background: var(--copper); opacity: .48; transform-origin: left center; animation: snapshot-line-in .9s ease both; }
body.services-v46-page .snapshot-line-one { top: 36%; left: 28%; transform: rotate(23deg); }.snapshot-line-two { top: 36%; right: 28%; transform: rotate(157deg); }.snapshot-line-three { bottom: 36%; left: 28%; transform: rotate(-23deg); }.snapshot-line-four { right: 28%; bottom: 36%; transform: rotate(-157deg); }
@keyframes snapshot-line-in { from { opacity: 0; transform: scaleX(0); } to { opacity: .48; } }

body.services-v46-page .module-copy { display: grid; gap: 4px; }
body.services-v46-page .module-stage { color: var(--copper); font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
body.services-v46-page .support-model-section { padding-top: 112px; padding-bottom: 122px; }

body.services-v46-page .evidence-section { display: grid; grid-template-columns: minmax(0, .94fr) minmax(0, 1.06fr); gap: 84px; align-items: center; padding-top: 122px; padding-bottom: 126px; border-bottom: 1px solid var(--line); }
body.services-v46-page .evidence-image { margin: 0; }
body.services-v46-page .evidence-image img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; filter: saturate(.78) contrast(1.03); box-shadow: -18px 18px 0 rgba(181,108,61,.14); mask-image: linear-gradient(180deg, #000 0%, #000 90%, transparent 100%); }
body.services-v46-page .evidence-image figcaption { display: grid; gap: 8px; padding-top: 16px; color: var(--muted); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
body.services-v46-page .evidence-image figcaption strong { color: var(--ink); font-family: var(--serif); font-size: 18px; font-weight: 500; letter-spacing: 0; line-height: 1.3; text-transform: none; }
body.services-v46-page .evidence-copy { max-width: 560px; }
body.services-v46-page .evidence-copy h2 { max-width: 540px; margin: 0 0 20px; color: var(--ink); font-family: var(--serif); font-size: clamp(40px, 4vw, 58px); font-weight: 500; line-height: 1.04; letter-spacing: -.03em; }
body.services-v46-page .evidence-copy > p:not(.section-index) { max-width: 500px; margin: 0; color: var(--muted); font-size: 16px; line-height: 1.72; }
body.services-v46-page .evidence-points { margin-top: 38px; border-top: 1px solid var(--line); }
body.services-v46-page .evidence-points > div { display: grid; grid-template-columns: 34px 112px 1fr; gap: 14px; align-items: baseline; padding: 16px 0; border-bottom: 1px solid var(--line); }
body.services-v46-page .evidence-points span { color: var(--copper); font-size: 11px; font-weight: 700; letter-spacing: .1em; }.evidence-points strong { color: var(--ink); font-family: var(--serif); font-size: 22px; font-weight: 500; }.evidence-points small { color: var(--muted); font-size: 13px; line-height: 1.45; }

body.services-v46-page .services-final-cta { margin-top: 0; }
body.services-v46-page .map-line, body.services-v46-page .support-line, body.services-v46-page .snapshot-line { animation-duration: 1.2s; }

@media (max-width: 980px) {
  body.services-v46-page .services-v46-hero { grid-template-columns: 1fr; gap: 54px; min-height: 0; padding-top: 76px; }
  body.services-v46-page .services-hero-image { max-width: 720px; }
  body.services-v46-page .decision-snapshot, body.services-v46-page .evidence-section { grid-template-columns: 1fr; gap: 48px; }
  body.services-v46-page .decision-snapshot-copy, body.services-v46-page .evidence-copy { max-width: 700px; }
  body.services-v46-page .evidence-image { max-width: 540px; }
}

@media (max-width: 620px) {
  body.services-v46-page .services-v46-hero, body.services-v46-page .decision-snapshot, body.services-v46-page .evidence-section { width: calc(100% - 40px); }
  body.services-v46-page .services-v46-hero { gap: 38px; padding-top: 62px; padding-bottom: 72px; }
  body.services-v46-page .services-v46-hero h1 { font-size: clamp(42px, 11vw, 56px); line-height: 1.03; }
  body.services-v46-page .services-hero-image img { aspect-ratio: 1.1 / 1; box-shadow: 10px 10px 0 rgba(181,108,61,.14); mask-image: linear-gradient(90deg, transparent 0%, #000 5%, #000 100%); }
  body.services-v46-page .services-hero-image figcaption { display: grid; gap: 6px; padding-top: 13px; }
  body.services-v46-page .decision-snapshot { padding-top: 72px; padding-bottom: 80px; gap: 36px; }
  body.services-v46-page .decision-snapshot-copy h2, body.services-v46-page .evidence-copy h2 { font-size: 40px; }
  body.services-v46-page .decision-snapshot-map { min-height: 430px; }
  body.services-v46-page .snapshot-center { width: 116px; height: 116px; font-size: 11px; }
  body.services-v46-page .snapshot-node { width: 136px; padding: 11px 12px; }.snapshot-node strong { font-size: 17px; }.snapshot-node small { font-size: 10px; }
  body.services-v46-page .snapshot-node-one { top: 25px; left: 0; }.snapshot-node-two { top: 25px; right: 0; }.snapshot-node-three { bottom: 25px; left: 0; }.snapshot-node-four { right: 0; bottom: 25px; }
  body.services-v46-page .snapshot-line-one { left: 26%; }.snapshot-line-two { right: 26%; }.snapshot-line-three { left: 26%; }.snapshot-line-four { right: 26%; }
  body.services-v46-page .evidence-section { padding-top: 78px; padding-bottom: 82px; gap: 42px; }
  body.services-v46-page .evidence-image img { box-shadow: -9px 9px 0 rgba(181,108,61,.14); }
  body.services-v46-page .evidence-points { margin-top: 30px; }
  body.services-v46-page .evidence-points > div { grid-template-columns: 30px 92px 1fr; gap: 10px; padding: 14px 0; }.evidence-points strong { font-size: 19px; }.evidence-points small { font-size: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  body.services-v46-page .snapshot-line { animation: none; }.services-v46-page .services-hero-image img, body.services-v46-page .evidence-image img { transition: none; }
}

/* V4.6.1 rhythm repair: open frameworks and horizontal relationships break
   the repeated text-plus-rectangle pattern without changing service logic. */
body.services-v461-page .decision-snapshot { display: block; padding-top: 108px; padding-bottom: 118px; }
body.services-v461-page .decision-snapshot-copy { max-width: 760px; }
body.services-v461-page .decision-snapshot-copy h2 { max-width: 720px; }
body.services-v461-page .decision-snapshot-map { min-height: 430px; margin-top: 52px; background: linear-gradient(120deg, rgba(220,233,223,.32), rgba(251,250,245,0)); border-top-color: var(--line); border-bottom-color: var(--line); }
body.services-v461-page .snapshot-node { background: transparent; border-left: 0; border-top: 1px solid rgba(216,222,215,.95); }
body.services-v461-page .snapshot-node:hover { background: rgba(255,253,246,.48); }
body.services-v461-page .snapshot-line { background: rgba(181,108,61,.7); opacity: .36; }

body.services-v461-page .support-model-section { display: block; padding-top: 108px; padding-bottom: 116px; background: linear-gradient(180deg, rgba(240,236,226,.74), rgba(251,250,245,.3)); }
body.services-v461-page .support-model-copy { max-width: 720px; }
body.services-v461-page .support-model-visual { display: grid; grid-template-columns: minmax(190px, 1.25fr) repeat(4, minmax(120px, 1fr)); align-items: stretch; min-height: 0; margin-top: 48px; overflow: visible; background: transparent; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
body.services-v461-page .support-model-center { position: static; display: grid; place-items: center start; width: auto; height: auto; padding: 23px 20px 23px 0; border-radius: 0; transform: none; background: transparent; color: var(--ink); font-family: var(--serif); font-size: 22px; font-weight: 500; line-height: 1.15; text-align: left; }
body.services-v461-page .support-node { position: static; display: grid; gap: 5px; width: auto; min-height: 0; padding: 22px 16px; background: transparent; border: 0; border-left: 1px solid var(--line); transform: none; }
body.services-v461-page .support-node:hover { transform: translateY(-3px); background: rgba(255,253,246,.48); }
body.services-v461-page .support-node b { font-size: 10px; }
body.services-v461-page .support-node strong { font-size: 20px; }
body.services-v461-page .support-line { display: none; }

body.services-v461-page .evidence-section { grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: 88px; }
body.services-v461-page .evidence-image img { aspect-ratio: 1.28 / 1; box-shadow: none; mask-image: linear-gradient(90deg, #000 0%, #000 88%, transparent 100%); }
body.services-v461-page .evidence-image figcaption { max-width: 600px; padding-top: 16px; border-top: 1px solid var(--line); }
body.services-v461-page .evidence-copy { max-width: 520px; }

@media (max-width: 980px) {
  body.services-v461-page .decision-snapshot { display: block; }
  body.services-v461-page .support-model-visual { grid-template-columns: 1fr 1fr; }
  body.services-v461-page .support-model-center { grid-column: 1 / -1; min-height: 84px; padding: 20px 0; border-bottom: 1px solid var(--line); }
  body.services-v461-page .support-node:nth-of-type(odd) { border-left: 0; }
  body.services-v461-page .support-node:nth-of-type(n+3) { border-top: 1px solid var(--line); }
}

@media (max-width: 620px) {
  body.services-v461-page .decision-snapshot { padding-top: 72px; padding-bottom: 80px; }
  body.services-v461-page .decision-snapshot-map { margin-top: 34px; min-height: 430px; }
  body.services-v461-page .snapshot-node { padding: 13px 11px; }
  body.services-v461-page .snapshot-node-one { top: 22px; }.snapshot-node-two { top: 22px; }.snapshot-node-three { bottom: 22px; }.snapshot-node-four { bottom: 22px; }
  body.services-v461-page .support-model-section { padding-top: 72px; padding-bottom: 80px; }
  body.services-v461-page .support-model-visual { grid-template-columns: 1fr; margin-top: 32px; }
  body.services-v461-page .support-model-center { grid-column: auto; min-height: 0; padding: 17px 0; }
  body.services-v461-page .support-node, body.services-v461-page .support-node:nth-of-type(n+3) { border-top: 1px solid var(--line); border-left: 0; padding: 17px 0; }
  body.services-v461-page .evidence-section { gap: 42px; padding-top: 80px; padding-bottom: 82px; }
  body.services-v461-page .evidence-image img { aspect-ratio: 1.18 / 1; mask-image: linear-gradient(180deg, #000 0%, #000 92%, transparent 100%); }
}

/* V4.6.2 final cascade: keep the refinement above the inherited V4.6 rules. */
body.services-v462-page .services-v46-hero { grid-template-columns: minmax(0, .86fr) minmax(500px, 1.14fr); gap: 64px; min-height: 748px; padding-top: 88px; padding-bottom: 116px; }
body.services-v462-page .services-v46-hero h1 { max-width: 680px; font-size: clamp(48px, 4.35vw, 68px); line-height: 1.035; }
body.services-v462-page .services-v46-hero h1 span { display: block; }
body.services-v462-page .services-hero-image { margin-right: 18px; padding: 18px 0 0 24px; }
body.services-v462-page .services-hero-image::before { position: absolute; top: 0; left: 0; width: 46%; height: 76%; background: linear-gradient(135deg, rgba(220,233,223,.82), rgba(251,250,245,0)); content: ""; pointer-events: none; }
body.services-v462-page .services-hero-image::after { right: -18px; bottom: 82px; width: 32%; height: 52%; background: linear-gradient(135deg, rgba(181,108,61,.12), rgba(181,108,61,0)); }
body.services-v462-page .services-hero-image img { position: relative; z-index: 1; aspect-ratio: 1.16 / 1; object-position: 66% 50%; filter: saturate(.78) contrast(1.01); box-shadow: none; mask-image: linear-gradient(90deg, transparent 0%, #000 9%, #000 100%); }
body.services-v462-page .services-hero-image figcaption { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(120px, .72fr) minmax(190px, 1.28fr); gap: 20px; width: 86%; margin: -26px 0 0 auto; padding: 20px 0 0 24px; background: var(--paper); border-top: 1px solid var(--line); }
body.services-v462-page .services-hero-image figcaption span { padding-top: 2px; }
body.services-v462-page .decision-snapshot-map { min-height: 410px; background: linear-gradient(120deg, rgba(220,233,223,.18), rgba(251,250,245,0)); }
body.services-v462-page .snapshot-center { width: 138px; height: 138px; border: 1px solid var(--copper); background: rgba(251,250,245,.82); color: var(--ink); box-shadow: 0 0 0 10px rgba(181,108,61,.05); }
body.services-v462-page .snapshot-node { background: rgba(251,250,245,.34); border-top: 0; border-bottom: 1px solid rgba(216,222,215,.95); }
body.services-v462-page .snapshot-node:hover { background: rgba(255,253,246,.66); }
body.services-v462-page .support-model-section { background: var(--paper); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
body.services-v462-page .support-model-visual { background: transparent; }
body.services-v462-page .evidence-section { grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); gap: 92px; }
body.services-v462-page .evidence-image { position: relative; padding-bottom: 22px; }
body.services-v462-page .evidence-image::after { position: absolute; right: 0; bottom: 0; left: 16%; height: 1px; background: var(--copper); content: ""; opacity: .7; }
body.services-v462-page .evidence-image img { aspect-ratio: 1.28 / 1; object-position: 50% 52%; filter: saturate(.76) contrast(1.01); box-shadow: none; mask-image: linear-gradient(90deg, #000 0%, #000 88%, transparent 100%); }
body.services-v462-page .evidence-image figcaption { position: relative; z-index: 1; max-width: 600px; padding-top: 16px; border-top: 0; }

@media (max-width: 980px) {
  body.services-v462-page .services-v46-hero { grid-template-columns: 1fr; gap: 48px; min-height: 0; }
  body.services-v462-page .services-hero-image { max-width: 720px; }
}

@media (max-width: 620px) {
  body.services-v462-page .services-v46-hero { gap: 38px; padding-top: 62px; padding-bottom: 74px; }
  body.services-v462-page .services-v46-hero h1 { max-width: 100%; font-size: clamp(40px, 10.6vw, 50px); line-height: 1.04; }
  body.services-v462-page .services-hero-image { margin-right: 0; padding: 10px 0 0; }
  body.services-v462-page .services-hero-image img { aspect-ratio: 1 / 1.12; object-position: 63% 50%; mask-image: linear-gradient(180deg, #000 0%, #000 94%, transparent 100%); }
  body.services-v462-page .services-hero-image figcaption { grid-template-columns: 1fr; gap: 6px; width: 88%; margin-top: -16px; padding: 16px 0 0 18px; }
  body.services-v462-page .decision-snapshot-map { min-height: 410px; }
  body.services-v462-page .snapshot-center { width: 116px; height: 116px; font-size: 11px; }
  body.services-v462-page .evidence-image { padding-bottom: 16px; }
  body.services-v462-page .evidence-image img { aspect-ratio: 1.05 / 1; mask-image: linear-gradient(180deg, #000 0%, #000 94%, transparent 100%); }
  body.services-v462-page .evidence-image::after { left: 0; }
}

/* Minimal positioning patch: restore the existing small-screen evidence stack. */
@media (max-width: 980px) {
  body.services-v462-page .evidence-section { grid-template-columns: minmax(0, 1fr); }
}

