/* Muse を使わずに作った新しいページ用のスタイル。
   サイトマップ・お知らせページで共通して使っています。
   画面幅に合わせて自動で折り返すので、#scale-wrapper には入れません。 */

:root{
  --brand:#3172A5;
  --brand-dark:#28608E;
  --brand-light:#4A87B8;
  --ink:#333333;
  --ink-soft:#5b6a70;
  --line:#e0e0e0;
  --surface:#ffffff;
  --surface-2:#f5f8fb;
  --shadow:0 1px 2px rgba(0,0,0,.05),0 8px 20px -12px rgba(0,0,0,.15);
}

.sp-body{
  background:#ffffff;
  color:var(--ink);
  font-family:'Noto Sans JP','Hiragino Kaku Gothic Pro','Yu Gothic',sans-serif;
  -webkit-font-smoothing:antialiased;
}
.sp-body img{max-width:100%;height:auto;}

.sp-crumb{
  max-width:1000px;
  margin:0 auto;
  padding:18px 24px 0;
  font-size:13.5px;
  color:var(--ink-soft);
}
.sp-crumb a{color:var(--brand);text-decoration:none;}
.sp-crumb a:hover{text-decoration:underline;}

.sp-hero{background:var(--brand);color:#ffffff;margin-top:14px;}
.sp-hero-in{max-width:1000px;margin:0 auto;padding:30px 24px;}
.sp-hero .eyebrow{
  font-family:'Zen Kaku Gothic New','Noto Sans JP',sans-serif;
  font-size:12px;font-weight:700;letter-spacing:.16em;
  color:#c3d8ea;margin:0 0 8px;
}
.sp-hero h1{
  font-family:'Zen Kaku Gothic New','Noto Sans JP',sans-serif;
  font-weight:900;font-size:34px;margin:0;line-height:1.35;
}
@media (max-width:600px){ .sp-hero h1{font-size:26px;} }

/* ---- 動画背景ヒーロー(video-hero修飾子) ---- */
.sp-hero.video-hero{
  position:relative;overflow:hidden;
  min-height:400px;display:flex;align-items:center;justify-content:center;
}
.sp-hero.video-hero .hero-bg-video{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;z-index:0;
}
.sp-hero.video-hero .hero-overlay{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(135deg, rgba(49,114,165,.82), rgba(40,96,142,.78));
}
.sp-hero.video-hero .sp-hero-in{position:relative;z-index:2;width:100%;text-align:center;}
@media (max-width:600px){ .sp-hero.video-hero{min-height:340px;} }

.hero-catch{
  font-family:'Zen Kaku Gothic New','Noto Sans JP',sans-serif;
  font-weight:900;font-size:36px;line-height:1.5;
  margin:0 0 18px;color:#ffffff;
}
.hero-sub{
  font-family:'Zen Kaku Gothic New','Noto Sans JP',sans-serif;
  font-weight:700;font-size:16.5px;letter-spacing:.04em;
  margin:0 0 20px;color:#d7e6f2;
}
@media (max-width:600px){
  .hero-catch{font-size:24px;}
  .hero-sub{font-size:14px;}
}

.sp-wrap{max-width:1000px;margin:0 auto;padding:0 24px 80px;}
.sp-lede{font-size:15.5px;line-height:2;margin:26px 0 30px;}

/* ---------------- サイトマップ ---------------- */
.sm-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start;}
@media (max-width:760px){ .sm-grid{grid-template-columns:1fr;} }
.sm-card{
  border:1px solid var(--line);
  border-radius:14px;
  padding:20px 22px 16px;
  background:var(--surface);
  box-shadow:var(--shadow);
}
.sm-card > a.head,
.sm-card > span.head{
  display:block;
  font-family:'Zen Kaku Gothic New','Noto Sans JP',sans-serif;
  font-weight:900;font-size:16.5px;
  color:var(--brand-dark);text-decoration:none;
  padding-bottom:10px;margin-bottom:10px;
  border-bottom:2px solid var(--brand);
}
.sm-card.solo > a.head{border-bottom:none;padding-bottom:0;margin-bottom:0;}
.sm-card > a.head:hover{text-decoration:underline;}
.sm-card ul{list-style:none;margin:0;padding:0;}
.sm-card li{border-top:1px solid #eef2f6;}
.sm-card li:first-child{border-top:none;}
.sm-card li a{
  display:flex;align-items:center;gap:9px;
  padding:10px 2px;font-size:15px;
  color:var(--ink);text-decoration:none;
}
.sm-card li a::before{
  content:"";flex-shrink:0;width:6px;height:6px;
  border-right:2px solid var(--brand-light);
  border-bottom:2px solid var(--brand-light);
  transform:rotate(-45deg);
}
.sm-card li a:hover{color:var(--brand-dark);text-decoration:underline;}
.sm-card li a:hover::before{border-color:var(--brand-dark);}

/* ---------------- お知らせ ---------------- */
.sp-sec{margin:40px 0 0;}
.sp-sec-title{
  font-family:'Zen Kaku Gothic New','Noto Sans JP',sans-serif;
  font-weight:900;font-size:18px;color:var(--ink);
  margin:0 0 4px;padding-left:12px;
  border-left:5px solid var(--brand);line-height:1.4;
}
.sp-sec-desc{
  font-size:14.5px;color:var(--ink-soft);
  margin:8px 0 16px;padding-left:17px;line-height:1.85;
}

.sp-body a.doc{
  display:flex;gap:16px;align-items:flex-start;
  border:1px solid var(--line);border-radius:12px;
  padding:16px 18px;background:var(--surface);
  text-decoration:none;color:inherit;margin-bottom:10px;
}
.sp-body a.doc:hover{border-color:var(--brand);box-shadow:var(--shadow);}
.sp-body a.doc .ic{
  flex-shrink:0;width:40px;height:48px;border-radius:6px;
  background:var(--surface-2);border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;
  font-size:10px;font-weight:700;color:var(--brand-dark);letter-spacing:.04em;
}
.sp-body a.doc .bd{min-width:0;flex:1;}
.sp-body a.doc .ttl{
  display:block;font-weight:700;font-size:15.5px;
  color:var(--ink);line-height:1.6;margin-bottom:4px;
}
.sp-body a.doc:hover .ttl{color:var(--brand-dark);}
.sp-body a.doc .dsc{display:block;font-size:14.5px;color:var(--ink-soft);line-height:1.85;}
.sp-body a.doc .meta{display:inline-block;margin-top:8px;font-size:13px;color:var(--ink-soft);}

.sub-link{font-size:14px;padding-left:17px;margin:2px 0 14px;}
.sub-link a{color:var(--brand);font-weight:700;}

.sp-body a.linkcard{
  display:flex;gap:18px;align-items:center;
  border:1px solid var(--line);border-radius:12px;
  padding:16px 18px;background:var(--surface);
  text-decoration:none;color:inherit;
}
.sp-body a.linkcard:hover{border-color:var(--brand);box-shadow:var(--shadow);}
.sp-body a.linkcard img{flex-shrink:0;width:150px;border-radius:6px;display:block;}
.sp-body a.linkcard .ttl{font-weight:700;font-size:15px;margin-bottom:3px;color:var(--ink);}
.sp-body a.linkcard:hover .ttl{color:var(--brand-dark);}
.sp-body a.linkcard .dsc{font-size:14px;color:var(--ink-soft);line-height:1.8;}
@media (max-width:560px){
  .sp-body a.linkcard{flex-direction:column;align-items:flex-start;}
  .sp-body a.linkcard img{width:200px;}
}

.foot-note{
  display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  margin:34px 0 0;padding:16px 18px;
  background:var(--surface-2);border-radius:10px;
  font-size:14px;color:var(--ink-soft);line-height:1.9;
}
.foot-note img{flex-shrink:0;display:block;}
.foot-note a{color:var(--brand);font-weight:700;}

/* ---------------- アクセス ---------------- */
.info-card{
  display:flex;flex-wrap:wrap;gap:20px 40px;
  border:1px solid var(--line);border-radius:14px;
  padding:20px 22px;background:var(--surface);
  box-shadow:var(--shadow);margin:0 0 30px;
}
.info-card dl{margin:0;display:flex;gap:10px;align-items:baseline;}
.info-card dt{
  flex-shrink:0;font-size:13px;font-weight:700;
  color:var(--brand-dark);letter-spacing:.04em;
}
.info-card dd{margin:0;font-size:15px;color:var(--ink);}

.route-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:0 0 30px;}
@media (max-width:700px){ .route-grid{grid-template-columns:1fr;} }
.route-card{
  border:1px solid var(--line);border-radius:14px;
  padding:20px 22px;background:var(--surface);
  box-shadow:var(--shadow);
}
.route-card .badge{
  display:flex;align-items:center;gap:10px;
  margin:0 0 14px;
}
.route-card .badge img{height:46px;width:auto;display:block;}
.route-card .badge span{
  font-family:'Zen Kaku Gothic New','Noto Sans JP',sans-serif;
  font-weight:900;font-size:15.5px;color:var(--brand-dark);
}
.route-card p{margin:0 0 8px;font-size:15px;line-height:1.9;color:var(--ink);}
.route-card p:last-child{margin-bottom:0;}
.route-card .plus{
  display:inline-block;margin-top:6px;padding:5px 12px;
  border-radius:999px;background:var(--surface-2);
  font-size:13px;font-weight:700;color:var(--brand-dark);
}

