@font-face {
  font-family: "Noto Sans JP";
  font-style: normal;
  font-weight: 100 900;
  src: url("fonts/NotoSansJP-lp.woff2") format("woff2");
  font-display: swap;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: #fff; color: #0f2942; font-family: "Noto Sans JP", sans-serif; }
button, input, select, textarea { font: inherit; }
button { border: 0; }
p, h1, h2, h3, ul { margin: 0; }
img { display: block; }
.km-root { position: relative; width: 375px; min-height: 100vh; margin: 0 auto; background: #fff; font-synthesis: none; font-weight: 400; line-height: normal; }
.km-sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
.km-header { position: fixed; z-index: 30; top: 0; left: 50%; width: 375px; height: 68px; transform: translateX(-50%); background: #fff; }
.km-header > div { width: 100%; height: 100%; }
.km-main { padding-top: 68px; }
.km-figma-section { position: relative; width: 375px; overflow: hidden; }
.km-figma-section > div { width: 100%; height: 100%; }
.km-swipe-surface { touch-action: pan-y; cursor: grab; -webkit-user-select: none; user-select: none; }
.km-swipe-surface * { -webkit-user-select: none !important; user-select: none !important; }
.km-swipe-surface img { -webkit-user-drag: none; }
.km-swipe-surface:active { cursor: grabbing; }
.km-section-image { width: 100%; height: 100%; object-fit: fill; }
.km-booklet-link { position: absolute; right: 0; bottom: 0; left: 0; height: 48px; background: transparent; cursor: pointer; }
.km-booklet-link:focus-visible { outline: 3px solid #0f2942; outline-offset: -4px; }
#section-7476-89 [style*="min-width:100%"] > p { line-height: 16px !important; }
#section-7476-89 [data-node-id="7476:95"] > div { max-height: 584px; overflow-y: auto !important; scrollbar-color: #bce2ef transparent; scrollbar-width: thin; }
#section-7476-89 .km-review-paragraph { margin: 0 0 6px; font-weight: 400; line-height: 16px; text-align: left; }
#section-7476-89 .km-review-paragraph:last-child { margin-bottom: 0; }
.km-review-hit { position: absolute; z-index: 2; top: 0; width: 52px; height: 100%; padding: 0; background: transparent; cursor: pointer; }
.km-review-hit--prev { left: 0; }
.km-review-hit--next { right: 0; }
.km-cta-section, .km-header [data-node-id="7074:114"] { cursor: pointer; }
.km-header [data-node-id="7074:94"] { cursor: pointer; }
.km-header [data-node-id="7074:94"]:focus-visible { outline: 2px solid #079aca; outline-offset: 2px; }
[data-node-id="7581:202"] { cursor: pointer; }
.km-menu { position: fixed; z-index: 40; top: 0; left: 50%; width: 375px; height: 100vh; transform: translateX(-50%); }
.km-menu[hidden] { display: none; }
.km-menu::before { content: ""; position: absolute; top: 68px; right: 0; left: 0; height: 490px; background: rgba(229,248,255,.91); }
.km-menu > div { width: 375px; height: 900px; }
.km-menu [data-node-id="7797:173"] { height: 490px !important; }
.km-menu [data-node-id="7797:178"] > div { cursor: pointer; }
.km-menu [data-node-id="7797:178"] > div:hover { background: #f0fbff !important; }
.km-figma-section > .km-youtube-window { position: absolute; top: 144px; left: 0; width: 375px; height: 108px; overflow: hidden; }
.km-youtube-curtain { position: absolute; top: -144px; left: 0; width: 375px; height: 320px; object-fit: cover; }
.km-youtube-track { display: flex; position: absolute; top: 0; left: 0; width: max-content; gap: 16px; animation: km-youtube-scroll 36s linear infinite; }
.km-youtube-track img { flex: none; width: 192px; height: 108px; object-fit: cover; }
@keyframes km-youtube-scroll { from { transform: translateX(-108px); } to { transform: translateX(-732px); } }
.km-figma-section > .km-app-carousel { position: absolute; top: 160px; left: 16px; width: 343px; height: 528px; overflow: hidden; border-radius: 9px; background: #f0f9fc; touch-action: pan-y; }
.km-app-carousel__viewport { position: absolute; top: 26px; left: 0; width: 343px; height: 434.18px; overflow: hidden; }
.km-app-carousel__track { display: flex; width: max-content; height: 434.18px; gap: 10px; transform: translate3d(-258.5px,0,0); will-change: transform; }
.km-app-carousel__track img { flex: none; width: 280px; height: 434.18px; }
.km-app-carousel button { display: grid; place-items: center; position: absolute; z-index: 2; top: 488px; width: 30px; height: 30px; padding: 0; border: 1px solid #bce2ef; border-radius: 50%; background: #fff; cursor: pointer; }
.km-app-carousel button::before { content: ""; width: 8px; height: 8px; border-top: 3px solid #009ac5; border-right: 3px solid #009ac5; }
.km-app-carousel__prev { left: 24px; }
.km-app-carousel__prev::before { transform: translateX(2px) rotate(-135deg); }
.km-app-carousel__next { right: 24px; }
.km-app-carousel__next::before { transform: translateX(-2px) rotate(45deg); }
.km-app-carousel__dots { position: absolute; top: 498px; left: 50%; width: 104px; height: 9px; transform: translateX(-50%); }
.km-app-carousel__dot { position: absolute; top: 1.5px; width: 6px; height: 6px; border-radius: 50%; background: #bce2ef; }
.km-app-carousel__dot.is-active { top: 0; width: 9px; height: 9px; background: #079aca; }
.km-app-carousel__note { position: absolute; top: 471px; right: 0; left: 0; color: #5c7a91; font-size: 8px; line-height: 12px; text-align: center; white-space: nowrap; }
#teachers { height: 735px !important; }
.km-teacher-controls { position: absolute; top: 675px; right: 0; left: 0; height: 32px; }
.km-teacher-controls__arrow { display: grid; place-items: center; position: absolute; top: 0; width: 30px; height: 30px; padding: 0; border: 1px solid #bce2ef; border-radius: 50%; background: #fff; cursor: pointer; }
.km-teacher-controls__arrow::before { content: ""; width: 8px; height: 8px; border-top: 3px solid #009ac5; border-right: 3px solid #009ac5; }
.km-teacher-controls__prev { left: 16px; }
.km-teacher-controls__prev::before { transform: translateX(2px) rotate(-135deg); }
.km-teacher-controls__next { right: 16px; }
.km-teacher-controls__next::before { transform: translateX(-2px) rotate(45deg); }
.km-teacher-controls__dots { display: flex; position: absolute; top: 3px; left: 50%; transform: translateX(-50%); gap: 5px; }
.km-teacher-controls__dot { display: grid; place-items: center; width: 24px; height: 24px; padding: 0; background: transparent; cursor: pointer; }
.km-teacher-controls__dot::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: #bce2ef; }
.km-teacher-controls__dot.is-active::before { width: 9px; height: 9px; background: #079aca; }
.km-room-note { position: absolute; top: 397px; left: 24px; width: 327px; height: 17px; margin: 0; color: #5c7a91; font-size: 11px; font-weight: 400; line-height: 17px; text-align: center; }
.km-room-track { display: flex; position: absolute; top: 0; left: 24px; width: max-content; height: 216px; transform: translate3d(-310px,0,0); will-change: transform; }
.km-room-track > div { position: relative !important; top: auto !important; left: auto !important; flex: none; width: 300px; height: 216px; margin-right: 10px; }
@media (prefers-reduced-motion: reduce) { .km-youtube-track { animation: none; } }
.km-faq { width: 375px; padding: 38px 16px 40px; background: #f5f7f8; scroll-margin-top: 76px; }
.km-faq h2 { display: flex; align-items: center; justify-content: center; margin-bottom: 32px; font-size: 26px; font-weight: 900; line-height: 38px; text-align: center; gap: 16px; }
.km-faq h2::before, .km-faq h2::after { content: ""; width: 20px; height: 1px; background: #00a9de; }
.km-faq__list { display: grid; gap: 12px; }
.km-faq details { overflow: hidden; border-radius: 12px; background: #fff; }
.km-faq summary { display: flex; align-items: center; min-height: 54px; padding: 16px; font-size: 16px; font-weight: 700; line-height: 23px; list-style: none; cursor: pointer; gap: 10px; }
.km-faq summary::-webkit-details-marker { display: none; }
.km-faq__q { flex: none; width: 20px; color: #079aca; font-size: 20px; font-weight: 900; }
.km-faq__chevron { flex: none; width: 6px; height: 6px; margin-left: auto; transform: rotate(45deg); border-right: 2px solid #bcc9cb; border-bottom: 2px solid #bcc9cb; }
.km-faq details[open] .km-faq__chevron { transform: rotate(225deg); }
.km-faq__answer { padding: 0 16px 20px; color: #0f2942; font-size: 14px; line-height: 24px; white-space: pre-line; }
.km-faq__answer strong { font-weight: 700; }
.km-contact { scroll-margin-top: 76px; width: 375px; }
.km-contact__head { padding: 32px 16px; background: #0f2942; color: #fff; text-align: center; }
.km-contact__head h2 { margin-bottom: 8px; font-size: 32px; line-height: 1.2; }
.km-contact__head p { font-size: 14px; line-height: 21px; }
.km-contact__body { padding: 32px 16px; background: #f3f7fa; }
.km-contact__notice, .km-contact__body > p { margin: 0 7px 30px; color: #728889; font-size: 12px; line-height: 21px; }
.km-contact__preview { padding: 32px 16px; border: 1px dashed #b9dce9; border-radius: 8px; background: #fff; font-size: 14px; line-height: 1.8; }
.km-contact__shared { width: 100%; }
.km-contact__shared .none-lp, .km-contact__shared .-school-label { display: none !important; }
.km-contact__shared .-school-label.-musashi { display: block !important; }
.km-contact__shared .wpcf7 { width: 100%; }
.km-contact__shared .submit-button button img.lazyload { width: 100% !important; height: auto !important; aspect-ratio: auto !important; }
.km-contact__shared .submit-button #jsSubmitButton { width: 100%; }
.km-contact__shared .km-contact__public-school-note { font-size: 11px !important; white-space: nowrap; }
.km-contact__shared .km-contact__privacy-copy { font-size: 10px !important; line-height: 15px; }
.km-contact__shared .km-contact__submit-note { margin: 12px 0 24px !important; color: #0f2942 !important; font-size: 13px !important; line-height: 21px !important; }
.km-contact__shared .km-contact__submit-note strong { font-weight: 700; }
.km-contact__shared .submit-button #jsSubmitButton.km-contact__submit { display: flex; position: relative; align-items: center; justify-content: center; min-height: 64px; padding: 16px 40px; border: 1px solid #00a9de; border-radius: 8px; background: linear-gradient(90deg, #00c3de, #00a9de); box-shadow: 0 4px 10px rgb(0 169 222 / 30%); color: #fff; font-size: 16px; font-weight: 700; line-height: 23px; text-align: center; cursor: pointer; }
.km-contact__shared .submit-button #jsSubmitButton.km-contact__submit::after { content: ""; position: absolute; right: 16px; width: 24px; height: 24px; background: url("assets/7839-241-bdc46.svg") center / contain no-repeat; }
.km-contact__shared .submit-button #jsSubmitButton.km-contact__submit:disabled { border-color: #b9e6f3; opacity: 1; background: #b9e6f3; box-shadow: none; filter: none; cursor: not-allowed; }
.km-contact__shared .form-group { margin-bottom: 28px; }
.km-contact__shared .form-group .jsDetailLabel { position: relative; }
.km-contact__shared .form-group .jsDetailLabel input[type="checkbox"] { display: block; position: absolute; width: 1px; height: 1px; opacity: 0; }
.km-contact__shared .form-group .jsDetailLabel .wpcf7-list-item-label::before { top: 50%; width: 18px; height: 18px; margin-top: 0; transform: translateY(-50%); border: 1.4px solid #00a9de; border-radius: 3px; }
.km-contact__shared .form-group .jsDetailLabel .wpcf7-list-item-label::after { top: 50%; left: 11px; width: 6px; height: 10px; margin-top: 0; transform: translateY(-60%) rotate(45deg); border-right: 2px solid #fff; border-bottom: 2px solid #fff; border-radius: 0; background: transparent; }
.km-contact__shared .form-group .jsDetailLabel input[type="checkbox"]:checked + .wpcf7-list-item-label::before { border-color: #00a9de; background: #00a9de; }
.km-contact__shared .form-group .jsDetailLabel input[type="checkbox"]:focus-visible + .wpcf7-list-item-label { outline: 2px solid #0f2942; outline-offset: 3px; }
.km-contact__shared input[type="text"], .km-contact__shared input[type="email"], .km-contact__shared input[type="tel"], .km-contact__shared select, .km-contact__shared textarea { width: 100%;
  max-width: 100%; padding: 12px; border: 1px solid #dbe3e8; border-radius: 8px; background: #fff; color: #0f2942; font-size: 14px;
}
.km-contact__shared input[type="submit"] { width: 100%; padding: 16px; border: 0; border-radius: 8px; background: #00a9de; color: #fff; font-weight: 700; cursor: pointer; }
.km-figma-section[id] { scroll-margin-top: 76px; }
.km-exit-overlay { display: grid; position: fixed; z-index: 2147483647; overflow: hidden; background: rgb(15 41 66 / 70%); inset: 0; place-items: center; }
.km-exit-overlay[hidden] { display: none; }
.km-exit-panel { position: relative; flex: none; width: 375px; height: 432px; transform: scale(var(--km-exit-scale, 1)); transform-origin: center; border: 2px solid #00a9de; background: #f3f7fa; box-shadow: 0 24px 64px rgb(0 18 38 / 42%), 0 6px 18px rgb(0 18 38 / 24%); color: #0f2942; }
.km-exit-panel:focus { outline: none; }
.km-exit-title { position: static; font-weight: 700; }
.km-exit-title__main { position: absolute; top: 23px; left: 21px; width: 291px; transform: scaleX(.91); transform-origin: left; color: #00a9de; font-size: 40px; line-height: 51px; white-space: nowrap; }
.km-exit-title__particle { position: absolute; top: 36px; left: 310px; color: #00a9de; font-size: 28px; line-height: 34px; }
.km-exit-rule { position: absolute; top: 79px; left: 21px; width: 329px; height: 2px; background: #00a9de; }
.km-exit-subtitle { position: absolute; top: 89px; left: 65.5px; width: 240px; font-size: 30px; font-weight: 700; line-height: 36px; text-align: center; white-space: nowrap; }
.km-exit-bubble, .km-exit-booklet, .km-exit-checks { position: absolute; background-image: url("assets/section-7853-303.webp"); background-repeat: no-repeat; background-size: 375px 404px; }
.km-exit-bubble { top: 141px; left: 20px; width: 330px; height: 71px; background-position: -22px -169px; }
.km-exit-footer { position: absolute; top: 357px; left: -2px; width: 375px; height: 73px; background: #00a9de; }
.km-exit-booklet { z-index: 1; top: 219px; left: 22px; width: 104px; height: 142px; background-position: -24px -246px; box-shadow: 0 3px 4px rgb(0 0 0 / 18%); }
.km-exit-checks { top: 242px; left: 135px; width: 222px; height: 96px; border-radius: 5px; background-position: -137px -246px; }
.km-exit-actions { display: grid; position: absolute; z-index: 2; top: 370px; left: 13px; grid-template-columns: 168px 168px; width: 345px; height: 48px; gap: 9px; }
.km-exit-actions button { display: flex; align-items: center; justify-content: center; height: 48px; padding: 0; border-radius: 8px; color: #0f2942; font-size: 14px; font-weight: 700; line-height: 17px; white-space: nowrap; cursor: pointer; }
.km-exit-actions__leave { background: #fff; }
.km-exit-actions__request { position: relative; gap: 8px; overflow: hidden; background: #ffde65; }
.km-exit-actions__request img { width: 24px; height: 24px; }
.km-exit-overlay:not([hidden]) .km-exit-actions__request::after { content: ""; position: absolute; top: -30%; bottom: -30%; width: 56px; transform: translateX(-130px) skewX(-22deg); animation: km-exit-request-shine 3.8s ease-in-out .4s infinite; background: linear-gradient(90deg, transparent, rgb(255 255 255 / 82%), transparent); pointer-events: none; }
@keyframes km-exit-request-shine { 0%, 12% { transform: translateX(-130px) skewX(-22deg); } 38%, 100% { transform: translateX(180px) skewX(-22deg); } }
@media (prefers-reduced-motion: reduce) { .km-exit-overlay:not([hidden]) .km-exit-actions__request::after { animation: none; } }
.km-exit-actions button:focus-visible { outline: 3px solid #0f2942; outline-offset: 2px; }
.km-root #access iframe.km-map-passive {
  pointer-events: none;
}

.km-root .km-map-open {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
  border-radius: inherit;
  color: transparent;
  font-size: 0;
  cursor: pointer;
}

.km-root .km-map-open:focus-visible {
  outline: 3px solid #079aca;
  outline-offset: 3px;
}
