/* --------------------------------------------------------------------------
   section_contact_home: the form + side panel block on /contacto. Kept as a
   page-specific file (not a component) since no other page uses a form.
   -------------------------------------------------------------------------- */
.section_contact_home { position: relative; padding: clamp(60px, 8vw, 100px) 0; overflow: hidden; background-color: #050b13; isolation: isolate; }
.section_contact_home__background { position: absolute; z-index: -2; inset: 0; background: var(--hero-bg, none) center / cover no-repeat; filter: blur(3px) brightness(.45); transform: scale(1.04); }
.section_contact_home__veil { position: absolute; z-index: -1; inset: 0; }
.section_contact_home__grid { position: relative; display: grid; grid-template-columns: 1.3fr 1fr; gap: 28px; align-items: start; }

/* Form card */
.contact-form { background: #fff; border-radius: 16px; padding: clamp(28px, 3vw, 44px); box-shadow: 0 30px 60px rgba(0, 0, 0, .35); }
.contact-form h2 { font-family: var(--font-display); font-size: clamp(20px, 2.2vw, 26px); font-weight: 700; color: #0d1b2a; }
.contact-form > p.contact-form__intro { margin-top: 6px; color: #5c6b78; font-size: 14px; }
.contact-form__row { display: grid; grid-template-columns: 108px 1fr; gap: 10px; }
.contact-form__field { position: relative; display: flex; align-items: center; gap: 10px; margin-top: 18px; padding: 0 14px; border: 1px solid #d7dee4; border-radius: 8px; background: #fbfcfd; transition: border-color .2s ease; }
.contact-form__row .contact-form__field { margin-top: 0; }
.contact-form__field--textarea { align-items: flex-start; padding-top: 2px; }
.contact-form__field input, .contact-form__field select, .contact-form__field textarea { flex: 1; min-width: 0; padding: 13px 0; border: 0; background: transparent; font: inherit; font-size: 14px; color: #0d1b2a; }
.contact-form__field textarea { min-height: 96px; padding-top: 13px; resize: vertical; }
.contact-form__field input:focus, .contact-form__field select:focus, .contact-form__field textarea:focus { outline: none; }
.contact-form__field:focus-within { border-color: var(--color-cyan); }
.contact-form__icon { display: grid; place-items: center; flex: 0 0 auto; color: #0089fa; }
.contact-form__field--select .contact-form__icon { padding-right: 8px; border-right: 1px solid #e3e8ec; }
.contact-form__checkbox { position: relative; display: flex; align-items: flex-start; gap: 10px; margin-top: 18px; font-size: 13px; line-height: 1.4; color: #4b5a68; }
.contact-form__checkbox input { flex: 0 0 auto; margin-top: 3px; accent-color: var(--color-cyan); }
.contact-form__checkbox a { color: #0089fa; }
.contact-form__submit { margin-top: 24px; width: 100%; }

/* Error state: red border + a small tooltip naming the missing field. */
.contact-form__field.has-error { border-color: #e0453c; }
.contact-form__checkbox.has-error { color: #e0453c; }
.contact-form__tooltip { display: none; position: absolute; left: 2px; bottom: -19px; color: #e0453c; font-size: 11px; font-weight: 600; }
.has-error .contact-form__tooltip { display: block; }
.contact-form__checkbox .contact-form__tooltip { position: static; margin-top: 2px; }

/* Side panel: WhatsApp / reservations / location. */
.contact-panel { display: flex; flex-direction: column; gap: 22px; padding: clamp(24px, 3vw, 34px); color: #fff; background: rgba(3, 8, 15, .82); border: 1px solid rgba(255, 184, 63, .3); border-radius: 16px; }
.contact-panel__item { display: flex; gap: 16px; align-items: flex-start; }
.contact-panel__icon { display: grid; place-items: center; flex: 0 0 auto; width: 46px; height: 46px; color: var(--color-gold); border: 1px solid rgba(255, 184, 63, .6); border-radius: 50%; }
.contact-panel__item h3 { font-family: var(--font-display); font-size: 11px; font-weight: 700; letter-spacing: .05em; color: var(--color-gold); text-transform: uppercase; }
.contact-panel__item p { margin-top: 4px; color: #d9e4ec; font-size: 14px; line-height: 1.4; }
.contact-panel__item .button { margin-top: 10px; }

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

@media (max-width: 480px) {
    .contact-form__row { grid-template-columns: 96px 1fr; }
}
