@charset "UTF-8";
/* style.scss */
* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
  width: 100%;
  overflow-x: hidden;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

em {
  font-style: normal;
  font-weight: 700;
}

ul,
ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

p {
  margin: 0 0 1em;
}

.flex {
  display: flex;
  gap: 1em;
}

.grid {
  display: grid;
  gap: 1em;
  align-items: start;
}

.right {
  text-align: right;
}

.center {
  text-align: center;
}

.left {
  text-align: left;
}

.red {
  color: #f44336;
}

/* base/_typography.scss */
html,
body {
  font-family: "Zen Maru Gothic", sans-serif;
  color: #545454;
  color: #635750;
  background: #fff;
  line-height: 1.75;
  font-size: clamp(14px, 1.6vw, 16px);
}

h1 {
  font-size: 2.25em;
  letter-spacing: 0.05em;
}

h2 {
  font-size: 2.25em;
  letter-spacing: 0.05em;
}

h3 {
  font-size: 1.3em;
}

h4 {
  font-size: 1.1em;
}

h1,
h2,
h3,
h4 {
  font-weight: 700;
  margin: 1em auto 0.5em;
}
h1:first-child,
h2:first-child,
h3:first-child,
h4:first-child {
  margin-top: 0;
}

p {
  font-weight: 400;
}

a {
  color: #e699bb;
  text-decoration: none;
}

.big {
  font-size: 1.1em;
}

.small {
  font-size: 0.9em;
}

/* base/_global.scss */
html {
  scroll-behavior: smooth;
  overflow-x: hidden;
}

/* layout/_container.scss */
.container {
  width: 1200px;
  max-width: 100%;
  margin: auto;
  padding: 2em 1em;
}
@media (min-width: 768px) {
  .container {
    padding: 4em 1em;
  }
}

.page-header header {
  position: relative;
}
.page-header header.parallax::before {
  content: "";
  position: absolute;
  inset: 0;
  background-color: rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(3px);
}
.page-header header > * {
  position: relative;
  z-index: 2;
}

.section-header {
  text-align: center;
  padding: 2em 1em;
}
.section-header.parallax {
  background-attachment: scroll;
  background-size: auto 150%;
  background-position: center top;
  background-repeat: repeat-y;
}
@media (min-width: 768px) {
  .section-header {
    padding: 6.5em 1em;
  }
}
@media (min-width: 1700px) {
  .section-header.parallax {
    background-size: 100% auto;
  }
}
.section-header .section-title-ja {
  font-size: 2.25em;
  font-weight: 700;
  color: #545454;
  color: #635750;

  width: 1200px;
  max-width: 100%;
  margin: 0 auto;
}
.section-header .section-title-en {
  font-size: 1.1em;
  width: 1200px;
  max-width: 100%;
  margin: 0 auto;
  letter-spacing: 0.08em;
  color: #80c26b;
}

.section-body {
  width: 1200px;
  max-width: 100%;
  margin: auto;
  padding: 2em;
}
@media (min-width: 768px) {
  .section-body {
    padding: 4em 2em;
  }
}
.section-body.grid {
  gap: 2em;
}
@media (min-width: 768px) {
  .section-body.grid {
    grid-template-columns: repeat(2, 1fr);
    grid-auto-flow: dense;
  }
}
@media (min-width: 768px) {
  .section-body .text {
    width: 640px;
    max-width: 100%;
    margin: 0 auto;
  }
}

.section-header + .section-body {
  padding-top: 0;
}

.page-header .section {
  padding: 0;
}
.page-header .section-header {
  background-color: #f9fcf7;
}

/* layout/_header.scss */
.header {
  position: relative;
  background: #fff;
}

.header-top .inner {
  width: 1200px;
  max-width: 100%;
  margin-inline: auto;
  padding: 1em 4em;
  display: flex;
  align-items: center;
  justify-content: center;
}
.header-top .logo-area {
  display: flex;
  align-items: center;
  gap: 1.5em;
}
.header-top .logo-area a {
  border: none;
}
.header-top .logo-area .logo1,
.header-top .logo-area .logo2 {
  max-height: 3em;
}
.header-top .logo-area .tagline {
  display: none;
}
@media (min-width: 768px) {
  .header-top .inner {
    justify-content: space-between;
    padding: 1em 1em;
  }
  .header-top .logo-area {
    gap: 1.5em;
  }
  .header-top .logo-area .logo1,
  .header-top .logo-area .logo2 {
    height: 3em;
  }
  .header-top .logo-area .tagline {
    margin-bottom: 0;
    color: #929292;
    font-size: 1.1em;
    font-weight: 700;
  }
}
@media (min-width: 1000px) {
  .header-top .logo-area .tagline {
    display: block;
  }
}

.header-cta {
  display: flex;
  justify-content: center;
  gap: 1em;
}

@media (max-width: 768px) {
  .header-cta {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    padding: 0.5em;
    background-color: #fff;
  }
}
.menu-toggle {
  display: inline-flex;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 1001;
  width: 2em;
  height: 2em;
  align-items: center;
  justify-content: center;
  font-size: 2em;
  line-height: 1;
}
.menu-toggle .icon-close {
  display: none;
}

#menuToggle:checked + .menu-toggle .icon-menu {
  display: none;
}

#menuToggle:checked + .menu-toggle .icon-close {
  display: inline-block;
  color: #fff;
}

.header-nav .inner {
  width: 1200px;
  max-width: 100%;
  margin-inline: auto;
  padding-inline: 1em;
}
.header-nav .nav {
  position: fixed;
  inset: 0 0 0 30%;
  background: #fff;
  transform: translateX(100%);
  transition: transform 0.3s ease;
  padding: 4.75em 1em;
}
.header-nav .nav ul {
  display: flex;
  flex-direction: column;
  gap: 1em;
  list-style: none;
  margin: 0;
  padding: 0;
}
.header-nav .nav a {
  display: block;
  padding: 0.5em 1em;
  border-bottom: 4px solid #ececec;
  color: #545454;
  color: #635750;

  font-weight: 700;
}

#menuToggle:checked ~ .header-nav .nav {
  transform: translateX(0);
  z-index: 1000;
}

.menu-overlay {
  display: none;
}

#menuToggle:checked ~ .menu-overlay {
  display: block;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  z-index: 999;
}

@media (min-width: 768px) {
  .menu-toggle {
    display: none;
  }
  .header-nav .inner {
    display: block;
    padding: 0;
  }
  .header-nav .nav {
    position: relative;
    inset: auto;
    transform: none;
    transition: none;
    padding: 0;
  }
  .header-nav .nav ul {
    width: 100%;
    flex-direction: row;
    flex: 1;
    gap: 1.5em;
  }
  .header-nav .nav li {
    flex: 1;
  }
  .header-nav .nav a {
    text-align: center;
  }
  .header-nav .nav a:hover,
  .header-nav .nav a.is-active {
    border-color: #80c26b;
    transition: 0.3s ease;
  }
  #menuToggle:checked ~ .header-nav .nav {
    transform: translateX(0);
    z-index: 1000;
  }
}

