@charset "UTF-8";
@keyframes scroll-hint-appear {
  0% {
    transform: translateX(40px);
    opacity: 0;
  }
  10% {
    opacity: 1;
  }
  50%,
  100% {
    transform: translateX(-40px);
    opacity: 0;
  }
}
.scroll-hint-icon {
  position: absolute;
  top: calc(50% - 25px);
  left: calc(50% - 60px);
  box-sizing: border-box;
  width: 120px;
  height: auto;
  border-radius: 5px;
  transition: opacity 0.3s;
  opacity: 0;
  background: rgba(0, 0, 0, 0.7);
  text-align: center;
  padding: 20px 10px 10px 10px;
}

.scroll-hint-icon-wrap {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  max-height: 100%;
  pointer-events: none;
}

.scroll-hint-text {
  font-size: 10px;
  color: #fff;
  margin-top: 5px;
}

.scroll-hint-icon-wrap.is-active .scroll-hint-icon {
  opacity: 0.8;
}

.scroll-hint-icon:before {
  display: inline-block;
  width: 40px;
  height: 40px;
  color: #fff;
  vertical-align: middle;
  text-align: center;
  content: "";
  background-size: contain;
  background-position: center center;
  background-repeat: no-repeat;
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNS43NyIgaGVpZ2h0PSIzMC41MiIgdmlld0JveD0iMCAwIDI1Ljc3IDMwLjUyIj48dGl0bGU+44Ki44K744OD44OIIDM8L3RpdGxlPjxnIGlkPSLjg6zjgqTjg6Tjg7xfMiIgZGF0YS1uYW1lPSLjg6zjgqTjg6Tjg7wgMiI+PGcgaWQ9IuODrOOCpOODpOODvF8xLTIiIGRhdGEtbmFtZT0i44Os44Kk44Ok44O8IDEiPjxwYXRoIGQ9Ik0yMS4zMywzMC41Mkg3Ljg1QTEuNTUsMS41NSwwLDAsMSw2LjMsMjlhMTIuNDYsMTIuNDYsMCwwLDAtLjYzLTQuNDIsMjUuMTYsMjUuMTYsMCwwLDAtNC4yNS01bC0uMDYtLjA2QTUsNSwwLDAsMSwwLDE1Ljg2YTMuNjQsMy42NCwwLDAsMSwxLjE3LTIuNjIsMy42MywzLjYzLDAsMCwxLDUuMTQuMDdWMy43N2EzLjc3LDMuNzcsMCwxLDEsNy41NCwwVjguMzNhMy4zNSwzLjM1LDAsMCwxLDEuMjYsMCwzLDMsMCwwLDEsMiwxLjIyLDMuNSwzLjUsMCwwLDEsMi0uMDYsMy4yMSwzLjIxLDAsMCwxLDIsMS41NCwzLjc0LDMuNzQsMCwwLDEsMywuNDdBNC4yMSw0LjIxLDAsMCwxLDI1Ljc0LDE1YzAsLjExLDAsLjI3LDAsLjQ2YTE5LjI2LDE5LjI2LDAsMCwxLS44NCw3Yy0uMTQuMzgtLjM2LjgxLS41NiwxLjIybC0uMTEuMjJjMCwuMDctLjA5LjE0LS4xNC4yMWE3LjEzLDcuMTMsMCwwLDAtMS4xNywyLjE3Yy0uMDYuNTYtLjA2LDIuMTUtLjA1LDIuNzFBMS41NSwxLjU1LDAsMCwxLDIxLjMzLDMwLjUyWk04LjYxLDI4LjIxaDEyYzAtLjcxLDAtMS43MS4wNy0yLjIzYTguNzQsOC43NCwwLDAsMSwxLjU5LTMuMjVsLjA2LS4xMmExMCwxMCwwLDAsMCwuNDYtMSwxNi44LDE2LjgsMCwwLDAsLjctNi4xMmMwLS4yMywwLS40MSwwLS41NGgwYTIsMiwwLDAsMC0uNjQtMS41MiwxLjMzLDEuMzMsMCwwLDAtMS41NS4wOCwxLjEzLDEuMTMsMCwwLDEtMS4xOC4yOCwxLjE1LDEuMTUsMCwwLDEtLjc4LS45NCwxLjI2LDEuMjYsMCwwLDAtLjc1LTEuMTEsMSwxLDAsMCwwLTEuMTEuMjhsLS4xLjFhMS4xNSwxLjE1LDAsMCwxLTEuMTkuMjksMS4xNiwxLjE2LDAsMCwxLS43OC0uOTVjLS4wOS0uNjgtLjIxLS43Ny0uNy0uODdhLjgyLjgyLDAsMCwwLTEsLjQ4LDEuMTYsMS4xNiwwLDAsMS0yLjE2LS41OFYzLjc3YTEuNDYsMS40NiwwLDEsMC0yLjkyLDB2Ny44NWwwLDQuMzNhMS4xNywxLjE3LDAsMCwxLS44MywxLjExLDEuMTUsMS4xNSwwLDAsMS0xLjItLjM1bC0xLS45MWMtLjQ3LS40Mi0uNzMtLjY2LS44NC0uNzdhMS4zNSwxLjM1LDAsMCwwLTItLjEyTDIuNywxNWExLjMyLDEuMzIsMCwwLDAtLjM5LDFBMi41NywyLjU3LDAsMCwwLDMsMTcuODVsMCwwYTI3LjI0LDI3LjI0LDAsMCwxLDQuNyw1LjYyQTEyLjYzLDEyLjYzLDAsMCwxLDguNjEsMjguMjFaTTIzLjIsMjMuMzVaTTYuNTEsMTYuNTlaIiBmaWxsPSIjZmZmIi8+PC9nPjwvZz48L3N2Zz4=);
}

