@font-face {
  font-family:Inter;
  src:url('../fonts/InterVariable.woff2') format('woff2');
  font-style:normal;
  font-weight:100 900;
  font-display:swap;
}

@view-transition {
  navigation:auto;
}

:root {
  --green:#008757;
  --dark:#006b45;
  --ink:#0d1321;
  --muted:#58616b;
  --surface:#f4f5f7;
  --mint:#00a571;
  --pale:#eaf5ef;
  --line:#e1e5e4;
  --radius:24px;
  --shadow:0 20px 65px -30px #173c3040;
  --width:1200px;
}

* {
  box-sizing:border-box;
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:110px;
}

body {
  margin:0;
  background:white;
  color:var(--ink);
  font:400 16px/1.65 Manrope,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}

a {
  color:inherit;
  text-underline-offset:4px;
}

img,svg {
  display:block;
  max-width:100%;
}

button,input,select,textarea {
  font:inherit;
}

button,a,input,summary,select,textarea {
  -webkit-tap-highlight-color:transparent;
}

button,summary {
  cursor:pointer;
}

a,button,summary,input,select,textarea {
  outline-offset:5px;
}

:focus-visible {
  outline:3px solid var(--dark);
}

::selection {
  background:#c8eadc;
}

h1,h2,h3,h4,p {
  margin:0;
}

h1,h2,h3 {
  font-weight:650;
  line-height:1.12;
  letter-spacing:-.045em;
}

h1 {
  font-size:clamp(2.8rem,5.1vw,4.75rem);
}

h2 {
  font-size:clamp(2rem,3.5vw,3rem);
}

h3 {
  font-size:1.4rem;
  letter-spacing:-.025em;
}

p {
  color:var(--muted);
}

p+p {
  margin-top:1rem;
}

ul {
  padding-left:1.25rem;
}

strong {
  font-weight:650;
}

section[id],h2[id],h3[id] {
  scroll-margin-top:110px;
}

.container {
  width:min(var(--width),calc(100% - 64px));
  margin-inline:auto;
}

.narrow {
  width:min(760px,calc(100% - 48px));
  margin-inline:auto;
}

.section {
  padding-block:92px;
}

.section-soft {
  background:var(--surface);
}

.section-line {
  border-top:1px solid var(--line);
}

.eyebrow,.kicker {
  display:block;
  font-size:.78rem;
  font-weight:650;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--dark);
  margin-bottom:20px;
}

.lede {
  font-size:1.17rem;
  line-height:1.65;
  max-width:520px;
}

.muted {
  color:var(--muted);
}

.small {
  font-size:.875rem;
}

.green {
  color:var(--green);
}

.icon {
  width:24px;
  height:24px;
  flex-shrink:0;
  fill:none;
  stroke:currentColor;
  stroke-width:1.6;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.skip-link {
  position:fixed;
  top:-100px;
  left:20px;
  z-index:99;
  padding:12px 20px;
  background:var(--ink);
  color:white;
  border-radius:10px;
}

.skip-link:focus {
  top:12px;
}

.site-header {
  position:sticky;
  top:0;
  z-index:30;
  background:#ffffffed;
  backdrop-filter:blur(18px);
  border-bottom:1px solid var(--line);
}

.nav-shell {
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:88px;
  gap:24px;
}

.brand {
  display:flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
  flex-shrink:0;
}

.brand img {
  width:47px;
  height:47px;
  object-fit:contain;
}

.brand-name {
  font-size:1rem;
  font-weight:650;
  letter-spacing:-.04em;
  line-height:1.25;
}

.brand-name small {
  display:block;
  font-size:.75rem;
  font-weight:450;
  letter-spacing:.01em;
  color:var(--muted);
  margin-top:2px;
}

.primary-nav {
  display:flex;
  align-items:center;
  gap:25px;
  font-size:.84rem;
  font-weight:550;
}

.primary-nav>a {
  padding-block:33px;
  text-decoration:none;
  position:relative;
  white-space:nowrap;
}

.primary-nav>a:after {
  content:'';
  height:2px;
  position:absolute;
  bottom:22px;
  inset-inline:0;
  background:var(--green);
  transform:scaleX(0);
  transition:transform .2s;
}

.primary-nav>a:hover:after,.primary-nav>a[aria-current]:after {
  transform:scaleX(1);
}

.primary-nav>a[aria-current] {
  color:var(--dark);
}

.nav-actions {
  display:flex;
  align-items:center;
  gap:16px;
}

.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  min-height:50px;
  border-radius:100px;
  padding:13px 23px;
  border:1px solid transparent;
  font-size:.9rem;
  font-weight:600;
  text-decoration:none;
  line-height:1.3;
  transition:transform .22s,background .22s,box-shadow .22s;
}

.btn:hover {
  transform:translateY(-2px);
}

.btn:active {
  transform:translateY(0) scale(.98);
}

.btn-primary {
  background:var(--green);
  color:white;
}

.btn-primary:hover {
  background:var(--dark);
  box-shadow:0 8px 20px #00875720;
}

.btn-secondary {
  background:white;
  border-color:var(--line);
}

.btn-secondary:hover {
  border-color:#a5b9af;
  background:#f8faf9;
}

.btn-small {
  min-height:42px;
  padding:11px 19px;
  font-size:.82rem;
}

.btn-light {
  background:white;
  color:var(--dark);
}

.btn .icon {
  width:18px;
  height:18px;
}

.actions {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:28px;
}

.text-link {
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--dark);
  font-weight:600;
  text-decoration:none;
  font-size:.92rem;
}

.text-link .icon {
  width:18px;
  transition:transform .2s;
}

.text-link:hover .icon {
  transform:translateX(4px);
}

.mobile-menu {
  display:none;
}

.mobile-menu summary {
  list-style:none;
  padding:10px;
  border:1px solid var(--line);
  border-radius:50%;
}

.mobile-menu summary::-webkit-details-marker {
  display:none;
}

.mobile-menu[open] summary {
  background:var(--pale);
}

.mobile-panel {
  position:absolute;
  top:100%;
  inset-inline:0;
  background:white;
  padding:18px 24px 28px;
  border-bottom:1px solid var(--line);
  box-shadow:0 15px 20px #0d13210a;
}

.mobile-panel a {
  display:block;
  text-decoration:none;
  padding:12px 8px;
  font-weight:550;
}

.mobile-panel a[aria-current] {
  color:var(--dark);
}

.hero {
  display:grid;
  grid-template-columns:1fr 1.04fr;
  align-items:center;
  gap:68px;
  padding-block:68px 72px;
}

.hero-copy h1 {
  margin-bottom:24px;
}

.hero-copy .footnote {
  font-size:.81rem;
  margin-top:19px;
}

.hero-copy .eyebrow {
  display:flex;
  align-items:center;
  gap:9px;
}

.dot {
  display:inline-block;
  width:7px;
  height:7px;
  background:var(--green);
  border-radius:50%;
  flex-shrink:0;
}

.hero-visual {
  background:var(--pale);
  border-radius:34px;
  padding:32px;
  min-height:480px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  position:relative;
  overflow:hidden;
}

.visual-label {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  font-size:.75rem;
  color:#52625a;
  margin-bottom:24px;
}

.visual-label span:last-child {
  display:flex;
  align-items:center;
  gap:7px;
}

.conversation {
  background:white;
  border:1px solid #d9e8df;
  border-radius:22px;
  box-shadow:var(--shadow);
  overflow:hidden;
  transform:rotate(-2deg);
  transition:transform .5s;
}

.hero-visual:hover .conversation {
  transform:rotate(0);
}

.conversation-head {
  display:flex;
  align-items:center;
  gap:13px;
  padding:22px;
  border-bottom:1px solid var(--line);
}

.avatar {
  display:flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  background:var(--pale);
  color:var(--dark);
  border-radius:14px;
  flex-shrink:0;
  font-size:.85rem;
  font-weight:650;
}

.conversation-head strong {
  display:block;
  font-size:.95rem;
}

.conversation-head small {
  display:block;
  font-size:.75rem;
  color:var(--muted);
}

.wave {
  height:25px;
  display:flex;
  gap:3px;
  align-items:center;
  margin-left:auto;
  color:var(--green);
}

.wave i {
  height:12px;
  width:3px;
  border-radius:8px;
  background:currentColor;
  animation:wave 1s ease-in-out 4 alternate;
}

.wave i:nth-child(2n) {
  height:23px;
  animation-delay:.12s;
}

.wave i:nth-child(3n) {
  height:17px;
  animation-delay:.3s;
}

.chat {
  padding:24px;
  display:grid;
  gap:15px;
  font-size:.88rem;
  line-height:1.5;
}

.bubble {
  padding:13px 16px;
  max-width:90%;
  border-radius:15px;
  background:var(--surface);
  color:var(--ink);
}

.bubble small {
  display:block;
  font-size:.75rem;
  color:var(--muted);
  margin-bottom:4px;
}

.bubble.caller {
  margin-left:auto;
  background:#e9f5ef;
}

.bubble:nth-child(2) {
  animation:arrive .65s .15s both;
}

.bubble:nth-child(3) {
  animation:arrive .65s .35s both;
}

.outcome {
  margin:0 20px 20px;
  padding:13px 15px;
  border-radius:12px;
  background:#f0f8f3;
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--dark);
  font-size:.81rem;
}

.outcome .icon {
  width:19px;
}

.visual-caption {
  position:relative;
  display:flex;
  gap:10px;
  justify-content:center;
  align-items:center;
  margin-top:25px;
  font-size:.77rem;
  color:#40594d;
}

.visual-caption .icon {
  width:17px;
  height:17px;
}

.hero-note {
  display:flex;
  gap:24px;
  align-items:center;
  padding:24px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  color:var(--muted);
  font-size:.87rem;
}

.hero-note p {
  margin:0;
}

.hero-note img {
  width:92px;
  height:auto;
}

.hero-note .note-end {
  margin-left:auto;
  color:var(--dark);
}

.section-head {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:32px;
  margin-bottom:36px;
}

.section-head p {
  max-width:390px;
}

.section-head h2 {
  max-width:610px;
}

.grid-2,.grid-3,.grid-4 {
  display:grid;
  gap:22px;
}

.grid-2 {
  grid-template-columns:repeat(2,minmax(0,1fr));
}

.grid-3 {
  grid-template-columns:repeat(3,minmax(0,1fr));
}

.grid-4 {
  grid-template-columns:repeat(4,minmax(0,1fr));
}

.product-card {
  display:flex;
  flex-direction:column;
  text-decoration:none;
  border-radius:var(--radius);
  border:1px solid var(--line);
  overflow:hidden;
  background:white;
  transition:transform .28s,box-shadow .28s;
}

.product-card:hover {
  transform:translateY(-5px);
  box-shadow:var(--shadow);
}

.product-art {
  height:220px;
  padding:26px;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  background:var(--surface);
  overflow:hidden;
}

.product-card:nth-child(1) .product-art {
  background:var(--pale);
}

.product-card:nth-child(2) .product-art {
  background:#eef1fa;
}

.product-card:nth-child(4) .product-art {
  background:#ecf1f2;
}

.product-copy {
  padding:25px;
  display:flex;
  flex-direction:column;
  flex:1;
}

.product-copy h3 {
  font-size:1.22rem;
  margin-bottom:10px;
}

.product-copy p {
  font-size:.9rem;
  margin-bottom:21px;
}

.product-copy .text-link {
  margin-top:auto;
  font-size:.84rem;
}

.mini-call {
  background:white;
  border-radius:17px;
  padding:21px;
  width:100%;
  box-shadow:0 8px 30px #183f3010;
}

.mini-call strong {
  font-size:.85rem;
}

.mini-call>div {
  display:flex;
  align-items:center;
  gap:9px;
}

.mini-call .wave {
  margin:18px 0 0;
  justify-content:center;
}

.mini-call p {
  font-size:.75rem;
  text-align:center;
  margin-top:10px;
}


.pulse-art {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:14px;
}

.pulse-art strong {
  letter-spacing:-.05em;
  font-size:1.5rem;
}

.route-mini {
  display:grid;
  gap:10px;
  width:100%;
  text-align:center;
}

.route-mini span {
  display:block;
  background:white;
  border:1px solid #e1e5e4;
  border-radius:10px;
  padding:8px 12px;
  font-size:.78rem;
}

.route-mini .route-branches {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.route-mini>.icon {
  margin:auto;
  color:var(--green);
  height:20px;
}

.mini-estate {
  width:100%;
  background:white;
  border-radius:13px;
  box-shadow:0 8px 30px #173c3015;
  padding:16px;
}

.mini-estate strong {
  font-size:.85rem;
}

.mini-estate .mini-line {
  height:7px;
  background:#e6eee9;
  border-radius:10px;
  margin-top:14px;
}

.mini-estate .mini-line:last-child {
  width:65%;
  background:#c3ddd0;
}

.mini-estate small {
  display:block;
  color:var(--dark);
  font-size:.75rem;
  margin-top:14px;
}

.feature {
  padding:26px 0;
  border-top:1px solid var(--line);
}

.feature>.icon {
  color:var(--green);
  margin-bottom:20px;
  width:27px;
  height:27px;
}

.feature h3 {
  font-size:1.17rem;
  margin-bottom:11px;
}

.feature p {
  font-size:.94rem;
}

.feature-grid {
  gap:15px 36px;
}

.step {
  padding-right:28px;
}

.step-num {
  display:flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border-radius:50%;
  border:1px solid #cbded3;
  background:white;
  color:var(--dark);
  font-size:.9rem;
  font-weight:600;
  margin-bottom:24px;
}

.step h3 {
  margin-bottom:12px;
  font-size:1.25rem;
}

.step p {
  font-size:.95rem;
}

.split {
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:80px;
}

.split h2 {
  margin-bottom:22px;
}

.split p {
  max-width:480px;
}

.check-list {
  list-style:none;
  padding:0;
  margin:26px 0;
  display:grid;
  gap:13px;
  font-size:.94rem;
}

.check-list li {
  display:flex;
  gap:10px;
  align-items:flex-start;
}

.check-list .icon {
  width:19px;
  height:23px;
  color:var(--green);
}

.partner-band {
  background:var(--pale);
  padding:56px;
  border-radius:30px;
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:56px;
}

.partner-band h2 {
  margin-bottom:22px;
}

.partner-band p {
  font-size:1rem;
}

.partner-stack {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}

.partner-tile {
  padding:26px;
  border:1px solid #d2e4d9;
  border-radius:18px;
  background:#ffffffa8;
  min-height:132px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}

.partner-tile strong {
  font-size:1rem;
  letter-spacing:-.02em;
}

.partner-tile .icon {
  color:var(--dark);
  margin-bottom:15px;
}

.cta-band {
  background:var(--green);
  color:white;
  border-radius:28px;
  padding:48px 54px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:36px;
}

.cta-band h2 {
  font-size:clamp(1.8rem,3vw,2.6rem);
  max-width:700px;
}

.cta-band p {
  color:#e4f3ed;
  margin-top:13px;
}

.cta-band .btn {
  flex-shrink:0;
}

.site-footer {
  padding:60px 0 25px;
  border-top:1px solid var(--line);
}

.footer-grid {
  display:grid;
  grid-template-columns:1.6fr 1fr 1fr 1fr;
  gap:55px;
}

.footer-brand p {
  font-size:.85rem;
  max-width:245px;
  margin-top:20px;
}

.footer-col h2 {
  font-size:.83rem;
  letter-spacing:0;
  margin:7px 0 20px;
}

.footer-col a {
  display:block;
  color:var(--muted);
  font-size:.83rem;
  text-decoration:none;
  margin:11px 0;
}

.footer-col a:hover {
  color:var(--green);
}

.footer-bottom {
  margin-top:46px;
  padding-top:22px;
  border-top:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  gap:20px;
  font-size:.75rem;
  color:var(--muted);
}

.page-hero {
  padding:72px 0 58px;
}

.page-hero h1 {
  max-width:840px;
  margin-bottom:24px;
}

.page-hero .lede {
  max-width:640px;
}

.center {
  text-align:center;
}

.center .lede,.center h1 {
  margin-inline:auto;
}

.center .actions {
  justify-content:center;
}

.product-label {
  display:flex;
  align-items:center;
  gap:11px;
  margin-bottom:24px;
  font-weight:600;
}

.product-label img {
  width:33px;
  border-radius:9px;
}

.app-preview {
  background:white;
  border:1px solid #dce0ea;
  border-radius:25px;
  width:100%;
  max-width:330px;
  margin:auto;
  padding:23px;
  box-shadow:var(--shadow);
}

.app-preview-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-bottom:23px;
}

.app-preview-header img {
  width:80px;
}

.app-preview h3 {
  font-size:1.65rem;
  margin:8px 0 24px;
}

.app-status {
  display:inline-flex;
  gap:7px;
  align-items:center;
  color:var(--dark);
  font-size:.75rem;
  border:1px solid var(--line);
  border-radius:30px;
  padding:3px 8px;
}

.app-tabs {
  display:flex;
  justify-content:space-between;
  border-bottom:1px solid var(--line);
  font-size:.75rem;
  padding-bottom:12px;
  color:var(--muted);
}

.app-tabs strong {
  color:var(--dark);
}

.call-row {
  display:flex;
  gap:12px;
  align-items:center;
  padding:18px 0;
  border-bottom:1px solid var(--line);
}

.call-row strong {
  font-size:.82rem;
  display:block;
}

.call-row small {
  font-size:.75rem;
  color:var(--muted);
  display:block;
}

.call-row>.icon {
  margin-left:auto;
  color:var(--green);
  width:18px;
}

.call-row .avatar {
  width:35px;
  height:35px;
  font-size:.75rem;
}

.app-nav {
  display:flex;
  justify-content:space-around;
  margin-top:23px;
  color:var(--muted);
}

.app-nav>div {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:5px;
  font-size:.75rem;
}

.app-nav .selected {
  color:var(--dark);
}

.app-nav .icon {
  width:20px;
  height:20px;
}

.pulse-visual {
  background:#edf1f9;
}

.store-badges {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:27px;
}

.store-badge {
  background:var(--ink);
  color:white;
  border-radius:11px;
  padding:10px 18px;
  min-width:143px;
  line-height:1.15;
  display:flex;
  align-items:center;
  gap:11px;
  text-decoration:none;
}

.store-badge small {
  font-size:.75rem;
  display:block;
  color:#dbe0e7;
  margin-bottom:4px;
}

.store-badge strong {
  font-weight:550;
  font-size:.96rem;
}

.store-badge .icon {
  width:25px;
  height:25px;
}

.store-note {
  font-size:.77rem;
  margin-top:12px;
}

.vertical-card {
  border:1px solid var(--line);
  border-radius:20px;
  padding:28px;
}

.vertical-card .icon {
  color:var(--green);
  margin-bottom:24px;
}

.vertical-card h3 {
  font-size:1.18rem;
  margin-bottom:12px;
}

.vertical-card p {
  font-size:.9rem;
}

.vertical-card .example {
  font-size:.8rem;
  border-top:1px solid var(--line);
  padding-top:18px;
  margin-top:22px;
  color:var(--dark);
}

.faq {
  max-width:860px;
  margin-inline:auto;
}

.faq>h2 {
  margin-bottom:30px;
}

.faq details {
  border-top:1px solid var(--line);
}

.faq details:last-child {
  border-bottom:1px solid var(--line);
}

.faq summary {
  font-size:1.05rem;
  font-weight:550;
  list-style:none;
  display:flex;
  gap:20px;
  justify-content:space-between;
  padding:24px 0;
}

.faq summary::-webkit-details-marker {
  display:none;
}

.faq summary:after {
  content:'+';
  color:var(--green);
  font-size:1.5rem;
  font-weight:400;
  line-height:1;
}

.faq details[open] summary:after {
  content:'−';
}

.faq details p {
  padding:0 35px 24px 0;
  max-width:750px;
  font-size:.96rem;
}

.faq details p+p {
  margin-top:-10px;
}

.routing-board {
  width:100%;
  background:white;
  border:1px solid #dbe6df;
  border-radius:20px;
  padding:28px;
}

.routing-board .board-title {
  font-size:.9rem;
  display:flex;
  gap:10px;
  align-items:center;
  padding-bottom:23px;
  margin-bottom:22px;
  border-bottom:1px solid var(--line);
}

.route-node {
  border:1px solid var(--line);
  border-radius:12px;
  display:flex;
  align-items:center;
  gap:12px;
  padding:15px;
  font-size:.85rem;
}

.route-node .icon {
  width:18px;
  color:var(--green);
}

.route-node.active {
  background:var(--pale);
  border-color:#b5d8c6;
}

.route-arrow {
  height:27px;
  display:grid;
  place-items:center;
  color:var(--green);
  font-size:1.15rem;
}

