@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; }
.northline-wordmark { color: #273f38; font-size: 1.5rem; font-weight: 750; letter-spacing: -.07em; white-space: nowrap; line-height: 1; }
.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-demo-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin-top: 20px; }
.estate-demo-metrics > div { padding: 12px; border-radius: 7px; border: 1px solid #d6e4db; background: #f1f7f3; }
.estate-demo-metrics strong { display: block; font-size: 1.55rem; line-height: 1.2; font-weight: 450; color: #365544; }
.estate-demo-metrics span { display: block; font-size: .57rem; margin-top: 4px; color: #506557; }
.estate-services { margin-top: 18px; font-size: .66rem; }
.estate-services > div { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 11px 0; border-bottom: 1px solid #e6ece8; }
.estate-services strong { font-weight: 550; }
.estate-services .estate-service-head { font-size: .59rem; color: #64756b; padding-top: 0; }
.estate-services i { display: inline-block; width: 4px; height: 4px; background: var(--green); border-radius: 50%; margin-right: 6px; vertical-align: middle; }
.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 .northline-wordmark { font-size: 1.03rem; }
.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; }
.northline-app-icon { display: grid; place-items: center; width: 50px; height: 50px; margin-bottom: 10px; border-radius: 13px; background: #365c46; color: white; font-size: 1.65rem; font-weight: 650; line-height: 1; letter-spacing: 0; }
.estate-app-note strong { display: block; color: #314c3c; font-size: .83rem; margin-bottom: 5px; }
.estate-admin-access { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px; margin-top: 20px; border: 1px solid #d4e4d9; border-radius: 8px; background: #edf6ef; font-size: .63rem; color: #365a41; }
.estate-admin-access strong { font-size: .58rem; font-weight: 650; }
.estate-admin-rows { margin-top: 12px; }
.estate-admin-rows > div { display: flex; justify-content: space-between; gap: 10px; border-bottom: 1px solid #e2eae5; padding: 13px 0; font-size: .67rem; }
.estate-admin-rows strong { color: #4e6d57; font-weight: 500; }
@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-header .northline-wordmark { font-size: 1.38rem; }
  .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-metrics { gap: 6px; }
  .estate-demo-metrics > div { padding: 10px 8px; }
  .estate-services { font-size: .61rem; }
  .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-admin-rows > div { font-size: .62rem; }
  .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-demo-metrics > div { padding: 10px 6px; }
  .estate-demo-metrics span { font-size: .5rem; }
  .estate-services { font-size: .58rem; }
  .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; }
  .northline-app-icon { width: 39px; height: 39px; font-size: 1.3rem; border-radius: 10px; }
  .estate-demo-tabs label > span { font-size: .54rem; }
  .estate-admin-rows > div { font-size: .56rem; }
  .estate-admin-access { font-size: .56rem; padding-inline: 9px; }
  .estate-admin-access strong { font-size: .52rem; }
}

/* 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; }
