/* Contact page */

.contact-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 100vh;
}

.contact-layout__media { position: relative; overflow: hidden; background: var(--ink-800); }
.contact-layout__media picture, .contact-layout__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.contact-layout__scrim { position: absolute; inset: 0; background: linear-gradient(to top, rgba(11,11,10,0.9), rgba(11,11,10,0.1) 55%); }
.contact-quote {
  position: absolute; left: clamp(1.5rem, 3vw, 3rem); right: clamp(1.5rem, 3vw, 3rem); bottom: clamp(2rem, 5vw, 3.5rem);
  margin: 0; font-family: var(--font-display); font-style: italic; color: var(--paper-100);
  font-size: clamp(1.1rem, 2vw, 1.5rem); line-height: 1.4;
}

.contact-layout__panel { display: flex; align-items: center; padding: clamp(2rem, 5vw, 5rem); background: var(--ink-950); }
.contact-panel__inner { max-width: 560px; width: 100%; padding-top: 5rem; }
.contact-panel__inner h1 { margin-block: 1rem 1.1rem; }
.contact-panel__inner .lede { margin-bottom: 2.4rem; }

@media (max-width: 900px) {
  .contact-layout { grid-template-columns: 1fr; }
  .contact-layout__media { min-height: 42vh; }
}

/* Direct contact + HubSpot embed */
.contact-direct {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  flex-wrap: wrap;
  padding-bottom: 1.6rem;
  margin-bottom: 1.8rem;
  border-bottom: 1px solid var(--line);
  font-size: 0.95rem;
}
.contact-direct a { color: var(--gold-400); transition: color var(--dur-fast); }
.contact-direct a:hover { color: var(--paper-100); }
.contact-direct__sep { color: var(--paper-mute); }

.hubspot-form-wrap {
  /* HubSpot's embedded form inherits the page font; color/spacing of its
     internal fields are controlled by HubSpot, not this stylesheet. */
  color: var(--paper-100);
}

/* Form */
.book-form { display: flex; flex-direction: column; gap: 1.4rem; }
.book-form__row { display: flex; flex-direction: column; gap: 0.5rem; }
.book-form__row--split { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem; }
.book-form__row--split > div { display: flex; flex-direction: column; gap: 0.5rem; }
@media (max-width: 560px) { .book-form__row--split { grid-template-columns: 1fr; } }

.book-form label { font-size: 0.78rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--paper-300); }

.book-form input[type="text"],
.book-form input[type="email"],
.book-form input[type="tel"],
.book-form select,
.book-form textarea {
  width: 100%;
  background: var(--ink-800);
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-sm);
  color: var(--paper-100);
  font-family: var(--font-body);
  font-size: 0.95rem;
  padding: 0.85em 1em;
  transition: border-color var(--dur-fast) var(--ease-out);
}
.book-form input:focus, .book-form select:focus, .book-form textarea:focus {
  border-color: var(--gold-400);
  outline: none;
}
.book-form textarea { resize: vertical; min-height: 6.5rem; }

.book-form__checks { display: flex; flex-wrap: wrap; gap: 0.6rem 1.6rem; }
.book-form__checks label { display: flex; align-items: center; gap: 0.5rem; text-transform: none; letter-spacing: 0; font-size: 0.9rem; color: var(--paper-200); }
.book-form__checks input[type="checkbox"] { accent-color: var(--gold-400); width: 16px; height: 16px; }

.book-form__submit { margin-top: 0.6rem; align-self: flex-start; }
.book-form__note { font-size: 0.8rem; color: var(--paper-mute); margin-top: -0.4rem; }
