@charset "UTF-8"; 
html {
        height: 100%; 
      }

body {
        margin: 0;
       width: 100%;
        height: 100%; 
        font-family: Marcellus SC;
      }

.container {
    width: 100%;
    height: 100vh; 
    position: relative;

  }

  * {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
  }

a {
  color: inherit;         /* 親要素の文字色を引き継ぐ */
  text-decoration: none;  /* 下線を消す */
}

/* nav初期表示 */
.nav{
  background-color: #DDD6CB;
  width: 90%;
  height: 100vh;
  position: fixed;
  left:0;
  top:0;
  z-index: 100;
  transform: translateX(-100%);
  transition: transform 0.4S ease;
  padding: 24px 6.4%;
  padding-top: 90px;
  color: #704535;
  line-height: 60px;
  font-family: 'Noto Serif JP', serif;
}

.nav ul {
  list-style: none;        /* ・を消す */
  padding: 0;              /* 余白も消す */
  margin: 0;
}
.nav__logo{
  padding-top: 25px;
}

.nav a {
  text-decoration: none;   /* 下線を消す */
  color: #704535;          /* 好きな色に変更 */
}

.nav.open {
  transform: translateX(0); /* 表示状態 */
}

@media screen and (min-width: 1025px) {
  .nav {
    transform: translateX(0); /* ナビ常時表示 */
    position: static;
    width: 100%;
    height: auto;
    background-color: transparent;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 5%;
  }
 
  .nav__list {
    display: flex;
    gap: 40px;
  }

  .nav__item {
    line-height: 1;
  }

  #menu-btn,
  #close-btn {
    display: none; /* ハンバーガーと閉じるボタン非表示 */
  }
}

  /* 【メイン】*/
/* スライダーを上下に並べて同時表示するためのラッパー */
.slider-wrapper {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 0;
    position: relative;
    z-index: 1;
  }
  
  .slider-container {
    width: 100%;
    overflow: hidden;
    position: relative;
    display: flex;
  }

  /* トラック：画像を横並びにして動かす部分 */
  .top-slider .slider-track {   
    display: flex;
    animation: scrollSliderRightToLeft 40s linear infinite;
}
    
  .slider-track img{
    width: 100%;
    height: 359px;
    object-fit: cover;
  }

 /* アニメーション：右→左 */
@keyframes scrollSliderRightToLeft {
    0% {
      transform: translateX(0%);  
    }
    100% {
      transform: translateX(-100%);  
    }
  }
  

  /* スライダーの上に重ねるコンテンツ */
.title {
    color:white;
    font-size: 32px;
    font-family: Marcellus SC;
    font-weight: 400;
    word-wrap: break-word;
    text-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
    position: absolute;
    transform: translate(-50%, -50%); /* 真ん中に表示 */
    z-index: 2;
    position: absolute;
    top:314px;
    left: 50%;
   
  }

  /* 画面幅1025px以上のときにtopを700pxに変更 */
@media screen and (min-width: 1025px) {
  .title {
    top: 500px;
    font-size: 48px;
  }
}
 
  /* ハンバーガーメニュー */
.hamburger {
    position: absolute;
    top: 30px;     /* 上から30px */
    right: 24px;    /* 左から24px */
    width: 30px;
    height: 22px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    cursor: pointer;
    z-index: 3;    /* メニューが他の要素より前に来るように */
  }

.sabtitle {
        color: white;
        font-size: 10px;
        font-family: 'Marcellus SC', serif;
        font-weight: 450;
        word-wrap: break-word;
        position: absolute; /* 絶対位置で重ねる */
        top: 360px; /* 画像上に表示 */
        left: 50%; /* 中央に配置 */
        transform: translateX(-50%); /* 水平中央寄せ */
        z-index: 2;
        text-shadow: 0px 2px 5px rgba(0, 0, 0, 0.7);
        text-align: center;
   }

     /* 画面幅1440px以上のときにtopを700pxに変更 */
