/* ヘッダーエリア */
.header {
  background: #ffffff;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #000;
  padding: 2rem;
  position: relative; /* ハンバーガーメニューの配置のために必要 */
}

.logo-section {
  margin-bottom: 3rem;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  width: 100%; /* フル幅を確保 */
  /* logo-section自体にはposition: relative;は不要になった */
}

.logo img {
  border-radius: 10px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}

.company-name {
  font-size: 1.8rem;
  font-weight: 600;
  color: #000;
}

/* CSSのみで制御するハンバーガーメニュー */
.menu-toggle {
    display: none; /* チェックボックスを非表示にする */
}

.hamburger-menu {
    display: flex; /* PCサイズでも常にハンバーガーを表示 */
    flex-direction: column;
    justify-content: space-around;
    width: 30px;
    height: 25px;
    cursor: pointer;
    position: absolute; /* headerに対して絶対配置 */
    right: 2rem; /* 必要に応じて調整 */
    top: 2rem; /* headerの上端から2remの位置 */
    transform: translateY(0); /* 中央揃えのtransformは不要になった */
    z-index: 1001; /* 他のコンテンツの上に表示 */
}

.hamburger-menu .bar {
    width: 100%;
    height: 3px;
    background-color: #000;
    transition: all 0.3s ease-in-out;
}

/* チェックボックスがチェックされた時のハンバーガーアイコンのアニメーション */
.menu-toggle:checked + .hamburger-menu .bar:nth-child(1) {
    transform: translateY(11px) rotate(45deg);
}

.menu-toggle:checked + .hamburger-menu .bar:nth-child(2) {
    opacity: 0;
}

.menu-toggle:checked + .hamburger-menu .bar:nth-child(3) {
    transform: translateY(-11px) rotate(-45deg);
}

/* ナビゲーションメニュー */
.nav-menu {
    display: flex; /* PCサイズでも常にFlexboxを許可（transformで非表示） */
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh; /* 全画面の高さ */
    background-color: rgba(255, 255, 255, 0.95); /* 半透明の白 */
    z-index: 1000;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    transition: transform 0.3s ease-in-out;
    transform: translateX(100%); /* 画面右端から開始（非表示） */
}

/* チェックボックスがチェックされた時にメニューを表示 */
.menu-toggle:checked ~ .nav-menu {
    transform: translateX(0); /* 画面内にスライドイン */
}

/* メニューが開いたときにヘッダー内の他のコンテンツを非表示にする */
.menu-toggle:checked ~ .hero-image,
.menu-toggle:checked ~ .catchcopy {
    display: none;
}
/* メニューが開いたときに、メインコンテンツのスクロールを無効化する */
.menu-toggle:checked ~ .main {
    /* これによりbody.no-scrollが不要になる */
    position: fixed;
    width: 100%;
    height: 100%;
    overflow: hidden;
}


.nav-menu ul {
  list-style: none;
  padding: 0;
  text-align: center;
}

.nav-menu ul li {
  margin: 1.5rem 0;
}

.nav-menu ul li a {
  color: #000;
  font-size: 1.8rem;
  font-weight: bold;
  text-decoration: none;
  transition: color 0.3s ease;
}

.nav-menu ul li a:hover {
  color: #d9534f; /* ホバー時のハイライト */
}

.hero-image {
  width: 100%;
  max-width: 800px;
  margin: 2rem auto;
  border-radius: 15px;
  overflow: hidden;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1);
}

.hero-image img {
  width: 100%;
  height: auto;
  display: block;
}

.catchcopy {
  font-size: 2.2rem;
  font-weight: bold;
  color: #000;
  margin-top: 2rem;
  line-height: 1.4;
  max-width: 800px;
}

/* メインエリア */
.main {
  padding: 6rem 2rem;
  max-width: 1000px;
  margin: 0 auto;
}

.section-title {
  border-bottom: 2px solid #000; /* 黒の下線 */
  padding-bottom: 0.5rem;
  text-align: center;
  font-size: 2.8rem;
  font-weight: bold;
  color: #000;
  margin-bottom: 5rem;
  text-shadow: none;
}

/* プラン紹介 */
.plan-item {
  display: flex;
  align-items: flex-start;
  margin-bottom: 6rem;
  gap: 3rem;
  justify-content: center; /* PCサイズでも中央寄せにする */
}

.plan-item.reverse {
  flex-direction: row-reverse;
}

.plan-image {
  flex: 0 0 40%; /* 画像の幅を固定 */
  max-width: 40%;
  border-radius: 15px;
  overflow: hidden;
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
}

.plan-image img {
  width: 100%;
  height: auto;
  display: block;
}

.plan-content {
  flex: 1; /* 説明文が残りのスペースを埋める */
  text-align: left; /* PCサイズでは左寄せ */
}

