/* v30 · Información conectada, territorio y decisiones. */
.shared-source.statement,.project-atlas.devs,.product-reasons.friction { display:block; height:auto; min-height:0; overflow:hidden; padding-block:clamp(80px,8vw,136px); }
.shared-source .wrap,.project-atlas .wrap,.product-reasons .wrap { display:block; }
.shared-source.statement { background:#0b1610; border-bottom:1px solid #d1dac319; }
.narrative-heading { display:grid; grid-template-columns:1.4fr .7fr; align-items:end; gap:22px 10%; margin-bottom:56px; }
.narrative-heading .eyebrow { grid-column:1/-1; }
.narrative-heading h2,.reasons-heading h2 { margin:0; font-size:clamp(2.4rem,4.1vw,4.5rem); line-height:1.12; letter-spacing:-.045em; font-weight:500; color:#eeeede; }
.narrative-heading h2 em,.reasons-heading h2 em { font-style:normal; color:#b5c2ac; }
.narrative-heading > p:last-child { font-size:.9rem; line-height:1.9; color:#a6b4a1; max-width:29rem; padding-bottom:5px; }
.source-composition { display:grid; grid-template-columns:350px 7% minmax(0,1fr); align-items:center; }
.source-record { padding:26px; border:1px solid #d4c2974d; border-radius:15px; background:radial-gradient(ellipse at 0 0,#c4ac6d13,transparent 75%),#111d15; box-shadow:0 25px 65px -42px #000; }
.source-record-top { display:flex; justify-content:space-between; align-items:center; gap:12px; padding-bottom:22px; border-bottom:1px solid #d1d7bd1f; color:#b9c6b2; font-size:.7rem; }
.source-serial { font-size:.48rem; letter-spacing:.09em; color:#8f9f88; }
.source-identity { display:flex; align-items:center; gap:20px; padding-block:26px; }
.source-unit { font-size:4.6rem; font-weight:500; letter-spacing:-.06em; line-height:1; color:#dac496; }
.source-identity > div > span { display:block; font-size:.6rem; color:#91a18a; margin-bottom:5px; }
.source-identity h3 { font-size:1.05rem; line-height:1.45; font-weight:500; letter-spacing:-.025em; }
.source-person { display:flex; align-items:center; gap:12px; padding:16px 0; border-block:1px solid #d1d7bd1f; }
.source-person > span,.reason-person { display:grid; place-items:center; width:36px; height:36px; flex:none; background:#c8b68710; border:1px solid #d4c29732; color:#d3be90; border-radius:50%; font-size:.63rem; }
.source-person p { font-size:.6rem; color:#8f9f8b; }
.source-person p b { display:block; font-size:.75rem; color:#dce4d5; margin-bottom:3px; font-weight:500; }
.source-person > .i { margin-left:auto; color:#a8b797; width:17px; height:17px; }
.source-fields { margin:20px 0 0; display:flex; justify-content:space-between; gap:20px; }
.source-fields dt { font-size:.57rem; color:#8f9e87; margin-bottom:7px; }
.source-fields dd { margin:0; font-size:.8rem; color:#d1dac6; }
.source-branches { position:relative; height:280px; }
.source-branches::before { content:''; position:absolute; inset:0 0 0 40%; border-left:1px solid #a1b58c3b; }
.source-branches::after { content:''; position:absolute; left:0; top:50%; width:40%; height:1px; background:#dac49755; }
.source-branches i { position:absolute; left:40%; right:0; height:1px; background:linear-gradient(90deg,#b7c19d33,#dac49782); }
.source-branches i:nth-child(1) { top:0; }.source-branches i:nth-child(2) { top:33.33%; }.source-branches i:nth-child(3) { top:66.66%; }.source-branches i:nth-child(4) { top:100%; }
.source-branches i::after { content:''; position:absolute; right:-3px; top:-2px; width:5px; height:5px; border-radius:50%; background:#d5c292; box-shadow:0 0 12px #d5c29266; }
.source-destinations { display:grid; gap:12px; }
.source-destinations li { display:grid; grid-template-columns:110px 1fr auto; align-items:center; gap:20px; padding:20px 23px; min-height:81px; border:1px solid #cad8bd24; border-radius:10px; background:linear-gradient(105deg,#17251a,#0e1a12); }
.source-area { display:flex; align-items:center; gap:9px; font-size:.68rem; color:#b6c3ad; }
.source-area .i { color:#aebd99; height:16px; width:16px; }
.source-destinations li > div b { display:block; color:#e4e8dc; font-size:.8rem; font-weight:500; }
.source-destinations li > div > span { display:block; color:#92a28a; margin-top:4px; font-size:.61rem; }
.source-status { display:inline-flex; padding:5px 9px; font-size:.53rem; border:1px solid #b5c7a92d; border-radius:99px; color:#a8b69c; white-space:nowrap; }
.source-status.gold { color:#d7c18d; border-color:#d7c18d42; background:#d7c18d09; }
.source-footer { margin-top:38px; display:flex; align-items:end; justify-content:space-between; gap:30px; }
.source-footer p { font-size:1rem; color:#99ab94; line-height:1.6; }
.source-footer p b { color:#dae0cc; font-weight:400; }
.source-footer > span { font-size:.55rem; color:#8e9d83; max-width:21rem; line-height:1.8; text-align:right; }
/* Una sola composición: el plano horizontal se encuentra con el edificio. */
.project-atlas.devs { background:#0b1510; }
.project-atlas .narrative-heading { grid-template-columns:1.55fr .75fr; }
.project-atlas .narrative-heading h2 { font-size:clamp(2.3rem,3.8vw,4.1rem); }
.atlas-scene { display:grid; grid-template-columns:1fr 1fr; position:relative; border-radius:18px; overflow:hidden; border:1px solid #bacbab30; isolation:isolate; background:#08120c; }
.atlas-scene figure { position:relative; min-width:0; height:540px; overflow:hidden; }
.atlas-scene figure > img { width:100%; height:100%; object-fit:cover; }
.atlas-territory > img { object-position:60% center; filter:brightness(.87) saturate(.75); }
.atlas-building > img { object-position:49% 28%; filter:brightness(1.35) saturate(.7); }
.atlas-scene figure::after { position:absolute; content:''; inset:0; background:linear-gradient(180deg,#07120c05 30%,#07120ccc 75%,#07120cf5); }
.atlas-scene figcaption { position:absolute; z-index:2; bottom:32px; left:34px; right:34px; }
.atlas-scene figcaption > span { font-size:.53rem; letter-spacing:.15em; color:#d8cfa8; }
.atlas-scene h3 { font-size:clamp(1.8rem,2.6vw,2.7rem); font-weight:400; letter-spacing:-.04em; line-height:1.15; margin:14px 0 10px; color:#e8ecd9; }
.atlas-scene figcaption p { font-size:.64rem; color:#b0bda1; }
.atlas-marker { position:absolute; left:43%; top:35%; z-index:2; padding:7px 13px; background:#e2cd9a; color:#122016; font-size:.65rem; font-weight:600; border-radius:99px; box-shadow:0 0 0 6px #e2cd9a20,0 0 0 15px #e2cd9a0a; }
.atlas-seam { position:absolute; top:0; bottom:0; left:50%; width:1px; background:linear-gradient(transparent,#dbc79788,transparent); z-index:3; }
.atlas-seam > span { position:absolute; left:0; top:52%; transform:translate(-50%,-50%); display:grid; place-items:center; width:57px; height:57px; background:#15231a; border:1px solid #c8bb943e; border-radius:50%; box-shadow:0 0 0 9px #07120c30; }
.atlas-seam img { width:23px; }
.atlas-plan { position:absolute; z-index:3; right:22px; top:22px; width:40%; max-width:235px; padding:14px 14px 9px; background:#101d15f2; border:1px solid #c4ba934f; border-radius:10px; transform:rotate(3deg); box-shadow:0 16px 35px -15px #000c; }
.atlas-plan > span { display:flex; align-items:center; justify-content:space-between; gap:7px; color:#b4c2a7; font-size:.55rem; }
.atlas-plan > span b { color:#dfd2ad; font-weight:500; }
.atlas-plan img { width:100%; height:145px; margin:8px 0; object-fit:contain; }
.atlas-plan > small { color:#96a78e; font-size:.42rem; letter-spacing:.13em; }
.atlas-base { display:grid; grid-template-columns:.65fr 2.35fr; gap:6%; padding-top:35px; }
.atlas-base > p { font-size:1.5rem; letter-spacing:-.035em; line-height:1.3; color:#99ad95; }
.atlas-base > p b { font-weight:400; color:#e1e7d4; }
.atlas-base ul { display:grid; grid-template-columns:repeat(4,1fr); gap:25px; }
.atlas-base li { border-left:1px solid #b5c6a52a; padding-left:18px; }
.atlas-base li .i { display:block; color:#c0b58f; width:17px; height:17px; margin-bottom:12px; }
.atlas-base li b { display:block; font-weight:500; font-size:.73rem; color:#d7decd; }
.atlas-base li span { display:block; color:#97a98f; margin-top:6px; font-size:.64rem; line-height:1.65; }
.atlas-caption { font-size:.54rem; text-align:right; margin-top:25px; color:#7e9179; }
/* Beneficios con evidencia visual, sin una tabla de comparaciones. */
.product-reasons.friction { background:radial-gradient(ellipse at 100% 10%,#23342144,transparent 55%),#0c1710; }
.reasons-heading { display:grid; grid-template-columns:1.6fr .7fr; gap:24px 12%; align-items:end; margin-bottom:55px; }
.reasons-heading .eyebrow { grid-column:1/-1; }
.reasons-heading h2 { font-size:clamp(2.2rem,3.8vw,4.1rem); }
.reasons-heading > p:last-child { color:#a3b39c; font-size:.85rem; line-height:1.85; padding-bottom:3px; }
.reason-editorial { border-top:1px solid #c8d4bc2a; }
.reason-row { display:grid; grid-template-columns:65px 1fr minmax(280px,.75fr); gap:4%; align-items:center; padding:38px 0; border-bottom:1px solid #c8d4bc2a; }
.reason-number { color:#b8a97e; font-size:.7rem; letter-spacing:.12em; align-self:start; padding-top:12px; }
.reason-copy h3 { font-size:clamp(1.65rem,2.5vw,2.6rem); font-weight:400; line-height:1.2; letter-spacing:-.04em; color:#e4e9d7; }
.reason-copy p { font-size:.8rem; line-height:1.8; color:#9aad94; max-width:26rem; margin-top:18px; }
.reason-evidence { position:relative; background:linear-gradient(145deg,#1b2b1d55,#0c18104d); padding:22px 25px; border:1px solid #bbceb027; border-radius:13px; box-shadow:0 12px 40px -28px #000; }
.reason-unit { display:flex; align-items:center; gap:13px; }
.reason-unit > span { display:grid; place-items:center; width:44px; height:44px; flex:none; color:#e3cf97; background:#d2bd8c12; border:1px solid #d2bd8c29; border-radius:9px; font-size:.8rem; }
.reason-unit b { display:block; font-size:.78rem; font-weight:500; color:#dbe3d2; }
.reason-unit small { display:block; color:#95a789; font-size:.57rem; margin-top:2px; }
.reason-unit > .i { margin-left:auto; color:#a5c499; }
.reason-price { display:flex; align-items:center; justify-content:space-between; margin-top:20px; padding-block:16px; border-block:1px solid #b9c7a51e; }
.reason-price > span { font-size:.62rem; color:#9eaf92; }.reason-price b { font-size:.94rem; color:#dfd0a4; font-weight:500; }
.reason-network { display:flex; gap:7px; align-items:center; margin-top:17px; color:#9aac90; font-size:.5rem; white-space:nowrap; }
.reason-network i { height:1px; flex:1; background:#b4b98d5c; min-width:7px; }
.reason-history > div { display:flex; align-items:center; gap:12px; }
.reason-history > div > b { font-size:.78rem; font-weight:500; color:#dbe3d2; }.reason-history > div small { display:block; font-size:.56rem; color:#96a78c; font-weight:400; margin-top:4px; }
.reason-history ol { display:grid; gap:0; padding-top:16px; }
.reason-history li { display:flex; align-items:center; position:relative; gap:10px; padding:9px 0; font-size:.65rem; color:#aabd9f; }
.reason-history li > i { width:5px; height:5px; border-radius:50%; background:#a8b78d; position:relative; z-index:1; }
.reason-history li:not(:last-child)::after { content:''; position:absolute; width:1px; left:2px; top:50%; bottom:-50%; background:#a7ba8e35; }
.reason-history li .i { margin-left:auto; width:12px; height:12px; color:#9cbb8b; }.reason-history li:last-child > i { background:#dfc88e; box-shadow:0 0 0 4px #dfc88e12; }
.reason-history li small { margin-left:auto; font-size:.5rem; color:#c9b987; }
.reason-tracking { padding-bottom:16px; }.reason-tracking > div { display:flex; gap:12px; align-items:center; padding:12px 0; border-bottom:1px solid #bcc9aa1c; }
.reason-tracking > div > .i { color:#a3b48f; width:15px; height:15px; }.reason-tracking > div > span { font-size:.7rem; color:#ccd7c2; }
.reason-tracking > div > b { margin-left:auto; font-size:.56rem; padding:4px 10px; border-radius:99px; border:1px solid #d7be8c35; color:#d3c090; font-weight:400; }.reason-tracking > div > b.paid { color:#accba4; border-color:#9db98c30; background:#8faa7a08; }
.reason-tracking > p { font-size:.53rem; color:#8d9f82; margin-top:15px; }
.reasons-caption { text-align:right; font-size:.53rem; margin-top:20px; color:#84977c; }
/* Breves entradas, activadas al llegar a cada composición. */
.narrative-motion .source-record,.narrative-motion .source-destinations li,.narrative-motion .atlas-scene figure,.narrative-motion .atlas-plan,.narrative-motion .reason-row { transition:opacity .7s var(--ease),transform .9s var(--ease); }
.narrative-motion [data-narrative-reveal]:not(.narrative-in) .source-record { opacity:.3; transform:translateY(20px); }
.narrative-motion [data-narrative-reveal]:not(.narrative-in) .source-destinations li { opacity:.3; transform:translateX(20px); }
.narrative-motion .source-destinations li:nth-child(2) { transition-delay:.08s; }.narrative-motion .source-destinations li:nth-child(3) { transition-delay:.16s; }.narrative-motion .source-destinations li:nth-child(4) { transition-delay:.24s; }
.narrative-motion .source-branches { transform-origin:left; transition:opacity .9s .1s var(--ease); }.narrative-motion [data-narrative-reveal]:not(.narrative-in) .source-branches { opacity:0; }
.narrative-motion .atlas-scene:not(.narrative-in) .atlas-territory { transform:translateX(-25px); opacity:.4; }.narrative-motion .atlas-scene:not(.narrative-in) .atlas-building { transform:translateX(25px); opacity:.4; }
.narrative-motion .atlas-scene:not(.narrative-in) .atlas-plan { transform:translateY(20px) rotate(6deg); }.narrative-motion .atlas-plan { transition-delay:.15s; }
.narrative-motion [data-narrative-reveal]:not(.narrative-in) .reason-row { opacity:.3; transform:translateY(18px); }.narrative-motion .reason-row:nth-child(2) { transition-delay:.1s; }.narrative-motion .reason-row:nth-child(3) { transition-delay:.2s; }
@media(max-width:1200px) {
  .source-composition { grid-template-columns:290px 5% minmax(0,1fr); }
  .source-record { padding:22px; }.source-unit { font-size:4rem; }.source-identity { gap:15px; }
  .source-destinations li { grid-template-columns:88px 1fr; gap:14px; padding:17px; }.source-status { display:none; }.source-area { font-size:.6rem; }
  .atlas-scene figure { height:480px; }.atlas-plan { width:42%; right:17px; top:17px; }.atlas-plan img { height:115px; }
  .reason-row { grid-template-columns:38px 1fr minmax(260px,.8fr); }
}
@media(max-width:850px) {
  .narrative-heading,.project-atlas .narrative-heading,.reasons-heading { grid-template-columns:1fr; gap:20px; margin-bottom:35px; }
  .narrative-heading h2,.reasons-heading h2 { font-size:clamp(2.2rem,5vw,3.4rem); }
  .narrative-heading > p:last-child,.reasons-heading > p:last-child { max-width:36rem; }
  .source-composition { grid-template-columns:260px 5% minmax(0,1fr); }.source-serial { display:none; }.source-identity { flex-direction:column; align-items:start; padding-block:20px; }.source-identity h3 br { display:none; }.source-fields { flex-wrap:wrap; }
  .source-destinations li { display:flex; flex-wrap:wrap; gap:7px; min-height:90px; }.source-area { width:100%; font-size:.58rem; }.source-destinations li > div b { font-size:.72rem; }.source-destinations li > div > span { font-size:.55rem; }
  .source-branches { height:306px; }.source-footer { align-items:start; }
  .atlas-scene figure { height:450px; }.atlas-scene figcaption { left:23px; right:23px; bottom:25px; }.atlas-scene h3 { font-size:1.8rem; }.atlas-plan { width:54%; right:12px; top:12px; padding:10px; }.atlas-plan img { height:105px; }
  .atlas-base { grid-template-columns:1fr; gap:25px; }.atlas-base > p br { display:none; }
  .reason-row { grid-template-columns:1fr 1fr; gap:25px; padding-block:30px; }.reason-number { grid-column:1/-1; padding:0; }.reason-copy h3 { font-size:1.8rem; }.reason-copy p { font-size:.76rem; }.reason-evidence { padding:18px; }
}
@media(max-width:600px) {
  .shared-source.statement,.project-atlas.devs,.product-reasons.friction { padding-block:70px; }
  .narrative-heading h2,.project-atlas .narrative-heading h2,.reasons-heading h2 { font-size:2.2rem; line-height:1.12; }.narrative-heading > p:last-child,.reasons-heading > p:last-child { font-size:.8rem; line-height:1.8; }
  .source-composition { grid-template-columns:1fr; }.source-record { padding:20px; }.source-record-top { padding-bottom:16px; }.source-serial { display:block; }.source-identity { flex-direction:row; align-items:center; gap:22px; }.source-identity h3 { font-size:1.05rem; }.source-identity h3 br { display:block; }.source-unit { font-size:4.4rem; }.source-fields { flex-wrap:nowrap; }.source-person { padding-block:12px; }
  .source-branches { height:30px; width:1px; justify-self:center; background:#d0c08b6b; }.source-branches::before,.source-branches::after,.source-branches i { display:none; }
  .source-destinations { gap:9px; padding-left:14px; border-left:1px solid #b9c6a32e; }.source-destinations li { position:relative; min-height:76px; padding:13px 15px; display:grid; grid-template-columns:75px 1fr; gap:12px; }.source-destinations li::before { content:''; position:absolute; width:15px; height:1px; right:100%; top:50%; background:#b9c6a34d; }.source-area { flex-direction:column; align-items:start; gap:7px; width:auto; }.source-destinations li > div b { font-size:.69rem; }.source-destinations li > div > span { font-size:.55rem; line-height:1.5; }
  .source-footer { flex-direction:column; gap:15px; margin-top:26px; }.source-footer p { font-size:.85rem; }.source-footer > span { text-align:left; font-size:.5rem; }
  .atlas-scene { grid-template-columns:1fr; border-radius:13px; }.atlas-scene figure { height:370px; }.atlas-scene .atlas-building { height:420px; }.atlas-scene figcaption { left:22px; right:22px; bottom:24px; }.atlas-scene h3 { font-size:2rem; }.atlas-scene figure::after { background:linear-gradient(180deg,transparent 30%,#07120cbf 75%,#07120cf5); }
  .atlas-seam { left:0; right:0; top:370px; bottom:auto; width:auto; height:1px; background:linear-gradient(90deg,transparent,#dbc79788,transparent); }.atlas-seam > span { top:0; left:50%; width:49px; height:49px; }.atlas-seam img { width:19px; }
  .atlas-building > img { object-position:41% center; }.atlas-plan { width:44%; max-width:170px; top:22px; right:15px; }.atlas-plan img { height:105px; }.atlas-plan > span { font-size:.49rem; }.atlas-plan > small { font-size:.34rem; }
  .atlas-base { padding-top:27px; gap:22px; }.atlas-base > p { font-size:1.3rem; }.atlas-base ul { grid-template-columns:1fr 1fr; gap:23px 18px; }.atlas-base li { padding-left:13px; }.atlas-base li b { font-size:.72rem; }.atlas-base li span { font-size:.64rem; }.atlas-caption { text-align:left; line-height:1.7; }
  .reasons-heading { margin-bottom:30px; }.reason-row { grid-template-columns:1fr; gap:18px; padding-block:30px; }.reason-number { font-size:.6rem; }.reason-copy h3 { font-size:1.8rem; }.reason-copy p { margin-top:12px; font-size:.77rem; }.reason-evidence { padding:21px; margin-top:5px; }.reason-network { font-size:.53rem; }.reasons-caption { text-align:left; }
}
@media(prefers-reduced-motion:reduce) {
  .narrative-motion [data-narrative-reveal] * { transition:none!important; transform:none!important; opacity:1!important; }
}
