@charset "UTF-8";
/*====================================================
////アニメーション設定
====================================================*/
/*====================================================
////common
====================================================*/
/* ---------- 基本設定 ----------*/
body {
  overflow-x: hidden;
  font-family: var(--font-family);
  font-size: 1.6rem;
  font-size: 1.6rem;
  font-weight: var(--regular);
  font-style: normal;
  line-height: 1;
  text-align: left;
  word-wrap: break-word;
  overflow-wrap: break-word;
  color: var(--txt);
  background: var(--white);
  animation: is-fadeIn ease .5s;
  font-optical-sizing: auto;
  line-break: strict;
}
.main {
  width: 100%;
}
.contents {
  transition: .5s;
}
/* .inner_xxx
 * 規則: N = max-width(外側). padding 0 3.5rem (=70px) を共通付与.
 *       実コンテンツ幅 = N - 70px (FV の inner_w1280 のみ padding なし特例)
 *  - inner_w1280: FV                       (Figma コンテンツ 1280px・padding なし)
 *  - inner_w1200: 一般セクション           (Figma コンテンツ 1130px)
 *  - inner_w1085: sec07 voice              (Figma コンテンツ 1015px)
 *  - inner_w1018: sec05                    (Figma コンテンツ  948px)
 *  - inner_w774 : sec08/breadcrumb/footer/cta-section (Figma コンテンツ 704px)
 */