.plan-content h3 {
  font-size: 2.2rem;
  font-weight: bold;
  color: #333;
  margin-bottom: 1.5rem;
}

.plan-content p {
  font-size: 1.6rem;
  line-height: 1.8;
  color: #555;
  margin-bottom: 2rem;
}

.plan-price {
  font-size: 2rem;
  font-weight: bold;
  color: #d9534f; /* 赤色 */
  margin-bottom: 2.5rem;
}

.plan-title {
  border-bottom: 2px solid #000; /* 黒の下線 */
  padding-bottom: 0.5rem;
  font-size: 1.6rem;
  font-weight: bold;
  color: #000;
  margin-bottom: 1.5rem;
  line-height: 1.4;
}

.plan-description {
  color: #000;
  margin-bottom: 2rem;
  line-height: 1.8;
  font-size: 1rem;
}

.plan-details {
  color: #000;
  line-height: 1.6;
}

.plan-details p {
  margin-bottom: 0.5rem;
  font-weight: 500;
}

/* お客様の声 */
.reviews-section {
  margin-top: 8rem;
  margin-bottom: 8rem;
}

.review-item {
    margin-bottom: 4rem; /* 各レビューアイテム間の間隔を確保 */
}

.review-image-with-content-wrapper {
    position: relative;
    width: 100%;
    /* 高さを固定して背景画像が見えるようにする */
    height: 400px; /* デスクトップ時の高さ */
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 5px 20px rgba(139, 69, 19, 0.1);
    background-size: cover;
    background-position: center;
    background-image: url('images/e1695_1.jpg'); /* 画像パスが正しいことを確認 */
}

.review-overlay-content {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center; /* デスクトップでは中央に配置 */
    align-items: center;
    text-align: center; /* デスクトップでテキストを中央に配置 */
    padding: 3rem; /* デスクトップ用のパディング */
    box-sizing: border-box;
    color: #000; /* テキスト色を黒に設定 */
}

.review-overlay-content .review-plan-title {
    font-size: 2rem;
    border-bottom: 2px solid #000; /* 黒い下線に変更 */
    padding-bottom: 0.5rem;
    font-weight: bold;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7); /* デスクトップではシャドウを維持 */
    margin-bottom: 1rem;
}

.review-overlay-content .review-text {
    font-size: 1.1rem;
    text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7); /* デスクトップではシャドウを維持 */
    margin-bottom: 0.8rem;
    line-height: 1.8;
    padding-left: 0;
}

/* 既存の @media (max-width: 768px) ブロックを以下の内容に更新してください */
@media (max-width: 768px) {
    .review-image-with-content-wrapper {
        height: 0; /* 高さを0にする */
        padding-bottom: 75%; /* 例えば4:3のアスペクト比 (高さ / 幅 * 100)。画像を優先するなら90%などに増やしてもOK */
        /* min-height は削除します */
    }

    .review-overlay-content {
        padding: 1rem; /* パディングをさらに減らします */
        justify-content: flex-start; /* コンテンツを上揃えにします */
        text-align: left; /* テキストを左揃えにします（中央揃えだと狭い画面で読みにくいため） */
        align-items: flex-start; /* flex-start に変更 */
        overflow-y: auto; /* コンテンツがはみ出る場合にスクロール可能にする */
        -webkit-overflow-scrolling: touch; /* iOSでのスムーズなスクロール */
    }

    .review-overlay-content .review-plan-title {
        font-size: 1.2rem; /* タイトルのフォントサイズをさらに小さくします */
        text-shadow: none; /* テキストシャドウを削除します */
        margin-bottom: 0.5rem; /* 下の余白を調整 */
    }

    .review-overlay-content .review-text {
        font-size: 0.8rem; /* レビューテキストのフォントサイズをさらに小さくします */
        text-shadow: none; /* テキストシャドウを削除します */
        margin-bottom: 0.4rem; /* 下の余白を調整 */
        line-height: 1.5; /* 行間をさらに狭くして、より多くのテキストを表示できるようにします */
    }
}

/* さらに小さいスマートフォン（例: iPhone SE, Galaxy Foldなど）向けの調整 */
@media (max-width: 480px) {
    .review-image-with-content-wrapper {
        padding-bottom: 85%; /* さらに高さを増やす（正方形に近づける）か、内容に合わせて調整 */
    }
    .review-overlay-content {
        padding: 0.8rem; /* さらにパディングを減らします */
    }

    .review-overlay-content .review-plan-title {
        font-size: 1rem; /* さらにフォントサイズを小さくします */
    }

    .review-overlay-content .review-text {
        font-size: 0.7rem; /* さらにフォントサイズを小さくします */
        line-height: 1.4; /* さらに行間を狭くします */
    }
}






/* 予約ボタン */
.reservation-section {
  text-align: center;
  margin: 6rem 0;
}

