@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:1fr 1fr; }
  .footer-links div:last-child { grid-column:1/-1; }
}

@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. */
  #command .software-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(58px, 5vw, 96px);
  }
  #command .software-copy {
    max-width: 660px;
  }
  #command .software-copy h2 {
    max-width: 660px;
  }
  #command .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;
}

/* ===== Faithful Guardian Command: real portal inspired dashboard showcase ===== */
.command-showcase {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.command-preview-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 0 2px 2px;
}
.command-preview-head > div {
  display: flex;
  align-items: baseline;
  gap: 10px;
  min-width: 0;
}
.command-preview-head strong {
  color: #fff;
  font-size: 15px;
  line-height: 1;
}
.command-preview-head > div span {
  color: rgba(244,240,236,.55);
  font-size: 11px;
  line-height: 1;
}
.command-demo-pill {
  flex: 0 0 auto;
  color: rgba(244,240,236,.76);
  border: 1px solid rgba(244,240,236,.13);
  background: rgba(13,28,49,.56);
  border-radius: 999px;
  padding: 6px 9px;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .02em;
}
.command-live-pill {
  flex: 0 0 auto;
  font-size: 9px;
  font-weight: 700;
  line-height: 1;
}
.command-panel {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(151,177,204,.13);
  border-radius: 14px;
  background: #18334f;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.018);
}
.command-kpi-panel { padding: 12px; }
.command-kpi-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 8px;
}
.command-kpi {
  min-width: 0;
  min-height: 88px;
  padding: 12px 12px 10px;
  border: 1px solid rgba(151,177,204,.1);
  border-radius: 10px;
  background: rgba(10,31,51,.2);
  display: flex;
  flex-direction: column;
}
.command-kpi-label {
  color: rgba(244,240,236,.78);
  font-size: 8px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: .02em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.command-kpi-label em {
  color: rgba(244,240,236,.46);
  font-style: normal;
  letter-spacing: 0;
  text-transform: none;
}
.command-kpi strong {
  margin-top: 8px;
  color: #fff;
  font-size: clamp(21px,1.55vw,31px);
  font-weight: 600;
  line-height: .96;
  letter-spacing: -.025em;
}
.command-kpi strong.command-date { font-size: clamp(18px,1.32vw,26px); }
.command-kpi strong.command-positive { color: #f4f0ec; }
.command-kpi small {
  margin-top: auto;
  padding-top: 7px;
  color: rgba(244,240,236,.48);
  font-size: 8px;
  font-weight: 600;
  letter-spacing: .02em;
}
.command-lower-grid {
  display: grid;
  grid-template-columns: minmax(0,1.55fr) minmax(0,.85fr);
  gap: 14px;
  align-items: stretch;
}
.command-events-panel,
.command-chart-panel { padding: 13px 14px 12px; }
.command-panel-title {
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(151,177,204,.13);
}
.command-events-head,
.command-event-row {
  display: grid;
  grid-template-columns: 44px minmax(0,1fr) 52px 64px;
  column-gap: 6px;
  align-items: center;
}
.command-events-head {
  padding: 9px 4px 6px;
  color: rgba(244,240,236,.48);
  font-size: 7px;
  font-weight: 700;
  letter-spacing: .03em;
}
.command-event-row {
  min-height: 37px;
  padding: 5px 4px;
  border-top: 1px solid rgba(151,177,204,.1);
  color: rgba(255,255,255,.9);
  font-size: 8px;
  font-weight: 600;
}
.command-events-head span:last-child,
.command-event-row > span:last-child {
  justify-self: end;
  text-align: right;
  white-space: nowrap;
}
.command-events-head + .command-event-row { border-top: 0; }
.command-snapshot {
  width: 38px;
  height: 24px;
  position: relative;
  overflow: hidden;
  border-radius: 5px;
  background:
    linear-gradient(160deg, transparent 46%, rgba(255,255,255,.08) 47% 52%, transparent 53%),
    linear-gradient(14deg, #6a7680 0 31%, #273d50 32% 54%, #b9b8ad 55% 70%, #3a4b5a 71% 100%);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.08);
}
.command-snapshot::before {
  content: "";
  position: absolute;
  left: 9px;
  bottom: 5px;
  width: 11px;
  height: 8px;
  border: 1px solid rgba(196,169,47,.92);
  border-radius: 1px;
}
.command-snapshot::after {
  content: "";
  position: absolute;
  right: 5px;
  top: 4px;
  width: 9px;
  height: 5px;
  border-radius: 1px;
  background: rgba(13,28,49,.66);
}
.snapshot-b { filter: brightness(.87) saturate(.82); }
.snapshot-c { filter: brightness(1.05) hue-rotate(8deg); }
.snapshot-d { filter: brightness(.8) saturate(.72); }
.snapshot-e { filter: brightness(.94) hue-rotate(-7deg); }
.command-event-tag {
  width: max-content;
  max-width: 100%;
  padding: 5px 7px;
  border-radius: 5px;
  color: rgba(244,240,236,.79);
  background: rgba(40,72,101,.72);
  font-size: 7px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .02em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.command-event-tag-gold {
  color: #eadb85;
  background: rgba(196,169,47,.12);
  border: 1px solid rgba(196,169,47,.16);
}
.command-event-tag-soft { color: rgba(244,240,236,.62); }
.command-chart-panel {
  display: flex;
  min-width: 0;
  flex-direction: column;
}
.command-chart {
  position: relative;
  height: 150px;
  margin-top: 10px;
  display: flex;
  align-items: flex-end;
  gap: 2px;
  padding: 12px 6px 7px 2px;
  overflow: hidden;
  border-bottom: 1px solid rgba(151,177,204,.12);
  background:
    linear-gradient(to bottom, transparent 24%, rgba(151,177,204,.1) 25%, transparent 26%),
    linear-gradient(to bottom, transparent 49%, rgba(151,177,204,.1) 50%, transparent 51%),
    linear-gradient(to bottom, transparent 74%, rgba(151,177,204,.1) 75%, transparent 76%);
}
.command-chart > span {
  flex: 1 1 0;
  min-width: 1px;
  height: var(--v);
  max-height: 100%;
  border-radius: 2px 2px 0 0;
  background: linear-gradient(180deg,#d4b72c,#bfa527);
  opacity: .92;
  transform-origin: bottom;
}
.command-chart > span[style*="--v:0%"] { opacity: .12; height: 2px; }
.command-chart-axis {
  display: flex;
  justify-content: space-between;
  margin-top: 7px;
  color: rgba(244,240,236,.36);
  font-size: 7px;
  font-weight: 600;
  letter-spacing: .02em;
}
.command-showcase.is-visible .command-chart > span {
  animation: commandBarRise .68s cubic-bezier(.2,.7,.2,1) both;
}
.command-showcase.is-visible .command-chart > span:nth-child(3n+2) { animation-delay: .06s; }
.command-showcase.is-visible .command-chart > span:nth-child(3n) { animation-delay: .12s; }
@keyframes commandBarRise {
  from { transform: scaleY(.12); opacity: .25; }
  to { transform: scaleY(1); }
}

@media (max-width: 1199px) {
  .command-kpi strong { font-size: clamp(22px,2.5vw,30px); }
  .command-events-head,
  .command-event-row { grid-template-columns: 42px minmax(0,1fr) 48px 64px; column-gap: 6px; }
}

@media (max-width: 900px) {
  .dashboard-visual.command-showcase {
    width: 100%;
    justify-self: stretch;
  }
  .command-kpi strong { font-size: clamp(24px,4vw,32px); }
  .command-chart { height: 165px; }
}

@media (max-width: 640px) {
  .dashboard-visual.command-showcase {
    padding: 15px;
    border-radius: 20px;
    gap: 10px;
  }
  .command-preview-head { padding-inline: 1px; }
  .command-preview-head > div { gap: 7px; }
  .command-preview-head strong { font-size: 13px; }
  .command-preview-head > div span { font-size: 9px; }
  .command-demo-pill,
  .command-live-pill { font-size: 7px; padding: 5px 7px; }
  .command-kpi-panel { padding: 9px; }
  .command-kpi-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }
  .command-kpi { min-height: 82px; padding: 10px; }
  .command-kpi-label { font-size: 7px; }
  .command-kpi strong,
  .command-kpi strong.command-date { font-size: clamp(20px,7vw,28px); }
  .command-kpi small { font-size: 7px; }
  .command-lower-grid { grid-template-columns: 1fr; gap: 10px; }
  .command-events-panel,
  .command-chart-panel { padding: 11px; }
  .command-panel-title { font-size: 10px; }
  .command-events-head,
  .command-event-row {
    grid-template-columns: 42px minmax(100px,1fr) 68px;
    column-gap: 6px;
  }
  .command-events-head span:nth-child(3),
  .command-event-row > span:nth-child(3) { display: none; }
  .command-events-head { font-size: 6.5px; }
  .command-event-row { font-size: 7.5px; }
  .command-event-tag { font-size: 6.5px; }
  .command-chart { height: 140px; }
}

@media (max-width: 390px) {
  .command-event-row-last { display: none; }
  .command-kpi { min-height: 78px; }
  .command-kpi-label { white-space: normal; }
}

@media (prefers-reduced-motion: reduce) {
  .command-showcase.is-visible .command-chart > span { animation: none !important; }
}


/* ===== Current master update: 4-stage flow + latest Product section ===== */
/* Scoped transplant only. Existing master hero, global sizing, other sections, and breakpoints remain unchanged. */
.escalation-stack { gap:14px; }
.escalation-card {
  display:grid;
  grid-template-columns:42px 1fr;
  gap:18px;
  align-items:center;
  padding:22px 26px;
}
.escalation-card h3 { margin:0 0 7px; font-size:clamp(21px,1.35vw,28px); }
.escalation-card p { font-size:clamp(14px,.86vw,16px); line-height:1.46; }
.escalation-index {
  width:36px;
  height:36px;
  border-radius:999px;
  display:grid;
  place-items:center;
  border:1px solid rgba(196,169,47,.55);
  background:rgba(196,169,47,.07);
  color:var(--gold);
  font-size:11px;
  font-weight:800;
  letter-spacing:.04em;
  box-shadow:inset 0 0 0 4px rgba(255,255,255,.02);
}

.unit-property-section {
  background:
    radial-gradient(circle at 18% 42%, rgba(196,169,47,.055), transparent 28%),
    linear-gradient(180deg, #fff 0%, var(--warm-white) 100%);
}
.unit-property-shell {
  min-height:calc(100svh - 2 * var(--section-pad));
  display:grid;
  grid-template-columns:minmax(0,1.03fr) minmax(460px,.97fr);
  gap:clamp(60px,6.5vw,118px);
  align-items:center;
}
.unit-property-stage {
  position:relative;
  min-height:660px;
  isolation:isolate;
}
.unit-tech-grid {
  position:absolute;
  inset:7% 4% 5%;
  border-radius:32px;
  background-image:
    linear-gradient(rgba(13,28,49,.052) 1px, transparent 1px),
    linear-gradient(90deg, rgba(13,28,49,.052) 1px, transparent 1px),
    radial-gradient(circle at 50% 50%, rgba(196,169,47,.10), transparent 38%);
  background-size:36px 36px,36px 36px,100% 100%;
  mask-image:linear-gradient(to bottom, transparent 0%, #000 10%, #000 90%, transparent 100%);
  z-index:-2;
}
.unit-tech-grid::after {
  content:"";
  position:absolute;
  inset:12% 15%;
  border:1px solid rgba(196,169,47,.16);
  border-radius:50%;
  opacity:.7;
}
.unit-property-visual {
  position:absolute;
  left:50%;
  top:50%;
  width:clamp(245px,18vw,302px);
  aspect-ratio:768 / 1500;
  transform:translate(-50%,-48%);
  filter:drop-shadow(0 28px 30px rgba(13,28,49,.16));
  z-index:1;
}
.unit-property-image {
  position:relative;
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
  z-index:1;
}
.unit-property-visual .unit-strobe-lighting { z-index:3; }
.unit-callout-lines {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  overflow:visible;
  pointer-events:none;
  z-index:0;
}
.unit-callout-lines path {
  fill:none;
  stroke:rgba(196,169,47,.72);
  stroke-width:.18;
  vector-effect:non-scaling-stroke;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.unit-callout-lines circle { display:none; }
.unit-callout {
  position:absolute;
  width:min(31.5%,232px);
  min-height:124px;
  padding:19px 20px 18px;
  border:1px solid rgba(0,47,76,.08);
  border-radius:18px;
  background:rgba(255,255,255,.96);
  box-shadow:0 18px 44px rgba(13,28,49,.11);
  z-index:2;
}
.unit-callout::after { display:none; }
.unit-callout h3 { margin:0 0 8px; color:var(--deep-navy); font-size:17px; line-height:1.25; }
.unit-callout p { margin:0; color:var(--muted-dark); font-size:13px; line-height:1.5; }
.callout-visible { left:2%; top:20%; }
.callout-audible { right:2%; top:7%; }
.callout-intelligence { left:2%; top:49%; }
.callout-coverage { right:2%; bottom:4%; }
.unit-property-copy { max-width:690px; }
.unit-property-heading { max-width:690px; }
.unit-property-title span { display:block; }
.unit-property-copy h2 { max-width:680px; font-size:clamp(46px,3.15vw,64px); }
.unit-property-lede {
  margin:26px 0 0;
  color:var(--muted-dark);
  font-size:clamp(16px,1vw,19px);
  line-height:1.55;
  max-width:670px;
}
.property-setup-list { margin-top:34px; display:grid; gap:13px; }
.property-setup-row {
  display:grid;
  grid-template-columns:48px 1fr;
  gap:16px;
  align-items:center;
  padding:17px 20px;
  border:1px solid rgba(0,47,76,.085);
  border-radius:16px;
  background:rgba(255,255,255,.83);
  box-shadow:0 12px 30px rgba(13,28,49,.055);
  transition:transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}
.property-setup-row:hover {
  transform:translateX(4px);
  border-color:rgba(196,169,47,.38);
  box-shadow:0 16px 36px rgba(13,28,49,.08);
}
.property-step {
  width:38px;
  height:38px;
  border-radius:999px;
  display:grid;
  place-items:center;
  align-self:center;
  justify-self:center;
  background:rgba(196,169,47,.08);
  border:1px solid rgba(196,169,47,.42);
  color:var(--navy);
  box-shadow:inset 0 0 0 4px rgba(255,255,255,.55);
  font-size:11px;
  font-weight:800;
  letter-spacing:.04em;
}
.property-setup-row h3 { margin:0 0 5px; color:var(--deep-navy); font-size:18px; line-height:1.25; }
.property-setup-row p { margin:0; color:var(--muted-dark); font-size:13px; line-height:1.45; }

@media (min-width:1200px) {
  .unit-property-stage { min-height:700px; }
  .unit-property-visual { width:clamp(255px,17.5vw,310px); transform:translate(-50%,-49%); }
  .unit-callout { width:min(30%,230px); min-height:118px; }
  .callout-visible { left:0; top:10%; }
  .callout-intelligence { left:0; top:auto; bottom:9%; }
  .callout-audible { right:0; top:6%; }
  .callout-coverage { right:0; bottom:4%; }
  .unit-callout-lines .line-visible { d:path("M 30 19 L 37.5 19 L 42.2 26.6"); }
  .unit-callout-lines .line-audible { d:path("M 70 14 L 62.5 14 L 59.0 15.6"); }
  .unit-callout-lines .line-intelligence { d:path("M 30 78 L 37 78 L 36.8 54.9"); }
  .unit-callout-lines .line-coverage { d:path("M 70 84 L 61.5 84 L 57.8 85.8"); }
}

@media (min-width:901px) and (max-width:1199px) {
  .unit-property-shell { grid-template-columns:1fr; gap:34px; min-height:auto; }
  .unit-property-copy { max-width:none; display:contents; }
  .unit-property-heading { order:1; max-width:860px; }
  .unit-property-stage { order:2; min-height:610px; }
  .property-setup-list { order:3; margin-top:0; grid-template-columns:1fr 1fr; gap:12px; }
  .unit-property-copy h2, .unit-property-lede { max-width:860px; }
  .unit-property-visual { width:clamp(235px,25vw,285px); }
  .unit-callout { width:clamp(190px,26%,220px); min-height:116px; padding:17px 18px; }
  .unit-callout h3 { font-size:16px; }
  .unit-callout p { font-size:12.5px; }
  .callout-visible { left:2%; top:9%; }
  .callout-intelligence { left:2%; top:auto; bottom:8%; }
  .callout-audible { right:2%; top:5%; }
  .callout-coverage { right:2%; bottom:3%; }
  .property-setup-row { min-height:112px; }
}

@media (min-width:641px) and (max-width:900px) {
  .unit-property-shell { grid-template-columns:1fr; gap:32px; min-height:auto; }
  .unit-property-copy { max-width:none; display:contents; }
  .unit-property-heading { order:1; max-width:760px; }
  .unit-property-stage { order:2; min-height:560px; }
  .property-setup-list { order:3; margin-top:0; grid-template-columns:1fr 1fr; gap:12px; }
  .unit-property-copy h2, .unit-property-lede { max-width:760px; }
  .unit-property-visual { width:clamp(215px,31vw,265px); }
  .unit-tech-grid { inset:5% 1% 4%; }
  .unit-callout { width:clamp(174px,28%,205px); min-height:108px; padding:15px 16px; border-radius:16px; }
  .unit-callout h3 { font-size:14px; margin-bottom:6px; }
  .unit-callout p { font-size:11.5px; line-height:1.45; }
  .callout-visible { left:0; top:8%; }
  .callout-intelligence { left:0; top:auto; bottom:7%; }
  .callout-audible { right:0; top:4%; }
  .callout-coverage { right:0; bottom:2%; }
  .property-setup-row { min-height:118px; padding:16px 17px; }
}

@media (max-width:640px) {
  .escalation-stack { padding-left:0; gap:10px; }
  .escalation-stack::before { display:none; }
  .escalation-card { grid-template-columns:38px 1fr; gap:14px; padding:20px 18px; }
  .escalation-index { width:34px; height:34px; }
  .escalation-card h3 { font-size:19px; }
  .escalation-card p { font-size:13px; }

  .unit-property-shell { gap:28px; }
  .unit-property-heading { order:1; }
  .unit-property-stage {
    order:2;
    min-height:auto;
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
    padding-top:300px;
  }
  .unit-tech-grid { inset:0 0 auto; height:282px; border-radius:24px; }
  .unit-property-visual { top:8px; left:50%; width:142px; transform:translateX(-50%); }
  .unit-callout-lines { display:none; }
  .unit-callout {
    position:relative;
    inset:auto!important;
    width:100%;
    min-height:0;
    padding:15px 17px;
    display:grid;
    grid-template-columns:minmax(0,1fr);
    align-content:center;
    border-radius:15px;
  }
  .unit-callout h3 { font-size:15px; line-height:1.25; margin-bottom:5px; }
  .unit-callout p { font-size:12px; line-height:1.45; }
  .callout-audible { order:1; }
  .callout-visible { order:2; }
  .callout-intelligence { order:3; }
  .callout-coverage { order:4; }
  .unit-property-copy { display:contents; }
  .property-setup-list { order:3; grid-template-columns:1fr; margin-top:0; gap:9px; }
  .property-setup-row { min-height:0; grid-template-columns:44px 1fr; align-items:center; padding:15px 16px; gap:13px; }
  .property-step { width:36px; height:36px; border-radius:999px; }
  .unit-property-title { font-size:clamp(38px,10vw,50px); }
  .unit-property-lede { font-size:15px; line-height:1.52; margin-top:18px; }
}

@media (min-width:1700px) {
  .unit-property-stage { min-height:700px; }
  .unit-property-visual { width:clamp(270px,15.4vw,295px); }
  .unit-callout { width:clamp(164px,26%,210px); }
  .callout-visible { left:0; top:9%; }
  .callout-intelligence { left:0; top:auto; bottom:8%; }
  .callout-audible { right:0; top:5%; }
  .callout-coverage { right:0; bottom:3%; }
}


/* ===== Current master responsive correction: new Product + four-stage flow only =====
   The production master's global viewport, centering, navigation and all untouched
   sections remain authoritative. These rules only make the two newly transplanted
   sections obey that same responsive behavior. */

/* Four-stage flow: every card uses identical row sizing and the description area is
   allowed to use the full card width. This prevents Command Response from becoming
   the odd taller card on large displays. */
#how-it-works .escalation-stack {
  display:grid;
  grid-auto-rows:1fr;
}
#how-it-works .escalation-card {
  min-height:0;
  height:100%;
}
#how-it-works .escalation-card > div { min-width:0; }
#how-it-works .escalation-card p {
  max-width:none;
  width:100%;
}

/* Product inherits the master's one-panel desktop behavior. Do not let the inner
   shell manufacture extra viewport height. */
#product .unit-property-shell { min-height:0; }

/* Normal desktop and large displays: preserve the approved split composition. */
@media (min-width:1200px) {
  #product .unit-property-shell {
    grid-template-columns:minmax(0,1.03fr) minmax(460px,.97fr);
    align-items:center;
  }
  #product .unit-property-stage {
    min-height:clamp(540px,55svh,700px);
  }

  /* The flow remains centered like the original master and all four cards remain equal. */
  #how-it-works .escalation-stack {
    align-self:center;
  }
}

/* 901–1199 follows the current master's desktop/tablet-landscape philosophy:
   keep Product as a compact two-column panel rather than stacking it into a page
   taller than the viewport. */
@media (min-width:901px) and (max-width:1199px) {
  #product .unit-property-shell {
    display:grid;
    grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
    gap:clamp(24px,3vw,38px);
    align-items:center;
    min-height:0;
  }
  #product .unit-property-copy {
    display:block;
    max-width:none;
  }
  #product .unit-property-heading {
    max-width:none;
  }
  #product .unit-property-stage {
    min-height:clamp(470px,65svh,550px);
    order:initial;
  }
  #product .unit-property-visual {
    width:clamp(175px,21vw,225px);
  }
  #product .unit-callout {
    width:clamp(138px,31%,174px);
    min-height:88px;
    padding:12px 13px;
    border-radius:14px;
  }
  #product .unit-callout h3 {
    margin-bottom:5px;
    font-size:clamp(12px,1.35vw,14px);
    line-height:1.2;
  }
  #product .unit-callout p {
    font-size:clamp(9.5px,1.05vw,11px);
    line-height:1.38;
  }
  #product .callout-visible { left:0; top:9%; }
  #product .callout-intelligence { left:0; top:auto; bottom:8%; }
  #product .callout-audible { right:0; top:5%; }
  #product .callout-coverage { right:0; bottom:4%; }
  #product .unit-property-copy h2 {
    max-width:none;
    font-size:clamp(34px,4vw,44px);
    line-height:1.05;
  }
  #product .unit-property-lede {
    margin-top:16px;
    max-width:none;
    font-size:clamp(12px,1.35vw,14px);
    line-height:1.45;
  }
  #product .property-setup-list {
    margin-top:18px;
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
  }
  #product .property-setup-row {
    min-height:0;
    grid-template-columns:36px 1fr;
    gap:10px;
    padding:10px 12px;
    border-radius:12px;
  }
  #product .property-step {
    width:30px;
    height:30px;
    font-size:9px;
  }
  #product .property-setup-row h3 {
    margin-bottom:2px;
    font-size:clamp(13px,1.45vw,15px);
  }
  #product .property-setup-row p {
    font-size:clamp(9.5px,1vw,11px);
    line-height:1.35;
  }
}

