/* Faxton Rentals website: page sections (home, features, contact, about, billing, 404). */

/* ============================== HOME ============================== */
.hero--home { min-height: clamp(700px, 96vh, 940px); padding: calc(var(--head-h) + 64px) 0 230px; }
.hero--home h1 { font-size: clamp(46px, min(7.6vw, 12.4vh), 108px); max-width: 9.6em; }
.hero--home .hero__lead { max-width: 31em; }
.hero__cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.hero__scroll { display: none; }

/* feature cards with real app photos (the "featured homes" row of the mock, adapted to what the app does) */
.cards3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2vw, 28px); margin: 0; padding: 0; list-style: none; }
.pcard { position: relative; display: flex; flex-direction: column; height: 100%; overflow: hidden; border-radius: 24px; background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow-1); transition: transform .3s var(--ease), box-shadow .3s var(--ease); }
.pcard:hover { transform: translateY(-6px); box-shadow: var(--shadow-2); }
.pcard__img { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: var(--tint-2); }
.pcard__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.pcard:hover .pcard__img img { transform: scale(1.05); }
.chip { display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; border-radius: 999px; background: var(--forest); color: #fff; font: 600 13px/1 var(--font-body); }
.pcard .chip { position: absolute; left: 14px; top: 14px; box-shadow: 0 8px 20px -10px rgba(0, 0, 0, .6); }
.pcard__body { display: flex; flex-direction: column; flex: 1; padding: 22px 24px 20px; }
.pcard h3 { font-size: 22px; line-height: 1.2; font-weight: 700; margin-bottom: 8px; }
.pcard p { color: var(--muted); font-size: 16px; }
.pcard .link-arrow { margin-top: auto; padding-top: 14px; }
.pcard .link-arrow::after { content: ""; position: absolute; inset: 0; border-radius: 24px; }

/* how it works */
.steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin: 0; padding: 0; list-style: none; counter-reset: step; }
.step { position: relative; padding: 26px 24px 28px; border-radius: 24px; background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow-1); }
.step__n { position: absolute; top: 20px; right: 22px; font: 800 44px/1 var(--font-head); letter-spacing: -.04em; color: var(--tint-2); }
.step h3 { margin: 18px 0 8px; font-size: 22px; }
.step p { color: var(--muted); font-size: 16px; }
.step:not(:last-child)::after { content: ""; position: absolute; top: 50px; right: -19px; width: 20px; height: 2px; background: repeating-linear-gradient(90deg, var(--brand) 0 4px, transparent 4px 8px); z-index: 1; }

