/* 미술관 옆 소개팅 — styles.css v0.3
   결정사 톤 제거 · 삼청동 카페 실사진 팔레트 적용
   2026.08.02 */
:root {
  /* v0.2 — 삼청동 카페 실사진에서 추출한 팔레트 */
  --paper: #f7f4ef;        /* 석회 회벽 — 기본 배경 */
  --paper-deep: #ede8e0;   /* 도장 벽면 */
  --concrete: #c9c4bb;     /* 노출 콘크리트 바닥 */
  --ink: #23211d;          /* 스틸 창틀 */
  --green: #2f3b2c;        /* 은행나무 그늘 */
  --green-deep: #232c21;
  --wine: #7e2e28;         /* 붉은 열매 — 선/점 전용, 큰 면 금지 */
  --terracotta: #b4694b;   /* 토분 */
  --gold: #a8894a;         /* 헤어라인 전용 */
  --line: rgba(35, 33, 29, 0.14);
  --serif: "Gowun Batang", "Nanum Myeongjo", serif;
  --body: "Pretendard", system-ui, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--body); font-weight: 300; font-size: 15px; line-height: 1.85; overflow-x: hidden; word-break: keep-all; text-wrap: pretty; }
body::before { content: ""; position: fixed; inset: 0; opacity: .06; pointer-events: none; z-index: 99; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.22'/%3E%3C/svg%3E"); }
button, input, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
button { color: inherit; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; }
em { color: var(--terracotta); font-style: normal; }

.site-header { align-items: center; color: #fff; display: flex; height: 76px; justify-content: space-between; left: 0; padding: 0 6vw; position: absolute; right: 0; top: 0; z-index: 20; }
.wordmark { align-items: center; display: flex; font-family: var(--serif); font-size: 16px; font-weight: 700; gap: 10px; letter-spacing: -.03em; }
.wordmark-mark { align-items: center; border: 1px solid currentColor; display: flex; font-size: 12px; height: 29px; justify-content: center; width: 29px; }

.wordmark-mark { text-indent: 0; }
.menu-button { background: rgba(20,24,18,.22); border: 1px solid rgba(255,255,255,.45); border-radius: 0; height: 40px; padding: 9px 7px; position: relative; width: 40px; z-index: 2; }
.menu-button span { background: #fff; display: block; height: 1px; margin: 6px auto; transition: .3s; width: 22px; }
.menu-button[aria-expanded="true"] span:first-child { transform: translateY(3.5px) rotate(45deg); }
.menu-button[aria-expanded="true"] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
.site-nav { background: var(--green-deep); display: flex; flex-direction: column; gap: 18px; left: 0; opacity: 0; padding: 100px 7vw 42px; pointer-events: none; position: fixed; right: 0; top: 0; transform: translateY(-16px); transition: .3s; visibility: hidden; z-index: -1; }
.site-nav.open { opacity: 1; pointer-events: auto; transform: none; visibility: visible; }
.site-nav a { border-bottom: 1px solid rgba(255,255,255,.18); font-family: var(--serif); font-size: 20px; padding-bottom: 10px; }
.nav-apply { background: var(--paper); border: 0; color: var(--green); margin-top: 8px; padding: 14px; }
.nav-lookup { background: transparent; border: 0; color: rgba(255,255,255,.72); cursor: pointer; padding: 4px 0; text-align: left; }

.hero { color: white; min-height: 640px; overflow: hidden; position: relative; }
.hero-image { filter: sepia(.18) contrast(.96) saturate(.72); height: 100%; inset: 0; object-fit: cover; object-position: 50% 64%; position: absolute; width: 100%; }
.hero-shade { background: linear-gradient(180deg, rgba(20,24,18,.30) 0%, rgba(20,24,18,.06) 22%, rgba(20,24,18,.58) 50%, rgba(20,24,18,.82) 100%); inset: 0; position: absolute; }
.film-edge { display: none; }
.hero-content { bottom: 68px; left: 6vw; position: absolute; right: 6vw; z-index: 2; }
.eyebrow { font-size: 11px; letter-spacing: .23em; margin-bottom: 18px; text-transform: uppercase; }
.eyebrow.dark { color: var(--wine); }
.hero h1 { font-size: clamp(34px, 9.5vw, 52px); letter-spacing: -.02em; line-height: 1.35; margin-bottom: 22px; }
.hero h1 em { color: #fff; border-bottom: 1px solid rgba(255,255,255,.5); }
.hero-copy { font-family: var(--serif); font-size: 15px; line-height: 1.9; margin-bottom: 26px; }
.hero-actions { align-items: flex-start; display: flex; flex-direction: column; gap: 18px; }
.primary-button, .light-button { background: var(--green); border: 1px solid var(--green); color: #fff; cursor: pointer; letter-spacing: .08em; min-height: 52px; padding: 0 25px; transition: .25s; }
.primary-button:hover { background: #3b4a37; }
.text-link { border-bottom: 1px solid rgba(255,255,255,.6); font-size: 12px; padding-bottom: 4px; }
.text-link span { display: inline-block; margin-left: 8px; }
.hero-caption { display: none; }

.section { padding: 68px 6vw; }
.gallery { background: var(--paper-deep); border-bottom: 1px solid var(--line); overflow: hidden; }
.gallery h2 { font-size: clamp(30px, 8vw, 48px); letter-spacing: -.02em; line-height: 1.45; margin-bottom: 18px; }
.gallery-copy > p:not(.eyebrow) { color: #6b6559; font-size: 12px; max-width: 480px; }
.gallery-guide { align-items: center; color: var(--wine); display: flex; font-size: 10px; justify-content: space-between; letter-spacing: .06em; margin-top: 28px; }
.gallery-track { display: grid; gap: 12px; grid-auto-columns: min(82vw, 340px); grid-auto-flow: column; margin: 34px -6vw 0; overflow-x: auto; padding: 0 6vw 14px; scroll-snap-type: x mandatory; scrollbar-width: none; }
.gallery-track::-webkit-scrollbar { display: none; }
.gallery-card { aspect-ratio: 1; background: var(--concrete); margin: 0; overflow: hidden; position: relative; scroll-snap-align: center; }
.gallery-card img { filter: saturate(.82) contrast(.98); height: 100%; object-fit: cover; object-position: center; transition: transform .6s ease; width: 100%; }
.gallery-card figcaption { background: linear-gradient(transparent, rgba(20,24,18,.68)); bottom: 0; color: #fff; font-family: var(--serif); font-size: 12px; left: 0; padding: 42px 16px 14px; position: absolute; right: 0; }
.section-number { border-top: 1px solid var(--line); color: var(--wine); font-family: var(--serif); padding-top: 9px; width: 100%; }
.intro-title-wrap { margin-top: 36px; }
.intro h2, .schedule h2, .guide h2, .trust h2, .faq h2 { font-size: clamp(28px, 7.4vw, 44px); letter-spacing: -.02em; line-height: 1.5; }
.intro-copy { margin-top: 24px; }
.intro-copy > p { max-width: 480px; }
.signature { color: var(--wine); font-family: "Gowun Batang", serif; font-size: 13px; font-style: italic; margin-top: 20px; transform: rotate(-2deg); }

.values { background: var(--paper); border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); color: var(--ink); display: grid; grid-template-columns: repeat(3, 1fr); padding: 0 6vw; }
.value-card { border-bottom: 0; border-right: 1px solid var(--line); min-width: 0; padding: 30px 10px; }
.value-card:first-child { padding-left: 0; }
.value-card:last-child { border-right: 0; padding-right: 0; }
.value-icon { align-items: center; border: 1px solid var(--line); border-radius: 0; color: var(--terracotta); display: flex; font-family: var(--serif); font-size: 9px; height: 28px; justify-content: center; margin-bottom: 18px; width: 28px; }
.value-card h3 { font-size: 18px; margin-bottom: 7px; }
.value-card p { color: #6b6559; font-size: 10px; line-height: 1.55; margin: 0; }

.fit { border-bottom: 1px solid var(--line); }
.fit h2 { font-size: clamp(28px, 7.4vw, 44px); letter-spacing: -.02em; line-height: 1.5; }
.fit-grid { border-top: 1px solid var(--line); margin-top: 48px; }
.fit-grid article { align-items: start; border-bottom: 1px solid var(--line); display: grid; gap: 18px; grid-template-columns: 28px 1fr; padding: 25px 0; }
.fit-grid span { color: var(--wine); font-family: var(--serif); font-size: 10px; }
.fit-grid p { font-family: var(--serif); font-size: 16px; line-height: 1.75; margin: 0; }
.eligibility { color: #6b6559; font-size: 12px; letter-spacing: .03em; margin: 24px 0 0; }
.eligibility strong { color: var(--wine); font-weight: 600; }

.schedule-heading { border-bottom: 1px solid var(--line); padding-bottom: 24px; }
.schedule-heading > p { color: #6b6559; font-family: var(--serif); font-size: 13px; margin: 20px 0 0; }
.event-card { border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 62px 1fr; padding: 30px 0; position: relative; }
.event-card.muted { opacity: .65; }
.schedule-toolbar { align-items: center; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; padding: 20px 0 4px; }
.filter-group { display: flex; gap: 4px; overflow-x: auto; padding-bottom: 14px; }
.filter-button { background: transparent; border: 1px solid transparent; border-radius: 2px; color: #6b6559; cursor: pointer; flex: 0 0 auto; font-size: 10px; padding: 6px 12px; }
.filter-button.active { border-color: var(--wine); color: var(--wine); }
#event-count { color: #6b6559; flex: 0 0 auto; font-size: 12px; padding-bottom: 14px; }
.event-card[hidden] { display: none; }
.event-date strong { display: block; font-family: var(--serif); font-size: 40px; font-weight: 400; line-height: 1; }
.event-date span { color: var(--wine); font-size: 10px; letter-spacing: .12em; }
.event-status { color: var(--wine); font-size: 11px; letter-spacing: .05em; margin-bottom: 8px; }
.event-info h3 { font-size: 19px; margin-bottom: 14px; }
.event-info dl { font-size: 11px; margin: 0; }
.event-info dl div { display: flex; gap: 15px; }
.event-info dt { color: #6b6559; min-width: 28px; }
.event-info dd { margin: 0; }
.event-actions { align-items: center; display: flex; gap: 20px; grid-column: 2; margin-top: 22px; }
.event-button { background: none; border: 0; border-bottom: 1px solid var(--ink); cursor: pointer; font-size: 12px; justify-self: start; padding: 0 0 4px; }
.event-button.subtle { border-bottom-color: var(--line); color: #6b6559; }
.event-button span { margin-left: 14px; }
.schedule-note { color: #6b6559; font-size: 12px; margin-top: 16px; }
.venue-notice { border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); display: grid; gap: 5px; margin-top: 24px; padding: 18px 2px; }
.venue-notice > span { color: var(--wine); font-family: var(--serif); font-size: 10px; letter-spacing: .12em; }
.venue-notice strong { font-family: var(--serif); font-size: 18px; font-weight: 400; }
.venue-notice address { color: #6b6559; font-size: 12px; font-style: normal; }
.pilot-price-notice { background: var(--paper-deep); border-left: 2px solid var(--wine); color: #5f594f; font-size: 12px; line-height: 1.8; margin: 24px 0 0; padding: 15px 17px; }
.pilot-price-notice strong { color: var(--wine); display: block; font-size: 10px; letter-spacing: .08em; margin-bottom: 3px; }

.guide { background: var(--green-deep); color: white; }
.guide .eyebrow { color: #cfd6c4; }
.guide h2 { margin-bottom: 12px; }
.guide-intro > p:last-child { color: rgba(255,255,255,.58); font-size: 13px; }
.steps { list-style: none; margin: 34px 0 0; padding: 0; }
.steps li { border-top: 1px solid rgba(255,255,255,.16); display: grid; gap: 18px; grid-template-columns: 30px 1fr; padding: 20px 0; }
.steps li > span { color: #cfd6c4; font-family: var(--serif); font-size: 11px; }
.steps h3 { font-size: 18px; margin-bottom: 4px; }
.steps p { color: rgba(255,255,255,.56); font-size: 12px; margin: 0; }

.quote-section { align-items: center; background: var(--paper-deep); display: flex; justify-content: center; min-height: 320px; overflow: hidden; padding: 54px 20px; position: relative; text-align: center; }
.quote-section blockquote { font-family: var(--serif); font-size: clamp(22px, 5.6vw, 34px); letter-spacing: -.02em; line-height: 1.75; margin: 0; position: relative; z-index: 2; }
/* 아치(예식장 모티프) → 카페 스틸 창틀 사각 프레임 */
.arch { border: 1px solid var(--line); height: 260px; position: absolute; width: 200px; }
.arch-left { left: -120px; top: 40px; }
.arch-right { bottom: 40px; right: -120px; }

.trust { background: var(--paper-deep); }
.trust-list { margin-top: 34px; }
.trust-list article { border-top: 1px solid var(--line); display: grid; gap: 18px; grid-template-columns: 30px 1fr; padding: 20px 0; }
.trust-list article > span { color: var(--wine); font-family: var(--serif); font-size: 11px; }
.trust-list h3 { font-size: 18px; margin-bottom: 8px; }
.trust-list p { color: #6b6559; font-size: 12px; margin: 0; }

.faq h2 { margin-bottom: 30px; }
.accordion details { border-top: 1px solid var(--line); }
.accordion details:last-child { border-bottom: 1px solid var(--line); }
.accordion summary { align-items: center; cursor: pointer; display: flex; font-family: var(--serif); font-size: 15px; justify-content: space-between; list-style: none; padding: 19px 0; }
.accordion summary::-webkit-details-marker { display: none; }
.accordion summary span { color: var(--wine); font-family: var(--body); font-size: 20px; font-weight: 300; transition: .2s; }
.accordion details[open] summary span { transform: rotate(45deg); }
.accordion details p { color: #6b6559; font-size: 12px; margin: -4px 36px 24px 0; }

.closing { background: var(--paper-deep); color: var(--ink); overflow: hidden; padding: 72px 6vw 96px; position: relative; }
.closing h2 { font-size: clamp(30px, 8vw, 46px); letter-spacing: -.02em; line-height: 1.55; max-width: 700px; }
.light-button { background: transparent; border-color: var(--ink); color: var(--ink); margin-top: 20px; position: relative; z-index: 2; }
.light-button span { margin-left: 28px; }
.light-button:hover { background: var(--ink); color: var(--paper); }
.closing-monogram { display: none; }

footer { background: var(--green); color: rgba(255,255,255,.7); padding: 50px 6vw 105px; }
.footer-brand { display: flex; flex-direction: column; font-family: var(--serif); gap: 5px; }
.footer-brand strong { color: white; font-size: 17px; }
.footer-brand span { font-size: 10px; }
.footer-info { display: flex; flex-wrap: wrap; font-size: 11px; gap: 15px 24px; margin: 35px 0; }
.footer-info button { background: none; border: 0; color: inherit; cursor: pointer; padding: 0; }
.business-info { border-top: 1px solid rgba(255,255,255,.12); display: flex; flex-direction: column; font-size: 10px; font-style: normal; gap: 4px; grid-column: 1 / -1; margin-top: 28px; padding-top: 20px; }
.business-info button { align-self: flex-start; background: none; border: 0; color: #fff; cursor: pointer; font-size: 10px; margin-top: 5px; padding: 0; text-decoration: underline; text-underline-offset: 3px; }
footer > p { border-top: 1px solid rgba(255,255,255,.12); font-size: 11px; margin: 0; padding-top: 20px; }

.mobile-cta { background: var(--green); border: 0; bottom: max(12px, env(safe-area-inset-bottom)); color: white; height: 54px; left: 14px; opacity: 0; pointer-events: none; position: fixed; right: 14px; transform: translateY(12px); transition: opacity .28s ease, transform .28s ease; z-index: 15; }
.mobile-cta.visible { opacity: 1; pointer-events: auto; transform: none; }
.mobile-cta span { float: right; margin-right: 5px; }
.apply-dialog { background: var(--paper); border: 0; color: var(--ink); height: 100%; margin: 0; max-height: none; max-width: none; padding: 38px 24px; width: 100%; }
.apply-dialog::backdrop, .detail-dialog::backdrop, .lookup-dialog::backdrop, .policy-dialog::backdrop { background: rgba(9,18,13,.72); backdrop-filter: blur(4px); }
.dialog-close { background: none; border: 0; cursor: pointer; font-family: var(--serif); font-size: 31px; position: absolute; right: 18px; top: 9px; }
.dialog-head h2 { font-size: 31px; letter-spacing: -.02em; margin-bottom: 8px; }
.dialog-head > p:last-child { color: #6b6559; font-size: 12px; }
.application-shell { margin: 0 auto; max-width: 760px; }
.progress { margin: 32px 0 38px; }
.progress-bar { background: rgba(25,39,31,.12); height: 2px; overflow: hidden; }
.progress-bar span { background: var(--wine); display: block; height: 100%; transition: width .35s ease; width: 25%; }
.progress-copy { color: var(--wine); display: flex; font-family: var(--serif); font-size: 11px; justify-content: space-between; margin-top: 9px; }
.apply-dialog form { display: block; margin-top: 0; }
.form-step { display: none; min-height: 350px; }
.form-step.active { display: block; }
.form-step > h3 { font-size: 25px; letter-spacing: -.02em; line-height: 1.55; margin-bottom: 30px; }
.form-grid { display: grid; gap: 21px; }
.apply-dialog label, .lookup-dialog label { display: grid; font-size: 11px; gap: 7px; }
.apply-dialog input, .apply-dialog select, .apply-dialog textarea, .lookup-dialog input { background: transparent; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; color: var(--ink); outline: none; padding: 10px 2px; resize: vertical; width: 100%; }
.apply-dialog input:focus, .apply-dialog select:focus, .apply-dialog textarea:focus, .lookup-dialog input:focus { border-color: var(--wine); }
.apply-dialog label > small { color: #6b6559; font-size: 11px; justify-self: end; }
.apply-dialog fieldset { border: 0; margin: 0; min-width: 0; padding: 0; }
.apply-dialog legend { font-size: 11px; margin-bottom: 9px; }
.apply-dialog legend small { color: #6b6559; margin-left: 5px; }
.choice-row { display: grid; gap: 8px; grid-template-columns: 1fr 1fr; }
.choice-row label, .tag-choices label { display: block; }
.choice-row input, .tag-choices input { height: 0; opacity: 0; padding: 0; position: absolute; width: 0; }
.choice-row span, .tag-choices span { border: 1px solid var(--line); cursor: pointer; display: block; padding: 10px 13px; text-align: center; transition: .2s; }
.choice-row input:checked + span, .tag-choices input:checked + span { background: var(--green); border-color: var(--green); color: white; }
.tag-choices { display: flex; flex-wrap: wrap; gap: 7px; }
.tag-choices span { border-radius: 2px; font-size: 11px; padding: 7px 13px; }
.event-options { display: grid; gap: 10px; }
.event-option { position: relative; }
.event-option input { height: 0; opacity: 0; position: absolute; width: 0; }
.event-option-card { border: 1px solid var(--line); cursor: pointer; display: grid; gap: 3px; grid-template-columns: 54px 1fr; padding: 18px; transition: .2s; }
.event-option-card strong { font-family: var(--serif); font-size: 24px; grid-row: 1 / span 4; }
.event-option-card b { font-family: var(--serif); font-size: 14px; }
.event-option-card span { color: #6b6559; font-size: 11px; }
.event-option input:checked + .event-option-card { background: var(--green); border-color: var(--green); color: white; }
.event-option input:checked + .event-option-card span { color: rgba(255,255,255,.65); }
.application-summary { background: var(--paper-deep); border-top: 2px solid var(--green); margin-bottom: 24px; padding: 20px; }
.summary-row { border-bottom: 1px solid rgba(25,39,31,.12); display: grid; font-size: 11px; gap: 15px; grid-template-columns: 72px 1fr; padding: 10px 0; }
.summary-row:last-child { border-bottom: 0; }
.summary-row span { color: #6b6559; }
.summary-row strong { font-weight: 500; }
.terms-box { border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); padding: 12px 0; }
.apply-dialog .check { align-items: center; display: flex; flex-direction: row; gap: 8px; }
.apply-dialog .check input { accent-color: var(--wine); width: auto; }
.apply-dialog .check span { flex: 1; }
.apply-dialog .check button { background: none; border: 0; color: #6b6559; cursor: pointer; font-size: 11px; text-decoration: underline; }
.apply-dialog .all-check { border-bottom: 1px solid var(--line); font-weight: 600; margin-bottom: 10px; padding-bottom: 12px; }
.payment-note { display: grid; grid-template-columns: 1fr auto; margin: 24px 0 0; }
.payment-note span { font-size: 11px; }
.payment-note strong { color: var(--wine); font-family: var(--serif); }
.payment-note small { color: #6b6559; font-size: 11px; grid-column: 1 / -1; margin-top: 5px; }
.form-actions { align-items: center; display: flex; gap: 8px; justify-content: flex-end; margin-top: 26px; }
.form-actions .primary-button { flex: 1; }
.back-button { background: transparent; border: 1px solid var(--line); cursor: pointer; min-height: 54px; padding: 0 22px; }
.submit-button { display: none; }
.form-error { color: var(--wine); font-size: 12px; min-height: 18px; margin: 12px 0 0; }
.invalid { border-color: #a1242c !important; }
.success-panel { display: none; margin: 15vh auto 0; max-width: 520px; text-align: center; }
.success-panel.active { display: block; }
.success-mark { align-items: center; border: 1px solid var(--wine); border-radius: 0; color: var(--wine); display: flex; font-family: var(--serif); height: 58px; justify-content: center; margin: 0 auto 30px; width: 58px; }
.success-panel h2 { font-size: 31px; }
.success-panel > p:not(.eyebrow) { color: #6b6559; font-size: 12px; }
.success-panel .receipt-guidance { border-left: 2px solid var(--wine); line-height: 1.7; margin: 24px 0 0; padding: 10px 12px; text-align: left; }
.receipt-guidance strong { color: var(--wine); display: block; }
.receipt { background: var(--paper-deep); display: grid; gap: 4px; margin: 30px 0; padding: 18px; }
.receipt span { font-size: 11px; }
.receipt strong { color: var(--wine); font-family: var(--serif); font-size: 20px; letter-spacing: .06em; }
.receipt button { background: none; border: 0; color: #6b6559; cursor: pointer; font-size: 11px; text-decoration: underline; }
.success-actions { display: grid; gap: 8px; }
.success-actions button { min-height: 52px; width: 100%; }
.payment-panel { display: none; margin: 5vh auto 0; max-width: 560px; }
.payment-panel.active { display: block; }
.payment-panel h2 { font-size: 31px; letter-spacing: -.02em; margin-bottom: 8px; }
.payment-panel > p:not(.eyebrow) { color: #6b6559; font-size: 12px; }
.payment-panel .pilot-payment-notice { border-left: 2px solid var(--wine); color: var(--wine); line-height: 1.7; margin-top: 16px; padding-left: 12px; }
.payment-ticket { background: var(--paper-deep); border-top: 2px solid var(--green); margin: 28px 0; padding: 18px; }
.payment-ticket div { border-bottom: 1px solid var(--line); display: grid; gap: 3px; padding: 11px 0; }
.payment-ticket span { color: #6b6559; font-size: 10px; }
.payment-ticket strong { font-family: var(--serif); font-size: 14px; font-weight: 400; }
.payment-ticket strong small { color: #6b6559; display: block; font-family: var(--body); font-size: 10px; margin-top: 3px; }
.payment-ticket button { background: none; border: 0; color: var(--wine); cursor: pointer; font-size: 10px; margin-top: 13px; padding: 0; text-decoration: underline; text-underline-offset: 3px; }
.payment-panel form { display: grid; gap: 18px; }
.payment-warning { color: var(--wine); font-size: 10px; margin: 0; }
.payment-panel button:disabled { cursor: not-allowed; opacity: .48; }
.text-button { background: none; border: 0; color: #6b6559; cursor: pointer; display: block; font-size: 10px; margin: 20px auto 0; text-decoration: underline; text-underline-offset: 3px; }
.detail-dialog, .lookup-dialog, .policy-dialog { background: var(--paper); border: 0; color: var(--ink); max-height: calc(100vh - 24px); max-width: 600px; padding: 45px 24px 32px; width: calc(100% - 24px); }
.event-detail-date { color: var(--wine); font-family: var(--serif); font-size: 12px; letter-spacing: .08em; }
.event-detail-head h2 { font-size: 32px; letter-spacing: -.02em; margin: 10px 0 8px; }
.event-detail-head > p { color: #6b6559; font-size: 12px; }
.event-detail-grid { border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); display: grid; grid-template-columns: 1fr 1fr; margin: 30px 0; }
.event-detail-grid div { border-bottom: 1px solid var(--line); padding: 14px 5px; }
.event-detail-grid div:nth-child(odd) { border-right: 1px solid var(--line); }
.event-detail-grid div.event-detail-wide { border-right: 0; grid-column: 1 / -1; }
.event-detail-grid span { color: #6b6559; display: block; font-size: 11px; }
.event-detail-grid strong { font-family: var(--serif); font-size: 13px; }
.event-program { margin: 24px 0; padding-left: 0; }
.event-program li { border-top: 1px solid var(--line); display: grid; font-size: 11px; gap: 15px; grid-template-columns: 50px 1fr; list-style: none; padding: 11px 0; }
.event-program span { color: var(--wine); }
.event-detail-actions { display: grid; gap: 8px; grid-template-columns: 1fr 1fr; }
.event-detail-actions button { min-height: 52px; }
.secondary-button { background: transparent; border: 1px solid var(--line); cursor: pointer; }
.lookup-dialog form { display: grid; gap: 18px; margin-top: 30px; }
.lookup-result { display: none; margin-top: 24px; }
.lookup-result.active { display: block; }
.lookup-card { background: var(--paper-deep); border-top: 2px solid var(--wine); padding: 20px; }
.lookup-card .status { color: var(--wine); font-size: 11px; letter-spacing: .08em; }
.lookup-card h3 { font-size: 20px; margin: 12px 0 18px; }
.lookup-card dl { font-size: 11px; margin: 0; }
.lookup-card dl div { display: flex; justify-content: space-between; padding: 5px 0; }
.lookup-card dd { margin: 0; }
.policy-dialog h2 { font-size: 30px; letter-spacing: -.02em; }
.policy-dialog h3 { font-size: 15px; margin-top: 25px; }
.policy-dialog p, .policy-dialog li { color: #6b6559; font-size: 11px; }
.policy-dialog ul { padding-left: 18px; }
.toast { background: var(--green-deep); bottom: 82px; color: white; font-size: 12px; left: 50%; opacity: 0; padding: 12px 18px; pointer-events: none; position: fixed; transform: translate(-50%, 10px); transition: .25s; white-space: nowrap; z-index: 50; }
.toast.show { opacity: 1; transform: translate(-50%, 0); }

@media (min-width: 760px) {
  .site-header { height: 92px; padding: 0 4.5vw; }
  .menu-button { display: none; }
  .site-nav { align-items: center; background: none; flex-direction: row; gap: 30px; opacity: 1; padding: 0; pointer-events: auto; position: static; transform: none; visibility: visible; }
  .site-nav a { border: 0; font-family: var(--body); font-size: 11px; padding: 0; }
  .nav-apply { background: transparent; border: 1px solid rgba(255,255,255,.7); color: white; margin: 0; padding: 10px 19px; }
  .hero { min-height: 900px; }
  .hero-image { object-position: 50% 70%; }
  .hero-content { bottom: 11%; left: 8vw; max-width: 700px; right: auto; }
  .hero h1 { font-size: 60px; }
  .hero-actions { align-items: center; flex-direction: row; gap: 28px; }
  .hero-caption { bottom: 30px; display: block; font-size: 10px; letter-spacing: .12em; margin: 0; position: absolute; right: 4vw; z-index: 2; }
  .film-edge { bottom: 0; display: flex; font-size: 9px; justify-content: space-between; left: 15px; letter-spacing: .15em; position: absolute; top: 0; width: 12px; writing-mode: vertical-rl; z-index: 2; }
  .section { padding: 120px 8vw; }
  .gallery-copy { align-items: end; display: grid; gap: 4vw; grid-template-columns: 1fr 1fr; }
  .gallery-copy .eyebrow { grid-column: 1 / -1; }
  .gallery-copy h2 { margin: 0; }
  .gallery-copy > p:not(.eyebrow) { margin: 0 0 10px; }
  .gallery-guide { display: none; }
  .gallery-track { display: grid; gap: 14px; grid-auto-flow: row; grid-auto-rows: clamp(190px, 20vw, 300px); grid-template-columns: repeat(12, 1fr); margin: 56px 0 0; overflow: visible; padding: 0; }
  .gallery-card { aspect-ratio: auto; scroll-snap-align: none; }
  .gallery-card:nth-child(1) { grid-column: span 7; grid-row: span 2; }
  .gallery-card:nth-child(2) { grid-column: span 5; grid-row: span 2; }
  .gallery-card:nth-child(n + 3) { grid-column: span 4; }
  .gallery-card:hover img { transform: scale(1.025); }
  .intro { display: grid; gap: 5vw; grid-template-columns: 80px 1.2fr .8fr; }
  .section-number { border-top: 0; padding: 0; }
  .intro-title-wrap { margin: 0; }
  .intro-copy { align-self: end; margin: 0 0 8px; }
  .values { display: grid; grid-template-columns: repeat(3, 1fr); padding: 0 8vw; }
  .value-card { border-bottom: 0; border-right: 1px solid var(--line); padding: 80px 4vw; }
  .value-card:first-child { padding-left: 0; }
  .value-card:last-child { border-right: 0; padding-right: 0; }
  .value-card.featured { background: var(--paper-deep); }
  .schedule-heading { align-items: flex-end; display: flex; justify-content: space-between; }
  .schedule-heading > p { margin: 0 0 12px; text-align: right; }
  .event-card { align-items: center; gap: 4vw; grid-template-columns: 100px 1fr auto; padding: 52px 0; }
  .event-date strong { font-size: 55px; }
  .event-info dl { display: flex; gap: 35px; }
  .event-actions { grid-column: 3; margin: 0; }
  .guide { display: grid; gap: 10vw; grid-template-columns: .8fr 1.2fr; }
  .steps { margin: 0; }
  .steps li:first-child { border-top-color: rgba(255,255,255,.45); }
  .quote-section { min-height: 600px; }
  .arch { height: 400px; width: 300px; }
  .arch-left { left: -130px; }
  .arch-right { right: -130px; }
  .trust { display: grid; gap: 10vw; grid-template-columns: .8fr 1.2fr; }
  .trust-list { margin: 0; }
  .faq { display: grid; gap: 7vw; grid-template-columns: .7fr 1.3fr; }
  .faq > .eyebrow { grid-column: 1; }
  .faq h2 { grid-column: 1; grid-row: 2; }
  .accordion { grid-column: 2; grid-row: 1 / span 3; }
  .closing { padding: 130px 8vw; }
  footer { align-items: start; display: grid; grid-template-columns: 1fr auto; padding: 58px 8vw; }
  .footer-info { justify-content: flex-end; margin: 0; }
  .business-info { margin-top: 36px; }
  footer > p { grid-column: 1 / -1; margin-top: 20px; }
  .mobile-cta { display: none; }
  .apply-dialog { padding: 52px; }
  .toast { bottom: 30px; }
}

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