/* layout/_footer.scss */
.footer-top .inner {
  width: 1200px;
  max-width: 100%;
  margin-inline: auto;
  padding-inline: 1em;
  padding: 1em;
}
.footer-top .footer-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2em;
}
.footer-top .footer-nav a {
  font-size: 1.1em;
  font-weight: 700;
  color: #545454;
  color: #635750;
}
.footer-top .footer-nav a:hover {
  border-color: #80c26b;
}
@media (min-width: 768px) {
  .footer-top .inner {
    padding: 2em 1em;
  }
  .footer-top .footer-nav {
    justify-content: center;
  }
}

.footer-bottom {
  background: #80c26b;
  color: #fff;
  padding-bottom: 3em;
}
.footer-bottom a {
  color: #fff;
}
.footer-bottom .inner {
  width: 1200px;
  max-width: 100%;
  margin-inline: auto;
  padding-inline: 1em;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2em;
  padding: 2em 1em;
  text-align: center;
}
.footer-bottom .to-top span {
  display: block;
  font-size: 3em;
}
.footer-bottom .contact-info {
  display: flex;
  flex-direction: column;
  gap: 0.8em;
}
.footer-bottom .contact-info .title {
  padding: 0.3em 1em;
  background: #fff;
  color: #545454;
  color: #635750;

  font-weight: 700;
}
.footer-bottom .contact-info .tel {
  display: inline-flex;
  justify-content: flex-end;
  align-items: center;
  gap: 0.5em;
  font-weight: 700;
}
.footer-bottom .contact-info a {
  display: inline-block;
  font-size: 2em;
  font-weight: 700;
  line-height: 1.1;
}
.footer-bottom .copy {
  margin-bottom: 0;
  font-size: 0.8em;
}
@media (min-width: 768px) {
  .footer-bottom {
    padding-bottom: 0;
  }
  .footer-bottom .inner {
    gap: 4em;
  }
  .footer-bottom .contact-info {
    flex-direction: row;
    align-items: center;
    gap: 2em;
  }
}

/* components/_buttons.scss */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5em;
  padding: 0.25em 1.5em;
  background-color: #635750;
  border-radius: 999px;
  color: #fff;
  /*font-weight: 700;*/
  border: 1px solid transparent;
  transition: opacity 0.2s ease;
}
.btn:hover {
  opacity: 0.85;
  border-color: transparent;
}
.btn--primary {
  background: #80c26b;
  color: #fff;
}
.btn--accent {
  background: #e699bb;
  color: #fff;
}
.btn--ghost {
  background: #fff;
  border-color: #ddd;
  color: #545454;
  color: #635750;
}

.action-btn {
  text-align: center;
  margin-top: 2em;
}

/* components/_breadcrumb.scss */
.breadcrumb {
  display: none;
}
@media (min-width: 768px) {
  .breadcrumb {
    width: 1200px;
    max-width: 100%;
    margin-inline: auto;
    padding-inline: 1em;
    display: block;
    padding: 1em;
  }
  .breadcrumb ol {
    display: flex;
    gap: 0.5em;
    flex-wrap: wrap;
    font-size: 0.9em;
  }
  .breadcrumb li::after {
    content: "chevron_right";
    font-family: "Material Symbols Outlined";
    font-weight: normal;
    font-style: normal;
    margin-left: 0.5em;
    color: #999;
    line-height: 1;
    vertical-align: middle;
  }
  .breadcrumb li:last-child::after {
    content: none;
  }
  .breadcrumb a {
    color: #e699bb;
  }
  .breadcrumb a:hover {
    border-color: inherit;
  }
}

/* components/_links.scss */
a {
  border-bottom: 1px solid transparent;
  transition: 0.3s;
}
a:hover {
  border-color: inherit;
}
a[target="_blank"]::after {
  content: "open_in_new";
  font-family: "Material Symbols Outlined";
  font-size: 1.1em;
  font-weight: normal;
  font-style: normal;
  color: #999;
  line-height: 1.2;
  vertical-align: text-bottom;
  margin-left: 0.2em;
}
@media (min-width: 768px) {
  a[href^="tel:"] {
    pointer-events: none;
    cursor: default;
  }
}

a.link {
  position: relative;
}
a.link::after {
  content: "arrow_forward";
  font-family: "Material Symbols Outlined";
  font-weight: normal;
  font-style: normal;
  margin-left: 0.2em;
  color: #999;
  font-size: 1em;
  line-height: 1.5;
  vertical-align: text-bottom;
  display: inline-block;
  transform-origin: 50% 80%;
  will-change: transform;
  transition: transform 0.35s cubic-bezier(0.2, 0.7, 0.2, 1);
  position: absolute;
  top: 0;
}
a.link:hover::after {
  animation: pop 0.6s cubic-bezier(0.2, 0.7, 0.2, 1) 1;
}

