/* Reusable popup components: PromoModal (centred) + InfoToast (bottom-left).
   Colours come from the site tokens (--green, --navy, --heading, --body, --line). */

/* ---------- Promo modal ---------- */
.pm-overlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:1rem;background:rgba(8,18,36,.62);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);opacity:0;transition:opacity .28s ease}
.pm-overlay[hidden]{display:none}
.pm-overlay.is-open{opacity:1}
.pm-dialog{position:relative;width:min(100%,420px);max-height:calc(100dvh - 2rem);overflow-y:auto;background:#fff;border-radius:24px;box-shadow:0 40px 90px -30px rgba(0,0,0,.55),0 4px 14px rgba(0,0,0,.12);padding:1.75rem 1.6rem 1.5rem;text-align:center;transform:translateY(14px) scale(.94);opacity:0;transition:transform .32s cubic-bezier(.2,.8,.2,1.15),opacity .28s ease;overscroll-behavior:contain}
.pm-overlay.is-open .pm-dialog{transform:none;opacity:1}
.pm-close{position:absolute;top:.75rem;right:.75rem;width:38px;height:38px;border-radius:50%;border:0;background:#f0f5fa;color:var(--navy,#14315e);cursor:pointer;display:grid;place-items:center;transition:background-color .15s,transform .15s}
.pm-close:hover{background:#e1ebf5;transform:rotate(90deg)}
.pm-close svg{width:18px;height:18px}
.pm-img{display:grid;place-items:center;height:210px;margin:.25rem auto .9rem;background:radial-gradient(circle at 50% 55%,#eaf3fb 0,#fff 70%)}
.pm-img img{max-height:200px;width:auto;filter:drop-shadow(0 16px 18px rgba(15,35,67,.22))}
.pm-kicker{display:inline-block;font-family:var(--font-head,sans-serif);font-weight:800;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--green,#1b7f45);background:var(--green-50,#e8f5ee);padding:.35rem .7rem;border-radius:999px;margin-bottom:.7rem}
.pm-title{font-family:var(--font-head,sans-serif);font-weight:800;font-size:1.55rem;line-height:1.15;color:var(--heading,#0f2343);margin:0 0 .4rem;letter-spacing:-.02em}
.pm-text{color:var(--body,#44546c);font-size:1rem;margin:0 0 1rem;line-height:1.55}
.pm-price{display:flex;align-items:baseline;justify-content:center;gap:.4rem;font-family:var(--font-head,sans-serif);color:var(--heading,#0f2343);margin-bottom:.25rem}
.pm-price b{font-size:2.6rem;font-weight:800;letter-spacing:-.03em;line-height:1}
.pm-price span{font-weight:600;color:var(--muted,#66758c)}
.pm-sub{font-size:.92rem;color:var(--muted,#66758c);margin:0 0 1.1rem}
.pm-sub s{margin-right:.25rem}
.pm-list{list-style:none;padding:0;margin:0 0 1.2rem;display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem}
.pm-list li{margin:0;font-size:.82rem;font-family:var(--font-head,sans-serif);font-weight:700;color:var(--navy,#14315e);background:#f0f5fa;border-radius:999px;padding:.35rem .7rem}
.pm-cta{width:100%}
.pm-later{all:unset;cursor:pointer;display:inline-block;margin-top:.85rem;font-size:.9rem;color:var(--muted,#66758c);text-decoration:underline;text-underline-offset:3px}
.pm-later:focus-visible{outline:3px solid #6aa8de;outline-offset:2px;border-radius:4px}
html.pm-lock,html.pm-lock body{overflow:hidden}
@media (max-width:420px){.pm-dialog{padding:1.4rem 1.15rem 1.2rem}.pm-img{height:170px}.pm-img img{max-height:160px}.pm-title{font-size:1.35rem}.pm-price b{font-size:2.2rem}}

/* ---------- Info toast ---------- */
.it-toast{position:fixed;left:20px;bottom:20px;z-index:900;width:min(340px,calc(100vw - 32px));display:flex;gap:.8rem;align-items:center;background:#fff;border:1px solid var(--line,#dce6f0);border-radius:16px;box-shadow:0 18px 40px -16px rgba(15,35,67,.35),0 2px 6px rgba(15,35,67,.08);padding:.8rem 2.4rem .8rem .8rem;opacity:0;transform:translateY(14px);pointer-events:none;transition:opacity .35s ease,transform .35s ease}
.it-toast.is-visible{opacity:1;transform:none;pointer-events:auto}
.it-thumb{flex:none;width:52px;height:52px;border-radius:12px;background:#eef5fb;display:grid;place-items:center;position:relative}
.it-thumb img{max-height:46px;width:auto}
.it-check{position:absolute;right:-6px;bottom:-6px;width:22px;height:22px;border-radius:50%;background:var(--green,#1b7f45);color:#fff;display:grid;place-items:center;border:2px solid #fff}
.it-check svg{width:12px;height:12px}
.it-body{min-width:0;font-size:.9rem;line-height:1.35;color:var(--body,#44546c)}
.it-body strong{display:block;font-family:var(--font-head,sans-serif);font-weight:700;color:var(--heading,#0f2343);font-size:.95rem;margin-bottom:.15rem}
.it-body a{font-family:var(--font-head,sans-serif);font-weight:700;color:var(--green,#1b7f45);font-size:.85rem;text-decoration:none}
.it-body a:hover{text-decoration:underline}
.it-close{position:absolute;top:6px;right:6px;width:28px;height:28px;border:0;border-radius:50%;background:transparent;color:#7b8aa0;cursor:pointer;display:grid;place-items:center}
.it-close:hover{background:#f0f5fa;color:var(--navy,#14315e)}
.it-close svg{width:14px;height:14px}
@media (max-width:560px){.it-toast{left:12px;bottom:12px;width:calc(100vw - 24px);max-width:360px}}
@media (prefers-reduced-motion:reduce){.pm-overlay,.pm-dialog,.it-toast{transition:opacity .01ms!important;transform:none!important}}
.pm-dialog:focus{outline:none}