.scroll-hint-icon:after {
  content: "";
  width: 34px;
  height: 14px;
  display: block;
  position: absolute;
  top: 10px;
  left: 50%;
  margin-left: -20px;
  background-repeat: no-repeat;
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMy4yOSIgaGVpZ2h0PSIxMi4wMiIgdmlld0JveD0iMCAwIDMzLjI5IDEyLjAyIj48dGl0bGU+44Ki44K744OD44OIIDE8L3RpdGxlPjxnIGlkPSLjg6zjgqTjg6Tjg7xfMiIgZGF0YS1uYW1lPSLjg6zjgqTjg6Tjg7wgMiI+PGcgaWQ9IuODrOOCpOODpOODvF8xLTIiIGRhdGEtbmFtZT0i44Os44Kk44Ok44O8IDEiPjxsaW5lIHgxPSIxLjg1IiB5MT0iNi4wMSIgeDI9IjEwLjQiIHkyPSI2LjAxIiBmaWxsPSIjZmZmIi8+PHBhdGggZD0iTTEwLjQsNy4xN0gxLjg1YTEuMTYsMS4xNiwwLDEsMSwwLTIuMzFIMTAuNGExLjE2LDEuMTYsMCwxLDEsMCwyLjMxWiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik03LjQsMTJhMS4xNSwxLjE1LDAsMCwxLS43Mi0uMjVsLTYuMjUtNUExLjIsMS4yLDAsMCwxLDAsNS44NywxLjE0LDEuMTQsMCwwLDEsLjQ2LDVMNi43LjIzQTEuMTYsMS4xNiwwLDAsMSw4LjEsMi4wOEwzLDUuOTEsOC4xMiwxMEExLjE2LDEuMTYsMCwwLDEsNy40LDEyWiIgZmlsbD0iI2ZmZiIvPjxsaW5lIHgxPSIzMS40NSIgeTE9IjYuMDEiIHgyPSIyMi44OSIgeTI9IjYuMDEiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMzEuNDUsNy4xN0gyMi44OWExLjE2LDEuMTYsMCwxLDEsMC0yLjMxaDguNTZhMS4xNiwxLjE2LDAsMCwxLDAsMi4zMVoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMjUuOSwxMmExLjE4LDEuMTgsMCwwLDEtLjkxLS40M0ExLjE3LDEuMTcsMCwwLDEsMjUuMTcsMTBsNS4wOS00LjA1TDI1LjIsMi4wOEExLjE2LDEuMTYsMCwwLDEsMjYuNTkuMjNMMzIuODQsNWExLjE2LDEuMTYsMCwwLDEsLjQ1LjkxLDEuMTQsMS4xNCwwLDAsMS0uNDMuOTJsLTYuMjQsNUExLjE3LDEuMTcsMCwwLDEsMjUuOSwxMloiIGZpbGw9IiNmZmYiLz48L2c+PC9nPjwvc3ZnPg==);
  opacity: 0;
  transition-delay: 2.4s;
}

.scroll-hint-icon-wrap.is-active .scroll-hint-icon:after {
  opacity: 1;
}

.scroll-hint-icon-wrap.is-active .scroll-hint-icon:before {
  animation: scroll-hint-appear 1.2s linear;
  animation-iteration-count: 2;
}

.scroll-hint-icon-white {
  background-color: #fff;
  box-shadow: 0 4px 5px rgba(0, 0, 0, 0.4);
}

.scroll-hint-icon-white:before {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNS43NyIgaGVpZ2h0PSIzMC41MiIgdmlld0JveD0iMCAwIDI1Ljc3IDMwLjUyIj48dGl0bGU+44Ki44K744OD44OIIDQ8L3RpdGxlPjxnIGlkPSLjg6zjgqTjg6Tjg7xfMiIgZGF0YS1uYW1lPSLjg6zjgqTjg6Tjg7wgMiI+PGcgaWQ9IuODrOOCpOODpOODvF8xLTIiIGRhdGEtbmFtZT0i44Os44Kk44Ok44O8IDEiPjxwYXRoIGQ9Ik0yMS4zMywzMC41Mkg3Ljg1QTEuNTUsMS41NSwwLDAsMSw2LjMsMjlhMTIuNDYsMTIuNDYsMCwwLDAtLjYzLTQuNDIsMjUuMTYsMjUuMTYsMCwwLDAtNC4yNS01bC0uMDYtLjA2QTUsNSwwLDAsMSwwLDE1Ljg2YTMuNjQsMy42NCwwLDAsMSwxLjE3LTIuNjIsMy42MywzLjYzLDAsMCwxLDUuMTQuMDdWMy43N2EzLjc3LDMuNzcsMCwxLDEsNy41NCwwVjguMzNhMy4zNSwzLjM1LDAsMCwxLDEuMjYsMCwzLDMsMCwwLDEsMiwxLjIyLDMuNSwzLjUsMCwwLDEsMi0uMDYsMy4yMSwzLjIxLDAsMCwxLDIsMS41NCwzLjc0LDMuNzQsMCwwLDEsMywuNDdBNC4yMSw0LjIxLDAsMCwxLDI1Ljc0LDE1YzAsLjExLDAsLjI3LDAsLjQ2YTE5LjI2LDE5LjI2LDAsMCwxLS44NCw3Yy0uMTQuMzgtLjM2LjgxLS41NiwxLjIybC0uMTEuMjJjMCwuMDctLjA5LjE0LS4xNC4yMWE3LjEzLDcuMTMsMCwwLDAtMS4xNywyLjE3Yy0uMDYuNTYtLjA2LDIuMTUtLjA1LDIuNzFBMS41NSwxLjU1LDAsMCwxLDIxLjMzLDMwLjUyWk04LjYxLDI4LjIxaDEyYzAtLjcxLDAtMS43MS4wNy0yLjIzYTguNzQsOC43NCwwLDAsMSwxLjU5LTMuMjVsLjA2LS4xMmExMCwxMCwwLDAsMCwuNDYtMSwxNi44LDE2LjgsMCwwLDAsLjctNi4xMmMwLS4yMywwLS40MSwwLS41NGgwYTIsMiwwLDAsMC0uNjQtMS41MiwxLjMzLDEuMzMsMCwwLDAtMS41NS4wOCwxLjEzLDEuMTMsMCwwLDEtMS4xOC4yOCwxLjE1LDEuMTUsMCwwLDEtLjc4LS45NCwxLjI2LDEuMjYsMCwwLDAtLjc1LTEuMTEsMSwxLDAsMCwwLTEuMTEuMjhsLS4xLjFhMS4xNSwxLjE1LDAsMCwxLTEuMTkuMjksMS4xNiwxLjE2LDAsMCwxLS43OC0uOTVjLS4wOS0uNjgtLjIxLS43Ny0uNy0uODdhLjgyLjgyLDAsMCwwLTEsLjQ4LDEuMTYsMS4xNiwwLDAsMS0yLjE2LS41OFYzLjc3YTEuNDYsMS40NiwwLDEsMC0yLjkyLDB2Ny44NWwwLDQuMzNhMS4xNywxLjE3LDAsMCwxLS44MywxLjExLDEuMTUsMS4xNSwwLDAsMS0xLjItLjM1bC0xLS45MWMtLjQ3LS40Mi0uNzMtLjY2LS44NC0uNzdhMS4zNSwxLjM1LDAsMCwwLTItLjEyTDIuNywxNWExLjMyLDEuMzIsMCwwLDAtLjM5LDFBMi41NywyLjU3LDAsMCwwLDMsMTcuODVsMCwwYTI3LjI0LDI3LjI0LDAsMCwxLDQuNyw1LjYyQTEyLjYzLDEyLjYzLDAsMCwxLDguNjEsMjguMjFaTTIzLjIsMjMuMzVaTTYuNTEsMTYuNTlaIi8+PC9nPjwvZz48L3N2Zz4=);
}