/* components/_page-links.scss */
.page-links {
  width: 1200px;
  max-width: 100%;
  margin-inline: auto;
  padding-inline: 1em;
  padding: 2em 1em;
}
.page-links ul {
  display: flex;
  flex-direction: column;
  gap: 1em;
  flex-wrap: wrap;
  justify-content: center;
  text-align: center;
}
.page-links li::after {
  content: "arrow_downward";
  font-family: "Material Symbols Outlined";
  font-weight: normal;
  font-style: normal;
  margin-left: 0.2em;
  color: #999;
  font-size: 1.1em;
  line-height: 1.2;
  vertical-align: text-bottom;
  display: inline-block;
  transform-origin: 50% 80%;
  will-change: transform;
  transition: transform 0.35s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.page-links li:hover::after {
  animation: pop 0.6s cubic-bezier(0.2, 0.7, 0.2, 1) 1;
}

.page-links a {
  font-size: 1.1em;
  font-weight: 700;
}
@media (min-width: 768px) {
  .page-links ul {
    flex-direction: row;
    gap: 2em;
  }
}
/* ぴょこん（縮→伸→戻る） */
@keyframes pop {
  0% {
    transform: translateY(0) scale(1);
  }
  20% {
    transform: translateY(-4px) scale(1.12);
  }
  40% {
    transform: translateY(0) scale(0.96);
  }
  60% {
    transform: translateY(-2px) scale(1.06);
  }
  100% {
    transform: translateY(0) scale(1);
  }
}
/* pager */
.pager {
  display: flex;
  gap: 1em;
  justify-content: center;
  margin: 2em;
}
.pager .page-numbers,
.pager .pager-prev,
.pager .pager-next {
  display: inline-flex;
  border: 1px solid #e699bb;
  font-size: 1.3em;
  height: 2em;
  width: 2em;
  justify-items: center;
  justify-content: center;
  border-radius: 1em;
}
.pager span.page-numbers,
.pager span.pager-prev,
.pager span.pager-next {
  border-color: #ececec;
  color: #ececec;
}

/* components/_decoraqtion.scss */
.deco::before {
  content: "";
  display: block;
  height: 1.2em;
}

.deco.school:before {
  background: url("/assets/img/deco-school.png") center center/contain no-repeat;
}

.deco.bus:before {
  background: url("/assets/img/deco-bus.png") center center/contain no-repeat;
}

/* components/_links.scss */
.parallax {
  background-attachment: scroll;
}
@media (min-width: 768px) {
  .parallax {
    background-attachment: scroll;
  }
}

/* components/motion */
.motion-fade span {
  display: inline-block;
  opacity: 0;
  transform: translateY(6px);
  animation: fadeUp 0.1s ease-out forwards;
  will-change: transform, opacity;
}
@keyframes fadeUp {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.reveal-up {
  opacity: 0;
  transform: translateY(4em);
  transition: opacity 0.6s ease, transform 0.6s ease;
  will-change: opacity, transform;
}
.reveal-up.is-inview {
  opacity: 1;
  transform: none;
}

/* 子要素を順番にふわっと */
.reveal-stagger > * {
  opacity: 0;
  transform: translateY(3em);
  transition: opacity 0.6s ease, transform 0.6s ease;
  will-change: opacity, transform;
}
.reveal-stagger.is-inview > * {
  opacity: 1;
  transform: none;
}

/* components/_form.scss */
.contact-form input,
.contact-form textarea,
.contact-form select {
  box-sizing: border-box;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: inherit;
  line-height: 1.7;
  width: 100%;
  padding: 0.5em;
  border: 1px solid #ececec;
  background-color: #f9fcf7;
  outline: none;
}
.contact-form input:focus,
.contact-form textarea:focus,
.contact-form select:focus {
  border-color: #80c26b;
}
.contact-form input[type="date"] {
  padding: calc(0.5em - 1px);
}
.contact-form input[type="checkbox"],
.contact-form input[type="radio"] {
  width: auto;
}
.contact-form textarea {
  height: 10em;
}
.contact-form .row p {
  display: flex;
  flex-direction: column;
  width: 720px;
  max-width: 100%;
  margin: 0 auto 1em;
}
.contact-form .row p.center {
  justify-content: center;
  text-align: center;
}
@media (min-width: 768px) {
  .contact-form .row p {
    flex-direction: row;
    align-items: center;
    gap: 1em;
  }
}
.contact-form .item-name {
  display: block;
  font-weight: 700;
}
.contact-form .item-name.req::after {
  content: "＊";
  color: #f44336;
}
@media (min-width: 768px) {
  .contact-form .row p .item-name {
    width: 10em;
    flex: 0 0 10em;
  }
}

.contact-form .actions {
  display: flex;
  justify-content: center;
}
.contact-form input[type="submit"] {
  width: auto;
  padding-inline: 3em;
  font-size: 1.2em;
  background-color: #635750;
  color: #fff;
  border: none;
}
.contact-form input[type="submit"]:disabled {
  opacity: 0.6;
}
.contact-form .wpcf7-spinner {
  display: none;
}

.wpcf7-form-control-wrap {
  width: 100%;
}

.thanks .section-body {
  width: 720px;
  max-width: 100%;
}
.thanks .tips {
  list-style-type: disc;
  margin-left: 1.5em;
}
.thanks .actions {
  display: flex;
  gap: 1em;
  margin-top: 1em;
}

/* components/gallery */
.gallery {
  --gap: 1em; /* PC時のカード間隔 */
  --radius: 1em; /* 角丸 */
  --h: 14em; /* スマホ時の高さ */
  --dur: 12s; /* 1周の時間（= 4s × 3枚） */
  position: relative;
  height: var(--h);
}
.gallery_item {
  position: absolute;
  inset: 0;
  margin: 0;
  opacity: 0;
  animation: sogCycle var(--dur) infinite ease-in-out;
  will-change: opacity;
}
.gallery_item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: var(--radius);
}
@media (max-width: 768px) {
  /* 1枚 切替なし */
  .one .gallery_item {
    animation: none;
    opacity: 1;
  }
  /* 2枚 切替 */
  .two .gallery {
    animation-duration: 8s;
  }
  .two .gallery_item:nth-of-type(1) {
    animation-delay: 0s;
  }
  .two .gallery_item:nth-of-type(2) {
    animation-delay: calc(var(--dur) / 2);
  }
  /* 3枚 切替 */
  .three .gallery {
    animation-duration: 12s;
  }
  .three .gallery_item:nth-of-type(1) {
    animation-delay: 0s;
  }
  .three .gallery_item:nth-of-type(2) {
    animation-delay: calc(var(--dur) / 3);
  }
  .three .gallery_item:nth-of-type(3) {
    animation-delay: calc(var(--dur) * 2 / 3);
  }
  /* 4枚 切替 */
  .four .gallery {
    animation-duration: 16s;
  }
  .four .gallery_item:nth-of-type(1) {
    animation-delay: 0s;
  }
  .four .gallery_item:nth-of-type(2) {
    animation-delay: calc(var(--dur) / 4);
  }
  .four .gallery_item:nth-of-type(3) {
    animation-delay: calc(var(--dur) * 2 / 4);
  }
  .four .gallery_item:nth-of-type(4) {
    animation-delay: calc(var(--dur) * 3 / 4);
  }
  /* 5枚 切替 */
  .five .gallery {
    animation-duration: 20s;
  }
  .five .gallery_item:nth-of-type(1) {
    animation-delay: 0s;
  }
  .five .gallery_item:nth-of-type(2) {
    animation-delay: calc(var(--dur) / 5);
  }
  .five .gallery_item:nth-of-type(3) {
    animation-delay: calc(var(--dur) * 2 / 5);
  }
  .five .gallery_item:nth-of-type(3) {
    animation-delay: calc(var(--dur) * 3 / 5);
  }
  .five .gallery_item:nth-of-type(3) {
    animation-delay: calc(var(--dur) * 4 / 5);
  }
  /* フェード（見せる→消す→待機） */
  @keyframes sogCycle {
    0% {
      opacity: 0;
    }
    10% {
      opacity: 1;
    }
    30% {
      opacity: 1;
    }
    40% {
      opacity: 0;
    }
    100% {
      opacity: 0;
    }
  }
}
@media (min-width: 768px) {
  .gallery {
    min-height: 30em;
    --dur: 30s;
  }
  .gallery_item {
    position: absolute;
    width: 29em;
    height: 29em;
    opacity: 1;
  }
  /* 1枚 */
  .gallery.one .gallery_item {
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
  }
  /* 2枚 */
  .gallery.two .gallery_item {
    width: 27.5em;
    height: 27.5em;
  }
  /* 3枚 */
  .gallery.three .gallery_item {
    width: 26em;
    height: 26em;
  }
  /* 4枚 */
  .gallery.four .gallery_item {
    width: 24.5em;
    height: 24.5em;
  }
  /* 5枚 */
  .gallery.five .gallery_item {
    width: 23em;
    height: 23em;
  }

  .gallery_item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  /* 丸く切り抜き（アニメ前の初期位置） */
  .mask-bubble {
    display: block;
    width: 100%;
    height: auto;
    clip-path: ellipse(var(--bubble-rx) var(--bubble-ry) at 50% 50%);
    --bubble-rx: 12.5em;
    --bubble-ry: 12.5em;
    filter: drop-shadow(0 8px 24px rgba(0, 0, 0, 0.16));
  }
  /* 1枚 */
  .gallery.one .mask-bubble {
    --bubble-rx: 12.5em;
    --bubble-ry: 12.5em;
  }
  /* 2枚 */
  .gallery.two .mask-bubble {
    --bubble-rx: 12em;
    --bubble-ry: 12em;
  }
  /* 3枚 */
  .gallery.three .mask-bubble {
    --bubble-rx: 11em;
    --bubble-ry: 11em;
  }
  /* 4枚 */
  .gallery.four .mask-bubble {
    --bubble-rx: 10em;
    --bubble-ry: 10em;
  }
  /* 5枚 */
  .gallery.five .mask-bubble {
    --bubble-rx: 9em;
    --bubble-ry: 9em;
  }

  /* ふわふわ移動（中心座標を動かす） */
  .mask-bubble.is-animate {
    animation: bubbleMorph var(--dur) linear var(--delay) alternate infinite;
  }
  .gallery_item:nth-of-type(1) .mask-bubble.is-animate {
    --dur: 30s;
    --delay: -3s;
  }
  .gallery_item:nth-of-type(2) .mask-bubble.is-animate {
    --dur: 24s;
    --delay: -6s;
  }
  .gallery_item:nth-of-type(3) .mask-bubble.is-animate {
    --dur: 20s;
    --delay: -9s;
  }
  .gallery_item:nth-of-type(4) .mask-bubble.is-animate {
    --dur: 26s;
    --delay: -12s;
  }

  @keyframes bubbleMorph {
    0% {
      clip-path: ellipse(
        var(--bubble-rx) var(--bubble-ry) at calc(50% - 1em) calc(50% - 0em)
      );
    }
    25% {
      clip-path: ellipse(
        calc(var(--bubble-rx) * 1.05) calc(var(--bubble-ry) * 0.95) at
          calc(50% - 1em) calc(50% - 1em)
      );
    }
    50% {
      clip-path: ellipse(
        calc(var(--bubble-rx) * 0.95) calc(var(--bubble-ry) * 1.05) at
          calc(50% - 1em) calc(50% - 0em)
      );
    }
    75% {
      clip-path: ellipse(
        calc(var(--bubble-rx) * 1.05) calc(var(--bubble-ry) * 0.95) at
          calc(50% + 1em) calc(50% - 1em)
      );
    }
    100% {
      clip-path: ellipse(
        var(--bubble-rx) var(--bubble-ry) at calc(50% + 0em) calc(50% - 0em)
      );
    }
  }
}

/* pages/_about.scss */
.page-header.about .section-header {
  background-image: url("/assets/img/h1-01-about.jpg");
}

/* 教育理念・教育方針 */
.about-policy {
  position: relative;
  overflow: clip;
}
.about-policy p {
  width: 720px;
  max-width: 100%;
  margin: 0 auto 1em;
  font-size: 1.1em;
}
.about-policy .visual {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1em;
  height: 20em;
  text-align: center;
  margin-bottom: 2em;
  border-radius: 3em;
}
.about-policy .visual::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #000;
  border-radius: 3em;
  pointer-events: none;
  background-image: url("/assets/img/pic-sample4.png");
  background-position: center center;
  background-size: cover;
  animation: zoomin 4s ease-out forwards;
}
@keyframes zoomin {
  0% {
    background-size: auto 50em;
    opacity: 1;
  }
  80% {
    opacity: 0.6;
  }
  100% {
    background-size: auto 40em;
    opacity: 0.5;
  }
}

