body{
  margin : 0%;
  min-height: 100dvh;
  overflow-x: hidden;
  padding: 0px;
  padding-top: 0px;
  text-rendering: auto;
}

/* 全体にフォントを適用 */
html, body, button {
  font-family: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  font-weight: 400;
  line-height: 1.6;
}

h3, p, h2, h1 {
color: #333;
}

img {
  max-width: 100%;
  height: auto;
}

/* =========================================
   SP版 追従フッター (style.css 末尾に追加)
========================================= */

/* --- 基本スタイル（SPのみ表示） --- */
.sticky-footer {
    position: fixed;
    text-align: center;
    color: #c2c9ce;
    display: flex;
    letter-spacing: 0.64px;
    gap: 8px;
    font-size: 15px;
    font-weight: 500;
    bottom: 0;
    left: 0;
    width: 100%;
    z-index: 9999;
    background: rgb(0 0 0 / 70%);
    backdrop-filter: blur(4px);
    border-radius: 16px 16px 0 0;
    padding: 8px 8px 16px;
    transform: translateY(120%);
    transition: transform 0.3s ease;
    flex-direction: column;
}

/* 表示クラスがついた時 */
.sticky-footer.is-show {
  transform: translateY(0);
}

.sticky-footer__inner {
  display: flex;
  gap: 6px;
  justify-content: center;
}

/* --- ボタン共通 --- */
.sticky-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 48px;
  border-radius: 8px;
  text-decoration: none;
  font-weight: 700;
  font-size: 15px;
  box-shadow: 0 4px 4px rgba(0,0,0,0.1);
  transition: opacity 0.3s;
}

.sticky-btn:active {
  transform: translateY(2px);
  box-shadow: 0 2px 0 rgba(0,0,0,0.1);
}

/* 電話ボタン */
.sticky-btn.--tel {
  background: linear-gradient(90deg, #5EC93A 0%, #2A9805 100%);
  color: #fff;
  width: 40%;
  font-size: 14px;
  gap: 2px;
  line-height: 1.2;
  position: relative;
  box-shadow: 0 4px 0 0 #1C7E1B;
}

.sticky-btn.--tel img {
  width: 16px;
  height: auto;
  left: 16px;
  position: absolute;
}

/* WEBボタン */
.sticky-btn.--web {
  background: linear-gradient(90deg, #F78C5C 0%, #DB5418 100%);
  color: #fff;
  width: 60%; /* 広く */
  font-size: 16px;
  gap: 8px;
  position: relative;
box-shadow: 0 4px 0 0 #A93E08;
}

.sticky-btn.--web .sticky-arrow {
    filter: brightness(0) invert(1);
    position: absolute;
    right: 8px;
}

.sticky-btn.--tel .sticky-arrow {
    filter: brightness(0) invert(1);
    position: absolute;
    right: 8px;
}

/* --- PC版（1024px以上）では非表示 --- */
@media (min-width: 1024px) {
  .sticky-footer {
    display: none !important;
  }
}


/* ========== FV base ========== */
.fv {
  background: #EDF1F4;
  padding: 88px 0px 0px 0px;
  text-align: center;
  overflow: hidden;
  height: 464px;
  position: relative;
}

.fv__inner {
  margin: 0 auto;
  height: 655px;
  position: relative;
}

/* コピー部分 */
.fv__copy {
  position: relative;
  z-index: 1;
}

.fv__title {
  font-size: clamp(22px, 5.8vw, 28px);
  line-height: 1.2;
  font-weight: 600;
  color: #333;
  margin: 0px;
}
.fv__badge {
  display: inline-block;
  padding: 0px 16px;
  border: 2px solid #e57645;
  border-radius: 999px;
  color: #e57645;
  background: #fff;
  font-weight: 700;
  font-size: 14px;
  margin-top: 8px;
}

.fv-text1{
font-size: 24px;
}
.fv-text2{
font-size: 32px;
}
.fv-text3{
font-size: 40px;
}

.fv__cta {
  display: none;
}

/* ========== 画像（1枚スライド） ========== */
.fv__image-sp {
  width: 100%;
  height: 264px; /* 表示領域 */
  overflow: hidden;
  border-radius: 24px 24px 0 0;
  position: relative;
  top: -16px;
  z-index: 0;
}

.fv__image-sp img {
  width: 100%;
  height: 900px; /* 実画像サイズ */
  object-fit: cover;
  animation: fvImageSlide 32s linear infinite;
}

/* ゆっくり上にスライド */
@keyframes fvImageSlide {
  0%   { transform: translateY(0); }
  100% { transform: translateY(-100%); }
}

.fv__image-pc {
  display: none;
}


/* ========== お知らせ部分 ========== */
.fv__news-sp {
  position: relative;
  top: -128px;
  text-align: left;
  padding: 8px;
  display: block;
}

.fv__news-pc {
  display: none;
  position: absolute;
  bottom: 80px;
  right: 0px;
}

.fv__newsjr {
  position: relative;
  width: 100%;
  height: 44px;
  background: #EDF1F4;
  border-radius: 0 8px 8px 8px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.08);
  display: flex;
  align-items: center;
  gap: 8px;
  overflow: hidden;
  z-index: 10;
}

/* ラベル */
.fv__news-label {
  background: linear-gradient(270deg, #EE4848 0%, #E57645 100%);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  border-radius: 8px 8px 0 0;
  padding: 4px 8px;
  flex-shrink: 0;
  height: 100%;
  z-index: 2;
}

/* SP版：流れるトラック */
.fv__news-track {
  display: flex;
  align-items: center;
  /* 記事の長さに関わらず一定速度で流す設定 */
  animation: fvTickerSP 60s linear infinite;
  white-space: nowrap;
  will-change: transform;
}

/* 記事1つずつのスタイル（SP） */
.fv__news-item-sp {
  display: flex;
  font-size: 14px;
  align-items: center;
  gap: 10px;
  margin-right: 40px; /* 記事ごとの間隔 */
  text-decoration: none;
  color: #333;
}

/* 2セット並べるので、50%移動したらリセット */
@keyframes fvTickerSP {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); } 
}