.map-frame{
  position:relative;width:100%;padding-top:66%;
  border-radius:14px;overflow:hidden;border:1px solid var(--line);
  box-shadow:var(--shadow);margin:0 0 30px;
}
.map-frame iframe{
  position:absolute;inset:0;width:100%;height:100%;border:0;
}

.access-map-fig{
  border:1px solid var(--line);border-radius:14px;
  overflow:hidden;box-shadow:var(--shadow);margin:0 0 10px;
}
.access-map-fig img{display:block;width:100%;}
.fig-caption{
  font-size:13px;color:var(--ink-soft);
  text-align:center;margin:0 0 30px;
}

.notice{
  margin:34px 0 0;padding:16px 18px;
  background:var(--surface-2);border-radius:10px;
  font-size:14.5px;color:var(--ink-soft);line-height:1.9;
}
.notice a{color:var(--brand);font-weight:700;}
.notice ol{margin:0;padding-left:20px;}
.notice li{margin-bottom:6px;}
.notice li:last-child{margin-bottom:0;}

/* ---------------- 資格取得一覧: チップグリッド ---------------- */
.qual-group{
  border:1px solid var(--line);border-radius:12px;
  padding:16px 18px;background:var(--surface-2);margin-bottom:14px;
}
.qual-group-title{font-weight:700;font-size:14.5px;color:var(--brand-dark);margin:0 0 10px;}
.qual-chips{display:flex;flex-wrap:wrap;gap:8px;}
.qual-chip{
  background:var(--surface);border:1px solid var(--line);border-radius:999px;
  padding:7px 14px;font-size:14px;color:var(--ink);
}

