/* contact.css: Contact, placed and sized with the tokens of system.css (plan.md, contact). */

/* ---- hero: a split reversed on the grey, the photo bleeding to the left edge, three cards landing beside her ---- */
.contact-hero { display: grid; grid-template-columns: minmax(0, 54fr) minmax(0, 46fr); min-height: clamp(580px, calc(100svh - 76px), 780px); background: var(--c-paper-alt); }
.contact-hero__media { position: relative; overflow: hidden; background: var(--c-navy-deep); }
.contact-hero__media > img { position: absolute; inset: -1px; width: calc(100% + 2px); height: calc(100% + 2px); max-width: none; object-fit: cover; object-position: 62% 40%; }
.contact-hero__media::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(90deg, color-mix(in srgb, var(--c-navy-deep) 34%, transparent) 0%, transparent 46%); }
.contact-hero__cards { position: absolute; z-index: 2; left: max(var(--gutter), 5%); bottom: 9%; display: grid; gap: 12px; width: min(320px, 44%); }
.contact-hero__card { max-width: none; }
.contact-hero__stop { top: 18px; right: 18px; }
.contact-hero__words { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 18px; padding: 56px max(var(--gutter), (100vw - var(--max-w)) / 2) 56px clamp(36px, 5vw, 76px); }
.contact-hero .h1 { font-size: clamp(2.125rem, 1.2rem + 2.5vw, 3.375rem); max-width: 15ch; }
.contact-hero__mail { font-weight: 600; color: var(--c-ink); }
.contact-hero__mail a { font-weight: 700; }
.contact-hero__where { font-size: var(--fs-small); color: var(--c-ink-soft); }
.contact-hero__go { margin-top: 6px; }
@media (max-width: 899px) {
  .contact-hero { grid-template-columns: 1fr; min-height: 0; }
  .contact-hero__words { order: -1; padding: 32px var(--gutter) 36px; }
  .contact-hero__media { aspect-ratio: 4 / 3.6; }
  .contact-hero__media > img { object-position: 66% 30%; }
  .contact-hero__cards { left: 12px; right: 12px; bottom: 12px; width: auto; gap: 8px; }
  .contact-hero__stop { top: 12px; right: 12px; }
}

/* ---- the full form, its steps named beside it ---- */
.contact-form { background: var(--c-paper); }
.contact-form__grid { display: grid; grid-template-columns: minmax(0, 40fr) minmax(0, 60fr); gap: clamp(28px, 5vw, 76px); align-items: start; }
.contact-form__head { position: sticky; top: 112px; display: grid; gap: 16px; }
.contact-form__steps { display: grid; gap: 10px; margin: 6px 0 0; padding: 0; list-style: none; }
.contact-form__steps li { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 14px; align-items: center; padding: 12px 16px; border-radius: 16px; background: var(--c-paper-alt); }
.contact-form__steps b { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: var(--c-brand); color: var(--c-on-brand); font: 800 1.0625rem/1 var(--font-display); }
.contact-form__steps span { font-weight: 600; color: var(--c-ink); }
.contact-form__mail { color: var(--c-ink-soft); }
.contact-form__mail a { font-weight: 700; }
.contact-form__box { display: grid; gap: 14px; }
.contact-form .form-box { box-shadow: var(--shadow-l), inset 0 0 0 1px var(--c-line); }
.field__input--area { min-height: 120px; padding-block: 12px; resize: vertical; line-height: 1.45; }
@media (max-width: 899px) { .contact-form__grid { grid-template-columns: 1fr; } .contact-form__head { position: static; } }