.about-policy .visual p {
  position: relative;
  z-index: 1;
  font-weight: 700;
  margin-bottom: 0;
}
.about-policy .visual p.lead {
  width: 6em;
  font-size: 2.4em;
  margin-bottom: 0;
}
@media (min-width: 768px) {
  @keyframes zoomin {
    0% {
      background-size: 150%;
      opacity: 1;
    }
    80% {
      opacity: 0.6;
    }
    100% {
      background-size: 100%;
      opacity: 0.5;
    }
  }
  .about-policy .visual {
    height: 30em;
  }
  .about-policy .visual p.lead {
    font-size: 3em;
  }
}

/* 保育・教育プログラム */
.about-program {
  background: #f9fcf7;
}
.about-program .section-body h3 {
  margin: 1em 0 0;
}

@media (min-width: 768px) {
  .about-program .section-body {
    gap: 4em;
    grid-template-areas: "b a";
  }
  .about-program .section-body .gallery {
    grid-area: a;
  }
  .about-program .section-body .content {
    grid-area: b;
  }

  .about-program .gallery_item:nth-of-type(1) {
    top: -6em;
    left: 0em;
  }
  .about-program .gallery_item:nth-of-type(2) {
    top: 14em;
    left: 7em;
  }
  .about-program .gallery_item:nth-of-type(3) {
    top: 0em;
    left: 22em;
  }
}

/* 子どもたちに寄り添う */
.about-growth .section-body h3 {
  margin-bottom: 0;
}
@media (min-width: 768px) {
  .about-growth .section-body {
    gap: 4em;
    grid-template-areas: "a b";
  }
  .about-growth .section-body .gallery {
    grid-area: a;
  }
  .about-growth .section-body .content {
    grid-area: b;
  }

  .about-growth .gallery_item:nth-of-type(1) {
    top: -6em;
    left: auto;
    right: 0em;
  }
  .about-growth .gallery_item:nth-of-type(2) {
    top: 14em;
    left: auto;
    right: 7em;
  }
  .about-growth .gallery_item:nth-of-type(3) {
    top: 0em;
    left: auto;
    right: 22em;
  }
}