/* ---------------- 高校生活入門講座: ステップ・申込CTA ---------------- */

.step-list{list-style:none;margin:0;padding:0;counter-reset:step;}
.step-list li{
  display:flex;gap:14px;align-items:flex-start;
  padding:12px 0;border-top:1px solid #eef2f6;
  font-size:15px;line-height:1.85;color:var(--ink);
}
.step-list li:first-child{border-top:none;padding-top:2px;}
.step-list li::before{
  counter-increment:step;content:counter(step);
  flex-shrink:0;width:26px;height:26px;border-radius:50%;
  background:var(--brand);color:#fff;font-size:13px;font-weight:700;
  display:flex;align-items:center;justify-content:center;margin-top:2px;
}

.cta-card{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;
  background:var(--surface-2);border:1px solid var(--line);border-radius:14px;
  padding:20px 22px;margin:16px 0 0;
}
.cta-card .txt .ttl{
  font-weight:900;font-size:16px;color:var(--ink);margin:0 0 4px;
  font-family:'Zen Kaku Gothic New','Noto Sans JP',sans-serif;
}
.cta-card .txt .period{font-size:13.5px;color:var(--ink-soft);}
.cta-card .btn{
  flex-shrink:0;background:var(--brand);color:#fff;font-weight:700;font-size:14.5px;
  padding:12px 24px;border-radius:8px;text-decoration:none;white-space:nowrap;
}
.cta-card .btn:hover{background:var(--brand-dark);}

/* ---------------- 学校概要: 本校の歴史(タイムライン) ---------------- */
.history-list{
  list-style:none;margin:0;padding:0;
  border-left:2px solid var(--line);margin-left:6px;
}
.history-item{
  position:relative;padding:0 0 18px 24px;
}
.history-item:last-child{padding-bottom:0;}
.history-item::before{
  content:"";position:absolute;left:-7px;top:5px;
  width:12px;height:12px;border-radius:50%;
  background:var(--brand);border:2px solid var(--surface);
}
.history-item .yr{
  display:block;font-weight:700;font-size:13.5px;color:var(--brand-dark);margin:0 0 2px;
}
.history-item .ev{font-size:14.5px;line-height:1.8;color:var(--ink);}

/* ---------------- 学校概要: 生徒数テーブル ---------------- */
.data-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);}
table.data-table{width:100%;border-collapse:collapse;font-size:14px;min-width:520px;}
table.data-table caption{
  text-align:left;font-weight:700;font-size:14.5px;color:var(--brand-dark);
  padding:14px 16px 8px;background:var(--surface);
}
table.data-table th,table.data-table td{
  padding:9px 12px;border-bottom:1px solid var(--line);text-align:center;
}
table.data-table thead th{
  background:var(--surface-2);color:var(--brand-dark);font-weight:700;font-size:13.5px;
}
table.data-table tbody th{
  background:var(--surface-2);font-weight:700;text-align:left;white-space:nowrap;
}
table.data-table tr.total td,table.data-table tr.total th{
  background:#eaf1f7;font-weight:700;
}
table.data-table tbody tr:last-child td,table.data-table tbody tr:last-child th{border-bottom:none;}

/* ---------------- 校長挨拶 ---------------- */
.principal-photo{
  width:100%;border-radius:12px;box-shadow:var(--shadow);display:block;margin:0 0 26px;
}
.principal-quote{
  border-left:4px solid var(--brand);background:var(--surface-2);
  margin:0 0 24px;padding:18px 22px;font-size:15.5px;line-height:1.9;color:var(--ink);
}
.principal-sign{text-align:right;margin:32px 0 0;}
.principal-sign .role{margin:0;font-size:14px;color:var(--ink-soft);}
.principal-sign .name{margin:4px 0 0;font-size:19px;font-weight:700;color:var(--ink);}

