@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700&display=swap');
:root{--blue:#244f7b;--dark:#1e3349;--pale:#f2f6fa;--line:#d9e2eb}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:#243444;background:#fff;font-family:'Noto Sans JP','Yu Gothic',Meiryo,sans-serif;line-height:1.85}a{color:var(--blue)}.wrap{max-width:1080px;margin:auto;padding:0 24px}.site-header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.header-inner{min-height:86px;display:flex;justify-content:space-between;align-items:center;gap:22px}.logo{width:280px;max-width:100%;height:auto;display:block}.nav{display:flex;gap:24px;flex-wrap:wrap}.nav a{font-size:14px;font-weight:600;text-decoration:none;white-space:nowrap}.nav a:hover{text-decoration:underline}.notice{background:var(--pale);color:#385573;padding:10px 0;text-align:center;font-size:12px}.hero{padding:66px 0 76px;background:linear-gradient(130deg,#f5f8fb,#fff 65%)}.hero-grid{display:grid;grid-template-columns:1fr .82fr;gap:64px;align-items:center}.eyebrow{color:var(--blue);font-size:13px;letter-spacing:.18em;font-weight:700}.hero h1{font-size:clamp(32px,4.8vw,55px);line-height:1.4;color:var(--dark);margin:15px 0 24px}.lead{font-size:17px;line-height:2}.hero-poster{width:100%;max-width:380px;display:block;margin:auto;box-shadow:0 20px 45px #17355026}.button{display:inline-block;background:var(--blue);color:white;text-decoration:none;padding:13px 27px;border-radius:3px;font-weight:700;margin-top:16px}.button:hover{background:#173a5e}.button-outline{background:#fff;color:var(--blue);border:1px solid var(--blue)}.section{padding:75px 0}.section.alt{background:var(--pale)}.section h2{font-size:29px;color:var(--dark);margin:0 0 30px}.section h2:after{content:'';display:block;width:50px;height:3px;background:var(--blue);margin-top:13px}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.card{background:white;border:1px solid var(--line);padding:30px}.card h3{margin:0 0 12px;color:var(--blue);font-size:22px}.facts{display:grid;grid-template-columns:120px 1fr;gap:12px 22px;margin:25px 0}.facts dt{font-weight:700;color:var(--blue)}.facts dd{margin:0}.poster-pair{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.poster-pair img{width:100%;height:auto;box-shadow:0 5px 22px #0002}.small{font-size:13px;color:#526477}.footer{background:#1e3349;color:#e6edf5;padding:35px 0;font-size:13px}.footer a{color:#fff}.footer-inner{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.subhero{background:var(--pale);padding:55px 0}.subhero h1{margin:10px 0;font-size:clamp(29px,4vw,43px);color:var(--dark)}.info-table{border-top:1px solid var(--line)}.info-row{display:grid;grid-template-columns:180px 1fr;border-bottom:1px solid var(--line);padding:18px 0;gap:20px}.info-row strong{color:var(--blue)}.placeholder{border:1px solid var(--line);background:#f9fbfd;padding:28px}.note{border-left:3px solid var(--blue);padding-left:18px;color:#40536a}@media(max-width:760px){.header-inner{align-items:flex-start;flex-direction:column;padding:17px 0;gap:13px;min-height:auto}.logo{width:225px}.nav{gap:9px 18px}.nav a{font-size:12px}.hero{padding:38px 0 48px}.hero-grid{grid-template-columns:1fr;gap:28px}.hero h1{font-size:35px}.hero-poster{max-width:310px}.section{padding:48px 0}.cards,.poster-pair{grid-template-columns:1fr}.section h2{font-size:25px}.info-row{grid-template-columns:1fr;gap:5px}.facts{grid-template-columns:90px 1fr;font-size:14px}}
/* Official SNS */
.sns-section{text-align:center}.sns-section h2:after{margin-left:auto;margin-right:auto}.sns-intro{margin:-10px 0 32px;color:#526477}.sns-grid{display:flex;justify-content:center;gap:34px;flex-wrap:wrap}.sns-link{display:flex;flex-direction:column;align-items:center;gap:10px;min-width:90px;text-decoration:none;font-size:13px;color:#33475d}.sns-link:hover{text-decoration:underline}.sns-icon{width:62px;height:62px;border-radius:13px;color:white;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 9px #0002}.sns-icon.x{background:#000}.sns-icon.ig{background:linear-gradient(40deg,#f9b244,#f2305b 50%,#a5148c)}.sns-icon.yt{background:#ff0808}.sns-icon svg{width:37px;height:37px}.sns-x{font-family:Arial,sans-serif;font-size:37px;line-height:1}.footer-sns{max-width:1080px;margin:0 auto 16px;padding:0 24px;font-size:13px}@media(max-width:480px){.sns-grid{gap:20px 12px}.sns-link{min-width:calc(50% - 20px)}}

/* リニューアルのお知らせ */
.renewal-notice{background:#eaf1f8;border-top:4px solid #244f7b;border-bottom:1px solid #cad8e6;padding:33px 0 36px}.renewal-inner{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:35px;align-items:center}.renewal-label{display:inline-block;color:#fff;background:#244f7b;font-size:12px;font-weight:700;padding:3px 12px;letter-spacing:.07em}.renewal-copy h1{font-size:clamp(21px,2.6vw,29px);line-height:1.5;margin:10px 0 15px;color:#1e3349}.renewal-copy p{font-size:14px;margin:7px 0;line-height:1.85}.renewal-copy strong{color:#173e65}.renewal-copy .renewal-apology{font-size:12px;color:#5b6b79;margin-top:13px}.renewal-actions{display:flex;flex-direction:column;gap:10px}.renewal-actions a{display:block;background:#244f7b;color:#fff;padding:13px 15px;text-align:center;text-decoration:none;font-size:14px;font-weight:700;border-radius:3px}.renewal-actions a:hover{background:#173a5e}.renewal-actions a.renewal-more{background:#fff;color:#244f7b;border:1px solid #244f7b}.renewal-mini{background:#eaf1f8;border-bottom:1px solid #cad8e6;padding:12px 0;font-size:13px}.renewal-mini a{font-weight:700}@media(max-width:760px){.renewal-notice{padding:23px 0 26px}.renewal-inner{grid-template-columns:1fr;gap:18px}.renewal-actions{gap:8px}.renewal-copy p{font-size:13px}.renewal-actions a{font-size:13px}}

/* Ticket link */
.ticket-cta{border:1px solid #d9e2eb;background:#f2f6fa;text-align:center;padding:30px 22px;margin:0 0 48px}.ticket-cta-label{color:#244f7b;font-weight:700;letter-spacing:.08em;margin:0 0 5px}.ticket-cta h3{font-size:24px;color:#1e3349;margin:0}.ticket-cta p{margin:10px 0}.ticket-button{display:inline-block;margin:15px 0 0;font-size:16px}.teket-home{margin-left:12px}@media(max-width:760px){.teket-home{margin-left:0;display:block;text-align:center;width:max-content;max-width:100%}.ticket-cta{padding:26px 16px}}

/* Freshmen page */
.freshmen-info{margin-bottom:24px}.freshmen-toc{background:#f2f6fa;border:1px solid #d9e2eb;padding:22px 26px;margin:0 0 30px}.freshmen-toc>div{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:10px}.freshmen-toc a{font-size:14px}.freshmen-content h2[id]{scroll-margin-top:115px}

/* 新入生ページ最下部の案内見出しのみ、短い装飾線を非表示 */
.concert-invitation h2::after{content:none;display:none}

/* スマートフォン表示：見出しを中央寄せ */
@media screen and (max-width: 760px) {
  .renewal-copy h1,
  .hero h1,
  .subhero h1,
  .section h2,
  .card h3 {
    text-align: center;
  }

  .section h2::after {
    margin-left: auto;
    margin-right: auto;
  }
}

/* 全画面：セクション見出しと装飾線を中央寄せ */
.section h2 {
  text-align: center;
}
.section h2::after {
  margin-left: auto;
  margin-right: auto;
}

/* スマートフォン：ヘッダー内のロゴ配置を安定させる */
@media screen and (max-width: 760px) {
  .header-inner > a {
    display: block;
    max-width: 100%;
  }
  .header-inner .logo {
    display: block;
    width: 225px;
    max-width: 100%;
    height: auto;
    visibility: visible;
    opacity: 1;
  }
}
@media screen and (max-width: 760px) {
  .renewal-copy h1 {
    font-size: 19px;
    line-height: 1.6;
    letter-spacing: -0.03em;
    text-align: center;
    overflow-wrap: normal;
  }
}