@media screen and (min-width: 1025px) {
  .sabtitle {
    top: 560px;
    font-size: 16px;
  }
}
   .bottom-slider .slider-track2 { 
    display: flex;
    animation: scrollSliderLeftToRight 40s linear infinite;
  }

  .slider-track2 img {
    height: 359px;
    object-fit: cover;
  }
  /* アニメーション：左→右 */
  @keyframes scrollSliderLeftToRight {
    0% {
      transform: translateX(-100%); 
    }
    100% {
      transform: translateX(0%);  
    }
  }
  .slider-track img, .slider-track2 img {
    width: 100vw;  /* 横幅を親要素に合わせる */
    max-width: 1000px;
}

/* 画面の横幅が1440px以上のときに高さを700pxに */
@media screen and (min-width: 1025px) {
  .slider-track img,
  .slider-track2 img {
    height: 700px;
  }
}
/* /* 画面の横幅が768px以上のときに高さを700pxに  */
@media screen and (min-width: 1025px) {
  .slider-track img,
  .slider-track2 img {
    height: 400px;
  }
}

 /* 【私たちの想い】*/
 .main-container,
.main-container2 {
  width: 100vw;
  box-sizing: border-box;
  background-color: #fff; /* 2つ目に色をつけて分かりやすく */
  position: relative;
  font-family: 'Inria Serif', serif; 
}
.main-container{
    background-color:#E9E0DB;
}

.cta-button-border {
    width: 139px;
    height: 31px;
    border: 1px solid #E9E0DB;
}

.cta-more-text {
    display: inline-block;
    color: #704535;
    font-size: 16px;
    text-decoration: none;
    transition: color 0.3s, font-size 0.3s;
    padding-left: 70%;
}

.cta-more-text:hover{
    color: navy;
    font-size: 24px;
}
.cta-more-text::after{
    content: '›››';
    display: inline-block;
    margin-top: 5px;
    font-size: 18px;
    color: #704535;
    transition: color 0.3s, font-size 0.3s;
  }

.cta-more-text:hover::after {
    color: navy;
    font-size: 24px;
  }

.section-title-vertical {
    width: 13px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    color: #704535;
    font-size: 24px;
    letter-spacing: 5.6px;
    word-wrap: break-word;
    font-family: 'Noto Serif JP', serif;
    
    align-self: flex-end;      /* Flexの中で右寄せ */
    padding-left: 10%;
    writing-mode: vertical-rl;
    margin-bottom: 20px; /* 下との余白 */
}

.company-description {
    /* width: 298px; */
    height: 331px;
    color: #704535;
    font-size: 14px;
    line-height: 30px;
    word-wrap: break-word;
    padding: 25px;
    margin-bottom: 40px;
}

@media (min-width: 1025px) {
  .company-description {
      width: 100%;
      margin: 0 auto; /* 中央寄せ */
      padding: 50px;
  }
}

@media (min-width: 600px) {
  .company-description {
      width: 100%;
      margin: 0 auto; /* 中央寄せ */
      padding: 50px;
      text-align: left;
  }
}

.company-logo {
    width: 168.75px;
    height: 73px;
    margin-top: 200px;
    margin-left: 60px;
} 
@media (min-width: 1025px) {
  .company-logo {
    margin-left: 60px;
  }
}

.Polygon{
    margin-top: 20%;
    padding: 0px;
    vertical-align: middle;
    width: 100%;
}
.omoi{
    display: flex;
}

/* レスポンシブ */
@media (min-width: 600px) {
  .omoi {
      justify-content: space-evenly;
      padding-top: 100px;
  }
}

@media (min-width: 1025px) {
  .omoi {
      justify-content: space-evenly;
      padding-top: 160px;
  }
}

@media (min-width: 1025px) {
  .omoi {
      justify-content: space-evenly;
      /* padding-top: 160px; */
  }
}

