/* Art direction, edition 1.3. Shared by the landing page and visual system. */
.section-space { padding-block: var(--space-section); }
.site-header { padding-block: 20px; }
.brand { width: 212px; }
.brand img { width: 100%; height: auto; }
.header-call { font-size: 18px; }
.header-call span { font-size: 12px; }
.hero-grid { grid-template-columns: minmax(0, 1fr) 380px; gap: 72px; min-height: 690px; padding-block: 48px; }
.hero-copy { padding-bottom: 10px; }
.hero-copy h1 { font-size: var(--display-size); font-weight: 550; line-height: 1.04; letter-spacing: -.055em; }
.hero-copy h1 span + span { margin-top: 5px; font-weight: 450; }
.hero-copy > .eyebrow { font-size: 11px; letter-spacing: .14em; margin-bottom: 26px; }
.hero-copy > p:not(.eyebrow):not(.hero-frequency) { font-size: 18px; max-width: 460px; margin-top: 28px; }
.hero-frequency { font-size: 13px; margin-top: 22px; }
.hero-shade { background: linear-gradient(90deg, rgb(3 12 7 / 80%) 0%, rgb(3 12 7 / 65%) 34%, rgb(3 12 7 / 10%) 60%, transparent 72%); }
.quote-card { padding: 32px; border-radius: var(--radius-card); }
.quote-card h2 { font-size: 33px; letter-spacing: -.045em; }
.field label { font-size: 13px; }
.field input, .sample-input { border-color: var(--field-border); background: var(--field-surface); }
.field small { font-size: 11px; }
.consent { font-size: 11px; }
.reassurance { font-size: 11px; }
.button { min-height: 50px; padding-inline: 26px; font-size: 14px; letter-spacing: .005em; }
.section-intro { margin-bottom: 44px; }
.section-intro h2, .local-copy h2 { font-size: var(--section-size); line-height: 1.08; letter-spacing: -.045em; }
.section-intro > p:last-child:not(.eyebrow) { margin-top: 24px; max-width: 620px; font-size: 18px; }
.section-intro .eyebrow { letter-spacing: .14em; font-size: 10px; margin-bottom: 22px; }
.benefits-section { position: relative; overflow: hidden; isolation: isolate; background: var(--forest); color: var(--paper); }
.benefits-section::after { content: ''; position: absolute; width: 460px; height: 180px; right: -50px; bottom: -38px; background: url('assets/logo-reversed.svg') center / contain no-repeat; opacity: .04; z-index: -1; pointer-events: none; }
.benefits-section .section-intro .eyebrow { color: var(--gold); }
.benefits-section .section-intro > p:last-child:not(.eyebrow), .benefits-section .benefit-grid p { color: var(--on-forest-muted); }
.benefits-section .section-intro { margin-bottom: 56px; }
.benefit-grid { gap: 72px; margin-top: 0; }
.benefit-grid h3 { font-size: 29px; letter-spacing: -.035em; }
.benefit-grid p { font-size: 16px; margin-top: 18px; max-width: 310px; }
.plan-section .section-space { padding-block: 96px; }
.plan-section .section-intro h2 { font-size: clamp(38px, 3.5vw, 50px); }
.plan-grid { gap: 64px; margin-top: 48px; margin-bottom: 36px; }
.plan-grid h3 { font-size: 25px; line-height: 1.22; max-width: 280px; }
.plan-grid p { font-size: 16px; margin-top: 18px; }
.care-grid { gap: 28px; }
.service-card { box-shadow: var(--shadow-service); background: var(--paper); }
.service-card--stone { background: var(--service-stone); }
.service-card--forest { background: var(--forest); }
.service-card > div { padding: 30px 30px 34px; }
.service-card h3 { font-size: 12px; font-weight: 600; line-height: 1.5; letter-spacing: .085em; text-transform: uppercase; }
.service-card .service-hook { font-size: 27px; font-weight: 500; line-height: 1.15; letter-spacing: -.035em; margin-top: 14px; color: var(--ink); }
.service-card .service-hook + p { font-size: 15px; line-height: 1.7; margin-top: 17px; }
.service-card--forest h3 { color: var(--gold); }
.service-card--forest .service-hook { color: var(--paper); }
.services-next { margin-top: 42px; }
.local-section { gap: 96px; padding-top: 24px; }
.local-copy p:not(.eyebrow) { font-size: 17px; }
.area-copy h3 { font-size: 32px; line-height: 1.16; }
.area-copy p { font-size: 16px; }
.faq-list { display: grid; grid-template-columns: 1fr 1fr; align-items: start; gap: 16px; max-width: 100%; }
.faq-list details { padding: 25px 28px; }
.faq-list details:last-child { grid-column: 1 / -1; }
.faq-list summary { font-size: 18px; line-height: 1.4; }
.faq-list p { max-width: 800px; }
.faq-contact { margin-top: 30px; font-size: 15px; }
.closing-section { background: var(--pine); }
.closing-section h2 { font-size: clamp(48px, 5.7vw, 80px); line-height: 1.04; letter-spacing: -.05em; }
.closing-section p { max-width: 600px; font-size: 18px; margin-top: 28px; color: var(--on-forest-muted); }
.closing-section .button { margin-top: 34px; }
.site-footer { padding-top: 54px; }
.footer-main img { width: 188px; }
.sample-faq { grid-template-columns: 1fr; }
@media (max-width: 1100px) {
  .hero-grid { grid-template-columns: minmax(0, 1fr) 370px; gap: 42px; }
  .hero-copy h1 { font-size: 54px; }
  .hero-copy > p:not(.eyebrow):not(.hero-frequency) { font-size: 17px; max-width: 380px; }
  .benefit-grid, .plan-grid { gap: 40px; }
  .service-card > div { padding: 27px; }
  .service-card .service-hook { font-size: 25px; }
}
@media (max-width: 950px) {
  .hero-grid { grid-template-columns: minmax(0, 1fr) 330px; gap: 28px; padding-block: 38px; }
  .hero-copy h1 { font-size: 43px; }
  .hero-copy > .eyebrow { font-size: 9px; }
  .quote-card { padding: 26px; }
  .quote-card h2 { font-size: 30px; }
  .care-grid { grid-template-columns: 1fr 1fr; }
  .section-space { padding-block: 80px; }
  .section-intro h2, .local-copy h2 { font-size: 44px; }
  .benefit-grid h3 { font-size: 25px; }
  .local-section { gap: 48px; }
  .faq-list { grid-template-columns: 1fr; }
  .faq-list details:last-child { grid-column: auto; }
}
@media (max-width: 650px) {
  .site-header { padding-block: 18px; }
  .brand { width: 156px; }
  .brand img { width: 100%; height: auto; }
  .header-call { font-size: 14px; }
  .header-call span { font-size: 9px; }
  .hero-grid { display: block; min-height: 0; padding: 0; }
  .hero-image, .hero-shade, .hero-copy { height: 400px; }
  .hero-image { object-position: 35% 50%; }
  .hero-shade { background: linear-gradient(0deg, rgb(3 12 7 / 87%) 0%, rgb(3 12 7 / 62%) 45%, rgb(3 12 7 / 4%) 86%); }
  .hero-copy { padding: 30px 24px; }
  .hero-copy h1 { font-size: clamp(30px, 9.2vw, 40px); line-height: 1.07; letter-spacing: -.045em; }
  .hero-copy > .eyebrow { font-size: 8px; margin-bottom: 20px; letter-spacing: .1em; }
  .hero-copy > p:not(.eyebrow):not(.hero-frequency) { font-size: 15px; line-height: 1.65; margin-top: 20px; max-width: 345px; }
  .hero-frequency { font-size: 11px; margin-top: 12px; }
  .hero-mobile-cta { margin-top: 18px; font-size: 13px; }
  .quote-card { padding: 28px 25px; margin: 24px 20px 36px; }
  .quote-card h2 { font-size: 32px; }
  .consent { font-size: 12px; }
  .section-space, .plan-section .section-space { padding-block: var(--space-section-mobile); }
  .section-intro { margin-bottom: 32px; }
  .section-intro h2, .local-copy h2, .plan-section .section-intro h2 { font-size: 36px; line-height: 1.1; }
  .section-intro > p:last-child:not(.eyebrow) { font-size: 16px; line-height: 1.75; margin-top: 21px; }
  .section-intro .eyebrow { font-size: 9px; margin-bottom: 20px; }
  .benefits-section .section-intro { margin-bottom: 36px; }
  .benefit-grid { grid-template-columns: 1fr; gap: 32px; }
  .benefit-grid h3 { font-size: 27px; }
  .benefit-grid p { max-width: 100%; font-size: 15px; margin-top: 12px; }
  .plan-grid { gap: 30px; margin-top: 36px; }
  .plan-grid h3 { font-size: 24px; }
  .plan-grid p { margin-top: 12px; font-size: 15px; }
  .care-grid { grid-template-columns: 1fr; gap: 24px; }
  .service-card > div { padding: 27px; }
  .service-card h3 { font-size: 11px; }
  .service-card .service-hook { font-size: 27px; }
  .service-card .service-hook + p { margin-top: 16px; }
  .services-next { margin-top: 32px; }
  .local-section { gap: 40px; }
  .local-copy p:not(.eyebrow), .area-copy p { font-size: 15px; }
  .area-copy h3 { font-size: 29px; }
  .faq-section .section-intro h2 { font-size: 34px; }
  .faq-list details { padding: 22px; }
  .faq-list summary { font-size: 16px; }
  .faq-contact { font-size: 14px; }
  .closing-section h2 { font-size: 44px; }
  .closing-section p { font-size: 16px; }
  .footer-main img { width: 170px; }
}

@media (max-width: 360px) { .hero-image { object-position: 40% 50%; } }

/* Keep the call number together on narrow phones. */
.header-call{white-space:nowrap;}
@media(max-width:360px){.site-header{gap:12px;}.brand{width:132px;flex-shrink:0;}.header-call{font-size:13px;}.header-call span{font-size:8px;}}
.quote-card iframe{display:block;margin-top:22px;}
