@font-face {
  font-family: Inter;
  src: url('./fonts/inter-latin.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Source Serif 4';
  src: url('./fonts/source-serif-latin.woff2') format('woff2');
  font-weight: 200 900;
  font-style: normal;
  font-display: swap;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: #201f1c; }
a { color: #e2875f; }
a:hover { filter: brightness(1.08); }
button, input, textarea { font: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 3px solid #e2875f; outline-offset: 5px; }
#contact { scroll-margin-top: 24px; }
.contact-form { max-width: 760px; margin-top: 8px; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.form-field { display: flex; flex-direction: column; gap: 9px; min-width: 0; }
.form-field label { color: #f3f0ea; font-size: 15px; font-weight: 500; }
.form-field label span { color: #b9b3a7; font-weight: 400; }
.form-field.wide { grid-column: 1 / -1; }
.form-field input, .form-field textarea {
  width: 100%; padding: 15px 17px; border: 1px solid #605b52; border-radius: 10px;
  background: #2b2a26; color: #f3f0ea; font-size: 16px; line-height: 1.5;
  transition: border-color 150ms ease;
}
.form-field input::placeholder, .form-field textarea::placeholder { color: #a8a398; opacity: 1; }
.form-field input:hover, .form-field textarea:hover { border-color: #8c8273; }
.form-field input:focus, .form-field textarea:focus { border-color: #e2875f; }
.form-field textarea { min-height: 160px; resize: vertical; }
.contact-form button {
  display: inline-flex; align-items: center; justify-content: center; min-height: 54px;
  margin-top: 28px; padding: 0 28px; border: 0; border-radius: 999px;
  background: #e2875f; color: #201f1c; font-size: 17px; font-weight: 600;
}
.contact-form button:hover { background: #f0a47f; }
.contact-form button:disabled { opacity: .65; cursor: wait; }
.form-note { color: #b9b3a7; font-size: 13px; line-height: 1.6; margin: 16px 0 0; }
.form-status { margin: 16px 0 0; font-size: 15px; line-height: 1.6; }
.form-status:empty { display: none; }
.form-status.is-success { color: #d6e4b5; }
.form-status.is-error { color: #ffb8a5; }
.form-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

@media (max-width: 600px) {
  section[style] { padding: 64px 20px !important; }
  header[style], footer[style] { padding-left: 20px !important; padding-right: 20px !important; }
  .form-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  #season-cycle { flex-direction: column; }
  #season-cycle > div[aria-hidden] { transform: rotate(90deg); font-size: 30px !important; }
  #season-cycle > div { flex-basis: auto !important; }
  .outputs-grid { grid-template-columns: minmax(0, 1fr) !important; gap: 32px !important; }
  .contact-form button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition: none !important; }
}