/* 【私たちの強み】*/ 
.main-container2 {
    background-color: #DDD6CB;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    font-family: Noto Serif JP; 
    margin-top: -2px;
  }

  

   @media screen and (min-width: 600px) {
    .main-container2 {
    margin-top: -5px;
    justify-content: space-around;
  }
    .description,
    .detailed-description,
    .background-story {
      /* max-width: 1000px; */
      margin: 0 auto;
    }
  }

  @media screen and (min-width: 1025px) {
    .main-container2 {
    margin-top: -9px;
  }
    .description,
    .detailed-description,
    .background-story {
      /* max-width: 1000px; */
      margin: 0 auto;
    }
  }
  /*-----------  */

  .section-title {
    font-size: 24px;
    color: #704535;
    margin-bottom: 80px;
    letter-spacing: 5.6px;
    writing-mode: vertical-rl; /* 縦書き（右から左へ） */
    font-family: 'Noto Serif JP', serif;
    padding-right: 80%;
    padding-top: 80px;
}


  .highlight-text {
    font-size: 20px;
    font-weight: bold;
    color: #704535;
    line-height: 1.6;
    margin-bottom: 16px;
    padding: 32px;
    border-bottom: 2px solid #704535;
    display: inline-block;
    padding-bottom: 2px;
    width: 300px;
  }
  
  .description {
    font-size: 16px;
    color: #704535;
    line-height: 1.8;
    margin-bottom: 20px;
    max-width: 340px;
    padding-left: 32px;
  }
  
   
  .sub-title {
    font-size: 20px;
    font-weight: bold;
    color: #704535;
    line-height: 1.6;
    margin-bottom: 16px;
    padding: 32px;
    border-bottom: 2px solid #704535;
    display: inline-block;
    padding-bottom: 2px;
    width: 330px;
  }
  
  .detailed-description {
    font-size: 16px;
    color: #774E3E;
    line-height: 2;
    max-width: 340px;
    margin-bottom: 32px;
    padding-left: 32px;
  }
  
  .main-text {
    font-size: 20px;
    font-weight: bold;
    color: #704535;
    margin-bottom: 16px;
    padding: 32px;
    border-bottom: 2px solid #704535;
    display: inline-block;
    padding-bottom: 2px;
    width: 330px;
  }
  
  .background-story {
    font-size: 16px;
    color: #704535;
    line-height: 2;
    max-width: 348px;
    margin-bottom: 150px;
    padding-left: 32px;
  }
  
  .about-representative {
    font-size: 16px;
    color: #704535;
    cursor: pointer;
    transition: all 0.3s ease;
    position: absolute;
    right: 10%;
    bottom: 50px;
    font-family: 'Noto Serif JP', serif;
  }
  
  .about-representative::after {
    content: ' ›››'; /* 矢印 */
    margin-left: 5px; /* 文字と矢印の間に少し余白 */
    font-size: 18px;
    color: #704535; /* 矢印の色 */
    transition: all 0.3s ease; /* 矢印のアニメーション */
  }
  
  .about-representative:hover {
    color: navy; /* マウスオーバー時のテキスト色 */
    font-size: 24px; /* マウスオーバー時のフォントサイズ */
  }
  
  .about-representative:hover::after {
    color: navy; /* マウスオーバー時の矢印の色 */
    font-size: 24px; /* マウスオーバー時の矢印のサイズ */
  }
  

.toiawase {
    width: 60px;
    height: 60px;
    display: none; /* 最初は非表示 */
    position: fixed;
    top: 90%;   /* 画面下から30px */
    right: 3%;    
    z-index: 1000;
    opacity: 0.9; /* 透過を適用 */

}

@media screen and (min-width: 600px) {
  .toiawase {
     top: 50%;
  }

  .about-representative {
   bottom: 100px;
  }
}
@media screen and (min-width: 1025px) {
  .toiawase {
    width: 100px;
    height: 100px;
  }

  .about-representative {
   bottom: 100px;
  }
}

