/* ==========================================================================
   Insmart AI — global stylesheet
   Clean geometric-sans system (Himon-inspired). Left-aligned section grid.
   Fonts (Manrope + Inter) are loaded via <link> tags in each page <head>.
   ========================================================================== */

:root{
  /* neutral canvas */
  --bg:#F3F6F8; --card:#FFFFFF; --surface-1:#EDF1F4;
  --ink:#0F1B21; --ink-muted:#566670; --ink-faint:#8695A0;
  --line:#E4EAEE; --line-strong:#CDD6DC;
  /* brand teal (from the logo) */
  --teal:#0396A6; --teal-deep:#026873; --teal-lite:#5BCCD9; --teal-tint:#E6F8FA;
  --brand-gradient:linear-gradient(115deg,#5BCCD9,#0396A6);
  --accent-band:#026873;
  /* reserved status (health/risk) — never decorative, never the brand */
  --status-healthy:#15A34A; --status-healthy-bg:#E9F7EE; --status-healthy-fg:#14532A;
  --status-medium:#E0A106;  --status-medium-bg:#FBF1DB;  --status-medium-fg:#6E4A05;
  --status-high:#E5661B;    --status-high-bg:#FCEBDF;    --status-high-fg:#77320F;
  --status-critical:#DC2626;--status-critical-bg:#FBE9E9;--status-critical-fg:#7E1D1D;

  /* type roles — slab-serif display (restored), clean sans body */
  --display:"Rockwell","American Typewriter","Roboto Slab","Zilla Slab",Georgia,serif;
  --sans:"Inter","Helvetica Neue",Helvetica,Arial,"Segoe UI",system-ui,sans-serif;
  --mono:"SF Mono","JetBrains Mono",ui-monospace,Menlo,monospace;

  --max:1300px;
  --pad-x:clamp(20px,5vw,72px);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--bg); color:var(--ink); font-family:var(--sans);
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}
img{max-width:100%; display:block;}
a{color:inherit;}
button{font:inherit;}

/* focus visibility (accessibility) */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible{
  outline:2px solid var(--teal); outline-offset:2px; border-radius:4px;
}

.wrap{max-width:var(--max); margin:0 auto; padding-left:var(--pad-x); padding-right:var(--pad-x);}
.sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}

/* ---------- nav ---------- */
.site-nav{
  position:sticky; top:0; z-index:50; background:rgba(243,246,248,.86); backdrop-filter:saturate(160%) blur(10px);
  border-bottom:1px solid var(--line);
}
.site-nav .inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:18px var(--pad-x); max-width:var(--max); margin:0 auto;
}
.brand{display:flex; align-items:center; gap:11px; font-family:var(--display); font-weight:700; letter-spacing:.06em; font-size:19px; color:var(--ink); text-decoration:none;}
.brand svg{flex:none;}
.brand-logo{height:26px; width:auto; display:block;}
.site-nav .brand-logo{width:180px; height:auto;}
.footer-brand .brand-logo{height:24px;}
.navlinks{display:flex; align-items:center; gap:30px; font-size:13.5px; color:var(--ink-muted);}
.navlinks a{text-decoration:none; transition:color .2s;}
.navlinks a:hover{color:var(--ink);}
.navlinks a.active{color:var(--ink); font-weight:600;}
.navlinks .login{color:var(--ink);}
.btn-demo{
  font-family:var(--sans); font-size:13px; font-weight:600; letter-spacing:.02em; color:#fff;
  background:var(--teal); border:none; border-radius:8px; padding:11px 22px; cursor:pointer;
  transition:background .2s, transform .15s; text-decoration:none; display:inline-block;
}
.btn-demo:hover{background:var(--teal-deep); transform:translateY(-1px);}

.nav-toggle{display:none; background:none; border:1px solid var(--line-strong); border-radius:8px; padding:9px 11px; cursor:pointer;}
.nav-toggle svg{display:block;}
.mobile-panel{display:none; flex-direction:column; gap:2px; padding:8px var(--pad-x) 22px; border-bottom:1px solid var(--line); background:var(--bg);}
.mobile-panel a{padding:12px 4px; color:var(--ink); text-decoration:none; font-size:15px; border-bottom:1px solid var(--line);}
.mobile-panel .btn-demo{margin-top:12px; text-align:center;}
.mobile-panel.open{display:flex;}

@media (max-width:880px){
  .navlinks{display:none;}
  .nav-toggle{display:inline-flex; align-items:center; justify-content:center;}
}