.scroll-hint-icon-white:after {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMy4yOSIgaGVpZ2h0PSIxMi4wMiIgdmlld0JveD0iMCAwIDMzLjI5IDEyLjAyIj48dGl0bGU+44Ki44K744OD44OIIDI8L3RpdGxlPjxnIGlkPSLjg6zjgqTjg6Tjg7xfMiIgZGF0YS1uYW1lPSLjg6zjgqTjg6Tjg7wgMiI+PGcgaWQ9IuODrOOCpOODpOODvF8xLTIiIGRhdGEtbmFtZT0i44Os44Kk44Ok44O8IDEiPjxsaW5lIHgxPSIxLjg1IiB5MT0iNi4wMSIgeDI9IjEwLjQiIHkyPSI2LjAxIi8+PHBhdGggZD0iTTEwLjQsNy4xN0gxLjg1YTEuMTYsMS4xNiwwLDEsMSwwLTIuMzFIMTAuNGExLjE2LDEuMTYsMCwxLDEsMCwyLjMxWiIvPjxwYXRoIGQ9Ik03LjQsMTJhMS4xNSwxLjE1LDAsMCwxLS43Mi0uMjVsLTYuMjUtNUExLjIsMS4yLDAsMCwxLDAsNS44NywxLjE0LDEuMTQsMCwwLDEsLjQ2LDVMNi43LjIzQTEuMTYsMS4xNiwwLDAsMSw4LjEsMi4wOEwzLDUuOTEsOC4xMiwxMEExLjE2LDEuMTYsMCwwLDEsNy40LDEyWiIvPjxsaW5lIHgxPSIzMS40NSIgeTE9IjYuMDEiIHgyPSIyMi44OSIgeTI9IjYuMDEiLz48cGF0aCBkPSJNMzEuNDUsNy4xN0gyMi44OWExLjE2LDEuMTYsMCwxLDEsMC0yLjMxaDguNTZhMS4xNiwxLjE2LDAsMCwxLDAsMi4zMVoiLz48cGF0aCBkPSJNMjUuOSwxMmExLjE4LDEuMTgsMCwwLDEtLjkxLS40M0ExLjE3LDEuMTcsMCwwLDEsMjUuMTcsMTBsNS4wOS00LjA1TDI1LjIsMi4wOEExLjE2LDEuMTYsMCwwLDEsMjYuNTkuMjNMMzIuODQsNWExLjE2LDEuMTYsMCwwLDEsLjQ1LjkxLDEuMTQsMS4xNCwwLDAsMS0uNDMuOTJsLTYuMjQsNUExLjE3LDEuMTcsMCwwLDEsMjUuOSwxMloiLz48L2c+PC9nPjwvc3ZnPg==);
}

.scroll-hint-icon-white .scroll-hint-text {
  color: #000;
}

.scroll-hint-shadow-wrap {
  position: relative;
}

.scroll-hint-shadow-wrap::after {
  content: "";
  width: 20px;
  height: 100%;
  background: linear-gradient(
    270deg,
    rgba(0, 0, 0, 0.15) 0,
    rgba(0, 0, 0, 0) 16px,
    rgba(0, 0, 0, 0)
  );
  position: absolute;
  top: 0;
  right: 0;
  pointer-events: none;
  z-index: 1;
  opacity: 0;
  visibility: hidden;
}

.scroll-hint-shadow-wrap::before {
  content: "";
  width: 20px;
  height: 100%;
  background: linear-gradient(
    90deg,
    rgba(0, 0, 0, 0.15) 0,
    rgba(0, 0, 0, 0) 16px,
    rgba(0, 0, 0, 0)
  );
  position: absolute;
  top: 0;
  left: 0;
  pointer-events: none;
  z-index: 1;
  opacity: 0;
  visibility: hidden;
}

.scroll-hint-shadow-wrap:has(.scroll-hint.is-right-scrollable)::after,
.scroll-hint-shadow-wrap.is-right-scrollable::after {
  opacity: 1;
  visibility: visible;
}

.scroll-hint-shadow-wrap:has(.scroll-hint.is-left-scrollable)::before,
.scroll-hint-shadow-wrap.is-left-scrollable::before {
  opacity: 1;
  visibility: visible;
}

*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

:where([hidden]:not([hidden="until-found"])) {
  display: none !important;
}

:where(html) {
  -webkit-text-size-adjust: none;
  color-scheme: dark light;
  tab-size: 2;
  scrollbar-gutter: stable;
}

:where(html:has(dialog:modal[open])) {
  overflow: clip;
}

:where(body) {
  line-height: 1.5;
  font-family: system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
}

:where(button) {
  all: unset;
}

:where(input, button, textarea, select) {
  font: inherit;
  color: inherit;
}

:where(textarea) {
  resize: vertical;
  resize: block;
}

:where(button, label, select, summary, [role="button"], [role="option"]) {
  cursor: pointer;
}

:where(:disabled) {
  cursor: not-allowed;
}

:where(label:has(> input:disabled), label:has(+ input:disabled)) {
  cursor: not-allowed;
}

:where(a) {
  color: inherit;
  text-underline-offset: 0.2ex;
}

:where(ul, ol) {
  list-style: none;
}

:where(img, svg, video, canvas, audio, iframe, embed, object) {
  display: block;
}

:where(img, picture, svg, video) {
  max-inline-size: 100%;
  block-size: auto;
}

:where(p, h1, h2, h3, h4, h5, h6) {
  overflow-wrap: break-word;
}

:where(h1, h2, h3) {
  line-height: calc(1em + 0.5rem);
}

:where(hr) {
  border: none;
  border-block-start: 1px solid;
  color: inherit;
  block-size: 0;
  overflow: visible;
}

:where(dialog) {
  border: none;
  background: none;
  inset: unset;
  max-width: unset;
  max-height: unset;
}

:where(dialog:not([open])) {
  display: none !important;
}

:where(:focus) {
  outline: none;
}

:where(:focus-visible) {
  outline: none;
}

:where(:focus-visible):is(button, a, input, textarea, [tabindex="0"]) {
  outline: 2px solid CanvasText;
  box-shadow: 0 0 0 2px Canvas;
  outline-offset: 2px;
}

:where(:focus-visible, :target) {
  scroll-margin-block: 8vh;
}

:where(.visually-hidden:not(:focus-within, :active)) {
  clip-path: inset(50%) !important;
  height: 1px !important;
  width: 1px !important;
  overflow: hidden !important;
  position: absolute !important;
  white-space: nowrap !important;
  border: 0 !important;
}

