/* ===== /toldos-puebla/ · efecto propio «La sombra»: sobre la foto real de una azotea al sol, un toldo Sunset sale con
   el scroll y su sombra crece en el piso ===== */
.so-track{position:relative;margin-top:clamp(2.4rem,5vw,4rem)}
.motion .so-track{height:300vh}
.so-stage{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(2rem,5vw,5rem);align-items:center}
.motion .so-stage{position:sticky;top:0;height:100svh;padding:96px 0 28px}
.so-steps{list-style:none;display:grid;gap:.4rem;max-width:30rem}
.so-steps li{position:relative;padding:1rem 1.1rem 1rem 3.4rem;border-radius:12px;border:1px solid transparent;color:var(--texto-3);transition:color .45s,background .45s,border-color .45s}
.so-steps li::before{content:attr(data-n);position:absolute;left:1.1rem;top:1.05rem;font:600 .78rem/1 var(--f-ui);letter-spacing:.12em;color:var(--texto-3)}
.so-steps li b{display:block;font:800 1.3rem/1.05 var(--f-display);text-transform:uppercase;color:inherit}
.so-steps li span{display:block;margin-top:.35rem;font-size:.95rem;line-height:1.5}
.so-steps li.on{color:var(--texto);background:var(--grafito);border-color:rgba(0,175,239,.35)}
.so-steps li.on::before{color:var(--naranja)}
.so-steps li.on span{color:var(--texto-2)}
html:not(.motion) .so-steps li{color:var(--texto)}
.so-opc{display:grid;gap:.7rem;margin-top:1.3rem;max-width:30rem}
.so-opc p{font:600 .66rem/1 var(--f-ui);letter-spacing:.18em;text-transform:uppercase;color:var(--texto-3)}
.so-opc div{display:flex;flex-wrap:wrap;gap:.45rem}
.so-opc button{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem .85rem;border-radius:999px;border:1px solid var(--linea-2);background:none;cursor:pointer;font:700 .92rem/1 var(--f-display);text-transform:uppercase;letter-spacing:.02em;color:var(--texto-2);transition:background .3s,color .3s,border-color .3s}
.so-opc button[aria-pressed="true"]{background:var(--texto);color:var(--negro);border-color:var(--texto)}
.so-opc button i{width:14px;height:14px;border-radius:50%;border:1px solid rgba(255,255,255,.35)}
.so-pista{display:block;margin-top:1.2rem;font:600 .72rem/1 var(--f-ui);letter-spacing:.22em;text-transform:uppercase;color:var(--texto-3)}
html:not(.motion) .so-pista{display:none}
.so-view{position:relative;height:min(calc(100svh - 150px),780px);aspect-ratio:9/16;border-radius:22px;overflow:hidden;background:#cdd5dc;border:1px solid var(--linea-2);box-shadow:0 50px 90px -40px rgba(0,0,0,.9)}
.so-view>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.so-view>svg{position:absolute;inset:0;width:100%;height:100%}
.so-sombra{position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,rgba(18,20,26,.62),rgba(18,20,26,.5) 70%,rgba(18,20,26,.3));
  clip-path:polygon(0% 100%,100% 100%,100% 100%,0% 100%)}