/* ---------- buttons ---------- */
.btn-primary{
  font-family:var(--sans); font-size:14px; font-weight:600; color:#fff;
  background:var(--teal); border:none; border-radius:8px; padding:14px 28px; cursor:pointer;
  transition:background .2s, transform .15s; text-decoration:none; display:inline-flex; align-items:center; gap:8px;
}
.btn-primary:hover{background:var(--teal-deep); transform:translateY(-1px);}
.btn-ghost{
  font-family:var(--sans); font-size:14px; font-weight:500; color:var(--ink);
  background:transparent; border:1px solid var(--line-strong); border-radius:8px;
  padding:13px 24px; cursor:pointer; display:inline-flex; align-items:center; gap:8px; transition:border-color .2s, color .2s;
  text-decoration:none;
}
.btn-ghost:hover{border-color:var(--teal); color:var(--teal-deep);}
.btn-ghost.on-dark{color:#fff; border-color:rgba(255,255,255,.35);}
.btn-ghost.on-dark:hover{border-color:#fff;}
.btn-primary.on-dark{background:#fff; color:var(--teal-deep);}
.btn-primary.on-dark:hover{background:var(--teal-tint);}

/* ---------- eyebrow / labels ---------- */
.eyebrow{
  font-family:var(--mono); font-size:11.5px; letter-spacing:.26em; text-transform:uppercase;
  color:var(--teal); margin-bottom:22px; display:flex; align-items:center; gap:12px;
}
.eyebrow .rule{width:38px; height:1px; background:var(--teal-lite); flex:none;}
.eyebrow.on-dark{color:var(--teal-lite);}

/* ---------- hero ---------- */
.stage{position:relative; overflow:hidden;}
.arc{position:absolute; top:-32%; right:-16%; width:70vw; height:70vw; max-width:880px; max-height:880px; pointer-events:none; opacity:.55; z-index:0;}
.arc svg{width:100%; height:100%;}

.hero{
  position:relative; z-index:2;
  display:grid; grid-template-columns:1.12fr 0.88fr; align-items:center; gap:clamp(30px,5vw,80px);
  padding:clamp(48px,7vh,96px) var(--pad-x) clamp(40px,6vh,72px);
  max-width:var(--max); margin:0 auto; width:100%;
}
h1{
  font-family:var(--display); font-weight:700; text-transform:uppercase;
  font-size:clamp(2.1rem,4.4vw,3.8rem); line-height:1.02; letter-spacing:-0.005em;
  margin:0 0 24px; text-wrap:balance; max-width:16ch; color:var(--ink);
}
h1 .accent{color:var(--teal);}
.sub{font-family:var(--sans); font-size:clamp(1rem,1.4vw,1.16rem); line-height:1.6; color:var(--ink-muted); max-width:46ch; margin:0 0 34px;}
.cta-row{display:flex; align-items:center; gap:14px; flex-wrap:wrap;}

.panel{
  position:relative; background:var(--card); border:1px solid var(--line); border-radius:16px;
  padding:30px 32px; box-shadow:0 30px 60px -34px rgba(11,85,99,0.26), 0 2px 8px -4px rgba(11,85,99,0.10);
}
.panel::before{
  content:""; position:absolute; left:24px; right:24px; top:0; height:3px; border-radius:0 0 3px 3px;
  background:linear-gradient(90deg,transparent,var(--teal-lite),transparent);
}
.p-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:24px;}
.p-tag{font-family:var(--mono); font-size:11px; letter-spacing:.16em; color:var(--ink-faint);}
.p-live{font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; color:var(--teal); display:flex; align-items:center; gap:7px;}
.p-live .dot{width:7px; height:7px; border-radius:50%; background:var(--teal); animation:blink 2.4s ease-in-out infinite;}
@keyframes blink{0%,100%{opacity:1;}50%{opacity:.3;}}
.score-wrap{display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:6px;}
.score{font-family:var(--display); font-size:76px; line-height:.86; font-weight:700; letter-spacing:-0.01em; color:var(--status-critical); font-variant-numeric:tabular-nums;}
.crit-pill{font-family:var(--mono); font-size:11px; letter-spacing:.08em; color:var(--status-critical-fg); background:var(--status-critical-bg); border-radius:6px; padding:5px 12px; margin-bottom:14px;}
.score-label{font-family:var(--mono); font-size:11px; letter-spacing:.18em; color:var(--ink-faint); text-transform:uppercase; margin-bottom:22px;}
.rows{display:flex; flex-direction:column; border-top:1px solid var(--line);}
.row{display:flex; align-items:center; justify-content:space-between; padding:13px 0; border-bottom:1px solid var(--line); gap:14px;}
.row .k{font-family:var(--mono); font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--teal-deep); flex:none;}
.row .v{font-family:var(--sans); font-size:14px; color:var(--ink); font-variant-numeric:tabular-nums; text-align:right;}
.action{
  margin-top:20px; display:flex; align-items:center; justify-content:space-between; gap:12px;
  background:var(--teal-tint); border:1px solid #B7E7EE; border-radius:10px; padding:14px 18px;
}
.action .lbl{font-size:13.5px; font-weight:500; color:var(--teal-deep);}
.action .go{font-family:var(--mono); font-size:12px; letter-spacing:.1em; color:var(--teal); display:flex; align-items:center; gap:7px; flex:none;}

.footstrip{
  position:relative; z-index:2; border-top:1px solid var(--line);
  padding:16px var(--pad-x); display:flex; align-items:center; gap:26px; flex-wrap:wrap;
  font-family:var(--mono); font-size:11px; letter-spacing:.16em; color:var(--ink-faint); text-transform:uppercase;
  max-width:var(--max); margin:0 auto;
}
.footstrip .spacer{flex:1;}
.footstrip .mem{color:var(--teal);}

@media (max-width:880px){
  .hero{grid-template-columns:1fr; padding-top:38px;}
  .panel{max-width:460px;}
}

/* ---------- reveal-on-scroll ---------- */
.fade{opacity:0; transform:translateY(15px); animation:fadeUp .95s cubic-bezier(.2,.7,.2,1) forwards;}
.d1{animation-delay:.04s;} .d2{animation-delay:.14s;} .d3{animation-delay:.26s;} .d4{animation-delay:.38s;} .d5{animation-delay:.5s;}
@keyframes fadeUp{to{opacity:1; transform:none;}}
.reveal{opacity:0; transform:translateY(18px); transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1);}
.reveal.in{opacity:1; transform:none;}
@media (prefers-reduced-motion:reduce){
  .p-live .dot{animation:none;}
  .fade{animation:none; opacity:1; transform:none;}
  .reveal{opacity:1; transform:none; transition:none;}
  html{scroll-behavior:auto;}
}