/* trust and safety */
.trust { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.4fr); gap: clamp(20px, 3vw, 40px); align-items: stretch; }
.trust__lead { position: relative; overflow: hidden; display: flex; flex-direction: column; align-items: flex-start; padding: clamp(28px, 3.6vw, 48px); border-radius: var(--r-xl); color: #fff; --focus: var(--lime);
  background: radial-gradient(420px 260px at 100% 0, rgba(52, 211, 153, .3), transparent 70%), linear-gradient(160deg, #06402f, #04271d); }
.trust__lead h2 { color: #fff; font-size: clamp(30px, 3.2vw, 44px); line-height: 1.07; }
.trust__lead p:not(.eyebrow) { margin: 16px 0 28px; color: #cfe6dc; font-size: 17px; }
.trust__lead .btn { margin-top: auto; }
.trust__lead::after { content: ""; position: absolute; right: -40px; bottom: -40px; width: 220px; height: 220px; opacity: .18; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334d399' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2.5l8 3v6c0 5-3.4 8.7-8 10-4.6-1.3-8-5-8-10v-6l8-3z'/%3E%3Cpath d='M8.5 12.2l2.6 2.6 4.6-5'/%3E%3C/svg%3E") no-repeat center / contain; pointer-events: none; }
.trust__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.tcard { display: flex; flex-direction: column; gap: 14px; padding: 24px; border-radius: 22px; background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow-1); transition: transform .25s var(--ease), border-color .25s; }
.tcard:hover { transform: translateY(-4px); border-color: #b9d9ca; }
.tcard h3 { font-size: 19px; line-height: 1.25; margin-bottom: 6px; }
.tcard p { color: var(--muted); font-size: 15.5px; line-height: 1.55; }
.tcard .verified { color: #1fa563; }

/* who it is for */
.roles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin: 0; padding: 0; list-style: none; }
.role { display: flex; flex-direction: column; padding: 28px 24px 24px; border-radius: 24px; background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow-1); transition: transform .3s var(--ease), box-shadow .3s var(--ease); }
.role:hover { transform: translateY(-6px); box-shadow: var(--shadow-2); }
.role h3 { margin: 18px 0 6px; font-size: 24px; }
.role > p { color: var(--muted); font-size: 15.5px; }
.role ul { display: grid; gap: 10px; margin: 18px 0 22px; padding: 0; list-style: none; }
.role li { position: relative; padding-left: 26px; font-size: 15.5px; line-height: 1.45; }
.role li::before { content: ""; position: absolute; left: 0; top: 3px; width: 17px; height: 17px; border-radius: 50%; background: var(--mint-3) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b5a43' stroke-width='3.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5.5 12.5l4.2 4.2 8.8-9.4'/%3E%3C/svg%3E") center / 11px no-repeat; }
.role .btn { margin-top: auto; }

/* launching in Lagos band (no numbers: just where we are starting) */
.lagos { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); align-items: center; gap: 20px 40px; padding: clamp(30px, 4.6vw, 64px); border-radius: var(--r-xl); color: #fff; --focus: var(--lime);
  background: radial-gradient(600px 340px at 85% 20%, rgba(52, 211, 153, .22), transparent 70%), linear-gradient(135deg, #05352a, #03241b); }
.lagos h2 { color: #fff; font-size: clamp(30px, 3.6vw, 48px); line-height: 1.06; }
.lagos p:not(.eyebrow) { margin: 16px 0 0; color: #cfe6dc; max-width: 34em; font-size: 17px; }
.lagos .btn-row { margin-top: 28px; }
.lagos__art { width: 100%; max-width: 560px; justify-self: end; }
.lagos__art svg { width: 100%; height: auto; }
.lagos-list { display: grid; gap: 12px; margin: 22px 0 0; padding: 0; list-style: none; }
.lagos-list li { display: flex; align-items: flex-start; gap: 12px; color: #e3f2ea; font-size: 16px; line-height: 1.5; }
.lagos-list .ic { margin-top: 3px; color: var(--lime); width: 20px; height: 20px; }

/* final call to action */
.cta-band { position: relative; isolation: isolate; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 24px 40px; padding: clamp(32px, 5vw, 72px); border-radius: var(--r-xl); color: #fff; background: #04271d; box-shadow: var(--shadow-2); --focus: var(--lime); }
.cta-band__bg { position: absolute; inset: 0; z-index: -2; }
.cta-band__bg img { width: 100%; height: 100%; object-fit: cover; object-position: 80% 40%; opacity: .62; }
.cta-band::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(3, 32, 23, .94) 0, rgba(3, 32, 23, .78) 45%, rgba(3, 32, 23, .35) 100%); }
.cta-band .logo-mini { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 18px; font: 400 1.25rem/1 var(--font-logo); letter-spacing: -.02em; }
.cta-band .logo-mini b { font-weight: 800; }
.cta-band .logo-mini .logo-svg { height: 30px; width: auto; }
.cta-band .logo-mini .lg-a { fill: #34d399; } .cta-band .logo-mini .lg-b { fill: #fff; }
.cta-band h2 { color: #fff; font-size: clamp(30px, 4vw, 54px); line-height: 1.05; max-width: 14em; }
.cta-band p:not(.eyebrow) { margin-top: 14px; max-width: 36em; color: #d6eadf; font-size: 17.5px; }
.cta-band .btn-row { justify-content: flex-end; }

.faq-wrap { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.4fr); gap: clamp(24px, 4vw, 64px); align-items: start; }
.faq-wrap .lead { margin-top: 14px; }
.faq-wrap .btn-row { margin-top: 22px; }

/* ============================== sub-page hero ============================== */
.hero--sub { padding: calc(var(--head-h) + 56px) 0 clamp(96px, 11vw, 150px); }
.hero--sub h1 { font-size: clamp(36px, 5.1vw, 70px); max-width: 15em; }
.hero--sub .hero__lead { max-width: 33em; }
.hero--sub .hero__inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 24px 40px; }
.hero--sub .hand { align-self: start; margin: 4px clamp(0px, 8vw, 120px) 0 0; }
.hero h1 .accent { display: block; color: var(--lime); }
.hero--features::before, .hero--about::before, .hero--billing::before, .hero--contact::before {
  background:
    radial-gradient(closest-side at 80% 30%, rgba(2, 24, 17, .9), rgba(2, 24, 17, 0)) 82% 28% / 720px 420px no-repeat,
    linear-gradient(90deg, rgba(2, 24, 17, .88) 0%, rgba(2, 24, 17, .68) 42%, rgba(2, 24, 17, .3) 75%, rgba(2, 24, 17, .16) 100%),
    linear-gradient(180deg, rgba(2, 20, 14, .6) 0, rgba(2, 20, 14, 0) 34%, rgba(2, 20, 14, 0) 70%, rgba(2, 20, 14, .45) 100%); }
@media (max-width: 760px) {
  .hero--features::before, .hero--about::before, .hero--billing::before, .hero--contact::before { background: linear-gradient(180deg, rgba(2, 22, 16, .72) 0, rgba(2, 22, 16, .6) 42%, rgba(2, 22, 16, .8) 100%); }
}

/* ============================== FEATURES ============================== */
.jump { position: relative; z-index: 3; margin-top: -42px; }
.jump__bar { display: flex; gap: 4px; width: max-content; max-width: 100%; margin-inline: auto; padding: 8px; border-radius: 999px; background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow-2); overflow-x: auto; scrollbar-width: none; scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; }
.jump__bar::-webkit-scrollbar { display: none; }
.jump__bar a { flex: none; display: inline-flex; align-items: center; min-height: 44px; padding: 0 15px; border-radius: 999px; color: var(--head); font: 600 14.5px/1 var(--font-body); text-decoration: none; white-space: nowrap; scroll-snap-align: start; transition: background-color .2s; }
.jump__bar a:hover { background: var(--tint-2); }
.feat { padding-block: clamp(60px, 8vw, 116px); scroll-margin-top: 80px; }
.feat--alt { background: var(--tint); }
.feat__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(250px, 320px) minmax(0, 1fr); grid-template-areas: "text phone side"; gap: clamp(28px, 4.5vw, 72px); align-items: center; }
.feat--flip .feat__grid { grid-template-columns: minmax(250px, 320px) minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "phone text side"; }
.feat--duo .feat__grid { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); grid-template-areas: "text phone"; }
.feat--duo.feat--flip .feat__grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); grid-template-areas: "phone text"; }
.feat__text { grid-area: text; min-width: 0; }
.feat__phone { grid-area: phone; min-width: 0; }
.feat__side { grid-area: side; min-width: 0; }
.feat__text h2 { font-size: clamp(30px, 3.4vw, 46px); line-height: 1.08; }
.feat__text .lead { margin-top: 16px; }
.feat__tag { display: flex; align-items: center; gap: 14px; margin-bottom: 20px; }
.feat__tag .eyebrow { margin: 0; }
.feat__ic { display: inline-grid; place-items: center; flex: none; width: 52px; height: 52px; border-radius: 16px; background: var(--mint-3); color: var(--brand-dd); }
.feat__ic .ic { width: 26px; height: 26px; stroke-width: 1.8; }
.tiles { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
.tile { display: flex; align-items: center; gap: 16px; padding: 16px 18px; border-radius: 20px; background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow-1); }
.feat--alt .tile { background: #fff; }
.tile .icon-tile { width: 48px; height: 48px; border-radius: 14px; background: var(--mint-3); }
.tile b { display: block; font: 700 17px/1.25 var(--font-head); color: var(--head); letter-spacing: -.01em; }
.tile small { display: block; margin-top: 2px; color: var(--muted); font-size: 14.5px; line-height: 1.4; }
.tiles--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 28px; }
.tiles--2 .tile { padding: 14px 16px; }
.svc-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px 10px; margin: 28px 0 0; padding: 0; list-style: none; }
.svc-grid li { display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; font: 600 14px/1.25 var(--font-body); color: var(--head); }
.svc-grid .ic { width: 34px; height: 34px; stroke-width: 1.6; color: var(--brand-d); }
.svc-grid .icon-tile { width: 58px; height: 58px; border-radius: 18px; background: #fff; border: 1px solid var(--line); }
.howto { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; counter-reset: h; }
.howto li { position: relative; display: flex; gap: 16px; padding: 18px 0; counter-increment: h; border-bottom: 1px dashed #cfe3d8; }
.howto li:last-child { border-bottom: 0; }
.howto li::before { content: counter(h); flex: none; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--forest); color: #fff; font: 700 15px/1 var(--font-head); }
.howto b { display: block; color: var(--head); font: 700 17px/1.3 var(--font-head); }
.howto span { display: block; margin-top: 2px; color: var(--muted); font-size: 15px; line-height: 1.5; }
.sidecard { padding: clamp(22px, 2.4vw, 30px); border-radius: 26px; background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow-1); }
.sidecard h3 { font-size: 21px; margin-bottom: 6px; }
.sidecard--dark { color: #fff; background: radial-gradient(360px 220px at 100% 0, rgba(52, 211, 153, .28), transparent 70%), linear-gradient(160deg, #06402f, #04271d); border: 0; --focus: var(--lime); }
.sidecard--dark h3 { color: #fff; }
.sidecard--dark p:not(.eyebrow) { color: #cfe6dc; }
.qchips { display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0 0; padding: 0; list-style: none; }
.qchips li { padding: 10px 16px; border-radius: 999px; background: var(--tint); border: 1px solid var(--tint-2); color: var(--head); font: 600 14.5px/1 var(--font-body); }
.phones { position: relative; display: flex; justify-content: center; align-items: center; min-height: 100%; padding-block: 10px; }
.phones .phone { width: min(290px, 47%); flex: none; }
.phones .phone:nth-child(1) { transform: translateY(36px); margin-right: -22px; z-index: 1; }
.phones .phone:nth-child(2) { transform: translateY(-24px); z-index: 2; }
.feat__glow { position: relative; isolation: isolate; }
.feat__glow::before { content: ""; position: absolute; z-index: -1; inset: 6% -4% 4%; border-radius: 50%; background: radial-gradient(closest-side, rgba(52, 211, 153, .3), transparent 72%); }
.also { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.also li { display: flex; align-items: flex-start; gap: 16px; padding: 20px 22px; border-radius: 20px; background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow-1); }
.also b { display: block; font: 700 17px/1.3 var(--font-head); color: var(--head); }
.also span { display: block; margin-top: 3px; color: var(--muted); font-size: 15px; line-height: 1.45; }

/* ============================== CONTACT ============================== */
.hero--contact { padding-bottom: clamp(100px, 11vw, 150px); }
.info { position: relative; z-index: 3; margin-top: -58px; }
.info__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.icard { display: flex; align-items: flex-start; gap: 16px; height: 100%; padding: 22px 22px; border-radius: 22px; background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow-2); text-decoration: none; color: var(--text); transition: transform .25s var(--ease), border-color .25s; }
a.icard:hover { transform: translateY(-4px); border-color: #b9d9ca; color: var(--text); }
.icard .icon-tile { background: var(--forest); color: #fff; width: 50px; height: 50px; border-radius: 50%; }
.icard h2, .icard h3 { font: 700 17px/1.2 var(--font-head); margin-bottom: 4px; }
.icard p { font-size: 15.5px; line-height: 1.45; color: var(--head); font-weight: 500; overflow-wrap: anywhere; }
.icard small { display: block; margin-top: 4px; color: var(--muted); font-size: 13.5px; line-height: 1.4; }
.contact { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); gap: clamp(20px, 3vw, 36px); align-items: start; }
.formcard { padding: clamp(24px, 3.4vw, 44px); border-radius: var(--r-xl); background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow-1); }
.formcard h2 { font-size: clamp(30px, 3.2vw, 42px); }
.formcard__lead { margin: 10px 0 26px; color: var(--muted); max-width: 40em; }
.formcard .fine { margin-top: 18px; }
.formgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.formgrid .full { grid-column: 1 / -1; }
.formfoot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; margin-top: 4px; }
.counter { font-size: 13px; color: var(--muted); font-variant-numeric: tabular-nums; margin-top: 6px; text-align: right; }
.sent { display: grid; gap: 12px; justify-items: start; padding: 10px 0; }
.sent .wl__badge { margin-bottom: 4px; }
.sent h2 { font-size: clamp(28px, 3vw, 38px); }
.sent p { color: var(--muted); max-width: 46ch; }
.side-col { display: grid; gap: 20px; }
.lagos-card { position: relative; overflow: hidden; border-radius: var(--r-xl); background: radial-gradient(420px 260px at 80% 0, rgba(52, 211, 153, .22), transparent 70%), linear-gradient(160deg, #06402f, #04271d); color: #fff; box-shadow: var(--shadow-1); }
.lagos-card > svg { width: 100%; height: auto; }
.lagos-card figcaption svg { width: 22px; height: 22px; }
.lagos-card figcaption { display: flex; align-items: center; gap: 10px; padding: 0 22px 20px; color: #cfe6dc; font-size: 15px; }
.lagos-card figcaption .ic { color: var(--lime); flex: none; }
.lagos-card figcaption b { color: #fff; }
.cta-card { position: relative; overflow: hidden; padding: clamp(24px, 3vw, 36px); border-radius: var(--r-xl); color: #fff; background: radial-gradient(360px 220px at 100% 100%, rgba(52, 211, 153, .3), transparent 70%), linear-gradient(135deg, #073f31, #04271d); --focus: var(--lime); }
.cta-card h2 { color: #fff; font-size: clamp(26px, 2.6vw, 34px); line-height: 1.12; }
.cta-card p:not(.eyebrow) { margin: 10px 0 20px; color: #cfe6dc; }
.help-card { display: flex; gap: 16px; align-items: flex-start; padding: 22px 24px; border-radius: 22px; background: var(--tint); border: 1px solid var(--tint-2); }
.help-card .icon-tile { flex: none; }
.help-card h3 { font-size: 18px; margin-bottom: 4px; }
.help-card p { color: var(--muted); font-size: 15.5px; }

/* ============================== ABOUT ============================== */
.story { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(24px, 5vw, 80px); align-items: start; }
.story__body { display: grid; gap: 18px; font-size: 18px; line-height: 1.7; color: var(--text); max-width: 62ch; }
.story__body p:first-child { font-size: 21px; line-height: 1.55; color: var(--head); font-weight: 500; }
.mission { position: relative; overflow: hidden; padding: clamp(32px, 5vw, 72px); border-radius: var(--r-xl); color: #fff; background: radial-gradient(520px 300px at 100% 0, rgba(52, 211, 153, .26), transparent 70%), linear-gradient(135deg, #06402f, #03241b); --focus: var(--lime); }
.mission blockquote { margin: 0; font: 700 clamp(26px, 3.6vw, 46px)/1.14 var(--font-head); letter-spacing: -.03em; max-width: 20em; }
.mission blockquote em { font-style: normal; color: var(--lime); }
.mission .eyebrow { color: var(--lime); }
.mission .eyebrow::before { background: var(--lime); }
.values { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin: 0; padding: 0; list-style: none; }
.value { padding: 28px 24px; border-radius: 24px; background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow-1); transition: transform .3s var(--ease); }
.value:hover { transform: translateY(-5px); }
.value h3 { margin: 18px 0 8px; font-size: 24px; }
.value p { color: var(--muted); font-size: 16px; }
.verify { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(24px, 5vw, 72px); align-items: start; scroll-margin-top: 90px; }
.vlist { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; counter-reset: v; }
.vlist li { position: relative; display: flex; gap: 18px; padding: 20px 22px; border-radius: 20px; background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow-1); counter-increment: v; }
.vlist li::before { content: counter(v); flex: none; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--forest); color: #fff; font: 700 16px/1 var(--font-head); }
.vlist b { display: block; font: 700 18px/1.3 var(--font-head); color: var(--head); }
.vlist span { display: block; margin-top: 3px; color: var(--muted); font-size: 15.5px; line-height: 1.55; }
.callout { display: flex; gap: 14px; align-items: flex-start; padding: 18px 20px; border-radius: 18px; background: #fff8e6; border: 1px solid #f1deaa; color: #5c4510; font-size: 15.5px; line-height: 1.55; }
.callout .ic { flex: none; margin-top: 2px; width: 22px; height: 22px; color: #a8780c; }
.note { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 24px 36px; align-items: start; padding: clamp(26px, 4vw, 52px); border-radius: var(--r-xl); background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow-1); }
.note__mono { display: grid; place-items: center; width: 96px; height: 96px; border-radius: 50%; background: linear-gradient(145deg, #0f7a5b, #05392a); color: #fff; font: 800 34px/1 var(--font-head); letter-spacing: -.03em; box-shadow: 0 0 0 6px var(--mint-3); }
.note h2 { font-size: clamp(28px, 3.2vw, 42px); line-height: 1.1; }
.note__text { display: grid; gap: 14px; margin-top: 18px; max-width: 62ch; font-size: 17.5px; line-height: 1.7; }
.note__sign { margin-top: 6px; font: 600 38px/1 var(--font-hand); color: var(--brand-d); }
.note__sign small { display: block; margin-top: 6px; font: 500 14px/1.4 var(--font-body); color: var(--muted); }

/* ============================== BILLING ============================== */
.free { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.free li { display: flex; flex-direction: column; gap: 12px; padding: 24px; border-radius: 22px; background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow-1); }
.free h3 { font-size: 20px; }
.free p { color: var(--muted); font-size: 15.5px; }
.free .tag { margin-top: auto; padding-top: 6px; align-self: flex-start; padding: 6px 12px; border-radius: 999px; background: var(--mint-3); color: var(--brand-dd); font: 700 13px/1 var(--font-body); }
.pay-flow { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; counter-reset: pf; }
.pay-flow li { position: relative; padding: 26px 22px 24px; border-radius: 22px; background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow-1); counter-increment: pf; }
.pay-flow li::before { content: counter(pf); display: grid; place-items: center; width: 40px; height: 40px; margin-bottom: 16px; border-radius: 50%; background: var(--forest); color: #fff; font: 700 17px/1 var(--font-head); }
.pay-flow h3 { font-size: 19px; margin-bottom: 6px; }
.pay-flow p { color: var(--muted); font-size: 15.5px; }
.pay-flow + .callout { margin-top: 24px; }
.split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; }
.panel { padding: clamp(24px, 3vw, 40px); border-radius: var(--r-xl); background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow-1); }
.panel h2 { font-size: clamp(26px, 2.8vw, 36px); line-height: 1.12; }
.panel > p:not(.eyebrow) { margin-top: 12px; color: var(--muted); }
.panel--dark { color: #fff; border: 0; background: radial-gradient(420px 260px at 100% 0, rgba(52, 211, 153, .26), transparent 70%), linear-gradient(150deg, #06402f, #03241b); --focus: var(--lime); }
.panel--dark h2 { color: #fff; }
.panel--dark > p:not(.eyebrow) { color: #cfe6dc; }
.panel .btn-row { margin-top: 24px; }
.pill-soon { display: inline-flex; align-items: center; gap: 8px; margin-top: 18px; padding: 10px 16px; border-radius: 999px; background: rgba(182, 242, 74, .16); border: 1px solid rgba(182, 242, 74, .5); color: var(--lime); font: 700 14.5px/1.2 var(--font-body); }

/* ============================== 404 ============================== */
.hero--404 { display: flex; align-items: center; min-height: 100vh; min-height: 100svh; padding: 130px 0 90px; }
.hero--404 h1 { font-size: clamp(64px, 14vw, 180px); line-height: .9; }
.hero--404 h1 span { color: var(--lime); }
.hero--404 h2 { color: #fff; font-size: clamp(26px, 3.4vw, 42px); margin-top: 18px; }
.hero--404 .hero__lead { margin-top: 14px; }
.hero--404 .hero__cta { margin-top: 28px; }

/* ============================== responsive ============================== */
@media (max-width: 1180px) {
  .roles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .values { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .free, .pay-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .step:not(:last-child)::after { display: none; }
  .feat__grid, .feat--flip .feat__grid { grid-template-columns: minmax(0, 1fr) minmax(250px, 320px); grid-template-areas: "text phone" "side side"; }
  .feat--flip .feat__grid { grid-template-columns: minmax(250px, 320px) minmax(0, 1fr); grid-template-areas: "phone text" "side side"; }
  .feat__side .tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 980px) {
  .cards3 { grid-template-columns: 1fr; max-width: 560px; margin-inline: auto; }
  .trust { grid-template-columns: 1fr; }
  .lagos { grid-template-columns: 1fr; }
  .lagos__art { justify-self: center; max-width: 440px; order: -1; }
  .cta-band { grid-template-columns: 1fr; }
  .cta-band .btn-row { justify-content: flex-start; }
  .faq-wrap { grid-template-columns: 1fr; }
  .contact { grid-template-columns: 1fr; }
  .story, .verify { grid-template-columns: 1fr; }
  .split { grid-template-columns: 1fr; }
  .also { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .feat--duo .feat__grid, .feat--duo.feat--flip .feat__grid { grid-template-columns: 1fr; grid-template-areas: "text" "phone"; }
  .feat--duo.feat--flip .feat__grid { grid-template-areas: "text" "phone"; }
  .hero--sub .hero__inner { grid-template-columns: 1fr; }
  .hero--sub .hand { display: none; }
}
@media (max-width: 820px) {
  .feat__grid, .feat--flip .feat__grid { grid-template-columns: 1fr; grid-template-areas: "text" "phone" "side"; }
  .feat__phone { padding-block: 8px; }
  .phones { padding-bottom: 28px; }
  .note { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  body { font-size: 16.5px; }
  .hero--home { padding-top: calc(var(--head-h) + 34px); padding-bottom: 150px; min-height: 0; }
  .hero--home h1 { font-size: clamp(44px, 13.2vw, 62px); }
  .hero__cta .btn { flex: 1 1 100%; }
  .steps, .roles, .values, .free, .pay-flow, .also, .trust__grid { grid-template-columns: 1fr; }
  .tiles--2 { grid-template-columns: 1fr; }
  .feat__side .tiles { grid-template-columns: 1fr; }
  .formgrid { grid-template-columns: 1fr; }
  .svc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .phones .phone { width: min(236px, 52%); }
  .phones .phone:nth-child(1) { margin-right: -26px; }
  .jump { margin-top: -34px; }
  .info { margin-top: -44px; }
  .sec-head { margin-bottom: 28px; }
}
@media (max-width: 760px) {
  .hero--contact .hero__bg img, .hero--about .hero__bg img, .hero--billing .hero__bg img { object-position: 12% 40%; }
  .hero--features .hero__bg img { object-position: 78% 50%; }
}
@media (max-width: 420px) {
  .phones .phone { width: 54%; }
  .phone__frame { padding: 8px; border-radius: 38px; }
  .phone__screen { border-radius: 31px; }
  .phone__island { top: 16px; width: 62px; height: 18px; }
}


/* ====================== reference-matched Faxton Features page ====================== */
.frf { color:var(--text); }
.frf-hero {
  min-height:0;
  padding:92px 0 25px;
  background:#06281e;
}
.frf-hero::before {
  background:
    linear-gradient(90deg,rgba(2,24,17,.84) 0%,rgba(2,24,17,.62) 42%,rgba(2,24,17,.18) 78%,rgba(2,24,17,.12) 100%),
    linear-gradient(180deg,rgba(2,20,14,.32),rgba(2,20,14,.05) 40%,rgba(2,20,14,.35));
}
.frf-hero .hero__bg img { object-position:70% 52%; animation:none; }
.frf-hero .hero__inner { display:block; }
.frf-hero .hero-in { max-width:650px; }
.frf-hero .eyebrow { margin-bottom:10px; font-size:11px; letter-spacing:.18em; }
.frf-hero h1 {
  max-width:660px;
  font:700 clamp(32px,3.25vw,45px)/1.04 Georgia,"Times New Roman",serif;
  letter-spacing:-.035em;
}
.frf-hero h1 .accent { margin-top:3px; color:#b5f38a; }
.frf-hero .hero__lead {
  max-width:480px; margin-top:12px;
  font:400 clamp(13px,1.12vw,15px)/1.45 var(--font-body);
  color:rgba(255,255,255,.95); text-shadow:none;
}

.frf-block { position:relative; overflow:hidden; padding:22px 0; background:#fbfdfb; }
.frf .wrap { width:min(100% - 2 * var(--gutter),1120px); }
.frf-copy { min-width:0; align-self:center; }
.frf-copy h2 {
  margin:0; color:#0b4938; font:700 clamp(23px,2.05vw,30px)/1.04 Georgia,"Times New Roman",serif;
  letter-spacing:-.035em;
}
.frf-copy>p { margin-top:12px; max-width:43ch; color:#496158; font-size:13.5px; line-height:1.45; }
.frf-tag { display:flex; align-items:flex-start; gap:14px; margin-bottom:12px; }
.frf-tag>div { min-width:0; }
.frf-icon { display:grid; place-items:center; flex:none; width:48px; height:48px; border-radius:14px; background:#e2f4e8; color:#006747; }
.frf-icon .ic { width:25px; height:25px; stroke-width:1.9; }
.frf-eyebrow { margin:2px 0 6px; color:#087354; font:700 10px/1.2 var(--font-body); letter-spacing:.19em; text-transform:uppercase; }
.frf-checks { display:grid; gap:7px; margin-top:14px; padding:0; list-style:none; }
.frf-checks li { display:flex; align-items:flex-start; gap:10px; color:#33564a; font-size:12px; line-height:1.4; }
.frf-checks li::before { content:"✓"; display:grid; place-items:center; width:14px; height:14px; margin-top:1px; flex:none; border:1.5px solid #075d45; border-radius:50%; color:#075d45; font:700 9px/1 var(--font-body); }
.frf-phone { width:min(236px,100%); margin:0 auto; }
.frf-phone .phone__frame { padding:8px; border-radius:39px; background:linear-gradient(145deg,#1b2926,#020807 44%,#40514a); box-shadow:0 12px 28px rgba(5,40,29,.2),inset 0 0 0 1px rgba(255,255,255,.35); }
.frf-phone .phone__screen { border-radius:31px; background:#06281e; }
.frf-phone .phone__island { top:10px; }
.frf-device { min-width:0; align-self:start; }
.frf-message-grid {
  position:relative; display:grid; grid-template-columns:minmax(0,1fr) 238px minmax(190px,.75fr);
  align-items:start; gap:clamp(22px,3.4vw,48px); min-height:248px;
}
.frf-message .frf-copy { padding-top:7px; }
.frf-device--chat { height:265px; display:flex; justify-content:center; overflow:hidden; }
.frf-device--chat .frf-phone { transform:translateY(-1px); }
.frf-bubbles { display:grid; align-content:center; gap:10px; padding:35px 0 12px; min-width:0; }
.frf-bubble,.frf-file {
  width:fit-content; max-width:100%; padding:13px 15px; border:1px solid #e0eee5; border-radius:16px;
  background:#fff; color:#175344; box-shadow:0 8px 22px rgba(14,66,47,.06);
  font-size:11px; line-height:1.3;
}
.frf-bubble--green { justify-self:start; background:#e1f8e8; border-color:#d2f1dc; }
.frf-bubble small { display:block; margin-top:5px; color:#69877a; text-align:right; font-size:9px; }
.frf-bubble small span { color:#15976b; font-weight:800; }
.frf-file { display:flex; align-items:center; gap:10px; width:fit-content; min-width:170px; }
.frf-file-icon { display:grid; place-items:center; flex:none; width:30px; height:30px; border-radius:9px; background:#0f9565; color:#fff; }
.frf-file-icon .ic { width:17px; height:17px; }
.frf-file b,.frf-file small { display:block; }
.frf-file b { font-size:10px; }
.frf-file small { margin-top:2px; color:#7a9589; font-size:9px; }

.frf-services { background:linear-gradient(110deg,#f1faf5,#eaf7f0 68%,#f7fbf8); }
.frf-services-grid {
  display:grid; grid-template-columns: minmax(180px,.72fr) minmax(0,1.25fr) minmax(190px,.8fr);
  align-items:center; gap:clamp(22px,3.5vw,48px); min-height:260px;
}
.frf-service-device { align-self:end; height:266px; display:flex; justify-content:center; overflow:hidden; }
.frf-service-device .frf-phone { width:min(218px,100%); transform:translateY(2px); }
.frf-services-copy>p { max-width:40ch; }
.frf-service-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; margin:0; padding:0; list-style:none; }
.frf-service-grid li {
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px; min-height:70px; padding:10px 6px;
  border:1px solid rgba(13,87,60,.07); border-radius:13px; background:#fff; color:#064b38;
  box-shadow:0 5px 18px rgba(6,62,43,.035); font:600 11px/1.25 var(--font-body); text-align:center;
}
.frf-service-grid .ic { width:25px; height:25px; color:#086e4e; stroke-width:2.2; }

.frf-duo { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); background:#fafdfe; }
.frf-duo-card { display:grid; grid-template-columns:minmax(110px,.72fr) minmax(0,1fr); align-items:center; gap:clamp(14px,2.5vw,30px); min-width:0; min-height:264px; padding:20px clamp(16px,3vw,40px); overflow:hidden; }
.frf-call { border-right:1px solid #e1ede6; background:linear-gradient(110deg,#f7fcf9,#fff); }
.frf-call-device { align-self:end; height:238px; display:flex; align-items:flex-end; justify-content:center; overflow:hidden; }
.frf-phone--small { width:min(158px,100%); }
.frf-phone--small .phone__frame { padding:7px; border-radius:31px; }
.frf-phone--small .phone__screen { border-radius:25px; }
.frf-phone--small .phone__island { top:9px; width:54px; height:15px; }
.frf-duo-copy { align-self:center; }
.frf-duo-copy .frf-tag { gap:10px; margin-bottom:10px; }
.frf-duo-copy .frf-icon { width:42px; height:42px; border-radius:12px; }
.frf-duo-copy .frf-icon .ic { width:22px; height:22px; }
.frf-duo-copy h2 { font-size:clamp(21px,1.9vw,27px); }
.frf-duo-copy>p { margin-top:8px; font-size:12px; line-height:1.4; }
.frf-duo-copy .frf-checks { gap:6px; margin-top:10px; }
.frf-duo-copy .frf-checks li { font-size:11px; }
.frf-safety { grid-template-columns:minmax(0,1fr) minmax(105px,.68fr); background:linear-gradient(105deg,#f5fbf7,#fff); border-left:1px solid #eef3ef; }
.frf-safety-device { align-self:end; height:238px; display:flex; align-items:flex-end; justify-content:center; overflow:hidden; }
.frf-safety-device .frf-phone { transform:translateY(2px); }

.frf-cta { position:relative; isolation:isolate; overflow:hidden; min-height:120px; background:#063326; }
.frf-cta-bg { position:absolute; inset:0; z-index:-2; overflow:hidden; }
.frf-cta-bg img { width:100%; height:100%; object-fit:cover; object-position:50% 70%; }
.frf-cta::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(2,42,30,.92),rgba(2,42,30,.78) 55%,rgba(2,42,30,.88)); }
.frf-cta-inner { display:grid; grid-template-columns:70px minmax(280px,1.2fr) minmax(170px,.85fr) auto; align-items:center; gap:24px; min-height:120px; }
.frf-cta-mark { width:58px; height:56px; object-fit:contain; }
.frf-cta-heading h2 { color:#fff; font:700 clamp(23px,2.15vw,31px)/1.12 Georgia,"Times New Roman",serif; letter-spacing:-.035em; }
.frf-cta-heading h2 span { color:#b5f38a; }
.frf-cta-inner>p { color:#edf8f1; font-size:12px; }
.frf-cta-inner>.btn { min-height:44px; padding-inline:22px; font-size:12px; }

@media (min-width:1500px) {
  .frf-message-grid { min-height:270px; }
  .frf-device--chat { height:290px; }
  .frf-services-grid { min-height:280px; }
  .frf-service-device { height:284px; }
  .frf-duo-card { min-height:280px; }
}
@media (max-width:1050px) {
  .frf-message-grid { grid-template-columns:minmax(0,1fr) 205px minmax(160px,.7fr); gap:22px; }
  .frf-services-grid { grid-template-columns:minmax(160px,.64fr) minmax(0,1.3fr) minmax(160px,.72fr); gap:22px; }
  .frf-duo-card { padding-inline:18px; gap:14px; }
  .frf-cta-inner { grid-template-columns:54px minmax(250px,1fr) minmax(145px,.7fr) auto; gap:16px; }
}
@media (max-width:800px) {
  .frf-hero { padding:98px 0 27px; }
  .frf-hero h1 { font-size:clamp(31px,5.7vw,42px); }
  .frf-message-grid { grid-template-columns:minmax(0,1fr) 210px; gap:20px; min-height:250px; }
  .frf-bubbles { display:none; }
  .frf-services-grid { grid-template-columns:minmax(140px,.65fr) minmax(0,1fr); gap:22px; }
  .frf-service-device { grid-row:1; grid-column:1; height:255px; }
  .frf-services-copy { grid-row:1; grid-column:2; }
  .frf-service-grid { grid-column:1/-1; grid-template-columns:repeat(3,minmax(0,1fr)); padding-bottom:8px; }
  .frf-service-grid li { min-height:62px; }
  .frf-duo { grid-template-columns:1fr; }
  .frf-duo-card { min-height:240px; padding:20px max(var(--gutter),calc((100vw - 680px)/2)); }
  .frf-call { border-right:0; border-bottom:1px solid #e1ede6; }
  .frf-safety { border-left:0; }
  .frf-cta-inner { grid-template-columns:54px minmax(0,1fr) auto; gap:16px; padding-block:14px; }
  .frf-cta-inner>p { grid-column:2; grid-row:2; }
  .frf-cta-inner>.btn { grid-column:3; grid-row:1/3; }
}
@media (max-width:560px) {
  .frf-hero { padding:91px 0 25px; }
  .frf-hero h1 { max-width:540px; font-size:clamp(29px,8vw,37px); }
  .frf-hero .hero__lead { font-size:13px; max-width:43ch; }
  .frf-block { padding:24px 0 20px; }
  .frf-message-grid { grid-template-columns:minmax(0,1fr) 112px; gap:12px; min-height:0; align-items:start; }
  .frf-copy h2 { font-size:24px; }
  .frf-tag { gap:10px; }
  .frf-icon { width:38px; height:38px; border-radius:12px; }
  .frf-icon .ic { width:21px; height:21px; }
  .frf-eyebrow { font-size:9px; letter-spacing:.13em; margin-bottom:5px; }
  .frf-copy>p { font-size:12px; line-height:1.48; }
  .frf-checks { gap:7px; margin-top:12px; }
  .frf-checks li { font-size:11px; gap:7px; }
  .frf-checks li::before { width:13px; height:13px; }
  .frf-device--chat { height:235px; }
  .frf-message .frf-phone { width:114px; }
  .frf-message .phone__frame { padding:5px; border-radius:23px; }
  .frf-message .phone__screen { border-radius:18px; }
  .frf-message .phone__island { width:46px; height:12px; top:8px; }
  .frf-services-grid { grid-template-columns:95px minmax(0,1fr); gap:14px; align-items:start; }
  .frf-service-device { height:225px; }
  .frf-service-device .frf-phone { width:100px; }
  .frf-service-device .phone__frame { padding:5px; border-radius:23px; }
  .frf-service-device .phone__screen { border-radius:18px; }
  .frf-service-device .phone__island { width:42px; height:12px; top:7px; }
  .frf-services-copy .frf-tag { gap:8px; }
  .frf-services-copy h2 { font-size:21px; }
  .frf-services-copy>p { font-size:11.5px; }
  .frf-services-copy .frf-checks li { font-size:10.5px; }
  .frf-service-grid { gap:7px; margin-top:8px; }
  .frf-service-grid li { min-height:58px; padding:8px 4px; font-size:10px; }
  .frf-service-grid .ic { width:22px; height:22px; }
  .frf-duo-card { grid-template-columns:100px minmax(0,1fr); min-height:230px; padding:17px 16px; gap:12px; }
  .frf-phone--small { width:96px; }
  .frf-call-device,.frf-safety-device { height:210px; }
  .frf-duo-copy h2 { font-size:21px; }
  .frf-duo-copy .frf-icon { width:36px; height:36px; }
  .frf-duo-copy .frf-eyebrow { font-size:8px; }
  .frf-duo-copy>p { font-size:11px; }
  .frf-duo-copy .frf-checks li { font-size:10px; }
  .frf-safety { grid-template-columns:minmax(0,1fr) 90px; }
  .frf-safety-device .frf-phone { width:90px; }
  .frf-cta-inner { grid-template-columns:36px minmax(0,1fr); gap:10px; padding-block:17px; }
  .frf-cta-mark { width:34px; height:38px; }
  .frf-cta-heading h2 { font-size:23px; }
  .frf-cta-inner>p { grid-column:2; grid-row:2; font-size:11px; }
  .frf-cta-inner>.btn { grid-column:2; grid-row:3; justify-self:start; min-height:40px; margin-top:4px; }
}
@media (prefers-reduced-motion:reduce) {
  .frf-hero .hero__bg img { animation:none; }
  .frf * { scroll-behavior:auto; }
}


/* Final scale and mobile pass for the supplied Features-page reference. */
.frf .wrap { width:min(100% - 2 * var(--gutter),1000px); }
.frf-block { padding-block:18px; }
.frf-copy h2 { font-size:clamp(22px,2vw,27px); line-height:1.06; }
.frf-copy>p { font-size:12.5px; line-height:1.43; }
.frf-checks { margin-top:12px; gap:6px; }
.frf-checks li { font-size:11.5px; line-height:1.38; }
.frf-message-grid { grid-template-columns:minmax(0,1.1fr) 220px minmax(0,.68fr); min-height:232px; gap:clamp(20px,2.8vw,34px); }
.frf-device--chat { height:246px; }
.frf-message .frf-phone { width:218px; }
.frf-bubbles { gap:8px; padding-top:29px; }
.frf-bubble,.frf-file { padding:11px 13px; font-size:10.5px; }
.frf-services-grid { grid-template-columns:minmax(150px,.68fr) minmax(0,1.2fr) minmax(175px,.76fr); min-height:246px; gap:clamp(18px,2.8vw,34px); }
.frf-service-device { height:250px; }
.frf-service-device .frf-phone { width:202px; }
.frf-service-grid { gap:6px; }
.frf-service-grid li { min-height:65px; font-size:10.5px; }
.frf-service-grid .ic { width:23px; height:23px; }
.frf-duo-card { min-height:246px; padding-block:16px; gap:clamp(12px,2vw,22px); }
.frf-call-device,.frf-safety-device { height:222px; }
.frf-phone--small { width:min(148px,100%); }
.frf-duo-copy h2 { font-size:clamp(20px,1.8vw,24px); }
.frf-duo-copy>p { font-size:11.5px; }
.frf-duo-copy .frf-checks li { font-size:10.5px; }
.frf-cta-inner { min-height:108px; }
.frf-cta-heading h2 { font-size:clamp(22px,2vw,28px); }
.frf-cta-inner>p { font-size:11px; }

@media (max-width:800px) {
  .frf .wrap { width:min(100% - 36px,680px); }
  .frf-hero { padding:91px 0 23px; }
  .frf-hero h1 { max-width:600px; font-size:clamp(30px,5vw,38px); }
  .frf-message-grid { grid-template-columns:minmax(0,1fr) 190px; gap:20px; min-height:220px; }
  .frf-device--chat { height:230px; }
  .frf-message .frf-phone { width:190px; }
  .frf-services-grid { grid-template-columns:135px minmax(0,1fr); gap:18px; min-height:0; }
  .frf-service-device { height:225px; }
  .frf-service-device .frf-phone { width:180px; }
  .frf-service-grid li { min-height:58px; }
  .frf-duo-card { min-height:220px; padding-inline:18px; }
  .frf-call-device,.frf-safety-device { height:205px; }
  .frf-phone--small { width:132px; }
  .frf-cta-inner { grid-template-columns:44px minmax(0,1fr) auto; gap:13px; }
  .frf-cta-mark { width:44px; height:44px; }
}
@media (max-width:560px) {
  .frf .wrap { width:calc(100% - 32px); }
  .frf-hero { padding:88px 0 25px; }
  .frf-hero .hero__inner { display:block; }
  .frf-hero .hero-in { max-width:100%; }
  .frf-hero h1 { font-size:clamp(28px,7.6vw,35px); line-height:1.03; }
  .frf-hero .hero__lead { max-width:40ch; font-size:12.5px; line-height:1.5; }
  .frf-block { padding:22px 0; }
  .frf-message-grid { grid-template-columns:minmax(0,1fr); gap:14px; min-height:0; }
  .frf-message .frf-copy { padding-top:0; }
  .frf-copy h2 { font-size:clamp(23px,6vw,27px); }
  .frf-copy>p { font-size:12px; }
  .frf-checks li { font-size:11.5px; }
  .frf-device--chat { height:250px; overflow:hidden; }
  .frf-message .frf-phone { width:150px; }
  .frf-bubbles { display:none; }
  .frf-services-grid { grid-template-columns:minmax(0,1fr); gap:15px; }
  .frf-services-copy { grid-column:1; grid-row:1; }
  .frf-service-grid { grid-column:1; grid-row:2; grid-template-columns:repeat(3,minmax(0,1fr)); margin:0; }
  .frf-service-grid li { min-height:64px; font-size:10px; }
  .frf-service-device { grid-column:1; grid-row:3; height:190px; justify-content:center; }
  .frf-service-device .frf-phone { width:145px; }
  .frf-duo { grid-template-columns:minmax(0,1fr); }
  .frf-duo-card { grid-template-columns:minmax(0,1fr); gap:10px; min-height:0; padding:22px 16px 0; }
  .frf-call { border-right:0; border-bottom:1px solid #e1ede6; }
  .frf-duo-copy { grid-row:1; }
  .frf-call-device,.frf-safety-device { grid-row:2; height:218px; justify-content:center; }
  .frf-phone--small,.frf-safety-device .frf-phone { width:126px; }
  .frf-duo-copy .frf-tag { gap:10px; }
  .frf-duo-copy .frf-icon { width:38px; height:38px; }
  .frf-duo-copy h2 { font-size:24px; }
  .frf-duo-copy>p { font-size:12px; }
  .frf-duo-copy .frf-checks li { font-size:11px; }
  .frf-safety { grid-template-columns:minmax(0,1fr); }
  .frf-cta-inner { grid-template-columns:36px minmax(0,1fr); gap:10px; padding:18px 0; }
  .frf-cta-mark { width:34px; height:36px; }
  .frf-cta-heading h2 { font-size:22px; }
  .frf-cta-inner>p { grid-column:2; grid-row:2; font-size:11px; }
  .frf-cta-inner>.btn { grid-column:2; grid-row:3; justify-self:start; min-height:40px; margin-top:4px; }
}
@media (max-width:360px) {
  .frf .wrap { width:calc(100% - 26px); }
  .frf-tag { gap:8px; }
  .frf-icon { width:35px; height:35px; }
  .frf-service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .frf-duo-card { padding-inline:13px; }
}


/* Live chat phone demo: lightweight local-only interactive prototype. */
.frf-message-grid { grid-template-columns:minmax(0,1.05fr) 184px minmax(155px,.72fr); min-height:402px; align-items:center; gap:clamp(18px,2.7vw,32px); }
.frf-device--chat { height:auto; min-height:0; align-self:stretch; align-items:center; overflow:visible; }
.frf-message .frf-phone { width:176px; margin:0 auto; }
.frf-phone--interactive .phone__screen { isolation:isolate; }
.frf-live-chat {
  position:absolute; z-index:3; inset:4.1% 0 0; display:flex; flex-direction:column; min-height:0; overflow:hidden;
  color:#143b30; background:radial-gradient(ellipse at 105% 60%,rgba(113,196,155,.15),transparent 47%),linear-gradient(145deg,#fdfefc 0%,#f0f7f1 55%,#f7faf5 100%);
  font:400 9px/1.35 var(--font-body); text-align:left;
}
.frf-chat-head { display:flex; flex:none; align-items:center; gap:5px; min-height:42px; padding:5px 6px; background:rgba(255,255,255,.94); border-bottom:1px solid #e4ece5; }
.frf-chat-back { display:grid; flex:none; place-items:center; width:17px; height:26px; padding:0; border:0; background:transparent; color:#145743; }
.frf-chat-back .ic { width:14px; height:14px; }
.frf-agent-avatar { display:grid; flex:none; place-items:center; width:26px; height:26px; border-radius:50%; background:linear-gradient(145deg,#d5e8da,#709d85); color:#104a38; font-size:8px; font-weight:800; box-shadow:inset 0 0 0 1px rgba(12,84,57,.1); }
.frf-agent-meta { display:grid; min-width:0; flex:1; gap:2px; line-height:1.1; }
.frf-agent-meta b { overflow:hidden; color:#0c3e2e; font-size:8.5px; font-weight:750; text-overflow:ellipsis; white-space:nowrap; }
.frf-agent-meta small { color:#678075; font-size:7px; white-space:nowrap; }
.frf-agent-meta small i { display:inline-block; width:4px; height:4px; margin-left:2px; border-radius:50%; background:#28ae73; vertical-align:middle; }
.frf-chat-actions { display:flex; flex:none; gap:3px; }
.frf-chat-actions button { display:grid; place-items:center; width:22px; height:24px; padding:0; border:0; border-radius:7px; background:#e6f4eb; color:#087653; }
.frf-chat-actions .ic { width:12px; height:12px; stroke-width:2.3; }
.frf-chat-thread { display:flex; flex:1 1 auto; flex-direction:column; align-items:stretch; gap:7px; min-height:0; padding:8px 7px 6px; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#b9d8c6 transparent; }
.frf-chat-date { align-self:center; margin:0 0 1px; color:#789184; font-size:6.5px; font-weight:700; letter-spacing:.1em; }
.frf-msg { display:flex; flex:none; flex-direction:column; align-self:flex-start; gap:3px; width:fit-content; max-width:91%; padding:7px 8px 5px; border:1px solid rgba(8,75,51,.035); border-radius:0 10px 10px 10px; background:#fff; color:#243c33; box-shadow:0 1px 2px rgba(8,55,37,.06); overflow-wrap:anywhere; animation:frf-msg-in .22s ease both; }
.frf-msg p { margin:0; font-size:8.6px; line-height:1.4; }
.frf-msg time { align-self:flex-end; display:flex; align-items:center; gap:3px; color:#8a9e93; font-size:6.5px; white-space:nowrap; }
.frf-msg--outgoing { align-self:flex-end; border-color:#0b4d3b; border-radius:10px 0 10px 10px; background:#0d4e3c; color:#f5fcf7; }
.frf-msg--outgoing time { color:#b2d7c6; }
.frf-chat-ticks { color:#7bc8f5; font-weight:800; letter-spacing:-2px; }
.frf-msg--voice { display:grid; grid-template-columns:25px minmax(0,1fr) auto; align-items:center; gap:5px; width:96%; max-width:96%; padding:6px; border-radius:10px; }
.frf-voice-play { display:grid; place-items:center; width:25px; height:25px; padding:0; border:0; border-radius:50%; background:#18795a; color:#fff; }
.frf-voice-play .ic { width:11px; height:11px; fill:currentColor; stroke-width:0; }
.frf-wave { display:flex; align-items:center; justify-content:space-between; gap:1.3px; min-width:0; height:23px; overflow:hidden; color:#5db592; }
.frf-wave i { display:block; width:2px; flex:none; height:var(--wave,8px); border-radius:2px; background:currentColor; opacity:.75; }
.frf-wave i:nth-child(3n){--wave:14px}.frf-wave i:nth-child(4n){--wave:6px}.frf-wave i:nth-child(5n){--wave:17px}.frf-wave i:nth-child(7n){--wave:10px}.frf-wave i:nth-child(2n){--wave:12px}
.frf-msg--voice>b { color:#285342; font-size:8px; font-weight:650; }
.frf-msg--voice time { grid-column:1/-1; justify-self:start; margin-left:2px; }
.frf-msg--voice.is-playing .frf-wave i { animation:frf-wave .46s ease-in-out infinite alternate; }
.frf-msg--voice.is-playing .frf-wave i:nth-child(3n){animation-delay:.11s}.frf-msg--voice.is-playing .frf-wave i:nth-child(4n){animation-delay:.22s}
.frf-msg--photo { width:86%; max-width:86%; padding:4px 4px 5px; border-radius:10px; }
.frf-live-chat .frf-msg--photo img { position:static; display:block; width:100%; height:82px; aspect-ratio:4/3; object-fit:cover; object-position:center; border-radius:7px; }
.frf-msg--photo p { padding:2px 3px 0; }.frf-msg--photo time { padding:0 3px; }
.frf-msg--file { display:grid; grid-template-columns:24px minmax(0,1fr) 22px; align-items:center; gap:5px; width:100%; max-width:100%; padding:5px; border-radius:10px; }
.frf-demo-doc { display:grid; place-items:center; width:24px; height:27px; border-radius:6px; background:#e3f3e9; color:#137153; font-size:6px; font-weight:800; }
.frf-demo-doc .ic { width:14px; height:14px; }.frf-demo-doc-copy { display:grid; gap:3px; min-width:0; }
.frf-demo-doc-copy b { overflow:hidden; color:#315246; font-size:7px; text-overflow:ellipsis; white-space:nowrap; }
.frf-demo-doc-copy small { color:#84988e; font-size:6.3px; }
.frf-msg--file>button { display:grid; place-items:center; width:22px; height:22px; border:1px solid #dbe9df; border-radius:50%; background:#fff; color:#487565; }
.frf-msg--file>button .ic { width:11px; height:11px; }.frf-msg--file time { grid-column:1/-1; }
.frf-msg--attachment { display:flex; flex-direction:row; align-items:center; gap:6px; max-width:100%; }.frf-msg--attachment .frf-demo-doc { background:#fff; }.frf-msg--attachment time { display:none; }
.frf-chat-composer { display:flex; flex:none; align-items:center; gap:4px; min-height:35px; padding:5px 6px; background:#fff; border-top:1px solid #e3ece6; }
.frf-composer-action,.frf-send { display:grid; flex:none; place-items:center; width:25px; height:25px; padding:0; border:0; border-radius:50%; background:#e8f5ed; color:#186749; }
.frf-composer-action .ic,.frf-send .ic { width:13px; height:13px; }
.frf-chat-composer input { min-width:0; flex:1; width:20px; height:26px; padding:0 5px; border:1px solid transparent; border-radius:8px; outline:none; background:#f4f8f4; color:#153d30; font:400 8px/1.2 var(--font-body); }
.frf-chat-composer input:focus { border-color:#87c2a3; background:#fff; }.frf-chat-composer input::placeholder { color:#82978c; }
.frf-send { background:#0c7653; color:#fff; }.frf-send:disabled { cursor:default; opacity:.35; }
.frf-chat-notice { position:absolute; z-index:5; left:8px; right:8px; bottom:42px; margin:0; padding:6px 8px; border-radius:8px; background:#082f24; color:#fff; font-size:8px; line-height:1.3; text-align:center; opacity:0; visibility:hidden; transform:translateY(4px); transition:opacity .18s,transform .18s,visibility .18s; pointer-events:none; }
.frf-chat-notice.is-visible { opacity:1; visibility:visible; transform:none; }
.frf-demo-caption { margin-top:8px; color:#658175; font-size:9px; text-align:center; }
.frf-typing { display:flex; align-items:center; align-self:flex-start; gap:3px; padding:7px 9px; border-radius:10px; background:#fff; color:#6d8a7b; }
.frf-typing>span { width:3px; height:3px; border-radius:50%; background:#479c78; animation:frf-wave .55s ease-in-out infinite alternate; }
.frf-typing>span:nth-child(2){animation-delay:.13s}.frf-typing>span:nth-child(3){animation-delay:.26s}.frf-typing small { margin-left:3px; font-size:6.5px; }
@keyframes frf-msg-in { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:none; } }
@keyframes frf-wave { from { transform:scaleY(.55); opacity:.55; } to { transform:scaleY(1.15); opacity:1; } }
@media (max-width:1050px) {
  .frf-message-grid { grid-template-columns:minmax(0,1fr) 168px minmax(135px,.68fr); min-height:390px; gap:18px; }
  .frf-message .frf-phone { width:160px; }.frf-msg--photo { width:91%; max-width:91%; }.frf-bubbles { padding-top:22px; }
}
@media (max-width:800px) {
  .frf-message-grid { grid-template-columns:minmax(0,1fr) 170px; min-height:385px; gap:18px; }
  .frf-message .frf-phone { width:164px; }.frf-device--chat { height:auto; align-self:center; }
}
@media (max-width:560px) {
  .frf-message-grid { grid-template-columns:minmax(0,1fr); min-height:0; gap:10px; }
  .frf-message .frf-phone { width:min(210px,58vw); }.frf-device--chat { height:auto; min-height:0; overflow:visible; }
  .frf-chat-head { min-height:43px; gap:6px; }.frf-chat-thread { padding:9px 8px 7px; gap:8px; }
  .frf-msg p { font-size:9px; }.frf-live-chat .frf-msg--photo img { height:92px; }
  .frf-chat-composer { min-height:38px; }.frf-composer-action,.frf-send { width:27px; height:27px; }.frf-demo-caption { font-size:10px; }
}
@media (prefers-reduced-motion:reduce) {
  .frf-msg,.frf-wave i,.frf-typing>span { animation:none !important; }.frf-chat-notice { transition:none; }
}


/* ====================== Home page: match the supplied real-estate concept ====================== */
body[data-page="home"] .site-header { padding-block:13px; }
body[data-page="home"] .site-header .bar {
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:clamp(12px,2vw,26px);
}
body[data-page="home"] .nav-pill { justify-self:center; gap:2px; padding:4px; }
body[data-page="home"] .nav-pill a {
  min-height:40px; padding-inline:clamp(9px,1.15vw,16px);
  font-size:clamp(11px,.9vw,13px);
}
body[data-page="home"] .logo { gap:9px; font-size:1.12rem; }
body[data-page="home"] .logo .logo-svg { height:32px; }
body[data-page="home"] .header-cta {
  min-height:44px; padding-inline:25px; font-size:13px;
}
body[data-page="home"] .hero--home {
  min-height:clamp(760px,94vh,860px);
  padding:clamp(205px,26vh,235px) 0 220px;
}
body[data-page="home"] .hero--home .hero__bg img {
  object-position:64% 48%;
  animation:none;
}
body[data-page="home"] .hero--home::before {
  background:
    linear-gradient(90deg,rgba(3,33,25,.58) 0%,rgba(3,33,25,.38) 40%,rgba(3,33,25,.10) 72%,rgba(3,33,25,.08) 100%),
    linear-gradient(180deg,rgba(3,33,25,.16) 0%,rgba(3,33,25,.02) 48%,rgba(3,33,25,.35) 100%);
}
body[data-page="home"] .hero--home .hero__inner { display:block; }
body[data-page="home"] .hero--home .pills { gap:10px; margin-bottom:24px; }
body[data-page="home"] .hero--home .pills li {
  padding:10px 17px; font-size:12.5px; font-weight:600;
}
body[data-page="home"] .hero--home h1 {
  max-width:10.3em;
  font-size:clamp(48px,5.25vw,74px);
  line-height:1.04; letter-spacing:-.035em;
}
body[data-page="home"] .hero--home .hero__lead {
  max-width:37em; margin-top:16px;
  font-size:clamp(14px,1.25vw,18px); line-height:1.48;
}
body[data-page="home"] .wl { margin-top:-205px; }
body[data-page="home"] .wl__card {
  padding:24px clamp(22px,2.5vw,34px) 22px;
  border-radius:24px;
  box-shadow:0 22px 64px -30px rgba(3,41,29,.34);
}
body[data-page="home"] .wl__head { align-items:center; margin-bottom:18px; gap:8px 24px; }
body[data-page="home"] .wl__title {
  font-size:clamp(24px,2.4vw,30px); line-height:1.12;
}
body[data-page="home"] .wl__sub { max-width:43ch; font-size:13.5px; line-height:1.45; }
body[data-page="home"] .wl__form { gap:10px 12px; }
body[data-page="home"] .wl__form .field > label { margin-bottom:6px; font-size:12px; }
body[data-page="home"] .wl__form .field input,
body[data-page="home"] .wl__form .field select {
  min-height:48px; padding-inline:13px; border-radius:12px; font-size:14px;
}
body[data-page="home"] .wl__form .btn {
  min-height:48px; margin-top:24px; padding-inline:20px; border-radius:12px; font-size:13px;
}
body[data-page="home"] .wl__fine { margin-top:12px; font-size:11px; line-height:1.5; }
body[data-page="home"] .wl .form-status { font-size:13px; }
body[data-page="home"] .home-intro {
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.95fr);
  gap:28px clamp(28px,5vw,72px); align-items:end;
}
body[data-page="home"] .home-intro-title { max-width:620px; }
body[data-page="home"] .home-intro-title .h2 {
  max-width:13ch; font-size:clamp(34px,4vw,53px); line-height:1.05;
}
body[data-page="home"] .home-intro-copy { max-width:560px; justify-self:end; }
body[data-page="home"] .home-intro-copy .lead { margin-top:0; font-size:clamp(15px,1.4vw,18px); line-height:1.55; }
body[data-page="home"] .home-intro-copy .link-arrow { margin-top:10px; }

/* Header and hero stay uncluttered on tablets. */
@media (max-width:1019px) {
  body[data-page="home"] .site-header .bar { grid-template-columns:minmax(0,1fr) auto; }
  body[data-page="home"] .hero--home {
    min-height:740px; padding:170px 0 180px;
  }
  body[data-page="home"] .hero--home h1 { max-width:10em; font-size:clamp(46px,7vw,64px); }
  body[data-page="home"] .wl { margin-top:-145px; }
  body[data-page="home"] .wl__card { padding:24px; }
  body[data-page="home"] .home-intro { gap:24px; }
}
@media (max-width:760px) {
  body[data-page="home"] .hero--home {
    min-height:690px; padding:145px 0 155px;
  }
  body[data-page="home"] .hero--home .hero__bg img { object-position:67% 50%; }
  body[data-page="home"] .hero--home::before {
    background:linear-gradient(180deg,rgba(2,24,17,.34) 0%,rgba(2,24,17,.50) 45%,rgba(2,24,17,.77) 100%);
  }
  body[data-page="home"] .hero--home .pills { gap:8px; margin-bottom:20px; }
  body[data-page="home"] .hero--home .pills li { padding:9px 13px; font-size:11px; }
  body[data-page="home"] .hero--home h1 { max-width:10.6em; font-size:clamp(40px,7.6vw,58px); }
  body[data-page="home"] .hero--home .hero__lead { max-width:38ch; font-size:14px; }
  body[data-page="home"] .wl { margin-top:-115px; }
  body[data-page="home"] .wl__card { padding:22px 19px 20px; border-radius:22px; }
  body[data-page="home"] .wl__head { align-items:flex-start; margin-bottom:18px; }
  body[data-page="home"] .wl__title { font-size:25px; }
  body[data-page="home"] .wl__sub { font-size:13px; }
  body[data-page="home"] .wl__form { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  body[data-page="home"] .wl__form .field { min-width:0; }
  body[data-page="home"] .wl__form .btn { grid-column:1/-1; margin-top:2px; width:100%; }
  body[data-page="home"] .wl__fine { font-size:10.5px; }
  body[data-page="home"] .home-intro { grid-template-columns:minmax(0,1fr); gap:14px; }
  body[data-page="home"] .home-intro-title .h2 { max-width:16ch; font-size:clamp(32px,8vw,42px); }
  body[data-page="home"] .home-intro-copy { justify-self:start; }
}
@media (max-width:480px) {
  body[data-page="home"] .hero--home { min-height:650px; padding:132px 0 135px; }
  body[data-page="home"] .hero--home h1 { font-size:clamp(37px,10vw,48px); max-width:10.2em; }
  body[data-page="home"] .hero--home .hero__lead { font-size:13px; line-height:1.5; }
  body[data-page="home"] .wl { margin-top:-94px; }
  body[data-page="home"] .wl__card { padding:20px 15px 18px; border-radius:20px; }
  body[data-page="home"] .wl__title { font-size:23px; }
  body[data-page="home"] .wl__form { grid-template-columns:minmax(0,1fr); }
  body[data-page="home"] .wl__form .btn { grid-column:1; }
  body[data-page="home"] .home-intro-title .h2 { font-size:34px; }
}
@media (prefers-reduced-motion:reduce) {
  body[data-page="home"] .hero--home .hero__bg img { animation:none; }
}


/* ===================== Consistent, compact public-site system ===================== */
.site-header, body[data-page="home"] .site-header { padding:10px 0; }
.site-header .bar, body[data-page="home"] .site-header .bar {
  display:grid; grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center; gap:clamp(12px,1.8vw,24px);
}
.site-header .logo, body[data-page="home"] .site-header .logo {
  gap:8px; font-size:1rem; white-space:nowrap;
}
.site-header .logo .logo-svg, body[data-page="home"] .site-header .logo .logo-svg {
  width:34px; height:29px; flex:none;
}
.site-header .nav-pill, body[data-page="home"] .site-header .nav-pill {
  justify-self:center; display:flex; align-items:center; gap:1px;
  max-width:100%; padding:4px; border-radius:999px;
}
.site-header .nav-pill a, body[data-page="home"] .site-header .nav-pill a {
  min-height:36px; padding:0 clamp(8px,.9vw,13px);
  font-size:clamp(11px,.84vw,12.5px); line-height:1; white-space:nowrap;
}
.site-header .header-cta, body[data-page="home"] .site-header .header-cta {
  min-height:40px; padding:0 20px; gap:7px; font-size:12.5px;
}
.site-header .header-cta .ic, body[data-page="home"] .site-header .header-cta .ic {
  width:15px; height:15px;
}
.site-header .menu-btn, body[data-page="home"] .site-header .menu-btn {
  width:42px; height:42px;
}
.site-header .menu-btn .ic { width:21px; height:21px; }
.site-header .bar { max-width:1340px; width:min(100% - 2 * var(--gutter),1340px); margin-inline:auto; }
.site-header .nav-pill a[aria-current="page"]::after { bottom:3px; height:2px; }
.m-menu nav a { min-height:50px; padding:0 16px; font-size:19px; }
.m-menu .btn { min-height:48px; }

/* A slightly tighter type and spacing scale, kept readable across every page. */
.section { padding-block:clamp(46px,6.4vw,86px); }
.section--tight { padding-block:clamp(34px,4.5vw,58px); }
.h2 { font-size:clamp(28px,3.2vw,43px); line-height:1.08; }
.lead { font-size:clamp(15px,1.35vw,17.5px); line-height:1.55; }
.sec-head { gap:18px 28px; margin-bottom:clamp(26px,3.4vw,42px); }
.sec-head .lead,.h2 + .lead { margin-top:10px; }
.cards3 { gap:clamp(12px,1.6vw,20px); }
.pcard { border-radius:20px; }
.pcard__img { aspect-ratio:16/9.7; }
.pcard__body { padding:18px 19px 18px; }
.pcard h3 { font-size:clamp(18px,1.5vw,21px); margin-bottom:7px; }
.pcard p { font-size:14px; line-height:1.5; }
.pcard .link-arrow { font-size:14px; padding-top:12px; }
.steps { gap:14px; }
.step { padding:22px 19px 23px; border-radius:20px; }
.step h3 { margin:14px 0 7px; font-size:19px; }
.step p { font-size:14px; line-height:1.5; }
.step__n { top:16px; right:17px; font-size:37px; }
.trust { gap:clamp(18px,2.5vw,30px); }
.trust__lead { padding:clamp(23px,3vw,38px); border-radius:24px; }
.trust__lead h2 { font-size:clamp(28px,3vw,40px); }
.trust__lead p:not(.eyebrow) { font-size:15px; margin:12px 0 22px; }
.trust__grid { gap:12px; }
.tcard { padding:19px; gap:10px; border-radius:18px; }
.tcard h3 { font-size:17px; }
.tcard p { font-size:14px; line-height:1.5; }
.roles { gap:14px; }
.role { padding:22px 18px 19px; border-radius:20px; }
.role h3 { margin:14px 0 5px; font-size:21px; }
.role > p,.role li { font-size:14px; }
.role ul { gap:8px; margin:14px 0 18px; }
.hero--sub:not(.frf-hero) { padding:calc(var(--head-h) + 43px) 0 clamp(76px,8vw,108px); }
.hero--sub:not(.frf-hero) h1 { font-size:clamp(34px,4.4vw,58px); line-height:1.06; }
.hero--sub:not(.frf-hero) .hero__lead { font-size:clamp(14px,1.25vw,16.5px); line-height:1.5; }
.jump__bar { padding:6px; }
.jump__bar a { min-height:38px; padding-inline:12px; font-size:13px; }
.feat { padding-block:clamp(45px,6.2vw,82px); }
.feat__grid { gap:clamp(20px,3.2vw,44px); }
.feat__text h2 { font-size:clamp(25px,3vw,40px); }
.feat__text p { font-size:14.5px; line-height:1.55; }
.feat__text .checks li { font-size:13px; }
.wl__title { font-size:clamp(24px,2.4vw,30px); }
.wl__sub { font-size:14px; }
.wl__form { gap:11px; }
.wl__form .btn { padding-inline:20px; font-size:14px; }
.faq summary { min-height:54px; padding:12px 17px; font-size:16px; }
.faq .ans { font-size:14px; }

/* Homepage hero uses the forest-and-cantilevered-house image from the reference. */
body[data-page="home"] .hero--home {
  min-height:clamp(700px,91vh,830px);
  padding:clamp(178px,22vh,208px) 0 180px;
}
body[data-page="home"] .hero--home .hero__bg img {
  object-position:69% 50%; animation:none;
}
body[data-page="home"] .hero--home .pills { margin-bottom:20px; gap:9px; }
body[data-page="home"] .hero--home .pills li {
  padding:9px 15px; font-size:12px; line-height:1;
}
body[data-page="home"] .hero--home h1 {
  max-width:10.2em; font-size:clamp(43px,4.8vw,66px); line-height:1.04;
}
body[data-page="home"] .hero--home .hero__lead {
  max-width:36em; margin-top:13px;
  font-size:clamp(13.5px,1.1vw,16px); line-height:1.48;
}
body[data-page="home"] .wl { margin-top:-182px; }
body[data-page="home"] .wl__card { padding:22px clamp(20px,2.3vw,31px) 19px; border-radius:22px; }
body[data-page="home"] .wl__head { margin-bottom:15px; gap:8px 20px; }
body[data-page="home"] .wl__title { font-size:clamp(23px,2.2vw,29px); }
body[data-page="home"] .wl__sub { max-width:42ch; font-size:13px; }
body[data-page="home"] .wl__form { gap:9px 11px; }
body[data-page="home"] .wl__form .field > label { font-size:11.5px; margin-bottom:5px; }
body[data-page="home"] .wl__form .field input,
body[data-page="home"] .wl__form .field select {
  min-height:44px; padding:0 12px; border-radius:11px; font-size:13px;
}
body[data-page="home"] .wl__form .btn {
  min-height:44px; margin-top:22px; padding-inline:17px; font-size:12px; border-radius:11px;
}
body[data-page="home"] .wl__fine { margin-top:9px; font-size:10.5px; }
body[data-page="home"] .home-intro-title .h2 { font-size:clamp(31px,3.5vw,46px); }
body[data-page="home"] .home-intro-copy .lead { font-size:clamp(14px,1.25vw,16.5px); }

/* Privacy policy page uses the same compact reading measure as the rest of the site. */
.fr-privacy { max-width:780px; }
.fr-privacy-updated { margin-bottom:16px; color:var(--muted); font-size:12px; font-weight:650; letter-spacing:.04em; }
.fr-privacy h2.h2 { margin:28px 0 10px; font-size:clamp(21px,2.2vw,28px); line-height:1.18; }
.fr-privacy p { max-width:75ch; margin:0 0 12px; color:var(--muted); font-size:14px; line-height:1.7; }
.fr-privacy a { color:var(--brand-d); font-weight:650; text-underline-offset:3px; }
.fr-privacy-list { display:grid; gap:8px; margin:4px 0 15px; padding-left:22px; color:var(--muted); font-size:14px; line-height:1.65; }
.fr-privacy-list strong { color:var(--head); }
.fr-privacy-note { margin-top:24px; padding:18px 20px; border:1px solid var(--line); border-radius:16px; background:var(--tint); }
.fr-privacy-note strong { display:block; margin-bottom:6px; color:var(--head); font-size:15px; }
.fr-privacy-note p { margin:0; }

@media (max-width:1180px) {
  .site-header .nav-pill a, body[data-page="home"] .site-header .nav-pill a { padding-inline:8px; font-size:11.5px; }
  .site-header .bar, body[data-page="home"] .site-header .bar { gap:10px; }
  .site-header .header-cta, body[data-page="home"] .site-header .header-cta { padding-inline:15px; }
}
@media (max-width:1019px) {
  .site-header .nav-pill,.site-header .header-cta { display:none !important; }
  .site-header .menu-btn { display:inline-grid; }
  .site-header .bar,body[data-page="home"] .site-header .bar { grid-template-columns:minmax(0,1fr) auto; }
}
@media (max-width:760px) {
  .section { padding-block:42px; }
  .section--tight { padding-block:30px; }
  .sec-head { margin-bottom:24px; }
  .pcard__body { padding:16px; }
  .step { padding:20px 17px; }
  .hero--sub:not(.frf-hero) { padding:calc(var(--head-h) + 38px) 0 75px; }
  .hero--sub:not(.frf-hero) h1 { font-size:clamp(32px,6.8vw,45px); }
  body[data-page="home"] .hero--home { min-height:650px; padding:140px 0 145px; }
  body[data-page="home"] .hero--home .hero__bg img { object-position:67% 50%; }
  body[data-page="home"] .hero--home::before {
    background:linear-gradient(180deg,rgba(2,24,17,.32) 0%,rgba(2,24,17,.48) 48%,rgba(2,24,17,.8) 100%);
  }
  body[data-page="home"] .hero--home .pills { gap:7px; margin-bottom:17px; }
  body[data-page="home"] .hero--home .pills li { padding:8px 12px; font-size:11px; }
  body[data-page="home"] .hero--home h1 { max-width:10.3em; font-size:clamp(37px,8vw,53px); }
  body[data-page="home"] .hero--home .hero__lead { max-width:39ch; font-size:13px; }
  body[data-page="home"] .wl { margin-top:-108px; }
  body[data-page="home"] .wl__card { padding:20px 17px 18px; }
  body[data-page="home"] .wl__head { align-items:flex-start; margin-bottom:14px; }
  body[data-page="home"] .wl__title { font-size:23px; }
  body[data-page="home"] .wl__sub { font-size:12px; }
  body[data-page="home"] .wl__form { grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; }
  body[data-page="home"] .wl__form .btn { grid-column:1/-1; margin-top:2px; width:100%; }
  body[data-page="home"] .home-intro-title .h2 { font-size:clamp(30px,7.8vw,39px); }
}
@media (max-width:480px) {
  .site-header .logo-word { font-size:14px; }
  .site-header .logo .logo-svg { width:32px; height:27px; }
  .m-menu nav a { min-height:48px; font-size:18px; }
  .hero--sub:not(.frf-hero) { padding:calc(var(--head-h) + 30px) 0 68px; }
  .hero--sub:not(.frf-hero) h1 { font-size:clamp(29px,8vw,38px); }
  body[data-page="home"] .hero--home { min-height:630px; padding:126px 0 135px; }
  body[data-page="home"] .hero--home h1 { font-size:clamp(35px,9.5vw,45px); }
  body[data-page="home"] .hero--home .hero__lead { font-size:12.5px; }
  body[data-page="home"] .wl { margin-top:-96px; }
  body[data-page="home"] .wl__card { padding:18px 14px 16px; border-radius:18px; }
  body[data-page="home"] .wl__title { font-size:21px; }
  body[data-page="home"] .wl__form { grid-template-columns:minmax(0,1fr); }
  body[data-page="home"] .wl__form .btn { grid-column:1; }
  .fr-privacy h2.h2 { margin-top:23px; font-size:22px; }
  .fr-privacy p,.fr-privacy-list { font-size:13.5px; }
}
@media (prefers-reduced-motion:reduce) {
  body[data-page="home"] .hero--home .hero__bg img { animation:none; }
}


/* Layout repair: preserve the individual page designs while sharing one header scale. */
body[data-page] .site-header { padding:10px 0 !important; }
body[data-page] .site-header .bar {
  width:min(100% - 2 * var(--gutter),1340px); max-width:1340px;
  margin-inline:auto; display:grid; grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center; gap:clamp(12px,1.8vw,24px);
}
body[data-page] .site-header .logo {
  display:inline-flex; align-items:center; gap:8px; justify-self:start;
  min-height:40px; font-size:1rem; white-space:nowrap;
}
body[data-page] .site-header .logo .logo-svg { width:34px; height:29px; flex:none; }
body[data-page] .site-header .nav-pill {
  justify-self:center; display:flex; align-items:center; gap:1px;
  max-width:100%; padding:4px; border-radius:999px;
}
body[data-page] .site-header .nav-pill a {
  display:inline-flex; align-items:center; justify-content:center;
  min-height:36px; padding:0 clamp(8px,.9vw,13px);
  font-size:clamp(11px,.84vw,12.5px); line-height:1; white-space:nowrap;
}
body[data-page] .site-header .header-cta {
  display:inline-flex; align-items:center; justify-content:center;
  min-height:40px; padding:0 20px; gap:7px; font-size:12.5px;
}
body[data-page] .site-header .header-cta .ic { width:15px; height:15px; }
body[data-page] .site-header .menu-btn { width:42px; height:42px; }
body[data-page] .site-header .menu-btn .ic { width:21px; height:21px; }
body[data-page] .site-header .nav-pill a[aria-current="page"]::after { bottom:3px; height:2px; }

/* Inner-page hero panels: consistent proportions, legible contrast and calmer spacing. */
body[data-page="features"] .frf-hero,
body[data-page="about"] .hero--sub,
body[data-page="billing"] .hero--sub,
body[data-page="contact"] .hero--sub,
body[data-page="privacy"] .hero--sub {
  min-height:clamp(350px,39vw,465px);
  padding:clamp(126px,13vw,166px) 0 clamp(54px,6vw,78px);
}
body[data-page="about"] .hero--sub .hero__inner,
body[data-page="billing"] .hero--sub .hero__inner,
body[data-page="contact"] .hero--sub .hero__inner,
body[data-page="privacy"] .hero--sub .hero__inner {
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end; gap:22px clamp(24px,4vw,48px);
}
body[data-page="about"] .hero--sub .hero-in,
body[data-page="billing"] .hero--sub .hero-in,
body[data-page="contact"] .hero--sub .hero-in,
body[data-page="privacy"] .hero--sub .hero-in { max-width:740px; }
body[data-page="about"] .hero--sub h1,
body[data-page="billing"] .hero--sub h1,
body[data-page="contact"] .hero--sub h1,
body[data-page="privacy"] .hero--sub h1 { font-size:clamp(34px,4vw,54px); line-height:1.06; max-width:12em; }
body[data-page="about"] .hero--sub .hero__lead,
body[data-page="billing"] .hero--sub .hero__lead,
body[data-page="contact"] .hero--sub .hero__lead,
body[data-page="privacy"] .hero--sub .hero__lead { max-width:39em; margin-top:13px; font-size:clamp(14px,1.15vw,16px); line-height:1.5; }
body[data-page="about"] .hero--sub .hand,
body[data-page="billing"] .hero--sub .hand,
body[data-page="contact"] .hero--sub .hand { align-self:end; margin:0 0 7px; font-size:clamp(18px,1.7vw,24px); }
body[data-page="features"] .frf-hero h1 { font-size:clamp(32px,3.3vw,44px); line-height:1.05; }
body[data-page="features"] .frf-hero .hero__lead { font-size:13px; max-width:42ch; line-height:1.45; }

/* Content panels and card grids should not collapse or overflow on inner pages. */
body[data-page="about"] .story,
body[data-page="contact"] .contact-layout,
body[data-page="billing"] .billing-layout { min-width:0; }
body[data-page="about"] .story,
body[data-page="contact"] .contact-layout { gap:clamp(20px,3vw,40px); }
body[data-page="billing"] .free,
body[data-page="about"] .values,
body[data-page="contact"] .info__grid { gap:14px; }
body[data-page="about"] .value,
body[data-page="billing"] .free li,
body[data-page="contact"] .icard { min-width:0; }
body[data-page="about"] .value { padding:20px; }
body[data-page="billing"] .free li { padding:18px; }
body[data-page="contact"] .icard { padding:16px; }
body[data-page="privacy"] .fr-privacy { width:min(100%,780px); margin-inline:auto; }
body[data-page="privacy"] .fr-privacy h2 { text-wrap:pretty; }
body[data-page="privacy"] .fr-privacy p,
body[data-page="privacy"] .fr-privacy li { overflow-wrap:anywhere; }

/* Keep the exact same navigation breakpoint and compact header across every page. */
@media (max-width:1180px) {
  body[data-page] .site-header .bar { gap:10px; }
  body[data-page] .site-header .nav-pill a { padding-inline:8px; font-size:11.5px; }
  body[data-page] .site-header .header-cta { padding-inline:15px; }
}
@media (max-width:1019px) {
  body[data-page] .site-header .nav-pill,
  body[data-page] .site-header .header-cta { display:none !important; }
  body[data-page] .site-header .menu-btn { display:inline-grid !important; }
  body[data-page] .site-header .bar { grid-template-columns:minmax(0,1fr) auto; }
  body[data-page="features"] .frf-hero,
  body[data-page="about"] .hero--sub,
  body[data-page="billing"] .hero--sub,
  body[data-page="contact"] .hero--sub,
  body[data-page="privacy"] .hero--sub {
    min-height:340px; padding:116px 0 60px;
  }
  body[data-page="about"] .hero--sub .hero__inner,
  body[data-page="billing"] .hero--sub .hero__inner,
  body[data-page="contact"] .hero--sub .hero__inner,
  body[data-page="privacy"] .hero--sub .hero__inner { grid-template-columns:minmax(0,1fr) auto; gap:16px; }
  body[data-page="about"] .hero--sub h1,
  body[data-page="billing"] .hero--sub h1,
  body[data-page="contact"] .hero--sub h1,
  body[data-page="privacy"] .hero--sub h1 { font-size:clamp(32px,5.4vw,45px); }
}
@media (max-width:760px) {
  body[data-page="features"] .frf-hero { min-height:0; padding:94px 0 25px; }
  body[data-page="about"] .hero--sub,
  body[data-page="billing"] .hero--sub,
  body[data-page="contact"] .hero--sub,
  body[data-page="privacy"] .hero--sub { min-height:0; padding:calc(var(--head-h) + 34px) 0 70px; }
  body[data-page="about"] .hero--sub .hero__inner,
  body[data-page="billing"] .hero--sub .hero__inner,
  body[data-page="contact"] .hero--sub .hero__inner,
  body[data-page="privacy"] .hero--sub .hero__inner { grid-template-columns:minmax(0,1fr); align-items:start; gap:10px; }
  body[data-page="about"] .hero--sub h1,
  body[data-page="billing"] .hero--sub h1,
  body[data-page="contact"] .hero--sub h1,
  body[data-page="privacy"] .hero--sub h1 { font-size:clamp(31px,6.5vw,43px); }
  body[data-page="about"] .hero--sub .hand,
  body[data-page="billing"] .hero--sub .hand,
  body[data-page="contact"] .hero--sub .hand { display:none; }
  body[data-page="about"] .values { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body[data-page="billing"] .free { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body[data-page="contact"] .info__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:480px) {
  body[data-page="about"] .values,
  body[data-page="billing"] .free,
  body[data-page="contact"] .info__grid { grid-template-columns:minmax(0,1fr); }
  body[data-page="features"] .frf-hero h1 { font-size:clamp(29px,8vw,36px); }
  body[data-page="features"] .frf-hero .hero__lead { font-size:12px; }
  body[data-page="privacy"] .fr-privacy { padding-inline:0; }
}


/* SPA navigation: quick page swaps with a restrained entrance and tiny top progress line. */
@keyframes fx-page-enter {
  from { opacity:0; transform:translateY(5px); }
  to { opacity:1; transform:translateY(0); }
}
main#main.spa-entering { animation:fx-page-enter .17s ease-out both; }
#fx-spa-progress {
  position:fixed; z-index:9999; inset:0 auto auto 0; width:100%; height:2px;
  background:linear-gradient(90deg,#b6f24a,#34d399,#b6f24a);
  transform:scaleX(0); transform-origin:left center; opacity:0; pointer-events:none;
}
#fx-spa-progress.is-active { opacity:1; animation:fx-progress .8s cubic-bezier(.22,.61,.36,1) infinite; }
@keyframes fx-progress { 0%{transform:scaleX(.05)} 60%{transform:scaleX(.72)} 100%{transform:scaleX(.93)} }
@media (prefers-reduced-motion:reduce) {
  main#main.spa-entering { animation:none; }
  #fx-spa-progress.is-active { animation:none; transform:scaleX(.7); }
}


/* Features page repair: cleaner heading, complete phone frames, desktop/tablet/mobile layouts */
body[data-page="features"] .frf-hero {
  min-height:clamp(365px,39vw,465px);
  padding:clamp(128px,13vw,162px) 0 clamp(54px,6vw,72px);
}
body[data-page="features"] .frf-hero .hero-in { max-width:690px; }
body[data-page="features"] .frf-hero h1 {
  max-width:14ch; font-family:var(--font-head),"Inter",sans-serif;
  font-size:clamp(37px,4.1vw,55px); font-weight:750; line-height:1.02;
  letter-spacing:-.045em; text-wrap:balance;
}
body[data-page="features"] .frf-hero h1 .accent {
  display:block; margin-top:5px; font:inherit; color:#b5f38a;
}
body[data-page="features"] .frf-hero .hero__lead {
  max-width:54ch; margin-top:16px; font-size:clamp(14px,1.2vw,16px); line-height:1.52;
}
body[data-page="features"] .frf-block { padding:clamp(34px,4vw,52px) 0; }
body[data-page="features"] .frf-message-grid {
  grid-template-columns:minmax(0,1fr) minmax(180px,210px) minmax(155px,.72fr);
  align-items:center; gap:clamp(18px,2.5vw,34px); min-height:450px;
}
body[data-page="features"] .frf-message .frf-copy { padding-top:0; }
body[data-page="features"] .frf-device,
body[data-page="features"] .frf-device--chat,
body[data-page="features"] .frf-service-device,
body[data-page="features"] .frf-call-device,
body[data-page="features"] .frf-safety-device { min-width:0; overflow:visible; }
body[data-page="features"] .frf-device--chat {
  height:auto; min-height:0; align-self:center; display:flex;
  justify-content:center; align-items:center;
}
body[data-page="features"] .frf-phone {
  display:block; position:relative; width:min(100%,200px); max-width:100%;
  min-width:0; flex:none; margin:0 auto; transform:none;
}
body[data-page="features"] .frf-phone .phone__frame {
  position:relative; width:100%; padding:clamp(5px,.7vw,8px); border-radius:clamp(24px,3vw,38px);
}
body[data-page="features"] .frf-phone .phone__screen {
  position:relative; width:100%; height:auto; aspect-ratio:390 / 880;
  overflow:hidden; border-radius:clamp(19px,2.5vw,31px); isolation:isolate;
}
body[data-page="features"] .frf-phone .phone__screen > img {
  position:absolute; inset:4.1% 0 0; width:100%; height:95.9%;
  display:block; object-fit:cover; object-position:top center;
}
body[data-page="features"] .frf-phone .phone__sb { height:4.1%; }
body[data-page="features"] .frf-phone .phone__island { top:1.1%; }
body[data-page="features"] .frf-phone--interactive { width:min(100%,194px); }
body[data-page="features"] .frf-live-chat { inset:4.1% 0 0; min-width:0; }
body[data-page="features"] .frf-chat-head,
body[data-page="features"] .frf-chat-thread,
body[data-page="features"] .frf-chat-composer { min-width:0; }
body[data-page="features"] .frf-chat-thread { flex:1 1 auto; min-height:0; overscroll-behavior:contain; }
body[data-page="features"] .frf-chat-composer { flex:none; }
body[data-page="features"] .frf-demo-caption {
  max-width:220px; margin:12px auto 0; font-size:11px; line-height:1.4; text-align:center;
}
body[data-page="features"] .frf-bubbles { min-width:0; align-self:center; padding:12px 0; }
body[data-page="features"] .frf-bubble,
body[data-page="features"] .frf-file { min-width:0; overflow-wrap:anywhere; }

body[data-page="features"] .frf-services-grid {
  grid-template-columns:minmax(170px,.72fr) minmax(0,1.25fr) minmax(170px,.8fr);
  align-items:center; gap:clamp(18px,2.5vw,34px); min-height:440px;
}
body[data-page="features"] .frf-service-device {
  height:auto; min-height:0; align-self:center; display:flex; justify-content:center; align-items:center;
}
body[data-page="features"] .frf-service-device .frf-phone { width:min(100%,185px); }
body[data-page="features"] .frf-service-grid { min-width:0; gap:8px; }
body[data-page="features"] .frf-service-grid li { min-width:0; overflow-wrap:anywhere; }

body[data-page="features"] .frf-duo-card {
  grid-template-columns:minmax(132px,.7fr) minmax(0,1fr);
  gap:clamp(14px,1.8vw,24px); align-items:center; min-height:400px;
  padding:28px clamp(18px,2.6vw,36px);
}
body[data-page="features"] .frf-call-device,
body[data-page="features"] .frf-safety-device {
  height:auto; min-height:0; align-self:center; display:flex;
  justify-content:center; align-items:center;
}
body[data-page="features"] .frf-phone--small,
body[data-page="features"] .frf-call-device .frf-phone,
body[data-page="features"] .frf-safety-device .frf-phone { width:min(100%,150px); }
body[data-page="features"] .frf-phone--small .phone__frame { padding:6px; }
body[data-page="features"] .frf-phone--small .phone__screen { border-radius:24px; }
body[data-page="features"] .frf-duo-copy { min-width:0; align-self:center; }
body[data-page="features"] .frf-duo-copy h2 {
  font-family:var(--font-head),"Inter",sans-serif; line-height:1.08; letter-spacing:-.035em;
}
body[data-page="features"] .frf-duo-copy p,
body[data-page="features"] .frf-duo-copy li { overflow-wrap:anywhere; }
body[data-page="features"] .frf-cta-heading h2 {
  font-family:var(--font-head),"Inter",sans-serif; font-size:clamp(22px,2vw,29px);
  line-height:1.12; letter-spacing:-.04em;
}

@media (max-width:1050px) {
  body[data-page="features"] .frf-hero { min-height:365px; padding:120px 0 54px; }
  body[data-page="features"] .frf-hero h1 { font-size:clamp(36px,4.6vw,49px); max-width:15ch; }
  body[data-page="features"] .frf-message-grid {
    grid-template-columns:minmax(0,1fr) minmax(165px,190px); min-height:430px; gap:22px;
  }
  body[data-page="features"] .frf-bubbles { display:none; }
  body[data-page="features"] .frf-services-grid {
    grid-template-columns:minmax(150px,.65fr) minmax(0,1.35fr); min-height:0;
    gap:24px; padding-block:8px;
  }
  body[data-page="features"] .frf-service-device { grid-column:1; grid-row:1; }
  body[data-page="features"] .frf-service-device .frf-phone { width:min(100%,175px); }
  body[data-page="features"] .frf-services-copy { grid-column:2; grid-row:1; }
  body[data-page="features"] .frf-service-grid {
    grid-column:1/-1; grid-row:2; grid-template-columns:repeat(3,minmax(0,1fr));
  }
  body[data-page="features"] .frf-service-grid li { min-height:65px; }
  body[data-page="features"] .frf-duo-card { min-height:365px; padding:24px 20px; gap:16px; }
  body[data-page="features"] .frf-call,
  body[data-page="features"] .frf-safety { grid-template-columns:minmax(112px,.65fr) minmax(0,1fr); }
  body[data-page="features"] .frf-phone--small,
  body[data-page="features"] .frf-call-device .frf-phone,
  body[data-page="features"] .frf-safety-device .frf-phone { width:min(100%,138px); }
}
@media (max-width:760px) {
  body[data-page="features"] .frf-hero { min-height:0; padding:105px 0 38px; }
  body[data-page="features"] .frf-hero h1 { max-width:14ch; font-size:clamp(34px,7vw,46px); }
  body[data-page="features"] .frf-hero .hero__lead { max-width:44ch; font-size:14px; }
  body[data-page="features"] .frf-block { padding:32px 0; }
  body[data-page="features"] .frf-message-grid {
    grid-template-columns:minmax(0,1fr); align-items:start; gap:24px; min-height:0;
  }
  body[data-page="features"] .frf-message .frf-copy { grid-column:1; grid-row:1; }
  body[data-page="features"] .frf-device--chat {
    grid-column:1; grid-row:2; height:auto; min-height:0;
    display:flex; flex-direction:column; align-items:center; overflow:visible;
  }
  body[data-page="features"] .frf-message .frf-phone,
  body[data-page="features"] .frf-phone--interactive { width:min(190px,58vw); }
  body[data-page="features"] .frf-demo-caption { margin-top:10px; }
  body[data-page="features"] .frf-bubbles { display:none; }
  body[data-page="features"] .frf-services-grid {
    grid-template-columns:minmax(0,1fr); min-height:0; gap:24px;
  }
  body[data-page="features"] .frf-services-copy { grid-column:1; grid-row:1; }
  body[data-page="features"] .frf-service-device {
    grid-column:1; grid-row:2; height:auto; min-height:0; display:flex; overflow:visible;
  }
  body[data-page="features"] .frf-service-device .frf-phone { width:min(170px,52vw); }
  body[data-page="features"] .frf-service-grid {
    grid-column:1; grid-row:3; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px;
  }
  body[data-page="features"] .frf-service-grid li { min-height:72px; font-size:11px; }
  body[data-page="features"] .frf-duo { grid-template-columns:minmax(0,1fr); }
  body[data-page="features"] .frf-duo-card {
    grid-template-columns:minmax(0,1fr); min-height:0; gap:22px;
    padding:30px max(var(--gutter),calc((100vw - 620px)/2)); overflow:visible;
  }
  body[data-page="features"] .frf-call,
  body[data-page="features"] .frf-safety { grid-template-columns:minmax(0,1fr); }
  body[data-page="features"] .frf-duo-copy { grid-column:1; grid-row:1; }
  body[data-page="features"] .frf-call-device,
  body[data-page="features"] .frf-safety-device {
    grid-column:1; grid-row:2; height:auto; min-height:0; overflow:visible;
  }
  body[data-page="features"] .frf-phone--small,
  body[data-page="features"] .frf-call-device .frf-phone,
  body[data-page="features"] .frf-safety-device .frf-phone { width:min(158px,48vw); }
  body[data-page="features"] .frf-cta-inner {
    grid-template-columns:42px minmax(0,1fr); gap:12px; padding:24px 0;
  }
  body[data-page="features"] .frf-cta-mark { width:40px; height:40px; }
  body[data-page="features"] .frf-cta-heading { grid-column:2; grid-row:1; }
  body[data-page="features"] .frf-cta-inner>p { grid-column:2; grid-row:2; margin:2px 0 0; }
  body[data-page="features"] .frf-cta-inner>.btn { grid-column:2; grid-row:3; justify-self:start; margin-top:3px; }
}
@media (max-width:420px) {
  body[data-page="features"] .frf-hero { padding:94px 0 32px; }
  body[data-page="features"] .frf-hero h1 { font-size:clamp(32px,8.3vw,38px); }
  body[data-page="features"] .frf-hero .hero__lead { font-size:13px; }
  body[data-page="features"] .frf-copy h2 { font-size:23px; }
  body[data-page="features"] .frf-message .frf-phone,
  body[data-page="features"] .frf-phone--interactive { width:min(176px,56vw); }
  body[data-page="features"] .frf-service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body[data-page="features"] .frf-service-grid li { min-height:68px; }
  body[data-page="features"] .frf-duo-card { padding-block:26px; }
  body[data-page="features"] .frf-phone--small,
  body[data-page="features"] .frf-call-device .frf-phone,
  body[data-page="features"] .frf-safety-device .frf-phone { width:min(148px,52vw); }
}


/* Final polish: reliable waitlist arrow, clear icons, step numbers and readable hero photography. */
body[data-page] .site-header .header-cta .ic.ic-go {
  display:block;
  flex:0 0 16px;
  width:16px;
  height:16px;
  margin:0;
  opacity:1;
  visibility:visible;
  transform:translateX(0);
  fill:none;
  stroke:currentColor;
  stroke-width:2;
}
body[data-page] .site-header .header-cta:hover .ic.ic-go {
  transform:translateX(2px);
}
body[data-page] .hero__bg img {
  image-rendering:auto;
  backface-visibility:hidden;
  animation:none;
  transform:none;
}

/* Keep step numerals on one line and away from the step title/content. */
body[data-page="home"] .steps {
  grid-template-columns:repeat(4,minmax(0,1fr));
  align-items:stretch;
  gap:16px;
}
body[data-page="home"] .steps .step {
  min-width:0;
  padding:24px 20px 26px;
  isolation:isolate;
}
body[data-page="home"] .steps .step__n {
  display:block;
  position:absolute;
  top:17px;
  right:18px;
  z-index:0;
  width:auto;
  height:auto;
  max-width:max-content;
  margin:0;
  color:#c5e5d5;
  font-family:var(--font-head),Inter, sans-serif;
  font-size:clamp(31px,3vw,42px);
  font-weight:800;
  line-height:1;
  letter-spacing:-.045em;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
  pointer-events:none;
  user-select:none;
}
body[data-page="home"] .steps .step > .icon-tile,
body[data-page="home"] .steps .step > h3,
body[data-page="home"] .steps .step > p {
  position:relative;
  z-index:1;
}
body[data-page="home"] .steps .step > .icon-tile { margin-top:32px; }
body[data-page="home"] .steps .step h3 {
  overflow-wrap:normal;
  word-break:normal;
  line-height:1.18;
}
body[data-page="home"] .steps .step p {
  overflow-wrap:anywhere;
  line-height:1.55;
}
body[data-page="home"] .steps .step:not(:last-child)::after {
  top:42px;
}
body[data-page="contact"] .icard.is-placeholder {
  cursor:default;
  border-color:var(--line);
  background:#fff;
  box-shadow:var(--shadow-1);
}
body[data-page="contact"] .icard.is-placeholder .icon-tile {
  background:#e2f4ec;
  color:var(--brand-d);
}
body[data-page="contact"] .icard.is-placeholder p {
  color:var(--muted);
  font-weight:400;
}
body[data-page="contact"] .icard.is-placeholder:hover {
  transform:none;
  border-color:var(--line);
}
body[data-page="contact"] .icard .icon-tile .ic {
  display:block;
  width:24px;
  height:24px;
  opacity:1;
  visibility:visible;
  stroke:currentColor;
}

@media (max-width:1060px) {
  body[data-page="home"] .steps {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
  }
  body[data-page="home"] .steps .step:not(:last-child)::after { display:none; }
}
@media (max-width:560px) {
  body[data-page="home"] .steps {
    grid-template-columns:minmax(0,1fr);
    gap:12px;
  }
  body[data-page="home"] .steps .step { padding:20px 18px 22px; }
  body[data-page="home"] .steps .step__n { top:16px; right:17px; font-size:34px; }
  body[data-page="home"] .steps .step > .icon-tile { margin-top:28px; }
}


/* Contact channel cards remain balanced with or without configured contact details. */
body[data-page="contact"] .info__grid {
  grid-template-columns:repeat(3,minmax(0,1fr));
  align-items:stretch;
  gap:14px;
}
body[data-page="contact"] .info__grid > li,
body[data-page="contact"] .info__grid .icard {
  min-width:0;
  height:100%;
}
body[data-page="contact"] .info__grid .icard > span:last-child { min-width:0; }
body[data-page="contact"] .info__grid .icard h3,
body[data-page="contact"] .info__grid .icard p,
body[data-page="contact"] .info__grid .icard small { overflow-wrap:anywhere; }
@media (max-width:900px) {
  body[data-page="contact"] .info__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:480px) {
  body[data-page="contact"] .info__grid { grid-template-columns:minmax(0,1fr); }
}