.inner_w1280 {
  position: relative;
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 3.5rem;
  transition: .5s;
}
.inner_w1200 {
  position: relative;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 3.5rem;
  transition: .5s;
}
.inner_w1085 {
  position: relative;
  width: 100%;
  max-width: 1085px;
  margin: 0 auto;
  padding: 0 3.5rem;
  transition: .5s;
}
.inner_w1018 {
  position: relative;
  width: 100%;
  max-width: 1018px;
  margin: 0 auto;
  padding: 0 3.5rem;
  transition: .5s;
}
.inner_w774 {
  position: relative;
  width: 100%;
  max-width: 774px;
  margin: 0 auto;
  padding: 0 3.5rem;
  transition: .5s;
}
@media screen and (max-width: 767px) {
  .inner_w1280,
  .inner_w1200,
  .inner_w1085,
  .inner_w1018,
  .inner_w774 {
    max-width: 88%;
    padding: 0;
  }
}
section {
  margin: 0 auto;
}
sup {
  top: .1rem;
  font-size: 60%;
  vertical-align: super;
}
img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
  object-fit: contain;
}
a {
  text-decoration: none;
  word-break: break-word;
  color: var(--txt);
  transition: all .3s ease;
}
@media screen and (min-width: 768px) {
  a:hover {
    opacity: .6;
    filter: alpha(opacity=60);
  }
  a[href^="tel:"] {
    pointer-events: none;
  }
}
/* --------------------------------
.pc-only / .sp-only
------------------------------------- */
.pc-only {
  display: block;
}
.sp-only {
  display: none;
}
span.pc-only {
  display: inline;
}
@media screen and (max-width: 767px) {
  .pc-only {
    display: none;
  }
  .sp-only {
    display: block;
  }
  span.pc-only {
    display: none;
  }
}
/*-------------------------------------------------------------

////リキッドレイアウト

-------------------------------------------------------------*/
/* ルートフォントサイズを10pxに設定*/
html {
  font-size: 62.5%;
}
/* 767px以下 */
@media screen and (max-width: 767px) {
  html {
    font-size: min(2.6666666667vw, 12px);
  }
}
/* 768px以上～インナー幅未満 */
@media screen and (min-width: 768px) and (max-width: 1150px) {
  html {
    font-size: .8695652174vw;
  }
}
/*-------------------------------------------------------------

////共通設定

-------------------------------------------------------------*/
/*カラー変数*/
:root {
    /* font-family */
  --font-family: 'Noto Sans JP', 'ヒラギノ角ゴシック Pro', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, Osaka, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
  --font-roboto: 'Roboto', sans-serif;
  --red: #B80018;
  --white: #fff;
  --black: #000;
  --txt: var(--black);
    /* font-weight */
  --normal: 400;
  --regular: 400;
  --medium: 500;
  --semibold: 600;
  --bold: 700;
}
/*-------------------------------------------------------------

////共通クラス

-------------------------------------------------------------*/
/*====================================================
////class .sa (スクロールアニメーション用)
====================================================*/
.sa {
  opacity: 0;
  transition: all .8s ease;
}
.sa.show {
  opacity: 1;
  transform: none;
}
.sa-left {
  transform: translate(-5rem, 0);
}
.sa-right {
  transform: translate(5rem, 0);
}
.sa-up {
  transform: translate(0, 5rem);
}
.sa-down {
  transform: translate(0, -5rem);
}
.sa-scaleUp {
  transform: scale(.7);
}
.sa-scaleDown {
  transform: scale(1.5);
}
.sa-rotateL {
  transform: rotate(180deg);
}
.sa-rotateR {
  transform: rotate(-180deg);
}
.delay-01 {
  transition-delay: .1s;
}
.delay-02 {
  transition-delay: .2s;
}
.delay-03 {
  transition-delay: .3s;
}
.delay-04 {
  transition-delay: .4s;
}
.delay-05 {
  transition-delay: .5s;
}
.delay-06 {
  transition-delay: .6s;
}
.delay-07 {
  transition-delay: .7s;
}
.delay-08 {
  transition-delay: .8s;
}
.delay-09 {
  transition-delay: .9s;
}
/* -----------------------------------------
- animation
----------------------------------------- */
.is-fadeIn.active {
  animation: is-fadeIn .8s ease .1s 1 normal forwards;
}
@keyframes is-fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.is-fadeUp {
  opacity: 0;
}
.is-fadeUp.active {
  animation: is-fadeUp .8s ease .1s 1 normal forwards;
}
.is-fadeUp.active+:nth-child(2) {
  animation: is-fadeUp .8s ease .5s 1 normal forwards;
}
.is-fadeUp.active+:nth-child(3) {
  animation: is-fadeUp .8s ease .7s 1 normal forwards;
}
@keyframes is-fadeUp {
  0% {
    opacity: 0;
    transform: translate(0, 5rem);
  }
  100% {
    opacity: 1;
    transform: translate(0, 0);
  }
}
/*-------------------------------------------------------------

////ヘッダー

-------------------------------------------------------------*/
/*====================================================
////class .header
====================================================*/
.header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
  width: 100%;
  height: 7rem;
  background: var(--white);
  border-bottom: .1rem solid #ccc;
  transition: .3s;
}
.header.bg {
  box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .1);
}
.header__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  max-width: 120rem;
  height: inherit;
  margin: 0 auto;
  padding-right: 3.5rem;
  padding-left: 3.5rem;
}
.header__logos {
  display: flex;
  flex-direction: row;
  align-items: center;
  margin-right: .5rem;
  gap: 1.5rem;
}
.header__jhs-logo img {
  display: block;
  width: auto;
  height: 4rem;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .header {
    height: max(7rem, 64px);
  }
  .header__jhs-logo img {
    height: 4rem;
  }
}
@media screen and (max-width: 767px) {
  .header__inner {
    padding-right: 0;
    padding-left: 1rem;
  }
  .header__logos {
    gap: 1rem;
  }
  .header__jhs-logo img {
    height: 3rem;
  }
}
/*====================================================
////class .pc-nav
====================================================*/
.pc-nav {
  height: 7rem;
}
.pc-nav__inner {
  display: flex;
  align-items: center;
  height: inherit;
}
.pc-nav__list {
  display: flex;
  height: inherit;
}
.pc-nav__item {
  height: inherit;
}
.pc-nav__item a {
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: inherit;
  padding: 0 1.4rem;
  font-size: 1.4rem;
  font-weight: 400;
  white-space: nowrap;
  color: var(--text-sub);
}
/* 2番目以降の li: 縦線セパレータ */
.pc-nav__item + .pc-nav__item {
  position: relative;
}
.pc-nav__item + .pc-nav__item::before {
  position: absolute;
  top: 50%;
  left: 0;
  width: .1rem;
  height: 1.6rem;
  background: #ccc;
  transform: translateY(-50%);
  content: '';
}
.pc-nav__cta,
.pc-nav__dl {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 3.4rem;
  margin-left: 1rem;
  padding: 0 1.6rem;
  font-size: 1.4rem;
  font-weight: 700;
  white-space: nowrap;
  border-radius: .4rem;
  transition: opacity .2s;
}
.pc-nav__cta {
  margin-left: .5rem;
  color: var(--white);
  background: var(--red);
  border: none;
}
.pc-nav__dl {
  color: var(--red);
  background: var(--white);
  border: .1rem solid var(--red);
}
@media screen and (min-width: 768px) {
  .pc-nav__item a:hover {
    color: var(--red);
    opacity: 1;
  }
}
@media screen and (max-width: 767px) {
  .pc-nav {
    display: none;
  }
}
/*====================================================
////class .sp-nav
====================================================*/
.sp-nav {
  position: fixed;
  top: 7rem;
  right: -29.5rem;
  z-index: 100;
  width: 29.5rem;
  background: var(--black);
  transition: all .3s ease;
}
.sp-nav.open {
  right: 0;
}
.sp-nav__inner {
  padding: 3rem 2rem;
}
.sp-nav__title {
  margin-bottom: 2.5rem;
  font-size: 1.8rem;
  font-weight: 900;
  text-align: left;
  color: var(--white);
}
.sp-nav__title a {
  color: var(--white);
}
.sp-nav__list {
  width: 100%;
  margin-bottom: 3rem;
  border-top: 1px solid #333;
  border-bottom: 1px solid #333;
}
.sp-nav__item + .sp-nav__item {
  border-top: 1px solid #333;
}
.sp-nav__item a {
  display: block;
  padding: 1.6rem 0;
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--white);
}
.sp-nav__btnlist {
  display: flex;
  flex-direction: column;
  gap: 2rem 0;
  margin-top: 2rem;
}
.sp-nav__btnlist .p-btn {
  width: 100%;
  height: 5rem;
  margin-bottom: 0;
  font-size: 1.5rem;
  font-weight: 700;
  border-radius: .4rem;
  box-shadow: none;
}
.sp-nav__btnlist .p-btn.-red {
  color: var(--white);
  background: var(--red);
  border: none;
}
.sp-nav__btnlist .p-btn.-outline {
  color: var(--red);
  background: var(--white);
  border: .1rem solid var(--red);
}
.sp-nav__btnlist .p-btn::after {
  display: none;
}
/*====================================================
////class .hamburger
====================================================*/
.hamburger {
  position: relative;
  top: auto;
  right: auto;
  z-index: 1000;
  display: flex;
  flex-shrink: 0;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  align-self: stretch;
  gap: .6rem;
  width: 7rem;
  height: 7rem;
  padding: 1.68rem 0 1.28rem;
  text-align: center;
  background: var(--black);
  transition: all .5s ease;
  cursor: pointer;
}
.hamburger span:nth-of-type(1),
.hamburger span:nth-of-type(2),
.hamburger span:nth-of-type(3) {
  position: relative;
  top: auto;
  left: auto;
  display: inline-block;
  width: 3.1rem;
  height: .42rem;
  background: var(--white);
  border-radius: .4rem;
  transition: all .5s ease;
}
.hamburger span.hamburger__txt {
  width: auto;
  height: auto;
  font-family: 'Roboto', sans-serif;
  font-size: 1.1rem;
  font-weight: 400;
  line-height: 1;
  letter-spacing: .05em;
  color: var(--white);
  background: transparent;
}
.hamburger.open span:nth-of-type(1) {
  transform: translateY(.98rem) rotate(-45deg);
}
.hamburger.open span:nth-of-type(2) {
  opacity: 0;
}
.hamburger.open span:nth-of-type(3) {
  transform: translateY(-.98rem) rotate(45deg);
}
@media screen and (min-width: 768px) {
  .hamburger {
    display: none;
  }
}
/*-------------------------------------------------------------

//// 共通スタイル

-------------------------------------------------------------*/
/*====================================================
////class .sec / .p-btn / .l-flex
====================================================*/
.sec {
  overflow: hidden;
  padding: 8rem 0 7rem;
}
.problem-item__txt,
.feature-card__txt,
.flow-step__txt,
.merit-card__txt,
.usage-step__txt {
  font-size: 1.6rem;
  font-weight: var(--regular);
  line-height: 2.8rem;
  text-align: left;
}
.p-btn {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 36rem;
  height: 7rem;
  margin-bottom: 1rem;
  font-size: 2rem;
  font-weight: 900;
  line-height: 2.9rem;
  text-align: center;
  border-radius: 3.5rem;
}
.p-btn.-outline {
  color: var(--text-sub);
  background: var(--white);
  border: .2rem solid #999;
  box-shadow: none;
}
.p-btn.-gray {
  color: var(--white);
  background: #888;
  border: .2rem solid #666;
  box-shadow: none;
}
.l-flex {
  display: flex;
}
@media screen and (max-width: 767px) {
  .sec {
    padding: 4rem 0;
  }
  .problem-item__txt,
  .feature-card__txt,
  .flow-step__txt,
  .merit-card__txt,
  .usage-step__txt {
    font-size: 1.4rem;
    line-height: 2.4rem;
  }
  .p-btn {
    width: 29.5rem;
    height: 6.4rem;
    margin-bottom: 1rem;
    font-size: 1.64rem;
    line-height: 2rem;
    border-radius: 3.2rem;
  }
}
/*====================================================
//// リノベナビ LP カラー変数
====================================================*/
:root {
  /* ブランドカラー */
  --dark-brown: #3E1D0D;
  --gold:       #9E6E36;
  /* 背景・ベージュ系 */
  --beige-light: #FFF8E9;  /* FV背景・voice-card */
  --beige:      #F9F4EC;   /* sec04・optional-card右・FAQhover */
  --bg-gray:    #F5F5F5;   /* sec02・sec06・sec08背景 */
  /* ボーダー */
  --border:     #B8A48D;   /* FAQアイテム枠線 */
  --border-accent:  #FFEBC0;   /* AIエンジンカード枠線 */
  /* テキスト */
  --heading:    #000000;   /* 大タイトル・見出し */
  --text-sub:        #555555;   /* メインテキスト */
  /* UI */
  --faq-q-bg:   #F8FAFC;   /* FAQの質問行背景 */
}
/*====================================================
//// 共通見出し / ラベル / リード文
====================================================*/
.sec-head__badge {
  display: block;
  margin-bottom: 1rem;
  font-family: var(--font-roboto);
  font-size: 2.6rem;
  font-weight: 900;
  letter-spacing: .2em;
  text-align: center;
  color: var(--gold);
}
.sec-head__title {
  margin-bottom: 3.2rem;
  font-size: 3.6rem;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  color: var(--heading);
}
.sec-head__deco {
  width: 5.6rem;
  height: .8rem;
  margin: 0 auto 3rem;
  background: var(--gold);
}
.sec-head__desc {
  margin-bottom: 6rem;
  font-size: 1.6rem;
  line-height: 3.2rem;
  text-align: center;
  color: var(--text-sub);
}
@media screen and (max-width: 767px) {
  .sec-head__badge {
    font-size: 1.8rem;
    line-height: 1.5;
  }
  .sec-head__title {
    font-size: 2.2rem;
  }
  .sec-head__desc {
    font-size: 1.4rem;
    line-height: 1.5;
  }
  .sec-head__deco {
    width: 2.8rem;
    height: .4rem;
    margin-bottom: 3.2rem;
  }
}
/*====================================================
//// FV
====================================================*/
.sec.fv {
  overflow: hidden;
  padding: 11rem 0 4rem;
  background-color: var(--beige-light);
  background-image:
    url(../img/fv_bg_top.png),
    url(../img/fv_bg_bottom.png);
  background-repeat: no-repeat, no-repeat;
  background-position: center -.5em, center 130%;
  background-size: 100% auto, 100% auto;
}
.fv__inner {
  display: flex;
  align-items: center;
  gap: 0 1.6rem;
}
.fv__left {
  flex: 0 0 50%;
  max-width: 62rem;
}
.fv__logo {
  width: 53.7rem;
  max-width: 100%;
  margin-bottom: 2rem;
}
.fv__logo img {
  display: block;
  width: 100%;
  height: auto;
}
.fv__subtitle {
  display: inline-block;
  margin-bottom: 1.6rem;
  font-size: 3rem;
  font-weight: 900;
  line-height: 1.4;
  color: var(--gold);
}
.fv__title {
  margin-bottom: 3rem;
  font-size: 6rem;
  font-weight: 900;
  line-height: 1.333;
  white-space: nowrap;
  color: var(--heading);
}
.fv__title .em {
  font-style: normal;
  color: var(--gold);
}
.fv__title sup {
  top: -1.4rem;
  font-size: 1.6rem;
}
.fv__lead {
  margin-bottom: 4rem;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 3.2rem;
  color: var(--text-sub);
}
.fv__btnlist {
  display: flex;
  gap: 0 2rem;
}
.fv__btnlist .p-btn {
  width: auto;
  min-width: 26.5rem;
  height: 6.4rem;
  margin-bottom: 0;
  padding: 0 2rem;
  font-size: 1.8rem;
  font-weight: 700;
  border-radius: 11.8rem;
}
.fv__btnlist .p-btn.-red {
  color: var(--white);
  background: var(--red);
  border: .2rem solid var(--red);
  box-shadow: none;
}
.fv__btnlist .p-btn.-outline {
  color: var(--red);
  background: var(--white);
  border: .2rem solid var(--red);
  box-shadow: none;
}
.fv__right {
  display: flex;
  flex: 0 0 64.2rem;
  flex-direction: column;
  align-items: center;
  gap: 3rem 0;
}
.fv__badge {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 64.2rem;
}
.fv__badge__inner {
  display: flex;
  justify-content: center;
  align-items: center;
  align-self: stretch;
  gap: 0 1.3rem;
  height: 6rem;
  padding: 0 2.8rem;
  font-size: 2.5rem;
  font-weight: 700;
  white-space: nowrap;
  color: var(--white);
  background: var(--dark-brown);
  border-radius: 3rem;
}
.fv__badge__inner .badge__ico {
  width: 2.8rem;
}
.fv__badge::after {
  width: 0;
  height: 0;
  margin-top: -1.35rem;
  border-top: 2.7rem solid var(--dark-brown);
  border-right: 1.6rem solid transparent;
  border-left: 1.6rem solid transparent;
  content: '';
}
.fv__img {
  width: 60rem;
  height: 34.7rem;
}
.fv__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.fv__points {
  display: flex;
  align-items: center;
  gap: 0 1rem;
}
.fv__point-item {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: .2rem;
  width: 18.5rem;
  height: 18.5rem;
  padding: 1.5rem;
  text-align: center;
  background: var(--white);
  border: .2rem solid var(--gold);
  border-radius: 50%;
}
.fv__point-item .point__label {
  font-family: var(--font-roboto);
  font-size: 2.6rem;
  font-weight: 900;
  line-height: 1.5;
  color: var(--gold);
}
.fv__point-item .point__divider {
  width: 2rem;
  height: .4rem;
  margin: .4rem auto;
  background: var(--gold);
}
.fv__point-item .point__txt {
  font-size: 2.4rem;
  font-weight: 600;
  line-height: 1.5;
  color: var(--gold);
}
.fv__times,
.fv__eq {
  font-size: 2.4rem;
  font-weight: 600;
  color: var(--gold);
}
.fv__point-result {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 18.5rem;
  height: 18.5rem;
  padding: 1.4rem;
  text-align: center;
  background: var(--gold);
  border-radius: 50%;
}
.fv__point-result .point__txt {
  font-size: 2.4rem;
  font-weight: 600;
  line-height: 1.5;
  color: var(--white);
}
.fv__point-result .point__sub {
  font-size: 1.8rem;
}
.fv__note {
  align-self: center;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.72;
  text-align: left;
  color: var(--text-sub);
}
.fv__note span {
  display: block;
  padding-left: 2.06em;
  text-indent: -2.06em;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .fv__inner {
    gap: 0 2rem;
  }
  .fv__lead {
    font-size: 1.4rem;
  }
  .fv__right {
    flex: 1 1 0;
    width: auto;
    min-width: 0;
  }
  .fv__badge {
    width: 100%;
  }
  .fv__badge__inner {
    gap: 0 .8rem;
    padding: 0 1.8rem;
    font-size: 1.8rem;
  }
  .fv__badge__inner .badge__ico {
    width: 2.2rem;
  }
  .fv__img {
    width: 100%;
    height: auto;
    aspect-ratio: 600 / 347;
  }
  .fv__points {
    justify-content: center;
    gap: 0 .5rem;
  }
  .fv__point-item,
  .fv__point-result {
    width: 14rem;
    height: 14rem;
    padding: 1rem;
  }
  .fv__point-item .point__label {
    font-size: 2rem;
  }
  .fv__point-item .point__txt,
  .fv__point-result .point__txt {
    font-size: 1.8rem;
  }
  .fv__point-result .point__sub {
    font-size: 1.4rem;
  }
  .fv__times,
  .fv__eq {
    font-size: 1.8rem;
  }
}
@media screen and (max-width: 767px) {
  .sec.fv {
    padding: 10rem 0 7rem;
    background-image:
      url(../img/fv_bg_sp01.png),
      url(../img/fv_bg_sp02.png);
    background-repeat: no-repeat;
    background-position: center 7rem, bottom center;
    background-size: 100% auto;
  }
  .fv__inner {
    flex-direction: column;
    gap: 1.5rem 0;
  }
  .fv__left,
  .fv__right {
    display: contents;
  }
  .fv__logo {
    margin-bottom: 0;
  }
  .fv__subtitle {
    margin-bottom: 0;
    font-size: 1.8rem;
    line-height: 2.26;
  }
  .fv__title {
    margin-bottom: 0;
    margin-left: .4em;
    font-size: 3.4rem;
    line-height: 4.4rem;
    text-align: center;
  }
  .fv__title sup {
    top: -.6rem;
    font-size: 1.2rem;
  }
  .fv__lead {
    margin-bottom: 0;
    font-size: 1.4rem;
    line-height: 1.6;
    text-align: center;
  }
  .fv__btnlist {
    flex-direction: column;
    align-items: stretch;
    order: 1;
    gap: 2rem 0;
    width: 100%;
    margin-top: 2rem;
  }
  .fv__btnlist .p-btn {
    width: auto;
    min-width: unset;
    max-width: none;
    height: auto;
    padding: 1.9rem 4rem 2.1rem;
    font-size: 1.8rem;
  }
  /* badge: SP はピル形 */
  .fv__badge {
    width: 100%;
    margin-top: 1.5rem;
  }
  .fv__badge__inner {
    gap: 0 .7rem;
    height: 3rem;
    padding: 0 1.4rem;
    font-size: 1.26rem;
    white-space: nowrap;
    border-radius: 9999px;
  }
  .fv__badge__inner .badge__ico {
    width: 1.4rem;
  }
  .fv__badge::after {
    margin-top: -.7rem;
    border-top-width: 1.4rem;
    border-right-width: .8rem;
    border-left-width: .8rem;
  }
  .fv__img {
    width: 100%;
    max-width: 30.52rem;
    height: auto;
    aspect-ratio: 305 / 176;
    margin: 0 auto;
  }
  .fv__points {
    flex-wrap: nowrap;
    justify-content: center;
    gap: .6rem;
  }
  .fv__point-item {
    gap: .2rem;
    width: 9.4rem;
    height: 9.4rem;
    padding: .8rem;
    border-width: .1rem;
  }
  .fv__point-item .point__label {
    font-size: 1.3rem;
    line-height: 1.4;
  }
  .fv__point-item .point__divider {
    width: 1rem;
    height: .2rem;
    margin: .2rem auto;
  }
  .fv__point-item .point__txt {
    font-size: 1.2rem;
    line-height: 1.4;
  }
  .fv__times, .fv__eq {
    font-size: 1.22rem;
  }
  .fv__point-result {
    width: 9.4rem;
    min-width: unset;
    height: 9.4rem;
    padding: .8rem;
  }
  .fv__point-result .point__txt {
    font-size: 1.2rem;
    line-height: 1.4;
  }
  .fv__point-result .point__sub {
    display: block;
    margin-top: .3rem;
    font-size: .9rem;
    line-height: 1;
  }
}
/*====================================================
//// SECTION_01 実績 + 課題
====================================================*/
.sec.sec01 {
  padding: 0;
}
.stats-bar {
  display: flex;
  align-items: center;
  height: 15rem;
  background: var(--dark-brown);
  background-image: url(../img/sec01_bg.png);
  background-position: center;
  background-size: cover;
}
.stats-list {
  display: flex;
  justify-content: center;
  gap: 0 9rem;
}
.stats-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.2rem 0;
  text-align: center;
}
.stats-label {
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: .05em;
  color: var(--white);
}
.stats-value {
  font-family: var(--font-family);
  font-size: 3.6rem;
  font-weight: 900;
  line-height: 1.5;
  color: var(--white);
}
.stats-value sup {
  top: -.5rem;
  font-size: 1.4rem;
}
.problem-section {
  padding: 5rem 0 8rem;
  background: var(--white);
}
.problem-list {
  display: flex;
  gap: 0 4rem;
}
.problem-item {
  display: flex;
  flex: 1 1 0;
  flex-direction: column;
  align-items: center;
  max-width: 35rem;
  text-align: center;
}
.problem-img {
  width: 100%;
  aspect-ratio: 718 / 400;
  margin-bottom: 1.6rem;
}
.problem-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.problem-item__title {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 9rem;
  margin-bottom: 1.6rem;
  font-size: 2.0rem;
  font-weight: 700;
  line-height: 1.7;
  text-align: center;
  color: var(--gold);
}
.problem-item__txt {
  color: var(--text-sub);
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .problem-item {
    flex: 1 1 0;
    width: auto;
    min-width: 0;
  }
}
@media screen and (max-width: 767px) {
  .stats-bar {
    height: auto;
    padding: 3rem 0 2.5rem;
    background-image: url(../img/sec01_bg_sp.png);
  }
  .stats-list {
    flex-wrap: wrap;
    gap: 3rem 1rem;
  }
  .stats-item {
    flex: 0 0 calc(50% - .5rem);
    gap: 1rem 0;
  }
  .stats-item + .stats-item {
    border-left: none;
  }
  .stats-label {
    font-size: 1.4rem;
  }
  .stats-value {
    font-size: 3.6rem;
    line-height: 1.3;
  }
  .stats-value sup {
    top: -.8rem;
    font-size: 1.2rem;
  }
  .stats-item:last-child .stats-value {
    font-size: 3.3rem;
  }
  .problem-section {
    padding: 5rem 0;
  }
  .problem-list {
    flex-direction: column;
    gap: 5rem 0;
  }
  .problem-item {
    flex: none;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem 0;
    width: 100%;
  }
  .problem-item__title {
    min-height: 0;
    margin-top: .5rem;
    margin-bottom: 0;
  }
  .problem-item__txt {
    width: 100%;
    text-align: left;
  }
  .problem-img {
    flex-shrink: 0;
    width: 100%;
    height: auto;
    aspect-ratio: 718 / 400;
    margin-bottom: 0;
  }
}
/*====================================================
//// SECTION_02 なぜHomilleなら
====================================================*/
.sec.sec02 {
  padding: 8rem 0;
  background: var(--bg-gray);
}
.sec02 .sec-head__deco {
  margin-bottom: 7rem;
}
.about-intro__title {
  display: flex;
  justify-content: center;
  align-items: flex-end;
  gap: 0 3.4rem;
  margin-bottom: 8rem;
  font-size: 3.6rem;
  font-weight: 700;
  color: var(--heading);
}
.about-intro__title img {
  width: auto;
  max-width: 53.3rem;
  height: 7.2rem;
}
.about-intro__title.about-intro__title--about {
  margin-bottom: 3.2rem;
}
.about-intro__title--about + .sec-head__deco {
  margin-bottom: 3.2rem;
}
.about-intro__txt {
  font-size: 2.4rem;
  line-height: 1.6;
  text-align: center;
  color: #333;
}
/* カルーセル */
.carousel {
  position: relative;
  width: 100%;
  margin-bottom: 5rem;
}
.carousel__item img {
  display: block;
  width: 100%;
  height: auto;
}
/* slick の矢印ボタンを slick-track 基準で配置（carousel 全体高さ＝dots を含む高さに依存しないように） */
.js-carousel-track {
  position: relative;
}
/* Slick: 非アクティブスライドを透過 */
.carousel .slick-slide {
  opacity: .35;
  transition: opacity .4s;
}
.carousel .slick-current {
  opacity: 1;
}
/* 矢印ボタン */
.carousel__prev,
.carousel__next {
  position: absolute;
  top: 50%;
  z-index: 10;
  width: 2.4rem;
  padding: 0;
  background: none;
  border: none;
  transition: opacity .2s;
  transform: translateY(-50%);
  cursor: pointer;
}
.carousel__prev {
  left: calc(50% - 43rem);
}
.carousel__next {
  right: calc(50% - 43rem);
}
.carousel__prev img,
.carousel__next img {
  display: block;
  width: 100%;
  height: auto;
  transition: opacity .2s, transform .2s;
}
.carousel__prev:hover img,
.carousel__next:hover img {
  opacity: .6;
  transform: scale(1.15);
}
/* ドット（Slick appendDots） */
.js-carousel-dots {
  display: flex;
  justify-content: center;
  margin-top: 3.5rem;
}
.js-carousel-dots ul {
  display: flex !important;
  gap: 0 .8rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.js-carousel-dots li button {
  width: .8rem;
  height: .8rem;
  padding: 0;
  font-size: 0;
  background: #ddd;
  border: none;
  border-radius: 50%;
  transition: background .3s, transform .2s;
  cursor: pointer;
}
.js-carousel-dots li.slick-active button {
  background: var(--gold);
}
.js-carousel-dots li button:hover {
  background: var(--gold);
  transform: scale(1.3);
}
/* CTA バー (sec02 / sec05 共通) */
.cta-bar {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0 .5rem;
  width: 100%;
  max-width: 94.8rem;
  height: 6rem;
  margin: 0 auto;
  padding: 0 3rem;
  font-size: 2.6rem;
  font-weight: 700;
  color: var(--white);
  background: var(--gold);
  border-radius: 100rem;
}
.cta-bar .cta-bar__check {
  flex-shrink: 0;
  width: 2.6rem;
  height: 2.6rem;
  margin-top: .3rem;
  margin-right: .8rem;
}
@media screen and (max-width: 767px) {
  .sec.sec02 {
    padding: 5rem 0;
  }
  .about-intro__title {
    flex-direction: column;
    align-items: center;
    gap: 2rem 0;
    margin-bottom: 3.6rem;
    font-size: 2.4rem;
  }
  .about-intro__title img {
    width: 100%;
    max-width: 100%;
    height: auto;
  }
  .sec02 .sec-head__deco {
    margin-top: 0;
    margin-bottom: 4rem;
  }
  .about-intro__title--about + .sec-head__deco {
    margin-bottom: 3.2rem;
  }
  .about-intro__txt {
    font-size: 1.5rem;
    line-height: 1.7;
  }
  .cta-bar {
    height: 6rem;
    padding: 0 2rem;
    font-size: 1.7rem;
    line-height: 2.4rem;
    text-align: center;
  }
  .cta-bar .cta-bar__check {
    width: 2.9rem;
    height: 2.9rem;
  }
  /* carousel SP */
  .carousel {
    margin-bottom: 4rem;
  }
  .carousel .slick-slide {
    margin: 0 -1.5rem;
    padding: 0 .75rem;
  }
  .carousel__prev {
    left: 4rem;
    width: 1rem;
  }
  .carousel__next {
    right: 4rem;
    width: 1rem;
  }
  .js-carousel-dots {
    margin-top: 2rem;
  }
  .js-carousel-dots ul {
    gap: 0 .9rem;
  }
  .js-carousel-dots li button {
    width: .9rem;
    height: .9rem;
  }
}
/*====================================================
//// SECTION ABOUT 2つのAIと高度な解析技術
====================================================*/
.sec.sec03 {
  padding: 9rem 0 8rem;
  background: var(--white);
}
.sec03 .carousel {
  margin-bottom: 7.5rem;
}
.sec03 .sec-head__title {
  margin-bottom: 6rem;
  color: var(--gold);
}
.about-ai {
  display: flex;
  justify-content: center;
  gap: 0 7.6rem;
}
.about-ai__col {
  display: flex;
  flex: 1 1 0;
  flex-direction: column;
  align-items: center;
  gap: 2rem 0;
  min-width: 0;
}
.about-ai__title {
  margin-bottom: 0;
  font-size: 3rem;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  color: var(--gold);
}
.about-ai__catch {
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  color: var(--gold);
}
.about-ai__img {
  width: 100%;
  aspect-ratio: 520 / 292;
}
.about-ai__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.about-ai__desc {
  align-self: stretch;
  font-size: 1.6rem;
  line-height: 3.2rem;
  text-align: left;
  color: var(--text-sub);
}
.about-ai__note {
  align-self: stretch;
  padding-left: 1em;
  font-size: 1rem;
  line-height: 1.6;
  text-align: left;
  text-indent: -1em;
  color: var(--text-sub);
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .about-ai {
    gap: 0 4rem;
  }
  .about-ai__col {
    flex: 1 1 0;
    width: auto;
    min-width: 0;
  }
  .about-ai__catch {
    font-size: 1.6rem;
  }
  .about-ai__img {
    width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .sec.sec03 {
    padding: 6rem 0;
  }
  .sec03 .carousel {
    margin-bottom: 5rem;
  }
  .sec03 .sec-head__title {
    margin-bottom: 4rem;
  }
  .about-ai {
    flex-direction: column;
    gap: 4rem 0;
  }
  .about-ai__col {
    flex: none;
    gap: 1.5rem 0;
    width: 100%;
  }
  .about-ai__title {
    font-size: 2rem;
  }
  .about-ai__catch {
    font-size: 1.5rem;
  }
  .about-ai__img {
    width: 100%;
  }
  .about-ai__desc {
    font-size: 1.4rem;
    line-height: 2.4rem;
  }
}
/*====================================================
//// SECTION_03 機能
====================================================*/
.sec.sec04 {
  padding: 8rem 0;
  background: var(--beige-light);
}
.sec04 .sec-head__deco {
  margin-bottom: 6rem;
}
.feature-cards {
  display: flex;
  gap: 0 4rem;
  margin-bottom: 8rem;
}
.feature-card {
  display: flex;
  flex: 0 0 35rem;
  flex-direction: column;
  overflow: hidden;
  width: 35rem;
  background: var(--white);
  border: .1rem solid #f1f5f9;
  border-radius: 1.6rem;
  box-shadow: 0 2px 4px -2px rgba(0,0,0,.1), 0 4px 6px -1px rgba(0,0,0,.1);
}
.feature-card__img {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 19.2rem;
}
.feature-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.feature-card__num {
  position: absolute;
  top: 2.5rem;
  left: 2.5rem;
  z-index: 1;
  font-family: var(--font-roboto);
  font-size: 5rem;
  font-weight: 700;
  line-height: 2.8rem;
  text-shadow: 2px 2px 4px rgba(132,143,154,.5), -2px -2px 7px rgba(132,143,154,.5);
  color: var(--white);
}
.feature-card__title {
  position: absolute;
  right: 2.5rem;
  bottom: 1.7rem;
  left: 2.5rem;
  z-index: 1;
  margin-bottom: 0;
  font-size: 2.6rem;
  font-weight: 900;
  line-height: 2.8rem;
  text-shadow: 2px 2px 4px rgba(132,143,154,1), -2px -2px 7px rgba(132,143,154,1);
  color: var(--white);
}
.feature-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 2.5rem;
}
.feature-card__txt {
  margin-bottom: 1.5rem;
  font-size: 1.6rem;
  line-height: 2.4rem;
  color: var(--text-sub);
}
.feature-card__check {
  display: flex;
  flex-direction: column;
  gap: .8rem;
  padding: 0;
  list-style: none;
}
.feature-card__check li {
  position: relative;
  padding-left: 2rem;
  font-size: 1.4rem;
  line-height: 2rem;
  color: #6b7280;
}
.feature-card__check li::before {
  position: absolute;
  top: .4rem;
  left: 0;
  width: 1.4rem;
  height: 1.4rem;
  background: url('../img/ico_check_gold.svg') no-repeat center / contain;
  content: '';
}
/* 充実の機能 9アイコン */
.sec04 .sec-head__title {
  margin-bottom: 6rem;
  font-size: 3.6rem;
  font-weight: 500;
  line-height: 1.5;
  text-align: center;
  color: var(--heading);
}
.func-icons {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem 3.5rem;
}
.func-icon-item {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 2rem;
  padding: 2rem;
  background: var(--white);
  border: .2rem solid var(--gold);
  border-radius: 1rem;
}
.func-icon__ico {
  display: flex;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: 8rem;
  height: 8rem;
  background: var(--gold);
  border-radius: 50%;
}
.func-icon__ico img {
  width: auto;
  max-width: 5rem;
  height: auto;
  max-height: 5rem;
  filter: brightness(0) invert(1);
}
.func-icon__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 1rem;
}
.func-icon__title {
  margin-bottom: 0;
  font-size: 2.2rem;
  font-weight: 700;
  line-height: 1.5;
  color: var(--gold);
}
.func-icon__txt {
  font-size: 1.2rem;
  line-height: 1.5;
  color: var(--text-sub);
}
/* アイコン・タイトル個別調整 */
.func-icon-item:nth-child(6) .func-icon__title {
  font-size: 2rem;
}
.func-icon-item:nth-child(7) .func-icon__txt {
  font-size: 1.1rem;
}
.func-icon-item:nth-child(2) .func-icon__ico img {
  max-width: 5.5rem;
  max-height: 5.5rem;
  padding-bottom: .5rem;
}
.func-icon-item:nth-child(4) .func-icon__ico {
  padding-top: .8rem;
}
.func-icon-item:nth-child(4) .func-icon__ico img {
  max-width: 6rem;
}
.func-icon-item:nth-child(6) .func-icon__ico img {
  max-height: 6rem;
}
.func-icon-item:nth-child(8) .func-icon__ico {
  justify-content: flex-start;
  padding-left: 1rem;
}
.func-icon-item:nth-child(8) .func-icon__ico img {
  max-width: 6rem;
  max-height: 6rem;
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .feature-card {
    flex: 1 1 0;
    width: auto;
    min-width: 0;
  }
  .feature-card__title {
    font-size: 2.2rem;
  }
  /* func-icon の ico を縮小して body エリアを広く確保 */
  .func-icon__ico {
    width: 6rem;
    height: 6rem;
  }
  .func-icon__ico img {
    max-width: 3.6rem;
    max-height: 3.6rem;
  }
  .func-icon-item {
    gap: 1.2rem;
    padding: 1.4rem;
  }
  /* タイトル/txt を縮小して折返し抑制 */
  .func-icon__title {
    font-size: 1.5rem;
  }
  .func-icon__txt {
    font-size: 1.1rem;
  }
  /* 個別調整 (PC base のnth-childルールに合わせて上書き) */
  .func-icon-item:nth-child(6) .func-icon__title {
    font-size: 1.5rem;
  }
  .func-icon-item:nth-child(7) .func-icon__txt {
    font-size: 1rem;
  }
  .func-icon-item:nth-child(2) .func-icon__ico img,
  .func-icon-item:nth-child(4) .func-icon__ico img,
  .func-icon-item:nth-child(6) .func-icon__ico img,
  .func-icon-item:nth-child(8) .func-icon__ico img {
    max-width: 4.4rem;
    max-height: 4.4rem;
  }
  /* ico 6rem コンテナに合わせて padding を比例縮小 (PC 8rem→6rem の .75 倍) */
  .func-icon-item:nth-child(4) .func-icon__ico {
    padding-top: .4rem;
  }
  .func-icon-item:nth-child(8) .func-icon__ico {
    padding-left: .55rem;
  }
}
@media screen and (max-width: 767px) {
  .sec.sec04 {
    padding: 5rem 0;
  }
  .feature-cards {
    flex-direction: column;
    gap: 2.5rem 0;
    margin-bottom: 6rem;
  }
  .feature-card {
    flex: none;
    width: 100%;
  }
  .feature-card__img {
    height: 18rem;
  }
  .feature-card__num {
    left: 2rem;
    font-size: 4.7rem;
    line-height: 2.6rem;
  }
  .feature-card__title {
    left: 2rem;
    font-size: 2.4rem;
    line-height: 2.6rem;
  }
  .feature-card__body {
    padding: 2.5rem 2rem 3rem;
  }
  .feature-card__check {
    gap: .5rem;
  }
  .feature-card__check li {
    font-size: 1.3rem;
  }
  .sec04 .sec-head__title {
    margin-bottom: 5rem;
    font-size: 2.2rem;
  }
  .func-icons {
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
  }
  .func-icon-item {
    flex-direction: column;
    align-items: center;
    gap: 1rem 0;
    padding: 1rem 1.2rem 1.2rem;
    text-align: center;
  }
  .func-icon__ico {
    width: 6rem;
    height: 6rem;
  }
  .func-icon__ico img {
    width: auto;
    max-width: 3.8rem;
    height: auto;
    max-height: 3.8rem;
  }
  .func-icon__body {
    flex: none;
    align-items: center;
    gap: .6rem;
  }
  .func-icon__title {
    font-size: 1.4rem;
  }
  .func-icon__txt {
    align-self: stretch;
    font-size: 1rem;
    text-align: left;
  }
  .func-icon-item:nth-child(6) .func-icon__title {
    font-size: 1.4rem;
  }
  .func-icon-item:nth-child(7) .func-icon__txt {
    font-size: 1rem;
  }
  .func-icon-item:nth-child(2) .func-icon__ico img {
    max-width: 4.5rem;
    max-height: 4.5rem;
    padding-bottom: .5rem;
  }
  .func-icon-item:nth-child(4) .func-icon__ico {
    padding-top: .5rem;
  }
  .func-icon-item:nth-child(4) .func-icon__ico img {
    max-width: 4.5rem;
  }
  .func-icon-item:nth-child(6) .func-icon__ico img {
    max-height: 4.5rem;
  }
  .func-icon-item:nth-child(8) .func-icon__ico {
    justify-content: flex-start;
    padding-left: .7rem;
  }
  .func-icon-item:nth-child(8) .func-icon__ico img {
    max-width: 4.2rem;
    max-height: 4.2rem;
  }
}
/*====================================================
//// SECTION_04 導入フロー
====================================================*/
.sec.sec05 {
  padding: 8rem 0;
  background: var(--white);
}
.sec05 .sec-head__desc {
  margin-bottom: 8rem;
}
.sec05 .cta-bar {
  margin-top: 8rem;
}
.flow-steps {
  display: flex;
  flex-direction: column;
  gap: 4.8rem 0;
  max-width: 84.4rem;
  margin: 0 auto;
}
.flow-step {
  display: flex;
  align-items: center;
  gap: 0 4rem;
}
.flow-step__body {
  flex: 1;
  padding: 2.5rem;
  background: var(--beige-light);
  border: .2rem solid var(--border-accent);
  border-radius: 1.6rem;
  box-shadow: 0 .1rem .2rem rgba(0,0,0,.05);
}
.flow-step__title {
  display: flex;
  align-items: center;
  gap: 0 .8rem;
  margin-bottom: .8rem;
  font-size: 2rem;
  font-weight: 700;
  line-height: 2.8rem;
  color: var(--gold);
}
.step-ico {
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  object-fit: contain;
}
.flow-step__txt {
  font-size: 1.6rem;
  line-height: 2.4rem;
  color: var(--text-sub);
}
/* step1「物件情報の入力」は白カード（別形）。タイトル色も Figma(#3066:210) では濃紺 */
.flow-step--input .flow-step__body {
  background: var(--white);
}
.flow-step--input .flow-step__title {
  color: #0F172A;
}
/* step1 直下の矢印（下向き三角形 46x39 / 金）を CSS で表現 */
.flow-arrow {
  display: flex;
  justify-content: center;
}
.flow-arrow::before {
  width: 0;
  height: 0;
  border-top: 3.9rem solid var(--gold);
  border-right: 2.3rem solid transparent;
  border-left: 2.3rem solid transparent;
  content: "";
}
@media screen and (max-width: 767px) {
  .sec.sec05 {
    padding: 5rem 0 6rem;
  }
  .sec05 .sec-head__desc {
    margin-bottom: 4rem;
  }
  .sec05 .cta-bar {
    margin-top: 3rem;
  }
  .flow-steps {
    gap: 1.4rem 0;
  }
  .flow-step {
    gap: 0 2rem;
    padding: 1rem 1.5rem 1.2rem;
    background: var(--beige-light);
    border: .2rem solid var(--border-accent);
    border-radius: .8rem;
  }
  .flow-step--input {
    background: var(--white);
  }
  .flow-arrow::before {
    border-top-width: 1.95rem;
    border-right-width: 1.15rem;
    border-left-width: 1.15rem;
  }
  .flow-step__body {
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
  }
  .flow-step__title {
    margin-bottom: .2rem;
    font-size: 1.2rem;
    line-height: 2.8rem;
  }
  .flow-step__txt {
    font-size: 1.2rem;
    line-height: 1.6;
  }
}
/*====================================================
//// SECTION_05 導入メリット
====================================================*/
.sec.sec06 {
  padding: 8rem 0;
  background: var(--bg-gray);
}
.sec06 .sec-head__desc {
  margin-bottom: 6rem;
}
.merit-cards {
  display: flex;
  gap: 0 4rem;
  margin-bottom: 6rem;
}
.merit-card {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: center;
  padding: 3rem 2rem;
  text-align: center;
  background: var(--white);
  border: .4rem solid var(--gold);
  border-radius: 2rem;
}
.merit-card__ico {
  display: flex;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: 8rem;
  height: 8rem;
  margin-bottom: 2rem;
  background: var(--gold);
  border-radius: 50%;
}
.merit-card__ico img {
  width: auto;
  max-width: 4.5rem;
  height: auto;
  max-height: 4.5rem;
  filter: brightness(0) invert(1);
}
.merit-card:nth-child(1) .merit-card__ico img {
  max-width: 4rem;
  max-height: 4rem;
}
.merit-card__title {
  margin-bottom: 1rem;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 3.2rem;
  color: var(--gold);
}
.merit-card__txt {
  align-self: stretch;
  font-size: 1.6rem;
  line-height: 2.4rem;
  text-align: left;
  color: var(--text-sub);
}
/* 画像＋テキストブロック (ファンネル) */
.sec-subtitle {
  margin-bottom: 6rem;
  font-size: 2.4rem;
  font-weight: 700;
  text-align: center;
  color: var(--heading);
}
.funnel-wrap {
  display: flex;
  align-items: center;
  gap: 0 4rem;
  max-width: 113rem;
  margin: 0 auto 6rem;
}
.funnel-diagram {
  position: relative;
  flex-shrink: 0;
  width: 100%;
  max-width: 59.4rem;
  aspect-ratio: 594 / 390;
  background: url('../img/sec06_funnel.png') no-repeat center / 100% 100%;
}
.funnel__level {
  position: absolute;
  right: 0;
  left: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .9rem 0;
  text-align: center;
}
.funnel__level.-l1 {
  top: 16%;
}
.funnel__level.-l2 {
  top: 52%;
  right: auto;
  left: 12%;
}
.funnel__level.-l3 {
  top: 68%;
  right: 12%;
  left: auto;
}
.funnel__level.-l3 sup {
  top: -.1rem;
  font-size: 1.2rem;
}
.funnel__label {
  font-size: 2.4rem;
  color: var(--gold);
}
.funnel__sub {
  font-size: 2rem;
  line-height: 2.8rem;
  color: var(--gold);
}
.funnel__level.-l2 .funnel__label,
.funnel__level.-l2 .funnel__sub,
.funnel__level.-l3 .funnel__label,
.funnel__level.-l3 .funnel__sub {
  color: var(--white);
}
.funnel__note {
  position: absolute;
  top: 94%;
  right: 3.8%;
  font-size: .9rem;
  line-height: 1.4;
  white-space: nowrap;
  color: var(--white);
}
.funnel-txt {
  max-width: 50rem;
  font-size: 2.4rem;
  line-height: 3.6rem;
  color: var(--text-sub);
}
/* オプションサービス */
.optional-section {
  overflow: hidden;
  background: transparent;
  border-radius: 2rem;
}
.optional__label {
  margin-bottom: 6rem;
  font-size: 2.4rem;
  font-weight: 700;
  text-align: center;
  color: var(--heading);
  background: transparent;
}
.optional__label .sec-head__badge {
  margin-bottom: 2rem;
}
.optional-card {
  display: flex;
  background: var(--gold);
  border: .4rem solid var(--gold);
  border-radius: 2rem;
}
.optional-card__left {
  position: relative;
  z-index: 1;
  display: flex;
  flex: 0 0 35rem;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 5rem 0 5rem 4rem;
  text-align: center;
  background: var(--gold);
  border-right: none;
  border-radius: 1.6rem 0 0 1.6rem;
}
.optional-card__left::after {
  position: absolute;
  top: 0;
  right: -8.4rem;
  bottom: 0;
  width: calc(8.4rem + 1px);
  background: var(--gold);
  clip-path: polygon(0 0, 100% 50%, 0 100%);
  content: '';
}
.optional-card__title {
  margin-bottom: 2.5rem;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.5;
  color: var(--white);
}
.optional-card__list {
  display: inline-block;
  padding: 0;
  text-align: left;
  list-style: none;
}
.optional-card__list li {
  position: relative;
  padding-left: 2.8rem;
  font-size: 1.6rem;
  line-height: 4.5rem;
  color: rgba(255,255,255,.9);
}
.optional-card__list li::before {
  position: absolute;
  top: 52%;
  left: 0;
  width: 1.6rem;
  height: 1.6rem;
  background: url('../img/ico_check_white.svg') no-repeat center / contain;
  transform: translateY(-50%);
  content: '';
}
.optional-card__right {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: center;
  gap: 3rem 0;
  padding: 5rem 4rem 5rem 8rem;
  text-align: center;
  background: var(--beige-light);
  border-radius: 0 1.6rem 1.6rem 0;
}
.optional-card__catch {
  margin-bottom: 0;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.5;
  color: var(--text-sub);
}
.optional-card__catch sup {
  top: -.1rem;
  font-size: 1.2rem;
}
.optional-card__img {
  max-width: 30rem;
  margin-bottom: 0;
}
.optional-card__support {
  margin-bottom: 0;
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--text-sub);
}
.optional-card__note {
  padding: 0;
  list-style: none;
}
.optional-card__note li {
  font-size: 1rem;
  line-height: 2rem;
  text-align: left;
  color: var(--text-sub);
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
  .merit-card__txt {
    font-size: 1.4rem;
    line-height: 2rem;
  }
}
@media screen and (max-width: 767px) {
  .sec.sec06 {
    padding: 5rem 0;
  }
  .sec06 .sec-head__desc {
    margin-bottom: 4rem;
  }
  .merit-cards {
    flex-direction: column;
    gap: 2rem 0;
    margin-bottom: 6rem;
  }
  .merit-card {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    row-gap: 1rem;
    column-gap: 2rem;
    width: 100%;
    padding: 1.5rem 1.5rem 1.7rem;
  }
  .merit-card__ico {
    width: 5rem;
    height: 5rem;
    margin-bottom: 0;
  }
  .merit-card__ico img {
    max-width: 2.8rem;
    max-height: 2.8rem;
  }
  .merit-card:nth-child(1) .merit-card__ico img {
    max-width: 2.8rem;
    max-height: 2.8rem;
  }
  .merit-card__title {
    margin-bottom: 0;
    font-size: 1.8rem;
  }
  .merit-card__txt {
    flex-basis: 100%;
    font-size: 1.2rem;
    line-height: 1.5;
  }
  .sec-subtitle {
    margin-bottom: 3rem;
    font-size: 2.2rem;
    line-height: 1.4;
  }
  .funnel-wrap {
    flex-direction: column;
    gap: 6rem 0;
  }
  .funnel-diagram {
    max-width: 100%;
  }
  .funnel__level {
    gap: .4rem 0;
  }
  .funnel__level.-l1 {
    top: 15%;
  }
  .funnel__level.-l2 {
    top: 51%;
    left: 10.5%;
  }
  .funnel__level.-l3 {
    top: 70%;
    right: 11%;
  }
  .funnel__level.-l3 sup {
    top: .2rem;
    font-size: 1rem;
  }
  .funnel__label {
    font-size: 1.4rem;
  }
  .funnel__sub {
    font-size: 1.2rem;
    line-height: 1.8rem;
  }
  .funnel__note {
    top: 100%;
    right: auto;
    left: 50%;
    width: max-content;
    max-width: 92vw;
    margin-top: 1rem;
    font-size: 1rem;
    line-height: 1.5;
    text-align: center;
    white-space: normal;
    color: var(--text-sub);
    transform: translateX(-50%);
  }
  .funnel-txt {
    max-width: 100%;
    font-size: 1.4rem;
    line-height: 2.2rem;
  }
  .optional__label {
    margin-bottom: 4rem;
    font-size: 2.2rem;
    line-height: 1.4;
  }
  .optional__label .sec-head__badge {
    margin-bottom: 1rem;
  }
  .optional-card {
    flex-direction: column;
  }
  .optional-card__catch sup {
    font-size: 1rem;
  }
  .optional-card__left {
    flex: auto;
    padding: 2rem 2rem 1rem;
    border-right: none;
    border-bottom: .1rem solid rgba(255,255,255,.15);
    border-radius: 1.6rem 1.6rem 0 0;
    clip-path: none;
  }
  .optional-card__left::after {
    top: 100%;
    right: auto;
    bottom: auto;
    left: 0;
    display: block;
    width: 100%;
    height: 4.1rem;
    clip-path: polygon(50% 100%, 0 0, 100% 0);
  }
  .optional-card__title {
    margin-bottom: 2rem;
  }
  .optional-card__list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
  }
  .optional-card__list li {
    padding-left: 2.2rem;
    font-size: 1.4rem;
    line-height: 1.5;
  }
  .optional-card__list li::before {
    width: 1.2rem;
    height: 1.2rem;
  }
  .optional-card__right {
    gap: 2rem 0;
    padding: 6rem 2.2rem 2rem;
    border-radius: 0 0 1.6rem 1.6rem;
  }
  .optional-card__catch {
    font-size: 2.2rem;
    line-height: 1.5;
  }
  .optional-card__img {
    max-width: 25rem;
  }
  .optional-card__support {
    font-size: 1.4rem;
    line-height: 1.5;
  }
  .optional-card__note li {
    line-height: 1.5;
  }
}
/*====================================================
//// SECTION AIRISK 住宅劣化推定AIエージェントとは
====================================================*/
.sec.sec07 {
  padding: 8rem 0;
  background: #231815 url(../img/sec07_bg.png) no-repeat center top / cover;
}
.sec07 .sec-head__title {
  margin-bottom: 3.2rem;
  font-size: 3.6rem;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  color: var(--white);
}
.sec07 .sec-head__desc {
  margin-bottom: 6rem;
  font-size: 1.6rem;
  line-height: 1.5;
  text-align: center;
  color: var(--white);
}
.sec07__figure {
  display: flex;
  justify-content: center;
  align-items: center;
  max-width: 113rem;
  margin: 0 auto 6rem;
  padding: 1.5rem;
  background: var(--bg-gray);
  border-radius: 2rem;
}
.sec07__figure img {
  width: 100%;
  max-width: 104rem;
  height: auto;
}
.sec07__btnwrap {
  text-align: center;
}
.sec07__btnwrap .p-btn {
  display: inline-flex;
  width: auto;
  min-width: 30rem;
  height: 6.4rem;
  margin-bottom: 0;
  padding: 0 4rem;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.2;
  border-radius: 50rem;
}
.sec07__btnwrap .p-btn.-red {
  color: var(--white);
  background: var(--red);
  border: none;
  box-shadow: none;
}
@media screen and (max-width: 767px) {
  .sec.sec07 {
    padding: 5rem 0 6rem;
  }
  .sec07 .sec-head__title {
    margin-bottom: 2.4rem;
    font-size: 2.2rem;
  }
  .sec07 .sec-head__desc {
    margin-bottom: 3rem;
    font-size: 1.4rem;
  }
  .sec07__figure {
    margin-bottom: 4rem;
    padding: 2rem 4rem;
    border-radius: 1.2rem;
  }
  .sec07__btnwrap .p-btn {
    width: 100%;
    height: 5.6rem;
    padding: 0.9rem 3rem 1.1rem;
    font-size: 1.8rem;
  }
}
/*====================================================
//// SECTION_06 お客様の声
====================================================*/
.sec.sec08 {
  padding: 8rem 0;
  background: var(--white);
}
.sec08 .sec-head__deco {
  margin-bottom: 10rem;
}
.voice-cards {
  display: grid;
  justify-content: center;
  grid-template-columns: repeat(2, 48rem);
  gap: 3.6rem 5.5rem;
}
.voice-card {
  display: flex;
  flex-direction: column;
  width: 48rem;
  height: 20rem;
  padding: 3.2rem 4rem 5.5rem;
  background: url('../img/sec08_bg_voice.svg') no-repeat center / 100% 100%;
}
.voice-card__header {
  display: flex;
  align-items: center;
  gap: 0 6rem;
  margin-bottom: 1rem;
}
.voice-card__company {
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 2.8rem;
  color: var(--gold);
}
.voice-card__tags {
  font-size: 2rem;
  line-height: 2.8rem;
  color: var(--text-sub);
}
.voice-card__txt {
  display: flex;
  flex: 1;
  align-items: center;
  font-size: 1.6rem;
  line-height: 2.4rem;
  color: var(--text-sub);
}
@media screen and (max-width: 767px) {
  .sec.sec08 {
    padding: 5rem 0;
  }
  .sec08 .sec-head__deco {
    margin-bottom: 4rem;
  }
  .voice-cards {
    grid-template-columns: 1fr;
    gap: 1rem 0;
    width: 100%;
  }
  .voice-card {
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 330 / 200;
  }
  .voice-card:nth-child(odd) {
    padding: 3.2rem 3.4rem 3.2rem 2.6rem;
    background-image: url('../img/sec08_bg_voice_sp01.svg');
  }
  .voice-card:nth-child(even) {
    padding: 3.2rem 2.6rem 3.2rem 3.4rem;
    background-image: url('../img/sec08_bg_voice_sp02.svg');
  }
  .voice-card__company {
    font-size: 2rem;
    white-space: nowrap;
  }
  .voice-card__tags {
    margin-left: auto;
    font-size: 1.6rem;
  }
  .voice-card__header {
    flex-wrap: wrap;
    gap: 0 1.5rem;
    margin-bottom: 2rem;
  }
  .voice-card__txt {
    align-items: flex-start;
    font-size: 1.2rem;
    line-height: 1.5;
  }
}
/*====================================================
//// SECTION_07 ご利用の流れ + FAQ
====================================================*/
.sec.sec09 {
  padding: 8rem 0;
  background: var(--bg-gray);
}
.sec09 > .inner_w774 {
  display: flex;
  flex-direction: column;
  gap: 8rem 0;
}
.sec09 .sec-head__title {
  font-size: 3.2rem;
}
.usage-flow {
  margin-bottom: 0;
}
.usage-steps {
  display: flex;
  flex-direction: column;
  gap: 3.2rem 0;
  margin-top: 3.2rem;
}
.usage-step {
  display: flex;
  align-items: flex-start;
  gap: 0 2.6rem;
}
.usage-step__num {
  display: flex;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: 5.4rem;
  height: 5.4rem;
  font-family: var(--font-roboto);
  font-size: 3.2rem;
  font-weight: 700;
  color: var(--white);
  background: var(--gold);
  border-radius: 50%;
}
.usage-step__body {
  flex: 1;
  padding-top: .9rem;
}
.usage-step__title {
  margin-bottom: 1.2rem;
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 3.6rem;
  color: var(--heading);
}
.usage-step__txt {
  font-size: 1.6rem;
  line-height: 2.4rem;
  color: var(--text-sub);
}
/* FAQ */
.faq-section {
  margin-top: 0;
}
.faq-list {
  border-top: none;
}
.faq-item {
  overflow: hidden;
  margin-bottom: 2.2rem;
  border: .1rem solid var(--border);
  border-radius: .8rem;
}
.faq-item:last-child {
  margin-bottom: 0;
}
.faq-q {
  display: flex;
  align-items: center;
  gap: 0 .4rem;
  height: 5.6rem;
  padding: 0 2.4rem;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 2.4rem;
  color: var(--heading);
  background: var(--faq-q-bg);
  transition: background .2s;
  cursor: pointer;
  user-select: none;
}
.faq-q:hover {
  background: var(--beige);
}
.faq-q > span:first-child {
  flex-shrink: 0;
  width: 2.4rem;
  font-weight: 900;
  color: var(--gold);
}
.faq-icon {
  position: relative;
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  margin-left: auto;
}
.faq-icon::before,
.faq-icon::after {
  position: absolute;
  top: 50%;
  left: 50%;
  content: "";
}
.faq-icon::before {
  width: .8rem;
  height: .8rem;
  background: transparent;
  border-right: .1rem solid var(--gold);
  border-bottom: .1rem solid var(--gold);
  border-radius: 0;
  transition: transform .3s;
  transform: translate(-50%, -70%) rotate(45deg);
}
.faq-icon::after {
  display: none;
}
.faq-q.open .faq-icon::before {
  transform: translate(-50%, -30%) rotate(-135deg);
}
.faq-a {
  display: none;
  background: var(--white);
}
.faq-a__row {
  display: flex;
  align-items: center;
  gap: 0 .4rem;
  padding: 1.6rem 2.4rem;
}
.faq-a__label {
  flex-shrink: 0;
  align-self: center;
  width: 2.4rem;
  font-size: 1.6rem;
  font-weight: 900;
  line-height: 1;
  color: var(--gold);
}
.faq-a__txt {
  flex: 1;
  font-size: 1.6rem;
  line-height: 2.4rem;
  color: var(--text-sub);
}
@media screen and (max-width: 767px) {
  .sec.sec09 {
    padding: 5rem 0 6rem;
  }
  .sec09 > .inner_w774 {
    gap: 5rem 0;
  }
  .sec09 .sec-head__title {
    margin-bottom: 4rem;
    font-size: 2.2rem;
  }
  .faq-section .sec-head__title {
    margin-bottom: 3rem;
  }
  .usage-steps {
    width: 100%;
    margin-top: 2.4rem;
  }
  .usage-step {
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 1.5rem;
    row-gap: 1rem;
    align-items: center;
    gap: 1rem 1.5rem;
  }
  .usage-step__num {
    width: 3rem;
    height: 3rem;
    font-size: 1.9rem;
  }
  .usage-step__body {
    display: contents;
  }
  .usage-step__title {
    margin-bottom: 0;
    font-size: 1.8rem;
    line-height: 1.5;
  }
  .usage-step__txt {
    grid-column: 1 / -1;
    font-size: 1.2rem;
    line-height: 1.5;
    text-align: left;
  }
  .faq-list {
    width: 100%;
  }
  .faq-q {
    height: 6rem;
    padding: 0 1.4rem;
    font-size: 1.2rem;
    line-height: 1.5;
  }
  .faq-q > span:first-child {
    font-size: 1.6rem;
  }
  .faq-icon {
    width: 1.8rem;
    height: 1.8rem;
  }
  .faq-a__row {
    padding: 1.6rem 1.4rem;
  }
  .faq-a__txt {
    font-size: 1.2rem;
    line-height: 1.5;
  }
}
/*====================================================
//// CTA Section
====================================================*/
.sec.cta-section {
  padding: 0;
  background: var(--gold);
  background-image: url(../img/cta_bg.png);
  background-repeat: no-repeat;
  background-position: center top;
  background-size: 100% calc(100% + 4rem);
}
.cta-section__inner {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 2.5rem 0;
  min-height: 47.2rem;
  padding: 8rem 2rem;
  text-align: center;
}
.cta-section__title {
  font-size: 4rem;
  font-weight: 900;
  line-height: 1.5;
  color: var(--white);
}
.cta-section__txt {
  font-size: 1.6rem;
  line-height: 2.4rem;
  color: var(--white);
}
.cta-section__btnlist {
  display: flex;
  justify-content: center;
  gap: 0 2rem;
}
.cta-section__btnlist .p-btn {
  width: auto;
  height: 6.9rem;
  margin-bottom: 0;
  padding: 0 4rem;
  font-size: 2rem;
  font-weight: 700;
  border-radius: 100rem;
  box-shadow: none;
}
.cta-section__btnlist .p-btn.-red {
  color: var(--white);
  background: var(--red);
  border: none;
}
.cta-section__btnlist .p-btn.-gray {
  color: var(--red);
  background: var(--white);
  border: .3rem solid var(--red);
}
.cta-section__btnlist .p-btn.-red::after,
.cta-section__btnlist .p-btn.-gray::after {
  display: none;
}
@media screen and (max-width: 767px) {
  .sec.cta-section {
    background-image: url(../img/cta_bg_sp.png);
  }
  .cta-section__inner {
    gap: 2rem 0;
    padding: 5rem 0;
  }
  .cta-section__title {
    font-size: 2.2rem;
    line-height: 1.5;
  }
  .cta-section__txt {
    font-size: 1.4rem;
    line-height: 2.4rem;
  }
  .cta-section__btnlist {
    flex-direction: column;
    align-items: stretch;
    gap: 2rem 0;
    width: 100%;
  }
  .cta-section__btnlist .p-btn {
    width: 100%;
    height: auto;
    margin-bottom: 0;
    padding: 2rem 0 2.2rem 0;
    font-size: 1.8rem;
    line-height: 1.5;
  }
}
/*====================================================
//// breadcrumb
====================================================*/
.breadcrumb {
  border-bottom: 1px solid #999;
}
.nav__breadcrumb {
  height: 6rem;
}
.nav__breadcrumb ol {
  display: flex;
  align-items: center;
  height: 100%;
  padding: 0;
}
.nav__breadcrumb li {
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.6rem;
  color: var(--black);
}
.nav__breadcrumb li a {
  font-weight: 700;
  color: #999;
}
.nav__breadcrumb li a:hover {
  font-weight: bold;
  color: var(--red);
}
.nav__breadcrumb li::after {
  display: inline-block;
  width: 1rem;
  height: .2rem;
  margin: .65rem 1rem;
  background: #969696;
  transform: translateY(1px);
  content: "";
}
.nav__breadcrumb li:last-child::after {
  display: none;
}
@media screen and (max-width: 767px) {
  .nav__breadcrumb ol {
    justify-content: center;
  }
}
/*-------------------------------------------------------------

////フッター

-------------------------------------------------------------*/
/*====================================================
////class .footer
====================================================*/
.footer {
  padding: 5rem 0;
}
.footer .l-flex {
  display: flex;
  align-items: center;
}
.footer__logo {
  display: block;
  width: 20.4rem;
}
.footer__linklist {
  display: flex;
  align-items: center;
  gap: 0;
  margin: 5rem 0 0;
  font-size: 1.4rem;
}
.footer__linklist li + li::before {
  position: relative;
  top: -1px;
  display: inline-block;
  width: 1px;
  height: 1.6rem;
  margin: 0 1.5rem;
  vertical-align: middle;
  background: var(--black);
  content: "";
}
.footer__linklist a {
  font-size: 1.4rem;
  font-weight: bold;
  line-height: 2rem;
  color: var(--black);
}
.footer__linklist a:hover {
  color: var(--red);
}
@media screen and (max-width: 767px) {
  .footer .l-flex {
    flex-direction: column;
  }
  .footer__company_box {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5rem 0;
  }
  .footer__linklist {
    margin: 0;
  }
  .footer__linklist a {
    font-size: 1.4rem;
  }
}
/*====================================================
////class .page-top
====================================================*/
.page-top {
  position: fixed;
  right: 0;
  bottom: 0;
  display: none;
  width: 4.4rem;
  height: 4.4rem;
}
.page-top a {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  background-color: var(--red);
}
.page-top a::before {
  position: absolute;
  top: .3rem;
  right: 0;
  bottom: 0;
  left: 0;
  display: block;
  width: .8rem;
  height: .8rem;
  margin: auto;
  border-top: 2px solid var(--white);
  border-right: 2px solid var(--white);
  transform: rotate(-45deg);
  content: "";
}
/*====================================================
////class .copyright
====================================================*/
.copyright {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 4.4rem;
  padding: 0 1rem;
  font-size: 1.2rem;
  font-weight: var(--normal);
  text-align: center;
  color: var(--white);
  background: var(--black);
}
.copyright small {
  font-size: inherit;
}
@media screen and (max-width: 767px) {
  .copyright {
    padding: 1rem .5rem;
    font-size: 1rem;
  }
  .copyright small {
    font-size: .6rem;
  }
}
