/* リセット */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: "Avenir Next", "Avenir", "Helvetica Neue", Helvetica, Arial,
    sans-serif;
  background-color: #fff;
  color: #000;
  line-height: 1.6;
  overflow-x: hidden; /* 横スクロールだけを防ぐ */
  overflow-y: auto; /* 縦スクロールは許可する */
}

.sp {
  display: none;
}

.section {
  padding: 80px 56px;
  margin: 0 auto;
}

h2 {
  font-size: 48px;
  margin-bottom: 15px;
  color: #000;
  text-align: left;
}

h3 {
  font-size: 32px;
  color: #333;
}

p {
  font-size: 20px;
  color: #555;
}

/* 動画 -----------------------------------------------------------*/
.video-wrapper {
  position: relative;
  padding-bottom: 45%; /* 高さを少し高めに調整（16:8=2:1の比率） */
  margin-bottom: 30px; /* 動画下の余白 */
  max-width: 1440px; /* 横幅の最大値を800pxに制限。お好みで調整してください */
  margin-left: auto;
  margin-right: auto;
}

.video-wrapper iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%; /* 幅は親要素（.video-wrapper）の幅に合わせる */
  height: 100%; /* 高さも親要素に合わせる */
  /* border-radius: 10px; ← お好きな値で角を丸くできます */
}

/* ヘッダー ----------------------------------------------------------------*/
.originalheader {
  background-color: rgba(0, 0, 0, 0.88); /* より黒く、透明度も下げる */
  color: white;
  padding: 20px 0;
}

.navbar ul {
  display: flex;
  justify-content: flex-end;
  padding-right: 20px;
  list-style: none;
  flex-wrap: wrap;
}

.navbar ul li {
  margin: 0 15px;
}
.navbar ul li a {
  color: white;
  text-decoration: none;
  font-size: 16px;
}

/* メインビジュアル ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー*/
.main-visual {
  width: 100%;
  text-align: center; /* 画像中央揃え（任意） */
  position: relative;
}

.main-visual img {
  width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
}

.main-visual-text {
  position: absolute;
  bottom: 5vw;
  left: 3vw;
  display: flex;
  flex-direction: column;
  gap: 20px;
  flex-wrap: wrap;
}

/*ボタン配色-----------------------------------------------------*/
.cta-btn {
  background-color: #0000cb;
  color: white;
  font-size: 20px;
  padding: 15px 60px;
  width: 30vw; /* 画面幅の10% */
  height: 5vw; /* 画面高さの10% */
  border: none;
  cursor: pointer;
  border-radius: 6px;
  letter-spacing: 0.1em; /* 文字間隔を広げる */
  text-decoration: none; /* リンクのアンダーバーを消す */
  display: flex;
  justify-content: center;
  align-items: center;
}

.cta-btn:hover {
  background-color: #1c54b2;
}

/*問い合わせボタン*/
#cta-btn-inquiry {
  background-color: white;
  color: #171717;
  /* border: 2px solid #171717; */
}

#cta-btn-inquiry:hover {
  background-color: #f0f0f0;
}

/* セクション2 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー*/
.section2 img {
  height: 550px;
  display: block;
  margin: 0 auto 40px;
  border-radius: 10px;
}
.section2 .area {
  max-width: 100%;
  padding: 0 20px;
  text-align: left;
}

