@charset "UTF-8";
/*メインカラー*/
/*サブカラー*/
/*タブレット*/
/*スマホ*/
/*@mixin font-n {
  font-family: none;
}*/
* { /*全部*/
  box-sizing: border-box;
  padding: 0;
  margin: 0;
}

html {
  width: 100%;
  height: auto;
  scroll-behavior: smooth; /* スクロール */
  font-size: 0.6944444444vw;
  letter-spacing: 0.1em;
}

body {
  width: 100%;
  height: auto;
}

.menu-toggle {
  display: none;
}

a {
  text-decoration: none;
  cursor: pointer;
}

button {
  cursor: pointer;
}

.faq {
  width: 100%;
  margin-top: 14rem;
  background-color: #F8F6F3;
}
.faq .inner {
  width: 100rem;
  margin: auto;
  display: flex;
  flex-flow: column;
  padding: 14rem 0 14rem 0;
}
.faq .inner table {
  width: 100%;
}
.faq .inner table tbody {
  width: 100%;
  border-top: #D9D9D9 2px solid;
}
.faq .inner table tbody tr {
  width: 100%;
  display: flex;
  flex-flow: column;
  letter-spacing: 0.05em;
}
.faq .inner table tbody tr th {
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 150%;
  display: flex;
  justify-content: space-between;
  padding: 1.2rem 2rem;
  border-bottom: #D9D9D9 2px solid;
  cursor: pointer;
  user-select: none;
}
.faq .inner table tbody tr th .accordionIcon {
  width: 1.6rem;
  flex: 0 0 auto;
  align-self: center;
  transform: rotate(0);
  transition: all 0.3s ease;
  display: flex;
  justify-content: center;
}
.faq .inner table tbody tr th .accordionIcon svg {
  width: 100%;
  height: auto;
}
.faq .inner table tbody tr th .sp {
  display: none;
}
.faq .inner table tbody tr td {
  max-height: 0;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 170%;
  display: block;
  border-bottom: #D9D9D9 2px solid;
  position: relative;
  transition: all 0.5s ease;
  overflow: hidden;
  margin-top: -2px;
}
.faq .inner table tbody tr td p {
  padding: 2.4rem 3.2rem;
}
.faq .inner table tbody tr td p span {
  width: 100%;
  display: block;
  padding: 3.2rem 2.4rem;
  background-color: rgba(206, 221, 208, 0.53);
  border-radius: 1rem;
  display: block;
}
.faq .inner table tbody tr td p .sp {
  display: none;
}