/* ---------------- 市外から入学希望の方へ: 通学ステップ ---------------- */
.commute-block{
  border:1px solid var(--line);border-radius:14px;background:var(--surface);
  box-shadow:var(--shadow);padding:20px 22px;margin:0 0 20px;
}
.commute-block h3{
  font-family:'Zen Kaku Gothic New','Noto Sans JP',sans-serif;
  font-weight:900;font-size:16px;color:var(--brand-dark);margin:0 0 16px;
}
.commute-cols{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
@media (max-width:600px){ .commute-cols{grid-template-columns:1fr;} }
.commute-cols h4{
  font-size:13.5px;font-weight:700;color:var(--ink-soft);margin:0 0 10px;
}
.commute-step{display:flex;align-items:center;gap:10px;margin:0 0 10px;}
.commute-step img{width:92px;height:auto;flex-shrink:0;}
.commute-step p{margin:0;font-size:14.5px;line-height:1.7;color:var(--ink);}
.commute-cost{
  margin-top:14px;padding-top:14px;border-top:1px solid #eef2f6;
}
.commute-cost .amount{font-size:20px;font-weight:900;color:var(--brand-dark);}
.commute-cost .note{font-size:12.5px;color:var(--ink-soft);line-height:1.7;margin:6px 0 0;}

/* ---------------- 年間行事予定: 月タイムライン ---------------- */
.event-timeline{
  position:relative;margin:0 0 0 8px;padding-left:64px;
  border-left:3px solid var(--line);
}
.event-month{position:relative;padding:0 0 36px;}
.event-month:last-child{padding-bottom:0;}
.month-badge{
  position:absolute;left:-64px;top:-2px;width:52px;height:52px;
  border-radius:50%;color:#fff;display:flex;flex-direction:column;
  align-items:center;justify-content:center;box-shadow:var(--shadow);
  font-family:'Zen Kaku Gothic New','Noto Sans JP',sans-serif;
}
.month-badge b{font-size:19px;line-height:1;font-weight:900;}
.month-badge span{font-size:9px;margin-top:1px;}
.month-badge.c1{background:var(--brand-dark);}
.month-badge.c2{background:var(--brand);}
.month-badge.c3{background:var(--brand-light);}
.month-photo{
  display:block;width:100%;max-width:460px;aspect-ratio:3/2;
  object-fit:cover;border-radius:14px;box-shadow:var(--shadow);
  margin:0 0 14px;
}
.month-items{list-style:none;margin:2px 0 0;padding:0;}
.month-items li{
  font-size:14.5px;line-height:1.85;color:var(--ink);
  padding:0 0 0 14px;position:relative;
}
.month-items li::before{
  content:"";position:absolute;left:0;top:10px;
  width:5px;height:5px;border-radius:50%;background:var(--brand-light);
}

/* ---------------- 部活動一覧・学科紹介(見出し部分は共通) ---------------- */
.club-page-hero, .course-hero{padding:44px 24px 36px;text-align:center;}
.club-page-hero h1, .course-hero h1{
  font-family:'Zen Kaku Gothic New','Noto Sans JP',sans-serif;
  font-weight:900;font-size:clamp(26px,4.4vw,40px);line-height:1.4;
  margin:0 0 16px;color:var(--ink);
}
.club-page-hero h1 em, .course-hero h1 em{font-style:normal;color:var(--brand-dark);}
.club-page-hero .lede, .course-hero .lede{max-width:34em;margin:0 auto;font-size:15.5px;line-height:1.9;color:var(--ink-soft);}
.club-stat-row, .course-stat-row{display:flex;justify-content:center;gap:14px;margin-top:26px;}
.club-stat, .course-stat{
  background:var(--surface);border:1px solid var(--line);border-radius:16px;
  padding:16px 26px;box-shadow:var(--shadow);
  display:flex;align-items:baseline;gap:10px;
}
.club-stat b, .course-stat b{font-family:'Zen Kaku Gothic New',sans-serif;font-weight:900;font-size:30px;color:var(--brand-dark);font-variant-numeric:tabular-nums;}
.club-stat span, .course-stat span{font-size:13.5px;color:var(--ink-soft);}

.club-section-head, .course-section-head{display:flex;align-items:baseline;justify-content:space-between;margin:8px 0 20px;flex-wrap:wrap;gap:6px;}
.club-section-head h2, .course-section-head h2{font-family:'Zen Kaku Gothic New','Noto Sans JP',sans-serif;font-weight:700;font-size:18px;margin:0;color:var(--ink);}
.club-section-head p, .course-section-head p{margin:0;font-size:13px;color:var(--ink-soft);}

/* ---------------- 学科紹介: 学科・専攻科カード ---------------- */
.course-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin:0 0 44px;}
@media (max-width:700px){ .course-grid{grid-template-columns:1fr;} }
.course-grid.single-card{grid-template-columns:minmax(0,1fr);max-width:466px;}
a.course-card{
  display:block;background:var(--surface);
  border:1px solid var(--line);border-radius:18px;overflow:hidden;
  text-decoration:none;color:inherit;box-shadow:var(--shadow);
  transition:transform .15s ease, box-shadow .15s ease;
}
.course-card:hover{transform:translateY(-3px);box-shadow:0 4px 10px rgba(0,0,0,.08),0 16px 28px -14px rgba(0,0,0,.24);}
.course-card-photo{aspect-ratio:4/3;background:var(--surface-2);overflow:hidden;}
.course-card-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.course-card-photo.split{display:grid;gap:2px;background:var(--line);}
.course-card-photo.split.cols-2{grid-template-columns:repeat(2,1fr);}
.course-card-photo.split.cols-3{grid-template-columns:repeat(3,1fr);}
.course-card-photo.split figure{margin:0;position:relative;overflow:hidden;background:var(--surface-2);}
.course-card-photo.split figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:10px 8px 7px;
  background:linear-gradient(to top, rgba(20,30,40,.82), rgba(20,30,40,0));
  color:#fff;font-family:'Zen Kaku Gothic New',sans-serif;font-weight:700;font-size:11.5px;line-height:1.3;
}
.course-card-body{padding:18px 20px 20px;}
.course-card-name{display:block;font-family:'Zen Kaku Gothic New','Noto Sans JP',sans-serif;font-weight:900;font-size:19px;color:var(--ink);margin:0 0 8px;}
.course-card-tagline{margin:0 0 14px;font-size:14px;line-height:1.75;color:var(--ink-soft);}
.course-card-more{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;font-weight:700;color:var(--brand);}
.course-card-more svg{transition:transform .15s ease;}
.course-card:hover .course-card-more svg{transform:translateX(3px);}

