/* stylelint-disable property-no-vendor-prefix */

/* header */
#header-main {
  position: fixed;
  top: 0;
  left: var(--percentage-50);
  z-index: 4;
  display: flex;
  flex-flow: row nowrap;
  gap: var(--plus-number-24);
  align-items: center;
  justify-content: space-between;
  width: calc(var(--percentage-100) - calc(var(--plus-number-64) * 2));
  height: var(--header-height);
  padding: 0 var(--plus-number-24);
  background-color: var(--color-white);
  filter: drop-shadow(0 8px 16px rgb(0 0 0 / 8%)) drop-shadow(0 4px 4px rgb(0 0 0 / 8%));
  border-radius: var(--radius-header);
  transform: translate(-50%, 0);
}

#nav-pc #nav-list {
  display: flex;
  flex-flow: row nowrap;
}

#nav-list > li {
  position: relative;

  /* padding: 0 var(--plus-number-08); */
}

#nav-list > li > a {
  position: relative;
  display: flex;
  flex-flow: row nowrap;
  gap: var(--plus-number-04);
  align-items: center;
  justify-content: center;
  height: var(--header-height);
  padding: 0 var(--plus-number-16);
  font-size: var(--fs-18);
  line-height: var(--lh-100);
  color: var(--text-description);
}

#nav-list > li > a.pull::after {
  background-color: var(--bg-brand);
}

#nav-list > li > a::before {
  position: absolute;
  bottom: 0;
  display: block;
  width: 0;
  height: var(--plus-number-04);
  content: "";
  background-color: var(--bg-brand);
  border-radius: var(--radius-corners);
  transition: width 0.6s cubic-bezier(0.5, -1, 0.5, 2);
}

#nav-list > li > a.header-link::before {
  width: calc(var(--percentage-100) - calc(var(--plus-number-16) * 2));
}

#nav-sp {
  display: none;
}

.mega-menu {
  display: none;
}

.mega-menu.hover-active {
  position: absolute;
  top: calc(var(--header-height) + var(--plus-number-08));
  left: 0;
  display: flex;
  flex-flow: column nowrap;
  gap: var(--plus-number-16);
  background-color: var(--thesky-110);
  border-radius: var(--radius-16);
}

#nav-list > li:nth-last-child(3) > .mega-menu {
  transform: translate(-25%, 0);
}

#nav-list > li:nth-last-child(2) > .mega-menu {
  transform: translate(-70%, 0);
}

#nav-list > li:last-child > .mega-menu {
  transform: translate(-50%, 0);
}

.mega-menu.hover-active > a,
.mega-menu.hover-active > ul > li a {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  justify-content: space-between;
  width: calc(var(--plus-number-32) * 10);
  line-height: var(--lh-100);
}

.mega-menu.hover-active > a {
  position: relative;
  font-size: var(--fs-24);
  font-weight: var(--jp-black);
  transition: all 0.6s ease-in-out;
}

.mega-menu.hover-active > a.arrow-right::after {
  position: absolute;
  right: calc(var(--plus-number-08) - var(--plus-number-02));
  background-color: var(--bg-brand);
}

.mega-menu.hover-active > a::before {
  position: absolute;
  right: 0;
  display: block;
  width: var(--plus-number-24);
  height: var(--plus-number-24);
  content: "";
  border: var(--bd-brand);
  border-radius: var(--radius-corners);
  transition: background-color 0.6s ease-in-out;
}

.mega-menu.hover-active > ul {
  display: flex;
  flex-flow: column wrap;
  gap: 0 var(--plus-number-24);
}

.mega-menu.hover-active > ul > li {
  border-bottom: var(--bd-item);
  transition: border-bottom 0.6s cubic-bezier(0.5, -1, 0.5, 2);
}

.mega-menu.hover-active > ul > li > a {
  position: relative;
  padding: var(--plus-number-16) 0;
  font-size: var(--fs-18);
  font-weight: var(--jp-medium);
  color: var(--aircraft-50);
  transition: color 0.6s cubic-bezier(0.5, -1, 0.5, 2);
}

.mega-menu.hover-active > ul > li > a.arrow-right::after {
  position: absolute;
  right: var(--plus-number-04);
  background-color: var(--color-white);
}

.mega-menu.hover-active > ul > li > a::before {
  position: absolute;
  right: 0;
  display: block;
  width: var(--plus-number-40);
  height: calc(var(--plus-number-24) - var(--plus-number-04));
  content: "";
  background-color: var(--aircraft-50);
  border-radius: var(--radius-corners);
  transition: all 0.6s cubic-bezier(0.5, -1, 0.5, 2);
}

header.nav-bg::after {
  position: fixed;
  top: 0;
  z-index: 3;
  display: block;
  width: var(--percentage-100);
  height: 100dvh;
  content: "";
  background-color: var(--color-black-85);
  backdrop-filter: blur(16px);
  mix-blend-mode: multiply;
}

@media (any-hover: hover) {
  #nav-list > li > a:hover::before {
    width: calc(var(--percentage-100) - calc(var(--plus-number-16) * 2));
  }

  .mega-menu.hover-active > a:hover {
    color: var(--text-brand);
    background: var(--gd-main);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
  }

  .mega-menu.hover-active > a:hover.arrow-right::after {
    background-color: var(--color-white);
  }

  .mega-menu.hover-active > a:hover::before {
    background-color: var(--bg-brand);
  }

  .mega-menu.hover-active > ul > li:hover {
    border-bottom: var(--bd-brand);
  }

  .mega-menu.hover-active > ul > li:hover > a {
    color: var(--text-brand);
  }

  .mega-menu.hover-active > ul > li:hover > a::before {
    width: calc(var(--plus-number-24) - var(--plus-number-04));
    background: var(--gd-main);
  }
}

