.weight-pricing { container-type: inline-size; margin-block: 12px 28px; }
.weight-pricing .pricing-scroll-hint { margin: 0 0 12px; color: #56504b; font-size: 13px; line-height: 1.7; }
.pricing-table-scroll { max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; border-radius: 12px; }
.pricing-table-scroll:focus-visible { outline: 2px solid #24677a; outline-offset: 4px; }
.weight-pricing-table { width: 100%; min-width: 940px; table-layout: fixed; border-collapse: separate; border-spacing: 6px 8px; color: #214e59; font-size: 15px; line-height: 1.6; font-variant-numeric: tabular-nums; }
.weight-pricing-table caption { padding: 0 6px 14px; text-align: left; color: var(--heading, #342f2b); font-size: 17px; font-weight: 600; }
.weight-pricing-table caption span { font-size: 13px; font-weight: 400; white-space: nowrap; }
.weight-pricing-table th, .weight-pricing-table td { padding: 20px 10px; border: 1px solid #dfebee; border-radius: 10px; text-align: center; vertical-align: middle; }
.weight-pricing-table thead th { background: #dff0f4; font-size: 17px; font-weight: 700; }
.weight-pricing-table thead th:first-child { width: 160px; background: #fff; }
.weight-pricing-table thead .standard-plan { width: 160px; background: #24677a; color: #fff; border-color: #24677a; }
.weight-pricing-table thead .half-year-plan { background: #cee5eb; }
.weight-pricing-table thead .annual-plan { background: #bd5930; border-color: #bd5930; color: #fff; }
.weight-pricing-table thead th small { display: block; font-size: 12px; font-weight: 500; }
.weight-pricing-table tbody th { background: #fff; font-size: 16px; font-weight: 700; }
.weight-pricing-table tbody th span { display: block; white-space: nowrap; }
.weight-pricing-table tr > :first-child { position: sticky; left: 0; z-index: 1; box-shadow: 3px 0 0 var(--paper, #faf8f5); }
.weight-pricing-table td { background: #f0f8fa; }
.weight-pricing-table td.half-year-plan { background: #ebf5f8; }
.weight-pricing-table td.annual-plan { background: #fff0e7; border-color: #f3d6c5; color: #a74723; }
.weight-pricing-table .pricing-amount { display: block; white-space: nowrap; font-size: 12px; font-weight: 700; }
.weight-pricing-table .pricing-amount strong { font-family: var(--numbers, Arial, sans-serif); font-size: clamp(22px, 2.5cqi, 30px); line-height: 1.3; font-weight: 700; }
.weight-pricing-table .pricing-total { display: block; margin-top: 10px; padding-top: 10px; border-top: 1px dashed #cbdde2; font-size: 13px; white-space: nowrap; }
.weight-pricing-table .annual-plan .pricing-total { border-color: #e5bba4; }
.weight-pricing .pricing-savings { margin: 14px 6px 0; color: #8a4126; font-size: 14px; line-height: 1.9; }
.pricing-savings strong { font-weight: 700; white-space: nowrap; }
.campaign-benefits { position: relative; isolation: isolate; margin-top: 36px; padding: 36px; background: radial-gradient(ellipse at 50% 0%, #fffefa 0%, transparent 65%), linear-gradient(135deg, #f7edda, #fffbf4 50%, #f1e4cc); border: 1px solid #c5a56b; border-radius: 16px; color: #214e59; box-shadow: 0 8px 28px rgb(118 88 37 / 8%); }
.campaign-benefits::before { content: ""; position: absolute; inset: 6px; border: 1px solid rgb(191 155 91 / 30%); border-radius: 11px; pointer-events: none; z-index: -1; }
.campaign-benefits h3 { display: flex; align-items: center; justify-content: center; gap: 18px; margin: 0 0 28px; color: #654e2d; font-family: var(--serif); font-size: 27px; font-weight: 600; letter-spacing: .05em; line-height: 1.5; text-align: center; }
.campaign-benefits h3::before, .campaign-benefits h3::after { content: ""; flex: 0 1 56px; height: 1px; background: linear-gradient(90deg, transparent, #b28b48); }
.campaign-benefits h3::after { transform: rotate(180deg); }
.campaign-benefits ol { margin: 0; padding: 0; list-style: none; }
.campaign-main-benefits { display: grid; gap: 12px; }
.campaign-benefits li { display: flex; align-items: center; gap: 18px; margin: 0; padding: 22px 24px; background: linear-gradient(110deg, #fff, #fffdf9); border: 1px solid #ead9b8; border-radius: 10px; box-shadow: 0 3px 10px rgb(111 84 36 / 4%); }
.campaign-main-benefits > li:first-child { border-color: #d6b574; background: linear-gradient(110deg, #fffaf0, #fffefd); }
.campaign-benefits .campaign-number { display: grid; place-items: center; flex: 0 0 42px; height: 42px; border: 1px solid #e4c58e; border-radius: 50%; background: linear-gradient(135deg, #a17a37, #795621); color: #fff; box-shadow: 0 0 0 3px #f8eedc, inset 0 1px 0 rgb(255 255 255 / 35%); font: 700 22px/1 var(--numbers, Arial, sans-serif); }
.campaign-benefits li p { margin: 0; min-width: 0; font-size: 22px; line-height: 1.8; font-weight: 700; }
.campaign-benefits strong { display: inline-block; color: #ac4e28; font-weight: 700; background: linear-gradient(transparent 70%, #fce5cf 70%); }
.campaign-benefits .campaign-loan-label { display: block; font-size: 16px; }
.campaign-benefits .campaign-extra-heading { display: inline-block; margin: 26px 0 14px; padding: 5px 18px; border: 1px solid #d9bc84; border-radius: 30px; background: linear-gradient(110deg, #f2e1be, #fbf3e3); color: #74572d; font-size: 15px; font-weight: 700; }
.campaign-extra-benefits { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.campaign-extra-benefits .campaign-number { background: linear-gradient(135deg, #b17946, #8a502d); }
.campaign-extra-benefits li p { font-size: 20px; }
.trial-monitor { width: 100%; max-width: 740px; margin-inline: auto; padding: 0; overflow: hidden; border: 1px solid #d68a52; border-radius: min(20px, 3vw); background: #fff; box-shadow: 0 8px 28px rgb(116 71 35 / 5%); }
.motion-ready .trial-monitor[data-reveal], .motion-ready .trial-monitor[data-reveal]:not(.is-visible) { opacity: 1; transform: none; transition: none; animation: none; }
.trial-monitor .trial-monitor-layout { grid-template-columns: 1fr; gap: 0; align-items: stretch; }
.trial-monitor-heading { position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 0; padding: clamp(26px, 8.5cqi, 64px) clamp(20px, 5.4cqi, 40px) clamp(26px, 7.5cqi, 56px); background: linear-gradient(115deg, #bd743e, #b9632e 55%, #bd6d35); color: #fff; text-align: center; }
.trial-monitor-heading::before, .trial-monitor-heading::after { content: ""; position: absolute; z-index: -1; width: 54%; aspect-ratio: 1; border-radius: 50%; background: rgb(255 232 204 / 13%); pointer-events: none; }
.trial-monitor-heading::before { top: -47%; left: -35%; }
.trial-monitor-heading::after { width: 62%; bottom: -27%; right: -40%; }
.trial-monitor .trial-monitor-limit { align-items: center; justify-content: center; gap: clamp(5px, 1.5cqi, 12px); margin: 0 0 clamp(18px, 5cqi, 38px); padding: clamp(5px, 1.4cqi, 10px) clamp(17px, 5cqi, 36px); border: 0; border-radius: 999px; background: #f8e7d9; color: #b35f2b; font-size: clamp(12px, 3.8cqi, 28px); font-weight: 700; line-height: 1.3; white-space: nowrap; }
.trial-monitor .trial-monitor-limit strong { margin-inline: 0; font: 700 clamp(28px, 8.2cqi, 60px)/1 var(--numbers); }
.trial-monitor h3 { margin: 0; color: #fff; font-family: "Noto Sans JP", "Hiragino Sans", sans-serif; font-size: clamp(21px, 7cqi, 52px); font-weight: 600; letter-spacing: .04em; line-height: 1.3; }
.trial-monitor h3 > span { display: block; }
.trial-monitor h3 > span:last-child { display: flex; align-items: center; justify-content: center; gap: clamp(16px, 4.5cqi, 34px); margin-top: clamp(9px, 2cqi, 15px); font-size: clamp(16px, 4.6cqi, 34px); font-weight: 400; letter-spacing: .22em; line-height: 1.2; }
.trial-monitor h3 > span:last-child::before, .trial-monitor h3 > span:last-child::after { content: ""; width: clamp(27px, 8cqi, 60px); height: 1px; background: rgb(255 231 200 / 65%); }
.trial-monitor .trial-monitor-price { display: flex; align-items: baseline; justify-content: center; flex-wrap: nowrap; gap: clamp(8px, 2.2cqi, 16px); width: 100%; margin: clamp(22px, 5.4cqi, 40px) 0 0; padding: 0; border: 0; color: #fff; line-height: 1; }
.trial-monitor-price strong { font-family: var(--numbers, Arial, sans-serif); font-size: clamp(56px, 18cqi, 134px); font-weight: 700; font-variant-numeric: tabular-nums; letter-spacing: -.035em; }
.trial-monitor-price span { font-size: clamp(13px, 3.8cqi, 28px); font-weight: 600; white-space: nowrap; }
.trial-monitor-body { display: flex; flex-direction: column; justify-content: center; min-width: 0; padding: clamp(24px, 8.5cqi, 64px) clamp(20px, 6cqi, 44px) clamp(24px, 6cqi, 44px); }
.trial-monitor .trial-monitor-lead { margin: 0 0 clamp(24px, 6.2cqi, 46px); color: #38342f; font-family: var(--serif); font-size: clamp(20px, 5.7cqi, 42px); line-height: 1.65; }
.trial-monitor .trial-monitor-lead > span { margin-bottom: clamp(10px, 2.3cqi, 18px); color: #b9642d; font: 700 clamp(16px, 4.3cqi, 32px)/1.6 "Noto Sans JP", "Hiragino Sans", sans-serif; letter-spacing: .02em; }
.trial-monitor .trial-monitor-cta { display: flex; align-items: center; justify-content: space-between; min-height: 56px; padding: clamp(16px, 3.3cqi, 24px) clamp(14px, 4cqi, 30px); gap: clamp(12px, 2.8cqi, 20px); border-radius: 4px; background: #914624; color: #fff; font-family: inherit; font-size: clamp(12px, 3.8cqi, 20px); font-weight: 400; line-height: 1.8; box-shadow: none; animation: none; transition: none; transform: none; }
.trial-monitor .trial-monitor-cta:is(:hover, :focus-visible, :active) { background: #914624; transform: none; box-shadow: none; }
.trial-monitor .trial-monitor-cta > span { min-width: 0; }
.trial-monitor .trial-monitor-cta img { display: block; flex: 0 0 24px; width: 24px; height: 24px; filter: brightness(0) invert(1); animation: none; transition: none; transform: none; }
.trial-monitor .trial-monitor-cta::after { content: none; }
.trial-monitor .trial-monitor-note { margin: clamp(22px, 5cqi, 38px) 0 0; padding-top: clamp(18px, 4cqi, 28px); border-top: 1px solid #dedbd7; color: #746e68; font-size: clamp(12px, 2.9cqi, 21px); line-height: 1.9; }
@media (max-width: 767px) {
  .trial-monitor .trial-monitor-lead { font-size: clamp(24px, 6.7cqi, 32px); }
}
@media (min-width: 1000px) {
  .trial-monitor { max-width: none; }
  .trial-monitor .trial-monitor-layout { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); }
  .trial-monitor-heading { padding: clamp(28px, 3.5cqi, 40px) clamp(20px, 3cqi, 34px); }
  .trial-monitor .trial-monitor-limit { gap: 7px; margin-bottom: 24px; padding: 7px 22px; font-size: clamp(12px, 1.6cqi, 17px); }
  .trial-monitor .trial-monitor-limit strong { font-size: clamp(27px, 3.5cqi, 38px); }
  .trial-monitor h3 { font-size: clamp(22px, 2.9cqi, 34px); }
  .trial-monitor h3 > span:last-child { gap: 18px; margin-top: 12px; font-size: 19px; }
  .trial-monitor h3 > span:last-child::before, .trial-monitor h3 > span:last-child::after { width: 32px; }
  .trial-monitor .trial-monitor-price { gap: 10px; margin-top: 26px; }
  .trial-monitor-price strong { font-size: clamp(62px, 8cqi, 94px); }
  .trial-monitor-price span { font-size: clamp(14px, 1.8cqi, 20px); }
  .trial-monitor-body { padding: clamp(26px, 3.5cqi, 40px); }
  .trial-monitor .trial-monitor-lead { margin-bottom: 24px; font-size: clamp(20px, 2.4cqi, 28px); line-height: 1.7; }
  .trial-monitor .trial-monitor-lead > span { margin-bottom: 10px; font-size: 17px; }
  .trial-monitor .trial-monitor-cta { min-height: 64px; padding: 18px 22px; gap: 16px; font-size: clamp(12px, 1.45cqi, 16px); }
  .trial-monitor .trial-monitor-note { margin-top: 22px; padding-top: 18px; font-size: 12px; line-height: 1.9; }
}
@container (max-width: 300px) {
  .trial-monitor h3 { font-size: 20px; letter-spacing: .01em; }
  .trial-monitor-body { padding-inline: 18px; }
  .trial-monitor .trial-monitor-cta { padding-inline: 10px; gap: 8px; }
  .trial-monitor .trial-monitor-cta img { flex-basis: 20px; width: 20px; height: 20px; }
}
@container (max-width: 800px) {
  .campaign-extra-benefits { grid-template-columns: 1fr; }
}
@container (max-width: 600px) {
  .campaign-benefits { margin-top: 28px; padding: 20px 14px; border-radius: 12px; }
  .campaign-benefits h3 { font-size: 20px; gap: 10px; margin-bottom: 22px; letter-spacing: .02em; }
  .campaign-benefits h3::before, .campaign-benefits h3::after { flex-basis: 24px; }
  .campaign-benefits li { padding: 18px 12px; gap: 12px; }
  .campaign-benefits .campaign-number { flex-basis: 30px; height: 30px; font-size: 17px; }
  .campaign-benefits li p { font-size: 17px; }
  .campaign-benefits .campaign-loan-label { font-size: 14px; }
}
@container (max-width: 400px) {
  .campaign-benefits h3 { font-size: 18px; gap: 8px; }
  .campaign-benefits h3::before, .campaign-benefits h3::after { flex-basis: 18px; }
}
@container (min-width: 941px) {
  .weight-pricing .pricing-scroll-hint { display: none; }
}
@container (max-width: 600px) {
  .weight-pricing-table { min-width: 860px; border-spacing: 4px 6px; }
  .weight-pricing-table thead th:first-child { width: 124px; }
  .weight-pricing-table thead .standard-plan { width: 150px; }
  .weight-pricing-table th, .weight-pricing-table td { padding: 18px 8px; }
  .weight-pricing-table tbody th { font-size: 14px; }
  .weight-pricing-table caption { font-size: 15px; }
  .weight-pricing-table .pricing-amount strong { font-size: 24px; }
}

.trial-monitor h3 > .trial-monitor-term { margin-bottom: .55em; font-size: .8em; letter-spacing: .08em; }
.trial-monitor-price strong small { margin-right: .12em; font-size: .42em; }

@container (max-width: 300px) {
  .trial-monitor .trial-monitor-price { gap: 6px; }
  .trial-monitor-price strong { font-size: 50px; }
  .trial-monitor-price span { font-size: 12px; }
}

/* 2026-10-23: reference-image standard prices. */
.weight-pricing .standard-price-caption { margin: 0 6px 14px; color: var(--heading, #342f2b); font-size: 17px; font-weight: 600; }
.standard-price-caption span { font-size: 13px; font-weight: 400; white-space: nowrap; }
.standard-price-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding: 3px; background: #f2efea; border-radius: 12px; }
.standard-price-table { width: 100%; min-width: 0; margin: 0; table-layout: fixed; border-collapse: separate; border-spacing: 8px; color: #214e59; font-variant-numeric: tabular-nums; line-height: 1.4; }
.standard-price-table .standard-weight-column { width: 41%; }
.standard-price-table th, .standard-price-table td { padding: 21px 8px; border: 0; border-radius: 9px; text-align: center; vertical-align: middle; }
.standard-price-table thead th { background: #fff; font-size: 16px; font-weight: 700; }
.standard-price-table thead th:last-child { background: #24677a; color: #fff; }
.standard-price-table tbody th { background: #fff; font-size: clamp(18px, 2.3cqi, 24px); font-weight: 700; white-space: nowrap; }
.standard-price-table td { background: #dcebee; white-space: nowrap; }
.standard-price-table td strong { font-family: var(--numbers, Arial, sans-serif); font-size: clamp(25px, 3.4cqi, 34px); font-weight: 700; }
.standard-price-table td span { margin-left: 2px; font-size: 13px; font-weight: 700; }
@container (max-width: 679px) {
  .standard-price-grid { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .standard-price-table { border-spacing: 6px; }
  .standard-price-table th, .standard-price-table td { padding: 18px 6px; }
  .standard-price-table thead th { font-size: 15px; }
  .standard-price-table tbody th { font-size: clamp(17px, 5.5cqi, 24px); }
  .standard-price-table td strong { font-size: clamp(25px, 8cqi, 34px); }
  .weight-pricing .standard-price-caption { font-size: 15px; }
  /* SP: 縦積み時は2つ目の表の見出しを視覚的に隠し、上の見出しだけにする（読み上げ用には残す） */
  .standard-price-table + .standard-price-table { margin-top: -12px; }
  .standard-price-table + .standard-price-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
}