/* Tablet portrait: headline first, then one compact product stage, then a 2x2 setup grid.
   Heights are tied to the active viewport so the section stays within the same visual
   envelope as the current master. */
@media (min-width:641px) and (max-width:900px) {
  #product .unit-property-shell {
    display:grid;
    grid-template-columns:1fr;
    gap:clamp(12px,1.8svh,18px);
    min-height:0;
  }
  #product .unit-property-copy { display:contents; }
  #product .unit-property-heading {
    order:1;
    max-width:760px;
  }
  #product .unit-property-stage {
    order:2;
    min-height:0;
    height:clamp(280px,38svh,390px);
  }
  #product .property-setup-list {
    order:3;
    margin-top:0;
    grid-template-columns:1fr 1fr;
    gap:8px;
  }
  #product .unit-property-copy h2 {
    max-width:none;
    font-size:clamp(31px,5.2vw,42px);
    line-height:1.04;
  }
  #product .unit-property-lede {
    margin-top:10px;
    max-width:none;
    font-size:12px;
    line-height:1.4;
  }
  #product .unit-property-visual {
    width:clamp(130px,22vw,175px);
  }
  #product .unit-tech-grid { inset:2% 2%; }
  #product .unit-callout {
    width:clamp(125px,22%,154px);
    min-height:76px;
    padding:10px 11px;
    border-radius:12px;
  }
  #product .unit-callout h3 { margin-bottom:4px; font-size:11.5px; line-height:1.18; }
  #product .unit-callout p { font-size:9px; line-height:1.32; }
  #product .callout-visible { left:1%; top:8%; }
  #product .callout-intelligence { left:1%; top:auto; bottom:6%; }
  #product .callout-audible { right:1%; top:5%; }
  #product .callout-coverage { right:1%; bottom:4%; }
  #product .property-setup-row {
    min-height:66px;
    grid-template-columns:30px 1fr;
    gap:8px;
    padding:8px 9px;
    border-radius:11px;
  }
  #product .property-step { width:26px; height:26px; font-size:8px; }
  #product .property-setup-row h3 { margin-bottom:2px; font-size:12px; }
  #product .property-setup-row p { font-size:8.5px; line-height:1.28; }

  #how-it-works .escalation-stack { gap:8px; }
  #how-it-works .escalation-card { padding:14px 15px; gap:12px; }
  #how-it-works .escalation-card h3 { margin-bottom:4px; font-size:17px; }
  #how-it-works .escalation-card p { font-size:11.5px; line-height:1.35; }
}

