/* 시안 공통: 리셋 · 시안 리본 · 접근성 기본값 */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img { display: block; max-width: 100%; }
a { color: inherit; }
button, input, select { font: inherit; color: inherit; }
:focus-visible { outline: 3px solid #2563eb; outline-offset: 3px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
.draft-ribbon {
  position: fixed; z-index: 9999; left: 12px; bottom: 12px;
  font: 600 12px/1 system-ui, -apple-system, "Apple SD Gothic Neo", sans-serif;
  background: #fff; color: #111; border: 1.5px solid #111; border-radius: 999px;
  padding: 8px 12px; pointer-events: none; letter-spacing: 0;
}

input, select, textarea { min-width: 0; max-width: 100%; width: 100%; }
input[type="radio"], input[type="checkbox"] { width: auto; }

/* 예약 폼 공통 — iOS 확대 방지(16px), 결과 메시지 상태, 전송 후 비활성 */
input, select, textarea { font-size: 16px; }
[data-reserve-msg]:empty { display: none; }
[data-reserve-msg][data-state="error"] { background: #FDECEC !important; color: #8A1C1C !important; }
form[data-reserve] button[type="submit"]:disabled { opacity: .6; cursor: not-allowed; }
form[data-reserve] select:disabled { opacity: .7; }

/* FAQ 질문 줄 탭 대상 44px 이상 */
details > summary { min-height: 44px; padding-top: 8px; padding-bottom: 8px; box-sizing: border-box; cursor: pointer; }

/* 예약 확인 카드 · 필드 오류 */
.reserve-done { border-radius: 16px; padding: 20px 22px; background: #E6F2E8; color: #1D4D2A; }
.reserve-done:focus-visible { outline-offset: 4px; }
.reserve-done .rd-title { margin: 0 0 6px; font-weight: 800; font-size: 20px; }
.reserve-done .rd-body { margin: 0 0 16px; line-height: 1.5; }
.reserve-done .rd-edit { min-height: 44px; padding: 0 18px; border-radius: 999px; border: 1.5px solid currentColor; background: transparent; color: inherit; font-weight: 700; cursor: pointer; }
form[data-reserve] [aria-invalid="true"] { border-color: #B3261E !important; box-shadow: 0 0 0 2px rgba(179, 38, 30, .18); }
form[data-reserve] .form-note { grid-column: 1 / -1; margin: 0; font-size: 14px; }
/* hidden 속성이 페이지의 display 규칙에 덮이지 않도록 */
form[data-reserve][hidden], .reserve-done[hidden] { display: none !important; }
/* 칸별 오류 문구 — 입력칸 바로 아래 */
form[data-reserve] .field-err { display: block; margin-top: 4px; font-size: 13px; font-weight: 600; line-height: 1.35; color: #B3261E; }
