@charset "UTF-8";

:root {
  color-scheme: light;
  --paper: #f6f3eb;
  --white: #fffefa;
  --ink: #263b34;
  --muted: #58665e;
  --line: #d4dbd0;
  --sage: #e6ece2;
  --accent: #a95031;
  --wrap: 1120px;
  --sans: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  --serif: "Hiragino Mincho ProN", "Yu Mincho", YuMincho, serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 24px; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--sans); font-size: 15px; line-height: 1.95; -webkit-text-size-adjust: 100%; }
h1, h2, h3, h4, p, ol, ul, dl, dd { margin: 0; }
h1, h2, h3, h4 { overflow-wrap: anywhere; }
a { color: inherit; text-underline-offset: .25em; }
a:hover { text-decoration-thickness: 2px; }
a:focus-visible { outline: 3px solid var(--accent); outline-offset: 5px; border-radius: 2px; }
img { display: block; max-width: 100%; height: auto; }
section[id] { scroll-margin-top: 24px; }
.wrap { width: min(var(--wrap), calc(100% - 40px)); margin-inline: auto; }
.narrow { max-width: 820px; }
.skip-link { position: fixed; z-index: 10; left: 16px; top: 12px; transform: translateY(-160%); padding: 10px 16px; background: var(--ink); color: #fff; }
.skip-link:focus { transform: translateY(0); }
.eyebrow { color: var(--muted); font-size: 12px; font-weight: 700; letter-spacing: .16em; line-height: 1.6; }
.small-note { color: var(--muted); font-size: 12px; line-height: 1.9; }
.disclosure-bar { background: var(--ink); color: var(--white); }
.disclosure-inner { display: flex; align-items: flex-start; gap: 10px; padding-block: 11px; }
.pr-label { flex: 0 0 auto; padding: 2px 7px; border: 1px solid #f6f3eb88; font-size: 12px; font-weight: 700; line-height: 1.8; }
.disclosure-inner p { font-size: 12px; line-height: 1.8; }
.site-header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; padding-block: 20px 17px; border-bottom: 1px solid var(--line); }
.brand { display: inline-flex; gap: 11px; align-items: center; text-decoration: none; }
.brand img { width: 48px; height: 48px; object-fit: cover; }
.brand > span { font-size: 15px; font-weight: 700; line-height: 1.5; }
.brand small { display: block; margin-top: 4px; color: var(--muted); font-size: 12px; font-weight: 400; letter-spacing: .02em; }
.header-nav { display: flex; flex-wrap: wrap; width: 100%; gap: 4px 20px; }
.header-nav a { display: inline-flex; align-items: center; min-height: 38px; font-size: 12px; font-weight: 600; text-decoration: none; }
.header-nav a:hover { color: var(--accent); }
.hero { padding-block: 39px 36px; }
.hero h1 { margin-top: 17px; font-family: var(--serif); font-size: clamp(35px, 9.4vw, 52px); font-weight: 600; letter-spacing: -.055em; line-height: 1.65; }
.hero h1 > span { display: block; }
.hero-intro { margin-top: 23px; font-size: 17px; font-weight: 600; line-height: 1.9; }
.hero-description { max-width: 37em; margin-top: 14px; color: var(--muted); font-size: 14px; line-height: 2; }
.desktop-break { display: none; }
.button { display: inline-flex; align-items: center; justify-content: space-between; gap: 22px; min-height: 56px; max-width: 100%; margin-top: 23px; padding: 14px 18px; background: var(--ink); color: var(--white); border: 1px solid var(--ink); font-size: 14px; font-weight: 600; text-decoration: none; line-height: 1.7; }
.button:hover { background: #3d554a; }
.button span { font-size: 18px; }
.publisher-note { margin-top: 11px; color: var(--muted); font-size: 12px; }
.reading-note { margin-top: 30px; padding: 22px; background: var(--sage); border: 1px solid #cad3c6; }
.note-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.note-index { font-size: 12px; font-weight: 700; letter-spacing: .1em; }
.note-symbol { display: grid; place-items: center; width: 35px; height: 35px; border: 1px solid #9baa9a; border-radius: 50%; font-size: 21px; }
.note-title { margin-top: 20px; font-family: var(--serif); font-size: 23px; font-weight: 600; line-height: 1.7; letter-spacing: -.04em; }
.note-list { list-style: none; margin-top: 18px; padding: 0; }
.note-list li { display: flex; align-items: flex-start; gap: 17px; padding-block: 15px; border-top: 1px solid #bdcabb; }
.note-list li > span { color: var(--muted); font: 400 25px/1.7 Georgia, serif; }
.note-list b { font-size: 15px; font-weight: 600; }
.note-list p { color: var(--muted); font-size: 14px; line-height: 1.8; }
.note-caption { padding-top: 10px; font-size: 12px; color: var(--muted); line-height: 1.9; }
.identity-notice { display: flex; gap: 13px; padding: 18px; border: 1px solid var(--line); background: var(--white); }
.notice-mark { display: grid; place-items: center; flex: 0 0 23px; height: 23px; margin-top: 3px; border: 1px solid var(--muted); border-radius: 50%; font: 16px/1 Georgia, serif; }
.identity-notice p { font-size: 14px; line-height: 1.95; }
.identity-notice p + p { margin-top: 5px; color: var(--muted); }
.contents { padding-block: 32px 40px; }
.contents-grid { display: grid; grid-template-columns: 1fr; margin-top: 11px; }
.contents-grid a { display: flex; align-items: center; gap: 12px; min-height: 49px; padding-block: 10px; border-bottom: 1px solid var(--line); font-size: 14px; font-weight: 600; text-decoration: none; }
.contents-grid a:hover { color: var(--accent); }
.contents-grid a > span { color: var(--muted); font: 12px/1 Georgia, serif; }
.contents-grid i { margin-left: auto; font-size: 16px; font-style: normal; font-weight: 400; }
.section { padding-block: 48px; border-top: 1px solid var(--line); }
.section-heading { margin-bottom: 26px; }
.section-heading h2 { margin-top: 13px; font-family: var(--serif); font-size: clamp(27px, 7.4vw, 38px); font-weight: 600; line-height: 1.65; letter-spacing: -.045em; }
.section-heading > p:not(.eyebrow) { max-width: 43em; margin-top: 15px; color: var(--muted); font-size: 14px; line-height: 2; }
.official-section { background: var(--white); }
.official-copy h3 { font-family: var(--serif); font-size: 23px; font-weight: 600; line-height: 1.75; letter-spacing: -.03em; }
.official-copy > p { max-width: 35em; margin-top: 16px; color: var(--muted); font-size: 14px; }
.text-link { display: inline-flex; gap: 20px; align-items: center; min-height: 44px; margin-top: 15px; font-size: 14px; font-weight: 600; }
.official-overview { margin-top: 25px; padding: 22px; background: var(--paper); border: 1px solid var(--line); }
.status-label { display: inline-flex; padding: 3px 8px; color: #7f442e; background: #f2e6d9; font-size: 12px; font-weight: 700; line-height: 1.8; }
.official-overview h3 { margin-top: 15px; font-size: 17px; font-weight: 600; line-height: 1.8; }
.official-overview > p { margin-top: 11px; font-size: 14px; line-height: 1.95; }
.official-overview > p.small-note { margin-top: 14px; padding-top: 13px; border-top: 1px solid var(--line); font-size: 12px; }
.price-section { background: #edf0e8; }
.visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.price-table-block { padding: 19px 16px 14px; border: 1px solid #c8d1c3; background: var(--white); }
.table-caption { font-size: 14px; font-weight: 600; }
.table-caption > span { display: block; margin-top: 3px; color: var(--muted); font-size: 12px; font-weight: 400; }
.table-scroll { margin-top: 17px; overflow-x: auto; overscroll-behavior-inline: contain; }
table { width: 100%; min-width: 540px; border-collapse: collapse; text-align: left; font-size: 14px; }
th, td { padding: 15px 13px; border-bottom: 1px solid var(--line); white-space: nowrap; }
thead { background: var(--sage); }
thead th { font-size: 12px; font-weight: 600; }
tbody th { font-size: 14px; font-weight: 600; }
tbody tr:last-child th, tbody tr:last-child td { border-bottom: 0; }
td strong { font-size: 16px; font-weight: 700; }
.table-scroll-hint { margin-top: 11px; color: var(--muted); font-size: 12px; }
.price-explanation { margin-top: 20px; }
.price-explanation p { color: var(--muted); font-size: 14px; line-height: 2; }
.price-explanation p + p { margin-top: 12px; }
.price-explanation strong { color: var(--ink); font-weight: 600; }
.medical-notice { margin-top: 27px; padding: 22px; border: 1px solid #bfa58f; border-left: 3px solid #9b654a; background: #f6eee3; }
.medical-notice h3 { margin-top: 10px; font-size: 18px; font-weight: 600; line-height: 1.8; }
.medical-notice > p:not(.eyebrow) { margin-top: 13px; color: #554b42; font-size: 14px; line-height: 2; }
.medical-notice > p.small-note { padding-top: 14px; border-top: 1px solid #d7c6b5; font-size: 12px; }
.medical-notice a { display: inline-block; margin-top: 8px; }
.subsection-title { margin-block: 31px 17px; font-size: 17px; font-weight: 600; line-height: 1.8; }
.price-grid { display: grid; gap: 13px; }
.editorial-card { position: relative; padding: 24px; border: 1px solid var(--line); background: var(--white); }
.card-number { position: absolute; top: 24px; right: 24px; color: #748276; font: 13px/1.5 Georgia, serif; }
.card-symbol { display: flex; align-items: center; justify-content: center; width: 51px; height: 51px; color: var(--ink); background: var(--sage); border-radius: 50%; }
.symbol-price { font: 24px/1 Georgia, serif; }
.symbol-total { gap: 3px; align-items: flex-end; padding: 15px; }
.symbol-total span { width: 5px; height: 14px; background: #6b836e; }
.symbol-total span:nth-child(2) { height: 20px; }
.symbol-total span:nth-child(3) { height: 11px; }
.symbol-cycle { font: 32px/1 Georgia, serif; }
.editorial-card h3 { margin-top: 19px; font-size: 17px; font-weight: 600; line-height: 1.8; }
.editorial-card p { margin-top: 11px; color: var(--muted); font-size: 14px; }
.reading-callout { display: flex; flex-direction: column; gap: 9px; margin-top: 22px; padding: 19px 21px; border-left: 3px solid #738c77; background: #e0e7dc; }
.callout-label { flex: 0 0 auto; font-size: 12px; font-weight: 700; line-height: 1.8; }
.reading-callout p { font-size: 14px; line-height: 1.95; }
.confirmation-list { list-style: none; padding: 0; }
.confirmation-list li { display: flex; gap: 17px; padding-block: 23px; border-top: 1px solid var(--line); }
.confirmation-list li > span { color: var(--muted); font: 13px/2.1 Georgia, serif; }
.confirmation-list h3 { font-size: 15px; font-weight: 600; line-height: 1.9; }
.confirmation-list p { margin-top: 9px; color: var(--muted); font-size: 14px; }
.service-flow { margin-top: 25px; padding: 23px; border: 1px solid var(--line); background: var(--white); }
.service-flow > h3 { font-size: 16px; font-weight: 600; line-height: 1.9; }
.flow-list { display: grid; list-style: none; padding: 0; margin-top: 20px; }
.flow-list li { position: relative; padding: 18px 0; border-top: 1px solid var(--line); }
.flow-list li > span { color: var(--muted); font: 12px/1.6 Georgia, serif; }
.flow-list h4 { margin-top: 7px; font-size: 16px; font-weight: 600; line-height: 1.8; }
.flow-list p { margin-top: 8px; color: var(--muted); font-size: 14px; line-height: 1.95; }
.service-flow > p.small-note { margin-top: 11px; padding-top: 15px; border-top: 1px solid var(--line); font-size: 12px; }
.faq-section { background: var(--white); }
.qa-card { padding-block: 23px; border-top: 1px solid var(--line); }
.qa-card:last-child { padding-bottom: 0; }
.qa-card h3 { display: flex; align-items: flex-start; gap: 13px; font-size: 15px; font-weight: 600; line-height: 1.9; }
.qa-card h3 span { flex: 0 0 22px; color: var(--muted); font: 21px/1.3 Georgia, serif; }
.qa-card > p { margin-top: 12px; padding-left: 35px; color: var(--muted); font-size: 14px; line-height: 2; }
.policy-copy article + article { margin-top: 26px; }
.policy-copy h3 { font-size: 16px; font-weight: 600; line-height: 1.9; }
.policy-copy p { margin-top: 10px; color: var(--muted); font-size: 14px; line-height: 2; }
.operator-card { margin-top: 29px; padding: 24px; background: var(--sage); border: 1px solid #c9d3c4; }
.operator-card h3 { margin-top: 11px; font-size: 21px; font-weight: 600; line-height: 1.8; }
.operator-card dl { margin-top: 20px; }
.operator-card dt { margin-top: 17px; color: var(--muted); font-size: 12px; font-weight: 600; }
.operator-card dd { margin-top: 3px; font-size: 14px; overflow-wrap: anywhere; }
.operator-card > p.small-note { margin-top: 21px; padding-top: 17px; border-top: 1px solid #bdcabb; font-size: 12px; }
.privacy-section { background: #edf0e8; }
.privacy-copy article + article { margin-top: 25px; }
.privacy-copy h3 { font-size: 15px; font-weight: 600; line-height: 1.9; }
.privacy-copy p { margin-top: 10px; color: var(--muted); font-size: 14px; line-height: 2; }
.sources-section { background: var(--white); }
.source-list { list-style: none; padding: 0; margin-top: 25px; }
.source-list li { padding-block: 19px; border-top: 1px solid var(--line); }
.source-list h3 { font-size: 14px; font-weight: 600; line-height: 1.9; }
.source-list p { margin-top: 8px; color: var(--muted); font-size: 14px; line-height: 1.95; }
.source-list a { overflow-wrap: anywhere; }
.source-link { display: inline-block; margin-top: 8px; font-size: 14px; line-height: 1.9; }
.source-footer { margin-top: 8px; color: var(--muted); font-size: 12px; line-height: 1.9; }
.site-footer { padding-block: 30px 24px; border-top: 1px solid var(--line); }
.footer-main { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; }
.back-to-top { display: inline-flex; align-items: center; gap: 16px; min-height: 44px; font-size: 12px; text-decoration: none; }
.back-to-top span { font-size: 20px; }
.footer-notice { max-width: 56em; margin-top: 24px; color: var(--muted); font-size: 12px; line-height: 1.9; }
.footer-bottom { display: flex; flex-wrap: wrap; gap: 9px 20px; justify-content: space-between; margin-top: 23px; padding-top: 18px; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; }

@media (max-width: 539px) {
  .price-table-block { padding: 19px 14px 14px; }
  .table-scroll { overflow: visible; }
  .table-scroll table { display: block; width: 100%; min-width: 0; }
  .table-scroll thead { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
  .table-scroll tbody { display: grid; gap: 14px; }
  .table-scroll tbody tr { display: block; overflow: hidden; border: 1px solid var(--line); }
  .table-scroll tbody th { display: block; padding: 13px 15px; background: var(--sage); border: 0; font-size: 15px; white-space: normal; }
  .table-scroll tbody tr td { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 12px; padding: 11px 15px; border-bottom: 1px solid var(--line); font-size: 14px; white-space: normal; }
  .table-scroll tbody td::before { content: attr(data-label); color: var(--muted); font-size: 12px; line-height: 1.95; }
  .table-scroll tbody td:last-child { grid-template-columns: minmax(0, 1fr); gap: 3px; padding-block: 13px; border-bottom: 0; background: #f8f8f1; }
  .table-scroll tbody td:last-child strong { text-align: right; font-size: 22px; line-height: 1.6; }
  .table-scroll-hint { display: none; }
}

@media (min-width: 540px) {
  .wrap { width: min(var(--wrap), calc(100% - 64px)); }
  .contents-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 26px; }
  .hero { padding-block: 48px; }
  .hero h1 { font-size: 51px; }
  .reading-note { padding: 30px; }
  .reading-callout { flex-direction: row; align-items: flex-start; gap: 20px; }
  .price-grid { gap: 18px; }
  .editorial-card { padding: 30px; }
  .section { padding-block: 64px; }
  .desktop-break { display: inline; }
  .mobile-break { display: none; }
}

@media (min-width: 900px) {
  .wrap { width: min(var(--wrap), calc(100% - 96px)); }
  .disclosure-inner { align-items: center; padding-block: 9px; }
  .disclosure-inner p { font-size: 12px; }
  .site-header { flex-wrap: nowrap; padding-block: 22px; }
  .brand img { width: 53px; height: 53px; }
  .brand > span { font-size: 16px; }
  .brand small { font-size: 12px; }
  .header-nav { width: auto; gap: 30px; }
  .header-nav a { min-height: 44px; font-size: 12px; }
  .hero { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .85fr); align-items: center; gap: 75px; padding-block: 63px 56px; }
  .hero h1 { margin-top: 21px; font-size: clamp(48px, 4.7vw, 65px); line-height: 1.6; }
  .hero-intro { margin-top: 23px; font-size: 18px; }
  .hero-description { font-size: 14px; }
  .reading-note { margin: 0; padding: 30px; }
  .note-title { margin-top: 31px; font-size: 26px; }
  .note-list { margin-top: 24px; }
  .note-list li { gap: 20px; padding-block: 19px; }
  .note-caption { padding-top: 18px; }
  .identity-notice { gap: 15px; padding: 20px 24px; }
  .identity-notice p { font-size: 14px; }
  .contents { padding-block: 35px 52px; }
  .contents-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 29px; }
  .contents-grid a { min-height: 54px; font-size: 14px; }
  .section { padding-block: 78px; }
  .section-heading { margin-bottom: 34px; }
  .section-heading h2 { font-size: 37px; }
  .section-heading > p:not(.eyebrow) { font-size: 14px; }
  .official-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; gap: 65px; }
  .official-copy h3 { font-size: 27px; }
  .official-copy > p { font-size: 14px; }
  .official-overview { margin-top: 0; padding: 29px; }
  .price-table-block { padding: 25px 28px 18px; }
  .table-caption { font-size: 16px; }
  .table-caption > span { display: inline; margin-left: 16px; font-size: 12px; }
  th, td { padding: 18px; }
  thead th, tbody th { font-size: 14px; }
  td { font-size: 15px; }
  td strong { font-size: 20px; }
  .price-explanation p { font-size: 14px; }
  .medical-notice { padding: 27px 30px; }
  .medical-notice h3 { font-size: 20px; }
  .medical-notice > p:not(.eyebrow) { font-size: 14px; }
  .medical-notice > p.small-note { font-size: 12px; }
  .subsection-title { margin-top: 37px; font-size: 19px; }
  .price-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
  .editorial-card { padding: 28px; }
  .editorial-card h3 { margin-top: 25px; }
  .editorial-card p { font-size: 14px; line-height: 2; }
  .reading-callout { margin-top: 27px; padding: 20px 25px; }
  .before-layout { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 85px; }
  .before-layout .section-heading { margin-bottom: 0; }
  .confirmation-list li { padding-block: 24px; gap: 23px; }
  .confirmation-list h3 { font-size: 16px; }
  .confirmation-list p { font-size: 14px; }
  .service-flow { margin-top: 37px; padding: 28px 30px; }
  .service-flow > h3 { font-size: 18px; }
  .flow-list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; margin-top: 22px; }
  .flow-list li { padding-block: 20px; }
  .flow-list h4 { font-size: 18px; }
  .flow-list p { font-size: 14px; }
  .qa-card { padding-block: 27px; }
  .qa-card h3 { font-size: 16px; }
  .qa-card > p { font-size: 14px; }
  .policy-layout { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); align-items: start; gap: 72px; }
  .policy-copy article + article { margin-top: 30px; }
  .policy-copy h3 { font-size: 18px; }
  .policy-copy p { font-size: 14px; }
  .operator-card { margin-top: 0; padding: 30px; }
  .privacy-copy h3 { font-size: 17px; }
  .privacy-copy p { font-size: 14px; }
  .source-list h3 { font-size: 15px; }
  .source-list p { font-size: 14px; }
  .site-footer { padding-block: 37px 26px; }
}

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

@media print {
  body { background: #fff; font-size: 11pt; }
  .wrap { width: 100%; }
  .skip-link, .header-nav, .contents, .button, .back-to-top { display: none; }
  .section { padding-block: 24px; }
  .editorial-card, .qa-card, .operator-card, .source-list li { break-inside: avoid; }
  .disclosure-bar { color: #000; background: none; border-bottom: 1px solid #777; }
  .pr-label { border-color: #777; }
}
