
@media (max-width: 768px) {
body {
  overflow-x: hidden;
}
}
#useflow .second_mv {
        height: 70vh;
    }
#useflow.second .title_set {
        position: relative;
    }

.flow_mv_textarea {
    position: absolute;
    top: 60%;
    left: 10%;
    background-color: rgba(227, 214, 184, 0.45);
}
.flow_mv_textarea p {
    text-align: left;
    padding: 5%;
}
h2.flow_title {
    padding: 2%;
}
span.flow_text {
    font-size: 1.2rem;
	font-weight: bold;
}
    #useflow .second_mv {
        background: url(/useflow/img/mv_pc.jpg) no-repeat scroll center center;
        background-size: cover;
		padding: 0px 0;
    }
@media (max-width: 768px) {
    #useflow .second_mv {
        background: url(/useflow/img/mv_sp.jpg) no-repeat scroll center center;
        background-size: cover;
		padding: 0px 0;
    }
.flow_mv_textarea {
    top: 80%;
}
.flow_mv_textarea p {
    text-align: left;
    padding: 5%;
}
span.flow_text {
    font-size: 1.2rem;
}
}
.features {
  padding: 70px 20px;
  text-align: center;
  background-color: #E3D6B8; /* 背景色を設定 */
}

.features h2 {
  font-size: 2.2em;
  margin-bottom: 50px;
  color: #333;
}

.features-list {
  display: flex;
  justify-content: space-around;
  gap: 30px;
  max-width: 1000px;
  margin: 0 auto;
}

.feature-item {
  flex-basis: calc(33.33% - 20px); /* 3つのアイテムが均等に並ぶように幅を設定 */
  text-align: center;
}

.feature-item .icon {
  width: 100px; /* アイコンのサイズ */
  height: 100px;
  margin: 0 auto 20px;
  background-color: #fff;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.feature-item .icon img {
  width: 110px; /* SVGや画像のサイズを調整 */
}

.feature-item h3 {
  font-size: 1.5em;
  margin-bottom: 10px;
  color: #555;
}

.feature-item p {
  font-size: 1em;
  color: #777;
  line-height: 1.6;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
  .features-list {
    flex-direction: column;
    align-items: center;
  }
  .feature-item {
    margin-bottom: 40px;
    flex-basis: 100%;
  }
}
.reasons {
  padding: 20px 20px;
  background-color: #fff;
}

.reasons-content {
  max-width: 1200px;
  margin: 0 auto;
}

.reasons-text {
  text-align: center;
  margin-bottom: 50px;
}

.reasons-text h2 {
  font-size: 2.2em;
  color: #333;
  margin-bottom: 5px;
}

.reasons-text p {
  font-size: 1.2em;
  color: #777;
}

.reasons-main {
  display: flex;
  align-items: center;
  gap: 50px;
}

