:root {
  --white:#fff;
  --ink:#142f51;
  --text:#607084;
  --blue:#174c9c;
  --bright:#2870ca;
  --pale:#edf3f9;
  --line:#dfe5ea;
  --field:#f8fafc;
  --cream:#faf9f6;
  --font:"Lato","Avenir Next","Segoe UI",sans-serif;
  color-scheme:light;
}

*,*::before,*::after {
  box-sizing:border-box;
}

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

body {
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:var(--font);
  font-size:17px;
  line-height:1.65;
}

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

a {
  color:inherit;
}

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

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

button {
  cursor:pointer;
}

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

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

h2 {
  font-size:clamp(32px,3.1vw,44px);
}

h3 {
  font-size:23px;
}

h2 span {
  color:#6a7d92;
}

a {
  text-decoration:none;
}

.wrap {
  width:min(1240px,calc(100% - 80px));
  margin-inline:auto;
}

.section {
  padding:96px 0;
}

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

.svg-defs {
  position:absolute;
  width:0;
  height:0;
  overflow:hidden;
}

.skip {
  position:fixed;
  top:-100px;
  left:20px;
  background:white;
  padding:10px 20px;
  z-index:99;
}

.skip:focus {
  top:10px;
}

.topbar {
  background:#143b71;
  color:#e1ecf8;
  font-size:13px;
  letter-spacing:.035em;
}

.topbar .wrap {
  display:flex;
  justify-content:space-between;
  align-items:center;
  min-height:34px;
}

.topbar .icon {
  width:13px;
  height:13px;
  margin-right:5px;
}

.site-header {
  position:sticky;
  top:0;
  z-index:30;
  background:rgba(250,249,246,.96);
  backdrop-filter:blur(16px);
  border-bottom:1px solid transparent;
  transition:box-shadow .3s,border-color .3s;
}

.site-header.scrolled {
  box-shadow:0 4px 25px #142f5108;
  border-color:var(--line);
}

.header-inner {
  min-height:94px;
  display:flex;
  align-items:center;
  gap:36px;
}

.brand {
  display:inline-flex;
  align-items:center;
  gap:11px;
  font-size:29px;
  line-height:1.04;
  font-weight:700;
  letter-spacing:-.6px;
  flex-shrink:0;
}

.brand img {
  width:44px;
  height:44px;
}

.brand-dot {
  color:var(--bright);
}

.nav {
  display:flex;
  gap:29px;
  margin-left:auto;
  font-size:15px;
  font-weight:500;
}

.nav a {
  position:relative;
  padding:10px 0;
}

.nav a::after {
  content:"";
  position:absolute;
  height:2px;
  bottom:3px;
  left:0;
  width:100%;
  background:var(--bright);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .25s;
}

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

.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:24px;
  min-height:54px;
  padding:15px 22px;
  border:1px solid transparent;
  border-radius:6px;
  background:var(--blue);
  color:white;
  font-size:15px;
  font-weight:700;
  text-decoration:none;
  transition:background .25s,transform .25s,box-shadow .25s;
  cursor:pointer;
}

.btn:hover {
  background:#103c80;
  transform:translateY(-2px);
  box-shadow:0 6px 18px #123d8320;
}

.btn .icon {
  width:19px;
  height:19px;
  transition:transform .25s;
}

.btn:hover .icon {
  transform:translate(2px,-2px);
}

.btn-small {
  min-height:44px;
  font-size:14px;
  padding:10px 16px;
  gap:15px;
}

.btn-ghost {
  border-color:var(--line);
  background:transparent;
  color:var(--blue);
}

.btn-ghost:hover {
  background:var(--pale);
}

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

.menu-toggle {
  display:none;
}

.hero {
  display:grid;
  grid-template-columns:1.04fr 1fr;
  padding-top:27px;
  padding-bottom:38px;
  align-items:center;
  gap:32px;
}

.hero-copy {
  padding:24px 0;
}

.eyebrow {
  display:flex;
  align-items:center;
  gap:9px;
  color:var(--blue);
  font-size:12px;
  font-weight:700;
  letter-spacing:1.8px;
  margin-bottom:23px;
}

.status-dot {
  display:inline-block;
  width:7px;
  height:7px;
  border-radius:50%;
  background:#368767;
  box-shadow:0 0 0 4px #36876712;
  flex-shrink:0;
}

.hero h1 {
  font-size:clamp(48px,5.5vw,76px);
  font-weight:700;
  letter-spacing:-4px;
  line-height:1.07;
}

.hero h1 span {
  color:var(--blue);
  position:relative;
}

.hero h1 span::after {
  content:"";
  position:absolute;
  bottom:-6px;
  left:1px;
  width:99%;
  height:9px;
  border-top:2px solid #85afd5;
  border-radius:50%;
  transform:rotate(-2deg);
}

.lede {
  font-size:18px;
  line-height:1.8;
  color:var(--text);
  margin-top:28px;
}

.actions {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:23px;
  margin-top:29px;
}

.hero-link {
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-size:14px;
  font-weight:700;
}

.hero-link .icon {
  width:17px;
}

.hero-link:hover {
  color:var(--bright);
}

.hero-assurance {
  display:flex;
  gap:13px;
  align-items:center;
  margin-top:43px;
  padding-top:25px;
  border-top:1px solid var(--line);
  width:90%;
}

.hero-assurance>.icon {
  width:30px;
  height:30px;
  color:var(--blue);
}

.hero-assurance p {
  font-size:13px;
  line-height:1.8;
}

.hero-assurance strong {
  display:block;
  font-weight:700;
}

.hero-assurance p span {
  color:var(--text);
}

.hero-visual {
  position:relative;
  height:540px;
  border-radius:12px 12px 80px 12px;
  isolation:isolate;
}

.hero-image {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:60% center;
  border-radius:inherit;
}

.hero-visual::after {
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:linear-gradient(180deg,#102a3e24,transparent 35%,#102a3e25);
  pointer-events:none;
}

.image-label {
  position:absolute;
  top:23px;
  left:24px;
  z-index:1;
  color:white;
  font-size:11px;
  letter-spacing:2px;
  font-weight:500;
}

.floating-note {
  position:absolute;
  bottom:35px;
  left:-27px;
  z-index:2;
  display:flex;
  gap:14px;
  align-items:center;
  background:rgba(255,255,255,.96);
  padding:21px 22px;
  border-radius:9px;
  box-shadow:0 15px 45px #102c4a15;
  animation:note-enter .9s .35s both;
}

.note-icon {
  display:grid;
  place-items:center;
  background:#eaf2fb;
  color:var(--blue);
  width:46px;
  height:54px;
  border-radius:5px;
}

.note-icon .icon {
  width:27px;
  height:27px;
}

.floating-note strong {
  font-size:18px;
  font-weight:700;
  line-height:1.3;
  display:block;
  letter-spacing:-.4px;
}

.floating-note div>span {
  display:block;
  font-size:12px;
  margin-top:6px;
  color:var(--text);
}

.note-check {
  display:grid;
  place-items:center;
  width:24px;
  height:24px;
  margin-left:14px;
  border-radius:50%;
  background:#e9f4ee;
  color:#3c8466;
}

.note-check .icon {
  width:14px;
  height:14px;
}

.visual-corner {
  position:absolute;
  right:26px;
  bottom:33px;
  z-index:1;
  color:#fff;
  font-size:24px;
  font-weight:800;
  letter-spacing:-1px;
}

.visual-corner>span {
  font-size:11px;
  vertical-align:top;
  letter-spacing:0;
}

.trust-strip {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding-block:28px;
}

.trust-strip>div {
  display:flex;
  align-items:center;
  gap:17px;
  padding-left:35px;
  border-left:1px solid var(--line);
}

.trust-strip>div:first-child {
  padding-left:0;
  border-left:0;
}

.trust-strip .icon {
  color:var(--blue);
  width:28px;
  height:28px;
}

.trust-strip p {
  font-size:13px;
  line-height:1.7;
}

.trust-strip strong {
  display:block;
  font-size:15px;
  font-weight:700;
}

.trust-strip p span {
  color:var(--text);
}

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

.section-head .eyebrow {
  margin-bottom:15px;
}

.section-head>p {
  font-size:15px;
  color:var(--text);
  line-height:1.8;
  padding-bottom:4px;
}

.services {
  padding-top:85px;
}

.services h2 {
  font-size:clamp(30px,3vw,40px);
}

.service-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
}

