/* ScaleForms marketing — shared styles */
:root{
  --blue:#1E5BD8;
  --blue-deep:#123C93;
  --blue-bright:#4E86F0;
  --teal:#4A929A;
  --teal-bright:#6FB9C1;
  --ink:#0B1220;
  --ink-2:#111A2C;
  --ink-3:#1A2740;
  --paper:#F6F8FB;
  --paper-2:#EAEFF6;
  --line:#26334D;
  --text:#E8EDF5;
  --text-dim:#93A1B8;
  --pass:#3FAE6A;
  --fail:#E06060;
  --mono:'IBM Plex Mono',monospace;
  --sans:'Archivo',sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:var(--sans);
  background:var(--ink);
  color:var(--text);
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
::selection{background:var(--blue);color:#fff}

/* ---------- ruler tick motif ---------- */
.ruler{
  height:14px;
  background:
    repeating-linear-gradient(90deg,var(--line) 0 1px,transparent 1px 12px),
    repeating-linear-gradient(90deg,var(--teal) 0 1px,transparent 1px 60px);
  background-size:auto 7px,auto 14px;
  background-repeat:repeat-x;
  opacity:.7;
}
.ruler.light{
  background:
    repeating-linear-gradient(90deg,#C6D2E2 0 1px,transparent 1px 12px),
    repeating-linear-gradient(90deg,var(--teal) 0 1px,transparent 1px 60px);
  background-size:auto 7px,auto 14px;
  background-repeat:repeat-x;
}

.wrap{max-width:1180px;margin:0 auto;padding:0 28px}
.mono{font-family:var(--mono)}
.eyebrow{
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--teal-bright);
  display:flex;align-items:center;gap:12px;
}
.eyebrow::before{content:"";width:34px;height:1px;background:var(--teal)}

/* ---------- nav ---------- */
header{
  position:sticky;top:0;z-index:50;
  background:rgba(11,18,32,.88);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
nav{display:flex;align-items:center;justify-content:space-between;height:68px}
.logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:20px;letter-spacing:-.01em;color:var(--text);text-decoration:none}
.logo svg{display:block}
.navlinks{display:flex;gap:26px;align-items:center}
.navlinks a{color:var(--text-dim);text-decoration:none;font-size:15px;font-weight:500;transition:color .15s}
.navlinks a:hover{color:var(--text)}
.navlinks a.active{color:var(--text)}
.btn{
  display:inline-block;
  background:var(--blue);
  color:#fff;text-decoration:none;
  font-weight:700;font-size:15px;
  padding:12px 24px;border-radius:6px;
  border:1px solid var(--blue-bright);
  transition:background .15s,transform .15s;
}
.btn:hover{background:var(--blue-bright);transform:translateY(-1px)}
.btn.ghost{background:transparent;color:var(--text);border:1px solid var(--line)}
.btn.ghost:hover{border-color:var(--teal);background:var(--ink-2)}
.btn.big{padding:15px 32px;font-size:16px}

/* ---------- hero ---------- */
.hero{
  position:relative;
  padding:96px 0 72px;
  overflow:hidden;
  background:
    radial-gradient(900px 500px at 85% -10%,rgba(30,91,216,.22),transparent 60%),
    radial-gradient(700px 400px at -10% 30%,rgba(74,146,154,.14),transparent 60%),
    var(--ink);
}
.hero.slim{padding:72px 0 56px}
.hero::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(var(--line) 1px,transparent 1px),
    linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:64px 64px;
  opacity:.12;
  -webkit-mask-image:linear-gradient(to bottom,black,transparent 80%);
  mask-image:linear-gradient(to bottom,black,transparent 80%);
}
.hero .wrap{position:relative;z-index:1}
.hero .wrap.split{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
h1{
  font-size:clamp(38px,4.6vw,58px);
  line-height:1.04;
  font-weight:850;
  letter-spacing:-.025em;
  font-stretch:105%;
  margin:22px 0 20px;
}
.hero.slim h1{font-size:clamp(34px,4.2vw,50px);max-width:820px}
h1 .accent{color:var(--blue-bright)}
.hero p.lead{font-size:19px;color:var(--text-dim);max-width:560px;margin-bottom:32px}
.hero.slim p.lead{font-size:18px;max-width:660px;margin-bottom:0}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap}
.hero-note{margin-top:18px;font-family:var(--mono);font-size:13px;color:var(--text-dim)}
.hero-note b{color:var(--teal-bright);font-weight:600}

/* tolerance card — the memorable object */
.tol-card{
  background:linear-gradient(160deg,var(--ink-2),var(--ink-3));
  border:1px solid var(--line);
  border-radius:12px;
  padding:26px 28px;
  box-shadow:0 30px 80px rgba(0,0,0,.45);
  transform:rotate(1.2deg);
  position:relative;
}
.tol-card::before{
  content:"LIVE FROM THE FIELD";
  position:absolute;top:-11px;left:22px;
  font-family:var(--mono);font-size:10px;letter-spacing:.2em;
  background:var(--teal);color:var(--ink);
  padding:3px 10px;border-radius:3px;font-weight:600;
}
.tol-head{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:14px}
.tol-head .co{font-weight:700;font-size:17px}
.tol-head .id{font-family:var(--mono);font-size:12px;color:var(--text-dim)}
.tol-rows{font-family:var(--mono);font-size:13.5px}
.tol-row{display:grid;grid-template-columns:1fr auto auto;gap:16px;padding:9px 0;border-bottom:1px dashed var(--line);color:var(--text-dim)}
.tol-row span:nth-child(2){color:var(--text)}
.tol-row .pass{color:var(--pass);font-weight:600}
.tol-row .fail{color:#E06060;font-weight:600}
.tol-foot{display:flex;justify-content:space-between;align-items:center;margin-top:16px}
.tol-foot .stamp{
  font-family:var(--mono);font-size:11px;letter-spacing:.12em;
  border:1.5px solid var(--pass);color:var(--pass);
  padding:5px 12px;border-radius:4px;transform:rotate(-3deg);
}
.tol-foot .sig{font-family:var(--mono);font-size:12px;color:var(--text-dim)}

/* ---------- stat strip ---------- */
.stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--ink-2);padding:0}
.stats .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.stat{padding:30px 24px;border-left:1px solid var(--line)}
.stat:first-child{border-left:none}
.stat .n{font-family:var(--mono);font-size:30px;font-weight:600;color:var(--teal-bright)}
.stat .l{font-size:13.5px;color:var(--text-dim);margin-top:4px}

