/* reservation.css */
.reservation-page { max-width: 1200px; margin: 0 auto; padding: 5rem 2rem; }
.res-layout { display: grid; grid-template-columns: 1fr 1.2fr; gap: 5rem; align-items: start; }
.res-info h2 { font-size: clamp(1.8rem,4vw,2.8rem); color: var(--forest); margin-bottom: 1rem; }
.res-info h2 em { color: var(--earth); font-weight: 400; }
.res-lead { font-family: 'Cormorant Garamond',serif; font-size: 1.1rem; color: var(--ash); line-height: 1.8; font-style: italic; margin-bottom: 2.5rem; }
.res-details { display: flex; flex-direction: column; gap: 1.5rem; }
.res-detail-item { display: flex; gap: 1rem; align-items: flex-start; padding: 1.2rem; background: var(--cream); border-radius: 2px; }
.res-icon { font-size: 1.3rem; padding-top: 2px; flex-shrink: 0; }
.res-detail-item h4 { font-family: 'Jost',sans-serif; font-size: 0.75rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--sage); margin-bottom: 0.3rem; }
.res-detail-item p { font-size: 0.9rem; color: var(--ash); line-height: 1.5; }
.res-detail-item strong { color: var(--forest); }

.res-form-card { background: white; border: 1px solid var(--border); border-radius: 4px; padding: 2.5rem; box-shadow: 0 8px 40px var(--shadow); }
.res-form-card h3 { font-family: 'Playfair Display',serif; font-size: 1.6rem; color: var(--forest); margin-bottom: 0.4rem; }
.form-subtext { font-size: 0.9rem; color: var(--ash); margin-bottom: 2rem; font-style: italic; font-family: 'Cormorant Garamond',serif; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.form-field { display: flex; flex-direction: column; gap: 0.4rem; margin-bottom: 1.2rem; }
.form-field label { font-size: 0.78rem; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ash); }
.req { color: var(--amber); }
.form-field input, .form-field select, .form-field textarea {
  padding: 0.75rem 1rem; border: 1px solid var(--border); border-radius: 2px; font-family: 'Jost',sans-serif; font-size: 0.95rem; color: var(--charcoal); background: white; transition: border-color 0.3s; outline: none; width: 100%;
}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { border-color: var(--sage); }
.form-field textarea { resize: vertical; min-height: 90px; }
.form-field input.error, .form-field select.error { border-color: #d94f4f; }
.field-error { font-size: 0.78rem; color: #d94f4f; min-height: 1rem; }
.submit-btn { width: 100%; padding: 1rem; font-size: 0.85rem; margin-top: 0.5rem; border-radius: 2px; }
.form-disclaimer { font-size: 0.78rem; color: var(--ash); opacity: 0.6; margin-top: 1rem; text-align: center; line-height: 1.5; }
.form-success { background: rgba(107,140,94,0.1); border: 1px solid var(--sage); border-radius: 4px; padding: 2rem; text-align: center; margin-bottom: 1.5rem; }
.success-icon { display: block; font-size: 2rem; margin-bottom: 0.5rem; color: var(--sage); }
.form-success h4 { font-family: 'Playfair Display',serif; font-size: 1.3rem; color: var(--forest); margin-bottom: 0.5rem; }
.form-success p { font-size: 0.95rem; color: var(--ash); }
@media(max-width:900px){ .res-layout{grid-template-columns:1fr;gap:3rem;} }
@media(max-width:480px){ .form-row{grid-template-columns:1fr;} }