/* アクセス */
.access {
  background: #f9fcf7;
}
.access .map {
  width: 100%;
  height: 24em;
}
@media (min-width: 768px) {
  .access .section-body {
    gap: 3em;
  }
  .access .action-btn {
    grid-column: 1 / -1;
  }
}
.access .address {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
.access .address h3 {
  margin: 0 1em 0 0;
}
.access .address p {
  flex: 1 1 100%;
}
.access a[href^="tel:"] {
  font-size: 1.3em;
  font-weight: 700;
}
.access .right {
  text-align: right;
}

/* pages/_education.scss */
.page-header.education .section-header {
  background-image: url("/assets/img/h1-02-education.jpg");
}

/* 教育の柱 */
.section.edu-pillar {
  background: #f9fcf7;
}

.edu-pillar .section-body {
  text-align: center;
}
.edu-pillar .lead {
  font-size: 2em;
  font-weight: 700;
  margin-bottom: 0;
}

.edu-pillar .col {
  position: relative;
  font-size: 1.1em;
}
.edu-pillar .col::before {
  content: "";
  display: block;
  width: 100%;
  height: 5em;
  margin: 1em auto;
}
.edu-pillar .col:nth-of-type(1)::before {
  background: url("/assets/img/ill_bud1.png") center center/contain no-repeat;
}
.edu-pillar .col:nth-of-type(2)::before {
  background: url("/assets/img/ill_bud2.png") center center/contain no-repeat;
}
.edu-pillar .col:nth-of-type(3)::before {
  background: url("/assets/img/ill_bud3.png") center center/contain no-repeat;
}

.edu-pillar .col span {
  font-size: 1.1em;
  font-weight: 700;
}

@media (min-width: 768px) {
  .edu-pillar .lead {
    font-size: 3em;
  }

  .edu-pillar .grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    row-gap: 2em;
    column-gap: 4em;
  }
  .edu-pillar .grid > :nth-child(-n + 2) {
    grid-column: 1 / -1;
  }
}

/* 教育方針 */
/*.section.edu-policy {
  background: #f9fcf7;
}*/

.edu-policy .section-body {
  text-align: center;
}

.edu-policy .lead {
  font-size: 2em;
  font-weight: 700;
  margin-bottom: 0;
}

.edu-policy .gallery {
  margin-bottom: 2em;
}

@media (min-width: 768px) {
  .edu-policy .grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    row-gap: 2em;
    column-gap: 4em;
  }
  .edu-policy .grid > :nth-child(-n + 2) {
    grid-column: 1 / -1;
  }

  .edu-policy .lead {
    font-size: 3em;
  }

  .edu-policy .col {
    display: grid;
    gap: 2em;
  }
  .edu-policy .gallery {
    min-height: 26em;
  }

  .edu-policy .col:nth-of-type(1) .gallery_item:nth-of-type(1) {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  }

  .edu-policy .col:nth-of-type(1) .gallery_item:nth-of-type(1) .mask-bubble {
    --dur: 30s;
    --delay: -3s;
  }
  .edu-policy .col:nth-of-type(2) .gallery_item:nth-of-type(1) .mask-bubble {
    --dur: 24s;
    --delay: -6s;
  }
  .edu-policy .col:nth-of-type(3) .gallery_item:nth-of-type(1) .mask-bubble {
    --dur: 20s;
    --delay: -9s;
  }
}

/* デイリープログラム */
.section.edu-schedule {
  background: #f9fcf7;
}

.edu-schedule .grid {
  gap: 2em;
  grid-template-columns: repeat(1, minmax(0, 1fr));
}
.edu-schedule .gallery {
  background: #fff3f8;
  border-radius: 3em;
}
.edu-schedule .content {
  width: 720px;
  max-width: 100%;
  margin: 0 auto;
}
@media (max-width: 768px) {
  .edu-schedule .gallery_item:nth-of-type(1) {
    animation-delay: 0s;
  }
  .edu-schedule .gallery_item:nth-of-type(2) {
    animation-delay: calc(var(--dur) / 4);
  }
  .edu-schedule .gallery_item:nth-of-type(3) {
    animation-delay: calc(var(--dur) * 2 / 4);
  }
  .edu-schedule .gallery_item:nth-of-type(4) {
    animation-delay: calc(var(--dur) * 3 / 4);
  }
}
@media (min-width: 768px) {
  .edu-schedule .gallery.four .gallery_item {
    width: 28em;
    height: 28em;
  }
  .edu-schedule .gallery_item:nth-of-type(1) {
    top: -4em;
    left: -6em;
  }
  .edu-schedule .gallery_item:nth-of-type(2) {
    top: 4em;
    left: 12em;
  }
  .edu-schedule .gallery_item:nth-of-type(3) {
    top: -3em;
    left: auto;
    right: 12em;
  }
  .edu-schedule .gallery_item:nth-of-type(4) {
    top: 3em;
    left: auto;
    right: -7em;
  }

  .edu-schedule .gallery.four .mask-bubble {
    --bubble-rx: 11.5em;
    --bubble-ry: 11.5em;
  }
}

/* 給食 */
/*.section.edu-lunch {
  background: #f9fcf7;
}*/
.section.edu-lunch h3 {
  margin-top: 2em;
  margin-bottom: 1em;
}
.edu-lunch .qa-q {
  display: block;
  font-size: 1.2em;
  font-weight: 700;
}

@media (min-width: 768px) {
  .edu-lunch .section-body {
    gap: 4em;
    grid-template-areas: "b a";
  }
  .edu-lunch .section-body .gallery {
    grid-area: a;
  }
  .edu-lunch .section-body .content {
    grid-area: b;
  }

  .edu-lunch .gallery_item:nth-of-type(1) {
    top: -6em;
    left: 0em;
  }
  .edu-lunch .gallery_item:nth-of-type(2) {
    top: 14em;
    left: 7em;
  }
  .edu-lunch .gallery_item:nth-of-type(3) {
    top: 0em;
    left: 22em;
  }
}

/* 園舎紹介 */
.section.edu-building {
  background: #f9fcf7;
}
.edu-building .grid {
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 2em;
}

.edu-building h3 {
  text-align: center;
}
.edu-building .content {
  width: 720px;
  max-width: 100%;
  margin: 0 auto;
}
@media (max-width: 768px) {
  /*.edu-building .gallery_item:nth-of-type(1) {
    animation-delay: 0s;
  }
  .edu-building .gallery_item:nth-of-type(2) {
    animation-delay: calc(var(--dur) / 5);
  }
  .edu-building .gallery_item:nth-of-type(3) {
    animation-delay: calc(var(--dur) * 2 / 5);
  }
  .edu-building .gallery_item:nth-of-type(4) {
    animation-delay: calc(var(--dur) * 3 / 5);
  }
  .edu-building .gallery_item:nth-of-type(5) {
    animation-delay: calc(var(--dur) * 4 / 5);
  }*/
}
@media (min-width: 768px) {
  .edu-building .gallery {
    background: #ececec;
  }

  .edu-building .gallery_item:last-child {
    z-index: -1;
    width: 100%;
    height: 100%;
  }
  .edu-building .gallery_item:last-child img {
    border-radius: 3em;
  }

  .edu-building .gallery_item:nth-of-type(1) {
    top: -6em;
    left: -4em;
  }
  .edu-building .gallery_item:nth-of-type(2) {
    top: 14em;
    left: -4em;
  }
  .edu-building .gallery_item:nth-of-type(3) {
    top: -6em;
    right: -4em;
    left: auto;
  }
  .edu-building .gallery_item:nth-of-type(4) {
    top: 14em;
    right: -4em;
    left: auto;
  }
}