.service-card {
  display:block;
  background:white;
  border:1px solid var(--line);
  border-radius:9px;
  overflow:hidden;
  transition:transform .3s,box-shadow .3s,border-color .3s;
}

.service-card:hover {
  transform:translateY(-7px);
  border-color:#a1bddc;
  box-shadow:0 16px 40px #142f5110;
}

.service-photo {
  position:relative;
  height:225px;
  overflow:hidden;
}

.service-photo img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .7s;
}

.service-card:hover .service-photo img {
  transform:scale(1.045);
}

.service-number {
  position:absolute;
  top:15px;
  left:17px;
  font-size:12px;
  letter-spacing:1px;
  color:white;
  background:#16395e88;
  backdrop-filter:blur(4px);
  border:1px solid #ffffff50;
  border-radius:30px;
  padding:3px 9px;
}

.service-icon {
  position:absolute;
  right:18px;
  bottom:17px;
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  border-radius:7px;
  background:white;
  color:var(--blue);
}

.service-copy {
  padding:23px 24px 17px;
}

.service-copy h3 {
  font-size:22px;
  letter-spacing:-.7px;
}

.service-copy p {
  font-size:14px;
  color:var(--text);
  line-height:1.8;
  max-width:260px;
}

.service-copy .service-tag {
  color:var(--ink);
  font-size:15px;
  margin:9px 0 6px;
}

.service-bottom {
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-top:1px solid var(--line);
  margin-top:23px;
  padding-top:14px;
  font-size:13px;
  font-weight:700;
  color:var(--blue);
}

.service-bottom>span {
  display:grid;
  place-items:center;
  width:29px;
  height:29px;
  border-radius:50%;
  background:var(--pale);
  transition:background .25s,color .25s;
}

.service-bottom .icon {
  width:17px;
  height:17px;
}

.service-card:hover .service-bottom>span {
  background:var(--blue);
  color:white;
}

.compact-services {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
  margin-top:22px;
}

.compact-service {
  display:flex;
  gap:14px;
  align-items:center;
  padding:23px 18px;
  border:1px solid var(--line);
  border-radius:7px;
  transition:background .25s,border-color .25s;
}

.compact-service:hover {
  background:white;
  border-color:#a1bddc;
}

.compact-icon {
  width:42px;
  height:46px;
  display:grid;
  place-items:center;
  color:var(--blue);
  flex-shrink:0;
}

.compact-service h3 {
  font-size:18px;
  letter-spacing:-.3px;
}

.compact-service p {
  font-size:13px;
  line-height:1.7;
  color:var(--text);
  margin-top:6px;
}

.compact-service>.icon {
  width:17px;
  height:17px;
  margin-left:auto;
  color:var(--blue);
}

.service-help {
  text-align:center;
  font-size:14px;
  margin-top:31px;
  color:var(--text);
}

.service-help a {
  color:var(--blue);
  font-weight:500;
  display:inline-block;
}

.service-help .icon {
  width:15px;
  height:15px;
  margin-left:5px;
}

.method {
  background:#123a71;
  color:white;
  position:relative;
  overflow:hidden;
}

.method::before {
  content:"";
  position:absolute;
  width:570px;
  height:570px;
  border:1px solid #ffffff09;
  right:-300px;
  top:-200px;
  border-radius:50%;
  box-shadow:0 0 0 70px #ffffff03,0 0 0 140px #ffffff03;
  pointer-events:none;
}

.method .eyebrow {
  color:#a1c6f3;
}

.method .section-head>p {
  color:#b5c8df;
}

.steps {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:34px;
  margin-top:48px;
}

.step {
  border-top:1px solid #ffffff2a;
  padding-top:25px;
}

.step-top {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:27px;
}

.step-top>span:first-child {
  width:48px;
  height:48px;
  background:#ffffff0e;
  display:grid;
  place-items:center;
  border:1px solid #ffffff18;
  border-radius:8px;
  color:#c8e1ff;
}

.step-num {
  font-size:32px;
  letter-spacing:-1px;
  color:#7493bc;
  font-weight:400;
}

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

.step p {
  font-size:15px;
  color:#b8cbe3;
  line-height:1.9;
  max-width:230px;
}

.method-bottom {
  margin-top:44px;
  border-top:1px solid #ffffff20;
  padding-top:25px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:14px;
}

.method-bottom>span {
  display:flex;
  align-items:center;
  gap:10px;
  color:#b8cbe3;
}

.method-bottom .icon {
  width:19px;
  height:19px;
}

.method-bottom a {
  display:flex;
  align-items:center;
  gap:18px;
}

.coverage-grid {
  display:grid;
  grid-template-columns:1fr 1.1fr;
  align-items:center;
  gap:70px;
}

.coverage .eyebrow {
  margin-bottom:18px;
}

.coverage .lede {
  font-size:16px;
  max-width:380px;
  margin-top:23px;
}

.neighborhoods {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:25px 0;
}

.neighborhoods span {
  border:1px solid var(--line);
  border-radius:5px;
  padding:5px 11px;
  color:#596f87;
  font-size:13px;
}

.text-link {
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size:14px;
  font-weight:700;
  color:var(--blue);
}

.text-link .icon {
  width:18px;
  height:18px;
}

.coverage-art {
  border-radius:10px;
  overflow:hidden;
}




.coverage-map {
  display:block;
  width:100%;
  height:auto;
}




.contact-section {
  background:#edf2f7;
  border-block:1px solid #e3eaf0;
}

.contact {
  display:grid;
  grid-template-columns:.95fr 1.05fr;
  gap:90px;
  align-items:start;
}

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

.contact-copy h2 {
  font-size:clamp(40px,4.1vw,56px);
  letter-spacing:-2px;
}

.contact-copy h2 span {
  color:var(--blue);
}

.contact-copy .lede {
  max-width:350px;
  font-size:16px;
}

.contact-channel {
  display:flex;
  align-items:center;
  gap:14px;
  margin-top:36px;
}

.contact-icon {
  width:46px;
  height:46px;
  border-radius:8px;
  display:grid;
  place-items:center;
  background:white;
  color:var(--blue);
  border:1px solid var(--line);
}

.contact-channel div>span {
  font-size:11px;
  letter-spacing:1.2px;
  color:var(--text);
  display:block;
}

.phone {
  display:block;
  font-size:25px;
  letter-spacing:-.8px;
  font-weight:700;
  line-height:1.45;
  color:var(--blue);
}

.sample {
  font-size:12px;
  margin-top:10px;
  color:var(--text);
}

.contact-note {
  display:flex;
  gap:12px;
  border-top:1px solid #d6e0e9;
  padding-top:23px;
  margin-top:30px;
  max-width:380px;
}

.contact-note>.icon {
  width:20px;
  height:20px;
  color:var(--blue);
}

.contact-note p {
  font-size:14px;
  color:var(--text);
  line-height:1.8;
}

.contact-note strong {
  color:var(--ink);
  font-weight:700;
}

.contact-decoration {
  display:flex;
  align-items:center;
  gap:25px;
  margin-top:50px;
}

.contact-decoration img {
  width:86px;
  height:86px;
  opacity:.12;
  transform:rotate(-10deg);
}

.contact-decoration span {
  color:#7e95ad;
  letter-spacing:-.5px;
  line-height:1.5;
  font-size:21px;
}

.form {
  border:1px solid #e1e7ed;
  border-radius:12px;
  background:white;
  padding:32px;
  box-shadow:0 12px 35px #19365304;
  min-width:0;
}

.form-heading {
  margin-bottom:25px;
}

