:root{
  --max: 1040px;
  --text: #121c2d;
  --muted: rgba(18,28,45,.68);
  --line: rgba(18,28,45,.10);
  --card: rgba(255,255,255,.92);
  --blue: #1E66FF;
  --blue2:#2FB8FF;
  --bg: #f6f9ff;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  color:var(--text);
  background:
    radial-gradient(900px 560px at 15% 0%, rgba(47,184,255,.18), transparent 60%),
    radial-gradient(900px 560px at 85% 0%, rgba(30,102,255,.18), transparent 60%),
    linear-gradient(180deg, #fff 0%, var(--bg) 55%, #fff 120%);
}

a{color:inherit;text-decoration:none}
.container{max-width:var(--max);margin:0 auto;padding:0 22px}

.header{
  position:sticky; top:0; z-index:10;
  background: rgba(255,255,255,.78);
  backdrop-filter: blur(14px);
  border-bottom:1px solid var(--line);
}
.headerInner{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 0; gap:16px;
}
.brand{display:flex; align-items:center; gap:12px; min-width:0}
.logo svg{width:40px;height:40px;display:block}
.brandText{display:flex; flex-direction:column; line-height:1.15; min-width:0}
.brandTitle{
  font-weight:900; letter-spacing:.2px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.brandSubtitle{
  color:var(--muted); font-size:12px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  margin-top:2px;
}

.nav{margin-left:auto}
.navBtn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:10px 14px;
  border-radius:14px;
  border:1px solid rgba(30,102,255,.18);
  background: rgba(30,102,255,.10);
  color: var(--blue);
  font-weight:800;
}
.navBtn:hover{background: rgba(30,102,255,.14)}
@media (max-width:560px){
  .brandSubtitle{display:none}
}

.main{padding:28px 0 70px}

.hero h1{margin:8px 0 8px; font-size:34px; letter-spacing:-.5px}
.hero p{margin:0; color:var(--muted); max-width:70ch}

.card{
  margin-top:18px;
  background: var(--card);
  border:1px solid var(--line);
  border-radius:22px;
  padding:18px;
  box-shadow: 0 14px 60px rgba(18,28,45,.08);
}

.sectionTitle{
  font-weight:900;
  font-size:13px;
  color:rgba(18,28,45,.62);
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-bottom:12px;
}

.grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:12px;
}
@media (max-width:900px){ .grid{grid-template-columns:1fr} }

.choice{
  text-align:left;
  padding:16px;
  border-radius:18px;
  border:1px solid rgba(18,28,45,.10);
  background: rgba(255,255,255,.86);
  cursor:pointer;
}
.choice:hover{
  border-color: rgba(30,102,255,.28);
  box-shadow: 0 10px 30px rgba(30,102,255,.10);
}
.choiceTitle{font-weight:900; font-size:16px; margin-bottom:6px}
.choiceSub{color:var(--muted); font-size:13px; line-height:1.25}

.hidden{display:none !important}

.stepHeader{
  display:flex; align-items:flex-start; gap:12px;
  margin-bottom:12px;
}
.backBtn{
  width:38px;height:38px;
  border-radius:14px;
  border:1px solid rgba(18,28,45,.10);
  background: rgba(255,255,255,.90);
  cursor:pointer;
}
.backBtn:hover{border-color: rgba(30,102,255,.28)}
.selectedCat{font-weight:900; font-size:18px; margin-top:2px}

.chips{
  display:flex; flex-wrap:wrap; gap:10px;
  margin:10px 0 18px;
}
.chip{
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(18,28,45,.10);
  background: rgba(255,255,255,.85);
  color: rgba(18,28,45,.86);
  font-weight:750;
  cursor:pointer;
}
.chip:hover{border-color: rgba(30,102,255,.28)}
.chip.selected{
  border-color: rgba(30,102,255,.55);
  outline: 3px solid rgba(47,184,255,.18);
  background: rgba(30,102,255,.06);
}

.field{margin:14px 0}
.label{display:block; font-weight:850; font-size:13px; margin-bottom:8px}
.twoCol{display:grid; grid-template-columns: 1fr 1fr; gap:12px}
@media (max-width:900px){ .twoCol{grid-template-columns:1fr} }

