/* トップ・二階層目で共通のヘッダー／フッター */
.logo.brand-logo {
  display: flex;
  width: min(330px, 29vw);
  flex-direction: column;
  align-items: flex-start;
  color: #fff;
  text-decoration: none;
  line-height: 1;
}
.brand-logo .brand-jp {
  margin: 0 0 5px 5px;
  color: #fff;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .18em;
}
.brand-logo img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 0;
  background: transparent;
}
.footer-recruit {
  padding: 28px 20px;
  color: #fff;
  background: linear-gradient(110deg, #001f46, #052f63);
  text-align: center;
}
.footer-recruit strong {
  display: block;
  margin-bottom: 5px;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: 25px;
}
.footer-recruit p { margin: 0; }
.footer-recruit a {
  display: inline-block;
  margin-top: 14px;
  padding: 10px 30px;
  border-radius: 999px;
  color: #fff;
  background: #e60020;
  font-weight: 800;
  text-decoration: none;
}
.footer-recruit a:hover,
.footer-recruit a:focus-visible { background: #bd001b; }
.portrait-image { width: 100%; aspect-ratio: 1; object-fit: cover; background: #dceefa; }
.career-list { margin: 0; padding-left: 1.25em; color: #60758a; font-size: 13px; line-height: 1.65; }
.career-list li + li { margin-top: 4px; }
.team-values { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.team-values article { padding: 25px; border: 1px solid #b7cee2; border-radius: 10px; background: linear-gradient(135deg, #fff, #edf8ff); }
.team-values b { color: #e60020; font-size: 14px; letter-spacing: .12em; }
.team-values h3 { margin: 5px 0 8px; color: #001f46; font-size: 22px; }
.team-values p { margin: 0; color: #60758a; }
.feature-poster { display: grid; grid-template-columns: minmax(260px, .85fr) 1.15fr; gap: 32px; align-items: center; margin-top: 28px; padding: 30px; border-radius: 12px; color: #fff; background: linear-gradient(120deg, #001f46, #052f63); }
.feature-poster img { width: 100%; max-height: 520px; object-fit: contain; border-radius: 8px; background: #fff; }
.feature-poster h3 { margin: 0 0 8px; font-family: "Yu Mincho", serif; font-size: 28px; }
.feature-poster .button, .pdf-action .button { display: inline-block; margin-top: 14px; padding: 10px 25px; border-radius: 999px; color: #fff; background: #e60020; font-weight: 800; text-decoration: none; }
.uniform-copy { max-width: 900px; margin: 0 auto; padding: 34px 38px; border: 1px solid #b7cee2; border-radius: 12px; background: linear-gradient(135deg, #fff, #edf8ff); box-shadow: 0 12px 35px rgba(0,43,91,.08); }
.uniform-copy p { margin: 0; color: #183a60; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: 18px; line-height: 2; }
.uniform-copy p + p { margin-top: 1.2em; }
.uniform-showcase { max-width: 980px; margin: 30px auto 0; }
.uniform-showcase figure { position: relative; overflow: hidden; margin: 0; border: 1px solid #b7cee2; border-radius: 14px; background: #eaf3fb; box-shadow: 0 14px 34px rgba(0,43,91,.11); }
.uniform-showcase img { display: block; width: 100%; height: 100%; }
.uniform-showcase-hero { aspect-ratio: 3 / 2; }
.uniform-showcase-hero img { object-fit: cover; }
.uniform-showcase-hero:after { content: ""; position: absolute; inset: 45% 0 0; background: linear-gradient(transparent, rgba(0,25,58,.82)); pointer-events: none; }
.uniform-showcase-hero figcaption { position: absolute; z-index: 1; right: 28px; bottom: 24px; left: 28px; color: #fff; }
.uniform-showcase-hero figcaption strong { display: block; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(22px, 3vw, 34px); line-height: 1.35; }
.uniform-showcase-hero figcaption span { display: block; margin-top: 4px; font-size: 14px; }
.uniform-showcase-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 18px; }
.uniform-showcase-pair figure { aspect-ratio: 4 / 5; }
.uniform-showcase-pair img { object-fit: cover; }
.uniform-showcase-uniform img { object-fit: contain; }
.uniform-showcase-pair figcaption { position: absolute; right: 14px; bottom: 14px; left: 14px; padding: 10px 12px; border-radius: 7px; color: #fff; background: rgba(0,31,70,.88); font-size: 13px; font-weight: 800; text-align: center; }
.results-archive { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.results-archive .school-year { margin: 0; }
.achievement-list { margin: 0; padding: 20px 26px 22px 48px; }
.achievement-list li + li { margin-top: 7px; }
.achievement-list .annotation { color: #60758a; font-size: 14px; }
.achievement-list .featured-result { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px 13px; align-items: center; margin-left: -22px; padding: 12px 14px; border: 1px solid #b7cee2; border-radius: 9px; list-style: none; background: linear-gradient(135deg, #fff, #edf8ff); box-shadow: 0 5px 14px rgba(0,43,91,.07); }
.achievement-list .featured-result.is-major { border-color: #ef9aaa; background: linear-gradient(135deg, #fff, #fff2f4); }
.achievement-list .featured-result.is-national { box-shadow: inset 4px 0 0 #07508d, 0 5px 14px rgba(0,43,91,.07); }
.achievement-list .featured-result.is-prefectural { box-shadow: inset 4px 0 0 #0877ad, 0 5px 14px rgba(0,43,91,.07); }
.result-badges { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.result-badge { display: inline-flex; align-items: center; min-height: 25px; padding: 3px 9px; border-radius: 999px; color: #fff; font-size: 11px; font-weight: 900; letter-spacing: .05em; line-height: 1.2; white-space: nowrap; }
.result-badge.national { background: linear-gradient(110deg, #001f46, #07508d); }
.result-badge.prefectural { background: linear-gradient(110deg, #07508d, #0b8fc4); }
.result-badge.major { background: linear-gradient(110deg, #c90020, #ed1839); }
.result-copy { color: #001f46; font-weight: 800; line-height: 1.65; }
.no-title { margin: 0; padding: 20px 26px; color: #60758a; }
.results-schedule-card { display: flex; align-items: center; justify-content: space-between; gap: 30px; margin: 0 0 52px; padding: 28px 32px; border-radius: 12px; color: #fff; background: linear-gradient(115deg, #001f46, #07508d); box-shadow: 0 14px 35px rgba(0,43,91,.15); }
.results-schedule-card span { color: #7edcff; font-size: 11px; font-weight: 900; letter-spacing: .16em; }
.results-schedule-card h2 { margin: 3px 0 5px; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: 28px; }
.results-schedule-card p { margin: 0; color: #dceeff; }
.results-schedule-card > a { flex: 0 0 auto; padding: 11px 24px; border: 1px solid rgba(255,255,255,.75); border-radius: 999px; color: #fff; background: #e60020; font-weight: 900; text-decoration: none; white-space: nowrap; }
.results-schedule-card > a:hover, .results-schedule-card > a:focus-visible { background: #bd001b; }
.history-highlight { max-width: 940px; margin: 0 auto; padding: 38px 42px; border: 1px solid #b7cee2; border-radius: 14px; background: linear-gradient(135deg, #fff, #edf8ff); box-shadow: 0 12px 35px rgba(0,43,91,.08); text-align: center; }
.history-highlight h3 { margin: 8px 0 14px; color: #001f46; font-family: "Yu Mincho", serif; font-size: clamp(25px, 3.4vw, 36px); }
.history-highlight p { margin: 0; color: #183a60; font-size: 17px; line-height: 2; }
.rapsodo-highlight { display: grid; grid-template-columns: 1fr minmax(280px, .75fr); gap: 34px; align-items: center; padding: 35px; border-radius: 14px; color: #fff; background: linear-gradient(120deg, #001f46, #07508d); }
.rapsodo-highlight .eyebrow { color: #79d7ff; font-size: 12px; font-weight: 800; letter-spacing: .18em; }
.rapsodo-highlight h2 { margin: 6px 0 12px; font-family: "Yu Mincho", serif; font-size: clamp(28px, 4vw, 42px); line-height: 1.35; }
.rapsodo-highlight img { width: 100%; max-height: 620px; object-fit: contain; border-radius: 8px; background: #fff; }
.practice-notice, .practice-lead { max-width: 920px; margin: 0 auto 24px; padding: 16px 20px; border-left: 5px solid #e60020; border-radius: 6px; background: #edf8ff; color: #0a315f; text-align: left; }
.venue-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.venue-cards .card { text-align: center; }
.venue-cards .card h3 a { color: #001f46; text-decoration: none; }
.recruit-status { margin: 0 0 38px; padding: 22px 25px; border: 2px solid #e60020; border-radius: 10px; color: #a40018; background: #fff2f3; font-size: clamp(18px, 2.5vw, 25px); font-weight: 800; text-align: center; white-space: pre-line; }
.pdf-viewer { overflow: hidden; border: 1px solid #b7cee2; border-radius: 10px; background: #edf8ff; }
.pdf-viewer iframe { display: block; width: 100%; height: 920px; border: 0; }
.pdf-action { text-align: center; }
.alumni-page { max-width: 1180px; }
.alumni-summary { max-width: 900px; margin: 0 auto 24px; padding: 24px 28px; border-left: 5px solid #e60020; border-radius: 8px; background: linear-gradient(135deg, #edf8ff, #fff); color: #183a60; }
.alumni-summary strong { display: block; margin-bottom: 5px; color: #001f46; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: 24px; }
.alumni-summary p { margin: 0; }
.alumni-nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.alumni-nav a { padding: 9px 19px; border: 1px solid #9ebbd5; border-radius: 999px; color: #00366e; background: #fff; font-weight: 800; text-decoration: none; }
.alumni-nav a:hover, .alumni-nav a:focus-visible { color: #fff; border-color: #00366e; background: #00366e; }
.alumni-group { scroll-margin-top: 130px; }
.alumni-group-heading { margin-bottom: 20px; padding: 23px 28px; border-radius: 10px; color: #fff; background: linear-gradient(110deg, #001f46, #07508d); }
.alumni-group-heading span { color: #7edcff; font-size: 11px; font-weight: 900; letter-spacing: .16em; }
.alumni-group-heading h2 { margin: 2px 0; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: 30px; }
.alumni-group-heading p { margin: 0; color: #dceeff; }
.alumni-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.alumni-school { min-width: 0; padding: 18px 20px; border: 1px solid #c0d4e6; border-radius: 9px; background: linear-gradient(135deg, #fff, #f3faff); box-shadow: 0 5px 16px rgba(0,43,91,.05); }
.alumni-school h3 { margin: 0 0 11px; color: #001f46; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: 20px; }
.alumni-school p { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.alumni-school p span { padding: 4px 9px; border-radius: 999px; color: #124978; background: #dceefa; font-size: 12px; font-weight: 800; white-space: nowrap; }
.alumni-note { margin-top: 18px; text-align: right; }

@media (max-width: 820px) {
  .logo.brand-logo { width: min(225px, calc(100vw - 96px)); }
  .brand-logo .brand-jp { margin-bottom: 3px; font-size: 11px; }
  .footer-recruit { padding: 24px 16px; }
  .footer-recruit strong { font-size: 22px; }
  .team-values, .feature-poster, .rapsodo-highlight { grid-template-columns: 1fr; }
  .feature-poster, .rapsodo-highlight { padding: 24px; }
  .uniform-copy { padding: 25px 22px; }
  .uniform-copy p { font-size: 16px; line-height: 1.9; }
  .uniform-showcase-hero figcaption { right: 20px; bottom: 18px; left: 20px; }
  .results-archive { grid-template-columns: 1fr; }
  .history-highlight { padding: 28px 22px; }
  .venue-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .achievement-list .featured-result { grid-template-columns: 1fr; }
  .results-schedule-card { align-items: flex-start; flex-direction: column; padding: 24px; }
  .pdf-viewer iframe { height: 650px; }
  .alumni-list { grid-template-columns: 1fr; }
}

@media (max-width: 520px) {
  .team-values { grid-template-columns: 1fr; }
  .feature-poster, .rapsodo-highlight { padding: 18px; }
  .pdf-viewer iframe { height: 500px; }
  .venue-cards { grid-template-columns: 1fr; }
  .uniform-showcase { margin-top: 22px; }
  .uniform-showcase-hero { aspect-ratio: 4 / 3; }
  .uniform-showcase-hero figcaption { right: 14px; bottom: 13px; left: 14px; }
  .uniform-showcase-hero figcaption strong { font-size: 19px; }
  .uniform-showcase-hero figcaption span { display: none; }
  .uniform-showcase-pair { grid-template-columns: 1fr; gap: 14px; margin-top: 14px; }
  .uniform-showcase-pair figure { aspect-ratio: 4 / 5; }
  .alumni-summary { padding: 20px 18px; }
  .alumni-summary strong { font-size: 21px; }
  .alumni-nav { justify-content: stretch; }
  .alumni-nav a { flex: 1 1 calc(50% - 5px); padding-inline: 10px; text-align: center; }
  .alumni-group-heading { padding: 20px; }
  .alumni-group-heading h2 { font-size: 26px; }
  .alumni-school { padding: 16px; }
}