/* Mobile: retain the same content, but compose it as one compact visual system instead
   of turning Product into several screens of stacked cards. */
@media (max-width:640px) {
  #product .unit-property-shell {
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
    min-height:0;
  }
  #product .unit-property-copy { display:contents; }
  #product .unit-property-heading { order:1; }
  #product .unit-property-stage {
    order:2;
    min-height:0;
    height:clamp(215px,29svh,250px);
    display:block;
    padding:0;
  }
  #product .property-setup-list {
    order:3;
    margin-top:0;
    grid-template-columns:1fr 1fr;
    gap:6px;
  }
  #product .unit-property-title {
    font-size:clamp(28px,8vw,34px);
    line-height:1.03;
  }
  #product .unit-property-lede {
    margin-top:8px;
    font-size:10.5px;
    line-height:1.35;
  }
  #product .unit-tech-grid {
    inset:0;
    height:auto;
    border-radius:18px;
  }
  #product .unit-property-visual {
    top:50%;
    left:50%;
    width:clamp(90px,25vw,112px);
    transform:translate(-50%,-50%);
  }
  #product .unit-callout-lines { display:none; }
  #product .unit-callout {
    position:absolute;
    width:clamp(102px,30vw,118px);
    min-height:0;
    padding:8px 9px;
    border-radius:10px;
    display:block;
  }
  #product .unit-callout h3 {
    margin-bottom:3px;
    font-size:9.5px;
    line-height:1.16;
  }
  #product .unit-callout p {
    font-size:7.8px;
    line-height:1.28;
  }
  #product .callout-visible { left:0; top:5%; }
  #product .callout-intelligence { left:0; top:auto; bottom:5%; }
  #product .callout-audible { right:0; top:5%; }
  #product .callout-coverage { right:0; top:auto; bottom:5%; }
  #product .property-setup-row {
    min-height:58px;
    grid-template-columns:24px 1fr;
    gap:6px;
    padding:7px 7px;
    border-radius:9px;
  }
  #product .property-step { width:21px; height:21px; font-size:7px; }
  #product .property-setup-row h3 { margin-bottom:1px; font-size:9.5px; line-height:1.15; }
  #product .property-setup-row p { font-size:7.3px; line-height:1.22; }

  /* Four-stage flow: compact enough to remain a single coherent panel on a phone. */
  #how-it-works .section-grid { gap:16px; }
  #how-it-works .section-intro > p:not(.eyebrow) {
    margin-top:14px;
    font-size:12px;
    line-height:1.4;
  }
  #how-it-works .section-intro .btn { margin-top:16px; min-height:36px; }
  #how-it-works .escalation-stack { gap:6px; padding-left:0; }
  #how-it-works .escalation-stack::before { display:none; }
  #how-it-works .escalation-card {
    grid-template-columns:30px 1fr;
    gap:9px;
    padding:10px 11px;
    border-radius:12px;
  }
  #how-it-works .escalation-index { width:27px; height:27px; font-size:8px; }
  #how-it-works .escalation-card h3 { margin:0 0 2px; font-size:13px; line-height:1.15; }
  #how-it-works .escalation-card p { font-size:9.2px; line-height:1.25; }
}


