@charset "UTF-8";
/* ==========================================================================
Base
========================================================================== */
/*!
 * @acab/reset.css
 */
*,
*::before,
*::after {
  -webkit-box-sizing: border-box;
  box-sizing: border-box; /* もちろん、より直感的なbox-sizingに設定 */
  margin: 0; /* マージンは0に */
  padding: 0; /* パディングも常に0に */
}

:where([hidden]:not([hidden=until-found])) {
  display: none !important; /* hiddenは非表示を意味します */
}

:where(html) {
  -webkit-text-size-adjust: none; /* iOSのランドスケープでテキストが調整されないようにする */
  color-scheme: dark light; /* ユーザーがダークテーマを好む場合、自動的にダークテーマになる */
}

@supports not (min-block-size: 100dvb) {
  :where(html) {
    block-size: 100%;
  }
}
@media (prefers-reduced-motion: no-preference) {
  :where(html:focus-within) {
    scroll-behavior: smooth; /* 何かにフォーカスがある場合のみスムーズスクロール */
  }
}
:where(body) {
  block-size: 100%; /* サファリ以外のブラウザのフォールバック */
  block-size: 100dvb; /* 1dvbは動的ビューポートの長さの1%、100dvbで高さいっぱいに */
  font-family: system-ui, sans-serif; /* timeの代わりにシステムフォントを使用 */
  line-height: 1.5; /* アクセシブルな行の高さ */
  -webkit-font-smoothing: antialiased; /* テキストのレンダリングを改善 */
}

:where(input, button, textarea, select) {
  color: inherit; /* カラーも継承 */
  font: inherit; /* フォーム コントロールは親フォントを継承 */
}

:where(textarea) {
  resize: vertical; /* テキストエリアの水平リサイズを無効に */
  resize: block;
}

:where(button, label, select, summary, [role=button], [role=option]) {
  cursor: pointer; /* インタラクティブなものにカーソルを合わせる */
}

:where(:disabled) {
  cursor: not-allowed; /* フォームコントロール無効時のカーソルを許可しない */
}

:where(label:has(> input:disabled), label:has(+ input:disabled)) {
  cursor: not-allowed; /* ラベルにもカーソルを許可しない */
}

:where(button) {
  border-style: solid; /* ボタンのボーダーのスタイルを設定しやすくする */
}

:where(a) {
  text-underline-offset: 0.2ex; /* 下線の上にスペースを追加する */
}

:where(ul, ol) {
  list-style: none; /* ビュレットを削除、必要に応じて手動で追加する */
}

:where(img, svg, video, canvas, audio, iframe, embed, object) {
  display: block; /* 置換された要素をより予測可能にする */
}

:where(img, picture, svg) {
  block-size: auto; /* アスペクト比を保持 */
  max-inline-size: 100%; /* images should never overflow past the available space */
}

:where(p, h1, h2, h3, h4, h5, h6) {
  overflow-wrap: break-word; /* 長い単語は改行 */
}

:where(h1, h2, h3) {
  line-height: calc(1em + 0.5rem); /* 見出しの行の高さを減らす */
}

:where(hr) {
  block-size: 0;
  /* より一貫性のある、スタイリッシュなhr */
  border: none;
  -webkit-border-before: 1px solid;
  border-block-start: 1px solid;
  color: inherit;
  overflow: visible;
}

:where(:focus-visible) {
  /* より一貫性のある、カスタマイズ可能なフォーカスのアウトライン */
  outline: 2px solid var(--focus-color, Highlight);
  outline-offset: 2px;
}

/* .visually-hiddenは後のカスケードレイヤーを上書きするために!importantを使用 */
:where(.visually-hidden:not(:focus, :active, :focus-within, .not-visually-hidden)) {
  border: 0 !important;
  clip-path: inset(50%) !important;
  height: 1px !important;
  overflow: hidden !important;
  position: absolute !important;
  white-space: nowrap !important;
  width: 1px !important;
}

