@charset "utf-8";
.t-sub main { word-break: auto-phrase; }
.t-sub main p, .t-sub main li { text-wrap: pretty; }
.t-sub main h3 { text-wrap: balance; }
.s-wrap { margin-right: 3rem; margin-left: 3rem; }
@media print, screen and (min-width: 768px) {
  .s-wrap { margin-right: max(5rem, (100% - 112.6rem) / 2); margin-left: max(5rem, (100% - 112.6rem) / 2); }
  .s-narrow { max-width: 89.6rem; }
}
.s-kv { padding: 12rem 0 6rem; background: rgb(255 255 255); }
.s-kv .s-crumb { display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; margin-bottom: 3.2rem; color: rgb(var(--c-accent-rgb)); font-size: 1.2rem; letter-spacing: .04em; }
.s-kv .s-crumb li + li::before { content: "/"; margin-right: 1.2rem; opacity: .5; }
.s-kv .s-crumb a { transition: opacity 300ms; }
.s-kv .s-crumb a:hover { opacity: .6; }
.s-kv h1 .t-lat { display: block; margin-bottom: 2rem; font-family: var(--font-en); font-size: 5.6rem; font-weight: 600; line-height: 1; letter-spacing: .01em; }
.s-kv h1 .t-ja { display: block; font-size: 2rem; font-weight: 700; line-height: 1.6; letter-spacing: .04em; }
.s-kv .s-kv-lead { max-width: 64rem; margin-top: 3.2rem; font-size: 1.5rem; line-height: 2; letter-spacing: .02em; }
.s-kv .s-kv-lead p + p { margin-top: 1em; }
.s-kv .s-kv-actions { display: flex; flex-wrap: wrap; gap: 1.6rem; margin-top: 4rem; }
.s-kv .s-kv-ph { overflow: hidden; margin-top: 6rem; border-radius: 1rem; aspect-ratio: 16 / 7; }
.s-kv .s-kv-ph img { width: 100%; height: 100%; object-fit: cover; }
@media print, screen and (min-width: 768px) {
  .s-kv { padding: 18rem 0 8rem; }
  .s-kv h1 .t-lat { margin-bottom: 2.6rem; font-size: 9.6rem; }
  .s-kv h1 .t-ja { font-size: 2.4rem; }
  .s-kv .s-kv-lead { font-size: 1.7rem; }
  .s-kv .s-kv-ph { margin-top: 8rem; aspect-ratio: 16 / 6; }
}
.s-sec { padding: 8rem 0; background: rgb(255 255 255); }
.s-sec:not(.s-gray):not(.s-sumi) + .s-sec:not(.s-gray):not(.s-sumi),
.s-kv + .s-sec:not(.s-gray):not(.s-sumi) { padding-top: 0; }
.s-gray { background: rgb(241 241 241); }
.s-sumi { color: rgb(255 255 255); background: rgb(var(--c-sumi-rgb)); }
.s-sumi .t-ttl .t-ja, .s-sumi .s-lead { color: rgb(255 255 255 / .85); }
.s-sec .t-ttl { margin-bottom: 5rem; }
@media print, screen and (min-width: 768px) {
  .s-sec { padding: 13rem 0; }
  .s-sec .t-ttl { margin-bottom: 7rem; }
  .s-split { display: grid; grid-template-columns: 34rem minmax(0, 1fr); gap: 6rem; align-items: start; }
  .s-split .t-ttl { margin-bottom: 0; }
  .s-split-side .t-ttl { position: static; }
}
@media print, screen and (min-width: 1024px) {
  .s-split { grid-template-columns: 40rem minmax(0, 1fr); gap: 8rem; }
}
.s-lead { font-size: 1.5rem; line-height: 2; letter-spacing: .02em; }
.s-lead p + p { margin-top: 1.4em; }
.s-lead strong { font-weight: 700; }
.s-h3 { margin-bottom: 2rem; font-size: 2.2rem; font-weight: 700; line-height: 1.6; letter-spacing: .04em; }
.s-note { margin-top: 2.4rem; color: rgb(var(--c-accent-rgb)); font-size: 1.3rem; line-height: 1.9; }
.s-sumi .s-note { color: rgb(var(--c-ondark-rgb)); }
@media print, screen and (min-width: 768px) {
  .s-lead { font-size: 1.7rem; line-height: 2.1; }
  .s-h3 { font-size: 2.8rem; }
}
.s-ph { overflow: hidden; border-radius: 1rem; background: rgb(241 241 241); }
.s-ph img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 500ms cubic-bezier(0.19, 1, 0.22, 1); }
a:hover .s-ph img { transform: scale(1.04); }
.s-media { display: grid; gap: 4rem; align-items: center; }
.s-media .s-ph { aspect-ratio: 4 / 3; }
@media print, screen and (min-width: 768px) {
  .s-media { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8rem; }
  .s-media.s-rev .s-ph { order: 2; }
}
.s-cards { display: grid; gap: 4rem 3rem; }
.s-card { padding-top: 2.4rem; border-top: .1rem solid rgb(var(--c-ink-rgb) / .9); }
.s-sumi .s-card { border-top-color: rgb(255 255 255 / .5); }
.s-card .t-no { margin-bottom: 1.6rem; color: rgb(var(--c-accent-rgb)); font-family: var(--font-en); font-size: 1.4rem; font-weight: 600; letter-spacing: .04em; }
.s-sumi .s-card .t-no { color: rgb(var(--c-ondark-rgb)); }
.s-card h3 { margin-bottom: 1.4rem; font-size: 1.9rem; font-weight: 700; line-height: 1.6; letter-spacing: .04em; }
.s-card p { font-size: 1.4rem; line-height: 1.95; letter-spacing: .02em; }
.s-card .s-ph { margin-bottom: 2.4rem; aspect-ratio: 4 / 3; }
.s-card ul { margin-top: 1.4rem; }
.s-card li { position: relative; padding-left: 1.4em; font-size: 1.4rem; line-height: 1.9; }
.s-card li::before { content: ""; position: absolute; top: .9em; left: .2em; width: .5em; height: .1rem; background: currentColor; }
@media print, screen and (min-width: 768px) {
  .s-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6rem 4rem; }
  .s-cards.s-c3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .s-cards.s-c4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .s-card h3 { font-size: 2rem; }
  .s-card p { font-size: 1.5rem; }
}
@media print, screen and (min-width: 1024px) {
  .s-cards.s-c4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.s-links { display: grid; gap: 5rem 3rem; }
.s-link { display: block; }
.s-link .s-ph { margin-bottom: 2rem; aspect-ratio: 3 / 2; }
.s-link .s-tag { display: inline-block; margin-bottom: 1.2rem; padding: 0 1.2rem; color: rgb(var(--c-accent-rgb)); border: .1rem solid currentColor; border-radius: 3em; font-size: 1.2rem; line-height: 2.6rem; letter-spacing: .04em; }
.s-link h3 { margin-bottom: 1rem; font-size: 1.8rem; font-weight: 700; line-height: 1.6; letter-spacing: .04em; transition: opacity 300ms; }
.s-link p { font-size: 1.4rem; line-height: 1.9; }
.s-link:hover h3 { opacity: .6; }
.s-link .s-arrow { display: inline-block; margin-top: 1.6rem; color: rgb(var(--c-accent-rgb)); font-family: var(--font-en); font-size: 1.3rem; font-weight: 600; letter-spacing: .06em; }
.s-link .s-arrow::after { content: "→"; margin-left: .8em; transition: margin 300ms; }
.s-link:hover .s-arrow::after { margin-left: 1.2em; }
@media print, screen and (min-width: 768px) {
  .s-links { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7rem 4rem; }
  .s-links.s-c3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.s-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3rem 2rem; }
.s-stat { padding-top: 2rem; border-top: .1rem solid rgb(var(--c-ink-rgb) / .9); }
.s-sumi .s-stat { border-top-color: rgb(255 255 255 / .5); }
.s-stat dt { margin-bottom: 1.2rem; font-size: 1.3rem; font-weight: 700; letter-spacing: .04em; }
.s-stat dd { font-size: 1.4rem; font-weight: 700; letter-spacing: .02em; white-space: nowrap; }
.s-stat .t-num { margin-right: .15em; font-family: var(--font-en); font-size: 4.4rem; font-weight: 600; line-height: 1; letter-spacing: 0; }
.s-stat .s-sub { display: block; margin-top: .8rem; color: rgb(var(--c-accent-rgb)); font-size: 1.2rem; font-weight: 500; }
.s-sumi .s-stat .s-sub { color: rgb(var(--c-ondark-rgb)); }
@media print, screen and (min-width: 768px) {
  .s-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4rem; }
  .s-stats.s-c3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .s-stat .t-num { font-size: 5.6rem; }
  .s-stats.s-c3 .s-stat .t-num { font-size: 6.4rem; }
}
.s-dl { border-top: .1rem solid rgb(var(--c-ink-rgb) / .2); }
.s-dl > div { padding: 2.4rem 0; border-bottom: .1rem solid rgb(var(--c-ink-rgb) / .2); }
.s-sumi .s-dl, .s-sumi .s-dl > div { border-color: rgb(255 255 255 / .25); }
.s-dl dt { margin-bottom: .8rem; font-size: 1.4rem; font-weight: 700; letter-spacing: .04em; }
.s-dl dd { font-size: 1.5rem; line-height: 1.95; letter-spacing: .02em; }
.s-dl dd + dd { margin-top: .6em; }
.s-dl dd ul li { position: relative; padding-left: 1.4em; }
.s-dl dd ul li::before { content: ""; position: absolute; top: .95em; left: .2em; width: .5em; height: .1rem; background: currentColor; }
.s-dl .t-num { font-family: var(--font-en); font-size: 2.8rem; font-weight: 600; line-height: 1; }
@media print, screen and (min-width: 768px) {
  .s-dl > div { display: grid; grid-template-columns: 22rem minmax(0, 1fr); gap: 0 4rem; padding: 3rem 0; }
  .s-dl dt { grid-row: 1 / span 9; grid-column: 1; margin-bottom: 0; font-size: 1.5rem; line-height: 1.95; }
  .s-dl dd { grid-column: 2; }
  .s-dl dd { font-size: 1.6rem; }
}
.s-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.s-table { width: 100%; min-width: 64rem; border-collapse: collapse; font-size: 1.4rem; line-height: 1.7; letter-spacing: .02em; }
.s-table th, .s-table td { padding: 2rem 1.6rem; border-bottom: .1rem solid rgb(var(--c-ink-rgb) / .2); text-align: left; vertical-align: top; }
.s-table thead th { padding-top: 0; font-size: 1.3rem; font-weight: 700; border-bottom-color: rgb(var(--c-ink-rgb) / .9); }
.s-table tbody th { width: 20%; font-weight: 700; }
.s-table .s-our { background: rgb(var(--c-sumi-rgb)); color: rgb(255 255 255); font-weight: 700; }
.s-table thead .s-our { padding-top: 2rem; border-radius: 1rem 1rem 0 0; }
.s-table tbody tr:last-child .s-our { border-radius: 0 0 1rem 1rem; }
.s-table .s-our { border-bottom-color: rgb(255 255 255 / .2); }
.s-table-note { margin-top: 1.6rem; color: rgb(var(--c-accent-rgb)); font-size: 1.2rem; }
@media print, screen and (min-width: 768px) {
  .s-table { font-size: 1.5rem; }
  .s-table th, .s-table td { padding: 2.4rem 2.4rem; }
}
.s-check { display: grid; gap: 0; border-top: .1rem solid rgb(var(--c-ink-rgb) / .2); }
.s-check li { position: relative; padding: 2rem 0 2rem 4rem; border-bottom: .1rem solid rgb(var(--c-ink-rgb) / .2); font-size: 1.5rem; line-height: 1.85; letter-spacing: .02em; }
.s-check li::before { content: ""; position: absolute; top: 2.85rem; left: .4rem; width: 1.6rem; height: .8rem; border-bottom: .2rem solid rgb(var(--c-accent-rgb)); border-left: .2rem solid rgb(var(--c-accent-rgb)); transform: rotate(-45deg); }
.s-check.s-x li::before { top: 2.2rem; width: 1.6rem; height: 1.6rem; border: 0; background: linear-gradient(45deg, transparent 45%, rgb(var(--c-accent-rgb)) 45% 55%, transparent 55%), linear-gradient(-45deg, transparent 45%, rgb(var(--c-accent-rgb)) 45% 55%, transparent 55%); transform: none; }
.s-sumi .s-check, .s-sumi .s-check li { border-color: rgb(255 255 255 / .25); }
@media print, screen and (min-width: 768px) {
  .s-check li { font-size: 1.6rem; }
  .s-check.s-2col { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 4rem; }
}
.s-steps { display: grid; gap: 0; counter-reset: s; }
.s-steps > li { position: relative; padding: 2.8rem 0 2.8rem 7rem; border-top: .1rem solid rgb(var(--c-ink-rgb) / .2); }
.s-steps > li:last-child { border-bottom: .1rem solid rgb(var(--c-ink-rgb) / .2); }
.s-sumi .s-steps > li { border-color: rgb(255 255 255 / .25); }
.s-steps .t-no { position: absolute; top: 2.6rem; left: 0; font-family: var(--font-en); font-size: 3.2rem; font-weight: 600; line-height: 1; }
.s-steps h3 { margin-bottom: .8rem; font-size: 1.8rem; font-weight: 700; line-height: 1.6; letter-spacing: .04em; }
.s-steps p { font-size: 1.4rem; line-height: 1.9; letter-spacing: .02em; }
@media print, screen and (min-width: 1024px) {
  .s-steps.s-row { grid-template-columns: repeat(var(--n, 4), minmax(0, 1fr)); gap: 3rem; }
  .s-steps.s-row > li { padding: 3rem 0 0; border-bottom: 0; border-top-color: rgb(var(--c-ink-rgb) / .9); }
  .s-sumi .s-steps.s-row > li { border-top-color: rgb(255 255 255 / .6); }
  .s-steps.s-row .t-no { position: static; display: block; margin-bottom: 2.4rem; font-size: 4rem; }
}
.s-index { padding: 3rem; background: rgb(241 241 241); border-radius: 1rem; }
.s-index .s-index-ttl { margin-bottom: 1.6rem; font-family: var(--font-en); font-size: 1.4rem; font-weight: 600; letter-spacing: .06em; }
.s-index ol { counter-reset: i; }
.s-index li { counter-increment: i; border-top: .1rem solid rgb(var(--c-ink-rgb) / .15); }
.s-index li a, .s-index li span { display: flex; gap: 1.6rem; padding: 1.4rem 0; font-size: 1.5rem; line-height: 1.7; transition: opacity 300ms; }
.s-index li a::before, .s-index li span::before { content: counter(i, decimal-leading-zero); color: rgb(var(--c-accent-rgb)); font-family: var(--font-en); font-weight: 600; }
.s-index li a:hover { opacity: .6; }
@media print, screen and (min-width: 768px) {
  .s-index { padding: 4rem 5rem; }
}
.s-theme { position: relative; overflow: hidden; padding: 10rem 0; color: rgb(255 255 255); background: rgb(var(--c-sumi-rgb)); }
.s-theme .s-theme-bg { position: absolute; inset: 0; opacity: .38; }
.s-theme .s-theme-bg img { width: 100%; height: 100%; object-fit: cover; }
.s-theme .s-wrap { position: relative; }
.s-theme .t-lat { display: block; margin-bottom: 1.6rem; font-family: var(--font-en); font-size: 1.4rem; font-weight: 600; letter-spacing: .08em; }
.s-theme h2 { font-size: 2.6rem; font-weight: 700; line-height: 1.6; letter-spacing: .04em; }
@media print, screen and (min-width: 768px) {
  .s-theme { padding: 14rem 0; }
  .s-theme h2 { font-size: 3.6rem; }
}
.s-quote { position: relative; padding: 4rem 3rem; background: rgb(241 241 241); border-radius: 1rem; font-size: 1.6rem; line-height: 2; }
.s-quote::before { content: "“"; position: absolute; top: .4rem; left: 2rem; color: rgb(var(--c-accent-rgb)); font-family: var(--font-en); font-size: 6rem; line-height: 1; }
.s-quote cite { display: block; margin-top: 2rem; color: rgb(var(--c-accent-rgb)); font-size: 1.3rem; font-style: normal; }
@media print, screen and (min-width: 768px) {
  .s-quote { padding: 6rem 7rem; font-size: 1.8rem; }
}
.s-form { display: grid; gap: 2.8rem; }
.s-form .s-field label, .s-form .s-field .s-flabel { display: flex; align-items: center; gap: 1rem; margin-bottom: 1rem; font-size: 1.4rem; font-weight: 700; letter-spacing: .04em; }
.s-form .s-req { padding: 0 .8rem; color: rgb(255 255 255); background: rgb(var(--c-sumi-rgb)); border-radius: .3rem; font-size: 1.1rem; line-height: 2rem; }
.s-form .s-opt { padding: 0 .8rem; color: rgb(var(--c-accent-rgb)); border: .1rem solid currentColor; border-radius: .3rem; font-size: 1.1rem; line-height: 1.8rem; }
.s-form input[type="text"], .s-form input[type="email"], .s-form input[type="tel"], .s-form select, .s-form textarea {
  width: 100%; padding: 1.4rem 1.6rem; color: inherit; background: rgb(255 255 255); border: .1rem solid rgb(var(--c-ink-rgb) / .25); border-radius: .6rem; font: inherit; font-size: 1.6rem; line-height: 1.6; transition: border-color 300ms; }