/* ---------- section scaffolding ----------
   Every section shares ONE left starting position, identical to the hero:
   a max-width container centered in the viewport, with --pad-x inside it. */
section{position:relative;}
.section{padding:88px 0;}
.section-inner{max-width:var(--max); margin:0 auto; padding:0 var(--pad-x);}
.section-head{max-width:800px; margin-bottom:56px;}
.section-head h2{
  font-family:var(--display); text-transform:uppercase; font-weight:700;
  font-size:clamp(1.55rem,2.6vw,2.15rem); line-height:1.08; letter-spacing:-0.005em; margin:0 0 18px; color:var(--ink);
}
.section-head p{font-size:16px; line-height:1.65; color:var(--ink-muted); margin:0;}
.section.alt{background:var(--surface-1);}

/* ---------- four decisions ---------- */
.decisions-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:14px; overflow:hidden;}
.decision-card{background:var(--card); padding:30px 26px; display:flex; flex-direction:column; gap:16px;}
.decision-card .num{font-family:var(--mono); font-size:11px; letter-spacing:.14em; color:var(--teal);}
.decision-card .icon{width:38px; height:38px; border-radius:9px; background:var(--teal-tint); display:flex; align-items:center; justify-content:center; color:var(--teal-deep);}
.decision-card h3{font-family:var(--display); font-size:17px; text-transform:uppercase; letter-spacing:.02em; margin:0; color:var(--ink);}
.decision-card p{font-size:14px; line-height:1.6; color:var(--ink-muted); margin:0;}
@media (max-width:960px){.decisions-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.decisions-grid{grid-template-columns:1fr;}}

/* ---------- how it works (loop) ---------- */
.loop{display:grid; grid-template-columns:repeat(4,1fr); gap:0; position:relative;}
.loop-step{padding:0 22px 0 0; position:relative;}
.loop-step .idx{font-family:var(--mono); font-size:11px; letter-spacing:.14em; color:var(--ink-faint); margin-bottom:14px; display:block;}
.loop-step h3{font-family:var(--display); font-size:18px; text-transform:uppercase; margin:0 0 10px; color:var(--ink);}
.loop-step p{font-size:14px; line-height:1.6; color:var(--ink-muted); margin:0;}
.loop-step:not(:last-child)::after{
  content:""; position:absolute; top:6px; right:0; width:16px; height:1px; background:var(--line-strong);
}
.loop-note{margin-top:44px; font-size:15px; color:var(--ink-muted); max-width:56ch; border-top:1px solid var(--line); padding-top:24px;}
.loop-note strong{color:var(--ink); font-weight:600;}
@media (max-width:880px){
  .loop{grid-template-columns:1fr 1fr; row-gap:36px;}
  .loop-step:not(:last-child)::after{display:none;}
}
@media (max-width:560px){.loop{grid-template-columns:1fr;}}

