/* ── AESS Engineering Software Solutions · Shared Stylesheet ── */
:root{
  --navy:#193866; --navy-deep:#122A4E; --ink:#14233F;
  --orange:#ED6D0C; --orange-deep:#D65F05; --orange-tint:#FFF1E6;
  --paper:#F6F8FB; --card:#FFFFFF; --slate:#55647E; --line:#DDE4EE;
  --live:#157A46; --live-tint:#E7F4EC;
  --disp:"Barlow Semi Condensed","Arial Narrow",Arial,sans-serif;
  --body:"Barlow",system-ui,Arial,sans-serif;
  --mono:"IBM Plex Mono","Courier New",monospace;
  --rad:12px; --rad-sm:8px;
  --shadow:0 1px 2px rgba(20,35,63,.06),0 8px 28px rgba(20,35,63,.08);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
body{font-family:var(--body);color:var(--ink);background:var(--paper);line-height:1.56;font-size:16.5px}
img{max-width:100%;height:auto;display:block}
a{color:var(--navy)}
:focus-visible{outline:3px solid var(--orange);outline-offset:2px;border-radius:4px}
.wrap{max-width:1140px;margin:0 auto;padding:0 22px}

/* ── Buttons ── */
.btn{display:inline-block;background:var(--orange);color:#fff;border:2px solid var(--orange);cursor:pointer;
  font:700 15px var(--disp);letter-spacing:.05em;text-transform:uppercase;
  padding:12px 24px;border-radius:9px;text-decoration:none;transition:background .14s,border-color .14s}
.btn:hover{background:var(--orange-deep);border-color:var(--orange-deep)}
.btn.ghost{background:transparent;color:var(--navy);border-color:var(--navy)}
.btn.ghost:hover{background:var(--navy);color:#fff}
.btn.sm{padding:9px 18px;font-size:13px}

/* ── Announcement bar ── */
.announce{background:var(--navy);color:#fff;text-align:center;padding:9px 16px;font-size:14px}
.announce a{color:#FFD9B8;font-weight:600;text-underline-offset:2px}

/* ── Nav ── */
nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.95);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav-in{display:flex;align-items:center;height:82px;gap:8px}
.nav-logo img{height:56px;width:auto;transition:opacity .15s}
.nav-logo img:hover{opacity:.85}
.nav-links{display:flex;gap:4px;margin-left:auto;align-items:center;flex-wrap:wrap}
.nav-links a{text-decoration:none;font-weight:500;font-size:14.5px;color:var(--ink);
  padding:7px 12px;border-radius:7px;transition:background .12s}
.nav-links a:hover{background:var(--paper);color:var(--orange-deep)}
.nav-links a.active{color:var(--orange-deep);font-weight:700}
.nav-links .btn{padding:10px 20px;margin-left:8px}
@media(max-width:900px){.nav-links a:not(.btn){display:none}}

/* ── Sheet header system ── */
.sheet-head{display:flex;align-items:baseline;gap:14px;border-bottom:3px solid var(--navy);
  padding-bottom:10px;margin-bottom:30px;flex-wrap:wrap}
.code{font:500 12px var(--mono);color:var(--orange-deep);letter-spacing:.06em;
  background:var(--orange-tint);padding:3px 9px;border-radius:5px;white-space:nowrap}
.sheet-head h2{font:800 36px/1.05 var(--disp);text-transform:uppercase;letter-spacing:.01em;color:var(--navy)}
.sheet-head .note{margin-left:auto;font:500 11.5px var(--mono);color:var(--slate);white-space:nowrap}
section{padding:64px 0}
@media(max-width:760px){section{padding:44px 0}.sheet-head h2{font-size:26px}}

/* ── Cards / specs ── */
.spec-card{background:var(--card);border:1px solid var(--line);border-radius:var(--rad);
  box-shadow:var(--shadow);overflow:hidden}
.spec-card .bar{display:flex;align-items:center;gap:8px;background:var(--paper);
  border-bottom:1px solid var(--line);padding:9px 14px;font:500 11.5px var(--mono);color:var(--slate)}
.dot{width:9px;height:9px;border-radius:50%;background:var(--line)}
.pipe{padding:18px 16px 22px}
.pm-card{padding:18px 16px 22px}
.rowh{display:flex;justify-content:space-between;font:500 11px var(--mono);color:var(--slate);padding:0 2px 8px}
.pm{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:9px;
  padding:10px 12px;margin-bottom:9px;background:#fff}
.pm .hrs{font:500 12px var(--mono);color:var(--navy);min-width:80px}
.pm .nm{font-weight:600;font-size:14px;flex:1}
.pm .due{font:700 11px var(--disp);letter-spacing:.05em;text-transform:uppercase;
  padding:3px 8px;border-radius:99px;background:#EDF1F7;color:var(--slate)}
.pm.hot .due{background:var(--orange-tint);color:var(--orange-deep)}
@keyframes tick{0%,88%{opacity:1}94%{opacity:.35}100%{opacity:1}}
.pm.hot{animation:tick 3.4s infinite}
.pipe-track{display:flex;gap:6px;margin-bottom:18px}
.pipe-step{flex:1;height:6px;border-radius:3px;background:var(--line);position:relative;overflow:hidden}
.pipe-step::after{content:"";position:absolute;inset:0;background:var(--orange);transform:scaleX(0);transform-origin:left}
.job-card{border:1px solid var(--line);border-left:5px solid var(--jc,#3F6FB5);
  border-radius:var(--rad-sm);padding:14px 16px;background:#fff}
.job-card .row1{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}
.job-card .jno{font:500 12px var(--mono);color:var(--slate)}
.job-card .badge{font:700 11px var(--disp);letter-spacing:.06em;text-transform:uppercase;
  color:#fff;background:var(--jc,#3F6FB5);padding:3px 9px;border-radius:99px}
.job-card h3{font:700 18px var(--disp);color:var(--ink)}
.job-card .meta{font-size:13.5px;color:var(--slate)}

/* Pipeline animation */
@keyframes stepA{0%,18%{transform:scaleX(0)}26%,100%{transform:scaleX(1)}}
@keyframes stepB{0%,42%{transform:scaleX(0)}50%,100%{transform:scaleX(1)}}
@keyframes stepC{0%,68%{transform:scaleX(0)}76%,100%{transform:scaleX(1)}}
.pipe-step:nth-child(1)::after{animation:stepA 9s infinite}
.pipe-step:nth-child(2)::after{animation:stepB 9s infinite}
.pipe-step:nth-child(3)::after{animation:stepC 9s infinite}
@property --jc{syntax:"<color>";inherits:true;initial-value:#3F6FB5}
@keyframes jc{0%,18%{--jc:#3F6FB5}26%,68%{--jc:#ED6D0C}76%,100%{--jc:#157A46}}
.job-animated{animation:jc 9s infinite}
@keyframes lblCycle{0%,18%{content:"Booked"}26%,68%{content:"In Progress"}76%,100%{content:"Completed"}}
.lbl-animated::after{content:"Booked";animation:lblCycle 9s infinite}

/* Phone mock */
.phone{width:min(260px,80%);margin:0 auto;background:var(--navy-deep);border-radius:32px;padding:11px;box-shadow:var(--shadow)}
.phone .screen{background:var(--paper);border-radius:22px;overflow:hidden}
.phone .app-top{background:var(--navy);color:#fff;padding:11px 13px;font:700 14px var(--disp);
  letter-spacing:.03em;display:flex;justify-content:space-between;align-items:center}
.phone .app-top img{height:18px;width:auto}
.pj{margin:11px;border:1px solid var(--line);border-left:5px solid var(--orange);
  border-radius:9px;background:#fff;padding:11px 12px}
.pj .t{font:700 15px var(--disp)}
.pj .m{font-size:12px;color:var(--slate);margin-top:2px}
.pbtn{margin:0 11px 12px;background:var(--orange);color:#fff;text-align:center;border-radius:9px;
  padding:11px;font:700 14px var(--disp);letter-spacing:.05em;text-transform:uppercase;position:relative;overflow:hidden}
@keyframes tapPulse{0%,55%{box-shadow:0 0 0 0 rgba(237,109,12,.5)}70%{box-shadow:0 0 0 14px rgba(237,109,12,0)}100%{box-shadow:0 0 0 0 rgba(237,109,12,0)}}
.pbtn{animation:tapPulse 4.5s infinite}
.stamp{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:var(--live);font:800 14px var(--disp);letter-spacing:.12em;transform:scale(2.4);opacity:0}
@keyframes stampIn{0%,62%{opacity:0;transform:scale(2.4) rotate(-8deg)}72%,92%{opacity:1;transform:scale(1) rotate(-4deg)}100%{opacity:0}}
.stamp{animation:stampIn 4.5s infinite}

/* Feature list */
.feat{list-style:none}
.feat li{padding:8px 0 8px 28px;position:relative;font-size:15.5px;border-bottom:1px solid var(--line)}
.feat li:last-child{border-bottom:none}
.feat li::before{content:"";position:absolute;left:2px;top:15px;width:13px;height:13px;
  border:3px solid var(--orange);border-radius:3px}

/* Two-col grid */
.two-col{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}
@media(max-width:860px){.two-col{grid-template-columns:1fr}}

/* Steps */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:22px}
.step{background:var(--card);border:1px solid var(--line);border-radius:var(--rad);padding:26px;box-shadow:var(--shadow)}
.step .n{font:500 13px var(--mono);color:var(--orange-deep);letter-spacing:.08em;margin-bottom:8px}
.step h3{font:700 20px var(--disp);text-transform:uppercase;color:var(--navy);margin-bottom:8px}
.step p{font-size:14.5px;color:var(--slate)}

/* Pill badges */
.pill{font:700 11.5px var(--disp);letter-spacing:.06em;text-transform:uppercase;padding:4px 11px;border-radius:99px}
.pill.live{background:var(--live-tint);color:var(--live)}
.pill.flag{background:var(--orange-tint);color:var(--orange-deep)}
.pill.soon{background:#EDF1F7;color:var(--slate)}

/* Hero variants */
.page-hero{padding:56px 0 48px;background:linear-gradient(160deg,#fff 0%,var(--paper) 100%);
  border-bottom:1px solid var(--line)}
.page-hero .eyebrow{font:500 12.5px var(--mono);letter-spacing:.14em;color:var(--orange-deep);margin-bottom:12px}
.page-hero h1{font:800 54px/1.02 var(--disp);text-transform:uppercase;color:var(--navy);margin-bottom:16px}
.page-hero h1 em{font-style:normal;color:var(--orange)}
@media(max-width:760px){.page-hero h1{font-size:36px}}
.page-hero .sub{font-size:18px;color:var(--slate);max-width:580px;margin-bottom:24px}
.hero-ctas{display:flex;gap:12px;flex-wrap:wrap}

/* Pricing cards */
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:18px}
.plan{background:var(--card);border:1px solid var(--line);border-radius:var(--rad);
  padding:24px 20px;display:flex;flex-direction:column;box-shadow:var(--shadow)}
.plan.hot{border:2px solid var(--orange);position:relative}
.plan.hot::before{content:"Most crews pick this";position:absolute;top:-13px;left:50%;
  transform:translateX(-50%);background:var(--orange);color:#fff;
  font:700 11px var(--disp);letter-spacing:.06em;text-transform:uppercase;
  padding:4px 12px;border-radius:99px;white-space:nowrap}
.plan h3{font:700 20px var(--disp);text-transform:uppercase;color:var(--navy)}
.plan .pr{font:500 34px var(--mono);color:var(--ink);margin:10px 0 2px}
.plan .pr small{font-size:14px;color:var(--slate)}
.plan .alt{font:500 12px var(--mono);color:var(--slate);margin-bottom:14px}
.plan ul{list-style:none;flex:1;margin-bottom:16px}
.plan li{font-size:14px;padding:5px 0 5px 20px;position:relative;color:var(--ink)}
.plan li::before{content:"✓";position:absolute;left:0;color:var(--orange);font-weight:700}
.plan .btn{text-align:center;display:block}

/* Compare table */
.tblwrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--rad);
  background:var(--card);box-shadow:var(--shadow)}
table{border-collapse:collapse;width:100%;min-width:640px;font-size:14.5px}
th,td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--line)}
thead th{background:var(--navy);color:#fff;font:700 12.5px var(--disp);letter-spacing:.05em;text-transform:uppercase}
tbody tr:nth-child(even){background:var(--paper)}
tbody tr.us{background:var(--orange-tint);font-weight:600}

/* Calculator */
.calc{background:var(--navy);border-radius:var(--rad);color:#fff;padding:40px;box-shadow:var(--shadow)}
@media(max-width:760px){.calc{padding:26px 18px}}
.calc h2{font:800 30px/1.05 var(--disp);text-transform:uppercase;margin-bottom:6px}
.calc .sub{color:#B9C6DE;margin-bottom:26px;font-size:15.5px}
.calc-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center}
@media(max-width:760px){.calc-grid{grid-template-columns:1fr}}
.calc label{display:block;font:500 12px var(--mono);letter-spacing:.08em;color:#B9C6DE;margin:14px 0 7px}
.calc select,.calc input[type=number]{width:100%;padding:12px 14px;font:600 16px var(--body);
  border-radius:9px;border:1px solid #33507E;background:#0F2140;color:#fff}
.calc input[type=range]{width:100%;accent-color:var(--orange);margin-top:6px}
.calc-out{background:#0F2140;border:1px solid #33507E;border-radius:var(--rad-sm);padding:26px;text-align:center}
.calc-out .lbl{font:500 11.5px var(--mono);letter-spacing:.1em;color:#B9C6DE}
.calc-out .big{font:500 44px/1.1 var(--mono);color:#FFB877;margin:8px 0 2px}
.calc-out .yr{font:500 16px var(--mono);color:#7FD6A4;margin-top:8px}
.calc-out .note{font-size:12px;color:#8FA1BD;margin-top:12px}

/* FAQ */
details{background:var(--card);border:1px solid var(--line);border-radius:var(--rad-sm);
  margin-bottom:12px;box-shadow:var(--shadow)}
summary{cursor:pointer;padding:18px 20px;font:600 17px var(--body);color:var(--navy);
  list-style:none;position:relative;padding-right:48px}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";position:absolute;right:20px;top:50%;transform:translateY(-50%);
  font:700 22px var(--disp);color:var(--orange)}
details[open] summary::after{content:"–"}
details .a{padding:0 20px 18px;color:var(--slate);font-size:15.5px;line-height:1.6}

/* Contact card */
.contact-card{background:var(--card);border:1px solid var(--line);border-radius:var(--rad);
  padding:40px;text-align:center;box-shadow:var(--shadow)}
.contact-card h2{font:800 28px var(--disp);text-transform:uppercase;color:var(--navy);margin-bottom:8px}
.contact-card p{color:var(--slate);margin-bottom:18px}

/* Footer */
footer{background:var(--navy);color:#B9C6DE;padding:44px 0 30px;margin-top:70px;font-size:14px}
.foot-grid{display:grid;grid-template-columns:auto 1fr auto;gap:30px;align-items:start;flex-wrap:wrap}
@media(max-width:760px){.foot-grid{grid-template-columns:1fr}}
.foot-grid img{height:70px;width:auto;filter:brightness(0) invert(1);opacity:.95}
.foot-links{display:flex;flex-direction:column;gap:8px}
.foot-links a{color:#DCE5F2;text-decoration:none;font-size:14px}
.foot-links a:hover{color:#fff}
.foot-address{text-align:right;line-height:1.7}
@media(max-width:760px){.foot-address{text-align:left}}
.foot-copy{border-top:1px solid #2C4470;margin-top:26px;padding-top:18px;color:#8FA1BD;font-size:13px;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}

/* Email form / capture */
.capture{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.capture input[type=email]{flex:1;min-width:220px;padding:12px 14px;
  font:500 15.5px var(--body);border:1px solid var(--line);border-radius:9px;background:#fff}

/* Product overview cards (home) */
.product-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}
.prod-card{background:var(--card);border:1px solid var(--line);border-radius:var(--rad);
  padding:28px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:12px;
  transition:box-shadow .15s,border-color .15s}
.prod-card:hover{box-shadow:0 4px 32px rgba(20,35,63,.14);border-color:var(--orange)}
.prod-card .prod-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.prod-card h3{font:800 24px/1 var(--disp);text-transform:uppercase;color:var(--navy)}
.prod-card .desc{color:var(--slate);font-size:15.5px;flex:1}
.prod-card .cta-row{display:flex;gap:10px;margin-top:4px}

/* Trust strip */
.trust{display:flex;gap:10px 30px;flex-wrap:wrap;margin-top:26px}
.trust-item{font-size:14.5px;color:var(--slate);display:flex;align-items:center;gap:8px}
.trust-item::before{content:"";width:10px;height:10px;border-radius:2px;
  background:var(--orange);display:inline-block;flex-shrink:0}

/* Section bg alt */
.bg-card{background:var(--card)}
