@charset "UTF-8";
:root {
  --color-main: #dd694c;
  --color-accent: #426884;
  --color-text: #444444;
  --color-text-sub: #666666;
  --color-bg: #ffffff;
  --color-bg-sub: #f9f4e8;
  --color-border: #d9d9d9;
  --color-link: #444444;
  --color-green: #208f6b;
  --color-yellow: #efc860;
  --color-bg-blue: #718ea3;
  --color-bg-peach: #ffeed7;
  --color-bg-light: #f8f8f5;
  --color-border-sub: #d6d9db;
  --color-mark: #ffeeea;
  --color-bg-bubble: #faf3e6;
  --color-text-note: #8c8c8c;
  --color-gold-text: #736732;
  --font-num: "Inter", var(--font-gothic);
  --color-form-border: #ded6c9;
  --color-form-icon: #999188;
  --color-note-bg: #fffce3;
  --color-note-text: #b86b1a;
  --font-gothic: YakuHanJP, "Zen Kaku Gothic New", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, sans-serif;
  --font-maru: YakuHanRP, "Zen Maru Gothic", "Hiragino Sans", "Noto Sans JP", Meiryo, sans-serif;
  --font-size-xs: 1.2rem;
  --font-size-sm: 1.4rem;
  --font-size-base: 1.6rem;
  --font-size-md: 1.8rem;
  --font-size-lg: 2.0rem;
  --font-size-xl: 2.4rem;
  --font-size-2xl: 3.2rem;
  --font-size-3xl: 4.0rem;
  --line-height-tight: 1.4;
  --line-height-base: 1.8;
  --line-height-loose: 2.0;
  --letter-spacing-tight: -0.02em;
  --letter-spacing-base: 0.05em;
  --letter-spacing-wide: 0.1em;
  --letter-spacing-wider: 0.2em;
  --space-xs: 0.4rem;
  --space-sm: 0.8rem;
  --space-md: 1.6rem;
  --space-lg: 2.4rem;
  --space-xl: 4.0rem;
  --space-xxl: 8.0rem;
  --container-sm: 800px;
  --container-md: 1000px;
  --container-width: 1200px;
  --container-padding: 2.4rem;
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 16px;
  --radius-full: 9999px;
  --shadow-sm: 0 1px 4px rgba(0, 0, 0, 0.08);
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.10);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.12);
  --z-base: 0;
  --z-header: 100;
  --z-overlay: 200;
  --z-modal: 300;
  --z-toast: 400;
  --transition: 0.3s ease;
  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out-soft: cubic-bezier(0.4, 0, 0.2, 1);
}

.section_inner {
  width: min(var(--container-width), 100% - var(--container-padding) * 2);
  margin-inline: auto;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  font-size: 62.5%;
  scroll-behavior: smooth;
  scroll-padding-top: 80px;
}

body {
  margin: 0;
  font-family: var(--font-gothic);
  font-size: var(--font-size-base);
  color: var(--color-text);
  line-height: var(--line-height-base);
  min-height: 100dvh;
}

