@font-face {
  font-family: "Now";
  src: url("assets/fonts/Now-Regular.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "Now";
  src: url("assets/fonts/Now-Medium.woff2") format("woff2");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}
@font-face {
  font-family: "Now";
  src: url("assets/fonts/Now-SemiBold.woff2") format("woff2");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}
@font-face {
  font-family: "Now";
  src: url("assets/fonts/Now-Bold.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

:root {
  --deep-navy: #0D1C31;
  --navy: #002F4C;
  --surface-navy: #2A374A;
  --rendered-navy: #142B44;
  --overlay-blue: #223D58;
  --gold: #C4A92F;
  --gold-light: #E4D370;
  --putty: #F4F0EC;
  --warm-white: #F8F4F1;
  --white: #FFFFFF;
  --ink: #231F20;
  --muted-light: rgba(244, 240, 236, .78);
  --muted-dark: rgba(0, 47, 76, .76);
  --header-h: clamp(88px, 8.2vw, 132px);
  --shell: min(81.25vw, 1600px);
  --shell-wide: min(91vw, 1800px);
  --section-pad: clamp(82px, 8vw, 144px);
  --radius-lg: 24px;
  --radius-md: 18px;
  --shadow: 0 26px 70px rgba(3, 11, 22, .22);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-width: 320px;
  background: var(--deep-navy);
  color: var(--white);
  font-family: "Now", "Avenir Next", "Century Gothic", "Trebuchet MS", Arial, sans-serif;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  font-synthesis: none;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button { color: inherit; }

.shell { width: var(--shell); margin-inline: auto; }
.shell-wide { width: var(--shell-wide); }

.site-header {
  position: absolute;
  inset: 0 0 auto;
  z-index: 1000;
  height: var(--header-h);
  transition: background .25s ease, backdrop-filter .25s ease, box-shadow .25s ease;
}
.site-header.is-scrolled {
  position: fixed;
  background: rgba(13, 28, 49, .88);
  backdrop-filter: blur(16px);
  box-shadow: 0 1px 0 rgba(255,255,255,.08);
}
.header-inner {
  height: 100%;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: clamp(24px, 3vw, 64px);
}
.brand img { width: clamp(190px, 11vw, 240px); height: auto; }
.desktop-nav { display: flex; align-items: center; gap: clamp(36px, 4.3vw, 82px); }
.desktop-nav a { font-size: clamp(15px, .9vw, 18px); font-weight: 600; position: relative; }
.desktop-nav a::after { content:""; position:absolute; left:0; right:100%; bottom:-10px; height:2px; background:var(--gold); transition:right .25s ease; }
.desktop-nav a:hover::after { right:0; }
.header-actions { display:flex; justify-content:flex-end; align-items:center; gap: clamp(14px, 1.2vw, 22px); }
.header-rule { height:1px; background:rgba(255,255,255,.14); }

.btn {
  min-height: 46px;
  padding: 0 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  border: 1px solid transparent;
  font-size: clamp(14px, .82vw, 16px);
  font-weight: 700;
  letter-spacing: .01em;
  transition: transform .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
}
.btn:hover { transform: translateY(-2px); }
.btn-gold { background:var(--gold); color:var(--deep-navy); }
.btn-gold:hover { background:var(--gold-light); }
.btn-outline { color:var(--gold); border-color:var(--gold); background:rgba(13,28,49,.15); }
.btn-outline-light { color:var(--putty); border-color:rgba(244,240,236,.55); margin-top:30px; }

.menu-toggle { display:none; width:44px; height:44px; border:0; background:transparent; padding:9px; cursor:pointer; }
.menu-toggle span { display:block; height:2px; margin:5px 0; background:var(--white); border-radius:2px; transition:.2s ease; }
.mobile-menu { display:none; }

.hero {
  min-height: 100svh;
  position: relative;
  overflow: hidden;
  background: var(--deep-navy) url("assets/hero-dallas-poster.jpg") center center / cover no-repeat;
}
.hero-overlay {
  position:absolute; inset:0;
  background:
    radial-gradient(circle at 61% 28%, rgba(34,61,88,.22), transparent 36%),
    linear-gradient(90deg, rgba(2,7,15,.26), rgba(13,28,49,.04) 42%, rgba(13,28,49,.06)),
    linear-gradient(180deg, rgba(13,28,49,.08), rgba(3,9,16,.18));
  pointer-events:none;
}
.hero-inner {
  position: relative;
  z-index: 1;
  min-height: 100svh;
  padding-top: calc(var(--header-h) + clamp(26px, 3vh, 54px));
  padding-bottom: clamp(56px, 6.4vh, 92px);
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(300px, .82fr);
  align-items: stretch;
  gap: clamp(56px, 7vw, 150px);
}
.hero-copy {
  align-self: end;
  max-width: clamp(720px, 44vw, 960px);
  padding-left: clamp(0px, 1.5vw, 28px);
}
.hero h1 {
  margin:0;
  color:var(--white);
  font-size: clamp(64px, 4vw, 96px);
  line-height: 1;
  letter-spacing: -.035em;
  font-weight: 500;
}
.hero-description {
  margin-top: clamp(24px, 1.8vw, 34px);
  display:grid;
  grid-template-columns: 3px minmax(0, 34vw);
  gap: 20px;
  align-items:stretch;
}
.hero-description p {
  margin:0;
  max-width: 680px;
  font-size: clamp(18px, 1.125vw, 24px);
  line-height: 1.5;
  color:rgba(255,255,255,.96);
}
.gold-rule { width:3px; background:var(--gold); border-radius:999px; }
.hero-unit-wrap {
  align-self:center;
  justify-self:center;
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  padding-top: calc(var(--header-h) * .06);
}
.hero-unit {
  width: clamp(270px, 17vw, 430px);
  height:auto;
  filter: none;
  animation: none;
  transform-origin:center;
}

.section {
  position:relative;
  overflow:hidden;
  padding-block: var(--section-pad);
}
.section-dark { background:var(--deep-navy); color:var(--white); }
.section-light { background:var(--white); color:var(--deep-navy); }
.section-grid { display:grid; grid-template-columns:minmax(320px,.92fr) minmax(520px,1.08fr); gap:clamp(70px,8vw,150px); align-items:center; }
.section-intro { max-width:620px; }
.eyebrow { margin:0 0 16px; color:var(--gold); font-size:16px; line-height:20px; font-weight:700; letter-spacing:.01em; }
.section h2 { margin:0; font-size:clamp(44px,3.35vw,64px); line-height:1.08; letter-spacing:-.03em; font-weight:600; }
.section-intro > p:not(.eyebrow), .software-copy > p:not(.eyebrow), .why-copy > p:not(.eyebrow), .contact-copy > p:not(.eyebrow) { margin:30px 0 0; font-size:clamp(17px,1.05vw,20px); line-height:1.55; color:var(--muted-light); }
.section-light .section-intro > p:not(.eyebrow), .section-light .why-copy > p:not(.eyebrow), .section-light .contact-copy > p:not(.eyebrow) { color:var(--muted-dark); }
.section-intro .btn { margin-top:34px; }

.process-layout { min-height: calc(100svh - 2 * var(--section-pad)); }
.process-stack { position:relative; display:grid; gap:22px; padding-left:38px; }
.process-stack::before { content:""; position:absolute; left:0; top:3%; bottom:3%; width:2px; background:linear-gradient(var(--gold), rgba(196,169,47,.2)); }
.process-card { position:relative; background:linear-gradient(135deg, rgba(42,55,74,.98), rgba(34,61,88,.72)); border:1px solid rgba(196,169,47,.42); border-radius:var(--radius-md); padding:30px 32px 28px; box-shadow: inset 0 0 0 1px rgba(255,255,255,.03), var(--shadow); }
.process-card::before { content:""; position:absolute; inset:0; border-radius:inherit; background:radial-gradient(circle at 25% 0%, rgba(244,229,171,.09), transparent 34%); pointer-events:none; }
.step-pill { display:inline-flex; padding:6px 13px; border-radius:999px; background:rgba(13,28,49,.75); color:var(--gold); font-size:13px; font-weight:700; }
.process-card h3 { margin:18px 0 12px; font-size:clamp(24px,1.6vw,32px); }
.process-card p { margin:0; color:var(--muted-light); font-size:16px; line-height:1.5; max-width:620px; }

.product-shell { min-height:calc(100svh - 2 * var(--section-pad)); display:flex; flex-direction:column; justify-content:center; }
.product-heading { margin-bottom:clamp(44px,5vw,72px); }
.product-heading h2 { max-width:1050px; }
.feature-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:42px 64px; }
.feature { display:grid; grid-template-columns:64px 1fr; gap:22px; align-items:start; }
.feature-icon { width:64px; aspect-ratio:1; border-radius:18px; display:grid; place-items:center; background:var(--warm-white); box-shadow:0 15px 35px rgba(13,28,49,.14); border:1px solid rgba(0,47,76,.08); }
.feature-icon svg { width:30px; height:30px; fill:none; stroke:var(--navy); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.feature h3 { margin:0 0 10px; font-size:22px; line-height:28px; }
.feature p { margin:0; max-width:360px; color:var(--muted-dark); font-size:16px; line-height:24px; }

.industries-shell { min-height:calc(100svh - 2 * var(--section-pad)); display:flex; flex-direction:column; justify-content:center; }
.center-heading { text-align:center; max-width:1120px; margin:0 auto clamp(44px,4vw,64px); }
.center-heading > p:last-child { margin:26px auto 0; color:var(--muted-light); font-size:17px; line-height:1.5; max-width:920px; }
.industry-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px; }
.industry-card { min-height:460px; display:flex; flex-direction:column; border-radius:20px; background:var(--surface-navy); padding:32px 30px 28px; box-shadow:0 20px 50px rgba(0,0,0,.14); }
.dot-row { display:flex; gap:6px; margin-bottom:28px; }
.dot-row i { width:9px; height:9px; border-radius:50%; background:rgba(244,240,236,.16); }
.dot-row i.active { background:var(--gold); }
.industry-card h3 { margin:0; font-size:clamp(24px,1.6vw,30px); line-height:1.25; }
.industry-card > p { margin:18px 0 26px; color:var(--muted-light); font-size:15px; line-height:1.45; min-height:66px; }
.industry-card ul { list-style:none; margin:auto 0 0; padding:0; }
.industry-card li { padding:15px 0; border-bottom:1px solid rgba(244,240,236,.09); color:rgba(255,255,255,.9); font-size:15px; font-weight:600; }

.software-section { background:linear-gradient(180deg,var(--deep-navy),#0A1829); }
.software-grid { min-height:calc(100svh - 2 * var(--section-pad)); display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(70px,8vw,150px); align-items:center; }
.software-copy { max-width:650px; }
.dashboard-visual { border:1px solid rgba(196,169,47,.32); background:rgba(42,55,74,.72); border-radius:28px; padding:28px; box-shadow:var(--shadow); }
.dashboard-topline { display:flex; justify-content:space-between; align-items:center; color:var(--putty); font-size:14px; font-weight:700; padding-bottom:20px; border-bottom:1px solid rgba(255,255,255,.08); }
.live-pill { color:var(--gold); padding:6px 10px; border-radius:999px; background:rgba(196,169,47,.09); }
.dashboard-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:18px; }
.dash-card { min-height:190px; padding:22px; border-radius:18px; background:#172E49; border:1px solid rgba(255,255,255,.05); display:flex; flex-direction:column; }
.dash-card.wide { grid-column:1/-1; min-height:170px; }
.dash-card strong { font-size:17px; }
.dash-card span { margin-top:6px; color:rgba(244,240,236,.65); font-size:13px; }
.spark { margin-top:auto; height:64px; display:flex; align-items:end; gap:8px; }
.spark i { flex:1; border-radius:5px 5px 2px 2px; background:linear-gradient(var(--gold-light),var(--gold)); opacity:.86; }
.spark i:nth-child(1){height:28%}.spark i:nth-child(2){height:46%}.spark i:nth-child(3){height:39%}.spark i:nth-child(4){height:70%}.spark i:nth-child(5){height:54%}.spark i:nth-child(6){height:82%}.spark i:nth-child(7){height:68%}
.video-frame { margin-top:auto; height:82px; border-radius:12px; background:linear-gradient(135deg,#0D1C31,#223D58); display:grid; place-items:center; }
.play { width:36px; height:36px; border-radius:50%; border:1px solid rgba(255,255,255,.5); position:relative; }
.play::after { content:""; position:absolute; left:14px; top:10px; border-left:10px solid var(--putty); border-top:7px solid transparent; border-bottom:7px solid transparent; }
.timeline { margin-top:auto; height:56px; display:flex; gap:8px; align-items:center; }
.timeline i { height:8px; flex:1; border-radius:999px; background:rgba(244,240,236,.12); }
.timeline i:nth-child(2),.timeline i:nth-child(5),.timeline i:nth-child(7){ background:var(--gold); }

.why-grid { min-height:calc(100svh - 2 * var(--section-pad)); display:grid; grid-template-columns:1fr .9fr; gap:clamp(70px,7vw,130px); align-items:center; }
.why-copy { max-width:720px; }
.why-lede { font-size:clamp(20px,1.3vw,25px)!important; color:var(--navy)!important; }
.values-grid { margin-top:42px; display:grid; grid-template-columns:repeat(2,1fr); gap:20px 28px; }
.values-grid div { padding:20px 0; border-top:1px solid rgba(0,47,76,.14); display:flex; flex-direction:column; gap:7px; }
.values-grid strong { font-size:18px; }
.values-grid span { color:var(--muted-dark); font-size:15px; line-height:1.45; }
.orbit-wrap { position:relative; min-height:560px; display:grid; place-items:center; }
.orbit-rings { width:min(100%,620px); opacity:.94; animation:orbitSpin 34s linear infinite; }
.orbit-shield { position:absolute; inset:50% auto auto 50%; transform:translate(-50%,-50%); width:118px; aspect-ratio:1; border-radius:34px; display:grid; place-items:center; background:var(--deep-navy); box-shadow:0 22px 50px rgba(13,28,49,.22); }
.orbit-shield img { width:72px; max-height:78px; }
@keyframes orbitSpin { to { transform:rotate(360deg); } }

.faq-section { padding-block:clamp(90px,7vw,130px); }
.faq-grid { display:grid; grid-template-columns:.75fr 1.25fr; gap:clamp(60px,7vw,120px); align-items:start; }
.faq-list { display:grid; gap:12px; }
.faq-item { background:var(--surface-navy); border:1px solid rgba(255,255,255,.06); border-radius:16px; padding:0 22px; }
.faq-item summary { list-style:none; cursor:pointer; padding:23px 38px 23px 0; position:relative; font-size:18px; font-weight:700; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary::after { content:"+"; position:absolute; right:4px; top:50%; transform:translateY(-50%); color:var(--gold); font-size:28px; font-weight:400; }
.faq-item[open] summary::after { content:"−"; }
.faq-item p { margin:0 0 24px; color:var(--muted-light); line-height:1.55; font-size:16px; max-width:760px; }

.contact-grid { min-height:calc(100svh - 2 * var(--section-pad)); display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(70px,8vw,140px); align-items:center; }
.contact-copy { max-width:620px; }
.contact-details { margin-top:34px; display:flex; flex-direction:column; gap:12px; color:var(--navy); font-weight:700; }
.demo-form { background:var(--warm-white); border:1px solid rgba(0,47,76,.09); border-radius:24px; padding:clamp(28px,3vw,46px); box-shadow:0 28px 75px rgba(13,28,49,.12); display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.demo-form label { display:flex; flex-direction:column; gap:8px; color:var(--deep-navy); font-size:14px; font-weight:700; }
.demo-form label:nth-of-type(3), .demo-form label:nth-of-type(4) { grid-column:1/-1; }
.demo-form input, .demo-form textarea { width:100%; border:1px solid rgba(0,47,76,.16); border-radius:12px; padding:14px 15px; background:#fff; color:var(--deep-navy); outline:none; transition:border-color .18s ease, box-shadow .18s ease; }
.demo-form input:focus, .demo-form textarea:focus { border-color:var(--gold); box-shadow:0 0 0 3px rgba(196,169,47,.12); }
.demo-form textarea { resize:vertical; min-height:120px; }
.demo-form .btn { justify-self:start; margin-top:4px; }
.form-note { grid-column:1/-1; margin:0; color:rgba(0,47,76,.62); font-size:12px; }

.site-footer { background:#081523; color:var(--putty); padding:72px 0 30px; }
.footer-grid { display:grid; grid-template-columns:.9fr 1.4fr; gap:80px; padding-bottom:50px; border-bottom:1px solid rgba(255,255,255,.08); }
.footer-brand img { width:220px; }
.footer-brand p { max-width:430px; color:rgba(244,240,236,.7); line-height:1.55; }
.footer-links { display:grid; grid-template-columns:repeat(3,1fr); gap:30px; }
.footer-links div { display:flex; flex-direction:column; gap:12px; }
.footer-links strong { color:var(--gold); margin-bottom:6px; }
.footer-links a, .footer-links span { color:rgba(244,240,236,.72); font-size:14px; line-height:1.45; }
.footer-links a:hover { color:var(--white); }
.footer-bottom { padding-top:26px; color:rgba(244,240,236,.5); font-size:13px; }

.reveal { opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
.reveal.is-visible { opacity:1; transform:none; }

@media (min-width: 1920px) {
  :root { --shell: min(83.33vw, 1800px); --shell-wide: min(92vw, 1960px); }
  .hero h1 { font-size:clamp(76px,4vw,104px); }
  .hero-description { grid-template-columns:3px minmax(0,34vw); }
  .hero-description p { font-size:clamp(20px,1.125vw,26px); max-width:760px; }
  .hero-unit { width:clamp(330px,17vw,460px); }
}

@media (max-width: 1199px) {
  :root { --shell: min(88vw, 1040px); --shell-wide: min(92vw, 1120px); --section-pad:84px; --header-h:96px; }
  .desktop-nav { gap:28px; }
  .header-actions .btn { padding-inline:18px; }
  .hero-inner { grid-template-columns:1fr .78fr; gap:34px; }
  .hero h1 { font-size:clamp(52px,5.2vw,64px); }
  .hero-description { grid-template-columns:3px minmax(0,46vw); }
  .hero-description p { font-size:17px; }
  .hero-unit { width:clamp(240px,25vw,300px); }
  .section-grid, .software-grid, .why-grid, .contact-grid { gap:58px; }
  .industry-grid { grid-template-columns:repeat(2,1fr); }
  .industry-card { min-height:420px; }
}

@media (max-width: 900px) {
  :root { --shell: min(90vw, 760px); --shell-wide: min(92vw, 800px); --header-h:84px; --section-pad:72px; }
  .header-inner { grid-template-columns:1fr auto; }
  .desktop-nav, .header-actions { display:none; }
  .brand img { width:190px; }
  .menu-toggle { display:block; justify-self:end; }
  .mobile-menu { position:fixed; left:4vw; right:4vw; top:76px; padding:22px; background:rgba(13,28,49,.97); border:1px solid rgba(255,255,255,.1); border-radius:18px; box-shadow:var(--shadow); flex-direction:column; gap:8px; }
  .mobile-menu.is-open { display:flex; }
  .mobile-menu a { padding:13px 12px; font-weight:700; }
  .mobile-menu .btn { margin-top:8px; }

  .hero { min-height:100svh; background-position:center center; }
  .hero-inner { grid-template-columns:1fr; padding-top:calc(var(--header-h) + 26px); padding-bottom:48px; gap:12px; }
  .hero-copy { order:2; align-self:end; max-width:100%; padding-left:0; }
  .hero h1 { font-size:clamp(48px,8.5vw,68px); }
  .hero-description { grid-template-columns:3px 1fr; max-width:680px; }
  .hero-description p { font-size:17px; max-width:none; }
  .hero-unit-wrap { order:1; align-self:end; min-height:38svh; padding-top:0; }
  .hero-unit { width:clamp(230px,34vw,300px); }

  .section-grid, .software-grid, .why-grid, .contact-grid, .faq-grid { grid-template-columns:1fr; gap:50px; min-height:auto; }
  .process-layout, .product-shell, .industries-shell { min-height:auto; }
  .process-stack { padding-left:28px; }
  .feature-grid { grid-template-columns:1fr; gap:30px; }
  .feature p { max-width:520px; }
  .industry-grid { grid-template-columns:1fr 1fr; }
  .orbit-wrap { min-height:460px; }
  .contact-grid { align-items:start; }
}

@media (max-width: 640px) {
  :root { --shell:92vw; --shell-wide:92vw; --header-h:76px; --section-pad:58px; }
  .brand img { width:168px; }
  .hero { background-position:58% center; }
  .hero-inner { min-height:100svh; padding-top:calc(var(--header-h) + 14px); padding-bottom:30px; }
  .hero-unit-wrap { min-height:42svh; align-items:end; }
  .hero-unit { width:clamp(205px,58vw,270px); }
  .hero h1 { font-size:clamp(42px,12.5vw,58px); letter-spacing:-.045em; }
  .hero-description { margin-top:20px; gap:14px; }
  .hero-description p { font-size:15px; line-height:1.48; }
  .btn { min-height:44px; padding-inline:20px; }

  .section h2 { font-size:clamp(38px,10vw,50px); }
  .section-intro > p:not(.eyebrow), .software-copy > p:not(.eyebrow), .why-copy > p:not(.eyebrow), .contact-copy > p:not(.eyebrow) { font-size:16px; }
  .process-card { padding:26px 24px; }
  .feature { grid-template-columns:54px 1fr; gap:18px; }
  .feature-icon { width:54px; border-radius:16px; }
  .feature-icon svg { width:27px; }
  .feature h3 { font-size:20px; line-height:25px; }
  .industry-grid { grid-template-columns:1fr; }
  .industry-card { min-height:auto; }
  .industry-card > p { min-height:0; }
  .dashboard-grid { grid-template-columns:1fr; }
  .dash-card.wide { grid-column:auto; }
  .values-grid { grid-template-columns:1fr; }
  .orbit-wrap { min-height:360px; }
  .orbit-shield { width:92px; border-radius:26px; }
  .orbit-shield img { width:56px; }
  .demo-form { grid-template-columns:1fr; padding:24px; }
  .demo-form label:nth-of-type(3), .demo-form label:nth-of-type(4) { grid-column:auto; }
  .demo-form .btn, .form-note { grid-column:auto; }
  .footer-grid { grid-template-columns:1fr; gap:44px; }
  .footer-links { grid-template-columns:1fr 1fr; }
  .footer-links div:last-child { grid-column:1/-1; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.001ms!important; animation-iteration-count:1!important; transition-duration:.001ms!important; }
  .reveal { opacity:1; transform:none; }
}

/* ===== FG v2 motion + interaction layer ===== */

/* Header feels alive without becoming distracting. */
.site-header { animation: headerIn .72s cubic-bezier(.2,.75,.2,1) both; }
@keyframes headerIn { from { opacity:0; transform:translateY(-18px); } to { opacity:1; transform:none; } }

.desktop-nav { gap:clamp(24px,2.4vw,48px); }
.desktop-nav a { transition:color .22s ease, transform .22s ease; }
.desktop-nav a:hover { color:var(--gold-light); transform:translateY(-1px); }
.desktop-nav a.is-active { color:var(--gold-light); }
.desktop-nav a.is-active::after { right:0; }

/* Hero background is painted statically for native sharpness. */
.hero { background:var(--deep-navy); isolation:isolate; }
.hero::before {
  content:"";
  position:absolute;
  inset:-2.5%;
  z-index:0;
  background:url("assets/hero-dallas-poster.jpg") center center / cover no-repeat;
  transform:none;
  animation:none;
}
.hero::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:radial-gradient(circle at 69% 35%,rgba(196,169,47,.055),transparent 24%);
  animation:heroGlow 8s ease-in-out infinite alternate;
  pointer-events:none;
}
@keyframes heroGlow { from { opacity:.4; } to { opacity:1; } }
.hero-overlay { z-index:2; }
.hero-inner { z-index:3; }

.hero-copy { animation:heroCopyIn .92s .18s cubic-bezier(.18,.78,.22,1) both; }
.hero-unit-wrap { animation:heroUnitIn 1.05s .28s cubic-bezier(.18,.78,.22,1) both; }
.gold-rule { transform-origin:bottom; animation:ruleDraw .72s .8s cubic-bezier(.2,.75,.2,1) both; }
@keyframes heroCopyIn { from { opacity:0; transform:translate3d(-24px,30px,0); } to { opacity:1; transform:none; } }
@keyframes heroUnitIn { from { opacity:0; transform:translate3d(42px,-8px,0) scale(.965); } to { opacity:1; transform:none; } }
@keyframes ruleDraw { from { transform:scaleY(0); opacity:0; } to { transform:scaleY(1); opacity:1; } }

/* More sophisticated continuous life on the process cards. */
.process-card { overflow:hidden; transition:transform .32s ease, border-color .32s ease, box-shadow .32s ease; }
.process-card::after {
  content:"";
  position:absolute;
  inset:-45% -22%;
  background:linear-gradient(112deg,transparent 36%,rgba(228,211,112,.16) 49%,rgba(196,169,47,.24) 52%,transparent 64%);
  transform:translateX(-62%) rotate(4deg);
  animation:cardSheen 7.4s ease-in-out infinite;
  pointer-events:none;
}
.process-card:nth-child(2)::after { animation-delay:-2.4s; }
.process-card:nth-child(3)::after { animation-delay:-4.8s; }
.process-card:hover { transform:translateY(-6px); border-color:rgba(228,211,112,.72); box-shadow:0 28px 72px rgba(3,11,22,.34),0 0 34px rgba(196,169,47,.08); }
.process-stack::before { background-size:100% 220%; animation:goldLineFlow 4s linear infinite; }
@keyframes cardSheen { 0%,55% { transform:translateX(-62%) rotate(4deg); opacity:0; } 68% { opacity:1; } 86%,100% { transform:translateX(68%) rotate(4deg); opacity:0; } }
@keyframes goldLineFlow { to { background-position:0 220%; } }

.feature { transition:transform .28s ease; }
.feature:hover { transform:translateY(-4px); }
.feature-icon { transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease; }
.feature:hover .feature-icon { transform:translateY(-4px) rotate(-2deg); border-color:rgba(196,169,47,.3); box-shadow:0 20px 42px rgba(13,28,49,.17),0 0 26px rgba(196,169,47,.08); }

.industry-card { position:relative; overflow:hidden; transition:transform .3s ease, box-shadow .3s ease; }
.industry-card::after { content:""; position:absolute; left:0; right:100%; top:0; height:2px; background:linear-gradient(90deg,var(--gold),var(--gold-light)); transition:right .38s ease; }
.industry-card:hover { transform:translateY(-7px); box-shadow:0 30px 66px rgba(0,0,0,.22); }
.industry-card:hover::after { right:0; }
.dot-row i.active { animation:dotPulse 2.4s ease-in-out infinite; }
@keyframes dotPulse { 0%,100% { box-shadow:0 0 0 0 rgba(196,169,47,0); } 50% { box-shadow:0 0 0 7px rgba(196,169,47,.08); } }

/* Dashboard animations are triggered when the dashboard reveals. */
.dashboard-visual { position:relative; overflow:hidden; transition:transform .4s ease, box-shadow .4s ease; }
.dashboard-visual::before { content:""; position:absolute; width:42%; height:170%; top:-35%; left:-60%; transform:rotate(18deg); background:linear-gradient(90deg,transparent,rgba(255,255,255,.055),transparent); animation:dashboardSweep 8s ease-in-out infinite; pointer-events:none; }
.dashboard-visual:hover { transform:translateY(-5px); box-shadow:0 34px 84px rgba(3,11,22,.32); }
.dashboard-visual.is-visible .spark i { animation:barRise .7s cubic-bezier(.2,.7,.2,1) both; transform-origin:bottom; }
.dashboard-visual.is-visible .spark i:nth-child(2){animation-delay:.08s}.dashboard-visual.is-visible .spark i:nth-child(3){animation-delay:.16s}.dashboard-visual.is-visible .spark i:nth-child(4){animation-delay:.24s}.dashboard-visual.is-visible .spark i:nth-child(5){animation-delay:.32s}.dashboard-visual.is-visible .spark i:nth-child(6){animation-delay:.4s}.dashboard-visual.is-visible .spark i:nth-child(7){animation-delay:.48s}
.timeline i:nth-child(2),.timeline i:nth-child(5),.timeline i:nth-child(7) { animation:timelinePulse 2.6s ease-in-out infinite; }
.live-pill { position:relative; }
.live-pill::before { content:""; display:inline-block; width:6px; height:6px; border-radius:50%; background:var(--gold); margin-right:7px; vertical-align:1px; animation:livePulse 1.7s ease-out infinite; }
@keyframes dashboardSweep { 0%,58% { left:-60%; opacity:0; } 68% { opacity:1; } 88%,100% { left:130%; opacity:0; } }
@keyframes barRise { from { transform:scaleY(.05); opacity:.35; } to { transform:scaleY(1); opacity:.86; } }
@keyframes timelinePulse { 0%,100% { opacity:.72; } 50% { opacity:1; box-shadow:0 0 14px rgba(196,169,47,.32); } }
@keyframes livePulse { 0% { box-shadow:0 0 0 0 rgba(196,169,47,.38); } 75%,100% { box-shadow:0 0 0 8px rgba(196,169,47,0); } }

/* Original orbit graphic, preserved and toned sepia/gold. The shield remains fixed. */
.orbit-wrap::before { content:""; position:absolute; width:min(88%,530px); aspect-ratio:1; border-radius:50%; background:radial-gradient(circle,rgba(196,169,47,.09),rgba(196,169,47,.025) 34%,transparent 70%); animation:orbitHalo 5.5s ease-in-out infinite alternate; }
.orbit-rings {
  width:min(100%,666px);
  opacity:.96;
  filter:sepia(1) saturate(.92) hue-rotate(350deg) brightness(1.02) contrast(.94) drop-shadow(0 0 7px rgba(196,169,47,.12));
  animation:orbitSpin 32s linear infinite;
  transform-origin:50% 50%;
  will-change:transform;
}
.orbit-shield { z-index:2; animation:shieldBreath 5.2s ease-in-out infinite; }
.orbit-shield::after { content:""; position:absolute; inset:-18px; border-radius:44px; border:1px solid rgba(196,169,47,.18); opacity:.4; animation:shieldRing 3.6s ease-out infinite; }
@keyframes orbitHalo { from { transform:scale(.96); opacity:.52; } to { transform:scale(1.05); opacity:1; } }
@keyframes shieldBreath { 0%,100% { box-shadow:0 22px 50px rgba(13,28,49,.22),0 0 0 rgba(196,169,47,0); } 50% { box-shadow:0 22px 50px rgba(13,28,49,.25),0 0 34px rgba(196,169,47,.13); } }
@keyframes shieldRing { from { transform:scale(.9); opacity:.42; } to { transform:scale(1.18); opacity:0; } }

.faq-item { transition:border-color .25s ease, transform .25s ease, background .25s ease; }
.faq-item:hover { transform:translateX(4px); border-color:rgba(196,169,47,.28); }
.faq-item[open] { border-color:rgba(196,169,47,.34); background:#303E51; }

/* Stagger classes are applied in JS so sections enter in sequence instead of all at once. */
.reveal { will-change:auto; }

@media (max-width:900px) {
  .desktop-nav { gap:18px; }
  .orbit-rings { width:min(92vw,560px); }
}

@media (prefers-reduced-motion: reduce) {
  .site-header,.hero-copy,.hero-unit-wrap,.gold-rule,.hero::before,.hero::after,.process-card::after,.process-stack::before,.dot-row i.active,.dashboard-visual::before,.timeline i,.live-pill::before,.orbit-rings,.orbit-wrap::before,.orbit-shield,.orbit-shield::after { animation:none!important; }
}

/* ===== FG v3 responsive proportion + professional typography layer ===== */

:root {
  /* Compact header; elements retain their existing visual size. */
  --header-h: clamp(70px, 4.5vw, 84px);
  /* Fluid canvas that grows with desktop displays instead of looking miniature. */
  --shell: min(88vw, 2000px);
  --shell-wide: min(92vw, 2200px);
  --section-pad: clamp(48px, 5.7vh, 82px);
}

html { scroll-padding-top: var(--header-h); }
h1, h2, h3 { text-wrap: balance; }
p { text-wrap: pretty; }

/* Professionalize the weight hierarchy. */
.desktop-nav a { font-weight: 500; }
.btn { font-weight: 600; }
.eyebrow { font-weight: 600; }
.section h2 { font-weight: 500; }
.process-card h3,
.feature h3,
.industry-card h3,
.dash-card strong,
.values-grid strong,
.faq-item summary { font-weight: 600; }
.step-pill,
.industry-card li,
.dashboard-topline,
.demo-form label,
.footer-links strong { font-weight: 500; }
.mobile-menu a { font-weight: 500; }

/* Narrower header top-to-bottom without shrinking the logo/nav/buttons. */
.site-header { height: var(--header-h); }
.header-inner { min-height: var(--header-h); }
.header-rule { opacity: .72; }
.brand img { width: clamp(184px, 10.5vw, 220px); }
.desktop-nav { gap: clamp(24px, 2.5vw, 50px); }
.desktop-nav a { font-size: clamp(14px, .88vw, 17px); }
.btn { min-height: 42px; padding-inline: 22px; }

/* Every major home panel fills at least one viewport and vertically centers its content.
   Content can still grow naturally on short/tablet/mobile screens. */
.section.panel-snap {
  min-height: 100svh;
  display: flex;
  align-items: center;
}
.section.panel-snap > .shell { width: var(--shell); }
.process-layout,
.product-shell,
.industries-shell,
.software-grid,
.why-grid,
.contact-grid { min-height: 0; width: 100%; }

/* Fluid type and spacing keeps visual scale consistent from normal desktop through 1920+. */
.section h2 {
  font-size: clamp(40px, 3vw, 72px);
  line-height: 1.06;
  letter-spacing: -.025em;
}
.section-intro > p:not(.eyebrow),
.software-copy > p:not(.eyebrow),
.why-copy > p:not(.eyebrow),
.contact-copy > p:not(.eyebrow) {
  font-size: clamp(16px, 1vw, 21px);
  line-height: 1.52;
}
.eyebrow { font-size: clamp(14px, .88vw, 17px); }

/* Hero follows the same fluid scale instead of hard 1920 jumps. */
.hero-inner {
  padding-top: calc(var(--header-h) + clamp(20px, 2.7vh, 44px));
  padding-bottom: clamp(38px, 5vh, 72px);
  gap: clamp(48px, 6vw, 130px);
}
.hero-copy { max-width: 46vw; }
.hero h1 { font-size: clamp(58px, 4vw, 92px); }
.hero-description { grid-template-columns: 3px minmax(0, 34vw); }
.hero-description p { font-size: clamp(16px, 1.125vw, 22px); max-width: none; }
.hero-unit { width: clamp(250px, 17vw, 390px); }

/* How It Works: wide, balanced, and viewport-filling at all desktop widths. */
.section-grid {
  grid-template-columns: minmax(0, .96fr) minmax(0, 1.04fr);
  gap: clamp(48px, 5.3vw, 104px);
}
.section-intro { max-width: 680px; }
.section-intro h2 { max-width: 16ch; }
.section-intro > p:not(.eyebrow) { max-width: 40ch; }
.process-stack { gap: clamp(16px, 1.2vw, 24px); padding-left: clamp(26px, 2.2vw, 42px); }
.process-card { padding: clamp(24px, 1.75vw, 36px) clamp(24px, 1.9vw, 38px); }
.process-card h3 { font-size: clamp(22px, 1.45vw, 30px); }
.process-card p { font-size: clamp(14px, .9vw, 18px); line-height: 1.48; }
.step-pill { font-size: clamp(11px, .7vw, 13px); }

/* Site Customization */
.product-heading { margin-bottom: clamp(34px, 4vh, 60px); }
.product-heading h2 { max-width: 24ch; }
.feature-grid { gap: clamp(28px, 3vh, 44px) clamp(44px, 4vw, 78px); }
.feature h3 { font-size: clamp(19px, 1.25vw, 24px); line-height: 1.24; }
.feature p { max-width: 38ch; font-size: clamp(14px, .9vw, 17px); line-height: 1.5; }

/* Industries: balanced title/body and one-line card titles on desktop. */
.center-heading { max-width: none; margin-bottom: clamp(34px, 4.5vh, 62px); }
.center-heading h2 { max-width: 18ch; margin-inline: auto; }
.center-heading > p:last-child {
  max-width: 68ch;
  margin-top: clamp(18px, 2vh, 26px);
  font-size: clamp(15px, .95vw, 18px);
  line-height: 1.5;
}
.industry-grid { gap: clamp(16px, 1.5vw, 26px); }
.industry-card {
  min-height: clamp(390px, 45vh, 520px);
  padding: clamp(24px, 1.75vw, 34px) clamp(22px, 1.6vw, 32px);
}
.industry-card h3 {
  font-size: clamp(18px, 1.12vw, 23px);
  line-height: 1.18;
  white-space: nowrap;
  letter-spacing: -.01em;
}
.industry-card > p {
  margin: 16px 0 24px;
  font-size: clamp(13px, .78vw, 16px);
  line-height: 1.45;
  min-height: 3.9em;
}
.industry-card li { padding: clamp(11px, 1vh, 15px) 0; font-size: clamp(13px, .78vw, 15px); }

/* Property Intelligence */
.software-grid { grid-template-columns: .88fr 1.12fr; gap: clamp(52px, 6vw, 120px); }
.software-copy { max-width: 700px; }
.software-copy h2 { max-width: 15ch; }
.software-copy > p:not(.eyebrow) { max-width: 42ch; }
.dashboard-visual { padding: clamp(22px, 1.8vw, 34px); }

/* Why Us: original orbit geometry, now dark enough on the white section. */
.why-grid { gap: clamp(54px, 6vw, 120px); grid-template-columns: .95fr 1.05fr; }
.why-copy { max-width: 760px; }
.why-copy h2 { max-width: 13ch; }
.orbit-wrap { min-height: clamp(430px, 58vh, 680px); }
.orbit-rings {
  width: min(100%, clamp(480px, 36vw, 720px));
  opacity: 1;
  filter: drop-shadow(0 0 8px rgba(13,28,49,.06));
}
.orbit-shield {
  width: clamp(150px, 10.5vw, 220px);
  border-radius: clamp(32px, 2.3vw, 48px);
  background: transparent;
  box-shadow: none;
}
.orbit-shield img { width: 100%; max-height: none; }
.orbit-shield::after { display:none; }

/* Get a Demo: contact details intentionally removed; copy/form remain balanced. */
.contact-grid { grid-template-columns: .88fr 1.12fr; gap: clamp(54px, 6vw, 118px); }
.contact-copy { max-width: 680px; }
.contact-copy h2 { max-width: 17ch; }
.contact-copy > p:not(.eyebrow) { max-width: 41ch; }
.contact-details { display:none; }
.demo-form { padding: clamp(26px, 2.4vw, 42px); }

/* Footer: Resources now includes FAQ / Legal / Privacy. */
.site-footer { padding-top: clamp(54px, 5vw, 76px); }
.footer-links strong { font-size: 14px; }

/* Standalone utility/resource pages. */
.resource-page-main {
  min-height: 100svh;
  background: var(--deep-navy);
  padding: calc(var(--header-h) + clamp(46px, 7vh, 90px)) 0 clamp(70px, 9vh, 120px);
}
.resource-page-main.light { background: var(--white); color: var(--deep-navy); }
.resource-hero { width: min(86vw, 1180px); margin-inline:auto; }
.resource-hero .eyebrow { margin-bottom: 14px; }
.resource-hero h1 {
  margin: 0;
  font-size: clamp(44px, 4vw, 76px);
  line-height: 1.03;
  letter-spacing: -.03em;
  font-weight: 500;
  max-width: 16ch;
  text-wrap: balance;
}
.resource-hero > p {
  margin: 24px 0 0;
  max-width: 62ch;
  color: var(--muted-light);
  font-size: clamp(16px, 1vw, 20px);
  line-height: 1.55;
}
.resource-page-main.light .resource-hero > p { color: var(--muted-dark); }
.resource-faq { width:min(86vw,1180px); margin:48px auto 0; display:grid; gap:12px; }
.placeholder-card {
  margin-top: 44px;
  padding: clamp(26px,3vw,42px);
  border:1px solid rgba(0,47,76,.12);
  border-radius:20px;
  background:var(--warm-white);
  color:var(--deep-navy);
  max-width:760px;
}
.placeholder-card h2 { margin:0 0 12px; font-weight:500; font-size:clamp(26px,2vw,36px); }
.placeholder-card p { margin:0; color:var(--muted-dark); line-height:1.55; }

/* Kill the old 1920-specific jump. Everything above grows through the same fluid rules. */
@media (min-width: 1920px) {
  :root { --shell:min(88vw,2000px); --shell-wide:min(92vw,2200px); }
  .hero h1 { font-size:clamp(58px,4vw,92px); }
  .hero-description { grid-template-columns:3px minmax(0,34vw); }
  .hero-description p { font-size:clamp(16px,1.125vw,22px); max-width:none; }
  .hero-unit { width:clamp(250px,17vw,390px); }
}

@media (max-width: 1199px) {
  :root { --header-h:76px; --shell:min(90vw,1060px); --shell-wide:min(92vw,1120px); --section-pad:56px; }
  .section.panel-snap { min-height:100svh; }
  .section-grid, .software-grid, .why-grid, .contact-grid { gap:48px; }
  .section h2 { font-size:clamp(38px,4.2vw,52px); }
  .section-intro h2 { max-width:18ch; }
  .industry-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .industry-card { min-height:360px; }
  .industry-card h3 { white-space:normal; font-size:21px; }
}

@media (max-width: 900px) {
  :root { --header-h:72px; --section-pad:50px; }
  .brand img { width:184px; }
  .mobile-menu { top:calc(var(--header-h) - 2px); }
  .section.panel-snap { min-height:100svh; align-items:flex-start; }
  .section.panel-snap > .shell { margin-block:auto; }
  .section-grid, .software-grid, .why-grid, .contact-grid { grid-template-columns:1fr; gap:42px; }
  .section-intro, .software-copy, .why-copy, .contact-copy { max-width:680px; }
  .section h2 { font-size:clamp(36px,6.6vw,50px); }
  .section-intro > p:not(.eyebrow), .software-copy > p:not(.eyebrow), .why-copy > p:not(.eyebrow), .contact-copy > p:not(.eyebrow) { font-size:16px; }
  .process-stack { padding-left:24px; }
  .industry-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .industry-card { min-height:0; }
  .orbit-wrap { min-height:430px; }
  .footer-links { grid-template-columns:repeat(3,minmax(0,1fr)); }
}

@media (max-width: 640px) {
  :root { --header-h:68px; --shell:92vw; --shell-wide:92vw; --section-pad:42px; }
  .brand img { width:164px; }
  .site-header { height:var(--header-h); }
  .hero-inner { padding-top:calc(var(--header-h) + 12px); padding-bottom:26px; }
  .hero-copy { max-width:100%; }
  .hero h1 { font-size:clamp(40px,12vw,54px); }
  .hero-description { grid-template-columns:3px 1fr; }
  .hero-description p { font-size:15px; }
  .hero-unit { width:clamp(205px,56vw,270px); }
  .section h2 { font-size:clamp(34px,9.4vw,46px); }
  .industry-grid { grid-template-columns:1fr; }
  .industry-card h3 { white-space:normal; font-size:21px; }
  .footer-links { grid-template-columns:1fr 1fr; }
  .footer-links div:last-child { grid-column:1/-1; }
  .orbit-wrap { min-height:340px; }
  .orbit-rings { width:min(92vw,520px); }
  .orbit-shield { width:clamp(110px,30vw,150px); }
  .resource-page-main { padding-top:calc(var(--header-h) + 42px); }
}

/* ===== FG v4 spacing, orbit precision, setup scale, and motion layer ===== */

/* Global rhythm: tighter tracking, cleaner hierarchy, fewer awkward gaps. */
body { letter-spacing: -.006em; }
p { letter-spacing: -.008em; }
.section h2,
.resource-hero h1 { letter-spacing: -.034em; }
.process-card h3,
.feature h3,
.industry-card h3,
.dash-card strong,
.values-grid strong { letter-spacing: -.018em; }
.desktop-nav a,
.btn,
.eyebrow { letter-spacing: 0; }

/* Short section intros balance their own lines instead of leaving a dangling word. */
.center-heading h2,
.center-heading > p:last-child,
.software-copy h2,
.software-copy > p:not(.eyebrow),
.product-heading h2,
.section-intro h2,
.section-intro > p:not(.eyebrow) { text-wrap: balance; }

/* Industries: remove the artificial empty middle of every card. */
.center-heading { margin-bottom: clamp(28px, 3.4vh, 46px); }
.center-heading > p:last-child {
  max-width: 78ch;
  margin-top: clamp(14px, 1.7vh, 22px);
  line-height: 1.45;
}
.industry-grid { align-items: stretch; }
.industry-card {
  min-height: clamp(340px, 39vh, 430px);
  padding: clamp(22px, 1.45vw, 30px) clamp(22px, 1.4vw, 28px);
}
.dot-row { margin-bottom: 18px; }
.industry-card h3 {
  margin: 0;
  font-size: clamp(18px, 1.04vw, 22px);
  line-height: 1.16;
  letter-spacing: -.018em;
}
.industry-card > p {
  margin: 12px 0 0;
  min-height: 3em;
  font-size: clamp(13px, .76vw, 15px);
  line-height: 1.42;
}
.industry-card ul {
  list-style: none;
  margin: clamp(18px, 2vh, 26px) 0 0;
  padding: 0;
}
.industry-card li {
  padding: clamp(9px, .9vh, 12px) 0;
  line-height: 1.25;
}

/* Property Setup: larger, clearer, and visually intentional instead of floating in white space. */
.product-shell {
  position: relative;
  justify-content: center;
  padding-block: clamp(12px, 2vh, 28px);
}
.product-heading { margin-bottom: clamp(28px, 3.2vh, 44px); }
.product-heading h2 { max-width: 22ch; }
.feature-grid {
  gap: clamp(18px, 1.6vw, 28px);
}
.feature {
  position: relative;
  grid-template-columns: clamp(64px, 4.4vw, 82px) 1fr;
  gap: clamp(18px, 1.4vw, 26px);
  align-items: center;
  min-height: clamp(168px, 19vh, 208px);
  padding: clamp(24px, 1.8vw, 34px);
  border: 1px solid rgba(0,47,76,.09);
  border-radius: 20px;
  background: linear-gradient(145deg, #fff 0%, #fbf9f5 100%);
  box-shadow: 0 16px 46px rgba(13,28,49,.075);
  overflow: hidden;
}
.feature::after {
  content: "";
  position: absolute;
  inset: auto -30% -70% 28%;
  height: 150%;
  background: radial-gradient(circle, rgba(196,169,47,.11), transparent 62%);
  opacity: 0;
  transform: translate3d(0,18px,0);
  transition: opacity .35s ease, transform .35s ease;
  pointer-events: none;
}
.feature:hover::after { opacity: 1; transform: none; }
.feature-icon {
  width: clamp(64px, 4.4vw, 82px);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(13,28,49,.11);
}
.feature-icon svg { width: clamp(30px, 2vw, 38px); height: clamp(30px, 2vw, 38px); stroke-width: 1.55; }
.feature h3 {
  margin: 0 0 9px;
  font-size: clamp(21px, 1.28vw, 26px);
  line-height: 1.18;
  font-weight: 550;
}
.feature p {
  max-width: 46ch;
  font-size: clamp(15px, .9vw, 18px);
  line-height: 1.45;
}

/* Property Intelligence: intentional copy measure; no orphaned final words. */
.software-copy { max-width: 760px; }
.software-copy h2 { max-width: 14ch; }
.software-copy > p:not(.eyebrow) {
  max-width: 49ch;
  line-height: 1.48;
}

/* Why Us: exact transparent metallic shield + four mathematically aligned orbit tracks. */
.orbit-wrap {
  min-height: clamp(480px, 60vh, 720px);
  display: grid;
  place-items: center;
}
.orbit-wrap::before { display: none; }
.orbit-system {
  --orbit-size: min(39vw, 690px);
  position: relative;
  width: var(--orbit-size);
  aspect-ratio: 1;
  display: grid;
  place-items: center;
}
.orbit-track {
  position: absolute;
  left: 50%;
  top: 50%;
  translate: -50% -50%;
  aspect-ratio: 1;
  border-radius: 50%;
  border: 1.5px dashed rgba(13,28,49,.23);
  transform-origin: 50% 50%;
  will-change: transform;
}
.orbit-track-outer { width: 100%; animation: orbitTrackClockwise 34s linear infinite; }
.orbit-track-3 { width: 86%; animation: orbitTrackCounter 28s linear infinite; }
.orbit-track-2 { width: 70%; animation: orbitTrackClockwise 23s linear infinite; }
.orbit-track-inner { width: 54%; animation: orbitTrackCounter 18s linear infinite; }
.orbit-dot {
  position: absolute;
  left: 50%;
  top: 0;
  width: clamp(11px, .9vw, 16px);
  aspect-ratio: 1;
  border-radius: 50%;
  background: linear-gradient(145deg, #F4E5AB 0%, #C4A92F 62%, #9B8120 100%);
  box-shadow: 0 4px 12px rgba(155,129,32,.18);
  transform: translate(-50%, -50%);
}
.orbit-track-3 .orbit-dot { left: 92%; top: 28%; }
.orbit-track-2 .orbit-dot { left: 9%; top: 68%; }
.orbit-track-inner .orbit-dot { left: 77%; top: 92%; }
.orbit-shield {
  position: absolute;
  inset: 0;
  margin: auto;
  z-index: 4;
  width: 46%;
  height: 100%;
  aspect-ratio: auto;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  animation: none;
  display: flex;
  align-items: center;
  justify-content: center;
}
.orbit-shield img {
  width: 100%;
  height: auto;
  max-height: none;
  filter: none;
}
.orbit-shield::after { display: none; }
.orbit-rings { display: none; }
@keyframes orbitTrackClockwise { to { transform: rotate(360deg); } }
@keyframes orbitTrackCounter { to { transform: rotate(-360deg); } }
@keyframes metallicShieldFloat {
  0%,100% { transform: translate(-50%,-50%) translateY(0) scale(1); }
  50% { transform: translate(-50%,-50%) translateY(-5px) scale(1.012); }
}

/* More dimensional section backgrounds without changing FG's restrained palette. */
.section-dark::before,
.section-light::before {
  content: "";
  position: absolute;
  width: clamp(420px, 38vw, 760px);
  aspect-ratio: 1;
  border-radius: 50%;
  pointer-events: none;
  opacity: .42;
  filter: blur(1px);
  animation: sectionGlowDrift 10s ease-in-out infinite alternate;
}
.section-dark::before {
  right: -18%;
  top: -28%;
  background: radial-gradient(circle, rgba(34,61,88,.34), rgba(196,169,47,.035) 45%, transparent 70%);
}
.section-light::before {
  left: -22%;
  bottom: -36%;
  background: radial-gradient(circle, rgba(196,169,47,.08), rgba(0,47,76,.025) 50%, transparent 72%);
}
.section > .shell { position: relative; z-index: 1; }
@keyframes sectionGlowDrift { from { transform: translate3d(0,0,0) scale(.96); } to { transform: translate3d(4%,-3%,0) scale(1.06); } }

/* More expressive but professional scroll reveals. */
.section-intro.reveal,
.product-heading.reveal,
.software-copy.reveal,
.why-copy.reveal,
.contact-copy.reveal { transform: translate3d(-28px,24px,0); }
.process-card.reveal,
.dashboard-visual.reveal,
.orbit-wrap.reveal { transform: translate3d(30px,24px,0); }
.feature.reveal,
.industry-card.reveal { transform: translate3d(0,28px,0) scale(.985); }
.reveal.is-visible { opacity: 1; transform: none; will-change:auto; }

/* Buttons get a subtle premium sweep instead of only moving upward. */
.btn { position: relative; overflow: hidden; }
.btn::after {
  content: "";
  position: absolute;
  top: -40%;
  bottom: -40%;
  width: 32%;
  left: -48%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.28), transparent);
  transform: skewX(-18deg);
  transition: left .55s cubic-bezier(.2,.75,.2,1);
  pointer-events: none;
}
.btn:hover::after { left: 118%; }

@media (max-width: 1199px) {
  .industry-card { min-height: 330px; }
  .industry-card h3 { white-space: normal; }
  .feature { min-height: 160px; }
  .orbit-system { --orbit-size: min(58vw, 620px); }
}

@media (max-width: 900px) {
  .feature-grid { grid-template-columns: 1fr 1fr; }
  .feature { grid-template-columns: 60px 1fr; min-height: 0; padding: 22px; }
  .feature-icon { width: 60px; }
  .orbit-system { --orbit-size: min(76vw, 560px); }
}

@media (max-width: 640px) {
  .feature-grid { grid-template-columns: 1fr; }
  .feature { grid-template-columns: 58px 1fr; }
  .feature-icon { width: 58px; }
  .industry-card > p { min-height: 0; }
  .orbit-wrap { min-height: 360px; }
  .orbit-system { --orbit-size: min(88vw, 430px); }
  .orbit-shield { width: 47%; }
}

@media (prefers-reduced-motion: reduce) {
  .orbit-track,
  .orbit-shield,
  .section-dark::before,
  .section-light::before { animation: none !important; }
}

/* v4 orbit alignment correction: every sphere is mathematically centered on its track. */
.orbit-track { --start: 0deg; }
.orbit-track .orbit-dot { left: 50%; top: 0; }
.orbit-track-outer { --start: 0deg; }
.orbit-track-3 { --start: 68deg; }
.orbit-track-2 { --start: 212deg; }
.orbit-track-inner { --start: 146deg; }
.orbit-track-3 .orbit-dot,
.orbit-track-2 .orbit-dot,
.orbit-track-inner .orbit-dot { left: 50%; top: 0; }
@keyframes orbitTrackClockwise {
  from { transform: rotate(var(--start)); }
  to { transform: rotate(calc(var(--start) + 360deg)); }
}
@keyframes orbitTrackCounter {
  from { transform: rotate(var(--start)); }
  to { transform: rotate(calc(var(--start) - 360deg)); }
}

/* ===== FG v4.1 requested refinements ===== */

/* Property Setup: preserve the two clean sentence lines on desktop. */
@media (min-width: 901px) {
  #built-around .product-heading h2 { max-width: 25ch; }
}

/* Industries: one clean title row + one clean body row, then a tighter card field. */
#industries .industries-shell {
  justify-content: center;
  padding-block: clamp(10px, 1.8vh, 24px);
}
#industries .center-heading {
  width: 100%;
  max-width: none;
  margin-bottom: clamp(28px, 3.6vh, 46px);
}
#industries .center-heading h2 {
  max-width: none;
  font-size: clamp(38px, 2.9vw, 58px);
  line-height: 1.03;
  white-space: nowrap;
}
#industries .center-heading > p:last-child {
  max-width: none;
  margin-top: clamp(14px, 1.7vh, 20px);
  font-size: clamp(14px, .9vw, 17px);
  line-height: 1.4;
  white-space: nowrap;
}
#industries .industry-grid {
  margin-top: 0;
  gap: clamp(18px, 1.35vw, 26px);
}
#industries .industry-card {
  min-height: clamp(330px, 37vh, 405px);
}

/* Solar-system motion: all spheres move clockwise; outer tracks travel more slowly. */
.orbit-track-inner { animation: orbitTrackClockwise 15s linear infinite; }
.orbit-track-2 { animation: orbitTrackClockwise 22s linear infinite; }
.orbit-track-3 { animation: orbitTrackClockwise 31s linear infinite; }
.orbit-track-outer { animation: orbitTrackClockwise 43s linear infinite; }
.orbit-dot {
  animation: orbitDotGlow 3.2s ease-in-out infinite;
}
.orbit-track-2 .orbit-dot { animation-delay: -.8s; }
.orbit-track-3 .orbit-dot { animation-delay: -1.6s; }
.orbit-track-outer .orbit-dot { animation-delay: -2.4s; }
@keyframes orbitDotGlow {
  0%,100% { filter: brightness(.95); box-shadow: 0 4px 12px rgba(155,129,32,.18); }
  50% { filter: brightness(1.12); box-shadow: 0 5px 18px rgba(196,169,47,.28), 0 0 12px rgba(228,211,112,.18); }
}

/* Hero unit stage keeps the image and all light effects perfectly locked together. */
.hero-unit-stage {
  position: relative;
  width: clamp(250px, 17vw, 390px);
  flex: 0 0 auto;
  animation: none;
  transform-origin: center;
  overflow: visible;
}
.hero-unit-stage .hero-unit {
  position: relative;
  z-index: 2;
  width: 100% !important;
  height: auto;
  animation: none !important;
  filter: none;
}

/* Hero background remains the exact approved V4.10 image. Police strobe lighting is layered only on the unit. */
.hero::before {
  background-image: url("assets/hero-dallas-poster.jpg") !important;
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
}

/* Six physical strobe LEDs. Left three are police blue, right three are police red.
   The two banks alternate quickly while keeping a deep saturated color instead of cyan/pink. */
.unit-strobe-lighting {
  position: absolute;
  inset: 0;
  z-index: 4;
  pointer-events: none;
}
.strobe-led {
  position: absolute;
  top: 25.98%;
  width: 1.72%;
  aspect-ratio: 1;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  mix-blend-mode: screen;
  opacity: 0;
}
.strobe-blue {
  background: radial-gradient(circle,
    #ffffff 0 12%,
    #c8e6ff 14% 19%,
    #2f6fff 24% 42%,
    #0837d8 50% 67%,
    #00145e 74%,
    rgba(0,14,78,0) 100%);
  box-shadow:
    0 0 3px rgba(255,255,255,1),
    0 0 8px rgba(65,119,255,1),
    0 0 16px rgba(15,61,235,.98),
    0 0 30px rgba(0,35,190,.90),
    0 0 48px rgba(0,24,128,.64);
  animation: policeBlueBank .52s steps(1,end) infinite;
}
.strobe-red {
  background: radial-gradient(circle,
    #ffffff 0 12%,
    #ffd2cc 14% 19%,
    #ff4438 24% 42%,
    #d90b08 50% 67%,
    #650000 74%,
    rgba(92,0,0,0) 100%);
  box-shadow:
    0 0 3px rgba(255,255,255,1),
    0 0 8px rgba(255,72,62,1),
    0 0 16px rgba(224,14,10,.98),
    0 0 30px rgba(173,0,0,.90),
    0 0 48px rgba(104,0,0,.62);
  animation: policeRedBank .52s steps(1,end) infinite;
}
.led-1 { left: 42.53%; }
.led-2 { left: 45.48%; }
.led-3 { left: 48.53%; }
.led-4 { left: 51.58%; }
.led-5 { left: 54.52%; }
.led-6 { left: 57.58%; }

/* Colored spill hugs the physical light bar and the underside of the horn instead of
   painting a giant glow over the entire hero. */
.strobe-cast {
  position: absolute;
  top: 20.8%;
  width: 29%;
  height: 12.5%;
  border-radius: 50%;
  filter: blur(18px);
  opacity: 0;
  mix-blend-mode: screen;
}
.strobe-cast-blue {
  left: 28.5%;
  background: radial-gradient(ellipse at 68% 58%,
    rgba(27,70,255,.70) 0%,
    rgba(6,43,201,.34) 36%,
    rgba(0,17,108,.12) 58%,
    transparent 76%);
  animation: policeBlueCast .52s steps(1,end) infinite;
}
.strobe-cast-red {
  right: 27.5%;
  background: radial-gradient(ellipse at 32% 58%,
    rgba(235,18,13,.68) 0%,
    rgba(175,0,0,.34) 36%,
    rgba(94,0,0,.12) 58%,
    transparent 76%);
  animation: policeRedCast .52s steps(1,end) infinite;
}
@keyframes policeBlueBank {
  0%, 46% { opacity: 1; filter: brightness(1.8) saturate(1.55); }
  50%, 96% { opacity: .035; filter: brightness(.6) saturate(1.2); }
  100% { opacity: 1; }
}
@keyframes policeRedBank {
  0%, 46% { opacity: .035; filter: brightness(.6) saturate(1.2); }
  50%, 96% { opacity: 1; filter: brightness(1.78) saturate(1.52); }
  100% { opacity: .035; }
}
@keyframes policeBlueCast {
  0%,46% { opacity:.94; }
  50%,96% { opacity:.025; }
  100% { opacity:.94; }
}
@keyframes policeRedCast {
  0%,46% { opacity:.025; }
  50%,96% { opacity:.92; }
  100% { opacity:.025; }
}

/* Extra site life: animated process energy and pointer-responsive card lighting. */
.process-stack::after {
  content:"";
  position:absolute;
  left:-4px;
  top:2%;
  width:10px;
  height:10px;
  border-radius:50%;
  background:var(--gold-light);
  box-shadow:0 0 10px rgba(228,211,112,.9),0 0 22px rgba(196,169,47,.55);
  animation:processPulseTravel 5.2s cubic-bezier(.45,.05,.55,.95) infinite;
  z-index:2;
}
@keyframes processPulseTravel {
  0% { top:2%; opacity:0; transform:scale(.55); }
  10% { opacity:1; transform:scale(1); }
  90% { opacity:1; transform:scale(1); }
  100% { top:96%; opacity:0; transform:scale(.55); }
}
.process-card {
  background:
    radial-gradient(360px circle at var(--mx, 50%) var(--my, 50%), rgba(228,211,112,.075), transparent 58%),
    linear-gradient(135deg, rgba(42,55,74,.98), rgba(34,61,88,.72));
}
.feature {
  background:
    radial-gradient(340px circle at var(--mx, 50%) var(--my, 50%), rgba(196,169,47,.075), transparent 60%),
    linear-gradient(145deg, #fff 0%, #fbf9f5 100%);
}
.industry-card {
  background:
    radial-gradient(360px circle at var(--mx, 50%) var(--my, 50%), rgba(228,211,112,.065), transparent 60%),
    var(--surface-navy);
}
.dashboard-visual {
  background:
    radial-gradient(520px circle at var(--mx, 50%) var(--my, 50%), rgba(196,169,47,.065), transparent 58%),
    rgba(42,55,74,.72);
}
.spark i {
  transform-origin: bottom;
  animation: sparkBreathe 3.8s ease-in-out infinite alternate;
}
.spark i:nth-child(2){animation-delay:-.45s}.spark i:nth-child(3){animation-delay:-.9s}.spark i:nth-child(4){animation-delay:-1.35s}.spark i:nth-child(5){animation-delay:-1.8s}.spark i:nth-child(6){animation-delay:-2.25s}.spark i:nth-child(7){animation-delay:-2.7s}
@keyframes sparkBreathe {
  from { transform: scaleY(.82); filter:brightness(.94); }
  to { transform: scaleY(1); filter:brightness(1.1); }
}

/* The form note was removed from the markup; keep old styling inert. */
.form-note { display:none !important; }

@media (max-width: 1199px) {
  #industries .center-heading h2 { font-size: clamp(36px, 4vw, 48px); }
  #industries .center-heading > p:last-child { font-size: 14px; }
  .hero-unit-stage { width: clamp(240px, 25vw, 300px); }
}
@media (max-width: 900px) {
  #industries .center-heading h2,
  #industries .center-heading > p:last-child { white-space: normal; }
  #industries .center-heading h2 { font-size: clamp(36px, 6.6vw, 50px); }
  .hero-unit-stage { width: clamp(230px, 34vw, 300px); }
}
@media (max-width: 640px) {
  #industries .center-heading { margin-bottom: 28px; }
  .hero-unit-stage { width: clamp(205px, 58vw, 270px); }
  .strobe-led { width: 1.75%; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-unit-stage,
  .strobe-led,
  .strobe-cast,
  .orbit-dot,
  .process-stack::after,
  .spark i { animation:none !important; }
  .strobe-blue { opacity:1; }
  .strobe-red { opacity:.18; }
}

/* ===== FG v4.5 anchor centering correction =====
   Preserve true full-screen section boundaries so adjacent sections never bleed
   into the viewport. When navigation lands on a section, shift only the section
   CONTENT upward by half the fixed header height. This centers the composition
   inside the visible area below the header without shortening the section. */
.section.panel-snap {
  min-height: 100svh;
}

@media (min-width: 901px) {
  .section.panel-snap > .shell {
    position: relative;
    top: calc(var(--header-h) * -0.5);
    transform: none;
  }
}

/* Tablet/mobile keep the natural flow and existing v4 responsive layout. */
@media (max-width: 900px) {
  .section.panel-snap > .shell {
    position: relative;
    top: 0;
    transform: none;
  }
}

/* ===== FG v4.6 desktop breathing-room refinement =====
   Preserve V4.5 structure, full-screen panels, motion, hero artwork, unit lighting,
   and anchor behavior. This pass only reduces visual scale and increases negative
   space on desktop so the site feels less oversized and more premium. */
@media (min-width: 1200px) {
  :root {
    --shell: min(82vw, 1800px);
    --shell-wide: min(90vw, 2100px);
  }

  /* Keep the hero authoritative, but take a small amount of pressure off the viewport. */
  .hero-inner {
    gap: clamp(50px, 5.4vw, 108px);
  }
  .hero-copy { max-width: 43vw; }
  .hero h1 { font-size: clamp(56px, 3.7vw, 86px); }
  .hero-description { grid-template-columns: 3px minmax(0, 31vw); }
  .hero-description p { font-size: clamp(16px, 1vw, 20px); }
  .hero-unit-stage { width: clamp(240px, 15.7vw, 365px); }

  /* Sitewide content hierarchy. */
  .section h2 {
    font-size: clamp(38px, 2.65vw, 64px);
    line-height: 1.07;
  }
  .section-intro > p:not(.eyebrow),
  .software-copy > p:not(.eyebrow),
  .why-copy > p:not(.eyebrow),
  .contact-copy > p:not(.eyebrow) {
    font-size: clamp(16px, .92vw, 19px);
    line-height: 1.5;
  }
  .eyebrow { font-size: clamp(14px, .8vw, 16px); }

  /* How It Works. */
  .section-grid {
    grid-template-columns: minmax(0, .94fr) minmax(0, 1.06fr);
    gap: clamp(56px, 5vw, 96px);
  }
  .section-intro { max-width: 620px; }
  .section-intro .btn { margin-top: 30px; }
  .process-stack {
    gap: clamp(14px, 1vw, 20px);
    padding-left: clamp(24px, 1.8vw, 34px);
  }
  .process-card {
    padding: clamp(22px, 1.45vw, 30px) clamp(22px, 1.55vw, 32px);
  }
  .process-card h3 {
    margin-top: 15px;
    margin-bottom: 9px;
    font-size: clamp(21px, 1.3vw, 27px);
  }
  .process-card p { font-size: clamp(14px, .82vw, 16.5px); }
  .step-pill { font-size: clamp(11px, .64vw, 12px); }

  /* Property Setup. */
  .product-heading { margin-bottom: clamp(24px, 2.8vh, 36px); }
  .product-heading h2 { max-width: 21ch; }
  .feature-grid { gap: clamp(16px, 1.3vw, 22px); }
  .feature {
    grid-template-columns: clamp(58px, 3.8vw, 72px) 1fr;
    gap: clamp(16px, 1.1vw, 21px);
    min-height: clamp(148px, 17vh, 182px);
    padding: clamp(20px, 1.45vw, 28px);
    border-radius: 18px;
  }
  .feature-icon {
    width: clamp(58px, 3.8vw, 72px);
    border-radius: 18px;
  }
  .feature-icon svg {
    width: clamp(28px, 1.75vw, 34px);
    height: clamp(28px, 1.75vw, 34px);
  }
  .feature h3 {
    margin-bottom: 7px;
    font-size: clamp(19px, 1.12vw, 23px);
  }
  .feature p {
    max-width: 44ch;
    font-size: clamp(14px, .82vw, 16px);
  }

  /* Industries should read as one clean composition, not four dominant blocks. */
  #industries .center-heading { margin-bottom: clamp(22px, 2.8vh, 34px); }
  #industries .center-heading h2 { font-size: clamp(36px, 2.45vw, 58px); }
  #industries .center-heading > p:last-child {
    font-size: clamp(13px, .78vw, 15px);
    margin-top: clamp(12px, 1.4vh, 18px);
  }
  #industries .industry-grid { gap: clamp(14px, 1.15vw, 20px); }
  #industries .industry-card {
    min-height: clamp(292px, 33vh, 360px);
    padding: clamp(19px, 1.22vw, 25px) clamp(19px, 1.18vw, 24px);
    border-radius: 18px;
  }
  .dot-row { margin-bottom: 14px; }
  .industry-card h3 { font-size: clamp(17px, .96vw, 20px); }
  .industry-card > p {
    margin-top: 10px;
    font-size: clamp(12.5px, .7vw, 14px);
    min-height: 2.85em;
  }
  .industry-card ul { margin-top: clamp(14px, 1.5vh, 20px); }
  .industry-card li {
    padding: clamp(8px, .7vh, 10px) 0;
    font-size: clamp(12px, .7vw, 14px);
  }

  /* Property Intelligence. */
  .software-grid {
    grid-template-columns: .92fr 1.08fr;
    gap: clamp(62px, 5.5vw, 104px);
  }
  .software-copy { max-width: 640px; }
  .dashboard-visual {
    width: 92%;
    justify-self: end;
    padding: clamp(20px, 1.55vw, 28px);
    border-radius: 24px;
  }
  .dash-card { min-height: 170px; padding: 19px; }
  .dash-card.wide { min-height: 150px; }

  /* Why Us. Keep the shield important while giving the solar system more air. */
  .why-grid {
    grid-template-columns: 1fr 1fr;
    gap: clamp(68px, 6vw, 112px);
  }
  .why-copy { max-width: 680px; }
  .values-grid { margin-top: 34px; gap: 16px 24px; }
  .values-grid div { padding: 17px 0; }
  .values-grid strong { font-size: 17px; }
  .values-grid span { font-size: 14px; }
  .orbit-wrap { min-height: clamp(420px, 53vh, 620px); }
  .orbit-system { --orbit-size: min(35vw, 610px); }

  /* Get a Demo. More white space between the story and the form. */
  .contact-grid {
    grid-template-columns: .94fr 1.06fr;
    gap: clamp(72px, 7vw, 132px);
  }
  .contact-copy { max-width: 610px; }
  .demo-form {
    width: 94%;
    justify-self: end;
    padding: clamp(24px, 1.9vw, 34px);
    gap: 16px;
    border-radius: 22px;
  }
  .demo-form input,
  .demo-form textarea { padding: 12px 14px; }
  .demo-form textarea { min-height: 108px; }

  /* Footer follows the same calmer page width. */
  .footer-grid { gap: 70px; }
}

/* Keep the same restraint on ultra-wide displays instead of letting V3's 1920 rule
   re-expand the layout. */
@media (min-width: 1920px) {
  :root {
    --shell: min(82vw, 1800px);
    --shell-wide: min(90vw, 2100px);
  }
}


/* ===== FG v4.7 approved visual polish retained =====
   Hero line spacing, seamless Property Setup glow, and the approved Texas hero image.
   Lower PTZ flood-light overlays were removed for the production build. */

/* 1. Give the two-line hero headline breathing room without changing size or wrapping. */
.hero h1 {
  line-height: 1.08;
}

/* 2. Property Setup glow: remove any visible gradient boundary and blend it smoothly
      through the card instead of ending at a discernible edge. */
.feature {
  background:
    radial-gradient(620px circle at var(--mx, 50%) var(--my, 50%),
      rgba(196,169,47,.075) 0%,
      rgba(196,169,47,.045) 22%,
      rgba(196,169,47,.018) 48%,
      rgba(196,169,47,.006) 66%,
      rgba(196,169,47,0) 84%),
    linear-gradient(145deg, #fff 0%, #fbf9f5 100%);
}
.feature::after {
  inset: auto -42% -96% 18%;
  width: 118%;
  height: 205%;
  border-radius: 50%;
  background: radial-gradient(ellipse at center,
    rgba(196,169,47,.11) 0%,
    rgba(196,169,47,.055) 24%,
    rgba(196,169,47,.02) 50%,
    rgba(196,169,47,0) 76%);
  filter: blur(28px);
  opacity: 0;
  transform: translate3d(0,20px,0) scale(.98);
}
.feature:hover::after {
  opacity: .82;
  transform: translate3d(0,0,0) scale(1.03);
}

/* 3. Approved HERO background.
      Use the original third concept as the complete hero background image. */
.hero::before {
  background-image: url("assets/hero-dallas-poster.jpg") !important;
  background-position:center center;
  background-size:cover;
  background-repeat:no-repeat;
}
.hero-overlay {
  background:
    radial-gradient(ellipse at 76% 71%, rgba(205,151,67,.06), transparent 32%),
    linear-gradient(90deg, rgba(2,7,15,.44), rgba(8,18,34,.16) 36%, rgba(8,18,34,.08) 58%, rgba(8,18,34,.18)),
    linear-gradient(180deg, rgba(5,15,28,.10), rgba(3,9,16,.28));
}

@media (max-width: 640px) {
  .hero h1 { line-height:1.065; }
}


/* ===== Why Us only fix: centered shield + one-line headline ===== */
#why-us .why-copy h2 {
  max-width: none;
  white-space: nowrap;
  font-size: clamp(46px, 3.7vw, 64px);
  line-height: 1.04;
}

#why-us .orbit-wrap {
  min-height: clamp(440px, 54vh, 620px);
  width: 100%;
  justify-self: center;
  align-self: center;
}

#why-us .orbit-wrap.reveal,
#why-us .orbit-wrap.reveal.is-visible {
  transform: none;
}

#why-us .orbit-system {
  --orbit-size: min(35vw, 600px);
  margin-inline: auto;
}

#why-us .orbit-shield {
  position: absolute;
  left: 50%;
  top: 50%;
  inset: auto;
  margin: 0;
  width: clamp(170px, 15.5vw, 280px);
  height: auto;
  aspect-ratio: 1096 / 1305;
  transform: translate(-50%, -50%);
  display: block;
  z-index: 4;
}

#why-us .orbit-shield img {
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
}

@media (max-width: 1199px) {
  #why-us .why-copy h2 {
    white-space: normal;
    max-width: 11ch;
  }

  #why-us .orbit-system {
    --orbit-size: min(76vw, 560px);
  }

  #why-us .orbit-shield {
    width: clamp(148px, 28vw, 220px);
  }
}