.s-form textarea { min-height: 16rem; resize: vertical; }
.s-form .s-form-err { font-size: 1.4rem; line-height: 1.7; color: rgb(190 30 30); }
.s-form input, .s-form select, .s-form textarea { box-sizing: border-box; max-width: 100%; }
.s-form .s-row2 { display: grid; gap: 2.8rem; }
.s-form input:focus, .s-form select:focus, .s-form textarea:focus { outline: none; border-color: rgb(var(--c-ink-rgb)); }
.s-form .s-choice { display: flex; flex-wrap: wrap; gap: 1rem 2.4rem; }
.s-form .s-choice label { display: inline-flex; gap: .8rem; margin: 0; font-weight: 500; }
.s-form .s-agree { font-size: 1.4rem; line-height: 1.8; }
.s-form .s-agree a { text-decoration: underline; }
.s-form .s-submit { margin-top: 1rem; }
.s-form .s-submit button { display: block; width: 100%; max-width: 36rem; color: rgb(255 255 255); background: rgb(var(--c-sumi-rgb)); border: .1rem solid rgb(var(--c-sumi-rgb)); border-radius: 3em; font: inherit; font-size: 1.5rem; font-weight: 700; line-height: 5.6rem; letter-spacing: .04em; cursor: pointer; transition: 300ms; }
.s-form .s-submit button:hover { color: rgb(var(--c-sumi-rgb)); background: rgb(255 255 255); }
.s-form-box { padding: 4rem 2.4rem; background: rgb(241 241 241); border-radius: 1rem; }
@media print, screen and (min-width: 768px) {
  .s-form-box { padding: 6rem 7rem; }
  .s-form .s-row2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.8rem; }
}
.s-sim { display: grid; gap: 2.4rem; }
.s-sim-card { padding: 3.2rem 2.8rem; color: rgb(var(--c-ink-rgb)); background: rgb(255 255 255); border-radius: 1rem; }
.s-sim-card .s-sim-label { margin-bottom: 2rem; font-size: 1.7rem; font-weight: 700; letter-spacing: .04em; }
.s-sim-card dl > div { display: flex; justify-content: space-between; gap: 1.6rem; padding: 1.2rem 0; border-bottom: .1rem solid rgb(var(--c-ink-rgb) / .12); font-size: 1.4rem; }
.s-sim-card dt { color: rgb(var(--c-accent-rgb)); }
.s-sim-card dd { font-weight: 700; text-align: right; }
.s-sim-card .s-sim-result { display: flex; justify-content: space-between; align-items: baseline; gap: 1.6rem; margin-top: 2rem; padding-top: 2rem; border-top: .2rem solid rgb(var(--c-ink-rgb)); border-bottom: 0; }
.s-sim-card .s-sim-result dt { color: rgb(var(--c-ink-rgb)); font-weight: 700; }
.s-sim-card .s-sim-result dd { font-family: var(--font-en); font-size: 3.2rem; font-weight: 600; line-height: 1; letter-spacing: 0; }
.s-sim-card .s-sim-result dd small { margin-left: .1em; font-family: var(--font-jp); font-size: 1.4rem; font-weight: 700; }
@media print, screen and (min-width: 768px) {
  .s-sim { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3rem; }
  .s-sim-card { padding: 4rem 3.6rem; }
  .s-sim-card .s-sim-result dd { font-size: 3.6rem; }
}
.s-doc h2 { margin: 5rem 0 1.6rem; font-size: 1.8rem; font-weight: 700; line-height: 1.6; letter-spacing: .04em; }
.s-doc h2:first-child { margin-top: 0; }
.s-doc p, .s-doc li { font-size: 1.5rem; line-height: 2; letter-spacing: .02em; }
.s-doc ul, .s-doc ol { margin-top: 1rem; padding-left: 1.6em; list-style: disc; }
.s-doc ol { list-style: decimal; }
.s-actions { display: flex; flex-wrap: wrap; gap: 1.6rem; margin-top: 5rem; }
.js .s-in { opacity: 0; transform: translateY(3rem); transition: opacity 1000ms cubic-bezier(0.19, 1, 0.22, 1), transform 1000ms cubic-bezier(0.19, 1, 0.22, 1); }
.js .s-in.s-on { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .js .s-in { opacity: 1; transform: none; transition: none; }
  .s-ph img { transition: none; }
}
@media (max-width: 767px) {
  .t-ttl .t-lat.p-lat-s { font-size: 4.4rem; }
}
@media screen and (min-width: 768px) and (max-width: 1023px) {
  .s-split { display: block; }
  .s-split .t-ttl { position: static; margin-bottom: 7rem; }
  .s-split-side { position: static; }
  .s-sim { grid-template-columns: minmax(0, 1fr); max-width: 56rem; }
}
