/* Contact + thanks pages. */
.page-hero { padding: var(--section) 0; }
.page-hero .eyebrow { margin-bottom: 12px; }
.page-hero .lead { margin-top: 16px; }

.contact__layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 80px); align-items: start; }
.contact__subhead { font: 400 clamp(30px, 2.6vw, 40px)/1 var(--display); color: var(--cream); text-transform: uppercase; margin-bottom: 24px; }

/* form */
.form .field { margin-bottom: 20px; }
.field__label { display: block; margin-bottom: 8px; font: 700 12.5px/1.4 var(--body); letter-spacing: .14em; text-transform: uppercase; color: var(--cream); }
.field__required { color: var(--accent); }
.field__optional { font-weight: 400; letter-spacing: .04em; text-transform: none; color: var(--muted); }
.field__input, .field__select, .field__textarea { width: 100%; min-height: 50px; padding: 12px 16px; border-radius: 12px;
  border: 1px solid #54473F; background: #1E1918; color: var(--cream); font: 400 16px/1.5 var(--body); transition: border-color .2s, box-shadow .2s; }
.field__select { appearance: none; -webkit-appearance: none; padding-right: 44px; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23F0603A' stroke-width='1.8'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 16px center; background-size: 12px 8px; }
.field__select option { background: #1E1918; color: var(--cream); }
.field__textarea { resize: vertical; min-height: 110px; }
.field__input:hover, .field__select:hover, .field__textarea:hover { border-color: #7A6A60; }
.field__input:focus, .field__select:focus, .field__textarea:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(240, 96, 58, .3); }
.field__input[aria-invalid="true"], .field__textarea[aria-invalid="true"] { border-color: #FF7A5C; }
.field__hint { margin-top: 8px; font-size: 14px; color: var(--muted); }
.field__error { margin-top: 8px; font-size: 14px; font-weight: 700; color: #FF8C70; }
.form-status { margin-top: 18px; font-weight: 700; color: #FF8C70; }
.form .btn { margin-top: 6px; }
.honeypot { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.after-form { margin-top: 26px; padding-top: 22px; border-top: 1px solid var(--line); }
.after-form__talk { font-size: clamp(17px, 1.3vw, 19px); color: var(--cream); }
.after-form a { color: var(--accent); font-weight: 700; text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1.5px; }
.after-form a:hover { color: var(--cream); }

/* Round 3 (R3-C): the form is the brief's standard white card on the light-grey section (tokens come from .section--light-alt);
   light inputs with dark type and a red focus ring. */
/* R7 accessibility: round 6 turned this section charcoal but left the card white under cream labels (contrast 1.17:1).
   The card is now the site's dark card; inputs stay white with dark type. */
.contact__panel { background: var(--bg-card); border: 1px solid rgba(242, 241, 239, .09); border-radius: 14px; padding: 28px;
  box-shadow: 0 16px 36px rgba(0, 0, 0, .26); }
.contact__panel .field__input, .contact__panel .field__select, .contact__panel .field__textarea {
  background-color: #FFFFFF; border-color: #CFCAC6; color: #231F1F; }
.contact__panel .field__select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23C42B18' stroke-width='1.8'/%3E%3C/svg%3E"); }
.contact__panel .field__select option { background: #FFFFFF; color: #231F1F; }
.contact__panel .field__input:hover, .contact__panel .field__select:hover, .contact__panel .field__textarea:hover { border-color: #8F8884; }
.contact__panel .field__input:focus, .contact__panel .field__select:focus, .contact__panel .field__textarea:focus { border-color: #C42B18; box-shadow: 0 0 0 3px rgba(196, 43, 24, .22); }
.contact__panel .field__input[aria-invalid="true"], .contact__panel .field__textarea[aria-invalid="true"] { border-color: #FF9A82; box-shadow: 0 0 0 2px rgba(255, 154, 130, .35); }
.contact__panel .field__error, .contact__panel .form-status { color: #FF9A82; }
.contact__panel :focus-visible { outline-color: #FF9A82; }

/* aside */
.contact__aside { position: sticky; top: 110px; }
.contact__details { font-style: normal; }
.contact__item + .contact__item { margin-top: 22px; padding-top: 22px; border-top: 1px solid var(--line); }
.contact__label { font: 700 12px/1.4 var(--body); letter-spacing: .2em; text-transform: uppercase; color: var(--accent); margin-bottom: 6px; }
.contact__item a { color: var(--cream); text-decoration: none; border-bottom: 1px solid #B5AEA9; overflow-wrap: anywhere; }
.contact__item a:hover { border-color: var(--accent); }
.contact__response { margin-top: 22px; font-size: 15px; color: var(--muted); }

@media (max-width: 900px) {
  .contact__layout { grid-template-columns: 1fr; }
  .contact__aside { position: static; }
}

/* thanks */
.thanks { min-height: 52vh; display: flex; align-items: center; }
.thanks .lead + .lead { margin-top: 16px; }
.thanks .eyebrow { margin-bottom: 12px; }
.thanks .btn-row { margin-top: 32px; }
.thanks .lead a { color: var(--accent); font-weight: 700; text-underline-offset: 3px; overflow-wrap: anywhere; }
.thanks .lead a:hover { color: var(--cream); }

/* closing band shares the light-grey ground of the form section: merge instead of stacking two gaps (R3-S) */
.contact + .cta-band { padding-top: 16px; }