:root {
  --font-family-primary: "Noto Sans JP", sans-serif;
  --font-family-secondary: "Zen Kaku Gothic New", sans-serif;
  --color-00-black: #161515;
  --color-00-white: #ffffff;
  --color-01-gray: #7b7b7b;
  --color-02-gray: #e5e5e5;
  --color-03-gray: #c9c9c9;
  --color-01-red: #cc0100;
  --color-02-red: #c34746;
  --gradient-black-01: linear-gradient(180deg, #4b4b4b 0%, var(--Labels-Primary, #000) 100%);
  --gradient-red-01: linear-gradient(90deg, rgba(204, 1, 0, 0) 0%, #cc0100 50%, rgba(204, 1, 0, 0) 100%);
}

/* Base
----------------------------------------------------------------- */
html {
  font-size: 62.5%;
  scroll-behavior: smooth;
}
html:has(dialog[open]) {
  overflow: hidden;
}

body {
  background-color: var(--color-00-white);
  color: var(--color-00-black);
  font-family: var(--font-family-primary);
  -webkit-font-feature-settings: "palt" 1;
  font-feature-settings: "palt" 1;
  font-size: 1.6rem;
  font-weight: 400;
  letter-spacing: 0.03em;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  word-break: break-all;
}

:where(a) {
  color: inherit;
  text-decoration: none;
}
:where(a):hover {
  text-decoration: none;
}
:where(ol),
:where(ul),
:where(dl) {
  list-style: none;
}

:where(em),
:where(i) {
  font-style: normal;
}

:where(h1),
:where(h2),
:where(h3),
:where(h4),
:where(h5),
:where(h6) {
  font-size: 1.6rem;
  font-weight: normal;
}

:where(p) {
  font-size: 14px;
}
@media print, screen and (min-width:768px) {
  :where(p) {
    font-size: 15px;
  }
}

:where(em) {
  font-weight: bold;
}

:where(img) {
  display: block;
  height: auto;
  width: 100%;
}

:where(button) {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: transparent;
  border: 0;
  border-radius: 0;
  cursor: pointer;
}

:where(input) {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: var(--color-00-white);
  border: 1px solid var(--color-03-gray);
}

:where(textarea) {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: var(--color-00-white);
  border: 1px solid var(--color-03-gray);
}

.visually-hidden {
  height: 1px !important;
  margin: -1px !important;
  overflow: hidden !important;
  padding: 0 !important;
  position: absolute !important;
  width: 1px !important;
  clip: rect(0, 0, 0, 0) !important;
  border: 0 !important;
  white-space: nowrap !important;
}

@media print, screen and (max-width:767px) {
  .pc-only {
    display: none !important;
  }
}
@media print, screen and (min-width:768px) {
  .sp-only {
    display: none !important;
  }
}
.benefit-diagnosis-judgement .judgement-price {
  display: none !important;
}

/* ==========================================================================
Layout
========================================================================== */
/* ==========================================================================
Components
========================================================================== */
.footer {
  background-color: var(--color-00-white);
  color: var(--color-00-black);
  padding: 0 0 clamp(3.5rem, 7.4666666667vw, 5.6rem);
  position: relative;
}
.footer__copyright {
  display: block;
  font-size: clamp(0.8rem, 1.7066666667vw, 1.28rem);
  font-weight: 400;
  line-height: 1;
  text-align: center;
}

.header {
  padding: clamp(2rem, 4.2666666667vw, 3.2rem);
}
.header__inner {
  margin-inline: auto;
  max-width: clamp(60rem, 128vw, 96rem);
}
.header__logo {
  display: block;
  margin: 0 auto 0 0;
  width: clamp(10rem, 21.3333333333vw, 16rem);
}
.hero {
  padding: 0 clamp(2rem, 4.2666666667vw, 3.2rem) clamp(3.5rem, 7.4666666667vw, 5.6rem);
}
@media print, screen and (max-width:767px) {
  .hero {
    padding: 0 clamp(1.25rem, 2.6666666667vw, 2rem) clamp(2.5rem, 5.3333333333vw, 4rem);
  }
}
.hero__inner {
  margin-inline: auto;
  max-width: clamp(60rem, 128vw, 96rem);
}
.hero__title {
  border-bottom: 1px solid var(--color-01-gray);
  color: var(--color-01-red);
  font-family: var(--font-family-secondary);
  font-size: clamp(2.1rem, 4.48vw, 3.36rem);
  font-weight: 700;
  letter-spacing: -0.07em;
  line-height: 1.3;
  padding-bottom: clamp(2rem, 4.2666666667vw, 3.2rem);
}
.hero__image {
  margin-top: clamp(2.7rem, 5.76vw, 4.32rem);
  width: 100%;
}
.hero__description {
  color: var(--color-02-red);
  font-size: clamp(1.6rem, 3.4133333333vw, 2.56rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.5;
  margin-inline: clamp(-1.6rem, -2.1333333333vw, -1rem);
  margin-top: clamp(2.25rem, 4.8vw, 3.6rem);
  text-align: center;
}
.hero__button {
  margin-top: clamp(1rem, 2.1333333333vw, 1.6rem);
}
.hero__button-link {
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  background: var(--gradient-black-01);
  border-radius: clamp(0.5rem, 1.0666666667vw, 0.8rem);
  color: var(--color-00-white);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: clamp(2.4rem, 5.12vw, 3.84rem);
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  padding: clamp(1.75rem, 3.7333333333vw, 2.8rem) clamp(1.5rem, 3.2vw, 2.4rem);
  -webkit-transition: opacity 200ms ease;
  transition: opacity 200ms ease;
}
.hero__button-link:hover {
  opacity: 0.8;
}
.hero__button-text {
  font-size: clamp(1.8rem, 3.84vw, 2.88rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.2;
}
.hero__button-icon {
  height: clamp(0.78rem, 1.664vw, 1.248rem);
  margin-top: clamp(0.2rem, 0.4266666667vw, 0.32rem);
  width: clamp(0.9rem, 1.92vw, 1.44rem);
}
.hero__button-icon svg,
.hero__button-icon img {
  display: block;
  width: 100%;
}

.content {
  padding: clamp(3.5rem, 7.4666666667vw, 5.6rem) clamp(2rem, 4.2666666667vw, 3.2rem) clamp(3.5rem, 7.4666666667vw, 5.6rem);
}
@media print, screen and (max-width:767px) {
  .content {
    padding: clamp(3.5rem, 7.4666666667vw, 5.6rem) clamp(1.25rem, 2.6666666667vw, 2rem) clamp(3.5rem, 7.4666666667vw, 5.6rem);
  }
}
.content__inner {
  margin-inline: auto;
  max-width: clamp(60rem, 128vw, 96rem);
}
.content__title {
  display: grid;
  gap: clamp(0.5rem, 1.0666666667vw, 0.8rem);
  grid-template-columns: 1fr;
  margin-inline: auto;
  width: clamp(29.7rem, 63.36vw, 47.52rem);
}
.content__title:before, .content__title:after {
  background: var(--gradient-red-01);
  content: "";
  display: block;
  height: 2px;
  width: 100%;
}
.content__title span {
  color: var(--color-01-red);
  font-family: var(--font-family-secondary);
  font-size: clamp(2.1rem, 4.48vw, 3.36rem);
  font-weight: 500;
  letter-spacing: -0.07em;
  line-height: 1.6;
  text-align: center;
}
.content__section {
  display: grid;
  gap: clamp(1.5rem, 3.2vw, 2.4rem);
  grid-template-columns: 1fr;
  margin-top: clamp(3.5rem, 7.4666666667vw, 5.6rem);
}
.content__subtitle {
  border-left: clamp(0.7rem, 1.4933333333vw, 1.12rem) solid var(--color-01-red);
  font-family: var(--font-family-secondary);
  font-size: clamp(1.8rem, 3.84vw, 2.88rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  padding-left: clamp(0.8rem, 1.7066666667vw, 1.28rem);
}
.content__text {
  font-size: clamp(1.2rem, 2.56vw, 1.92rem);
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 1.55;
  margin-left: clamp(1.5rem, 3.2vw, 2.4rem);
}
.content__button {
  margin-inline: auto;
  max-width: clamp(42rem, 89.6vw, 67.2rem);
  width: 100%;
}
@media print, screen and (max-width:767px) {
  .content__button {
    max-width: clamp(35rem, 74.6666666667vw, 56rem);
  }
}
.content__button-link {
  display: block;
  -webkit-transition: opacity 200ms ease;
  transition: opacity 200ms ease;
}
.content__button-link:hover {
  opacity: 0.8;
}