.route-fork {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.route-fork .route-node {
  font-size:.76rem;
  padding:12px;
}

.route-small {
  text-align:center;
  font-size:.75rem;
  margin-top:20px;
  color:var(--muted);
}

.estate-visual {
  background:#eef1f3;
}

.estate-window {
  background:white;
  border:1px solid #dde2e4;
  border-radius:20px;
  box-shadow:var(--shadow);
  overflow:hidden;
}

.estate-top {
  padding:20px 23px;
  border-bottom:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  align-items:center;
}

.estate-top strong {
  font-size:1rem;
  letter-spacing:-.04em;
}

.estate-top small {
  font-size:.75rem;
  color:var(--muted);
}

.estate-body {
  padding:23px;
}

.estate-heading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
}

.estate-heading h3 {
  font-size:1.08rem;
}

.estate-chip {
  font-size:.75rem;
  color:var(--dark);
  background:var(--pale);
  border-radius:20px;
  padding:4px 9px;
}

.estate-tiles {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:22px;
}

.estate-tiles>div {
  border:1px solid var(--line);
  padding:16px;
  border-radius:12px;
  font-size:.75rem;
}

.estate-tiles .icon {
  width:20px;
  color:var(--green);
  margin-bottom:13px;
}

.estate-domain {
  display:flex;
  align-items:center;
  gap:8px;
  border-top:1px solid var(--line);
  margin-top:22px;
  padding-top:18px;
  color:var(--muted);
  font-size:.75rem;
}

.estate-domain .icon {
  width:15px;
  height:15px;
}

.compare-wrap {
  border:1px solid var(--line);
  border-radius:22px;
  overflow:auto;
}

.compare {
  width:100%;
  border-collapse:collapse;
  text-align:left;
  min-width:650px;
  font-size:.92rem;
}

.compare caption {
  text-align:left;
  padding:22px 26px;
  font-weight:600;
  background:var(--surface);
}

.compare th,.compare td {
  padding:20px 26px;
  border-bottom:1px solid var(--line);
  vertical-align:top;
}

.compare thead th {
  font-weight:600;
  background:white;
}

.compare tbody th {
  font-weight:500;
  width:29%;
}

.compare td {
  color:var(--muted);
  width:35.5%;
}

.compare tr>*:last-child {
  background:#f0f8f3;
  color:#254336;
}

.compare tr:last-child>* {
  border-bottom:0;
}

.compare .col-title {
  display:block;
  font-size:1.08rem;
  letter-spacing:-.025em;
  margin-bottom:7px;
}

.compare thead small {
  font-weight:400;
  font-size:.8rem;
}

.table-hint {
  display:none;
  font-size:.8rem;
  margin-bottom:12px;
}

.pricing-card {
  border:1px solid var(--line);
  border-radius:24px;
  padding:30px;
  display:flex;
  flex-direction:column;
  background:white;
}

.pricing-card.featured {
  border:2px solid var(--green);
  position:relative;
}

.pricing-card .label {
  display:inline-block;
  font-size:.75rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--dark);
  margin-bottom:22px;
}

.pricing-card h2 {
  font-size:1.65rem;
  margin-bottom:14px;
}

.pricing-card>p {
  font-size:.92rem;
}

.pricing-signal {
  font-size:1.4rem;
  letter-spacing:-.035em;
  font-weight:600;
  margin:29px 0 7px;
  line-height:1.25;
}

.pricing-card .check-list {
  font-size:.89rem;
  flex:1;
  margin:25px 0 30px;
}

.pricing-card .btn {
  width:100%;
}

.price-note {
  font-size:.82rem;
  margin-top:22px;
}

.contact-layout {
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:80px;
  padding-block:70px 90px;
  align-items:start;
}

.contact-copy {
  padding-top:12px;
}

.contact-copy h1 {
  font-size:clamp(2.8rem,4.5vw,4rem);
  margin-bottom:25px;
}

.contact-copy .contact-detail {
  margin-top:35px;
  padding-top:25px;
  border-top:1px solid var(--line);
}

.contact-detail strong {
  display:block;
  font-size:.85rem;
  margin-bottom:7px;
}

.contact-detail a {
  color:var(--dark);
  font-size:.95rem;
  overflow-wrap:anywhere;
}

.lead-form {
  padding:33px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:24px;
}

.lead-form h2 {
  font-size:1.5rem;
  margin-bottom:9px;
}

.lead-form>p {
  font-size:.86rem;
  margin-bottom:26px;
}

.form-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px 16px;
}

.field {
  min-width:0;
}

.field label {
  display:block;
  font-size:.8rem;
  font-weight:550;
  margin-bottom:7px;
}

.field label .muted {
  font-weight:400;
}

.field-full {
  grid-column:1/-1;
}

.field input,.field select,.field textarea {
  width:100%;
  min-height:48px;
  background:white;
  border:1px solid #b9c3c0;
  border-radius:9px;
  padding:10px 12px;
  color:var(--ink);
  font-size:1rem;
  transition:border-color .2s,box-shadow .2s;
}

.field textarea {
  min-height:125px;
  resize:vertical;
}

.field input:hover,.field select:hover,.field textarea:hover {
  border-color:#708b7e;
}

.field input:focus,.field select:focus,.field textarea:focus {
  border-color:var(--green);
  box-shadow:0 0 0 3px #00875710;
}

.field .check-field {
  display:flex;
  align-items:flex-start;
  gap:11px;
  font-size:.77rem;
  color:var(--muted);
  font-weight:400;
  line-height:1.55;
}

.check-field input {
  width:18px;
  height:18px;
  min-height:18px;
  margin:3px 0 0;
  accent-color:var(--green);
  flex-shrink:0;
}

.check-field a {
  color:var(--dark);
}

.form-trap {
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip-path:inset(50%);
}

.form-footer {
  margin-top:21px;
}

.form-footer .btn {
  width:100%;
}

.form-footer small {
  display:block;
  font-size:.75rem;
  margin-top:14px;
  color:var(--muted);
}

.form-status {
  display:none;
}

.form-status.is-visible {
  display:block;
  margin-top:20px;
  padding:16px;
  border-radius:12px;
  font-size:.9rem;
}

.form-status.is-success {
  background:#e0f0e7;
  color:#064e33;
}

.form-status.is-error {
  background:#ffeae7;
  color:#8a271d;
}

.btn:disabled {
  cursor:wait;
  opacity:.65;
  transform:none;
}

.legal-hero {
  padding-block:65px 45px;
}

.legal-hero h1 {
  font-size:clamp(2.5rem,5vw,4rem);
  margin-bottom:20px;
}

.legal-layout {
  display:grid;
  grid-template-columns:210px minmax(0,760px);
  gap:65px;
  padding-bottom:90px;
}

.legal-nav {
  position:sticky;
  top:120px;
  align-self:start;
  display:grid;
  gap:10px;
  font-size:.85rem;
}

.legal-nav a {
  padding-block:5px;
  text-decoration:none;
  color:var(--muted);
}

.legal-nav a:hover {
  color:var(--dark);
}

.legal h2 {
  font-size:1.5rem;
  margin:35px 0 16px;
  letter-spacing:-.025em;
}

.legal h3 {
  font-size:1.15rem;
  margin:24px 0 12px;
}

.legal p,.legal li {
  font-size:.96rem;
  color:var(--muted);
}

.legal a {
  color:var(--dark);
}

.legal-notice {
  padding:20px;
  background:var(--pale);
  border-radius:14px;
  font-size:.88rem;
}

.not-found {
  padding:110px 0;
  text-align:center;
  min-height:60vh;
}

.not-found p {
  margin:23px auto;
  max-width:510px;
}

.about-facts {
  display:grid;
  gap:22px;
}

.about-facts>div {
  padding-bottom:22px;
  border-bottom:1px solid var(--line);
}

.about-facts strong {
  display:block;
  margin-bottom:7px;
  font-size:1rem;
}

.about-facts p {
  font-size:.9rem;
}

.app-wordmark {
  width:135px;
  margin-bottom:24px;
}

@keyframes wave {
  from {
    transform:scaleY(.55);
  }
  to {
    transform:scaleY(1);
  }
}

@keyframes arrive {
  from {
    opacity:0;
    transform:translateY(9px);
  }
  to {
    opacity:1;
    transform:translateY(0);
  }
}

@media(min-width:1000px) {
  .hero-copy {
    animation:arrive .7s both;
  }
  .hero-visual {
    animation:arrive .8s .1s both;
  }
}