@media (any-hover: none) {
  #nav-list > li > a:active::before {
    width: calc(var(--percentage-100) - calc(var(--plus-number-16) * 2));
  }

  .mega-menu.hover-active > a:active {
    color: var(--text-brand);
    background: var(--gd-main);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
  }

  .mega-menu.hover-active > a:active.arrow-right::after {
    background-color: var(--color-white);
  }

  .mega-menu.hover-active > a:active::before {
    background-color: var(--bg-brand);
  }

  .mega-menu.hover-active > ul > li:active {
    border-bottom: var(--bd-brand);
  }

  .mega-menu.hover-active > ul > li:active > a {
    color: var(--text-brand);
  }

  .mega-menu.hover-active > ul > li:active > a::before {
    width: calc(var(--plus-number-24) - var(--plus-number-04));
    background: var(--gd-main);
  }
}

@media (width <= 1380px) {
  #header-main > .school-name-logo svg {
    display: none;
  }
}

@media (width <= 1230px) {
  #header-main {
    justify-content: space-between;
  }

  #header-main > .school-name-logo svg {
    display: block;
  }

  #nav-pc {
    display: none;
  }

  #nav-pc.hamburger-menu {
    position: fixed;
    top: 0;
    left: var(--percentage-50);
    display: flex;
    align-items: center;
    justify-content: center;
    width: calc(var(--percentage-100) - calc(var(--plus-number-32) * 2));
    height: 100dvh;
    transform: translate(-50%, 0);
  }

  #nav-pc.hamburger-menu #nav-list {
    flex-flow: column nowrap;
  }

  #nav-list > li > a {
    height: calc(calc(var(--header-height) / 3) * 2);
    font-weight: var(--jp-bold);
  }

  #nav-sp {
    display: flex;
    align-items: center;
    justify-content: center;
  }

  header.nav-bg::after {
    background-color: var(--color-white-85);
    mix-blend-mode: lighten;
  }

  .no-scroll {
    height: 100dvh;
    overflow: hidden;
  }
}

@media (width <= 810px) {
  #header-main {
    height: calc(var(--header-height) - var(--plus-number-16));
    padding: 0 var(--plus-number-16);
  }

  #header-main > .school-name-logo h1 {
    display: none;
  }
}

@media (width <= 550px) {
  #header-main {
    width: calc(var(--percentage-100) - calc(var(--plus-number-32) * 2));
  }
}

/* footer */
footer {
  overflow: hidden;
}

#footer-main {
  position: relative;
  z-index: 1;
  display: flex;
  flex-flow: row wrap;
  align-items: flex-end;
  justify-content: space-between;
  width: calc(var(--percentage-100) - calc(var(--plus-number-64) * 2));
  max-width: 1280px;
  margin-right: auto;
  margin-left: auto;
}

#footer-site-map {
  position: relative;
  order: 2;
  padding: var(--plus-number-64) 0;
}

#footer-site-map::after {
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: -1;
  display: block;
  width: calc(var(--percentage-100) * 3);
  height: var(--percentage-100);
  content: "";
  background: var(--gd-brand);
  border-radius: calc(var(--plus-number-80) * 2) 0 0 0;
  transform: translateX(-128px);
}

#footer-site-map::before {
  position: absolute;
  top: 0;
  right: 0;
  display: block;
  font-family: var(--font-en);
  font-size: var(--fs-55);
  font-weight: var(--en-extralight);
  line-height: var(--lh-100);
  color: var(--thesky-40);
  content: "Site MAP";
  mix-blend-mode: multiply;
  opacity: 0.5;
  transform: rotate(90deg) translateY(-320%);
  transform-origin: left;
}

.site-map {
  display: flex;
  flex-flow: column nowrap;
  gap: var(--plus-number-08);
}

.site-map li > a {
  display: flex;
  flex-flow: row nowrap;
  gap: var(--plus-number-08);
  align-items: center;
  padding: var(--plus-number-04) 0;
  font-size: var(--fs-18);
  font-weight: var(--jp-medium);
  line-height: var(--lh-100);
  color: var(--color-white);
  border-bottom: #ffffff00 solid 1px;
  transition: border-bottom 0.4s ease-in-out;
}

.site-map li > a::before {
  display: block;
  width: var(--plus-number-16);
  height: var(--plus-number-02);
  content: "";
  background-color: var(--thesky-10);
  border-radius: var(--radius-01);
}

#footer-content {
  position: relative;
  z-index: -1;
  display: flex;
  flex-flow: column nowrap;
  gap: var(--plus-number-32);
  align-items: start;
  order: 1;
  width: calc(calc(var(--percentage-100) / 3) * 2);
  max-width: 810px;
  padding: var(--plus-number-64) 0;
}

#footer-content::after {
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: -1;
  display: block;
  width: calc(var(--percentage-100) * 2);
  height: var(--percentage-100);
  content: "";
  background-color: var(--color-white);
  border-radius: 0 calc(var(--plus-number-80) * 2) 0 0;
  transform: translateX(128px);
}

.footer-content {
  display: flex;
  flex-flow: row wrap;
  gap: var(--plus-number-16) var(--plus-number-32);
  width: var(--percentage-100);
  color: var(--aircraft-10);
}

.footer-content > dd {
  display: flex;
  flex-flow: row wrap;
  gap: var(--plus-number-04);
  align-items: center;
}

.footer-content > dd.address::before,
.footer-content > dd.time-am::before,
.footer-content > dd.phone::before,
.footer-content > dd.mail::before {
  width: var(--plus-number-24);
  height: var(--plus-number-24);
}

.footer-content > dd span,
.footer-content > dd time,
.copyright {
  font-family: var(--font-en);
  font-weight: var(--en-medium);
  line-height: var(--lh-100);
  letter-spacing: var(--ls-s);
}

