/* Typography refinements for comfortable Japanese reading on desktop and mobile. */
.section-heading > p:last-child,
.quote-products-heading > p:last-child,
.brand-proof-copy > p:last-child {
  color: #435464;
  font-size: 16px;
  line-height: 1.85;
}

.reason-grid p,
.steps p {
  color: #435464;
  font-size: 15px;
  line-height: 1.85;
}

.quote-description,
.case-body > p:not(.case-area) {
  color: #435464;
  font-size: 15px;
  line-height: 1.85;
}

.review-text-card blockquote,
.voice-grid blockquote {
  color: #2f4353;
  font-size: 16px;
  line-height: 2;
}

.included,
.remote-set,
.disclaimer {
  color: #435464;
  font-size: 14px;
  line-height: 1.75;
}

.micro,
.google-review-note {
  color: #52616d;
  font-size: 12px;
  line-height: 1.7;
}

.case-area,
.estimate-only span {
  font-size: 13px;
  line-height: 1.65;
}

.estimate-only span {
  color: #52616d;
}

.cases-cta p,
.final-inner p {
  font-size: 15px;
  line-height: 1.8;
}

.faq-list p {
  color: #435464;
  font-size: 16px;
  line-height: 1.9;
}

.review-source-links a {
  font-size: 14px;
}

@media (max-width: 680px) {
  .hero-lead {
    font-size: 16px;
    line-height: 1.85;
  }

  .section-note {
    font-size: 15px;
    line-height: 1.85;
  }

  .reason-grid p,
  .steps p,
  .quote-description,
  .case-body > p:not(.case-area),
  .review-text-card blockquote,
  .voice-grid blockquote {
    font-size: 16px;
  }

  .included,
  .remote-set,
  .disclaimer {
    font-size: 14px;
  }

  .micro,
  .google-review-note {
    font-size: 12px;
  }
}

/* Compact mobile contact dock, matched to Sanwatec's 58px CTA height. */
@media (max-width: 680px) {
  body {
    padding-bottom: 82px;
  }

  .mobile-sticky {
    left: 8px;
    right: 8px;
    bottom: max(8px, env(safe-area-inset-bottom));
    grid-template-columns: minmax(0, 1.62fr) minmax(70px, .8fr) minmax(74px, .88fr);
    gap: 5px;
    padding: 5px;
    background: rgba(247, 251, 254, .97);
    border: 1px solid rgba(18, 57, 86, .12);
    border-radius: 17px;
    box-shadow: 0 10px 30px rgba(7, 45, 80, .25);
    backdrop-filter: blur(14px);
  }

  .mobile-sticky a {
    height: 58px;
    min-height: 58px;
    border-radius: 12px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .22), 0 3px 9px rgba(7, 45, 80, .16);
    transform: none;
  }

  .mobile-sticky .sticky-phone {
    gap: 1px;
    padding: 4px 7px;
  }

  .sticky-promo {
    padding: 2px 3px;
    font-size: 8px;
    line-height: 1.05;
  }

  .sticky-number {
    gap: 4px;
    font-size: 15px;
    line-height: 1;
  }

  .mobile-sticky .sticky-number svg {
    width: 17px;
    height: 17px;
    flex-basis: 17px;
  }

  .sticky-phone small {
    font-size: 8px;
    line-height: 1;
  }

  .mobile-sticky .sticky-form,
  .mobile-sticky .sticky-line {
    gap: 0;
    padding: 4px 3px;
  }

  .sticky-form > span,
  .sticky-line > span {
    font-size: 9px;
    line-height: 1;
  }

  .sticky-form > strong,
  .sticky-line > strong {
    font-size: 11px;
    line-height: 1.1;
  }

  .mobile-sticky a.sticky-form {
    color: #123956;
    text-shadow: none;
    background: #fff;
    border: 1px solid #cbd8e1;
  }

  .mobile-sticky .sticky-form svg {
    width: 18px;
    height: 18px;
    margin-top: 1px;
    stroke-width: 2.2;
  }

  .mobile-sticky .sticky-line .line-mark {
    width: 28px;
    height: 28px;
    min-width: 28px;
    margin-top: 1px;
  }
}

@media (max-width: 365px) {
  body {
    padding-bottom: 78px;
  }

  .mobile-sticky {
    left: 5px;
    right: 5px;
    grid-template-columns: minmax(0, 1.55fr) minmax(66px, .8fr) minmax(69px, .86fr);
    gap: 4px;
    padding: 4px;
  }

  .mobile-sticky a {
    height: 56px;
    min-height: 56px;
  }

  .sticky-promo {
    font-size: 7.5px;
  }

  .sticky-number {
    font-size: 14px;
  }

  .sticky-form > strong,
  .sticky-line > strong {
    font-size: 10px;
  }
}