/* セクション3　ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー */
/* セクション内部の基本的なプロパティ設定 */
.section3 {
  max-width: 1000px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.section3 .item {
  display: flex;
  background-color: #f1f1f1;
  flex-direction: column;
  align-items: center;
  border-radius: 15px;
  width: 45%;
  margin: 2%;
}

.section3 .image-container {
  margin: 20px;
}

.section3 .item img {
  width: 100%; /* 親要素の幅に合わせて画像の幅を縮小 */
  height: auto; /* アスペクト比を保ったまま高さを自動調整 */
  border-radius: 5px;
  margin-top: 5px;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

/* テキスト関連のプロパティ */
.section3 .text {
  text-align: left;
}
.section3 .text p {
  font-size: 20px;
}

/* セクション4 ----------------------------------------------------*/
/* セクション内部の基本的なプロパティ設定 */
.section4 {
  text-align: center;
}

.section4 img {
  width: 50%;
  height: auto;
}

.section4-1-bg {
  background-color: #1a1a1a;
}

.section4-1 {
  text-align: center;
}

.section4-1 h2 {
  text-align: center;
  margin-bottom: 50px;
  color: #fff;
}
.section4-1 .cta-container {
  display: flex;
  justify-content: center;
  gap: 30px;
}

@media (min-width: 769px) {
  .section4 .compare-img1 {
    padding-top: 15px;
    width: 47%;
  }
}

/*問い合わせボタン*/
.section4-1 #cta-btn-inquiry:hover {
  background-color: #e0e0e0;
}

/* セクション5 -----------------------------------------------------*/
/* セクション内部の基本的なプロパティ設定 */
.section5 img {
  max-width: 80%;
  width: 60%;
  min-width: 350px;
  height: auto;
  display: block;
  margin: 0 auto;
}

.section5 p {
  text-align: center;
}

/* セクション6 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー*/

/* セクション7 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー*/
.section7 p {
  padding-top: 20px;
  font-size: 32px;
}

/* 施工時間目安とユーザー希望販売価格のテーブルーーーーーーーーーーーーーーーー */
.section.spec {
  background: #1a1a1a;
}
.section.spec h2,
.section.spec h3,
.section.spec p {
  color: #fff;
}

.spec h3 {
  padding-top: 20px;
}

.spec-flex-table {
  display: flex;
  gap: 32px;
  justify-content: flex-start;
  align-items: flex-start;
  flex-wrap: wrap;
}
.spec-table-wrapper {
  flex: 1 1 120px;
  min-width: 280px;
}
.price-table-wrapper {
  max-width: 220px;
}
.spec-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 0;
}
.spec-table th,
.spec-table td {
  border: 1px solid #ccc;
  padding: 10px 16px;
  text-align: center;
  font-size: 18px;
}
.spec-table th {
  background: #f3f3f3;
  color: #1a1a1a;
  font-weight: bold;
  letter-spacing: 0.05em;
  border-color: #e0e0e0;
}
.price-table th,
.price-table td {
  background: #f9f9f9;
  font-size: 20px;
  color: #222;
}
@media (min-width: 768px) {
  .price-table {
    height: 181px;
  }
}

.section.spec .spec-table td {
  background: #fff;
  color: #222;
  border-color: #e0e0e0;
}
.section.spec .price-table th {
  background: #ff9800;
  color: #fff;
  font-weight: bold;
  letter-spacing: 0.05em;
  border-color: #e0e0e0;
}

.price-note {
  font-size: 0.85em;
  color: #888;
}

/* セクション8 ーーーーーーーーーーーーーーーーーーーーーーーーー*/
/* セクション内部の基本的なプロパティ設定 */
.section8 {
  text-align: center;
  background-color: #1a1a1a;
}

.section8 h2 {
  color: #fff;
  padding-bottom: 80px;
}

/* 円形アイコンの共通スタイル */
.circle-icon {
  position: relative;
  width: 700px;
  height: 600px;
  margin: 0 auto;
}

.circle-icon div:not(.center-logo) {
  position: absolute;
  width: 200px;
  height: 200px;
  background-color: #f1f1f1;
  border-radius: 50%;
  display: flex;
  flex-direction: column; /* ← これを追加 */
  align-items: center;
  justify-content: center;
  font-weight: bold;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
  padding: 10px;
  text-align: center;
}
.circle-icon div:not(.center-logo) p {
  color: black;
}

/* 各アイコン内の画像スタイル */
.circle-icon div:not(.center-logo) img {
  width: 50px;
  height: 50px;
  margin-bottom: 12px;
}

/* テキストが2行でも中央に見えるように調整 */
.circle-icon div:not(.center-logo) p {
  /* font-size: ; */
  line-height: 1.2;
  margin: 0;
}

/* 中央ロゴ用 */
.center-logo {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 350px;
  z-index: 10;
}

.center-logo img {
  width: 100%;
  height: auto;
}

/* 各アイコンの配置 */
#upper-left {
  top: 20%;
  left: -5%;
}

#upper-center {
  top: -5%;
  left: 50%;
  transform: translateX(-50%);
}

#upper-right {
  top: 20%;
  right: -5%;
}

#bottom-left {
  bottom: 5%;
  left: 15%;
}

#bottom-right {
  bottom: 5%;
  right: 15%;
}

/* セクション9 ーーーーーーーーーーーーーーーーーーーーーーー*/
/* 問い合わせセクション */
/* セクション内部の基本的なプロパティ設定 */
.inquiry {
  position: relative;
  background-image: url(https://files.bcart.jp/baruto/uploads/image/item.png);
  background-size: cover;
  background-position: center;
  height: 80vh;

  display: block;
  align-items: center;
  justify-content: center;
}

.overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.6); /* 黒の半透明 */
  z-index: 1;
}

.inquiry-text {
  position: relative;
  z-index: 2;
  text-align: center;
  padding: 30px;
}

.inquiry-text h2 {
  text-align: center;
  margin-top: 10px;
  color: #f1f1f1;
}
.inquiry-content {
  position: relative;
  z-index: 2;
  text-align: center;
  border-radius: 10px;
  max-width: 80%;
  background-color: #fff;
  opacity: 0.8;
  margin: 0 auto;
  padding: 20px;
}

