@charset "utf-8";

/* ----------------------------------------------------
		追加
---------------------------------------------------- */

.js-anime-blur {
  filter: blur(50px);
}
.js-anime-blur.js-anime-on {
  animation: animeBlurIn 2.5s ease-out forwards;
}
@keyframes animeBlurIn {
  0% {
    filter: blur(50px);
  }
  100% {
    filter: blur(0);
  }
}

@keyframes flash {
  0%,25%,35%,45%,50%,80%,100%{
    opacity: 1;
  }
  30%{
    opacity: 0;
  }
  40%{
    opacity: 0;
  }
}
.neon-flicker {
  --neon-duration: 6s;
  --neon-rgb: 255, 244, 190;
  --neon-glow-soft: 1.12;
  --neon-glow-strong: 1.28;
  --neon-glow-bloom-soft: 0 0 8px rgba(var(--neon-rgb), 0.32),
    0 0 20px rgba(var(--neon-rgb), 0.16);
  --neon-glow-bloom-strong: 0 0 10px rgba(var(--neon-rgb), 0.82),
    0 0 24px rgba(var(--neon-rgb), 0.58),
    0 0 42px rgba(var(--neon-rgb), 0.4);
  display: inline-block;
  transform-origin: center;
  will-change: opacity, filter;
  backface-visibility: hidden;
  animation: neonFlicker var(--neon-duration) ease-in-out infinite;
}

@keyframes neonFlicker {
  0% {
    opacity: 1;
    filter: brightness(0.95) saturate(1) drop-shadow(0 0 0 rgba(var(--neon-rgb), 0));
  }
  12% {
    opacity: 0.98;
    filter: brightness(1.05) saturate(1.05) drop-shadow(0 0 9px rgba(var(--neon-rgb), 0.36))
      drop-shadow(var(--neon-glow-bloom-soft));
  }
  22% {
    opacity: 1;
    filter: brightness(var(--neon-glow-soft)) saturate(1.1) drop-shadow(0 0 12px rgba(var(--neon-rgb), 0.48))
      drop-shadow(var(--neon-glow-bloom-soft));
  }
  23.4% {
    opacity: 1;
    filter: brightness(var(--neon-glow-strong)) saturate(1.24) drop-shadow(var(--neon-glow-bloom-strong));
    animation-timing-function: steps(1, end);
  }
  23.5% {
    opacity: 0.58;
    filter: brightness(0.82) saturate(0.95) drop-shadow(0 0 3px rgba(var(--neon-rgb), 0.1));
    animation-timing-function: linear;
  }
  24.5% {
    opacity: 1;
    filter: brightness(var(--neon-glow-strong)) saturate(1.26) drop-shadow(var(--neon-glow-bloom-strong));
    animation-timing-function: steps(1, end);
  }
  24.6% {
    opacity: 0.52;
    filter: brightness(0.78) saturate(0.92) drop-shadow(0 0 2px rgba(var(--neon-rgb), 0.08));
    animation-timing-function: linear;
  }
  26% {
    opacity: 1;
    filter: brightness(var(--neon-glow-strong)) saturate(1.28) drop-shadow(var(--neon-glow-bloom-strong));
    animation-timing-function: steps(1, end);
  }
  26.1% {
    opacity: 1;
    filter: brightness(1.2) saturate(1.2) drop-shadow(0 0 0 rgba(var(--neon-rgb), 0));
    animation-timing-function: linear;
  }
  29.43% {
    opacity: 0.2;
    filter: brightness(0.95) saturate(1) drop-shadow(0 0 0 rgba(var(--neon-rgb), 0));
    animation-timing-function: steps(1, end);
  }
  29.53% {
    opacity: 0.95;
    filter: brightness(1.03) saturate(1.04) drop-shadow(0 0 8px rgba(var(--neon-rgb), 0.3))
      drop-shadow(var(--neon-glow-bloom-soft));
    animation-timing-function: linear;
  }
  32% {
    opacity: 1;
    filter: brightness(1.16) saturate(1.16) drop-shadow(0 0 10px rgba(var(--neon-rgb), 0.36))
      drop-shadow(var(--neon-glow-bloom-strong));
  }
  56% {
    opacity: 0.99;
    filter: brightness(1.08) saturate(1.08) drop-shadow(0 0 11px rgba(var(--neon-rgb), 0.44));
  }
  57.8% {
    opacity: 0.9;
    filter: brightness(0.26) saturate(0.86) drop-shadow(0 0 2px rgba(var(--neon-rgb), 0.06));
    animation-timing-function: steps(1, end);
  }
  58.2% {
    opacity: 0.92;
    filter: brightness(0.4) saturate(0.9) drop-shadow(0 0 2px rgba(var(--neon-rgb), 0.09));
    animation-timing-function: steps(1, end);
  }
  58.3% {
    opacity: 0.98;
    filter: brightness(1.24) saturate(1.22) drop-shadow(0 0 12px rgba(var(--neon-rgb), 0.42))
      drop-shadow(var(--neon-glow-bloom-strong));
    animation-timing-function: steps(1, end);
  }
  59.13% {
    opacity: 0.9;
    filter: brightness(0.18) saturate(0.82) drop-shadow(0 0 1px rgba(var(--neon-rgb), 0.04));
    animation-timing-function: steps(1, end);
  }
  59.23% {
    opacity: 1;
    filter: brightness(1.3) saturate(1.28) drop-shadow(var(--neon-glow-bloom-strong));
    animation-timing-function: steps(1, end);
  }
  60.07% {
    opacity: 0.88;
    filter: brightness(0.16) saturate(0.8) drop-shadow(0 0 1px rgba(var(--neon-rgb), 0.03));
    animation-timing-function: steps(1, end);
  }
  60.17% {
    opacity: 0.98;
    filter: brightness(1.26) saturate(1.24) drop-shadow(var(--neon-glow-bloom-strong));
    animation-timing-function: steps(1, end);
  }
  61.63% {
    opacity: 0.92;
    filter: brightness(0.42) saturate(0.9) drop-shadow(0 0 2px rgba(var(--neon-rgb), 0.08));
    animation-timing-function: steps(1, end);
  }
  62.2% {
    opacity: 0.98;
    filter: brightness(1.2) saturate(1.2) drop-shadow(var(--neon-glow-bloom-strong));
    animation-timing-function: steps(1, end);
  }
  62.8% {
    opacity: 0.9;
    filter: brightness(0.18) saturate(0.8) drop-shadow(0 0 1px rgba(var(--neon-rgb), 0.03));
    animation-timing-function: steps(1, end);
  }
  63% {
    opacity: 0.98;
    filter: brightness(1.16) saturate(1.16) drop-shadow(0 0 10px rgba(var(--neon-rgb), 0.36))
      drop-shadow(var(--neon-glow-bloom-strong));
    animation-timing-function: steps(1, end);
  }
  63.9% {
    opacity: 0.9;
    filter: brightness(0.28) saturate(0.84) drop-shadow(0 0 1px rgba(var(--neon-rgb), 0.05));
    animation-timing-function: steps(1, end);
  }
  64.45% {
    opacity: 0.97;
    filter: brightness(1.08) saturate(1.12) drop-shadow(0 0 8px rgba(var(--neon-rgb), 0.3))
      drop-shadow(var(--neon-glow-bloom-soft));
    animation-timing-function: steps(1, end);
  }
  70% {
    opacity: 1;
    filter: brightness(0.36) saturate(0.88) drop-shadow(0 0 2px rgba(var(--neon-rgb), 0.08));
    animation-timing-function: steps(1, end);
  }
  72% {
    opacity: 0.56;
    filter: brightness(0.8) saturate(0.98) drop-shadow(0 0 5px rgba(var(--neon-rgb), 0.18))
      drop-shadow(var(--neon-glow-bloom-soft));
  }
  73% {
    opacity: 1;
    filter: brightness(1.16) saturate(1.16) drop-shadow(0 0 10px rgba(var(--neon-rgb), 0.36))
      drop-shadow(var(--neon-glow-bloom-strong));
  }
  94% {
    opacity: 0.86;
    filter: brightness(0.98) saturate(1.02) drop-shadow(0 0 4px rgba(var(--neon-rgb), 0.14));
  }
  100% {
    opacity: 1;
    filter: brightness(0.95) saturate(1) drop-shadow(0 0 4px rgba(var(--neon-rgb), 0.08));
  }
}