img,
video {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

a {
  color: var(--color-link);
  transition: opacity var(--transition);
}
a:hover {
  opacity: 0.75;
}

.is_pc {
  display: block;
}
@media screen and (max-width: 599px) {
  .is_pc {
    display: none;
  }
}

.is_sp {
  display: none;
}
@media screen and (max-width: 599px) {
  .is_sp {
    display: block;
  }
}

br.is_pc {
  display: inline;
}
@media screen and (max-width: 599px) {
  br.is_pc {
    display: none;
  }
}

br.is_sp {
  display: none;
}
@media screen and (max-width: 599px) {
  br.is_sp {
    display: inline;
  }
}

input[type=submit],
input[type=button] {
  appearance: button;
  border-radius: 0;
  border: none;
  box-sizing: border-box;
}
input[type=submit]::-webkit-search-decoration,
input[type=button]::-webkit-search-decoration {
  display: none;
}
input[type=submit]:focus,
input[type=button]:focus {
  outline-offset: -2px;
}

.js-fade {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.js-fade.is-active {
  opacity: 1;
  transform: translateY(0);
}

.js-fade-delay-1 {
  transition-delay: 0.1s;
}

.js-fade-delay-2 {
  transition-delay: 0.2s;
}

.js-fade-delay-3 {
  transition-delay: 0.3s;
}

.js-fade-delay-4 {
  transition-delay: 0.4s;
}

@media (prefers-reduced-motion: reduce) {
  .js-fade {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
/*************************************************
header
*************************************************/
/*************************************************
footer（08_フッター）
*************************************************/
.footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
  padding-block: 4.8rem;
  background-color: var(--color-bg-sub);
}
@media screen and (max-width: 599px) {
  .footer {
    gap: var(--space-md);
    padding-block: 3.2rem;
  }
}

.footer__logo {
  width: 11rem;
  height: 2.8rem;
  object-fit: contain;
}

/* リンク
*************************************************/
.footer__nav-list {
  display: flex;
  align-items: center;
  gap: var(--space-md);
  padding: 0;
}
@media screen and (max-width: 599px) {
  .footer__nav-list {
    margin-block: 0;
  }
}
.footer__nav-list {
  font-size: var(--font-size-sm);
  font-weight: 500;
  line-height: normal;
  list-style: none;
}

.footer__nav-item + .footer__nav-item::before {
  margin-right: var(--space-md);
  font-family: var(--font-maru);
  color: var(--color-text);
  content: "｜";
}

.footer__nav-link {
  color: var(--color-text);
  text-decoration: none;
}

/* コピーライト
*************************************************/
.footer__copyright {
  font-size: var(--font-size-sm);
  font-weight: 500;
  line-height: normal;
  color: var(--color-text);
}
@media screen and (max-width: 599px) {
  .footer__copyright {
    margin-block: 0;
  }
}

header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
  background-color: #faf6ed;
}
header .header__inner {
  background-color: #faf6ed;
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 1440px;
  margin-inline: auto;
  padding: 0 min(60px, 4.1666666667vw);
  height: min(110px, 7.6388888889vw);
}
@media screen and (max-width: 599px) {
  header .header__inner {
    align-items: flex-start;
    height: 10.2564102564vw;
    padding: 4.0717948718vw 3.8461538462vw 0;
  }
}
header .header__inner .logo img {
  display: block;
  width: min(120px, 8.3333333333vw);
  height: auto;
}
@media screen and (max-width: 599px) {
  header .header__inner .logo img {
    width: 19.4871794872vw;
  }
}
header .header__inner .btn {
  width: min(273px, 18.9583333333vw);
  height: min(59px, 4.0972222222vw);
  align-self: flex-start;
  margin-top: min(26px, 1.8055555556vw);
}
@media screen and (max-width: 599px) {
  header .header__inner .btn {
    display: none;
  }
}
header .header__inner .btn a {
  gap: min(9.935px, 0.6899305556vw);
  box-shadow: 1.56px 1.56px 3.12px rgba(0, 0, 0, 0.25), 0 0 7.8px rgba(72, 58, 54, 0.06);
}
header .header__inner .btn img {
  width: min(16.049px, 1.1145138889vw);
}
header .header__inner .btn .btn_text {
  font-size: min(16px, 1.1111111111vw);
  letter-spacing: min(0.78px, 0.0541666667vw);
}

/* CTAボタン（ヘッダー・FV共通の見た目）
*************************************************/
.btn a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  color: #fff;
  text-decoration: none;
  background-color: var(--color-main);
  border-radius: 8px;
  transition: opacity var(--transition);
}
.btn a:hover {
  opacity: 0.75;
}
.btn img {
  display: block;
  height: auto;
}
.btn .btn_text {
  font-family: var(--font-maru);
  font-weight: 700;
  line-height: 1;
  color: #fff;
  white-space: nowrap;
}

/*************************************************
FV
*************************************************/
#section__fv {
  position: relative;
  height: min(730px, 50.6944444444vw);
}
@media screen and (max-width: 599px) {
  #section__fv {
    height: 213.0769230769vw;
  }
}
#section__fv {
  background-color: #faf6ed;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  overflow: hidden;
}
#section__fv .fv-content {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding: 0 min(120px, 8.3333333333vw);
  display: flex;
  gap: min(80px, 5.5555555556vw);
}
@media screen and (max-width: 599px) {
  #section__fv .fv-content {
    flex-direction: column;
    gap: 0;
    padding: 0;
  }
}
#section__fv .fv-content .left,
#section__fv .fv-content .right {
  flex-shrink: 0;
}
#section__fv .fv-content .copy {
  margin-top: min(138px, 9.5833333333vw);
}
@media screen and (max-width: 599px) {
  #section__fv .fv-content .copy {
    margin-top: 17.9487179487vw;
  }
}
#section__fv .fv-content .copy img {
  width: min(496px, 34.4444444444vw);
  height: auto;
}
@media screen and (max-width: 599px) {
  #section__fv .fv-content .copy img {
    display: block;
    width: 88.2051282051vw;
    margin-inline: auto;
  }
}
#section__fv .fv-content .questions {
  display: flex;
  align-items: flex-start;
  gap: min(10px, 0.6944444444vw);
  margin-left: min(23px, 1.5972222222vw);
  margin-top: min(45px, 3.125vw);
  height: min(42px, 2.9166666667vw);
}
#section__fv .fv-content .questions .question1 {
  flex-shrink: 0;
  width: min(174px, 12.0833333333vw);
  height: auto;
}
@media screen and (max-width: 599px) {
  #section__fv .fv-content .questions .question1 {
    width: 35.641025641vw;
  }
}
#section__fv .fv-content .questions .question2 {
  flex-shrink: 0;
  width: min(230px, 15.9722222222vw);
  height: auto;
}
@media screen and (max-width: 599px) {
  #section__fv .fv-content .questions .question2 {
    width: 48.2051282051vw;
  }
}
@media screen and (max-width: 599px) {
  #section__fv .fv-content .questions {
    justify-content: center;
    gap: 1.7948717949vw;
    height: 8.4615384615vw;
    margin-top: 6.1538461538vw;
    margin-left: 0;
  }
}
#section__fv .fv-content .result {
  font-family: var(--font-gothic);
  font-size: min(21px, 1.4583333333vw);
  font-weight: bold;
  margin-left: min(23px, 1.5972222222vw);
}
@media screen and (max-width: 599px) {
  #section__fv .fv-content .result {
    margin: 0 auto;
    font-size: 4.358974359vw;
    line-height: 1.75;
    text-align: center;
  }
}
#section__fv .fv-content .number {
  font-family: var(--font-gothic);
  font-size: min(35px, 2.4305555556vw);
  font-weight: bold;
  letter-spacing: -0.02em;
}
@media screen and (max-width: 599px) {
  #section__fv .fv-content .number {
    font-family: var(--font-num);
    font-size: 7.1794871795vw;
  }
}
#section__fv .fv-content .left > .btn {
  width: min(305px, 21.1805555556vw);
  height: min(66px, 4.5833333333vw);
  margin-top: min(25px, 1.7361111111vw);
  margin-left: min(23px, 1.5972222222vw);
}
#section__fv .fv-content .left > .btn a {
  gap: min(11.1px, 0.7708333333vw);
  box-shadow: 1.743px 1.743px 3.486px rgba(0, 0, 0, 0.25), 0 0 8.714px rgba(72, 58, 54, 0.06);
}
#section__fv .fv-content .left > .btn img {
  width: min(17.93px, 1.2451388889vw);
}
#section__fv .fv-content .left > .btn .btn_text {
  font-size: min(18px, 1.25vw);
  letter-spacing: min(0.8714px, 0.0605138889vw);
}
@media screen and (max-width: 599px) {
  #section__fv .fv-content .left > .btn .btn_text {
    font-size: 4.1025641026vw;
    letter-spacing: normal;
  }
}
@media screen and (max-width: 599px) {
  #section__fv .fv-content .left > .btn {
    width: 71.7948717949vw;
    height: 13.3333333333vw;
    margin: 3.8461538462vw auto 0;
  }
  #section__fv .fv-content .left > .btn a {
    gap: 2.6220512821vw;
    box-shadow: 0 0 13.82px rgba(72, 58, 54, 0.09);
  }
  #section__fv .fv-content .left > .btn img {
    width: 4.2356410256vw;
  }
}
#section__fv .fv-content .right {
  position: relative;
}
@media screen and (max-width: 599px) {
  #section__fv .fv-content .right {
    order: 3;
    margin-top: 8.2051282051vw;
  }
}
#section__fv .fv-content .right .photo {
  display: flex;
  align-items: flex-start;
}
@media screen and (max-width: 599px) {
  #section__fv .fv-content .right .photo {
    justify-content: center;
    gap: 5.0769230769vw;
  }
}
#section__fv .fv-content .right .photo .photo_room {
  flex-shrink: 0;
  width: min(239px, 16.5972222222vw);
  height: min(339px, 23.5416666667vw);
  margin-top: min(110px, 7.6388888889vw);
  margin-block-end: min(100px, 6.9444444444vw);
  margin-left: min(71px, 4.9305555556vw);
}
@media screen and (max-width: 599px) {
  #section__fv .fv-content .right .photo .photo_room {
    width: 25.8538461538vw;
    height: auto;
    margin: 0;
  }
}
#section__fv .fv-content .right .photo .photo_family {
  margin-top: min(153px, 10.625vw);
  margin-left: min(47px, 3.2638888889vw);
  flex-shrink: 0;
  width: min(269px, 18.6805555556vw);
  height: min(418px, 29.0277777778vw);
  margin-block-end: min(50px, 3.4722222222vw);
}
@media screen and (max-width: 599px) {
  #section__fv .fv-content .right .photo .photo_family {
    width: 29.0666666667vw;
    height: auto;
    margin: 4.6153846154vw 0 0;
  }
}
#section__fv .fv-content .right .photo .photo_third {
  display: none;
}
@media screen and (max-width: 599px) {
  #section__fv .fv-content .right .photo .photo_third {
    display: block;
    flex-shrink: 0;
    width: 25.8538461538vw;
    height: auto;
  }
}
#section__fv .fv-content .right .tv {
  position: absolute;
  top: min(392px, 27.2222222222vw);
  right: min(500px, 34.7222222222vw);
  width: min(101px, 7.0138888889vw);
  height: auto;
  z-index: 2;
}
@media screen and (max-width: 599px) {
  #section__fv .fv-content .right .tv {
    display: none;
  }
}
#section__fv .fv-content .right .table {
  position: absolute;
  bottom: max(-45.5px, -3.1597222222vw);
  left: min(567px, 39.375vw);
  width: min(154px, 10.6944444444vw);
  height: auto;
  z-index: 2;
}
@media screen and (max-width: 599px) {
  #section__fv .fv-content .right .table {
    display: none;
  }
}
#section__fv .fv-content .illust_people {
  position: absolute;
  left: min(527px, 36.5972222222vw);
  top: min(512px, 35.5555555556vw);
  width: min(565px, 39.2361111111vw);
  z-index: 2;
}
@media screen and (max-width: 599px) {
  #section__fv .fv-content .illust_people {
    position: static;
    order: 2;
    width: 79.7435897436vw;
    margin: 7.6923076923vw auto 0;
  }
}
#section__fv .fv-content .illust_people img {
  width: 100%;
  height: auto;
  display: block;
}

/*************************************************
irreversible（02_知らなかったでは取り返しがつきません）
*************************************************/
.irreversible {
  position: relative;
  padding: 4.7rem 0 6.6rem;
  background-color: var(--color-bg-sub);
}
.irreversible .section_inner {
  position: relative;
  z-index: 1;
}
@media screen and (max-width: 599px) {
  .irreversible {
    padding: 11.8282051282vw 0 17.6923076923vw;
  }
  .irreversible .section_inner {
    width: 100%;
    padding-inline: 4.1025641026vw;
  }
}

/* 背景（青い帯＋下に膨らむ曲線）
*************************************************/
.irreversible__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}
.irreversible__bg::before {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 8.1rem;
  left: 0;
  content: "";
  background-color: var(--color-bg-blue);
}
.irreversible__bg::after {
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 125%;
  height: 28rem;
  content: "";
  background-color: var(--color-bg-blue);
  border-radius: 50%;
  transform: translateX(-50%);
}
@media screen and (max-width: 599px) {
  .irreversible__bg::before {
    bottom: 12.8205128205vw;
  }
  .irreversible__bg::after {
    width: 207.18%;
    height: 141.5384615385vw;
  }
}

/* 吹き出し＋人物イラスト
*************************************************/
.irreversible__head {
  position: relative;
  width: 95rem;
  max-width: 100%;
  margin-inline: auto;
}

.irreversible__cloud {
  width: 75.16%;
  margin-inline: auto;
  padding: 4.7368% 3.3684% 0;
  aspect-ratio: 714/252;
  background: url("../images/cloud.svg") no-repeat center/100% 100%;
}
@media screen and (max-width: 599px) {
  .irreversible__cloud {
    width: 86.1538461538vw;
    padding: 7.5205128205vw 0 0;
    aspect-ratio: 336/172.624;
    background-image: url("../images/cloud-sp.svg");
  }
}

