.service-main .page-head { padding-bottom: 28px; }
.service-content { max-width: 920px; padding-bottom: 64px; }
.service-content > p { max-width: 760px; }
.service-content h2 { margin-top: 40px; font-size: 27px; }
.service-list { border-top: 1px solid var(--line); margin: 28px 0; }
.service-list > a { display: flex; justify-content: space-between; align-items: center; gap: 28px; padding: 24px 0; border-bottom: 1px solid var(--line); text-decoration: none; }
.service-list strong { display: block; font-size: 22px; line-height: 1.3; margin-bottom: 8px; }
.service-list a span span { display: block; color: var(--muted); }
.service-list a:hover strong { text-decoration: underline; text-underline-offset: 5px; }
.utility-section { border-block: 1px solid var(--line); padding-block: 40px; }
.utility-section .utility-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; }
.utility-links { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 36px; }
.utility-links a { display: block; text-decoration: none; padding-block: 12px; }
.utility-links strong { display: block; font-size: 19px; margin-bottom: 6px; }
.utility-links span { color: var(--muted); font-size: 14px; }
.utility-links a:hover strong { text-decoration: underline; }
.tools-nav { display: flex; flex-wrap: wrap; gap: 8px 24px; margin-bottom: 24px; border-bottom: 1px solid var(--line); }
.tools-nav a { display: inline-flex; align-items: center; min-height: 48px; font-weight: 600; }
.tool-form { padding: 28px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); }
.tool-field { margin-bottom: 22px; min-width: 0; }
.tool-field label { display: block; font-weight: 600; margin-bottom: 9px; }
.tool-field input, .tool-field select { display: block; width: 100%; min-width: 0; min-height: 48px; padding: 10px 12px; border: 1px solid var(--input-border); border-radius: 5px; color: var(--ink); background: var(--bg); }
.tool-field small { display: block; margin-top: 8px; font-size: 12px; color: var(--muted); }
.compare-inputs, .field-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 28px; }
.compare-inputs fieldset { margin: 0 0 22px; border: 0; padding: 0; min-width: 0; }
.compare-inputs legend { font-weight: 700; font-size: 24px; margin-bottom: 20px; }
.tool-error { color: var(--error); margin: 14px 0 0; }
.tool-error:empty { display: none; }
.tool-status { min-height: 26px; margin-top: 12px; font-size: 14px; }
.tool-result { border-top: 2px solid var(--green); padding-top: 4px; }
.tool-result[hidden] { display: none; }
.tool-privacy, .content-date { font-size: 13px; color: var(--muted); }
.tool-method { margin-top: 40px; border-top: 1px solid var(--line); }
.tool-method p { max-width: 760px; }
.schedule-details { margin: 20px 0; }
.schedule-details > summary { padding-block: 16px; }
.schedule-details .comparison { font-size: 13px; min-width: 740px; }
.result-pairs { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin: 24px 0; }
.result-pairs dt { color: var(--muted); margin-bottom: 10px; }
.result-pairs dd { margin: 0; font-size: clamp(24px,4vw,36px); font-weight: 700; overflow-wrap: anywhere; }
.date-list { columns: 2; padding-left: 24px; margin-bottom: 28px; }
.date-list li { break-inside: avoid; padding: 5px 10px 5px 0; }
.signing-checklist { margin: 26px 0; }
.signing-checklist > label { display: flex; gap: 16px; align-items: flex-start; padding: 16px 0; border-bottom: 1px solid var(--line); cursor: pointer; }
.signing-checklist input { width: 22px; height: 22px; margin: 3px 0 0; flex: 0 0 22px; accent-color: var(--green); }
.checklist-status { margin-top: 20px; }
.guide-definitions dt { font-weight: 700; margin-top: 20px; }
.guide-definitions dd { margin: 8px 0 0; }
.service-content blockquote { margin: 24px 0; border-left: 3px solid var(--green); padding: 12px 22px; background: var(--surface); }
.service-related { border-top: 1px solid var(--line); padding-block: 30px; }
@media (max-width: 680px) {
  .tool-form { padding: 20px 16px; }
  .compare-inputs, .field-grid, .result-pairs, .utility-links { grid-template-columns: 1fr; }
  .compare-inputs fieldset + fieldset { border-top: 1px solid var(--line); padding-top: 24px; }
  .compare-inputs legend { padding-top: 12px; }
  .service-content { padding-bottom: 36px; }
  .service-list strong { font-size: 20px; }
  .service-content h2 { font-size: 24px; }
  .utility-section .utility-heading { display: block; }
  .utility-section .utility-heading h2 { margin-bottom: 8px; }
  .utility-links { gap: 0; }
  .utility-links a + a { border-top: 1px solid var(--line); }
  .utility-links a { padding-block: 18px; }
  .date-list { columns: 1; }
  .tool-form .button { width: 100%; white-space: normal; }
}