/* 本文部分 */
.fv__news-item {
  display: flex;
  width: auto;
  align-items: center;
  gap: 8px;
  width: 600px;
  white-space: nowrap;
  animation: fvTicker 16s linear infinite;
}

.fv__news-date {
  color: #333;
  font-weight: 700;
  font-size: 14px;
}

.fv__news-text {
    font-size: 14px;
    color: #333;
    font-weight: 400;
    margin: 12px 0;
    /* 2行制限 */
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    text-overflow: ellipsis;
    min-height: 44px; /* ガタつき防止 */
}

/* インジケーター（・・・・） */
.fv__news-dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 8px;
}

.fv__news-dot {
  width: 24px;
  height: 8px;
  background: #DDD;
  border-radius: 8px;
  cursor: pointer;
  transition: background 0.3s;
}

.fv__news-dot.active {
  background: #E57645; /* アクティブ色はオレンジ */
}

/* ニューステキストを横にスライド */
@keyframes fvTicker {
  0%   { transform: translateX(0%); }
  100% { transform: translateX(-100%); }
}

/* おすすめ情報セクション */
.recommend {
  background: #EDF1F4;
  padding: 24px 0;
  text-align: center;
  overflow: hidden;
}

.recommend__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 0 auto 16px;
  padding: 0 20px;
}

.recommend__title {
    position: relative;
    display: flex;
    gap: 8px;
    align-items: center;
}

.title-circle {
  height: 8px;
  width: 8px;
  background: #E57645;
  border-radius: 8px;
}

.recommend__title h2 {
  font-size: 16px;
  font-weight: 700;
  color: #333;
  margin: 0;
}

.recommend__hint {
  background: #88B8DF;
  color: #fff;
  font-size: 10px;
  border-radius: 999px;
  padding: 4px 10px;
  white-space: nowrap;
  position: relative;
}


.recommend__hint svg {
    position: absolute;
    bottom : -8px;
    right: 40px;
}

/* ===== スライダー領域 ===== */
.recommend__slider {
  max-width: 100%;
  margin: 0px 20px 16px 20px;
  position: relative;
}

.recommend__track {
  display: flex;
    gap: 16px;
  transition: transform 0.5s ease;
}

.recommend__slide {
  min-width: 208px;
  flex-shrink: 0;
}

.recommend__slide img {
  width: 208px;
  display: block;
  border-radius: 12px;
}

/* ===== ドット ===== */
.recommend__dots {
  margin-top: 12px;
  display: flex;
  justify-content: center;
  gap: 8px;
}

.dot {
  width: 32px;
  height: 8px;
  border-radius: 24px;
  background: #C9CCD1;
}

span.dot.active {
background: #E57645;
}

.system__inner {
  max-width: 640px;
  margin: 0 auto;
}