.neon-flicker-simple {
  --neon-duration: 6s;
  --neon-rgb: 255, 244, 190;
  --neon-glow-soft: 1.1;
  --neon-glow-strong: 1.28;
  --neon-glow-bloom-soft: 0 0 8px rgba(var(--neon-rgb), 0.3),
    0 0 18px rgba(var(--neon-rgb), 0.15);
  --neon-glow-bloom-strong: 0 0 10px rgba(var(--neon-rgb), 0.82),
    0 0 22px rgba(var(--neon-rgb), 0.56),
    0 0 38px rgba(var(--neon-rgb), 0.36);
  display: inline-block;
  transform-origin: center;
  will-change: opacity, filter;
  backface-visibility: hidden;
  animation: neonFlickerSimple var(--neon-duration) ease-in-out infinite;
}
@keyframes neonFlickerSimple {
  0% {
    opacity: 1;
    filter: brightness(1) saturate(1) drop-shadow(0 0 0 rgba(var(--neon-rgb), 0));
  }
  27.5% {
    opacity: 0.98;
    filter: brightness(var(--neon-glow-strong)) saturate(1.22) drop-shadow(var(--neon-glow-bloom-strong));
    animation-timing-function: steps(1, end);
  }
  28% {
    opacity: 1;
    filter: brightness(var(--neon-glow-strong)) saturate(1.24) drop-shadow(var(--neon-glow-bloom-strong));
    animation-timing-function: steps(1, end);
  }
  28.1% {
    opacity: 0.9;
    filter: brightness(0.22) saturate(0.82) drop-shadow(0 0 1px rgba(var(--neon-rgb), 0.04));
    animation-timing-function: steps(1, end);
  }
  28.77% {
    opacity: 1;
    filter: brightness(var(--neon-glow-strong)) saturate(1.22) drop-shadow(var(--neon-glow-bloom-strong));
    animation-timing-function: steps(1, end);
  }
  30% {
    opacity: 0.9;
    filter: brightness(0.2) saturate(0.8) drop-shadow(0 0 1px rgba(var(--neon-rgb), 0.03));
    animation-timing-function: steps(1, end);
  }
  30.54% {
    opacity: 0.98;
    filter: brightness(1.14) saturate(1.14) drop-shadow(0 0 9px rgba(var(--neon-rgb), 0.34))
      drop-shadow(var(--neon-glow-bloom-strong));
    animation-timing-function: linear;
  }
  32.87% {
    opacity: 0.96;
    filter: brightness(1.02) saturate(1.06) drop-shadow(0 0 7px rgba(var(--neon-rgb), 0.26))
      drop-shadow(var(--neon-glow-bloom-soft));
    animation-timing-function: linear;
  }
  33.5% {
    opacity: 1;
    filter: brightness(var(--neon-glow-strong)) saturate(1.22) drop-shadow(0 0 5px rgba(var(--neon-rgb), 0.18));
  }
  34.5% {
    opacity: 1;
    filter: brightness(0.78) saturate(0.96) drop-shadow(var(--neon-glow-bloom-strong));
  }
  35% {
    opacity: 1;
    filter: brightness(1) saturate(1) drop-shadow(0 0 0 rgba(var(--neon-rgb), 0));
  }
  100% {
    opacity: 1;
    filter: brightness(1) saturate(1) drop-shadow(0 0 0 rgba(var(--neon-rgb), 0));
  }
}

