/* ============================================================
   BLX Platform — the Get a Quote page.

   Ported from the standalone quote plugin, restyled onto the
   platform's blxn vocabulary. Every colour is a token, so the
   form is correct in both designs for free: Powder reads the
   light values off :root, Noir's body.blxn-dark swaps them all
   to the dark set, and nothing below is written twice.
   Mobile first: most of this traffic is a phone.
   ============================================================ */

.blxqr-root{
  font-family:var(--blxn-sans);
  color:var(--blxn-ink);
  background:var(--blxn-paper);
  -webkit-font-smoothing:antialiased;
  line-height:1.6;
}
.blxqr-root *,.blxqr-root *::before,.blxqr-root *::after{ box-sizing:border-box; }
.blxqr-root img{ max-width:100%; height:auto; }

/* ---------- page body ---------- */
.blxqr-main{ width:100%; max-width:1040px; margin:0 auto; padding:40px 20px 64px; }
.blxqr-head{ margin-bottom:26px; }
.blxqr-h1{
  font-family:var(--blxn-serif);
  font-size:var(--blxn-t-h2); line-height:1.12; margin:6px 0 12px;
  color:var(--blxn-ink-strong); font-weight:600; letter-spacing:-.005em;
}
.blxqr-lede{ margin:0; font-size:var(--blxn-t-lead); color:var(--blxn-ink-soft); max-width:62ch; }

.blxqr-alert{
  margin:0 0 22px; padding:13px 16px; border-left:3px solid #a52a1a;
  background:var(--blxn-paper-2); color:var(--blxn-ink); font-size:15px;
}

.blxqr-section{ padding:26px 0; border-top:1px solid var(--blxn-line); }
.blxqr-section-type{ border-top:0; padding-top:0; }
.blxqr-section[hidden]{ display:none; }
.blxqr-h2{
  font-family:var(--blxn-serif);
  font-size:22px; margin:0 0 4px; color:var(--blxn-ink-strong); font-weight:600;
}
.blxqr-sub{ margin:0 0 16px; color:var(--blxn-ink-soft); font-size:var(--blxn-t-small); }

/* ---------- the picker ---------- */
/* grid-auto-rows:1fr plus a stretching tile: every card is the same height,
   whatever length its hint runs to. */
.blxqr-types{ display:grid; grid-template-columns:1fr; grid-auto-rows:1fr; gap:10px; margin-top:14px; }
.blxqr-type{ display:flex; cursor:pointer; }
.blxqr-type input{ position:absolute; opacity:0; width:1px; height:1px; }
.blxqr-type-in{
  display:flex; flex-direction:column; flex:1 1 auto;
  padding:14px 16px; border:1px solid var(--blxn-line-2);
  background:var(--blxn-paper); transition:border-color .12s,box-shadow .12s,background .12s;
}
.blxqr-type:hover .blxqr-type-in{ border-color:var(--blxn-ink-strong); }
.blxqr-type input:checked + .blxqr-type-in{
  border-color:var(--blxn-brass-2); box-shadow:inset 0 0 0 2px var(--blxn-brass-2);
  background:var(--blxn-brass-wash);
}
.blxqr-type input:focus-visible + .blxqr-type-in{ outline:2px solid var(--blxn-brass-2); outline-offset:2px; }
.blxqr-type-label{ display:block; font-weight:700; color:var(--blxn-ink-strong); font-size:15.5px; }
.blxqr-type-hint{ display:block; color:var(--blxn-ink-soft); font-size:13.5px; margin-top:3px; }

