/* ============================================================
   VOW FLOW MEDIA — FORM COMPONENTS
   Additive to tokens.css. Load AFTER tokens.css.
   Does not override any existing token or component.
   ============================================================ */

.form{
  max-width:64ch;
  margin-top:var(--s7);
}

.form__group{
  padding-block:var(--s5);
  border-top:1px solid var(--rule);
}
.form__group:last-of-type{ border-bottom:1px solid var(--rule); }

.form__label{
  display:block;
  font-family:var(--mono);
  font-size:12px;
  line-height:1.4;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--ink-muted);
  margin-bottom:var(--s3);
}
.form__hint{
  display:block;
  font-size:15px;
  line-height:1.5;
  color:var(--ink-muted);
  margin-bottom:var(--s3);
  max-width:52ch;
}

.form__input,
.form__select,
.form__textarea{
  width:100%;
  font-family:var(--sans);
  font-size:17px;
  line-height:1.5;
  color:var(--ink);
  background:var(--paper-raised);
  border:1px solid var(--rule);
  border-radius:var(--radius);
  padding:14px var(--s4);
  transition:border-color 160ms ease, background-color 160ms ease;
  -webkit-appearance:none;
  appearance:none;
}
.form__input:hover,
.form__select:hover,
.form__textarea:hover{ border-color:var(--bronze); }
.form__input:focus,
.form__select:focus,
.form__textarea:focus{
  outline:none;
  border-color:var(--bronze-text);
  background:#fff;
}
.form__textarea{
  min-height:132px;
  resize:vertical;
}
.form__select{
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%236E5540' stroke-width='1.5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right var(--s4) center;
  padding-right:var(--s7);
  cursor:pointer;
}

.form__row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--s4);
}
@media (max-width:520px){
  .form__row{ grid-template-columns:1fr; }
}

/* Honeypot — hidden from humans, visible to bots */
.form__trap{
  position:absolute;
  left:-9999px;
  width:1px;
  height:1px;
  overflow:hidden;
}

.form__actions{ margin-top:var(--s7); }
.form__note{
  margin-top:var(--s5);
  color:var(--ink-muted);
  max-width:56ch;
}

.form__error{
  display:none;
  margin-top:var(--s3);
  font-size:15px;
  color:#8C3A2A;
}
.form__error.is-visible{ display:block; }

.form__group.has-error .form__input,
.form__group.has-error .form__select,
.form__group.has-error .form__textarea{ border-color:#8C3A2A; }

/* Submitting state */
.btn[aria-busy="true"]{
  opacity:0.55;
  pointer-events:none;
}

/* ============================================================
   SCHEDULER EMBED — thank-you page
   ============================================================ */
.scheduler{
  margin-top:var(--s7);
  border:1px solid var(--rule);
  background:var(--paper-raised);
  padding:var(--s4);
}
.scheduler .meetings-iframe-container{ min-height:660px; }
.scheduler iframe{ border:0; width:100%; }

/* ============================================================
   MOBILE NAVIGATION
   tokens.css hides .nav__links below 760px with no replacement,
   which leaves phones with no nav and no CTA. This restores it.
   ============================================================ */
.nav__mobile{ display:none; }
@media (max-width:760px){
  .nav__mobile{
    display:flex;
    gap:var(--s5);
    align-items:center;
  }
  .nav__mobile a{
    font-size:15px;
    color:var(--ink-body);
    text-decoration:none;
  }
  .nav__mobile a.btn{
    height:40px;
    padding-inline:18px;
    font-size:14px;
    width:auto;
    color:var(--paper);
  }
}
