/* Site-wide promo ad styles — shared across pages */
.promo-ad{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:2rem;pointer-events:auto}
.promo-ad__card{position:relative;border:0.0625rem solid rgba(212,80,10,.14);border-radius:1rem;overflow:hidden;background:linear-gradient(180deg, rgba(12,12,12,.96), rgba(8,8,8,.98));box-shadow:0 2.25rem 5rem rgba(0,0,0,.6);transition:transform .28s,box-shadow .28s;color:inherit;width:100%;max-width:52rem;max-height:calc(100vh - 4rem)}
.promo-ad__media-link{display:block;text-decoration:none;color:inherit;height:100%}
.promo-ad__inner{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;height:100%}
.promo-ad__media{position:relative;min-height:22rem;background:#0b0b0b;display:flex;align-items:center;justify-content:center}
.promo-ad__media img{width:100%;height:100%;object-fit:contain;display:block;filter:brightness(.9);transition:transform .6s ease}
.promo-ad__media-link:hover .promo-ad__media img{transform:scale(1.03)}
.promo-ad__media-badge{position:absolute;left:0.75rem;top:0.75rem;background:rgba(200,169,110,.12);color:#c8a96e;padding:0.25rem 0.6rem;border-radius:999px;font-family:'IBM Plex Mono',monospace;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}
.promo-ad__content{padding:2.5rem 2rem;display:flex;flex-direction:column;justify-content:center;gap:0.6rem;overflow-y:auto}
.promo-ad__tag{color:#c8a96e;letter-spacing:.16em;text-transform:uppercase;font-size:.72rem;font-weight:700}
.promo-ad__kicker{font-family:'IBM Plex Mono',monospace;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.6)}
.promo-ad__title{margin:0;color:#f2f0ec;font-size:clamp(1.4rem,3vw,2rem);line-height:1.1}
.promo-ad__copy{margin:0;color:#d0cbc6;font-size:.92rem;line-height:1.6}
.promo-ad__price-row{display:flex;align-items:baseline;gap:0.6rem}
.promo-ad__price{font-family:'Bebas Neue',sans-serif;font-size:1.9rem;color:var(--ember);letter-spacing:.04em}
.promo-ad__compare{font-family:'IBM Plex Mono',monospace;font-size:.78rem;color:rgba(255,255,255,.45);text-decoration:line-through}
.promo-ad__perk-list{list-style:none;display:grid;gap:0.35rem;margin:0;padding:0}
.promo-ad__perk-list li{display:flex;align-items:flex-start;gap:0.5rem;color:rgba(255,255,255,.75);font-size:.84rem;line-height:1.5}
.promo-ad__perk-dot{width:0.35rem;height:0.35rem;border-radius:50%;background:var(--ember);margin-top:0.45rem;flex-shrink:0}
.promo-ad__cta-row{display:flex;align-items:center;justify-content:flex-start;gap:1rem;margin-top:0.5rem}
.btn-p.promo-ad__cta{padding:0.65rem 1.5rem;font-size:1rem}
.promo-ad__close{position:absolute;top:0.75rem;right:0.75rem;background:rgba(0,0,0,.5);backdrop-filter:blur(4px);border:0.08rem solid rgba(255,255,255,.1);color:rgba(255,255,255,.92);width:2.5rem;height:2.5rem;border-radius:0.5rem;display:flex;align-items:center;justify-content:center;font-size:1.05rem;cursor:pointer;z-index:5}
.promo-ad__close:hover{background:rgba(255,255,255,.08);transform:translateY(-1px)}
.promo-ad__media-link.is-disabled,.promo-ad__cta.is-disabled{pointer-events:none;opacity:.55}

/* entrance */
.promo-ad{opacity:0;transform:translateY(10px);transition:opacity .45s cubic-bezier(.2,.9,.2,1),transform .45s cubic-bezier(.2,.9,.2,1)}
.promo-ad.is-visible{opacity:1;transform:none}

/* modal backdrop for mobile */
.promo-ad-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:1190}

/* responsive */
@media(max-width:64rem){
  .promo-ad{padding:1.5rem}
  .promo-ad__card{max-width:44rem}
  .promo-ad__media{min-height:18rem}
}
@media(max-width:48rem){
  .promo-ad{padding:0.75rem;align-items:center}
  .promo-ad__card{max-width:none;max-height:calc(100vh - 1.5rem);border-radius:0.75rem;overflow-y:auto}
  .promo-ad__inner{grid-template-columns:1fr;grid-auto-rows:auto;height:auto}
  .promo-ad__media{min-height:0;height:auto;max-height:none}
  .promo-ad__media img{width:100%;height:auto;max-height:40vw;object-fit:contain}
  .promo-ad__media-link{height:auto}
  .promo-ad__content{padding:1rem;gap:0.4rem}
  .promo-ad__title{font-size:1.3rem}
  .promo-ad__copy{font-size:.84rem;line-height:1.5}
  .promo-ad__price{font-size:1.4rem}
  .promo-ad__perk-list{gap:0.25rem}
  .promo-ad__perk-list li{font-size:.78rem}
  .promo-ad__cta-row{margin-top:0.4rem}
  .btn-p.promo-ad__cta{padding:0.6rem 1.25rem;font-size:.9rem;text-align:center;width:100%}
  .promo-ad__close{top:0.5rem;right:0.5rem;width:2.25rem;height:2.25rem}
  .promo-ad, .promo-ad * { transform: none !important; -webkit-transform: none !important; }
}
@media(max-width:30rem){
  .promo-ad__media img{max-height:35vw}
  .promo-ad__title{font-size:1.15rem}
  .promo-ad__content{padding:0.75rem}
  .promo-ad__tag{font-size:.65rem}
  .promo-ad__kicker{font-size:.6rem}
}
