@charset "UTF-8";
:root {
  --main: #00A9E0;
  --white: #fff;
  --black: #141414;
  --secondary: #001871;
  --section-border: #E8E8E8;
  --infinity: calc(infinity * 1px);
  --leading-trim: calc((1em - 1lh)/2);
  --sans:
    "游ゴシック体", YuGothic,
    "游ゴシック Medium", "Yu Gothic Medium",
    "游ゴシック", "Yu Gothic",
    "ヒラギノ角ゴ Pro W3", "メイリオ", Meiryo,
    "Noto Sans JP", sans-serif;
}

.-radius {
  border-radius: var(--infinity) !important;
}

.leading-trim:before, .leading-trim:after {
  content: "";
  display: block;
  inline-size: 0;
  block-size: 1px;
}
.leading-trim:before {
  -webkit-margin-after: var(--leading-trim);
          margin-block-end: var(--leading-trim);
}
.leading-trim:after {
  -webkit-margin-before: var(--leading-trim);
          margin-block-start: var(--leading-trim);
}

.c-button {
  display: inline-block;
  text-align: center;
  width: clamp(325px, 86.6666666667vw, 650px);
}
@media (any-hover: hover) {
  .c-button:hover {
    -webkit-filter: brightness(2);
            filter: brightness(2);
    -webkit-transition: -webkit-filter 0.3s ease;
    transition: -webkit-filter 0.3s ease;
    transition: filter 0.3s ease;
    transition: filter 0.3s ease, -webkit-filter 0.3s ease;
  }
}

.c-button img {
  margin-inline: auto;
  height: auto;
}

.c-fixed-button {
  position: fixed;
  bottom: 40px;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  -webkit-transition: opacity 0.3s ease, visibility 0.3s ease;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  visibility: hidden;
  opacity: 0;
}

.c-fixed-button.is-visible {
  opacity: 1;
  visibility: visible;
}