/* ========== 1025px以上のスタイル ========== */
@media (min-width: 1025px) {
  .main-container2 {
    padding: 80px 0;
  }

  .section-title,
  .highlight-text,
  .description,
  .main-text,
  .background-story {
    text-align: left;
    margin-left: 30%;
    margin-right: 10%;
    max-width: 800px;
  }

  .sub-title,
  .detailed-description{
    text-align: left;
    margin-left: 40%;
    margin-right: 10%;
    max-width: 800px;

  }

  .highlight-text,
  .description,
  .sub-title,
  .detailed-description,
  .main-text,
  .background-story {
    margin-top: 40px;
  }

  .sub-title {
    font-weight: 700;
    font-size: 20px;
    padding-top: 32px;
  }

  .detailed-description {
    font-size: 16px;
    line-height: 30px;
    color: #774E3E;
  }

  .main-text {
    font-weight: 700;
    font-size: 20px;
    margin-top: 80px;
    padding-top: 32px;
  }

  .background-story {
    font-size: 16px;
    line-height: 30px;
  }

  .toiawase {
    width: 80px;
    height: 80px;
    }
    

  .about-representative {
    display: block;
    text-align: right;
    margin-top: 30px;
    font-size: 16px;
    margin-right: 10%;
  }
}


/* 【事業紹介】*/ 
.main-container3 {
    width: 100%;
    margin: 0 auto;
    position: relative;
    font-family: Noto Serif JP;
    background-color:#E9E0DB;
    color: #704535;
    padding-bottom: 50px;
}


.main-image3 {
    width: 100%;
    height: auto;
    display: block;
    padding: 0;
}

.section-title3{
  padding-top: 80px;
  text-align: center;
  padding-bottom: 50px;
}

.business-section {
  padding: 30px 32px;
}

@media (min-width: 1025px) {
.business-section {
  padding: 30px 32px;
  max-width: 1000px;
  margin: 0 auto;
}

.business-title {
  width: 300px;
}
.business-title.faded {
  color: #704535;
}
}

.business-title {
    font-size: 20px;
    font-weight: 700;
    color: #704535;
    margin-bottom: 10px;
}

.divider {
    width: 204px;
    height: 1px;
    background-color: #704535;
    margin-bottom: 10px;
}

.business-description {
    font-size: 16px;
    color: #774E3E;
    line-height: 30px;
    width: 300px;
    }

.business-title {
      opacity: 0;
      transform: translateX(-50px);  /* 左から50pxずらして非表示 */
      animation: slideInLeft 0.8s ease-out forwards;
    }
    
    @keyframes slideInLeft {
      from {
        opacity: 0;
        transform: translateX(-50px);
      }
      to {
        opacity: 1;
        transform: translateX(0);
      }
    }
   
    @media screen and (min-width: 1025px) {
      .business-section {
        padding-top: 60px;
        padding-left: 15%;
        padding-bottom: 80px;
      }

    .main-container3 {
      width: 100%;
      margin: 0 auto;
      position: relative;
      font-family: Noto Serif JP;
      background-color:#E9E0DB;
      color: #704535;
      /* display: flex; */
      padding-bottom: 0;
  }
  .business-description {
    width: 570px;
    }

}
/* 【ご相談のながれ】*/ 
.main-container4 {
  position: relative;
  width: 100%;
  background-color: #DDD6CB;
  justify-content: center;
}

.flow-container2{
background-color: #DDD6CB;
font-family: Noto Serif JP;
}

.section-title44{
  background-color: #E9E0DB;
  
}
.section-title4 {
    color: #704535;
    font-size: 20px;
    font-family: Noto Serif JP;
    font-weight: 700;
    word-wrap: break-word;
    text-align: center;
    padding-top: 60px;
    padding-bottom: 60px;
    
}

.flow-description {
  width: 314px;
  font-size: 16px;
  line-height: 30px;
  color: #704535;
  justify-content: center;
  padding-left: 37px;
  font-family: 'Noto Serif JP', serif;
  padding-bottom: 100px;
}

.image4{
  width: 90px;
  height: 90px;
}

@media screen and (min-width: 600px) {
    .flow-container{
      padding: 60px 110px;
      text-align: center;
    }
    .flow-description {
      width: 100%;
      text-align: center;
    }
}

