/* Task-first layout. Core content is identical on mobile and desktop. */
.hero.has-tool { min-height: 0; padding-block: 2rem; }
.hero.has-tool h1, .hero.has-tool:not(.hero-home) h1 { font-size: clamp(2rem, 4vw, 3.5rem); }
.hero.has-tool .night-orbit { display: none; }
.hero.has-tool .hero-copy { max-width: 54rem; }
.has-tool + .content-wrap { padding-top: 1.5rem; }
.tool-panel { scroll-margin-top: 1rem; }
.calculator-fields { border: 0; padding: 0; margin: 0; min-width: 0; }
.tool-head p { margin-block: 0.35rem; }
.tool-head { margin-bottom: 1rem; }
.tool-panel .method-link { font-size: 0.8rem; margin-bottom: 0; }
.tool-panel .method-link a, .editorial-next a { color: #e0dcff; }
.tool-panel .editorial-next p { font-size: 0.8rem; }
.trust-strip { margin-block: 1.5rem; }
.article-toc { margin: 0 0 1.5rem; padding: 1rem 1.25rem; border: 1px solid #d8dfe5; border-radius: 12px; }
.article-toc summary { font-weight: 800; cursor: pointer; min-height: 44px; padding-block: 0.5rem; }
.article-toc ul { margin-bottom: 0; padding-left: 1.25rem; }
.article-toc a { display: inline-block; padding-block: 0.5rem; }
.section[id] { scroll-margin-top: 1.5rem; }
.affiliate-options { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: 1rem; }
.affiliate-option { padding: 1.25rem; border: 1px solid #d8dfe5; border-radius: 14px; background: #fff; min-width: 0; }
.affiliate-option h3 { margin-top: 0; }
.affiliate-option .affiliate-link { width: 100%; white-space: normal; text-align: center; padding-inline: 0.75rem; gap: 0.4rem; }
.affiliate-option .product-status { font-size: 0.85rem; }
.purchase-region { margin-top: 1.25rem; }
.purchase-region summary { cursor: pointer; font-weight: 700; min-height: 44px; padding-block: 0.6rem; }
.editorial-next { margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid #d8dfe5; }
.editorial-next a { display: inline-block; padding-block: 0.6rem; }
.noscript-note { padding: 1rem; border: 2px solid var(--coral-dark); }
@media (max-width: 700px) {
  .hero { min-height: 0; padding: 1.75rem 18px; }
  .hero h1, .hero:not(.hero-home) h1 { font-size: clamp(1.8rem, 7.5vw, 2.4rem); line-height: 1.15; }
  .hero .night-orbit { display: none; }
  .hero.has-tool { padding: 1.1rem 18px; }
  .hero.has-tool h1, .hero.has-tool:not(.hero-home) h1 { font-size: 1.9rem; margin-block: 0.5rem; }
  .hero.has-tool .lede { font-size: 1rem; line-height: 1.5; margin-bottom: 0.5rem; }
  .hero.has-tool .eyebrow { font-size: 0.7rem; margin: 0; }
  .hero.has-tool .byline { font-size: 0.75rem; margin-block: 0.5rem 0; }
  .breadcrumbs { padding: 0.65rem 18px; font-size: 0.75rem; }
  .breadcrumbs ol { flex-wrap: wrap; }
  .content-wrap { padding: 1.5rem 18px 3rem; }
  .has-tool + .content-wrap { padding-top: 1rem; }
  .tool-panel { padding: 1.15rem; }
  .calculator { padding: 0.8rem; }
  .segmented label { padding: 0.65rem 0.75rem; font-size: 0.9rem; min-height: 48px; }
  .tool-head h2 { font-size: 1.4rem; margin-block: 0.4rem; }
  .tool-head .eyebrow { font-size: 0.7rem; }
  .tool-head p { font-size: 0.85rem; }
  .section { margin-block: 2rem; }
  .trust-strip { grid-template-columns: 1fr 1fr; padding: 0.75rem; gap: 0.5rem; font-size: 0.75rem; }
  .affiliate-panel { padding: 1.25rem; }
  .affiliate-option { padding: 1rem; }
  .article-toc { padding: 0.65rem 1rem; }
  .field input, .field select { font-size: max(16px, 1rem); }
}
@media print {
  .article-toc, .affiliate-panel, .editorial-next { display: none; }
  .tool-panel .method-link a { color: #000; }
}
@media (max-width: 350px) {
  /* The visible merchant name and accessible new-tab notice remain; keep room for the category. */
  .affiliate-option .affiliate-link > span[aria-hidden="true"] { display: none; }
}