.reasons-image-container {
  flex: 1;
  background-color: #e6f0fa; /* 画像のラフ画の色 */
  height: 400px; /* 画像の高さを調整 */
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.reasons-image-container img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.reasons-list-container {
  flex: 1;
}

.reasons-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.reasons-list li {
  margin-bottom: 20px;
}

.reason-item {
  display: flex;
  align-items: center;
  padding: 20px;
  border-bottom: 1px solid #eee;
}

.reason-text {
  font-size: 1.2em;
  color: #555;
  font-weight: bold;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
  .reasons-main {
    flex-direction: column;
  }
  .reasons-image-container {
    width: 100%;
    margin-bottom: 30px;
  }
}
.flow-section {
  padding: 20px 20px;
  background-color: #f8f8f8;
}

.flow-container {
  max-width: 800px;
  margin: 0 auto;
}

.flow-container h2 {
  font-size: 2.2em;
  text-align: center;
  margin-bottom: 50px;
  position: relative;
}

/* 背景の'Flow'の文字 */
.flow-container h2::before {
  content: 'Flow';
  font-size: 8em;
  color: #e6e6e6;
  position: absolute;
  top: -40px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 0;
  font-family: 'Times New Roman', serif; /* イメージに合わせたフォント */
  opacity: 0.8;
}

.flow-list {
  position: relative;
  padding-left: 50px; /* アイコンを配置するスペース */
}

/* タイムラインの縦線 */
.flow-list::before {
  content: '';
  position: absolute;
  left: 24px;
  top: 0;
  bottom: 0;
  width: 2px;
  background-color: #ddd;
}

.flow-item {
  display: flex;
  align-items: flex-start;
  margin-bottom: 40px;
  position: relative;
}

.flow-step {
  position: absolute;
  left: -50px;
  top: 0;
}
@media (max-width: 768px) {
.flow-container h2::before {
    font-size: 3em;
    top: 10px;
    left: 50%;
}
}

.step-circle {
  width: 50px;
  height: 50px;
  background-color: #007bff; /* ステップのアイコンの色 */
  color: #fff;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  font-weight: bold;
  font-size: 1.2em;
}

.icon-camera, .icon-image {
  background-color: #e6e6e6; /* アイコン背景色 */
  color: #777;
}

/* カメラと画像のアイコンをCSSで表現 */
.icon-camera::before {
  content: '📸'; /* 絵文字でも可 */
  font-size: 1.5em;
}

.icon-image::before {
  content: '🖼️'; /* 絵文字でも可 */
  font-size: 1.5em;
}

.flow-content {
  padding-top: 10px;
  margin-left: 10%;
}

.flow-content h3 {
  font-size: 1.5em;
  color: #333;
  margin-bottom: 5px;
}

.flow-content p {
  font-size: 1em;
  color: #666;
  line-height: 1.6;
}

.flow-photo {
  text-align: center;
  margin-top: 60px;
}

.flow-photo img {
  max-width: 40%;
  height: auto;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}
.faq-section {
  padding: 80px 20px;
  background-image: url('/useflow/img/faq_bg.jpg'); /* 青空の背景画像 */
  background-size: cover;
  background-position: center;
  color: #333;
}

.faq-container {
  max-width: 1000px;
  margin: 0 auto;
  display: flex;
  gap: 0px;
}

.faq-header {
  flex-basis: 30%;
  text-align: left;
}

.faq-heading h2 {
  font-size: 3em;
  font-weight: bold;
  color: #2a69a0; /* FAQの文字色 */
  margin: 0;
  line-height: 1;
}

.faq-heading p {
  font-size: 1.2em;
  color: #2a69a0;
  margin: 0;
}

.faq-items {
  flex-basis: 70%;
}

.faq-item {
  border-bottom: 1px solid #cce0f0; /* 区切り線 */
}

.faq-question {
  width: 100%;
  background-color: transparent;
  border: none;
  padding: 25px 0;
  text-align: left;
  font-size: 1.1em;
  font-weight: bold;
  color: #333;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  transition: color 0.2s ease;
}

.faq-question:hover {
  color: #2a69a0;
}

.toggle-icon {
  font-size: 1.5em;
  font-weight: normal;
  transition: transform 0.3s ease;
}

.faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease-out;
  padding-right: 20px;
}

.faq-answer.show {
  max-height: 200px; /* 回答の高さに合わせて調整 */
  transition: max-height 0.3s ease-in;
  padding-top: 10px;
  padding-bottom: 20px;
}

.faq-answer p {
  font-size: 1em;
  line-height: 1.6;
  color: #555;
  margin: 0;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
  .faq-container {
    flex-direction: column;
  }
  .faq-header {
    text-align: center;
    margin-bottom: 30px;
  }
}
.final-cta {
  padding: 20px 20px;
  background-color: #f0f8ff; /* 背景色 */
  text-align: center;
  margin-bottom: 30px;
}

.final-cta h2 {
  font-size: 1.4em;
  color: #333;
  margin-bottom: 30px;
}

.final-cta-container {
  display: flex;
  justify-content: center;
  gap: 15px;
  max-width: 1000px;
  margin: 0 auto;
}

.final-cta-item {
  flex-basis: 30%;
  text-decoration: none;
  color: inherit;
}

.cta-circle {
  width: 200px;
  height: 200px;
  background-color: rgba(0, 123, 255, 0.1); /* 薄い青色の背景 */
  border-radius: 50%; /* 円形にする */
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 auto 20px;
  transition: transform 0.3s ease;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.05);
}

.cta-circle:hover {
  transform: translateY(-10px);
}

.cta-circle h3 {
  font-size: 1.2em;
  font-weight: bold;
  color: #007bff; /* 文字色を青色に */
  line-height: 1.5;
}

