/* V14 — the two former area landing pages now live inside the homepage. */
.world-home-shell{display:none;scroll-margin-top:116px;background:#fff}
body[data-world] .world-home-shell{display:block}
.world-home{display:none}
body[data-world="a"] .world-home[data-world-content="a"],
body[data-world="b"] .world-home[data-world-content="b"]{display:block;animation:world-content-in .72s cubic-bezier(.16,.84,.32,1) both}
@keyframes world-content-in{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}

/* Once a context is selected, these two general statements would repeat the
   same problem/solution story. The shared project model remains visible. */
body[data-world] .whyb,body[data-world] .manifest{display:none}

.world-intro{padding:clamp(72px,7vw,104px) 0 clamp(60px,6vw,88px);background:var(--world-paper)}
.world-intro-grid{display:grid;grid-template-columns:minmax(0,1.03fr) minmax(360px,.97fr);gap:clamp(54px,8vw,128px);align-items:end}
.world-kicker{display:inline-flex;align-items:center;gap:10px;margin-bottom:24px;color:var(--mute)}
.world-kicker::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--world-text-accent,var(--world-accent))}
.world-key{color:var(--world-text-accent);transition:color .35s ease}
body[data-world="a"]{--world-text-accent:var(--a-accent);--world-on-dark-accent:var(--a-accent)}
body[data-world="b"]{--world-text-accent:var(--b-header-accent);--world-on-dark-accent:var(--b-accent)}
body[data-world] .world-kicker,
body[data-world] :is(.world-story-head,.world-solution-head,.world-focus-head) .mono{color:var(--world-text-accent)}
body[data-world] .world-intro .world-kicker{color:var(--ink)}
body[data-world="a"] .hero-variant[data-hero="a"] .hero-claim-mask--final .hero-claim{color:var(--a-accent)}
body[data-world="b"] .hero-variant[data-hero="b"] .hero-claim-mask--final .hero-claim{
  color:#fff;
  text-shadow:0 2px 24px rgba(0,0,0,.48)
}
body[data-world="b"] .hero-variant[data-hero="b"] .eyebrow .dot{background:var(--b-accent)!important}
body[data-world="b"] .hero-tint{opacity:.035!important;background:linear-gradient(110deg,var(--b-accent),transparent 72%)!important}

/* Shared content stays neutral until a world is selected. Inside A or B the
   project model follows the same accent as the hero instead of reverting to
   the former all-red treatment. */
.model{--model-accent:var(--ink)}
body[data-world="a"] .model{--model-accent:var(--a-accent)}
body[data-world="b"] .model{--model-accent:var(--b-accent)}
.model .phase-visual::before,
.model .phase-node,
.model .model-trust .model-trust-items span::before,
.model .model-trust .model-trust-items span + span::before{background:var(--model-accent)}
.model .phase-node{box-shadow:0 0 0 1px var(--model-accent)}
.model .phase .num,
.model .model-trust-label{color:var(--model-accent)}
.model .model-flow:focus-visible{outline-color:var(--model-accent)}
@media(max-width:640px){.model .model-flow::before{background:var(--model-accent)}}
@keyframes model-node-pulse{
  0%,100%{box-shadow:0 0 0 1px var(--model-accent),0 0 0 0 color-mix(in srgb,var(--model-accent) 0%,transparent)}
  50%{box-shadow:0 0 0 1px var(--model-accent),0 0 0 9px color-mix(in srgb,var(--model-accent) 18%,transparent)}
}

/* Company and general destinations are deliberately neutral. */
.company-home .mono{color:var(--ink)}

