/* ============================================================
   BlinQ leads site · components.css
   Reusable pieces: buttons, text links and the demo form.
   ============================================================ */

/* ============================================================
   BUTTONS
   ============================================================ */
.button{
  display:inline-flex;
  align-items:center;
  gap:12px;
  padding:18px 32px;
  border-radius:8px;
  background:var(--red);
  color:#fff;
  text-decoration:none;
  font-size:15px;
  font-weight:700;
  letter-spacing:-.005em;
  border:none;
  cursor:pointer;
  transition:background .2s ease,transform .2s ease,box-shadow .2s ease;
  box-shadow:0 12px 30px -12px rgba(240,52,31,.6);
}
.button:hover{
  background:var(--red-2);
  transform:translateY(-2px);
  box-shadow:0 18px 40px -12px rgba(240,52,31,.75);
}
.button span{font-size:17px;line-height:1;transition:transform .25s var(--ease)}
.button:hover span{transform:translateX(4px)}
/* Smaller button for use inside cards */
.button--sm{gap:10px;padding:15px 24px;font-size:14.5px}

/* ============================================================
   TEXT LINK
   ============================================================ */
.textlink{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:28px;
  padding-bottom:3px;
  font-size:14.5px;
  font-weight:600;
  color:var(--red);
  text-decoration:none;
  transition:color .2s ease;
}
.textlink:hover{color:var(--red-2)}

/* ============================================================
   DEMO FORM (two-step card)
   ============================================================ */
.formcard{
  background:#FFFFFF;
  border-radius:16px;
  padding:28px 32px 26px;
  color:#111;
  box-shadow:0 30px 70px -50px rgba(0,0,0,.9);
}
.formTopRow{
  display:flex;
  justify-content:space-between;
  font-size:12px;
  font-weight:600;
  padding-bottom:20px;
  border-bottom:1px solid #EAEAEA;
  margin-bottom:24px;
}
.formTopRow .step-active{color:var(--red)}
.formTopRow .step-inactive{color:#B4B4B4}

.formTitle{
  font-size:22px;
  font-weight:600;
  margin:0 0 6px;
  letter-spacing:-.025em;
  color:#111;
}
.formSub{
  font-size:14px;
  color:#7A7A7A;
  margin:0 0 20px;
}

.choices{
  display:grid;
  gap:10px;
  margin-bottom:6px;
}
.choices button{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:15px 18px;
  border:1px solid #E3E3E3;
  border-radius:10px;
  background:#fff;
  font-size:14px;
  font-weight:500;
  color:#111;
  cursor:pointer;
  text-align:left;
  font-family:inherit;
  transition:border-color .2s ease,background .2s ease,color .2s ease,box-shadow .2s ease;
}
.choices button .marker{
  color:#B4B4B4;
  font-size:13px;
  transition:color .2s ease;
}
.choices button:hover{border-color:#C4C4C4;background:#FAFAFA}
.choices button[aria-pressed="true"]{
  background:#FBE8E4;
  border-color:var(--red);
  box-shadow:0 0 0 1px var(--red);
}
.choices button[aria-pressed="true"] .marker{
  color:var(--red);
  font-weight:700;
}

.formDetails{
  max-height:0;
  overflow:hidden;
  opacity:0;
  transition:max-height .55s var(--ease),opacity .4s ease,margin-top .4s ease;
  margin-top:0;
}
.formDetails.open{
  max-height:2200px;
  opacity:1;
  margin-top:22px;
}

.detailsLabel{
  font-size:12px;
  font-weight:600;
  color:#8A8A8A;
  padding-top:18px;
  border-top:1px solid #EAEAEA;
  margin-bottom:16px;
}

.formGrid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin-bottom:14px;
}
.formFull{grid-column:1 / -1}

.formField{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.formField label{
  font-size:12px;
  font-weight:600;
  color:#4A4A4A;
}
.formField input,
.formField select{
  width:100%;
  padding:12px 14px;
  border:1px solid #DCDCDC;
  border-radius:8px;
  background:#fff;
  font-size:14px;
  color:#111;
  font-family:inherit;
  outline:none;
  transition:border-color .15s ease,box-shadow .15s ease;
  -webkit-appearance:none;
  appearance:none;
}
.formField input:focus,
.formField select:focus{
  border-color:var(--red);
  box-shadow:0 0 0 3px rgba(240,52,31,.12);
}
.formField select{
  background-image:url("../assets/img/icons/select-arrow.svg");
  background-repeat:no-repeat;
  background-position:right 14px center;
  padding-right:38px;
  cursor:pointer;
}

.formCheck{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin-top:16px;
  margin-bottom:18px;
  font-size:12.5px;
  color:#6A6A6A;
  line-height:1.55;
  cursor:pointer;
}
.formCheck input{
  margin-top:3px;
  accent-color:var(--red);
  flex:0 0 auto;
  width:15px;
  height:15px;
  cursor:pointer;
}
.formCheck a{
  color:#111;
  text-decoration:underline;
  text-underline-offset:2px;
}
.formCheck a:hover{color:var(--red)}

.formSubmit{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:100%;
  padding:16px 20px;
  background:var(--red);
  color:#fff;
  border:none;
  border-radius:8px;
  font-size:15px;
  font-weight:700;
  letter-spacing:-.005em;
  cursor:pointer;
  font-family:inherit;
  transition:background .2s ease,transform .2s ease;
}
.formSubmit:hover{background:var(--red-2);transform:translateY(-1px)}

.formNote{
  text-align:center;
  font-size:12px;
  color:#9A9A9A;
  margin:14px 0 0;
}

/* Field checks, sending status and the sent state (js/form.js) */
.formField.is-invalid input,
.formField.is-invalid select{border-color:var(--red);box-shadow:0 0 0 3px rgba(240,52,31,.12)}
.formCheck.is-invalid{color:#9F1D12}
.fieldError{margin:0;font-size:12px;font-weight:500;color:#C4231A}
.formCheck + .fieldError{margin:-12px 0 16px}
.formSubmit:disabled{opacity:.7;cursor:progress;transform:none}
.formStatus{
  margin:12px 0 0;
  padding:12px 14px;
  border-radius:8px;
  background:#FDECEA;
  font-size:13px;
  line-height:1.55;
  color:#8A1C12;
}
.formStatus a{color:inherit;font-weight:600;text-decoration:underline;text-underline-offset:2px}
.formTurnstile{margin:0 0 14px}
/* Honeypot: off-screen for people, still in the form for bots */
.formHp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}

.formcard.is-sent > :not(.formSuccess){display:none}
.formSuccess{padding:28px 4px 20px;text-align:center}
.formSuccess:focus{outline:none}
.formSuccess__tick{
  display:inline-grid;
  place-items:center;
  width:52px;
  height:52px;
  margin-bottom:16px;
  border-radius:50%;
  background:var(--ok-bg);
  font-size:24px;
  font-weight:700;
  color:var(--ok-text);
}
.formSuccess .formSub{margin:8px 0 0}