.irreversible__person {
  position: absolute;
  bottom: -17.06%;
  height: auto;
}
@media screen and (max-width: 599px) {
  .irreversible__person {
    bottom: auto;
    top: 35.6076923077vw;
  }
}

.irreversible__person--left {
  left: 0;
  width: 15.37%;
}
@media screen and (max-width: 599px) {
  .irreversible__person--left {
    left: 5.8974358974vw;
    width: 18.7179487179vw;
  }
}

.irreversible__person--right {
  right: 0;
  width: 17.56%;
}
@media screen and (max-width: 599px) {
  .irreversible__person--right {
    top: initial;
    bottom: -8.2051282051vw;
    right: 2.0923076923vw;
    width: 23.5615384615vw;
  }
}

/* 吹き出し内のタイトル
*************************************************/
.irreversible__title {
  margin-block: 0;
  font-family: var(--font-maru);
  font-weight: 700;
  color: var(--color-text);
  text-align: center;
}
.irreversible__title > span {
  display: block;
  line-height: 1.4;
}
@media screen and (max-width: 599px) {
  .irreversible__title > span {
    line-height: 1.25;
  }
}

.irreversible__title-sm {
  font-size: 2.6rem;
}
@media screen and (max-width: 1024px) {
  .irreversible__title-sm {
    font-size: 2.2rem;
  }
}
@media screen and (max-width: 599px) {
  .irreversible__title-sm {
    font-size: 5.1282051282vw;
  }
}

.irreversible__title-md {
  font-size: 3.2rem;
}
@media screen and (max-width: 1024px) {
  .irreversible__title-md {
    font-size: 2.6rem;
  }
}
@media screen and (max-width: 599px) {
  .irreversible__title-md {
    font-size: 6.1538461538vw;
  }
}

.irreversible__title-lg {
  font-size: 4rem;
  color: var(--color-main);
}
@media screen and (max-width: 1024px) {
  .irreversible__title-lg {
    font-size: 3.2rem;
  }
}
@media screen and (max-width: 599px) {
  .irreversible__title-lg {
    font-size: 8.2051282051vw;
  }
}

.irreversible__title-wave {
  position: relative;
}
.irreversible__title-wave::after {
  position: absolute;
  top: 100%;
  right: 0;
  left: 0;
  height: 8px;
  content: "";
  background: url("../images/wave-line.svg") repeat-x left bottom/341px 8px;
}
@media screen and (max-width: 599px) {
  .irreversible__title-wave::after {
    height: 2.0512820513vw;
    background-size: 67.1794871795vw 2.0512820513vw;
  }
}

/* 注意カード 4枚
*************************************************/
.irreversible__cards {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2.8rem;
  width: 100rem;
  max-width: 100%;
  margin: 4.2rem auto 0;
  padding: 0;
  list-style: none;
}
@media screen and (max-width: 1024px) {
  .irreversible__cards {
    gap: 2rem;
  }
}
@media screen and (max-width: 599px) {
  .irreversible__cards {
    gap: var(--space-md);
    margin-top: 8.2743589744vw;
  }
}

.irreversible__card {
  display: flex;
  flex: 1 1 0;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 11.9rem;
  padding: 1.5rem 1.6rem;
  background-color: var(--color-bg);
  border: 1px solid var(--color-border-sub);
  border-radius: 12px;
}
@media screen and (max-width: 1024px) {
  .irreversible__card {
    flex: 1 1 calc(50% - 1rem);
    min-height: 10rem;
  }
}
@media screen and (max-width: 599px) {
  .irreversible__card {
    flex: 1 1 100%;
    min-height: 0;
    padding: 0 1rem;
  }
}

.irreversible__card-body {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  width: 19.5rem;
  max-width: 100%;
}
@media screen and (max-width: 1024px) {
  .irreversible__card-body {
    width: 100%;
  }
}

.irreversible__card-icon {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 2.2rem;
  height: 2.2rem;
  font-family: var(--font-maru);
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.2;
  color: #fff;
  background-color: var(--color-main);
  border-radius: var(--radius-full);
}

.irreversible__card-text {
  flex: 1 1 0;
  min-width: 0;
  font-size: var(--font-size-md);
  font-weight: 500;
  line-height: 1.6;
  color: var(--color-text);
}
@media screen and (max-width: 1024px) {
  .irreversible__card-text {
    font-size: var(--font-size-base);
  }
}

.irreversible__em {
  color: var(--color-green);
}

/*************************************************
resolve（03_相談会でわかること）
*************************************************/
.resolve {
  padding: 7.806rem 0;
  background-color: var(--color-bg-sub);
}
@media screen and (max-width: 599px) {
  .resolve {
    padding: 4.8rem 0;
  }
}

.resolve__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5rem;
}
@media screen and (max-width: 599px) {
  .resolve__inner {
    width: 100%;
    padding-inline: 3.0769230769vw;
    gap: 3.2rem;
  }
}

/* 見出し
*************************************************/
.resolve__head {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  width: 100rem;
  max-width: 100%;
}
@media screen and (max-width: 599px) {
  .resolve__head {
    position: relative;
    display: block;
    width: 100%;
  }
}

.resolve__tag {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 15.8rem;
  height: 4.2rem;
  padding-right: 1.4rem;
  font-size: var(--font-size-md);
  font-weight: 700;
  line-height: 1.6;
  color: #fff;
  background: url("../images/resolve__tag.svg") no-repeat center/100% 100%;
}
@media screen and (max-width: 599px) {
  .resolve__tag {
    position: absolute;
    top: 8.2051282051vw;
    left: 8.2051282051vw;
    width: 27.6923076923vw;
    height: 10.5128205128vw;
    padding: 0 0 2.0205128205vw;
    font-size: 3.8461538462vw;
    background-image: url("../images/resolve__tag_sp.svg");
  }
}

.resolve__title {
  width: 69rem;
  max-width: 100%;
  font-family: var(--font-maru);
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 1.5;
  color: var(--color-text);
}
@media screen and (max-width: 1024px) {
  .resolve__title {
    width: auto;
    font-size: 2.8rem;
    text-align: center;
  }
}
@media screen and (max-width: 599px) {
  .resolve__title {
    width: 63.5897435897vw;
    margin: 10.2564102564vw auto 0;
    font-size: 5.641025641vw;
    line-height: 1.25;
  }
}

@media screen and (max-width: 599px) {
  .resolve__title-row {
    display: block;
  }
}
@media screen and (max-width: 599px) {
  .resolve__title-row:first-child {
    padding-left: 22.5641025641vw;
  }
}

.resolve__title-wave {
  position: relative;
  font-size: 4rem;
}
.resolve__title-wave::after {
  position: absolute;
  top: 100%;
  right: 0;
  left: 0;
  height: 8px;
  margin-top: 1px;
  content: "";
  background: url("../images/wave-line.svg") repeat-x left bottom/341px 8px;
}
@media screen and (max-width: 1024px) {
  .resolve__title-wave {
    font-size: 3.4rem;
  }
}
@media screen and (max-width: 599px) {
  .resolve__title-wave {
    font-size: 8.2051282051vw;
  }
  .resolve__title-wave::after {
    height: 2.0512820513vw;
    background-size: 62.5641025641vw 2.0512820513vw;
  }
}

.resolve__title-em {
  color: var(--color-main);
}
@media screen and (max-width: 599px) {
  .resolve__title-em {
    font-size: 6.1538461538vw;
  }
}

@media screen and (max-width: 599px) {
  .resolve__title-em-lg {
    font-size: 8.2051282051vw;
  }
}

.resolve__title-sm {
  font-size: 3.2rem;
}
@media screen and (max-width: 1024px) {
  .resolve__title-sm {
    font-size: 2.8rem;
  }
}
@media screen and (max-width: 599px) {
  .resolve__title-sm {
    font-size: 5.641025641vw;
  }
}

/* カード 6枚
*************************************************/
.resolve__cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-rows: minmax(24.083rem, auto);
  gap: 3rem;
  width: 100rem;
  max-width: 100%;
  padding: 0;
  list-style: none;
}
@media screen and (max-width: 1024px) {
  .resolve__cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: minmax(0, auto);
    gap: 2.4rem;
  }
}
@media screen and (max-width: 599px) {
  .resolve__cards {
    grid-template-columns: minmax(1fr, 1fr);
    gap: 12px;
  }
}

.resolve__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2.0136rem;
  padding: 2.6847rem 1.3424rem;
  background-color: var(--color-bg);
  border-radius: 24px;
  box-shadow: 0 3.356px 10.068px rgba(0, 0, 0, 0.06), 3.356px 3.356px 0 0 var(--color-main);
}
@media screen and (max-width: 599px) {
  .resolve__card {
    padding: 16px 8px;
    gap: 5px;
  }
}