.img-cover {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* スクロールで下から上へ出現するアニメーション（JS有効時のみ初期非表示） */
.reveal-ready .reveal {
  opacity: 0;
  transform: translateY(6rem);
  transition: opacity 0.9s ease, transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

.reveal-ready .reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .reveal-ready .reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
/*SP幅でのみ表示する要素*/
.sp-only {
  display: none;
}

/* スマホ版: 画面下固定の追従CTAボタン（PCでは非表示。SP表示はメディアクエリ内で定義） */
.sp-fixed-cta {
  display: none;
}

.reason-photo-grid {
  width: 100%;
  height: 28.9rem;
  display: flex;
  overflow: hidden;
  background: #D9D9D9;
}
.reason-photo-grid figure {
  flex: 1 1 20%;
  min-width: 0;
}
.reason-photo-grid img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.voice-card-list {
  width: 108rem;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2.4rem;
}

.voice-card {
  display: block;
  color: #191919;
  text-align: center;
  transition: opacity 0.3s ease;
}
.voice-card:hover {
  opacity: 0.65;
}
.voice-card img {
  display: block;
  width: 100%;
  aspect-ratio: 329/439;
  object-fit: cover;
}
.voice-card strong {
  display: block;
  margin-top: 2.2rem;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.5;
}
.voice-card p {
  margin-top: 0.6rem;
  font-size: 1.3rem;
  line-height: 1.7;
}

.other-voice-list .voice-card img {
  aspect-ratio: 329/439;
}

/*トップページ Voiceセクション（カルーセル）*/
.voice-section {
  margin-top: 14rem;
  padding-bottom: 14rem;
  background: #FAFAFA;
}

.voice-slider-wrap {
  width: 102rem;
  margin: 0 auto;
  position: relative;
}

.voice-slider {
  /* ガターはスライド内パディングで作る（負マージン手法はslickの幅計算を崩しはみ出すため不可） */
}
.voice-slider .voice-slide {
  padding: 0 0.85rem;
}
.voice-slider .voice-card figure {
  overflow: hidden;
}
.voice-slider .voice-card img {
  width: 100%;
  aspect-ratio: 329/439;
  object-fit: cover;
}
.voice-slider .voice-card strong {
  margin-top: 2.4rem;
  font-size: 3rem;
  line-height: 1.5;
}
.voice-slider .voice-card span {
  display: block;
  font-size: 2rem;
  line-height: 1.9;
  text-align: center;
}
.voice-slider .voice-card .voice-divider {
  width: 8.45rem;
  height: 0.1rem;
  margin: 1.4rem auto 0;
  background: #868686;
}
.voice-slider .voice-card p {
  margin-top: 2rem;
  font-size: 1.5rem;
  line-height: 1.8;
}

.voice-arrow {
  width: 6.4rem;
  height: 6.4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 16.8rem;
  z-index: 1;
  border-radius: 50%;
  background: #000;
  transition: opacity 0.3s ease;
}
.voice-arrow:hover {
  opacity: 0.65;
}
.voice-arrow svg {
  width: 1.4rem;
  height: auto;
}

.voice-arrow-prev {
  left: -10.4rem;
}

.voice-arrow-next {
  right: -10.4rem;
}

.contact-form-shell {
  width: 80.9rem;
  min-height: 119.6rem;
  margin: 0 auto;
  padding: 0;
  background: #D9D9D9;
}

.voice-catch {
  margin-bottom: 7.5rem;
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
}

.voice-detail-hero {
  width: 104rem;
  margin: 0 auto 8rem;
  display: grid;
  grid-template-columns: 33rem 1fr;
  gap: 8rem;
  align-items: center;
}
.voice-detail-hero figure {
  height: 43.8rem;
  overflow: hidden;
}
.voice-detail-hero figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.voice-profile p {
  min-height: 6.4rem;
  display: grid;
  grid-template-columns: 28rem 1fr;
  align-items: center;
  padding-left: 3.2rem;
  border-bottom: 1px solid #191919;
  font-size: 1.8rem;
  line-height: 1.7;
}
.voice-profile p:first-child {
  border-top: 1px solid #191919;
}

.voice-qa-list {
  width: 104rem;
  margin: 0 auto;
}
.voice-qa-list article + article {
  margin-top: 4rem;
}
.voice-qa-list h2 {
  padding: 2rem 7.6rem;
  border-radius: 11.6rem;
  background: rgba(206, 221, 208, 0.58);
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.5;
}
.voice-qa-list p {
  padding: 2.4rem 7rem 0;
  font-size: 1.6rem;
  line-height: 1.7;
}

@media screen and (max-width: 599px) {
  /*SP共通ヘッダー（全ページ）*/
  header {
    width: 100%;
    height: 4.9rem !important;
    display: flex !important;
    align-items: center;
    justify-content: center !important;
    background: #fff;
    position: fixed;
    z-index: 10;
  }
  /* 下層ページ: 固定ヘッダー分のオフセット（SPはヘッダー4.9rem。PCはmainのpt-[10rem]） */
  body:not(.home-page) main {
    padding-top: 4.9rem;
  }
  header > div {
    width: 100% !important;
    max-width: 37.5rem !important;
    height: 4.9rem !important;
    margin: 0 auto !important;
    padding: 0 2rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
  }
  header > div > a:first-child {
    width: 7.5rem !important;
    margin: 0 !important;
    display: block !important;
  }
  header > div > a:first-child img {
    display: block;
    width: 100%;
    height: auto;
  }
  header > div > a[href="contact.html"] {
    display: none !important;
  }
  header nav {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    padding: 0.4rem 2rem 1.2rem;
    background: #fff;
    box-shadow: 0 1.2rem 1.6rem rgba(0, 0, 0, 0.08);
  }
  body.menu-open header nav {
    display: block;
  }
  header nav ul {
    display: block !important;
  }
  header nav ul li {
    border-bottom: 0.1rem solid #ececec;
  }
  header nav ul a {
    display: block;
    padding: 1.3rem 0.4rem;
    font-size: 1.5rem;
  }
  .menu-toggle {
    width: 1.7rem;
    height: 1.5rem;
    display: flex;
    flex-flow: column;
    justify-content: space-between;
  }
  .menu-toggle span {
    width: 100%;
    height: 0.2rem;
    display: block;
    background: #191919;
    transition: transform 0.3s ease, opacity 0.3s ease;
  }
  .menu-toggle.is-open span:nth-child(1) {
    transform: translateY(0.65rem) rotate(45deg);
  }
  .menu-toggle.is-open span:nth-child(2) {
    opacity: 0;
  }
  .menu-toggle.is-open span:nth-child(3) {
    transform: translateY(-0.65rem) rotate(-45deg);
  }
  .reason-photo-grid {
    height: 30rem;
  }
  /*下層ページ共通: PC用CVバンドをSP用バンドへ差し替え*/
  .pc-cv {
    display: none !important;
  }
  .sp-only {
    display: block;
  }
  /*下層ページ共通フッター*/
  footer > div {
    margin-top: 2.4rem !important;
    padding: 0 2rem 0.8rem;
  }
  footer > div > div:first-child {
    display: block !important;
  }
  footer nav {
    margin-top: 2rem;
  }
  footer nav ul {
    display: grid !important;
    grid-auto-flow: row !important;
    grid-template-columns: repeat(2, 1fr) !important;
    grid-template-rows: none !important;
    gap: 1.2rem 2rem !important;
    font-size: 1.4rem !important;
  }
  /*voiceページ*/
  .voice-page h1 {
    margin-bottom: 2rem !important;
    font-size: 2.7rem !important;
  }
  .voice-page h1 strong {
    margin-top: 0.4rem;
    font-size: 3rem;
    line-height: 1;
  }
  .voice-catch {
    margin-bottom: 3.6rem;
    padding: 0 2rem;
    font-size: 1.7rem;
  }
  .voice-detail-hero {
    width: auto;
    margin: 0 0 4rem;
    padding: 0 2rem;
    display: block;
  }
  .voice-detail-hero figure {
    width: 24rem;
    height: 32rem;
    margin: 0 auto;
  }
  .voice-profile {
    margin-top: 3rem;
  }
  .voice-profile p {
    min-height: 4.6rem;
    grid-template-columns: 10.4rem 1fr;
    padding-left: 0.4rem;
    font-size: 1.4rem;
  }
  .voice-qa-list {
    width: auto;
    padding: 0 2rem;
  }
  .voice-qa-list h2 {
    padding: 1.4rem 2rem;
    font-size: 1.5rem;
  }
  .voice-qa-list p {
    padding: 1.6rem 0.4rem 0;
    font-size: 1.3rem;
  }
  .voice-card-list {
    width: auto;
    padding: 0 2rem;
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 2rem;
  }
  .voice-card-list .voice-card {
    width: 24rem;
  }
  /*contactページ*/
  .contact-page > div {
    width: auto !important;
    padding: 0 2rem;
  }
  .contact-page h1 {
    margin-bottom: 3rem !important;
    font-size: 2.4rem !important;
  }
  .contact-form-shell {
    width: 100%;
    min-height: 0;
  }
  /*privacy-policyページ*/
  .pp-inner {
    width: auto !important;
    padding: 0 2rem;
  }
  .pp-inner h1 {
    font-size: 2.6rem !important;
  }
  .pp-inner > div {
    font-size: 1.4rem !important;
  }
  .pp-inner h2 {
    font-size: 1.9rem !important;
  }
  .pp-inner h3 {
    font-size: 1.8rem !important;
  }
  .pp-inner h4 {
    font-size: 1.6rem !important;
  }
  .pp-inner table {
    font-size: 1.2rem !important;
  }
  .pp-inner table th {
    width: auto !important;
    padding: 1rem !important;
  }
  .pp-inner table td {
    padding: 1rem !important;
  }
}
.sp-page {
  display: none;
}

@media screen and (max-width: 599px) {
  html {
    /* 375px基準でビューポート追従（PCのvw(10,)と同じ思想）。
       1rem = 100/375*10vw = 2.6667vw → 37.5rem が常に100vw に等しくなり、
       実機幅(390/414/428px等)でも左右余白なく画面を満たす */
    font-size: 2.6666666667vw;
    letter-spacing: 0;
  }
  body.home-page {
    min-width: 0;
    overflow-x: hidden;
    font-size: 1.6rem;
    background: #fff;
  }
  .home-page main > section:not(.sp-page),
  .home-page > footer {
    display: none !important;
  }
  .sp-page {
    display: block;
    width: 100%;
    max-width: none;
    margin: 0;
    padding-top: 4.9rem;
    overflow: hidden;
    color: #191919;
    background: #fff;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-size: 1.6rem;
    line-height: 1.7;
    letter-spacing: 0;
  }
  .sp-page *,
  .sp-page *::before,
  .sp-page *::after {
    box-sizing: border-box;
    letter-spacing: 0;
  }
  .sp-page h2,
  .sp-page h3,
  .sp-page p,
  .sp-page dd,
  .sp-page dt {
    overflow-wrap: anywhere;
    word-break: break-all;
  }
  .sp-page img {
    display: block;
    max-width: 100%;
  }
  .sp-page h2 {
    font-size: 2.7rem;
    font-weight: 700;
    line-height: 1.34;
    text-align: center;
  }
  .sp-page h2 big {
    font-size: 3.6rem;
    line-height: 1.15;
  }
  .sp-page section > strong,
  .sp-course > strong,
  .sp-price > strong {
    display: block;
    margin-top: 0.4rem;
    font-family: "din-condensed", sans-serif;
    font-size: 3rem;
    font-weight: 700;
    line-height: 1;
    text-align: center;
  }
  .sp-kv {
    width: 100%;
  }
  .sp-kv img {
    width: 100%;
    height: auto;
  }
  .sp-reason {
    padding: 4.8rem 2rem 4.2rem;
    background: #fff;
  }
  .sp-reason h2 {
    font-size: 2.2rem;
  }
  .sp-reason > strong {
    margin-bottom: 3.6rem;
  }
  .sp-point {
    position: relative;
    margin-top: 4.8rem;
  }
  .sp-point:first-of-type {
    margin-top: 0;
  }
  .sp-point > span {
    display: block;
    font-family: "din-condensed", sans-serif;
    font-size: 2.9rem;
    font-weight: 700;
    line-height: 1;
    opacity: 0.3;
  }
  .sp-point h3 {
    margin-top: 0.6rem;
    font-size: 2.5rem;
    font-weight: 700;
    line-height: 1.36;
  }
  .sp-point h3 big {
    font-size: 3.9rem;
    line-height: 1;
  }
  .sp-point h3 small {
    font-size: 1.4rem;
  }
  .sp-point p {
    margin-top: 1.4rem;
    font-size: 1.4rem;
    line-height: 1.85;
  }
  .sp-point figure {
    width: 28rem;
    height: 18rem;
    margin: 2.2rem auto 0;
    border: 0.1rem solid #191919;
    border-radius: 1.8rem;
    overflow: hidden;
    background: #fff;
    box-shadow: 1.2rem 1.2rem 0 #f5f0d7;
  }
  .sp-point:nth-of-type(2) figure {
    box-shadow: -1.2rem 1.2rem 0 #dbe7dc;
  }
  .sp-point figure img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .sp-cv {
    display: block;
    width: 100%;
    border-top: 0.1rem solid #9c9c9c;
    border-bottom: 0.1rem solid #9c9c9c;
    background: #fff;
    position: relative;
    color: #191919;
  }
  .sp-cv .sp-cv-bg {
    display: block;
    width: 100%;
    height: auto;
  }
  .sp-cv-body {
    position: absolute;
    inset: 0;
    padding-left: 5.6rem; /*左のイラスト分、中央を右へ寄せる*/
    display: flex;
    flex-flow: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
  }
  .sp-cv-title {
    font-size: 1.35rem;
    font-weight: 500;
    line-height: 1.3;
    white-space: nowrap;
  }
  .sp-cv-title big,
  .sp-cv-title strong {
    font-size: 1.6rem;
    font-weight: 700;
  }
  .sp-cv-title big {
    color: #d01a30;
  }
  .sp-cv-btn {
    min-height: 2rem;
    padding: 0.2rem 1.4rem 0.2rem 1.6rem;
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    position: relative;
    border-radius: 99.9rem;
    background: #ed6d05;
    color: #fff;
    font-size: 0.95rem;
    font-weight: 700;
  }
  .sp-cv-btn img {
    flex: 0 0 auto;
  }
  .sp-cv-free {
    width: 1.8rem;
    position: absolute;
    top: -0.7rem;
    left: -0.6rem;
  }
  .sp-cv-arrow {
    width: 2.4rem;
    filter: brightness(0) invert(1);
  }
  .sp-course {
    padding: 5.2rem 2rem 5.4rem;
    background: #fff;
  }
  .sp-catch {
    width: fit-content;
    margin: 0 auto 0.6rem;
    position: relative;
    font-size: 1.8rem;
    font-weight: 700;
    line-height: 1.4;
  }
  .sp-catch::before,
  .sp-catch::after {
    content: "";
    width: 0.1rem;
    height: 3.4rem;
    position: absolute;
    top: -0.5rem;
    background: #191919;
  }
  .sp-catch::before {
    left: -2.4rem;
    transform: rotate(-22deg);
  }
  .sp-catch::after {
    right: -2.4rem;
    transform: rotate(22deg);
  }
  .sp-plan-card {
    margin-top: 4.8rem;
  }
  .sp-plan-card h3 {
    min-height: 5.4rem;
    padding: 1rem 1.4rem;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    background: #191919;
    color: #fff;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.35;
    text-align: center;
  }
  .sp-plan-card h3::after {
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0.8rem;
    left: 0.5rem;
    z-index: -1;
    border: 0.3rem solid #d01a30;
  }
  .sp-plan-lead {
    margin-top: 3.4rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    font-size: 2.1rem;
    font-weight: 700;
    line-height: 1.35;
    text-align: center;
  }
  .sp-plan-lead img {
    width: 3.4rem;
    flex: 0 0 auto;
  }
  .sp-plan-card > p {
    margin-top: 2.8rem;
    font-size: 1.4rem;
    line-height: 1.9;
  }
  .sp-plan-card dl {
    margin-top: 2.4rem;
    display: grid;
    grid-template-columns: 11.6rem 1fr;
    align-items: center;
    gap: 0.4rem 1rem;
  }
  .sp-plan-card dt {
    min-height: 3.4rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.9rem;
    background: #191919;
    color: #fff;
    font-size: 1.5rem;
    font-weight: 700;
  }
  .sp-plan-card dd {
    font-size: 1.4rem;
    line-height: 1.45;
  }
  .sp-plan-card dd big {
    font-size: 2.2rem;
    font-weight: 700;
  }
  .sp-plan-card figure {
    width: 30.2rem;
    height: 19.8rem;
    margin: 3rem auto 0;
    border-radius: 2.2rem;
    overflow: hidden;
    background: #f5f0d7;
    box-shadow: 1.3rem 1.3rem 0 #ede9cf;
  }
  .sp-plan-card:nth-of-type(2) figure,
  .sp-plan-card:nth-of-type(3) figure {
    box-shadow: 1.3rem 1.3rem 0 #ceddd0;
  }
  .sp-plan-card figure img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .sp-price {
    margin-top: 5.4rem;
  }
  .sp-price-intro {
    margin-top: 2.2rem;
    font-size: 1.3rem;
    line-height: 1.85;
  }
  .sp-price table {
    width: 30.4rem; /*セル幅 + border-spacing 3px×3 */
    margin: 2rem auto 0;
    border-collapse: separate;
    border-spacing: 0.3rem;
    font-size: 1.2rem;
    table-layout: fixed;
  }
  .sp-price thead th {
    height: 4.2rem;
    background: #d9d9d9;
    text-align: center;
    vertical-align: middle;
  }
  .sp-price thead img {
    width: 9.3rem;
    margin: 0 auto;
  }
  .sp-price tbody th,
  .sp-price tbody td {
    height: 2.7rem;
    padding: 0.2rem 0.4rem;
    text-align: center;
    vertical-align: middle;
  }
  .sp-price .sp-price-col-label {
    width: 11.7rem;
  }
  .sp-price .sp-price-col-value {
    width: 18.1rem;
  }
  .sp-price tbody th {
    background: #f0f0f0;
    font-weight: 700;
  }
  .sp-price tbody td {
    background: #ffdada;
    white-space: nowrap;
  }
  .sp-price td big {
    font-size: 1.5rem;
    font-weight: 700;
  }
  .sp-price td span {
    margin-left: 0.3rem;
    font-size: 0.75rem;
  }
  .sp-price-notes {
    width: 29.8rem;
    margin: 2rem auto 0;
    color: #434343;
    font-size: 1rem;
    line-height: 1.5;
    list-style: none;
  }
  .sp-price-notes li {
    display: grid;
    grid-template-columns: 5.2rem 1fr;
    gap: 0 0.8rem;
  }
  .sp-price-notes li + li {
    margin-top: 0.5rem;
  }
  .sp-voice {
    padding: 4rem 2rem 7.4rem;
    background: #fafafa;
  }
  .sp-voice-slider {
    margin-top: 3rem;
    position: relative;
  }
  /* SP用スライダー矢印（PCと同じ黒丸を縮小し画像の縦中央へ配置） */
  .sp-voice-slider .voice-arrow {
    width: 4.4rem;
    height: 4.4rem;
    top: 8.2rem;
  }
  .sp-voice-slider .voice-arrow svg {
    width: 1.1rem;
  }
  .sp-voice-slider .voice-arrow-prev {
    left: 0;
  }
  .sp-voice-slider .voice-arrow-next {
    right: 0;
  }
  /* SP用スライダーのドットインジケーター */
  .sp-voice-slider .slick-dots {
    position: static;
    margin-top: 2.8rem;
    display: flex !important;
    justify-content: center;
    align-items: center;
    gap: 0.8rem;
    line-height: 0;
  }
  .sp-voice-slider .slick-dots li {
    width: auto;
    height: auto;
    margin: 0;
  }
  .sp-voice-slider .slick-dots li button {
    width: 0.8rem;
    height: 0.8rem;
    padding: 0;
    border-radius: 50%;
    background: #cfcfcf;
  }
  .sp-voice-slider .slick-dots li button::before {
    content: none;
  }
  .sp-voice-slider .slick-dots li.slick-active button {
    background: #191919;
  }
  .sp-voice-card {
    display: block;
    color: #191919;
    text-align: center;
  }
  .sp-voice-card img {
    width: 15.6rem;
    height: 20.8rem;
    margin: 0 auto;
    object-fit: cover;
  }
  .sp-voice-card strong {
    display: block;
    margin-top: 2rem;
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.4;
  }
  .sp-voice-card span {
    display: block;
    font-size: 1.2rem;
    line-height: 1.5;
  }
  .sp-voice-card .sp-voice-divider {
    width: 3.8rem;
    height: 0.1rem;
    margin: 1rem auto 0;
    background: #868686;
  }
  .sp-voice-card p {
    margin-top: 1.2rem;
    font-size: 1.2rem;
    line-height: 1.45;
  }
  .sp-flow {
    padding: 4.4rem 2rem 4.8rem;
    background: #fff;
  }
  .sp-flow ol {
    width: 100%;
    margin-top: 3.4rem;
    display: grid;
    gap: 2.4rem;
    list-style: none;
  }
  .sp-flow li {
    display: grid;
    grid-template-columns: 6.6rem 1fr;
    gap: 1.8rem;
  }
  .sp-flow li > span {
    width: 6.6rem;
    height: 6.6rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #b8cda0;
    font-family: "din-condensed", sans-serif;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1;
    text-align: center;
  }
  .sp-flow li > span big {
    font-size: 2.9rem;
  }
  .sp-flow h3 {
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.45;
  }
  .sp-flow p {
    margin-top: 0.6rem;
    font-size: 1.3rem;
    line-height: 1.8;
  }
  .sp-faq {
    padding: 4.4rem 2rem 4.8rem;
    background: #f8f6f3;
  }
  .sp-faq dl {
    margin-top: 3.4rem;
    border-top: 0.2rem solid #d9d9d9;
  }
  .sp-faq dt {
    padding: 1.4rem 0;
    border-bottom: 0;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.6;
  }
  .sp-faq dt .sp-faq-q {
    margin-right: 0.4rem;
    color: #ed6d05;
    font-family: "din-condensed", sans-serif;
  }
  .sp-faq dd {
    margin: 0;
    padding: 1.6rem;
    border-bottom: 0.2rem solid #d9d9d9;
    border-radius: 1rem;
    background: rgba(206, 221, 208, 0.53);
    font-size: 1.3rem;
    line-height: 1.8;
  }
  .sp-access {
    padding: 4.4rem 2rem 1.2rem;
    background: #fff;
  }
  .sp-access > div {
    margin-top: 2.6rem;
    background: #f2f2f2;
    text-align: center;
  }
  .sp-access h3 {
    padding-top: 1.8rem;
    font-size: 1.8rem;
    font-weight: 700;
  }
  .sp-access p {
    padding: 0.8rem 1.4rem 1.8rem;
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1.75;
  }
  .sp-access-route {
    font-weight: 400;
    color: #555555;
  }
  .sp-access img {
    width: 100%;
    height: 15.8rem;
    object-fit: cover;
  }
  .sp-access-media {
    display: grid;
    grid-template-columns: 16.2rem 1fr;
  }
  .sp-access-media img {
    height: 15.8rem;
  }
  .sp-access-media .sp-access-map {
    width: 100%;
    height: 15.8rem;
    border: 0;
    display: block;
  }
  /* 画面下固定の追従CTA（footer系が見えたら is-hidden で隠す） */
  .sp-fixed-cta {
    position: fixed;
    left: 50%;
    bottom: 1.6rem;
    transform: translateX(-50%);
    z-index: 90;
    width: calc(100% - 4rem);
    max-width: 36rem;
    min-height: 5.4rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.2rem;
    border-radius: 99.9rem;
    background: #ed6d05;
    color: #fff;
    font-size: 1.6rem;
    font-weight: 700;
    box-shadow: 0 0.4rem 1.6rem rgba(0, 0, 0, 0.25);
    transition: transform 0.4s ease, opacity 0.4s ease;
  }
  .sp-fixed-cta-arrow {
    width: 2.8rem;
    flex: 0 0 auto;
    filter: brightness(0) invert(1);
  }
  .sp-fixed-cta.is-hidden {
    transform: translate(-50%, 250%);
    opacity: 0;
    pointer-events: none;
  }
  body.menu-open .sp-fixed-cta {
    opacity: 0;
    pointer-events: none;
  }
  .sp-footer-cta {
    padding: 3.7rem 2rem;
    background: #000;
  }
  .sp-footer-cta a {
    width: 100%;
    max-width: 36rem;
    min-height: 5.4rem;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.2rem;
    border-radius: 99.9rem;
    background: #ed6d05;
    color: #fff;
    font-size: 1.6rem;
    font-weight: 700;
  }
  .sp-footer-cta a img {
    width: 2.8rem;
    flex: 0 0 auto;
    filter: brightness(0) invert(1);
  }
  .sp-footer {
    padding: 2.5rem 2rem 1.6rem;
    background: #fff;
    color: #191919;
    text-align: center;
  }
  .sp-footer > img {
    width: 9.1rem;
    margin: 0 auto;
  }
  .sp-footer-sns {
    margin-top: 0.9rem;
    display: flex;
    justify-content: center;
    gap: 0.6rem;
    font-size: 1.5rem;
  }
  .sp-footer-sns a {
    color: #b5b5b5;
  }
  .sp-footer small {
    display: block;
    margin-top: 1.6rem;
    font-size: 1rem;
    text-align: center;
  }
}

/*# sourceMappingURL=style.css.map */