.so-tag{display:block;margin-top:.55rem;font:700 .58rem/1 var(--f-ui);letter-spacing:.16em;text-transform:uppercase;color:#9BE4FF}
.so-hud{position:absolute;left:12px;right:12px;bottom:12px;z-index:2;padding:.75rem .9rem;border-radius:12px;background:rgba(10,12,15,.7);border:1px solid var(--linea-2);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.so-hud .hud-row{margin-top:0}
.so-hud .hud-row+.hud-row{margin-top:.55rem}
.so-hud .hud-row b{font:700 1.05rem/1 var(--f-display);color:var(--texto)}

/* --- Sunset y Sunset Max --- */
.sun{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:clamp(2rem,4vw,3rem)}
.sun article{padding:1.4rem 1.4rem 1.3rem;border-radius:16px;background:var(--grafito);border:1px solid var(--linea)}
.sun .k{font:600 .68rem/1 var(--f-ui);letter-spacing:.2em;text-transform:uppercase;color:var(--cielo)}
.sun .n{margin-top:.5rem;font:900 clamp(1.7rem,2.6vw,2.3rem)/1 var(--f-display);text-transform:uppercase}
.sun .n em{font-style:normal}
.sun dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:1.1rem}
.sun dl div{padding:.75rem .8rem;border-radius:12px;background:rgba(255,255,255,.03);border:1px solid var(--linea)}
.sun dt{font:600 .62rem/1.3 var(--f-ui);letter-spacing:.12em;text-transform:uppercase;color:var(--texto-3)}
.sun dd{margin-top:.35rem;font:800 1.25rem/1 var(--f-display);color:var(--texto)}
.sun-comun{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}
.sun-comun div{padding:.9rem 1rem;border-radius:12px;background:var(--grafito);border:1px solid var(--linea)}
.sun-comun b{display:block;font:800 1.05rem/1.1 var(--f-display);text-transform:uppercase}
.sun-comun span{display:block;margin-top:.3rem;color:var(--texto-2);font-size:.88rem}

/* --- medios --- */
.tm{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tm .ph{aspect-ratio:3/4}
.tm .ph.w{grid-column:1/-1;aspect-ratio:16/9}
.tm .ph.v{aspect-ratio:4/5}
.ph .tag{position:absolute;left:12px;top:12px;z-index:3;display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .7rem;max-width:calc(100% - 24px);border-radius:8px;background:rgba(10,12,15,.78);font:700 .66rem/1.3 var(--f-ui);letter-spacing:.16em;text-transform:uppercase;color:#9BE4FF}
.ph .tag i{width:7px;height:7px;border-radius:50%;background:#ff4d3d;box-shadow:0 0 0 3px rgba(255,77,61,.25)}
.tv4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:clamp(2rem,4vw,3rem)}
.tv4 .ph{aspect-ratio:3/4}
.proy{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(1.4rem,3vw,2.6rem);align-items:center;margin-top:clamp(2.4rem,5vw,3.6rem);padding:clamp(1.2rem,2.4vw,1.8rem);border-radius:18px;background:var(--grafito);border:1px solid var(--linea)}
.proy .ph{aspect-ratio:16/9}
.proy .k{font:600 .7rem/1 var(--f-ui);letter-spacing:.2em;text-transform:uppercase;color:var(--naranja)}
.proy .t{margin-top:.6rem;font:800 clamp(1.4rem,2.2vw,1.9rem)/1.02 var(--f-display);text-transform:uppercase}
.proy p:not(.k):not(.t){margin-top:.7rem;color:var(--texto-2)}
.motor{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:1.6rem}
.motor div{padding:1.1rem 1.15rem;border-radius:14px;background:var(--grafito);border:1px solid var(--linea)}
.motor b{display:block;font:800 1.2rem/1.05 var(--f-display);text-transform:uppercase}
.motor span{display:block;margin-top:.4rem;color:var(--texto-2);font-size:.92rem}

@media (max-width:1100px){.sun-comun{grid-template-columns:1fr 1fr}}
@media (max-width:900px){
  .motion .so-track{height:260vh}
  .so-stage{grid-template-columns:1fr;justify-items:center;align-content:center;gap:1rem}
  /* abajo se deja el espacio de los botones flotantes: los colores del toldo no pueden quedar debajo de ellos */
  .motion .so-stage{padding:74px 0 100px}
  .so-side{order:2;width:100%}
  .so-steps{max-width:none;gap:0}
  .motion .so-steps li{display:none;padding:.2rem 0 0 2.4rem;border:0;background:none}
  .motion .so-steps li.on{display:block}
  .motion .so-steps li::before{left:0;top:.35rem}
  .so-steps li b{font-size:1.15rem}
  .so-opc{max-width:none;margin-top:.8rem;gap:.45rem}
  .so-opc p{display:none}
  .so-opc button{padding:.45rem .7rem;font-size:.8rem}
  .motion .so-view{height:max(260px,min(calc(100svh - 390px),600px))}
  html:not(.motion) .so-view{height:auto;width:min(100%,420px)}
  .sun{grid-template-columns:1fr}
  .proy{grid-template-columns:1fr}
  .tv4{grid-template-columns:1fr 1fr}
  .motor{grid-template-columns:1fr}
}
@media (max-width:900px){.so-hud .hud-row{letter-spacing:.06em}}
/* celulares bajos (iPhone SE y similares): sin la descripción del paso ni la pista, la foto gana alto y el medidor cabe */
@media (max-width:900px) and (max-height:760px){
  .motion .so-steps li span,.motion .so-pista{display:none}
  .motion .so-view{height:max(260px,min(calc(100svh - 300px),600px))}
}
@media (max-width:640px){
  .sun dl{grid-template-columns:1fr 1fr}
  .sun-comun{grid-template-columns:1fr}
}
