/* =================================================================
   Factor Quote — calculator UI, daylight theme.
   Only presentation lives here; none of the pricing logic.
   ================================================================= */

.fq{
  --fq-white:var(--white,#fff);
  --fq-paper:var(--paper,#FBFAF7);
  --fq-line:var(--line,#E4EAF0);
  --fq-line-2:var(--line-2,#D3DDE6);
  --fq-ink:var(--ink,#16202B);
  --fq-body:var(--ink-body,#425263);
  --fq-soft:var(--ink-soft,#66788C);
  --fq-sky:var(--sky,#2E9BD6);
  --fq-sky-deep:var(--sky-deep,#12608F);
  --fq-sky-tint:var(--sky-tint,#E1F1FB);
  --fq-sun:var(--sun,#F0A93B);
  --fq-sun-light:var(--sun-light,#FFD07A);
  --fq-sun-ink:var(--sun-ink,#8A5B00);
  --fq-sun-tint:var(--sun-tint,#FDF0DC);
  --fq-land:var(--land,#4A7A3C);
  --fq-red:#C4483C;
  --fq-r:14px;

  background:var(--fq-white);
  border:1px solid var(--fq-line);
  border-radius:var(--r-2xl,40px);
  padding:clamp(22px,3.4vw,44px);
  box-shadow:var(--shadow-lg,0 30px 70px -24px rgba(22,32,43,.24));
  color:var(--fq-ink);
  max-width:960px;margin-inline:auto;
}
.fq *,.fq *::before,.fq *::after{box-sizing:border-box}
.fq .is-hidden{display:none!important}

/* ---------- Steps ---------- */
.fq-step{border:0;padding:0;margin:0 0 30px;min-width:0}
.fq-step legend{
  display:flex;align-items:center;gap:12px;padding:0;margin-bottom:18px;
  font-family:var(--ff-head,Montserrat,sans-serif);font-weight:700;font-size:1.1rem;
  letter-spacing:-.02em;color:var(--fq-ink);
}
.fq-num{
  width:28px;height:28px;flex-shrink:0;border-radius:50%;display:grid;place-items:center;
  background:var(--fq-sun);color:var(--fq-ink);font-size:.82rem;font-weight:800;
}
.fq-field{margin-bottom:20px}
.fq-field:last-child{margin-bottom:0}
.fq-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:620px){.fq-row{grid-template-columns:1fr;gap:0}}
.fq-label{
  display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  font-size:.85rem;font-weight:600;color:var(--fq-body);margin-bottom:9px;
}
.fq-opt{font-weight:400;color:var(--fq-soft);font-size:.78rem}
.fq-help{font-size:.81rem;color:var(--fq-soft);margin:9px 0 0;line-height:1.5}
.fq-help strong{color:var(--fq-body)}
.fq-out{
  font-family:var(--ff-head,Montserrat,sans-serif);font-weight:800;font-size:1.05rem;
  color:var(--fq-sky-deep);white-space:nowrap;
}

/* ---------- Video / photo toggles ---------- */
.fq-toggle-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:22px}
.fq-toggle{
  display:flex;align-items:center;gap:10px;cursor:pointer;user-select:none;
  padding:12px 22px;border-radius:999px;border:1.5px solid var(--fq-line-2);
  background:var(--fq-white);transition:.16s;
}
.fq-toggle:hover{border-color:var(--fq-sky)}
.fq-toggle input{position:absolute;opacity:0;width:0;height:0}
.fq-toggle-box{
  width:19px;height:19px;border-radius:6px;border:2px solid var(--fq-line-2);
  flex-shrink:0;position:relative;transition:.16s;background:var(--fq-white);
}
.fq-toggle input:checked ~ .fq-toggle-box{background:var(--fq-sky-deep);border-color:var(--fq-sky-deep)}
.fq-toggle-box::after{
  content:'';position:absolute;left:5px;top:1px;width:5px;height:10px;
  border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg) scale(0);
  transition:transform .16s cubic-bezier(.3,1.6,.5,1);
}
.fq-toggle input:checked ~ .fq-toggle-box::after{transform:rotate(45deg) scale(1)}
.fq-toggle:has(input:checked){border-color:var(--fq-sky-deep);background:var(--fq-sky-tint)}
.fq-toggle input:focus-visible ~ .fq-toggle-box{outline:3px solid var(--fq-sky-deep);outline-offset:3px}
.fq-toggle-label{font-family:var(--ff-head,Montserrat,sans-serif);font-weight:700;font-size:.95rem;color:var(--fq-ink)}

.fq-panel{
  border-left:2px solid var(--fq-line);padding-left:clamp(14px,2.4vw,24px);
  margin-bottom:22px;animation:fq-in .28s ease both;
}
@keyframes fq-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* ---------- Tier cards ---------- */
.fq-tiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(172px,1fr));gap:10px}
.fq-tier{position:relative;cursor:pointer;display:block}
.fq-tier input{position:absolute;opacity:0;width:0;height:0}
.fq-tier-body{
  display:block;padding:16px;border-radius:var(--fq-r);border:1.5px solid var(--fq-line);
  background:var(--fq-paper);transition:.17s;height:100%;
}
.fq-tier:hover .fq-tier-body{border-color:var(--fq-sky)}
.fq-tier input:checked + .fq-tier-body{
  border-color:var(--fq-sky-deep);background:var(--fq-sky-tint);
  box-shadow:0 0 0 1px var(--fq-sky-deep) inset;
}
.fq-tier input:focus-visible + .fq-tier-body{outline:3px solid var(--fq-sky-deep);outline-offset:3px}
.fq-tier-name{
  display:block;font-family:var(--ff-head,Montserrat,sans-serif);font-weight:700;
  font-size:.92rem;margin-bottom:4px;color:var(--fq-ink);
}
.fq-tier-price{
  display:block;font-family:var(--ff-head,Montserrat,sans-serif);font-weight:800;
  font-size:1.42rem;color:var(--fq-sky-deep);line-height:1.15;margin-bottom:7px;letter-spacing:-.03em;
}
.fq-tier-price small{font-size:.62rem;font-weight:700;color:var(--fq-soft);margin-left:3px}
.fq-tier-desc{display:block;font-size:.78rem;color:var(--fq-soft);line-height:1.45}

/* ---------- Sliders ---------- */
.fq-range{
  -webkit-appearance:none;appearance:none;width:100%;height:7px;border-radius:999px;
  background:linear-gradient(90deg,var(--fq-sky-deep) 0%,var(--fq-sky-deep) var(--fq-pct,20%),var(--fq-line) var(--fq-pct,20%),var(--fq-line) 100%);
  outline:none;cursor:pointer;margin:6px 0;
}
.fq-range::-webkit-slider-thumb{
  -webkit-appearance:none;appearance:none;width:24px;height:24px;border-radius:50%;
  background:var(--fq-white);cursor:grab;border:3px solid var(--fq-sky-deep);
  box-shadow:0 3px 10px rgba(18,96,143,.3);transition:transform .12s;
}
.fq-range::-webkit-slider-thumb:active{cursor:grabbing;transform:scale(1.14)}
.fq-range::-moz-range-thumb{
  width:20px;height:20px;border-radius:50%;background:var(--fq-white);cursor:grab;
  border:3px solid var(--fq-sky-deep);box-shadow:0 3px 10px rgba(18,96,143,.3);
}
.fq-range:focus-visible{outline:3px solid var(--fq-sky-deep);outline-offset:5px}
.fq-range-marks{
  display:flex;justify-content:space-between;font-size:.71rem;color:var(--fq-soft);
  margin-top:5px;font-variant-numeric:tabular-nums;
}

/* ---------- Inputs ---------- */
.fq-input{
  width:100%;padding:14px 16px;border-radius:var(--fq-r);border:1.5px solid var(--fq-line-2);
  background:var(--fq-white);color:var(--fq-ink);font-size:.97rem;font-family:inherit;
  transition:border-color .16s,box-shadow .16s;
}
.fq-input::placeholder{color:var(--fq-soft)}
.fq-input:focus{outline:none;border-color:var(--fq-sky-deep);box-shadow:0 0 0 3px rgba(46,155,214,.2)}

.fq-linkbtn{
  background:none;border:0;padding:6px 0;margin-top:8px;cursor:pointer;
  color:var(--fq-sky-deep);font-size:.85rem;font-weight:600;font-family:inherit;
  text-decoration:underline;text-underline-offset:3px;
}
.fq-linkbtn:hover{color:var(--fq-sky)}
.fq-center{display:block;margin:16px auto 0;text-align:center}
.fq-manual{margin-top:14px}

/* Rush */
.fq-check{
  display:flex;gap:13px;align-items:flex-start;cursor:pointer;padding:16px 18px;
  border-radius:var(--fq-r);border:1.5px solid var(--fq-line-2);background:var(--fq-white);transition:.16s;
}
.fq-check:hover{border-color:var(--fq-sky)}
.fq-check:has(input:checked){border-color:var(--fq-sun);background:var(--fq-sun-tint)}
.fq-check input{position:absolute;opacity:0;width:0;height:0}
.fq-check-box{
  width:19px;height:19px;border-radius:6px;border:2px solid var(--fq-line-2);
  flex-shrink:0;margin-top:2px;position:relative;transition:.16s;background:var(--fq-white);
}
.fq-check input:checked ~ .fq-check-box{background:var(--fq-sun);border-color:var(--fq-sun)}
.fq-check-box::after{
  content:'';position:absolute;left:5px;top:1px;width:5px;height:10px;
  border:solid var(--fq-ink);border-width:0 2.5px 2.5px 0;transform:rotate(45deg) scale(0);transition:transform .16s;
}
.fq-check input:checked ~ .fq-check-box::after{transform:rotate(45deg) scale(1)}
.fq-check input:focus-visible ~ .fq-check-box{outline:3px solid var(--fq-sky-deep);outline-offset:3px}
.fq-check strong{display:block;font-size:.93rem;font-weight:700;margin-bottom:2px}
.fq-check small{display:block;font-size:.8rem;color:var(--fq-soft);line-height:1.45}

/* ---------- Result ---------- */
.fq-result{
  background:var(--fq-paper);border:1px solid var(--fq-line);border-radius:var(--r-lg,22px);
  padding:clamp(20px,3vw,30px);margin-bottom:22px;
}
.fq-result-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.fq-result-eyebrow{
  font-family:var(--ff-head,Montserrat,sans-serif);font-size:.68rem;font-weight:800;
  letter-spacing:.19em;text-transform:uppercase;color:var(--fq-soft);
}
.fq-spinner{
  width:15px;height:15px;border-radius:50%;border:2px solid var(--fq-line-2);
  border-top-color:var(--fq-sky-deep);animation:fq-spin .7s linear infinite;
}
@keyframes fq-spin{to{transform:rotate(360deg)}}

.fq-error{
  background:#FDECEA;border:1px solid #F1B7B0;color:#8C2F25;
  border-radius:var(--fq-r);padding:12px 15px;font-size:.87rem;margin-bottom:15px;
}

.fq-lines{list-style:none;padding:0;margin:0 0 16px}
.fq-lines li{
  display:flex;justify-content:space-between;align-items:flex-start;gap:16px;
  padding:13px 0;border-bottom:1px solid var(--fq-line);
}
.fq-lines li:last-child{border-bottom:0}
.fq-line-label{font-weight:600;font-size:.93rem;display:block;margin-bottom:2px}
.fq-line-detail{font-size:.79rem;color:var(--fq-soft);display:block;line-height:1.45}
.fq-line-price{
  font-family:var(--ff-head,Montserrat,sans-serif);font-weight:700;font-size:1rem;
  white-space:nowrap;text-align:right;flex-shrink:0;
}
.fq-line-price.is-free{color:var(--fq-land);font-size:.83rem;letter-spacing:.09em}

.fq-totals{border-top:2px solid var(--fq-line-2);padding-top:16px}
.fq-total-row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:8px}
.fq-total-row:last-child{margin-bottom:0}
.fq-total-market{font-size:.85rem;color:var(--fq-soft)}
.fq-total-market span:last-child{text-decoration:line-through}
.fq-total-main{font-family:var(--ff-head,Montserrat,sans-serif);font-weight:800;font-size:1.12rem;padding:6px 0}
.fq-total-main span:last-child{font-size:2.4rem;color:var(--fq-ink);line-height:1;letter-spacing:-.04em}
.fq-total-save{font-size:.87rem;color:var(--fq-land);font-weight:600}

.fq-included{
  margin-top:18px;padding:15px 17px;border-radius:var(--fq-r);
  background:var(--land-tint,#E9F2E2);border:1px solid #C6DFB8;
  font-size:.85rem;color:#33512A;line-height:1.55;
}
.fq-included strong{color:var(--fq-land)}

/* ---------- The call CTA ---------- */
.fq-cta{
  margin-top:20px;padding:22px;border-radius:var(--r-lg,22px);
  background:var(--fq-ink);color:#fff;
  display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
}
.fq-cta-text strong{
  display:block;font-family:var(--ff-head,Montserrat,sans-serif);font-size:1.05rem;
  font-weight:800;margin-bottom:3px;color:#fff;
}
.fq-cta-text span{display:block;font-size:.84rem;color:#A9BACB;max-width:40ch}
.fq-call{
  display:inline-flex;align-items:center;gap:10px;flex-shrink:0;
  background:var(--fq-sun);color:var(--fq-ink);
  font-family:var(--ff-head,Montserrat,sans-serif);font-weight:800;font-size:1.15rem;
  padding:15px 28px;border-radius:999px;text-decoration:none;white-space:nowrap;
  transition:transform .16s,background .16s;
}
.fq-call:hover{transform:translateY(-2px);background:var(--fq-sun-light);color:var(--fq-ink)}

/* ---------- Contact block ---------- */
.fq-contact{
  background:var(--fq-paper);border:1px solid var(--fq-line);
  border-radius:var(--r-lg,22px);padding:clamp(20px,3vw,28px);margin-bottom:22px;
  animation:fq-in .3s ease both;
}
.fq-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.fq-submit{
  width:100%;padding:17px;border:0;border-radius:999px;cursor:pointer;
  background:var(--fq-ink);color:#fff;
  font-family:var(--ff-head,Montserrat,sans-serif);font-weight:800;font-size:1rem;
  transition:transform .16s,opacity .16s,background .16s;
}
.fq-submit:hover:not(:disabled){transform:translateY(-2px);background:#22303F}
.fq-submit:disabled{opacity:.55;cursor:wait;transform:none}
.fq-status{text-align:center;font-size:.87rem;margin:13px 0 0;min-height:1.2em}
.fq-status.is-ok{color:var(--fq-land);font-weight:600}
.fq-status.is-bad{color:var(--fq-red)}
.fq-fineprint{font-size:.75rem;color:var(--fq-soft);text-align:center;margin:10px 0 0}
.fq-disclaimer{font-size:.78rem;color:var(--fq-soft);line-height:1.55;margin:0;text-align:center;max-width:62ch;margin-inline:auto}

@media (max-width:560px){
  .fq-cta{flex-direction:column;align-items:stretch;text-align:center}
  .fq-call{justify-content:center}
  .fq-total-main span:last-child{font-size:1.9rem}
}