.copyright {
  font-size: var(--fs-10);
  color: var(--aircraft-10);
}

#footer-info {
  column-gap: var(--plus-number-08);
  padding: var(--plus-number-24);
  background-color: var(--runway-100);
  border-radius: var(--radius-16);
}

#footer-info > dt {
  width: calc(var(--percentage-100) / 2);
  padding: var(--plus-number-08) var(--plus-number-16);
  text-align: center;
  background-color: var(--color-white);
}

#footer-info > dd:not(:last-of-type) {
  font-size: var(--fs-24);
  font-weight: var(--en-bold);
}

#footer-link {
  display: flex;
  flex-flow: column wrap;
  gap: var(--plus-number-08);
  align-items: center;
}

@media (any-hover: hover) {
  .site-map li > a:hover {
    border-bottom: var(--bd-site-map);
  }
}

@media (any-hover: none) {
  .site-map li > a:active {
    border-bottom: var(--bd-site-map);
  }
}

@media (width <= 1280px) {
  #footer-site-map::after {
    width: calc(var(--percentage-100) * 2);
    transform: translateX(-80px);
  }

  #footer-content::after {
    transform: translateX(64px);
  }
}

@media (width <= 1080px) {
  #footer-main {
    margin-top: calc(var(--plus-number-80) + var(--plus-number-24));
  }

  #footer-site-map {
    order: 1;
  }

  #footer-site-map::after {
    top: 0;
    width: calc(var(--percentage-100) + calc(var(--plus-number-64) * 2));
    height: calc(var(--percentage-100) * 2);
    transform: translateX(-64px);
  }

  #footer-site-map::before {
    top: 0;
    right: 0;
    transform: rotate(0deg) translateY(0%);
  }

  .site-map {
    flex-flow: row wrap;
    justify-content: flex-end;
  }

  #footer-content {
    align-items: center;
    order: 2;
    width: var(--percentage-100);
    max-width: none;
  }

  #footer-content::after {
    width: calc(var(--percentage-100) + calc(var(--plus-number-64) * 2));
    transform: translateX(64px);
  }
}

@media (width <= 810px) {
  #footer-main {
    margin-top: calc(var(--plus-number-80) + var(--plus-number-40));
  }

  #footer-title {
    justify-content: center;
  }

  #footer-info {
    flex-flow: column nowrap;
    align-items: center;
  }

  #footer-info > dt {
    width: var(--percentage-100);
  }
}

@media (width <= 550px) {
  #footer-main {
    width: calc(var(--percentage-100) - calc(var(--plus-number-32) * 2));
    margin-top: 0;
  }

  #footer-site-map::after {
    width: calc(var(--percentage-100) + calc(var(--plus-number-32) * 2));
    border-radius: var(--plus-number-80) 0 0 0;
    transform: translateX(-32px);
  }

  #footer-content::after {
    width: calc(var(--percentage-100) + calc(var(--plus-number-32) * 2));
    border-radius: 0 var(--plus-number-80) 0 0;
    transform: translateX(32px);
  }
}

/* page first view */
#first-view {
  position: relative;
  top: 0;
}

.first-view-title {
  display: flex;
  flex-flow: column nowrap;
  gap: var(--plus-number-08);
  align-items: center;
  justify-content: center;
  font-size: var(--fs-55);
  font-weight: var(--jp-bold);
  color: var(--color-white);
}

#home-first-view,
#page-first-view {
  position: absolute;
  z-index: 1;
}

#home-first-view {
  top: var(--percentage-50);
  left: var(--percentage-50);
  filter: drop-shadow(0 5px 15px rgb(0 0 0 / 16%));
  transform: translate(-50%, -50%);
}

#home-first-view > span {
  position: absolute;
  cursor: default;
  opacity: 0;
}

#movie-area,
#photo-area {
  position: relative;
  width: calc(var(--percentage-100) - var(--plus-number-32));
  overflow: hidden;
  border-radius: var(--radius-fv-pc);
}

#movie-area {
  height: calc(100lvh - 200px);
  margin-bottom: calc(var(--plus-number-80) * 2);
}

#movie-area::after {
  position: absolute;
  top: 0;
  right: 0;
  display: block;
  width: var(--percentage-100);
  height: var(--percentage-100);
  content: "";
  background-color: rgba(0 0 0 / 16%);
  background-image: radial-gradient(rgba(0 0 0 / 16%) 40%, rgba(0 0 0 / 0%) 41%), radial-gradient(rgba(0 0 0 / 16%) 40%, rgba(0 0 0 / 0%) 41%);
  background-position:
    0 0,
    var(--plus-number-02) var(--plus-number-02);
  background-size: var(--plus-number-04) var(--plus-number-04);
}

#movie {
  position: absolute;
  top: var(--percentage-50);
  left: var(--percentage-50);
  z-index: -3;
  width: 177.7778vh;
  min-width: var(--percentage-100);
  height: 56.25vw;
  min-height: var(--percentage-100);
  transform: translate(-50%, -50%);
}

#page-first-view {
  justify-content: start;
}

#photo-area {
  margin-bottom: var(--plus-number-40);
}

#photo-area::after {
  position: absolute;
  top: 0;
  right: 0;
  display: block;
  width: var(--percentage-100);
  height: var(--percentage-100);
  margin-bottom: var(--plus-number-40);
  content: "";
  background: linear-gradient(185deg, rgb(0 0 0 / 0%) 50%, rgb(0 0 0 / 50%) 85%, rgb(0 0 0 / 80%) 100%);
}

#photo-sp {
  display: none;
}

#photo-pc source,
#photo-pc img,
#photo-sp source,
#photo-sp img {
  object-fit: none;
}

#photo-pc source,
#photo-pc img {
  height: 300px;
}

#photo-sp source,
#photo-sp img {
  height: 200px;
}