/* 充実したカリキュラム */
/*.section.edu-curriculum {
  background: #f9fcf7;
}*/

.edu-curriculum .grid {
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 2em;
}

.edu-curriculum .gallery {
  margin-bottom: 2em;
}
.edu-curriculum h3 {
  text-align: center;
}
@media (min-width: 768px) {
  .edu-curriculum .grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .edu-curriculum .col {
    display: grid;
    gap: 2em;
  }
  .edu-curriculum .gallery {
    min-height: 26em;
  }

  .edu-curriculum .gallery_item:nth-of-type(1) {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  }

  .edu-curriculum
    .col:nth-of-type(1)
    .gallery_item:nth-of-type(1)
    .mask-bubble {
    --dur: 30s;
    --delay: -3s;
  }
  .edu-curriculum
    .col:nth-of-type(2)
    .gallery_item:nth-of-type(1)
    .mask-bubble {
    --dur: 24s;
    --delay: -6s;
  }
  .edu-curriculum
    .col:nth-of-type(3)
    .gallery_item:nth-of-type(1)
    .mask-bubble {
    --dur: 20s;
    --delay: -9s;
  }
}

/* 一日の流れ */
.timeline_item ul {
  margin-left: 1.5em;
}
.timeline_item li {
  list-style: disc;
}
.timeline_item li li {
  list-style: circle;
}

.timeline_item {
  position: relative;
  display: grid;
  gap: 1em;
  margin-bottom: 1em;
}
.timeline_item::before {
  content: "";
  position: absolute;
  left: calc(-1em - 2px);
  top: 2.5em;
  bottom: 0em;
  width: 4px;
  background: #ddd;
}
.timeline_item::after {
  content: "●";
  position: absolute;
  bottom: -1em;
  left: -1.5em;
  color: #ddd;
}

@media (max-width: 768px) {
  .timeline_item h3 {
    margin: 0 0 0 -1em;
  }
}
@media (min-width: 768px) {
  .timeline_item {
    grid-template-columns: repeat(2, 1fr);
    column-gap: 3em;
  }
  .timeline_item::before {
    left: calc(50% - 2px);
    width: 4px;
  }
  .timeline_item::after {
    left: calc(50% - 0.5em);
  }
  .timeline_item h3 {
    grid-column: 1 / -1;
  }

  .timeline
    .timeline_item:nth-of-type(even)
    .gallery_item:nth-of-type(1)
    .mask-bubble {
    --dur: 30s;
    --delay: -3s;
  }
  .timeline
    .timeline_item:nth-of-type(odd)
    .gallery_item:nth-of-type(1)
    .mask-bubble {
    --dur: 24s;
    --delay: -6s;
  }
  .timeline .timeline_item .gallery_item:nth-of-type(2) .mask-bubble {
    --dur: 36s;
    --delay: -6s;
  }

  .timeline .gallery.two .mask-bubble {
    --bubble-rx: 12em;
    --bubble-ry: 12em;
  }
  .timeline .gallery.two .gallery_item:nth-of-type(1) {
    transform: translate(-12em, -6em);
  }
  .timeline .gallery.two .gallery_item:nth-of-type(2) {
    transform: translate(8em, 6em);
  }

  .timeline .gallery.three .mask-bubble {
    --bubble-rx: 11em;
    --bubble-ry: 11em;
  }
  .timeline .gallery.three .gallery_item:nth-of-type(1) {
    transform: translate(-13em, -10em);
  }
  .timeline .gallery.three .gallery_item:nth-of-type(2) {
    transform: translate(8em, -5em);
  }
  .timeline .gallery.three .gallery_item:nth-of-type(3) {
    transform: translate(-7em, 10em);
  }

  .timeline .gallery.four .mask-bubble {
    --bubble-rx: 10em;
    --bubble-ry: 10em;
  }
  .timeline .gallery.four .gallery_item:nth-of-type(1) {
    transform: translate(-13em, -10em);
  }
  .timeline .gallery.four .gallery_item:nth-of-type(2) {
    transform: translate(-8em, 8em);
  }
  .timeline .gallery.four .gallery_item:nth-of-type(3) {
    transform: translate(9em, 11em);
  }
  .timeline .gallery.four .gallery_item:nth-of-type(4) {
    transform: translate(6em, -8em);
  }
}

/* pages/_kindergarten.scss */
.page-header.kindergarten .section-header {
  background-image: url("/assets/img/h1-04-kindergarten.jpg");
}

/* プレ */
@media (min-width: 768px) {
  .k-pre .section-body {
    gap: 4em;
    grid-template-areas: "b a";
  }
  .k-pre .section-body .gallery {
    grid-area: a;
  }
  .k-pre.section-body .content {
    grid-area: b;
  }

  .k-pre .gallery_item:nth-of-type(1) {
    top: -6em;
    left: 0em;
  }
  .k-pre .gallery_item:nth-of-type(2) {
    top: 14em;
    left: 7em;
  }
  .k-pre .gallery_item:nth-of-type(3) {
    top: 0em;
    left: 22em;
  }
}

/* 幼稚園 */
.section.k-main {
  background: #f9fcf7;
}

@media (min-width: 768px) {
  .k-main .section-body {
    gap: 4em;
    grid-template-areas: "a b";
  }
  .k-main .section-body .gallery {
    grid-area: a;
  }
  .k-main .section-body .content {
    grid-area: b;
  }

  .k-main .gallery_item:nth-of-type(1) {
    top: -6em;
    right: 0em;
    left: auto;
  }
  .k-main .gallery_item:nth-of-type(2) {
    top: 14em;
    right: 7em;
    left: auto;
  }
  .k-main .gallery_item:nth-of-type(3) {
    top: 0em;
    right: 22em;
    left: auto;
  }
}

/* 学童保育 */
@media (min-width: 768px) {
  .k-after .section-body {
    gap: 4em;
    grid-template-areas: "b a";
  }
  .k-after .section-body .gallery {
    grid-area: a;
  }
  .k-after.section-body .content {
    grid-area: b;
  }

  .k-after .gallery_item:nth-of-type(1) {
    top: -6em;
    left: 0em;
  }
  .k-after .gallery_item:nth-of-type(2) {
    top: 14em;
    left: 7em;
  }
  .k-after .gallery_item:nth-of-type(3) {
    top: 0em;
    left: 22em;
  }
}

/* pages/_club.scss */
.page-header.club .section-header {
  background-image: url("/assets/img/h1-05-club.jpg");
}

