@charset "utf-8";

/* 제작혜택 subpage — plan1/benefits.html
   content after website.co.kr/benefits/index.php; hero is a printed benefit slip (4,000,000 → 0원), body is a price-list ledger */
.page-bn { --bn-blue: #1677c9; --bn-paper: #fffdf8; --bn-stamp: #d9304f; }

/* ---------- sub visual: flat brand band, left headline, right receipt printing out of a slot ---------- */
.subv.bn-hero { position: relative; padding: calc(var(--header-h) + clamp(48px, 5vw, 96px)) 0 0; overflow: hidden; background: var(--bn-hero-bg); color: #fff; }
.page-bn { --bn-hero-bg: radial-gradient(60% 80% at 85% 10%, rgba(120, 210, 255, .45), rgba(120, 210, 255, 0) 70%), linear-gradient(120deg, #1677c9 0%, #2392e0 55%, #3eaaea 100%); }
html.has-bgflow .page-bn #main > section.bn-hero { background: var(--bn-hero-bg); }
.page-bn .header.is-dark:not(.is-scrolled):not(.is-menu) { background: transparent; -webkit-backdrop-filter: none; backdrop-filter: none; }
.bn-hero::after { content: ""; position: absolute; inset: auto 0 0; height: 1px; background: rgba(255, 255, 255, .18); }
.bn-hero__in { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 460px); gap: clamp(40px, 6vw, 120px); align-items: end; }
.bn-hero__copy { position: relative; padding-bottom: clamp(64px, 6vw, 112px); word-break: keep-all; }
.bn-hero__copy > * { animation: subv-in .8s var(--ease) both; }
.bn-hero__copy > :nth-child(2) { animation-delay: .08s; }
.bn-hero__copy > :nth-child(n+3) { animation-delay: .16s; }
.bn-hero__eyebrow { font-size: 16px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: rgba(255, 255, 255, .7); }
.bn-hero__title { margin-top: 20px; font-size: clamp(40px, 4.2vw, 76px); font-weight: 700; line-height: 1.2; letter-spacing: -.045em; }
.bn-hero__title b { font-weight: 700; color: #ffe27a; }
.bn-hero__ko { display: table; margin-bottom: 24px; padding: 7px 16px; border: 1px solid rgba(255, 255, 255, .5); border-radius: 999px; font-size: 17px; font-weight: 700; line-height: 1.3; letter-spacing: -.02em; }
.bn-hero__desc { margin-top: clamp(24px, 2.4vw, 40px); font-size: clamp(18px, 1.3vw, 22px); font-weight: 500; line-height: 1.65; letter-spacing: -.03em; color: rgba(255, 255, 255, .86); }
.bn-hero__desc strong { font-weight: 700; color: #fff; }
.bn-hero__btns { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 36px; }

/* 3d icons sit in the empty space right of / above the copy, never over the text */
.bn-hero__deco { position: absolute; inset: 0; pointer-events: none; }
.bn-hero__ico { position: absolute; height: auto; filter: drop-shadow(0 18px 24px rgba(6, 50, 110, .28)); animation: bn-float 6s ease-in-out infinite; }
.bn-hero__ico--gift { top: -24px; right: 2%; width: clamp(120px, 11vw, 200px); --r: 8deg; }
.bn-hero__ico--coupon { top: -64px; left: 38%; width: clamp(80px, 6.4vw, 120px); --r: -14deg; animation-delay: -2s; }
.bn-hero__ico--coin { right: 6%; bottom: calc(clamp(64px, 6vw, 112px) + 4px); width: clamp(64px, 5.2vw, 96px); --r: -6deg; animation-delay: -4s; }
@keyframes bn-float { 0%, 100% { transform: translateY(0) rotate(var(--r)); } 50% { transform: translateY(-12px) rotate(var(--r)); } }

/* receipt: slot bar on top, paper slides down from behind it, zigzag tear at the bottom */
.bn-slip { position: relative; padding: 0 22px clamp(48px, 5vw, 80px); font-variant-numeric: tabular-nums; }
.bn-slip::before { content: ""; position: relative; z-index: 2; display: block; height: 22px; margin: 0 -22px; border-radius: 11px; background: #0d4f8a; box-shadow: inset 0 -6px 0 rgba(0, 0, 0, .22); }
.bn-slip__clip { margin-top: -11px; overflow: hidden; filter: drop-shadow(0 28px 36px rgba(4, 30, 60, .35)); }
.bn-slip__paper { position: relative; padding: 40px 32px 52px; background: var(--bn-paper); color: var(--ink); -webkit-mask: conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) 50% / 18px 100%; mask: conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) 50% / 18px 100%; animation: bn-print 1.6s cubic-bezier(.45, .05, .25, 1) .25s both; }
.bn-slip__head { padding-bottom: 20px; border-bottom: 1px dashed #b9bec6; text-align: center; }
.bn-slip__brand { font-size: 22px; font-weight: 800; letter-spacing: -.02em; }
.bn-slip__doc { margin-top: 4px; font-size: 15px; font-weight: 600; color: var(--ink-2); }
.bn-slip__meta { display: flex; justify-content: space-between; margin-top: 18px; font-size: 14px; color: var(--mute); }
.bn-slip__table { width: 100%; margin-top: 8px; border-collapse: collapse; }
.bn-slip__table th, .bn-slip__table td { padding: 11px 0; font-size: 15px; text-align: right; vertical-align: baseline; }
.bn-slip__table thead th { padding-top: 12px; font-size: 13px; font-weight: 600; color: var(--mute); }
.bn-slip__table th:first-child, .bn-slip__table tbody th { text-align: left; }
.bn-slip__table tbody th { font-weight: 600; color: var(--ink); word-break: keep-all; }
.bn-slip__table tbody th i { margin-right: 8px; font-style: normal; font-weight: 700; color: var(--brand); }
.bn-slip__table td:nth-child(2) { width: 44px; color: var(--mute); }
.bn-slip__table td:last-child { width: 96px; font-weight: 600; }
.bn-slip__table tbody tr { animation: subv-in .5s var(--ease) both; }
.bn-slip__table tbody tr:nth-child(1) { animation-delay: .9s; }
.bn-slip__table tbody tr:nth-child(2) { animation-delay: 1s; }
.bn-slip__table tbody tr:nth-child(3) { animation-delay: 1.1s; }
.bn-slip__table tbody tr:nth-child(4) { animation-delay: 1.2s; }
.bn-slip__table tfoot th, .bn-slip__table tfoot td { padding-top: 14px; border-top: 1px dashed #b9bec6; font-size: 16px; font-weight: 800; color: var(--ink); }
.bn-slip__pay { margin-top: 6px; padding-top: 6px; border-top: 2px solid var(--ink); }
.bn-slip__pay > div { display: flex; justify-content: space-between; align-items: baseline; padding: 9px 0; font-size: 15px; }
.bn-slip__pay dt { color: var(--ink-2); }
.bn-slip__pay dd { font-weight: 600; color: var(--bn-stamp); }
.bn-slip__pay .is-total { padding-top: 12px; }
.bn-slip__pay .is-total dt { font-size: 17px; font-weight: 800; color: var(--ink); }
.bn-slip__pay .is-total dd { font-size: 18px; font-weight: 800; color: var(--ink); }
.bn-slip__pay .is-total b { margin-right: 2px; font-size: 44px; line-height: 1; letter-spacing: -.03em; color: var(--brand); }
.bn-slip__stamp { position: absolute; right: 22px; bottom: 34px; display: grid; place-items: center; width: 96px; height: 96px; border: 3px double var(--bn-stamp); border-radius: 50%; font-size: 19px; font-weight: 800; line-height: 1.15; letter-spacing: .02em; text-align: center; color: var(--bn-stamp); background: rgba(255, 253, 248, .78); opacity: .82; transform: rotate(-14deg); animation: bn-stamp .45s cubic-bezier(.3, 1.6, .6, 1) 1.75s both; pointer-events: none; }
.bn-slip__foot { margin-top: 22px; text-align: center; }
.bn-slip__bar { display: block; height: 40px; background: repeating-linear-gradient(90deg, var(--ink) 0 2px, transparent 2px 4px, var(--ink) 4px 5px, transparent 5px 8px, var(--ink) 8px 11px, transparent 11px 12px, var(--ink) 12px 13px, transparent 13px 16px); opacity: .85; }
.bn-slip__foot p { margin-top: 10px; font-size: 13px; color: var(--mute); }
@keyframes bn-print { from { transform: translateY(-100%); } to { transform: none; } }
@keyframes bn-stamp { from { opacity: 0; transform: rotate(-14deg) scale(1.8); } to { opacity: .82; transform: rotate(-14deg) scale(1); } }

/* ---------- common ---------- */
.page-bn .sec { padding: var(--sp-sec) 0; }
.bn-eyebrow { margin-bottom: 14px; font-size: 16px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--brand); }
.bn-head .head__title { word-break: keep-all; }
.bn-head .head__title em { font-style: normal; color: var(--brand); }
.bn-btn--white { background: #fff; color: var(--brand-deep); }
.bn-btn--white:hover { background: var(--ink); color: #fff; }
.bn-btn--ghost { border: 1px solid rgba(255, 255, 255, .5); color: #fff; }
.bn-btn--ghost:hover { border-color: #fff; background: #fff; color: var(--ink); }

/* ---------- 20 benefits summary: 4-col index, each item jumps to its ledger row ---------- */
.page-bn .bn-sum { padding-bottom: 0; }
.bn-sum__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px 40px; margin-bottom: clamp(40px, 4vw, 64px); word-break: keep-all; }
.bn-sum__title { font-size: var(--sp-h2); font-weight: 700; line-height: 1.3; letter-spacing: -.04em; }
.bn-sum__desc { font-size: 18px; line-height: 1.75; color: var(--mute); }
.bn-sum__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: clamp(24px, 2.4vw, 40px); padding-top: 12px; border-top: 2px solid var(--ink); list-style: none; }
.bn-sum__grid a { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 6px 0; height: 100%; padding: 22px 0; border-bottom: 1px solid var(--line); word-break: keep-all; }
.bn-sum__grid i { grid-row: span 2; font-size: 14px; font-style: normal; font-weight: 700; line-height: 1.6; color: var(--brand); font-variant-numeric: tabular-nums; }
.bn-sum__grid b { font-size: 17px; font-weight: 700; line-height: 1.45; letter-spacing: -.03em; transition: color .25s var(--ease); }
.bn-sum__grid span { font-size: 14px; color: var(--mute); }
.bn-sum__grid a:hover b { color: var(--brand); }
.bn-sum__note { margin-top: 20px; font-size: 14px; line-height: 1.7; color: var(--mute); }

/* ---------- 20 benefits ledger ---------- */
.bn-list__top { display: grid; gap: 32px; margin-bottom: clamp(48px, 4.4vw, 72px); }
.bn-list__top .head { margin-bottom: 0; }
.bn-tabs ul { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; }
.bn-tabs a { display: inline-flex; align-items: center; gap: 8px; height: 46px; padding: 0 18px; border: 1px solid var(--line-2); border-radius: 999px; font-size: 16px; font-weight: 600; white-space: nowrap; transition: border-color .25s var(--ease), background .25s var(--ease), color .25s var(--ease); }
.bn-tabs a i { font-style: normal; font-weight: 700; color: var(--brand); transition: color .25s var(--ease); }
.bn-tabs a:hover { border-color: var(--ink); background: var(--ink); color: #fff; }
.bn-tabs a:hover i { color: var(--brand-light); }

.bn-cat { display: grid; grid-template-columns: var(--row-l) var(--row-r); gap: 40px; align-items: start; padding-top: 28px; border-top: 2px solid var(--ink); scroll-margin-top: calc(var(--header-h) + 24px); }
.bn-cat + .bn-cat { margin-top: clamp(64px, 6vw, 104px); }
.bn-cat__head { position: sticky; top: var(--stick); word-break: keep-all; }
.bn-cat__no { font-size: clamp(64px, 5.6vw, 104px); font-weight: 800; line-height: .9; letter-spacing: -.05em; color: var(--brand); }
.bn-cat__title { margin-top: 20px; font-size: clamp(26px, 2vw, 34px); font-weight: 700; letter-spacing: -.035em; }
.bn-cat__sum { display: flex; align-items: center; gap: 10px; margin-top: 16px; font-size: 17px; color: var(--mute); }
.bn-cat__sum b { font-weight: 700; color: var(--ink); }
.bn-cat__sum span + span::before { content: ""; display: inline-block; width: 1px; height: 13px; margin-right: 10px; background: var(--line-2); vertical-align: -1px; }

.bn-items { list-style: none; }
.bn-item { --bn-t: clamp(20px, 1.45vw, 24px); display: grid; grid-template-columns: calc(var(--bn-t) * 1.2) minmax(0, 1fr) 190px; gap: 20px; align-items: center; padding: 28px 0; border-bottom: 1px solid var(--line); word-break: keep-all; scroll-margin-top: calc(var(--header-h) + 24px); }
.bn-item:first-child { padding-top: 4px; }
.bn-item__ico { align-self: start; width: calc(var(--bn-t) * 1.2); height: calc(var(--bn-t) * 1.2); margin-top: calc(var(--bn-t) * .05); fill: none; stroke-width: 1; stroke-linecap: round; stroke-linejoin: round; }
.bn-item__ico .bg { fill: #d3e8fa; }
.bn-item__ico .ln { stroke: var(--brand); }
.bn-item__title { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; font-size: var(--bn-t); font-weight: 700; line-height: 1.3; letter-spacing: -.03em; }
.bn-item__title small { font-size: 15px; font-weight: 500; letter-spacing: -.01em; color: var(--mute); }
.bn-item__desc { margin-top: 8px; font-size: 17px; line-height: 1.65; color: var(--ink-2); }
.bn-item__val { display: grid; justify-items: end; gap: 6px; text-align: right; }
.bn-item__term { padding: 3px 10px; border-radius: 6px; background: var(--brand-soft); font-size: 14px; font-weight: 700; color: var(--brand-deep); }
.bn-item__price { display: flex; align-items: baseline; gap: 10px; font-variant-numeric: tabular-nums; }
.bn-item__price del { font-size: 16px; color: var(--mute); text-decoration-thickness: 1.5px; }
.bn-item__price b { font-size: 20px; font-weight: 800; letter-spacing: -.03em; color: var(--brand); }
.bn-list__note { margin-top: 32px; font-size: 16px; line-height: 1.7; color: var(--mute); }

/* running cost: maintenance-cost message pulled forward on this page */
.bn-cost__vs { font-style: normal; color: var(--brand); }
.bn-cost__note { margin-top: 24px; word-break: keep-all; }
.bn-cost__lead { font-size: 22px; font-weight: 700; line-height: 1.45; letter-spacing: -.035em; color: var(--ink); }
.bn-cost__lead strong { color: var(--brand); }
.bn-cost__note .benefit-cost__desc { margin-top: 10px; color: var(--ink-2); }
.bn-cost__note .benefit-cost__desc strong { font-weight: 700; color: var(--ink); }
.bn-cost__perks { display: flex; flex-wrap: wrap; gap: 8px 28px; margin-top: 20px; padding-top: 18px; border-top: 1px dashed #b9bec6; list-style: none; }
.bn-cost__perks li { position: relative; padding-left: 28px; font-size: 16px; line-height: 1.55; color: var(--ink-2); }
.bn-cost__perks li::before { content: ""; position: absolute; left: 0; top: 2px; width: 18px; height: 18px; border: 1.5px solid var(--line-2); border-radius: 4px; background: #fff; }
.bn-cost__perks li::after { content: ""; position: absolute; left: 6px; top: 4px; width: 6px; height: 10px; border: solid var(--brand); border-width: 0 2px 2px 0; transform: rotate(45deg); }
.bn-cost__perks b { font-weight: 700; color: var(--ink); }

/* ---------- event: dark band, copy left, compare memo right ---------- */
.page-bn .bn-event { background: var(--sp-dark); color: #fff; }
html.has-bgflow .page-bn #main > section.bn-event { background-color: var(--sp-dark); }
.bn-event__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(40px, 5vw, 96px); align-items: center; }
.bn-event .bn-eyebrow { color: var(--brand-light); }
.bn-event .head__title { color: #fff; word-break: keep-all; }
.bn-event .head__title em { font-style: normal; color: #ffe27a; }
.bn-event__desc { margin-top: 24px; font-size: 18px; line-height: 1.75; color: rgba(255, 255, 255, .78); word-break: keep-all; }
.bn-event__btns { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 36px; }
.bn-memo { padding: clamp(28px, 2.8vw, 44px); border-radius: var(--sp-r); background: var(--bn-paper); color: var(--ink); word-break: keep-all; }
.bn-memo__label { display: inline-grid; place-items: center; height: 28px; padding: 0 12px; border-radius: 6px; background: var(--ink); font-size: 13px; font-weight: 800; letter-spacing: .06em; color: #fff; }
.bn-memo__title { margin-top: 16px; font-size: clamp(22px, 1.7vw, 28px); font-weight: 700; line-height: 1.45; letter-spacing: -.035em; }
.bn-memo__title b { color: var(--brand); }
.bn-memo__desc { margin-top: 12px; font-size: 17px; line-height: 1.7; color: var(--ink-2); }
.bn-memo__cap { margin-top: 28px; padding-top: 20px; border-top: 1px dashed #b9bec6; font-size: 15px; font-weight: 700; color: var(--mute); }
.bn-memo__list { margin-top: 6px; list-style: none; }
.bn-memo__list li { position: relative; padding: 12px 0 12px 32px; font-size: 17px; line-height: 1.55; color: var(--ink-2); }
.bn-memo__list li::before { content: ""; position: absolute; left: 0; top: 14px; width: 18px; height: 18px; border: 1.5px solid var(--line-2); border-radius: 4px; background: #fff; }
.bn-memo__list li::after { content: ""; position: absolute; left: 6px; top: 16px; width: 6px; height: 10px; border: solid var(--brand); border-width: 0 2px 2px 0; transform: rotate(45deg); }
.bn-memo__list b { font-weight: 700; color: var(--ink); }

/* ---------- consult: hero-blue band, centred head, benefit coupon (dark stub + paper form, notched perforation) ---------- */
.page-bn .bn-apply { background: var(--bn-hero-bg); color: #fff; }
.page-bn #consult { padding-top: var(--sp-sec); }
html.has-bgflow .page-bn #main > section.bn-apply { background: var(--bn-hero-bg); }
.bn-apply__head { text-align: center; word-break: keep-all; }
.bn-apply .bn-eyebrow { color: rgba(255, 255, 255, .78); }
.bn-apply .head__title { color: #fff; }
.bn-apply__lead { margin-top: 18px; font-size: 18px; line-height: 1.7; color: rgba(255, 255, 255, .85); }
.bn-ticket { --notch: 18px; display: grid; grid-template-columns: minmax(0, 360px) minmax(0, 1fr); max-width: 1160px; margin: clamp(40px, 4vw, 64px) auto 0; filter: drop-shadow(0 28px 36px rgba(4, 30, 60, .32)); word-break: keep-all; }
.bn-ticket__stub { position: relative; display: flex; flex-direction: column; justify-content: center; padding: clamp(32px, 3vw, 48px); border-radius: 20px 0 0 20px; background: var(--ink); color: #fff; -webkit-mask: radial-gradient(circle var(--notch) at 100% 0, #0000 98%, #000) top / 100% 51% no-repeat, radial-gradient(circle var(--notch) at 100% 100%, #0000 98%, #000) bottom / 100% 51% no-repeat; mask: radial-gradient(circle var(--notch) at 100% 0, #0000 98%, #000) top / 100% 51% no-repeat, radial-gradient(circle var(--notch) at 100% 100%, #0000 98%, #000) bottom / 100% 51% no-repeat; }
.bn-ticket__label { font-size: 13px; font-weight: 800; letter-spacing: .14em; color: rgba(255, 255, 255, .55); }
.bn-ticket__value { margin-top: 18px; font-size: 20px; font-weight: 700; color: #ffe27a; font-variant-numeric: tabular-nums; }
.bn-ticket__value b { margin-right: 4px; font-size: clamp(64px, 5.4vw, 88px); font-weight: 800; line-height: 1; letter-spacing: -.05em; }
.bn-ticket__desc { margin-top: 16px; font-size: 16px; line-height: 1.6; color: rgba(255, 255, 255, .75); }
.bn-ticket__stamp { position: absolute; right: 28px; top: 28px; display: grid; place-items: center; width: 76px; height: 76px; border: 3px double #ff6b85; border-radius: 50%; font-size: 14px; font-weight: 800; line-height: 1.15; text-align: center; color: #ff6b85; opacity: .9; transform: rotate(-14deg); }
.bn-ticket__form { position: relative; padding: clamp(32px, 3vw, 48px) clamp(28px, 3.4vw, 56px); border-radius: 0 20px 20px 0; background: var(--bn-paper); color: var(--ink); -webkit-mask: radial-gradient(circle var(--notch) at 0 0, #0000 98%, #000) top / 100% 51% no-repeat, radial-gradient(circle var(--notch) at 0 100%, #0000 98%, #000) bottom / 100% 51% no-repeat; mask: radial-gradient(circle var(--notch) at 0 0, #0000 98%, #000) top / 100% 51% no-repeat, radial-gradient(circle var(--notch) at 0 100%, #0000 98%, #000) bottom / 100% 51% no-repeat; }
.bn-ticket__form::before { content: ""; position: absolute; left: 0; top: calc(var(--notch) + 10px); bottom: calc(var(--notch) + 10px); border-left: 2px dashed #c3c8cf; }
.bn-ticket__title { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding-bottom: 18px; border-bottom: 2px solid var(--ink); font-size: 24px; font-weight: 800; letter-spacing: -.03em; }
.bn-ticket__title small { font-size: 14px; font-weight: 600; letter-spacing: 0; color: var(--mute); }
.bn-ticket__fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px; }
.bn-ticket__row { display: flex; align-items: center; gap: 16px; border-bottom: 1px dashed #b9bec6; transition: border-color .25s var(--ease); }
.bn-ticket__row:focus-within { border-bottom-style: solid; border-bottom-color: var(--brand); }
.bn-ticket__row label { flex: none; width: 52px; font-size: 15px; font-weight: 700; color: var(--ink-2); }
.bn-ticket__row input { flex: 1; min-width: 0; height: 68px; border: 0; background: none; font-size: 18px; font-weight: 600; color: var(--ink); }
.bn-ticket__row input::placeholder { font-weight: 400; color: #9aa1aa; }
.bn-ticket__row input:focus { outline: 0; }
.bn-ticket__foot { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-top: 28px; }
.bn-ticket__agree { display: flex; align-items: center; gap: 14px; font-size: 15px; }
.bn-ticket__agree label { display: flex; align-items: center; gap: 8px; cursor: pointer; }
.bn-ticket__agree input { width: 18px; height: 18px; accent-color: var(--brand); }
.bn-ticket__view { font-size: 15px; color: var(--mute); text-decoration: underline; text-underline-offset: 3px; }
.bn-ticket__submit { flex: none; min-width: 200px; }
.bn-ticket .quick__msg { margin-top: 14px; }
@media (max-width: 1100px) {
  .bn-ticket { grid-template-columns: minmax(0, 1fr); max-width: 640px; }
  .bn-ticket__stub { border-radius: 20px 20px 0 0; -webkit-mask: radial-gradient(circle var(--notch) at 0 100%, #0000 98%, #000) left / 51% 100% no-repeat, radial-gradient(circle var(--notch) at 100% 100%, #0000 98%, #000) right / 51% 100% no-repeat; mask: radial-gradient(circle var(--notch) at 0 100%, #0000 98%, #000) left / 51% 100% no-repeat, radial-gradient(circle var(--notch) at 100% 100%, #0000 98%, #000) right / 51% 100% no-repeat; }
  .bn-ticket__desc br { display: none; }
  .bn-ticket__form { border-radius: 0 0 20px 20px; -webkit-mask: radial-gradient(circle var(--notch) at 0 0, #0000 98%, #000) left / 51% 100% no-repeat, radial-gradient(circle var(--notch) at 100% 0, #0000 98%, #000) right / 51% 100% no-repeat; mask: radial-gradient(circle var(--notch) at 0 0, #0000 98%, #000) left / 51% 100% no-repeat, radial-gradient(circle var(--notch) at 100% 0, #0000 98%, #000) right / 51% 100% no-repeat; }
  .bn-ticket__form::before { inset: 0 calc(var(--notch) + 10px) auto; border-left: 0; border-top: 2px dashed #c3c8cf; }
}
@media (max-width: 768px) {
  .bn-apply__lead { font-size: 16px; }
  .bn-apply__lead br { display: none; }
  .bn-ticket__stub { padding: 28px 24px; }
  .bn-ticket__value b { font-size: 56px; }
  .bn-ticket__stamp { right: 20px; top: 20px; width: 64px; height: 64px; font-size: 12px; }
  .bn-ticket__form { padding: 28px 20px; }
  .bn-ticket__title { flex-direction: column; gap: 4px; font-size: 22px; }
  .bn-ticket__fields { grid-template-columns: minmax(0, 1fr); }
  .bn-ticket__row input { height: 60px; font-size: 16px; }
  .bn-ticket__foot { flex-direction: column; align-items: stretch; gap: 20px; }
  .bn-ticket__agree { justify-content: space-between; }
  .bn-ticket__submit { width: 100%; }
}

/* ---------- responsive ---------- */
@media (max-width: 1280px) {
  .bn-hero__ico--coin { display: none; }
}
@media (max-width: 1100px) {
  .bn-hero__in { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .bn-hero__ico--coin { display: block; right: 4%; }
  .bn-hero__copy { padding-bottom: 48px; }
  .bn-slip { width: min(100%, 460px); }
  .bn-sum__head { flex-direction: column; align-items: flex-start; }
  .bn-sum__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bn-cat { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .bn-cat__head { position: static; display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 18px; }
  .bn-cat__no { font-size: 56px; }
  .bn-cat__title, .bn-cat__sum { margin-top: 0; }
  .bn-cat__sum { flex-basis: 100%; }
  .bn-event__grid { grid-template-columns: minmax(0, 1fr); }
  .bn-memo { max-width: 640px; }
}
@media (max-width: 768px) {
  .subv.bn-hero { padding-top: calc(var(--header-h) + 36px); }
  .bn-hero__eyebrow { font-size: 14px; }
  .bn-hero__ko { margin-bottom: 18px; font-size: 15px; }
  .bn-hero__title { font-size: 40px; }
  .bn-hero__desc { font-size: 17px; }
  .bn-hero__desc br { display: none; }
  .bn-hero__ico--gift { top: -8px; right: 0; width: 84px; }
  .bn-hero__ico--coupon, .bn-hero__ico--coin { display: none; }
  .bn-hero__btns .btn, .bn-event__btns .btn { height: 50px; padding: 0 22px; font-size: 15px; }
  .bn-slip { padding: 0 14px 40px; }
  .bn-slip::before { margin: 0 -14px; }
  .bn-slip__paper { padding: 32px 20px 44px; }
  .bn-slip__table th, .bn-slip__table td { font-size: 14px; }
  .bn-slip__table td:last-child { width: 84px; }
  .bn-slip__stamp { right: 12px; bottom: 30px; width: 80px; height: 80px; font-size: 16px; }
  .bn-slip__pay .is-total b { font-size: 38px; }
  .bn-sum__desc { font-size: 16px; }
  .bn-sum__desc br { display: none; }
  .bn-sum__grid { column-gap: 16px; }
  .bn-sum__grid a { grid-template-columns: minmax(0, 1fr); padding: 18px 0; }
  .bn-sum__grid i { grid-row: auto; font-size: 13px; }
  .bn-sum__grid b { font-size: 15px; }
  .bn-sum__grid span { font-size: 13px; }
  .bn-tabs a { height: 40px; padding: 0 14px; font-size: 14px; }
  .bn-cat__no { font-size: 44px; }
  .bn-cat__title { font-size: 22px; }
  .bn-cat__sum { font-size: 15px; }
  .bn-item { --bn-t: 19px; grid-template-columns: calc(var(--bn-t) * 1.2) minmax(0, 1fr); gap: 10px 12px; padding: 22px 0; }
  .bn-item__title small { flex-basis: 100%; font-size: 14px; }
  .bn-item__desc { font-size: 15px; }
  .bn-item__desc br { display: none; }
  .bn-item__val { grid-column: 2; display: flex; justify-content: flex-start; align-items: center; gap: 10px; }
  .bn-item__price del { font-size: 14px; }
  .bn-item__price b { font-size: 17px; }
  .bn-list__note { font-size: 14px; }
  .bn-cost__lead { font-size: 18px; }
  .bn-cost__note .benefit-cost__desc br { display: none; }
  .bn-cost__perks { flex-direction: column; gap: 8px; }
  .bn-cost__perks li { font-size: 15px; }
  .bn-event__desc { font-size: 16px; }
  .bn-event__desc br { display: none; }
  .bn-memo { padding: 24px 20px; }
  .bn-memo__desc, .bn-memo__list li { font-size: 15px; }
}
@media (prefers-reduced-motion: reduce) {
  .bn-hero__copy > *, .bn-slip__paper, .bn-slip__table tbody tr, .bn-slip__stamp, .bn-hero__ico { animation: none; }
  .bn-hero__ico { transform: rotate(var(--r)); }
  .bn-tabs a { transition: none; }
}