@media (width <= 520px) {
  .first-view-title {
    font-size: var(--fs-24);
  }

  #movie-area,
  #photo-area {
    width: calc(var(--percentage-100) - var(--plus-number-16));
    border-radius: var(--radius-fv-sp);
  }

  #movie-area {
    height: calc(100lvh - 250px);
  }

  #home-first-view {
    transform: scale(1.5) translate(-35%, -35%);
  }

  #photo-pc {
    display: none;
  }

  #photo-sp {
    display: block;
  }
}

/* scroll down */
#scroll-down {
  position: absolute;
  right: var(--plus-number-80);
  bottom: var(--percentage-50);
  z-index: 1;
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
}

#scroll-down span {
  position: absolute;
  padding-left: var(--plus-number-04);
  font-family: var(--font-en);
  font-size: var(--fs-24);
  font-weight: var(--en-regular);
  line-height: var(--lh-100);
  color: var(--color-white);
  letter-spacing: var(--ls-l);
  writing-mode: vertical-rl;
}

#scroll-down::after {
  position: absolute;
  width: var(--plus-number-01);
  height: calc(var(--plus-number-80) * 2);
  content: "";
  background: var(--color-white);
}

#scroll-down::before {
  position: absolute;
  left: -3px;
  width: var(--plus-number-08);
  height: var(--plus-number-08);
  content: "";
  background: var(--color-white);
  border-radius: var(--percentage-50);
  animation:
    circle-move 2s ease-in-out infinite,
    circle-move-hide 2s ease-out infinite;
}

@keyframes circle-move {
  0% {
    bottom: var(--plus-number-80);
  }

  100% {
    bottom: calc(var(--mins-number-80) + var(--mins-number-04));
  }
}

@keyframes circle-move-hide {
  0% {
    opacity: 0;
  }

  20% {
    opacity: 1;
  }

  80% {
    opacity: 0.9;
  }

  100% {
    opacity: 0;
  }
}

@media (width <= 1080px) {
  #scroll-down {
    right: var(--plus-number-64);
  }
}

@media (width <= 520px) {
  #scroll-down {
    right: var(--plus-number-32);
  }

  #scroll-down span {
    font-size: var(--fs-18);
  }
}

/* 固定おしらせ */
#important {
  width: calc(var(--percentage-100) - calc(var(--plus-number-64) * 2));
  margin: 0 auto;
  margin-bottom: var(--plus-number-40);
}

.important-notice {
  display: flex;
  align-items: center;
  width: var(--percentage-100);
  height: var(--plus-number-32);
  overflow: hidden;
  background-color: var(--bg-tertiary);
}

.important-notice.thesky {
  background-color: var(--bg-thesky);
}

.important-notice.nature {
  background-color: var(--bg-nature);
}

.important-notice.sun {
  background-color: var(--bg-sun);
}

.important-notice-text {
  display: inline-block;
  padding-left: 100%;
  white-space: nowrap;
  animation: important-animate 16s linear infinite;
}

.important-notice-text > p {
  display: inline-block;
  line-height: var(--lh-100);
  color: var(--text-onfill);
  letter-spacing: var(--ls-m);
}

@keyframes important-animate {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(-100%);
  }
}

@media (width <= 520px) {
  #important {
    width: calc(var(--percentage-100) - calc(var(--plus-number-32) * 2));
  }
}

/* breadcrumb */
#breadcrumb {
  font-size: var(--fs-18);
  font-weight: var(--jp-medium);
  line-height: var(--lh-100);
  color: var(--text-body);
  letter-spacing: var(--ls-s);
}

#breadcrumb ul {
  display: flex;
  flex-flow: row wrap;
  gap: var(--plus-number-16) var(--plus-number-04);
  align-items: center;
  justify-content: flex-end;
}

#breadcrumb li {
  display: flex;
  flex-flow: row nowrap;
  gap: var(--plus-number-04);
  align-items: center;
  justify-content: flex-end;
}

#breadcrumb li:not(:first-of-type)::before {
  content: "／";
}

/* page top */
#page-top {
  position: fixed;
  right: calc(calc(var(--plus-number-24) * 10) + var(--plus-number-16));
  bottom: var(--plus-number-16);
  opacity: 0;
  transform: translateY(100px);
}

#page-top a {
  display: flex;
  flex-flow: column-reverse nowrap;
  align-items: center;
  justify-content: center;
  width: var(--plus-number-56);
  height: var(--plus-number-56);
  font-size: var(--fs-10);
  font-weight: var(--en-medium);
  color: var(--text-brand);
  background: var(--color-white);
  border: var(--bd-brand);
  border-radius: var(--percentage-50);
  box-shadow: var(--drop-shadow-banner);
  transition: all 0.8s;
}

#page-top a.arrow-up::after {
  background-color: var(--bg-brand);
}

@media (any-hover: hover) {
  #page-top a:hover {
    color: var(--color-white);
    background: var(--gd-brand);
  }

  #page-top a:hover.arrow-up::after {
    background-color: var(--color-white);
  }
}

@media (any-hover: none) {
  #page-top a:active {
    color: var(--color-white);
    background: var(--gd-brand);
  }

  #page-top a:active.arrow-up::after {
    background-color: var(--color-white);
  }
}

#page-top.left-move {
  animation: left-anime 0.8s forwards;
  animation-timing-function: cubic-bezier(0.5, -1, 0.5, 2);
}

