/* ============ CONTACT HERO ============ */
.contact-hero{ padding:clamp(3rem,7vw,5rem) 0 clamp(2rem,4vw,3rem); }
.contact-hero-inner{ max-width:700px; }
.contact-hero h1{ font-size:clamp(2.3rem,1.6rem + 3.6vw,4rem); font-weight:500; }
.contact-hero p{ margin-top:1.2rem; max-width:56ch; }

/* ============ MAIN GRID ============ */
.contact-grid{ display:grid; grid-template-columns:1fr 1.15fr; gap:clamp(2rem,6vw,4.5rem); align-items:start; }
@media (max-width:880px){ .contact-grid{ grid-template-columns:1fr; gap:2.5rem; } }

/* info column */
.info-block{ margin-bottom:2rem; }
.info-block:last-child{ margin-bottom:0; }
.info-label{ font-family:var(--sans); font-weight:600; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--turquoise); margin-bottom:.6rem; }
.info-value{ font-family:var(--serif); font-size:1.25rem; color:var(--charcoal); line-height:1.4; }
.info-value a{ text-decoration:none; border-bottom:1.5px solid var(--gold); padding-bottom:1px; }
.info-value a:hover{ color:var(--turquoise); }
.info-note{ font-size:.92rem; color:var(--ink-soft); margin-top:.4rem; }
.info-social{ display:flex; gap:.8rem; margin-top:.4rem; }
.info-social a{ display:inline-flex; align-items:center; gap:.5rem; text-decoration:none;
  font-weight:600; font-size:.92rem; color:var(--charcoal); border:1px solid var(--line); border-radius:100px;
  padding:.5em 1em; transition:all .25s var(--ease); }
.info-social a:hover{ border-color:var(--gold); color:var(--turquoise); }
.info-social svg{ width:18px; height:18px; }

.info-card{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
  padding:clamp(1.5rem,3vw,2.2rem); }

/* ============ FORM ============ */
.reserve-card{ background:var(--charcoal); color:var(--cream); border-radius:var(--radius);
  padding:clamp(1.8rem,4vw,3rem); }
.reserve-card h2{ font-size:clamp(1.6rem,1.3rem + 1.6vw,2.3rem); color:#fff; }
.reserve-card > p{ color:rgba(246,241,231,.8); margin-top:.7rem; margin-bottom:1.8rem; }

.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.1rem 1rem; }
.field{ display:flex; flex-direction:column; gap:.4rem; }
.field.col-span{ grid-column:1 / -1; }
.field label{ font-family:var(--sans); font-size:.82rem; font-weight:600; letter-spacing:.02em; color:rgba(246,241,231,.85); }
.field label .req{ color:var(--gold-soft); }
.field input, .field select, .field textarea{
  font-family:var(--sans); font-size:.95rem; color:var(--cream); background:rgba(255,255,255,.05);
  border:1px solid var(--line-dark); border-radius:var(--radius); padding:.72em .85em; width:100%;
  transition:border-color .25s, background .25s;
}
.field textarea{ resize:vertical; min-height:88px; }
.field input::placeholder, .field textarea::placeholder{ color:rgba(246,241,231,.4); }
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none; border-color:var(--gold); background:rgba(255,255,255,.08);
}
.field select{ appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23D9B968' d='M6 8 0 0h12z'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right .9em center; padding-right:2.2em; }
.field select option{ color:#1c1b19; }
.field.has-error input, .field.has-error select, .field.has-error textarea{ border-color:#E0846A; }
.field-err{ font-size:.78rem; color:#E9A08C; min-height:.9rem; }

.form-actions{ margin-top:1.5rem; display:flex; flex-direction:column; gap:1rem; }
.form-actions .btn{ width:100%; }
.form-status{ font-size:.9rem; line-height:1.5; padding:.6rem 0; min-height:1rem; }
.form-status.ok{ color:var(--gold-soft); }
.form-status.err{ color:#E9A08C; }
.form-fineprint{ font-size:.82rem; color:rgba(246,241,231,.6); line-height:1.5; }

@media (max-width:520px){ .form-grid{ grid-template-columns:1fr; } }

/* ============ MAP / ARRIVAL ============ */
.map-embed{ width:100%; aspect-ratio:16/8; border:0; border-radius:var(--radius); filter:saturate(.9); }
.map-note{ font-size:.9rem; color:var(--ink-soft); margin-top:.9rem; }