.resolve__card-icon {
  flex-shrink: 0;
  width: 8.9rem;
  height: 8.9rem;
  object-fit: contain;
}
@media screen and (max-width: 599px) {
  .resolve__card-icon {
    width: 7.2rem;
    height: 7.2rem;
  }
}

.resolve__card-label {
  font-family: var(--font-maru);
  font-size: var(--font-size-lg);
  font-weight: 500;
  line-height: 1.5;
  color: var(--color-text);
  text-align: center;
}
@media screen and (max-width: 599px) {
  .resolve__card-label {
    font-size: 16px;
  }
}

.resolve__card-note {
  font-size: 1.5rem;
}
@media screen and (max-width: 599px) {
  .resolve__card-note {
    font-size: 3.0769230769vw;
  }
}

/* リード文（スラッシュ装飾つき）
*************************************************/
.resolve__lead {
  font-size: 2.2rem;
  font-weight: 500;
  line-height: normal;
  color: var(--color-text);
  text-align: center;
}
@media screen and (max-width: 1024px) {
  .resolve__lead {
    font-size: var(--font-size-lg);
  }
}
@media screen and (max-width: 599px) {
  .resolve__lead {
    font-size: var(--font-size-base);
  }
}

.resolve__lead-line {
  display: block;
}

.resolve__lead-line--slash {
  position: relative;
  display: inline-block;
}
.resolve__lead-line--slash::before, .resolve__lead-line--slash::after {
  position: absolute;
  top: 50%;
  width: 12px;
  height: 30px;
  content: "";
  background: url("../images/deco-slash-l.svg") no-repeat center/contain;
  transform: translateY(-50%);
}
.resolve__lead-line--slash::before {
  right: 100%;
  margin-right: 1.8rem;
}
.resolve__lead-line--slash::after {
  left: 100%;
  margin-left: 1.2rem;
  transform: translateY(-50%) scaleX(-1);
}
@media screen and (max-width: 599px) {
  .resolve__lead-line--slash::before, .resolve__lead-line--slash::after {
    width: 9px;
    height: 22px;
  }
  .resolve__lead-line--slash::before {
    margin-right: 0.8rem;
  }
  .resolve__lead-line--slash::after {
    margin-left: 0.8rem;
  }
}

.resolve__lead-em {
  font-size: 2.6rem;
  font-weight: 700;
  color: var(--color-main);
}
@media screen and (max-width: 1024px) {
  .resolve__lead-em {
    font-size: 2.2rem;
  }
}
@media screen and (max-width: 599px) {
  .resolve__lead-em {
    font-size: var(--font-size-md);
  }
}

/* 家のメッセージパネル
*************************************************/
.resolve__house {
  position: relative;
  width: 90rem;
  max-width: 100%;
  aspect-ratio: 900/288;
}
@media screen and (max-width: 599px) {
  .resolve__house {
    width: 92.3076923077vw;
    margin-inline: auto;
    aspect-ratio: 360/312.546;
    background: url("../images/house-panel-sp.svg") no-repeat center/100% 100%;
  }
}

.resolve__house-panel {
  position: absolute;
  top: 0.098%;
  left: 50%;
  width: 81.889%;
  height: auto;
  transform: translateX(-50%);
}
@media screen and (max-width: 599px) {
  .resolve__house-panel {
    display: none;
  }
}

.resolve__house-furniture {
  position: absolute;
  height: auto;
}
@media screen and (max-width: 599px) {
  .resolve__house-furniture {
    top: auto;
    bottom: -1.2rem;
  }
}

.resolve__house-furniture--left {
  top: 77.876%;
  left: -0.607%;
  width: 17.732%;
}
@media screen and (max-width: 599px) {
  .resolve__house-furniture--left {
    top: auto;
    bottom: -0.6rem;
    left: -1.2rem;
    width: 20%;
  }
}

.resolve__house-furniture--right {
  top: 71.626%;
  right: 4.236%;
  width: 11.431%;
}
@media screen and (max-width: 599px) {
  .resolve__house-furniture--right {
    top: auto;
    right: -1.2rem;
    bottom: -2rem;
    width: 13%;
  }
}

.resolve__house-label {
  position: absolute;
  top: 25.305%;
  left: 50%;
  margin-block: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 41.444%;
  height: 18.403%;
  font-family: var(--font-maru);
  font-size: 2.6rem;
  font-weight: 700;
  line-height: 1.6;
  color: #fff;
  background-color: var(--color-yellow);
  border-radius: var(--radius-md);
  transform: translateX(-50%);
}
@media screen and (max-width: 1024px) {
  .resolve__house-label {
    font-size: 2.2rem;
  }
}
@media screen and (max-width: 599px) {
  .resolve__house-label {
    top: 23.68%;
    width: 80%;
    height: 12.8%;
    font-size: 5.1282051282vw;
    letter-spacing: 0.03em;
  }
}

.resolve__house-message {
  position: absolute;
  top: 50.305%;
  left: 50%;
  margin-block: 0;
  width: 53.333%;
  font-family: var(--font-maru);
  font-size: 2.2rem;
  font-weight: 700;
  line-height: 1.9;
  color: var(--color-text);
  text-align: center;
  transform: translateX(-50%);
}
@media screen and (max-width: 1024px) {
  .resolve__house-message {
    font-size: var(--font-size-lg);
  }
}
@media screen and (max-width: 599px) {
  .resolve__house-message {
    top: 41.79%;
    width: 84%;
    font-size: 5.1282051282vw;
    line-height: 1.8;
    letter-spacing: 0.03em;
  }
  .resolve__house-message > br {
    display: none;
  }
}

@media screen and (max-width: 599px) {
  .resolve__house-last {
    display: block;
    margin-top: 2.9743589744vw;
  }
}

.resolve__house-sub {
  font-size: var(--font-size-lg);
  color: var(--color-accent);
}
@media screen and (max-width: 1024px) {
  .resolve__house-sub {
    font-size: var(--font-size-md);
  }
}
@media screen and (max-width: 599px) {
  .resolve__house-sub {
    display: block;
    font-size: 4.1025641026vw;
    letter-spacing: 0.03em;
  }
}

.resolve__house-em {
  font-style: normal;
  color: var(--color-main);
}

/* CTA
*************************************************/
.resolve__cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.4794rem;
  width: 40.6507rem;
  max-width: 100%;
  height: 7.5226rem;
  font-family: var(--font-maru);
  font-size: 2.604rem;
  font-weight: 700;
  line-height: 1.5;
  color: #fff;
  text-align: center;
  text-decoration: none;
  background-color: var(--color-main);
  border-radius: 12px;
  box-shadow: 0 0 19.992px rgba(72, 58, 54, 0.09);
}
@media screen and (max-width: 599px) {
  .resolve__cta {
    gap: 1rem;
    height: 6.4rem;
    font-size: var(--font-size-lg);
  }
}

.resolve__cta-icon {
  flex-shrink: 0;
  width: 2.3898rem;
  height: 2.3898rem;
}
@media screen and (max-width: 599px) {
  .resolve__cta-icon {
    width: 2rem;
    height: 2rem;
  }
}

/* キャンペーンバナー（resolve・faq の2箇所で共通）
*************************************************/
.banner {
  display: block;
  width: 80rem;
  max-width: 100%;
  height: auto;
  margin-inline: auto;
}
@media screen and (max-width: 599px) {
  .banner {
    display: none;
  }
}

/*************************************************
追従バナー（SPのみ・画面下部に固定）
*************************************************/
@media screen and (max-width: 599px) {
  .has_floating_banner {
    padding-bottom: 20.5128205128vw;
  }
}

.floating-banner {
  display: none;
}
@media screen and (max-width: 599px) {
  .floating-banner {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: var(--z-overlay);
    display: block;
  }
}

.floating-banner__link {
  display: block;
}

.floating-banner__img {
  display: block;
  width: 100%;
  height: auto;
}

/*************************************************
advisor（04_アドバイザー紹介）
*************************************************/
.advisor {
  position: relative;
  padding: 14.15rem 0 12.9rem;
  background-color: var(--color-bg-peach);
}
@media screen and (max-width: 1024px) {
  .advisor {
    padding: 10rem 0 8rem;
  }
}
@media screen and (max-width: 599px) {
  .advisor {
    padding: 15.8974358974vw 0 16.6282051282vw;
  }
}

.advisor__wave {
  position: absolute;
  right: 0;
  left: 0;
  height: 6.37rem;
  pointer-events: none;
}