@keyframes left-anime {
  from {
    opacity: 0;
    transform: translateY(100px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

#page-top.right-move {
  animation: right-anime 0.8s forwards;
  animation-timing-function: cubic-bezier(0.5, -1, 0.5, 2);
}

@keyframes right-anime {
  from {
    opacity: 1;
    transform: translateY(0);
  }

  to {
    opacity: 0;
    transform: translateY(100px);
  }
}

@media (width <= 520px) {
  #page-top {
    right: var(--plus-number-16);
    bottom: var(--plus-number-16);
    transform: translate(100px, 0);
  }

  @keyframes left-anime {
    from {
      opacity: 0;
      transform: translate(100px, 0);
    }

    to {
      opacity: 1;
      transform: translate(0, 0);
    }
  }

  @keyframes right-anime {
    from {
      opacity: 1;
      transform: translate(0, 0);
    }

    to {
      opacity: 0;
      transform: translate(100px, 0);
    }
  }
}

/* follow button */
#follow-button {
  position: fixed;
  right: 0;
  z-index: 2;
  display: flex;
  flex-flow: column wrap;
  gap: var(--plus-number-08);
}

.follow-button {
  display: flex;
  gap: var(--plus-number-08);
  align-items: center;
  justify-content: center;
  width: calc(var(--plus-number-24) * 10);
  padding: var(--plus-number-16);
  font-size: var(--fs-18);
  font-weight: var(--jp-bold);
  line-height: var(--lh-100);
  color: var(--text-onfill);
  background: var(--gd-main);
  border-radius: var(--radius-one-side-l);
  box-shadow: var(--drop-shadow-banner);
}

.follow-button.arrow-right::after {
  background-color: var(--bg-primary);
}

#follow-button .follow-button.thesky {
  background: var(--gd-thesky);
}

#follow-button .follow-button.nature {
  background: var(--gd-nature);
}

#follow-button .follow-button.sun {
  background: var(--gd-sun);
}

@media (width <= 520px) {
  #follow-button {
    display: none;
  }
}

/*
 ** table
*/
#tablepress-advantages-01 > :where(thead, tbody) > * > :where(th, td),
#tablepress-advantages-02 > :where(thead, tbody) > * > :where(th, td),
#tablepress-advantages-03 > :where(thead, tbody) > * > :where(th, td) {
  text-align: center;
}

#tablepress-advantages-01 > :where(thead) > * > th,
#tablepress-advantages-02 > :where(thead) > * > th,
#tablepress-advantages-03 > :where(thead) > * > th,
#tablepress-curriculum-01 > :where(thead) > * > th,
#tablepress-curriculum-02 > :where(thead) > * > th {
  color: var(--text-description);
  background-color: var(--bg-close-nature);
}

#tablepress-advantages-01 > :where(tbody) > * > :where(td),
#tablepress-advantages-02 > :where(tbody) > * > :where(td),
#tablepress-advantages-03 > :where(tbody) > * > :where(td) {
  padding: var(--plus-number-16) 0;
  font-size: var(--fs-18);
  font-weight: var(--jp-medium);
  line-height: var(--lh-100);
  letter-spacing: var(--ls-s);
  vertical-align: middle;
}

#tablepress-curriculum-01 > :where(tbody) > * > :where(td),
#tablepress-curriculum-02 > :where(tbody) > * > :where(td) {
  padding: var(--plus-number-16) 0;
  line-height: var(--lh-100);
  letter-spacing: var(--ls-s);
  vertical-align: middle;
  border-top: var(--bd-item);
}

#tablepress-advantages-01 > :where(tbody) > * > :where(td):first-of-type,
#tablepress-advantages-02 > :where(tbody) > * > :where(td):first-of-type,
#tablepress-advantages-03 > :where(tbody) > * > :where(td):first-of-type {
  font-size: var(--fs-20);
}

#tablepress-curriculum-01 > :where(tbody) > * > :where(td):first-of-type,
#tablepress-curriculum-02 > :where(tbody) > * > :where(td):first-of-type {
  width: calc(var(--plus-number-32) * 10);
  font-size: var(--fs-18);
  font-weight: var(--jp-medium);
  border-right: var(--bd-item);
}

#tablepress-curriculum-01 > :where(tbody) > * > :where(td):last-of-type,
#tablepress-curriculum-02 > :where(tbody) > * > :where(td):last-of-type {
  padding-left: var(--plus-number-16);
}

#tablepress-advantages-01 > :where(tbody) > :where(tr):not(:nth-child(2n)) > :where(td):first-of-type,
#tablepress-advantages-02 > :where(tbody) > :where(tr):not(:nth-child(2n)) > :where(td):first-of-type,
#tablepress-advantages-03 > :where(tbody) > :where(tr):not(:nth-child(2n)) > :where(td):first-of-type {
  color: var(--text-onfill);
  background-color: var(--bg-nature);
}

#tablepress-advantages-01 > :where(tbody) > :where(tr):not(:nth-child(2n + 1)) > :where(td):first-of-type,
#tablepress-advantages-02 > :where(tbody) > :where(tr):not(:nth-child(2n + 1)) > :where(td):first-of-type,
#tablepress-advantages-03 > :where(tbody) > :where(tr):not(:nth-child(2n + 1)) > :where(td):first-of-type {
  font-weight: var(--jp-bold);
  color: var(--text-sun);
}

#tablepress-advantages-01 > :where(tbody) > * > :where(td) > span > span,
#tablepress-advantages-02 > :where(tbody) > * > :where(td) > span > span,
#tablepress-advantages-03 > :where(tbody) > * > :where(td) > span > span {
  font-family: var(--font-en);
  font-size: var(--fs-24);
  font-weight: var(--en-bold);
}

#tablepress-advantages-01 > :where(tbody) > :where(tr):nth-child(2n) > :where(td) > span > span,
#tablepress-advantages-02 > :where(tbody) > :where(tr):nth-child(2n) > :where(td) > span > span,
#tablepress-advantages-03 > :where(tbody) > :where(tr):nth-child(2n) > :where(td) > span > span {
  font-size: var(--fs-28);
}