.form-heading .eyebrow {
  font-size:11px;
  letter-spacing:1.4px;
  margin-bottom:10px;
}

.form-heading h3 {
  font-size:26px;
}

.fields {
  display:grid;
  gap:15px;
}

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

.field {
  min-width:0;
}

.field label {
  display:block;
  font-size:13px;
  font-weight:700;
  margin-bottom:6px;
}

input,select,textarea {
  width:100%;
  border:1px solid var(--line);
  border-radius:5px;
  background:var(--field);
  color:var(--ink);
  font-size:15px;
  padding:12px;
  min-height:44px;
  transition:border-color .2s,box-shadow .2s;
}

select {
  padding-right:10px;
}

textarea {
  min-height:98px;
  resize:vertical;
}

::placeholder {
  color:#8795a3;
  opacity:1;
}

input:focus,select:focus,textarea:focus {
  outline:0;
  border-color:var(--bright);
  box-shadow:0 0 0 3px #2870ca14;
  background:white;
}

.hint,.helper {
  font-size:12px;
  color:var(--text);
  line-height:1.65;
  margin-top:6px;
}

.form .btn {
  width:100%;
  margin-top:20px;
  min-height:48px;
}

.helper {
  margin-top:10px;
}

.field-error {
  color:#a82d38;
  font-size:13px;
  margin-top:4px;
}

[aria-invalid="true"] {
  border-color:#a82d38;
}

.if-live,.if-sending {
  display:none;
}

html[data-wa-ready="true"] .if-pending {
  display:none;
}

html[data-wa-ready="true"] .if-live {
  display:revert;
}

html button[data-state="sending"] .if-pending,html button[data-state="sending"] .if-live {
  display:none;
}

html button[data-state="sending"] .if-sending {
  display:inline;
}

.result {
  margin-top:20px;
  padding-top:16px;
  border-top:1px solid var(--line);
  font-size:15px;
}

.result p {
  margin-bottom:12px;
}

.preview {
  margin:0;
  padding:14px;
  border:1px solid var(--line);
  border-radius:5px;
  background:var(--field);
  font:12px/1.7 var(--font);
  white-space:pre-wrap;
  overflow-wrap:anywhere;
}

.hp {
  position:absolute;
  width:1px;
  height:1px;
  margin:-1px;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap;
}

.faq-section {
  padding:75px 0;
}

.faq-grid {
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:90px;
}

.faq-grid .eyebrow {
  margin-bottom:17px;
}

.faq-grid h2 {
  font-size:34px;
}

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

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

.faq-list summary {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:22px 0;
  font-size:16px;
  cursor:pointer;
  list-style:none;
  font-weight:500;
}

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

.faq-list summary .icon {
  width:18px;
  height:18px;
  color:var(--blue);
  transition:transform .3s;
}

.faq-list details[open] summary .icon {
  transform:rotate(45deg);
}

.faq-list details p {
  color:var(--text);
  font-size:15px;
  line-height:1.8;
  padding:0 30px 22px 0;
  animation:answer-in .25s;
}

.site-footer {
  border-top:1px solid var(--line);
  padding:42px 0 22px;
  background:#fff;
}

.footer-main {
  display:flex;
  align-items:center;
  gap:70px;
  padding-bottom:35px;
}

.footer-main>p {
  font-size:14px;
  color:var(--text);
}

.footer-main>a:last-child {
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:13px;
  font-size:13px;
}

.footer-main>a:last-child .icon {
  width:17px;
  height:17px;
}

.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:15px;
  padding-top:20px;
  border-top:1px solid var(--line);
  font-size:12px;
  color:#778695;
}

.dock {
  display:none;
}

.notice {
  padding:80px 0;
  max-width:760px;
}

.notice h1 {
  font-size:48px;
  margin-bottom:22px;
}

.notice p {
  margin-bottom:18px;
}

.mark {
  display:inline-block;
  background:url('/logo-mark.svg') center/contain no-repeat;
  width:44px;
  height:44px;
  margin-right:10px;
}

.notice .eyebrow {
  color:var(--blue);
}

:focus-visible {
  outline:3px solid #5086c7;
  outline-offset:5px;
}

[hidden] {
  display:none!important;
}

.reveal-pending {
  opacity:0;
  transform:translateY(22px);
}

.reveal {
  transition:opacity .65s ease,transform .65s ease;
}

.reveal.is-visible {
  opacity:1;
  transform:translateY(0);
}

.service-card.is-visible:hover {
  transform:translateY(-7px);
}

.service-grid .reveal:nth-child(2),.compact-services .reveal:nth-child(2),.steps .reveal:nth-child(2) {
  transition-delay:60ms;
}

.service-grid .reveal:nth-child(3),.compact-services .reveal:nth-child(3),.steps .reveal:nth-child(3) {
  transition-delay:120ms;
}

.steps .reveal:nth-child(4) {
  transition-delay:180ms;
}

@keyframes note-enter {
  from {
    opacity:0;
    transform:translateY(15px);
  }
  to {
    opacity:1;
    transform:translateY(0);
  }
}

@keyframes answer-in {
  from {
    opacity:0;
    transform:translateY(-4px);
  }
  to {
    opacity:1;
    transform:translateY(0);
  }
}

@media(min-width:1500px) {
  .hero {
    padding-top:40px;
    padding-bottom:50px;
    gap:50px;
  }
  .hero-visual {
    height:580px;
  }
}

@media(max-width:1100px) {
  .wrap {
    width:calc(100% - 48px);
  }
  .header-inner {
    gap:23px;
  }
  .nav {
    gap:20px;
  }
  .header-cta {
    gap:10px;
    font-size:13px;
  }
  .hero {
    gap:26px;
  }
  .hero h1 {
    font-size:62px;
    letter-spacing:-3px;
  }
  .hero-visual {
    height:520px;
  }
  .hero .lede {
    font-size:16px;
  }
  .actions {
    gap:18px;
  }
  .hero .btn {
    gap:15px;
    font-size:14px;
    padding:14px 16px;
  }
  .hero-link {
    font-size:13px;
  }
  .hero-assurance {
    margin-top:30px;
  }
  .trust-strip>div {
    padding-left:20px;
    gap:12px;
  }
  .service-copy {
    padding:22px 19px 16px;
  }
  .service-copy h3 {
    font-size:20px;
  }
  .service-photo {
    height:200px;
  }
  .compact-service {
    padding:20px 12px;
    gap:8px;
  }
  .compact-service h3 {
    font-size:16px;
  }
  .compact-service p {
    font-size:12px;
  }
  .section-head>p {
    max-width:280px;
  }
  .coverage-grid {
    gap:40px;
  }
  .contact {
    gap:50px;
  }
  .form {
    padding:26px;
  }
  .faq-grid {
    gap:50px;
  }
}