:root {
  --white: #ffffff;
  --black: #000000;
  --primary-100: #23651c;
  --primary-50: #d4e9d1;
  --primary-30: #edffdb;
  --primary-25: #f7fff6;
  --accent: #ffee8c;
  --gray-100: #2f2f2f;
  --gray-50: #d9d9d9;
  --gray-25: #efefef;
  --font-size-base: 1rem;
  --line-height-base: 2;
  --letter-spacing-base: 0.05em;
  --font-family-base: "Noto Sans JP", sans-serif;
  --font-family-serif: "Noto Serif JP", serif;
  --font-family-heading: "Poppins", sans-serif;
  --container-width: 1200px;
}

html,
body {
  font-size: var(--font-size-base);
  line-height: var(--line-height-base);
  font-family: var(--font-family-base);
  letter-spacing: var(--letter-spacing-base);
  color: var(--black);
  background-color: var(--white);
}

.pconly {
  display: none;
}

.pconly-lg {
  display: none;
}

.pconly-xl {
  display: none;
}

.sponly {
  display: block;
}

.sponly-sm {
  display: block;
}

.js-fade-in {
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity 1s ease,
    transform 1s ease;
}
.js-fade-in.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.logo__text {
  font-family: var(--font-family-heading);
  font-weight: 600;
  font-size: clamp(22px, 22px + 4 * (100vw - 730px) / 470, 26px);
  line-height: 1.3;
}

.section {
  padding: 64px 0 160px;
}
.section-title {
  font-family: var(--font-family-heading);
  font-weight: 600;
  line-height: 1.5;
  color: var(--primary-100);
}
.section-title--ruby {
  font-family: var(--font-family-base);
  font-weight: bold;
  display: block;
}
.section-subtitle {
  border-left: 4px solid var(--primary-100);
  font-size: 24px;
  padding-left: 16px;
  color: var(--primary-100);
  line-height: 1.7;
  margin-bottom: 24px;
}
.section-subtitle:has(.section-subtitle-catch) {
  display: flex;
  gap: 16px;
  align-items: center;
  flex-wrap: wrap;
}
.section-subtitle-catch {
  font-weight: normal;
  font-size: 18px;
  line-height: 1.7;
}
.section-caption {
  color: var(--primary-100);
  border-bottom: 1px solid var(--primary-100);
  font-size: 16px;
  margin-bottom: 8px;
}

.inner {
  width: 100%;
  margin-inline: auto;
}

.panel {
  background: var(--white);
  border: 1px solid var(--primary-100);
}
.panel + .panel {
  margin-top: 16px;
}
.panel__title {
  padding: 8px 24px;
  font-size: 24px;
  font-weight: bold;
  border-bottom: 1px solid var(--primary-100);
  color: var(--primary-100);
}
.panel__detail {
  padding: 8px 24px 24px;
  font-size: 16px;
}
:where(.panel__list) .panel__text {
  position: relative;
  text-indent: -1em;
  margin-left: 1em;
}
:where(.panel__list) .panel__text::before {
  content: "・";
}

.header {
  position: fixed;
  inset: 8px 8px auto auto;
  z-index: 100;
}
.header__top {
  height: 100%;
}
.header__top-inner {
  display: flex;
  justify-content: flex-end;
  height: 100%;
  align-items: center;
  position: relative;
  z-index: 100;
}
.header__nav-button {
  width: min(6.6666666667vw, 48px);
  height: min(6.6666666667vw, 48px);
  position: absolute;
  background:
    linear-gradient(var(--white), var(--white)) no-repeat center/100%
      0.4166666667vw,
    var(--primary-100);
  transition: all 0.25s;
  inset: 4.375vw 1.25vw 0 auto;
  margin-block: auto;
  z-index: 102;
  box-shadow: 0 0 0 8px var(--primary-100);
}
.header__nav-button::before,
.header__nav-button::after {
  content: "";
  position: absolute;
  width: min(6.6666666667vw, 48px);
  height: min(0.4166666667vw, 4px);
  background: var(--white);
  transition: all 0.3s ease;
  margin-inline: auto;
  display: block;
}
.header__nav-button::before {
  inset: 4px 0 auto;
}
.header__nav-button::after {
  inset: auto 0 4px;
}
.header__nav-button:has(+ .header__nav-box[aria-hidden="false"]) {
  background: linear-gradient(transparent, transparent), var(--primary-100);
}
.header__nav-button:has(+ .header__nav-box[aria-hidden="false"])::before {
  transform: rotate(30deg);
  top: calc(50% - 0.2083333333vw);
}
.header__nav-button:has(+ .header__nav-box[aria-hidden="false"])::after {
  transform: rotate(-30deg);
  bottom: calc(50% - 0.2083333333vw);
}
.header__nav-box {
  background: var(--white);
}
.header__nav__list {
  height: 100%;
}
.header__nav__anchor {
  text-decoration: none;
  font-size: clamp(14px, 14px + 2 * (100vw - 768px) / 1152, 16px);
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  position: relative;
}
.header__nav__contact {
  font-weight: bold;
  font-size: clamp(14px, 14px + 2 * (100vw - 768px) / 1152, 16px);
}
.header__nav__contact a {
  display: flex;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  width: 100%;
  height: 100%;
  background: var(--primary-100);
  color: var(--white);
  border-radius: 8px;
  padding: 8px 40px 8px 16px;
  transition: 0.25s;
  border: 2px solid transparent;
  margin-inline: auto;
}
.header__nav__contact-text {
  border-right: 1px solid rgba(255, 255, 255, 0.5);
  padding-right: 4px;
  display: inline-block;
  position: relative;
}
.header__nav__contact-text::before {
  content: "";
  background: var(--white);
  display: block;
  width: 20px;
  height: 16px;
  -webkit-mask: url(../images/icon-mail.svg) no-repeat top center;
  mask: url(../images/icon-mail.svg) no-repeat top center;
  position: absolute;
  inset: 0 -28px 0 auto;
  margin-block: auto;
  transition: 0.25s;
}

.mv {
  width: 100%;
  aspect-ratio: 21/10;
  position: relative;
  top: 0;
}
.mv__logo {
  position: absolute;
  z-index: 2;
  inset: 0 auto auto 0;
  background: var(--white);
  padding: 16px;
  line-height: 1.5;
}
.mv__logo-name {
  font-size: 20px;
  font-weight: 500;
  margin-top: 8px;
}
.mv__logo-name-sub {
  font-size: 16px;
  margin-top: 10px;
}
.mv__image {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  z-index: 1;
}
.mv__image::before {
  background: linear-gradient(
    to bottom,
    rgba(212, 233, 209, 0) 0%,
    var(--primary-25) 90%
  );
  content: "";
  display: block;
  width: 100%;
  height: 50%;
  position: absolute;
  z-index: 2;
  inset: auto 0 0;
}
.mv__image::after {
  background: linear-gradient(
    to left,
    rgba(212, 233, 209, 0) 0%,
    var(--primary-25) 100%
  );
  content: "";
  display: block;
  width: 75%;
  height: 100%;
  position: absolute;
  z-index: 2;
  opacity: 0.8;
  inset: auto auto 0 0;
}
.mv__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.mv__text {
  position: absolute;
  z-index: 5;
  inset: auto auto 40px 40px;
  font-size: 18px;
  line-height: 1.7;
}
.mv__text-main {
  font-size: 48px;
  color: var(--primary-100);
  font-weight: 500;
  line-height: inherit;
}
.mv__text-lead {
  margin-top: 16px;
}

