 @charset "utf-8";
    /* CSS Document */

    /* --- 変数定義 --- */
    :root {
        --primary-color: #2e5c38; /* アンデスの緑 */
        --accent-color: #d4af37;  /* インカの黄金 */
        --text-color: #333333;
        --bg-color: #fcfcf9;
        --section-bg: #f4f4f0;
        --white: #ffffff;
        --border-radius: 8px;
    }

    /* --- 基本設定 --- */
    body {
        font-family: 'Noto Sans JP', sans-serif;
        color: var(--text-color);
        background-color: var(--bg-color);
        margin: 0;
        padding: 0;
        line-height: 1.8;
    }

    h1, h2, h3 {
        font-family: 'Shippori Mincho', serif;
        color: var(--primary-color);
    }

    h3{
      font-size: 25px;
    }

    .h2_01{
      font-size: 30px;
      padding-top: 30px;
    }

    img {
        max-width: 100%;
        height: auto;
        display: block;
        border-radius: var(--border-radius);
    }

    .container {
        max-width: 1100px;
        margin: 0 auto;
        padding: 0px 20px;
        margin-bottom: 0px;
    }

    /* ★変更: 余白を広げてゆとりを持たせる（60px → 100px） */
    section {
        padding: 40px 0;
    }

    p {
        text-align: justify;
      font-size: 16px;
      padding-top: 10px;
    }

      .bn{
        width: 60%;
      margin: 0 auto;
      text-align: center;
        padding-top: 50px;
    }

    .map01{
      margin: 0 auto;
      text-align: center;
      width: 900px;
      margin-top: -20px;
      margin-bottom: 50px;
    }

    .map02{
      margin: 0 auto;
      text-align: center;
      width: 900px;
      margin-top: -20px;
      margin-bottom: 50px;
    }

    /* --- ヘッダー & ヒーローエリア --- */
    .hero {
        background: linear-gradient(rgba(0,0,0,0.3), rgba(0,0,0,0.3)), url("../images/m/top.jpg")center/cover;
        height: 80vh;
        display: flex;
        align-items: center;
        justify-content: center;
        text-align: center;
        color: var(--white);
        position: relative;
    }

    .hero-content h1 {
        font-size: 3rem;
        margin-bottom: 20px;
        color: var(--white);
        text-shadow: 2px 2px 5px rgba(0,0,0,0.7);
    }

    .hero-content p {
        font-size: 1.2rem;
        font-weight: 500;
        text-shadow: 1px 1px 3px rgba(0,0,0,0.7);
    }

    /* --- 導入文 --- */
    .intro {
        text-align: center;
        background-color: var(--white);
        padding-bottom: 40px;
    }
    .intro p {
        max-width: 800px;
        margin: 0 auto;
    }

    /* --- 見出しデザイン --- */
    .section-title {
        text-align: center;
        font-size: 2rem;
        margin-bottom: 70px;
        position: relative;
        padding-bottom: 15px;
      padding-top: 50px;
    }
    .section-title::after {
        content: '';
        position: absolute;
        bottom: 0;
        left: 50%;
        transform: translateX(-50%);
        width: 60px;
        height: 3px;
        background-color: var(--accent-color);
    }

    /* --- アクセス（ステップ表示） --- */
    .access-steps {
        display: flex;
        flex-direction: column;
        gap: 20px;
    }

    .step-card {
        background: var(--white);
        padding: 30px;
        border-radius: var(--border-radius);
        box-shadow: 0 4px 15px rgba(0,0,0,0.05);
        display: flex;
        align-items: flex-start;
        position: relative;
        border-left: 5px solid var(--accent-color);
    }

    .step-num {
        font-size: 2rem;
        font-weight: bold;
        color: var(--accent-color);
        margin-right: 20px;
        min-width: 40px;
    }

    .step-content h3 {
        margin-top: 0;
        font-size: 1.3rem;
    }

    .step-info {
        background: #f0f7f4;
        padding: 10px;
        border-radius: 4px;
        font-size: 0.9rem;
        margin-top: 10px;
    }

    /* --- 観光スポット（グリッド） --- */
    .spots-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
        gap: 30px;
        margin-bottom: 20px; /* ★追加: グリッド下の余白 */
    }

    .spot-card {
        background: var(--white);
        border-radius: var(--border-radius);
        overflow: hidden;
      padding-bottom: 20px;
        box-shadow: 0 4px 10px rgba(0,0,0,0.1);
        transition: transform 0.3s;
    }

    .spot-card img {
        width: 100%;
        height: 200px;
        object-fit: cover;
        border-radius: 0;
    }

    .spot-content {
        padding: 20px 20px 5px 20px;
    }
    .spot-content h3 {
        font-size: 1.2rem;
        margin-top: 0;
        border-bottom: 2px solid #eee;
        padding-bottom: 10px;
    }

    /* --- 歴史（タイムライン） --- */
    .history-timeline {
        position: relative;
        max-width: 800px;
        margin: 0 auto;
    }
    .history-timeline::before {
        content: '';
        position: absolute;
        left: 20px;
        top: 0;
        bottom: 0;
        width: 2px;
        background: var(--primary-color);
    }
    .history-item {
        margin-bottom: 40px;
        padding-left: 50px;
        position: relative;
    }
    .history-item::before {
        content: '';
        position: absolute;
        left: 11px;
        top: 5px;
        width: 20px;
        height: 20px;
        background: var(--accent-color);
        border-radius: 50%;
        border: 3px solid var(--white);
    }
    .history-year {
        font-weight: bold;
        color: var(--primary-color);
        font-size: 1.1rem;
    }

    /* --- 比較テーブル --- */
    .comparison-table {
        width: 100%;
        border-collapse: collapse;
        background: var(--white);
        box-shadow: 0 4px 10px rgba(0,0,0,0.05);
    }
    .comparison-table th, .comparison-table td {
        padding: 15px;
        border: 1px solid #ddd;
        text-align: left;
    }
    .comparison-table th {
        background-color: var(--primary-color);
        color: var(--white);
        text-align: center;
    }
    .comparison-table tr:nth-child(even) {
        background-color: #f9f9f9;
    }

    /* --- 注意事項・チェックリスト --- */
    .advice-box {
        background-color: #fff8e1;
        border: 1px solid #ffecb3;
        padding: 20px;
        border-radius: var(--border-radius);
        margin-bottom: 30px;
    }
    .advice-box h3 {
        color: #f57f17;
        margin-top: 0;
    }

    .checklist-container {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
        gap: 20px;
      margin-bottom: 50px;
    }
    .checklist-group {
        background: var(--white);
        padding: 20px;
        border-radius: var(--border-radius);
        border-top: 4px solid var(--primary-color);
        box-shadow: 0 2px 8px rgba(0,0,0,0.05);
    }
    .checklist-group ul {
        list-style: none;
        padding: 0;
    }
    .checklist-group li {
        position: relative;
        padding-left: 30px;
        margin-bottom: 12px;
    }
    .checklist-group li::before {
        content: '\f00c'; /* FontAwesome check */
        font-family: "Font Awesome 6 Free";
        font-weight: 900;
        position: absolute;
        left: 0;
        color: var(--primary-color);
    }

    .prohibited {
        color: #d32f2f;
    }
    .prohibited li::before {
        content: '\f00d'; /* Cross icon */
        color: #d32f2f;
        color: #d32f2f;
    }

    /* --- 山の詳細解説セクション --- */
    .mountain-details-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 30px;
        margin-top: 40px;
        margin-bottom: 50px; /* ★追加: グリッド下の余白 */
    }

    .mountain-detail-card {
        background: var(--white);
        border: 1px solid #ddd;
        border-radius: var(--border-radius);
        padding: 30px;
        box-shadow: 0 4px 10px rgba(0,0,0,0.03);
    }

    .card-header {
        margin-bottom: 20px;
        border-bottom: 2px solid var(--primary-color);
        padding-bottom: 15px;
    }

    .card-header h3 {
        margin: 0;
        font-size: 1.4rem;
        color: var(--primary-color);
    }

    .catch-copy {
        display: block;
        margin-top: 5px;
        font-size: 1rem;
        font-weight: bold;
        color: var(--accent-color);
    }

    .intro-text {
        margin-bottom: 25px;
        font-weight: 500;
    }

    .detail-point {
        margin-bottom: 20px;
    }

    .detail-point h4 {
        font-size: 1.1rem;
        margin-bottom: 8px;
        display: flex;
        align-items: center;
        color: #444;
    }

    .detail-point h4 i {
        margin-right: 10px;
        color: var(--primary-color);
    }

    .detail-point p {
        font-size: 0.95rem;
        color: #555;
        margin: 0;
        padding-left: 28px; /* アイコンの幅分インデント */
    }

    /* 「ここがポイント」を目立たせる */
    .detail-point.highlight {
        background-color: #fcfcf0; /* 薄いクリーム色 */
        padding: 15px 15px 15px 15px;
        border-radius: 6px;
        border-left: 4px solid var(--accent-color);
    }

    .detail-point.highlight p {
        padding-left: 0;
    }

    .detail-point.highlight h4 i {
        color: var(--accent-color);
    }

    /* --- FAQ (アコーディオン) --- */
    .faq-container {
        max-width: 800px;
        margin: 0 auto;
    }

    .faq-item {
        background-color: var(--white);
        border-radius: var(--border-radius);
        margin-bottom: 15px;
        box-shadow: 0 2px 5px rgba(0,0,0,0.05);
        overflow: hidden;
    }

    .faq-question {
        padding: 20px;
        font-weight: bold;
        cursor: pointer;
        list-style: none; /* デフォルトの三角を消す */
        display: flex;
        align-items: center;
        justify-content: space-between;
        color: var(--primary-color);
      font-size: 17px;
    }

    /* HTML標準の三角アイコンを消す（Chrome/Safari用） */
    .faq-question::-webkit-details-marker {
        display: none;
    }

    .q-icon {
        background-color: var(--accent-color);
        color: var(--white);
        width: 30px;

        height: 30px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border-radius: 50%;
        margin-right: 15px;
        flex-shrink: 0;
        font-family: 'Shippori Mincho', serif;
    }

    .faq-answer {
        padding: 0 20px 20px 65px; /* アイコン分のインデント */
        color: #555;
        line-height: 1.8;
        border-top: 1px solid #f0f0f0;
        display: none; /* アニメーション用（今回は簡易実装のためCSSのみで制御） */
    }

    /* detailsが開いた時のスタイル */
    details[open] .faq-answer {
        display: block;
        animation: fadeIn 0.3s ease-in;
    }

    details[open] .toggle-icon {
        transform: rotate(180deg);
    }

    .toggle-icon {
        transition: transform 0.3s;
        color: #aaa;
    }

    @keyframes fadeIn {
        from { opacity: 0; transform: translateY(-10px); }
        to { opacity: 1; transform: translateY(0); }
    }


    /* --- マチュピチュ村ガイド --- */
    /* ★追加: 村の導入文の間隔を広げる特別な設定 */
    #village-guide p {
        margin-bottom: 70px !important;
        line-height: 2.2;
    }

    .village-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
        gap: 25px;
        margin-bottom: 20px; /* ★追加: グリッド下の余白 */
    }

    .village-card {
        background-color: var(--white);
        border: 1px solid #e0e0e0;
        border-radius: var(--border-radius);
        padding: 25px 25px 2px 25px;
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
        transition: all 0.3s ease;
        position: relative;
        box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    }

    .village-card:hover {
        transform: translateY(-5px);
        box-shadow: 0 8px 15px rgba(0,0,0,0.1);
        border-color: var(--accent-color);
    }

    .village-icon {
        font-size: 2.5rem;
        color: var(--primary-color);
        margin-bottom: 20px;
        background-color: #f0f7f4;
        width: 70px;
        height: 70px;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .village-content h3 {
        font-size: 1.2rem;
        margin: 0 0 15px 0;
        color: var(--text-color);
        border-bottom: 2px solid var(--accent-color);
        padding-bottom: 10px;
        display: inline-block;
    }

    .sub-title {
        display: block;
        font-size: 0.8rem;
        font-weight: normal;
        color: #666;
        margin-top: 5px;
    }

    .village-content p {
        font-size: 0.95rem;
        margin: 0;
        color: #555;
        line-height: 1.7;
    }

    @media (min-width: 768px) {
        .village-card.wide-card {
            grid-column: span 2; /* 2列分使う */
            flex-direction: row; /* 横並びにする */
            text-align: left;
            align-items: flex-start;
        }
        .village-card.wide-card .village-icon {
            margin-right: 25px;
            margin-bottom: 0;
        }
        /* グリッドのアイテム数が奇数(5個)なので、最後を中央寄せにするための調整 */
        .village-grid {
            justify-content: center;
        }
        .village-card.wide-card {
            grid-column: 1 / -1; /* 全幅を使う */
        }
    }

    /* --- お土産ランキング（新規追加） --- */
    .ranking-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
        gap: 30px;
        margin-bottom: 60px;
    }

    .ranking-card {
        background: var(--white);
        border-radius: var(--border-radius);
        overflow: hidden;
        padding-bottom: 15px;
        box-shadow: 0 4px 10px rgba(0,0,0,0.1);
        transition: transform 0.3s;
        position: relative;
    }

    .ranking-card:hover {
        transform: translateY(-5px);
        box-shadow: 0 8px 15px rgba(0,0,0,0.15);
    }

    .ranking-badge {
        position: absolute;
        top: 0;
        left: 0;
        background-color: var(--accent-color);
        color: var(--white);
        padding: 8px 20px;
        font-family: 'Shippori Mincho', serif;
        font-weight: bold;
        font-size: 1.2rem;
        border-bottom-right-radius: var(--border-radius);
        z-index: 10;
        box-shadow: 2px 2px 5px rgba(0,0,0,0.2);
    }

    .ranking-card img {
        width: 100%;
        height: 200px;
        object-fit: cover;
        border-radius: 0;
        background-color: #f0f0f0; /* 画像がない場合のプレースホルダー背景 */
    }

    .ranking-content {
        padding: 20px 20px 5px 20px;
    }

    .ranking-content h3 {
        font-size: 1.2rem;
        margin-top: 0;
        border-bottom: 2px solid #eee;
        padding-bottom: 10px;
    }


    /* --- フッター --- */
    footer {
        background-color: var(--primary-color);
        color: var(--white);
        text-align: center;
        padding: 40px 0;
    }

    /* --- スマホ向け調整 --- */
    @media (max-width: 768px) {
        /* ★追加: スマホではセクションの余白を少し戻して間延びを防ぐ */
        section {
            padding: 0px 0;
        }
        
        /* マチュピチュ村の余白もスマホ用に調整 */
        #village-guide p {
            margin-bottom: 40px !important;
        }

        /* ヒーローエリアのタイトルも少し小さく */
        .hero-content h1 { 
            font-size: 1.8rem; 
        }
        
        /* ここがh2（セクションタイトル）の調整部分 */
        .section-title {
            font-size: 1.5rem; /* PCでは2rem → スマホでは1.5remに縮小 */
            margin-bottom: 30px; /* 下の余白も少し詰める */
        }
        
        /* 一般的なh2も念のため小さく */
        h2 {
            font-size: 1.4rem;
        }

        /* その他のスマホ用調整 */
        .comparison-table { font-size: 0.8rem; }
        .comparison-table th, .comparison-table td { padding: 10px 5px; }
        .history-timeline::before { left: 10px; }
        .history-item { padding-left: 30px; }
        .history-item::before { left: 1px; }
        
        /* 山の詳細などのグリッドを1列にする */
        .mountain-details-grid,
        .village-grid, 
        .spots-grid,
        .ranking-grid { /* ランキングも1列に */
            grid-template-columns: 1fr;
        }
        
        /* FAQの余白調整 */
        .faq-answer {
            padding: 0 20px 20px 20px;
        }
      
      .map01{
      margin: 0 auto;
      text-align: center;
      width: 100%;
      margin-top: -10px;
      margin-bottom: 30px;
    }
      
        .map02{
      margin: 0 auto;
      text-align: center;
      width: 100%;
      margin-top: -10px;
      margin-bottom: 30px;
    }
        .bn{
        width: 100%;
      margin: 0 auto;
      text-align: center;
        padding-top: 30px;
    }
    }
  </style>

  <!--構造化データ-->
  <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "BreadcrumbList",
      "itemListElement": [{
          "@type": "ListItem",
          "position": 1,
          "item": {
            "@id": "https://www.natureworld.jp/",
            "name": "HIS秘境旅行専門デスク"
          }
        },
        {
          "@type": "ListItem",
          "position": 2,
          "item": {
            "@id": "https://www.natureworld.jp/LP/",
            "name": "特集一覧"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "item": {
            "@id": "https://www.natureworld.jp/LP/31_machu_picchu/",
            "name": "マチュピチュツアー・旅行"
          }
        }
      ]
    }