/* Vesuvio · public offers page and newsletter confirmation */
.offers-page{margin:0;min-height:100vh;background:var(--flour);color:var(--soot);font-family:var(--font-ui)}
.of-top{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px clamp(16px,4vw,40px);background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--stone)}
.of-brand{display:flex;align-items:center;color:inherit;text-decoration:none}
.of-brand img{height:52px;mix-blend-mode:multiply}
.of-brand .brand-name{font-family:var(--font-display);font-size:22px;font-weight:700}
.of-back{padding:10px 16px;border-radius:999px;background:var(--flour);color:inherit;font-weight:600;text-decoration:none}
.of-main{width:min(100% - 32px,1100px);margin:0 auto;padding:clamp(24px,5vw,56px) 0 48px;display:grid;gap:28px}
.of-hero h1{margin:4px 0 10px;font-family:var(--font-display);font-size:clamp(36px,6vw,58px);line-height:1.05}
.of-hero p{margin:0;max-width:640px;color:var(--ash);font-size:17px;line-height:1.5}
.of-kicker{margin:0;font-family:var(--font-display);font-style:italic;color:var(--brick);font-size:18px}
.of-empty{padding:24px;border-radius:20px;background:var(--white);color:var(--ash)}
.of-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:18px}
.of-card{display:flex;flex-direction:column;border-radius:22px;background:var(--white);overflow:hidden;box-shadow:var(--shadow-1)}
.of-card.is-later{opacity:.86}
.of-photo{position:relative;aspect-ratio:16/10;background:var(--stone)}
.of-photo img{width:100%;height:100%;object-fit:cover;display:block}
.of-photo-plain{aspect-ratio:auto;min-height:96px;background:linear-gradient(135deg,var(--brick),#e6462b)}
.of-badge{position:absolute;left:14px;bottom:14px;padding:8px 14px;border-radius:999px;background:var(--brand-accent,var(--brick));color:var(--brand-ink,#fff);font-weight:800;font-size:18px;box-shadow:var(--shadow-2)}
.of-body{flex:1;display:flex;flex-direction:column;gap:8px;padding:18px 20px 20px}
.of-state{margin:0;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ok-text)}
.is-later .of-state{color:var(--warn-text)}
.of-body h2{margin:0;font-family:var(--font-display);font-size:24px;line-height:1.15}
.of-scope{margin:0;font-weight:600}
.of-desc{margin:0;color:var(--ash);line-height:1.5}
.of-price{margin:0;font-size:18px}
.of-price s{color:var(--ash)}
.of-price b{color:var(--brick)}
.of-valid{margin:0;font-size:14px;color:var(--ash)}
.of-cta{margin-top:auto;align-self:flex-start;padding:12px 18px;border-radius:999px;background:var(--soot);color:#fff;font-weight:700;text-decoration:none}
.of-terms{margin:0;font-size:13px;color:var(--ash)}
.of-news{display:grid;gap:10px;padding:clamp(20px,4vw,32px);border-radius:24px;background:var(--white);box-shadow:var(--shadow-1)}
.of-news h2{margin:0;font-family:var(--font-display);font-size:28px}
.of-news>p{margin:0;color:var(--ash);line-height:1.5}
.of-form{display:grid;gap:12px;max-width:560px}
.of-field{display:grid;gap:6px;font-weight:600;font-size:14px}
.of-field input{min-height:48px;padding:10px 14px;border:1.5px solid var(--stone-2);border-radius:12px;font:inherit}
.of-check{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.45;color:var(--ash)}
.of-check input{margin-top:3px;width:18px;height:18px;flex:none}
.of-submit{justify-self:start;min-height:48px;padding:0 24px;border:0;border-radius:999px;background:var(--brand-accent,var(--brick));color:var(--brand-ink,#fff);font:inherit;font-weight:700;cursor:pointer}
.of-submit:disabled{opacity:.5}
.of-msg{margin:0;font-weight:600}
.of-msg.is-ok{color:var(--ok-text)}
.of-msg.is-bad{color:var(--brick)}
.of-foot{padding:24px 16px 40px;text-align:center;color:var(--ash);font-size:14px}
.of-ticket{width:min(100% - 32px,520px);margin:clamp(32px,8vw,80px) auto;padding:clamp(22px,5vw,34px);border-radius:24px;background:var(--white);box-shadow:var(--shadow-1);display:grid;gap:14px}
.of-ticket h1{margin:0;font-family:var(--font-display);font-size:34px;line-height:1.1}
.of-ticket p{margin:0;color:var(--ash);line-height:1.55}
.of-ticket form{margin:0}