/* ---------- memory moat ---------- */
.moat{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center;}
.moat-visual{
  background:var(--card); border:1px solid var(--line); border-radius:16px; padding:28px;
  box-shadow:0 24px 48px -30px rgba(11,85,99,.2);
}
.moat-note{display:flex; gap:14px; padding:14px 0; border-bottom:1px solid var(--line);}
.moat-note:last-child{border-bottom:none;}
.moat-note .tag{font-family:var(--mono); font-size:10px; letter-spacing:.1em; color:var(--teal-deep); background:var(--teal-tint); border-radius:5px; padding:3px 8px; flex:none; height:fit-content;}
.moat-note .txt{font-size:13.5px; color:var(--ink-muted); line-height:1.55;}
.moat-note .txt b{color:var(--ink); font-weight:600;}
.moat-copy p{font-size:16px; line-height:1.7; color:var(--ink-muted); margin:0 0 18px;}
.moat-title{font-family:var(--display); font-weight:700; text-transform:uppercase; font-size:clamp(1.55rem,2.6vw,2.15rem); line-height:1.08; letter-spacing:-0.005em; margin:0 0 18px; color:var(--ink);}
@media (max-width:880px){.moat{grid-template-columns:1fr; gap:36px;} .moat-visual{order:-1;}}

/* ---------- industries ---------- */
.industries-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:14px; overflow:hidden;}
.industry-card{background:var(--card); padding:28px 26px; min-height:150px; display:flex; flex-direction:column; justify-content:space-between;}
.industry-card h3{font-family:var(--display); font-size:16px; text-transform:uppercase; margin:0; color:var(--ink);}
.industry-card .status{font-family:var(--mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); margin-top:14px;}
.industry-card.active .status{color:var(--teal);}
@media (max-width:820px){.industries-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:520px){.industries-grid{grid-template-columns:1fr;}}

/* ---------- accent band (the one deep-teal moment) ---------- */
.accent-band{background:var(--accent-band); color:#fff;}
.accent-band .eyebrow{color:var(--teal-lite);}
.accent-band h2{font-family:var(--display); text-transform:uppercase; font-weight:700; font-size:clamp(1.65rem,2.9vw,2.4rem); line-height:1.08; letter-spacing:-0.005em; margin:0 0 20px; color:#fff; max-width:800px;}
.accent-band p{font-size:16px; line-height:1.7; color:rgba(255,255,255,.78); max-width:52ch; margin:0 0 36px;}
.accent-band .band-row{display:flex; align-items:center; justify-content:space-between; gap:40px; flex-wrap:wrap;}
.band-modules{display:flex; gap:28px; flex-wrap:wrap; margin-top:8px;}
.band-modules div{font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.6); border-left:2px solid var(--teal-lite); padding-left:12px;}

/* ---------- cta / footer ---------- */
.cta-section{text-align:left; padding-top:96px; padding-bottom:96px;}
.cta-section h2{font-family:var(--display); font-weight:700; text-transform:uppercase; font-size:clamp(1.65rem,3vw,2.5rem); letter-spacing:-0.005em; margin:0 0 20px; max-width:800px;}
.cta-section p{font-size:16px; color:var(--ink-muted); max-width:48ch; margin:0 0 36px;}
.cta-section .cta-row{justify-content:flex-start;}

/* Mobile: preserve the original narrower heading wrap (unchanged from before the 800px desktop widen) */
@media (max-width:880px){
  .accent-band h2{max-width:18ch;}
  .cta-section h2{max-width:22ch;}
}

.site-footer{border-top:1px solid var(--line); padding:56px var(--pad-x) 32px;}
.footer-inner{max-width:var(--max); margin:0 auto;}
.footer-top{display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:40px; padding-bottom:40px;}
.footer-brand p{font-size:13.5px; color:var(--ink-muted); line-height:1.6; margin:14px 0 0; max-width:32ch;}
.footer-col h4{font-family:var(--mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint); margin:0 0 16px;}
.footer-col a{display:block; font-size:13.5px; color:var(--ink-muted); text-decoration:none; margin-bottom:11px; transition:color .2s;}
.footer-col a:hover{color:var(--ink);}
.footer-bottom{display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; padding-top:24px; border-top:1px solid var(--line); font-family:var(--mono); font-size:11px; letter-spacing:.08em; color:var(--ink-faint); text-transform:uppercase;}
@media (max-width:820px){.footer-top{grid-template-columns:1fr 1fr; row-gap:32px;}}
@media (max-width:520px){.footer-top{grid-template-columns:1fr;}}

/* ---------- page hero (interior pages: contractors / contact) ---------- */
.page-hero{padding:64px var(--pad-x) 48px; max-width:var(--max); margin:0 auto;}
.page-hero h1{font-size:clamp(2.2rem,5vw,3.8rem); max-width:18ch;}
.page-hero .sub{max-width:52ch;}

/* ---------- contractor modules ---------- */
.modules-grid{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:14px; overflow:hidden;}
.module-card{background:var(--card); padding:36px 32px; display:flex; flex-direction:column; gap:14px;}
.module-card .idx{font-family:var(--mono); font-size:11px; letter-spacing:.14em; color:var(--teal);}
.module-card h3{font-family:var(--display); font-size:19px; text-transform:uppercase; margin:0; color:var(--ink);}
.module-card p{font-size:14.5px; line-height:1.65; color:var(--ink-muted); margin:0;}
.module-card .src{font-family:var(--mono); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-faint); margin-top:auto; padding-top:14px; border-top:1px solid var(--line);}
@media (max-width:760px){.modules-grid{grid-template-columns:1fr;}}

