.om-coupon-wrap { display:flex; justify-content:center; padding: 2.5rem 1rem; }
.om-coupon-card { width:100%; max-width: 980px; background:#fff; border-radius: 20px; box-shadow: 0 10px 30px rgba(0,0,0,.08); overflow:hidden; }
.om-coupon-header { padding: 2rem 2rem 1rem; text-align:center; }
.om-badge { display:inline-block; font-size:.75rem; font-weight:600; letter-spacing:.4px; text-transform:uppercase; background:#111; color:#fff; padding:.35rem .6rem; border-radius:999px; }
.om-coupon-header h2 { margin:.75rem 0 .25rem; font-size: clamp(1.5rem, 3.2vw, 2.1rem); }
.om-subtitle { color:#555; margin:0 auto; max-width: 52ch; }
.om-hero { width:100%; max-height: 360px; overflow:hidden; }
.om-hero img { width:100%; height:100%; object-fit: cover; display:block; }
.om-coupon-form { padding: 1.5rem 2rem 2rem; }
.om-grid { display:grid; grid-template-columns: repeat(12, 1fr); gap: 1rem; }
.om-field { grid-column: span 6; display:flex; flex-direction:column; gap:.35rem; }
.om-field:nth-child(4) { grid-column: span 12; }
.om-field label { font-weight:600; }
.om-field input, .om-field textarea { border:1px solid #e6e6e6; border-radius:12px; padding:.85rem 1rem; font-size:1rem; outline:none; transition:.2s; }
.om-field input:focus, .om-field textarea:focus { border-color:#111; box-shadow: 0 0 0 4px rgba(0,0,0,.05); }
.om-field textarea { resize:vertical; }
.om-field.hp { position:absolute; left:-9999px; top:-9999px; height:0; width:0; overflow:hidden; }
.om-consent { display:flex; flex-direction:column; gap:.5rem; margin-top:.5rem; }
.om-checkbox { display:flex; align-items:flex-start; gap:.5rem; font-size:.95rem; color:#444; }
.om-checkbox input { margin-top:.25rem; }
.om-btn { appearance:none; border:none; background:#111; color:#fff; font-weight:700; padding: .9rem 1.25rem; border-radius: 12px; cursor:pointer; transition:.2s; margin-top:1rem; }
.om-btn:hover { transform: translateY(-1px); box-shadow: 0 10px 18px rgba(0,0,0,.12); }
.om-note { color:#666; font-size:.85rem; margin-top:.5rem; }
.om-feedback { margin-top: .75rem; min-height: 1.25rem; font-weight:600; }
.om-trust { padding: 0 2rem 2rem; color:#666; font-size:.9rem; }
@media (max-width: 768px) { .om-field { grid-column: span 12; } }
