@font-face {
  font-family:General;
  src:url('/fonts/GeneralSans-Regular.woff2') format('woff2');
  font-weight:400;
  font-display:swap
}
@font-face {
  font-family:General;
  src:url('/fonts/GeneralSans-Medium.woff2') format('woff2');
  font-weight:500;
  font-display:swap
}
@font-face {
  font-family:General;
  src:url('/fonts/GeneralSans-Semibold.woff2') format('woff2');
  font-weight:600;
  font-display:swap
}
@font-face {
  font-family:General;
  src:url('/fonts/GeneralSans-Bold.woff2') format('woff2');
  font-weight:700;
  font-display:swap
}
@font-face {
  font-family:PlexMono;
  src:url('/fonts/plex-mono-400-latin.woff2') format('woff2');
  font-weight:400;
  font-display:swap
}
:root {
  --paper:#f6f5f0;
  --white:#fff;
  --ink:#192d37;
  --muted:#5b696f;
  --line:#d6dbd7;
  --blue:#274dd8;
  --blue-soft:#edf0ff;
  --green:#286047;
  --green-soft:#eaf1e8;
  --orange:#ab5b30;
  --orange-soft:#f9efe2;
  --max:1264px;
  --gutter:clamp(22px,4.4vw,72px);
  --ease:cubic-bezier(.2,.7,.25,1)
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:110px
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:17px/1.6 General,Arial,sans-serif;
  -webkit-font-smoothing:antialiased
}
body:has(dialog[open]) {
  overflow:hidden
}
h1,h2,h3,p,figure {
  margin:0
}
h1,h2,h3 {
  font-weight:500
}
h1 {
  font-size:clamp(48px,5.5vw,82px);
  line-height:1.04;
  letter-spacing:-.055em
}
h2 {
  font-size:clamp(35px,3.7vw,54px);
  line-height:1.12;
  letter-spacing:-.04em
}
h3 {
  font-size:24px;
  line-height:1.25;
  letter-spacing:-.025em
}
p+p {
  margin-top:18px
}
a {
  color:inherit
}
img {
  max-width:100%;
  display:block
}
button,input,select {
  font:inherit
}
button,a,input,summary {
  touch-action:manipulation
}
button {
  color:inherit
}
button {
  cursor:pointer
}
a,button {
  -webkit-tap-highlight-color:transparent
}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible {
  outline:3px solid var(--blue);
  outline-offset:5px
}
::selection {
  background:#dae2ff
}
button:disabled {
  cursor:default
}
svg {
  display:block
}
a {
  text-underline-offset:5px
}
.wrap {
  width:min(var(--max),calc(100% - 2*var(--gutter)));
  margin:auto
}
.section {
  padding-block:112px
}
.section-tight {
  padding-block:72px
}
.rule {
  border-top:1px solid var(--line)
}
.white {
  background:white
}
.ink {
  background:var(--ink);
  color:var(--paper)
}
.blue {
  background:var(--blue);
  color:white
}
.mono,.overline,.caption {
  font:11px/1.55 PlexMono,monospace
}
.overline {
  letter-spacing:.08em;
  text-transform:uppercase
}
.caption {
  color:var(--muted)
}
.muted {
  color:var(--muted)
}
.lead {
  font-size:20px;
  line-height:1.55;
  max-width:560px
}
.prose {
  max-width:690px
}
.prose h2 {
  margin:48px 0 20px
}
.prose p {
  font-size:19px
}
.prose ul {
  padding-left:23px
}
.prose li {
  margin:12px 0
}
.arrow {
  width:18px;
  height:18px;
  flex:none
}
.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:25px;
  min-height:52px;
  padding:13px 23px;
  background:var(--blue);
  border:1px solid var(--blue);
  color:white;
  text-decoration:none;
  font-weight:500;
  font-size:15px;
  transition:background .18s,color .18s,transform .18s
}
.btn:hover {
  background:var(--ink);
  border-color:var(--ink);
  transform:translateY(-2px)
}
.btn.secondary {
  background:transparent;
  border-color:var(--line);
  color:var(--ink)
}
.btn.secondary:hover {
  background:white;
  border-color:var(--ink)
}
.btn.light {
  background:var(--paper);
  border-color:var(--paper);
  color:var(--ink)
}
.btn.light:hover {
  background:white;
  border-color:white
}
.text-link {
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-size:15px;
  font-weight:500;
  text-decoration:none;
  border-bottom:1px solid currentColor;
  padding:5px 0
}
.text-link:hover {
  color:var(--blue)
}
.ink .text-link:hover {
  color:#c2d1ff
}
.actions {
  display:flex;
  gap:22px;
  align-items:center;
  flex-wrap:wrap;
  margin-top:30px
}
.skip-link {
  position:fixed;
  top:-100px;
  left:20px;
  background:white;
  color:var(--ink);
  padding:12px;
  z-index:200
}
.skip-link:focus {
  top:12px
}
.site-header {
  height:88px;
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(246,245,240,.97);
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(12px)
}
.header-inner {
  height:100%;
  display:flex;
  align-items:center;
  gap:36px
}
.brand {
  display:flex;
  gap:10px;
  align-items:center;
  text-decoration:none;
  font-size:24px;
  font-weight:600;
  letter-spacing:-.06em;
  line-height:1
}
.brand-mark {
  width:30px;
  height:30px;
  color:var(--blue)
}
.main-nav {
  display:flex;
  align-items:center;
  gap:28px;
  margin-left:auto
}
.main-nav a {
  font-size:14px;
  text-decoration:none;
  padding-block:8px
}
.main-nav a:hover,.main-nav a[aria-current=page] {
  color:var(--blue)
}
.header-cta {
  font-size:13px;
  min-height:42px;
  padding:10px 16px;
  gap:13px
}
.menu-toggle {
  display:none
}
.preview-ribbon {
  font:10px/1.4 PlexMono,monospace;
  background:var(--ink);
  color:#d3dcdf;
  text-align:center;
  padding:6px 16px;
  letter-spacing:.025em
}
.hero {
  padding:72px 0 60px;
  overflow:clip
}
.hero-grid {
  display:grid;
  grid-template-columns:1fr 1.06fr;
  align-items:center;
  gap:22px
}
.hero-copy {
  position:relative;
  z-index:2;
  padding-bottom:24px
}
.hero .overline {
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--muted);
  margin-bottom:24px
}
.small-square {
  width:7px;
  height:7px;
  background:var(--blue);
  display:inline-block
}
.hero h1 {
  max-width:630px
}
.hero h1 span {
  color:var(--blue)
}
.hero .lead {
  font-size:18px;
  max-width:510px;
  margin-top:26px
}
.hero .caption {
  margin-top:18px
}
.territory {
  position:relative;
  margin:0 -75px 0 -65px;
  isolation:isolate
}
.territory img {
  width:100%;
  mix-blend-mode:multiply;
  aspect-ratio:1.5
}
.territory-note {
  position:absolute;
  background:white;
  border:1px solid var(--line);
  box-shadow:0 8px 20px #192d370b;
  padding:12px 15px;
  font-size:12px;
  line-height:1.4;
  left:42%;
  bottom:8%;
  max-width:235px
}
.territory-note strong {
  display:block;
  font-size:13px;
  font-weight:500;
  margin:5px 0
}
.territory-note:before {
  content:"";
  position:absolute;
  width:1px;
  height:34px;
  left:18px;
  bottom:100%;
  background:var(--blue)
}
.pin {
  position:absolute;
  width:15px;
  height:15px;
  background:var(--blue);
  border:4px solid #e8edff;
  border-radius:50%;
  box-shadow:0 0 0 1px var(--blue)
}
.pin.one {
  left:44%;
  top:30%
}
.pin.two {
  left:29%;
  top:49%;
  background:var(--green);
  box-shadow:0 0 0 1px var(--green);
  border-color:#eaf1e8
}
.pin.three {
  left:71%;
  top:44%
}
.image-caption {
  position:absolute;
  right:13%;
  bottom:0
}
.hero-floor {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:30px;
  margin-top:42px;
  padding-top:22px;
  border-top:1px solid var(--line)
}
.hero-floor p {
  font-size:14px;
  max-width:480px;
  color:var(--muted)
}
.hero-floor .services {
  display:flex;
  gap:30px;
  font-size:12px;
  font-weight:500
}
.intro-heading {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:60px;
  margin-bottom:50px
}
.intro-heading h2 {
  max-width:650px
}
.intro-heading p {
  max-width:340px;
  color:var(--muted);
  font-size:16px
}
.day-demo {
  display:grid;
  grid-template-columns:330px 1fr;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  min-height:520px
}
.day-steps {
  padding:22px 35px 20px 0;
  border-right:1px solid var(--line);
  display:flex;
  flex-direction:column
}
.day-step {
  position:relative;
  text-align:left;
  border:0;
  border-bottom:1px solid var(--line);
  background:none;
  padding:23px 0 23px 22px;
  transition:color .15s
}
.day-step:before {
  content:"";
  position:absolute;
  left:0;
  top:29px;
  width:6px;
  height:6px;
  border:1px solid #97a4a9
}
.day-step[aria-selected=true]:before {
  background:var(--blue);
  border-color:var(--blue)
}
.day-step .mono {
  display:block;
  color:var(--muted);
  margin-bottom:8px
}
.day-step strong {
  font-size:17px;
  font-weight:500;
  line-height:1.4
}
.day-step[aria-selected=true] {
  color:var(--blue)
}
.day-step:hover {
  color:var(--blue)
}
.day-steps .caption {
  margin-top:auto;
  padding-top:24px
}
.day-panel {
  padding:32px 0 32px 42px;
  min-width:0
}
.panel-caption {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:23px
}
.panel-caption .overline {
  color:var(--muted)
}
.sample-label {
  font:10px/1.4 PlexMono,monospace;
  color:var(--muted)
}
.screen {
  background:var(--paper);
  border:1px solid var(--line);
  padding:28px;
  min-height:360px;
  box-shadow:0 8px 0 #f0f1ed
}
.screen-head {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:15px;
  border-bottom:1px solid var(--line);
  padding-bottom:17px;
  margin-bottom:24px
}
.screen-head h3 {
  font-size:20px
}
.status {
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:11px;
  color:var(--green);
  white-space:nowrap
}
.status:before {
  content:"";
  width:5px;
  height:5px;
  background:currentColor;
  border-radius:50%
}
.status.amber {
  color:var(--orange)
}
.schedule-row {
  display:grid;
  grid-template-columns:58px 1fr auto;
  gap:16px;
  padding:13px 0;
  border-bottom:1px solid var(--line);
  align-items:center
}
.schedule-row .mono {
  color:var(--muted)
}
.schedule-row strong {
  font-size:14px;
  font-weight:500
}
.schedule-row p {
  font-size:12px;
  color:var(--muted);
  margin:0
}
.schedule-row .crew {
  font-size:12px
}
.note-strip {
  margin-top:22px;
  font-size:13px;
  line-height:1.5;
  background:var(--blue-soft);
  border-left:2px solid var(--blue);
  padding:13px 15px
}
.note-strip.green {
  background:var(--green-soft);
  border-color:var(--green)
}
.quote-note {
  font-size:18px;
  line-height:1.5;
  padding-bottom:20px;
  border-bottom:1px solid var(--line)
}
.fact-rows {
  margin-top:18px
}
.fact-row {
  display:flex;
  justify-content:space-between;
  gap:20px;
  font-size:13px;
  padding:7px 0
}
.fact-row span:first-child {
  color:var(--muted)
}
.fact-row strong {
  font-weight:500;
  text-align:right
}
.doc-head {
  display:flex;
  align-items:start;
  justify-content:space-between;
  margin-bottom:18px
}
.doc-brand {
  font-size:15px;
  font-weight:600;
  letter-spacing:-.04em
}
.doc-body {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:25px;
  font-size:13px
}
.doc-body h4 {
  font-size:12px;
  font-weight:500;
  margin:0 0 7px
}
.doc-body p {
  color:var(--muted);
  font-size:12px
}
.demo-explanation {
  margin:23px 0 0;
  font-size:14px;
  line-height:1.6;
  color:var(--muted);
  max-width:660px
}
.demo-explanation strong {
  color:var(--ink);
  font-weight:500
}
.demo-nav {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  margin-top:28px
}
.demo-nav button {
  font-size:13px;
  border:0;
  background:transparent;
  display:flex;
  gap:10px;
  align-items:center;
  padding:6px 0;
  color:var(--blue)
}
.demo-nav .caption {
  max-width:450px
}
.editorial {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px;
  align-items:center
}
.editorial h2 {
  margin-bottom:24px
}
.editorial .lead {
  font-size:18px;
  color:var(--muted)
}
.field-photo {
  aspect-ratio:1/1.02;
  object-fit:cover;
  object-position:42% center
}
.field-frame {
  position:relative
}
.field-slip {
  margin-top:12px;
  padding:12px 0 0;
  display:flex;
  align-items:center;
  gap:12px
}
.receipt-check {
  width:25px;
  height:25px;
  color:var(--green);
  display:grid;
  place-items:center;
  flex:none
}
.field-slip strong {
  display:block;
  font-size:13px;
  font-weight:500
}
.field-slip p {
  font-size:12px;
  color:var(--muted)
}
.plain-list {
  list-style:none;
  padding:0;
  margin:27px 0
}
.plain-list li {
  border-top:1px solid var(--line);
  padding:14px 0;
  font-size:15px;
  display:flex;
  gap:18px
}
.plain-list li:before {
  content:'+';
  color:var(--blue);
  font-weight:500
}
.care-band {
  padding-block:100px;
  overflow:hidden
}
.care-grid {
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:90px;
  align-items:center
}
.care-grid h2 {
  max-width:460px
}
.care-grid p {
  color:#bdcbcf;
  max-width:470px;
  margin-top:25px;
  font-size:17px
}
.care-grid .overline {
  color:#aabec5;
  margin-bottom:24px
}
.care-console {
  border:1px solid #526169;
  background:#213741;
  padding:28px 30px;
  box-shadow:18px 18px 0 #10252e
}
.care-console .screen-head {
  border-color:#4c626c;
  margin-bottom:16px
}
.care-console .screen-head h3 {
  font-size:17px
}
.care-console .status {
  color:#bedfc7
}
.care-console .caption {
  color:#b8c7cc
}
.care-reading {
  display:flex;
  align-items:baseline;
  gap:12px;
  margin-top:18px
}
.care-reading strong {
  font-size:45px;
  font-weight:400;
  letter-spacing:-.04em;
  line-height:1
}
.care-reading span {
  font-size:12px;
  color:#bacbd2
}
.trend-chart {
  width:100%;
  height:142px;
  margin-top:12px
}
.chart-labels {
  display:flex;
  justify-content:space-between;
  font:10px PlexMono,monospace;
  color:#a9bbc4
}
.care-action {
  display:flex;
  gap:14px;
  align-items:start;
  border-top:1px solid #4c626c;
  padding-top:19px;
  margin-top:21px
}
.care-action svg {
  color:#bedfc7;
  flex:none;
  width:17px;
  height:17px;
  margin-top:3px
}
.care-action strong {
  font-size:14px;
  font-weight:500
}
.care-action p {
  font-size:12px;
  margin:4px 0 0;
  line-height:1.5
}
.care-console .sample-label {
  color:#a9bbc4;
  display:block;
  margin-top:19px
}
.owner-section {
  padding-block:115px
}
.owner-top {
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:100px;
  align-items:end;
  margin-bottom:44px
}
.owner-top p {
  color:var(--muted)
}
.owner-board {
  display:grid;
  grid-template-columns:1fr 1.4fr;
  gap:0;
  border:1px solid var(--line);
  background:#fff
}
.owner-questions {
  padding:33px;
  border-right:1px solid var(--line)
}
.owner-questions .overline {
  color:var(--muted);
  margin-bottom:20px
}
.owner-question {
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  text-align:left;
  font-size:15px;
  line-height:1.5;
  border:0;
  background:none;
  border-bottom:1px solid var(--line);
  padding:18px 0
}
.owner-question[aria-selected=true] {
  color:var(--blue)
}
.owner-answer {
  padding:34px 40px;
  min-height:340px
}
.owner-answer h3 {
  font-size:22px;
  max-width:420px;
  margin:18px 0
}
.owner-answer p {
  font-size:15px;
  max-width:520px;
  color:var(--muted)
}
.mini-bars {
  display:grid;
  gap:12px;
  margin:24px 0
}
.mini-bar {
  display:grid;
  grid-template-columns:90px 1fr 60px;
  align-items:center;
  gap:12px;
  font-size:11px
}
.bar-track {
  height:17px;
  background:#eff1ed
}
.bar-fill {
  height:100%;
  background:var(--blue);
  width:var(--bar)
}
.mini-bar:nth-child(2) .bar-fill {
  background:#b4c1ed
}
.mini-bar:nth-child(3) .bar-fill {
  background:#d4dcef
}
.owner-answer .caption {
  font-size:10px
}
.promise-line {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px;
  padding-block:72px;
  border-top:1px solid var(--line)
}
.promise-line h2 {
  max-width:490px
}
.promise-line p {
  color:var(--muted);
  max-width:500px
}
.promise-line .actions {
  margin-top:22px
}
.closing {
  padding:86px 0 95px
}
.closing-inner {
  display:flex;
  justify-content:space-between;
  gap:70px;
  align-items:center
}
.closing h2 {
  font-size:clamp(36px,4.5vw,64px);
  max-width:710px
}
.closing p {
  margin-top:20px;
  color:#dce3ff;
  max-width:580px
}
.closing .btn {
  white-space:nowrap
}
.site-footer {
  padding:42px 0 28px
}
.footer-top {
  display:flex;
  justify-content:space-between;
  align-items:start;
  gap:45px
}
.footer-top p {
  font-size:13px;
  color:var(--muted);
  margin-top:15px;
  max-width:290px
}
.footer-links {
  display:flex;
  gap:55px
}
.footer-links div {
  display:flex;
  flex-direction:column;
  gap:9px
}
.footer-links a {
  font-size:13px;
  text-decoration:none
}
.footer-links a:hover {
  color:var(--blue)
}
.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:25px;
  border-top:1px solid var(--line);
  margin-top:42px;
  padding-top:20px;
  font:10px PlexMono,monospace;
  color:var(--muted)
}
.page-hero {
  padding:76px 0 65px
}
.page-hero h1 {
  max-width:930px;
  margin-top:20px
}
.page-hero .lead {
  margin-top:25px;
  max-width:710px;
  color:var(--muted)
}
.page-hero.split {
  display:grid;
  grid-template-columns:1fr .8fr;
  align-items:center;
  gap:85px
}
.page-hero.split h1 {
  font-size:clamp(44px,5.2vw,70px)
}
.page-hero .overline {
  color:var(--muted)
}
.feature-row {
  display:grid;
  grid-template-columns:1fr 1.05fr;
  gap:100px;
  padding-block:82px;
  border-top:1px solid var(--line);
  align-items:center
}
.feature-row h2 {
  font-size:42px;
  max-width:540px;
  margin-bottom:25px
}
.feature-row .lead {
  font-size:18px;
  color:var(--muted)
}
.feature-row.reverse .feature-copy {
  order:2
}
.feature-row.reverse .feature-art {
  order:1
}
.feature-row .screen {
  min-height:300px
}
.product-index {
  display:flex;
  flex-wrap:wrap;
  gap:15px 28px;
  padding:22px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line)
}
.product-index a {
  font-size:13px;
  text-decoration:none;
  color:var(--muted)
}
.product-index a:hover {
  color:var(--blue)
}
.compact-title {
  font-size:32px;
  max-width:600px;
  margin-bottom:22px
}
.asset-record {
  background:white;
  border:1px solid var(--line);
  padding:25px
}
.asset-record img {
  width:140px;
  height:115px;
  object-fit:contain;
  mix-blend-mode:multiply
}
.asset-record-head {
  display:flex;
  gap:30px;
  align-items:center;
  border-bottom:1px solid var(--line);
  padding-bottom:18px
}
.asset-record h3 {
  font-size:21px
}
.history-entry {
  border-left:1px solid var(--line);
  margin:23px 0 0 4px;
  padding:0 0 0 20px;
  position:relative
}
.history-entry:before {
  content:'';
  position:absolute;
  left:-4px;
  top:5px;
  width:7px;
  height:7px;
  background:var(--blue)
}
.history-entry strong {
  font-size:14px;
  font-weight:500
}
.history-entry p {
  font-size:13px;
  color:var(--muted)
}
.history-entry .mono {
  font-size:10px;
  margin-bottom:4px;
  color:var(--muted)
}
.timeline {
  list-style:none;
  margin:25px 0 0;
  padding:0
}
.timeline li {
  display:grid;
  grid-template-columns:70px 1fr;
  gap:22px;
  border-top:1px solid var(--line);
  padding:23px 0
}
.timeline .mono {
  padding-top:4px;
  color:var(--blue)
}
.timeline h3 {
  font-size:20px;
  margin-bottom:8px
}
.timeline p {
  font-size:15px;
  color:var(--muted)
}
.care-options {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  border-top:1px solid var(--line);
  margin-top:50px;
  padding-top:35px
}
.care-options h3 {
  margin-bottom:14px
}
.care-options p {
  font-size:16px;
  color:var(--muted)
}
.quote-large {
  font-size:clamp(26px,3vw,42px);
  letter-spacing:-.025em;
  line-height:1.35;
  margin-bottom:30px;
  max-width:900px
}
.byline {
  font-size:13px;
  color:var(--muted)
}
.price-layout {
  display:grid;
  grid-template-columns:.95fr 1.05fr;
  gap:100px;
  padding:70px 0 85px;
  align-items:start
}
.price-calc {
  background:white;
  border:1px solid var(--line);
  padding:35px
}
.price-input {
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:center;
  margin-top:30px
}
.price-input label {
  font-size:14px;
  max-width:240px
}
.stepper {
  display:flex;
  border:1px solid var(--line)
}
.stepper button {
  border:0;
  background:var(--paper);
  width:39px;
  height:44px;
  font-size:21px
}
.stepper input {
  border:0;
  appearance:textfield;
  text-align:center;
  width:55px;
  font-size:18px;
  color:var(--ink)
}
.stepper input::-webkit-inner-spin-button {
  appearance:none
}
.price-total {
  font-size:64px;
  letter-spacing:-.05em;
  line-height:1.2;
  margin-top:25px;
  font-weight:500
}
.price-total small {
  font-size:16px;
  letter-spacing:0;
  font-weight:400;
  color:var(--muted)
}
.price-detail {
  font-size:13px;
  color:var(--muted);
  margin-top:12px;
  min-height:42px
}
.price-calc .btn {
  width:100%;
  margin-top:27px
}
.included {
  list-style:none;
  padding:0;
  margin:25px 0
}
.included li {
  padding:13px 0;
  border-bottom:1px solid var(--line);
  font-size:15px;
  display:flex;
  justify-content:space-between;
  gap:15px
}
.included li span:last-child {
  font-size:12px;
  color:var(--green)
}
.faq {
  max-width:850px;
  margin:auto
}
.faq>h2 {
  margin-bottom:30px
}
.faq details {
  border-bottom:1px solid var(--line)
}
.faq summary {
  cursor:pointer;
  list-style:none;
  font-size:19px;
  font-weight:500;
  padding:23px 40px 23px 0;
  position:relative
}
.faq summary::-webkit-details-marker {
  display:none
}
.faq summary:after {
  content:'+';
  position:absolute;
  right:0;
  top:18px;
  font-size:27px;
  font-weight:400
}
.faq details[open] summary:after {
  content:'−'
}
.faq details p {
  padding:0 55px 25px 0;
  color:var(--muted);
  font-size:16px
}
.onboard-steps {
  counter-reset:step;
  list-style:none;
  padding:0;
  margin:0
}
.onboard-steps li {
  counter-increment:step;
  display:grid;
  grid-template-columns:60px 1fr 1fr;
  gap:40px;
  padding:40px 0;
  border-top:1px solid var(--line)
}
.onboard-steps li:before {
  content:'0'counter(step);
  font:14px PlexMono,monospace;
  color:var(--blue);
  padding-top:5px
}
.onboard-steps h3 {
  font-size:25px
}
.onboard-steps p {
  font-size:16px;
  color:var(--muted)
}
.reconcile {
  border-collapse:collapse;
  width:100%;
  font-size:14px
}
.reconcile th,.reconcile td {
  text-align:left;
  padding:16px;
  border-bottom:1px solid var(--line)
}
.reconcile th {
  font-size:11px;
  font-weight:400;
  color:var(--muted)
}
.reconcile td:last-child {
  color:var(--green)
}
.walkthrough-layout {
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:100px;
  padding:85px 0 110px
}
.walkthrough-layout h1 {
  font-size:clamp(45px,5vw,70px)
}
.walkthrough-layout .lead {
  margin-top:25px;
  font-size:18px;
  color:var(--muted)
}
.booking-panel {
  background:white;
  border:1px solid var(--line);
  padding:36px
}
.booking-panel h2 {
  font-size:29px
}
.booking-panel p {
  font-size:15px;
  color:var(--muted);
  margin-top:17px
}
.booking-panel .btn {
  width:100%;
  margin-top:24px
}
.booking-panel .caption {
  font-size:11px;
  margin-top:18px
}
.booking-detail {
  margin-top:30px;
  border-top:1px solid var(--line);
  padding-top:25px
}
.booking-detail a {
  font-size:15px
}
.about-signoff {
  font-size:22px;
  letter-spacing:-.04em;
  margin-top:35px
}
.sample-page {
  max-width:820px;
  background:#fff;
  border:1px solid var(--line);
  margin:50px auto;
  padding:55px
}
.sample-page h1 {
  font-size:42px;
  letter-spacing:-.03em;
  margin:45px 0 20px
}
.sample-page h2 {
  font-size:22px;
  letter-spacing:-.02em;
  margin:32px 0 15px
}
.sample-page p {
  font-size:15px
}
.sample-page .fact-row {
  border-bottom:1px solid var(--line);
  padding:10px 0
}
.sample-page .sample-label {
  margin-top:30px;
  display:block
}
.print-controls {
  max-width:820px;
  margin:35px auto 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px
}
.print-controls button {
  font-size:13px
}
.sample-links {
  display:flex;
  gap:25px;
  flex-wrap:wrap;
  margin-top:20px
}
.paper-note {
  background:#fff;
  border:1px solid var(--line);
  padding:30px
}
.paper-note p {
  font-size:15px
}
.wide-table {
  overflow-x:auto
}
.business-examples {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
  padding:65px 0;
  border-top:1px solid var(--line)
}
.business-examples h3 {
  font-size:29px;
  margin-bottom:20px
}
.business-examples p {
  color:var(--muted)
}
[hidden] {
  display:none!important
}
.enter {
  animation:enter .35s var(--ease) both
}
@keyframes enter {
  from {
    opacity:.6;
    transform:translateY(5px)
  }
  to {
    opacity:1;
    transform:none
  }
}
@media(min-width:1500px) {
  .hero {
    padding-top:100px
  }
  .hero h1 {
    font-size:84px
  }
  .hero-grid {
    gap:40px
  }
  .territory {
    margin-right:-100px
  }
  .hero-floor {
    margin-top:65px
  }
}
@media(max-width:1100px) {
  .main-nav {
    gap:19px
  }
  .header-inner {
    gap:22px
  }
  .hero h1 {
    font-size:65px
  }
  .hero-grid {
    grid-template-columns:1.05fr .95fr
  }
  .territory {
    margin-left:-55px
  }
  .hero .lead {
    font-size:17px
  }
  .hero-floor .services {
    gap:15px
  }
  .editorial,.care-grid,.feature-row {
    gap:50px
  }
  .owner-top {
    gap:60px
  }
  .day-demo {
    grid-template-columns:270px 1fr
  }
  .day-panel {
    padding-left:30px
  }
  .day-steps {
    padding-right:25px
  }
  .hero {
    padding-top:60px
  }
  .price-layout {
    gap:65px
  }
}
@media(max-width:850px) {
  .main-nav {
    gap:14px
  }
  .main-nav a {
    font-size:12px
  }
  .brand {
    font-size:22px
  }
  .header-cta {
    font-size:12px;
    gap:8px;
    padding:9px 12px
  }
  .header-inner {
    gap:18px
  }
  .hero h1 {
    font-size:56px
  }
  .hero-grid {
    grid-template-columns:1fr .85fr;
    gap:0
  }
  .hero .lead {
    font-size:16px
  }
  .territory {
    margin-right:-110px;
    margin-left:-55px
  }
  .territory-note {
    left:28%;
    bottom:-7%;
    padding:11px;
    max-width:200px
  }
  .image-caption {
    display:none
  }
  .hero-floor {
    margin-top:50px;
    align-items:flex-start
  }
  .hero-floor .services {
    flex-direction:column;
    gap:4px;
    flex-shrink:0
  }
  .section {
    padding-block:80px
  }
  .intro-heading {
    gap:35px
  }
  .intro-heading h2 {
    font-size:39px
  }
  .intro-heading p {
    font-size:15px;
    max-width:270px
  }
  .day-demo {
    grid-template-columns:220px 1fr
  }
  .day-steps {
    padding-right:18px
  }
  .day-step {
    padding-left:17px
  }
  .day-step strong {
    font-size:15px
  }
  .day-panel {
    padding-left:24px
  }
  .screen {
    padding:20px
  }
  .screen-head h3 {
    font-size:18px
  }
  .editorial,.care-grid {
    gap:35px
  }
  .care-grid {
    grid-template-columns:1fr 1fr
  }
  .care-console {
    padding:22px;
    box-shadow:10px 10px 0 #10252e
  }
  .care-grid h2 {
    font-size:39px
  }
  .owner-board {
    grid-template-columns:.85fr 1.15fr
  }
  .owner-questions {
    padding:25px
  }
  .owner-answer {
    padding:28px
  }
  .feature-row {
    gap:40px
  }
  .feature-row h2 {
    font-size:36px
  }
  .page-hero.split {
    gap:45px
  }
  .walkthrough-layout {
    gap:45px
  }
  .price-layout {
    gap:45px
  }
  .closing-inner {
    gap:35px
  }
  .footer-links {
    gap:30px
  }
}
@media(max-width:700px) {
  html {
    scroll-padding-top:82px
  }
  .site-header {
    height:70px
  }
  .header-inner {
    gap:15px
  }
  .header-cta {
    margin-left:auto;
    min-height:39px;
    font-size:11px
  }
  .header-cta .arrow {
    display:none
  }
  .brand {
    font-size:22px
  }
  .brand-mark {
    width:25px;
    height:25px
  }
  .menu-toggle {
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid var(--line);
    background:none;
    width:40px;
    height:39px;
    padding:8px
  }
  .menu-toggle svg {
    width:19px;
    height:19px
  }
  .main-nav {
    display:none;
    position:absolute;
    top:69px;
    left:0;
    right:0;
    background:var(--paper);
    border-bottom:1px solid var(--line);
    padding:20px var(--gutter) 25px;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    box-shadow:0 12px 16px #192d3710
  }
  .main-nav.open {
    display:flex
  }
  .main-nav a {
    font-size:17px;
    padding:12px 0;
    border-bottom:1px solid var(--line)
  }
  .preview-ribbon {
    font-size:9px
  }
  .hero {
    padding:45px 0 35px
  }
  .hero-grid {
    display:block
  }
  .hero-copy {
    padding:0
  }
  .hero .overline {
    font-size:10px;
    margin-bottom:20px
  }
  .hero h1 {
    font-size:clamp(49px,9.4vw,65px);
    max-width:600px;
    letter-spacing:-.055em
  }
  .hero .lead {
    font-size:17px;
    max-width:550px;
    margin-top:22px
  }
  .hero .actions {
    margin-top:25px
  }
  .hero .caption {
    font-size:10px;
    margin-top:15px
  }
  .territory {
    margin:12px -20px 0;
    max-width:none
  }
  .territory img {
    aspect-ratio:1.55;
    width:100%
  }
  .territory-note {
    left:43%;
    bottom:5%;
    max-width:210px;
    font-size:11px
  }
  .territory-note strong {
    font-size:12px
  }
  .territory-note:before {
    height:24px
  }
  .hero-floor {
    margin-top:20px;
    padding-top:21px;
    gap:25px
  }
  .hero-floor p {
    font-size:12px
  }
  .hero-floor .services {
    font-size:11px
  }
  .section,.owner-section {
    padding-block:64px
  }
  .section-tight {
    padding-block:48px
  }
  h2 {
    font-size:36px
  }
  .intro-heading {
    display:block;
    margin-bottom:32px
  }
  .intro-heading h2 {
    font-size:36px
  }
  .intro-heading p {
    max-width:500px;
    margin-top:19px;
    font-size:16px
  }
  .day-demo {
    display:block;
    min-height:0
  }
  .day-steps {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    padding:0;
    border-right:0;
    gap:14px
  }
  .day-step {
    border-bottom:2px solid transparent;
    padding:18px 0 15px
  }
  .day-step:before {
    display:none
  }
  .day-step[aria-selected=true] {
    border-bottom-color:var(--blue)
  }
  .day-step strong {
    font-size:13px;
    display:block
  }
  .day-step .mono {
    font-size:10px;
    margin-bottom:6px
  }
  .day-steps>.caption {
    grid-column:1/-1;
    font-size:9px;
    margin:0;
    padding:0 0 15px
  }
  .day-panel {
    padding:22px 0
  }
  .panel-caption {
    margin-bottom:17px
  }
  .screen {
    padding:20px;
    min-height:330px
  }
  .screen-head {
    gap:10px
  }
  .screen-head h3 {
    font-size:17px
  }
  .screen-head .status {
    font-size:10px
  }
  .schedule-row {
    gap:10px;
    grid-template-columns:48px 1fr auto
  }
  .schedule-row .crew {
    font-size:10px
  }
  .schedule-row strong {
    font-size:13px
  }
  .schedule-row p {
    font-size:11px
  }
  .doc-body {
    gap:20px
  }
  .doc-head .caption {
    font-size:10px
  }
  .demo-explanation {
    font-size:13px
  }
  .demo-nav {
    margin-top:24px
  }
  .demo-nav .caption {
    font-size:10px;
    max-width:240px
  }
  .editorial {
    grid-template-columns:1fr;
    gap:35px
  }
  .field-photo {
    aspect-ratio:1.15
  }
  .field-slip {
    margin-top:10px;
    padding:10px 0 0;
    gap:10px
  }
  .editorial .lead {
    font-size:17px
  }
  .plain-list {
    margin:22px 0
  }
  .care-band {
    padding-block:60px
  }
  .care-grid {
    grid-template-columns:1fr;
    gap:38px
  }
  .care-grid h2 {
    font-size:39px
  }
  .care-grid .overline {
    margin-bottom:17px
  }
  .care-grid p {
    margin-top:20px
  }
  .care-console {
    box-shadow:8px 8px 0 #10252e
  }
  .care-console .care-action p {
    margin-top:4px
  }
  .owner-top {
    display:block;
    margin-bottom:30px
  }
  .owner-top p {
    margin-top:22px;
    max-width:520px
  }
  .owner-board {
    grid-template-columns:1fr
  }
  .owner-questions {
    padding:24px;
    border:0;
    border-bottom:1px solid var(--line)
  }
  .owner-questions .overline {
    margin-bottom:7px
  }
  .owner-question {
    padding:12px 0;
    font-size:14px
  }
  .owner-answer {
    padding:27px 24px;
    min-height:330px
  }
  .promise-line {
    grid-template-columns:1fr;
    gap:23px;
    padding-block:50px
  }
  .closing {
    padding:56px 0
  }
  .closing-inner {
    display:block
  }
  .closing h2 {
    font-size:42px
  }
  .closing p {
    font-size:16px
  }
  .closing .btn {
    margin-top:27px
  }
  .footer-top {
    display:block
  }
  .footer-links {
    margin-top:35px;
    gap:48px
  }
  .footer-bottom {
    font-size:9px;
    margin-top:30px;
    gap:20px
  }
  .page-hero {
    padding:47px 0
  }
  .page-hero h1 {
    font-size:49px
  }
  .page-hero .lead {
    font-size:18px
  }
  .page-hero.split {
    display:block
  }
  .page-hero.split .care-console {
    margin-top:37px
  }
  .page-hero.split h1 {
    font-size:49px
  }
  .product-index {
    gap:13px 20px
  }
  .product-index a {
    font-size:12px
  }
  .feature-row,.feature-row.reverse {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:30px;
    padding-block:55px
  }
  .feature-row.reverse .feature-copy,.feature-row.reverse .feature-art {
    order:initial
  }
  .feature-row h2 {
    font-size:36px
  }
  .feature-row .lead {
    font-size:17px
  }
  .care-options {
    grid-template-columns:1fr;
    gap:30px;
    margin-top:35px
  }
  .care-options h3 {
    font-size:24px
  }
  .owner-section .actions {
    margin-top:24px
  }
  .price-layout {
    grid-template-columns:1fr;
    gap:45px;
    padding:0 0 60px
  }
  .price-calc {
    padding:27px
  }
  .price-total {
    font-size:56px
  }
  .price-input {
    gap:12px
  }
  .price-input label {
    font-size:13px
  }
  .faq summary {
    font-size:17px
  }
  .faq details p {
    font-size:15px;
    padding-right:20px
  }
  .onboard-steps li {
    grid-template-columns:35px 1fr;
    gap:18px;
    padding:30px 0
  }
  .onboard-steps p {
    grid-column:2
  }
  .onboard-steps h3 {
    font-size:23px
  }
  .walkthrough-layout {
    grid-template-columns:1fr;
    gap:38px;
    padding:45px 0 65px
  }
  .walkthrough-layout h1 {
    font-size:47px
  }
  .booking-panel {
    padding:27px
  }
  .sample-page {
    margin:28px 20px;
    padding:25px
  }
  .sample-page h1 {
    font-size:35px
  }
  .print-controls {
    margin:25px 20px 0
  }
  .print-controls .text-link {
    font-size:12px
  }
  .sample-page .fact-row {
    font-size:12px
  }
  .business-examples {
    grid-template-columns:1fr;
    gap:40px;
    padding:45px 0
  }
  .business-examples h3 {
    font-size:26px
  }
  .prose p {
    font-size:17px
  }
  .reconcile {
    font-size:12px
  }
  .reconcile th,.reconcile td {
    padding:13px 8px
  }
  .about-signoff {
    font-size:21px
  }
  .quote-large {
    font-size:28px
  }
}
@media(max-width:370px) {
  :root {
    --gutter:18px
  }
  .brand {
    font-size:20px;
    gap:7px
  }
  .header-inner {
    gap:9px
  }
  .header-cta {
    padding:8px 9px
  }
  .hero h1 {
    font-size:46px
  }
  .actions {
    gap:18px
  }
  .btn {
    gap:15px;
    padding-inline:19px
  }
  .territory-note {
    left:36%;
    bottom:2%
  }
  .hero-floor {
    display:block
  }
  .hero-floor .services {
    flex-direction:row;
    gap:14px;
    margin-top:15px
  }
  .fact-row {
    gap:12px;
    font-size:12px
  }
  .schedule-row {
    grid-template-columns:45px 1fr
  }
  .schedule-row .crew {
    display:none
  }
  .screen {
    padding:17px
  }
  .screen-head h3 {
    font-size:16px
  }
  .doc-body {
    grid-template-columns:1fr
  }
  .doc-body p {
    font-size:11px
  }
  .mini-bar {
    grid-template-columns:75px 1fr 55px;
    gap:8px
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*:before,*:after {
    animation:none!important;
    transition:none!important
  }
}
@media print {
  .site-header,.site-footer,.preview-ribbon,.print-controls,.closing {
    display:none!important
  }
  body {
    background:white;
    font-size:12px
  }
  .sample-page {
    border:0;
    margin:0;
    max-width:none;
    padding:0
  }
  .sample-page h1 {
    margin-top:25px
  }
  .sample-page .sample-label {
    font-size:9px
  }
  a {
    text-decoration:none
  }
  .sample-page {
    break-inside:avoid
  }
}
/* Keep intrinsic HTML dimensions as layout hints, not fixed rendered heights. */
img {
  height:auto
}
.field-photo {
  width:100%;
  height:auto
}
.care-reading .unit {
  font-size:24px;
  color:inherit
}
.territory {
  isolation:auto;
  mix-blend-mode:multiply
}
@media(max-width:700px) {
  .demo-nav {
    align-items:flex-start;
    gap:18px
  }
  .demo-nav .text-link {
    max-width:210px;
    font-size:13px
  }
  .demo-nav button {
    font-size:12px;
    flex-shrink:0
  }
  .care-console .screen-head {
    align-items:flex-start
  }
  .care-console .status {
    white-space:normal;
    max-width:86px
  }
  .care-reading {
    gap:10px
  }
  .care-reading>span {
    font-size:11px
  }
}
@media(max-width:370px) {
  .demo-nav {
    flex-direction:column
  }
  .header-cta {
    padding-inline:9px;
    gap:0
  }
  .menu-toggle {
    width:35px;
    flex:none
  }
  .header-inner>.brand {
    font-size:19px
  }
}
.mobile-label {
  display:none
}
@media(max-width:700px) {
  .header-cta .desktop-label {
    display:none
  }
  .header-cta .mobile-label {
    display:inline
  }
  .header-cta {
    order:2;
    white-space:nowrap
  }
  .menu-toggle {
    order:3;
    flex:none
  }
  .main-nav {
    order:4
  }
  .price-layout>.price-calc {
    order:-1
  }
  .price-calc h3 {
    font-size:21px;
    line-height:1.4
  }
  .hero-floor p br {
    display:none
  }
}
html {
  scroll-behavior:auto
}
.enter {
  animation:none
}
.asset-badge {
  width:100px;
  height:100px;
  flex:none;
  background:var(--blue-soft);
  color:var(--blue);
  padding:12px 16px;
  font:12px/1.4 PlexMono,monospace
}
.asset-badge strong {
  display:block;
  font:48px/1.2 General,Arial,sans-serif;
  letter-spacing:-.04em
}
@media (min-width:701px) and (max-width:1000px) {
  .territory {
    margin-left:0;
    margin-right:-70px;
  }
}