@media (max-width: 767px) {
  #why-us .orbit-wrap {
    min-height: 340px;
  }

  #why-us .orbit-system {
    --orbit-size: min(88vw, 430px);
  }

  #why-us .orbit-shield {
    width: clamp(126px, 36vw, 172px);
  }
}

/* ===== Why Us shield structural centering correction =====
   The shield is a true grid-centered child of the orbit system.
   This avoids absolute-position centering conflicts entirely. */
#why-us .orbit-system {
  display: grid;
  place-items: center;
}

#why-us .orbit-shield {
  position: relative;
  left: auto;
  top: auto;
  right: auto;
  bottom: auto;
  inset: auto;
  grid-area: 1 / 1;
  place-self: center;
  margin: 0;
  width: 34%;
  height: auto;
  aspect-ratio: 1096 / 1305;
  transform: none;
  translate: none;
  z-index: 4;
}

#why-us .orbit-shield img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0;
  transform: none;
  translate: none;
}

@media (max-width: 1199px) {
  #why-us .orbit-shield { width: 34%; }
}

@media (max-width: 767px) {
  #why-us .orbit-shield { width: 36%; }
}

/* ===== Why Us shield sizing refinement =====
   Ring geometry: innermost track = 54% diameter, second track = 70% diameter.
   At 46% of the orbit system, the visible metallic shield intentionally crosses
   the innermost ring while remaining fully contained by the second ring. */