html {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
     -moz-text-size-adjust: 100%;
      -ms-text-size-adjust: 100%;
          text-size-adjust: 100%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

body {
  font-family: var(--sans);
  overflow-wrap: anywhere; /* 収まらない場合に折り返す */
  word-break: break-all; /* 単語の分割はデフォルトに依存 */
  line-break: strict; /* 禁則処理を厳格に適用 */
  -webkit-font-feature-settings: "palt" 1;
          font-feature-settings: "palt" 1;
}
body a {
  text-decoration: none;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}
body a.text-link {
  position: relative;
}
body a.text-link:after {
  position: absolute;
  left: 0;
  content: "";
  width: 100%;
  height: 1px;
  background: #4d4d4d;
  bottom: -4px;
  -webkit-transform: scale(0, 1);
          transform: scale(0, 1);
  -webkit-transform-origin: right top;
          transform-origin: right top;
  -webkit-transition: -webkit-transform 0.3s;
  transition: -webkit-transform 0.3s;
  transition: transform 0.3s;
  transition: transform 0.3s, -webkit-transform 0.3s;
}
body a.text-link:hover::after {
  -webkit-transform: scale(1, 1);
          transform: scale(1, 1);
  -webkit-transform-origin: left top;
          transform-origin: left top;
}
body a,
body button,
body label {
  -webkit-tap-highlight-color: transparent;
}

img {
  display: block;
  height: auto;
  max-width: 100%;
  pointer-events: none;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

@media only screen and (max-width: 768px) {
  [data-pc-only] {
    display: none !important;
  }
}

@media screen and (min-width: 769px) {
  [data-sp-only] {
    display: none !important;
  }
}

a[href^="tel:"] {
  color: inherit;
}
@media only screen and (min-width: 1025px) {
  a[href^="tel:"] {
    pointer-events: none;
    text-decoration: none;
  }
}

figure {
  margin-bottom: 0;
  margin-top: 0;
}

dt {
  font-weight: normal;
}

*,
*:before,
*:after {
  -webkit-box-sizing: inherit;
          box-sizing: inherit;
}

.l-root {
  margin-inline: auto;
  width: min(100%, 500px);
  overflow-x: clip;
  -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.16);
          box-shadow: 0 0 8px rgba(0, 0, 0, 0.16);
}

.sec03 {
  position: relative;
}

.cta01 {
  position: relative;
}

.cta01__btn {
  position: absolute;
  bottom: 100px;
  /*bottom: 50px;*/
  padding-inline: 24px;
}
@media (375px <= width <= 414px) {
  .cta01__btn {
    bottom: 32px;
    padding-inline: 18px;
  }
}

.cta01__btn a + * {
  display: block;
  margin-top: 20px;
}

.cta01__btn-link {
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}

.cta01__btn-link:hover {
  opacity: 0.7;
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}

.sec05 .movie-title {
  margin-left: auto;
  width: clamp(130px, 52vw, 260px);
  margin-top: 32px;
}
.sec05 .movie-desc {
  margin-inline: auto;
  width: clamp(184px, 73.6vw, 368px);
  margin-top: 12px;
}

.sec05__movie {
  padding-inline: clamp(20px, 4.8vw, 24px);
  margin-top: 24px;
  width: 100%;
  aspect-ratio: 720/405;
}

.sec05__movie iframe {
  width: 100%;
  height: 100%;
}

.sec06 {
  margin-top: 22px;
  padding-bottom: 20px;
  position: relative;
}

.sec06:before {
  content: "";
  background: #2A354C;
  position: absolute;
  top: clamp(37px, 9.8vw, 49px);
  left: 0;
  width: calc(100% - 1px);
  height: calc(100% - 49px);
  z-index: -1;
}

.cta03 {
  background: #333;
  padding: 35px 24px 75px;
}

.cta03__btn {
  margin-top: 25px;
}

.cta03__btn a {
  display: block;
}

.cta03__btn a + * {
  margin-top: 20px;
}

.cta03__bottomtext {
  margin-top: 12px;
}

.sec08 {
  margin-top: 5px;
}

.sec10 {
  margin-top: 8px;
}

.sec13 {
  padding-bottom: 35px;
  padding-inline: 24px;
}
@media screen and (max-width: 500px) {
  .sec13 {
    padding-inline: 16px;
  }
}

.sec13 h2 {
  margin-bottom: 30px;
}

.sec13 h2 img {
  width: 250px;
  margin-inline: auto;
  display: block;
  margin-top: 68px;
}
@media screen and (max-width: 500px) {
  .sec13 h2 img {
    width: 180px;
  }
}

.accordion__details:nth-child(3) {
  margin-top: -15px;
}

.accordion__item {
  padding: 10px 24px 45px;
}

.accordion__header {
  width: 100%;
  text-align: center;
  background: #00A0C9;
  color: #fff;
  font-weight: 700;
  letter-spacing: 0.15em;
  padding-block: 16px;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  font-size: clamp(14px, 2vw, 16px);
}

.accordion__header span {
  position: relative;
}

/* プラス/マイナス：2本のバーで描画してアニメーション */
.accordion__header span::before,
.accordion__header span::after {
  content: "";
  position: absolute;
  right: -24px;
  top: 50%;
  width: clamp(12px, 2.25vw, 18px);
  height: 2px;
  background: #fff;
  -webkit-transform-origin: 50% 50%;
          transform-origin: 50% 50%;
  -webkit-transition: opacity 0.2s ease, -webkit-transform 0.25s ease;
  transition: opacity 0.2s ease, -webkit-transform 0.25s ease;
  transition: transform 0.25s ease, opacity 0.2s ease;
  transition: transform 0.25s ease, opacity 0.2s ease, -webkit-transform 0.25s ease;
}

/* 横棒（常時表示） */
.accordion__header span::before {
  -webkit-transform: translateY(-50%) rotate(0deg);
          transform: translateY(-50%) rotate(0deg);
  /* 開閉時に少し回転させてニュアンス追加 */
}

/* 縦棒（閉じているときだけ見せる） */
.accordion__header span::after {
  -webkit-transform: translateY(-50%) rotate(90deg);
          transform: translateY(-50%) rotate(90deg);
  opacity: 1;
}

/* 開いたとき：縦棒を消して、横棒をクルッと回す→マイナスに見える */
.accordion__header[aria-expanded=true] span::after {
  -webkit-transform: translateY(-50%) rotate(180deg);
          transform: translateY(-50%) rotate(180deg);
  opacity: 0;
}

.accordion__header[aria-expanded=true] span::before {
  -webkit-transform: translateY(-50%) rotate(180deg);
          transform: translateY(-50%) rotate(180deg);
}

/* hover/focus */
.accordion__header:hover,
.accordion__header:focus-visible {
  background: #00617a;
  outline: none;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}

/* パネル：ボーダーは上線のみ（親に外枠があるため） */
.accordion__panel {
  overflow: clip;
  margin-top: 10px;
}

/* 開いたとき */
.accordion__header[aria-expanded=true] + .accordion__panel {
  max-height: var(--acc-max);
}

.accordion__panel img {
  display: block;
  width: 100%;
  height: auto;
}

@media (prefers-reduced-motion: reduce) {
  .accordion__panel {
    -webkit-transition: none;
    transition: none;
  }
  .accordion__header::before,
  .accordion__header::after {
    -webkit-transition: none;
    transition: none;
  }
}
/* ズレ防止と安定 */
*,
*::before,
*::after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

/* 色は必要なら微調整してな */
:root {
  --acc-blue: #0ea3c7;
  /* ヘッダーの青 */
  --acc-blue-hover: #0b8eab;
  --acc-border: #cfdbe4;
  --acc-panel-bg: #f3fbff;
  /* A側の淡い水色 */
  --acc-radius: 8px;
  --acc-max: 1600px;
}

.sec14__map {
  aspect-ratio: 810/350;
  padding-inline: 26px;
  margin-top: 24px;
}

.sec14__map iframe {
  width: 100%;
  height: 100%;
}

.sec14__address {
  font-weight: bold;
  font-size: 16px;
  margin-top: 10px;
  line-height: 1.6;
}
@media screen and (max-width: 500px) {
  .sec14__address {
    font-size: 14px;
  }
}

.sec14__access {
  font-weight: bold;
  font-size: 18px;
  margin-top: 14px;
}
@media screen and (max-width: 500px) {
  .sec14__access {
    font-size: 16px;
    margin-top: 10px;
  }
}

.faq-accordion .faq-accordion__item {
  border: 2px solid #0ea3c7;
  overflow: hidden;
  background: #fff;
}

.faq-accordion__item + * {
  margin-top: 13px;
}

.faq-accordion .faq-accordion__question-btn {
  background: #0ea3c7;
  color: #fff;
  font-weight: bold;
  font-size: clamp(14px, 2vw, 16px);
  padding: 8px 60px 6px 10px;
  border: none;
  width: 100%;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 12px;
  position: relative;
  cursor: pointer;
  text-align: left;
  letter-spacing: 0.05em;
  line-height: 1.5;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}
@media screen and (max-width: 500px) {
  .faq-accordion .faq-accordion__question-btn {
    padding-right: 30px;
  }
}

.faq-accordion .faq-accordion__question-btn:hover,
.faq-accordion .faq-accordion__question-btn:focus-visible {
  background: #0b8eab;
  border-color: #0b8eab;
  outline: none;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}

.faq-accordion .qa-badge {
  display: grid;
  place-items: center;
  width: clamp(24px, 6.4vw, 32px);
  height: clamp(24px, 6.4vw, 32px);
  font-weight: 700;
  font-size: clamp(14px, 2vw, 16px);
  -webkit-flex-shrink: 0;
      -ms-flex-negative: 0;
          flex-shrink: 0;
}

.faq-accordion .qa-badge.q {
  background: #fff;
  color: #0ea3c7;
}

.faq-accordion .qa-badge.a {
  background: #0ea3c7;
  color: #fff;
  margin-top: 6px;
  margin-right: 12px;
}

.faq-accordion .faq-accordion__question-btn::after {
  content: "";
  position: absolute;
  right: 12px;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  width: 0;
  height: 0;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 8px solid #fff;
  -webkit-transition: -webkit-transform 0.25s ease;
  transition: -webkit-transform 0.25s ease;
  transition: transform 0.25s ease;
  transition: transform 0.25s ease, -webkit-transform 0.25s ease;
}
@media screen and (max-width: 500px) {
  .faq-accordion .faq-accordion__question-btn::after {
    right: 8px;
  }
}

.faq-accordion .faq-accordion__question-btn[aria-expanded=true]::after {
  -webkit-transform: translateY(-50%) rotate(180deg);
          transform: translateY(-50%) rotate(180deg);
  /* ▲ */
}

.faq-accordion .faq-accordion__answer-panel {
  overflow: hidden;
  padding: 0 10px 0 10px;
}

.faq-accordion .faq-accordion__question-btn[aria-expanded=true] + .faq-accordion__answer-panel {
  max-height: 800px;
  padding: 6px 10px 7px 10px;
}

.faq-accordion .answer-box {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  background: #fff;
  border-radius: 8px;
  padding: 0;
}

.faq-accordion .answer-text {
  font-size: clamp(13px, 2vw, 16px);
  line-height: 1.65;
  color: #000;
  letter-spacing: 0;
}

.l-footer {
  background: #000;
  position: relative;
  top: -1px;
}

.l-footer__copyright {
  width: 62vw;
  max-width: 496px;
  display: block;
  padding-block: 24px;
  text-align: center;
  margin-inline: auto;
}

/* 症例・FAQ 共通：中身を包むラッパ必須 */
.accordion__panel,
.faq-accordion__answer-panel {
  display: grid;
  grid-template-rows: 0fr;
  -webkit-transition: grid-template-rows 0.3s ease, padding 0.3s ease;
  transition: grid-template-rows 0.3s ease, padding 0.3s ease;
  transition: grid-template-rows 0.3s ease, padding 0.3s ease, -ms-grid-rows 0.3s ease;
}

.accordion__panel-inner,
.faq-accordion__answer-inner {
  overflow: hidden; /* はみ出しを隠す（ガタつき防止） */
}

/* 開いているとき（両方向アニメする） */
.accordion__item.is-open .accordion__panel {
  grid-template-rows: 1fr;
}

.faq-accordion__item.is-open .faq-accordion__answer-panel {
  grid-template-rows: 1fr;
}