/* Mobile absolute-callout reset: earlier transplanted rules used inset:auto!important.
   Reassert the four quadrant positions explicitly so all four capability cards render. */
@media (max-width:640px) {
  #product .callout-visible {
    left:0 !important; right:auto !important; top:4% !important; bottom:auto !important;
  }
  #product .callout-audible {
    left:auto !important; right:0 !important; top:4% !important; bottom:auto !important;
  }
  #product .callout-intelligence {
    left:0 !important; right:auto !important; top:auto !important; bottom:4% !important;
  }
  #product .callout-coverage {
    left:auto !important; right:0 !important; top:auto !important; bottom:4% !important;
  }
}


/* Exact-panel rule for the two new homepage sections. Their content has been sized
   below to fit each tested viewport, so the section boundary itself never extends
   into the next panel. */
#how-it-works.section.panel-snap,
#product.section.panel-snap {
  min-height:100svh;
  height:100svh;
  overflow:hidden;
}

/* Short desktop/laptop displays (1366x768 class): keep the same split layout as the
   master, but reduce the transplanted Product composition so the fixed header never
   covers its heading and the entire section remains centered in one viewport. */
@media (min-width:1200px) and (max-height:850px) {
  #product .unit-property-shell {
    grid-template-columns:minmax(0,.98fr) minmax(0,1.02fr);
    gap:clamp(34px,4vw,54px);
  }
  #product .unit-property-stage { min-height:480px; }
  #product .unit-property-visual { width:clamp(185px,15vw,215px); }
  #product .unit-callout {
    width:min(29%,190px);
    min-height:92px;
    padding:13px 14px;
    border-radius:14px;
  }
  #product .unit-callout h3 { margin-bottom:5px; font-size:14px; }
  #product .unit-callout p { font-size:10.5px; line-height:1.36; }
  #product .callout-visible { top:9%; }
  #product .callout-intelligence { bottom:8%; }
  #product .callout-audible { top:5%; }
  #product .callout-coverage { bottom:4%; }
  #product .unit-property-copy h2 {
    font-size:clamp(34px,3.2vw,42px);
    line-height:1.04;
  }
  #product .unit-property-lede {
    margin-top:14px;
    font-size:12.5px;
    line-height:1.42;
  }
  #product .property-setup-list { margin-top:16px; gap:7px; }
  #product .property-setup-row {
    grid-template-columns:34px 1fr;
    gap:9px;
    padding:9px 11px;
    border-radius:12px;
  }
  #product .property-step { width:28px; height:28px; font-size:8px; }
  #product .property-setup-row h3 { margin-bottom:2px; font-size:14px; }
  #product .property-setup-row p { font-size:9.5px; line-height:1.3; }
}