.advisor__wave--top {
  top: -1px;
  background: url("../images/wave-top.svg") no-repeat center/100% 100%;
}
@media screen and (max-width: 599px) {
  .advisor__wave--top {
    height: 21.7171794872vw;
    background-image: url("../images/wave-top-sp.svg");
  }
}

.advisor__wave--bottom {
  bottom: 0;
  background: url("../images/wave-bottom.svg") no-repeat center/100% 100%;
  transform: scaleY(-1);
}
@media screen and (max-width: 599px) {
  .advisor__wave--bottom {
    height: 12.3076923077vw;
    background-image: url("../images/wave-bottom-sp.svg");
    transform: none;
  }
}

.advisor__inner {
  position: relative;
  z-index: 1;
}
@media screen and (max-width: 599px) {
  .advisor__inner {
    width: 100%;
    padding-inline: 3.8461538462vw;
  }
}

/* 見出し
*************************************************/
.advisor__title {
  font-family: var(--font-maru);
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 1.5;
  color: var(--color-text);
  text-align: center;
}
@media screen and (max-width: 1024px) {
  .advisor__title {
    font-size: 2.6rem;
  }
}
@media screen and (max-width: 599px) {
  .advisor__title {
    margin-block: 0;
    font-size: 5.641025641vw;
    line-height: 1.25;
  }
}

@media screen and (max-width: 599px) {
  .advisor__title-row {
    display: block;
  }
}

.advisor__title-em {
  color: var(--color-main);
}
@media screen and (max-width: 599px) {
  .advisor__title-em {
    font-size: 6.1538461538vw;
  }
}

.advisor__title-lg {
  font-size: 4rem;
  color: var(--color-main);
}
@media screen and (max-width: 1024px) {
  .advisor__title-lg {
    font-size: 3.2rem;
  }
}
@media screen and (max-width: 599px) {
  .advisor__title-lg {
    font-size: 8.2051282051vw;
  }
}

.advisor__title-wave {
  position: relative;
}
.advisor__title-wave::after {
  position: absolute;
  top: 100%;
  right: 0;
  left: 0;
  height: 8px;
  margin-top: 1px;
  content: "";
  background: url("../images/wave-line-green.svg") repeat-x left bottom/283px 8px;
}
@media screen and (max-width: 599px) {
  .advisor__title-wave::after {
    height: 2.0512820513vw;
    margin-top: 0.8974358974vw;
    background-size: 58.4615384615vw 2.0512820513vw;
  }
}

/* 実績＋リード文＋イラスト
*************************************************/
.advisor__body {
  position: relative;
  width: 95rem;
  max-width: 100%;
  margin: 5.75rem auto 0;
}
@media screen and (max-width: 1024px) {
  .advisor__body {
    margin-top: 4.8rem;
  }
}
@media screen and (max-width: 599px) {
  .advisor__body {
    width: 100%;
    margin-top: 11.1538461538vw;
  }
}

.advisor__profile {
  padding-left: 3.8rem;
  min-height: 27.9rem;
}
@media screen and (max-width: 1024px) {
  .advisor__profile {
    padding-left: 0;
    padding-right: 30rem;
    min-height: 0;
  }
}
@media screen and (max-width: 599px) {
  .advisor__profile {
    padding-right: 0;
  }
}

.advisor__stats {
  display: flex;
  flex-wrap: wrap;
  gap: 1.4944rem;
  padding: 0;
  list-style: none;
}
@media screen and (max-width: 1024px) {
  .advisor__stats {
    justify-content: center;
  }
}
@media screen and (max-width: 599px) {
  .advisor__stats {
    flex-wrap: nowrap;
    gap: 2.5641025641vw;
    margin-block: 0;
  }
}