/* ---------- sections ---------- */
section{padding:88px 0}
h2{
  font-size:clamp(28px,3.2vw,40px);
  font-weight:800;letter-spacing:-.02em;line-height:1.1;
  margin:18px 0 14px;
}
.sec-intro{color:var(--text-dim);font-size:18px;max-width:640px}

/* feature cards */
.fgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:48px}
.fcard{
  background:var(--ink-2);
  border:1px solid var(--line);
  border-radius:10px;
  padding:28px 26px;
  position:relative;
  transition:transform .2s,border-color .2s;
}
.fcard:hover{transform:translateY(-4px);border-color:var(--teal)}
.fcard .num{font-family:var(--mono);font-size:12px;color:var(--teal);letter-spacing:.15em}
.fcard h3{font-size:19px;font-weight:750;margin:12px 0 10px;letter-spacing:-.01em}
.fcard p{font-size:15px;color:var(--text-dim)}
.fcard a.more{font-family:var(--mono);font-size:12.5px;color:var(--teal-bright);text-decoration:none;display:inline-block;margin-top:12px}
.fcard a.more:hover{color:var(--text)}

/* screenshot showcase */
.showcase{background:var(--paper);color:var(--ink)}
.showcase .eyebrow{color:var(--blue-deep)}
.showcase .eyebrow::before{background:var(--blue)}
.showcase .sec-intro{color:#4A576B}
.shots{display:grid;grid-template-columns:1.4fr 1fr;gap:22px;margin-top:48px}
.shots.even{grid-template-columns:1fr 1fr}
.shots .col{display:flex;flex-direction:column;gap:22px}
.shot{
  border:1px solid #C6D2E2;
  border-radius:10px;
  overflow:hidden;
  background:#fff;
  box-shadow:0 12px 40px rgba(11,18,32,.08);
}
.shot .bar{
  display:flex;align-items:center;gap:6px;
  padding:9px 14px;background:var(--paper-2);
  border-bottom:1px solid #C6D2E2;
}
.shot .bar i{width:9px;height:9px;border-radius:50%;background:#C6D2E2;display:block}
.shot .bar .url{font-family:var(--mono);font-size:11px;color:#5B6B84;margin-left:8px}
.shot img{width:100%;height:auto;display:block}
.shot figcaption{padding:12px 16px 16px;font-size:14px;color:#4A576B}
.shot figcaption b{color:var(--ink)}

/* suite cards */
.suite{background:var(--ink-2)}
.apps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:48px}
.app{
  border:1px solid var(--line);border-radius:10px;padding:26px 22px;
  background:linear-gradient(180deg,var(--ink-3),var(--ink-2));
  color:inherit;text-decoration:none;display:block;
  transition:transform .2s,border-color .2s;
}
a.app:hover{transform:translateY(-4px);border-color:var(--teal)}
.app .tag{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--teal-bright);text-transform:uppercase}
.app h3{font-size:18px;margin:10px 0 8px;font-weight:750}
.app p{font-size:14.5px;color:var(--text-dim)}

/* deployment */
.deploy .wrap{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.deploy-visual{
  background:var(--ink-2);border:1px solid var(--line);border-radius:12px;
  padding:30px;font-family:var(--mono);font-size:14px;
}
.dep-row{display:flex;align-items:center;gap:14px;padding:13px 0;border-bottom:1px dashed var(--line)}
.dep-row:last-child{border-bottom:none}
.dep-row .dot{width:8px;height:8px;border-radius:50%;background:var(--pass);flex-shrink:0}
.dep-row .host{color:var(--teal-bright)}
.dep-row .db{color:var(--text-dim);margin-left:auto;font-size:12px}
.deploy ul{list-style:none;margin-top:24px}
.deploy li{padding:10px 0 10px 30px;position:relative;color:var(--text-dim);font-size:16px}
.deploy li::before{content:"";position:absolute;left:0;top:17px;width:16px;height:2px;background:var(--teal)}
.deploy li b{color:var(--text);font-weight:650}

/* checklist rows (used on detail pages) */
.inc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px 40px;margin-top:36px;max-width:900px}
.inc{padding:10px 0 10px 30px;position:relative;color:var(--text-dim);font-size:16px}
.inc::before{content:"";position:absolute;left:0;top:19px;width:16px;height:2px;background:var(--teal)}
.inc b{color:var(--text);font-weight:650}

/* state chips */
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:36px;max-width:960px}
.chip{
  font-family:var(--mono);font-size:13.5px;
  border:1px solid var(--line);border-radius:6px;
  background:var(--ink-2);color:var(--text);
  padding:8px 14px;
}
.chip.dim{color:var(--text-dim);border-style:dashed}

/* pricing tiers */
.tier-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:48px}
.tier{
  background:linear-gradient(160deg,var(--ink-2),var(--ink-3));
  border:1px solid var(--line);border-radius:12px;padding:30px 28px;
  position:relative;
}
.tier.hot{border-color:var(--teal)}
.tier.hot::before{
  content:"MOST COMPANIES START HERE";
  position:absolute;top:-11px;left:22px;
  font-family:var(--mono);font-size:10px;letter-spacing:.18em;
  background:var(--teal);color:var(--ink);padding:3px 10px;border-radius:3px;font-weight:600;
}
.tier .band{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--teal-bright)}
.tier .price{margin:14px 0 2px;font-family:var(--mono);font-weight:600;font-size:44px;color:var(--text)}
.tier .price span{font-size:16px;color:var(--text-dim);font-weight:400}
.tier .per{font-size:14px;color:var(--text-dim)}
.tier ul{list-style:none;margin-top:18px}
.tier li{padding:7px 0 7px 26px;position:relative;color:var(--text-dim);font-size:14.5px;border-bottom:1px dashed var(--line)}
.tier li:last-child{border-bottom:none}
.tier li::before{content:"";position:absolute;left:0;top:15px;width:14px;height:2px;background:var(--teal)}
.call-row{
  margin-top:22px;border:1px dashed var(--line);border-radius:10px;
  padding:18px 24px;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;
  font-family:var(--mono);font-size:14px;color:var(--text-dim);
}
.call-row b{color:var(--text)}
.min-note{margin-top:14px;font-family:var(--mono);font-size:12.5px;color:var(--text-dim)}