/* ===== 2026-08-24 mobile readability correction =====
   Product + How It Works should read like the Industries section on phones:
   natural vertical flow, readable type, comfortable cards, no viewport compression.
   Desktop/tablet behavior is intentionally unchanged. */
@media (max-width:640px) {
  /* These two sections may grow naturally on phones. */
  #how-it-works.section.panel-snap,
  #product.section.panel-snap {
    min-height:auto;
    height:auto;
    overflow:visible;
    align-items:flex-start;
    padding-block:64px;
  }

  #how-it-works.section.panel-snap > .shell,
  #product.section.panel-snap > .shell {
    margin-block:0;
  }

  /* HOW IT WORKS — restore comfortable mobile reading scale. */
  #how-it-works .section-grid {
    grid-template-columns:1fr;
    gap:30px;
  }
  #how-it-works .section-intro {
    max-width:none;
  }
  #how-it-works .section-intro h2 {
    max-width:none;
    font-size:clamp(38px,10.8vw,46px);
    line-height:1.08;
  }
  #how-it-works .section-intro > p:not(.eyebrow) {
    margin-top:20px;
    font-size:15px;
    line-height:1.55;
    max-width:34ch;
  }
  #how-it-works .section-intro .btn {
    margin-top:24px;
    min-height:44px;
    padding-inline:24px;
  }
  #how-it-works .escalation-stack {
    gap:11px;
    padding-left:0;
  }
  #how-it-works .escalation-card {
    grid-template-columns:40px minmax(0,1fr);
    gap:14px;
    min-height:102px;
    padding:16px 17px;
    border-radius:16px;
  }
  #how-it-works .escalation-index {
    width:36px;
    height:36px;
    font-size:9px;
  }
  #how-it-works .escalation-card h3 {
    margin:0 0 5px;
    font-size:17px;
    line-height:1.2;
  }
  #how-it-works .escalation-card p {
    font-size:12.5px;
    line-height:1.45;
  }

  /* PRODUCT — headline first, larger unit stage, readable capability grid,
     then full-width setup rows. No tiny 2x2 text blocks. */
  #product .unit-property-shell {
    display:grid;
    grid-template-columns:1fr;
    gap:24px;
    min-height:0;
  }
  #product .unit-property-copy {
    display:contents;
  }
  #product .unit-property-heading {
    order:1;
    max-width:none;
  }
  #product .unit-property-title {
    font-size:clamp(36px,10vw,44px);
    line-height:1.07;
  }
  #product .unit-property-lede {
    margin-top:16px;
    font-size:14.5px;
    line-height:1.52;
    max-width:38ch;
  }

  #product .unit-property-stage {
    order:2;
    position:relative;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    height:auto;
    min-height:0;
    padding:304px 0 0;
  }
  #product .unit-tech-grid {
    inset:0 0 auto;
    width:100%;
    height:286px;
    border-radius:22px;
  }
  #product .unit-property-visual {
    top:18px;
    left:50%;
    width:160px;
    transform:translateX(-50%);
  }
  #product .unit-callout-lines {
    display:none;
  }
  #product .unit-callout {
    position:relative;
    inset:auto !important;
    width:100%;
    min-height:128px;
    padding:14px 14px 13px;
    border-radius:14px;
    display:block;
  }
  #product .unit-callout h3 {
    margin:0 0 6px;
    font-size:14px;
    line-height:1.2;
  }
  #product .unit-callout p {
    font-size:11.5px;
    line-height:1.42;
  }
  #product .callout-visible { order:1; }
  #product .callout-audible { order:2; }
  #product .callout-intelligence { order:3; }
  #product .callout-coverage { order:4; }

  #product .property-setup-list {
    order:3;
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
    margin-top:0;
  }
  #product .property-setup-row {
    min-height:86px;
    grid-template-columns:38px minmax(0,1fr);
    gap:12px;
    padding:14px 15px;
    border-radius:14px;
  }
  #product .property-step {
    width:34px;
    height:34px;
    font-size:9px;
  }
  #product .property-setup-row h3 {
    margin-bottom:4px;
    font-size:15px;
    line-height:1.2;
  }
  #product .property-setup-row p {
    font-size:11.5px;
    line-height:1.4;
  }
}