.advisor__stat {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 16.1882rem;
  height: 14.1514rem;
  font-family: var(--font-gothic);
  color: var(--color-gold-text);
}
.advisor__stat::before, .advisor__stat::after {
  position: absolute;
  top: 0;
  width: 39.99%;
  height: 100%;
  content: "";
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.advisor__stat::before {
  left: 0;
  background-image: url("../images/laurel-l.svg");
}
.advisor__stat::after {
  left: 60.01%;
  background-image: url("../images/laurel-r.svg");
}
@media screen and (max-width: 599px) {
  .advisor__stat {
    width: 27.7755641026vw;
    height: 24.2807179487vw;
  }
}

.advisor__stat-label {
  font-size: var(--font-size-lg);
  font-weight: 700;
  line-height: normal;
}
@media screen and (max-width: 599px) {
  .advisor__stat-label {
    font-size: 3.5897435897vw;
  }
}

.advisor__stat-value {
  display: flex;
  flex-direction: column;
  align-items: center;
  font-family: var(--font-maru);
  font-size: var(--font-size-lg);
  font-weight: 700;
  line-height: 1.2;
}
@media screen and (max-width: 599px) {
  .advisor__stat-value {
    font-size: 3.5897435897vw;
  }
}

.advisor__stat-num {
  font-family: var(--font-num);
  font-size: 4.2rem;
  font-weight: 700;
  line-height: normal;
}
@media screen and (max-width: 599px) {
  .advisor__stat-num {
    font-size: 7.1794871795vw;
  }
}

.advisor__lead {
  margin-top: 3rem;
  font-family: var(--font-maru);
  font-size: 2.2rem;
  font-weight: 700;
  line-height: 1.7;
  color: var(--color-text);
}
@media screen and (max-width: 1024px) {
  .advisor__lead {
    font-size: var(--font-size-lg);
    text-align: center;
  }
}
@media screen and (max-width: 599px) {
  .advisor__lead {
    position: relative;
    z-index: 1;
    width: 50.2564102564vw;
    margin-top: 7.2564102564vw;
    margin-bottom: 0;
    margin-left: 3.8461538462vw;
    font-size: 4.1025641026vw;
    text-align: left;
  }
}

.advisor__lead-em {
  font-style: normal;
  color: var(--color-main);
}

.advisor__illust {
  position: absolute;
  top: 0;
  right: 3.9rem;
  width: 29.727rem;
  height: auto;
}
@media screen and (max-width: 1024px) {
  .advisor__illust {
    right: 0;
  }
}
@media screen and (max-width: 599px) {
  .advisor__illust {
    top: 27.1794871795vw;
    right: 1.0256410256vw;
    width: 45.641025641vw;
  }
}

/* プレート＋チェックリストカード
*************************************************/
.advisor__panel {
  position: relative;
  z-index: 1;
  width: 95rem;
  max-width: 100%;
  margin: -4.8rem auto 0;
}
@media screen and (max-width: 1024px) {
  .advisor__panel {
    margin-top: 4rem;
  }
}
@media screen and (max-width: 599px) {
  .advisor__panel {
    width: 100%;
    margin-top: 4.358974359vw;
  }
}

.advisor__plate {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 35.3rem;
  max-width: 100%;
  padding: 0.8rem 2.8rem;
  margin-block: 0;
  margin-left: auto;
  font-weight: 700;
  font-size: var(--font-size-md);
  line-height: 1.7;
  color: #fff;
  background-color: var(--color-green);
  border-radius: 12px 12px 0 0;
}
@media screen and (max-width: 599px) {
  .advisor__plate {
    width: 52.3076923077vw;
    padding: 1.5384615385vw 4.1025641026vw;
    margin-right: auto;
    margin-left: 0;
    font-size: 3.3333333333vw;
    line-height: normal;
    border-radius: 8px 8px 0 0;
  }
}

.advisor__plate-name {
  margin-left: 0.4rem;
  font-size: 2.6rem;
  line-height: 32px;
}
@media screen and (max-width: 599px) {
  .advisor__plate-name {
    font-size: 4.8717948718vw;
    line-height: normal;
  }
}

.advisor__list {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  padding: 3.7rem 7.7rem 3.9rem;
  margin-block: 0;
  list-style: none;
  background-color: var(--color-bg);
  border-radius: var(--radius-lg) 8px var(--radius-lg) var(--radius-lg);
}
@media screen and (max-width: 1024px) {
  .advisor__list {
    padding: 3.2rem;
  }
}
@media screen and (max-width: 599px) {
  .advisor__list {
    gap: 1.8546153846vw;
    padding: 6.1817948718vw;
    border-radius: 0 12px 12px 12px;
  }
}

.advisor__item {
  display: flex;
  align-items: center;
  gap: 1.4rem;
}
@media screen and (max-width: 599px) {
  .advisor__item {
    align-items: flex-start;
    gap: 1.8543589744vw;
  }
}

.advisor__check {
  flex-shrink: 0;
  width: 2.9rem;
  height: 2.9rem;
}
@media screen and (max-width: 599px) {
  .advisor__check {
    width: 4.0182051282vw;
    height: 4.0182051282vw;
    margin-top: 1.3243589744vw;
  }
}

.advisor__item-text {
  font-size: var(--font-size-lg);
  font-weight: 500;
  line-height: 32px;
  color: var(--color-text);
}
@media screen and (max-width: 1024px) {
  .advisor__item-text {
    font-size: var(--font-size-base);
    line-height: 1.6;
  }
}
@media screen and (max-width: 599px) {
  .advisor__item-text {
    font-size: 4.1025641026vw;
    line-height: 1.6;
    letter-spacing: 0.03em;
  }
}

.advisor__mark {
  padding: 0.15rem 0.2rem;
  font-weight: 700;
  color: var(--color-text);
  background-color: var(--color-mark);
  border-radius: var(--radius-sm);
}

/*************************************************
photos（05_住まいの写真帯）
*************************************************/
.photos {
  padding: 4.1rem 0 7.8rem;
  overflow: hidden;
  background-color: var(--color-bg-light);
}
@media screen and (max-width: 1024px) {
  .photos {
    padding: 4.1rem var(--container-padding) 6.4rem;
  }
}
@media screen and (max-width: 599px) {
  .photos {
    padding: 3.2rem var(--container-padding) 4.8rem;
  }
}

.photos__list {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 4.5rem;
  width: 111.5rem;
  max-width: 100%;
  margin-inline: auto;
  padding: 0;
  list-style: none;
}
@media screen and (max-width: 1024px) {
  .photos__list {
    gap: 2.4rem;
  }
}
@media screen and (max-width: 599px) {
  .photos__list {
    flex-wrap: wrap;
    gap: 1.6rem;
  }
}

.photos__item {
  position: relative;
  flex: 0 1 23.1rem;
}
@media screen and (max-width: 599px) {
  .photos__item {
    flex: 0 1 calc(50% - 0.8rem);
  }
}

.photos__item--tall {
  flex-basis: 25.9rem;
  margin-top: 1.8rem;
}
@media screen and (max-width: 599px) {
  .photos__item--tall {
    flex-basis: calc(50% - 0.8rem);
    margin-top: 0;
  }
}

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

.photos__deco {
  position: absolute;
  height: auto;
}

.photos__deco--lamp {
  top: 75.3%;
  left: 86.17%;
  width: 22.33%;
}

.photos__deco--chair {
  top: 87.13%;
  left: -15.44%;
  width: 21.24%;
}

/*************************************************
faq（06_よくある相談例）
*************************************************/
.faq {
  padding: 6.4rem 0;
  background-color: var(--color-bg-sub);
}
@media screen and (max-width: 599px) {
  .faq {
    padding: 10.2564102564vw 0;
  }
}

@media screen and (max-width: 599px) {
  .faq__inner {
    width: 100%;
    padding-inline: 3.8461538462vw;
  }
}

/* 見出し
*************************************************/
.faq__title {
  font-family: var(--font-maru);
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 1.5;
  color: var(--color-text);
  text-align: center;
}
@media screen and (max-width: 1024px) {
  .faq__title {
    font-size: 2.6rem;
  }
}
@media screen and (max-width: 599px) {
  .faq__title {
    margin-block: 0;
    font-size: 5.641025641vw;
    line-height: 1.25;
  }
}

@media screen and (max-width: 599px) {
  .faq__title-row {
    display: block;
  }
}

@media screen and (max-width: 599px) {
  .faq__title-sm {
    font-size: 5.1282051282vw;
  }
}

.faq__title-lg {
  font-size: 4rem;
  color: var(--color-main);
}
@media screen and (max-width: 1024px) {
  .faq__title-lg {
    font-size: 3.2rem;
  }
}
@media screen and (max-width: 599px) {
  .faq__title-lg {
    font-size: 8.2051282051vw;
  }
}

.faq__title-wave {
  position: relative;
}
.faq__title-wave::after {
  position: absolute;
  top: 100%;
  right: 0;
  left: 0;
  height: 8px;
  content: "";
  background: url("../images/wave-line.svg") repeat-x left bottom/341px 8px;
}
@media screen and (max-width: 599px) {
  .faq__title-wave::after {
    left: 6.4102564103vw;
    height: 2.0512820513vw;
    background-image: url("../images/wave-line-sp.svg");
    background-size: 44.358974359vw 2.0512820513vw;
  }
}

/* 白カード
*************************************************/
.faq__card {
  margin-top: 3.5rem;
  padding: 4.6rem 10rem;
  background-color: var(--color-bg);
}
@media screen and (max-width: 1024px) {
  .faq__card {
    padding: 4rem;
  }
}
@media screen and (max-width: 599px) {
  .faq__card {
    margin-top: 8.9743589744vw;
    padding: 6.1538461538vw 4.1025641026vw;
  }
}

.faq__list {
  display: flex;
  flex-direction: column;
  gap: 3.2rem;
}
@media screen and (max-width: 599px) {
  .faq__list {
    gap: 0;
    margin-block: 0;
  }
}

/* Q＆A の1組
*************************************************/
.faq__row {
  display: flex;
  align-items: center;
  gap: 1.4rem;
  margin: 0;
}
@media screen and (max-width: 599px) {
  .faq__row {
    position: relative;
    gap: 2.0512820513vw;
  }
}

.faq__row--q {
  min-height: 11.9rem;
  padding-left: 0.3rem;
}
@media screen and (max-width: 599px) {
  .faq__row--q {
    min-height: 0;
    padding: 3.3333333333vw 0;
  }
}

.faq__row--a {
  justify-content: flex-end;
  min-height: 11.3rem;
}
@media screen and (max-width: 599px) {
  .faq__row--a {
    min-height: 0;
    padding: 1.5384615385vw 2.5641025641vw;
  }
}

.faq__avatar {
  flex-shrink: 0;
  width: 11.3rem;
  height: 11.3rem;
}
@media screen and (max-width: 599px) {
  .faq__avatar {
    width: 14.358974359vw;
    height: 14.358974359vw;
  }
}

.faq__badge {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 4.8rem;
  height: 4.8rem;
  font-family: var(--font-maru);
  font-size: 2.8rem;
  font-weight: 700;
  line-height: normal;
  border-radius: var(--radius-full);
}
@media screen and (max-width: 599px) {
  .faq__badge {
    position: absolute;
    top: calc(50% + 2.8205128205vw);
    z-index: 1;
    width: 6.1538461538vw;
    height: 6.1538461538vw;
    font-size: 3.9307692308vw;
  }
}

.faq__badge--q {
  color: #fff;
  background-color: var(--color-main);
}
@media screen and (max-width: 599px) {
  .faq__badge--q {
    left: 10vw;
  }
}

.faq__badge--a {
  color: var(--color-main);
  background-color: var(--color-bg);
  border: 1px solid var(--color-main);
}
@media screen and (max-width: 599px) {
  .faq__badge--a {
    right: 0.7692307692vw;
  }
}

.faq__bubble {
  display: flex;
  align-items: center;
  min-height: 8rem;
  padding: var(--space-md) 2.6rem;
  font-family: var(--font-maru);
  font-size: var(--font-size-md);
  line-height: 1.7;
  color: var(--color-text);
  white-space: nowrap;
  border-radius: 12px;
}
@media screen and (max-width: 1024px) {
  .faq__bubble {
    white-space: normal;
  }
}
@media screen and (max-width: 599px) {
  .faq__bubble {
    flex-shrink: 0;
    min-height: 0;
    margin-block: 0;
    font-size: 4.1025641026vw;
    border-radius: 8px;
  }
}

.faq__bubble--q {
  font-weight: 700;
  background-color: var(--color-bg-bubble);
}
@media screen and (max-width: 599px) {
  .faq__bubble--q {
    width: 61.5384615385vw;
    padding: 2.5641025641vw 4.1025641026vw;
    line-height: 1.5;
  }
}

.faq__bubble--a {
  font-weight: 500;
  background-color: var(--color-bg);
  border: 1.5px solid var(--color-main);
}
@media screen and (max-width: 599px) {
  .faq__bubble--a {
    width: 62.5641025641vw;
    padding: 4.8717948718vw 3.8461538462vw;
    line-height: 1.4375;
    border-width: 1px;
  }
}

.faq__banner {
  margin-top: 6.4rem;
}
@media screen and (max-width: 599px) {
  .faq__banner {
    margin-top: 4rem;
  }
}

.faq__note {
  margin-top: 4.8rem;
  font-size: var(--font-size-sm);
  font-weight: 500;
  line-height: normal;
  color: var(--color-text-note);
  text-align: center;
}
@media screen and (max-width: 599px) {
  .faq__note {
    margin-top: 6.1538461538vw;
    margin-bottom: 0;
    font-size: 3.0769230769vw;
  }
}

/*************************************************
contact（07_お申し込みフォーム）
*************************************************/
.contact {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-xl);
  padding: 6.4rem 12rem 10rem;
  background-color: var(--color-bg);
}
@media screen and (max-width: 1024px) {
  .contact {
    padding-inline: var(--container-padding);
  }
}
@media screen and (max-width: 599px) {
  .contact {
    gap: var(--space-lg);
    padding: 4rem 1.6rem 6.4rem;
  }
}

