/* ---------- FV ---------- */
.fv-section{ background:#fff; text-align:center; padding:120px 20px; }
.fv-container{ max-width:980px; margin:0 auto; }
.fv-main{ font-size:2.2rem; font-weight:700; line-height:1.6; margin-bottom:30px; color:#222; }
.fv-sub{ font-size:1.2rem; color:#555; margin-bottom:50px; }
.fv-buttons{ display:flex; justify-content:center; gap:20px; flex-wrap:wrap; }
.btn{ display:inline-block; padding:14px 28px; font-size:1rem; font-weight:600; text-decoration:none; border-radius:6px; transition:.3s; }
.btn-primary{ background:#004080; color:#fff; }
.btn-primary:hover{ background:#002b5c; color:#fff; }
.btn-secondary{ background:#f5f5f5; color:#333; border:1px solid #ccc; }
.btn-secondary:hover{ background:#e6e6e6; }

/* ---------- News ---------- */
.top-news-section{ background:#fff; padding:40px 20px; }
.top-news-container{ max-width:820px; margin:0 auto; }
.top-news-title{ font-size:1.6rem; font-weight:700; margin-bottom:20px; color:#222; }
.top-news-list{ list-style:none; padding:0; margin:0; display:grid; gap:12px; }
.top-news-item{ display:flex; gap:14px; font-size:.95rem; border-bottom:1px solid #e6eaf0; padding-bottom:8px; }
.top-news-date{ color:#666; font-weight:600; min-width:90px; }
.top-news-text{ color:#222; line-height:1.5; }
.top-news-more{ margin-top:16px; text-align:right; }
.top-news-more a{ font-size:.9rem; color:#004080; text-decoration:none; font-weight:600; }
.top-news-more a:hover{ text-decoration:underline; }

/* ---------- Compare ---------- */
.compare-section{ background:#f9fafc; padding:80px 20px; text-align:center; }
.compare-container{ max-width:820px; margin:0 auto; }
.compare-title{ font-size:1.9rem; font-weight:700; margin-bottom:50px; color:#222; line-height:1.5; }
.compare-note{ display:block; font-size:.9rem; color:#666; margin-top:8px; }
.compare-box{ background:#fff; border-radius:10px; box-shadow:0 2px 10px rgba(0,0,0,.05); padding:30px 20px; margin-bottom:30px; text-align:center; position:relative; }
.course-name{ font-size:1.4rem; font-weight:600; margin-bottom:20px; color:#004080; text-align:center; }
.compare-prices{ display:flex; flex-direction:column; align-items:center; gap:18px; text-align:center; justify-content:center; }
.price-item{ width:100%; max-width:320px; margin:0 auto; }
.price-item .label{ display:block; font-size:.95rem; color:#555; margin-bottom:5px; font-weight:500; }
.price.normal{ font-size:1.2rem; color:#999; text-decoration:line-through; }
.price-item.highlight{ background:#eaf7ff; border:2px solid #004080; border-radius:8px; padding:15px; }
.price.special{ font-size:1.5rem; font-weight:700; color:#004080; }
.note{ display:block; font-size:.85rem; color:#555; margin-top:5px; }

/* ポップアップ強調（フルハーネス枠） */
.popup-highlight .price-item.highlight{ background:#fff9e6; border:2px solid #f39c12; box-shadow:0 0 12px rgba(243,156,18,.3); animation:popupGlow 1.6s infinite alternate; }
.special-label{ color:#d35400; font-weight:700; font-size:1rem; }
.popup-highlight .price.special{ font-size:1.7rem; font-weight:800; color:#e67e22; }
.limited{ display:block; font-size:.9rem; color:#c0392b; font-weight:600; margin-top:4px; }
@keyframes popupGlow{ 0%{ transform:scale(1); box-shadow:0 0 12px rgba(243,156,18,.3);} 100%{ transform:scale(1.05); box-shadow:0 0 20px rgba(243,156,18,.6);} }

.compare-more{ margin-top:40px; font-size:1.05rem; color:#444; font-weight:500; line-height:1.6; }
.sp-only{ display:none; }
@media (max-width:600px){ .sp-only{ display:inline; } }

/* ---------- Courses ---------- */
.courses-section{ background:#fff; padding:80px 20px; }
.courses-container{ max-width:980px; margin:0 auto; }
.courses-title{ font-size:2rem; font-weight:700; text-align:center; margin-bottom:18px; color:#222; }
.courses-lead{ display:block; text-align:center; margin:6px auto 42px; font-size:.98rem; color:#555; max-width:720px; line-height:1.7; }
.courses-subtitle{ font-size:1.4rem; font-weight:600; margin:40px 0 15px; color:#004080; }
.courses-table{ width:100%; border-collapse:collapse; margin-bottom:30px; }
.courses-table td{ padding:12px 10px; border-bottom:1px solid #eee; font-size:1rem; color:#333; }
.courses-table td:last-child{ text-align:right; font-weight:700; color:#004080; }
.courses-more{ margin-top:8px; text-align:center; color:#444; font-size:1.02rem; line-height:1.7; }