#tablepress-advantages-01 > :where(tbody) > :where(tr):nth-child(2n) > :where(td) > span > span,
#tablepress-advantages-02 > :where(tbody) > :where(tr):nth-child(2n) > :where(td) > span > span {
  color: var(--text-sun);
}

#tablepress-advantages-01 > :where(tbody) > *:nth-child(2n + 1) > :where(td):nth-child(2),
#tablepress-advantages-02 > :where(tbody) > *:nth-child(2n + 1) > :where(td):nth-child(2),
#tablepress-advantages-03 > :where(tbody) > *:nth-child(2n + 1) > :where(td):nth-child(2) {
  font-weight: var(--jp-bold);
  color: var(--text-nature);
}

#tablepress-advantages-01 > :where(tbody) > * > *,
#tablepress-advantages-02 > :where(tbody) > * > *,
#tablepress-advantages-03 > :where(tbody) > * > * {
  border-top: var(--bd-item);
}

#tablepress-advantages-01 > :where(tbody) > * > *:not(:last-of-type),
#tablepress-advantages-02 > :where(tbody) > * > *:not(:last-of-type),
#tablepress-advantages-03 > :where(tbody) > * > *:not(:last-of-type) {
  border-right: var(--bd-item);
}

#tablepress-advantages-01 > :where(tbody) > :where(tr):last-of-type,
#tablepress-advantages-02 > :where(tbody) > :where(tr):last-of-type,
#tablepress-advantages-03 > :where(tbody) > :where(tr):last-of-type {
  border-bottom: var(--bd-item);
}

@media (width <= 810px) {
  #tablepress-advantages-01 > :where(thead) {
    display: none;
  }

  #tablepress-advantages-01 > :where(tbody) > * > :where(tr) {
    width: 100%;
  }

  #tablepress-advantages-01 > :where(tbody) > * > :where(td) {
    display: block;
    width: 100%;
    padding: var(--plus-number-08) 0;
  }

  #tablepress-advantages-01 > :where(tbody) > * > *:not(:last-of-type) {
    border-right: none;
  }

  #tablepress-advantages-01 > :where(tbody) > *:nth-child(2n) > :where(td):nth-child(n + 2),
  #tablepress-advantages-01 > :where(tbody) > * > :where(td):nth-child(n + 3) {
    padding: 0;
  }

  #tablepress-advantages-01 > :where(tbody) > *:nth-child(2n) > :where(td):nth-child(n + 2) > span,
  #tablepress-advantages-01 > :where(tbody) > * > :where(td):nth-child(n + 3) > span {
    display: flex;
    flex-flow: row nowrap;
    align-items: center;
  }

  #tablepress-advantages-01 > :where(tbody) > *:nth-child(2n) > :where(td):nth-child(n + 2) > span::before,
  #tablepress-advantages-01 > :where(tbody) > * > :where(td):nth-child(n + 3) > span::before {
    display: block;
    width: calc(var(--plus-number-40) * 3);
    padding: var(--plus-number-16) 0;
    margin-right: var(--plus-number-16);
    content: attr(data-th);
    background-color: var(--bg-close-nature);
  }

  #tablepress-curriculum-01 > :where(tbody) > * > :where(td):first-of-type,
  #tablepress-curriculum-02 > :where(tbody) > * > :where(td):first-of-type {
    width: calc(var(--plus-number-16) * 10);
  }
}

/* form */
#contact-formtype {
  display: flex;
  flex-flow: column nowrap;
  gap: var(--plus-number-24);
  align-items: center;
}

.formtype-box,
.formtype-address-box {
  width: var(--percentage-100);
}

.formtype-address-box,
.formtype-ioc-box,
.formtype-ioc {
  display: flex;
  flex-flow: column nowrap;
  gap: var(--plus-number-24);
}

.formtype-address {
  gap: var(--plus-number-24) var(--plus-number-16);
}

.formtype-box > label.field,
.formtype-box > .formtype-address > label.field {
  position: relative;
  top: calc(var(--plus-number-24) - var(--plus-number-02));
  display: flex;
  flex-flow: row nowrap;
  gap: var(--plus-number-08);
  justify-self: end;
  font-size: var(--fs-14);
  font-weight: var(--jp-medium);
  line-height: var(--lh-100);
  text-align: end;
}

.formtype-box > label.field::after {
  display: block;
  font-weight: var(--jp-medium);
  color: var(--form-any);
  content: "任意";
}

.formtype-box > label.field.required::after {
  display: block;
  font-weight: var(--jp-medium);
  color: var(--form-required);
  content: "必須";
}

.formtype-input,
.formtype-input > span {
  display: flex;
  flex-flow: column nowrap;
  gap: var(--plus-number-08);
}

.formtype-input > p:not(.formtype-help) {
  padding: var(--plus-number-16) 0;
  border-bottom: var(--form-border);
}

.formtype-box input[type="text"].text-field,
.formtype-box .field-etctext input[type="text"],
.formtype-box input[type="tel"].text-field,
.formtype-box input[type="email"].text-field,
.formtype-box input[type="date"].calendar-field,
.formtype-box select.selector-field {
  display: flex;
  flex-flow: row wrap;
  align-items: center;
  width: var(--percentage-100);
  height: var(--plus-number-56);
  padding: calc(var(--plus-number-16) - var(--plus-number-04)) var(--plus-number-16);
  font-size: var(--fs-16);
  line-height: var(--lh-100);
  background-color: var(--form-bg);
  border: var(--form-border);
  border-radius: var(--plus-number-08);
}

.formtype-box input[type="date"].calendar-field,
.formtype-box select.selector-field {
  cursor: pointer;
}

::placeholder,
.formtype-box select.selector-field.placeholder {
  color: var(--form-placeholder);
}

.formtype-box input[type="text"].text-field:focus,
.formtype-box .field-etctext input[type="text"]:focus,
.formtype-box input[type="tel"].text-field:focus,
.formtype-box input[type="email"].text-field:focus,
.formtype-box input[type="date"].calendar-field:focus,
.formtype-box select.selector-field:focus {
  border: var(--form-focus);
  outline: none;
}