@media screen and (min-width: 1025px) {
  .main-image4{
    width: 50%;
    display: block;
    margin: 0 auto;
    padding-top: 80px;
  }
  
  .flow-description {
    margin: 0 auto;
  }
  }

/* カルーセル */
/* コンテナのスタイル */
.carousel-wrapper {
  width: 100%;
  overflow: visible;
  display: flex;
  justify-content: center;
  padding-bottom: 150px;
}

.carousel-track {
  display: flex;
  flex-direction: row; /* 横並びに設定 */
  gap: 25px; /* 画像の間にスペース */
  align-items: center;
  overflow: visible;
}

.carousel-img {
  width: 95px;
  height: auto; /* 高さを自動調整 */
  object-fit: cover;
  transition: transform 0.5s ease, z-index 0.5s;
}
.carousel-img.active {
  transform: scale(1.4);
  z-index: 1;
}

@media screen and (min-width: 1025px){
  .carousel-img {
    width: 180px;
  }
  .carousel-wrapper {
    padding-bottom: 250px;
  }
}



/* 【よくある質問】 */
/* スライダー全体のスタイル */
.slider-container {
  width: 100%;
  overflow: hidden; /* 画像が画面外に出ないように */
  position: relative; /* 位置調整のために相対的に配置 */
}

/* スライダー内の画像をまとめたトラック */
.slider-track3 {
  display: flex;
  animation: slide 20s linear infinite; /* スライドのアニメーションを設定 */
}

/* 画像のスタイル */
.slider-track3 img {
  width: 100%;  /* 画像が親要素の幅に合わせて表示 */
  height: auto; /* 高さは自動調整 */
  flex-shrink: 0; /* 画像が縮まないように */
  object-fit: cover;
  }

@media screen and (min-width: 600px){
.slider-track3 img {
  width: 50%;  /* 画像が親要素の幅に合わせて表示 */
  height: auto; /* 高さは自動調整 */
  flex-shrink: 0; /* 画像が縮まないように */
  object-fit: cover; /* 画像を枠に合わせて切り取られるように */
}
}

@media screen and (min-width: 1025px){
.slider-track3 img {
  width: 50%;  /* 画像が親要素の幅に合わせて表示 */
  height: 350px; /* 高さは自動調整 */
  flex-shrink: 0; /* 画像が縮まないように */
  object-fit: cover; /* 画像を枠に合わせて切り取られるように */
}
}
/* アニメーションの設定 */
@keyframes slide {
  0% {
      transform: translateX(0); /* 最初は元の位置 */
  }
  100% {
      transform: translateX(-100%); /* 画像が全て左にスライド */
  }
}

/* よくある質問 */
.main-container55{
  background-color:#E9E0DB;
}

.section-title4{
  color: #704535;
 font-size: 20px;
 font-family: Noto Serif JP;
 font-weight: 700;
 word-wrap: break-word;
 }

.faq-item {
  width: 100%;
  color: #704535;
  font-family: 'Noto Serif JP', serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 30px;
  word-wrap: break-word;
  background-color:#E9E0DB;
}

/* 初期状態：改行を表示 */
.responsive-br {
  display: inline;
}

/* 初期状態：改行を非表示 */
.br-1440 {
  display: none;
}

.br-600 {
  display: none;
}
/* 画面幅が1440px以上の場合：改行を非表示 */

@media screen and (min-width: 600px) {
  .br-600 {
  display: inline;
}
.responsive-br {
  display: none;
}
.br-1440 {
  display: none;
}
  }


@media screen and (min-width: 600px) {
.faq-container {
  margin: 0 auto;
  width: 400px;
 
}
.responsive-br {
  display: none;
}
.br-600 {
  display: none;
}
.br-1440 {
  display: inline;
}
}

.faq-question {
  font-weight: 700;
  margin-bottom: 8px;
  padding-left: 30px;
  text-align: center;
}

.faq-divider {
  margin: 8px 0;
  color: #704535;
  font-family: 'Noto Sans JP', sans-serif;
  padding-left: 35px;
  text-align: center;
}