/* 共通 */
.only-sp {
  display: inline;
}
@media screen and (min-width: 768px) {
  .only-sp {
    display: none;
  }
}
.only-pc {
  display: none;
}
@media screen and (min-width: 768px) {
  .only-pc {
    display: inline;
  }
}
.c-btn {
  padding: 1.2em 1.8em;
  transition: background-color .3s ease;
}
.c-btn._external {
  background-size: 18px auto;
  padding: 1.2em 3em;
}
.c-area {
  gap: 0 8px;
}
.c-category p {
  font-size: 1.3rem;
  font-weight: 500;
}
.c-mokuji .mokuji-item {
  height: 110px;
}
@media screen and (min-width: 768px) {
  .c-mokuji .mokuji-item {
    height: 180px;
  }
}
.header-main {
  height: auto;
}
.header-logo {
  max-width: 50dvw;
}
.header-box .header-menu {
  max-width: 6em;
  cursor: pointer;
  transition: background-color .3s ease;
}
@media(any-hover: hover) {
  .header-box .header-menu:hover {
    background: #daff4f;
  }
}
@media(hover: none) {
  .header-box .header-menu:active {
    background: #daff4f;
  }
}
.nav-menu .nav-close-txt {
  cursor: pointer;
  transition: color .3s ease, background-color .3s ease;
}
@media(any-hover: hover) {
  .nav-menu .nav-close-txt:hover {
    background-color: #fff;
  }
}
@media(hover: none) {
  .nav-menu .nav-close-txt:active {
    background-color: #fff;
  }
}
.nav-menu .nav-menu-main ul li a {
  transition: background-color .3s ease;
}
@media(any-hover: hover) {
  .nav-menu .nav-menu-main ul li a:hover {
    background: #e8eaf3 url("../img/common/ico_nav_arrow.svg") no-repeat right 15px center / 8px auto;
  }
}
@media(hover: none) {
  .nav-menu .nav-menu-main ul li a:active {
    background: #e8eaf3 url("../img/common/ico_nav_arrow.svg") no-repeat right 15px center / 8px auto;
  }
}
._detail .detail-top .detail-wrap {
   padding-left: 1em;
}
@media screen and (min-width: 768px) {
  ._detail .detail-top .detail-wrap {
    padding-left: 1.5em;
  }
}
._detail .detail-top .detail-copy {
  line-height: 1.4;
}
._detail .detail-top .detail-copy:has(+ .detail-tagline) {
  margin-bottom: 8px;
}
._detail .detail-top .detail-tagline {
  font-size: 1.347rem;
  font-weight: bold;
  line-height: 1.5;
  margin-bottom: 1em;
}
@media screen and (min-width: 768px) {
  ._detail .detail-top .detail-tagline {
    font-size: 1.6rem;
  }
}
.home-about {
  display: grid;
  place-content: center;
  padding-bottom: 6em;
  margin: 0;
}
@media screen and (min-width: 768px) {
  .home-about {
    aspect-ratio: 7 / 5;
  }
}
.home-about .inner {
  padding: 0 0 50px;
}
.home-about dl {
  width: fit-content;
  padding-inline: 1em;
  margin: auto;
}
@media screen and (min-width: 768px) {
  .home-about dl {
    width: 100%;
    max-width: fit-content;
  }
}
.home-about dl dt {
  animation-delay: .5s;
  animation-duration: .7s;
}
.home-about dl dd {
  font-size: 1.8rem;
  font-weight: bold;
  line-height: 2.2;
  animation-delay: .5s;
  animation-duration: 1s;
}
.home-about .about-ttl {
  max-width: unset;
  font-size: 3.593rem;
  line-height: 1.2;
  overflow-wrap: anywhere;
  word-break: keep-all;
  padding-inline: 1em;
  animation-duration: 1s;
  margin-bottom: 1em;
}
@media screen and (min-width: 768px) {
  .home-about .about-ttl {
    font-size: 3.7rem;
  }
}
@media screen and (min-width: 1024px) {
  .home-about .about-ttl {
    font-size: clamp(3rem, -1.786rem + 7.48vw, 7.188rem);
    padding-inline: 1.5em;
    margin-bottom: 1em;
  }
}
.home-about figure {
  position: absolute;
  top: min(-280px, -55%);
  left: 0;
}
@media screen and (min-width: 768px) {
  .home-about figure {
    inset: 0;
  }
}
.home-about .about-main {
  position: relative;
  min-height: auto;
}
.home-about figure img.w-full {
  height: 100%;
  object-fit: cover;
}
@media screen and (min-width: 1024px) {
  .home-enjoy {
    background-size: 308px auto;
  }
}
@media screen and (min-width: 768px) {
  .home-enjoy .enjoy-bg::before {
    width: calc(100% - 90px);
  }
}
.home-enjoy .enjoy-main .enjoy-con a figure {
  margin-bottom: .8em;
}
.home-enjoy .enjoy-main .enjoy-con a .enjoy-copy {
  font-size: 1.909rem;
}
.home-enjoy .enjoy-main .enjoy-top .enjoy-icon-03 {
  max-width: unset;
  width: min(156px, 42%);
}
.home-enjoy .enjoy-main .enjoy-top .flex-1 {
  margin-right: auto;
  animation-duration: .8s;
}
.home-search {
  min-height: 400px;
}
@media screen and (min-width: 768px) {
  .home-search {
    max-height: 925px;
  }
}
.home-search .search-ttl {
  max-width: unset;
  width: min(1187px, 85%);
}
.home-modelcourse .mc-icon {
  width: min(54%, 38dvw);
}
@media screen and (min-width: 768px) {
  .home-modelcourse .mc-icon {
    width: 406px;
  }
}
.home-event .event-main .event-icon {
  max-width: unset;
  width: min(13dvw, 72px);
}
.home-event .event-main .event-heading {
  animation-duration: .8s;
}
.home-event .event-main .event-ttl {
  max-width: unset;
  width: min(228px, 40dvw);
  animation-duration: .8s;
}
.home-modelcourse .mc-main .mc-top .mc-icon-02 {
  max-width: unset;
  width: min(156px, 42%);
}
.home-modelcourse .mc-main .mc-top .flex-1 {
  margin-right: auto;
  animation-duration: .8s;
}
.home-map .map-heading {
  font-size: 2.021rem;
  animation-duration: .8s;
}
@media screen and (min-width: 768px) {
  .home-map .map-heading {
    font-size: 2.4rem;
  }
}
.home-map .map-ttl {
  animation-duration: .8s;
}
.home-search .search-lead {
  font-weight: bold;
  line-height: 2.2;
}
@media screen and (min-width: 768px) {
  .home-search .search-lead {
    max-width: unset;
    text-align: center;
  }
}
._idx .search-main .search-nav .tabmenu {
  align-items: stretch;
}
._idx .search-main .search-nav .tabmenu li {
  height: auto;
  place-content: center;
  font-size: 1.3rem;
  line-height: 1.3;
  border: 1px solid transparent;
  padding: 1em .5em;
}
@media screen and (min-width: 768px) {
  ._idx .search-main .search-nav .tabmenu li {
    width: max(250px, 25.625%);
    font-size: 1.8rem;
    min-height: 85px;
  }
}
._idx .search-main .search-nav .tabmenu li:has(a) {
  padding: 0;
}
.tabmenu li .tab-link {
  place-content: center;
}
._idx .search-top p {
  max-width: unset;
  width: fit-content;
  margin: auto;
}
._idx .search-main .search-con .result-list li .result-heading {
  font-size: 1.8rem;
}
@media screen and (min-width: 768px) {
  .header-box {
    padding-left: 1em;
  }
}
.header-box .header-menu span {
  font-size: min(17px, 1.4rem);
}
.header-box .header-language .language-ttl a span {
  display: block;
  transition: color .3s ease;
}
@media(any-hover: hover) {
  .header-box .header-language .language-ttl a:hover span {
    color: #daff4f;
  }
}
@media(hover: none) {
  .header-box .header-language .language-ttl a:active span {
    color: #daff4f;
  }
}
.header-box .header-language .language-ttl {
  gap: 5px;
  padding-inline: .8em 0;
}
@media screen and (min-width: 768px) {
  .header-box .header-language .language-ttl {
    gap: 10px;
  }
}
.header-box .header-language .language-ttl span._active {
  color: #b9b9b9;
  cursor: not-allowed;
}
._idx .search-main .search-con .result-list {
  gap: 4em;
}
@media screen and (min-width: 768px) {
  ._idx .search-main .search-con .result-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  }
}
._idx .search-main .search-con .result-list figure {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #333;
}
@media screen and (min-width: 768px) {
  ._idx .search-main .search-con .result-list li {
    width: auto;
  }
}
._idx .search-main .search-con .result-list._event li .c-category {
  margin-bottom: .5em;
}
._idx .search-main .search-con .result-list._event li .result-genre {
  margin-bottom: 0;
}
._idx .search-main .search-nav .tabmenu li.active, ._idx .search-main .search-nav .tabmenu li:hover {
  border-bottom: 1px solid #1f1f1f;
}
._idx .search-main .search-con .result-list._event .result-heading {
  margin-bottom: .3em;
}
.footer .footer-box {
  gap: 4em 1em;
}
@media screen and (min-width: 1200px) {
  .footer .footer-box {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media screen and (min-width: 768px) {
  .footer .footer-in {
    max-width: 1320px;
    padding-inline: 20px;
  }
}
.footer .footer-main ul li a {
  font-weight: bold;
  transition: color .3s ease;
}
@media screen and (min-width: 768px) {
  .footer .footer-main ul li a {
    font-size: 1.8rem;
  }
}
@media(any-hover: hover) {
  .footer .footer-main ul li a:hover {
    color: #daff4f;
    text-decoration: underline;
  }
}
@media(hover: none) {
  .footer .footer-main ul li a:active {
    color: #daff4f;
    text-decoration: underline;
  }
}
.c-detailspot .ds-main .ds-area {
  min-width: 6em;
  width: fit-content;
  line-height: 1.2;
  padding: 5px 8px;
}
@media screen and (min-width: 768px) {
  .c-detailspot .ds-main .ds-detail dl {
    flex-direction: row;
    margin-bottom: 5px;
  }
}
.c-detailspot .ds-main .ds-detail dl {
  margin-bottom: 1em;
  flex-direction: column;
}
._detail .detail-main .sidebar .side-wrap .side-search {
  border-top: none;
}
._detail .detail-main .sidebar .side-wrap:has(.side-link) .side-search {
  border-top: 1px solid #fff;
}
._detail .detail-main .sidebar .side-wrap .side-search p a .ico {
  width: 2.2rem;
  overflow-wrap: anywhere;
  word-break: auto-phrase;
}
._detail .detail-main .sidebar .side-wrap .side-ttl .ico-reco {
  font-size: 1.5em;
}
._detail .detail-main .sidebar .side-wrap .side-link li a {
  transition: color .3s ease;
}
@media(any-hover: hover) {
  ._detail .detail-main .sidebar .side-wrap .side-link li a:hover {
    color: #daff4f;
    text-decoration: underline;
  }
}
@media(hover: none) {
  ._detail .detail-main .sidebar .side-wrap .side-link li a:active {
    color: #daff4f;
    text-decoration: underline;
  }
}
._detail .detail-main .sidebar .side-wrap .side-search p a span {
  transition: color .3s ease;
}
@media(any-hover: hover) {
  ._detail .detail-main .sidebar .side-wrap .side-search p a:hover span {
    color: #daff4f;
    text-decoration: underline;
  }
}
@media(hover: none) {
  ._detail .detail-main .sidebar .side-wrap .side-search p a:active span {
    color: #daff4f;
    text-decoration: underline;
  }
}
._detail .detail-main .sidebar .side-wrap .side-reco li a p {
  transition: color .3s ease;
}
@media(any-hover: hover) {
  ._detail .detail-main .sidebar .side-wrap .side-reco li a:hover p {
    color: #daff4f;
    text-decoration: underline;
  }
}
@media(hover: none) {
  ._detail .detail-main .sidebar .side-wrap .side-reco li a:active p {
    color: #daff4f;
    text-decoration: underline;
  }
}
.pagettl .pagettl-h {
  max-width: 1320px;
  margin: auto;
}
@media screen and (min-width: 768px) {
  .pagettl .pagettl-h {
    padding-inline: 20px;
  }
}
@media screen and (min-width: 768px) {
  .pagettl {
    padding-inline: 0;
  }
}
._idx .search-top {
  padding: 60px 0 min(100px, 15dvw);
}
._detail .detail-top {
  background: linear-gradient(180deg, #3a1468 0%, #3a1468 30dvw, #000000 30dvw, #000000 100%);
}
@media screen and (min-width: 768px) {
  ._detail .detail-top {
    padding-bottom: 70px;
    background: linear-gradient(180deg, #3a1468 0%, #3a1468 30%, #000000 30%, #000000 100%);
  }
}
._detail .detail-top .detail-lead {
  font-size: 1.6rem;
  line-height: 1.8;
}
@media screen and (min-width: 768px) {
  ._detail .detail-top .detail-lead {
    font-size: 1.8rem;
  }
}
._detail .detail-main .content .content-in .c-heading {
  padding: 10px 10px 10px 2.5em;
}
@media screen and (min-width: 768px) {
  ._detail .detail-main .content .content-in .c-heading {
    padding: 10px 10px 10px 70px;
  }
}
._detail .detail-top .detail-pagettl figure {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: rgba(30 30 30 / 0.7);
  border-radius: 1em;
}
._detail .detail-top figure img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  border-radius: unset;
}
._detail .detail-top .detail-pagettl {
  margin: 0 auto min(80px, 9dvw);
}
._detail._bgbk .detail-main._bgbk .content-in .c-txt:has(iframe) {
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 4;
}
._detail._bgbk .detail-main._bgbk .content-in .c-txt iframe {
  width: 100%;
  height: 100%;
}
.c-heading_line span {
  display: block;
  background-color: #daff4f;
}
._detail .detail-main .sidebar {
  display: flex;
  justify-content: center;
  margin-top: 3em;
}
@media screen and (min-width: 1024px) {
  ._detail .detail-main .sidebar {
    margin-top: 0;
  }
}
._detail .detail-main .sidebar .side-wrap {
  width: fit-content;
  margin: 0;
}
._detail .detail-main .sidebar .side-wrap .side-reco li a p {
  width: fit-content;
  font-weight: bold;
  font-size: 1.6rem;
  margin: auto;
}
._detail .detail-main .sidebar .side-wrap .side-reco li a figure {
  width: min(380px, 90%);
  max-width: unset;
  height: auto;
  aspect-ratio: 4 / 3;
  border-radius: 10px;
  overflow: hidden;
  background: #333;
}
._detail .detail-main .sidebar .side-wrap .side-reco li a figure img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
._detail .detail-main .sidebar .side-wrap .side-reco li a {
  padding: 2em;
}
._detail .detail-main .sidebar .side-wrap .side-logo ul {
  place-content: center;
}
._detail._bgbk .detail-main .sidebar .side-wrap .side-box {
  font-weight: bold;
}
._detail._bgbk .detail-main .sidebar .side-wrap .side-box:empty {
  border: none;
  margin-bottom: 0 !important;
}
._detail .detail-main .sidebar .side-wrap .side-logo ul a {
  transition: opacity .3s ease;
}
@media(any-hover: hover) {
  ._detail .detail-main .sidebar .side-wrap .side-logo ul a:hover {
    opacity: .8;
  }
}
@media(hover: none) {
  ._detail .detail-main .sidebar .side-wrap .side-logo ul a:active {
    opacity: .8;
  }
}
._detail .detail-main .sidebar .side-wrap .side-ttl {
  font-size: 2rem;
  gap: .5em;
  line-height: 1.3;
  padding-inline: 1em;
}
.home-picup {
  background: #daff4f;
  margin-bottom: 4em;
}
@media screen and (min-width: 768px) {
  .home-picup {
    margin: 0;
    right: 2em;
    bottom: 5.5em;
    top: unset;
  }
}
.home-picup .pickup-bnr-swiper {
  position: absolute;
  inset: 0;
  overflow: hidden;
  margin-inline: 1em;
}
.home-picup .pickup-bnr-swiper .slide-btn {
  position: absolute;
  top: 50%;
  width: .5em;
  height: 1em;
  cursor: pointer;
  z-index: 10;
}
.home-picup .pickup-bnr-swiper .pickup-slide-btn-prev {
  left: 0;
  rotate: 180deg;
}
.home-picup .pickup-bnr-swiper .pickup-slide-btn-next {
  right: 0;
}
.home-picup .pickup-bnr-swiper .swiper-pagination-bullet-active {
  background: #390f50;
}
.home-picup .pickup-bnr-swiper .swiper-pagination {
  padding-inline: 4em;
  line-height: 0.4;
}
@media screen and (min-width: 768px) {
  .home-picup .pickup-bnr-swiper .swiper-pagination {
    padding-inline: 3em;
  }
}
@media screen and (min-width: 768px) {
  .home-picup .pickup-bnr-swiper .swiper-pagination .swiper-pagination-bullet {
    width: inhert;
    height: inherit;
    margin: 0 3px;
  }
}
.home-picup .pickup-bnr-swiper .swiper-pagination .swiper-pagination-bullet {
  width: .4em;
  height: .4em;
  margin: 0 2.5px;
}
.home-picup a {
  padding: .5em 0 1.5em;
}
.home-picup a figure {
  max-width: unset;
  width: min(210px, 27dvw);
  height: auto;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #ffffff;
}
@media screen and (min-width: 768px) {
  .home-picup a figure {
    width: 100px;
  }
}
.home-picup a figure img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.home-picup a p {
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  padding-inline: 1.5em;
}
@media screen and (min-width: 768px) {
  .home-picup a p {
  padding-inline: 0;
  }
}
.home-picup a .picup-heading {
  letter-spacing: .05em;
}
.home-event .event-swiper figure {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}
.home-event .event-swiper figure img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.home-event .event-swiper .swiper-slide {
  height: auto;
}
.home-event .event-swiper .event-list {
  height: 100%;
}
.home-event .event-swiper .event-box .event-date {
  margin-bottom: .5em;
}
.home-aichinow {
  padding-block: min(60px, 13.5dvw) 0;
}
@media screen and (min-width: 768px) {
  .home-aichinow {
    padding-block: min(60px, 13.5dvw);  
  }
}
.home-aichinow .aichinow-ttl {
  position: relative;
  width: fit-content;
  font-size: 1.909rem;
  padding-inline: 1.5em;
  margin: 0 auto 1em;
}
@media screen and (min-width: 768px) {
  .home-aichinow .aichinow-ttl {
    font-size: 3rem;
    padding-inline: .5em;
  }
}
.home-aichinow .aichinow-ttl::before,
.home-aichinow .aichinow-ttl::after {
  content:'';
  position: absolute;
  bottom: 0;
  width: 1px;
  height: 65%;
  border: 1px solid #fff;
  animation: flash 2s ease-in-out infinite;
}
@media screen and (min-width: 768px) {
  .home-aichinow .aichinow-ttl::before,
  .home-aichinow .aichinow-ttl::after {
    height: 90%;
  }
}
.home-aichinow .aichinow-ttl::before {
  left: 0;
  rotate: -35deg;
}
@media screen and (min-width: 768px) {
  .home-aichinow .aichinow-ttl::before {
    rotate: -45deg;
  }
}
.home-aichinow .aichinow-ttl::after {
  right: 0;
  rotate: 35deg;
}
@media screen and (min-width: 768px) {
  .home-aichinow .aichinow-ttl::after {
    rotate: 45deg;
  }
}
.home-asia {
  padding-block: 5em;
}
@media screen and (min-width: 768px) {
  .home-asia {
    padding-block: min(60px, 14dvw);
  }
}
.home-asia .inner {
  max-width: 1010px;
}
.home-asia .inner .asia-wrap {
  display: grid;
  grid-template-columns: auto;
  justify-content: center;
  gap: 2em;
}
@media screen and (min-width: 768px) {
  .home-asia .inner .asia-wrap {
    grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));
  }
}
.home-asia .inner .asia-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ----------------------------------------
en
------------------------------------------*/
:lang(en) .home-about dl {
  max-width: 1200px;
  padding-inline: 2em;
  margin-bottom: 4em;
}
:lang(en) .home-about dl dt {
  line-height: 1.3;
}
:lang(en) .home-about dl dd {
  font-size: 1.6rem;
  line-height: 1.8;
}
:lang(en) .home-about .about-ttl {
  max-width: unset;
}
:lang(en) .home-about .inner {
  padding: 0;
}
@media screen and (min-width: 768px) {
  .home-about .inner,
  :lang(en) .home-about .inner {
    padding: 210px 0 0px;
  }
}
@media screen and (min-width: 1024px) {
  .home-about .inner,
  :lang(en) .home-about .inner {
    max-width: unset;
    padding: 300px 0 240px;
    height: auto;
  }
}
:lang(en) .home-about figure {
  top: min(-280px, -29%);
}
:lang(en) .home-enjoy .enjoy-main .enjoy-top .enjoy-heading {
  font-size: 2.4rem;
  line-height: 1.3;
}
@media screen and (min-width: 768px) {
  :lang(en) .home-enjoy .enjoy-main .enjoy-top .enjoy-heading {
    font-size: 4rem;
  }
}
:lang(en) .home-modelcourse .mc-main .mc-top .mc-heading {
  font-size: 2.4rem;  
  line-height: 1.3;
}
@media screen and (min-width: 768px) {
  :lang(en) .home-modelcourse .mc-main .mc-top .mc-heading {
    font-size: 4rem;  
  }
}
:lang(en) .home-search .search-lead {
  line-height: 1.8;
}
:lang(en) .home-event .event-main .event-lead {
  line-height: 1.8;
}
@media screen and (min-width: 768px) {
  :lang(en) .home-aichinow .aichinow-ttl {
    padding-inline: 1em;
  }
}
:lang(en) .footer .footer-main .f-logo {
  max-width: unset;
  width: min(283px, 58dvw);
}
:lang(en) ._idx .search-main .search-con .result-list._event .result-heading {
  line-height: 1.3;
}
:lang(en) .c-mokuji.is-open .mokuji-btn span::after {
  content: "Close ▲";
}
:lang(en) .c-mokuji .mokuji-btn span::after {
  content: "Open table of contents ▼";
}
:lang(en) ._detail .detail-main .sidebar .side-wrap .side-ttl {
  font-size: 1.7rem;
}

/* ----------------------------------------
modal
------------------------------------------*/
.js-modalopen, .js-modalslideopen {
  overflow: hidden;
}
.modal-sec {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 99999;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.6);
}
.modal-sec .modal-in {
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  padding: 20px;
  padding-top: 100px;
  overflow-y: auto;
}
@media screen and (min-width: 768px) {
  .modal-sec .modal-in {
    padding-top: 0;
  }
}
.modal-sec .modal-con {
  position: relative;
  width: 100%;
  max-width: 1000px;
  margin: auto;
  padding: 2em 1em;
  background-color: #d3d6e2;
  line-height: 1.5;
  border-radius: 1em;
}
@media screen and (min-width: 768px) {
  .modal-sec .modal-con {
    padding: 40px;
  }
}
.modal-sec .modal-heading {
  margin-bottom: 40px;
  font-size: 1.8rem;
  font-weight: 500;
  text-align: center;
}
.modal-sec .modal-item {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 100%;
  max-width: 830px;
  margin: 0 auto;
}
@media screen and (min-width: 768px) {
  .modal-sec .modal-item {
    flex-direction: row;
    gap: 2em;
    margin: 0 auto 30px;
  }
}
.modal-sec .modal-item dl {
  width: 100%;
  margin-bottom: 40px;
}
.modal-sec .modal-item dl dt {
  margin-bottom: 20px;
  padding: 10px;
  background: #390f50;
  font-size: 1.6rem;
  font-weight: 600;
  color: #fff;
  text-align: center;
  letter-spacing: .05em;
}
.modal-sec .modal-item dl dd {
  height: 260px;
  overflow-y: scroll;
}
.modal-sec .modal-item dl dd::-webkit-scrollbar {
  background: none;
  width: 3px;
  padding-left: 10px;
}
.modal-sec .modal-item dl dd::-webkit-scrollbar-thumb {
  background-color: #390f50;
}
.modal-sec .modal-item dl dd ul li {
  display: flex;
  align-items: center;
  margin-bottom: 20px;
}
.modal-sec .modal-item dl dd ul li:last-child {
  margin-bottom: 0;
}
.modal-sec .modal-item dl dd ul li figure {
  width: 50px;
  border: 2px solid #fff;
}
.modal-sec .modal-item._en dl dd ul li figure {
  width: 34px;
}
.modal-sec .modal-item dl dd ul li p {
  flex: 1;
  margin-left: 20px;
  font-size: 1.6rem;
}
.modal-sec .modal-close {
  width: 100%;
  max-width: 208px;
  margin: 0 auto;
  padding: 15px;
  border: 1px solid #390f50;
  background: #daff4f url("../../img/common/ico_close03.svg") no-repeat right 20px center;
  background-size: 13px auto;
  font-size: 1.5rem;
  font-weight: 500;
  text-align: center;
  cursor: pointer;
  border-radius: 2em;
}
.c-information {
  background-color: #514173;
  padding: 2em 1.2em;
}
@media screen and (min-width: 768px) {
  .c-information {
    padding: 40px 30px;
  }
}
.c-information .info-ttl {
  margin-bottom: 45px;
}
@media screen and (min-width: 768px) {
  .c-information .info-ttl {
    margin-bottom: 55px;
  }
}
.c-information .info-sec {
  margin-bottom: min(80px, 8dvw);
}
.c-information .info-ttl {
  color: #fff;
  font-weight: bold;
  letter-spacing: .1em;
}
@media screen and (min-width: 768px) {
  .c-information .info-ttl {
    font-size: 2rem;
  }
}
.c-information .info-ttl::after {
  background-color: #daff4f;
}
.c-information .info-main._basic {
  background: #1c2332;
}
.c-information .info-main._basic table {
  color: #fff;
}
.c-information .info-main._basic table tr td .basic-facility .ico-explanation {
  color: #daff4f;
}
.c-information .info-main._basic table tr td a {
  color: #daff4f !important;
}
.home-mainimg .mainimg-fig._fig03 {
  width: 24.666667%;
  margin-top: 5em;
  margin-left: 66.6666666667%;
}
@media screen and (min-width: 768px) {
  .home-mainimg .mainimg-fig._fig03 {
    width: 22.428571%;
    margin-left: 70.857143%;
    margin-top: 90px;
  }
}
.c-detailspot .ds-side .ds-side-fig-main .swiper-slide figure {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #2f3543;
}
.c-detailspot .ds-side .ds-side-fig-main .swiper-slide figure img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.c-detailspot .ds-side .ds-side-fig-sub .swiper-slide figure {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #2f3543;
}
.c-detailspot .ds-side .ds-side-fig-sub .swiper-slide figure img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}