/* The context chooser uses the same A/B language as the rest of the page. */
.home-contact-toggle label[data-contact-option="b"]:has(input:checked){background:var(--b-accent);color:#fff}

/* The secondary hero action aligns with the primary button on mobile. On
   desktop the row itself supplies the intentional space between actions. */
.hero .hero-cta-row{column-gap:28px}
.hero .cta-secondary{margin-left:0!important}
.world-intro h2{max-width:13ch;margin:0 0 28px;font-size:clamp(48px,6.1vw,86px);font-weight:500;line-height:.96;letter-spacing:-.05em;text-wrap:balance}
.world-intro-copy{max-width:62ch;margin:0;font-size:clamp(18px,1.65vw,23px);line-height:1.48;color:var(--ink-2);text-wrap:pretty}
.world-intro figure{position:relative;margin:0;aspect-ratio:4/3;overflow:hidden;background:#ddd}
.world-intro img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.world-intro figure:hover img{transform:scale(1.035)}
.world-intro figcaption{position:absolute;left:0;bottom:0;padding:10px 14px;background:rgba(0,0,0,.76);color:#fff;font-size:11px}
.world-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:30px;margin-top:62px;padding-top:30px;border-top:1px solid var(--line)}
.world-meta span{display:block;color:var(--mute);margin-bottom:8px}
.world-meta strong{display:block;font-size:clamp(15px,1.25vw,18px);font-weight:400;line-height:1.3}

.world-story{padding:clamp(68px,7vw,104px) 0}
.world-story--soft{background:#f4f4f2}
.world-story-head{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(300px,.75fr);gap:clamp(48px,9vw,140px);align-items:end;margin-bottom:58px}
.world-story-head h2{max-width:15ch;margin:12px 0 0;font-size:clamp(38px,4.5vw,64px);font-weight:500;line-height:1;letter-spacing:-.045em;text-wrap:balance}
.world-story-head p{max-width:48ch;margin:0;color:var(--mute);font-size:17px;line-height:1.55}
.world-story-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1px solid var(--line)}
.world-story-card{min-width:0;padding:30px clamp(18px,2.4vw,34px) 14px 0;border-right:1px solid var(--line)}
.world-story-card+.world-story-card{padding-left:clamp(18px,2.4vw,34px)}
.world-story-card:last-child{border-right:0;padding-right:0}
.world-story-card h3{margin:0 0 12px;font-size:clamp(19px,1.55vw,23px);font-weight:500;line-height:1.16;letter-spacing:-.02em}
.world-story-card p{margin:0;color:var(--mute);font-size:15px;line-height:1.55}

.world-solution{padding:clamp(68px,7vw,104px) 0;background:#050505;color:#fff}
.world-solution-head{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(260px,.55fr);gap:clamp(48px,9vw,140px);align-items:end;margin-bottom:58px}
.world-solution h2{max-width:16ch;margin:12px 0 0;font-size:clamp(40px,4.8vw,68px);font-weight:500;line-height:.98;letter-spacing:-.045em;text-wrap:balance}
.world-solution h2 em{display:block;color:var(--world-on-dark-accent);font-style:normal}
.world-solution-head>p{margin:0;color:rgba(255,255,255,.62);font-size:17px;line-height:1.55}
.world-solution-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid rgba(255,255,255,.22)}
.world-solution-card{padding:30px clamp(22px,2.8vw,40px) 30px 0;border-right:1px solid rgba(255,255,255,.18);border-bottom:1px solid rgba(255,255,255,.18)}
.world-solution-card:nth-child(3n+2),.world-solution-card:nth-child(3n+3){padding-left:clamp(22px,2.8vw,40px)}
.world-solution-card:nth-child(3n){border-right:0;padding-right:0}
.world-solution-card h3{margin:0 0 11px;font-size:21px;font-weight:500;line-height:1.18}
.world-solution-card p{margin:0;color:rgba(255,255,255,.62);font-size:15px;line-height:1.55}

.world-focus{padding:clamp(68px,7vw,104px) 0;background:#fff}
.world-focus-head{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:52px}
.world-focus h2{max-width:14ch;margin:12px 0 0;font-size:clamp(38px,4.2vw,60px);font-weight:500;line-height:1;letter-spacing:-.04em}
.world-focus-head p{max-width:48ch;margin:0;color:var(--mute);font-size:16px}
.world-focus-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line)}
.world-focus-card{min-height:180px;padding:28px;background:#fff}
.world-focus-card h3{margin:0 0 10px;font-size:20px;font-weight:500}
.world-focus-card p{margin:0;color:var(--mute);font-size:14px;line-height:1.52}

@media(max-width:980px){
  .world-intro-grid,.world-story-head,.world-solution-head{grid-template-columns:1fr}
  .world-intro h2{max-width:15ch}
  .world-intro figure{max-width:760px}
  .world-meta{grid-template-columns:repeat(2,minmax(0,1fr))}
  .world-story-grid,.world-focus-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .world-story-card:nth-child(2){border-right:0}
  .world-solution-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .world-solution-card:nth-child(3n){border-right:1px solid rgba(255,255,255,.18);padding-right:clamp(22px,2.8vw,40px)}
  .world-solution-card:nth-child(even){border-right:0;padding-right:0;padding-left:clamp(22px,2.8vw,40px)}
  .world-solution-card:nth-child(odd){padding-left:0}
}

@media(max-width:680px){
  .world-home-shell{scroll-margin-top:162px}
  .world-intro{padding-top:68px}
  .world-intro h2{font-size:clamp(42px,13vw,58px)}
  .world-intro figure{aspect-ratio:5/4}
  .world-meta{gap:24px 18px;margin-top:42px}
  .world-story-head,.world-solution-head{margin-bottom:40px}
  .world-story-grid,.world-solution-grid,.world-focus-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;background:transparent;gap:14px;margin-right:-20px;padding-right:20px;scrollbar-width:none}
  .world-story-grid::-webkit-scrollbar,.world-solution-grid::-webkit-scrollbar,.world-focus-grid::-webkit-scrollbar{display:none}
  .world-story-card,.world-solution-card,.world-focus-card{flex:0 0 calc(100vw - 86px);scroll-snap-align:start;border:1px solid var(--line)!important;padding:24px!important;min-height:190px}
  .world-solution-card{border-color:rgba(255,255,255,.2)!important}
  .world-focus-head{align-items:start;flex-direction:column;margin-bottom:36px}
}

@media(max-width:340px){
  .world-story-head h2{overflow-wrap:anywhere;hyphens:auto}
}

@media(prefers-reduced-motion:reduce){.world-home{animation:none}.world-intro img{transition:none}}