.club-ea .grid {
  gap: 2em;
  grid-template-columns: repeat(1, minmax(0, 1fr));
}
.club-ea h3 {
  text-align: center;
}
@media (min-width: 768px) {
  .club-ea .grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .club-ea .col {
    display: grid;
    gap: 2em;
  }
  .club-ea .gallery {
    min-height: 26em;
  }

  .club-ea .gallery_item:nth-of-type(1) {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  }

  .club-ea .col:nth-of-type(1) .gallery_item:nth-of-type(1) .mask-bubble {
    --dur: 30s;
    --delay: -3s;
  }
  .club-ea .col:nth-of-type(2) .gallery_item:nth-of-type(1) .mask-bubble {
    --dur: 24s;
    --delay: -6s;
  }
  .club-ea .col:nth-of-type(3) .gallery_item:nth-of-type(1) .mask-bubble {
    --dur: 20s;
    --delay: -9s;
  }
}

/* pages/_recruit.scss */
.page-header.recruit .section-header {
}

/* 園長からのメッセージ */
.director-photo {
  width: 10em;
  height: 10em;
  margin: 0 auto 2em;
}
.director-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  border-radius: 50%;
}

/* 採用コンセプト */
.recruit-concept {
  background: #f9fcf7;
}

/* 募集要項 */
.job-voucher {
  background: #f9fcf7;
}

/* 先輩の声 */
.recruit-voice .section-body {
  width: 1000px;
}

.voice-contetnt {
  display: flex;
}
.voice-name {
  width: 3em;
  text-align: center;
}
.voice-name img {
  width: 3em;
  height: 3em;
  border-radius: 50%;
  margin: 0 auto 0.5em;
}
.voice-balloon {
  flex: 1;
  position: relative;
  padding: 1em 1em;
  background: #fff3f8;
  border-radius: 1.5em;
  margin-left: 1em;
}
.voice-balloon::before {
  content: "";
  position: absolute;
  top: 1.2em;
  left: -0.9em;
  width: 0;
  height: 0;
  border: 1em solid transparent;
  border-right: 1.5em solid #fff3f8;
  border-left: 0;
}
@media (min-width: 768px) {
  .voice-name {
    width: 8em;
  }
  .voice-name img {
    width: 5em;
    height: 5em;
  }
  .voice-balloon {
    padding: 1.5em 2em;
    border-radius: 3em;
  }
}

/* 卒園児保護者からの声 */
.parents-voice .section-body {
  width: 1000px;
}

/* 応募方法 */
/*.section.job-entry {
  background: #f9fcf7;
}*/

/* pages/_admissions.scss */
.page-header.admissions .section-header {
  background-image: url("/assets/img/img-about1.png");
}

/* 認定こども園について */
.section.adm-childcare {
  background: #f9fcf7;
}

/* 募集要項 */
/*.section.adm-requirements {
  background: #f9fcf7;
}*/

.adm-requirements table {
  width: 720px;
  max-width: 100%;
  margin: 0 auto;
}
.adm-requirements table th,
.adm-requirements table td {
  padding: 0.5em 1em;
  text-align: center;
  border-bottom: 1px solid #ececec;
}
@media (max-width: 768px) {
  .adm-expenses table th:first-child,
  .adm-expenses table th:last-child,
  .adm-expenses table td:first-child,
  .adm-expenses table td:last-child {
    padding-inline: 0;
  }
}

/* 入園案内 */
.section.adm-admission {
  background: #f9fcf7;
}
@media (max-width: 768px) {
  .adm-admission table,
  .adm-admission tbody,
  .adm-admission th,
  .adm-admission td {
    display: block;
    display: block;
    width: auto;
  }
  .adm-admission tbody {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 1em;
  }
  .adm-admission th {
    text-align: left;
    font-size: 1.2em;
  }
  .adm-admission td {
    padding-bottom: 1em;
    border-bottom: 1px solid #ececec;
  }
}
@media (min-width: 768px) {
  .adm-admission table {
    width: 720px;
    max-width: 100%;
    margin: 0 auto;
  }
  .adm-admission table th,
  .adm-admission table td {
    padding: 0.5em 1em;
    border-bottom: 1px solid #ececec;
  }
  .adm-admission table th {
    width: 8em;
    vertical-align: top;
  }
}

/* 諸経費 */
/*.section.adm-expenses {
  background: #f9fcf7;
}*/

.adm-expenses h3 {
  margin: 3em 0 1em;
  text-align: center;
}
.adm-expenses h3:first-of-type {
  margin-top: 0;
}
.adm-expenses p {
  width: 720px;
  max-width: 100%;
  margin: 1em auto;
}

.table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.adm-expenses table {
  width: 720px;
  max-width: 100%;
  margin: 0 auto;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
}

.adm-expenses table th,
.adm-expenses table td {
  padding: 0.5em 1em;
  border-bottom: 1px solid #ececec;
}
.adm-expenses th.title {
  width: 9em;
}
.adm-expenses th.price {
  width: 8em;
}
.adm-expenses th.flag {
  width: 8em;
}
.adm-expenses th.note {
  min-width: 8em;
}
@media (max-width: 768px) {
  .adm-expenses table .sticky {
    position: sticky;
    left: 0;
    z-index: 2;
    background: #f9fcf7;
  }

  .adm-expenses table td:first-child,
  .adm-expenses table td:last-child {
    padding-inline: 0;
  }
  .adm-expenses .note {
    width: 16em;
  }
}

/* pages/_form.scss */
.page-header.news .section-header {
  background-image: url("/assets/img/h1-03-news.jpg");
}

.archive-news .section-body {
  border-bottom: 1px solid #ececec;
}
.archive-news .section-body figure {
  margin: 0 0 4em;
}
.archive-news .section-body figure img {
  margin: auto;
}
.archive-news .section-body p {
  width: 720px;
  max-width: 100%;
  margin-inline: auto;
}
.archive-news:last-child {
  border-bottom: none;
}

/* pages/_members.scss */
.page-header.members .section-header {
  background-image: url("/assets/img/img-about1.png");
}

/* pages/_form.scss */
.page-inq .section-header {
  background-color: #f9fcf7;
}

.page-entry .section-header {
  background-color: #f9fcf7;
}

/* pages/_privacy.scss */
.page-privacy .section-header {
  background-color: #f9fcf7;
}

/*# sourceMappingURL=style.css.map */

h1.page-title {
  padding: 2em 0.5em;
  background: #f9fcf7;
  font-size: 2.25em;
  text-align: center;
}