.club-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:0 0 8px;}
@media (max-width:860px){ .club-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:480px){ .club-grid{grid-template-columns:1fr;} }

a.club-card{
  display:flex;flex-direction:column;background:var(--surface);
  border:1px solid var(--line);border-radius:16px;overflow:hidden;
  text-decoration:none;color:inherit;box-shadow:var(--shadow);
  transition:transform .15s ease, box-shadow .15s ease;
}
.club-card:hover{transform:translateY(-3px);box-shadow:0 4px 10px rgba(0,0,0,.08),0 16px 28px -14px rgba(0,0,0,.24);}
.club-card-photo{aspect-ratio:4/3;background:var(--surface-2);overflow:hidden;}
.club-card-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.club-card-photo.placeholder{display:flex;align-items:center;justify-content:center;color:var(--brand);opacity:.5;}
.club-card-body{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:13px 15px;}
.club-card-name{font-family:'Zen Kaku Gothic New','Noto Sans JP',sans-serif;font-weight:700;font-size:14.5px;color:var(--ink);}
.club-card-arrow{display:flex;color:var(--brand);flex-shrink:0;transition:transform .15s ease;}
.club-card:hover .club-card-arrow{transform:translateX(3px);}
.club-card.soon{cursor:default;}
.club-card-tag{font-size:11.5px;font-weight:500;color:var(--ink-soft);background:var(--surface-2);padding:3px 9px;border-radius:999px;flex-shrink:0;}

/* ---------------- 各部活ページ(共通) ---------------- */
.club-hero{margin:16px 0 0;}
.club-hero-frame{border-radius:16px;overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--line);}
.club-hero-frame img{width:100%;height:100%;object-fit:cover;display:block;}