/* ---------- access cards (desktop login / mobile app) ---------- */
.access-grid{display:grid; grid-template-columns:1fr 1fr; gap:24px;}
.access-card{background:var(--card); border:1px solid var(--line); border-radius:16px; padding:36px 32px;}
.access-card .icon{width:44px; height:44px; border-radius:10px; background:var(--teal-tint); display:flex; align-items:center; justify-content:center; color:var(--teal-deep); margin-bottom:22px;}
.access-card h3{font-family:var(--display); font-size:20px; text-transform:uppercase; margin:0 0 12px; color:var(--ink);}
.access-card p{font-size:14.5px; line-height:1.65; color:var(--ink-muted); margin:0 0 24px;}
.badge-row{display:flex; gap:12px; flex-wrap:wrap;}
.store-badge{
  display:inline-flex; align-items:center; gap:9px; background:var(--ink); color:#fff; border-radius:9px;
  padding:10px 16px; text-decoration:none; font-size:12.5px; border:1px solid var(--ink);
  transition:opacity .2s;
}
.store-badge:hover{opacity:.85;}
.store-badge .lines{display:flex; flex-direction:column; line-height:1.25;}
.store-badge .lines small{font-size:9.5px; letter-spacing:.04em; color:rgba(255,255,255,.65); text-transform:uppercase;}
.store-badge .lines strong{font-size:13px; font-weight:600;}
.early-access-tag{font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--teal-deep); background:var(--teal-tint); border-radius:6px; padding:4px 10px; display:inline-block; margin-bottom:14px;}
@media (max-width:760px){.access-grid{grid-template-columns:1fr;}}

/* ---------- forms ---------- */
.form-card{background:var(--card); border:1px solid var(--line); border-radius:16px; padding:40px; max-width:640px;}
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
.field{display:flex; flex-direction:column; gap:8px; margin-bottom:20px;}
.field.full{grid-column:1 / -1;}
.field label{font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-muted);}
.field input, .field select, .field textarea{
  font-family:var(--sans); font-size:14.5px; color:var(--ink); background:var(--bg);
  border:1px solid var(--line-strong); border-radius:8px; padding:12px 14px; resize:vertical;
}
.field input:focus, .field select:focus, .field textarea:focus{border-color:var(--teal); outline:none;}
.form-note{font-size:12.5px; color:var(--ink-faint); margin-top:6px;}
.form-success{display:none; background:var(--status-healthy-bg); color:var(--status-healthy-fg); border-radius:10px; padding:16px 18px; font-size:14px; margin-top:18px;}
.form-success.show{display:block;}
@media (max-width:640px){
  .form-grid{grid-template-columns:1fr;}
  .form-card{padding:26px 22px;}
}

/* ---------- misc utility ---------- */
.center{text-align:center;}
.mt-0{margin-top:0;}