/* リード文
*************************************************/
.contact__lead {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-xl);
  width: 79.2rem;
  max-width: 100%;
}
@media screen and (max-width: 599px) {
  .contact__lead {
    gap: 2rem;
  }
}

.contact__lead-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-md);
}
@media screen and (max-width: 599px) {
  .contact__lead-head {
    gap: 1.2rem;
  }
}

.contact__title {
  font-family: var(--font-maru);
  font-size: var(--font-size-2xl);
  font-weight: 700;
  line-height: 1.5;
  color: var(--color-text);
  text-align: center;
}
@media screen and (max-width: 599px) {
  .contact__title {
    margin-block: 0;
    font-size: var(--font-size-xl);
  }
}

.contact__title-accent {
  color: var(--color-main);
}

.contact__catch {
  font-size: var(--font-size-md);
  font-weight: 700;
  line-height: 2;
  color: var(--color-text);
  text-align: center;
}
@media screen and (max-width: 599px) {
  .contact__catch {
    margin-block: 0;
    font-size: var(--font-size-base);
  }
}

.contact__catch-sub {
  color: var(--color-accent);
}

.contact__catch-em {
  font-style: normal;
  color: var(--color-main);
}

/* 1行目の波線下線（Figma書き出しSVG） */
.contact__catch-wave {
  position: relative;
}
.contact__catch-wave::after {
  content: "";
  position: absolute;
  top: 100%;
  right: 0;
  left: 0;
  height: 8px;
  margin-top: 1px;
  background: url("../images/wave-line.svg") repeat-x left bottom/341px 8px;
}

/* 案内・注意書き
*************************************************/
.contact__notes {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-lg);
  width: 100%;
}
@media screen and (max-width: 599px) {
  .contact__notes {
    gap: 1.2rem;
  }
}

.contact__desc {
  width: 74.4rem;
  max-width: 100%;
  padding: var(--space-md);
  font-weight: 500;
  line-height: 1.9;
  color: var(--color-text);
  text-align: center;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
}
@media screen and (max-width: 599px) {
  .contact__desc {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
    font-size: var(--font-size-sm);
    text-align: left;
  }
  .contact__desc > p {
    margin-block: 0;
  }
}

.contact__caution {
  width: 100%;
  padding: var(--space-md) var(--space-lg);
  font-weight: 700;
  line-height: 1.6;
  color: var(--color-note-text);
  background-color: var(--color-note-bg);
  border-radius: var(--radius-md);
}
@media screen and (max-width: 599px) {
  .contact__caution {
    padding: var(--space-md);
    margin-block: 0;
    font-size: var(--font-size-sm);
  }
}

/* フォーム
*************************************************/
.contact__form {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-md);
  width: 80rem;
  max-width: 100%;
  padding: 4.8rem 5.6rem;
  background-color: var(--color-bg-sub);
  border-radius: var(--radius-lg);
}
@media screen and (max-width: 599px) {
  .contact__form {
    padding: 3.2rem 1.6rem;
  }
}

.contact__field {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  width: 64rem;
  max-width: 100%;
}

.contact__field-head {
  display: flex;
  align-items: flex-start;
  gap: var(--space-md);
}

.contact__field-label {
  font-family: var(--font-maru);
  font-weight: 500;
  line-height: 1.7;
  color: var(--color-text);
}
@media screen and (max-width: 599px) {
  .contact__field-label {
    font-size: var(--font-size-sm);
  }
}

.contact__required {
  flex-shrink: 0;
  padding: 2px var(--space-sm);
  font-family: var(--font-maru);
  font-size: var(--font-size-sm);
  font-weight: 500;
  line-height: normal;
  color: #fff;
  background-color: var(--color-main);
  border-radius: var(--radius-sm);
}
@media screen and (max-width: 599px) {
  .contact__required {
    font-size: var(--font-size-xs);
  }
}

.contact__input,
.contact__select {
  width: 100%;
  height: 5.5rem;
  padding-inline: 2rem;
  font-family: inherit;
  font-size: var(--font-size-base);
  line-height: 1.7;
  color: var(--color-text);
  background-color: var(--color-bg);
  border: 1.5px solid var(--color-form-border);
  border-radius: var(--radius-md);
  transition: border-color var(--transition);
}
.contact__input:focus-visible,
.contact__select:focus-visible {
  border-color: var(--color-main);
  outline: none;
}
@media screen and (max-width: 599px) {
  .contact__input,
  .contact__select {
    padding-inline: 1.6rem;
  }
}

.contact__input[type=date] {
  appearance: none;
  -webkit-appearance: none;
  min-width: 0;
  max-width: 100%;
}
.contact__input[type=date]::-webkit-date-and-time-value {
  margin: 0;
  text-align: left;
}

.contact__error {
  margin: 0;
  font-size: var(--font-size-sm);
  font-weight: 500;
  line-height: 1.6;
  color: var(--color-main);
}

.contact__input.is-error {
  border-color: var(--color-main);
}

.contact__select {
  appearance: none;
  padding-right: 4.4rem;
  cursor: pointer;
  background-image: url("../images/icon-select.svg");
  background-repeat: no-repeat;
  background-position: right 2rem center;
  background-size: 16px 16px;
}
@media screen and (max-width: 599px) {
  .contact__select {
    padding-right: 4rem;
    background-position: right 1.6rem center;
  }
}
.contact__select:invalid {
  color: var(--color-form-icon);
}
.contact__select option {
  color: var(--color-text);
}

/* ラジオボタン
*************************************************/
.contact__radios {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-md) 3.2rem;
  min-height: 4rem;
}

.contact__radio {
  display: flex;
  align-items: center;
  gap: 1rem;
  cursor: pointer;
}

.contact__radio-input {
  position: relative;
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  appearance: none;
  cursor: pointer;
  background-color: var(--color-bg);
  border: 1.5px solid var(--color-form-border);
  border-radius: var(--radius-full);
  transition: border-color var(--transition);
}
.contact__radio-input:checked {
  border-color: var(--color-main);
}
.contact__radio-input:checked::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1rem;
  height: 1rem;
  content: "";
  background-color: var(--color-main);
  border-radius: var(--radius-full);
  transform: translate(-50%, -50%);
}
.contact__radio-input:focus-visible {
  border-color: var(--color-main);
  outline: none;
}

.contact__radio-text {
  font-weight: 500;
  line-height: 1.7;
  color: var(--color-text);
}
@media screen and (max-width: 599px) {
  .contact__radio-text {
    font-size: var(--font-size-sm);
  }
}

/* 同意チェック
*************************************************/
.contact__agree {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding-top: var(--space-sm);
}

.contact__agree-check {
  position: relative;
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  appearance: none;
  cursor: pointer;
  background-color: var(--color-bg);
  border: 1.5px solid var(--color-form-border);
  border-radius: var(--radius-sm);
  transition: border-color var(--transition);
}
.contact__agree-check:checked::after {
  position: absolute;
  top: 0.1rem;
  left: 0.5rem;
  width: 0.6rem;
  height: 1.1rem;
  content: "";
  border-right: 2px solid var(--color-main);
  border-bottom: 2px solid var(--color-main);
  transform: rotate(45deg);
}
.contact__agree-check:focus-visible {
  border-color: var(--color-main);
  outline: none;
}

.contact__agree-label {
  font-weight: 500;
  line-height: 1.7;
  color: var(--color-text);
  cursor: pointer;
}
@media screen and (max-width: 599px) {
  .contact__agree-label {
    font-size: var(--font-size-sm);
  }
}

.contact__agree-link {
  text-decoration: underline;
  text-decoration-skip-ink: none;
  text-underline-position: from-font;
}

/* 送信ボタン
*************************************************/
.contact__submit {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30.5rem;
  max-width: 100%;
  height: 6.6rem;
  font-family: var(--font-maru);
  font-size: var(--font-size-md);
  font-weight: 700;
  line-height: 1.7;
  color: #fff;
  letter-spacing: 0.87px;
  cursor: pointer;
  background-color: var(--color-main);
  border: none;
  border-radius: var(--radius-md);
  box-shadow: 1.743px 1.743px 3.486px rgba(0, 0, 0, 0.25), 0 0 8.714px rgba(72, 58, 54, 0.06);
  transition: opacity var(--transition);
}
.contact__submit:hover {
  opacity: 0.75;
}

