/* 예약 신청 양식 모양 — 문의 폼(/contact/contact.css)과 같은 색·글꼴·간격. 모바일 우선: 한 줄에 한 칸으로 시작해 넓어지면 두 칸씩 놓는다. */
.hm-reserve { width: 100%; max-width: 825px; margin: 0 auto; padding: 0 var(--gutter, 20px) 8px; display: grid; gap: 24px; font: inherit; color: var(--ink, #4b3d2c); text-align: left; position: relative; box-sizing: border-box; }
.hm-reserve [hidden] { display: none !important; }
.hm-reserve__row { display: grid; gap: 24px; }
.hm-reserve label { display: grid; gap: 4px; font-size: 16px; line-height: 1.3; min-width: 0; }
.hm-reserve label small { font-size: 14px; opacity: .8; }
.hm-reserve input[type=text], .hm-reserve input[type=tel], .hm-reserve input[type=date], .hm-reserve select, .hm-reserve textarea {
  width: 100%; min-height: 44px; border: 0; border-bottom: 1px solid var(--ink, #4b3d2c); border-radius: 0; background: transparent;
  color: inherit; font: inherit; font-size: 16px; padding: 8px 0; box-sizing: border-box; appearance: none; -webkit-appearance: none; min-width: 0;
}
.hm-reserve select { padding-right: 28px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%234B3D2C' stroke-width='1.4'/%3E%3C/svg%3E") right 6px center / 12px 8px no-repeat; }
.hm-reserve textarea { min-height: 110px; resize: vertical; border: 1px solid var(--ink, #4b3d2c); padding: 10px 12px; line-height: 1.5; }
.hm-reserve input:focus-visible, .hm-reserve select:focus-visible, .hm-reserve textarea:focus-visible, .hm-reserve button:focus-visible, .hm-reserve a:focus-visible { outline: 2px solid var(--ink, #4b3d2c); outline-offset: 2px; }
.hm-reserve [aria-invalid=true] { border-color: #b42318; }
.hm-reserve .hm-reserve__trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.hm-reserve .hm-reserve__consent { border: 1px solid var(--line-blush, #cdbb93); padding: 16px; font-size: 14px; line-height: 1.7; }
.hm-reserve .hm-reserve__consent label { display: flex; align-items: center; gap: 12px; min-height: 44px; font-size: 16px; margin-top: 8px; cursor: pointer; }
.hm-reserve .hm-reserve__consent a { text-decoration: underline; text-underline-offset: 3px; display: inline-flex; align-items: center; min-height: 44px; }
/* 보이는 네모는 18px, 누르는 칸은 44px */
.hm-reserve input[type=checkbox] {
  appearance: none; -webkit-appearance: none; width: 44px; height: 44px; margin: 0 -13px; flex: none; border: 0; cursor: pointer;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18'%3E%3Crect x='.5' y='.5' width='17' height='17' fill='none' stroke='%234B3D2C'/%3E%3C/svg%3E") center / 18px 18px no-repeat;
}
.hm-reserve input[type=checkbox]:checked {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18'%3E%3Crect x='.5' y='.5' width='17' height='17' fill='none' stroke='%234B3D2C'/%3E%3Crect x='4' y='4' width='10' height='10' fill='%234B3D2C'/%3E%3C/svg%3E");
}
.hm-reserve input[type=checkbox]:focus-visible { outline-offset: -10px; }
.hm-reserve button[type=submit] {
  width: 100%; min-height: 54px; border: 0; border-radius: 50px; background: var(--ink, #4b3d2c); color: var(--white, #fff);
  font: inherit; font-size: 18px; font-weight: 700; letter-spacing: .02em; cursor: pointer; transition: opacity .2s ease;
}
.hm-reserve button[type=submit]:hover { opacity: .9; }
.hm-reserve button[disabled] { opacity: .6; cursor: wait; }
.hm-reserve [data-hm-ok], .hm-reserve [data-hm-msg] { margin: 0; text-align: center; font-size: 16px; line-height: 1.5; overflow-wrap: anywhere; }
.hm-reserve [data-hm-ok] { color: #1a6b3a; }
.hm-reserve [data-hm-msg] { color: #b42318; }

@media (min-width: 641px) {
  .hm-reserve__row--two { grid-template-columns: 1fr 1fr; }
}