@media(max-width:850px) {
  .nav {
    gap:17px;
    font-size:14px;
  }
  .header-cta {
    display:none;
  }
  .header-inner {
    min-height:82px;
  }
  .hero h1 {
    font-size:52px;
    letter-spacing:-2.8px;
  }
  .hero-visual {
    height:490px;
  }
  .hero-assurance {
    width:100%;
    gap:9px;
  }
  .hero-assurance p {
    font-size:12px;
  }
  .hero .actions {
    flex-direction:column;
    align-items:flex-start;
    gap:16px;
  }
  .hero .eyebrow {
    font-size:11px;
    letter-spacing:1px;
  }
  .floating-note {
    padding:16px;
    left:-20px;
    bottom:27px;
    gap:10px;
  }
  .note-check {
    display:none;
  }
  .floating-note strong {
    font-size:16px;
  }
  .note-icon {
    width:36px;
    height:46px;
  }
  .floating-note div>span {
    font-size:11px;
  }
  .trust-strip strong {
    font-size:13px;
  }
  .trust-strip p {
    font-size:12px;
  }
  .trust-strip .icon {
    width:24px;
    height:24px;
  }
  .trust-strip>div {
    gap:9px;
    padding-left:14px;
  }
  .section {
    padding:70px 0;
  }
  .section-head {
    align-items:flex-start;
    flex-direction:column;
    gap:20px;
  }
  .section-head>p {
    max-width:none;
  }
  .service-grid,.compact-services {
    gap:14px;
  }
  .service-photo {
    height:165px;
  }
  .service-copy {
    padding:20px 15px 15px;
  }
  .service-copy h3 {
    font-size:19px;
  }
  .service-copy .service-tag {
    font-size:13px;
  }
  .service-copy p {
    font-size:13px;
  }
  .compact-service {
    align-items:flex-start;
    flex-wrap:wrap;
    position:relative;
    padding:17px;
  }
  .compact-icon {
    width:30px;
    height:30px;
    justify-content:start;
  }
  .compact-service>div {
    width:100%;
  }
  .compact-service>.icon {
    position:absolute;
    top:20px;
    right:15px;
  }
  .steps {
    gap:23px;
  }
  .step h3 {
    font-size:20px;
  }
  .step p {
    font-size:14px;
  }
  .coverage-grid {
    gap:30px;
    grid-template-columns:.9fr 1.1fr;
  }
  .contact {
    gap:30px;
  }
  .contact-copy h2 {
    font-size:43px;
  }
  .form {
    padding:24px;
  }
  .pair {
    grid-template-columns:1fr;
    gap:15px;
  }
  .contact-decoration {
    margin-top:40px;
  }
  .faq-grid {
    gap:35px;
  }
  .footer-main {
    gap:35px;
  }
}

@media(max-width:640px) {
  .wrap {
    width:calc(100% - 40px);
  }
  html {
    scroll-padding-top:90px;
  }
  .topbar .wrap {
    min-height:30px;
    font-size:11px;
  }
  .topbar .wrap>span:last-child {
    display:none;
  }
  .header-inner {
    min-height:75px;
    justify-content:space-between;
  }
  .brand {
    font-size:26px;
    gap:9px;
  }
  .brand img {
    width:39px;
    height:39px;
  }
  .menu-toggle {
    display:grid;
    place-items:center;
    width:42px;
    height:42px;
    border:1px solid var(--line);
    border-radius:6px;
    background:transparent;
    color:var(--ink);
  }
  .nav {
    position:absolute;
    left:0;
    right:0;
    top:75px;
    padding:18px 24px 24px;
    background:var(--cream);
    border-bottom:1px solid var(--line);
    box-shadow:0 12px 20px #142f5108;
    display:none;
    flex-direction:column;
    gap:8px;
    font-size:17px;
  }
  .nav.is-open {
    display:flex;
    animation:answer-in .2s;
  }
  .nav a {
    padding:8px;
  }
  .nav a::after {
    width:35px;
    left:8px;
  }
  .hero {
    grid-template-columns:1fr;
    padding-top:18px;
    gap:31px;
    padding-bottom:30px;
  }
  .hero-copy {
    padding:14px 0 0;
  }
  .hero .eyebrow {
    margin-bottom:21px;
    letter-spacing:1.5px;
    font-size:11px;
  }
  .hero h1 {
    font-size:clamp(48px,11.5vw,68px);
    letter-spacing:-3px;
  }
  .hero .lede {
    margin-top:24px;
    font-size:16px;
    max-width:420px;
  }
  .hero .actions {
    flex-direction:row;
    align-items:center;
    gap:20px;
    margin-top:24px;
  }
  .hero .btn {
    font-size:13px;
    padding:14px 15px;
    min-height:49px;
    gap:13px;
  }
  .hero-link {
    font-size:13px;
    gap:7px;
  }
  .hero-assurance {
    margin-top:25px;
    padding-top:19px;
  }
  .hero-assurance p {
    font-size:12px;
  }
  .hero-assurance>.icon {
    width:26px;
    height:26px;
  }
  .hero-visual {
    height:390px;
    border-radius:10px 10px 60px 10px;
  }
  .hero-image {
    object-position:50% center;
  }
  .floating-note {
    left:14px;
    bottom:21px;
    padding:16px 18px;
    gap:12px;
  }
  .floating-note strong {
    font-size:17px;
  }
  .floating-note div>span {
    font-size:11px;
  }
  .note-icon {
    width:40px;
    height:48px;
  }
  .image-label {
    top:18px;
    left:18px;
    font-size:10px;
  }
  .visual-corner {
    right:25px;
    bottom:24px;
    font-size:26px;
  }
  .trust-strip {
    grid-template-columns:1fr;
    padding-block:5px;
  }
  .trust-strip>div {
    padding:18px 0;
    border:0;
    border-bottom:1px solid var(--line);
    gap:16px;
  }
  .trust-strip>div:last-child {
    border:0;
  }
  .trust-strip strong {
    font-size:14px;
  }
  .trust-strip p {
    font-size:13px;
  }
  .trust-strip .icon {
    width:27px;
    height:27px;
  }
  .section {
    padding:58px 0;
  }
  .eyebrow {
    font-size:11px;
    letter-spacing:1.6px;
  }
  .services h2 {
    font-size:30px;
    line-height:1.17;
  }
  .section-head {
    gap:19px;
    margin-bottom:28px;
  }
  .section-head>p {
    font-size:14px;
  }
  .desktop-break {
    display:none;
  }
  .service-grid {
    grid-template-columns:1fr;
    gap:22px;
  }
  .service-photo {
    height:230px;
  }
  .service-copy {
    padding:23px;
  }
  .service-copy h3 {
    font-size:24px;
  }
  .service-copy .service-tag {
    font-size:15px;
  }
  .service-copy p {
    font-size:14px;
    max-width:none;
  }
  .service-bottom {
    margin-top:18px;
    font-size:14px;
  }
  .compact-services {
    grid-template-columns:1fr;
    gap:12px;
    margin-top:18px;
  }
  .compact-service {
    padding:21px 18px;
    flex-wrap:nowrap;
    align-items:center;
    gap:15px;
  }
  .compact-icon {
    width:35px;
    height:35px;
  }
  .compact-service>div {
    width:auto;
  }
  .compact-service>.icon {
    position:static;
  }
  .compact-service h3 {
    font-size:18px;
  }
  .compact-service p {
    font-size:13px;
  }
  .service-help {
    font-size:13px;
    line-height:2;
    margin-top:25px;
  }
  .service-help a {
    display:block;
  }
  .method h2 {
    font-size:41px;
  }
  .steps {
    grid-template-columns:1fr 1fr;
    gap:28px 23px;
    margin-top:30px;
  }
  .step-top {
    margin-bottom:21px;
  }
  .step-top>span:first-child {
    width:42px;
    height:42px;
  }
  .step-num {
    font-size:28px;
  }
  .step h3 {
    font-size:20px;
  }
  .step p {
    font-size:14px;
  }
  .method-bottom {
    align-items:flex-start;
    flex-direction:column;
    gap:20px;
    font-size:13px;
    margin-top:30px;
  }
  .method-bottom>span {
    gap:8px;
  }
  .coverage-grid {
    grid-template-columns:1fr;
    gap:32px;
  }
  .coverage h2 {
    font-size:36px;
  }
  .coverage .lede {
    font-size:15px;
    margin-top:19px;
  }
  .neighborhoods {
    margin:21px 0;
  }
  .contact {
    grid-template-columns:1fr;
    gap:32px;
  }
  .contact-copy {
    padding-top:0;
  }
  .contact-copy h2 {
    font-size:44px;
  }
  .contact-copy .lede {
    font-size:15px;
    margin-top:21px;
  }
  .contact-channel {
    margin-top:26px;
  }
  .contact-note {
    margin-top:23px;
  }
  .contact-decoration {
    display:none;
  }
  .form {
    padding:24px 20px;
  }
  .pair {
    grid-template-columns:1fr 1fr;
    gap:12px;
  }
  input,select,textarea {
    font-size:18px;
    padding:11px 10px;
  }
  .field label {
    font-size:13px;
  }
  .hint,.helper {
    font-size:13px;
  }
  .form-heading h3 {
    font-size:25px;
  }
  .faq-grid {
    grid-template-columns:1fr;
    gap:28px;
  }
  .faq-grid h2 {
    font-size:32px;
  }
  .faq-list summary {
    font-size:15px;
    line-height:1.6;
  }
  .footer-main {
    align-items:flex-start;
    flex-wrap:wrap;
    gap:25px;
  }
  .footer-main>p {
    margin-left:auto;
    font-size:12px;
  }
  .footer-main>a:last-child {
    margin-left:0;
    width:100%;
  }
  .footer-bottom {
    flex-direction:column;
    gap:5px;
    font-size:11px;
  }
  .site-footer {
    padding-top:32px;
  }
  .dock {
    display:flex;
    position:fixed;
    bottom:0;
    left:0;
    right:0;
    padding:10px 20px calc(10px + env(safe-area-inset-bottom));
    background:#faf9f6f5;
    backdrop-filter:blur(12px);
    border-top:1px solid var(--line);
    z-index:25;
    transform:translateY(110%);
    transition:transform .3s;
  }
  .dock.is-visible {
    transform:translateY(0);
  }
  .dock .btn {
    width:100%;
    min-height:46px;
    padding:12px 18px;
    justify-content:space-between;
  }
  body {
    padding-bottom:70px;
  }
  body:has(input:focus,textarea:focus,select:focus) .dock {
    display:none;
  }
  .notice h1 {
    font-size:38px;
  }
  .notice {
    padding:50px 0;
  }
  .contact-section {
    scroll-margin-top:0;
  }
}