/* comparison table */
.cmp{width:100%;border-collapse:collapse;margin-top:44px;font-size:15px}
.cmp th{
  font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--teal-bright);text-align:left;padding:14px 16px;border-bottom:1px solid var(--line);
}
.cmp th:nth-child(2){color:var(--text)}
.cmp td{padding:14px 16px;border-bottom:1px dashed var(--line);color:var(--text-dim);vertical-align:top}
.cmp td:first-child{color:var(--text);font-weight:600;width:24%}
.cmp td:nth-child(2){background:rgba(30,91,216,.07)}
.cmp .yes{color:var(--pass);font-weight:600}
.cmp .meh{color:var(--text-dim)}
.cmp .ck,.cmp .nx{
  display:inline-flex;align-items:center;justify-content:center;
  width:20px;height:20px;border-radius:50%;
  font-family:var(--mono);font-size:13px;font-weight:600;
  margin-right:9px;vertical-align:-4px;flex-shrink:0;
}
.cmp .ck{background:rgba(63,174,106,.16);color:var(--pass);border:1px solid var(--pass)}
.cmp .nx{background:rgba(224,96,96,.14);color:var(--fail);border:1px solid var(--fail)}
.fine{font-size:12.5px;color:var(--text-dim);font-family:var(--mono);margin-top:26px;line-height:1.7}
.fine a{color:var(--text-dim)}

