/* ==========================================================================
   poseidon_promociones · Modal, tarjetas y página de promoción
   ========================================================================== */
.promo-dialog{position:fixed;inset:0;margin:auto;padding:0;width:min(880px,calc(100% - 32px));max-height:calc(100svh - 40px);overflow:hidden;background:#0b2533;color:var(--white);border:1px solid #486675;box-shadow:0 30px 110px #0007}
.promo-dialog::backdrop{background:#03111de6;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.promo-dialog[open]{animation:p-promo .5s var(--ease)}
@keyframes p-promo{from{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:none}}
.promo-dialog-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);max-height:calc(100svh - 40px)}
.promo-dialog.layout-superior .promo-dialog-inner,.promo-dialog.layout-texto .promo-dialog-inner{grid-template-columns:minmax(0,1fr)}
.promo-dialog-media{position:relative;overflow:hidden;background:#0a2130}
.promo-dialog-media img{width:100%;height:100%;object-fit:cover;min-height:260px}
.promo-dialog.layout-superior .promo-dialog-media img{max-height:280px}
.promo-dialog-body{padding:40px 42px 38px;overflow-y:auto;overscroll-behavior:contain}
.promo-dialog .dialog-close{position:absolute;right:16px;top:16px;z-index:2;display:grid;place-items:center;width:36px;height:36px;border:1px solid #6e8b98;border-radius:50%;background:rgba(7,26,38,.7);transition:background .3s}
.promo-dialog .dialog-close:hover{background:#17394a}
.promo-dialog .dialog-close .p-icon{width:17px;height:17px}
.promo-dialog .dialog-brand{display:flex;align-items:center;gap:10px;margin-bottom:26px;font-size:var(--fs-text);letter-spacing:2px;color:var(--aqua)}
.promo-dialog .dialog-brand .p-icon{width:18px;height:18px}
.promo-dialog h2{font-size:var(--fs-h3);line-height:1.02;letter-spacing:-1.6px}
.promo-dialog-text{margin-top:20px;font-size:var(--fs-text);line-height:1.9;color:#c6d6dc}
.promo-code{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:26px;padding:14px 18px;border:1px dashed #5f8592;background:rgba(167,217,215,.06)}
.promo-code>span{font-size:var(--fs-text);letter-spacing:1.8px;text-transform:uppercase;color:var(--muted)}
.promo-code strong{font-family:var(--serif);font-size:var(--fs-h4);font-weight:400;letter-spacing:2px;color:var(--aqua)}
.promo-copy{display:inline-flex;align-items:center;gap:8px;margin-left:auto;padding:8px 14px;border:1px solid var(--line);border-radius:30px;font-size:var(--fs-text);transition:background .3s,color .3s}
.promo-copy:hover{background:var(--white);color:var(--navy)}
.promo-copy .p-icon{width:14px;height:14px}
.promo-copy.is-copied{background:var(--aqua);color:var(--navy);border-color:var(--aqua)}
.promo-validity{display:flex;align-items:center;gap:10px;margin-top:20px;font-size:var(--fs-text);letter-spacing:.6px;color:var(--muted)}
.promo-validity .p-icon{width:15px;height:15px;color:var(--aqua)}
.promo-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px;margin-top:32px}
.promo-dismiss{font-size:var(--fs-text);color:var(--muted);text-decoration:underline;text-underline-offset:4px}
.promo-dismiss:hover{color:var(--white)}
.promo-preview-note{margin-top:22px;font-size:var(--fs-text);color:#9fc4ca}

/* Tarjetas ------------------------------------------------------------------- */
.promo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:26px}
.promo-card{display:flex;flex-direction:column;border:1px solid var(--line);background:linear-gradient(160deg,rgba(255,255,255,.04),transparent 60%);transition:border-color .4s,transform .5s var(--ease),opacity 1s var(--ease)}
.promo-card:hover{border-color:rgba(167,217,215,.5);transform:translateY(-4px)}
.promo-card.is-inactive{opacity:.6}
.promo-card-media{display:block;aspect-ratio:16/10;overflow:hidden;background:var(--navy-light)}
.promo-card-media img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.promo-card:hover .promo-card-media img{transform:scale(1.05)}
.promo-card-placeholder{display:grid;place-items:center;height:100%;color:var(--aqua)}
.promo-card-placeholder .p-icon{width:38px;height:38px}
.promo-card-body{display:flex;flex-direction:column;gap:12px;padding:26px 26px 30px;flex:1}
.promo-card-eyebrow{font-size:var(--fs-text);letter-spacing:1.8px;color:var(--aqua);text-transform:uppercase}
.promo-card h3{font-family:var(--serif);font-weight:400;font-size:var(--fs-h4);line-height:1.1;letter-spacing:-.6px}
.promo-card-text{font-size:var(--fs-text);line-height:1.9;color:var(--muted)}
.promo-card-date{display:flex;align-items:center;gap:9px;font-size:var(--fs-text);color:#9fc4ca}
.promo-card-date .p-icon{width:14px;height:14px}
.promo-card .text-link{margin-top:auto;align-self:flex-start}
.tone-light .promo-card{border-color:#c4d2d3;background:rgba(255,255,255,.55)}
.tone-light .promo-card-eyebrow{color:#2f6f7a}
.tone-light .promo-card-text{color:#506570}

/* Página de la promoción ------------------------------------------------------ */
.promo-detail-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:7%;align-items:start}
.promo-flag{display:inline-flex;align-items:center;gap:10px;margin-bottom:26px;padding:10px 16px;border:1px solid var(--line);font-size:var(--fs-text);color:#ffd9a8}
.promo-flag .p-icon{width:16px;height:16px}
.promo-prose p{font-size:var(--fs-text);line-height:1.95;color:#c6d6dc;margin-bottom:1.2em;max-width:62ch}
.promo-prose h2,.promo-prose h3{font-family:var(--serif);font-weight:400;font-size:var(--fs-h3);line-height:1.15;margin:1.3em 0 .5em}
.promo-prose ul,.promo-prose ol{padding-left:1.2em;margin-bottom:1.4em;font-size:var(--fs-text);line-height:1.9;color:#c6d6dc}
.promo-prose li::marker{color:var(--aqua)}
.promo-prose a{color:var(--aqua);text-decoration:underline;text-underline-offset:3px}
.promo-terms{margin-top:50px;padding-top:30px;border-top:1px solid var(--line)}
.promo-terms h2{font-size:var(--fs-h4);margin-bottom:16px}
.promo-terms p{font-size:var(--fs-text);line-height:1.9;color:var(--muted)}
.promo-box{position:sticky;top:120px;padding:32px 30px 34px;border:1px solid var(--line);background:linear-gradient(145deg,#143b4d,#0a2637)}
.promo-box .eyebrow{font-size:var(--fs-text);letter-spacing:2px;color:var(--aqua)}
.promo-box h2{font-size:var(--fs-h4);line-height:1.08;margin:14px 0 20px}
.promo-facts{margin:22px 0 26px;border-top:1px solid var(--line)}
.promo-facts>div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:14px;padding:12px 0;border-bottom:1px solid var(--line);font-size:var(--fs-text)}
.promo-facts dt{color:var(--muted)}
.promo-facts dd{margin:0;text-align:right}
.promo-box .button{width:100%}
.promo-note{margin-top:18px;font-size:var(--fs-text);line-height:1.8;color:var(--muted)}
.promo-past{margin-top:70px;padding-top:34px;border-top:1px solid var(--line)}
.promo-past h3{font-family:var(--serif);font-weight:400;font-size:var(--fs-h4);margin-bottom:18px}
.promo-past ul{list-style:none;padding:0;margin:0}
.promo-past li{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid var(--line);font-size:var(--fs-text);color:var(--muted)}
.promo-past a:hover{color:var(--aqua)}

@media(max-width:860px){
  .promo-dialog-inner{grid-template-columns:minmax(0,1fr);max-height:calc(100svh - 32px)}
  .promo-dialog-media img{max-height:200px;min-height:0}
  .promo-dialog-body{padding:28px 24px 30px}
  .promo-detail-grid{grid-template-columns:minmax(0,1fr);gap:50px}
  .promo-box{position:static}
}
@media(max-width:520px){
  .promo-dialog{width:calc(100% - 20px)}
  .promo-code{gap:10px;padding:12px 14px}
  .promo-copy{margin-left:0}
  .promo-actions{flex-direction:column;align-items:stretch}
  .promo-actions .button{justify-content:center;gap:16px}
  .promo-dismiss{text-align:center}
}