@media (max-width:380px) {
  #product .unit-property-stage {
    grid-template-columns:1fr;
    padding-top:286px;
  }
  #product .unit-tech-grid { height:268px; }
  #product .unit-property-visual { width:150px; }
  #product .unit-callout { min-height:0; }
}

/* ===== 2026-08-24 mobile Product unit clearance fix =====
   Keep the full front-view unit visible before the capability cards begin.
   The prior mobile composition started the cards while the unit camera was still
   extending below the reserved visual area, making the bottom camera appear clipped. */
@media (max-width:640px) {
  #product .unit-property-stage {
    padding-top:360px;
    overflow:visible;
  }
  #product .unit-tech-grid {
    height:336px;
    overflow:visible;
  }
  #product .unit-property-visual {
    top:14px;
    width:160px;
    height:auto;
    aspect-ratio:auto;
    overflow:visible;
  }
  #product .unit-property-image {
    width:100%;
    height:auto;
    max-height:none;
    object-fit:contain;
  }
}

@media (max-width:380px) {
  #product .unit-property-stage {
    padding-top:338px;
  }
  #product .unit-tech-grid {
    height:316px;
  }
  #product .unit-property-visual {
    top:12px;
    width:150px;
    height:auto;
    aspect-ratio:auto;
  }
}