/* faq */
.faq-list{max-width:760px;margin-top:36px}
.faq-list details{
  border:1px solid var(--line);border-radius:8px;
  background:var(--ink-2);margin-bottom:12px;
  padding:0 22px;
}
.faq-list summary{
  cursor:pointer;font-weight:700;font-size:16.5px;
  padding:17px 0;list-style:none;position:relative;padding-right:34px;
}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{
  content:"+";position:absolute;right:2px;top:50%;transform:translateY(-50%);
  font-family:var(--mono);font-size:20px;color:var(--teal-bright);
}
.faq-list details[open] summary::after{content:"\2212"}
.faq-list details p{color:var(--text-dim);font-size:15.5px;padding:0 0 18px}

/* cta + demo form */
.cta{background:linear-gradient(140deg,var(--blue-deep),var(--blue) 60%,#2E6FE4);text-align:center;position:relative;overflow:hidden}
.cta::before{
  content:"";position:absolute;inset:0;
  background:repeating-linear-gradient(90deg,rgba(255,255,255,.06) 0 1px,transparent 1px 40px);
}
.cta .wrap{position:relative}
.cta h2{color:#fff}
.cta > .wrap > p{color:rgba(255,255,255,.85);font-size:18px;max-width:560px;margin:0 auto 34px}
.cta .btn{background:#fff;color:var(--blue-deep);border-color:#fff}
.cta .btn:hover{background:var(--paper-2)}
.cta .sub{margin-top:18px;font-family:var(--mono);font-size:13px;color:rgba(255,255,255,.7)}

.demo-form{
  max-width:640px;margin:0 auto;text-align:left;
  background:var(--ink-2);border:1px solid var(--line);border-radius:12px;
  padding:28px 30px;box-shadow:0 30px 80px rgba(0,0,0,.35);
  display:grid;gap:16px;
}
.demo-form[hidden]{display:none}
.df-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.df-field{display:flex;flex-direction:column;gap:6px}
.df-field label{
  font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--teal-bright);
}
.df-field input,.df-field textarea{
  background:var(--ink);border:1px solid var(--line);border-radius:6px;
  color:var(--text);font-family:var(--sans);font-size:15.5px;
  padding:11px 13px;outline:none;transition:border-color .15s;
}
.df-field input:focus,.df-field textarea:focus{border-color:var(--blue-bright)}
.df-field input::placeholder,.df-field textarea::placeholder{color:#4A576B}
.demo-form .btn{justify-self:start;border:none;cursor:pointer;font-family:var(--sans)}
.demo-form .btn:disabled{opacity:.6;cursor:default;transform:none}
.df-status{font-family:var(--mono);font-size:13px;color:#FFB4B4;min-height:1em;margin:0}
.demo-done{
  max-width:640px;margin:0 auto;
  background:var(--ink-2);border:1px solid var(--pass);border-radius:12px;
  padding:34px 30px;
}
.demo-done .dd-head{font-weight:800;font-size:22px;color:var(--pass);margin-bottom:8px}
.demo-done p{color:var(--text-dim);max-width:none;margin:0}
.demo-done .dd-book{margin:16px 0 14px;color:var(--text)}
.hp{position:absolute;left:-9999px}

footer{background:var(--ink);border-top:1px solid var(--line);padding:40px 0}
footer .wrap{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}
footer p{font-size:13.5px;color:var(--text-dim)}
footer a{color:var(--text-dim)}
footer .mono{font-size:12px}

@media(max-width:960px){
  .hero .wrap.split{grid-template-columns:1fr}
  .tol-card{transform:none}
  .stats .wrap{grid-template-columns:repeat(2,1fr)}
  .stat{border-left:none;border-top:1px solid var(--line)}
  .fgrid{grid-template-columns:1fr 1fr}
  .shots,.shots.even{grid-template-columns:1fr}
  .apps{grid-template-columns:1fr 1fr}
  .deploy .wrap{grid-template-columns:1fr;gap:40px}
  .tier-grid{grid-template-columns:1fr}
  .inc-grid{grid-template-columns:1fr}
  .navlinks a:not(.btn){display:none}
}
@media(max-width:600px){
  .fgrid,.apps{grid-template-columns:1fr}
  .df-row{grid-template-columns:1fr}
}

/* reveal on scroll */
.rv{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}
.rv.in{opacity:1;transform:none}