/* =============================
   ミニメイドの強み
============================= */
.strengths {
  background: linear-gradient(180deg, #FFF5EE 0%, #FFEBDB 100%);
  padding: 64px 20px;
  text-align: left;
}

.strengths__title {
  font-size: 20px;
  font-weight: 700;
  color: #333;
  margin-bottom: 24px;
  line-height: 0.8;
}

.strengths__title span {
    color: #e57645;
    font-size: 18px;
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: 8px;
    letter-spacing: 1.44px;
}

/* 各項目 */
.pointbox {
  width: 8px;
  height: auto; 
  background: #A6015D;
}

.strengths__list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.strengths__item {
  display: flex;
  align-items: stretch;
  border-radius: 8px;
  overflow: hidden;
}

.strengths__no {
  background: #A6015D;
  color: #fff;
  font-size: 14px;
  letter-spacing: 1.5px;
  font-weight: 700;
  display: inline-block;
  padding: 0% 10px;
  border-radius: 16px;
  font-weight: 500;
  width: fit-content;
  font-family: 'Roboto';
}

.strengths__heading {
  font-size: 20px;
  line-height: 1.4;
  font-weight: 700;
  color: #A6015D;
  margin: 0;
}

.strengths__content {
  flex: 2; /* ← テキスト側を広めに */
  background: #fff;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  justify-content: center;
}

.strengths__text {
  font-size: 12px;
  color: #333;
  line-height: 1.6;
  margin: 0;
}

.strengths__image {
  flex: 1; /* ← 画像側をやや小さめに */
  overflow: hidden;
}

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

.strengths__image-pc {
  display: none; /* SPでは非表示 */
}

.strengths__image img {
  width: 100%;
  display: block;
}




/* =============================
   サービス内容
============================= */
.service {
  background: linear-gradient(180deg, #FFF7F7 0%, #F9DFDD 100%);
  padding: 64px 20px;
}

.service__title {
  font-size: 20px;
  font-weight: 700;
  color: #333;
  margin-bottom: 16px;
}

.service__title span {
  color: #e57645;
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 18px;
}

.service__head {
display: flex;
gap: 8px;
}

.service__lead {
  font-size: 14px;
  color: #333;
  margin-bottom: 32px;
}

.service__list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.service__item {
  background: #FDF3F2;
  border-radius: 24px;
  box-shadow: 0 4px 24px 0 #EBC3C0;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.no-heding {
    display: flex;
    flex-direction: row;
    gap: 8px;
    align-items: center;
}

.service__no {
  background: #754C48;
    color: #fff;
    font-size: 14px;
    letter-spacing: 1.5px;
    font-weight: 700;
    display: inline-block;
    padding: 0% 8px;
    border-radius: 16px;
    font-weight: 500;
    width: fit-content;
    font-family: 'Roboto';
}

.service__heading {
  color: #754C48;
  font-size: 18px;
  margin: 8px 0;
}

.service__text {
  font-size: 14px;
  color: #966562;
  margin: 0px;
}

.no-heding-service__text {
  display: flex;
  flex-direction: column;
}


.service__img img {
  width: 100%;
  border-radius: 8px;
  margin-bottom: 12px;
}

.service__icons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
}

.service__icons img {
  width: 100%;
  max-width: 80px;
}

/* CTA */
.service__cta {
    display: flex;
    text-align: center;
    background: #fff;
    padding: 24px 16px;
    flex-direction: column;
    gap: 8px;
    border-radius: 24px;
    border: 3px solid var(--E57645, #E57645);
    position: relative;
}

.service__cta_sp {
    display: flex;
    text-align: center;
    background: #fff;
    padding: 24px 16px;
    flex-direction: column;
    gap: 8px;
    border-radius: 24px;
    border: 3px solid var(--E57645, #E57645);
    position: relative;
}


.service__cta_pc {
    display: none;
    text-align: center;
    width: 680px;
    background: #fff;
    padding: 24px 16px;
    flex-direction: column;
    gap: 8px;
    border-radius: 24px;
    border: 3px solid var(--E57645, #E57645);
    position: relative;
}

.service__cta-text {
    color: #E57645;
    font-weight: 700;
    margin: 0;
}

.btn-orange {
    display: flex;
    background: #E57645;
    color: #fff;
    border-radius: 8px;
    text-align: center;
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 0px;
    height: 60px;
    flex-direction: column;
    justify-content: center;
    box-shadow: 0 4px 0 0 #A65911;
    text-decoration: none;
    margin-bottom: 8px;
    position: relative;
}

.btn-orange::after {
  content: url(/img/pages/top/arrow.svg);
  position: absolute;
  right: 16px;
}

.btn-green {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #44B13C;
  color: #fff;
  border-radius: 8px;
  padding: 12px;
  font-weight: 700;
  text-decoration: none;
  gap: 8px;
  position: relative;
  box-shadow: 0 4px 0 0 #1C7E1B;
}

.btn-green::after {
  content: url(/img/pages/top/arrow.svg);
  position: absolute;
  right: 16px;
}

.btn-phone-icon {
  width: 18px;
  height: 18px;
}

.service-icon-text {
  display: flex;
  flex-direction: column;
}

.service-icon-text span {
  font-weight: bold;
  font-size: 12px;
  color: #E96046;
  text-align: center;
}

.btn-green div {
  display: flex;
  flex-direction: column;
  font-family: "Roboto";
}
.btn-green div div {
  display: flex;
  flex-direction: row;
  align-items: center;
}

.btn-green div span {
  font-size: 8px;
  opacity: 0.9;
}


.servicelist {
  background: linear-gradient(180deg, #FFF5EE 0%, #FFEBDB 100%);
  padding: 64px 20px;
}

.servicelist__title {
  font-size: 20px;
  font-weight: 700;
  color: #333;
  margin-bottom: 24px;
}

.servicelist__title span {
  color: #E57645;
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 18px;
}

.servicelist__block {
  margin-bottom: 8px;
}

.servicelist__category {
  font-size: 16px;
  font-weight: 700;
  color: #333;
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
}

.servicelist__hint {
  font-size: 10px;
  color: #fff;
  background: #CFAAA6;
  border-radius: 999px;
  padding: 2px 8px;
  position: relative;
}

.servicelist__hint svg {
    position: absolute;
    bottom : -8px;
    right: 40px;
}

.servicelist__block-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.tel-pc-text {
display: none;
font-size: 32px;
color: #E57645;
}

.tel-pc-text span {
font-size: 14px;
}

/* ====== スライダー部分 ====== */
.servicelist__slider {
  overflow-x: visible;
  position: relative;
}

.servicelist__track::-webkit-scrollbar {
  display: none;
}

.servicelist__track {
  display: flex;
  gap: 12px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  -ms-overflow-style: none;
  scrollbar-width: none;
  padding: 16px 20px 32px 20px;
  margin-left: -20px;
  margin-right: -20px;
}

.servicelist__card {
  flex-shrink: 0;
  width: 284px;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 4px 24px 0 rgba(221, 104, 40, 0.30);
  overflow: hidden;
  position: relative;
  text-decoration: none;
}

.servicelist__card img {
  width: 100%;
  height: 128px;
  object-fit: cover;
}

.servicelist__card-content {
  padding: 12px 40px 16px 16px;
}

.servicelist__card-content::after {
  content: url(/img/pages/top/arrow-gray.svg);
  position: absolute;
  right: 16px;
  bottom: 36px;
}

.servicelist__card-title {
  font-size: 16px;
  font-weight: 700;
  color: #333333;
  margin: 0 0 4px;
}

.servicelist__card-content p {
  font-size: 13px;
  color: #666;
  margin: 0;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ====== おすすめ・人気プラン ====== */
.servicelist__recommend {
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}

.servicelist__recommend-img img {
  width: 100%;
  display: block;
}

.servicelist__recommend-content {
  padding: 12px;
}

.servicelist__plan-name {
  font-size: 15px;
  font-weight: 700;
  color: #754C48;
}

.servicelist__plan-desc {
  font-size: 13px;
  color: #666;
}

.servicelist__slider::-webkit-scrollbar {
  display: none;
}

.slider-arrow {
    display: none;
}

/* ========== ご提供エリアセクション ========== */
.area-section {
  padding: 64px 20px;
}

.area-label {
  color: #D86A41;
  font-size: 14px;
  margin-bottom: 4px;
}

.area-title {
  font-size: 26px;
  font-weight: 700;
  margin-bottom: 20px;
}

.area-legend {
max-width: 120px;
width: 30vw;
position: absolute;
top: 24px;
left: 0px;
}

.area-legend img {
width: 100%;
}

.legend {
  display: inline-block;
  width: 14px;
  height: 14px;
  margin: 0 6px 0 14px;
  border-radius: 2px;
}
.legend.on { background: #E57645; }
.legend.off { background: #FFEBDB; }

.svg-wrapper {
    position: relative;
    margin: 24px 16px;
}

.svg-wrapper svg {
  width: 100%;
  height: auto;
}

/* 説明文 */
.area-desc {
  font-size: 14px;
  line-height: 1.7;
  margin: 24px 0;
  color: #555;
}

/* アコーディオン */
.area-toggle {
  width: 100%;
  padding: 12px 16px;
  font-size: 16px;
  font-weight: 700;
  border: 2px solid #A2A2A2;
  background: #fff;
  color: #A2A2A2;
  border-radius: 50px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  position: relative;
}

.area-list {
  padding: 8px;
}

.area-toggle::after {
  content: url(/img/pages/top/minus-icon.svg);
  position: absolute;
  right: 16px;
  top: 14px;
}

/* エリアブロック */
.area-block {
  padding: 16px 0;
  border-bottom: 1px solid #ddd;
}

.area-block h3 {
  font-size: 16px;
  margin: 0px 0px 8px 0px;
}

.area-block a {
  display: inline-block;
  font-size: 15px;
  color: #333333;
  margin-right: 12px;
  text-decoration: none;
}

.area-block a svg {
  margin-left: 8px;
}

.area-map {
  position: relative;
    top: 0;
}

.area-head {
  position: relative;
}

.area-details{
  display: flex;
  gap: 8px;
}

/* 閉じた状態で隠す */
.area-list.is-closed {
  display: none;
}

/* ボタンのアイコン切り替え（＋） */
.area-toggle.closed::after {
  content: url(/img/pages/top/plus-icon.svg);
}

.area-toggle.closed {
    border: 2px solid #E57645;
    color: #E57645; 
}

/* CTA */
.area-cta {
  display: block;
  margin: 0 0 8px 0;
  padding: 14px 20px;
  text-align: center;
  background: #E57645;
  color: #fff;
  text-decoration: none;
  border-radius: 40px;
  position: relative;
  font-weight: 700;
}

.area-cta_pc {
  display: none;
  margin: 0;
  padding: 14px 20px;
  text-align: center;
  background: #E57645;
  color: #fff;
  text-decoration: none;
  border-radius: 40px;
  position: relative;
  font-weight: 700;
}


.area-cta::after {
  content: url(/img/pages/top/arrow.svg);
  position: absolute;
  right: 16px;
}

.area-cta_pc::after {
  content: url(/img/pages/top/arrow.svg);
  position: absolute;
  right: 16px;}

/* Q&A */
.faq-section {
  padding: 64px 20px;
  background: #FCEFE5; /* セクション背景 */
}

/* FAQカード全体 */
.faq-item {
  margin: 0;
  background: #fff;
  overflow: hidden;
}

/* 質問部分 */
.faq-question {
  width: 100%;
  border: none;
  background: #fff;
  color: #333;
  padding: 24px 16px;
  font-size: 16px;
  font-weight: 700;
  text-align: left;
  position: relative;
  cursor: pointer;
  display: flex;
  gap: 8px;
  justify-content: space-between;
  align-items: center;
  border-left: 4px solid #EDF2F6;
}

/* 回答部分 */
.faq-answer {
  font-size: 14px;
  line-height: 1.8;
  background: linear-gradient(90deg, #F5F3F1 0%, #EDF2F6 100%);
}


/* もっと見るボタン*/
.faq-more-btn {
  display: block;
  background: #E57645;
  color: #fff;
  text-align: center;
  padding: 20px;
  font-size: 18px;
  font-weight: 700;
  border-radius: 40px;
  margin-top: 20px;
  position: relative;
}

/* プラス/マイナスアイコン */
.faq-question::after {
  content: url(/img/pages/top/plus-icon.svg);
  transition: 0.2s;
}

/* 開いているときはマイナスに変更*/
.faq-item.open .faq-question::after {
  content: url(/img/pages/top/minus-icon.svg);
}

/* 開いたカードの左線色変更 */
.faq-item.open .faq-question {
  border-left: 4px solid #E57645;
}

.faq-list {
  display: flex;
  gap: 8px;
  flex-direction: column;
  margin-bottom: 32px;
}


.Qicon {
  display: none;
}

.Aicon {
  display: none;
}

/* アニメーション共通 */
.accordion-content {
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.35s ease;
}


.area-list {
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.35s ease;
}

.area-list.is-closed {
  max-height: 0 !important;
  transition: max-height 0.35s ease;
}

.faq-answer-inner {
  padding: 22px;
  font-size: 14px;
  line-height: 1.8;
}


/* セクション背景 */
.reviews-section {
  background: #EDF2F6;
  padding: 64px 20px;
}

/* レビューブロック一覧 */
.reviews-list {
  display: flex;
  flex-direction: column;
  gap: 32px;
  margin: 0;
}

/* カード本体 */
.review-card {
  background: #fff;
  border-radius: 12px;
  padding: 24px;
  box-shadow: 0px 4px 16px rgba(0,0,0,0.08);
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* タグ */
.review-tag {
  color: #333;
  font-size: 13px;
  font-weight: 700;

}

.review-tag span {
  display: inline-block;
  background: #E57645;
  color: #fff;
  padding: 2px 12px;
  border-radius: 20px;
  margin-right: 4px;
}

/* 上部のプロフィール部分 */
.review-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
}

.review-user-img {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  object-fit: cover;
}

.review-user-info .review-title {
  font-size: 16px;
  font-weight: 700;
  margin: 0px;
}

.review-user-info .review-meta {
  font-size: 13px;
  color: #666;
  margin: 0;
}

/* 本文 */
.review-text {
  font-size: 14px;
  line-height: 1.6;
  margin: 0;
  color: #6D6D6D;
}

/* テーブル */
.review-table {
  width: 100%;
  border-collapse: collapse;
  margin: 0;
  font-size: 13px;
  border-radius: 4px;
  overflow: hidden; 
}

.review-table th {
  background: #333;
  color: #fff;
  padding: 8px;
  font-weight: 700;
}

.review-table td {
  background: #fff;
  padding: 8px;
  border: 1px solid #eee;
  text-align: center;
}

/* CTA */
.review-cta {
    display: flex;
    gap: 8px;
    width: fit-content;
    margin-left: auto;
    border: 1px solid #E57645;
    color: #E57645;
    padding: 8px 12px;
    border-radius: 30px;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    align-items: center;
}

/* Contact セクション背景 */
.contact-section {
  background: #FAEDE3;
  padding: 40px 20px 60px;
}

/* イラスト中央配置 */
.contact-illust {
    margin: 0;
    position: absolute;
    right: 15px;
    top: -94.5px;
    width: 120px;
}

.contact-illust img {
  width: 100%;
  height: auto;
}

/* 説明文エリア */
.contact-desc p {
  font-size: 14px;
  line-height: 1.8;
  margin-bottom: 16px;
}

.contact-desc span {
  font-size: 12px;
}



/* =====================
   PC版全体
===================== */
@media (min-width: 1024px) {
.fv-text1 {
font-size: 32px;
}

.fv-text2 {
  font-size: 40px;
}

.fv-text3 {
  font-size: 48px;
}

.fv__badge {
  font-size: 16px;
}

.fv__image-sp {
  display: none;
}
.fv__copy{
  width: 414px;
  margin-bottom: 16px;
}

.fv {
  height: 600px;
  overflow:initial;
  position: relative;
  padding: 0;
}

.fv__inner {
  margin: 0;
}

/* =========================================
   PC版 FVボタン アニメーション設定 (修正・統一版)
   ※古い .fv-btn .light の記述は必ず削除してください
========================================= */

.fv-btn {
  display: flex;
  color: #FFF;
  font-weight: 700;
  font-size: 20px;
  width: 414px;
  height: 70px;
  align-items: center;
  flex-direction: column;
  justify-content: center;
  border-radius: 48px;
  text-decoration: none;
  position: relative;
  
  /* 光がはみ出さないようにマスクする */
  overflow: hidden;

  /* 背景色アニメーション (2.4sループ) */
  background: linear-gradient(180deg, #E57645 0%, #DB551B 100%);
  background-size: 100% 100%;
  animation: fvBtnBgPulse 2.4s ease-in-out infinite;
  
  z-index: 1; 
}

/* ボタン内の文字などを光より上にする設定 */
.fv-btn > span:not(.light),
.fv-btn {
  z-index: 2; 
}

/* 光るライン (.light) の設定 */
.fv-btn .light {
  display: block;
  content: ""; 
  position: absolute;
  top: 0;
  left: 0;
  
  /* 光の幅 */
  width: 60px; 
  height: 100%; 
  
  /* グラデーション */
  background: linear-gradient(to right, 
    rgba(255, 255, 255, 0) 0%, 
    rgba(255, 255, 255, 0.8) 50%, 
    rgba(255, 255, 255, 0) 100%
  );
  
  /* 初期位置 */
  transform: translateX(-150px) skewX(-30deg);
  
  /* アニメーション適用 */
  animation: fvBtnSheen 2.4s linear infinite;
  
  pointer-events: none;
  z-index: 10; 
}

/* --- 光の移動アニメーション --- */
@keyframes fvBtnSheen {
  0% {
    transform: translateX(-150px) skewX(-30deg);
    opacity: 0;
  }
  1% {
    opacity: 1;
  }
  15% {
    /* 右端へ移動 */
    transform: translateX(500px) skewX(-30deg); 
    opacity: 1;
  }
  16% {
    opacity: 0;
  }
  100% {
    transform: translateX(500px) skewX(-30deg);
    opacity: 0;
  }
}

/* --- 背景色の変化アニメーション --- */
@keyframes fvBtnBgPulse {
  0% {
    opacity: 1;
  }
  15% {
    opacity: 0.8;
  }
  30% {
    opacity: 1
  }
  100% {
    opacity: 1
  }
}

.fv-btn::after {
    content: url(/img/pages/top/arrow.svg);
    position: absolute;
    right: 16px;
}

.fv-btn span {
  font-size: 14px;
}

.fv__cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 414px;
}

.fv-tel-pc-text {
    display: flex;
    font-size: 24px;
    color: #E57645;
    flex-direction: row;
    align-items: center;
    gap: 16px;
}

.fv-tel-pc-text span {
  font-size: 14px;
  font-weight: 700;
}

.fv-tel-pc-text div{
  display: flex;
  flex-direction: row;
  font-family: "Roboto";
  justify-content: center;
  align-items: center;
  gap: 8px;
}

/* =========================================
   PC版 FV 無限ループアニメーション
========================================= */
.fv__image-pc {
  display: flex;
  position: absolute;
  top: 0;
  right: -56px;
  gap: 24px;
  height: 600px;
  z-index: 0; 
}

@keyframes fvLoopSlide {
  0%   { transform: translateY(0); }
  100% { transform: translateY(-136vw); } 
}

/* --- 左列 (.fv__image-pc01) --- */
.fv__image-pc01 {
  width: 28vw;
  max-width: 420px;
  display: flex;
  flex-direction: column;
  line-height: 0;
  animation: fvLoopSlide 40s linear infinite;
  gap: 20px;
  will-change: transform;
}

.fv__image-pc01 img {
  width: 100%;
  height: auto;
  display: block;
  vertical-align: bottom; /* 隙間防止 */
}

/* --- 右列 (.fv__image-pc02) --- */
.fv__image-pc02 {
  width: 28vw;
  max-width: 420px;
  display: flex;
  flex-direction: column;
  line-height: 0;
  gap: 20px;
  animation: fvLoopSlide 35s linear infinite;

  will-change: transform;
}

.fv__image-pc02 img {
  width: 100%;
  height: auto;
  display: block;
  vertical-align: bottom;
}
/* =========================================
   PC版 FV 無限ループアニメーション終わり
========================================= */

.fv__news-sp {
  display: none;
}

.fv__news-label {
  border-radius: 24px;
  height: auto;
}

.fv__newsjr {
    margin: 0;
    height: auto;
    width: 100%;
    background: none;
    border-radius: 0;
    box-shadow: none;
    padding: 0;
}

.fv__news-text {
  text-align: left;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
}

.fv__news-pc {
  display: block;
  width: 360px;
  padding: 16px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.80);
  box-shadow: 0 4px 24px 0 #E19D88;
  backdrop-filter: blur(5px);
}

.fv__news-link-pc {
  text-decoration: none;
  color: inherit;
  display: block;
  /* フェードインアニメーション用 */
  transition: opacity 0.3s;
}

.fv__news-link-pc:hover {
  opacity: 0.7;
}

.fv-recommend {
  background: #EDF1F4;
  padding: 154px 40px 0 40px;
  overflow: hidden;
}

.fv-recommend-chilled {
  position: relative;
  margin: 0 auto;
  max-width: 1280px;
}

.recommend {
  position: absolute;
  bottom: 24px;
  width: 500px;
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.70);
  padding: 16px;
  box-shadow: 0 4px 24px 0 #BDD0DD;
}

.recommend__header {
  margin: 0 auto 8px;
  padding: 0 8px;
}

.recommend__slide {
    min-width: 194px;
}

.recommend__slider {
  margin: 0px 8px 16px 8px;
}

.recommend__hint {
  display: none;
}

.system__inner{
    max-width: 1120px;
    }
.brnone {
    display: none;
}
.strengths__title{
    font-size: 28px;
}

.strengths__title span{
    font-size: 18px;
}

  /* PC画像を表示、SP画像を非表示 */
  .strengths__image-pc {
    display: block;
  }

  .strengths__image {
    display: none;
  }

  /* レイアウト */
  .strengths__list {
    gap: 24px;
    flex-direction: row;
  }

  .strengths__item {
    flex: 1;
    background: #fff;
    box-shadow: 0 4px 20px rgba(0,0,0,0.06);
    overflow: hidden;
    flex-direction: column;
  }

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

  .pointbox {
    height: 8px;
    width: 100%;
  }

  .strengths__content {
    padding: 32px 24px 40px;
    justify-content: flex-start;
  }

  .strengths__heading {
    font-size: 24px;
    margin-bottom: 8px;
  }

  .strengths__text {
    font-size: 16px;
    line-height: 1.7;
  }
.strengths__no {
    font-size: 16px;
}

.service__lead{
    font-size: 16px;
}

.service__heading{
    font-size: 22px;
}

.service__text {
    font-size: 16px;
}

.service__list {
    gap: 32px;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
}

.service__item {
    width: 48%;
    padding: 24px 32px;
}

 .service__cta{
    width: 48%;
    justify-content: center;
    padding: 24px 32px;
 }

 .service__icons img {
    max-width: 80px;
 }
 
 .service__img{
    max-width: 100px;
 }

 .service__icons{
    gap: 16px;
 }

 .service__cta-text{
    font-size: 24px;
 }

.btn-green {
    display: none;
}

.tel-pc-text {
    display: flex;
    flex-direction: column;
}

.tel-pc-text div{
    display: flex;
    flex-direction: row;
    font-family: "Roboto";
    justify-content: center;
    align-items: center;
    gap: 8px;
}

.btn-phone-icon {
width: 24px;
height: 24px;
}

.servicelist__category{
    font-size: 20px;
}

.servicelist__block {
    margin-bottom: 16px;
}

.servicelist__card {
    width: 320px;
}

.servicelist__track {
    gap: 16px;
}

  
  /* ボタンの共通スタイル */
  .slider-arrow {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 56px;
    height: 56px;
    border-radius: 40px; /* 円状 */
    border: 3px solid var(--E57645, #E57645);
    background: var(--fff, #FFF);
    box-shadow: 0 4px 24px 0 #EBC3C0;
    cursor: pointer;
    z-index: 10;
    
    /* 位置調整用 */
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    transition: background 0.3s, opacity 0.3s;
  }

  /* ホバー時の挙動（任意：少し薄くする等） */
  .slider-arrow:hover {
    opacity: 0.8;
  }

  /* 位置：左ボタン */
  .arrow-prev {
    left: -64px; /* ボタンの半分だけ外に出す */
  }

  /* 位置：右ボタン */
  .arrow-next {
    right: -64px;
  }

.slider-arrow.is-disabled {
  opacity: 0.4;
  pointer-events: none;
  cursor: default;
}
.svg-wrapper {
    width: 536px;
}

.servicelist__hint {
    display: none;
}


.area-set {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between; 
}

.area-section-cta {
  display: none;
}


.area-cta_pc {
  display: block;
}

.reviews-list {
    gap: 16px;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
}
.review-card{
    width: 48%;
}

.QQQ {
  display: flex;
}

.Qicon {
  background: #EDF2F6;
  width: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.Aicon {
  width: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.faq-item.open .Qicon {
  background: #E57645;
}

.faq-question {
  border-left: 0px solid #EDF2F6;
}


.faq-item.open .faq-question {
  border-left: 0px solid #E57645;
}

.faq-answer {
  display: flex;
  flex-direction: row;
  align-items: center;
}

.faq-answer-inner{
  font-size: 16px;
}

.faq-question {
  font-size: 18px;
}

.contact-desc p {
  font-size: 16px;
}


.service__cta_sp {
    display: none;
}


.service__cta_pc {
    display: flex;
}
/* =====================
   PC版全体終わり
===================== */
.contact_layout {
  display: flex;
  gap: 24px;
}

/* =========================================
   共通：ボタン ホバーアクション (不透明度60%)
   ※既存のスタイル記述よりも後に追記してください
========================================= */

/* 1. アニメーションの滑らかさを設定 (transition) */
.fv-btn,
.btn-orange,
.btn-green,
.area-cta,
.area-cta_pc,
.review-cta,
.area-toggle,
.slider-arrow,
.recommend__slide,
.QQQ,
.servicelist__card
{
  transition: opacity 0.3s ease;
  cursor: pointer;
}

/* 2. ホバー時の不透明度設定 (opacity) */
.fv-btn:hover,
.btn-orange:hover,
.btn-green:hover,
.area-cta:hover,
.area-cta_pc:hover,
.review-cta:hover,
.area-toggle:hover,
.slider-arrow:hover,
.recommend__slide:hover,
.QQQ:hover,
.servicelist__card:hover
{
  opacity: 0.4;
}

/* 補足: スライダーボタンの非活性時(.is-disabled)は
   前回の記述(pointer-events: none)によりホバー反応しないため、
   0.4 のまま維持されます。 */

}



/* ====== スクロールで出現するアニメーション（共通） ====== */
.js-animate {
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity 1s cubic-bezier(.16,.84,.24,1),
    transform 1s cubic-bezier(.16,.84,.24,1);
  transition-delay: var(--animate-delay, 0ms);
  will-change: opacity, transform;
  /* 視覚的により滑らかに見えるように少しだけ backface-visibility を指定 */
  backface-visibility: hidden;
}

/* バリエーション（data-animate の値で切替） */
.js-animate[data-animate="fade-up"] { transform: translateY(20px); }
.js-animate[data-animate="slide-left"] { transform: translateX(36px); }
.js-animate[data-animate="slide-right"] { transform: translateX(-36px); }
.js-animate[data-animate="zoom-in"] { transform: scale(0.96); }

/* 表示状態 */
.js-animate.is-visible {
  opacity: 1;
  transform: none;
}

/* データ属性で遅延(ms)を指定可能（例: data-delay="200"） */
.js-animate {
  --animate-delay: 0ms;
}

/* 便利な遅延プリセット（必要なら使う） */
.js-animate[data-delay="100"] { --animate-delay: 100ms; }
.js-animate[data-delay="200"] { --animate-delay: 200ms; }
.js-animate[data-delay="400"] { --animate-delay: 400ms; }
