/* Living VPO / Editorial clásico — propuesta 01 aprobada.
   Estilos aislados: no afectan a los demás módulos del portal. */
.promotions-editorial { background:#fafaf9; color:#151515; padding:clamp(68px,8vw,112px) 0 clamp(82px,9vw,125px); overflow:visible; }
.promotions-editorial, .promotions-editorial * { box-sizing:border-box; }
.promotions-editorial .editorial-intro { display:flex; justify-content:space-between; align-items:flex-end; gap:clamp(26px,6vw,82px); margin-bottom:clamp(38px,4.3vw,53px); }
.promotions-editorial .editorial-intro-title { flex:1 1 640px; min-width:0; }
.promotions-editorial .editorial-kicker { display:block; font-size:11px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:#292929; }
.promotions-editorial .editorial-intro h2 { max-width:820px; font-size:clamp(3.1rem,6.05vw,6.35rem); line-height:.98; letter-spacing:-.071em; font-weight:800; margin:19px 0 0; color:#111; }
.promotions-editorial .editorial-intro > p { flex:0 1 320px; max-width:320px; margin:0 0 3px; font-size:.96rem; line-height:1.7; font-weight:400; color:#686868; }
.promotions-editorial .editorial-group-heading { display:flex; justify-content:space-between; gap:20px; align-items:center; border-top:1px solid #d2d0ca; padding:17px 0 20px; }
.promotions-editorial .editorial-group-heading--next { margin-top:clamp(46px,5.8vw,76px); }
.promotions-editorial .editorial-group-heading h3 { margin:0; color:#191919; font-size:.95rem; font-weight:800; letter-spacing:-.02em; }
.promotions-editorial .editorial-group-heading span { font-size:.76rem; font-weight:700; color:#686868; }
.promotions-editorial .editorial-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:15px; }
.promotions-editorial .editorial-card { display:flex; flex-direction:column; min-width:0; border:1px solid #e9e7e2; border-radius:13px; overflow:hidden; box-shadow:none; background:#fff; }
.promotions-editorial .editorial-card--upcoming { background:#f3f0ea; }
.promotions-editorial .editorial-media { width:100%; display:block; position:relative; aspect-ratio:1.2; overflow:hidden; background:#e3e4e1; }
.promotions-editorial .editorial-media::after { content:''; position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,0,0,.28),transparent 55%); pointer-events:none; }
.promotions-editorial .editorial-media img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; transition:transform .42s ease; }
.promotions-editorial a.editorial-media:hover img { transform:scale(1.025); }
.promotions-editorial .editorial-card--upcoming .editorial-media img { filter:saturate(.78); }
.promotions-editorial .editorial-badge { position:absolute; z-index:1; top:16px; right:16px; border:0; display:inline-flex; align-items:center; min-height:28px; padding:8px 11px; border-radius:50px; font-size:.61rem; font-weight:800; line-height:1.1; letter-spacing:.07em; text-transform:uppercase; white-space:nowrap; }
.promotions-editorial .editorial-badge--active { background:#b52e35; color:#fff; }
.promotions-editorial .editorial-badge--upcoming { background:#f3b41b; color:#141414; }
.promotions-editorial .editorial-concept { position:absolute; z-index:2; bottom:13px; left:13px; color:#fff; background:rgba(0,0,0,.58); padding:6px 9px; font-size:.66rem; }
.promotions-editorial .editorial-copy { flex:1; display:flex; align-items:flex-start; flex-direction:column; padding:clamp(19px,2.4vw,26px); min-height:198px; }
.promotions-editorial .editorial-location { margin:0; color:#777; text-transform:uppercase; font-size:.66rem; font-weight:800; letter-spacing:.11em; }
.promotions-editorial .editorial-copy h4 { font-size:clamp(1.34rem,2.25vw,2rem); font-weight:750; line-height:1.09; letter-spacing:-.047em; color:#161616; margin:11px 0 15px; overflow-wrap:break-word; }
.promotions-editorial .editorial-specs { margin:0 0 22px; font-size:.85rem; line-height:1.58; color:#737373; }
.promotions-editorial .editorial-link { margin-top:auto; display:inline-flex; align-items:center; gap:12px; padding-bottom:5px; border-bottom:1px solid #181818; text-decoration:none; font-size:.83rem; font-weight:800; line-height:1.4; color:#151515; }
.promotions-editorial .editorial-link:hover { color:#b52e35; border-color:#b52e35; }
.promotions-editorial a:focus-visible { outline:3px solid #e2a823; outline-offset:4px; }
@media (max-width:1000px){
  .promotions-editorial .editorial-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .promotions-editorial .editorial-intro { align-items:flex-start; gap:20px; }
  .promotions-editorial .editorial-intro h2 { font-size:clamp(3.2rem,7vw,5.6rem); }
}
@media (max-width:680px){
  .promotions-editorial { padding:66px 0 78px; }
  .promotions-editorial .editorial-intro { display:block; margin-bottom:40px; }
  .promotions-editorial .editorial-intro h2 { font-size:clamp(2.72rem,10.6vw,4.45rem); letter-spacing:-.065em; margin-top:16px; }
  .promotions-editorial .editorial-intro > p { max-width:100%; margin-top:19px; font-size:.91rem; }
  .promotions-editorial .editorial-grid { grid-template-columns:1fr; gap:17px; }
  .promotions-editorial .editorial-group-heading { padding:16px 0 17px; }
  .promotions-editorial .editorial-group-heading--next { margin-top:46px; }
  .promotions-editorial .editorial-media { aspect-ratio:1.28; }
  .promotions-editorial .editorial-copy { min-height:unset; padding:22px 22px 24px; }
  .promotions-editorial .editorial-copy h4 { font-size:1.72rem; }
  .promotions-editorial .editorial-specs { margin-bottom:20px; }
}
@media (prefers-reduced-motion:reduce){.promotions-editorial .editorial-media img{transition:none;}}

/* Integración discreta de la landing SEO de Sevilla dentro de promociones. */
.promotions-editorial .editorial-heading-actions{display:flex;align-items:center;gap:clamp(14px,2.5vw,32px);flex-wrap:wrap;justify-content:flex-end}
.promotions-editorial .editorial-territorial-link{display:inline-flex;align-items:center;gap:8px;border-bottom:1px solid #191919;padding-bottom:4px;color:#171717;text-decoration:none;font-size:.78rem;font-weight:800;white-space:nowrap}
.promotions-editorial .editorial-territorial-link:hover{color:#b52e35;border-color:#b52e35}
.promotions-editorial .editorial-territorial-link span{color:inherit;font-size:1em}
@media(max-width:560px){.promotions-editorial .editorial-group-heading{align-items:flex-start}.promotions-editorial .editorial-heading-actions{align-items:flex-end;flex-direction:column;gap:6px}}
