/* Desktop uses a 1120-unit canvas that scales proportionally down to 781px. */
@media (min-width: 781px) {
  html { scroll-padding-top: 24px; }

  /* Preserve the enlarged desktop type at the 1px root baseline. */
  .hd-name { font-size: 16.25rem; }
  .header-phone { font-size: 17.5rem; }
  .hero-photo-label { font-size: 17.5rem; }
  .hero-heading { font-size: 42.5rem; }
  .hero-lead-text { font-size: 21.25rem; }
  .schedule-lead { font-size: 21.25rem; }
  .schedule-highlight { font-size: 27.5rem; }
  .schedule-note { font-size: 20rem; }
  .hero-badge { font-size: 17.5rem; }
  .text-label { font-size: 18.75rem; }
  .hero-price-amount { font-size: 40rem; }
  .hero-note { font-size: 16.25rem; }
  .hero-price-link { font-size: 18.75rem; }
  .hero-quote-link { font-size: 21.25rem; }
  .hero-household-note { font-size: 17.5rem; }
  .section-number { font-size: 17.5rem; }
  .section-heading { font-size: 30rem; }
  .concern-bubble { font-size: 18.75rem; }
  .concern-bubble-end { font-size: 18.75rem; }
  .rules-label { font-size: 17.5rem; }
  .rules-value { font-size: 17.5rem; }
  .text-muted-small { font-size: 17.5rem; }
  .source-note { font-size: 16.25rem; }
  .rules-message { font-size: 20rem; }
  .benefits-heading { font-size: 32.5rem; }
  .heading-eyebrow { font-size: 21.25rem; }
  .benefit-number { font-size: 18.75rem; }
  .benefit-text { font-size: 18.75rem; }
  .comparison-table { font-size: 17.5rem; }
  .comparison-label-note { font-size: 16.25rem; }
  .text-small { font-size: 16.25rem; }
  .comparison-price { font-size: 21.25rem; }
  .comparison-message { font-size: 18.75rem; }
  .comparison-note { font-size: 16.25rem; }
  .pricing-intro { font-size: 17.5rem; }
  .pricing-unit-label { font-size: 17.5rem; }
  .pricing-unit-price { font-size: 37.5rem; }
  .pricing-unit-suffix { font-size: 17.5rem; }
  .pricing-subheading { font-size: 17.5rem; }
  .monthly-price-amount { font-size: 22.5rem; }
  .monthly-price-quote { font-size: 18.75rem; }
  .pricing-bag-note { font-size: 16.25rem; }
  .plan-heading { font-size: 17.5rem; }
  .plan-period { font-size: 16.25rem; }
  .plan-title { font-size: 22.5rem; }
  .plan-description { font-size: 17.5rem; }
  .plan-period-highlight { font-size: 16.25rem; }
  .plan-title-highlight { font-size: 22.5rem; }
  .pricing-frequency { font-size: 17.5rem; }
  .pricing-note { font-size: 16.25rem; }
  .switching-badge { font-size: 17.5rem; }
  .switching-bubble { font-size: 18.75rem; }
  .switching-bubble-end { font-size: 18.75rem; }
  .switching-description { font-size: 18.75rem; }
  .switching-link { font-size: 20rem; }
  .voice-number { font-size: 17.5rem; }
  .voice-heading { font-size: 30rem; }
  .voice-avatar { font-size: 15rem; }
  .voice-quote { font-size: 17.5rem; }
  .voice-attribution { font-size: 16.25rem; }
  .step-number { font-size: 17.5rem; }
  .step-description { font-size: 17.5rem; }
  .trust-details { font-size: 17.5rem; }
  .trust-area-note { font-size: 16.25rem; }
  .trust-disclaimer { font-size: 16.25rem; }
  .contact-heading { font-size: 30rem; }
  .form-field { font-size: 17.5rem; }
  .form-input { font-size: 20rem; }
  .form-input-name { font-size: 20rem; }
  .form-select { font-size: 20rem; }
  .form-optional-heading { font-size: 17.5rem; }
  .form-field-current { font-size: 17.5rem; }
  .form-submit { font-size: 21.25rem; }
  .contact-note { font-size: 17.5rem; }
  .contact-line { font-size: 20rem; }
  .household-text { font-size: 17.5rem; }
  .household-description { font-size: 17.5rem; }
  .sticky-phone { font-size: 18.75rem; }
  .sticky-line { font-size: 18.75rem; }
  .sticky-quote { font-size: 18.75rem; }

  body { background: #F4F1EA; }
  .page svg { width: 16rem; height: 16rem; }
  .contact-line svg { width: 22rem; height: 22rem; }

  /* Desktop typography; mobile component weights remain in style.css. */
  .page :is(div, p, span) { font-weight: 500 !important; }
  .page :is(a, button, label, b) { font-weight: 700 !important; }
  .page .font-display { font-family: 'Dela Gothic One', sans-serif !important; font-weight: 400 !important; }
  .sticky a { font-weight: 700 !important; }

  .page { max-width: 1120rem !important; padding-bottom: 120rem !important; }

  .site-header { padding: 18rem 20rem !important; min-height: 84rem; }
  .site-header > div { gap: 12rem !important; }
  .site-header img { height: 38rem !important; }
  .site-header .hd-name { font-size: 18rem !important; }
  .site-header > a { font-size: 24rem !important; padding-inline: 22rem !important; }

  .hero { padding-bottom: 36rem !important; }
  .hero-layout, .hero-bottom { width: calc(100% - 40rem); max-width: 1120rem; margin: 32rem auto 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 32rem; }
  .hero-photo { grid-column: 1; grid-row: 1; height: auto !important; min-height: 0; align-self: center; border: 3rem solid #1A1A1A; border-bottom: 3rem solid #1A1A1A; border-radius: 8rem; box-shadow: 7rem 7rem 0 #153B67; }
  .hero-photo > img { object-position: 62% 50% !important; }
  .hero-photo-caption { margin: 0 0 20rem; }
  .hero-photo-label { font-size: 18rem !important; padding: 8rem 12rem !important; }
  .hero--full-image .hero-photo-label { font-size: 20rem !important; padding: 12rem 8rem !important; }
  .hero-copy { grid-column: 2; grid-row: 1; min-width: 0; align-self: center; }
  .hero-title { margin: 0 !important; padding: 22rem 20rem !important; }
  .hero-title h1 { font-size: 44rem !important; line-height: 1.5 !important; }
  .hero-lead { margin: 22rem 0 0 !important; }
  .hero-lead p { font-size: 21rem !important; line-height: 1.8 !important; }
  .hero-schedule { margin: 20rem 0 0 !important; padding: 14rem 20rem !important; }
  .hero-badges { margin: 18rem 0 0 !important; gap: 8rem !important; }
  .hero-badges > div { font-size: 16rem !important; }

  .hero-bottom { align-items: center; margin-top: 28rem; }
  .hero-offer > *, .hero-action > * { margin-left: 0 !important; margin-right: 0 !important; }
  .hero-price { flex-wrap: wrap; margin-top: 0 !important; flex-direction: row !important; justify-content: center; gap: 18rem !important; }
  .hero-offer > a { max-width: 260rem; margin-top: 12rem !important; }
  .hero-action > div { margin-top: 0 !important; padding: 22rem !important; }
  .hero-action a { min-height: 72rem !important; font-size: 24rem !important; }
  .hero-action > p { line-height: 1.8 !important; }

  .content-grid { max-width: 1120rem; width: calc(100% - 40rem); margin: 48rem auto 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36rem 32rem; align-items: start; }
  .content-grid > section { min-width: 0; margin: 0 !important; padding: 30rem !important; border-radius: 8rem !important; }
  .content-grid h2 { font-size: 34rem !important; line-height: 1.5 !important; }
  .content-grid p { line-height: 1.8 !important; }
  .section-concerns, .section-rules { align-self: stretch; }
  .section-comparison, .section-pricing { align-self: stretch; }
  .section-concerns > img { aspect-ratio: auto !important; height: auto; object-fit: contain; }
  .section-concerns > div:last-child > div { max-width: 100% !important; }
  .section-rules > div:last-child { margin-top: 28rem !important; font-size: 24rem !important; line-height: 1.8 !important; }

  .section-benefits, .section-switching, .section-steps,
  .section-trust, .section-contact, .line-consultation, #household { grid-column: 1 / -1; }

  .section-benefits, .section-trust { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 36rem; align-items: start; }
  .section-benefits > :first-child, .section-trust > :first-child { justify-self: start; }
  .section-benefits > h2, .section-trust > h2 { grid-column: 1 / -1; margin-bottom: 10rem !important; }
  .section-benefits > img, .section-trust > img { height: 310rem !important; }
  .section-benefits > div:last-child { gap: 20rem !important; }
  .section-benefits > div:last-child > div > div:last-child { font-size: 19rem !important; line-height: 1.8 !important; }
  .section-trust > div { font-size: 19rem !important; gap: 12rem !important; }
  .section-trust > p { grid-column: 1 / -1; margin-top: 16rem !important; }
  .section-trust h2 br, .section-benefits h2 br, .section-steps h2 br { display: none; }
  .section-benefits h2 span { margin-bottom: 4rem; }

  .comparison-table { grid-template-columns: 104rem minmax(0, 1fr) minmax(0, 1fr) !important; }
  .comparison-table > div { padding: 12rem !important; }
  .monthly-prices > div { gap: 12rem; flex-wrap: wrap; padding: 16rem 12rem !important; }

  .section-switching { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 36rem; }
  .section-switching > :first-child { justify-self: start; align-self: start; }
  .section-switching > h2 { grid-column: 1; }
  .section-switching > div:nth-of-type(2) { grid-column: 2; grid-row: 1 / span 3; margin-top: 0 !important; }
  .section-switching > div:nth-of-type(2) > div { max-width: 100% !important; font-size: 19rem !important; }
  .section-switching > p { grid-column: 1; }
  .section-switching > a { grid-column: 1 / -1; max-width: 480rem; width: 100%; justify-self: center; margin-top: 24rem !important; }

  .section-steps > div:last-child { gap: 24rem !important; margin-top: 24rem !important; }
  .section-steps > div:last-child > div { padding: 16rem !important; }
  .section-steps > div:last-child > div > :first-child { height: 150rem !important; }
  .section-steps > div:last-child > div > div:last-child { font-size: 20rem !important; line-height: 1.6 !important; }
  .section-steps > div:last-child > div > div:last-child br { display: none; }

  .section-contact { padding: 40rem 64rem !important; }
  .section-contact > h2 { font-size: 36rem !important; }
  .section-contact > h2 br { display: none; }
  #form { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20rem 24rem !important; max-width: 840rem; margin: 28rem auto 0 !important; scroll-margin-top: 24rem; }
  #form label { min-width: 0; font-size: 18rem !important; gap: 8rem !important; }
  #form input, #form select { width: 100%; min-width: 0; height: 56rem !important; }
  #form > div, #form > button { grid-column: 1 / -1; }
  #form > button { width: 600rem; max-width: 100%; min-height: 84rem !important; font-size: 24rem !important; justify-self: center; margin-top: 4rem; }
  .line-consultation .contact-line { width: 100%; max-width: 600rem; min-height: 84rem !important; font-size: 24rem !important; margin: 0 auto !important; }
  .section-contact > p, .line-consultation > p { margin-top: 16rem !important; }
  .section-contact > p br, .line-consultation > p br { display: none; }
  #household { margin: 0 !important; padding: 22rem 30rem !important; }

  .sticky { max-width: none; grid-template-columns: repeat(3, minmax(0, 240rem)) !important; justify-content: center; gap: 16rem !important; padding: 12rem 24rem calc(12rem + env(safe-area-inset-bottom)) !important; box-shadow: 0 -4rem 20rem #1A1A1A12; }
  .sticky a { min-height: 56rem !important; font-size: 20rem !important; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