.tool-field input[aria-invalid="true"], .tool-field select[aria-invalid="true"] { border: 2px solid var(--error); }
.field-error { display: block; color: var(--error); font-size: 14px; margin-top: 8px; }
.tool-error:not(:empty) { border: 2px solid var(--error); padding: 16px; margin-bottom: 18px; }
.tool-error a { display: inline-block; padding-block: 6px; }
.tool-error ul { margin-bottom: 0; }
.result-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 24px 0; }
.result-actions .button { white-space: normal; }
.mobile-comparison { display: none; }
.tool-result h2:focus-visible { outline: 3px solid var(--focus); outline-offset: 6px; }
.schedule-hint { font-size: 13px; color: var(--muted); }
.tool-status:empty { min-height: 0; }
.download-status { font-size: 14px; color: var(--muted); }
@media (max-width: 680px) {
  .compare-desktop { display: none; }
  .mobile-comparison { display: block; margin: 24px 0; }
  .mobile-comparison > div { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 10px 16px; padding: 20px 0; border-bottom: 1px solid var(--line); }
  .mobile-comparison dt { grid-column: 1 / -1; font-size: 15px; font-weight: 600; }
  .mobile-comparison dd { margin: 0; font-size: 18px; font-weight: 700; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
  .mobile-comparison dd span { display: block; font-size: 12px; font-weight: 400; color: var(--muted); margin-bottom: 5px; }
  .mobile-comparison > div:first-child { border-top: 2px solid var(--green); }
  .result-actions { flex-direction: column; }
}
@media print {
  .tool-form, .tools-nav, .result-actions, .tool-result button, .footer, .legal-bottom, .download-status { display: none !important; }
  .mobile-comparison { display: none; }
  .compare-desktop { display: block; }
  .tool-result { break-inside: avoid; }
  .table-scroll { overflow: visible; }
  .schedule-details .comparison { min-width: 0; }
}
.service-content > .content-date { margin-top: 24px; }
.service-content > .news-list { list-style: none; padding: 0; margin: 32px 0; border-top: 1px solid var(--line); }
.service-content > .news-list > li { padding: 24px 0; border-bottom: 1px solid var(--line); }
.service-content > .news-list h3 { margin: 8px 0 12px; font-size: 24px; line-height: 1.35; }
.service-content > .news-list p { margin: 0; }
.service-content > .news-list h3 a { text-decoration: none; }
.service-content > .news-list h3 a:hover { text-decoration: underline; text-underline-offset: 4px; }
.article-calculator { max-width: 560px; margin: 32px 0; }
.article-calculator .calc-heading { margin-top: 0; }
@media (max-width: 680px) { .service-content > .news-list h3 { font-size: 22px; } }

.article-toc { margin-block: 24px 32px; border-block: 1px solid var(--line); }
.article-toc summary { min-height: 48px; font-size: 16px; line-height: 1.5; padding-block: 16px; }
.article-toc ol { margin: 0 0 16px; padding-inline-start: 24px; }
.article-toc li { margin: 0; padding-inline-start: 4px; }
.article-toc a { display: inline-block; padding-block: 10px; line-height: 1.5; overflow-wrap: anywhere; }
.service-content > h2[id] { scroll-margin-block: 24px 100px; }
.comparison-explanation { padding-inline-start: 18px; border-inline-start: 3px solid var(--green); }
@media print { .article-toc { display: none; } }