.final-cta-item p {
  font-size: 1em;
  color: #777;
  line-height: 1.6;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
  .final-cta-container {
    /*flex-direction: column;*/
    /*align-items: center;*/
    /*gap: 30px;*/
  }
.cta-circle {
    width: 120px;
    height: 120px;
	}
.cta-circle h3 {
    font-size: 0.8em;
	}
}
.photo-plans-section {
  padding: 20px 20px;
  background-color: #fff;
}

.plans-header {
  text-align: center;
  margin-bottom: 30px;
}

.plans-header .subtitle {
  font-size: 1.2em;
  color: #777;
  display: block;
  margin-bottom: 5px;
}

.plans-header h2 {
  font-size: 2.5em;
  color: #333;
  position: relative;
  display: inline-block;
  margin: 0;
}

/* タブのスタイル */
.plan-tabs {
  text-align: center;
  margin-bottom: 40px;
}

.tab-button {
  background-color: #eee;
  border: none;
  padding: 10px 20px;
  margin: 0 0px;
  cursor: pointer;
  border-radius: 50px;
  font-weight: bold;
  transition: background-color 0.2s;
}

.tab-button.active, .tab-button:hover {
  background-color: #007bff;
  color: #fff;
}

/* プランリストのスタイル */
.plans-container {
  max-width: 1200px;
  margin: 0 auto;
}

.plan-list {
  display: none; /* 初期状態では非表示 */
}

.plan-list.active {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 30px;
  /* コンテナの最大幅を制限 */
  max-width: 1200px;
  margin: 0 auto;
}
.plan-item {
  background-color: #fff;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s ease;
  max-width: 400px; /* プランアイテムの最大幅を制限 */
  margin: 0 auto; /* 中央寄せにする */
}

.plan-item:hover {
  transform: translateY(-5px);
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15);
}

.plan-image-wrapper {
  position: relative;
}

.plan-image-wrapper img {
  width: 100%;
  height: 250px;
  object-fit: cover;
  display: block;
}

.plan-location-tag {
  position: absolute;
  top: 15px;
  left: 15px;
  background-color: #007bff;
  color: #fff;
  padding: 5px 10px;
  border-radius: 5px;
  font-size: 0.9em;
  font-weight: bold;
}

.plan-content {
  padding: 20px;
}

.plan-content h3 {
  font-size: 1.4em;
  margin-bottom: 5px;
  color: #333;
}

.plan-description {
  font-size: 0.9em;
  color: #777;
  min-height: 40px;
  margin-bottom: 15px;
}

.plan-features {
  margin-bottom: 15px;
}

.feature-tag {
  display: inline-block;
  background-color: #e6f0fa;
  color: #007bff;
  font-size: 0.8em;
  padding: 4px 8px;
  border-radius: 50px;
  margin-right: 5px;
  margin-bottom: 5px;
}

.plan-price {
  text-align: right;
  margin-bottom: 20px;
}

.price-label {
  font-size: 0.9em;
  color: #777;
}

.price-value {
  font-size: 1.5em;
  font-weight: bold;
  color: #e05e55;
}

a.plan-detail-button {
  display: block;
  width: 90%;
  padding: 12px;
  background-color: #007bff;
  color: #fff;
  text-align: center;
  text-decoration: none;
  border-radius: 5px;
  font-weight: bold;
  transition: background-color 0.2s;
}

.plan-detail-button:hover {
  background-color: #0056b3;
}