.reservation-btn {
  display: inline-block;
  background: transparent;
  color: #000;
  border: 2px solid #000;
  padding: 2rem 5rem;
  font-size: 2rem;
  font-weight: bold;
  text-decoration: none;
  border-radius: 15px;
  box-shadow: 0 8px 25px rgba(139, 69, 19, 0.1);
  transition: all 0.3s ease;
}

.reservation-btn:hover {
  background: #000;
  color: white;
  transform: translateY(-3px);
  box-shadow: 0 12px 35px rgba(139, 69, 19, 0.1);
}

/* FAQ */
.faq-section {
  margin: 8rem 0;
  background-color: white;
}

.faq-item {
  background: rgba(255, 255, 255, 0.9);
  border-radius: 15px;
  margin-bottom: 2rem;
  box-shadow: 0 5px 20px rgba(139, 69, 19, 0.1); /* 影は残っていることを確認 */
}

/* <summary>タグに対するスタイル */
.faq-question {
  background-color: #ffffff; /* 薄いグレーの背景 */
  padding: 1.5rem 2rem;
  font-size: 1.15rem; /* 少し大きくする */
  font-weight: bold;
  color: #000000; /* 少し濃いめの文字色 */
  cursor: pointer;
  border-radius: 10px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: relative;
  list-style: none; /* デフォルトのマーカー（矢印）を消す */
  border: 1px solid #000000; /* 薄いボーダーを追加 */
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05); /* 影を少し強める */
}

/* デフォルトのマーカーがSafariなどで残る場合のための追加 */
.faq-question::-webkit-details-marker {
  display: none;
}
.faq-question::marker { /* 標準的な擬似要素 */
  display: none;
}

/* カスタムの矢印アイコン */
.faq-question::after {
    content: '+'; /* 閉じた時のアイコン */
    font-size: 1.5rem;
    font-weight: bold;
    margin-left: 1rem;
    transition: transform 0.3s ease;
}

/* <details>が開いた時の<summary>に対するスタイル */
details[open] > .faq-question::after {
    content: '-'; /* 開いた時のアイコン */
}

/* 回答部分のスタイル */
.faq-answer {
  border-top: 1px solid #ccc;
  padding: 1.5rem 2rem;
  color: #333;
  background-color: #f9f9f9;
  line-height: 1.8;
}

/* お問い合わせセクション */
.contact-section {
  background-color: #fff; /* 背景色を白にする */
  padding: 4rem 2rem; /* 内側の余白 */
  margin: 8rem auto; /* 上下の余白と中央揃え */
  max-width: 800px; /* 最大幅 */
  border-radius: 15px; /* 角丸は残す */
  text-align: center; /* 内部の要素を中央寄せ */
}

.contact-image {
  margin-bottom: 3rem;
}

.contact-image img {
  border-radius: 15px;
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2);
  max-width: 100%;
  height: auto;
}

/* 会社情報 */
.company-info {
   border: 2px solid #ccc; /* 薄いグレーの枠線は維持 */
  background-color: #f9f9f9; /* 優しい背景色 */
  padding: 2rem;
  border-radius: 10px;
  max-width: 600px;
  margin: 2rem auto;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05); /* 影は維持 */
  text-align: left;
}

/* ここに以下を追加 */
.company-info p {
    word-break: break-all; /* 文字列内のどこでも改行を許可し、はみ出しを防ぎます */
    /* あるいは、overflow-wrap: break-word; も使用できます */
}



/* TOPへボタン */
.top-link {
  display: inline-block;
  margin-top: 3rem;
  padding: 1.5rem 3rem;
  background: transparent;
  color: #000;
  border: 2px solid #000;
  text-decoration: none;
  border-radius: 15px;
  font-size: 1.2rem;
  font-weight: bold;
  transition: all 0.3s ease;
}

.top-link:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(139, 69, 19, 0.1);
  background: #000;
  color: white;
}

/* お問い合わせボタン (重複を修正済み) */
.contact-btn {
  display: inline-block;
  margin-top: 6rem; /* セクション上部からの余白を調整 */
  margin-bottom: 3rem; /* 画像との余白 */
  padding: 1.5rem 3rem;
  background: transparent;
  color: #000;
  border: 2px solid #000;
  text-decoration: none;
  border-radius: 15px;
  font-size: 1.8rem; /* タイトルとしての存在感を出すため、フォントサイズを大きく */
  font-weight: bold;
  transition: all 0.3s ease;
  display: block; /* block要素にしてmargin: auto;で中央揃え */
  width: fit-content; /* コンテンツ幅に合わせる */
  margin-left: auto; /* 中央揃え */
  margin-right: auto; /* 中央揃え */
}

.contact-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(139, 69, 19, 0.1);
  background: #000;
  color: white;
}