.formtype-box input[type="text"]:disabled {
  color: var(--text-disabled);
  background-color: var(--form-disabled);
}

select {
  appearance: none;
}

select::-ms-expand {
  display: none;
}

select:invalid.selector-field {
  color: var(--form-placeholder);
}

select.selector-field option {
  color: var(--text-body);
}

select.selector-field option:first-child {
  color: var(--form-placeholder);
}

.formtype-box input[type="date"].calendar-field::-webkit-calendar-picker-indicator {
  filter: var(--form-calendar);
}

.wpcf7-checkbox.check-field,
.wpcf7-radio.radio-field,
.wpcf7-acceptance {
  display: flex;
  flex-flow: row wrap;
  gap: 0 var(--plus-number-16);
  align-items: center;
}

.check-field .wpcf7-list-item,
.radio-field .wpcf7-list-item,
.wpcf7-acceptance .wpcf7-list-item {
  display: block;
  margin: 0;
}

.check-field .wpcf7-list-item label,
.radio-field .wpcf7-list-item label,
.wpcf7-acceptance .wpcf7-list-item label {
  display: flex;
  flex-flow: row nowrap;
  gap: var(--plus-number-08);
  align-items: center;
  padding: var(--plus-number-16) 0;
  font-size: var(--fs-16);
  line-height: var(--lh-100);
  cursor: pointer;
}

.check-field input[type="checkbox"],
.radio-field input[type="radio"],
input[type="checkbox"].check-field {
  position: relative;
  width: var(--plus-number-24);
  height: var(--plus-number-24);
  appearance: none;
  border: var(--form-border);
  transition: all 0.2s ease-in-out;
}

.radio-field .wpcf7-list-item-label::before,
.radio-field .wpcf7-list-item-label::after {
  content: none;
}

.check-field input[type="checkbox"],
input[type="checkbox"].check-field {
  border-radius: var(--radius-04);
}

.check-field input[type="checkbox"]:checked,
input[type="checkbox"].check-field:checked {
  background: var(--form-button);
  border: var(--form-focus);
}

.check-field input[type="checkbox"]:checked::before,
input[type="checkbox"].check-field:checked::before {
  position: absolute;
  top: var(--percentage-50);
  left: var(--percentage-50);
  width: var(--plus-number-08);
  height: var(--plus-number-16);
  content: "";
  border-right: var(--form-checkbox);
  border-bottom: var(--form-checkbox);
  transform: translate(-50%, -60%) rotate(50deg);
}

.check-field .has-free-text {
  flex-basis: var(--percentage-100);
}

.radio-field input[type="radio"] {
  border-radius: var(--percentage-50);
}

.radio-field input[type="radio"]:checked {
  border: var(--form-focus);
}

.radio-field input[type="radio"]:checked::before {
  position: absolute;
  top: var(--percentage-50);
  left: var(--percentage-50);
  width: calc(var(--plus-number-16) - var(--plus-number-04));
  height: calc(var(--plus-number-16) - var(--plus-number-04));
  content: "";
  background: var(--form-button);
  border-radius: var(--percentage-50);
  transform: translate(-50%, -50%);
}

.formtype-help {
  font-size: var(--fs-14);
  line-height: var(--lh-100);
  color: var(--form-any);
}

.wpcf7-not-valid-tip {
  padding: var(--plus-number-08) var(--plus-number-24);
  font-size: var(--fs-14);
  font-weight: var(--jp-medium);
  line-height: var(--lh-100);
  color: var(--text-alert);
  background-color: var(--bg-alert);
  border-radius: var(--radius-corners);
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
  display: flex;
  flex-direction: row;
  justify-content: center;
  width: var(--percentage-100);
  padding: var(--plus-number-16) var(--plus-number-24);
  margin: 0;
  font-size: var(--fs-20);
  font-weight: var(--jp-medium);
  color: var(--form-required);
  background-color: var(--bg-alert);
  border: var(--form-error);
  border-radius: var(--radius-16);
}

.formtype-pp {
  display: flex;
  flex-flow: column nowrap;
  align-items: center;
}

.formtype-button {
  display: flex;
  flex-flow: row wrap;
  gap: var(--plus-number-16);
  align-items: center;
  justify-content: center;
}

.grecaptcha-badge {
  visibility: hidden;
}

@media (width <= 810px) {
  .formtype-box > label.field {
    justify-self: start;
    text-align: start;
  }
}

/* notice */
#notice-archives,
#notice-content,
#notice-side {
  --notice-padding: var(--plus-number-32);
  --notice-radius: var(--radius-32);
  --notice-side-radius: calc(var(--notice-radius) - var(--notice-padding));

  display: flex;
  flex-flow: column nowrap;
  gap: var(--plus-number-32);
  align-self: start;
  padding: var(--notice-padding);
  background-color: var(--bg-modal);
  border-radius: var(--notice-radius);
  box-shadow: var(--drop-shadow-box);
}

.notice-not {
  display: flex;
  flex-flow: column nowrap;
  gap: var(--plus-number-16);
  align-items: center;
}

.notice-side-box,
.notice-side-box > ul {
  display: flex;
  flex-flow: column nowrap;
  gap: var(--plus-number-08);
}

.notice-side-box > h3 {
  font-size: var(--fs-24);
  font-weight: var(--jp-bold);
  color: var(--text-brand);
}

.notice-side-box > ul {
  padding: var(--plus-number-16);
  background-color: var(--bg-secondary);
  border-radius: var(--notice-side-radius);
}

