/* まなび塾 style.css - 外部リソースなし・システムフォントのみ */
:root{
  --navy:#1b3a5c;
  --navy-dark:#12293f;
  --green:#2e9e62;
  --green-dark:#227a4b;
  --bg:#f5f7fa;
  --card:#ffffff;
  --text:#22282e;
  --muted:#5a6672;
  --border:#d8e0e8;
}
*{box-sizing:border-box;}
html{font-size:16px;}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",YuGothic,"Noto Sans JP",Meiryo,sans-serif;
  background:var(--bg);
  color:var(--text);
  line-height:1.8;
}
a{color:var(--navy);text-decoration:underline;}
a:hover{color:var(--green-dark);}

/* ヘッダー */
header{
  background:var(--navy);
  color:#fff;
}
.header-inner{
  max-width:960px;
  margin:0 auto;
  padding:1rem 1rem 0.6rem;
}
.site-title{
  font-size:1.7rem;
  font-weight:700;
  letter-spacing:0.05em;
  margin:0;
}
.site-title a{color:#fff;text-decoration:none;}
.site-sub{margin:0.1rem 0 0.6rem;font-size:0.9rem;color:#cfe0ee;}
nav.main-nav{
  max-width:960px;
  margin:0 auto;
  padding:0 1rem 0.8rem;
}
nav.main-nav ul{
  list-style:none;
  margin:0;padding:0;
  display:flex;flex-wrap:wrap;gap:0.4rem;
}
nav.main-nav a{
  display:inline-block;
  color:#fff;text-decoration:none;
  background:rgba(255,255,255,0.12);
  border:1px solid rgba(255,255,255,0.25);
  padding:0.3rem 0.9rem;border-radius:999px;
  font-size:0.95rem;
}
nav.main-nav a:hover{background:var(--green);color:#fff;}

/* 本文 */
main{
  max-width:960px;
  margin:0 auto;
  padding:1.4rem 1rem 2.5rem;
}
h1.page-title{
  font-size:1.6rem;
  border-left:6px solid var(--green);
  padding-left:0.7rem;
  margin:0.4rem 0 1rem;
  color:var(--navy-dark);
}
h2{
  font-size:1.25rem;
  color:var(--navy);
  border-bottom:2px solid var(--border);
  padding-bottom:0.3rem;
  margin:2rem 0 0.8rem;
}
h3{font-size:1.08rem;color:var(--navy-dark);margin:1.4rem 0 0.4rem;}
p{margin:0.6rem 0;}
.lead{font-size:1.05rem;color:var(--text);}

section.card, .card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:10px;
  padding:1.1rem 1.2rem;
  margin:1rem 0;
}
.cards{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:1rem;
  margin:1rem 0;
}
.subject-card{
  background:var(--card);
  border:1px solid var(--border);
  border-top:5px solid var(--green);
  border-radius:10px;
  padding:1rem 1.1rem;
}
.subject-card h3{margin-top:0.2rem;}
.subject-card a.btn{display:inline-block;margin-top:0.4rem;}

a.btn, button.btn{
  display:inline-block;
  background:var(--green);
  color:#fff;text-decoration:none;
  border:none;border-radius:8px;
  padding:0.55rem 1.3rem;
  font-size:1rem;cursor:pointer;
  font-family:inherit;
}
a.btn:hover, button.btn:hover{background:var(--green-dark);color:#fff;}
button.btn.sub{background:var(--navy);}
button.btn.sub:hover{background:var(--navy-dark);}

.point{
  background:#eef7f1;
  border:1px solid #cbe6d4;
  border-left:5px solid var(--green);
  border-radius:6px;
  padding:0.8rem 1rem;
  margin:1rem 0;
}
.example{
  background:#f2f6fb;
  border:1px solid var(--border);
  border-left:5px solid var(--navy);
  border-radius:6px;
  padding:0.8rem 1rem;
  margin:1rem 0;
}
.example .q{font-weight:700;color:var(--navy-dark);}
.formula{
  font-size:1.15rem;
  font-weight:700;
  text-align:center;
  letter-spacing:0.03em;
  margin:0.7rem 0;
}
table{
  border-collapse:collapse;
  width:100%;
  margin:1rem 0;
  background:#fff;
  font-size:0.95rem;
}
th,td{
  border:1px solid var(--border);
  padding:0.5rem 0.6rem;
  text-align:left;
  vertical-align:top;
}
th{background:var(--navy);color:#fff;font-weight:600;}
tr:nth-child(even) td{background:#f7fafc;}
ul,ol{margin:0.5rem 0 0.5rem 1.3rem;padding:0;}
li{margin:0.3rem 0;}
small,.muted{color:var(--muted);}
.news-list{list-style:none;margin-left:0;}
.news-list li{border-bottom:1px dashed var(--border);padding:0.4rem 0;}

/* 演習 */
.quiz-box{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:10px;
  padding:1.2rem;
  margin:1rem 0;
}
.quiz-q{font-size:1.2rem;font-weight:700;color:var(--navy-dark);}
.quiz-inputs{display:flex;gap:0.8rem;flex-wrap:wrap;align-items:center;margin:0.8rem 0;}
.quiz-inputs input{
  width:6rem;font-size:1.1rem;padding:0.4rem 0.5rem;
  border:1px solid var(--border);border-radius:6px;font-family:inherit;
}
.choices{display:grid;gap:0.5rem;margin:0.8rem 0;}
.choices button{
  text-align:left;font-family:inherit;font-size:1rem;
  background:#f2f6fb;border:1px solid var(--border);border-radius:8px;
  padding:0.6rem 0.9rem;cursor:pointer;
}
.choices button:hover{border-color:var(--green);}
.feedback{font-weight:700;margin:0.6rem 0;}
.feedback.ok{color:var(--green-dark);}
.feedback.ng{color:#b03a2e;}
.score{font-weight:700;color:var(--navy);}

/* フラッシュカード */
.flashcard{
  background:var(--card);
  border:2px solid var(--navy);
  border-radius:12px;
  padding:2rem 1.2rem;
  margin:1rem 0;
  text-align:center;
  cursor:pointer;
  min-height:10rem;
}
.flashcard p{margin:0.3rem 0;}
.flashcard .fc-word{font-size:1.8rem;font-weight:700;color:var(--navy-dark);}
.flashcard .fc-pos{color:var(--muted);margin-left:0.6rem;font-size:1rem;}
.flashcard .fc-meaning{font-size:1.35rem;font-weight:700;color:var(--navy-dark);}
.flashcard .fc-example{margin-top:0.6rem;}
.flashcard .fc-hint{color:var(--muted);font-size:0.85rem;margin-top:0.8rem;}
.fc-nav{display:flex;gap:0.8rem;align-items:center;flex-wrap:wrap;margin:0.6rem 0;}

/* フッター */
footer{
  background:var(--navy-dark);
  color:#dbe6f0;
  margin-top:2rem;
}
.footer-inner{
  max-width:960px;margin:0 auto;
  padding:1.4rem 1rem;
  font-size:0.9rem;
}
footer a{color:#a8d5ba;}
footer p{margin:0.3rem 0;}

@media (max-width:600px){
  .site-title{font-size:1.4rem;}
  h1.page-title{font-size:1.35rem;}
  main{padding:1rem 0.8rem 2rem;}
  table{font-size:0.88rem;}
  th,td{padding:0.4rem 0.45rem;}
}