.fml {
  max-width: 420px;
  margin: 2rem auto;
  padding: 1.5rem;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #fff;
}
.fml-title {
  font-size: 1.25rem;
  font-weight: 700;
  margin: 0 0 1rem;
}
.fml-row {
  margin: 0.75rem 0;
}
.fml-row label {
  display: block;
  font-weight: 600;
  margin-bottom: 0.25rem;
}
.fml-row input[type="text"],
.fml-row input[type="password"] {
  width: 100%;
  padding: 0.6rem 0.7rem;
  border: 1px solid #d1d5db;
  border-radius: 8px;
}
.fml-inline {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.5rem;
}
/*.fml-submit {
  margin-top: 0.75rem;
  padding: 0.6rem 1rem;
  border: 0;
  border-radius: 8px;
  background: #0ea5e9;
  color: #fff;
  font-weight: 700;
  cursor: pointer;
}*/
.fml-errors {
  margin: 0.5rem 0;
  padding: 0.6rem 0.8rem;
  border: 1px solid #fecaca;
  background: #fef2f2;
  color: #b91c1c;
  border-radius: 8px;
}
.fml-link {
  font-size: 0.875rem;
}

/*さくら*/
.sakura {
  position: absolute;
  padding: 0;
  margin: 0;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 50;
  overflow: hidden;
  pointer-events: none;
}
.sakura li {
  width: 1em;
  position: absolute;
  list-style: none;
  top: 0;
  opacity: 0;
  animation: fall 4s linear infinite, rotate1 2s ease-in-out infinite alternate;
}
.sakura li img {
  width: 100%;
}
@keyframes fall {
  0% {
    top: 0;
    opacity: 0;
  }
  10% {
    opacity: 0.9;
  }
  90% {
    opacity: 0.8;
  }
  100% {
    top: 100%;
    opacity: 0;
  }
}
@keyframes rotate1 {
  from {
    transform: translateX(0px) rotate(0deg);
  }
  to {
    transform: translateX(200px) rotate(-80deg) rotateX(180deg);
  }
}
@keyframes rotate2 {
  from {
    transform: translateX(200px) rotate(-45deg);
  }
  to {
    transform: translateX(0px) rotate(0deg);
  }
}
.sakura li:nth-child(1) {
  left: 0;
  animation: fall 10s linear infinite, rotate1 3s ease-in-out infinite alternate;
}
.sakura li:nth-child(2) {
  left: 5vw;
  animation: fall 15s linear infinite, rotate1 2s ease-in-out infinite alternate;
}
.sakura li:nth-child(3) {
  left: 15vw;
  animation: fall 9s linear infinite,
    rotate1 3.5s ease-in-out infinite alternate;
}
.sakura li:nth-child(4) {
  left: 30vw;
  animation: fall 8s linear infinite, rotate2 4s ease-in-out infinite alternate;
}
.sakura li:nth-child(5) {
  left: 40vw;
  animation: fall 10s linear infinite, rotate1 4s ease-in-out infinite alternate;
}
.sakura li:nth-child(6) {
  left: 55vw;
  animation: fall 11s linear infinite, rotate2 3s ease-in-out infinite alternate;
}
.sakura li:nth-child(7) {
  left: 65vw;
  animation: fall 7s linear infinite,
    rotate2 3.5s ease-in-out infinite alternate;
}
.sakura li:nth-child(8) {
  left: 50vw;
  animation: fall 7s linear infinite, rotate1 3s ease-in-out infinite alternate;
}
.sakura li:nth-child(9),
.sakura li:nth-child(10),
.sakura li:nth-child(11),
.sakura li:nth-child(12) {
  display: none;
}
/* lenis */
html.lenis,
html.lenis body {
  height: auto;
}

.lenis:not(.lenis-autoToggle).lenis-stopped {
  overflow: clip;
}

.lenis [data-lenis-prevent],
.lenis [data-lenis-prevent-wheel],
.lenis [data-lenis-prevent-touch] {
  overscroll-behavior: contain;
}

.lenis.lenis-smooth iframe {
  pointer-events: none;
}

.lenis.lenis-autoToggle {
  transition-property: overflow;
  transition-duration: 1ms;
  transition-behavior: allow-discrete;
}

/* トップ */
/* メイン動画 */
.mainv {
  position: relative;
  width: 100%;
  height: calc(100vh - 8em);
}

.mainv video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.mainv .content {
  position: absolute;
  inset: 0;
  display: flex;
  justify-content: center;
  align-items: center;
}
.mainv .content::before {
  content: "";
  position: absolute;
  inset: 0;
  background-color: rgba(255, 255, 255, 0.2);
  backdrop-filter: blur(3px);
}
.mainv .content p {
  position: relative;
  z-index: 2;
  color: #fff;
  font-size: 2em;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-align: center;
}
@media (min-width: 768px) {
  .mainv .content p {
    font-size: 3em;
  }
}

/* 調整用：速さ・ずらし量・跳ね幅 */
.pyoko {
  --speed: 6s;
  --stagger: 0.2s;
  --amp: 0.28em;
  display: flex;
  gap: 0.5em;
  line-height: 1.1;
}
.pyoko > span {
  display: inline-block;
}
.pyoko .char {
  display: inline-block;
  white-space: pre; /* 全角スペースも保持 */
  transform-origin: 50% 100%;
  animation: pyoko var(--speed) ease-in-out infinite;
  animation-delay: calc(var(--i) * var(--stagger));
  will-change: transform;
}
@keyframes pyoko {
  0%,
  7%,
  100% {
    transform: translateY(0) scale(1);
  }
  2% {
    transform: translateY(calc(-1 * var(--amp)));
  }
}

/* ナビ */
.top-nav {
}

.top-nav-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 6.5em 2em;
}

.top-nav-box .section-header {
  padding: 0 0 2em;
}
.top-nav-box .section-header .section-title-ja,
.top-nav-box .section-header .section-title-en {
  width: 100%;
  color: #fff;
}
.top-nav-box .btn {
  background: #fff;
  color: #e699bb;
  width: 14em;
}

.top-about {
  background: url("../img/img-top-01.png") center center/cover no-repeat;
}
.top-education {
  background: url("../img/img-top-02.png") center center/cover no-repeat;
}
.top-news {
  background: url("../img/img-top-news.png") center center/cover no-repeat;
}
.top-kindergarten {
  background: url("../img/img-top-03.png") center center/cover no-repeat;
}
.top-club {
  background: url("../img/img-top-04.png") center center/cover no-repeat;
}
.top-admissions {
  background: url("../img/img-top-05.png") center center/cover no-repeat;
}
.top-pv {
}

@media (min-width: 768px) {
  .top-nav {
    gap: 2em;
    padding: 2em;
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .top-about {
    grid-column: span 3;
  }
  .top-education {
    grid-column: span 3;
  }
  .top-news {
    grid-column: span 6;
  }
  .top-kindergarten {
    grid-column: span 2;
  }
  .top-club {
    grid-column: span 2;
  }
  .top-admissions {
    grid-column: span 2;
  }
  .top-pv {
    grid-column: span 6;
  }
}

.top-news ul {
  margin-bottom: 2em;
}
.top-news li {
  margin-bottom: 1em;
}
.top-news a {
  color: #fff;
}

.top-pv video {
  width: 100%;
  height: auto;
}
