/* kunren-db.com 共通CSS  色: 紺 #1e3a5f / 警告 #c2410c / グレー階調 */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic Medium","Yu Gothic",YuGothic,"Noto Sans JP",Meiryo,sans-serif;font-size:16px;line-height:1.7;color:#222;background:#fff;text-wrap:pretty}
a{color:#1e3a5f;text-decoration:underline;text-underline-offset:3px;text-decoration-color:#b9c3d1}
a:hover{color:#0f2440;text-decoration-color:#1e3a5f}
h1,h2,h3{line-height:1.4;margin:0}
p,ul,ol,dl{margin:0}
ul,ol{padding-left:1.4em}
.container{max-width:1080px;margin:0 auto;padding:0 16px}
.stack>*+*{margin-top:12px}
.section{margin:36px 0}
.section__title{font-size:20px;color:#1e3a5f;padding-bottom:8px;border-bottom:2px solid #1e3a5f;margin-bottom:16px}
.section__more{display:block;margin-top:12px;font-size:14px}
.muted{color:#666;font-size:14px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ヘッダー */
.site-header{border-bottom:1px solid #d9dee6;background:#fff}
.site-header__inner{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;padding:12px 16px;max-width:1080px;margin:0 auto}
.site-header__brand{font-size:20px;font-weight:700;color:#1e3a5f;text-decoration:none;letter-spacing:.02em;white-space:nowrap}
.site-header__brand small{display:block;font-size:12px;font-weight:400;color:#666;letter-spacing:0}
.site-header__nav{display:flex;gap:16px;font-size:14px;margin-left:auto}
.site-header__nav a{text-decoration:none}

/* 検索フォーム */
.search-form{display:grid;gap:8px;grid-template-columns:1fr}
.search-form__select{height:44px;padding:0 12px;border:1px solid #9aa5b5;border-radius:4px;background:#fff;font:inherit;font-size:16px;color:#222;width:100%}
.search-form__button{height:44px;padding:0 20px;border:0;border-radius:4px;background:#1e3a5f;color:#fff;font:inherit;font-size:16px;font-weight:700;cursor:pointer}
.search-form__button:hover{background:#0f2440}
@media(min-width:640px){.search-form{grid-template-columns:1fr 1fr auto}}
.site-header .search-form{flex:1 1 100%}
@media(min-width:960px){.site-header .search-form{flex:1 1 520px;max-width:600px}}

/* ヒーロー */
.hero{background:#f3f5f8;border-bottom:1px solid #d9dee6;padding:28px 0}
.hero__lead{font-size:20px;font-weight:700;color:#1e3a5f;margin-bottom:16px}
@media(min-width:640px){.hero__lead{font-size:24px}}
.hero__status{margin-top:12px;font-size:14px;color:#555}

/* パンくず */
.breadcrumb{font-size:13px;color:#666;padding:12px 0;overflow-x:auto;white-space:nowrap}
.breadcrumb ol{list-style:none;padding:0;margin:0;display:flex;gap:6px}
.breadcrumb li+li::before{content:"›";margin-right:6px;color:#999}
.breadcrumb a{text-decoration:none}

/* ページ見出し */
.page-title{font-size:22px;color:#1e3a5f;margin:8px 0 4px}
@media(min-width:640px){.page-title{font-size:26px}}
.page-title__count{font-size:15px;font-weight:400;color:#555;margin-left:8px;white-space:nowrap}
.page-sub{font-size:14px;color:#555}

/* バッジ */
.badge{display:inline-block;font-size:12px;line-height:1;padding:5px 8px;border-radius:3px;border:1px solid #9aa5b5;color:#444;background:#fff;white-space:nowrap;vertical-align:middle;font-weight:400}
.badge--benefit{border-color:#1e3a5f;color:#1e3a5f;background:#eef2f8}
.badge--online{border-color:#6d7a8e;color:#3a4759}
.badge--days{border-color:#8a949f;color:#333;font-weight:700}
.badge--warn{border-color:#c2410c;color:#fff;background:#c2410c;font-weight:700}
.badge--closed{border-color:#bbb;color:#777;background:#f0f0f0}

/* コースカード */
.course-list{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.course-card{border:1px solid #d9dee6;border-radius:6px;padding:14px 16px;background:#fff}
.course-card__title{font-size:17px;font-weight:700;line-height:1.5}
.course-card__title a{text-decoration:none}
.course-card__title a:hover{text-decoration:underline}
.course-card__school{font-size:14px;color:#555;margin-top:2px}
.course-card__facts{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin-top:10px;font-size:14px;padding-top:10px;border-top:1px dashed #d9dee6}
.course-card__facts dt{color:#666;white-space:nowrap}
.course-card__facts dd{margin:0}
.course-card__deadline{font-weight:700}
.course-card__deadline .badge{margin-left:6px}
.course-card__tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.course-card--closed{background:#f5f5f5;border-color:#e2e2e2}
.course-card--closed .course-card__title a,.course-card--closed .course-card__school,.course-card--closed dd,.course-card--closed dt{color:#8a8a8a}
@media(min-width:640px){.course-card__facts{grid-template-columns:auto 1fr auto 1fr}}

/* フィルター（リンク型） */
.filter-bar{display:flex;flex-wrap:wrap;gap:8px 16px;padding:12px 0;border-top:1px solid #e3e7ed;border-bottom:1px solid #e3e7ed;margin:12px 0 16px;font-size:14px}
.filter-bar__group{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.filter-bar__label{color:#666;margin-right:2px}
.filter-chip{display:inline-block;padding:6px 12px;border:1px solid #9aa5b5;border-radius:999px;text-decoration:none;color:#1e3a5f;background:#fff;line-height:1.2}
.filter-chip:hover{background:#eef2f8}
.filter-chip--active{background:#1e3a5f;border-color:#1e3a5f;color:#fff}

/* レイアウト（PCサイドバー） */
.layout{display:grid;gap:32px}
.layout__side{display:none}
@media(min-width:960px){.layout{grid-template-columns:minmax(0,1fr) 280px}.layout__side{display:block}}
.side-box{border:1px solid #d9dee6;border-radius:6px;padding:14px 16px}
.side-box+.side-box{margin-top:16px}
.side-box__title{font-size:15px;color:#1e3a5f;margin-bottom:8px}
.side-box ul{list-style:none;padding:0;font-size:14px}
.side-box li{padding:5px 0;border-top:1px solid #eef0f3;display:flex;justify-content:space-between;gap:8px}
.side-box li:first-child{border-top:0}
.side-box a{text-decoration:none}

/* 都道府県グリッド・分野チップ */
.region{margin-top:16px}
.region__name{font-size:14px;font-weight:700;color:#555;margin-bottom:6px}
.pref-grid{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
@media(min-width:640px){.pref-grid{grid-template-columns:repeat(6,1fr)}}
.pref-grid a{display:flex;justify-content:space-between;align-items:baseline;padding:8px 10px;border:1px solid #d9dee6;border-radius:4px;text-decoration:none;font-size:14px;min-height:44px}
.pref-grid a:hover{background:#eef2f8}
.pref-grid__count{font-size:12px;color:#666}
.chip-list{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.chip-list li{flex:0 0 auto}
.chip-list a{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;padding:10px 14px;border:1px solid #9aa5b5;border-radius:999px;text-decoration:none;font-size:14px}
.chip-list a:hover{background:#eef2f8}
.chip-list__count{font-size:12px;color:#666}

/* 解説記事導線 */
.guide-list{list-style:none;padding:0;display:grid;gap:10px}
@media(min-width:640px){.guide-list{grid-template-columns:repeat(3,1fr)}}
.guide-list a{display:block;padding:14px 16px;border:1px solid #d9dee6;border-radius:6px;text-decoration:none;font-weight:700;font-size:15px}
.guide-list a:hover{background:#eef2f8}
.guide-list__desc{display:block;font-weight:400;font-size:13px;color:#555;margin-top:4px}

/* 概要ボックス（個票） */
.summary-box{border:2px solid #1e3a5f;border-radius:6px;padding:16px;margin:16px 0;background:#fff}
.summary-box__grid{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;font-size:15px}
.summary-box__grid dt{color:#666;white-space:nowrap}
.summary-box__grid dd{margin:0;font-weight:700}
.summary-box__grid dd small{font-weight:400;color:#555}
@media(min-width:640px){.summary-box__grid{grid-template-columns:auto 1fr auto 1fr}}

/* 詳細テーブル */
.detail-table{width:100%;border-collapse:collapse;font-size:14px}
.detail-table th,.detail-table td{border-top:1px solid #d9dee6;border-bottom:1px solid #d9dee6;padding:10px 12px;text-align:left;vertical-align:top}
.detail-table th{width:34%;background:#f3f5f8;color:#444;font-weight:700}
.detail-table__none{color:#999}

/* 情報ボックス */
.info-box{border:1px solid #d9dee6;border-radius:6px;padding:16px;font-size:15px}
.info-box__title{font-size:16px;color:#1e3a5f;margin-bottom:8px}
.info-box p+p{margin-top:8px}
.contact{margin-top:10px;padding:10px 12px;background:#f3f5f8;border-radius:4px;font-size:14px}
.contact dt{color:#666;display:inline}
.contact dd{display:inline;margin:0 0 0 6px}
.contact div+div{margin-top:2px}

/* 出典ボックス（必須・目立たせる） */
.source-box{border:2px solid #c2410c;border-radius:6px;padding:16px;background:#fff8f4;font-size:14px}
.source-box__title{font-size:16px;color:#c2410c;margin-bottom:8px}
.source-box__grid{display:grid;grid-template-columns:auto 1fr;gap:4px 12px}
.source-box__grid dt{color:#666;white-space:nowrap}
.source-box__grid dd{margin:0;word-break:break-all}
.source-box__caution{margin-top:12px;padding-top:10px;border-top:1px solid #e9c9b8;font-weight:700;color:#222}

/* 解説記事 */
.article{max-width:720px}
.article__title{font-size:24px;color:#1e3a5f;margin:8px 0 12px}
@media(min-width:640px){.article__title{font-size:28px}}
.article__meta{font-size:13px;color:#666;display:flex;gap:12px;flex-wrap:wrap;padding-bottom:16px;border-bottom:1px solid #d9dee6}
.article__lead{font-size:17px;margin:20px 0}
.article__body h2{font-size:20px;color:#1e3a5f;margin:40px 0 14px;padding-left:12px;border-left:4px solid #1e3a5f}
.article__body h3{font-size:17px;margin:24px 0 10px}
.article__body p{margin:0 0 16px}
.article__body ul,.article__body ol{margin:0 0 16px}
.article__body li+li{margin-top:4px}
.toc{border:1px solid #d9dee6;border-radius:6px;padding:14px 16px;background:#f3f5f8;font-size:14px;margin:20px 0}
.toc__title{font-weight:700;margin-bottom:6px}
.toc ol{margin:0;padding-left:1.4em}
.toc a{text-decoration:none}
.callout{border-radius:6px;padding:14px 16px;margin:20px 0;font-size:15px}
.callout__title{font-weight:700;margin-bottom:4px;display:block}
.callout--note{border:1px solid #c2410c;background:#fff8f4}
.callout--note .callout__title{color:#c2410c}
.callout--point{border:1px solid #1e3a5f;background:#eef2f8}
.callout--point .callout__title{color:#1e3a5f}
.article__summary{border-top:2px solid #1e3a5f;padding-top:16px;margin-top:40px}
.author-box{border:1px solid #d9dee6;border-radius:6px;padding:16px;margin-top:32px;font-size:14px}
.author-box__name{font-weight:700;font-size:15px;color:#1e3a5f}
.author-box__role{color:#666;margin-left:6px}
.author-box p{margin-top:6px}

/* 広告枠 */
.ad-slot{margin:28px auto;width:300px;max-width:100%;height:250px;border:1px dashed #bbb;background:#f5f5f5;color:#999;font-size:13px;display:flex;align-items:center;justify-content:center}

/* フッター */
.site-footer{margin-top:48px;border-top:1px solid #d9dee6;background:#f3f5f8;padding:28px 0 40px;font-size:13px;color:#555}
.site-footer__brand{font-weight:700;color:#1e3a5f;font-size:15px}
.site-footer__links{list-style:none;padding:0;margin:10px 0;display:flex;flex-wrap:wrap;gap:6px 18px}
.site-footer__links a{text-decoration:none}
.site-footer p+p{margin-top:6px}

/* まだコースが無い都道府県・分野（リンクにしない） */
.pref-grid__empty{display:flex;justify-content:space-between;align-items:baseline;padding:8px 10px;border:1px dashed #e2e6ec;border-radius:4px;font-size:14px;min-height:44px;color:#9aa0a8}
.chip-list__empty{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;padding:10px 14px;border:1px dashed #d9dee6;border-radius:999px;font-size:14px;color:#9aa0a8}

/* 実績テーブル（年度が横に並ぶので th の幅を戻す） */
.record-table th[scope="col"]{width:auto;text-align:center}
.record-table th[scope="row"]{width:34%}
.record-table td{text-align:center;font-variant-numeric:tabular-nums}
.record-table th small{font-weight:400;color:#666;display:block}

/* 一覧ページの但し書き */
.page-note{border:1px solid #1e3a5f;background:#eef2f8;border-radius:6px;padding:12px 16px;margin:12px 0 4px;font-size:14px}
.page-note strong{color:#1e3a5f}

/* まだ申し込めない（募集前）。締切の警告色とは別の色にする */
.badge--upcoming{border-color:#1b6ea8;color:#1b6ea8;background:#e8f1f9;font-weight:700}
.course-card--upcoming{border-left:3px solid #1b6ea8}