#why-us .orbit-shield {
  width: 46%;
}

@media (max-width: 1199px) {
  #why-us .orbit-shield { width: 46%; }
}

@media (max-width: 767px) {
  #why-us .orbit-shield { width: 46%; }
}

/* ===== Desktop copy-width refinement: How It Works, Property Intelligence, Get a Demo only ===== */
@media (min-width: 1200px) {
  .desktop-title-break { display: block; }

  /* How It Works: two-line title and a wider, calmer copy measure. */
  #product .section-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(54px, 4.8vw, 92px);
  }
  #product .section-intro {
    max-width: 700px;
  }
  #product .section-intro h2 {
    max-width: 700px;
  }
  #product .section-intro > p:not(.eyebrow) {
    max-width: 700px;
  }

  /* Property Intelligence: two-line title; body follows the same visual width. */
  #software .software-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(58px, 5vw, 96px);
  }
  #software .software-copy {
    max-width: 660px;
  }
  #software .software-copy h2 {
    max-width: 660px;
  }
  #software .software-copy > p:not(.eyebrow) {
    max-width: 660px;
  }

  /* Get a Demo: two-line title; body expands to the title width. */
  #contact .contact-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(66px, 5.8vw, 112px);
  }
  #contact .contact-copy {
    max-width: 680px;
  }
  #contact .contact-copy h2 {
    max-width: 680px;
  }
  #contact .contact-copy > p:not(.eyebrow) {
    max-width: 680px;
  }
}

