@charset "utf-8";
/* CSS Document */

/* 外枠の調整 */
.country-points {
    max-width: 950px;
    margin: 30px auto;
    font-family: "Meiryo", sans-serif;
}

/* カード共通設定 */
.country-card {
    background-color: #f9f9f9; /* 薄いグレー背景 */
    border-left: 0px solid #ccc;
    padding: 20px;
    margin-bottom: 20px;
    border-radius: 0 5px 5px 0;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}

/* ==========================================================================
   国・島別のアクセントカラー（全7色 + 予備1色）
   ========================================================================== */

/* 01 黄金色（ゴールド） */
.topic-gold { 
    border-color: #c99a2e; 
    background-color: #fcf8ee; /* 非常に薄いゴールド */
}
.multi-gold { background: #f3e6ca; border-radius: 3px; padding: 2px 5px; }
.btn-gold   { background-color: #f3e6ca; color: #8e6d20; }

/* 02 青（ブルー） */
.topic-blue { 
    border-color: #007bbb; 
    background-color: #f0f7fb; /* 非常に薄いブルー */
}
.multi-blue { background: #bfddec; border-radius: 3px; padding: 2px 5px; }
.btn-blue   { background-color: #bfddec; color: #005a8a; }

/* 03 赤（レッド） */
.topic-red { 
    border-color: #e60012; 
    background-color: #fef5f5; /* 非常に薄いピンク/レッド */
}
.multi-red { background: #fabfc2; border-radius: 3px; padding: 2px 5px; }
.btn-red   { background-color: #fabfc2; color: #a3000d; }

/* 04 緑（グリーン） */
.topic-green { 
    border-color: #009944; 
    background-color: #f2faf5; /* 非常に薄いグリーン */
}
.multi-green { background: #bfdfcc; border-radius: 3px; padding: 2px 5px; }
.btn-green   { background-color: #bfdfcc; color: #006b30; }

/* 05 黄色（イエロー） ★新色 */
.topic-yellow {  
    border-color: #fabf14;  
    background-color: #fffbeb; /* 非常に薄いイエロー */
}
.multi-yellow { background: #fef08a; border-radius: 3px; padding: 2px 5px; }
.btn-yellow   { background-color: #fef08a; color: #856404; }

/* 06 グレー（モノトーン） ★新色 */
.topic-gray {  
    border-color: #718096;  
    background-color: #f7fafc; /* 非常に薄いグレー */
}
.multi-gray { background: #e2e8f0; border-radius: 3px; padding: 2px 5px; }
.btn-gray   { background-color: #e2e8f0; color: #2d3748; }

/* 07 パープル（紫・ラベンダー） ★新色 */
.topic-purple {  
    border-color: #9f7aea;  
    background-color: #faf5ff; /* 非常に薄いパープル */
}
.multi-purple { background: #e9d8fd; border-radius: 3px; padding: 2px 5px; }
.btn-purple   { background-color: #e9d8fd; color: #553c9a; }

/* 08 [予備] オレンジ ★新色（お好みで7番と差し替えてください） */
.topic-orange {  
    border-color: #ed8936;  
    background-color: #fffaf0; /* 非常に薄いオレンジ */
}
.multi-orange { background: #feebc8; border-radius: 3px; padding: 2px 5px; }
.btn-orange   { background-color: #feebc8; color: #c05621; }


/* ==========================================================================
   見出し・本文・レイアウト
   ========================================================================== */

/* 見出し部分 */
.point-header {
    display: flex;
    align-items: center;
    margin-bottom: 15px;
}

/* ナンバー */
.step-num {
    background: #444;
    color: #fff;
    font-size: 17px;
    font-weight: bold;
    padding: 4px 10px;
    margin-right: 15px;
    border-radius: 3px;
}

/* タイトル */
.point-header h3 {
    margin: 0;
    font-size: 1.2rem;
    color: #333;
    letter-spacing: 1px;
}
/* 各ボックス内の見出し（キャプション）に下線を引く場合 */
.state-point h3 {
    display: inline-block;
    border-bottom: 2px solid; /* 親要素のborder-colorを継承させたい場合は手動で指定 */
    margin: 0 0 15px 0;
    padding-bottom: 5px;
    font-size: 1.25rem;
    font-weight: bold;
}
.topic-blue h3 { border-bottom-color: #007bbb; color: #007bbb; }
.topic-red h3 { border-bottom-color: #e60012; color: #e60012; }
.topic-green h3 { border-bottom-color: #009944; color: #009944; }
.topic-gold h3  { border-bottom-color: #c99a2e; color: #c99a2e; }
.topic-yellow h3 { border-bottom-color: #fabf14; color: #fabf14; }
.topic-gray h3   { border-bottom-color: #718096; color: #718096; }
.topic-purple h3 { border-bottom-color: #9f7aea; color: #9f7aea; }
.topic-orange h3 { border-bottom-color: #ed8936; color: #ed8936; }	
/* 本文 */
.point-content p {
    margin: 0;
    line-height: 1.8;
    color: #555;
    font-size: 1rem;
}
    
/* スマホ対応（見出し） */
@media (max-width: 768px) {
    .point-header {
        flex-direction: column;
        align-items: flex-start;
    }
    .step-num {
        margin-bottom: 10px;
    }
}

/* ==========================================================================
   目次（ナビゲーション）
   ========================================================================== */

/* 目次全体のコンテナ */
.island-nav {
    margin: 40px 0;
    padding: 25px;
    background-color: #fafafa;
    border: 1px solid #eeeeee;
    text-align: center;
}

.nav-title {
    font-weight: bold;
    margin-bottom: 20px;
    font-size: 1.1rem;
    color: #333;
}

/* リンクボタンの並び（スマホでは2列、PCでは自動フィット） */
.nav-links {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}

@media (min-width: 768px) {
    .nav-links {
        /* ボタンが7色（個）に増えたため、綺麗に収まるよう自動折り返し・幅調整をかける設定（auto-fit）に変更しました */
        grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
    }
}

/* ボタン共通スタイル */
.nav-item {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px 5px;
    text-decoration: none;
    font-size: 0.9rem;
    font-weight: bold;
    border-radius: 4px;
    transition: all 0.3s ease;
    border-bottom: 3px solid rgba(0,0,0,0.1); /* 少し立体感 */
}

.nav-item:hover {
    transform: translateY(-2px);
    opacity: 0.8;
}

/* ==========================================================================
   その他・スクロール調整
   ========================================================================== */

.island-point, 
.state-point, 
.country-point,
.country-card {
    /* ヘッダー(40+25=65px) + 余白(20px) = 85px */
    scroll-margin-top: 85px;
}

/* スルスルと滑らかに移動させる設定（任意） */
html {
    scroll-behavior: smooth;
} 