/* レスポンシブ対応（SPでのリスト化） */
/*@media (max-width: 768px) {
  .plan-list.active {
    display: flex;
    flex-direction: column;
    gap: 20px; 
    padding: 0 15px; 
    overflow-x: auto; 
  }

  .plan-item {
    width: 100%; 
    max-width: none;
    margin: 0; 
  }
}*/
/* レスポンシブ対応（SPでのスライダー化） */
@media (max-width: 768px) {
  .plan-list.active {
    display: flex;
    flex-direction: row; /* 横並びに戻す */
    overflow-x: scroll; /* 横スクロールを有効にする */
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    gap: 10px; /* アイテム間の余白 */
  }

  .plan-item {
    flex-shrink: 0; /* アイテムが縮まないようにする */
    width: 90%; /* 画面幅から左右の余白を引いた幅 */
    scroll-snap-align: center;
    margin: 0; /* マージンをリセット */
  }
}

        /* ランキングカルーセル全体のコンテナ */
        .ranking-carousel-container {
            position: relative;
            width: 100%;
            max-width: 1200px; /* 最大幅を設定 */
            margin: 0 auto;
            overflow: hidden; /* はみ出したコンテンツを隠す */
        }

        /* カルーセルのトラック（カードの並び） */
        .ranking-carousel-track {
            display: flex;
            transition: transform 0.5s ease-in-out; /* スムーズなスライドアニメーション */
        }

        /* 各ランキングカード */
        .ranking-card {
            flex: 0 0 calc(33.333% - 20px); /* 3列表示 - マージン */
            margin-right: 20px;
            background-color: #fff;
            border-radius: 8px;
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
            overflow: hidden;
            position: relative;
            display: flex;
            flex-direction: column;
            /* 価格とアクセス情報削除に伴い、カードの高さが短くなる可能性があります。
               必要に応じてmin-heightなどを設定して調整してください。 */
        }

        .ranking-card:last-child {
            margin-right: 0; /* 最後のカードの右マージンをなくす */
        }

        /* 各カード内の画像ギャラリーコンテナ */
        .ranking-card-image-gallery {
            width: 100%;
            height: 200px; /* 画像の高さ固定 */
            position: relative;
            overflow: hidden;
            border-bottom: 1px solid #eee;
        }

        .ranking-card-image-gallery .main-img-wrap {
            width: 100%;
            height: 100%;
            position: relative;
        }

        .ranking-card-image-gallery .main-img-wrap img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            position: absolute;
            top: 0;
            left: 0;
            opacity: 0; /* デフォルトで非表示 */
            transition: opacity 0.3s ease-in-out; /* フェードアニメーション */
        }

        .ranking-card-image-gallery .main-img-wrap img.active {
            opacity: 1; /* アクティブな画像を表示 */
        }

        /* 各カード内のサムネイル画像のリスト */
        .ranking-card-image-gallery .thumbnail-list-in-card {
            position: absolute;
            bottom: 1px; /* メイン画像の下部からの位置 */
            left: 0;
            width: 100%;
            display: flex;
            justify-content: center; /* 中央寄せ */
            gap: 5px; /* サムネイル間の間隔 */
            padding: 5px 0;
            z-index: 2; /* 画像より手前に表示 */
            background-color: rgba(0, 0, 0, 0.3); /* サムネイル背景 */
        }

        .ranking-card-image-gallery .thumbnail-list-in-card .thumbnail-item {
            flex-shrink: 0;
            width: 50px; /* サムネイルの固定幅 */
            height: 40px; /* サムネイルの固定高さ */
            cursor: pointer;
            border: 1px solid transparent; /* デフォルトのボーダー */
            border-radius: 2px;
            overflow: hidden;
            transition: border-color 0.2s ease;
        }

        .ranking-card-image-gallery .thumbnail-list-in-card .thumbnail-item.active {
            border-color: #007bff; /* アクティブなサムネイルのボーダー色 */
        }

        .ranking-card-image-gallery .thumbnail-list-in-card .thumbnail-item img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
        }

        /* ランキングバッジのベーススタイル */
        .rank-badge {
    position: absolute;
    top: 5px;
    left: 5px;
    /* display: flex; */
    align-items: center;
    /* background-color: rgb(255 0 0 / 95%); */
    /* border-radius: 5px; */
    padding: 25px 0px;
    /* font-weight: bold; */
    /* color: #333; */
    /* box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); */
    /* font-size: 1.1em; */
    z-index: 5;
    min-width: 80px;
        }


        .ranking-card-info {
            padding: 15px;
            flex-grow: 1; /* 残りのスペースを埋める */
            display: flex;
            flex-direction: column;
            justify-content: space-between;
        }

        .ranking-card-info h3 {
            font-size: 1.3em;
            margin: 0 0 8px 0;
            line-height: 1.4;
            min-height: 2.8em; /* タイトル行数を揃えるために最低高さを設定 */
            display: -webkit-box;
            -webkit-line-clamp: 2; /* 2行で省略 */
            -webkit-box-orient: vertical;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .ranking-card-info .location {
            font-size: 0.9em;
            color: #777;
            /* priceとaccessがなくなったので、margin-bottomを調整 */
            margin-bottom: 15px; 
        }
        
        /* 価格とアクセス情報は削除のため、これらのスタイルは不要になりますが、
           念のため残しておくか、他の用途で使う可能性があれば残してください */
        /*
        .ranking-card-info .price {
            font-size: 1.5em;
            color: #e6002d;
            font-weight: bold;
            margin-bottom: 20px;
        }
        .ranking-card-info .price span {
            font-size: 0.7em;
            vertical-align: middle;
        }
        .access-info {
            margin-top: 15px;
            padding-top: 15px;
            border-top: 1px solid #eee;
        }
        .access-info h4 {
            font-size: 1em;
            margin: 0 0 5px 0;
            color: #555;
        }
        .access-info p {
            font-size: 0.85em;
            color: #777;
            line-height: 1.4;
            margin: 0;
        }
        */

        .view-plan-button {
            width: 100%;
            padding: 12px 0;
            background-color: #007bff; /* 青色 */
            color: #fff;
            border: none;
            border-radius: 6px;
            cursor: pointer;
            font-size: 1.1em;
            font-weight: bold;
            transition: background-color 0.3s ease;
            /* priceとaccessがなくなったので、margin-topを調整 */
            margin-top: auto; /* ボタンをカードの下部に配置 */
        }

        .view-plan-button:hover {
            background-color: #0056b3;
        }

        /* カルーセルナビゲーションボタン */
        .ranking-carousel-nav {
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            background-color: rgba(0, 0, 0, 0.6);
            color: #fff;
            border: none;
            padding: 15px 20px;
            border-radius: 50%;
            cursor: pointer;
            font-size: 1.8em;
            z-index: 10;
            display: flex;
            align-items: center;
            justify-content: center;
            width: 50px;
            height: 50px;
            box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
            transition: background-color 0.3s ease;
        }

        .ranking-carousel-nav:hover {
            background-color: rgba(0, 0, 0, 0.8);
        }

        .ranking-carousel-nav.prev {
            left: 0px; /* コンテナの端に配置 */
        }

        .ranking-carousel-nav.next {
            right: 0px; /* コンテナの端に配置 */
        }

        .ranking-carousel-nav.disabled {
            opacity: 0.4;
            cursor: not-allowed;
        }

        /* Bonus表示 */
        .bonus-badge {
            background-color: #5559ba; /* 緑色 */
            color: white;
            padding: 4px 8px;
            border-radius: 4px;
            font-size: 1.0em;
            font-weight: bold;
            display: inline-block;
            margin-bottom: 1px;
           text-align: center;
           width: 100%;
        }

        /* レスポンシブデザイン */
        @media (max-width: 992px) {
            .ranking-card {
                flex: 0 0 calc(50% - 15px); /* 2列表示 */
                margin-right: 15px;
            }
            .ranking-carousel-nav {
                padding: 12px 17px;
                font-size: 1.6em;
                width: 40px;
                height: 40px;
            }
        }

        @media (max-width: 768px) {
            .ranking-carousel-container {
                overflow-x: scroll; /* スマホでは横スクロールを許可 */
                -webkit-overflow-scrolling: touch; /* iOSのスクロールを滑らかに */
                scroll-snap-type: x mandatory; /* カードごとにスナップ */
                padding-left: 20px; /* 最初のカードが見切れないように */
                padding-right: 20px; /* 最後のカードが見切れないように */
                /* スクロールバー非表示 */
                scrollbar-width: none;
                -ms-overflow-style: none;
            }
            .ranking-carousel-container::-webkit-scrollbar {
                display: none;
            }

            .ranking-carousel-track {
                transition: none; /* スマホではJSアニメーション不要 */
                transform: translateX(0) !important; /* JSによるtransformを上書き */
                padding-bottom: 0;
            }
            .ranking-card {
                /* スマホ向けに次のボックスが半分見えるように調整 */
                flex: 0 0 calc(70% - 15px); /* 70%の幅に設定 */
                margin-right: 15px; /* マージンを調整 */
                scroll-snap-align: start; /* カードの開始位置でスナップ */
            }
            .ranking-carousel-nav {
                display: none; /* スマホでは矢印を非表示 */
            }
            h1 {
                text-align: center;
                padding-left: 0;
            }

            /* スマホではカード内のサムネイルをさらに調整 */
            .ranking-card-image-gallery .thumbnail-list-in-card {
                bottom: 2px; /* 位置調整 */
                gap: 2px;
                padding: 3px 0;
            }
            .ranking-card-image-gallery .thumbnail-list-in-card .thumbnail-item {
                width: 50px;
                height: 28px;
               margin-left: 5%;
            }
        }