@media (max-width: 1199px) {
  .desktop-title-break { display: none; }
}

/* ===== Combined Legal & Privacy page ===== */
.legal-privacy-main {
  padding-bottom: clamp(78px, 9vh, 124px);
}
.legal-privacy-hero {
  width: min(86vw, 980px);
}
.legal-privacy-hero h1 {
  max-width: none;
}
.legal-document {
  width: min(86vw, 980px);
  margin: clamp(38px, 5vw, 64px) auto 0;
  color: var(--deep-navy);
}
.legal-section {
  padding: 0 0 clamp(30px, 3.2vw, 44px);
  margin: 0 0 clamp(30px, 3.2vw, 44px);
  border-bottom: 1px solid rgba(0,47,76,.12);
}
.legal-section:last-of-type {
  border-bottom: 0;
}
.legal-section h2,
.legal-section h3 {
  margin: 0;
  color: var(--deep-navy);
  font-weight: 500;
  letter-spacing: -.025em;
}
.legal-section h2 {
  font-size: clamp(32px, 2.6vw, 46px);
  line-height: 1.08;
}
.legal-section h3 {
  font-size: clamp(21px, 1.45vw, 27px);
  line-height: 1.18;
}
.legal-section p {
  margin: 16px 0 0;
  max-width: 78ch;
  color: var(--muted-dark);
  font-size: clamp(16px, .95vw, 18px);
  line-height: 1.68;
}
.legal-section a,
.legal-contact-card a {
  color: var(--navy);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.legal-section-lead {
  padding-top: 4px;
}
.legal-updated {
  color: var(--navy) !important;
}
.legal-major-section {
  padding-top: clamp(20px, 2vw, 30px);
}
.legal-major-section h2::after {
  content: "";
  display: block;
  width: 48px;
  height: 3px;
  margin-top: 16px;
  border-radius: 999px;
  background: var(--gold);
}
.legal-contact-card {
  margin-top: clamp(18px, 2vw, 30px);
  padding: clamp(24px, 2.8vw, 36px);
  border: 1px solid rgba(0,47,76,.14);
  border-radius: 20px;
  background: var(--warm-white);
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.legal-contact-card strong {
  font-size: clamp(20px, 1.25vw, 24px);
  font-weight: 600;
}
.legal-contact-card span,
.legal-contact-card p {
  margin: 0;
  color: var(--muted-dark);
  font-size: 16px;
  line-height: 1.6;
}
@media (max-width: 700px) {
  .legal-document,
  .legal-privacy-hero {
    width: min(90vw, 980px);
  }
  .legal-section {
    padding-bottom: 28px;
    margin-bottom: 28px;
  }
}


/* ===== Standalone resource page header treatment ===== */
.resource-body .site-header {
  background: rgba(13, 28, 49, .97); /* FG Deep Navy */
  box-shadow: 0 1px 0 rgba(255,255,255,.08);
}
.resource-body .site-header.is-scrolled {
  background: rgba(13, 28, 49, .97);
}
.resource-body .desktop-nav a {
  color: var(--white);
}
.resource-body .header-rule {
  background: rgba(255,255,255,.12);
}

/* ===== Working master: Dallas video hero ===== */
.hero-video {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
  pointer-events: none;
  background: var(--deep-navy);
}

/* Keep the existing approved static hero image underneath as poster/fallback. */
.hero::before { z-index: 0; }
.hero::after { z-index: 2; }
.hero-overlay { z-index: 3; }
.hero-inner { z-index: 4; }

@media (prefers-reduced-motion: reduce) {
  .hero-video { display: none; }
}

/* ===== Production Step 3: direct website demo form ===== */
.demo-form .form-honeypot {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.demo-form button[disabled] {
  cursor: wait;
  opacity: .72;
  pointer-events: none;
}

.demo-form .form-status {
  grid-column: 1 / -1;
  min-height: 1.45em;
  margin: 2px 0 0;
  font-size: 13px;
  line-height: 1.45;
  color: rgba(0,47,76,.68);
}

.demo-form .form-status:empty { min-height: 0; }
.demo-form .form-status.is-success { color: #245c43; }
.demo-form .form-status.is-error { color: #8a2f2f; }
.demo-form .form-status a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}