/* ===== 2026-08-24 final mobile flow / dead-space correction =====
   Mobile-only refinement. Desktop/tablet remain unchanged.
   Product, Command, and Contact should read as continuous vertical flows instead
   of inheriting desktop viewport-centering or narrow copy measures. */
@media (max-width:640px) {
  /* PRODUCT: keep the two intended title lines visually substantial without
     creating an oversized empty right-hand column. */
  #product .unit-property-heading {
    width:100%;
    max-width:none;
  }
  #product .unit-property-title {
    width:100%;
    max-width:none;
    font-size:clamp(34px,8.7vw,38px);
    line-height:1.08;
    text-wrap:balance;
  }
  #product .unit-property-title span {
    width:100%;
    max-width:none;
  }
  #product .unit-property-lede {
    width:100%;
    max-width:none;
    margin-top:16px;
  }
  #product .unit-property-shell {
    gap:20px;
  }

  /* COMMAND: remove one-viewport centering on phones and let copy flow directly
     into the real dashboard visual. */
  #command.section.panel-snap {
    min-height:auto;
    height:auto;
    overflow:visible;
    align-items:flex-start;
    padding-block:58px;
  }
  #command.section.panel-snap > .shell {
    margin-block:0;
    top:0;
  }
  #command .software-grid {
    grid-template-columns:1fr;
    gap:34px;
    align-items:start;
  }
  #command .software-copy {
    width:100%;
    max-width:none;
  }
  #command .software-copy h2 {
    width:100%;
    max-width:none;
    font-size:clamp(36px,9.2vw,40px);
    line-height:1.08;
    text-wrap:balance;
  }
  #command .software-copy > p:not(.eyebrow) {
    width:100%;
    max-width:none;
    margin-top:20px;
    font-size:15px;
    line-height:1.55;
  }
  #command .software-copy .btn {
    margin-top:26px;
  }
  #command .dashboard-visual.command-showcase {
    margin-top:0;
  }

  /* CONTACT: collapse the desktop two-column composition completely on phones.
     Copy uses the available width and the form begins immediately afterward. */
  #contact.section.panel-snap {
    min-height:auto;
    height:auto;
    overflow:visible;
    align-items:flex-start;
    padding-block:58px;
  }
  #contact.section.panel-snap > .shell {
    margin-block:0;
    top:0;
  }
  #contact .contact-grid {
    display:grid;
    grid-template-columns:1fr;
    gap:34px;
    align-items:start;
  }
  #contact .contact-copy {
    width:100%;
    max-width:none;
  }
  #contact .contact-copy h2 {
    width:100%;
    max-width:none;
    font-size:clamp(36px,9.2vw,40px);
    line-height:1.08;
    text-wrap:balance;
  }
  #contact .contact-copy > p:not(.eyebrow) {
    width:100%;
    max-width:none;
    margin-top:20px;
    font-size:15px;
    line-height:1.55;
  }
  #contact .demo-form {
    margin-top:0;
  }
}

@media (max-width:380px) {
  #product .unit-property-title {
    font-size:clamp(32px,8.6vw,35px);
  }
  #command .software-copy h2,
  #contact .contact-copy h2 {
    font-size:clamp(34px,9vw,37px);
  }
}