/*************************************************
thanks（サンクスページ）
*************************************************/
.thanks-page {
  background-color: var(--color-bg-sub);
}

.thanks {
  position: relative;
  padding: 4rem var(--container-padding) 28.1rem;
}
@media screen and (max-width: 1024px) {
  .thanks {
    padding-bottom: 24rem;
  }
}
@media screen and (max-width: 599px) {
  .thanks {
    padding-top: 3.2rem;
    padding-bottom: 20rem;
  }
}

.thanks__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* 見出し
*************************************************/
.thanks__label {
  font-family: var(--font-maru);
  font-size: 4.8rem;
  font-weight: 700;
  line-height: normal;
  color: var(--color-main);
}
@media screen and (max-width: 599px) {
  .thanks__label {
    font-size: 3.6rem;
  }
}

.thanks__headings {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  margin-top: 4.7rem;
}
@media screen and (max-width: 599px) {
  .thanks__headings {
    gap: var(--space-sm);
    margin-top: 3.2rem;
  }
}

.thanks__title,
.thanks__subtitle {
  font-family: var(--font-maru);
  font-size: var(--font-size-xl);
  font-weight: 700;
  line-height: 1.8;
  color: var(--color-text);
  text-align: center;
  letter-spacing: 0.48px;
}
@media screen and (max-width: 599px) {
  .thanks__title,
  .thanks__subtitle {
    font-size: var(--font-size-base);
  }
}

/* 本文
*************************************************/
.thanks__body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
  margin-top: 3rem;
}
@media screen and (max-width: 599px) {
  .thanks__body {
    margin-top: 2.4rem;
  }
}

.thanks__text {
  max-width: var(--container-sm);
  font-family: var(--font-maru);
  font-size: var(--font-size-md);
  font-weight: 500;
  line-height: 1.667;
  color: var(--color-text);
  text-align: center;
  letter-spacing: 0.36px;
}
@media screen and (max-width: 599px) {
  .thanks__text {
    font-size: var(--font-size-sm);
  }
  .thanks__text br {
    display: none;
  }
}

.thanks__text--narrow {
  max-width: 70.3rem;
}

/* トップページへ戻る
*************************************************/
.thanks__button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 33rem;
  max-width: 100%;
  height: 6rem;
  margin-top: 5rem;
  font-family: var(--font-maru);
  font-size: var(--font-size-md);
  font-weight: 700;
  line-height: 1.5;
  color: #fff;
  text-align: center;
  text-decoration: none;
  background-color: var(--color-main);
  border-radius: 12px;
  box-shadow: 0 0 19.992px rgba(72, 58, 54, 0.09);
}
@media screen and (max-width: 599px) {
  .thanks__button {
    margin-top: 4rem;
  }
}

/* 装飾イラスト
*************************************************/
.thanks__illust {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 56.5rem;
  max-width: 100%;
  height: auto;
}

/*************************************************
確認画面・入力エラー画面（mail.php が出力するHTML用）
  mail.php 側のマークアップは変更できないため、
  #formWrap 配下を要素セレクタで指定している。
  #formWrap は index.html には存在しないので他ページには影響しない。
*************************************************/
#formWrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-lg);
  min-height: 100dvh;
  padding: 8rem var(--container-padding) 6.4rem;
  background-color: var(--color-bg-sub);
}
@media screen and (max-width: 599px) {
  #formWrap {
    gap: var(--space-md);
    padding: 4.8rem var(--container-padding);
  }
}
#formWrap h3 {
  margin: 0;
  font-family: var(--font-maru);
  font-size: 2.8rem;
  font-weight: 700;
  line-height: 1.5;
  color: var(--color-main);
  text-align: center;
}
@media screen and (max-width: 599px) {
  #formWrap h3 {
    font-size: var(--font-size-xl);
  }
}
#formWrap > p {
  margin: 0;
  font-size: var(--font-size-base);
  line-height: 1.8;
  color: var(--color-text);
  text-align: center;
}
@media screen and (max-width: 599px) {
  #formWrap > p {
    font-size: var(--font-size-sm);
  }
}

/* 入力内容の一覧
*************************************************/
#formWrap form {
  width: 80rem;
  max-width: 100%;
  padding: 4.8rem 5.6rem;
  background-color: var(--color-bg);
  border-radius: var(--radius-lg);
}
@media screen and (max-width: 599px) {
  #formWrap form {
    padding: 2.4rem 2rem;
  }
}

.formTable {
  width: 100%;
  border-collapse: collapse;
}
.formTable th,
.formTable td {
  padding: 1.6rem 0;
  font-size: var(--font-size-base);
  line-height: 1.8;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid var(--color-form-border);
}
@media screen and (max-width: 599px) {
  .formTable th,
  .formTable td {
    font-size: var(--font-size-sm);
  }
}
.formTable th {
  width: 24rem;
  padding-right: var(--space-md);
  font-family: var(--font-maru);
  font-weight: 500;
  color: var(--color-text-sub);
  white-space: nowrap;
}
.formTable td {
  font-weight: 500;
  color: var(--color-text);
  word-break: break-word;
}
.formTable tr:last-child th,
.formTable tr:last-child td {
  border-bottom: none;
}
@media screen and (max-width: 599px) {
  .formTable th,
  .formTable td {
    display: block;
    width: auto;
    white-space: normal;
  }
  .formTable th {
    padding: 1.6rem 0 0;
    font-size: var(--font-size-xs);
    border-bottom: none;
  }
  .formTable td {
    padding-top: 0.4rem;
  }
}

/* Turnstile（スパム対策の認証ウィジェット）
*************************************************/
.turnstileWrap {
  display: flex;
  justify-content: center;
  margin-top: 4rem;
}
@media screen and (max-width: 599px) {
  .turnstileWrap {
    margin-top: 3.2rem;
  }
}

#formWrap .turnstileWrap + p {
  margin-top: var(--space-lg);
}
@media screen and (max-width: 599px) {
  #formWrap .turnstileWrap + p {
    margin-top: var(--space-md);
  }
}

/* ボタン（form内・エラー画面内のどちらにも効かせる）
*************************************************/
#formWrap form > p,
.error-container > p:last-child {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-md);
  justify-content: center;
  margin: 4rem 0 0;
}
@media screen and (max-width: 599px) {
  #formWrap form > p,
  .error-container > p:last-child {
    gap: var(--space-sm);
    margin-top: 3.2rem;
  }
}

#formWrap input[type=submit],
#formWrap input[type=button] {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30.5rem;
  max-width: 100%;
  height: 6.6rem;
  font-family: var(--font-maru);
  font-size: var(--font-size-md);
  font-weight: 700;
  line-height: 1.7;
  cursor: pointer;
  border-radius: var(--radius-md);
  transition: opacity var(--transition);
}
#formWrap input[type=submit]:hover,
#formWrap input[type=button]:hover {
  opacity: 0.75;
}
@media screen and (max-width: 599px) {
  #formWrap input[type=submit],
  #formWrap input[type=button] {
    width: 100%;
    height: 5.6rem;
    font-size: var(--font-size-base);
  }
}

#formWrap .confirmbtn {
  color: #fff;
  background-color: var(--color-main);
  border: none;
  box-shadow: 1.743px 1.743px 3.486px rgba(0, 0, 0, 0.25), 0 0 8.714px rgba(72, 58, 54, 0.06);
}

#formWrap input[type=button] {
  color: var(--color-main);
  background-color: var(--color-bg);
  border: 1.5px solid var(--color-main);
}

/* 入力エラー
*************************************************/
.error-container {
  width: 80rem;
  max-width: 100%;
  padding: 4rem 5.6rem;
  background-color: var(--color-bg);
  border-radius: var(--radius-lg);
}
@media screen and (max-width: 599px) {
  .error-container {
    padding: 2.4rem 2rem;
  }
}
.error-container > p:first-child {
  margin: 0 0 var(--space-md);
  font-size: var(--font-size-base);
  line-height: 1.8;
  color: var(--color-text);
}
@media screen and (max-width: 599px) {
  .error-container > p:first-child {
    font-size: var(--font-size-sm);
  }
}

.error_messe {
  margin: 0;
  padding: 1.2rem var(--space-md);
  font-size: var(--font-size-base);
  font-weight: 500;
  line-height: 1.7;
  color: var(--color-main);
  background-color: var(--color-mark);
  border-radius: var(--radius-sm);
}
.error_messe + .error_messe {
  margin-top: var(--space-sm);
}
@media screen and (max-width: 599px) {
  .error_messe {
    font-size: var(--font-size-sm);
  }
}

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