.club-video{
  margin:16px 0 0;border-radius:16px;overflow:hidden;
  box-shadow:var(--shadow);border:1px solid var(--line);
  aspect-ratio:16/9;background:#000;
}
.club-video video{width:100%;height:100%;object-fit:contain;display:block;background:#000;}
.club-hero.single .club-hero-frame{aspect-ratio:16/9;}
.club-hero.gallery{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.club-hero.gallery .club-hero-frame{aspect-ratio:4/3;border-radius:14px;}
@media (max-width:560px){ .club-hero.gallery{grid-template-columns:1fr;} }

.club-title-row{margin:26px 0 4px;}
.club-title-row h1{
  font-family:'Zen Kaku Gothic New','Noto Sans JP',sans-serif;font-weight:900;
  font-size:clamp(24px,4vw,32px);margin:0;color:var(--ink);
}
.club-fact-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1px;
  background:var(--line);border:1px solid var(--line);border-radius:14px;
  overflow:hidden;margin:26px 0;
}
@media (max-width:640px){ .club-fact-grid{grid-template-columns:1fr;} }
.club-fact{background:var(--surface);padding:16px 18px;}
.club-fact-label{display:block;font-size:12px;font-weight:700;color:var(--brand);letter-spacing:.05em;margin-bottom:5px;}
.club-fact-value{font-size:14px;line-height:1.7;color:var(--ink);}

.club-callout{
  background:var(--surface-2);border-left:4px solid var(--brand);
  border-radius:0 12px 12px 0;padding:18px 22px;margin:28px 0;
  font-size:15px;font-weight:700;color:var(--brand-dark);
}
a.club-back-link{
  display:inline-flex;align-items:center;gap:8px;margin-top:10px;
  padding:12px 22px;border-radius:999px;background:var(--surface);
  border:1px solid var(--line);color:var(--ink);text-decoration:none;
  font-weight:700;font-size:14px;box-shadow:var(--shadow);
}
.club-back-link svg{transform:rotate(180deg);color:var(--brand);}
.club-back-link:hover{border-color:var(--brand);}

/* ---------------- 生物部: 採集結果グラフ ---------------- */
.club-figure{margin:28px 0;}
.club-figure img{width:100%;border-radius:12px;box-shadow:var(--shadow);display:block;}
.club-figure figcaption{margin-top:8px;font-size:13px;color:var(--ink-soft);text-align:center;}

/* ---------------- 学科ページ(海洋・機関科/水産資源科/専攻科)共通 ---------------- */
.dept-stat{display:inline-flex;align-items:baseline;gap:8px;margin-top:18px;background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:8px 20px;font-size:13.5px;color:var(--ink-soft);}
.dept-stat b{font-family:'Zen Kaku Gothic New',sans-serif;font-weight:900;font-size:20px;color:var(--brand-dark);}

.course-flow{margin:40px auto 0;max-width:920px;background:var(--surface-2);border:1px solid var(--line);border-radius:24px;padding:40px 44px 36px;}
.flow-step{border:3px solid var(--brand);border-radius:14px;background:var(--surface);padding:22px 28px;font-size:20px;color:var(--ink);text-align:center;box-shadow:var(--shadow);}
.flow-step b{color:var(--brand-dark);font-weight:900;margin-right:10px;font-size:22px;}
.flow-step.wide{background:transparent;border:none;box-shadow:none;padding:26px 0 14px;font-size:22px;line-height:1.7;font-weight:700;}
.flow-step.wide b{font-size:25px;}
.flow-arrow{display:flex;justify-content:center;margin:6px 0;color:var(--brand);}
.flow-arrow svg{width:34px;height:34px;}
.flow-branches{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 18px;margin-top:10px;}
.flow-branches span{display:inline-flex;align-items:baseline;gap:8px;background:var(--brand-dark);color:#fff;border-radius:999px;padding:14px 26px;font-size:18px;font-weight:700;}
.flow-branches b{color:#d7e6f2;font-weight:700;}
.flow-note{margin-top:22px;font-size:14.5px;color:var(--ink-soft);text-align:center;line-height:1.8;}
.flow-note a{color:var(--brand);font-weight:700;}
@media (max-width:600px){
  .course-flow{padding:26px 20px 24px;border-radius:18px;}
  .flow-step{padding:16px 18px;font-size:16px;}
  .flow-step b{font-size:18px;}
  .flow-step.wide{font-size:17px;}
  .flow-step.wide b{font-size:19px;}
  .flow-branches span{padding:11px 18px;font-size:15px;}
}

.course-split{display:grid;gap:2px;background:var(--line);margin:28px 0 0;border-radius:16px;overflow:hidden;box-shadow:var(--shadow);}
.course-split figure{margin:0;position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--surface-2);}
.course-split img{width:100%;height:100%;object-fit:cover;display:block;}
.course-split figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:20px 16px 16px;
  background:linear-gradient(to top, rgba(20,30,40,.82), rgba(20,30,40,0));
  color:#fff;font-family:'Zen Kaku Gothic New',sans-serif;font-weight:900;font-size:16px;
}
.course-split.cols-2{grid-template-columns:repeat(2,1fr);}
.course-split.cols-3{grid-template-columns:repeat(3,1fr);}
@media (max-width:480px){ .course-split{grid-template-columns:1fr;} .course-split figure{aspect-ratio:16/10;} }

.course-block{margin:52px 0 0;padding-top:36px;border-top:1px solid var(--line);}
.course-block:first-of-type{margin-top:44px;}
.course-name{font-family:'Zen Kaku Gothic New',sans-serif;font-weight:900;font-size:22px;color:var(--brand-dark);margin:0 0 6px;}
.course-tagline{font-size:15.5px;font-weight:700;color:var(--ink);margin:0 0 16px;}
.course-desc{font-size:15px;line-height:1.95;color:var(--ink);margin:0 0 26px;}

.gallery-title{font-size:13px;font-weight:700;color:var(--brand);letter-spacing:.04em;margin:0 0 12px;}
.activity-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:0 0 26px;}
.activity-gallery figure{margin:0;border-radius:12px;overflow:hidden;background:var(--surface-2);box-shadow:var(--shadow);}
.activity-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;}
.activity-gallery figcaption{padding:8px 10px;font-size:12.5px;line-height:1.5;color:var(--ink);font-weight:700;}