.faq-answer {
  margin-top: 0;
  padding-right: 35px;
  padding-left: 35px;
  padding-bottom: 60px;
  text-align: left;
  margin: 0 auto;
  
}

.about-representative2 {
    font-size: 16px;
    color: #704535;
    cursor: pointer;
    transition: all 0.3s ease; 
    margin-top: 40px;
    
  }

.access-section {
  background: #DDD6CB;
  font-family: 'Noto Serif JP', serif;
  color: #704535;
  font-size: 16px;
  padding-bottom: 40px;
}

.access-map-img {
  width: 100%;
  height: auto;
  display: block;
}

@media screen and (min-width: 600px){
  .access-map-img {
    width: 70%;
    margin-left: 15%;
    padding-top: 80px;
  }
  .access-content {
  padding: 60px 50px;
}
  }

.access-content {
  padding: 60px 20px;
}

.access-title {
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 60px;
  text-align: center;
}

.access-info {
  line-height: 2;
  margin-bottom: 20px;
  font-size: 16px;
}

@media screen and (min-width: 600px){
  .access-content {
    padding: 90px 200px 80px 200px;
  }
  .access-section {
    display: flex;
    justify-content: space-around;
    padding-bottom: 0;
    }
  .access-map-img {
      width: 40%;
      opacity: 0.8;
              width: 30%;
        height: 50vh;
        margin-top: 60px; 
}
}

.parking {
  font-size: 10px;
}

.about-representative2 {
  display: flex;
  gap: 10px;
  align-items: center;
  cursor: pointer;
  transition: 0.3s;
  padding-left: 60%;
}

.about-representative2::after {
  content: '›››';
  margin-top: 5px;
  font-size: 18px;
  color: #704535;
  transition: 0.3s;
}

.about-representative2:hover {
  color: navy;
  font-size: 24px;
}

.about-representative2:hover::after {
  color: navy;
  font-size: 24px;
}

.access-map-icon {
  width: 24px;
  height: 24px;
}

  /* ニュース */
  .news-section {
    width: 100%;
    padding: 80px 20px;
    background-color: #E9E0DB;
    text-align: center;
  }

  @media screen and (min-width: 600px){
    .news-section {
      padding: 160px 20px;
      }
      }
  
  .news-title {
    color: #704535;
    font-size: 20px;
    font-family: 'Noto Serif JP', serif;
    font-weight: 700;
    margin-bottom: 60px;
  }
  
  .news-description {
    color: #704535;
    font-size: 16px;
    font-family: 'Noto Serif JP', serif;
    font-weight: 400;
    margin-bottom: 30px;
  }
  
  .news-icon img {
    width: 35px;
    height: 35px;
    display: block;
    margin: 0 auto;
  }
  /* footerあ */
  .contact-container {
    margin: 0 auto;
    padding: 20px;
    background-color: #023A62;
    display: flex;
    flex-direction: column;
    align-items: center;
    color: #fff;
    font-family: 'Noto Serif JP', serif;
  }
  
  .header-image {
    width: 70%;
    height: auto;
    margin-bottom: 20px;
  }

  @media screen and (min-width: 600px){
    .header-image {
      width: 50%;
      margin-top: 80px;
      margin-bottom: 60px;
      }

  .company-info {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    padding: 0 10px;
  }


  .company-info div {
    font-size: 14px;
    line-height: 1.8;
  }

    .company-info div {
    font-size: 16px;
    line-height: 1.8;
  }
  }

  .company-phone {
    font-size: 18px;
    font-weight: bold;
  }

  @media screen and (min-width: 600px){
    .company-phone {
      font-size: 20px;
      font-weight: bold;
    }
  }

  .logo {
    width: 95px;
    height: 95px;
    align-self: flex-end;
    margin-bottom: 10px;
  }
  
  .footer {
    width: 100%;
    text-align: center;
    margin-top: 50px;
    padding: 10px 0;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 10px;
  }
  .company-note{
    font-size: 10px;
  }
  /* ふぁ */