.about {
  background: linear-gradient(
    to bottom,
    var(--primary-25) 50%,
    var(--primary-30)
  );
}
.about__intro-lead {
  font-weight: bold;
  font-size: clamp(20px, 20px + 4 * (100vw - 1000px) / 130, 24px);
  line-height: 1.8;
  margin-top: 40px;
}
.about__paragraph {
  margin-top: 24px;
  font-size: 14px;
}
.about__staff {
  margin-top: 80px;
  color: var(--primary-100);
  font-weight: 500;
  transition: 0.25s;
}
.about__staff-list {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 4px;
  transition: 0.25s;
}
.about__staff-list-cont {
  background: var(--white);
  transition: 0.5s;
  box-shadow: none;
  position: relative;
}
.about__staff-detail {
  height: 100%;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.about__staff-info {
  margin-top: 8px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 8px 16px;
  font-size: 14px;
  line-height: 1.5;
  flex-grow: 1;
}
.about__staff-name {
  font-size: 18px;
}
.about__staff-name--ruby {
  font-size: 14px;
  opacity: 0.5;
}
.about__staff-notice {
  font-size: 12px;
  margin-left: 0.5em;
}
.about__staff-modal-button {
  border: 1px solid var(--primary-100);
  border-radius: 8px;
  font-weight: bold;
  padding: 8px 16px;
  width: fit-content;
  background: transparent;
  transition: 0.25s;
  font-size: 14px;
  margin-top: auto;
}

.schedule,
.values {
  padding-block: 56px 72px;
  position: relative;
}

.schedule {
  background: var(--white);
  margin-top: 48px;
}
.schedule__grid {
  margin-top: 24px;
}
.schedule__list {
  border: 1px solid var(--primary-100);
  padding: 16px 24px;
  display: flex;
  flex-direction: column;
  width: 50%;
}
.schedule__head {
  display: flex;
  justify-content: space-between;
}
.schedule__head-image {
  max-width: 165px;
}
:where(.schedule__list:last-of-type) .schedule__head-image {
  max-width: 149px;
}
.schedule__title-box {
  line-height: 1.7;
  margin-top: 10px;
}
.schedule__title {
  color: var(--primary-100);
  font-size: clamp(20px, 20px + 4 * (100vw - 992px) / 928, 24px);
}
.schedule__name {
  font-weight: bold;
  font-size: 20px;
}
.schedule__position {
  font-size: clamp(14px, 14px + 2 * (100vw - 992px) / 368, 16px);
}
:where(.schedule__list:last-of-type) .about__paragraph {
  min-height: calc(3lh - 0.25em);
}
.schedule__image {
  margin-top: 16px;
  width: 100%;
}

.values {
  background:
    url(../images/values_deco.svg) no-repeat top right,
    var(--primary-100);
  color: var(--white);
  margin-top: 80px;
  overflow: hidden;
}
:where(.values) .section-title {
  color: inherit;
}
.values__point {
  display: flex;
  gap: 8px;
  counter-reset: values;
  margin-top: 5vw;
}
.values__point-detail {
  background: var(--white);
  color: var(--black);
  display: flex;
  flex-direction: column;
  padding: 16px 24px;
}
.values__point-title {
  counter-increment: values;
  color: var(--primary-100);
  font-size: 24px;
  line-height: 1.7;
}
.values__point-title::before {
  content: counter(values, decimal-leading-zero);
  display: block;
  font-style: italic;
  font-weight: bold;
  font-family: var(--font-family-heading);
  font-size: 32px;
  line-height: 1.5;
}
.values__point-text {
  margin-top: 16px;
  font-size: 16px;
}
.values__feature {
  margin-top: 72px;
  position: relative;
}
.values__feature-main {
  font-size: 28px;
  line-height: 1.8;
}
.values__feature-body {
  font-size: 16px;
  margin-top: 24px;
}
.values__feature-image {
  width: 480px;
  flex-shrink: 0;
  position: relative;
}
.values__feature-badge {
  position: absolute;
  inset: -24px -24px auto auto;
}
.values__feature-point {
  margin-top: 24px;
  display: flex;
  width: 100%;
  border: 1px solid var(--white);
}
.values__feature-detail {
  padding: 16px;
  font-size: clamp(16px, 16px + 2 * (100vw - 1150px) / 770, 18px);
  font-weight: bold;
}
.values__feature-text {
  position: relative;
  display: flex;
  gap: min(0.5208333333vw, 10px);
}
.values__feature-text::before {
  content: "";
  display: block;
  background: var(--white);
  width: 21px;
  height: 30px;
  -webkit-mask: url(../images/icon-check.svg) no-repeat top 10px left 0 /
    contain;
  mask: url(../images/icon-check.svg) no-repeat top 10px left 0 / contain;
  flex-shrink: 0;
}

.students {
  background: url(../images/students_mv.jpg) no-repeat top center/100% auto;
}

.residents {
  background:
    url(../images/residents_mv.jpg) no-repeat top center/100% auto,
    #ecf8eb;
}

.practicum + .practicum {
  margin-top: 40px;
}
.practicum__annual-object {
  list-style: decimal inside;
}
.practicum__image,
.practicum__topics {
  margin-top: 16px;
}
.practicum__image {
  border: 0;
}
.practicum__topics {
  padding: 16px 24px;
}
.practicum__topics-title {
  color: var(--primary-100);
  font-size: 20px;
  display: flex;
  align-items: center;
  gap: 16px;
}
.practicum__topics-title::before {
  content: "";
  display: block;
  width: 18px;
  height: 27px;
  -webkit-mask: url(../images/icon-bulb.svg) no-repeat center center/contain;
  mask: url(../images/icon-bulb.svg) no-repeat center center/contain;
  background: var(--primary-100);
}

.cta {
  background:
    url(../images/cta_deco.svg) no-repeat right top,
    var(--primary-100);
  margin-top: 40px;
  color: var(--white);
  padding: 40px;
}
.cta__title {
  font-size: 28px;
  line-height: 1.8;
}
.cta__title--students {
  font-size: 24px;
}
.cta__text {
  font-size: 16px;
  margin-top: 16px;
}
.cta__point {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2px;
  width: min(48.3333333333vw, 580px);
  margin-top: 16px;
  font-size: 16px;
}
.cta__contents {
  background: var(--white);
  color: var(--primary-100);
  padding: 8px;
  display: flex;
  gap: 8px;
  align-items: center;
}
.cta__contents:first-of-type {
  grid-column-start: 1;
  grid-column-end: 3;
}
.cta__contents::before {
  content: "";
  display: block;
  background: var(--primary-100);
  width: 15px;
  height: 30px;
  -webkit-mask: url(../images/icon-check.svg) no-repeat top 9px left 0 / contain;
  mask: url(../images/icon-check.svg) no-repeat top 9px left 0 / contain;
  flex-shrink: 0;
}
.cta__button {
  display: flex;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  width: 100%;
  height: 100%;
  background: var(--white);
  color: var(--primary-100);
  border-radius: 8px;
  padding: 8px 40px 8px 16px;
  transition: 0.5s;
  font-weight: bold;
  border: 2px solid transparent;
  font-size: 16px;
}
.cta__button-text {
  border-right: 1px solid rgba(35, 101, 28, 0.5);
  display: flex;
  position: relative;
}
.cta__button-text::before {
  content: "";
  background: var(--primary-100);
  display: block;
  width: 20px;
  height: 16px;
  -webkit-mask: url(../images/icon-mail.svg) no-repeat top center/contain;
  mask: url(../images/icon-mail.svg) no-repeat top center/contain;
  position: absolute;
  inset: 0 -28px 0 auto;
  margin-block: auto;
  transition: 0.25s;
}
.cta__attention {
  font-size: 14px;
  margin-top: 8px;
  text-align: center;
}

.access {
  background: var(--gray-50);
}
.access__intro {
  color: var(--primary-100);
  font-weight: bold;
  font-size: 24px;
  line-height: 1.8;
}
.access__image {
  margin-top: 40px;
}
.access__content {
  margin-top: 24px;
}
.access__grid {
  display: flex;
  gap: 24px;
}
:where(.access__grid) .panel {
  width: 50%;
  display: flex;
  flex-direction: column;
}
:where(.access__grid) .panel + .panel {
  margin-top: initial;
}

.footer {
  background: var(--white);
  font-size: 14px;
  padding-block: 40px;
  line-height: 1.5;
}
.footer__grid {
  display: flex;
  justify-content: space-between;
}
.footer__logo {
  max-width: 460px;
}
.footer__address {
  font-style: initial;
  margin-top: 40px;
}
.footer__address-name {
  font-weight: bold;
}
.footer__address-name {
  font-size: clamp(16px, 16px + 4 * (100vw - 730px) / 470, 20px);
}
.footer__address-detail {
  margin-top: 1em;
  font-size: 14px;
}
.footer__banner-box {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.footer__banner {
  max-width: 200px;
  width: 100%;
}
.footer__banner a {
  display: block;
  transition: 0.25s;
}
.footer__banner a:hover {
  opacity: 0.8;
}
.footer__copyright {
  font-size: 10px;
  margin-top: 24px;
  border-top: 1px solid #9a9a9a;
  color: #9a9a9a;
  padding-block: 8px;
}

.modal {
  display: none;
}
.modal[aria-hidden="true"] .modal-overlay {
  animation: mmfadeOut 0.3s cubic-bezier(0, 0, 0.2, 1);
}
.modal[aria-hidden="false"] .modal-overlay {
  animation: mmfadeIn 0.3s cubic-bezier(0, 0, 0.2, 1);
}
.modal.is-open {
  display: block;
}
.modal-overlay {
  align-items: center;
  background: rgba(0, 0, 0, 0.6);
  inset: 0;
  margin: auto;
  display: flex;
  justify-content: center;
  position: fixed;
  z-index: 999;
  min-height: 0;
  height: 100%;
}
.modal-dialog {
  max-width: 1000px;
  width: 100%;
  min-height: min(47.2vw, 472px);
  max-height: calc(100% - 104px);
  overflow-y: auto;
  overflow-x: hidden;
  height: fit-content;
  background:
    url(../images/modal_deco.svg) no-repeat top left,
    linear-gradient(
      -7deg,
      var(--white),
      var(--primary-25) 80%,
      var(--primary-30) 100%
    );
  padding: 0 48px 48px;
  position: relative;
}
.modal-close {
  position: sticky;
  display: block;
  z-index: 100;
  width: 40px;
  height: 40px;
  inset: 8px 8px auto auto;
  background: var(--primary-100);
  border-radius: 8px;
  transition: 0.25s;
  margin: 8px 0 0 calc(100% - 8px);
  border: 2px solid var(--primary-100);
}
.modal-close::before,
.modal-close::after {
  content: "";
  display: block;
  position: absolute;
  width: 18px;
  height: 2px;
  border-radius: 2px;
  background: var(--white);
  inset: 0;
  margin: auto;
  transform: rotate(45deg);
  transition: 0.25s;
}
.modal-close::after {
  transform: rotate(-45deg);
}
.modal__contents {
  display: flex;
  gap: 40px;
  position: relative;
}
.modal__image {
  width: 196px;
  height: fit-content;
  flex-shrink: 0;
}
.modal__section {
  font-size: 14px;
}
.modal__detail {
  width: 100%;
  padding-right: 20px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  position: relative;
}
.modal__detail-name {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
}
:where(.modal__detail-name) .section-subtitle {
  margin-bottom: initial;
}
.modal__detail-name--ruby {
  font-size: 14px;
  color: rgba(35, 101, 28, 0.4);
}
.modal__doctor {
  font-size: 14px;
  font-weight: bold;
}
.modal__profile {
  display: flex;
  flex-direction: column;
}
.modal__profile-history {
  display: flex;
  gap: 1em;
}
.modal__list-cont {
  display: flex;
  position: relative;
}
.modal__list-cont::before {
  content: "・";
  margin-left: 1em;
  text-indent: -1em;
}

@keyframes mmfadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@keyframes mmfadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@media (min-width: 576px) {
  .sponly-sm {
    display: none;
  }
}
@media (min-width: 768px) {
  .pconly {
    display: block;
  }
  .sponly {
    display: none;
  }
  .js-fade-in[data-delay="1"] {
    transition-delay: 0s;
  }
  .js-fade-in[data-delay="2"] {
    transition-delay: 0.4s;
  }
  .js-fade-in[data-delay="3"] {
    transition-delay: 0.8s;
  }
  .js-fade-in[data-delay="4"] {
    transition-delay: 1.2s;
  }
  .js-fade-in[data-delay="5"] {
    transition-delay: 1.6s;
  }
  .js-fade-in[data-delay="6"] {
    transition-delay: 2s;
  }
  .js-fade-in[data-delay="7"] {
    transition-delay: 2.4s;
  }
  .js-fade-in[data-delay="8"] {
    transition-delay: 2.8s;
  }
  .js-fade-in[data-delay="9"] {
    transition-delay: 3.2s;
  }
  .js-fade-in[data-delay="10"] {
    transition-delay: 3.6s;
  }
  .js-fade-in[data-delay="11"] {
    transition-delay: 4s;
  }
  .js-fade-in[data-delay="12"] {
    transition-delay: 4.4s;
  }
  .js-fade-in[data-delay="13"] {
    transition-delay: 4.8s;
  }
  .js-fade-in[data-delay="14"] {
    transition-delay: 5.2s;
  }
  .js-fade-in[data-delay="15"] {
    transition-delay: 5.6s;
  }
  .js-fade-in[data-delay="16"] {
    transition-delay: 6s;
  }
  .js-fade-in[data-delay="17"] {
    transition-delay: 6.4s;
  }
  .js-fade-in[data-delay="18"] {
    transition-delay: 6.8s;
  }
  .js-fade-in[data-delay="19"] {
    transition-delay: 7.2s;
  }
  .js-fade-in[data-delay="20"] {
    transition-delay: 7.6s;
  }
  .section-title {
    font-size: 56px;
    margin-bottom: 24px;
  }
  .section-title--ruby {
    font-size: 20px;
  }
  .inner {
    max-width: 1200px;
    width: min(100%, 83.3333333333vw);
    padding-inline: min(5.2083333333vw, 100px);
  }
  .header__nav__anchor:hover::before {
    background: var(--primary-100);
    width: 100%;
  }
  .header__nav__contact a:hover {
    background: var(--white);
    border-color: var(--primary-100);
    color: var(--primary-100);
  }
  a:hover .header__nav__contact-text {
    border-right-color: rgba(35, 101, 28, 0.5);
  }
  a:hover .header__nav__contact-text::before {
    background: var(--primary-100);
  }
  .about__intro {
    display: grid;
    grid-template-columns: minmax(min(9.375vw, 180px), 1fr) minmax(
        0,
        480px
      ) minmax(0, 480px) minmax(16px, 1fr);
    gap: 40px;
    align-items: center;
  }
  .about__intro-text {
    grid-column: 2/3;
  }
  .about__intro-image {
    grid-column: 3/-1;
    aspect-ratio: 14/9;
  }
  .about__staff-list-cont:hover {
    z-index: 2;
    box-shadow: 0 0 20px 0 var(--primary-50);
  }
  .about__staff-image {
    width: 100%;
    max-height: 232px;
    overflow: hidden;
  }
  .about__staff-image img {
    display: block;
    width: 100%;
    object-fit: cover;
    transition: 0.5s;
  }
  :where(.about__staff-list-cont:hover) .about__staff-modal-button {
    background: var(--primary-100);
    color: var(--white);
  }
  .values__title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 104px;
  }
  :where(.students, .residents) .section-title {
    margin-bottom: 80px;
  }
  .cta__button:hover {
    background: var(--primary-30);
  }
  .modal-close:hover {
    background: var(--white);
  }
  .modal-close:hover::before,
  .modal-close:hover::after {
    background: var(--primary-100);
  }
}
@media (min-width: 992px) {
  .pconly-lg {
    display: block;
  }
  .schedule__grid {
    display: flex;
    gap: 24px;
  }
  .values__feature-detail {
    width: 33.3333333333%;
  }
  .values__feature-detail:nth-of-type(even) {
    border-inline: 1px solid var(--white);
  }
}
@media (min-width: 1250px) {
  .pconly-xl {
    display: block;
  }
  .values__feature-intro {
    display: flex;
    gap: 40px;
  }
  .cta {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
}
@media (min-width: 1300px) {
  .header__nav-button {
    display: none;
  }
  .header__nav-box {
    border-radius: 8px;
    padding: 8px 8px 8px min(2.5vw, 48px);
    box-shadow: 0 0 40px 0 rgba(35, 101, 28, 0.05);
  }
  .header__nav {
    height: 100%;
  }
  .header__nav__list {
    display: flex;
    gap: min(2.5vw, 48px);
    height: inherit;
  }
  .header__nav__anchor {
    flex-direction: column;
  }
  .header__nav__anchor::before {
    content: "";
    transition: all 0.25s;
    width: 0;
    height: 1px;
    inset: auto 0 0;
    display: block;
    margin: auto;
    position: absolute;
  }
}
@media (max-width: 1299.98px) {
  .header__nav-box {
    position: fixed;
    inset: 0 0;
    height: 100lvh;
    display: none;
    z-index: 99;
  }
  .header__nav {
    height: 100%;
  }
  .header__nav__list {
    padding: min(15vw, 96px) min(4.1666666667vw, 40px) 4.1666666667vw;
    overflow-y: scroll;
  }
  .header__nav__anchor {
    flex-direction: row-reverse;
    justify-content: space-between;
    padding: min(4.1666666667vw, 24px) 0;
  }
  .header__nav__contact a {
    width: fit-content;
    margin-inline: auto 0;
  }
}
@media (max-width: 1249.98px) {
  .about__staff-list {
    grid-template-columns: repeat(4, 1fr);
  }
  .about__staff-notice {
    display: block;
    margin: 0;
  }
  .schedule__position {
    display: block;
  }
  .schedule__image {
    max-width: 440px;
    margin-inline: auto;
  }
  .values__feature-image {
    margin: min(10vw, 32px) auto 0;
  }
  .cta__point {
    width: 100%;
    font-size: min(3.125vw, 12px);
  }
  .cta__button {
    margin-top: 16px;
    margin-inline: auto;
    width: fit-content;
    min-width: 180px;
  }
}
@media (max-width: 991.98px) {
  .section {
    padding: min(10vw, 32px) 0 min(25vw, 80px);
  }
  .mv {
    aspect-ratio: 3/5;
  }
  .mv__logo {
    width: min(50vw, 400px);
    padding: min(2.5vw, 12px);
  }
  .mv__logo-name {
    font-size: clamp(8px, 2.5vw, 20px);
  }
  .mv__logo-name-sub {
    font-size: min(2.5vw, 14px);
    margin-top: 1.25vw;
  }
  .about__staff-list {
    grid-template-columns: repeat(3, 1fr);
  }
  .schedule__list {
    width: 100%;
  }
  .schedule__list + .schedule__list {
    margin-top: min(3.75vw, 24px);
  }
  .values__point {
    flex-direction: column;
  }
  .values__point-title {
    display: flex;
    font-size: min(5.3125vw, 24px);
  }
  .values__point-title::before {
    font-size: min(7.5vw, 36px);
    margin-right: 0.5em;
    line-height: 1.25;
  }
  .values__feature-point {
    flex-direction: column;
  }
  .values__feature-detail:not(:first-of-type) {
    border-top: 1px solid var(--white);
  }
  .students {
    background: url(../images/students_mv_sp.jpg) no-repeat top 0 center/100%
      auto;
  }
  .residents {
    background:
      url(../images/residents_mv_sp.jpg) no-repeat top 0 center/100% auto,
      #ecf8eb;
  }
  .cta {
    margin-top: min(6.25vw, 32px);
    padding: min(6.25vw, 32px);
  }
  .cta__title {
    font-size: min(5.625vw, 24px);
  }
  .cta__title--students {
    font-size: min(3.75vw, 20px);
  }
  .cta__text {
    font-size: min(3.75vw, 14px);
    margin-top: min(2.5vw, 8px);
  }
}
@media (max-width: 767.98px) {
  .logo__text {
    font-size: clamp(14px, 2.8125vw, 22px);
  }
  .section-title {
    font-size: min(7.5vw, 48px);
    margin-bottom: 5vw;
  }
  .section-title--ruby {
    font-size: min(3.125vw, 18px);
  }
  .section-subtitle {
    font-size: min(5vw, 24px);
    margin-bottom: 5vw;
    padding-left: 2.5vw;
  }
  .section-subtitle:has(.section-subtitle-catch) {
    gap: min(1.25vw, 8px);
  }
  .inner {
    width: calc(100% - 10vw);
  }
  .panel + .panel {
    margin-top: min(5vw, 16px);
  }
  .panel__title {
    padding: min(2.5vw, 8px) min(5vw, 16px);
    font-size: min(4.375vw, 18px);
  }
  .panel__detail {
    padding: min(1.25vw, 8px) min(2.5vw, 16px) min(2.5vw, 16px);
    font-size: min(3.125vw, 14px);
  }
  .panel__text {
    font-size: min(3.125vw, 14px);
  }
  .header__nav span {
    font-size: min(5vw, 16px);
  }
  .mv {
    aspect-ratio: 3/5;
  }
  .mv__text {
    inset: auto 0 min(3.125vw, 20px);
    font-size: clamp(12px, 3.125vw, 16px);
    width: fit-content;
    margin-inline: auto;
  }
  .mv__text-main {
    font-size: min(8.125vw, 56px);
  }
  .mv__text-lead {
    margin-top: 2.5vw;
  }
  .about {
    padding-bottom: 0;
  }
  .about__intro-text {
    width: calc(100% - 10vw);
    margin-inline: auto;
  }
  .about__intro-image {
    margin-top: 4.6875vw;
  }
  .about__intro-lead {
    font-size: clamp(16px, 4.0625vw, 20px);
    margin-top: 6.25vw;
  }
  .about__paragraph {
    margin-top: 5vw;
    font-size: clamp(12px, 3.125vw, 14px);
  }
  .about__staff {
    margin-top: 12.5vw;
  }
  .about__staff-list {
    gap: 2.5vw;
  }
  .about__staff-list-cont {
    width: 100%;
    display: block;
  }
  .schedule,
  .values {
    padding-block: 10vw 12.5vw;
    width: 100%;
    padding-inline: 5vw;
  }
  .schedule {
    margin-top: 6.25vw;
  }
  .schedule__head {
    align-items: center;
  }
  .schedule__title {
    font-size: min(5vw, 24px);
  }
  .schedule__image {
    width: 77.4358974359vw;
  }
  .values {
    margin-top: 12.5vw;
  }
  .values__body-copy {
    font-size: min(3.4375vw, 16px);
  }
  .values__point-detail {
    padding: 3.75vw;
  }
  .values__point-text {
    margin-top: 1.25vw;
    font-size: min(3.4375vw, 16px);
  }
  .values__feature {
    margin-top: 10vw;
  }
  .values__feature-main {
    font-size: min(6.25vw, 32px);
  }
  .values__feature-body {
    font-size: min(3.125vw, 14px);
  }
  .values__feature-image {
    width: 100%;
  }
  :where(.students, .residents) .section-title {
    margin-bottom: min(9.375vw, 60px);
  }
  .practicum__topics-title {
    font-size: min(4.375vw, 18px);
  }
  .cta__contents {
    padding: min(1.25vw, 8px);
  }
  .cta__contents::before {
    width: min(2.1875vw, 15px);
    height: min(4.6875vw, 30px);
    -webkit-mask-position: center;
    mask-position: center;
  }
  .cta__button {
    margin-top: min(2.5vw, 16px);
    padding: min(1.25vw, 8px) min(10vw, 40px) min(1.25vw, 8px) min(2.5vw, 16px);
    font-size: min(3.75vw, 12px);
  }
  .cta__button-text::before {
    width: min(4.6875vw, 20px);
    height: min(3.75vw, 16px);
    right: max(-6.875vw, -28px);
  }
  .cta__attention {
    font-size: min(2.8125vw, 12px);
  }
  .access__intro {
    font-size: min(4.375vw, 18px);
  }
  .access__image {
    margin-top: min(6.25vw, 24px);
  }
  .access__content {
    margin-top: min(3.75vw, 16px);
  }
  .access__grid {
    gap: min(3.75vw, 16px);
  }
  :where(.access__grid) .panel + .panel {
    margin-top: initial;
  }
  .footer__grid {
    flex-direction: column;
    padding-inline: 3.75vw;
  }
  .footer__address {
    margin-top: min(5vw, 32px);
  }
  .footer__address-name {
    font-size: clamp(12px, 2.8125vw, 20px);
  }
  .footer__address-detail {
    font-size: clamp(12px, 2.1875vw, 14px);
  }
  .footer__banner-box {
    margin-top: 3.75vw;
    gap: 2.5vw;
    flex-direction: initial;
  }
  .footer__copyright {
    width: calc(100% - 7.5vw);
    margin-inline: auto;
  }
  .modal-dialog {
    padding: 0 5vw 5vw;
    width: calc(100% - 5vw);
  }
  .modal-close {
    height: min(7.5vw, 48px);
    width: min(7.5vw, 48px);
    margin-left: calc(100% - 5vw);
  }
  .modal-close::before,
  .modal-close::after {
    width: 5vw;
  }
  .modal__contents {
    gap: 3.75vw;
  }
  .modal__image {
    width: 25vw;
  }
  .modal__section {
    font-size: clamp(12px, 3.125vw, 14px);
  }
  .modal__detail {
    padding-right: 0;
    gap: 2.5vw;
  }
  :where(.modal__detail-name) .section-subtitle {
    margin-bottom: initial;
  }
}
@media (max-width: 575.98px) {
  .about__staff-list {
    grid-template-columns: repeat(2, 1fr);
  }
  .schedule__head-image {
    width: 25.78125vw;
    min-width: 82px;
  }
  :where(.schedule__list:last-of-type) .schedule__head-image {
    width: 23.28125vw;
    min-width: 72px;
  }
  .cta__point {
    display: flex;
    flex-direction: column;
  }
  .cta__contents::before {
    -webkit-mask-position: center;
    mask-position: center;
  }
  .access__grid {
    flex-direction: column;
  }
  :where(.access__grid) .panel {
    width: 100%;
  }
  .modal__contents {
    display: block;
  }
  .modal__detail {
    margin-top: 1em;
  }
}