@media(max-width:1120px) {
  .primary-nav {
    gap:17px;
    font-size:.78rem;
  }
  .brand-name {
    display:none;
  }
  .hero {
    gap:40px;
  }
  .hero-visual {
    padding:25px;
  }
  .grid-4 {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .product-art {
    height:210px;
  }
  .split {
    gap:45px;
  }
  .contact-layout {
    gap:45px;
  }
}

@media(max-width:850px) {
  .primary-nav {
    display:none;
  }
  .mobile-menu {
    display:block;
  }
  .brand-name {
    display:block;
  }
  .nav-shell {
    min-height:76px;
  }
  .hero {
    grid-template-columns:1fr 1fr;
    gap:30px;
    padding-block:48px;
  }
  .hero h1 {
    font-size:3.1rem;
  }
  .hero-visual {
    padding:20px;
    min-height:420px;
  }
  .chat {
    padding:17px;
    font-size:.8rem;
  }
  .conversation-head {
    padding:17px;
  }
  .visual-label {
    font-size:.75rem;
  }
  .grid-3 {
    gap:20px;
  }
  .pricing-card {
    padding:23px;
  }
  .pricing-signal {
    font-size:1.2rem;
  }
  .partner-band {
    padding:35px;
    gap:32px;
  }
  .partner-tile {
    padding:18px;
  }
  .footer-grid {
    gap:30px;
  }
  .section {
    padding-block:65px;
  }
  .contact-layout {
    grid-template-columns:1fr;
    gap:38px;
  }
  .contact-copy {
    max-width:640px;
  }
  .contact-copy .contact-detail {
    display:inline-block;
    margin-right:35px;
  }
  .legal-layout {
    grid-template-columns:1fr;
    gap:25px;
  }
  .legal-nav {
    position:static;
    display:flex;
    flex-wrap:wrap;
    gap:5px 20px;
  }
  .lead-form {
    max-width:740px;
  }
}

@media(max-width:650px) {
  .container {
    width:calc(100% - 40px);
  }
  .nav-shell {
    min-height:72px;
    gap:12px;
  }
  .brand img {
    width:39px;
    height:39px;
  }
  .brand-name {
    font-size:.88rem;
  }
  .brand-name small {
    font-size:.75rem;
  }
  .nav-actions {
    gap:10px;
  }
  .nav-actions>.btn {
    font-size:.75rem;
    padding:10px 15px;
    min-height:39px;
  }
  .mobile-menu summary {
    padding:8px;
  }
  .hero {
    grid-template-columns:1fr;
    gap:36px;
    padding-block:40px;
  }
  .hero h1 {
    font-size:clamp(2.8rem,10.4vw,4.3rem);
  }
  .hero-copy .lede {
    font-size:1.05rem;
  }
  .eyebrow,.kicker {
    font-size:.75rem;
    margin-bottom:17px;
  }
  .hero-copy h1 {
    margin-bottom:19px;
  }
  .actions {
    margin-top:24px;
  }
  .hero-visual {
    min-height:0;
    padding:26px 22px;
    border-radius:25px;
  }
  .visual-label {
    font-size:.75rem;
    margin-bottom:20px;
  }
  .chat {
    padding:21px;
    font-size:.84rem;
  }
  .conversation-head {
    padding:19px;
  }
  .visual-caption {
    font-size:.75rem;
  }
  .hero-note {
    gap:17px;
    align-items:center;
    font-size:.77rem;
    padding:20px 0;
  }
  .hero-note img {
    width:80px;
  }
  .hero-note .note-end {
    display:none;
  }
  .section {
    padding-block:55px;
  }
  .section-head {
    display:block;
    margin-bottom:28px;
  }
  .section-head p {
    margin-top:20px;
  }
  .section-head .text-link {
    margin-top:18px;
  }
  .grid-3,.grid-2 {
    grid-template-columns:1fr;
  }
  .grid-4 {
    gap:14px;
  }
  .product-art {
    height:180px;
    padding:17px;
  }
  .product-copy {
    padding:20px;
  }
  .product-copy h3 {
    font-size:1.1rem;
  }
  .product-copy p {
    font-size:.84rem;
  }
  .product-copy .text-link {
    font-size:.79rem;
  }
  .mini-call {
    padding:13px;
  }
  .mini-call strong {
    font-size:.75rem;
  }
  .mini-call p {
    font-size:.75rem;
  }
  .mini-call .avatar {
    width:30px;
    height:30px;
    border-radius:9px;
  }
  .mini-call .icon {
    width:18px;
  }
  .mini-estate {
    padding:13px;
  }
  .route-mini span {
    font-size:.75rem;
    padding:7px 5px;
  }
  .route-mini .route-branches {
    gap:6px;
  }
  .partner-band {
    padding:29px 24px;
    grid-template-columns:1fr;
    gap:33px;
    border-radius:24px;
  }
  .partner-tile {
    min-height:115px;
  }
  .partner-tile strong {
    font-size:.88rem;
  }
  .partner-band h2 {
    font-size:2rem;
  }
  .cta-band {
    display:block;
    padding:31px 27px;
  }
  .cta-band .btn {
    margin-top:25px;
  }
  .cta-band h2 {
    font-size:2rem;
  }
  .cta-band p {
    font-size:.91rem;
  }
  .split {
    grid-template-columns:1fr;
    gap:35px;
  }
  .footer-grid {
    grid-template-columns:1fr 1fr;
    gap:30px;
  }
  .footer-brand {
    grid-column:1/-1;
  }
  .footer-brand p {
    max-width:310px;
  }
  .footer-bottom {
    flex-direction:column;
    gap:8px;
    margin-top:27px;
    font-size:.75rem;
  }
  .site-footer {
    padding-top:40px;
  }
  .footer-col a {
    font-size:.8rem;
    min-height:24px;
  }
  .step {
    padding:0 0 22px;
  }
  .step-num {
    margin-bottom:17px;
  }
  .step h3 {
    font-size:1.25rem;
  }
  .page-hero {
    padding:48px 0 38px;
  }
  .page-hero h1 {
    font-size:2.75rem;
  }
  .page-hero .lede {
    font-size:1.06rem;
  }
  .feature-grid {
    grid-template-columns:1fr 1fr;
    gap:8px 22px;
  }
  .feature h3 {
    font-size:1.06rem;
  }
  .feature p {
    font-size:.87rem;
  }
  .feature>.icon {
    margin-bottom:16px;
  }
  .vertical-card {
    padding:25px;
  }
  .vertical-card .icon {
    margin-bottom:18px;
  }
  .vertical-card .example {
    margin-top:16px;
  }
  .faq summary {
    font-size:.97rem;
    padding-block:21px;
  }
  .faq details p {
    font-size:.9rem;
  }
  .app-preview {
    max-width:300px;
  }
  .app-preview h3 {
    font-size:1.5rem;
  }
  .estate-tiles>div {
    padding:13px;
  }
  .estate-top {
    padding:17px;
  }
  .estate-body {
    padding:20px;
  }
  .estate-top small {
    font-size:.75rem;
  }
  .table-hint {
    display:block;
  }
  .compare {
    font-size:.83rem;
    min-width:600px;
  }
  .compare th,.compare td {
    padding:17px 20px;
  }
  .pricing-card {
    padding:27px;
  }
  .pricing-signal {
    font-size:1.4rem;
    margin-top:22px;
  }
  .contact-layout {
    padding-block:42px 55px;
  }
  .contact-copy h1 {
    font-size:2.8rem;
  }
  .contact-copy .contact-detail {
    margin:25px 20px 0 0;
  }
  .lead-form {
    padding:23px;
  }
  .form-grid {
    grid-template-columns:1fr;
    gap:17px;
  }
  .field-full {
    grid-column:auto;
  }
  .lead-form>p {
    margin-bottom:23px;
  }
  .contact-copy .lede {
    font-size:1.05rem;
  }
  .legal-hero {
    padding-block:45px 30px;
  }
  .legal-layout {
    padding-bottom:55px;
  }
  .legal-nav {
    font-size:.78rem;
  }
  .legal p,.legal li {
    font-size:.9rem;
  }
  .legal h2 {
    font-size:1.3rem;
  }
  .hero .store-badge {
    min-width:137px;
    padding:10px 14px;
  }
  .hero .store-badge strong {
    font-size:.89rem;
  }
}

@media(max-width:370px) {
  .container {
    width:calc(100% - 32px);
  }
  .brand-name {
    display:none;
  }
  .grid-4 {
    grid-template-columns:1fr;
  }
  .product-art {
    height:190px;
  }
  .feature-grid {
    grid-template-columns:1fr;
  }
  .hero h1 {
    font-size:2.65rem;
  }
  .btn {
    padding-inline:19px;
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*:before,*:after {
    animation:none!important;
    transition:none!important;
  }
  ::view-transition-old(root),::view-transition-new(root) {
    animation:none!important;
  }
}

@media(min-width:651px) and (max-width:850px) {
  .hero {
    grid-template-columns:1fr;
    gap:40px;
  }
  .hero-copy {
    max-width:620px;
  }
  .hero h1 {
    font-size:3.6rem;
  }
  .hero-visual {
    max-width:560px;
    width:100%;
    justify-self:center;
    min-height:440px;
  }
  .chat {
    font-size:.9rem;
  }
  .visual-label {
    font-size:.75rem;
  }
}

.nav-actions {
  flex-shrink:0;
}

.nav-actions>.btn {
  white-space:nowrap;
}

.mobile-menu summary {
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
}

.mobile-menu .icon {
  width:22px;
  height:22px;
}

@media(max-width:650px) {
  .site-header .brand-name small {
    display:none;
  }
  .nav-actions>.btn {
    min-height:44px;
  }
  .site-header .brand-name {
    max-width:105px;
  }
  .site-header .brand {
    gap:7px;
  }
}

.mobile-panel {
  max-height:calc(100dvh - 72px);
  overflow-y:auto;
}


@media (min-width: 651px) {
  .pricing-card h2 + p { min-height: 3.2em; }
  .pricing-signal + p { min-height: 4.8em; }
}
/* Native dropdowns: keyboard, Escape and outside-click handling need no script. */
.primary-nav { gap: 8px; }
.primary-nav > a, .nav-trigger {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  padding: 13px 17px; border: 0; border-radius: 99px; background: transparent;
  color: var(--muted); font-size: .86rem; font-weight: 550; line-height: 1.2;
  text-decoration: none; transition: color .2s, background .2s;
}
.primary-nav > a::after { display: none; }
.primary-nav > a:hover, .primary-nav > a[aria-current], .nav-trigger:hover,
.primary-nav:has(#products-menu:popover-open) [popovertarget="products-menu"],
.primary-nav:has(#company-menu:popover-open) [popovertarget="company-menu"] {
  background: var(--pale); color: var(--dark);
}
.nav-caret { width: 6px; height: 6px; border-right: 1.5px solid; border-bottom: 1.5px solid; transform: translateY(-2px) rotate(45deg); transition: transform .25s; }
.primary-nav:has(#products-menu:popover-open) [popovertarget="products-menu"] .nav-caret,
.primary-nav:has(#company-menu:popover-open) [popovertarget="company-menu"] .nav-caret { transform: translateY(1px) rotate(225deg); }
.nav-popover {
  position: fixed; inset: 100px auto auto 50%; margin: 0; width: min(690px,calc(100vw - 48px));
  max-height: calc(100dvh - 125px); overflow: auto; padding: 23px; border: 1px solid var(--line);
  border-radius: 24px; background: white; color: var(--ink); box-shadow: 0 20px 70px #153f3026;
  opacity: 0; transform: translate(-50%,-10px);
  transition: opacity .2s, transform .25s, display .25s allow-discrete, overlay .25s allow-discrete;
}
.nav-popover:popover-open { opacity: 1; transform: translate(-50%,0); }
@starting-style { .nav-popover:popover-open { opacity: 0; transform: translate(-50%,-10px); } }
.nav-popover::backdrop { background: transparent; }
.nav-product-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 0 2px 19px; }
.nav-product-heading strong { font-size: 1.3rem; letter-spacing: -.035em; font-weight: 600; }
.nav-product-heading > span { font-size: .75rem; color: var(--muted); }
.nav-product-links { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.nav-product-card {
  display: flex; position: relative; flex-direction: column; gap: 10px; min-height: 180px;
  padding: 19px; border: 1px solid var(--line); border-radius: 16px; background: #f8faf9;
  text-decoration: none; transition: background .2s, border-color .2s, transform .25s;
}
.nav-product-card > .icon { color: var(--green); margin-bottom: 15px; }
.nav-product-card strong { font-size: .96rem; letter-spacing: -.02em; }
.nav-product-card small { font-size: .8rem; color: var(--muted); line-height: 1.5; }
.nav-product-card:hover, .nav-product-card[aria-current] { background: var(--pale); border-color: #a9cdbb; transform: translateY(-3px); }
.company-popover { width: min(465px,calc(100vw - 48px)); }
.company-popover .nav-product-links { grid-template-columns: 1fr 1fr; }
.company-popover .nav-product-card { min-height: 154px; }
.nav-login { display: block; padding: 17px 2px 0; color: var(--dark); font-size: .8rem; text-decoration: none; }
.feature > .icon, .partner-tile > .icon, .step-num { transition: transform .3s, background .3s; }
.feature:hover > .icon, .partner-tile:hover > .icon { transform: translateY(-3px) rotate(-5deg); }
.step:hover .step-num { transform: translateY(-3px); background: var(--pale); }
.btn .icon { transition: transform .22s; }
.btn:hover .icon { transform: translateX(3px); }
@keyframes status-breathe { 50% { box-shadow: 0 0 0 4px #00875712; } }
@keyframes preview-float { 50% { transform: translateY(-7px); } }
@keyframes outcome-nod { 0%,75%,100% { transform: scale(1); } 85% { transform: scale(1.12); } }
@keyframes routing-flow { 50% { transform: translateY(3px); opacity: .6; } }
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .section-head, .product-card, .feature, .step, .partner-band, .cta-band, .pricing-card {
      animation: enter-view both;
      animation-timeline: view();
      animation-range: entry 0% entry 90%;
    }
  }
}
@keyframes enter-view { from { opacity: .5; translate: 0 22px; } to { opacity: 1; translate: 0 0; } }
@media (max-width:1120px) { .primary-nav > a, .nav-trigger { padding-inline: 14px; font-size: .83rem; } }
@media (max-width:850px) { .nav-popover { display: none; } }
/* A visual language of signals, paths and conversations. */
:root { --radius: 18px; }
h1, h2 { font-weight: 620; letter-spacing: -.065em; }
.eyebrow, .kicker { letter-spacing: .08em; }
.section { padding-block: 100px; }
.section-head { margin-bottom: 48px; }
.section-head h2 { font-size: clamp(2.3rem, 4.1vw, 3.6rem); }
.section-soft { background: #f4f5f7; }
.feature p, .product-copy p, .step p, .reel-card p { font-size: 1rem; }
.hero-copy .lede { font-size: 1.13rem; max-width: 470px; }
.home-heading { display: grid; grid-template-columns: 1.55fr 1fr; gap: 64px; align-items: end; padding-block: 62px 48px; }
.home-heading h1 { font-size: clamp(4rem, 7.2vw, 6.75rem); line-height: .98; }
.home-heading .eyebrow { margin-bottom: 26px; }
.home-intro { padding-bottom: 4px; max-width: 425px; }
.home-intro .lede { color: var(--ink); font-size: 1.24rem; line-height: 1.5; }
.home-intro > p + p { margin-top: 14px; }
.home-intro .actions { gap: 18px; margin-top: 24px; }
.home-intro .text-link { font-size: .85rem; }
.home-opening { overflow: hidden; }

/* Product collection: two illustrated leads, then two short editorial links. */
.product-directory { display: grid; grid-template-columns: 1.15fr 1fr; gap: 24px 40px; }
.product-directory .product-card { border: 0; border-radius: 0; position: relative; overflow: visible; box-shadow: none; }
.product-directory .product-card:hover { transform: none; }
.product-directory .product-art { height: 285px; border-radius: 16px; transition: border-radius .4s; }
.product-directory .product-card:hover .product-art { border-radius: 40px 16px 40px 16px; }
.product-directory .product-copy { position: relative; padding: 27px 0 32px 42px; }
.product-number { position: absolute; top: 32px; left: 0; color: var(--muted); font-size: .75rem; }
.product-directory h3 { font-size: 1.8rem; }
.product-directory .product-copy p { max-width: 380px; margin-top: 12px; }
.product-directory .product-copy .text-link { margin-top: 16px; }
.product-directory .mini-call { max-width: 305px; transform: rotate(-4deg); padding: 26px; transition: transform .4s; }
.product-directory .product-card:hover .mini-call { transform: rotate(0) translateY(-5px); }
.product-directory .mini-call strong { font-size: 1rem; }
.product-directory .mini-call .wave { height: 45px; }
.product-directory .mini-call .wave i { height: 22px; width: 5px; }
.product-directory .mini-call .wave i:nth-child(2n) { height: 40px; }
.product-directory .mini-call p { font-size: .85rem; }
.product-directory .product-card:nth-child(1) .product-art { background: repeating-radial-gradient(ellipse at 100% 100%, transparent 0 25px, #bfd6c6 26px 27px, transparent 28px 52px), #e7f0e9; }
.product-directory .product-card:nth-child(2) .product-art { background: #e5e9f0; color: #273e59; }
.pulse-art { width: 100%; }
.pulse-art strong { display: flex; align-items: center; gap: 15px; font-size: 6rem; line-height: 1; letter-spacing: -.085em; font-weight: 550; }
.pulse-art small { font-size: .88rem; }
.product-directory .product-card:nth-child(n+3) { display: grid; grid-template-columns: 120px 1fr; align-items: center; border-block: 1px solid var(--line); gap: 24px; }
.product-directory .product-card:nth-child(n+3) .product-art { height: 120px; padding: 15px; }
.product-directory .product-card:nth-child(n+3) .product-copy { padding-block: 30px; }
.product-directory .product-card:nth-child(n+3) h3 { font-size: 1.5rem; }
.product-directory .route-mini span { padding: 5px; font-size: .6rem; }
.product-directory .route-mini .route-branches { gap: 3px; }
.product-directory .mini-estate { padding: 10px; }
.product-directory .mini-estate strong { font-size: .75rem; }
.product-directory .mini-estate .mini-line { margin-top: 8px; height: 5px; }
.product-directory .mini-estate small { display: none; }

/* Large moving geometry frames product-specific content. */
.hero { gap: 62px; padding-block: 65px 76px; }
.hero h1 { font-size: clamp(3.4rem, 5.3vw, 5rem); line-height: 1.02; }
.hero-visual { min-height: 540px; border-radius: 0; isolation: isolate; }
.voice-stage { background: #eef3ef; padding-top: 105px; overflow: hidden; }
.voice-caption { position: absolute; top: 2px; left: 18px; font-size: 7.8rem; letter-spacing: -.09em; font-weight: 570; line-height: 1; color: #c5d7cb; }
.voice-stage .visual-label { margin: 0 0 12px; }
.voice-stage .visual-label > span:first-child { display: none; }
.voice-stage .visual-label > span:last-child { margin-left: auto; }
.voice-rings { position: absolute; inset: 0; z-index: -1; }
.voice-rings i { position: absolute; width: 540px; height: 540px; border: 1px solid #9fbdab; border-radius: 50%; left: 50%; top: 50%; transform: translate(-50%,-50%) scale(.4); opacity: 0; animation: voice-ring 4.4s linear  1; }
.voice-rings i:nth-child(2) { animation-delay: -2s; }
.voice-rings i:nth-child(3) { animation-delay: -4s; }
.voice-rings i:nth-child(4) { animation-delay: -6s; }
.voice-rings i:nth-child(5) { animation-delay: -8s; }
.voice-stage .conversation { transform: rotate(-3deg); border-radius: 17px; }
.voice-stage .conversation-head { padding: 17px 22px; }
.voice-stage .chat { gap: 13px; padding: 20px; }
.voice-stage .bubble { animation: none; }
.voice-stage .wave { width: 60px; overflow: hidden; }
.voice-stage .outcome { animation: booking-highlight 4.4s ease-in-out  1; }
.voice-stage .visual-caption { margin-top: 19px; }
.pulse-visual { background: #e6ebf1; min-height: 610px; padding-top: 77px; }
.pulse-type { position: absolute; top: 12px; left: -10px; font-size: clamp(8rem,15vw,14rem); font-weight: 600; letter-spacing: -.09em; line-height: 1; color: #c5d1de; z-index: -1; transform: rotate(-9deg); }
.pulse-orbits { position: absolute; inset: 0; z-index: -2; overflow: hidden; }
.pulse-orbits i { position: absolute; width: 630px; height: 325px; border: 1px solid #93a7bc; border-radius: 50%; left: 50%; top: 55%; transform: translate(-50%,-50%) rotate(-35deg); }
.pulse-orbits i:nth-child(2) { width: 690px; height: 385px; }
.pulse-orbits i:nth-child(3) { width: 750px; height: 445px; }
.pulse-orbits i:nth-child(4) { width: 810px; height: 505px; }
.pulse-orbits i::after { content: ''; position: absolute; width: 12px; height: 12px; border-radius: 50%; background: var(--green); left: calc(50% - 6px); top: -6px; transform-origin: 6px 169px; animation: orbit-signal 4.4s linear  1; }
.pulse-orbits i:nth-child(2)::after { transform-origin: 6px 199px; animation-delay: -3s; }
.pulse-orbits i:nth-child(3)::after { transform-origin: 6px 229px; animation-delay: -6s; }
.pulse-orbits i:nth-child(4)::after { transform-origin: 6px 259px; animation-delay: -9s; }
.pulse-visual .visual-label { margin-bottom: 18px; font-size: .75rem; }
.pulse-visual .visual-label > span:first-child { display: none; }
.pulse-visual .visual-label > span:last-child { margin-left: auto; }
.pulse-visual .app-preview { width: min(310px, 100%); transform: rotate(4deg); box-shadow: 18px 25px 0 -10px #becbd9, 0 24px 50px -30px #17354c75; border: 1px solid #b5c4d0; border-radius: 27px; animation: app-sway 4.4s ease-in-out  1; }
.product-label { display: flex; align-items: center; gap: 12px; color: var(--ink); font-size: 1rem; }
.product-label > span { border-left: 1px solid #c6cdd3; padding-left: 12px; color: var(--muted); font-size: .75rem; font-weight: 450; }
.page-pulse .hero h1 { font-size: clamp(3.4rem, 6vw, 5.5rem); }
.page-pulse .hero-copy .actions { margin-top: 26px; }
.page-pulse .store-note { max-width: 360px; }
.page-pulse #pulse-features .feature-grid { gap: 40px; }
.page-pulse #pulse-features .feature { border-top: 0; padding-top: 0; }
.page-pulse #pulse-features .feature > .icon { width: 45px; height: 45px; stroke-width: 1.1; background: transparent; padding: 0; margin-bottom: 40px; }
.page-pulse #pulse-features h3 { font-size: 1.7rem; max-width: 250px; }
.route-stage { background: #eef1f0; }
.route-stage .signal-lines { width: 190%; left: -50%; color: #a9beb2; }
.route-stage .routing-board { background: #fffffff5; box-shadow: 0 12px 40px #163a2915; transform: rotate(-2deg); }
.route-stage .route-node { position: relative; }
.route-stage .route-node.active { animation: node-highlight 1.8s ease-in-out 1; }
.route-stage .routing-board > .route-node:not(.active) { animation: node-highlight 1.8s 1.5s ease-in-out 1; }
.route-stage .route-fork .route-node:first-child { animation: node-highlight 1.8s 3s ease-in-out 1; }
.estate-visual { background: #edf0eb; padding-top: 92px; min-height: 550px; }
.estate-grid { position: absolute; inset: -80px; z-index: -2; background-image: linear-gradient(#ced8cf 1px, transparent 1px), linear-gradient(90deg,#ced8cf 1px,transparent 1px); background-size: 48px 48px; transform: rotate(-12deg); animation: estate-grid 4.4s linear  1; }
.estate-brand-word { position: absolute; left: 20px; top: 18px; font-size: 3.5rem; font-weight: 600; letter-spacing: -.07em; line-height: 1.05; color: #a1b7a7; }
.estate-visual .estate-window { box-shadow: 12px 12px 0 -3px #d2ddcf, 22px 22px 0 -6px #e3e9df; border: 1px solid #aabcad; border-radius: 12px; animation: estate-sway 4.4s ease-in-out  1; }
.estate-visual .visual-label > span:first-child { display: none; }
.estate-visual .visual-label > span:last-child { margin-left: auto; }
.estate-visual .visual-caption { margin-top: 32px; }

/* More variation in scale and rhythm beyond the opening screen. */
.reel-card { border-radius: 14px; border-color: #cdd9d0; }
.reel-card:nth-child(even) { background: #f7f8f4; }
.reel-card-top > .icon { width: 32px; height: 32px; stroke-width: 1.3; }
.reel-card-top > span { font-size: 1rem; }
.step-num { font-size: 3.4rem; line-height: 1; letter-spacing: -.07em; color: var(--green); background: transparent; width: auto; height: auto; border: 0; border-radius: 0; justify-content: start; margin-bottom: 28px; }
.step:hover .step-num { background: transparent; }
.step { padding-right: 36px; }
.partner-band { position: relative; background: white; border: 1px solid #c6d8cc; border-radius: 0; padding: 55px; overflow: hidden; }
.partner-band::before { content: ''; position: absolute; right: -180px; top: -200px; width: 750px; height: 750px; border-radius: 50%; background: repeating-radial-gradient(circle, transparent 0 31px, #dbe6de 32px 33px, transparent 34px 64px); z-index: 0; }
.partner-band > div { position: relative; }
.partner-band h2 { font-size: clamp(2.4rem,4vw,3.6rem); }
.partner-tile { background: #f0f5f0; border: 1px solid #d3ded5; border-radius: 12px; }
.partner-tile:nth-child(2), .partner-tile:nth-child(4) { transform: translateY(22px); }
.cta-band { border-radius: 0; padding: 58px; position: relative; isolation: isolate; overflow: hidden; background: var(--dark); }
.cta-band::before { content: ''; position: absolute; width: 480px; height: 480px; border: 1px solid #ffffff29; border-radius: 50%; right: -60px; top: -200px; box-shadow: 0 0 0 35px #ffffff0a,0 0 0 70px #ffffff08,0 0 0 105px #ffffff06; z-index: -1; }
.cta-band h2 { max-width: 660px; font-size: clamp(2.2rem,4vw,3.5rem); }
.page-pricing .page-hero h1 { font-size: clamp(3rem,7vw,6rem); }
.page-pricing .pricing-card { border-radius: 12px; }
.site-footer { border-top: 1px solid var(--line); }
@keyframes call-film { to { transform: translateX(-50%); } }
@keyframes signal-travel { to { stroke-dashoffset: -2180; } }
@keyframes ring-out { 0% { transform: scale(1); opacity: .5; } 100% { transform: scale(1.85); opacity: 0; } }
@keyframes voice-ring { 0% { transform: translate(-50%,-50%) scale(.35); opacity: 0; } 20% { opacity: .65; } 100% { transform: translate(-50%,-50%) scale(1.5); opacity: 0; } }
@keyframes app-sway { 0%,100% { transform: rotate(4deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-10px); } }
@keyframes orbit-signal { to { transform: rotate(360deg); } }
@keyframes estate-grid { to { transform: rotate(-12deg) translate(48px,48px); } }
@keyframes estate-sway { 0%,100% { transform: perspective(900px) rotateY(-5deg) rotate(-1deg); } 50% { transform: perspective(900px) rotateY(4deg) rotate(1deg) translateY(-7px); } }
@keyframes booking-highlight { 0%,40%,100% { background: #f0f8f3; } 65%,80% { background: #c7ead6; } }
@keyframes node-highlight { 0%,25%,100% { border-color: #d4dfd7; box-shadow: none; } 10%,18% { border-color: var(--green); box-shadow: 0 0 0 3px #00875715; } }

@media (min-width: 1400px) {
  .home-heading { grid-template-columns: 1.6fr 1fr; gap: 58px; }
}
@media (max-width: 1120px) {
  .home-heading { gap: 40px; grid-template-columns: 1.3fr 1fr; }
  .home-heading h1 { font-size: 6.8vw; }
  .hero { gap: 38px; }
  .hero h1 { font-size: 4rem; }
  .hero-visual { min-height: 520px; }
  .pulse-visual { min-height: 595px; }
  .product-directory { gap: 24px; }
  .product-directory .product-card:nth-child(n+3) { grid-template-columns: 85px 1fr; gap: 18px; }
  .product-directory .product-card:nth-child(n+3) .product-art { padding: 7px; height: 100px; }
}
@media (max-width: 850px) {
  .home-heading { grid-template-columns: 1fr; gap: 27px; padding-block: 44px 38px; }
  .home-heading h1 { font-size: clamp(3.3rem,9.2vw,5.8rem); }
  .home-heading .eyebrow { margin-bottom: 22px; }
  .home-intro { max-width: 620px; }
  .home-intro .lede { font-size: 1.17rem; }
  .hero { grid-template-columns: 1fr; gap: 38px; padding-block: 45px 50px; }
  .hero h1, .page-pulse .hero h1 { font-size: clamp(3.3rem,8vw,4.9rem); }
  .hero-visual { width: 100%; max-width: 100%; }
  .hero-visual .conversation { width: min(440px,100%); margin-inline: auto; }
  .voice-stage { min-height: 560px; }
  .voice-stage .visual-label { max-width: 440px; width: 100%; margin-inline: auto; }
  .voice-caption { font-size: 9rem; left: 35px; }
  .pulse-type { font-size: 13rem; left: 25px; }
  .pulse-visual { min-height: 590px; }
  .pulse-visual .visual-label { width: 310px; max-width: 100%; margin-inline: auto; }
  .route-stage .routing-board { width: min(440px,100%); margin-inline: auto; }
  .estate-visual .estate-window { width: min(470px,100%); margin-inline: auto; }
  .estate-visual .visual-label { width: min(470px,100%); margin-inline: auto; }
  .product-directory .product-art { height: 230px; }
  .pulse-art strong { font-size: 4.8rem; }
  .product-directory .product-card:nth-child(n+3) { display: block; }
  .product-directory .product-card:nth-child(n+3) .product-art { display: none; }
  .section { padding-block: 65px; }
  .partner-band { padding: 38px; }
  .page-pulse #pulse-features .feature-grid { gap: 25px; }
  .page-pulse #pulse-features h3 { font-size: 1.4rem; }
}
@media (max-width: 650px) {
  .home-heading { padding-top: 34px; gap: 23px; }
  .home-heading h1 { font-size: clamp(2.8rem,10.2vw,4.5rem); }
  .home-heading .eyebrow { font-size: .69rem; margin-bottom: 23px; }
  .home-intro .lede { font-size: 1.09rem; max-width: 340px; }
  .home-intro > p + p { font-size: .94rem; margin-top: 11px; }
  .home-intro .actions { gap: 18px; margin-top: 22px; }
  .home-intro .btn { padding-inline: 18px; font-size: .83rem; }
  .call-frame { width: 242px; height: 220px; padding: 19px 22px; }
  .call-frame::after { right: -23px; font-size: 17px; }
  .frame-chat { width: 288px; height: 243px; }
  .frame-book { width: 242px; }
  .frame-team { width: 256px; }
  .ring-mark { margin-block: 17px; }
  .call-frame > strong { font-size: 1.2rem; }
  .frame-team > strong { font-size: 1rem; }
  .call-frame p { font-size: .8rem; }
  .section { padding-block: 55px; }
  .section-head { margin-bottom: 30px; }
  .section-head h2 { font-size: 2.25rem; }
  .product-directory { grid-template-columns: 1fr; gap: 12px; }
  .product-directory .product-art { height: 245px; }
  .product-directory .product-copy { padding-block: 22px 32px; }
  .product-number { top: 26px; }
  .product-directory .product-card:nth-child(n+3) { border-bottom: 0; }
  .product-directory .product-card:nth-child(n+3) .product-copy { padding-block: 25px; }
  .product-directory .product-card:nth-child(n+3) h3 { font-size: 1.5rem; }
  .product-directory .product-copy p { margin-top: 9px; }
  .product-directory .product-copy .text-link { font-size: .88rem; }
  .pulse-art strong { font-size: 5.9rem; }
  .hero { gap: 34px; padding-block: 36px 45px; }
  .hero h1, .page-pulse .hero h1 { font-size: clamp(2.65rem,11.3vw,4.3rem); }
  .hero-copy .lede { font-size: 1.05rem; }
  .hero-visual { min-height: 0; padding-bottom: 60px; }
  .voice-stage { padding-top: 100px; }
  .voice-caption { left: 12px; font-size: 7.3rem; }
  .voice-stage .chat { padding: 16px; gap: 11px; }
  .voice-stage .conversation-head { padding: 15px; gap: 10px; }
  .voice-stage .conversation-head .wave { width: 42px; }
  .voice-stage .bubble { max-width: 96%; font-size: .83rem; padding: 12px; }
  .voice-stage .outcome { margin: 0 13px 13px; padding: 11px; font-size: .75rem; }
  .voice-stage .visual-caption { font-size: .7rem; gap: 6px; }
  .voice-rings i { width: 420px; height: 420px; }
  .pulse-visual { min-height: 590px; padding-top: 95px; padding-bottom: 98px; }
  .pulse-type { left: -6px; top: 6px; font-size: 10rem; }
  .pulse-visual .app-preview { max-width: 270px; }
  .page-pulse #pulse-features .feature-grid { grid-template-columns: 1fr; gap: 20px; }
  .page-pulse #pulse-features .feature { padding-bottom: 28px; border-bottom: 1px solid var(--line); }
  .page-pulse #pulse-features .feature > .icon { width: 36px; height: 36px; margin-bottom: 18px; }
  .page-pulse #pulse-features h3 { max-width: 290px; font-size: 1.65rem; }
  .route-stage { padding-top: 26px; }
  .estate-visual { padding-top: 90px; }
  .estate-brand-word { font-size: 2.9rem; top: 17px; left: 16px; }
  .estate-visual .estate-tiles { gap: 9px; }
  .estate-visual .estate-body { padding: 16px; }
  .estate-visual .estate-heading h3 { font-size: 1.25rem; }
  .estate-visual .estate-top { gap: 10px; }
  .estate-visual .estate-top strong { font-size: 1rem; }
  .estate-visual .estate-top small { font-size: .65rem; }
  .partner-band { padding: 29px 25px 50px; }
  .partner-band h2 { font-size: 2.45rem; }
  .partner-tile:nth-child(2), .partner-tile:nth-child(4) { transform: translateY(13px); }
  .cta-band { padding: 33px 26px; }
  .step { padding-right: 0; }
  .step-num { font-size: 2.8rem; margin-bottom: 18px; }
  .reel-card { min-height: 230px; }
  .reel-card p { font-size: .94rem; }
}
@media (max-width: 370px) {
  .home-intro .actions { align-items: start; flex-direction: column; gap: 17px; }
  .voice-stage { padding-inline: 16px; }
  .voice-stage .conversation-head .wave { display: none; }
  .estate-brand-word { font-size: 2.45rem; }
  .estate-visual { padding-inline: 16px; }
  .pulse-visual { padding-inline: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .voice-rings i { opacity: .4; transform: translate(-50%,-50%) scale(1); }
  .voice-rings i:nth-child(2) { transform: translate(-50%,-50%) scale(.8); }
  .voice-rings i:nth-child(3) { transform: translate(-50%,-50%) scale(1.2); }
  .voice-rings i:nth-child(n+4) { display: none; }
}


/* September polish: warm surfaces, light display type and user-driven motion. */
@font-face {
  font-family: Manrope;
  src: url('../fonts/Manrope-Variable.ttf') format('truetype');
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
}
:root { --warm: #f6efe5; --blue-soft: #e6edf5; --spring: cubic-bezier(.2,.85,.2,1.12); }
body { font-family: Manrope, Arial, sans-serif; }
h1, h2, h3 { font-family: Manrope, Arial, sans-serif; }
h1 { font-weight: 400; letter-spacing: -.035em; }
h2 { font-weight: 450; letter-spacing: -.035em; }
h3 { font-weight: 600; letter-spacing: -.025em; }
.hero h1, .home-heading h1, .page-hero h1, .contact-copy h1 { text-transform: uppercase; font-weight: 400; line-height: 1.02; letter-spacing: -.035em; }
.hero h1 { font-size: clamp(3.1rem,4.5vw,4.4rem); }
.home-heading { grid-template-columns: 1.65fr 1fr; align-items: center; padding-block: 63px 56px; gap: 46px; }
.home-heading h1 { position: relative; font-size: clamp(3.2rem,5.1vw,4.65rem); line-height: 1.1; }
.home-heading .eyebrow { font-size: .72rem; letter-spacing: .1em; font-weight: 600; margin-bottom: 24px; }
.home-intro .lede { font-size: 1.18rem; line-height: 1.55; }
.home-intro > p + p { font-size: .96rem; }
.home-intro .btn { font-size: .85rem; }
.home-intro .actions { gap: 17px; }
.eyebrow, .kicker { font-weight: 650; letter-spacing: .09em; }
.brand-name { font-weight: 700; letter-spacing: -.025em; }
.brand-name small { font-weight: 450; }
.site-header { background: #ffffffed; }
.nav-shell { min-height: 84px; }
.primary-nav > a, .nav-trigger { color: #34433d; font-weight: 550; }
.btn { gap: 16px; min-height: 52px; padding: 14px 24px; font-weight: 600; transition: transform .38s var(--spring),background .25s,box-shadow .3s; }
.btn:hover { transform: translateY(-3px); }
.btn:active { transform: scale(.97); }
.btn-primary { box-shadow: 0 3px 0 #006b4512; }
.btn-primary:hover { box-shadow: 0 7px 18px #006b4524; }
.btn-secondary { background: #fffefa; border-color: #d8ded8; }
.text-link { font-weight: 600; }
.text-link > span[aria-hidden] { display: inline-block; transition: transform .4s var(--spring); }
.text-link:hover > span[aria-hidden] { transform: translate(3px,-3px); }
.nav-product-card { transition: background .25s, transform .35s var(--spring), border-color .25s; }
.nav-product-card:hover { transform: translateY(-4px); background: #edf5ef; }
.nav-product-card > .icon { transition: transform .4s var(--spring); }
.nav-product-card:hover > .icon { transform: rotate(-8deg) scale(1.12); }

/* Radios remain native: arrow keys change cards, and each label is a touch target. */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.showcase { position: relative; overflow: hidden; isolation: isolate; padding: 40px 0 38px; background: #edf2ed; border-block: 1px solid #dce4db; }
.showcase-home { background: var(--warm); border-color: #e6dfd5; }
.showcase-home .signal-lines { color: #d4cdbf; opacity: .9; }
.showcase-inbound { background: #e9f0ee; }
.showcase-dedicated { background: #edf0e8; }
.showcase::before { content: ''; position: absolute; width: 490px; height: 490px; border: 1px solid #b9cdb857; border-radius: 50%; top: -70px; right: -170px; box-shadow: 0 0 0 42px #b9cdb810,0 0 0 84px #b9cdb810,0 0 0 126px #b9cdb810; pointer-events: none; z-index: -1; }
.signal-lines { position: absolute; inset: 0; width: 100%; height: 100%; color: #c3d3c5; pointer-events: none; z-index: -1; }
.signal-lines g { stroke-width: 1; }
.signal-travel { stroke: var(--green); stroke-width: 2; stroke-dasharray: 80 2100; animation: signal-travel 4.6s ease-out 1; }
.showcase-layout { display: grid; grid-template-columns: .8fr 1.7fr; align-items: center; gap: 20px; }
.showcase-copy { position: relative; z-index: 5; padding: 20px 0; }
.showcase-copy .kicker { margin-bottom: 20px; font-size: .72rem; }
.showcase-copy h2 { font-size: clamp(2.5rem,3.5vw,3.25rem); line-height: 1.07; font-weight: 400; letter-spacing: -.035em; }
.showcase-copy p { max-width: 230px; margin-top: 20px; font-size: 1rem; }
.showcase-copy .text-link { font-size: .86rem; margin-top: 25px; }
.slide-deck { display: block; min-width: 0; padding: 0; border: 0; margin: 0; }
.deck-stage { position: relative; height: 334px; perspective: 1200px; isolation: isolate; }
.deck-card { --x: 95%; --y: 65px; --angle: 18deg; --scale: .73; position: absolute; left: 50%; top: 20px; width: min(375px,65%); margin-left: max(-187.5px,-32.5%); opacity: 0; visibility: hidden; transform: translate3d(var(--x),var(--y),0) rotate(var(--angle)) scale(var(--scale)); transform-origin: 50% 130%; transition: transform .82s var(--spring),opacity .5s,visibility .65s; will-change: transform; }
.deck-card-surface { position: relative; overflow: hidden; min-height: 278px; padding: 29px; border: 1px solid #cbd8cc; border-radius: 22px; background: #fffefa; box-shadow: 0 14px 23px -18px #142e2470; animation: deck-arrive .95s var(--spring) both; }
.deck-card:nth-child(2n) .deck-card-surface { background: #e7f0eb; animation-delay: .17s; }
.deck-card:nth-child(3n) .deck-card-surface { background: #e7edf5; animation-delay: .3s; }
.deck-card:nth-child(4n) .deck-card-surface { background: #f5e9db; animation-delay: .43s; }
.deck-select { position: absolute; inset: 0; z-index: 4; border-radius: 22px; cursor: pointer; }
.deck-controls { display: flex; justify-content: center; flex-wrap: wrap; gap: 6px; position: relative; z-index: 6; margin-top: 10px; }
.deck-choice { display: block; position: relative; cursor: pointer; }
.deck-choice input { position: absolute; width: 1px; height: 1px; opacity: 0; margin: 0; }
.deck-choice-label { display: flex; align-items: center; justify-content: center; gap: 7px; min-width: 43px; min-height: 43px; padding: 10px 12px; border: 1px solid transparent; border-radius: 99px; font-size: .75rem; color: #42544a; transition: background .3s,color .3s,transform .35s var(--spring); }
.deck-choice-label > span:first-child { font-size: .7rem; font-variant-numeric: tabular-nums; }
.deck-choice-label > span:last-child { font-weight: 600; }
.deck-choice:hover .deck-choice-label { background: #ffffffa6; transform: translateY(-2px); }
.deck-choice input:checked + .deck-choice-label { background: var(--dark); color: white; box-shadow: 0 4px 10px #174c2510; }
.deck-choice input:focus-visible + .deck-choice-label { outline: 2px solid var(--dark); outline-offset: 4px; }
.deck-card .reel-card-top { display: flex; align-items: center; justify-content: space-between; color: var(--dark); margin-bottom: 50px; }
.deck-card .reel-card-top > span { font-size: .78rem; letter-spacing: .05em; }
.deck-card .reel-card-top > .icon { width: 52px; height: 52px; stroke-width: 1.2; }
.deck-card h3 { font-size: 1.85rem; font-weight: 450; line-height: 1.1; letter-spacing: -.05em; margin-bottom: 15px; }
.deck-card p { font-size: .96rem; line-height: 1.55; color: #46574e; }
.call-scene { transform: none; width: auto; height: auto; padding: 0; border: 0; box-shadow: none; background: none; }
.call-scene .frame-index { margin-bottom: 18px; font-size: .76rem; color: #56675b; }
.call-scene > strong { display: block; font-size: 1.5rem; font-weight: 500; line-height: 1.2; letter-spacing: -.045em; }
.call-scene p { font-size: .9rem; margin-top: 9px; }
.call-scene .ring-mark { width: 62px; height: 62px; margin: 25px 0 22px; border: 1px solid #c1d5c7; }
.call-scene .ring-mark .icon { width: 28px; height: 28px; }
.call-scene .film-bubble { font-size: .94rem; margin-bottom: 12px; padding: 12px 14px; }
.call-scene .film-bubble:first-of-type { background: white; }
.call-scene .film-bubble.reply { background: #d6e7dc; }
.call-scene .wave { justify-content: center; height: 31px; margin: 14px 0 8px; }
.call-scene .wave i { width: 4px; }
.call-scene > small { display: block; text-align: center; font-size: .71rem; color: #54645c; }
.call-scene .booking-day { margin-block: 25px 19px; padding-bottom: 22px; }
.call-scene .booking-day strong { font-weight: 400; font-size: 3.7rem; }
.call-scene .booking-confirm strong { font-weight: 600; }
.call-scene .team-faces { margin-block: 30px 26px; }
.call-scene .team-faces span { width: 50px; height: 50px; font-size: 1rem; }
.call-scene .handover-line { margin-top: 24px; }
.deck-home .deck-card-surface { min-height: 285px; }
.deck-home .deck-card:nth-child(1) .deck-card-surface { background: #fffefa; }
.deck-home .deck-card:nth-child(2) .deck-card-surface { background: #e5efe7; }
.deck-home .deck-card:nth-child(3) .deck-card-surface { background: #f9f4e8; }
.deck-home .deck-card:nth-child(4) .deck-card-surface { background: #e6edf4; }

/* The rest of the site uses the same light, tactile treatment. */
.section-head h2 { font-size: clamp(2.2rem,3.5vw,3.2rem); font-weight: 450; }
.hero { gap: 64px; padding-block: 62px 72px; }
.hero-visual { border-radius: 30px 8px 30px 8px; padding-bottom: 35px; }
.hero-copy .eyebrow { font-size: .72rem; }
.hero-copy .lede { font-size: 1.09rem; line-height: 1.7; }
.hero-copy .footnote { font-size: .8rem; }
.voice-stage { background: #eff1e9; }
.voice-caption { font-weight: 350; font-size: 8rem; color: #bfcec1; }
.voice-stage .conversation { box-shadow: 0 16px 35px -20px #304c3050; }
.voice-stage .visual-caption { margin-top: 25px; }
.page-pulse .hero h1 { font-size: clamp(3rem,4.6vw,4.6rem); }
.pulse-visual { min-height: 575px; padding-bottom: 40px; background: #e5eaf0; }
.pulse-type { font-weight: 350; color: #bdcdd7; }
.pulse-visual .app-preview { box-shadow: 10px 17px 0 -8px #b5c6d2, 0 24px 50px -30px #17354c65; }
.pulse-visual .visual-label { color: #415465; }
.page-pulse #pulse-features .feature-grid { gap: 50px; }
.page-pulse #pulse-features h3 { font-weight: 500; }
.product-label { font-weight: 600; font-size: .9rem; }
.estate-visual { background: #e9eee4; }
.estate-brand-word { font-weight: 400; color: #96ab98; }
.estate-visual .estate-window { border-radius: 16px; }
.page-dedicated .hero h1 { font-size: clamp(3rem,4.2vw,4.1rem); }
.route-stage { background: #e8eee9; }
.route-stage .routing-board { border-radius: 17px; }
.product-directory { gap: 24px 42px; }
.product-directory .product-art { border-radius: 28px 8px 28px 8px; transition: border-radius .5s var(--spring),transform .5s var(--spring); }
.product-directory .product-card:hover .product-art { border-radius: 8px 28px 8px 28px; transform: translateY(-4px); }
.product-directory h3 { font-weight: 500; }
.product-directory .product-card:nth-child(2) .product-art { background: #f1e6d8; color: #414d3e; }
.pulse-art strong { font-weight: 400; }
.product-directory .mini-call { box-shadow: 10px 12px 0 -6px #bbd0bf,0 18px 30px -20px #34594360; }
.feature, .vertical-card { transition: transform .35s var(--spring),border-color .35s,background .35s; }
.feature:hover { transform: translateY(-4px); border-color: #79ac93; }
.vertical-card { background: #fffefa; border-radius: 20px 8px 20px 8px; }
.vertical-card:hover { background: #f2f5ed; transform: translateY(-4px); }
.step-num { font-weight: 350; }
.step h3 { font-weight: 550; }
.partner-band { border-radius: 32px 8px 32px 8px; background: #fbfaf5; }
.partner-band h2 { font-weight: 400; }
.partner-tile { background: #edf2e7; border-color: #d0dac8; transition: transform .45s var(--spring),background .35s; }
.partner-tile:hover { background: #e3ecd9; transform: translateY(-4px) rotate(-2deg); }
.partner-tile:nth-child(2):hover, .partner-tile:nth-child(4):hover { transform: translateY(13px) rotate(2deg); }
.cta-band { background: #e9efe3; color: var(--ink); border: 1px solid #d1ddc9; border-radius: 32px 8px 32px 8px; padding: 58px; }
.cta-band h2 { font-weight: 400; max-width: 640px; font-size: clamp(2.4rem,3.7vw,3.5rem); color: var(--ink); }
.cta-band p { color: #51634f; }
.cta-band .btn-light { background: var(--dark); color: white; white-space: nowrap; }
.cta-band .btn-light:hover { background: var(--green); }
.cta-band::before { border-color: #799c6d40; box-shadow: 0 0 0 35px #799c6d10,0 0 0 70px #799c6d0a,0 0 0 105px #799c6d07; }
.page-pricing .page-hero h1 { font-size: clamp(3rem,5.4vw,5rem); font-weight: 400; }
.pricing-card { border-radius: 24px 8px 24px 8px; }
.pricing-card h2 { font-weight: 500; }
.pricing-card.featured { background: #eff5ea; }
.pricing-signal { font-weight: 500; }
.page-contact .contact-copy h1, .page-signup .contact-copy h1 { font-size: clamp(2.8rem,4.5vw,4.2rem); }
.lead-form { border-radius: 28px 8px 28px 8px; background: #f2f5ee; }
.contact-copy, .lead-form { min-width: 0; }
.site-footer { background: #fcfcf9; }
.footer-col h2 { font-weight: 600; }
.faq summary { font-weight: 550; }
.faq details { transition: background .25s; }
.faq details[open] { background: #f5f7f1; }
.faq details[open] > p { animation: answer-open .35s ease-out both; }

/* No perpetual autoplay: brief entrances, then movement follows the visitor. */
.hero-visual *, .hero-visual *::before, .hero-visual *::after { animation-iteration-count: 1; animation-duration: 4.4s; }
.wave i, .hero-visual .wave i, .frame-chat .wave i { animation-duration: .65s; animation-iteration-count: 5; }
.ring-mark::before, .ring-mark::after { animation-duration: 2s; animation-iteration-count: 1; }
.ring-mark::after { animation-delay: 1s; }
.hero-copy { animation: gentle-arrival .8s .08s both; }
.hero-visual { animation: visual-arrival 1.05s .12s var(--spring) both; }
.home-heading > div:first-child { animation: gentle-arrival .85s both; }
.home-intro { animation: gentle-arrival .85s .15s both; }
.hero-visual:hover .conversation { transform: rotate(1deg) translateY(-3px); }
.hero-visual .conversation { transition: transform .6s var(--spring); }
@keyframes deck-arrive { from { opacity: 0; transform: translate(80px,45px) rotate(16deg) scale(.94); } 70% { opacity: 1; transform: translate(-7px,-4px) rotate(-2deg); } to { opacity: 1; transform: none; } }
@keyframes gentle-arrival { from { opacity: 0; transform: translateY(23px); } to { opacity: 1; transform: none; } }
@keyframes visual-arrival { from { opacity: 0; transform: translate(30px,35px) rotate(3deg) scale(.97); } to { opacity: 1; transform: none; } }
@keyframes answer-open { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .showcase .deck-stage { animation: deck-approach linear both; animation-timeline: view(); animation-range: entry 0% entry 80%; }
    .product-directory .product-art { animation: artwork-approach linear both; animation-timeline: view(); animation-range: entry 0% entry 90%; }
  }
}
@keyframes deck-approach { from { transform: translateX(50px) rotate(3deg); opacity: .5; } to { transform: none; opacity: 1; } }
@keyframes artwork-approach { from { translate: 0 40px; scale: .95; } to { translate: 0 0; scale: 1; } }
@media (max-width:1120px) {
  .home-heading { grid-template-columns: 1.65fr 1fr; gap: 32px; }
  .home-heading h1 { font-size: 5vw; }
  .hero { gap: 40px; }
  .hero h1 { font-size: 4.45vw; }
  .showcase-layout { grid-template-columns: .7fr 1.5fr; gap: 12px; }
  .showcase-copy h2 { font-size: 2.6rem; }
  .deck-card { width: 340px; margin-left: -170px; }
  .deck-card-surface { padding: 25px; }
  .deck-choice-label { padding-inline: 9px; }
  .deck-choice-label > span:last-child { font-size: .68rem; }
}
@media (max-width:850px) {
  .home-heading { grid-template-columns: 1fr; gap: 26px; padding-block: 43px; }
  .home-heading h1 { font-size: clamp(3rem,7.8vw,4.9rem); max-width: 670px; }
  .home-intro { max-width: 580px; }
  .home-intro .lede { font-size: 1.14rem; }
  .showcase-layout { grid-template-columns: 1fr; gap: 10px; }
  .showcase-copy { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 28px; align-items: end; padding-bottom: 0; }
  .showcase-copy .kicker { grid-column: 1/-1; margin-bottom: 9px; }
  .showcase-copy h2 { grid-row: span 2; }
  .showcase-copy p { margin-top: 0; max-width: 260px; }
  .showcase-copy .text-link { margin-top: 12px; }
  .deck-stage { height: 350px; }
  .deck-card { width: 375px; margin-left: -187.5px; top: 26px; }
  .deck-controls { margin-top: 10px; }
  .hero { padding-block: 44px 55px; }
  .hero h1, .page-pulse .hero h1, .page-dedicated .hero h1 { font-size: clamp(3rem,7.5vw,4.6rem); }
  .hero-visual { width: 100%; }
  .hero-copy .lede { max-width: 550px; }
  .cta-band { padding: 39px; }
}
@media (max-width:650px) {
  .nav-shell { min-height: 72px; }
  .home-heading { padding-block: 35px 36px; gap: 23px; }
  .home-heading h1 { font-size: clamp(2.2rem,8.9vw,3.65rem); line-height: 1.13; }
  .home-heading .eyebrow { margin-bottom: 21px; font-size: .64rem; }
  .home-intro .lede { font-size: 1.07rem; }
  .home-intro > p + p { font-size: .94rem; }
  .home-intro .actions { margin-top: 24px; }
  .home-intro .btn { min-height: 49px; padding-inline: 17px; font-size: .8rem; }
  .home-intro .text-link { font-size: .82rem; }
  .showcase { padding-block: 30px 32px; }
  .showcase-copy { display: block; padding-top: 0; }
  .showcase-copy h2 { font-size: 2.35rem; }
  .showcase-copy h2 br { display: inline; }
  .showcase-copy h2 br::after { content: ' '; }
  .showcase-copy .kicker { margin-bottom: 13px; }
  .showcase-copy p { margin-top: 14px; font-size: .94rem; max-width: none; }
  .showcase-copy .text-link { margin-top: 15px; font-size: .82rem; }
  .deck-stage { height: 320px; width: calc(100% + 40px); margin-left: -20px; }
  .deck-card { width: calc(100% - 84px); max-width: 340px; margin-left: 0; left: 42px; top: 32px; }
  .deck-card-surface { min-height: 257px; padding: 24px; border-radius: 18px; }
  .deck-home .deck-card-surface { min-height: 265px; }
  .deck-card h3 { font-size: 1.65rem; margin-bottom: 13px; }
  .deck-card p { font-size: .91rem; }
  .deck-card .reel-card-top { margin-bottom: 36px; }
  .deck-card .reel-card-top > .icon { width: 46px; height: 46px; }
  .deck-controls { gap: 6px; margin-top: 3px; }
  .deck-choice-label { min-width: 44px; min-height: 44px; padding: 10px 12px; }
  .deck-choice-label > span:last-child { display: none; }
  .deck-choice-label > span:first-child { font-size: .78rem; }
  .deck-home .deck-choice-label > span:last-child { display: inline; font-size: .7rem; }
  .deck-home .deck-choice-label > span:first-child { display: none; }
  .call-scene > strong { font-size: 1.35rem; }
  .call-scene .ring-mark { margin-block: 21px; }
  .call-scene .film-bubble { font-size: .84rem; padding: 11px; }
  .call-scene .booking-day strong { font-size: 3.3rem; }
  .call-scene .team-faces { margin-block: 24px; }
  .call-scene .team-faces span { width: 42px; height: 42px; }
  .call-scene > small { font-size: .66rem; }
  .hero { padding-block: 35px 45px; gap: 34px; }
  .hero h1, .page-pulse .hero h1, .page-dedicated .hero h1 { font-size: clamp(2.45rem,9.8vw,3.85rem); }
  .hero-visual { padding-bottom: 30px; border-radius: 24px 7px 24px 7px; }
  .voice-stage { padding-top: 97px; }
  .voice-caption { font-size: 7rem; }
  .pulse-visual { min-height: 535px; padding-top: 97px; padding-bottom: 40px; }
  .estate-visual { padding-top: 88px; }
  .estate-brand-word { font-size: 2.6rem; }
  .page-pulse #pulse-features .feature-grid { gap: 25px; }
  .product-directory .product-art { border-radius: 24px 7px 24px 7px; }
  .partner-band { border-radius: 24px 7px 24px 7px; }
  .cta-band { padding: 32px 25px; border-radius: 24px 7px 24px 7px; }
  .cta-band h2 { font-size: 2.15rem; }
  .cta-band p { font-size: .96rem; }
  .page-pricing .page-hero h1 { font-size: 2.65rem; }
  .page-contact .contact-copy h1, .page-signup .contact-copy h1 { font-size: clamp(2.15rem,10.7vw,2.65rem); }
}
@media (max-width:370px) {
  .deck-choice-label { min-width: 39px; padding-inline: 8px; }
  .deck-controls { gap: 4px; }
  .deck-home .deck-choice-label { padding-inline: 10px; }
  .deck-card-surface { padding: 20px; }
  .deck-card h3 { font-size: 1.5rem; }
  .deck-card p { font-size: .86rem; }
  .call-scene > strong { font-size: 1.15rem; }
  .call-scene .booking-confirm { font-size: .88rem; }
}

.slide-deck[data-count="4"]:has(input[value="1"]:checked) .deck-card:nth-child(1) { --x: 0%; --y: 0px; --angle: 0deg; --scale: 1; opacity: 1; visibility: visible; z-index: 3; }
.slide-deck[data-count="4"]:has(input[value="1"]:checked) .deck-card:nth-child(4) { --x: -75%; --y: 30px; --angle: -11deg; --scale: .8; opacity: .72; visibility: visible; z-index: 1; }
.slide-deck[data-count="4"]:has(input[value="1"]:checked) .deck-card:nth-child(2) { --x: 75%; --y: 30px; --angle: 11deg; --scale: .8; opacity: .72; visibility: visible; z-index: 1; }
.slide-deck[data-count="4"]:has(input[value="2"]:checked) .deck-card:nth-child(2) { --x: 0%; --y: 0px; --angle: 0deg; --scale: 1; opacity: 1; visibility: visible; z-index: 3; }
.slide-deck[data-count="4"]:has(input[value="2"]:checked) .deck-card:nth-child(1) { --x: -75%; --y: 30px; --angle: -11deg; --scale: .8; opacity: .72; visibility: visible; z-index: 1; }
.slide-deck[data-count="4"]:has(input[value="2"]:checked) .deck-card:nth-child(3) { --x: 75%; --y: 30px; --angle: 11deg; --scale: .8; opacity: .72; visibility: visible; z-index: 1; }
.slide-deck[data-count="4"]:has(input[value="3"]:checked) .deck-card:nth-child(3) { --x: 0%; --y: 0px; --angle: 0deg; --scale: 1; opacity: 1; visibility: visible; z-index: 3; }
.slide-deck[data-count="4"]:has(input[value="3"]:checked) .deck-card:nth-child(2) { --x: -75%; --y: 30px; --angle: -11deg; --scale: .8; opacity: .72; visibility: visible; z-index: 1; }
.slide-deck[data-count="4"]:has(input[value="3"]:checked) .deck-card:nth-child(4) { --x: 75%; --y: 30px; --angle: 11deg; --scale: .8; opacity: .72; visibility: visible; z-index: 1; }
.slide-deck[data-count="4"]:has(input[value="4"]:checked) .deck-card:nth-child(4) { --x: 0%; --y: 0px; --angle: 0deg; --scale: 1; opacity: 1; visibility: visible; z-index: 3; }
.slide-deck[data-count="4"]:has(input[value="4"]:checked) .deck-card:nth-child(3) { --x: -75%; --y: 30px; --angle: -11deg; --scale: .8; opacity: .72; visibility: visible; z-index: 1; }
.slide-deck[data-count="4"]:has(input[value="4"]:checked) .deck-card:nth-child(1) { --x: 75%; --y: 30px; --angle: 11deg; --scale: .8; opacity: .72; visibility: visible; z-index: 1; }
.slide-deck[data-count="6"]:has(input[value="1"]:checked) .deck-card:nth-child(1) { --x: 0%; --y: 0px; --angle: 0deg; --scale: 1; opacity: 1; visibility: visible; z-index: 3; }
.slide-deck[data-count="6"]:has(input[value="1"]:checked) .deck-card:nth-child(6) { --x: -75%; --y: 30px; --angle: -11deg; --scale: .8; opacity: .72; visibility: visible; z-index: 1; }
.slide-deck[data-count="6"]:has(input[value="1"]:checked) .deck-card:nth-child(2) { --x: 75%; --y: 30px; --angle: 11deg; --scale: .8; opacity: .72; visibility: visible; z-index: 1; }
.slide-deck[data-count="6"]:has(input[value="2"]:checked) .deck-card:nth-child(2) { --x: 0%; --y: 0px; --angle: 0deg; --scale: 1; opacity: 1; visibility: visible; z-index: 3; }
.slide-deck[data-count="6"]:has(input[value="2"]:checked) .deck-card:nth-child(1) { --x: -75%; --y: 30px; --angle: -11deg; --scale: .8; opacity: .72; visibility: visible; z-index: 1; }
.slide-deck[data-count="6"]:has(input[value="2"]:checked) .deck-card:nth-child(3) { --x: 75%; --y: 30px; --angle: 11deg; --scale: .8; opacity: .72; visibility: visible; z-index: 1; }
.slide-deck[data-count="6"]:has(input[value="3"]:checked) .deck-card:nth-child(3) { --x: 0%; --y: 0px; --angle: 0deg; --scale: 1; opacity: 1; visibility: visible; z-index: 3; }
.slide-deck[data-count="6"]:has(input[value="3"]:checked) .deck-card:nth-child(2) { --x: -75%; --y: 30px; --angle: -11deg; --scale: .8; opacity: .72; visibility: visible; z-index: 1; }
.slide-deck[data-count="6"]:has(input[value="3"]:checked) .deck-card:nth-child(4) { --x: 75%; --y: 30px; --angle: 11deg; --scale: .8; opacity: .72; visibility: visible; z-index: 1; }
.slide-deck[data-count="6"]:has(input[value="4"]:checked) .deck-card:nth-child(4) { --x: 0%; --y: 0px; --angle: 0deg; --scale: 1; opacity: 1; visibility: visible; z-index: 3; }
.slide-deck[data-count="6"]:has(input[value="4"]:checked) .deck-card:nth-child(3) { --x: -75%; --y: 30px; --angle: -11deg; --scale: .8; opacity: .72; visibility: visible; z-index: 1; }
.slide-deck[data-count="6"]:has(input[value="4"]:checked) .deck-card:nth-child(5) { --x: 75%; --y: 30px; --angle: 11deg; --scale: .8; opacity: .72; visibility: visible; z-index: 1; }
.slide-deck[data-count="6"]:has(input[value="5"]:checked) .deck-card:nth-child(5) { --x: 0%; --y: 0px; --angle: 0deg; --scale: 1; opacity: 1; visibility: visible; z-index: 3; }
.slide-deck[data-count="6"]:has(input[value="5"]:checked) .deck-card:nth-child(4) { --x: -75%; --y: 30px; --angle: -11deg; --scale: .8; opacity: .72; visibility: visible; z-index: 1; }
.slide-deck[data-count="6"]:has(input[value="5"]:checked) .deck-card:nth-child(6) { --x: 75%; --y: 30px; --angle: 11deg; --scale: .8; opacity: .72; visibility: visible; z-index: 1; }
.slide-deck[data-count="6"]:has(input[value="6"]:checked) .deck-card:nth-child(6) { --x: 0%; --y: 0px; --angle: 0deg; --scale: 1; opacity: 1; visibility: visible; z-index: 3; }
.slide-deck[data-count="6"]:has(input[value="6"]:checked) .deck-card:nth-child(5) { --x: -75%; --y: 30px; --angle: -11deg; --scale: .8; opacity: .72; visibility: visible; z-index: 1; }
.slide-deck[data-count="6"]:has(input[value="6"]:checked) .deck-card:nth-child(1) { --x: 75%; --y: 30px; --angle: 11deg; --scale: .8; opacity: .72; visibility: visible; z-index: 1; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .hero-copy, .hero-visual, .home-heading > div { opacity: 1; transform: none; }
  .deck-stage { display: flex; position: static; height: auto; overflow-x: auto; gap: 16px; width: 100%; margin: 24px 0 0; padding: 6px 0 18px; scroll-snap-type: x mandatory; scrollbar-width: thin; }
  .slide-deck .deck-stage .deck-card { position: relative; left: auto; top: auto; margin: 0; width: min(350px,88%); max-width: none; flex: none; opacity: 1 !important; visibility: visible !important; transform: none !important; z-index: auto !important; scroll-snap-align: start; }
  .deck-controls, .deck-select { display: none; }
  .deck-card-surface { height: 100%; box-shadow: none; }
  .voice-rings i { animation: none; }
}

/* Technical direction: cool neutrals, clearer edges, restrained green. */
.showcase-home { background: #edf2f3; border-color: #d9e3e2; }
.showcase-home .signal-lines { color: #b8cac6; }
.showcase-inbound { background: #edf3f0; }
.showcase-dedicated { background: #e9eef0; }
.showcase::before { border-color: #a8c0b540; box-shadow: 0 0 0 42px #a8c0b509,0 0 0 84px #a8c0b508,0 0 0 126px #a8c0b507; }
.deck-card-surface, .deck-select { border-radius: 16px; }
.deck-home .deck-card:nth-child(3) .deck-card-surface { background: #f5f6f0; }
.deck-card:nth-child(4n) .deck-card-surface { background: #ecf0e8; }
.product-directory .product-card:nth-child(2) .product-art { background: #e4eaf1; color: #273e59; }
.hero-visual, .product-directory .product-art, .partner-band, .cta-band, .lead-form { border-radius: 22px 8px 22px 8px; }
.voice-stage { background: #edf3ef; }
.partner-band { background: #f9faf7; }
.cta-band { background: #e6efe9; border-color: #cbdcd1; }
.site-footer { background: #f9faf9; }
/* Small call illustrations inside the home slider. */
.call-scene .frame-index { display: block; }
.ring-mark { display: grid; place-items: center; position: relative; border-radius: 50%; background: #e1f0e7; color: var(--dark); }
.ring-mark::before, .ring-mark::after { content: ''; position: absolute; inset: 0; border: 1px solid #8eb6a0; border-radius: 50%; animation: ring-out 2s ease-out 1; }
.ring-mark::after { animation-delay: 1s; }
.film-bubble { border-radius: 12px 12px 12px 2px; width: fit-content; background: #f0f3f3; }
.film-bubble.reply { margin-left: auto; border-radius: 12px 12px 2px 12px; }
.booking-day { display: flex; align-items: center; gap: 17px; border-bottom: 1px dashed #b7c8be; }
.booking-day > span { padding: 12px 9px; border: 1px solid #c3d1c5; border-radius: 8px; color: var(--dark); font-size: .78rem; }
.booking-day strong { line-height: 1; letter-spacing: -.065em; }
.booking-confirm { display: flex; align-items: center; gap: 9px; font-size: .94rem; }
.booking-confirm > span { color: var(--dark); }
.team-faces { display: flex; padding-left: 5px; }
.team-faces span { display: grid; place-items: center; margin-left: -5px; border: 3px solid #f9fbfb; border-radius: 50%; background: #d0ded4; color: #345140; }
.team-faces span:nth-child(2) { background: #e6e1d4; }
.team-faces span:nth-child(3) { background: #cddae8; }
.handover-line { display: flex; align-items: center; justify-content: space-between; color: var(--dark); font-size: .78rem; }
.handover-line .icon { width: 18px; }

/* JMB's original letterforms, given room to read as a proper wordmark. */
.brand { gap: 14px; }
.brand img { width: 84px; height: 34px; flex: none; transition: transform .35s var(--spring); }
.brand-name { display: block; padding-left: 14px; border-left: 1px solid #cbd9d2; font-size: .72rem; line-height: 1.4; font-weight: 650; letter-spacing: .19em; text-transform: uppercase; }
.brand-name small { display: block; margin-top: 4px; font-size: .64rem; line-height: 1.35; font-weight: 500; letter-spacing: .01em; text-transform: none; color: #52645b; }
.brand:hover img { transform: translateY(-2px); }
.brand:hover .brand-name { border-color: var(--green); }
.footer-brand .brand { width: fit-content; }

/* A small gallery of real capabilities, drawn as illustrative inbound flows. */
.flow-builder-link { color: var(--dark); text-decoration: underline; text-underline-offset: 4px; text-decoration-color: #a4beb0; }
.flow-builder-link:hover { text-decoration-color: var(--dark); }
.flow-showcase { padding: 24px 0 26px; min-width: 0; min-height: 602px; justify-content: flex-start; background: #edf2ef; background-image: radial-gradient(#c8d8ce 1px,transparent 1px); background-size: 20px 20px; }
.flow-showcase-heading { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 0 25px; font-size: .67rem; color: #496154; }
.flow-showcase-heading > span:first-child { font-weight: 650; }
.flow-showcase-heading > span:last-child { padding: 5px 8px; background: #ffffffbf; border: 1px solid #d3dfd7; border-radius: 5px; white-space: nowrap; }
.deck-flows .deck-stage { width: 100%; margin-left: 0; height: 490px; }
.deck-flows .deck-card { width: calc(100% - 92px); max-width: 430px; left: 50%; top: 24px; margin: 0; translate: -50% 0; }
.deck-flows .deck-card-surface { padding: 22px; min-height: 436px; background: #fff; border-color: #b9cec0; }
.deck-flows .deck-card:nth-child(2) .deck-card-surface { background: #f3f7fb; }
.deck-flows .deck-card:nth-child(3) .deck-card-surface { background: #f9f8f0; }
.deck-flows .deck-card:nth-child(4) .deck-card-surface { background: #eef5ef; }
.flow-card-heading { display: flex; align-items: center; justify-content: space-between; color: var(--dark); font-size: .68rem; letter-spacing: .05em; margin-bottom: 14px; }
.flow-card-heading .icon { width: 19px; height: 19px; }
.deck-flows .deck-card h3 { min-height: 57px; margin: 0 0 15px; font-size: 1.55rem; line-height: 1.16; letter-spacing: -.035em; font-weight: 500; }
.flow-diagram { min-height: 246px; }
.flow-entry { display: flex; justify-content: center; align-items: center; gap: 7px; font-size: .68rem; color: #496154; }
.flow-entry .dot { width: 5px; height: 5px; }
.flow-wire { width: 1px; height: 15px; margin: 0 auto; background: #88b19a; }
.flow-node { min-height: 49px; display: flex; align-items: center; gap: 10px; padding: 9px 11px; position: relative; border: 1px solid #ccd9d1; border-radius: 8px; background: #fff; color: var(--ink); }
.flow-node .icon { flex: none; width: 18px; height: 18px; color: var(--dark); }
.flow-node > span { display: block; min-width: 0; }
.flow-node strong { display: block; font-size: .73rem; line-height: 1.3; font-weight: 650; letter-spacing: -.01em; }
.flow-node small { display: block; margin-top: 3px; font-size: .61rem; line-height: 1.4; color: #506557; }
.flow-node-main { background: #e9f3ed; border-color: #a8cab6; }
.flow-node-result { background: #f5f8f6; }
.flow-branches { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 12px; position: relative; padding-top: 13px; }
.flow-branches::before { content: ''; position: absolute; height: 13px; width: 1px; left: 50%; top: 0; background: #88b19a; }
.flow-branch { min-width: 0; position: relative; }
.flow-branch::before { content: ''; position: absolute; left: 50%; right: -6px; top: 0; border-top: 1px solid #88b19a; }
.flow-branch:last-child::before { left: -6px; right: 50%; }
.flow-route-label { display: block; width: fit-content; max-width: 100%; position: relative; margin: 0 auto; padding: 6px 5px; font-size: .59rem; line-height: 1.4; color: #426b54; text-align: center; }
.flow-branch .flow-node { padding: 8px; gap: 7px; }
.flow-branch .flow-node .icon { width: 15px; height: 15px; }
.flow-branch .flow-node + .flow-node { margin-top: 14px; }
.flow-branch .flow-node + .flow-node::before { content: ''; position: absolute; width: 1px; height: 14px; background: #88b19a; left: 50%; top: -15px; }
.deck-flows .flow-card-features { padding-top: 13px; margin-top: 15px; border-top: 1px solid #d3dfd6; font-size: .64rem; line-height: 1.5; color: #486452; }
.deck-flows .deck-controls { margin-top: 0; padding-inline: 12px; gap: 3px; }
.deck-flows .deck-choice-label { padding-inline: 9px; min-height: 44px; font-size: .66rem; }
.builder-section .split { align-items: center; }
.builder-benefits { border-top: 1px solid var(--line); }
.builder-benefits article { display: flex; gap: 24px; padding: 24px 0; border-bottom: 1px solid var(--line); }
.builder-number { padding-top: 2px; color: var(--green); font-size: .77rem; font-variant-numeric: tabular-nums; }
.builder-benefits h3 { font-size: 1.28rem; font-weight: 550; }
.builder-benefits p { margin-top: 8px; font-size: .94rem; }
@media (prefers-reduced-motion: no-preference) {
  .deck-flows:has(#flow-slide-1:checked) #flow-card-1 .flow-node,
  .deck-flows:has(#flow-slide-2:checked) #flow-card-2 .flow-node,
  .deck-flows:has(#flow-slide-3:checked) #flow-card-3 .flow-node,
  .deck-flows:has(#flow-slide-4:checked) #flow-card-4 .flow-node { animation: flow-step-in .48s calc(.12s + var(--step)*.16s) both; }
}
@keyframes flow-step-in { from { opacity: .35; transform: translateY(7px); } to { opacity: 1; transform: none; } }
@media (max-width:1120px) {
  .brand { gap: 10px; }
  .brand img { width: 76px; height: 31px; }
  .brand-name { padding-left: 10px; font-size: .65rem; }
  .brand-name small { font-size: .57rem; }
  .deck-flows .deck-card { width: calc(100% - 48px); }
  .deck-flows .deck-card-surface { padding: 20px; }
  .flow-showcase-heading { padding-inline: 20px; font-size: .61rem; }
  .deck-flows .deck-choice-label { padding-inline: 7px; }
  .deck-flows .deck-choice-label > span:first-child { display: none; }
}
@media (max-width:650px) {
  .brand { gap: 9px; }
  .brand img { width: 64px; height: 27px; }
  .brand-name { display: block; font-size: .54rem; letter-spacing: .12em; padding-left: 9px; }
  .brand-name small { display: block; font-size: .47rem; margin-top: 3px; }
  .flow-showcase { padding: 20px 0 23px; min-height: 580px; }
  .flow-showcase-heading { padding-inline: 17px; font-size: .59rem; gap: 8px; }
  .deck-flows .deck-stage { height: 494px; }
  .deck-flows .deck-card { width: calc(100% - 40px); max-width: 430px; top: 22px; }
  .deck-flows .deck-card-surface { min-height: 440px; padding: 18px; }
  .deck-flows .deck-card h3 { font-size: 1.5rem; min-height: 57px; }
  .deck-flows .deck-choice-label { padding-inline: 7px; min-width: 0; }
  .deck-flows .deck-choice-label > span:last-child { display: inline; font-size: .65rem; }
  .flow-branches { gap: 10px; }
  .flow-node { gap: 8px; }
  .flow-branch .flow-node .icon { display: none; }
  .flow-node strong { font-size: .72rem; }
  .flow-node small { font-size: .61rem; }
  .flow-branch .flow-node { min-height: 57px; }
  .builder-benefits article { gap: 17px; padding-block: 21px; }
}
@media (max-width:370px) {
  .site-header .brand-name { display: none; }
  .site-header .brand img { width: 74px; height: 30px; }
  .flow-showcase-heading > span:first-child { max-width: 125px; }
  .deck-flows .deck-card { width: calc(100% - 28px); }
  .deck-flows .deck-card-surface { padding: 16px; }
  .deck-flows .deck-card h3 { font-size: 1.3rem; }
  .flow-node strong { font-size: .68rem; }
  .flow-node small { font-size: .59rem; }
  .deck-flows .flow-card-features { font-size: .61rem; }
  .deck-flows .deck-controls { gap: 1px; padding-inline: 5px; }
  .deck-flows .deck-choice-label > span:last-child { font-size: .59rem; }
}
@media (prefers-reduced-motion: reduce) {
  .deck-flows .deck-stage { height: auto; margin-top: 20px; width: calc(100% - 32px); margin-inline: 16px; }
  .deck-flows .deck-stage .deck-card { translate: none !important; width: min(400px,92%); }
  .flow-showcase { min-height: 0; }
}

/* Explore Pulse with the same native controls as the card galleries. */
.pulse-interactive { min-width: 0; }
.pulse-visual .pulse-interactive { transform: none; animation: none; }
.pulse-visual .pulse-interactive:focus-within, .pulse-visual .pulse-interactive:hover { transform: rotate(0deg); }
.app-screens { min-height: 318px; }
.app-screen { display: none; }
.pulse-interactive:has(#pulse-calls:checked) #pulse-calls-screen,
.pulse-interactive:has(#pulse-chat:checked) #pulse-chat-screen,
.pulse-interactive:has(#pulse-team:checked) #pulse-team-screen,
.pulse-interactive:has(#pulse-settings:checked) #pulse-settings-screen { display: block; animation: pulse-screen-in .3s ease-out both; }
.pulse-interactive .app-screen h3 { margin: 0 0 21px; font-size: 1.4rem; line-height: 1.2; font-weight: 550; letter-spacing: -.035em; }
.pulse-interactive .call-row { padding-block: 15px; }
.pulse-interactive .call-row small { font-size: .68rem; }
.pulse-interactive .app-nav { margin-top: 13px; padding-top: 12px; border-top: 1px solid #e3eae6; gap: 3px; justify-content: space-between; }
.app-nav-choice { position: relative; flex: 1; cursor: pointer; }
.app-nav-choice input { position: absolute; width: 1px; height: 1px; opacity: 0; margin: 0; }
.app-nav-choice > span { display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 6px; min-height: 52px; border-radius: 9px; padding: 7px 3px; font-size: .64rem; transition: background .2s,color .2s,transform .2s; }
.app-nav-choice:hover > span { background: #f1f6f3; transform: translateY(-2px); }
.app-nav-choice input:checked + span { background: #e8f3ed; color: var(--dark); }
.app-nav-choice input:focus-visible + span { outline: 2px solid var(--dark); outline-offset: 2px; }
.pulse-preview-hint { margin-top: 28px; text-align: center; position: relative; font-size: .73rem; color: #3e5768; }
.preview-chat-title { display: flex; align-items: center; gap: 10px; padding-bottom: 13px; border-bottom: 1px solid var(--line); }
.preview-chat-title .avatar { width: 32px; height: 32px; font-size: .8rem; }
.preview-chat-title strong { display: block; font-size: .77rem; }
.preview-chat-title small { font-size: .62rem; color: var(--muted); }
.preview-messages { padding-top: 15px; }
.preview-messages p { padding: 10px 12px; background: #f1f4f5; font-size: .74rem; line-height: 1.45; border-radius: 10px 10px 10px 2px; max-width: 93%; color: #304139; }
.preview-messages p small { display: block; font-size: .6rem; color: #506859; margin-bottom: 4px; }
.preview-messages .preview-reply { margin: 10px 0 0 auto; background: #e2f0e7; border-radius: 10px 10px 2px 10px; width: fit-content; }
.preview-attachment { display: flex; gap: 10px; align-items: center; margin-top: 12px; padding: 10px; border: 1px solid #dbe5de; border-radius: 9px; font-size: .67rem; color: var(--dark); }
.preview-attachment > span:first-child { font-size: 1.2rem; }
.preview-attachment small { display: block; margin-top: 3px; font-size: .57rem; color: var(--muted); }
.preview-panel-note { font-size: .73rem; margin-top: -8px; margin-bottom: 8px; }
.preview-setting { padding: 16px 0; border-bottom: 1px solid var(--line); }
.preview-setting > span { display: block; font-size: .64rem; color: var(--muted); }
.preview-setting strong { display: block; font-size: .79rem; margin-block: 6px 2px; }
.preview-setting small { font-size: .68rem; color: var(--muted); }
.preview-setting .dot { width: 5px; height: 5px; vertical-align: middle; }
.preview-quiet { padding: 13px; margin-top: 17px; border-radius: 10px; background: #f2f6f3; color: #476252; font-size: .74rem; line-height: 1.55; }
@keyframes pulse-screen-in { from { opacity: .2; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* Product browsing, scaled to a phone rather than a list of desktop links. */
.mobile-panel { padding: 19px 24px 22px; background: #fdfefd; border-radius: 0 0 24px 24px; border-color: #cfdfd5; box-shadow: 0 18px 30px #18372920; overscroll-behavior: contain; scrollbar-width: thin; }
.mobile-menu-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.mobile-menu-heading > span { font-size: 1.2rem; font-weight: 500; letter-spacing: -.03em; }
.mobile-menu-heading a { font-size: .72rem; color: var(--dark); padding: 11px 13px; border: 1px solid #d7e4db; border-radius: 30px; min-height: 44px; }
.mobile-product-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 10px; }
.mobile-panel .mobile-product-card { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; position: relative; padding: 16px; border: 1px solid #dce5df; border-radius: 15px 6px 15px 6px; background: #f2f6f3; }
.mobile-product-card > .icon { color: var(--dark); width: 24px; height: 24px; margin-bottom: 15px; stroke-width: 1.5; }
.mobile-product-card strong { font-size: .84rem; line-height: 1.3; font-weight: 650; letter-spacing: -.025em; }
.mobile-product-card small { font-size: .66rem; line-height: 1.45; font-weight: 400; color: #506359; margin-top: 6px; }
.mobile-panel .mobile-product-card:nth-child(2) { background: #edf2f7; }
.mobile-panel .mobile-product-card:nth-child(4) { background: #f4f4ec; }
.mobile-panel .mobile-product-card[aria-current] { border-color: var(--green); box-shadow: inset 0 0 0 1px var(--green); }
.mobile-panel .mobile-product-card:hover { border-color: #75a58a; }
.mobile-menu-links { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 10px; padding-block: 13px; }
.mobile-menu-links a { display: flex; align-items: center; justify-content: space-between; gap: 7px; padding: 12px 7px; font-size: .81rem; }
.mobile-menu-links a span { color: var(--green); }
.mobile-panel .mobile-account-link { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 17px 4px 0; border-top: 1px solid #dce5df; font-size: .7rem; }
.mobile-account-link > span { color: #586b60; font-weight: 400; }
.mobile-account-link strong { font-weight: 600; color: var(--dark); }
.mobile-menu summary { position: relative; }
.mobile-menu summary::before, .mobile-menu summary::after { content: ''; position: absolute; left: 13px; top: 20px; width: 16px; height: 1.5px; background: var(--dark); opacity: 0; transition: transform .2s,opacity .2s; }
.mobile-menu[open] summary > .icon { opacity: 0; }
.mobile-menu[open] summary::before { opacity: 1; transform: rotate(45deg); }
.mobile-menu[open] summary::after { opacity: 1; transform: rotate(-45deg); }
@media (prefers-reduced-motion: no-preference) {
  .mobile-menu[open] .mobile-panel { animation: mobile-menu-enter .25s ease-out both; }
  .mobile-menu[open] .mobile-product-card { animation: mobile-menu-enter .32s ease-out both; }
  .mobile-menu[open] .mobile-product-card:nth-child(2) { animation-delay: .035s; }
  .mobile-menu[open] .mobile-product-card:nth-child(3) { animation-delay: .07s; }
  .mobile-menu[open] .mobile-product-card:nth-child(4) { animation-delay: .105s; }
}
@keyframes mobile-menu-enter { from { opacity: .3; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
@media (min-width:651px) { .mobile-panel { max-height: calc(100dvh - 84px); padding-inline: max(24px,calc((100% - 650px)/2)); } }
@media (max-width:650px) {
  .pulse-visual .pulse-interactive { padding: 19px; max-width: 285px; }
  .pulse-interactive .app-screen h3 { font-size: 1.35rem; }
  .app-screens { min-height: 320px; }
  .mobile-panel { padding-inline: 20px; }
}
@media (max-width:370px) {
  .mobile-panel { padding: 13px 15px 18px; }
  .mobile-panel .mobile-product-card { padding: 13px; }
  .mobile-product-card strong { font-size: .75rem; }
  .mobile-product-card small { font-size: .61rem; }
  .mobile-menu-links a { font-size: .73rem; }
  .mobile-panel .mobile-account-link { font-size: .65rem; gap: 8px; }
  .pulse-visual { padding-inline: 12px; }
  .pulse-visual .pulse-interactive { padding: 16px; }
  .pulse-interactive .app-screen h3 { font-size: 1.24rem; }
}

/* The reseller offer: one brand across the portal, published app and admin. */
.estate-explorer { padding: 27px 24px; min-height: 620px; justify-content: center; }
.estate-explorer .estate-grid { opacity: .6; }
.estate-explorer-heading { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 23px; font-size: .66rem; color: #49624e; }
.estate-explorer-heading > span:first-child { font-weight: 650; }
.estate-explorer-heading > span:last-child { font-size: .6rem; }
.estate-demo { min-width: 0; width: 100%; padding: 0; margin: 0; border: 1px solid #b6cbb9; background: #fff; border-radius: 13px; box-shadow: 8px 9px 0 -3px #bdccba,15px 18px 0 -7px #d0dbcc; overflow: hidden; }
.estate-demo-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 20px; border-bottom: 1px solid #e0e8e2; }
.estate-demo-domain { color: #617369; font-size: .57rem; }
.estate-demo-screens { min-height: 347px; }
.estate-screen { display: none; padding: 22px; }
.estate-demo:has(#estate-portal:checked) #estate-portal-screen,
.estate-demo:has(#estate-app:checked) #estate-app-screen,
.estate-demo:has(#estate-admin:checked) #estate-admin-screen { display: block; animation: pulse-screen-in .3s ease-out both; }
.estate-screen-label { display: block; text-transform: uppercase; letter-spacing: .08em; font-weight: 600; font-size: .58rem; color: #517761; margin-bottom: 9px; }
.estate-screen h3 { font-size: 1.25rem; font-weight: 550; line-height: 1.25; letter-spacing: -.035em; }
.estate-screen .estate-screen-caption { margin-top: 15px; color: #576d5f; font-size: .61rem; line-height: 1.5; }
.estate-demo-tabs { display: grid; grid-template-columns: 1.15fr 1fr 1fr; gap: 4px; padding: 10px; background: #f3f6f4; border-top: 1px solid #dae5de; }
.estate-demo-tabs label { position: relative; cursor: pointer; }
.estate-demo-tabs input { position: absolute; width: 1px; height: 1px; opacity: 0; margin: 0; }
.estate-demo-tabs label > span { display: grid; place-items: center; min-height: 44px; padding: 8px 5px; text-align: center; border-radius: 7px; color: #4b6455; font-size: .65rem; font-weight: 600; transition: background .2s,color .2s; }
.estate-demo-tabs input:checked + span { color: #fff; background: #365c46; box-shadow: 0 3px 8px #17332220; }
.estate-demo-tabs input:focus-visible + span { outline: 2px solid var(--green); outline-offset: 2px; }
.estate-demo-tabs label:hover > span { background: #dfece3; }
.estate-demo-tabs label:hover input:checked + span { background: #365c46; }
.estate-foundation { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 18px; margin-top: 27px; font-size: .59rem; color: #3a5b45; }
.estate-foundation span::before { content: '+'; display: inline-block; margin-right: 5px; }
.estate-app-composition { display: flex; justify-content: center; align-items: center; gap: 30px; margin-top: 16px; }
.estate-phone { width: 173px; flex: none; padding: 12px 15px 9px; border: 1px solid #b6cdbf; border-radius: 22px; background: #fbfdfb; box-shadow: 5px 7px 0 #dce7dc; transform: rotate(-4deg); }
.estate-phone-speaker { display: block; width: 29px; height: 4px; margin: 0 auto 14px; background: #bccdc0; border-radius: 8px; }
.estate-phone-title { display: block; margin: 20px 0 8px; font-size: 1.12rem; font-weight: 500; letter-spacing: -.04em; }
.estate-phone > div:not(.estate-phone-nav) { display: flex; align-items: center; gap: 7px; padding: 11px 0; border-bottom: 1px solid #e0e9e2; font-size: .64rem; }
.estate-phone-avatar { display: grid; place-items: center; width: 24px; height: 24px; background: #e2ede3; border-radius: 8px; color: #3b6348; }
.estate-phone small { display: block; font-size: .49rem; color: #607467; margin-top: 3px; }
.estate-phone-nav { display: flex; justify-content: space-between; padding-block: 13px 4px; color: #577563; font-size: .55rem; }
.estate-phone-nav > span:first-child { color: #244c34; font-weight: 700; }
.estate-app-note { font-size: .67rem; color: #557060; line-height: 1.65; }
.estate-app-note strong { display: block; color: #314c3c; font-size: .83rem; margin-bottom: 5px; }
@media (max-width:1120px) {
  .estate-explorer { padding-inline: 18px; }
  .estate-demo-header { padding-inline: 17px; }
  .estate-demo-domain { font-size: .49rem; }
  .estate-screen { padding: 18px; }
  .estate-app-composition { gap: 17px; }
}
@media (max-width:650px) {
  .estate-explorer { padding: 23px 15px 28px; min-height: 0; }
  .estate-explorer-heading { font-size: .61rem; margin-bottom: 19px; flex-wrap: wrap; }
  .estate-explorer-heading > span:last-child { font-size: .55rem; }
  .estate-demo-header { padding: 17px 14px; flex-wrap: wrap; gap: 7px; }
  .estate-demo-domain { font-size: .52rem; }
  .estate-demo-screens { min-height: 360px; }
  .estate-screen { padding: 20px 15px; }
  .estate-screen h3 { font-size: 1.2rem; }
  .estate-demo-tabs { padding: 8px; gap: 2px; }
  .estate-demo-tabs label > span { font-size: .6rem; }
  .estate-app-composition { gap: 17px; }
  .estate-phone { width: 158px; padding-inline: 12px; }
  .estate-app-note { font-size: .61rem; }
  .estate-app-note strong { font-size: .74rem; }
  .estate-foundation { gap: 7px 12px; font-size: .57rem; }
}
@media (max-width:370px) {
  .estate-explorer { padding-inline: 11px; }
  .estate-screen { padding-inline: 12px; }
  .estate-screen h3 { font-size: 1.09rem; }
  .estate-demo-header { padding: 14px 12px; }
  .estate-demo-domain { font-size: .49rem; }
  .estate-phone { width: 143px; padding-inline: 10px; }
  .estate-app-composition { gap: 11px; }
  .estate-app-note { font-size: .52rem; }
  .estate-app-note strong { font-size: .65rem; }
  .estate-demo-tabs label > span { font-size: .54rem; }
}

/* Keep tab changes steady and prevent decorative overflow from scrolling on focus. */
.flow-showcase, .pulse-visual, .estate-explorer { overflow: clip; }
.app-screens, .estate-demo-screens { display: grid; }
.app-screen, .estate-screen { display: block; grid-area: 1 / 1; visibility: hidden; pointer-events: none; }
.pulse-interactive:has(#pulse-calls:checked) #pulse-calls-screen,
.pulse-interactive:has(#pulse-chat:checked) #pulse-chat-screen,
.pulse-interactive:has(#pulse-team:checked) #pulse-team-screen,
.pulse-interactive:has(#pulse-settings:checked) #pulse-settings-screen,
.estate-demo:has(#estate-portal:checked) #estate-portal-screen,
.estate-demo:has(#estate-app:checked) #estate-app-screen,
.estate-demo:has(#estate-admin:checked) #estate-admin-screen { visibility: visible; pointer-events: auto; }
.hero-visual { min-width: 0; }
.app-screens, .estate-demo-screens { grid-template-columns: minmax(0,1fr); }
.app-screen, .estate-screen { min-width: 0; }

/* Native radio galleries, enhanced with touch gestures. */
@media (prefers-reduced-motion: no-preference) {
  .deck-stage { touch-action: pan-y pinch-zoom; user-select: none; }
}
.gallery-hint { position: relative; margin: 16px 15px 0; text-align: center; color: #4e6659; font-size: .67rem; }
.voice-examples { overflow: clip; min-width: 0; padding: 25px 0; background: #edf3ef; justify-content: flex-start; }
.voice-examples .voice-rings { opacity: .35; }
.voice-examples .flow-showcase-heading { position: relative; font-size: .6rem; }
.deck-voices { position: relative; }
.deck-voices .deck-stage { width: 100%; height: 522px; margin: 0; }
.deck-voices .deck-card { left: 50%; width: calc(100% - 66px); max-width: 440px; margin: 0; translate: -50% 0; }
.deck-voices .deck-card-surface { min-height: 478px; padding: 24px; background: #fff; }
.deck-voices .deck-card:nth-child(2) .deck-card-surface { background: #f4f7fb; }
.deck-voices .deck-card:nth-child(3) .deck-card-surface { background: #faf7ef; }
.deck-voices .deck-card:nth-child(4) .deck-card-surface { background: #f0f6f1; }
.voice-example-brand { display: flex; align-items: center; gap: 10px; padding-bottom: 17px; border-bottom: 1px solid #dce6df; margin-bottom: 20px; }
.voice-example-brand .avatar { width: 35px; height: 35px; font-size: .86rem; }
.voice-example-brand strong { display: block; font-size: .88rem; }
.voice-example-brand small { display: block; font-size: .61rem; color: #546a5d; margin-top: 2px; }
.voice-example-brand > .icon { margin-left: auto; color: var(--dark); width: 19px; }
.deck-voices .deck-card h3 { font-size: 1.45rem; min-height: 52px; margin-bottom: 18px; letter-spacing: -.035em; }
.example-dialogue { min-height: 228px; }
.example-line { width: 95%; background: #e8f2ec; border: 1px solid #d9e7dd; border-radius: 11px 11px 11px 2px; padding: 11px 12px; margin-top: 10px; }
.example-line small { display: block; font-size: .49rem; font-weight: 600; letter-spacing: .08em; color: #537261; margin-bottom: 4px; }
.deck-voices .example-line p { font-size: .76rem; line-height: 1.5; color: #253d31; }
.example-caller { background: #f5f6f6; border-color: #e5e9e6; margin-left: auto; border-radius: 11px 11px 2px 11px; }
.example-outcome { display: flex; align-items: center; gap: 9px; margin-top: 19px; padding-top: 13px; border-top: 1px solid #dce6df; color: #365c46; font-size: .63rem; line-height: 1.5; }
.example-outcome .icon { width: 17px; height: 17px; flex: none; }
.deck-voices .deck-controls { gap: 2px; padding-inline: 12px; margin-top: 0; }
.deck-voices .deck-choice-label { padding-inline: 9px; font-size: .65rem; }
.deck-voices .deck-choice-label > span:first-child { display: none; }
.node-expand { margin-left: auto; font-weight: 400; color: var(--green); font-size: 1.2rem; transition: transform .2s; }
.estate-tools-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 35px; }
.estate-tool h3 { font-size: 1.6rem; margin-block: 25px 12px; font-weight: 500; }
.estate-tool > p { max-width: 490px; }
.estate-tool .footnote { font-size: .78rem; }
.tool-visual { min-height: 260px; border-radius: 18px 6px 18px 6px; border: 1px solid #d6e0da; background: #eef3ef; padding: 28px; }
.api-visual { display: flex; flex-direction: column; justify-content: center; align-items: center; background-image: radial-gradient(#bdcfc3 1px,transparent 1px); background-size: 19px 19px; }
.api-visual span { padding: 10px 19px; border: 1px solid #c8d8cc; border-radius: 7px; background: #fff; font-size: .72rem; }
.api-visual strong { padding: 15px 30px; border: 1px solid #7aa68e; border-radius: 10px; color: var(--dark); background: #e0eee4; font-size: .95rem; font-weight: 600; box-shadow: 4px 5px 0 #c8d8cb; }
.api-visual i { display: block; height: 22px; width: 1px; background: #7aa68e; }
.companion-visual { display: grid; place-items: center; background: #eaf0f5; }
.companion-visual > div { width: min(290px,100%); padding: 21px; border: 1px solid #b8c7d2; border-radius: 16px; background: #fff; box-shadow: 7px 9px 0 #d1dde5; transform: rotate(-3deg); }
.companion-visual > div > span { display: block; color: #577387; text-transform: uppercase; letter-spacing: .09em; font-size: .55rem; }
.companion-visual strong { display: block; font-weight: 500; margin-block: 10px 18px; letter-spacing: -.025em; }
.companion-visual > div > div { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.companion-visual > div > div span { border: 1px solid #d5e0e7; background: #f3f6f8; padding: 10px; border-radius: 7px; font-size: .66rem; color: #425c6d; }
.bespoke-note { margin-top: 45px; border-top: 1px solid #d1ddd5; padding-top: 28px; }
.bespoke-note h3 { margin-bottom: 10px; font-size: 1.35rem; }
.bespoke-note p { max-width: 720px; font-size: .95rem; }
@media (max-width:1120px) {
 .deck-voices .deck-card { width: calc(100% - 42px); }
 .deck-voices .deck-card-surface { padding: 20px; }
 .deck-voices .deck-choice-label { padding-inline: 7px; }
}
@media (max-width:850px) {

 .estate-tools-grid { gap: 25px; }
}
@media (max-width:650px) {
 .voice-examples { padding-block: 22px; }
 .voice-examples .flow-showcase-heading { flex-wrap: wrap; gap: 9px; }
 .deck-voices .deck-card { width: calc(100% - 40px); }
 .deck-voices .deck-card h3 { font-size: 1.36rem; }
 .deck-voices .deck-choice-label > span:last-child { display: inline; font-size: .58rem; }
 .deck-voices .deck-choice-label { min-width: 0; padding-inline: 7px; }
 .deck-voices .deck-stage { height: 530px; }









 .estate-tools-grid { grid-template-columns: 1fr; gap: 35px; }
 .tool-visual { min-height: 245px; }
}
@media (max-width:370px) {
 .deck-voices .deck-card { width: calc(100% - 28px); }
 .deck-voices .deck-card-surface { padding: 16px; }
 .deck-voices .deck-card h3 { font-size: 1.22rem; }
 .deck-voices .example-line p { font-size: .71rem; }
 .deck-voices .deck-controls { padding-inline: 5px; gap: 0; }
 .deck-voices .deck-choice-label { padding-inline: 5px; }
 .deck-voices .deck-choice-label > span:last-child { font-size: .53rem; }

}
@media (prefers-reduced-motion: reduce) {
 .deck-voices .deck-stage { height: auto; width: calc(100% - 32px); margin: 20px 16px 0; }
 .deck-voices .deck-stage .deck-card { translate: none !important; width: min(410px,92%); }
}
/* A live conversation, framed as part of the page rather than a floating ad. */
.agent-showcase { scroll-margin-top: 110px; background: #edf3ee; overflow: clip; }
main { overflow-x: clip; }
.agent-showcase-grid { display: grid; grid-template-columns: 1fr 1.05fr; gap: clamp(32px, 6vw, 90px); align-items: center; }
.agent-showcase-copy { position: relative; }
.agent-showcase-copy h2 { font-size: clamp(40px, 5.1vw, 72px); line-height: 1.05; letter-spacing: -.055em; margin: 18px 0 22px; }
.agent-showcase-copy > p { max-width: 440px; }
.agent-signal { position: relative; width: 180px; height: 100px; margin: 28px 0; }
.agent-signal > span { position: absolute; border: 1px solid #a2c7af; border-radius: 50%; width: 96px; height: 96px; left: 0; top: 0; }
.agent-signal > span:nth-child(2) { left: 32px; }
.agent-signal > span:nth-child(3) { left: 64px; }
.agent-signal-core { position: absolute; display: grid; place-items: center; inset: 16px auto auto 48px; width: 64px; height: 64px; border-radius: 50%; background: #008757; color: white; box-shadow: 0 8px 24px #006b451a; }
.agent-signal-core svg { width: 28px; height: 28px; }
.agent-ideas { border-top: 1px solid #bfd1c5; padding-top: 20px; }
.agent-ideas > span { display: block; text-transform: uppercase; font-size: 11px; letter-spacing: .15em; color: #42644d; margin-bottom: 15px; }
.agent-ideas p { font-size: 14px; margin: 0 0 12px; color: #233b2d; }
.agent-showcase-copy .agent-small-print { color: #4c6254; font-size: 12px; line-height: 1.7; margin: 24px 0 0; }
.agent-live-card { min-width: 0; border: 1px solid #c2d3c6; border-radius: 24px; background: #fff; overflow: hidden; box-shadow: 0 24px 50px -35px #20492f80; }
.agent-card-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 20px 24px; border-bottom: 1px solid #e1e9e3; color: #33533e; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; }
.agent-card-top > span:first-child { display: inline-flex; align-items: center; gap: 8px; }
.agent-card-top i { width: 6px; height: 6px; border-radius: 50%; background: #008757; box-shadow: 0 0 0 4px #e7f3eb; }
.agent-intro { padding: clamp(24px, 4vw, 48px); min-height: 465px; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
.agent-intro[hidden], .agent-mount[hidden], .agent-start-actions button[hidden] { display: none; }
.agent-chat-mark { display: flex; gap: 6px; align-items: center; width: 76px; height: 58px; justify-content: center; border-radius: 20px 20px 20px 3px; background: #edf3ee; margin-bottom: 28px; transform: rotate(-5deg); }
.agent-chat-mark span { height: 7px; width: 7px; border-radius: 50%; background: #008757; }
.agent-intro h3 { font-size: clamp(25px, 2.6vw, 34px); line-height: 1.16; letter-spacing: -.04em; margin: 0 0 18px; font-weight: 500; }
.agent-intro > p { font-size: 15px; line-height: 1.7; color: #56635a; max-width: 380px; margin: 0 0 24px; }
.agent-start-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 18px; }
.agent-start-actions .btn { min-height: 48px; font-size: 13px; gap: 10px; padding: 13px 17px; }
.agent-start-actions .btn:disabled { opacity: .6; cursor: wait; }
.agent-intro .agent-device-note { font-size: 11px; margin-bottom: 0; max-width: 300px; }
.agent-load-status { margin: 0; padding: 0 24px; color: #536258; font-size: 13px; line-height: 1.6; }
.agent-load-status:not(:empty) { padding-bottom: 20px; }
.agent-card-footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; padding: 18px 24px; border-top: 1px solid #e1e9e3; font-size: 11px; color: #58665d; }
.agent-card-footer a { color: #006b45; text-underline-offset: 3px; }
.website-ai-notice { padding: 24px; background: #f0f5f1; border: 1px solid #d7e2da; border-radius: 16px; margin: 24px 0 42px; }
.website-ai-notice h2 { margin-top: 0; }
@media (prefers-reduced-motion: no-preference) {
  .agent-signal > span { animation: agent-ring-arrive 1.1s cubic-bezier(.16,1,.3,1) both; }
  .agent-signal > span:nth-child(2) { animation-delay: .18s; }
  .agent-signal > span:nth-child(3) { animation-delay: .36s; }
  .agent-live-card:hover .agent-chat-mark { transform: rotate(0deg) translateY(-3px); }
  .agent-chat-mark { transition: transform .5s cubic-bezier(.2,.8,.2,1); }
  .agent-chat-mark span { animation: agent-dot-arrive .65s ease-out 2 alternate; }
  .agent-chat-mark span:nth-child(2) { animation-delay: .15s; }
  .agent-chat-mark span:nth-child(3) { animation-delay: .3s; }
}
@keyframes agent-ring-arrive { from { opacity: 0; transform: translateX(-35px) scale(.8); } to { opacity: 1; transform: none; } }
@keyframes agent-dot-arrive { from { transform: translateY(0); } to { transform: translateY(-5px); } }
@media (max-width: 800px) {
  .agent-showcase-grid { grid-template-columns: 1fr; gap: 32px; }
  .agent-showcase-copy h2 { font-size: clamp(40px, 9vw, 60px); }
  .agent-signal { position: absolute; right: -30px; top: 35px; opacity: .28; pointer-events: none; }
  .agent-showcase-copy > p { position: relative; }
  .agent-ideas { margin-top: 25px; }
  .agent-intro { min-height: 420px; }
}
@media (max-width: 420px) {
  .agent-card-top, .agent-card-footer { padding: 16px; font-size: 10px; }
  .agent-intro { padding: 26px 20px; }
  .agent-start-actions { flex-direction: column; width: 100%; }
  .agent-start-actions .btn { justify-content: space-between; width: 100%; }
  .agent-signal { right: -70px; }
}

/* A visible touch cue complements the native highlight controls. */
.deck-swipe-hint { display: none; }
@media (max-width:850px) {
  .deck-swipe-hint { display: flex; justify-content: center; align-items: center; gap: 12px; margin: 15px 0 0; color: #526b61; font-size: .72rem; }
  .deck-swipe-hint > span { color: #008757; font-size: 1.15rem; }
}

/* Companion uses the same native radio interaction as the product previews. */
.companion-section { background: #101d26; color: #f5f7f5; scroll-margin-top: 96px; }
.companion-demo { display: grid; grid-template-columns: 1.12fr 1fr; gap: clamp(30px,6vw,90px); align-items: center; min-width: 0; padding: 0; margin: 0; border: 0; }
.companion-copy { min-width: 0; }
.companion-copy > .kicker { color: #81d7b0; }
.companion-copy h2 { color: #fff; font-size: clamp(2.6rem,4.5vw,4.2rem); font-weight: 400; line-height: 1.08; letter-spacing: -.05em; margin-bottom: 24px; }
.companion-copy > p { color: #c4cfce; max-width: 480px; font-size: 1rem; }
.companion-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin: 30px 0 25px; }
.companion-tabs label { position: relative; cursor: pointer; }
.companion-tabs input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.companion-tabs label > span { display: grid; place-items: center; min-height: 46px; padding: 10px 20px; border: 1px solid #53636b; border-radius: 99px; color: #d6e0dc; font-size: .83rem; font-weight: 600; }
.companion-tabs input:checked + span { color: #0e3020; background: #a7e8c8; border-color: #a7e8c8; }
.companion-tabs input:focus-visible + span { outline: 2px solid #c6f7df; outline-offset: 4px; }
.companion-tabs label:hover > span { border-color: #a7e8c8; }
.companion-captions { display: grid; min-height: 126px; }
.companion-caption { grid-area: 1 / 1; visibility: hidden; max-width: 460px; }
.companion-caption h3 { color: #fff; font-size: 1.2rem; font-weight: 500; line-height: 1.4; margin-bottom: 10px; }
.companion-caption p { color: #becdca; font-size: .9rem; line-height: 1.7; }
.companion-copy .companion-distinction { border-top: 1px solid #394b52; padding-top: 20px; margin: 0 0 20px; font-size: .79rem; max-width: 460px; }
.companion-distinction a { color: #b9ecd1; text-decoration: underline; text-underline-offset: 4px; }
.companion-copy > .text-link { color: #b9ecd1; font-size: .85rem; }
.companion-preview { position: relative; min-width: 0; display: grid; justify-items: center; }
.companion-phone { position: relative; width: min(100%,310px); border: 6px solid #45565b; border-radius: 39px; padding: 14px 15px 0; color: #15251f; background: #f6f7f3; box-shadow: 0 28px 65px #0004; overflow: clip; }
.companion-phone-top { display: flex; justify-content: space-between; align-items: center; padding: 0 8px 17px; font-size: .65rem; font-weight: 700; letter-spacing: .04em; }
.companion-account { display: flex; align-items: center; gap: 9px; border-bottom: 1px solid #d8dfd7; padding-bottom: 16px; font-size: .78rem; font-weight: 650; }
.companion-account > span:last-child { margin-left: auto; font-size: 1rem; }
.companion-account small { display: block; font-size: .57rem; color: #5f7067; font-weight: 450; margin-top: 2px; }
.companion-avatar { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: #dae9dc; color: #246541; font-size: .92rem; }
.companion-screens { display: grid; }
.companion-screen { grid-area: 1 / 1; visibility: hidden; min-height: 341px; padding: 20px 0 18px; }
.companion-screen-kicker { display: block; font-size: .59rem; color: #557062; margin-bottom: 7px; }
.companion-screen h3 { color: #142b22; font-size: 1.14rem; font-weight: 600; line-height: 1.3; letter-spacing: -.03em; margin-bottom: 14px; }
.companion-screen-badges { display: flex; gap: 6px; flex-wrap: wrap; }
.companion-screen-badges span { background: #e5ece5; padding: 5px 7px; border-radius: 5px; color: #426151; font-size: .54rem; }
.companion-screen-badges span:last-child { background: #f1e9cf; color: #70602f; }
.companion-route { margin: 21px 0 19px 6px; border-left: 1px solid #c4d6c7; }
.companion-route > div { position: relative; padding: 0 0 17px 21px; }
.companion-route > div:last-child { padding-bottom: 0; }
.companion-route-dot { position: absolute; top: 4px; left: -5px; width: 9px; height: 9px; background: #18865b; border: 2px solid #f6f7f3; border-radius: 50%; }
.companion-route small, .companion-ai-field small { display: block; color: #566e60; font-size: .59rem; margin-bottom: 4px; }
.companion-route strong { display: block; font-size: .75rem; font-weight: 600; }
.companion-review { display: flex; align-items: center; gap: 9px; padding: 12px; background: #e2eee2; border: 1px solid #ccdcca; border-radius: 9px; font-size: .64rem; color: #245335; }
.companion-review > span:first-child { display: grid; place-items: center; width: 24px; height: 24px; background: #fff; border-radius: 50%; flex: none; }
.companion-review small { display: block; margin-top: 3px; font-size: .53rem; color: #52705a; }
.companion-total { display: flex; align-items: end; gap: 13px; margin-top: 19px; }
.companion-total strong { color: #144d35; font-size: 2.8rem; line-height: 1; font-weight: 450; letter-spacing: -.07em; }
.companion-total > span { color: #547061; font-size: .64rem; padding-bottom: 4px; }
.companion-chart { display: flex; align-items: end; gap: 5px; height: 83px; border-bottom: 1px solid #d7e3d7; margin: 16px 0 13px; padding: 0 3px; }
.companion-chart i { flex: 1; height: 40%; background: #5ca381; border-radius: 3px 3px 0 0; }
.companion-chart i:nth-child(3n) { height: 73%; background: #178957; }
.companion-chart i:nth-child(4n) { height: 91%; background: #276f50; }
.companion-chart i:nth-child(3n + 1) { height: 56%; }
.companion-report-row { display: flex; justify-content: space-between; padding: 9px 0; font-size: .68rem; border-bottom: 1px solid #e1e7df; }
.companion-report-row > span { display: flex; align-items: center; gap: 8px; }
.companion-report-row i { width: 6px; height: 6px; border-radius: 50%; background: #25855b; }
.companion-report-row + .companion-report-row i { background: #be9852; }
.companion-screen .companion-screen-note { font-size: .56rem; color: #64756b; margin: 13px 0 0; }
.companion-ai-field { margin-bottom: 10px; border: 1px solid #dfe5dc; border-radius: 8px; background: white; padding: 10px 11px; }
.companion-ai-field p { font-size: .67rem; line-height: 1.5; margin: 0; color: #334e3e; }
.companion-ai-field strong { display: flex; align-items: center; justify-content: space-between; font-size: .68rem; font-weight: 600; }
.companion-ai-screen .companion-review { margin-top: 13px; }
.companion-phone-nav { display: flex; justify-content: space-between; gap: 7px; border-top: 1px solid #dbe3d8; padding: 16px 0 24px; font-size: .48rem; color: #65766b; }
.companion-phone::after { content: ''; position: absolute; width: 77px; height: 3px; left: calc(50% - 38.5px); bottom: 8px; border-radius: 3px; background: #40554a; }
.companion-preview > .companion-preview-note { color: #9eb2b0; font-size: .65rem; margin: 18px 0 0; text-align: center; }
.companion-availability { border-top: 1px solid #394b52; padding-top: 20px; margin-top: 35px; color: #aabbba; font-size: .72rem; }
.companion-demo:has(input[value="services"]:checked) .companion-services-screen,
.companion-demo:has(input[value="services"]:checked) .companion-services-copy,
.companion-demo:has(input[value="reports"]:checked) .companion-reports-screen,
.companion-demo:has(input[value="reports"]:checked) .companion-reports-copy,
.companion-demo:has(input[value="ai"]:checked) .companion-ai-screen,
.companion-demo:has(input[value="ai"]:checked) .companion-ai-copy { visibility: visible; }
@media (max-width:850px) {
  .companion-demo { gap: 30px; grid-template-columns: 1.1fr 1fr; }
  .companion-copy h2 { font-size: 2.7rem; }
  .companion-tabs label > span { padding-inline: 13px; }
  .companion-captions { min-height: 151px; }
}
@media (max-width:650px) {
  .companion-demo { grid-template-columns: 1fr; gap: 33px; }
  .companion-copy h2 { font-size: clamp(2.6rem,10vw,3.4rem); }
  .companion-copy > p { font-size: .95rem; }
  .companion-tabs { margin-top: 25px; }
  .companion-tabs label > span { padding-inline: 17px; }
  .companion-captions { min-height: 125px; }
  .companion-availability { line-height: 1.7; }
}

/* One feature browser for the whole inbound platform. */
.platform-catalog { position: relative; scroll-margin-top: 95px; }
.section-anchor { position: absolute; top: 0; scroll-margin-top: 95px; }
.capability-browser { min-width: 0; border: 0; padding: 0; margin: 0; }
.capability-tabs { display: flex; gap: 8px; flex-wrap: wrap; border-bottom: 1px solid #d5dfda; padding-bottom: 23px; margin-bottom: 30px; }
.capability-tabs label { position: relative; cursor: pointer; }
.capability-tabs input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.capability-tabs label > span { display: flex; align-items: center; justify-content: center; min-height: 47px; padding: 11px 21px; color: #354a40; background: #fff; border: 1px solid #d5dfda; border-radius: 99px; font-size: .84rem; font-weight: 600; transition: background .2s, color .2s, border-color .2s; }
.capability-tabs input:checked + span { color: white; background: #006b45; border-color: #006b45; }
.capability-tabs input:focus-visible + span { outline: 2px solid #006b45; outline-offset: 4px; }
.capability-tabs label:hover > span { border-color: #008757; }
.capability-panels { display: grid; }
.capability-panel { grid-area: 1/1; min-width: 0; visibility: hidden; }
.capability-intro { display: flex; justify-content: space-between; align-items: baseline; gap: 35px; margin-bottom: 24px; }
.capability-intro h3 { font-size: clamp(1.3rem,2vw,1.75rem); font-weight: 500; letter-spacing: -.035em; }
.capability-intro > p { max-width: 440px; font-size: .85rem; color: #53665b; }
.capability-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 13px; }
.capability-card { border: 1px solid #dce4de; border-radius: 15px; background: #fff; padding: 25px; }
.capability-card-top { min-height: 26px; display: flex; gap: 12px; justify-content: space-between; align-items: center; margin-bottom: 22px; }
.capability-card-top .icon { width: 23px; height: 23px; color: #008757; flex: none; }
.capability-badge { color: #006b45; background: #e5f3ea; padding: 5px 8px; border-radius: 6px; font-size: .56rem; }
.capability-card h4 { font-size: 1.05rem; font-weight: 600; line-height: 1.35; letter-spacing: -.025em; margin-bottom: 11px; }
.capability-card p { font-size: .86rem; line-height: 1.7; color: #4e6056; }
.capability-note { color: #52665a; font-size: .72rem; margin-top: 20px; max-width: 850px; }
.catalog-footer { display: flex; justify-content: space-between; align-items: baseline; gap: 25px; margin-top: 27px; padding-top: 22px; border-top: 1px solid #d5dfda; }
.catalog-footer p, .catalog-footer .text-link { font-size: .75rem; }
.capability-browser:has(input[value="route"]:checked) .capability-route,
.capability-browser:has(input[value="experience"]:checked) .capability-experience,
.capability-browser:has(input[value="control"]:checked) .capability-control,
.capability-browser:has(input[value="followup"]:checked) .capability-followup { visibility: visible; }
@media (prefers-reduced-motion: no-preference) {
 .capability-browser:has(input[value="route"]:checked) .capability-route .capability-card,
 .capability-browser:has(input[value="experience"]:checked) .capability-experience .capability-card,
 .capability-browser:has(input[value="control"]:checked) .capability-control .capability-card,
 .capability-browser:has(input[value="followup"]:checked) .capability-followup .capability-card { animation: capability-arrive .4s both; }
 .capability-card:nth-child(2), .capability-card:nth-child(5) { animation-delay: .045s !important; }
 .capability-card:nth-child(3), .capability-card:nth-child(6) { animation-delay: .09s !important; }
 @keyframes capability-arrive { from { opacity: 0; transform: translateY(9px); } to { opacity: 1; transform: none; } }
}
@media (max-width:900px) {
 .capability-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .capability-intro { display: block; }
 .capability-intro > p { max-width: 650px; margin-top: 10px; }
 .capability-tabs label > span { padding-inline: 16px; }
 .catalog-footer { display: block; }
 .catalog-footer .text-link { margin-top: 12px; }
}
@media (max-width:550px) {
 .capability-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
 .capability-tabs label > span { padding-inline: 8px; font-size: .75rem; }
 .capability-grid { grid-template-columns: 1fr; gap: 10px; }
 .capability-card { padding: 21px; }
 .capability-card-top { margin-bottom: 14px; }
 .capability-card h4 { font-size: 1.1rem; }
 .capability-card p { font-size: .88rem; }
}

/* The builder owns its node library and the tools around the canvas. */
.builder-palette { margin-top: 48px; }
.builder-palette-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 24px; margin-bottom: 23px; }
.builder-palette-heading h3 { font-size: 1.5rem; letter-spacing: -.035em; font-weight: 500; }
.builder-palette-heading p { font-size: .8rem; }
.builder-node-groups { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); align-items: start; gap: 13px; }
.builder-node-group { background: #f6f8f5; border: 1px solid #d6e0d7; border-radius: 14px; }
.builder-node-group summary { list-style: none; display: flex; align-items: center; gap: 12px; padding: 23px; cursor: pointer; }
.builder-node-group summary::-webkit-details-marker { display: none; }
.builder-node-group summary small { display: block; color: #526d5b; font-size: .68rem; margin-bottom: 7px; }
.builder-node-group summary strong { font-size: 1.03rem; font-weight: 600; letter-spacing: -.025em; }
.builder-node-group[open] { background: #fff; border-color: #72a588; }
.builder-node-group[open] .node-expand { transform: rotate(45deg); }
.builder-node-body { padding: 0 23px 23px; }
.builder-node-body > p { font-size: .83rem; line-height: 1.7; color: #4d6355; margin-bottom: 18px; }
.node-tokens { display: flex; flex-wrap: wrap; gap: 7px; list-style: none; padding: 0; margin: 0; }
.node-tokens li { border: 1px solid #d7e3d9; border-radius: 6px; background: #f0f5ef; color: #2c5940; padding: 6px 9px; font-size: .65rem; }
.builder-workspace { margin-top: 28px; padding: 24px 0; border-block: 1px solid #dbe4dc; }
.builder-workspace .kicker { font-size: .62rem; margin-bottom: 15px; }
.builder-workspace ul { display: flex; flex-wrap: wrap; list-style: none; gap: 9px 22px; padding: 0; margin: 0; color: #455e4e; font-size: .76rem; }
.builder-workspace li::before { content: '+'; color: #008757; margin-right: 8px; }
.builder-palette > .footnote { max-width: 900px; margin-top: 19px; }

/* One chosen identity carries through the portal, Pulse and administration. */
.estate-explorer { --estate-accent: #286348; --estate-tint: #edf5ee; --estate-line: #c1d7c8; --estate-surface: #e9eee4; background: var(--estate-surface); transition: background .35s; }
.estate-explorer:has(input[name="estate-brand"][value="aster"]:checked) { --estate-accent: #5b459b; --estate-tint: #f1edf9; --estate-line: #d1c5e7; --estate-surface: #ece8f4; }
.estate-explorer:has(input[name="estate-brand"][value="forge"]:checked) { --estate-accent: #a64b2e; --estate-tint: #fbf0e8; --estate-line: #e4cbbb; --estate-surface: #f3e9dc; }
.estate-explorer:has(input[name="estate-brand"][value="halo"]:checked) { --estate-accent: #2b5ea0; --estate-tint: #edf3fb; --estate-line: #bfd1e8; --estate-surface: #e5edf4; }
.estate-brand-picker { border: 0; padding: 0; margin: 0 0 23px; min-width: 0; }
.estate-brand-picker legend { margin-bottom: 12px; color: #354b41; font-size: .7rem; font-weight: 600; }
.estate-brand-options { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 7px; }
.brand-option { position: relative; cursor: pointer; min-width: 0; }
.brand-option input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.brand-option > span { display: flex; align-items: center; justify-content: center; gap: 7px; min-height: 44px; padding: 8px 5px; border: 1px solid transparent; border-radius: 9px; color: #35443c; font-size: .63rem; background: #ffffff80; }
.brand-option i { width: 12px; height: 12px; border-radius: 50%; background: #286348; flex: none; }
.brand-option-aster i { background: #5b459b; }
.brand-option-forge i { background: #a64b2e; }
.brand-option-halo i { background: #2b5ea0; }
.brand-option input:checked + span { background: #fff; border-color: var(--estate-accent); box-shadow: 0 2px 5px #0d13210d; }
.brand-option input:focus-visible + span { outline: 2px solid #0d1321; outline-offset: 3px; }
.brand-option:hover > span { background: #fff; }
.estate-explorer .estate-brand-text { display: none; }
.estate-explorer:has(input[value="northline"]:checked) .brand-northline,
.estate-explorer:has(input[value="aster"]:checked) .brand-aster,
.estate-explorer:has(input[value="forge"]:checked) .brand-forge,
.estate-explorer:has(input[value="halo"]:checked) .brand-halo { display: inline; }
.estate-wordmark { color: var(--estate-accent); font-size: 1.5rem; font-weight: 750; letter-spacing: -.07em; white-space: nowrap; line-height: 1; }
.estate-phone .estate-wordmark { font-size: 1.03rem; }
.estate-app-icon { display: grid; place-items: center; width: 50px; height: 50px; margin-bottom: 10px; border-radius: 13px; background: var(--estate-accent); color: white; font-size: 1.65rem; font-weight: 650; line-height: 1; }
.estate-explorer .estate-demo { border-color: var(--estate-line); box-shadow: 8px 9px 0 -3px var(--estate-line),15px 18px 0 -7px var(--estate-tint); }
.estate-explorer .estate-demo-tabs, .estate-explorer .estate-phone-avatar { background: var(--estate-tint); border-color: var(--estate-line); }
.estate-explorer .estate-demo-tabs input:checked + span, .estate-explorer .estate-demo-tabs label:hover input:checked + span { background: var(--estate-accent); }
.estate-explorer .estate-demo-tabs input:focus-visible + span { outline-color: var(--estate-accent); }
.estate-explorer .estate-screen-label, .estate-explorer .estate-phone-avatar, .estate-explorer .estate-phone-nav > span:first-child, .estate-explorer .estate-app-note strong { color: var(--estate-accent); }
.estate-explorer .estate-phone { border-color: var(--estate-line); box-shadow: 5px 7px 0 var(--estate-tint); }
.estate-explorer .estate-demo-header { border-bottom: 3px solid var(--estate-accent); }
.estate-explorer .estate-phone-speaker { background: var(--estate-accent); }
.brand-preview-link { font-size: .78rem; margin-top: 16px; }
#brand-preview { scroll-margin-top: 105px; }
@media (max-width:900px) {
 .builder-node-groups { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .builder-palette-heading { display: block; }
 .builder-palette-heading p { margin-top: 10px; }
}
@media (max-width:550px) {
 .builder-node-groups { grid-template-columns: 1fr; }
 .builder-node-group summary { padding: 20px; }
 .builder-node-body { padding: 0 20px 20px; }
 .builder-workspace ul { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; font-size: .7rem; }
 .estate-brand-options { gap: 5px; }
 .brand-option > span { font-size: .59rem; gap: 5px; }
 .brand-option i { width: 10px; height: 10px; }
 .estate-demo-header .estate-wordmark { font-size: 1.38rem; }
}
@media (prefers-reduced-motion: reduce) {
 .estate-explorer, .capability-tabs label > span { transition: none; }
 .builder-node-group .node-expand { transition: none; }
}

/* An explorable product tour, based on the real customer and admin workspaces. */
.estate-explorer .estate-demo-header { gap: 12px; padding: 15px 17px; border-bottom: 1px solid #dce2e9; background: #fff; }
.estate-demo-header .estate-wordmark { font-size: 1.2rem; }
.tour-window-dots { display: flex; gap: 4px; }
.tour-window-dots i { width: 5px; height: 5px; border-radius: 50%; background: #c2cbd3; }
.estate-demo-domain { margin-left: auto; }
.estate-console-screen { padding: 0; background: #f4f6f9; }
.tour-workspace { display: grid; grid-template-columns: 82px minmax(0,1fr); min-height: 380px; }
.tour-sidebar { background: #151c29; padding: 14px 7px; color: #c9d2df; }
.tour-menu-mark { display: block; padding: 0 8px 16px; color: #fff; }
.tour-menu-mark .icon { width: 18px; height: 18px; }
.tour-sidebar-heading { display: block; font-size: .44rem; letter-spacing: .07em; text-transform: uppercase; padding: 0 7px 7px; color: #aab6c8; }
.tour-nav-item { display: flex; align-items: center; gap: 6px; padding: 10px 7px; margin-bottom: 4px; border-radius: 6px; font-size: .51rem; }
.tour-nav-item .icon { width: 13px; height: 13px; flex: none; }
.tour-nav-item.is-selected { background: var(--estate-accent); color: #fff; }
.tour-content { min-width: 0; padding: 19px 16px 16px; }
.tour-page-heading .estate-screen-label { font-size: .5rem; margin-bottom: 6px; }
.estate-screen .tour-page-heading h3 { font-size: 1.4rem; font-weight: 650; color: #172033; }
.tour-page-heading p { font-size: .59rem; line-height: 1.45; margin-top: 5px; color: #59667a; }
.tour-summary { display: flex; align-items: center; flex-wrap: wrap; gap: 7px 13px; margin-block: 13px; color: #526177; font-size: .55rem; }
.tour-summary strong { color: #233047; }
.tour-state { margin-left: auto; color: #286348; }
.tour-state::before { content: ''; display: inline-block; width: 4px; height: 4px; border-radius: 50%; margin-right: 4px; background: currentColor; vertical-align: middle; }
.tour-selector { margin: 0; padding: 0; min-width: 0; border: 0; }
.tour-selector legend { font-size: .55rem; margin-bottom: 8px; color: #536176; }
.tour-record { display: block; position: relative; cursor: pointer; }
.tour-record input { position: absolute; width: 1px; height: 1px; opacity: 0; margin: 0; }
.tour-record > span { display: flex; align-items: center; gap: 9px; min-height: 56px; padding: 10px; margin-bottom: 5px; border: 1px solid #dce2e9; border-radius: 8px; background: #fff; transition: border-color .2s, background .2s; }
.tour-record input:checked + span { border-color: var(--estate-accent); box-shadow: inset 3px 0 0 var(--estate-accent); }
.tour-record:hover > span { background: var(--estate-tint); }
.tour-record input:focus-visible + span { outline: 2px solid #0d1321; outline-offset: 2px; }
.tour-record-icon { display: grid; place-items: center; flex: none; width: 28px; height: 28px; background: var(--estate-tint); color: var(--estate-accent); border-radius: 7px; }
.tour-record-icon .icon { width: 15px; height: 15px; }
.tour-initial { font-size: .72rem; font-weight: 650; }
.tour-record-name { min-width: 0; }
.tour-record-name strong { display: block; color: #172033; font-size: .66rem; font-weight: 650; }
.tour-record-name small { display: block; font-size: .51rem; color: #5b677a; margin-top: 4px; }
.tour-record-state { margin-left: auto; font-size: .49rem; color: #286348; }
.tour-record > span > .icon { width: 12px; height: 12px; color: #607085; flex: none; }
.tour-detail-stack { display: grid; grid-template-columns: minmax(0,1fr); margin-top: 13px; }
.tour-detail { grid-area: 1 / 1; min-width: 0; visibility: hidden; border: 1px solid #dce2e9; border-radius: 9px; padding: 11px; background: #fff; }
.tour-services:has(#tour-reception:checked) #tour-reception-detail,
.tour-services:has(#tour-queue:checked) #tour-queue-detail,
.tour-accounts:has(#tour-customer:checked) #tour-customer-detail,
.tour-accounts:has(#tour-reseller:checked) #tour-reseller-detail { visibility: inherit; }
.tour-detail-heading { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 10px; margin-bottom: 10px; }
.tour-detail-heading strong { font-size: .59rem; font-weight: 650; color: #233047; }
.tour-detail-heading > span { color: #657086; font-size: .48rem; }
.tour-route-line { display: grid; grid-template-columns: 1fr 12px 1.15fr; align-items: center; gap: 8px; padding: 8px 0; font-size: .53rem; color: #44536a; border-top: 1px solid #edf0f4; }
.tour-route-line small { display: block; margin-top: 3px; font-size: .49rem; }
.tour-route-line > .icon { width: 12px; height: 12px; color: var(--estate-accent); }
.tour-route-line strong { font-weight: 600; color: var(--estate-accent); }
.tour-settings { margin: 0; font-size: .53rem; }
.tour-settings > div { display: flex; justify-content: space-between; gap: 8px; padding: 7px 0; border-top: 1px solid #edf0f4; }
.tour-settings dt { color: #59667a; }
.tour-settings dd { margin: 0; color: #233047; font-weight: 600; text-align: right; }
.tour-account-totals { display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; padding-bottom: 11px; }
.tour-account-totals > span { color: #59667a; font-size: .5rem; }
.tour-account-totals strong { display: block; color: #172033; font-weight: 600; font-size: 1.1rem; line-height: 1.4; }
.tour-account-terms { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; border-top: 1px solid #e9edf2; padding-top: 9px; font-size: .5rem; color: #59667a; }
.tour-account-terms strong { display: block; font-size: .52rem; font-weight: 600; color: #233047; margin-top: 4px; }
.tour-account-tree { display: grid; gap: 8px; font-size: .58rem; font-weight: 600; color: #233047; }
.tour-account-tree > span { display: flex; align-items: center; gap: 9px; }
.tour-account-tree > span:not(:first-child) { margin-left: 12px; }
.tour-account-tree > span:last-child { margin-left: 34px; }
.tour-account-tree > span:not(:first-child)::before { content: ''; width: 9px; height: 8px; border-left: 1px solid #93a3b6; border-bottom: 1px solid #93a3b6; margin-top: -8px; }
.tour-account-tree small { color: #59667a; font-size: .49rem; font-weight: 400; }
.tour-detail .tour-reseller-note { color: #59667a; font-size: .5rem; line-height: 1.5; margin-top: 10px; }
.estate-screen .tour-outcome { padding: 13px 16px; margin: 0; border-top: 1px solid #dce2e9; font-size: .62rem; line-height: 1.55; color: #43536a; background: #fff; }
.estate-demo-screens { min-height: 420px; }
#estate-app-screen { align-content: center; }
@media (prefers-reduced-motion: no-preference) {
 .tour-services:has(#tour-reception:checked) #tour-reception-detail,
 .tour-services:has(#tour-queue:checked) #tour-queue-detail,
 .tour-accounts:has(#tour-customer:checked) #tour-customer-detail,
 .tour-accounts:has(#tour-reseller:checked) #tour-reseller-detail { animation: pulse-screen-in .24s ease-out both; }
}
@media (max-width:1120px) and (min-width:901px) {
 .tour-workspace { grid-template-columns: 36px minmax(0,1fr); }
 .tour-sidebar { padding-inline: 4px; }
 .tour-menu-mark { padding-inline: 5px; }
 .tour-nav-item { justify-content: center; padding-inline: 4px; }
 .tour-nav-item > span, .tour-sidebar-heading { display: none; }
 .tour-content { padding-inline: 13px; }
}
@media (max-width:550px) {
 .estate-explorer .estate-demo-header { padding: 13px; gap: 8px; }
 .estate-demo-header .estate-wordmark { font-size: 1.15rem; }
 .tour-window-dots { display: none; }
 .tour-workspace { grid-template-columns: 35px minmax(0,1fr); min-height: 0; }
 .tour-sidebar { padding: 16px 4px; }
 .tour-menu-mark { padding: 0 4px 17px; }
 .tour-nav-item { justify-content: center; padding: 11px 4px; }
 .tour-nav-item > span, .tour-sidebar-heading { display: none; }
 .tour-content { padding: 17px 11px 14px; }
 .tour-page-heading p { font-size: .61rem; }
 .tour-summary { gap: 7px 10px; font-size: .54rem; }
 .tour-record > span { gap: 7px; padding: 10px 9px; }
 .tour-record-icon { width: 24px; height: 26px; }
 .tour-record-state, .tour-record > span > .icon { display: none; }
 .tour-record-name strong { font-size: .68rem; }
 .tour-record-name small { font-size: .54rem; }
 .tour-detail { padding: 11px 9px; }
 .tour-detail-heading strong { font-size: .6rem; }
 .tour-settings, .tour-route-line { font-size: .57rem; }
 .tour-route-line { gap: 5px; }
 .tour-account-totals > span, .tour-account-terms, .tour-account-tree small { font-size: .53rem; }
 .tour-account-terms strong { font-size: .55rem; }
 .tour-detail .tour-reseller-note { font-size: .54rem; }
 .estate-screen .tour-outcome { padding: 13px; }
}
@media (max-width:370px) {
 .tour-workspace { grid-template-columns: 29px minmax(0,1fr); }
 .tour-sidebar { padding-inline: 2px; }
 .tour-content { padding-inline: 9px; }
 .tour-summary .tour-state { display: none; }
 .tour-record-icon { display: none; }
 .tour-route-line { font-size: .54rem; }
 .tour-settings { font-size: .53rem; }
 .estate-demo-domain { font-size: .47rem; }
}
@media (prefers-reduced-motion: reduce) {
 .tour-record > span { transition: none; }
}