.notice-side-box > ul > li {
  padding-bottom: var(--plus-number-08);
  font-weight: var(--jp-medium);
  line-height: var(--lh-100);
  color: var(--text-brand);
  letter-spacing: var(--ls-s);
  border-bottom: var(--bd-field);
}

#notice-archives .wp-pagenavi {
  display: flex;
  gap: var(--plus-number-04);
  align-items: center;
  justify-content: center;
}

#notice-archives .wp-pagenavi span,
#notice-archives .wp-pagenavi a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: var(--plus-number-32);
  padding: var(--plus-number-08);
  font-family: var(--font-en);
  font-weight: var(--en-medium);
  line-height: var(--lh-100);
  color: var(--text-brand);
  background-color: var(--bg-secondary);
}

#notice-archives .wp-pagenavi span {
  color: var(--text-onfill);
  background-color: var(--bg-brand);
}

.notice-kinds {
  display: flex;
  flex-flow: row wrap;
  align-items: center;
  justify-content: space-between;
  padding-bottom: var(--plus-number-08);
  border-bottom: var(--bd-divider);
}

.notice-kinds > li > time {
  font-family: var(--font-en);
  font-size: var(--fs-20);
  line-height: var(--lh-100);
  color: var(--text-description);
}

.notice-page {
  display: flex;
  flex-flow: row wrap;
  align-items: center;
  justify-content: space-between;
  border-top: var(--bd-divider);
  border-bottom: var(--bd-divider);
}

.notice-page li {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  justify-content: center;
  width: calc(var(--plus-number-16) * 7);
  padding: var(--plus-number-16) 0;
  line-height: var(--lh-100);
}

#notice-article {
  display: flex;
  flex-flow: column nowrap;
}

#notice-article > h1 {
  margin-bottom: var(--plus-number-32);
  font-weight: var(--jp-bold);
  color: var(--text-description);
}

#notice-article > h2 {
  padding: var(--plus-number-08) var(--plus-number-16);
  margin-bottom: var(--plus-number-24);
  font-weight: var(--jp-medium);
  background-color: var(--bg-secondary);
  border-left: var(--bg-brand) solid var(--plus-number-04);
}

#notice-article > h3 {
  padding-bottom: var(--plus-number-08);
  margin-bottom: var(--plus-number-24);
  font-weight: var(--jp-medium);
  border-bottom: var(--bd-brand);
}

#notice-article > h4 {
  margin-bottom: var(--plus-number-16);
  font-weight: var(--jp-bold);
  color: var(--text-brand);
}

#notice-article > ol {
  counter-reset: listitem;
}

#notice-article > ul > li,
#notice-article > ol > li {
  position: relative;
  padding-left: var(--plus-number-16);
}

#notice-article > ul > li::before,
#notice-article > ol > li::before {
  position: absolute;
  top: var(--plus-number-02);
  left: 0;
  font-family: var(--font-en);
  font-weight: var(--en-bold);
  color: var(--text-item);
}

#notice-article > ul > li::before {
  content: "・";
}

#notice-article > ol > li::before {
  content: counters(listitem, ".") ".";
  counter-increment: listitem;
}

#notice-article > figure {
  margin-bottom: var(--plus-number-24);
}

#notice-article > blockquote {
  position: relative;
  display: flex;
  flex-flow: column nowrap;
  gap: var(--plus-number-08);
  padding: var(--plus-number-24);
  background-color: var(--bg-secondary);
}

#notice-article > blockquote::before {
  position: absolute;
  top: var(--mins-number-08);
  left: var(--mins-number-04);
  display: inline-block;
  width: var(--plus-number-32);
  height: var(--plus-number-32);
  content: "";
  background-color: var(--bg-brand);
  -webkit-mask-image: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 24 24"><path d="M0,9.9c0-3.5,2.9-6.4,6.4-6.4h0.4c0.9,0,1.7,0.8,1.7,1.7S7.8,6.9,6.9,6.9H6.4c-1.7,0-3,1.3-3,3v0.4h3.4c1.9,0,3.4,1.5,3.4,3.4v3.4c0,1.9-1.5,3.4-3.4,3.4H3.4C1.5,20.6,0,19,0,17.1V9.9z M13.7,9.9c0-3.5,2.9-6.4,6.4-6.4h0.4c0.9,0,1.7,0.8,1.7,1.7s-0.8,1.7-1.7,1.7h-0.4c-1.7,0-3,1.3-3,3v0.4h3.4c1.9,0,3.4,1.5,3.4,3.4v3.4c0,1.9-1.5,3.4-3.4,3.4h-3.4c-1.9,0-3.4-1.5-3.4-3.4V9.9z"/></svg>');
  mask-image: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 24 24"><path d="M0,9.9c0-3.5,2.9-6.4,6.4-6.4h0.4c0.9,0,1.7,0.8,1.7,1.7S7.8,6.9,6.9,6.9H6.4c-1.7,0-3,1.3-3,3v0.4h3.4c1.9,0,3.4,1.5,3.4,3.4v3.4c0,1.9-1.5,3.4-3.4,3.4H3.4C1.5,20.6,0,19,0,17.1V9.9z M13.7,9.9c0-3.5,2.9-6.4,6.4-6.4h0.4c0.9,0,1.7,0.8,1.7,1.7s-0.8,1.7-1.7,1.7h-0.4c-1.7,0-3,1.3-3,3v0.4h3.4c1.9,0,3.4,1.5,3.4,3.4v3.4c0,1.9-1.5,3.4-3.4,3.4h-3.4c-1.9,0-3.4-1.5-3.4-3.4V9.9z"/></svg>');
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}

#notice-article > blockquote > cite {
  font-size: var(--fs-14);
  line-height: var(--lh-100);
  color: var(--text-item);
  text-align: right;
}

@media (width <= 520px) {
  #notice-archives,
  #notice-content,
  #notice-side {
    --notice-padding: var(--plus-number-24);
  }
}