.input,.select,.textarea{
  width:100%;
  padding:12px 12px;
  border-radius:14px;
  border:1px solid rgba(18,28,45,.10);
  background: rgba(255,255,255,.92);
  font-size:14px;
  outline:none;
}
.input:focus,.select:focus,.textarea:focus{
  border-color: rgba(30,102,255,.55);
  box-shadow: 0 0 0 4px rgba(47,184,255,.14);
}

.reqTypes{display:flex; flex-wrap:wrap; gap:10px}
.reqType{
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(18,28,45,.10);
  background: rgba(255,255,255,.85);
  font-weight:800;
  cursor:pointer;
}
.reqType:hover{border-color: rgba(30,102,255,.28)}
.reqType.selected{
  border-color: rgba(30,102,255,.55);
  outline: 3px solid rgba(47,184,255,.18);
  background: rgba(30,102,255,.06);
}

.submitRow{display:flex; justify-content:center; margin-top:18px}
.primaryBtn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:14px 26px;
  border-radius:16px;
  border:none;
  background: var(--blue);
  color:#fff;
  font-weight:900;
  font-size:16px;
  cursor:pointer;
}
.primaryBtn:hover{filter:brightness(.95)}
.ghostBtn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:14px 18px;
  border-radius:16px;
  border:1px solid rgba(18,28,45,.12);
  background: rgba(255,255,255,.90);
  font-weight:900;
  cursor:pointer;
}
.ghostBtn:hover{border-color: rgba(30,102,255,.28)}
.linkBtn{ text-decoration:none }

.thanks{margin-top:18px}
.thanksCard{
  background: var(--card);
  border:1px solid var(--line);
  border-radius:22px;
  padding:24px;
  box-shadow: 0 14px 60px rgba(18,28,45,.08);
}
.thanksCard h2{margin:0 0 10px}
.thanksCard p{margin:0; color:var(--muted); font-size:16px}
.thanksMeta{margin-top:10px; color:rgba(18,28,45,.60); font-size:13px}
.thanksActions{display:flex; gap:10px; flex-wrap:wrap; justify-content:center; margin-top:16px}

.regions{
  margin:26px 0 0;
  display:flex; gap:10px; flex-wrap:wrap;
  align-items:center; justify-content:center;
  color:rgba(18,28,45,.65);
  font-size:13px;
}
.regionsLabel{font-weight:900}
.regionsList{font-weight:650}

.contact{margin-top:22px}
.contactCard h3{margin:0 0 10px}
.contactBlock{
  padding:16px 18px;
  border-radius:18px;
  background: rgba(30,102,255,.04);
  border:1px solid rgba(18,28,45,.08);
}
.contactName{font-weight:950; font-size:16px}
.contactRole{margin-top:2px; color:rgba(18,28,45,.65); font-size:13px}
.contactCompany{margin-top:10px; font-weight:800; color:rgba(18,28,45,.82)}
.contactEmail{margin-top:6px}
.contactEmail a{color:var(--blue); font-weight:900}
.contactEmail a:hover{text-decoration:underline}

.footer{
  border-top:1px solid var(--line);
  background: rgba(255,255,255,.70);
}
.footerInner{padding:18px 0; color:rgba(18,28,45,.62); font-size:13px}

.navLink{
  color: rgba(18,28,45,.78);
  font-weight:800;
  padding:10px 12px;
  border-radius:14px;
}
.navLink:hover{background: rgba(30,102,255,.08); color: rgba(18,28,45,.90)}

.footerInner{display:flex;align-items:center;justify-content:space-between;gap:14px}
.footerLinks{display:flex;gap:14px;flex-wrap:wrap}
.footerLinks a{color:rgba(18,28,45,.65);font-weight:800}
.footerLinks a:hover{color:rgba(30,102,255,.95)}
.footerLeft{color:rgba(18,28,45,.62);font-weight:700}
@media (max-width:620px){
  .footerInner{flex-direction:column;align-items:flex-start}
}

/* legal pages */
.legalWrap{padding:24px 0 70px}
.legalCard{margin-top:16px}
.legal h1{margin:8px 0 10px;font-size:30px;letter-spacing:-.4px}
.legal h2{margin:22px 0 10px;font-size:16px}
.legal p, .legal li{color:rgba(18,28,45,.78);line-height:1.55}
.legal .small{color:rgba(18,28,45,.60);font-size:13px}
.legal a{color:var(--blue);font-weight:900}