.inquiry-content p {
  font-size: 24px;
}

.inquiry-btn {
  position: relative;
  z-index: 2;
  text-align: center;
  padding: 30px;

  display: flex;
  justify-content: center;
  gap: 30px;
}
/* フッター ーーーーーーーーーーーーーーーーーーーーーーーー*/
.footer {
  background-color: #333;
  color: white;
  text-align: center;
  padding: 20px 0;
  font-size: 14px;
}

.footer a {
  color: white;
}

@media (min-width: 768px) {
  .footer ul {
    display: flex;
    justify-content: center;
    list-style: none;
    padding: 0;
    margin: 0;
  }
  .footer ul li {
    margin: 0 15px;
  }
}

@media (max-width: 767px) {
  .footer {
    padding: 20px 10px;
  }

  .footer ul {
    list-style: none;
  }
}

/* カルーセル ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー*/
.carousel-container {
  width: 90%;
  overflow: hidden;
  padding: 0 20%; /* 両端に余白を追加して中央寄せ */
  padding-left: 20%;
  box-sizing: border-box;
  padding-bottom: 50px;
}

.carousel {
  display: flex;
  transition: transform 0.3s ease-in-out; /* スムーズなスライドを追加 */
  gap: 20px; /* スライド間にスペースを持たせる */
  cursor: grab;
}

.carousel-slide-container {
  flex: 0 0 80%; /* スライド幅を80%にして少し余白を残す */
  min-width: 100%;
  flex: 0 0 auto;
  overflow: hidden;
  position: relative;
  box-sizing: border-box;
}

.carousel-slide {
  display: flex;
  flex-direction: column; /* ← 縦並びに */
  text-align: center;
  overflow: hidden;
}

.carousel-media {
  display: flex; /* Flexboxを使って中央配置 */
  justify-content: center; /* 水平方向に中央配置 */
  align-items: center;
  padding: 20px;
}

.carousel-media img {
  width: 60%;
  height: auto;
  display: block;
  border-radius: 8px;
}

.carousel-content {
  flex: 1;
  padding: 20px;
}

.carousel-heading {
  font-size: 2rem;
  font-weight: bold;
}

.carousel-description {
  font-size: 1rem;
  color: #666;
}

.hidden {
  display: none;
}

/* 画像比較セクション --------------------------------------------------- */
.compare-images {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 16px;
}
.compare-images img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* レスポンシブ用 */
/* レスポンシブ対応 */
@media (max-width: 768px) {
  .section {
    padding: 40px 20px;
  }
  h2 {
    font-size: 29px;
  }

  h3 {
    font-size: 30px;
  }

  p {
    font-size: 19px;
  }

  .pc {
    display: none;
  }

  .sp {
    display: inline-block;
  }

  .video-wrapper {
    padding-bottom: 85%;
  }
}
/* ファーストビュー */
/* セクション内部の基本的なプロパティ設定 */
@media (max-width: 768px) {
  .main-visual img {
    width: 100%;
    height: auto;
    object-fit: contain;
  }
  .main-visual-text {
    /* display: none; */
    gap: 10px;
    left: 35%;
    transform: translateX(-50%);
  }

  /* CTRAボタン */
  .cta-btn {
    font-size: 15px;
    padding: 10px;
    width: 60vw; /* 画面幅の10% */
    height: 12vw; /* 画面高さの10% */
  }
}

@media (max-width: 768px) {
  .section2 {
    padding: 50px 15px;
  }
  .section2 img {
    height: auto;
    width: 100%;
  }
}

@media (max-width: 768px) {
  .section3 {
    flex-direction: column;
    padding: 40px 15px;
  }

  .section3 .item {
    width: 100%;

    margin: 0;
    margin-bottom: 15px;
  }

  .section3 .item img {
    max-width: 90%;
  }

  .section3 .text h3 {
    font-size: 25px;
  }

  .section3 .text p {
    font-size: 20px;
  }
}

@media (max-width: 768px) {
  .section4 img {
    width: 100%;
    height: auto;
  }

  .compare-images {
    flex-direction: column;
    gap: 8px;
  }
  .compare-images img {
    width: 100%;
    max-width: 100%;
  }

  .section4-1 .cta-container {
    display: flex;
    justify-content: center;
    gap: 10px;
  }
}

/* セクション7 */
@media (max-width: 767px) {
  .section7 h2 {
    font-size: 27px;
  }
  .section7 p {
    font-size: 16px;
  }
}

