/* Home 86:4 visual language, adapted for the complete v2 copy.
 * Existing exported art is decorative; text, links and ordering stay native.
 * Frontend motion is isolated in home-motion.css/js. Explicit block backgrounds remain owned by editors. */
.v2-page:has(> .v2-hero) :is(#introduction,[data-int-anchor="introduction"]):not(.has-background) {
 background:#fff url(intro-shapes.svg) center 100px / 115% auto no-repeat;
}
.v2-page:has(> .v2-hero) :is(#introduction,[data-int-anchor="introduction"]) .v2-container {
 max-width:820px; padding-block:80px;
}
.v2-page:has(> .v2-hero) :is(#introduction,[data-int-anchor="introduction"]) h2 {
 float:none; width:auto; max-width:740px; margin-bottom:40px;
 font-size:var(--int-heading-font-size,clamp(36px,3.5vw,56px)); text-wrap:balance;
}
.v2-page:has(> .v2-hero) :is(#introduction,[data-int-anchor="introduction"]) .v2-container > :not(h2) { margin-left:0; }
.v2-page:has(> .v2-hero) :is(#capabilities,[data-int-anchor="capabilities"],#approach,[data-int-anchor="approach"]):not(.has-background) {
 background-color:var(--int-night);
 background-image:url(figma-surface-texture.webp),url(figma-surface-glow.svg);
 background-size:cover,1600px 1600px; background-position:center,right center;
 background-repeat:no-repeat; background-blend-mode:multiply,normal;
}
.v2-page:has(> .v2-hero) :is(#capabilities,[data-int-anchor="capabilities"]) { padding-inline:6.25%; }
.v2-page:has(> .v2-hero) :is(#capabilities,[data-int-anchor="capabilities"]) .v2-container { max-width:1400px; }
.v2-page:has(> .v2-hero) :is(#capabilities,[data-int-anchor="capabilities"]) h2 { max-width:800px; font-size:var(--int-heading-font-size,clamp(36px,3.5vw,56px)); }
.v2-page:has(> .v2-hero) .v2-problems { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.v2-page:has(> .v2-hero) .v2-problem {
 position:relative; isolation:isolate; min-height:520px; padding:36px; justify-content:flex-end;
}
.v2-page:has(> .v2-hero) .v2-problem:not(.has-background) {
 background:var(--int-night);
}
.v2-page:has(> .v2-hero) .home-card-image { position:absolute!important; inset:0; width:100%; height:100%; margin:0; z-index:-1; pointer-events:none; }
.v2-page:has(> .v2-hero) .home-card-image img { width:100%; height:100%; object-fit:cover; display:block; }
.v2-page:has(> .v2-hero) .home-card-image::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,#030407b8 0%,#030407d9 65%,#030407f5 100%); }
.editor-styles-wrapper .v2-page:has(> .v2-hero) .home-card-image { pointer-events:auto; }
.editor-styles-wrapper .home-card-image::after { pointer-events:none; }
.v2-page:has(> .v2-hero) .v2-problem h3 { font-size:var(--int-heading-font-size,28px); text-wrap:balance; }
.v2-page:has(> .v2-hero) .v2-problem p { font-size:var(--int-paragraph-font-size,17px); }
.v2-page:has(> .v2-hero) .v2-problem > p:last-of-type { margin-top:0; padding-top:28px; }
.v2-page:has(> .v2-hero) .v2-problem a { display:inline-block; font-weight:600; }
.v2-page:has(> .v2-hero) :is(#approach,[data-int-anchor="approach"]) .v2-container {
 display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); grid-template-rows:min-content 1fr; column-gap:12%; align-items:start;
}
.v2-page:has(> .v2-hero) :is(#approach,[data-int-anchor="approach"]) h2 {
 font-size:var(--int-heading-font-size,clamp(40px,4.5vw,72px)); text-wrap:balance; margin:0;
}
.v2-page:has(> .v2-hero) :is(#approach,[data-int-anchor="approach"]) .v2-engine {
 grid-column:2; grid-row:1 / span 2; grid-template-columns:1fr; gap:0; margin:0;
 padding-left:36px; border-left:2px solid var(--int-lilac);
}
.v2-page:has(> .v2-hero) :is(#approach,[data-int-anchor="approach"]) .process-card {
 min-height:0; padding:30px 0; border-bottom:1px solid #ffffff26;
}
.v2-page:has(> .v2-hero) :is(#approach,[data-int-anchor="approach"]) .process-card:first-child { padding-top:0; }
.v2-page:has(> .v2-hero) :is(#approach,[data-int-anchor="approach"]) .process-card:not(.has-background) { background:transparent; }
.v2-page:has(> .v2-hero) :is(#approach,[data-int-anchor="approach"]) .process-card::before { display:none; }
.v2-page:has(> .v2-hero) :is(#approach,[data-int-anchor="approach"]) .process-card h3 { font-size:var(--int-heading-font-size,30px); margin-bottom:18px; color:var(--int-lilac); }
.v2-page:has(> .v2-hero) :is(#approach,[data-int-anchor="approach"]) .closing-link { grid-column:1; margin-top:32px; }
/* Additional v2 sections: reference-led extensions, not extra Agency claims. */
.v2-page:has(> .v2-hero) :is(#routes,[data-int-anchor="routes"]) { padding-top:40px; }
.v2-page:has(> .v2-hero) :is(#routes,[data-int-anchor="routes"]) .v2-cards { grid-template-columns:1fr; gap:0; margin-bottom:0; }
.v2-page:has(> .v2-hero) :is(#routes,[data-int-anchor="routes"]) .process-card {
 display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:48px;
 padding:40px 0; border-top:1px solid #ffffff40;
}
.v2-page:has(> .v2-hero) :is(#routes,[data-int-anchor="routes"]) .process-card:not(.has-background) { background:transparent; }
.v2-page:has(> .v2-hero) :is(#routes,[data-int-anchor="routes"]) h3 { font-size:var(--int-heading-font-size,clamp(28px,3vw,44px)); color:var(--int-lilac); margin:0; }
.v2-page:has(> .v2-hero) :is(#outcomes,[data-int-anchor="outcomes"]):not(.has-background) { background:#fff; }
.v2-page:has(> .v2-hero) :is(#outcomes,[data-int-anchor="outcomes"]) h2 { font-size:var(--int-heading-font-size,clamp(38px,4.5vw,72px)); text-wrap:balance; }
.v2-page:has(> .v2-hero) :is(#outcomes,[data-int-anchor="outcomes"]) .v2-cards { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
/* Outcomes editorial layout is owned by v2-content.css. */
.v2-page:has(> .v2-hero) :is(#outcomes,[data-int-anchor="outcomes"]) .v2-cards + p { font-size:var(--int-paragraph-font-size,28px); max-width:900px; margin-block:56px; }
.v2-page:has(> .v2-hero) :is(#engineering,[data-int-anchor="engineering"]):not(.has-background) {
 background:var(--int-night) url(figma-surface-glow.svg) right center/cover no-repeat;
}
.v2-page:has(> .v2-hero) :is(#engineering,[data-int-anchor="engineering"]) h2 { font-size:var(--int-heading-font-size,clamp(36px,3.6vw,58px)); max-width:760px; }
.v2-page:has(> .v2-hero) :is(#engineering,[data-int-anchor="engineering"]) .v2-cards { gap:0; border-top:1px solid #ffffff40; border-left:1px solid #ffffff40; }
.v2-page:has(> .v2-hero) :is(#engineering,[data-int-anchor="engineering"]) .process-card { padding:44px; border-right:1px solid #ffffff40; border-bottom:1px solid #ffffff40; }
.v2-page:has(> .v2-hero) :is(#engineering,[data-int-anchor="engineering"]) .process-card:not(.has-background) { background:#03040766; }
.v2-page:has(> .v2-hero) :is(#engineering,[data-int-anchor="engineering"]) h3 { color:var(--int-lilac); font-size:var(--int-heading-font-size,30px); margin-bottom:24px; }
.v2-page:has(> .v2-hero) :is(#proof,[data-int-anchor="proof"]):not(.has-background) { background:#fff url(intro-shapes.svg) center/130% auto no-repeat; }
.v2-page:has(> .v2-hero) :is(#proof,[data-int-anchor="proof"]) .v2-container { max-width:850px; padding-block:45px; }
.v2-page:has(> .v2-hero) :is(#proof,[data-int-anchor="proof"]) h2 { font-size:var(--int-heading-font-size,clamp(38px,4.2vw,68px)); text-wrap:balance; }
.v2-page:has(> .v2-hero) :is(#proof,[data-int-anchor="proof"]) .v2-container > p:not(.eyebrow):not(.closing-link) { font-size:var(--int-paragraph-font-size,22px); }
.v2-page:has(> .v2-hero) :is(#industries,[data-int-anchor="industries"]):not(.has-background) { background:#fff; }
.v2-page:has(> .v2-hero) :is(#industries,[data-int-anchor="industries"]) .v2-container { position:relative; isolation:isolate; }
.v2-page:has(> .v2-hero) :is(#industries,[data-int-anchor="industries"]) .v2-container::before { content:""; position:absolute; z-index:-1; pointer-events:none; left:-3%; bottom:-20px; width:44%; height:260px; background:url(reference-about-glass.svg) center/contain no-repeat; opacity:.32; }
.v2-page:has(> .v2-hero) :is(#industries,[data-int-anchor="industries"]) h2 {
 font-size:var(--int-heading-font-size,clamp(38px,4.1vw,66px)); text-wrap:balance; line-height:1.12;
}
.v2-page:has(> .v2-hero) :is(#industries,[data-int-anchor="industries"]) h2::before { content:""; display:block; width:48px; height:2px; background:var(--int-purple); margin-bottom:28px; }
@media(max-width:780px) {
 .v2-page:has(> .v2-hero) :is(#industries,[data-int-anchor="industries"]) .v2-container::before { left:auto; right:0; top:0; bottom:auto; width:50%; height:180px; opacity:.2; }
}
.v2-page:has(> .v2-hero) :is(#industries,[data-int-anchor="industries"]) .v2-container > p:not(.closing-link) { font-size:var(--int-paragraph-font-size,20px); }
.v2-page:has(> .v2-hero) :is(#research,[data-int-anchor="research"]):not(.has-background) {
 background:var(--int-night) url(figma-surface-glow.svg) center/cover no-repeat;
}
.v2-page:has(> .v2-hero) :is(#research,[data-int-anchor="research"]) .v2-container { border-top:1px solid #ffffff40; padding-top:64px; }
.v2-page:has(> .v2-hero) :is(#research,[data-int-anchor="research"]) h2 { font-size:var(--int-heading-font-size,clamp(36px,3.6vw,58px)); color:var(--int-lilac); text-wrap:balance; }
.v2-page:has(> .v2-hero) :is(#research,[data-int-anchor="research"]) .v2-container > p:not(.closing-link) { font-size:var(--int-paragraph-font-size,20px); }
.v2-page:has(> .v2-hero) :is(#responsible-technology,[data-int-anchor="responsible-technology"]):not(.has-background) { background:#fff; }
.v2-page:has(> .v2-hero) :is(#responsible-technology,[data-int-anchor="responsible-technology"]) h2 { font-size:var(--int-heading-font-size,clamp(32px,3vw,48px)); text-wrap:balance; }
.v2-page:has(> .v2-hero) :is(#responsible-technology,[data-int-anchor="responsible-technology"]) .v2-review-note { border-left:2px solid var(--int-purple); padding-left:18px; margin-top:24px; }
@media(max-width:1100px) {
 .v2-page:has(> .v2-hero) .v2-problems { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .v2-page:has(> .v2-hero) :is(#approach,[data-int-anchor="approach"]) .v2-container { column-gap:7%; }
}
@media(max-width:780px) {
 .v2-page:has(> .v2-hero) :is(#routes,[data-int-anchor="routes"]) .process-card { grid-template-columns:1fr; gap:20px; padding-block:32px; }
 .v2-page:has(> .v2-hero) :is(#outcomes,[data-int-anchor="outcomes"]) .v2-cards { grid-template-columns:1fr; }
 .v2-page:has(> .v2-hero) :is(#outcomes,[data-int-anchor="outcomes"]) .process-card h3 { margin-bottom:24px; }
 .v2-page:has(> .v2-hero) :is(#engineering,[data-int-anchor="engineering"]) .process-card { padding:32px 24px; }
 .v2-page:has(> .v2-hero) :is(#proof,[data-int-anchor="proof"]) .v2-container { padding-block:0; }
 .v2-page:has(> .v2-hero) :is(#introduction,[data-int-anchor="introduction"]) .v2-container { padding-block:20px; }
 .v2-page:has(> .v2-hero) :is(#capabilities,[data-int-anchor="capabilities"]) { padding-inline:25px; }
 .v2-page:has(> .v2-hero) .v2-problems { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
 .v2-page:has(> .v2-hero) .v2-problem { min-height:360px; padding:28px; }
 .v2-page:has(> .v2-hero) :is(#approach,[data-int-anchor="approach"]) .v2-container { display:block; }
 .v2-page:has(> .v2-hero) :is(#approach,[data-int-anchor="approach"]) .v2-engine { margin-top:40px; padding-left:24px; }
}
/* Home supporting composition: native source order and editor overrides retained. */
.v2-page:has(> .v2-hero) .v2-hero-copy > .closing-link a { min-height:48px; }
.v2-page:has(> .v2-hero) .v2-hero-copy > .closing-link + .closing-link a {
 background:var(--int-night); color:var(--int-lilac); box-shadow:inset 0 0 0 1px currentColor;
}
.v2-page:has(> .v2-hero) .v2-hero-copy > .closing-link a:focus-visible { outline:2px solid white; outline-offset:5px; }
.v2-page:has(> .v2-hero) :is(#introduction,[data-int-anchor="introduction"]) .v2-container > h2 + p {
 font-size:var(--int-paragraph-font-size,clamp(23px,2vw,30px)); line-height:var(--int-paragraph-line-height,1.5);
 margin-bottom:32px;
}
.v2-page:has(> .v2-hero) :is(#introduction,[data-int-anchor="introduction"]) .v2-container > p + p {
 max-width:660px; margin-left:auto;
}
.v2-page:has(> .v2-hero) :is(#introduction,[data-int-anchor="introduction"]) .v2-container > p:nth-last-child(2) {
 color:var(--int-purple); font-weight:600; border-top:1px solid #151c2933; padding-top:28px; margin-top:32px;
}
.v2-page:has(> .v2-hero) :is(#outcomes,[data-int-anchor="outcomes"]) .v2-container {
 display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); column-gap:64px;
}
.v2-page:has(> .v2-hero) :is(#outcomes,[data-int-anchor="outcomes"]) .v2-container > * { grid-column:1 / -1; }
.v2-page:has(> .v2-hero) :is(#outcomes,[data-int-anchor="outcomes"]) .v2-container > h3 {
 grid-column:1 / -1; grid-row:auto; font-size:var(--int-heading-font-size,clamp(32px,4vw,56px)); font-weight:var(--int-heading-font-weight,300); line-height:var(--int-heading-line-height,1.15); color:var(--int-night,#151c29); max-width:24ch; margin:0 0 28px;
}
.v2-page:has(> .v2-hero) :is(#outcomes,[data-int-anchor="outcomes"]) .v2-container > .process-cards + p { font-size:var(--int-paragraph-font-size,18px); line-height:1.5; border-top:1px solid #151c2929; padding-top:24px; margin:0 0 32px; }
.v2-page:has(> .v2-hero) :is(#outcomes,[data-int-anchor="outcomes"]) .v2-container > h3 ~ p { grid-column:1 / -1; max-width:66ch; margin:0; }
.v2-page:has(> .v2-hero) :is(#outcomes,[data-int-anchor="outcomes"]) .v2-container > h3 ~ p + p { margin-top:24px; }
.v2-page:has(> .v2-hero) :is(#approach,[data-int-anchor="approach"]) h2 { max-width:5.5ch; }
@media(max-width:780px) {
 .v2-page:has(> .v2-hero) .v2-hero-copy > .closing-link a { display:flex; justify-content:center; width:100%; }
 .v2-page:has(> .v2-hero) :is(#introduction,[data-int-anchor="introduction"]) .v2-container > p + p { margin-left:0; }
 .v2-page:has(> .v2-hero) :is(#outcomes,[data-int-anchor="outcomes"]) .v2-container { display:block; }
 .v2-page:has(> .v2-hero) :is(#outcomes,[data-int-anchor="outcomes"]) .v2-container > h3 { margin-bottom:24px; }
 .v2-page:has(> .v2-hero) :is(#approach,[data-int-anchor="approach"]) h2 { max-width:none; }
}
/* Full-copy cards keep a comfortable measure below tablet portrait width. */
/* Share content tracks within each desktop/tablet row without fixed text heights. */
@supports (grid-template-rows:subgrid) {
 @media(min-width:768px) {
  .v2-page:has(> .v2-hero) .v2-problem {
   display:grid; grid-row:span 3; grid-template-rows:subgrid;
   row-gap:24px; padding-top:140px; align-content:normal; justify-content:normal;
  }
  .v2-page:has(> .v2-hero) .v2-problem > :is(h3,p) { margin-block:0; }
  .v2-page:has(> .v2-hero) .v2-problem > p:last-of-type { padding-top:0; }
 }
}
@media(max-width:767px) {
 .v2-page:has(> .v2-hero) .v2-problems { grid-template-columns:minmax(0,1fr); }
}