.meta-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media (max-width:640px){ .meta-row{grid-template-columns:1fr;} }
.meta-box{border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:var(--surface);}
.meta-box .lbl{display:block;font-size:12.5px;font-weight:700;color:var(--brand);letter-spacing:.05em;margin-bottom:6px;}
.meta-box .val{font-size:14px;line-height:1.8;color:var(--ink);}

.info-block{margin:26px 0 0;padding:18px 20px;background:var(--surface-2);border-radius:12px;}
.info-block h3{font-family:'Zen Kaku Gothic New',sans-serif;font-size:14.5px;font-weight:900;color:var(--brand-dark);margin:0 0 10px;}
.info-block p{font-size:14px;line-height:1.85;color:var(--ink);margin:0 0 10px;}
.info-block p:last-child{margin-bottom:0;}
.info-block ul{margin:0;padding-left:20px;font-size:14px;line-height:1.9;color:var(--ink);}
.info-block b{color:var(--brand-dark);}

.qa-list{list-style:none;margin:0;padding:0;display:grid;gap:14px;}
.qa-list .q{font-weight:900;color:var(--brand-dark);font-size:14.5px;margin-bottom:4px;}
.qa-list .a{font-size:14px;line-height:1.85;color:var(--ink);}

/* ---------------- 進路先一覧 ---------------- */
.career-hero{position:relative;max-width:1000px;margin:16px auto 0;padding:0 24px;}
.career-hero-inner{position:relative;display:grid;grid-template-columns:1fr 1fr;background:var(--brand-dark);border-radius:20px;overflow:hidden;box-shadow:var(--shadow);min-height:260px;}
.career-hero-text{position:relative;z-index:2;padding:36px 32px;display:flex;flex-direction:column;justify-content:center;color:#ffffff;}
.career-hero-eyebrow{font-family:'Zen Kaku Gothic New',sans-serif;font-size:12px;font-weight:700;letter-spacing:.16em;color:#9fc4e6;margin:0 0 10px;}
.career-hero-name{font-family:'Zen Kaku Gothic New',sans-serif;font-weight:900;font-size:clamp(24px,3.6vw,32px);margin:0 0 8px;line-height:1.3;}
.career-hero-cap{font-size:14px;color:#c3d8ea;}
.career-hero-en{position:absolute;right:-8px;top:0;bottom:0;display:flex;align-items:center;font-family:'Zen Kaku Gothic New',sans-serif;font-weight:900;font-size:15px;letter-spacing:.2em;color:rgba(255,255,255,.12);writing-mode:vertical-rl;white-space:nowrap;z-index:1;pointer-events:none;}
.career-hero-photo{position:relative;z-index:2;}
.career-hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center 25%;display:block;min-height:260px;}
@media (max-width:640px){ .career-hero-inner{grid-template-columns:1fr;} .career-hero-photo img{min-height:180px;} }

.career-stat-band{background:var(--brand-dark);border-radius:18px;padding:30px 28px;margin:8px 0 40px;}
.career-stat-band-title{font-family:'Zen Kaku Gothic New',sans-serif;font-weight:700;font-size:15px;color:#9fc4e6;text-align:center;margin:0 0 22px;letter-spacing:.04em;}
.career-stat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;}
@media (max-width:760px){ .career-stat-grid{grid-template-columns:repeat(2,1fr);} }
.career-stat-item{text-align:center;padding:6px 8px;border-left:1px solid rgba(255,255,255,.18);}
.career-stat-item:first-child{border-left:none;}
@media (max-width:760px){ .career-stat-item{border-left:none;} }
.career-stat-item .label{display:block;font-size:13px;color:#c3d8ea;margin-bottom:8px;}
.career-stat-item .num{display:block;font-family:'Zen Kaku Gothic New',sans-serif;font-weight:900;font-size:34px;color:#ffffff;line-height:1.1;}
.career-stat-item .num .unit{font-size:16px;font-weight:700;margin-left:2px;}
.career-stat-item .sub{display:block;font-size:12px;color:#9fc4e6;margin-top:6px;}

.year-section{margin:40px 0;}
.year-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;border-bottom:2px solid var(--brand);padding-bottom:10px;margin-bottom:8px;}
.year-head h2{font-family:'Zen Kaku Gothic New',sans-serif;font-weight:900;font-size:22px;color:var(--ink);margin:0;}
.year-head .tag{font-size:12px;font-weight:700;color:#fff;background:var(--brand);padding:4px 12px;border-radius:999px;}
.year-head .meta{font-size:13px;color:var(--ink-soft);margin-left:auto;}

.subhead{font-family:'Zen Kaku Gothic New',sans-serif;font-weight:700;font-size:16px;color:var(--brand-dark);margin:26px 0 10px;padding-left:11px;border-left:4px solid var(--brand);}
.subhead-sm{font-size:14px;font-weight:700;color:var(--ink);margin:18px 0 8px;}

.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
table.career{width:100%;border-collapse:collapse;font-size:14.5px;margin:0 0 6px;}
table.career th,table.career td{border:1px solid var(--line);padding:9px 12px;text-align:left;line-height:1.6;vertical-align:top;}
table.career thead th{background:var(--surface-2);font-weight:700;color:var(--brand-dark);font-size:13.5px;white-space:nowrap;}
table.career td.n,table.career th.n{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;width:1%;}
table.career tbody tr:nth-child(even){background:#fafcfe;}
table.career tfoot td{background:var(--surface-2);font-weight:700;}
.table-note{font-size:12.5px;color:var(--ink-soft);margin:6px 0 0;}

.two-col{display:grid;grid-template-columns:1fr 1fr;gap:26px;}
@media (max-width:760px){ .two-col{grid-template-columns:1fr;} }

details.year{border:1px solid var(--line);border-radius:14px;padding:0 22px;margin:18px 0;background:var(--surface);}
details.year>summary{cursor:pointer;list-style:none;padding:18px 0;font-family:'Zen Kaku Gothic New',sans-serif;font-weight:700;font-size:17px;color:var(--brand-dark);display:flex;align-items:center;gap:10px;}
details.year>summary::-webkit-details-marker{display:none;}
details.year>summary::before{content:"";width:9px;height:9px;border-right:2px solid var(--brand);border-bottom:2px solid var(--brand);transform:rotate(45deg);transition:transform .18s;flex-shrink:0;}
details.year[open]>summary::before{transform:rotate(-135deg);}
details.year>summary .n{margin-left:auto;font-family:'Noto Sans JP',sans-serif;font-weight:400;font-size:13px;color:var(--ink-soft);}
details.year>*:last-child{padding-bottom:22px;}

.notice strong{color:var(--brand-dark);}

/* ---------------- トップページ ---------------- */
.idx-ar-banner{display:block;border-radius:14px;overflow:hidden;box-shadow:var(--shadow);margin:20px 0 24px;}
.idx-ar-banner img{width:100%;display:block;}

.idx-sect{background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--brand);border-radius:16px;padding:24px 26px 28px;box-shadow:var(--shadow);margin-bottom:24px;}
.idx-sect-head{display:flex;align-items:baseline;gap:10px;margin:0 0 18px;padding-bottom:12px;border-bottom:2px solid var(--brand);}
.idx-sect-head h2{font-family:'Zen Kaku Gothic New',sans-serif;font-weight:900;font-size:18px;margin:0;color:var(--brand-dark);}
.idx-sect-head .en{font-size:11px;letter-spacing:.12em;color:var(--brand-light);font-weight:700;}
.idx-sect-note{font-size:14px;color:var(--ink-soft);margin:14px 0 0;line-height:1.8;}

.idx-vr-frame{position:relative;width:100%;padding-top:56%;border-radius:12px;overflow:hidden;background:#eee;}
.idx-vr-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}

.idx-two-col{display:grid;grid-template-columns:1.15fr .85fr;gap:24px;}
@media (max-width:760px){ .idx-two-col{grid-template-columns:1fr;} }

.idx-news-list .news-feed-item{padding:16px 0;border-top:1px solid #eef2f6;}
.idx-news-list .news-feed-item:first-child{padding-top:0;border-top:none;}
.idx-news-list .news-feed-label{display:inline-block;background:var(--brand);color:#fff;font-size:12px;font-weight:700;padding:3px 12px;border-radius:999px;margin-bottom:8px;}
.idx-news-list .news-feed-date{margin:0 0 6px;font-weight:700;font-size:13.5px;color:var(--brand-dark);}
.idx-news-list .news-feed-body p{margin:0 0 6px;font-size:14.5px;line-height:1.85;color:var(--ink);}
.idx-news-list .news-feed-body a{color:var(--brand);}

.idx-social-block{margin-bottom:22px;}
.idx-social-block:last-child{margin-bottom:0;}
.idx-social-block h3{display:flex;align-items:center;gap:8px;font-family:'Zen Kaku Gothic New',sans-serif;font-size:14.5px;font-weight:700;color:var(--ink);margin:0 0 12px;}
a.idx-insta-link{display:inline-flex;align-items:center;gap:8px;color:var(--brand);font-weight:700;text-decoration:none;font-size:14.5px;}
.idx-insta-link:hover{text-decoration:underline;}

.idx-quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:0 0 24px;}
@media (max-width:640px){ .idx-quick-grid{grid-template-columns:1fr;} }
.idx-quick-card{display:flex;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:28px 16px;text-decoration:none;box-shadow:var(--shadow);transition:transform .15s ease,box-shadow .15s ease;}
.idx-quick-card:hover{transform:translateY(-3px);box-shadow:0 4px 10px rgba(0,0,0,.08),0 16px 28px -14px rgba(0,0,0,.24);}
.idx-quick-card img{height:92px;width:auto;display:block;}

.idx-foot-note{font-size:12.5px;color:var(--ink-soft);text-align:center;margin:8px 0 0;line-height:1.8;}