/* ---------- fields ---------- */
.blxqr-row{ display:grid; grid-template-columns:1fr; gap:16px; }
.blxqr-f{ min-width:0; }
.blxqr-label{
  display:block; font-size:var(--blxn-t-eyebrow); font-weight:700; letter-spacing:.08em;
  text-transform:uppercase; color:var(--blxn-ink-strong); margin-bottom:6px;
}
.blxqr-req{ color:var(--blxn-brass-2); margin-left:3px; }
.blxqr-root input[type=text],.blxqr-root input[type=email],.blxqr-root input[type=tel],
.blxqr-root input[type=date],.blxqr-root input[type=time],.blxqr-root input[type=number],
.blxqr-root select,.blxqr-root textarea{
  width:100%; font-family:var(--blxn-sans); font-size:16px; /* 16px or iOS zooms */
  color:var(--blxn-ink-strong); background:var(--blxn-paper);
  border:1px solid var(--blxn-line-2); border-radius:0;
  padding:12px 13px; line-height:1.4; appearance:none; -webkit-appearance:none;
}
.blxqr-root select{
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23888' stroke-width='1.6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 13px center; background-size:12px 8px;
  padding-right:36px;
}
.blxqr-root textarea{ min-height:96px; resize:vertical; }
.blxqr-root input::placeholder,.blxqr-root textarea::placeholder{ color:var(--blxn-ink-soft); opacity:.75; }
.blxqr-root input:focus,.blxqr-root select:focus,.blxqr-root textarea:focus{
  border-color:var(--blxn-brass-2); outline:none; box-shadow:0 0 0 3px var(--blxn-brass-wash);
}
.blxqr-hint{ margin:6px 0 0; font-size:12.5px; color:var(--blxn-ink-soft); }
.blxqr-err{ margin:6px 0 0; font-size:12.5px; color:#a52a1a; font-weight:600; }
body.blxn-dark .blxqr-err{ color:#e08575; }
.blxqr-err[hidden]{ display:none; }
.blxqr-f.is-bad input,.blxqr-f.is-bad select,.blxqr-f.is-bad textarea{ border-color:#a52a1a; }

.blxqr-checks{ display:grid; grid-template-columns:1fr 1fr; gap:8px 12px; }
.blxqr-check{ display:flex; align-items:flex-start; gap:8px; font-size:14.5px; cursor:pointer; color:var(--blxn-ink); }
.blxqr-check input{ margin-top:3px; width:17px; height:17px; accent-color:var(--blxn-brass-2); flex:0 0 auto; }

/* ---------- movements ---------- */
.blxqr-leg{ border:1px solid var(--blxn-line); background:var(--blxn-paper-2); padding:16px; margin-bottom:12px; }
.blxqr-leg-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.blxqr-leg-n{ font-size:var(--blxn-t-eyebrow); letter-spacing:.1em; text-transform:uppercase; color:var(--blxn-ink-soft); font-weight:700; }
.blxqr-leg-x{ background:none; border:0; color:var(--blxn-ink-soft); font-size:13px; cursor:pointer; text-decoration:underline; padding:2px 4px; }
.blxqr-leg-x:hover{ color:#a52a1a; }
.blxqr-legs .blxqr-leg:first-child .blxqr-leg-x{ display:none; }
.blxqr-legs.has-many .blxqr-leg:first-child .blxqr-leg-x{ display:inline; }

/* ---------- buttons ---------- */
.blxqr-btn{
  display:inline-block; font-family:var(--blxn-sans); font-size:14px; font-weight:700;
  letter-spacing:.09em; text-transform:uppercase; text-decoration:none;
  padding:15px 30px; border:1px solid transparent; cursor:pointer; border-radius:0;
  transition:filter .12s,background .12s,color .12s;
}
.blxqr-btn-brass{ background:var(--blxn-brass); color:var(--blxn-paper); }
.blxqr-btn-brass:hover{ background:var(--blxn-brass-2); }
body.blxn-dark .blxqr-btn-brass{ color:#171310; }
.blxqr-btn-ghost{
  background:transparent; color:var(--blxn-ink-strong); border-color:var(--blxn-line-2);
  font-size:13px; padding:11px 18px; letter-spacing:.05em;
}
.blxqr-btn-ghost:hover{ border-color:var(--blxn-brass-2); color:var(--blxn-brass); }
body.blxn-dark .blxqr-btn-ghost:hover{ color:var(--blxn-brass-2); }
.blxqr-btn[disabled]{ opacity:.55; cursor:not-allowed; }

.blxqr-submit{ padding:26px 0 0; border-top:1px solid var(--blxn-line); margin-top:8px; }
.blxqr-fineprint{ margin:14px 0 0; font-size:13px; color:var(--blxn-ink-soft); }
.blxqr-hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

/* ---------- thanks ---------- */
.blxqr-thanks{ max-width:620px; margin:0 auto; padding:56px 0 64px; text-align:center; }
.blxqr-thanks-mark{ color:var(--blxn-brass-2); margin-bottom:18px; }
.blxqr-thanks h1{
  font-family:var(--blxn-serif); font-size:30px; margin:0 0 12px;
  color:var(--blxn-ink-strong); font-weight:600;
}
.blxqr-thanks p{ margin:0 0 14px; font-size:var(--blxn-t-lead); color:var(--blxn-ink-soft); }
.blxqr-ref{ font-size:14px !important; }
.blxqr-ref strong{ color:var(--blxn-ink-strong); letter-spacing:.08em; }

/* ---------- wider than a phone ---------- */
@media (min-width:640px){
  .blxqr-types{ grid-template-columns:1fr 1fr; }
  .blxqr-row{ grid-template-columns:repeat(6,1fr); gap:18px; }
  .blxqr-w-full{ grid-column:span 6; }
  .blxqr-w-half{ grid-column:span 3; }
  .blxqr-w-third{ grid-column:span 2; }
  .blxqr-checks{ grid-template-columns:repeat(3,1fr); }
  .blxqr-main{ padding:56px 24px 80px; }
  .blxqr-section{ padding:32px 0; }
}
@media (min-width:900px){
  .blxqr-types{ grid-template-columns:repeat(3,1fr); }
}
@media (prefers-reduced-motion:reduce){
  .blxqr-root *{ transition:none !important; animation:none !important; }
}
