.coupon-offer.coupon-detail-offer { margin-top: 6px; color: #1a7746; font-size: 17px; }
.coupon-use-button { gap: 8px; }
.coupon-use-button svg { width: 18px; height: 18px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.coupon-use-note { margin: -8px 0 16px; color: #d0243c; font-size: 14px; font-weight: 700; }
.coupon-detail-page .business-link-section { margin-top: 44px; }
body.coupon-dialog-open { overflow: hidden; }
.coupon-dialog { width: min(540px, calc(100% - 28px)); max-height: calc(100dvh - 40px); padding: 0; border: 0; border-radius: 24px; color: #21352d; background: #fff; box-shadow: 0 24px 100px #102d3855; overscroll-behavior: contain; }
.coupon-dialog::backdrop { background: #142f2ac2; backdrop-filter: blur(5px); }
.coupon-dialog[open] { animation: coupon-dialog-appear 500ms ease-out both; }
.coupon-dialog[open]::backdrop { animation: coupon-backdrop-appear 500ms ease-out both; }
@keyframes coupon-dialog-appear { from { opacity: 0; } to { opacity: 1; } }
@keyframes coupon-backdrop-appear { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .coupon-dialog[open], .coupon-dialog[open]::backdrop { animation: none; } }
.coupon-dialog [hidden] { display: none !important; }
.coupon-dialog-shell { position: relative; }
.coupon-dialog-header { padding: 28px 52px 22px 28px; background: linear-gradient(120deg, #e6f5ea, #f3faf5); border-bottom: 1px solid #d9eadd; }
.coupon-dialog-eyebrow { color: #418165; font-size: 11px; font-weight: 800; letter-spacing: .18em; }
.coupon-dialog-header h2 { margin: 8px 0 4px; font-size: 23px; line-height: 1.5; }
.coupon-dialog-header p { margin: 0; color: #526e60; font-size: 14px; overflow-wrap: anywhere; }
.coupon-dialog[data-screen="present"] .coupon-dialog-header p { margin-top: 10px; color: #235e43; font-size: 21px; font-weight: 800; line-height: 1.5; }
.coupon-dialog-close { position: absolute; top: 18px; right: 18px; display: grid; place-items: center; width: 34px; height: 34px; padding: 7px; border: 1px solid #d1e2d6; border-radius: 50%; background: #ffffffc9; color: #365c48; cursor: pointer; }
.coupon-dialog-close svg, .coupon-issue-button svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.coupon-dialog-close svg { display: block; transform: translate(-1px, -1px); }
.coupon-ticket-content { padding: 24px 28px; overflow-wrap: anywhere; }
.coupon-section-label { font-size: 12px; font-weight: 700; color: #57806a; }
.coupon-ticket-benefit { margin: 8px 0; font-size: 30px; font-weight: 800; color: #247748; line-height: 1.4; }
.coupon-ticket-content h3 { margin: 8px 0; font-size: 18px; }
.coupon-ticket-description { font-weight: 600; white-space: pre-wrap; }
.coupon-ticket-conditions { margin-top: 20px; padding: 16px; border-radius: 12px; background: #f5f7f5; }
.coupon-ticket-conditions h3 { margin: 0 0 7px; font-size: 13px; color: #526b5a; }
.coupon-ticket-conditions p { margin: 0; font-size: 14px; font-weight: 600; white-space: pre-wrap; }
.coupon-dialog-bottom { padding: 20px 28px 28px; border-top: 2px dashed #d6e4db; text-align: center; }
.coupon-dialog-bottom > p { margin: 0 0 14px; font-size: 14px; }
.coupon-issue-note { color: #68796e; font-size: 12px !important; line-height: 1.8; }
.coupon-issue-note.coupon-issue-warning { color: #c33e3e; font-size: 13px !important; }
.coupon-dialog .coupon-issue-button { width: 100%; gap: 9px; margin-top: 8px; border-radius: 12px; padding: 16px; background: linear-gradient(120deg, #268c57, #1d6d49); box-shadow: 0 5px 12px #237b4c24; }
.coupon-issue-button:disabled { opacity: .55; cursor: wait; }
.coupon-presentation { padding: 26px 22px; text-align: center; background: radial-gradient(ellipse at top, #f1fbf2, white 65%); }
.coupon-presentation-logo { display: block; width: 160px; height: auto; margin: 0 auto 18px; }
.coupon-present-instruction { margin: 0 0 15px; color: #247748; font-size: 18px; font-weight: 800; }
.coupon-valid-badge { display: inline-flex; align-items: center; gap: 7px; padding: 4px 14px; border-radius: 20px; color: #247748; background: #e3f5e8; font-size: 12px; font-weight: 700; }
.coupon-valid-badge span { width: 7px; height: 7px; border-radius: 50%; background: #39a768; }
.coupon-presentation .coupon-ticket-content { margin: 20px 0; padding: 20px 12px; border-top: 2px dashed #d6e4db; border-bottom: 2px dashed #d6e4db; }
.coupon-countdown-box { padding: 16px; border: 1px solid #d6e8db; border-radius: 16px; background: #f4faf5; }
.coupon-countdown-box p { margin: 0; color: #5a7563; font-size: 12px; }
.coupon-countdown { display: block; font-size: 42px; letter-spacing: .04em; font-variant-numeric: tabular-nums; line-height: 1.5; color: #237347; }
.coupon-expired, .coupon-dialog-error, .coupon-dialog-loading { padding: 36px 28px; text-align: center; }
.coupon-expired-icon { font-size: 38px; }
.coupon-expired h3 { color: #97534b; }
.coupon-dialog-error { color: #9d3e35; }
.coupon-dialog-error a { display: block; margin: 12px; }
@media (max-width: 480px) { .coupon-dialog { border-radius: 20px; } .coupon-dialog-header { padding-left: 22px; } .coupon-ticket-content, .coupon-dialog-bottom { padding-left: 22px; padding-right: 22px; } .coupon-present-instruction { font-size: 16px; } }
