.contact-page { background: var(--color-paper); }
.contact-main { padding: clamp(1.25rem, 3vw, 2.5rem) var(--edge) clamp(3.5rem, 7vw, 6rem); overflow: visible; }
.contact-layout {
  display: grid;
  grid-template-columns: minmax(17rem, .72fr) minmax(0, 1.28fr);
  gap: clamp(1.5rem, 4vw, 3rem);
  padding: clamp(2.5rem, 5vw, 4rem) 0 0;
}
.thanks-card h1 { margin: .45rem 0 1rem; font: 600 clamp(2.7rem, 6vw, 5.4rem)/.96 var(--font-display); letter-spacing: -.045em; }
.contact-details { align-self: start; }
.contact-details h2,
.contact-form-panel h2 { margin: .4rem 0 .8rem; font: 600 clamp(1.8rem, 3vw, 2.6rem)/1 var(--font-display); }
.contact-details > p,
.contact-form-intro { margin: 0 0 1.5rem; color: var(--color-ink-soft); font-size: .82rem; line-height: 1.65; }
.contact-methods { display: grid; gap: .8rem; margin: 0; }
.contact-method {
  display: grid;
  grid-template-columns: 2.8rem 1fr;
  gap: .9rem;
  padding: 1.1rem;
  background: var(--color-cloud);
  border: 1px solid var(--color-mist);
  border-radius: var(--radius-md);
}
.contact-method-icon { display: grid; width: 2.8rem; height: 2.8rem; place-items: center; color: var(--color-bronze-deep); background: var(--color-gold-soft); border-radius: 50%; font-weight: 700; }
.contact-method-icon svg { display: block; width: 1.3rem; height: 1.3rem; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.contact-method dt { color: var(--color-ink-soft); font-size: .62rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.contact-method dd { margin: .2rem 0 0; font-weight: 700; }
.contact-method address { font-style: normal; font-weight: 600; line-height: 1.5; }
.contact-transit { display: inline-block; margin-top: .2rem; color: var(--color-ink-soft); font-size: .72rem; font-weight: 500; }
.contact-method a { text-underline-offset: .2rem; }
.contact-note { margin-top: 1rem; padding: 1rem 1.15rem; background: var(--color-gold-soft); border-left: 4px solid var(--color-gold); font-size: .75rem; line-height: 1.55; }
.contact-note p { margin: 0; }
.contact-note a { font-weight: 700; }
.contact-form-panel {
  padding: clamp(1.4rem, 4vw, 2.5rem);
  background: var(--color-cloud);
  border: 1px solid var(--color-mist);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-subtle);
}
.contact-form { display: grid; gap: 1.1rem; }
.contact-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.contact-form .field--wide { grid-column: 1 / -1; }
.contact-form .field > span { color: var(--color-ink); font-size: .72rem; }
.contact-form .field input,
.contact-form .field select,
.contact-form .field textarea { font-size: .85rem; }
.contact-form .field textarea { min-height: 10rem; }
.contact-form .field small { color: var(--color-ink-soft); font-size: .65rem; }
.contact-form .field-error input,
.contact-form .field-error select,
.contact-form .field-error textarea { border-color: #8a3028; box-shadow: 0 0 0 1px #8a3028; }
.contact-form-status { margin: 0; padding: .8rem 1rem; color: #6a241f; background: #f8e7e4; border-radius: var(--radius-sm); font-size: .75rem; }
.contact-form-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.contact-form-actions p { flex: 1 1 18rem; margin: 0; color: var(--color-ink-soft); font-size: .66rem; line-height: 1.5; }
.contact-form .button { flex: 0 0 auto; }
.thanks-main { display: grid; min-height: calc(100vh - 6rem); place-items: center; padding: clamp(3rem, 8vw, 7rem) var(--gutter); background: linear-gradient(145deg, var(--color-paper), var(--color-taupe-soft)); }
.thanks-card { width: min(100%, 47rem); padding: clamp(2rem, 6vw, 4.5rem); text-align: center; background: var(--color-cloud); border: 1px solid var(--color-mist); border-radius: var(--radius-lg); box-shadow: var(--shadow-floating); }
.thanks-mark { display: grid; width: 4.2rem; height: 4.2rem; margin: 0 auto 1.4rem; place-items: center; color: var(--color-cloud); background: var(--color-pine); border-radius: 50%; font-size: 1.6rem; font-weight: 700; }
.thanks-card h1 { font-size: clamp(2.4rem, 6vw, 4.4rem); }
.thanks-card > p { max-width: 36rem; margin: 0 auto 1rem; color: var(--color-ink-soft); line-height: 1.7; }
.thanks-clarification { padding: 1rem; background: var(--color-gold-soft); border-radius: var(--radius-sm); font-size: .78rem; }
.thanks-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; margin-top: 1.5rem; }
/* 404: full-bleed plane hero with overlaid copy + CTAs, sized to fit the viewport
   below the site chrome so it needs no scrolling. */
.notfound-hero { position: relative; isolation: isolate; display: grid; place-items: center; min-height: calc(100dvh - 8.2rem); padding: clamp(2rem, 6vw, 5rem) var(--gutter); overflow: hidden; text-align: center; }
.notfound-hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.notfound-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgb(20 17 12 / 35%) 0%, rgb(20 17 12 / 72%) 100%); }
.notfound-hero-content { width: min(100%, 42rem); color: #fff; }
.notfound-hero-content .eyebrow { color: var(--color-gold); }
.notfound-hero-content h1 { margin: .5rem 0 1rem; color: #fff; font: 600 clamp(2.2rem, 6vw, 4.4rem)/1.02 var(--font-display); letter-spacing: -.03em; }
.notfound-hero-content > p { max-width: 34rem; margin: 0 auto 1.8rem; color: rgb(255 255 255 / 90%); font-size: clamp(1rem, 2.2vw, 1.2rem); line-height: 1.6; }
.notfound-hero-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; }
.notfound-home { margin: 1.4rem 0 0; font-size: .85rem; }
.notfound-home a { color: rgb(255 255 255 / 85%); text-decoration: underline; }

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

@media (max-width: 640px) {
  .contact-form-grid { grid-template-columns: 1fr; }
  .contact-form .field--wide { grid-column: auto; }
  .contact-form-actions { align-items: stretch; flex-direction: column; }
  /* In column direction the disclaimer's flex-basis (18rem) becomes a min-height and balloons the card; use natural height. */
  .contact-form-actions p { flex: 0 0 auto; }
  .contact-form .button,
  .thanks-actions .button { width: 100%; }
  .thanks-actions { flex-direction: column; }
  .notfound-hero-actions { flex-direction: column; }
  .notfound-hero-actions .button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