@media (max-width: 767px) {
  .spec h3 {
    padding-top: 20px;
    font-size: 24px;
  }
  .spec p {
    font-size: 16px;
  }
  .spec-flex-table {
    flex-direction: column;
    gap: 16px;
  }
  .spec-table-wrapper,
  .price-table-wrapper {
    min-width: 0;
    max-width: 100%;
  }
  .spec-flex-table {
    flex-direction: column;
    gap: 16px;
  }
  .spec-table th,
  .spec-table td {
    font-size: 12px;
    padding: 6px 8px;
  }
}

@media (max-width: 767px) {
  .section8 h2 {
    padding: 20px;
  }

  .circle-icon {
    width: 280px;
    height: 280px;
  }

  .circle-icon div:not(.center-logo) {
    width: 90px;
    height: 90px;
  }

  .circle-icon div:not(.center-logo) img {
    width: 28px;
    height: 28px;
  }

  /* テキストが2行でも中央に見えるように調整 */
  .circle-icon div:not(.center-logo) p {
    font-size: 12px;
    margin: -5px;
  }

  .center-logo {
    width: 140px;
  }
}

@media (max-width: 767px) {
  .inquiry {
    background-image: url(https://files.bcart.jp/baruto/uploads/image/item.png);
    /* ディバイスごとに画像の繰り替えが行えるためCSSで記述する */
    background-size: cover;
    background-position: center;
    height: 50vh;
    display: block;
  }

  .inquiry-text {
    position: relative;
    z-index: 2;
    text-align: center;
    padding: 15px;
  }

  .inquiry-text h2 {
    text-align: center;
    margin-top: 10px;
    color: #f1f1f1;
  }

  .inquiry-btn {
    position: relative;
    z-index: 2;
    text-align: center;
    padding: 30px;
    display: flex;
    justify-content: center;
    gap: 10px;
  }

  .inquiry-content p {
    font-size: 15px;
  }
}

@media (max-width: 768px) {
  .carousel-container {
    padding: 0 5%;
    padding-left: 50px;
  }

  .carousel-slide-container {
    flex: 0 0 100%;
  }

  .carousel-media img {
    width: 100%;
  }

  .carousel-heading {
    font-size: 24px;
  }

  .carousel-description {
    font-size: 14px;
  }
}

/* Slickスライダー用のカスタムスタイル ---------------------------------------------------------*/
.sliderArea {
  max-width: 100%;
  margin: 0 auto;
}
.slick-slide {
  margin: 0 10px;
}

.slick-slider > div h2,
.slick-slider > div p {
  max-width: 90%; /* 画像の幅に近づける。必要に応じて調整 */
  width: 100%;
  text-align: center;
  word-break: break-all;
  margin-left: auto;
  margin-right: auto;
}

.slick-slider > div {
  text-align: center;
  padding: 16px 0 0 0;
}
.slick-slider h2 {
  font-size: 1.3rem;
  margin: 12px 0 6px 0;
  color: #222;
  font-weight: bold;
  text-align: center;
}
.slick-slider p {
  max-width: 100%;
  font-size: 1rem;
  color: #555;
  margin: 0 0 8px 0;
  text-align: center;
}

.slick-prev,
.slick-next {
  z-index: 1;
  top: 40%;
  width: 30px;
  height: 30px;
}
.slick-next {
  right: -60px;
}

.slick-prev {
  left: -60px;
}

.slick-prev:before,
.slick-next:before {
  font-size: 30px; /*少し大きくする*/
}
.slick-slide {
  transition: all ease-in-out 0.3s;
  opacity: 1;
}
.slick-active {
  opacity: 1;
}
.slick-current {
  opacity: 1;
}
.thumb {
  margin: 20px 0 0;
}
.thumb .slick-slide {
  cursor: pointer;
}
.thumb .slick-slide:hover {
  opacity: 0.7;
}

/*====================================================================
.full-screen
====================================================================*/

.full-screen .slick-list {
  overflow: visible;
}
.full-screen.slider {
  max-width: 600px;
  margin: 0 auto;
}

.full-screen.slider .slick-slide img {
  width: 100%;
  height: auto;
  border-radius: 2%;
  object-fit: contain;
}

@media (max-width: 768px) {
  .full-screen .slick-list {
    overflow: hidden;
  }
  .slide2 {
    padding-top: 10px;
    padding-bottom: 20px;
  }
  .slick-prev,
  .slick-next {
    top: 35%;
    width: 20px;
    height: 20px;
  }

  .slick-prev:before,
  .slick-next:before {
    font-size: 20px; /*少し大きくする*/
  }
  .slick-next {
    right: -18px;
  }

  .slick-prev {
    left: -18px;
  }

  .slick-slider h2 {
    font-size: 1.1rem;
  }

  .slick-slider p {
    font-size: 0.8rem;
  }
}
