@charset "UTF-8";
/* 2026-11 Figma SP + responsive PC redesign. Load after existing theme styles. */
:root { --ks-navy: #1c3762; --ks-yellow: #f8d748; --ks-surface: #f2f5fb; }
.ks-header-phone, .ks-reason-title, .ks-reason-number, .ks-cta { display: none; }
.ks-news-tabs[hidden], .ks-news-group[hidden] { display: none; }
.ks-mobilebar, .ks-mobile-ribbons, #ks-mobile-footer,
.ks-fixed-contact, .ks-back-to-top, .ks-banner-arrow, .ks-card-arrow,
.ks-parking-address, .ks-map-caption { display: none; }
.ks-carousel-controls[hidden] { display: none; }
.ks-carousel-controls { display: none; }
.ks-header-action:focus-visible,
.ks-student-nav a:focus-visible, .ks-fixed-contact a:focus-visible,
#ks-mobile-footer a:focus-visible {
  outline: 3px solid #edaa00; outline-offset: 3px;
}
@media screen and (max-width: 768px) {
  :root { --headerHeight: 56px; --ks-navy: #1c3762; --ks-yellow: #f8d748; }
  html { scroll-padding-top: 68px; }
  body { padding-top: 56px; padding-bottom: calc(68px + env(safe-area-inset-bottom, 0px)); }
  #header {
    display: block; height: 56px; padding: 0; grid-template-columns: none;
    box-shadow: 0 1px 5px #172b4b1a;
  }
  #header > .logo, #header > .contacts, #header > .partner,
  #header > .address, #header > .links01, #header > .links02 { display: none; }
  .ks-mobilebar { display: flex; align-items: center; gap: 6px; height: 56px; padding: 4px 60px 4px 12px; color: var(--ks-navy); }
  .ks-mobile-logo { flex: 1; min-width: 0; }
  .ks-mobile-logo img { display: block; width: min(100%, 154px); height: auto; max-height: 48px; object-fit: contain; }
  .ks-header-actions { display: flex; gap: 4px; flex: 0 0 auto; }
  .ks-header-action { display: flex; flex-direction: column; justify-content: center; align-items: center; width: 44px; height: 44px; border-radius: 7px; background: #f0f3f8; color: var(--ks-navy); }
  .ks-header-inquiry { background: #fff6d4; width: 56px; }
  .ks-header-action svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.7; }
  .ks-header-action span { font: 700 8px/1.4 var(--fontFamily); white-space: nowrap; }
  #menuBtn {
    position: fixed; top: 6px; right: 10px; height: 44px; width: 44px;
    border: 0; border-radius: 7px; background: var(--ks-navy); padding: 0;
  }
  #menuBtn span { left: 12px; width: 20px; height: 2px; background: #fff; }
  #menuBtn span:nth-of-type(1) { top: 14px; }
  #menuBtn span:nth-of-type(2), #menuBtn span:nth-of-type(3) { top: 21px; }
  #menuBtn span:nth-of-type(4) { top: 28px; bottom: auto; }
  #menuBtn[aria-expanded="false"] span { background: #fff; }
  #nav { top: 0; width: min(88vw, 360px); padding-bottom: calc(84px + env(safe-area-inset-bottom, 0px)); }
  #nav .scroll { padding-top: 64px; }
  .ks-mobile-ribbons { display: block; }
  .ks-eiken-strip { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 5px 12px; min-height: 34px; background: #fff5cd; }
  .ks-eiken-strip img { width: min(42%, 158px); height: auto; }
  .ks-eiken-strip a { display: flex; align-items: center; min-height: 32px; font-size: 11px; line-height: 1.4; color: #9b280c; font-weight: 700; }
  .ks-student-nav { display: grid; grid-template-columns: 1.25fr 1.25fr 1fr 1fr; background: #fff; }
  .ks-student-nav a { display: grid; place-items: center; min-height: 44px; padding: 5px 2px; border-bottom: 4px solid; font-size: clamp(10px, 2.65vw, 14px); font-weight: 700; color: #182f51; text-align: center; }
  .ks-student-nav a:nth-child(1) { border-color: #1c3762; }
  .ks-student-nav a:nth-child(2) { border-color: #2e70a3; }
  .ks-student-nav a:nth-child(3) { border-color: #2d906c; }
  .ks-student-nav a:nth-child(4) { border-color: #ed8c23; }
  #top-mv .sp .img-bg p { margin: 0; }
  #top-mv .sp .img-bg img { display: block; width: 100%; height: auto; object-fit: contain; }
  #top-mv .sp .text-box { position: relative; top: auto; left: auto; width: auto; }
  #top-mv .sp .text-box .btn01 { margin: -18px 0 0; padding-bottom: 18px; }
  #top-mv .sp .text-box .btn01 a { width: min(70%, 288px); height: 44px; border: 0; border-radius: 999px; color: #fff; background: var(--ks-navy); font-size: 14px; }
  #top-mv .sp .text-box .btn01 a::before { display: none; }
  #top-mv .sp .text-box .btn01 a::after { display: grid; place-items: center; width: 22px; height: 22px; border: 0; border-radius: 50%; color: var(--ks-navy); background: var(--ks-yellow); content: '›'; font-size: 20px; }
  #mv.ks-carousel { width: auto; margin: 8px 0 0; padding: 16px 0 8px 16px; background: #f2f5fa; }
  #mv .splide__slide { overflow: hidden; border: 1px solid #d8dfe9; border-radius: 12px; background: white; }
  #mv .splide__slide > a, #mv .splide__slide > div { display: flex; align-items: center; height: 100%; }
  #mv .splide__slide img { display: block; width: 100%; height: auto; object-fit: contain; border-radius: 11px; }
  #mv .ks-carousel-controls { display: flex; align-items: center; justify-content: center; gap: 14px; margin: 12px 16px 0 0; min-height: 32px; }
  #mv .ks-carousel-controls[hidden] { display: none; }
  #mv .splide__pagination { position: static; display: flex; gap: 5px; padding: 0; }
  #mv .splide__pagination li { display: flex; align-items: center; }
  #mv .splide__pagination__page { display: block; width: 24px; height: 28px; padding: 10px 5px; background: transparent; }
  #mv .splide__pagination__page::after { display: block; height: 6px; width: 6px; margin: auto; content: ''; background: #c8ced8; border-radius: 999px; }
  #mv .splide__pagination__page.is-active::after { width: 14px; background: var(--ks-navy); }
  #mv .splide__toggle { display: inline-flex; align-items: center; min-height: 32px; padding: 0 9px; border: 1px solid #abb7c8; border-radius: 6px; font-size: 11px; color: var(--ks-navy); background: white; }
  #mv .splide__toggle__play { display: none; }
  #mv .splide__toggle__pause { display: inline; }
  #mv .splide__toggle:not(.is-active) .splide__toggle__play { display: inline; }
  #mv .splide__toggle:not(.is-active) .splide__toggle__pause { display: none; }
  #banner01 { position: relative; display: block; width: calc(100% - 32px); max-width: none; margin: 20px 16px 0; padding-bottom: 28px; border: 1px solid #dce2eb; border-radius: 12px; background: #f5f7fa; overflow: hidden; box-shadow: 0 2px 5px #152c4b0d; }
  #banner01 img { display: block; width: 100%; height: auto; }
  .ks-banner-arrow, .ks-card-arrow { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; color: var(--ks-navy); background: var(--ks-yellow); font-size: 22px; line-height: 1; }
  .ks-banner-arrow { position: absolute; right: 9px; bottom: 3px; }
  #links01 { padding: 20px 16px 32px; background: #f2f5fb; }
  #links01 li + li { margin-top: 16px; }
  #links01 a { position: relative; display: block; padding: 0 0 16px; outline: none; border: 1px solid #e1e6ed; border-radius: 12px; overflow: hidden; background: white; }
  #links01 picture { display: block; margin: 0; padding: 0; border: 0; border-radius: 0; }
  #links01 picture::before, #links01 picture::after { display: none; }
  #links01 a img { display: block; width: 100%; height: auto; }
  #links01 a > span:not(.ks-card-arrow) { display: block; padding: 14px 48px 0 16px; font: 700 13px/1.8 var(--fontFamily); }
  #links01 a > span > span.is-pc { display: block; margin-top: 4px; }
  #links01 a > .ks-card-arrow { display: grid; position: absolute; right: 12px; bottom: 18px; padding: 0; font-family: var(--fontFamily); }
  #links02 { display: block; padding: 20px 16px 32px; background: #f2f5fb; }
  #links02 > ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
  #links02 > ul > li + li { margin: 0; }
  #links02 > ul > li:last-child { grid-column: 1 / -1; }
  #links02 ul a { position: relative; display: flex; flex-direction: column; align-items: stretch; height: 100%; padding: 0; outline: none; border: 1px solid #e1e6ed; border-radius: 10px; overflow: hidden; background: white; }
  #links02 ul img { display: block; width: 100%; height: auto; aspect-ratio: 228/172; object-fit: cover; }
  #links02 ul span { display: block; padding: 12px 26px 12px 10px; font-size: 12px; line-height: 1.6; font-weight: 700; text-align: left; }
  #links02 ul a::after { position: absolute; right: 10px; bottom: 12px; content: '›'; font-size: 20px; color: var(--ks-navy); }
  #links02 li:last-child a { display: grid; grid-template-columns: 90px 1fr; align-items: center; }
  #links02 li:last-child img { grid-row: 1; grid-column: 1; width: 90px; height: 76px; }
  #links02 li:last-child span { grid-row: 1; grid-column: 2; }
  #links02 li:last-child a::after { top: 50%; bottom: auto; transform: translateY(-50%); }
  #parking.ks-parking { margin: 0; padding: 32px 16px 24px; }
  #parking::before { display: none; }
  #parking h2 { font-size: 20px; line-height: 1.6; color: var(--ks-navy); }
  #parking h2::after { display: block; width: 40px; height: 3px; margin: 12px auto 22px; content: ''; background: var(--ks-yellow); }
  .ks-parking-address { display: flex; gap: 10px; padding: 14px; margin-bottom: 16px; border-radius: 10px; background: #f2f5fa; color: var(--ks-navy); font-style: normal; font-size: 14px; line-height: 1.8; }
  .ks-parking-address span { color: #dc5e16; font-size: 22px; }
  #parking ul { display: grid; gap: 10px; margin: 0; }
  #parking li { position: relative; padding: 14px 12px 14px 45px; border: 1px solid #dfe4eb; border-radius: 9px; font-size: 14px; line-height: 1.8; }
  #parking li::before { position: absolute; left: 12px; top: 16px; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 5px; color: white; background: var(--ks-navy); font-size: 15px; font-weight: 700; content: 'P'; }
  #parking .ks-parking-note { padding: 16px; border-radius: 10px; background: #fff5cc; margin: 16px 0; font-size: 14px; line-height: 1.8; }
  #parking picture { display: block; margin-top: 18px; overflow: hidden; border: 1px solid #dfe4eb; border-radius: 12px; }
  #parking picture img { display: block; width: 100%; height: auto; }
  #parking .ks-map-caption { display: block; font-size: 12px; line-height: 1.7; color: #647187; margin-top: 10px; }
  #address, #footer { display: none; }
  #ks-mobile-footer { display: block; padding: 32px 20px 24px; color: white; background: #152748; font-size: 13px; }
  .ks-footer-logo { display: block; width: 170px; margin-bottom: 20px; }
  .ks-footer-logo img { display: block; width: 100%; height: auto; }
  .ks-footer-sns { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 22px; }
  .ks-footer-sns a { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: #213d69; }
  .ks-footer-sns img { width: 21px; height: 21px; object-fit: contain; }
  .ks-footer-address { font-style: normal; font-size: 13px; line-height: 1.9; }
  .ks-footer-mail { margin: 10px 0 20px; font-size: 12px; overflow-wrap: anywhere; }
  .ks-footer-mail a { display: inline-block; padding-block: 8px; }
  .ks-footer-links { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 20px; margin: 20px 0; }
  .ks-footer-links a { display: flex; align-items: center; justify-content: space-between; gap: 6px; min-height: 48px; padding: 10px 0; border-bottom: 1px solid #ffffff26; font-size: 12px; line-height: 1.7; }
  .ks-footer-links a span { color: var(--ks-yellow); }
  .ks-footer-partners { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 16px; margin: 26px 0; }
  .ks-footer-partners img { width: auto; max-width: 150px; max-height: 60px; height: auto; object-fit: contain; }
  .ks-footer-partners p { font-size: 10px; text-align: center; margin-top: 5px; }
  .ks-footer-copyright { font-size: 10px; text-align: center; line-height: 1.8; }
  .ks-fixed-contact { position: fixed; z-index: 9; left: 0; right: 0; bottom: 0; display: grid; grid-template-columns: 1fr 1.2fr; gap: 8px; height: calc(68px + env(safe-area-inset-bottom, 0px)); padding: 8px 10px calc(8px + env(safe-area-inset-bottom, 0px)); background: #fff; box-shadow: 0 -2px 12px #14284a24; }
  .ks-fixed-contact a { display: flex; align-items: center; justify-content: center; border-radius: 8px; font-size: 14px; line-height: 1.4; font-weight: 700; }
  .ks-fixed-inquiry { color: white; background: #e75a09; }
  .ks-fixed-tel { color: white; background: var(--ks-navy); font-size: clamp(14px,4vw,20px) !important; white-space: nowrap; }
  .ks-back-to-top { display: grid; place-items: center; position: fixed; right: 14px; bottom: calc(80px + env(safe-area-inset-bottom, 0px)); z-index: 8; width: 44px; height: 44px; border: 1px solid #ffffff60; border-radius: 50%; color: white; background: var(--ks-navy); font-size: 28px; box-shadow: 0 2px 8px #12233d2b; }
  body:has(#nav:not([inert])) .ks-fixed-contact,
  body:has(#nav:not([inert])) .ks-back-to-top { visibility: hidden; }
  @media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
}

/* Shared design language for SP and PC. */
@media screen {
  .ks-banner-arrow, .ks-card-arrow { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; color: var(--ks-navy); background: var(--ks-yellow); font-size: 22px; line-height: 1; }
  .ks-banner-arrow { position: absolute; right: 9px; bottom: 3px; }
  #links01 { padding: 20px 16px 32px; background: #f2f5fb; }
  #links01 li + li { margin-top: 16px; }
  #links01 a { position: relative; display: block; padding: 0 0 16px; outline: none; border: 1px solid #e1e6ed; border-radius: 12px; overflow: hidden; background: white; }
  #links01 picture { display: block; margin: 0; padding: 0; border: 0; border-radius: 0; }
  #links01 picture::before, #links01 picture::after { display: none; }
  #links01 a img { display: block; width: 100%; height: auto; }
  #links01 a > span:not(.ks-card-arrow) { display: block; padding: 14px 48px 0 16px; font: 700 13px/1.8 var(--fontFamily); }
  #links01 a > span > span.is-pc { display: block; margin-top: 4px; }
  #links01 a > .ks-card-arrow { display: grid; position: absolute; right: 12px; bottom: 18px; padding: 0; font-family: var(--fontFamily); }
  #links02 { display: block; padding: 20px 16px 32px; background: #f2f5fb; }
  #links02 > ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
  #links02 > ul > li + li { margin: 0; }
  #links02 > ul > li:last-child { grid-column: 1 / -1; }
  #links02 ul a { position: relative; display: flex; flex-direction: column; align-items: stretch; height: 100%; padding: 0; outline: none; border: 1px solid #e1e6ed; border-radius: 10px; overflow: hidden; background: white; }
  #links02 ul img { display: block; width: 100%; height: auto; aspect-ratio: 228/172; object-fit: cover; }
  #links02 ul span { display: block; padding: 12px 26px 12px 10px; font-size: 12px; line-height: 1.6; font-weight: 700; text-align: left; }
  #links02 ul a::after { position: absolute; right: 10px; bottom: 12px; content: '›'; font-size: 20px; color: var(--ks-navy); }
  #links02 li:last-child a { display: grid; grid-template-columns: 90px 1fr; align-items: center; }
  #links02 li:last-child img { grid-row: 1; grid-column: 1; width: 90px; height: 76px; }
  #links02 li:last-child span { grid-row: 1; grid-column: 2; }
  #links02 li:last-child a::after { top: 50%; bottom: auto; transform: translateY(-50%); }
  #parking.ks-parking { margin: 0; padding: 32px 16px 24px; }
  #parking::before { display: none; }
  #parking h2 { font-size: 20px; line-height: 1.6; color: var(--ks-navy); }
  #parking h2::after { display: block; width: 40px; height: 3px; margin: 12px auto 22px; content: ''; background: var(--ks-yellow); }
  .ks-parking-address { display: flex; gap: 10px; padding: 14px; margin-bottom: 16px; border-radius: 10px; background: #f2f5fa; color: var(--ks-navy); font-style: normal; font-size: 14px; line-height: 1.8; }
  .ks-parking-address span { color: #dc5e16; font-size: 22px; }
  #parking ul { display: grid; gap: 10px; margin: 0; }
  #parking li { position: relative; padding: 14px 12px 14px 45px; border: 1px solid #dfe4eb; border-radius: 9px; font-size: 14px; line-height: 1.8; }
  #parking li::before { position: absolute; left: 12px; top: 16px; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 5px; color: white; background: var(--ks-navy); font-size: 15px; font-weight: 700; content: 'P'; }
  #parking .ks-parking-note { padding: 16px; border-radius: 10px; background: #fff5cc; margin: 16px 0; font-size: 14px; line-height: 1.8; }
  #parking picture { display: block; margin-top: 18px; overflow: hidden; border: 1px solid #dfe4eb; border-radius: 12px; }
  #parking picture img { display: block; width: 100%; height: auto; }
  #parking .ks-map-caption { display: block; font-size: 12px; line-height: 1.7; color: #647187; margin-top: 10px; }
  #address, #footer { display: none; }
  #ks-mobile-footer { display: block; padding: 32px 20px 24px; color: white; background: #152748; font-size: 13px; }
  .ks-footer-logo { display: block; width: 170px; margin-bottom: 20px; }
  .ks-footer-logo img { display: block; width: 100%; height: auto; }
  .ks-footer-sns { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 22px; }
  .ks-footer-sns a { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: #213d69; }
  .ks-footer-sns img { width: 21px; height: 21px; object-fit: contain; }
  .ks-footer-address { font-style: normal; font-size: 13px; line-height: 1.9; }
  .ks-footer-mail { margin: 10px 0 20px; font-size: 12px; overflow-wrap: anywhere; }
  .ks-footer-mail a { display: inline-block; padding-block: 8px; }
  .ks-footer-links { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 20px; margin: 20px 0; }
  .ks-footer-links a { display: flex; align-items: center; justify-content: space-between; gap: 6px; min-height: 48px; padding: 10px 0; border-bottom: 1px solid #ffffff26; font-size: 12px; line-height: 1.7; }
  .ks-footer-links a span { color: var(--ks-yellow); }
  .ks-footer-partners { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 16px; margin: 26px 0; }
  .ks-footer-partners img { width: auto; max-width: 150px; max-height: 60px; height: auto; object-fit: contain; }
  .ks-footer-partners p { font-size: 10px; text-align: center; margin-top: 5px; }
  .ks-footer-copyright { font-size: 10px; text-align: center; line-height: 1.8; }
  .ks-header-phone { display: none; }
  .ks-back-to-top { display: grid; place-items: center; position: fixed; right: 20px; bottom: 24px; z-index: 8; width: 44px; height: 44px; border: 1px solid #ffffff60; border-radius: 50%; color: white; background: var(--ks-navy); font-size: 28px; box-shadow: 0 2px 8px #12233d2b; }
  #mv.ks-carousel { width: auto; max-width: 1180px; margin: 24px auto; padding: 24px; background: var(--ks-surface); border-radius: 16px; }
  #mv .splide__slide { overflow: hidden; border: 1px solid #d8dfe9; border-radius: 12px; background: white; }
  #mv .splide__slide > a, #mv .splide__slide > div { display: flex; align-items: center; height: 100%; }
  #mv .splide__slide img { display: block; width: 100%; height: auto; object-fit: contain; }
  #mv .ks-carousel-controls { display: flex; align-items: center; justify-content: center; gap: 14px; margin: 14px 0 0; min-height: 32px; }
  #mv .ks-carousel-controls[hidden] { display: none; }
  #mv .splide__pagination { position: static; display: flex; gap: 5px; padding: 0; }
  #mv .splide__pagination li { display: flex; align-items: center; }
  #mv .splide__pagination__page { display: block; width: 28px; height: 32px; padding: 10px 5px; background: transparent; }
  #mv .splide__pagination__page::after { display: block; height: 6px; width: 6px; margin: auto; content: ''; background: #c8ced8; border-radius: 999px; }
  #mv .splide__pagination__page.is-active::after { width: 14px; background: var(--ks-navy); }
  #mv .splide__toggle { display: inline-flex; align-items: center; min-height: 32px; padding: 0 10px; border: 1px solid #abb7c8; border-radius: 6px; font-size: 12px; color: var(--ks-navy); background: white; }
  #mv .splide__toggle__play { display: none; }
  #mv .splide__toggle__pause { display: inline; }
  #mv .splide__toggle:not(.is-active) .splide__toggle__play { display: inline; }
  #mv .splide__toggle:not(.is-active) .splide__toggle__pause { display: none; }
  #banner01 { position: relative; display: block; width: min(calc(100% - 48px), 1120px); margin: 24px auto 0; padding-bottom: 32px; border: 1px solid #dce2eb; border-radius: 14px; background: #f5f7fa; overflow: hidden; box-shadow: 0 2px 5px #152c4b0d; }
  #banner01 img { display: block; width: 100%; height: auto; }
  #reason.ks-reasons { margin: 40px 0 0; padding: 44px max(16px, calc((100% - 1120px) / 2)); background: var(--ks-surface); }
  #reason.ks-reasons h2 { text-align: center; color: var(--ks-navy); }
  #reason.ks-reasons h2 img { display: none; }
  #reason .ks-reason-title { display: inline; font-size: 28px; line-height: 1.6; }
  #reason.ks-reasons h2::after, #news h2::after { content: ''; display: block; width: 40px; height: 3px; margin: 12px auto 0; background: var(--ks-yellow); }
  #reason.ks-reasons > ul { margin: 28px 0 0; }
  #reason.ks-reasons > ul > li { display: block; padding: 26px; margin: 0; background: white; border: 1px solid #e4eaf2; border-radius: 16px; }
  #reason.ks-reasons > ul > li + li { margin-top: 24px; }
  #reason .ks-reason-number { display: flex; align-items: center; gap: 14px; grid-column: 1 / -1; margin: 0 0 22px; color: var(--ks-navy); font-weight: 700; font-size: 14px; }
  #reason .ks-reason-number span { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--ks-yellow); }
  #reason .ks-reason-number::after { content: ''; height: 1px; flex: 1; background: #e3e6ec; }
  #reason.ks-reasons p { font-size: 16px; line-height: 1.95; color: #26364d; }
  #reason.ks-reasons p em { color: #c66a11; font-size: 17px; line-height: 1.8; }
  #reason.ks-reasons p + p { margin-top: 1em; }
  #reason.ks-reasons picture { display: block; width: auto; margin: 0 0 18px; }
  #reason.ks-reasons picture img { display: block; width: 100%; max-width: 100%; height: auto; object-fit: contain; border-radius: 8px; }
  #reason.ks-reasons #reason01 .texts { display: block; }
  #reason.ks-reasons #reason01 .texts > p:nth-of-type(2) { margin-top: 1em; }
  #reason.ks-reasons #reason02 .box { display: block; }
  #reason.ks-reasons #reason02 .box + .box { margin-top: 24px; }
  #reason.ks-reasons #reason02 .box picture { margin-top: 18px; }
  #reason.ks-reasons #reason03 picture { margin-top: 18px; }
  #reason.ks-reasons #reason04 picture { width: 160px; margin-inline: auto; }
  #reason.ks-reasons #reason05 picture::after { height: 26px; margin-top: -6px; }
  #reason.ks-reasons #reason05 .texts { padding: 0; margin-top: 18px; }
  .ks-cta { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); align-items: center; gap: 16px; padding: 32px max(24px, calc((100% - 1120px) / 2)); background: #fff5cf; }
  .ks-cta a { display: flex; align-items: center; justify-content: center; position: relative; min-height: 54px; padding: 12px 34px; font-size: 15px; line-height: 1.6; font-weight: 700; text-align: center; }
  .ks-cta a > span { position: absolute; right: 16px; font-size: 22px; }
  .ks-cta-primary { border-radius: 999px; color: white; background: #e75a09; border-bottom: 3px solid #b63c04; }
  .ks-cta-secondary { border: 2px solid var(--ks-navy); border-radius: 999px; color: var(--ks-navy); background: white; }
  .ks-cta-phone { color: var(--ks-navy); background: white; border: 1px solid #e4dfcb; border-radius: 8px; font-size: 21px !important; white-space: nowrap; }
  .ks-updates { display: grid; grid-template-columns: 1.05fr 1fr; gap: 40px; align-items: start; width: min(calc(100% - 48px),1120px); margin: 56px auto; }
  #news.ks-news { min-width: 0; padding: 0; background: white; overflow: visible; }
  #news h2 { display: block; height: auto; padding: 0; margin: 0 0 24px; color: var(--ks-navy); background: none; font-size: 26px; text-align: center; }
  #news h2::before { display: none; }
  #news .ks-news-tabs { display: flex; gap: 0; margin: 0 0 12px; border: 1px solid var(--ks-navy); border-radius: 7px; overflow: hidden; }
  #news .ks-news-tabs[hidden] { display: none; }
  #news .ks-news-tabs button { flex: 1; min-width: 0; min-height: 48px; padding: 8px; color: var(--ks-navy); background: white; font-size: 13px; font-weight: 700; }
  #news .ks-news-tabs button + button { border-left: 1px solid var(--ks-navy); }
  #news .ks-news-tabs button[aria-selected="true"] { color: white; background: var(--ks-navy); }
  #news > ul { position: static; margin: 0; padding: 0; background: white; }
  #news > ul::after { display: none; }
  #news > ul > li + li { margin-top: 0; }
  #news.ks-tabs-enabled .ks-news-group > h3 { display: none; }
  #news .ks-news-group[hidden] { display: none; }
  #news .ks-news-group h3 { font-size: 17px; margin-block: 16px; }
  #news li li + li { margin-top: 0; }
  #news .ks-news-group li { border-bottom: 1px solid #e6e9ed; }
  #news .ks-news-group a { position: relative; padding: 18px 24px 18px 4px; }
  #news time { font-size: 12px; line-height: 1.5; color: #526076; }
  #news h4 { margin: 6px 0 0; font-size: 14px; line-height: 1.8; text-decoration: none; color: #202e40; }
  #news .ks-news-arrow { display: block; position: absolute; right: 3px; top: 50%; font-size: 24px; color: var(--ks-navy); transform: translateY(-50%); }
  #news .ks-news-empty { padding: 24px 8px; font-size: 14px; }
  .ks-video-frame { min-width: 0; padding-top: 84px; }
  #youtube { display: block; width: 100%; margin: 0; height: auto; aspect-ratio: 16/9; border: 0; border-radius: 12px; box-shadow: 0 5px 24px #172c4612; }
  :where(.ks-cta,#mv,#news,#links01,#links02,#ks-mobile-footer) a:focus-visible,
  #mv button:focus-visible, #news button:focus-visible { outline: 3px solid #d79a00; outline-offset: -3px; }
}
@media screen and (max-width:768px) {
  .ks-back-to-top { right: 14px; bottom: calc(80px + env(safe-area-inset-bottom, 0px)); }
  #mv.ks-carousel { margin: 8px 0 0; padding: 16px 0 8px 16px; border-radius: 0; }
  #mv .ks-carousel-controls { margin-right: 16px; }
  #banner01 { width: calc(100% - 32px); margin: 20px 16px 0; padding-bottom: 28px; }
  #reason.ks-reasons { margin-top: 28px; padding: 32px 16px; }
  #reason .ks-reason-title { font-size: 20px; }
  #reason.ks-reasons > ul > li { padding: 18px; }
  #reason.ks-reasons p { font-size: 15px; line-height: 1.9; }
  #reason.ks-reasons p em { font-size: 16px; }
  .ks-cta { grid-template-columns: 1fr; gap: 10px; padding: 24px 16px; }
  .ks-cta a { min-height: 50px; }
  .ks-updates { display: block; width: auto; margin: 0; padding: 32px 16px; }
  #news h2 { font-size: 20px; }
  #news .ks-news-tabs button { font-size: 12px; padding-inline: 4px; }
  .ks-video-frame { padding-top: 24px; }
}
@media screen and (min-width:769px) {
  :root { --headerHeight: 132px; }
  html { scroll-padding-top: 148px; }
  body { padding-top: 132px; padding-bottom: 0; }
  #header { display: block; height: 132px; padding: 0; box-shadow: 0 2px 12px #172b4b12; }
  #header > .logo, #header > .contacts, #header > .partner,
  #header > .address, #header > .links01, #header > .links02 { display: none; }
  .ks-mobilebar { display: flex; align-items: center; justify-content: space-between; gap: 24px; max-width: 1180px; height: 80px; margin: auto; padding: 8px 24px; color: var(--ks-navy); }
  .ks-mobile-logo { display: block; width: 190px; flex: 0 0 auto; }
  .ks-mobile-logo img { display: block; width: 100%; height: auto; max-height: 64px; object-fit: contain; }
  .ks-header-actions { display: flex; gap: 12px; align-items: center; }
  .ks-header-phone { display: flex; flex-direction: column; padding: 4px 12px; color: var(--ks-navy); }
  .ks-header-phone small { font-size: 11px; }
  .ks-header-phone strong { font-size: 24px; line-height: 1.5; }
  .ks-header-action { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; min-width: 112px; padding: 10px 16px; border-radius: 8px; background: #f0f3f8; color: var(--ks-navy); font-size: 13px; font-weight: 700; }
  .ks-header-inquiry { background: #e75a09; color: white; }
  .ks-header-action svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; }
  #header #nav { position: static; height: 52px; width: 100%; border-image: none; background: var(--ks-navy); }
  #navGlobal { display: flex; height: 52px; max-width: 1180px; margin: auto; padding: 0 16px; grid-template-columns: none; }
  #navGlobal > li { flex: 1 1 0; min-width: 0; width: auto; border: 0 !important; }
  #navGlobal > li > a, #navGlobal .buttons a { padding: 5px 8px; font: 700 13px/1.5 var(--fontFamily); text-align: center; }
  #navGlobal > li:not(.is-sp) .subMenu a { min-height: 44px; height: auto; padding: 12px 18px; font: 500 14px/1.5 var(--fontFamily); background: var(--ks-navy); }
  #navGlobal > li:not(.is-sp):focus-within .subMenu { grid-template-rows: 1fr; }
  .ks-mobile-ribbons { display: block; background: #fff; }
  .ks-eiken-strip { display: flex; align-items: center; justify-content: center; gap: 24px; min-height: 40px; padding: 4px 24px; background: #fff5cd; }
  .ks-eiken-strip img { width: 190px; height: auto; }
  .ks-eiken-strip a { display: flex; align-items: center; min-height: 32px; color: #9b280c; font-size: 13px; font-weight: 700; }
  .ks-student-nav { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); max-width: 1120px; margin: auto; }
  .ks-student-nav a { display: grid; place-items: center; min-height: 48px; padding: 8px; border-bottom: 4px solid; font-size: 14px; font-weight: 700; color: var(--ks-navy); }
  .ks-student-nav a:nth-child(1) { border-color: #1c3762; }
  .ks-student-nav a:nth-child(2) { border-color: #2e70a3; }
  .ks-student-nav a:nth-child(3) { border-color: #2d906c; }
  .ks-student-nav a:nth-child(4) { border-color: #ed8c23; }
  #top-mv { max-width: 1440px; margin: auto; overflow: hidden; border-radius: 0 0 24px 24px; }
  #top-mv .pc .img-bg img { display: block; width: 100%; height: auto; }
  #top-mv .pc .text-box { top: 50%; left: clamp(24px,3vw,56px); width: clamp(250px,30vw,440px); transform: translateY(-50%); }
  #top-mv .pc .text-box .btn01 { margin-top: 24px; }
  #top-mv .pc .text-box .btn01 a { height: 50px; width: min(100%,300px); border: 0; border-radius: 999px; color: white; background: var(--ks-navy); font-size: 15px; }
  #top-mv .pc .text-box .btn01 a::before { display: none; }
  #top-mv .pc .text-box .btn01 a::after { display: grid; place-items: center; width: 22px; height: 22px; border: 0; border-radius: 50%; color: var(--ks-navy); background: var(--ks-yellow); content: '›'; font-size: 20px; }
  #reason.ks-reasons #reason01 { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.3fr); column-gap: 32px; align-items: start; }
  #reason.ks-reasons #reason01 > picture { grid-row: 2; grid-column: 1; }
  #reason.ks-reasons #reason01 > .texts { grid-row: 2; grid-column: 2; }
  #reason.ks-reasons #reason02 .box { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px; align-items: center; }
  #reason.ks-reasons #reason02 .box .texts { display: block; }
  #reason.ks-reasons #reason02 .box picture { margin: 0; }
  #reason.ks-reasons #reason02 .box .texts p { grid-column: auto; grid-row: auto; }
  #reason.ks-reasons #reason02 .box02 > p { grid-row: 1; grid-column: 1; }
  #reason.ks-reasons #reason02 .box02 > picture { grid-row: 1; grid-column: 2; }
  #reason.ks-reasons #reason02 .box03 > picture { grid-row: 1; grid-column: 1; }
  #reason.ks-reasons #reason02 .box03 > .texts { grid-row: 1; grid-column: 2; }
  #reason.ks-reasons #reason03 { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(0,1fr); gap: 0 32px; }
  #reason.ks-reasons #reason03 > p { grid-column: 1; grid-row: 2; }
  #reason.ks-reasons #reason03 > picture { grid-column: 2; grid-row: 2; margin: 0; }
  #reason.ks-reasons #reason04 { display: grid; grid-template-columns: 160px minmax(0,1fr); gap: 0 32px; }
  #reason.ks-reasons #reason04 > picture { grid-column: 1; grid-row: 2; margin: 0; }
  #reason.ks-reasons #reason04 > p { grid-column: 2; grid-row: 2; }
  #reason.ks-reasons #reason05 { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,2fr); gap: 0 32px; }
  #reason.ks-reasons #reason05 > picture { grid-column: 1; grid-row: 2; }
  #reason.ks-reasons #reason05 > .texts { grid-column: 2; grid-row: 2; margin: 0; }
  #links01 { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; padding: 0 max(24px, calc((100% - 1120px) / 2)) 56px; }
  #links01 li + li { margin-top: 0; }
  #links01 a { height: 100%; }
  #links01 a > span:not(.ks-card-arrow) { font-size: 15px; padding: 20px 54px 0 20px; }
  #links02 { padding: 40px max(24px, calc((100% - 1120px) / 2)); }
  #links02 > ul { grid-template-columns: repeat(5,minmax(0,1fr)); gap: 16px; }
  #links02 > ul > li:last-child { grid-column: auto; }
  #links02 li:last-child a { display: flex; flex-direction: column; align-items: stretch; }
  #links02 li:last-child img { width: 100%; height: auto; }
  #links02 li:last-child a::after { top: auto; bottom: 12px; transform: none; }
  #links02 ul span { font-size: 13px; }
  #parking.ks-parking { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; gap: 0 40px; max-width: 1180px; margin: 0 auto; padding: 56px 30px; }
  #parking h2 { grid-column: 1 / -1; font-size: 26px; }
  #parking .ks-parking-address { grid-column: 1; grid-row: 2; }
  #parking ul { grid-column: 1; grid-row: 3; padding: 0; }
  #parking .ks-parking-note { grid-column: 1; grid-row: 4; padding: 16px; }
  #parking picture { grid-column: 2; grid-row: 2 / 5; margin: 0; }
  #parking picture img { width: 100%; height: auto; }
  #parking .ks-map-caption { grid-column: 2; grid-row: 5; padding: 0; }
  #ks-mobile-footer { display: grid; grid-template-columns: 250px minmax(0,1fr) 220px; gap: 0 48px; padding: 48px max(30px, calc((100% - 1120px) / 2)) 24px; }
  .ks-footer-logo { grid-column: 1; grid-row: 1; width: 190px; }
  .ks-footer-sns { grid-column: 1; grid-row: 2; gap: 6px; }
  .ks-footer-address { grid-column: 1; grid-row: 3; }
  .ks-footer-mail { grid-column: 1; grid-row: 4; }
  #ks-mobile-footer > nav { grid-column: 2; grid-row: 1 / 5; }
  .ks-footer-links { margin: 0; gap: 0 28px; }
  .ks-footer-links a { font-size: 13px; }
  .ks-footer-partners { grid-column: 3; grid-row: 1 / 5; margin: 0; align-content: center; }
  .ks-footer-copyright { grid-column: 1 / -1; grid-row: 5; padding-top: 32px; margin-top: 24px; border-top: 1px solid #ffffff20; }
}
@media screen and (min-width:769px) and (max-width:1020px) {
  .ks-header-phone strong { font-size: 20px; }
  .ks-header-actions { gap: 8px; }
  .ks-header-action { min-width: 92px; padding-inline: 10px; font-size: 12px; }
  #navGlobal > li > a, #navGlobal .buttons a { font-size: 12px; padding-inline: 4px; }
  .ks-cta { gap: 10px; }
  .ks-cta a { padding-inline: 22px; font-size: 13px; }
  .ks-cta-phone { font-size: 17px !important; }
  .ks-updates { gap: 24px; }
  #ks-mobile-footer { grid-template-columns: 220px minmax(0,1fr); gap: 0 32px; }
  .ks-footer-partners { grid-column: 1 / -1; grid-row: 5; margin-top: 24px; }
  .ks-footer-copyright { grid-row: 6; }
}
@media screen {
  #news h2::after { position: static; inset: auto; z-index: auto; translate: none; }
  #links01 a > .ks-card-arrow { place-items: center; font-size: 20px; line-height: 1; overflow: hidden; }
  #ks-mobile-footer a { color: #fff; }
}
@media screen and (hover:hover) {
  #navGlobal a:hover { background-color: #2c4d79 !important; }
  #ks-mobile-footer a:hover { color: #f8d748; }
  #links01 a:hover, #links02 a:hover, #banner01:hover { box-shadow: 0 5px 18px #1c376218; }
  #links02 a:hover { background-color: #fff9df; }
}
/* v3 / 公開サイトの表示確認に基づくアイコン位置修正。
   revision-202611.css の末尾に1回だけ追記してください。 */
@media screen {
  :root { --ks-icon-right: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22m8.5%205%207%207-7%207%22%20fill%3D%22none%22%20stroke%3D%22%231c3762%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%2F%3E%3C%2Fsvg%3E"); }
  :root { --ks-icon-rightWhite: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22m8.5%205%207%207-7%207%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%2F%3E%3C%2Fsvg%3E"); }
  :root { --ks-icon-rightYellow: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22m8.5%205%207%207-7%207%22%20fill%3D%22none%22%20stroke%3D%22%23f8d748%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%2F%3E%3C%2Fsvg%3E"); }
  :root { --ks-icon-up: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22m5%2015.5%207-7%207%207%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%2F%3E%3C%2Fsvg%3E"); }
  :root { --ks-icon-pin: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M12%2022s7-7.4%207-13a7%207%200%201%200-14%200c0%205.6%207%2013%207%2013Z%20M14.5%209a2.5%202.5%200%201%201-5%200%202.5%202.5%200%200%201%205%200%22%20fill%3D%22none%22%20stroke%3D%22%23dc5e16%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%2F%3E%3C%2Fsvg%3E"); }
  :root { --ks-icon-phone: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M7%203H4a1%201%200%200%200-1%201c0%209.4%207.6%2017%2017%2017a1%201%200%200%200%201-1v-3l-5-2-2%202a14%2014%200%200%201-7-7l2-2-2-5Z%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%2F%3E%3C%2Fsvg%3E"); }
  :root { --ks-icon-parking: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M7.5%2019V5h5a4%204%200%200%201%200%208h-5%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%2F%3E%3C%2Fsvg%3E"); }

  /* P: 本文の行高と固定top値から切り離し、項目の高さに対して中央へ。 */
  #parking.ks-parking li::before {
    content: "";
    display: block;
    position: absolute;
    left: 12px;
    top: 50%;
    bottom: auto;
    width: 22px;
    height: 22px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 5px;
    transform: translateY(-50%);
    font-size: 0;
    line-height: 0;
    background-color: #1c3762;
    background-image: var(--ks-icon-parking);
    background-position: center;
    background-repeat: no-repeat;
    background-size: 22px 22px;
  }

  /* 住所: 文字の照準マークを、固定寸法のピンに置き換える。 */
  #parking .ks-parking-address { align-items: center; }
  #parking .ks-parking-address > span {
    display: block;
    flex: 0 0 20px;
    align-self: center;
    width: 20px;
    height: 20px;
    margin: 0;
    padding: 0;
    font-size: 0;
    line-height: 0;
    background: var(--ks-icon-pin) center / 20px 20px no-repeat;
  }

  /* 黄色い丸の矢印: 字形の余白に依存しないSVGを中央に。 */
  #banner01 > .ks-banner-arrow,
  #links01 a > .ks-card-arrow {
    display: block;
    width: 24px;
    height: 24px;
    padding: 0;
    font-size: 0;
    line-height: 0;
    background-color: #f8d748;
    background-image: var(--ks-icon-right);
    background-position: center;
    background-repeat: no-repeat;
    background-size: 16px 16px;
  }
  #top-mv .pc .text-box .btn01 a::after,
  #top-mv .sp .text-box .btn01 a::after {
    content: "";
    display: block;
    flex: 0 0 22px;
    width: 22px;
    height: 22px;
    padding: 0;
    border: 0;
    font-size: 0;
    line-height: 0;
    background-color: #f8d748;
    background-image: var(--ks-icon-right);
    background-position: center;
    background-repeat: no-repeat;
    background-size: 16px 16px;
  }

  /* 問い合わせ欄: 文字のベースラインではなくボタンの中央に。 */
  .ks-cta a > span {
    display: block;
    position: absolute;
    top: 50%;
    bottom: auto;
    width: 20px;
    height: 20px;
    padding: 0;
    font-size: 0;
    line-height: 0;
    transform: translateY(-50%);
    background: var(--ks-icon-right) center / 20px 20px no-repeat;
  }
  .ks-cta .ks-cta-primary > span { background-image: var(--ks-icon-rightWhite); }

  /* お知らせ: 同じ20pxの座標で描画し、複数行にも中央合わせ。 */
  #news .ks-news-arrow {
    display: block;
    top: 50%;
    bottom: auto;
    width: 20px;
    height: 20px;
    padding: 0;
    font-size: 0;
    line-height: 0;
    transform: translateY(-50%);
    background: var(--ks-icon-right) center / 20px 20px no-repeat;
  }

  /* 5つのリンク: 矢印を画像ではなく「ラベル欄」の中央に配置。 */
  #links02 ul a::after { content: none; }
  #links02 ul a > span {
    position: relative;
    display: flex;
    flex: 1 1 auto;
    align-items: center;
    min-height: 60px;
    padding-right: 32px;
  }
  #links02 ul a > span::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 10px;
    width: 16px;
    height: 16px;
    transform: translateY(-50%);
    background: var(--ks-icon-right) center / 16px 16px no-repeat;
  }

  /* フッターの矢印はメニュー項目ごとの中央へ。 */
  #ks-mobile-footer .ks-footer-links a > span {
    display: block;
    flex: 0 0 14px;
    align-self: center;
    width: 14px;
    height: 14px;
    padding: 0;
    font-size: 0;
    line-height: 0;
    background: var(--ks-icon-rightYellow) center / 14px 14px no-repeat;
  }

  /* ページトップ: 山形文字をベクトルにして円の中央に固定。 */
  .ks-back-to-top {
    padding: 0;
    font-size: 0;
    line-height: 0;
    background-color: #1c3762;
    background-image: var(--ks-icon-up);
    background-position: center;
    background-repeat: no-repeat;
    background-size: 20px 20px;
  }
  /* reCAPTCHAの右下バッジがある場合、ボタンと重ならない位置へ。 */
  body:has(.grecaptcha-badge) .ks-back-to-top { bottom: 90px; }
}
@media screen and (max-width: 768px) {
  #links02 li:last-child a > span { min-height: 76px; }
  .ks-fixed-contact .ks-fixed-tel > span {
    display: block;
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    margin-right: 6px;
    padding: 0;
    font-size: 0;
    line-height: 0;
    background: var(--ks-icon-phone) center / 18px 18px no-repeat;
  }
  .grecaptcha-badge { bottom: calc(80px + env(safe-area-inset-bottom, 0px)) !important; }
  body:has(.grecaptcha-badge) .ks-back-to-top {
    bottom: calc(156px + env(safe-area-inset-bottom, 0px));
  }
}

/* v4 / MVボタンの間隔・PCメニューカードの領域バランス修正。
   v3まで反映した revision-202611.css の末尾に追記してください。 */
@media screen {
  /* SVGのfont-size:0に影響されない、固定pxの間隔を設ける。 */
  #top-mv .pc .text-box .btn01 a,
  #top-mv .sp .text-box .btn01 a {
    column-gap: 14px;
  }
  #top-mv .pc .text-box .btn01 a::after,
  #top-mv .sp .text-box .btn01 a::after {
    margin: 0;
  }
}
@media screen and (min-width: 769px) {
  /* 旧CSSの #links02 ul a img の高さ86pxを確実に上書きする。
     右端と同じ、元画像228:172の比率で5枚すべて表示する。 */
  #links02 > ul > li > a > img {
    display: block;
    flex: 0 0 auto;
    width: 100%;
    height: auto;
    min-height: 0;
    max-height: none;
    aspect-ratio: 228 / 172;
    object-fit: cover;
  }
  /* 長いラベルがあっても、画像を縮めずテキスト欄側で高さをそろえる。 */
  #links02 > ul > li > a > span {
    flex: 1 1 auto;
    min-height: 60px;
  }
}

/* v13：Figma注釈2・追加参照画像に合わせた英検の細帯 */
.ks-mobile-ribbons > .ks-eiken-strip {
  display:grid;
  grid-template-columns:40px max-content max-content;
  align-items:stretch;
  justify-content:center;
  gap:0;
  min-height:42px;
  padding:4px 16px;
  background:#fff6ce;
}
.ks-mobile-ribbons > .ks-eiken-strip > img {
  display:block;
  align-self:center;
  width:40px;
  height:32px;
  max-width:none;
  object-fit:cover;
  object-position:left center;
}
.ks-mobile-ribbons > .ks-eiken-strip > a {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  min-width:0;
  min-height:34px;
  padding:6px 18px;
  color:#1c3762;
  font-size:13px;
  font-weight:700;
  line-height:1.5;
  text-decoration:none;
}
.ks-mobile-ribbons > .ks-eiken-strip > .ks-eiken-exam { color:#c82720; }
.ks-mobile-ribbons > .ks-eiken-strip > .ks-eiken-applicants { border-left:1px solid #e8dfba; }
.ks-eiken-strip > a > svg {
  display:block;
  flex:none;
  width:12px;
  height:12px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.ks-eiken-strip > a:focus-visible { outline:3px solid #c58100; outline-offset:-3px; }
@media (hover:hover) { .ks-eiken-strip > a:hover { background:#fff0ac; } }
@media (max-width:768px) {
  .ks-mobile-ribbons > .ks-eiken-strip {
    grid-template-columns:36px minmax(0,1.12fr) minmax(0,1fr);
    min-height:40px;
    padding:3px 8px;
  }
  .ks-mobile-ribbons > .ks-eiken-strip > img { width:36px; height:32px; }
  .ks-mobile-ribbons > .ks-eiken-strip > a {
    gap:2px;
    padding:4px 4px;
    min-height:34px;
    font-size:clamp(9px,2.7vw,11px);
    line-height:1.4;
  }
  .ks-eiken-strip > a > svg { width:10px; height:10px; }
}
/* 受験案内を外した期間はバッジ＋申込済案内の2列で表示。 */
@media (max-width:768px) {
  .ks-mobile-ribbons > .ks-eiken-strip:not(:has(.ks-eiken-exam)) { grid-template-columns:36px minmax(0,1fr); }
}

/* v14：赤い英検ロゴの元比率（約51:40）に合わせ、横の見切れを解消 */
.ks-mobile-ribbons > .ks-eiken-strip {
  grid-template-columns:42px max-content max-content;
}
.ks-mobile-ribbons > .ks-eiken-strip > img {
  width:42px;
  height:32px;
  max-width:none;
  object-fit:cover;
  object-position:left center;
}
@media (max-width:768px) {
  .ks-mobile-ribbons > .ks-eiken-strip {
    grid-template-columns:42px minmax(0,1.12fr) minmax(0,1fr);
  }
  .ks-mobile-ribbons > .ks-eiken-strip > img {
    width:42px;
    height:32px;
  }
  .ks-mobile-ribbons > .ks-eiken-strip:not(:has(.ks-eiken-exam)) {
    grid-template-columns:42px minmax(0,1fr);
  }
}

