/* Free Estimate — prefix es- */
.es-hero { position: relative; padding: clamp(40px, 7vh, 80px) 0 var(--hl-section-y-compact); overflow: hidden; }
.es-hero::before { content: ""; position: absolute; left: -160px; bottom: -200px; width: 460px; height: 460px; border: 44px solid rgba(227,30,47,.12); border-radius: 50%; pointer-events: none; }
.es-grid { position: relative; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); grid-template-rows: auto 1fr; grid-template-areas: "intro form" "extra form"; column-gap: clamp(32px, 5vw, 80px); align-items: start; }
.es-intro { grid-area: intro; }
.es-extra { grid-area: extra; }
.es-hero .hl-breadcrumb, .es-hero .eyebrow { color: var(--hl-white); }
.es-hero h1 { color: var(--hl-white); margin-bottom: 22px; }
.es-lede { font-size: var(--hl-fs-lead); line-height: 1.62; color: rgba(255,255,255,.84); max-width: 54ch; }

.es-trust { list-style: none; display: grid; gap: 0; margin-top: 34px; border-top: 1px solid var(--hl-border-dark); }
.es-trust li { display: grid; grid-template-columns: auto 1fr; column-gap: 12px; align-items: baseline; padding: 15px 0; border-bottom: 1px solid var(--hl-border-dark); }
.es-trust .stars { grid-row: span 2; color: var(--hl-google-star); font-size: 15px; letter-spacing: 1px; }
.es-trust strong { color: var(--hl-white); font-weight: 700; }
.es-trust li > span:not(.stars) { grid-column: 1 / -1; color: var(--hl-text-on-dark-muted); font-size: var(--hl-fs-sm); }
.es-trust li:has(.stars) > span:not(.stars) { grid-column: 2; }

.es-quick { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 30px; }
.es-quick p { grid-column: 1 / -1; font-size: var(--hl-fs-eyebrow); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--hl-red-on-dark); }
.es-quick-link { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border: 1px solid var(--hl-border-dark); border-radius: var(--hl-radius-md); color: var(--hl-text-on-dark-muted); font-size: var(--hl-fs-xs); transition: background .2s ease, border-color .2s ease; }
.es-quick-link:hover, .es-quick-link:focus-visible { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.4); }
.es-quick-link svg { width: 22px; height: 22px; flex-shrink: 0; color: var(--hl-red-on-dark); fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.es-quick-link strong { display: block; color: var(--hl-white); font-size: 17px; letter-spacing: -.01em; }

/* Booking card: the Calendly calendar */
.es-book { grid-area: form; overflow: hidden; background: var(--hl-white); border-radius: var(--hl-radius-lg); border-top: 3px solid var(--hl-red); box-shadow: 0 30px 80px rgba(0,0,0,.35); scroll-margin-top: calc(var(--hl-header-h) + 16px); }
.es-book-head { display: flex; align-items: center; gap: 14px; padding: 18px 24px; border-bottom: 1px solid var(--hl-border); font-size: var(--hl-fs-xs); color: var(--hl-text-muted); }
.es-book-head svg { width: 26px; height: 26px; flex-shrink: 0; color: var(--hl-red); fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.es-book-head strong { display: block; color: var(--hl-navy); font-size: 17px; letter-spacing: -.01em; }

.es-calendly { position: relative; min-width: 320px; height: 760px; background: var(--hl-white); }
.es-calendly iframe { display: block; width: 100%; height: 100%; border: 0; }
.es-calendly-status { position: absolute; inset: 0; display: grid; place-items: center; color: var(--hl-text-muted); font-size: var(--hl-fs-sm); }
.es-calendly.is-failed .es-calendly-status { display: none; }
.es-calendly.is-failed { height: auto; }
.es-calendly.is-failed::before { content: "The calendar couldn’t load here. Use the link below or call us and we’ll book it for you."; display: block; padding: 48px 28px; text-align: center; color: var(--hl-text-muted); font-size: var(--hl-fs-sm); }

.es-form-note { padding: 14px 24px 18px; border-top: 1px solid var(--hl-border); font-size: var(--hl-fs-xs); color: var(--hl-text-muted); }
.es-form-note a { color: var(--hl-navy); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

.es-head { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: 20px clamp(32px, 6vw, 96px); align-items: end; margin-bottom: var(--hl-space-5); }
.es-head .lede { font-size: var(--hl-fs-body); }
.es-steps { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.es-steps li { padding-top: 26px; border-top: 1px solid rgba(17,28,47,.14); }
.es-step-n { display: block; margin-bottom: 30px; color: var(--hl-red); font-size: var(--hl-fs-eyebrow); font-weight: 700; letter-spacing: .12em; }
.es-steps h3 { font-size: var(--hl-fs-h4); margin-bottom: 10px; }
.es-steps p { color: var(--hl-text-muted); font-size: var(--hl-fs-sm); }

.es-help-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(36px, 6vw, 96px); align-items: start; }
.es-help-copy h2 { margin-bottom: 24px; }
.es-helpful { color: var(--hl-text-muted); }
.es-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.es-card { display: flex; flex-direction: column; padding: 28px 26px; background: var(--hl-white); border: 1px solid var(--hl-border); border-top: 4px solid var(--hl-navy); border-radius: var(--hl-radius-lg); }
.es-card-k { margin-bottom: 10px; font-size: var(--hl-fs-eyebrow); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--hl-red); }
.es-card h3 { font-size: var(--hl-fs-h4); margin-bottom: 8px; }
.es-card p:not(.es-card-k) { color: var(--hl-text-muted); font-size: var(--hl-fs-sm); margin-bottom: 18px; }
.es-card .text-link, .es-card .btn { margin-top: auto; }
.es-card .btn { align-self: start; }
.es-card .btn .arrow { width: 18px; height: 18px; }
.es-card--urgent { grid-column: 1 / -1; border-top-color: var(--hl-red); }

@media (max-width: 1100px) {
  .es-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); }
}
@media (max-width: 860px) {
  .es-grid { grid-template-columns: 1fr; grid-template-rows: none; grid-template-areas: "intro" "form" "extra"; row-gap: 32px; }
  .es-head, .es-help-grid { grid-template-columns: 1fr; }
  .es-trust { margin-top: 0; }
  .es-steps { grid-template-columns: 1fr; gap: 0; }
  .es-steps li { padding-bottom: 22px; }
  .es-step-n { margin-bottom: 12px; }
}
@media (max-width: 560px) {
  .es-book-head { padding: 16px 18px; }
  .es-calendly { height: 1000px; }
  .es-form-note { padding: 12px 18px 16px; }
  .es-cards { grid-template-columns: 1fr; }
}
