/* ===== 大学数学完全ガイド 共通スタイル ===== */
*{box-sizing:border-box}
body{font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;line-height:1.8;margin:0;color:#222;background:#fafafa}
.container{max-width:1080px;margin:auto;padding:30px 20px}
a{color:#1a5fb4;text-decoration:none}
a:hover{text-decoration:underline}

/* ヘッダー */
.site-header{background:#fff;border-bottom:2px solid #1a5fb4;position:sticky;top:0;z-index:100;padding:14px 24px;display:flex;justify-content:space-between;align-items:center}
.site-header .logo{font-size:20px;font-weight:bold;color:#1a5fb4}
.site-header nav a{margin-left:16px;font-size:14px;color:#444}

/* ヒーロー */
.hero{background:linear-gradient(135deg,#1a5fb4,#3584e4);color:#fff;padding:60px 24px;text-align:center}
.hero h1{font-size:42px;margin:0 0 12px}
.hero p{font-size:18px;margin:0;opacity:.95}
.hero .badges{margin-top:20px}
.hero .badges span{display:inline-block;background:rgba(255,255,255,.2);padding:4px 12px;border-radius:12px;margin:0 4px;font-size:13px}

/* 見出し */
h1{font-size:28px;color:#fff;background:linear-gradient(90deg,#1a5fb4,#3584e4);padding:16px 22px;border-radius:8px}
h2{font-size:24px;color:#1a5fb4;border-left:8px solid #1a5fb4;padding:6px 14px;margin-top:48px;background:#eaf2fb}
h3{font-size:18px;color:#0d3b66;border-bottom:2px solid #99c1f1;padding-bottom:4px;margin-top:32px}
h4{font-size:16px;color:#0d3b66;margin-top:20px}

/* 科目グリッド */
.subjects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;margin:30px 0}
.subject-card{background:#fff;border:1px solid #ddd;border-radius:10px;padding:20px;transition:all .2s;display:block;color:inherit;text-decoration:none}
.subject-card:hover{transform:translateY(-3px);box-shadow:0 8px 16px rgba(26,95,180,.15);border-color:#1a5fb4;text-decoration:none}
.subject-card.coming{opacity:.5;cursor:not-allowed}
.subject-card.coming:hover{transform:none;box-shadow:none}
.subject-card .icon{font-size:36px;margin-bottom:8px}
.subject-card .title{font-size:18px;font-weight:bold;color:#1a5fb4;margin-bottom:4px}
.subject-card .desc{font-size:13px;color:#666;margin-bottom:8px}
.subject-card .meta{font-size:12px;color:#888;display:flex;justify-content:space-between}
.subject-card .badge{display:inline-block;background:#27ae60;color:#fff;padding:2px 8px;border-radius:8px;font-size:11px;font-weight:bold}
.subject-card .badge-coming{background:#f39c12}

/* 学習コンテンツ用のボックス */
.box{background:#fff;border:1px solid #d4d4d4;border-radius:6px;padding:14px 18px;margin:14px 0}
.def{background:#fef9e7;border-left:6px solid #f0c419;padding:10px 16px;margin:14px 0;border-radius:4px}
.thm{background:#e8f6ef;border-left:6px solid #2ecc71;padding:10px 16px;margin:14px 0;border-radius:4px}
.ex{background:#eaf4fb;border-left:6px solid #3498db;padding:10px 16px;margin:14px 0;border-radius:4px}
.warn{background:#fdecea;border-left:6px solid #e74c3c;padding:10px 16px;margin:14px 0;border-radius:4px}
.tip{background:#f3e8ff;border-left:6px solid #9b59b6;padding:10px 16px;margin:14px 0;border-radius:4px}

/* テーブル */
table{border-collapse:collapse;margin:14px 0;background:#fff;width:100%}
th,td{border:1px solid #999;padding:8px 14px;text-align:center}
th{background:#1a5fb4;color:#fff}
tr:nth-child(even) td{background:#f0f5ff}

/* 練習問題 */
.q{background:#fff;border:1px solid #ccc;border-radius:6px;padding:12px 18px;margin:10px 0}
.q-num{display:inline-block;background:#1a5fb4;color:#fff;border-radius:50%;width:30px;height:30px;line-height:30px;text-align:center;font-weight:bold;margin-right:8px}
details{background:#f7fff7;border:1px dashed #2ecc71;padding:8px 14px;margin-top:6px;border-radius:4px}
summary{cursor:pointer;color:#16a085;font-weight:bold}
.tag{display:inline-block;background:#3498db;color:#fff;font-size:12px;padding:2px 8px;border-radius:10px;margin-left:6px}
.tag-hard{background:#e74c3c}
.tag-mid{background:#f39c12}
.tag-easy{background:#27ae60}

/* 目次 */
.toc{background:#fff;border:2px solid #1a5fb4;border-radius:8px;padding:16px 24px;margin:20px 0}
.toc a{color:#1a5fb4}

/* 図 */
.diag{font-family:Consolas,"Courier New",monospace;background:#fff;border:1px solid #ccc;padding:12px;white-space:pre;overflow-x:auto;border-radius:4px}
svg{display:block;margin:10px auto;background:#fff;border:1px solid #ccc;border-radius:4px;max-width:100%}

/* 収益化用 */
.ad-slot{background:#f5f5f5;border:1px dashed #aaa;padding:14px;text-align:center;color:#888;margin:24px 0;border-radius:4px;font-size:13px}
.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin:20px 0}
.book{background:#fff;border:1px solid #ddd;border-radius:6px;padding:12px;text-align:center;transition:transform .2s}
.book:hover{transform:scale(1.03);text-decoration:none}
.book .title{font-size:13px;font-weight:bold;color:#1a5fb4;margin:8px 0 4px;min-height:36px}
.book .price{font-size:12px;color:#e67e22;font-weight:bold}
.book .cover{width:100%;height:160px;background:linear-gradient(135deg,#eaf4fb,#d4e6f5);display:flex;align-items:center;justify-content:center;font-size:36px;border-radius:4px}

.cta-premium{background:linear-gradient(135deg,#9b59b6,#8e44ad);color:#fff;padding:30px;border-radius:10px;text-align:center;margin:30px 0}
.cta-premium h3{color:#fff;border:none;font-size:22px;margin:0 0 10px}
.cta-premium .price{font-size:28px;font-weight:bold;margin:14px 0}
.cta-premium .btn{display:inline-block;background:#fff;color:#8e44ad;padding:12px 32px;border-radius:30px;font-weight:bold;text-decoration:none}
.cta-premium .btn:hover{background:#f0f0f0;text-decoration:none}

.donate{background:#fff5e6;border:2px dashed #f39c12;border-radius:10px;padding:20px;text-align:center;margin:24px 0}
.donate .btn{display:inline-block;background:#f39c12;color:#fff;padding:10px 24px;border-radius:24px;font-weight:bold;text-decoration:none;margin-top:10px}

/* フッター */
.site-footer{background:#1a3a5c;color:#aac;padding:30px 24px;margin-top:60px;text-align:center;font-size:13px}
.site-footer a{color:#cce}

/* レスポンシブ */
@media (max-width:600px){
  .hero h1{font-size:28px}
  .hero p{font-size:14px}
  .container{padding:16px 12px}
  h2{font-size:20px}
}
hr{border:none;border-top:2px dashed #aaa;margin:30px 0}