@media(max-width:370px) {
  .wrap {
    width:calc(100% - 32px);
  }
  .hero .actions {
    gap:15px;
  }
  .hero .btn {
    padding-inline:12px;
    gap:8px;
    font-size:12px;
  }
  .hero-link {
    font-size:12px;
  }
  .hero-link .icon {
    width:14px;
  }
  .hero-visual {
    height:340px;
  }
  .floating-note {
    padding:13px;
    gap:9px;
  }
  .floating-note strong {
    font-size:15px;
  }
  .note-icon {
    width:33px;
  }
  .pair {
    grid-template-columns:1fr;
  }
  .steps {
    gap:22px 17px;
  }
  .step h3 {
    font-size:18px;
  }
  .footer-main>p {
    margin-left:0;
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*::before,*::after {
    animation:none!important;
    transition:none!important;
  }
  .reveal-pending {
    opacity:1;
    transform:none;
  }
}

@media print {
  body {
    padding:0;
    background:white;
  }
  .site-header {
    position:static;
  }
  .topbar,.dock,.menu-toggle,.contact-decoration {
    display:none;
  }
  .reveal-pending {
    opacity:1;
    transform:none;
  }
  .hero {
    grid-template-columns:1fr 1fr;
  }
  .hero-visual {
    height:350px;
  }
  .section {
    padding:35px 0;
  }
  .service-card,.step,.form {
    break-inside:avoid;
  }
  .method {
    color:var(--ink);
    background:#edf2f7;
  }
  .method p,.method .eyebrow {
    color:var(--text);
  }
}

/* Larger, warmer type and tactile controls. */
.hero .lede {
  font-size:18px;
  line-height:1.75;
}

.hero-assurance p {
  font-size:13px;
}

.eyebrow {
  letter-spacing:1.4px;
}

.btn {
  min-height:56px;
  padding:16px 24px;
  font-size:15px;
  border-radius:8px;
  border-color:#ffffff18;
  box-shadow:0 3px 0 #0c306d,0 7px 16px #174c9c16;
  font-weight:700;
}

.btn:hover {
  background:#205caf;
  box-shadow:0 4px 0 #0c306d,0 10px 24px #174c9c24;
  transform:translateY(-2px);
}

.btn:active {
  transform:translateY(2px);
  box-shadow:0 1px 0 #0c306d,0 2px 6px #174c9c15;
}

.btn-small {
  font-size:14px;
  min-height:48px;
  padding:12px 18px;
  gap:16px;
}

.btn-ghost {
  border-color:#a5bad3;
  background:white;
  box-shadow:0 2px 0 #d5e0eb;
  color:var(--blue);
}

.btn-ghost:hover {
  background:var(--pale);
  box-shadow:0 3px 0 #c8d6e5;
}

.hero-link {
  min-height:48px;
  padding:10px 0;
  border-bottom:1px solid #b8c9dc;
  font-size:14px;
}

.hero-link:hover {
  border-color:var(--blue);
}

.floating-note {
  background:#fffffff0;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border:1px solid #ffffffb3;
  box-shadow:0 12px 40px #142f5126;
}

.site-header {
  background:#faf9f6eb;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}

.hero-copy {
  position:relative;
  isolation:isolate;
}

.hero-copy::before {
  content:"";
  position:absolute;
  width:270px;
  height:230px;
  left:-80px;
  top:5px;
  border-radius:50%;
  background:#b9d6ee24;
  filter:blur(55px);
  z-index:-1;
  pointer-events:none;
}

.contact-note p {
  font-size:14px;
}

.service-copy p {
  font-size:15px;
}

.service-copy .service-tag {
  font-size:16px;
}

.compact-service p {
  font-size:13px;
}

.field label {
  font-size:14px;
}

.hint,.helper {
  font-size:12px;
}

.form .btn {
  min-height:54px;
}

.footer-main>p {
  font-size:14px;
}

.footer-bottom {
  font-size:12px;
}

.contact-channel div>span {
  font-size:11px;
}

.phone {
  font-size:28px;
}

.sample {
  font-size:12px;
}

.step p {
  font-size:15px;
}

.trust-strip p {
  font-size:13px;
}

.trust-strip strong {
  font-size:15px;
}

.section-head>p {
  font-size:16px;
}

.service-help {
  font-size:14px;
}

.contact-copy .lede,.coverage .lede {
  font-size:17px;
}

.faq-list summary {
  font-size:17px;
}

.faq-list details p {
  font-size:15px;
}


.neighborhoods span {
  font-size:13px;
}

@media(max-width:1100px) {
  .header-inner {
    gap:24px;
  }
  .nav {
    gap:20px;
  }
  .header-cta {
    font-size:12px;
    gap:10px;
    padding-inline:14px;
  }
  .hero .actions {
    gap:17px;
  }
  .hero .btn {
    font-size:14px;
    min-height:54px;
    padding:15px 20px;
  }
  .hero-link {
    font-size:13px;
  }
  .hero .lede {
    font-size:17px;
  }
  .hero-assurance p {
    font-size:12px;
  }
  .trust-strip strong {
    font-size:14px;
  }
  .trust-strip p {
    font-size:12px;
  }
  .service-copy p {
    font-size:14px;
  }
  .service-copy .service-tag {
    font-size:14px;
  }
  .section-head>p {
    font-size:15px;
  }
}

@media(max-width:850px) {
  .hero .lede {
    font-size:16px;
  }
  .hero .btn {
    font-size:14px;
  }
  .hero-link {
    font-size:14px;
  }
  .hero-assurance p {
    font-size:12px;
  }
  .hero-visual {
    height:530px;
  }
  .trust-strip p {
    font-size:12px;
  }
  .trust-strip strong {
    font-size:13px;
  }
  .trust-strip>div {
    align-items:flex-start;
  }
  .service-copy h3 {
    font-size:21px;
  }
  .service-copy p {
    font-size:14px;
  }
  .service-copy .service-tag {
    font-size:14px;
  }
  .compact-service p {
    font-size:13px;
  }
  .compact-service h3 {
    font-size:17px;
  }
  .step p {
    font-size:14px;
  }
  .coverage .lede,.contact-copy .lede {
    font-size:16px;
  }
  .contact-channel {
    gap:10px;
  }
  .phone {
    font-size:25px;
  }
}

@media(max-width:640px) {
  .hero .lede {
    font-size:18px;
  }
  .hero h1 {
    line-height:1.1;
    font-weight:700;
    letter-spacing:-2.5px;
  }
  .hero .actions {
    gap:15px;
    align-items:stretch;
  }
  .hero .btn {
    font-size:15px;
    min-height:55px;
    padding:16px 20px;
    gap:20px;
  }
  .hero-link {
    font-size:14px;
    min-height:45px;
    width:fit-content;
  }
  .hero-assurance p {
    font-size:12px;
  }
  .hero-visual {
    height:390px;
  }
  .trust-strip p {
    font-size:13px;
  }
  .trust-strip strong {
    font-size:15px;
  }
  .trust-strip>div {
    align-items:center;
  }
  .section-head>p {
    font-size:16px;
  }
  .service-copy p {
    font-size:15px;
  }
  .service-copy .service-tag {
    font-size:16px;
  }
  .service-copy h3 {
    font-size:25px;
  }
  .compact-service p {
    font-size:14px;
  }
  .compact-service h3 {
    font-size:18px;
  }
  .step p {
    font-size:15px;
  }
  .step h3 {
    font-size:21px;
  }
  .method-bottom {
    font-size:13px;
  }
  .method-bottom>span {
    align-items:flex-start;
  }
  .coverage .lede,.contact-copy .lede {
    font-size:17px;
  }
  .field label {
    font-size:14px;
  }
  .hint,.helper {
    font-size:12px;
  }
  .sample {
    font-size:12px;
  }
  .footer-main>p {
    font-size:13px;
  }
  .footer-bottom {
    font-size:11px;
  }
  .faq-list summary {
    font-size:16px;
  }
  .contact-note p {
    font-size:14px;
  }
  .service-help {
    font-size:14px;
  }
  .dock .btn {
    font-size:15px;
    min-height:49px;
  }
  .hero-copy::before {
    left:-15px;
    width:180px;
    filter:blur(40px);
  }
  .form .btn {
    min-height:54px;
  }
  .phone {
    font-size:28px;
  }
  html:not(.js-ready) .header-inner {
    flex-wrap:wrap;
    padding-block:15px;
  }
  html:not(.js-ready) .nav {
    display:flex;
    position:static;
    flex-direction:row;
    flex-wrap:wrap;
    padding:0;
    border:0;
    box-shadow:none;
    font-size:13px;
  }
  html:not(.js-ready) .menu-toggle {
    display:none;
  }
}

@media(max-width:370px) {
  .hero .actions {
    flex-direction:column;
    gap:10px;
  }
  .hero .btn {
    justify-content:space-between;
  }
  .hero h1 {
    font-size:46px;
    letter-spacing:-2px;
  }
  .hero-visual {
    height:340px;
  }
  .step h3 {
    font-size:19px;
  }
  .step p {
    font-size:14px;
  }
  .footer-main>p {
    font-size:12px;
  }
}

/* A connected journey, rather than four independent columns. */
.method .section-head {
  margin-bottom:52px;
}

.steps {
  position:relative;
  list-style:none;
  padding:0;
  margin:0;
  gap:32px;
  counter-reset:process;
}

.steps::before {
  content:"";
  position:absolute;
  top:37px;
  left:38px;
  right:calc(25% - 10px);
  height:2px;
  background:linear-gradient(90deg,#b9dbfa88,#b9dbfa38);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform 1.2s ease;
}

.method.process-visible .steps::before {
  transform:scaleX(1);
}

.step {
  position:relative;
  border:0;
  padding-top:0;
  min-width:0;
}

.step:not(:last-child)::after {
  content:"";
  position:absolute;
  top:33px;
  right:10px;
  width:10px;
  height:10px;
  border-top:2px solid #82abd8;
  border-right:2px solid #82abd8;
  transform:rotate(45deg);
}

.step-top {
  position:relative;
  justify-content:flex-start;
  margin:0 0 28px;
  height:76px;
}

.step-top>span:first-child {
  width:76px;
  height:76px;
  border-radius:23px;
  background:#214b80;
  border:1px solid #91b5e34d;
  box-shadow:0 0 0 9px #123a71,inset 0 1px 0 #ffffff18;
  color:#d3e9ff;
  transition:background .3s,box-shadow .3s,transform .3s;
}

.step-top .icon {
  width:35px;
  height:35px;
  stroke-width:1.4;
}

.step-num {
  position:absolute;
  left:55px;
  bottom:-5px;
  display:grid;
  place-items:center;
  width:29px;
  height:29px;
  background:#bdddf9;
  color:#153b70;
  border:4px solid #123a71;
  border-radius:50%;
  font-size:10px;
  font-weight:900;
  letter-spacing:0;
  line-height:1;
}

.step:last-child .step-top>span:first-child {
  background:#d5e8f9;
  color:#174778;
  box-shadow:0 0 0 9px #123a71,0 0 32px #a9d7ff15;
}

.step:last-child .step-num {
  background:#d5e8f9;
}

.step-content {
  min-height:204px;
  padding:24px 22px 21px;
  border:1px solid #abcbed26;
  border-radius:12px;
  background:linear-gradient(140deg,#ffffff09,#ffffff03);
  transition:background .3s,border-color .3s;
}

.step:hover .step-content {
  background:#ffffff0c;
  border-color:#abcbed50;
}

.step:hover .step-top>span:first-child {
  transform:translateY(-3px);
  box-shadow:0 0 0 9px #123a71,0 7px 24px #071e4030;
}

.step h3 {
  font-size:23px;
  margin-bottom:13px;
}

.step p {
  max-width:none;
  font-size:15px;
  line-height:1.8;
  color:#c3d4e9;
}

.step-tag {
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:21px;
  color:#b3cce9;
  font-size:11px;
  font-weight:700;
  letter-spacing:.15px;
}

.step-tag>span {
  width:5px;
  height:5px;
  border-radius:50%;
  background:#81aedf;
}

.step:last-child .step-tag {
  color:#d2ecd9;
}

.step:last-child .step-tag>span {
  background:#a4d7b9;
  box-shadow:0 0 0 3px #a4d7b911;
}

.method-bottom {
  margin-top:34px;
  padding-top:24px;
}

.method-bottom .process-cta {
  padding:12px 17px;
  border:1px solid #bdd8f253;
  background:#ffffff09;
  border-radius:7px;
  font-size:14px;
  transition:background .25s,transform .25s;
}

.method-bottom .process-cta:hover {
  background:#ffffff17;
  transform:translateY(-2px);
}

.method-bottom .process-cta:active {
  transform:translateY(1px);
}

@media(max-width:1100px) {
  .steps {
    gap:22px;
  }
  .step-content {
    padding:22px 18px;
    min-height:228px;
  }
  .step h3 {
    font-size:21px;
  }
  .step p {
    font-size:14px;
  }
  .step:not(:last-child)::after {
    right:5px;
  }
}

@media(max-width:850px) {
  .steps {
    gap:18px;
  }
  .step-content {
    padding:20px 13px;
    min-height:240px;
  }
  .step h3 {
    font-size:18px;
    letter-spacing:-.5px;
  }
  .step p {
    font-size:14px;
  }
  .step-tag {
    font-size:10px;
    gap:6px;
  }
  .step-top>span:first-child {
    width:66px;
    height:66px;
    border-radius:20px;
  }
  .step-top .icon {
    width:31px;
    height:31px;
  }
  .step-num {
    left:46px;
    bottom:0;
  }
  .steps::before {
    top:37px;
  }
  .step-top {
    margin-bottom:21px;
  }
  .method .section-head {
    margin-bottom:36px;
  }
}

@media(max-width:640px) {
  .steps {
    grid-template-columns:1fr;
    gap:27px;
  }
  .steps::before {
    left:31px;
    right:auto;
    top:33px;
    bottom:120px;
    width:2px;
    height:auto;
    transform:scaleY(0);
    transform-origin:top;
    background:linear-gradient(#b9dbfa88,#b9dbfa38);
  }
  .method.process-visible .steps::before {
    transform:scaleY(1);
  }
  .step {
    display:grid;
    grid-template-columns:65px minmax(0,1fr);
    gap:20px;
    align-items:start;
  }
  .step-top {
    height:66px;
    margin:16px 0 0;
  }
  .step-top>span:first-child {
    width:62px;
    height:62px;
    border-radius:19px;
    box-shadow:0 0 0 6px #123a71;
  }
  .step-top .icon {
    width:29px;
    height:29px;
  }
  .step-num {
    left:41px;
    bottom:-1px;
    width:27px;
    height:27px;
    font-size:9px;
  }
  .step-content {
    padding:22px 20px;
    min-height:0;
  }
  .step h3 {
    font-size:23px;
    margin-bottom:10px;
  }
  .step p {
    font-size:15px;
    line-height:1.8;
  }
  .step-tag {
    font-size:11px;
    margin-top:17px;
  }
  .step:not(:last-child)::after {
    top:auto;
    bottom:-18px;
    right:auto;
    left:27px;
    transform:rotate(135deg);
    width:9px;
    height:9px;
  }
  .step:last-child .step-top>span:first-child {
    box-shadow:0 0 0 6px #123a71;
  }
  .method-bottom {
    margin-top:29px;
    gap:24px;
  }
  .method-bottom .process-cta {
    font-size:14px;
    justify-content:space-between;
    width:100%;
    padding:15px 18px;
  }
  .method .section-head {
    margin-bottom:29px;
  }
}

@media(max-width:370px) {
  .step {
    grid-template-columns:54px minmax(0,1fr);
    gap:16px;
  }
  .step-top>span:first-child {
    width:54px;
    height:54px;
    border-radius:17px;
  }
  .step-top {
    height:58px;
  }
  .step-top .icon {
    width:26px;
    height:26px;
  }
  .step-num {
    left:35px;
    bottom:0;
  }
  .steps::before {
    left:26px;
  }
  .step:not(:last-child)::after {
    left:22px;
  }
  .step-content {
    padding:19px 16px;
  }
  .step h3 {
    font-size:21px;
  }
  .step p {
    font-size:14px;
  }
}

@media(prefers-reduced-motion:reduce) {
  .steps::before {
    transform:none;
  }
}

@media print {
  .steps::before {
    transform:none;
  }
  .step-content {
    border-color:#ccc;
  }
  .step p {
    color:#445;
  }
  .step-num {
    border:0;
  }
  .step-top>span:first-child {
    box-shadow:none;
  }
}

html:not(.js-ready) .steps::before {
  transform:none;
}

/* WhatsApp is the primary contact action throughout the site. */
.btn-whatsapp {
  background: var(--blue);
  color: #fff;
  border-color: #ffffff18;
  box-shadow: 0 3px 0 #0c306d, 0 7px 16px #174c9c16;
  gap: 12px;
}
.btn-whatsapp:hover {
  background: #205caf;
  color: #fff;
  box-shadow: 0 4px 0 #0c306d, 0 10px 24px #174c9c24;
}
.btn-whatsapp:active {
  box-shadow: 0 1px 0 #0c306d, 0 2px 6px #174c9c15;
}
.btn-whatsapp .whatsapp-icon {
  width: 23px;
  height: 23px;
}
.btn-whatsapp:hover .whatsapp-icon {
  transform: none;
}
.whatsapp-card {
  position: relative;
  overflow: hidden;
  padding: 38px;
  background: #fff;
  border: 1px solid #d5e6dc;
  border-radius: 18px;
  box-shadow: 0 15px 45px #153d2610;
  min-width: 0;
}
.whatsapp-card::before {
  content: "";
  position: absolute;
  width: 180px;
  height: 180px;
  background: #25d3660e;
  filter: blur(40px);
  right: -65px;
  top: -65px;
  pointer-events: none;
}
.whatsapp-card-brand {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 30px;
  color: #12492d;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.3;
}
.whatsapp-card-brand small {
  display: block;
  margin-top: 5px;
  font-size: 10px;
  letter-spacing: 1.4px;
  color: #587365;
}
.whatsapp-emblem {
  display: grid;
  place-items: center;
  width: 62px;
  height: 62px;
  background: #25d366;
  color: #fff;
  border-radius: 19px;
  box-shadow: 0 5px 16px #25d36624;
}
.whatsapp-emblem .icon {
  width: 35px;
  height: 35px;
}
.whatsapp-card h3 {
  font-size: clamp(28px, 2.6vw, 36px);
  line-height: 1.15;
  margin-bottom: 17px;
}
.whatsapp-card > p {
  color: var(--text);
  font-size: 16px;
  line-height: 1.8;
}
.whatsapp-message {
  margin: 26px 0;
  padding: 18px 20px;
  border: 1px solid #dcebe1;
  border-radius: 12px 12px 12px 2px;
  background: #f0f8f2;
}
.whatsapp-message > span {
  display: block;
  color: #50715d;
  font-size: 11px;
  font-weight: 700;
  margin-bottom: 7px;
}
.whatsapp-message p {
  color: #244835;
  font-size: 16px;
  line-height: 1.6;
}
.whatsapp-main {
  width: 100%;
  min-height: 62px;
  font-size: 17px;
  padding: 16px 18px;
}
.whatsapp-main > .icon:last-child {
  margin-left: auto;
  width: 20px;
}
.whatsapp-card .whatsapp-caption {
  margin-top: 18px;
  font-size: 12px;
  line-height: 1.7;
  text-align: center;
}
.whatsapp-number {
  color: #52715e;
  font-size: 14px;
  text-align: center;
  margin-top: 8px;
}
html[data-wa-ready="true"] .whatsapp-number {
  display: block;
}
.contact-channel p {
  font-size: 16px;
  margin-top: 4px;
  line-height: 1.5;
}
.contact-section .contact {
  align-items: center;
}
.contact-copy {
  padding-top: 0;
}
.contact-decoration {
  margin-top: 30px;
}
.dock .btn-whatsapp {
  gap: 12px;
}
.dock .btn-whatsapp > span {
  margin-right: auto;
}
@media (max-width: 1100px) {
  .whatsapp-card { padding: 29px; }
  .whatsapp-main { font-size: 16px; gap: 10px; }
  .header-cta.btn-whatsapp { font-size: 12px; gap: 8px; }
}
@media (max-width: 850px) {
  .whatsapp-card { padding: 25px; }
  .whatsapp-main { flex-wrap: wrap; font-size: 15px; }
  .whatsapp-main > .icon:last-child { display: none; }
}
@media (max-width: 640px) {
  .whatsapp-card { padding: 27px 23px; border-radius: 14px; }
  .whatsapp-card-brand { margin-bottom: 25px; }
  .whatsapp-card h3 { font-size: 30px; }
  .whatsapp-main { min-height: 60px; font-size: 16px; padding-inline: 12px; }
  .whatsapp-card .whatsapp-caption { font-size: 12px; }
  .hero .btn-whatsapp { gap: 12px; }
  .whatsapp-card > p { font-size: 16px; }
}
@media (max-width: 370px) {
  .whatsapp-card { padding: 25px 19px; }
  .whatsapp-card h3 { font-size: 27px; }
  .whatsapp-main { font-size: 14px; gap: 9px; }
  .whatsapp-main .whatsapp-icon { width: 21px; height: 21px; }
  .hero .btn-whatsapp { justify-content: center; }
}

/* Keep service-specific hero copy comfortable at every screen size. */
html[data-campaign="bombas"] .hero-image {
  object-position: center;
}
html[data-campaign="reparaciones"] .hero h1 {
  font-size: clamp(43px, 4.7vw, 66px);
  letter-spacing: -2.6px;
}
html[data-campaign]:not([data-campaign="general"]) .hero .lede {
  max-width: 510px;
}
html[data-campaign]:not([data-campaign="general"]) .hero .eyebrow {
  letter-spacing: 1px;
}
@media (max-width: 850px) and (min-width: 641px) {
  html[data-campaign="reparaciones"] .hero h1 {
    font-size: 43px;
    letter-spacing: -2px;
  }
}
@media (max-width: 640px) {
  html[data-campaign="reparaciones"] .hero h1 {
    font-size: clamp(38px, 9.5vw, 58px);
    letter-spacing: -1.8px;
  }
  html[data-campaign]:not([data-campaign="general"]) .floating-note {
    max-width: calc(100% - 55px);
  }
  html[data-campaign]:not([data-campaign="general"]) .floating-note .note-icon {
    flex-shrink: 0;
  }
}

/* Acquisition pages: the same typography, surfaces and spacing as the original site. */
.breadcrumbs { display:flex; flex-wrap:wrap; gap:9px; color:var(--text); font-size:13px; margin-bottom:22px; }
.breadcrumbs a { color:var(--blue); }
.service-hero h1 { font-size:clamp(44px,4.5vw,65px); letter-spacing:-2.4px; }
.service-hero .eyebrow { font-size:11px; letter-spacing:1.5px; line-height:1.6; }
.hero-area { display:flex; align-items:center; gap:8px; color:var(--ink); font-size:14px; margin:18px 0 0; }
.hero-area .icon { width:18px; height:18px; color:var(--blue); flex-shrink:0; }
.service-hero .actions { margin-top:24px; flex-wrap:wrap; gap:18px; }
.service-hero .hero-assurance { margin-top:24px; }
.service-hero .hero-visual { align-self:center; }
.acquisition-services { grid-template-columns:1.07fr 1.07fr .94fr; }
.service-priority { border-color:#c6d6e8; }
.service-priority .service-copy { background:#fff; }
.acquisition-services .service-card:last-child .service-copy { background:var(--cream); }
.service-help .text-link { display:inline-flex; align-items:center; gap:8px; }
.service-help .whatsapp-icon { width:17px; height:17px; }
.problem-section { background:var(--white); }
.problem-grid { display:grid; grid-template-columns:1fr 1fr; column-gap:48px; }
.problem-link { display:flex; align-items:center; gap:18px; min-height:86px; padding:20px 8px; border-bottom:1px solid var(--line); color:var(--ink); font-size:19px; font-weight:700; line-height:1.4; transition:color .2s,background .2s; }
.problem-link:hover { color:var(--blue); background:var(--pale); }
.problem-link > span:not(.problem-index) { flex:1; }
.problem-link .icon { color:var(--blue); flex-shrink:0; width:22px; height:22px; }
.problem-index { font-size:13px; color:var(--text); min-width:22px; }
.approach { background:var(--cream); }
.approach h2 { max-width:820px; }
.approach-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:48px; margin-top:44px; }
.approach-number { color:var(--blue); font-size:14px; font-weight:700; }
.approach-grid article { padding-top:20px; border-top:1px solid var(--line); }
.approach-grid h3 { font-size:25px; margin:18px 0 12px; letter-spacing:-.6px; }
.approach-grid p { color:var(--text); line-height:1.8; font-size:17px; }
.prepare-list { list-style:none; padding:0; margin:28px 0; display:grid; gap:18px; }
.prepare-list li { display:flex; gap:13px; font-size:17px; color:var(--ink); line-height:1.6; }
.prepare-list .icon { color:#397563; width:20px; height:20px; flex-shrink:0; margin-top:4px; }
.lead-details { border-top:1px solid var(--line); margin-top:26px; padding-top:22px; }
.lead-details summary { cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:15px; font-size:17px; font-weight:700; color:var(--blue); list-style:none; min-height:44px; }
.lead-details summary::-webkit-details-marker { display:none; }
.lead-details summary .icon { flex-shrink:0; width:20px; height:20px; }
.lead-details[open] summary .icon { transform:rotate(45deg); }
.lead-details > p { margin:16px 0 22px; color:var(--text); font-size:16px; line-height:1.7; }
.lead-form { display:grid; gap:20px; }
.lead-form .pair { gap:16px; }
.lead-form .field { min-width:0; }
.lead-form label { font-size:16px; }
.lead-form label span { font-weight:400; color:var(--text); }
.lead-form input,.lead-form select,.lead-form textarea { width:100%; box-sizing:border-box; font-size:16px; min-height:52px; padding:12px; }
.lead-form textarea { resize:vertical; }
.lead-form .hint { font-size:13px; line-height:1.6; margin:0; color:var(--text); }
.lead-form .btn { font-size:16px; padding:16px 12px; white-space:normal; min-height:58px; }
.lead-status { margin:0; font-size:15px; line-height:1.6; color:var(--ink); }
.lead-status:empty { display:none; }
.lead-form button:disabled { cursor:wait; opacity:.65; }
.related-services { border-top:1px solid var(--line); }
.related-grid { display:flex; flex-wrap:wrap; gap:16px; margin-top:28px; }
.related-grid a { display:flex; align-items:center; gap:16px; padding:20px; border:1px solid var(--line); border-radius:10px; background:white; color:var(--ink); font-weight:700; }
.related-grid a:hover { border-color:var(--blue); color:var(--blue); }
.related-grid .icon { width:22px; height:22px; color:var(--blue); }
.proof-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:28px; margin-top:36px; }
.job-case img { width:100%; height:auto; border-radius:12px; aspect-ratio:4/3; object-fit:cover; }
.job-case .eyebrow { margin-top:20px; }
.job-case h3 { font-size:24px; margin:12px 0; }
.job-case > p:last-child { color:var(--text); line-height:1.8; }
.before-after { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.before-after figure,.review-card { margin:0; }
.before-after figcaption { margin-top:8px; }
.review-card { background:white; border:1px solid var(--line); padding:24px; border-radius:12px; }
.review-card .review-card { border:0; padding:0; }
.review-card blockquote { margin:0 0 16px; line-height:1.7; }
a:focus-visible,button:focus-visible,summary:focus-visible { outline:3px solid var(--bright); outline-offset:5px; border-radius:4px; }
.dock { padding-bottom:max(12px, env(safe-area-inset-bottom)); }
@media (max-width:1100px) { .header-cta.btn-whatsapp { font-size:12px; max-width:240px; white-space:normal; } .service-hero h1 { font-size:49px; } }
@media (max-width:850px) { .acquisition-services { grid-template-columns:repeat(3,1fr); } .service-hero h1 { font-size:clamp(43px,7vw,62px); } .approach-grid { gap:24px; } .problem-grid { column-gap:24px; } .problem-link { font-size:17px; } .header-cta.btn-whatsapp { max-width:none; } }
@media (max-width:640px) {
  .breadcrumbs { margin-bottom:18px; font-size:12px; }
  .service-hero h1 { font-size:clamp(39px,10.2vw,58px); letter-spacing:-1.6px; }
  .service-hero .hero-area { align-items:flex-start; font-size:13px; margin-top:16px; }
  .service-hero .actions { gap:20px; }
  .service-hero .hero-assurance { margin-top:25px; }
  .service-hero .eyebrow { font-size:10px; }
  .acquisition-services,.problem-grid,.approach-grid,.proof-grid { grid-template-columns:1fr; }
  .problem-link { min-height:78px; padding:18px 0; }
  .problem-grid { gap:0; }
  .approach-grid { margin-top:30px; gap:28px; }
  .approach-grid h3 { font-size:24px; margin-top:12px; }
  .approach-grid p { font-size:17px; }
  .prepare-list li { font-size:16px; }
  .lead-form .pair { grid-template-columns:1fr; }
  .related-grid { flex-direction:column; }
  .related-grid a > span { flex:1; }
  .site-footer { padding-bottom:calc(90px + env(safe-area-inset-bottom)); }
  body:has(input:focus,textarea:focus,select:focus) .dock { visibility:hidden; opacity:0; pointer-events:none; }
}
@media(prefers-reduced-motion:reduce) { .problem-link,.lead-details summary .icon { transition:none; } }
.acquisition-services .service-card { display:flex; flex-direction:column; }
.acquisition-services .service-photo { flex-shrink:0; }
.acquisition-services .service-copy { display:flex; flex-direction:column; flex:1; }
.acquisition-services .service-copy > p:last-of-type { margin-bottom:24px; }
.acquisition-services .service-bottom { margin-top:auto; }
