@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100;300;400;500;600;700&display=swap");
:root { --gray: #4d4d4d; --black: #3e3a39; --white: #fff; --orange: #f08300; --yellow: #f6ab00; --skyblue: #54c3f1; --grad-orange-top: #de543b; --grad-orange-bottom: #fdd000; --grad-blue-top: #004591; --grad-blue-bottom: #94d9f6; }

@media screen and (min-width: 761px), print { :root { --width: 1400; }
  .sp-only { display: none; } }
@media (max-width: 760px) { :root { --width: 760; }
  .pc-only { display: none; } }
html, body { scroll-behavior: smooth; }

html { font-size: 62.5%; }

body { font-family: "Noto Sans JP", sans-serif; font-size: 1.6rem; font-weight: 400; color: var(--black); min-width: 100%; }
body.clip { overflow: clip; position: relative; }

@media screen and (min-width: 1201px), print { html, body { scroll-padding-top: 67px; } }
@media (max-width: 1200px) { html, body { scroll-padding-top: 80px; } }
@media (max-width: 760px) { html, body { scroll-padding-top: 50px; } }

*, *::after, *::before { box-sizing: border-box; }

img { width: 100%; height: auto; vertical-align: top; object-fit: contain; }

/* 1200pxでナビゲーション切り替え */
@media screen and (min-width: 1201px), print { header.m-header { width: 100%; transition: top ease .25s, background ease .2s; position: fixed; top: 29px; z-index: 10; }
  header.m-header .inner { display: flex; align-items: center; background-color: rgba(255, 255, 255, 0.8); border-radius: 42px; max-width: 1600px; padding: min(calc((10 / var(--width)) * 100vw), 10px) min(calc((70 / var(--width)) * 100vw), 70px); }
  header.m-header.sticky { top: 0; background-color: rgba(255, 255, 255, 0.8); padding: 13px 54px 11px; }
  header.m-header.sticky .inner { background-color: transparent; padding: 0; } }
@media (min-width: 1601px) { header.m-header .inner { margin-inline: auto; } }
@media (max-width: 1600px) and (min-width: 1201px) { header.m-header .inner { margin-inline: 24px; } }
@media (max-width: 1200px) { header.m-header { width: 100%; transition: top ease .35s; position: fixed; top: 0; z-index: 10; }
  header.m-header .inner { display: flex; align-items: center; background-color: white; padding: calc((20 / 1400) * 100vw) calc((36 / 1400) * 100vw) calc((20 / 1400) * 100vw) calc((64 / 1400) * 100vw); } }
.m-logo { display: block; width: calc((198 / var(--width)) * 100vw); height: calc((48 / var(--width)) * 100vw); max-width: 198px; max-height: 48px; flex-shrink: 0; }
@media (max-width: 760px) { .m-logo { width: calc((240 / 760) * 100vw); height: auto; } }

/* menu button - phone only */
button#menubtn { display: none; }

@media (max-width: 1200px) { button#menubtn { display: block; background-color: #fff; width: 60px; height: 60px; border-radius: 50%; box-shadow: 0 0 4px rgba(0, 0, 0, 0.3); overflow: clip; margin-left: auto; position: relative; z-index: 13; }
  button#menubtn span { display: block; background-color: #403d3c; height: 3px; width: 24px; margin: 0 auto 7px; transition: transform ease .25s, opacity ease .25s; }
  button#menubtn span:nth-child(3) { margin-bottom: 0; }
  button#menubtn.close { position: relative; }
  button#menubtn.close span:first-child { transform: rotate(45deg); position: absolute; top: 50%; left: 0; right: 0; }
  button#menubtn.close span:nth-child(2) { transform: scale(0%); opacity: 0; }
  button#menubtn.close span:nth-child(3) { transform: rotate(135deg); position: absolute; top: 50%; left: 0; right: 0; } }
@media (max-width: 760px) { button#menubtn { width: min(calc((80 / 760) * 100vw), 80px); height: min(calc((80 / 760) * 100vw), 80px); }
  button#menubtn span { height: min(calc((3 / 760) * 100vw), 3px); width: min(calc((32 / 760) * 100vw), 32px); margin-bottom: min(calc((8 / 760) * 100vw), 8px); } }
/* grobal navigation */
nav.gnav { margin-left: auto; }

ul.gnav__items { color: #4d4d4d; font-size: min(calc((17 / var(--width)) * 100vw), 1.7rem); font-weight: 500; letter-spacing: 0.1rem; }
ul.gnav__items li a { color: #4d4d4d; transition: color ease .25s; position: relative; }

@media screen and (min-width: 1201px), print { ul.gnav__items { display: flex; gap: min(calc((77 / var(--width)) * 100vw), 77px); align-items: center; }
  ul.gnav__items li { flex-shrink: 0; }
  ul.gnav__items li a[target="_blank"] { background: url("../img/common/icon_window.svg") right center no-repeat; background-size: 19px 14px; padding-right: min(calc((24 / var(--width)) * 100vw), 24px); }
  ul.gnav__items li a::after { content: ''; display: block; width: 0%; height: 2px; background-color: var(--orange); position: absolute; bottom: -4px; left: 0; right: 0; margin: auto; transition: width ease .25s; }
  ul.gnav__items li a.current { color: var(--orange); }
  ul.gnav__items li a.current::after { width: 100%; } }
@media (hover: hover) { ul.gnav__items li a:hover, ul.gnav__items li a:focus { color: var(--orange); }
  ul.gnav__items li a:hover::after, ul.gnav__items li a:focus::after { width: 100%; } }
@media (max-width: 1200px) { nav.gnav { width: 81.3%; height: 100vh; background-color: #eeefef; padding: calc((160 / var(--width)) * 100vw) calc((68 / var(--width)) * 100vw); position: fixed; top: 0; right: 0; z-index: 12; transform: translateX(100%); transition: transform ease .3s; }
  ul.gnav__items { font-size: min(calc((30 / var(--width)) * 100vw), 3rem); }
  ul.gnav__items li { margin-bottom: calc((46 / var(--width)) * 100vw); }
  ul.gnav__items li a { display: block; vertical-align: middle; }
  ul.gnav__items li a::before { content: ''; display: inline-block; vertical-align: middle; width: min(calc((35 / var(--width)) * 100vw), 35px); height: min(calc((35 / var(--width)) * 100vw), 35px); background: url("../img/common/gnav_arrow.svg") top left no-repeat; background-size: contain; margin-right: calc((16 / var(--width)) * 100vw); transition: background ease-in-out .3s; }
  ul.gnav__items li a[target="_blank"]::after { content: ''; display: inline-block; width: min(calc((27 / var(--width)) * 100vw), 27px); height: min(calc((19 / var(--width)) * 100vw), 19px); background: url("../img/common/icon_window.svg") right center no-repeat; background-size: contain; margin-left: min(calc((24 / var(--width)) * 100vw), 24px); }
  ul.gnav__items li a.current::before { background-image: url("../img/common/gnav_arrow_on.svg"); } }
@media (max-width: 1200px) and (hover: hover) { ul.gnav__items li a:hover::before, ul.gnav__items li a:focus::before { background-image: url("../img/common/gnav_arrow_on.svg"); } }
@media (max-width: 1200px) { ul.gnav__items li a.current { color: var(--orange); }
  ul.gnav__items li a.current::before { background: url("../img/common/gnav_arrow_on.svg") top left no-repeat; background-size: contain; }
  nav.gnav.open { transform: translateX(0%); overflow-y: auto; } }
div.overray { opacity: 0; visibility: hidden; transition: opacity ease .3s; }
div.overray.open { background-color: rgba(0, 0, 0, 0.8); width: 100%; height: 100vh; position: fixed; top: 0; left: 0; z-index: 11; visibility: visible; opacity: 1; }

aside.snav { position: fixed; z-index: 13; }
@media screen and (min-width: 1201px), print { aside.snav { right: 0; top: 120px; width: 60px; display: flex; } }
@media (max-width: 1200px) { aside.snav { top: auto; left: 0; right: 0; bottom: 0; max-height: 130px; } }

ul.snav__items { display: flex; writing-mode: vertical-rl; }
@media (max-width: 1200px) { ul.snav__items { writing-mode: initial; } }
ul.snav__items li { margin-bottom: 8px; }
@media (max-width: 1200px) { ul.snav__items li { width: 33.3%; flex-shrink: 0; margin-bottom: 0; } }
ul.snav__items li button, ul.snav__items li a { display: block; border: 1px solid transparent; font-size: min(calc((16 / var(--width)) * 100vw), 1.6rem); letter-spacing: 0.25rem; vertical-align: middle; }
@media screen and (min-width: 1201px), print { ul.snav__items li button, ul.snav__items li a { border-top-left-radius: 7px; border-bottom-left-radius: 7px; padding: min(calc((12 / var(--width)) * 100vw), 12px) min(calc((16 / var(--width)) * 100vw), 16px) min(calc((16 / var(--width)) * 100vw), 16px); writing-mode: vertical-rl; text-orientation: upright; } }
@media (max-width: 1200px) { ul.snav__items li button, ul.snav__items li a { display: flex; align-items: center; justify-content: center; font-size: min(calc((22 / 1400) * 100vw), 2.2rem); width: 100%; height: 100%; padding: min(calc((22 / var(--width)) * 100vw), 22px) min(calc((16 / var(--width)) * 100vw), 16px) min(calc((16 / var(--width)) * 100vw), 16px); } }
@media (max-width: 760px) { ul.snav__items li button, ul.snav__items li a { font-size: min(calc((24 / 760) * 100vw), 2.4rem); letter-spacing: 0; padding: min(calc((32 / 760) * 100vw), 32px) min(calc((16 / 760) * 100vw), 16px); } }
ul.snav__items li button i, ul.snav__items li a i { display: inline-block; vertical-align: middle; transition: transform ease .2s; }
@media screen and (min-width: 1201px), print { ul.snav__items li button i, ul.snav__items li a i { margin-bottom: 9px; } }
@media (max-width: 1200px) { ul.snav__items li button i, ul.snav__items li a i { margin-right: 8px; } }
ul.snav__items li button:hover i, ul.snav__items li a:hover i { transform: translateY(-16%); }

button#snav--reserved { background-color: #1a1a1a; color: #fff; }
button#snav--reserved > i { width: min(calc((30 / var(--width)) * 100vw), 30px); height: min(calc((31 / var(--width)) * 100vw), 31px); background: url("../img/common/icon_calender.svg") center center no-repeat; background-size: contain; }

a.snav--request { background-color: #f3e259; color: #4d4d4d; }
a.snav--request > i { width: min(calc((26 / var(--width)) * 100vw), 26px); height: min(calc((36 / var(--width)) * 100vw), 36px); background: url("../img/common/icon_request.svg") center center no-repeat; background-size: contain; }

a.snav--contact { background-color: #ffffff; border-color: #dddddd; color: #4d4d4d; }
a.snav--contact > i { width: min(calc((30 / var(--width)) * 100vw), 30px); height: min(calc((22 / var(--width)) * 100vw), 22px); background: url("../img/common/icon_contact.svg") center center no-repeat; background-size: contain; }

.popup { visibility: hidden; pointer-events: none; width: 100%; height: 100vh; position: fixed; top: 0; left: 0; z-index: -10; }

.popup__overray { background-color: rgba(0, 0, 0, 0.5); opacity: 0; transition: all ease .3s; }

.popup__in { background-color: #fff; max-width: 90%; max-height: 90%; padding: min(calc((24 / var(--width)) * 100vw), 24px); position: absolute; top: 50%; left: 0; right: 0; margin: auto; overflow-x: clip; overflow-y: auto; transform: translateY(-60%); opacity: 0; transition: all ease .3s; transition-delay: .3s; }

button.popup__close { text-align: center; float: right; margin-bottom: min(calc((65 / var(--width)) * 100vw), 65px); }
button.popup__close i { display: block; width: min(calc((55 / var(--width)) * 100vw), 55px); height: min(calc((55 / var(--width)) * 100vw), 55px); background-color: var(--black); border-radius: 50%; position: relative; }
button.popup__close i::before, button.popup__close i::after { content: ''; display: block; width: min(calc((24 / var(--width)) * 100vw), 24px); height: min(calc((2 / var(--width)) * 100vw), 2px); background-color: #fff; position: absolute; top: 50%; left: 0; right: 0; margin: auto; }
button.popup__close i::before { transform: rotate(45deg); }
button.popup__close i::after { transform: rotate(-45deg); }
button.popup__close span { font-size: min(calc((21 / var(--width)) * 100vw), 2.1rem); }

.popup.open { pointer-events: all; visibility: visible; z-index: 20; }
.popup.open.popup__overray { opacity: 1; }
.popup.open .popup__in { opacity: 1; transform: translateY(-50%); }

.inner { max-width: 1400px; margin-inline: auto; }
.inner.min--in { max-width: 1200px; }

@media (max-width: 1400px) { .inner { padding-inline: 24px; } }
.mv__area { position: relative; width: 100%; aspect-ratio: 1920 / 1476; padding-bottom: min(calc((74 / var(--width)) * 100vw), 74px); }
@media (max-width: 760px) { .mv__area { padding-bottom: min(calc((47 / 760) * 100vw), 47px); margin-bottom: min(calc((24 / 760) * 100vw), 24px); } }
.mv__area::before, .mv__area::after { content: ''; display: block; height: 100%; width: 50%; position: absolute; z-index: -2; pointer-events: none; }
@media (max-width: 760px) { .mv__area::before, .mv__area::after { height: calc(100% - 40%); } }
.mv__area::before { background: linear-gradient(to bottom, var(--grad-orange-top), var(--grad-orange-bottom)); clip-path: polygon(0 0, 100% 0, 100% 100%, 0 80%); top: 0; left: 0; }
@media (max-width: 760px) { .mv__area::before { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 88%); } }
.mv__area::after { background: linear-gradient(to bottom, var(--grad-blue-top), var(--grad-blue-bottom)); clip-path: polygon(0 0, 100% 0, 100% 80%, 0 100%); top: 0; right: 0; }
@media (max-width: 760px) { .mv__area::after { clip-path: polygon(0 0, 100% 0, 100% 88%, 0 100%); } }
.mv__area .inner:first-child { padding-top: min(calc((115 / 760) * 100vw), 115px); margin-bottom: min(calc((54 / var(--width)) * 100vw), 54px); }

.bg__icon { display: block; pointer-events: none; position: absolute; z-index: -1; opacity: 0; }
.bg__icon.bi01 { width: calc((124 / var(--width)) * 100vw); height: calc((125 / var(--width)) * 100vw); max-width: 124px; max-height: 125px; background: url("../img/bi01.png") center center no-repeat; background-size: contain; top: min(calc((137 / var(--width)) * 100vw), 137px); left: min(calc((67 / var(--width)) * 100vw), 67px); animation: fadeInUp 1s ease-out forwards 1.5s, float 3s ease-in-out infinite; }
.bg__icon.bi02 { width: calc((114 / var(--width)) * 100vw); height: calc((103 / var(--width)) * 100vw); max-width: 114px; max-height: 103px; background: url("../img/bi02.png") center center no-repeat; background-size: contain; top: min(calc((146 / var(--width)) * 100vw), 146px); left: min(calc((353 / var(--width)) * 100vw), 353px); animation: fadeInUp 1s ease-out forwards 1.5s, float02 3s ease-in-out infinite; }
.bg__icon.bi03 { width: calc((78 / var(--width)) * 100vw); height: calc((68 / var(--width)) * 100vw); max-width: 78px; max-height: 68px; background: url("../img/bi03.png") center center no-repeat; background-size: contain; top: min(calc((182 / var(--width)) * 100vw), 182px); left: min(calc((560 / var(--width)) * 100vw), 560px); animation: fadeInUp 1s ease-out forwards 1.5s, float 3s ease-in-out infinite; }
.bg__icon.bi04 { width: calc((113 / var(--width)) * 100vw); height: calc((104 / var(--width)) * 100vw); max-width: 113px; max-height: 104px; background: url("../img/bi04.png") center center no-repeat; background-size: contain; top: min(calc((266 / var(--width)) * 100vw), 266px); left: min(calc((231 / var(--width)) * 100vw), 231px); animation: fadeInUp 1s ease-out forwards 1.5s, float03 3s ease-in-out infinite; }
.bg__icon.bi05 { width: calc((95 / var(--width)) * 100vw); height: calc((83 / var(--width)) * 100vw); max-width: 95px; max-height: 83px; background: url("../img/bi05.png") center center no-repeat; background-size: contain; top: min(calc((372 / var(--width)) * 100vw), 372px); left: min(calc((342 / var(--width)) * 100vw), 342px); animation: fadeInUp 1s ease-out forwards 1.5s, float02 3s ease-in-out infinite; }
.bg__icon.bi06 { width: calc((103 / var(--width)) * 100vw); height: calc((99 / var(--width)) * 100vw); max-width: 103px; max-height: 99px; background: url("../img/bi06.png") center center no-repeat; background-size: contain; top: min(calc((430 / var(--width)) * 100vw), 430px); left: min(calc((140 / var(--width)) * 100vw), 140px); animation: fadeInUp 1s ease-out forwards 1.5s, float 3s ease-in-out infinite; }
.bg__icon.bi07 { width: calc((110 / var(--width)) * 100vw); height: calc((110 / var(--width)) * 100vw); max-width: 110px; max-height: 110px; background: url("../img/bi07.png") center center no-repeat; background-size: contain; top: min(calc((528 / var(--width)) * 100vw), 528px); left: min(calc((273 / var(--width)) * 100vw), 273px); animation: fadeInUp 1s ease-out forwards 1.5s, float02 3s ease-in-out infinite; }
.bg__icon.bi08 { width: calc((98 / var(--width)) * 100vw); height: calc((95 / var(--width)) * 100vw); max-width: 98px; max-height: 95px; background: url("../img/bi08.png") center center no-repeat; background-size: contain; top: min(calc((577 / var(--width)) * 100vw), 577px); left: min(calc((41 / var(--width)) * 100vw), 41px); animation: fadeInUp 1s ease-out forwards 1.5s, float03 3s ease-in-out infinite; }
.bg__icon.bi09 { width: calc((94 / var(--width)) * 100vw); height: calc((102 / var(--width)) * 100vw); max-width: 94px; max-height: 102px; background: url("../img/bi09.png") center center no-repeat; background-size: contain; top: min(calc((710 / var(--width)) * 100vw), 710px); left: min(calc((337 / var(--width)) * 100vw), 337px); animation: fadeInUp 1s ease-out forwards 1.5s, float 3s ease-in-out infinite; }
.bg__icon.bi10 { width: calc((109 / var(--width)) * 100vw); height: calc((104 / var(--width)) * 100vw); max-width: 109px; max-height: 104px; background: url("../img/bi10.png") center center no-repeat; background-size: contain; top: min(calc((784 / var(--width)) * 100vw), 784px); left: min(calc((129 / var(--width)) * 100vw), 129px); animation: fadeInUp 1s ease-out forwards 1.5s, float03 3s ease-in-out infinite; }
.bg__icon.bi11 { width: calc((82 / var(--width)) * 100vw); height: calc((85/ var(--width)) * 100vw); max-width: 82px; max-height: 85px; background: url("../img/bi11.png") center center no-repeat; background-size: contain; top: min(calc((173 / var(--width)) * 100vw), 173px); right: min(calc((556 / var(--width)) * 100vw), 556px); animation: fadeInUp 1s ease-out forwards 1.5s, float03 3s ease-in-out infinite; }
.bg__icon.bi12 { width: calc((122 / var(--width)) * 100vw); height: calc((138 / var(--width)) * 100vw); max-width: 122px; max-height: 138px; background: url("../img/bi12.png") center center no-repeat; background-size: contain; top: min(calc((136 / var(--width)) * 100vw), 136px); right: min(calc((337 / var(--width)) * 100vw), 337px); animation: fadeInUp 1s ease-out forwards 1.5s, float 3s ease-in-out infinite; }
.bg__icon.bi13 { width: calc((82 / var(--width)) * 100vw); height: calc((99 / var(--width)) * 100vw); max-width: 82px; max-height: 99px; background: url("../img/bi13.png") center center no-repeat; background-size: contain; top: min(calc((127 / var(--width)) * 100vw), 127px); right: min(calc((139 / var(--width)) * 100vw), 139px); animation: fadeInUp 1s ease-out forwards 1.5s, float02 3s ease-in-out infinite; }
.bg__icon.bi14 { width: calc((82 / var(--width)) * 100vw); height: calc((90 / var(--width)) * 100vw); max-width: 82px; max-height: 90px; background: url("../img/bi14.png") center center no-repeat; background-size: contain; top: min(calc((289 / var(--width)) * 100vw), 289px); right: min(calc((197 / var(--width)) * 100vw), 197px); animation: fadeInUp 1s ease-out forwards 1.5s, float03 3s ease-in-out infinite; }
.bg__icon.bi15 { width: calc((60 / var(--width)) * 100vw); height: calc((99 / var(--width)) * 100vw); max-width: 60px; max-height: 99px; background: url("../img/bi15.png") center center no-repeat; background-size: contain; top: min(calc((315 / var(--width)) * 100vw), 315px); right: min(calc((403 / var(--width)) * 100vw), 403px); animation: fadeInUp 1s ease-out forwards 1.5s, float 3s ease-in-out infinite; }
.bg__icon.bi16 { width: calc((98 / var(--width)) * 100vw); height: calc((97 / var(--width)) * 100vw); max-width: 98px; max-height: 97px; background: url("../img/bi16.png") center center no-repeat; background-size: contain; top: min(calc((449 / var(--width)) * 100vw), 449px); right: min(calc((259 / var(--width)) * 100vw), 259px); animation: fadeInUp 1s ease-out forwards 1.5s, float03 3s ease-in-out infinite; }
.bg__icon.bi17 { width: calc((97 / var(--width)) * 100vw); height: calc((97 / var(--width)) * 100vw); max-width: 97px; max-height: 97px; background: url("../img/bi17.png") center center no-repeat; background-size: contain; top: min(calc((555 / var(--width)) * 100vw), 555px); right: min(calc((123 / var(--width)) * 100vw), 123px); animation: fadeInUp 1s ease-out forwards 1.5s, float 3s ease-in-out infinite; }
.bg__icon.bi18 { width: calc((97 / var(--width)) * 100vw); height: calc((97 / var(--width)) * 100vw); max-width: 97px; max-height: 97px; background: url("../img/bi18.png") center center no-repeat; background-size: contain; top: min(calc((593 / var(--width)) * 100vw), 593px); right: min(calc((353 / var(--width)) * 100vw), 353px); animation: fadeInUp 1s ease-out forwards 1.5s, float 3s ease-in-out infinite; }
.bg__icon.bi19 { width: calc((131 / var(--width)) * 100vw); height: calc((96 / var(--width)) * 100vw); max-width: 131px; max-height: 96px; background: url("../img/bi19.png") center center no-repeat; background-size: contain; top: min(calc((696 / var(--width)) * 100vw), 696px); right: min(calc((150 / var(--width)) * 100vw), 150px); animation: fadeInUp 1s ease-out forwards 1.5s, float02 3s ease-in-out infinite; }
.bg__icon.bi20 { width: calc((65 / var(--width)) * 100vw); height: calc((133 / var(--width)) * 100vw); max-width: 65px; max-height: 133px; background: url("../img/bi20.png") center center no-repeat; background-size: contain; top: min(calc((751 / var(--width)) * 100vw), 751px); right: min(calc((324 / var(--width)) * 100vw), 324px); animation: fadeInUp 1s ease-out forwards 1.5s, float 3s ease-in-out infinite; }

@keyframes fadeInUp { 0% { opacity: 0; transform: translateY(20px); }
  100% { opacity: 1; transform: translateY(0); } }
@keyframes float { 0% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
  100% { transform: translateY(0); } }
@keyframes float02 { 0% { transform: translateY(0); }
  50% { transform: translateY(20px); }
  100% { transform: translateY(0); } }
@keyframes float03 { 0% { transform: translateY(0); }
  50% { transform: translateY(-20px); }
  100% { transform: translateY(0); } }
@media (max-width: 760px) { @keyframes float02 { 0% { transform: translateY(0); }
    50% { transform: translateY(10px); }
    100% { transform: translateY(0); } }
  @keyframes float03 { 0% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
    100% { transform: translateY(0); } } }
@media (max-width: 760px) { .mv__area .bg__icon.bi01, .mv__area .bg__icon.bi04, .mv__area .bg__icon.bi06, .mv__area .bg__icon.bi07, .mv__area .bg__icon.bi08, .mv__area .bg__icon.bi09, .mv__area .bg__icon.bi10 { display: none; visibility: hidden; }
  .mv__area .bg__icon.bi02 { top: calc((109 / 760) * 100vw); left: calc((31 / 760) * 100vw); }
  .mv__area .bg__icon.bi03 { top: calc((218 / 760) * 100vw); left: calc((130 / 760) * 100vw); }
  .mv__area .bg__icon.bi05 { top: calc((271 / 760) * 100vw); left: calc((31 / 760) * 100vw); }
  .mv__area .bg__icon.bi13, .mv__area .bg__icon.bi14, .mv__area .bg__icon.bi16, .mv__area .bg__icon.bi17, .mv__area .bg__icon.bi18, .mv__area .bg__icon.bi19, .mv__area .bg__icon.bi20 { display: none; visibility: hidden; }
  .mv__area .bg__icon.bi11 { top: calc((218 / 760) * 100vw); right: calc((176 / 760) * 100vw); }
  .mv__area .bg__icon.bi12 { top: calc((107 / 760) * 100vw); right: calc((22 / 760) * 100vw); }
  .mv__area .bg__icon.bi15 { top: calc((263 / 760) * 100vw); right: calc((74 / 760) * 100vw); } }
.mv__ttl { width: calc((532 / var(--width)) * 100vw); height: auto; max-width: 532px; margin: 0 auto min(calc((26 / var(--width)) * 100vw), 26px); }

.mv__visual { display: flex; align-items: end; justify-content: center; max-width: 1000px; margin-inline: auto; position: relative; }
@media (max-width: 760px) { .mv__visual { min-height: calc((786 / 760) * 100vw); } }

p.mv__txt { width: calc((436 / var(--width)) * 100vw); height: calc((156 / var(--width)) * 100vw); max-width: 436px; max-height: 156px; position: absolute; top: 0; left: 0; right: 0; z-index: 1; margin-inline: auto; }
@media (max-width: 760px) { p.mv__txt { width: calc((428 / 760) * 100vw); height: calc((223 / 760) * 100vw); max-width: 428px; max-height: 223px; } }

.mv-img__girl { width: calc((466 / var(--width)) * 100vw); height: calc((562 / var(--width)) * 100vw); max-width: 466px; max-height: 562px; margin-top: min(calc((52 / var(--width)) * 100vw), 52px); }

.mv-img__manabi { width: calc((257 / var(--width)) * 100vw); height: calc((590 / var(--width)) * 100vw); max-width: 257px; max-height: 590px; margin-bottom: min(calc((30 / var(--width)) * 100vw), 30px); }
@media (max-width: 760px) { .mv-img__manabi { width: calc((200 / 760) * 100vw); height: calc((660 / 760) * 100vw); max-width: 200px; max-height: 660px; position: absolute; top: min(calc((100 / 760) * 100vw), 100px); left: min(calc((24 / 760) * 100vw), 24px); z-index: 1; } }

.mv-img__jikken { width: calc((257 / var(--width)) * 100vw); height: calc((588 / var(--width)) * 100vw); max-width: 257px; max-height: 588px; margin-bottom: min(calc((30 / var(--width)) * 100vw), 30px); }
@media (max-width: 760px) { .mv-img__jikken { width: calc((195 / 760) * 100vw); height: calc((658 / 760) * 100vw); max-width: 195px; max-height: 658px; position: absolute; top: min(calc((100 / 760) * 100vw), 100px); right: 0; z-index: 1; } }

.mv__schedule { background: linear-gradient(to right, transparent 0%, #fff 20%, #fff 80%, transparent 100%); padding: min(calc((28 / var(--width)) * 100vw), 28px) 0 min(calc((26 / var(--width)) * 100vw), 26px); }
.mv__schedule img { display: block; width: calc((882 / var(--width)) * 100vw); height: calc((138 / var(--width)) * 100vw); max-width: 882px; max-height: 138px; margin-inline: auto; }
@media (max-width: 760px) { .mv__schedule img { width: calc((585 / 760) * 100vw); height: calc((221 / 760) * 100vw); max-width: 585px; max-height: 221px; } }

.anm01 { opacity: 0; animation: anm01 ease-in .5s forwards; }

@keyframes anm01 { 0% { transform: translateY(-20px); opacity: 0; }
  100% { transform: translateY(0px); opacity: 1; } }
.anm02 { opacity: 0; animation: anm02 ease-in 1s forwards; animation-delay: 0.3s; }

@keyframes anm02 { 0% { opacity: 0; }
  100% { opacity: 1; } }
.anm03 { opacity: 0; animation: anm03 ease .5s forwards; animation-delay: 0.4s; }

@keyframes anm03 { 0% { transform: translateX(-30px); opacity: 0; }
  100% { transform: translateX(0px); opacity: 1; } }
.anm04 { opacity: 0; animation: anm04 ease-in-out .5s forwards; animation-delay: 1.5s; }

@keyframes anm04 { 0% { transform: translateY(-30px); opacity: 0; }
  100% { transform: translateY(0px); opacity: 1; } }
ul.reserved-btn { clear: both; display: grid; grid-template-columns: 1fr 1fr; column-gap: min(calc((78 / var(--width)) * 100vw), 78px); max-width: 1400px; margin: 0 auto min(calc((22 / var(--width)) * 100vw), 22px); }
@media (max-width: 760px) { ul.reserved-btn { display: block; } }
ul.reserved-btn li a { display: block; transition: transform ease .3s; }
ul.reserved-btn li a:hover, ul.reserved-btn li a:focus { transform-origin: center center; transform: scale(95%); }
@media (max-width: 760px) { ul.reserved-btn li:not(:last-child) { margin-bottom: min(calc((20 / 760) * 100vw), 20px); } }

.bg--stripe { background-image: linear-gradient(135deg, #efefef 25%, #e3e3e3 25%, #e3e3e3 50%, #efefef 50%, #efefef 75%, #e3e3e3 75%, #e3e3e3 100%); background-size: 212.13px 212.13px; }

.bg--stripe--y { background-image: linear-gradient(135deg, #fff 25%, #fdeecc 25%, #fdeecc 50%, #fff 50%, #fff 75%, #fdeecc 75%, #fdeecc 100%); background-size: 212.13px 212.13px; }

.program__area { box-shadow: 0 -15px 15px rgba(62, 58, 57, 0.3); padding: min(calc((98 / var(--width)) * 100vw), 98px) 0 min(calc((146 / var(--width)) * 100vw), 146px); overflow-x: clip; position: relative; }
.program__area .ttl { margin-bottom: min(calc((117 / var(--width)) * 100vw), 117px); }

.program-cards { overflow-x: clip; padding-bottom: min(calc((98 / var(--width)) * 100vw), 98px); position: relative; z-index: 1; }
@media (max-width: 760px) { .program-cards { padding-bottom: calc((115 / 760) * 100vw); } }
.program-cards .program-card { flex-shrink: 0; background-color: #fff; border: min(calc((3 / var(--width)) * 100vw), 3px) solid var(--black); border-radius: min(calc((10 / var(--width)) * 100vw), 10px); padding: min(calc((32 / var(--width)) * 100vw), 32px); margin-inline: min(calc((25 / var(--width)) * 100vw), 25px); float: left; position: relative; transition: margin ease .3s; }
.program-cards .program-card::after { content: ''; display: block; width: 100%; height: 100%; border: min(calc((3 / var(--width)) * 100vw), 3px) solid var(--black); border-radius: min(calc((10 / var(--width)) * 100vw), 10px); background-color: #f3e521; position: absolute; top: 0; left: 0; z-index: -1; transition: top forwards .5s, left forwards .5s; }
@media (max-width: 760px) { .program-cards .program-card::after { border-width: min(calc((4 / 760) * 100vw), 4px); } }
@media screen and (min-width: 761px), print { .program-cards .program-card { width: min(calc((460 / var(--width)) * 100vw), 460px); } }
@media (max-width: 760px) { .program-cards .program-card { border-width: min(calc((4 / 760) * 100vw), 4px); padding: min(calc((32 / 760) * 100vw), 32px); } }
.program-cards .program-card.slick-current { margin-top: calc((-50 / var(--width)) * 100vw); }
.program-cards .program-card.slick-current::after { top: min(calc((11 / 760) * 100vw), 11px); left: min(calc((11 / 760) * 100vw), 11px); }
.program-cards .program-card .card__ttl { background-color: #fff; border: 1px solid var(--black); border-radius: min(calc((5 / var(--width)) * 100vw), 5px); box-shadow: 3px 3px 0px var(--black); color: var(--black); font-size: min(calc((24 / var(--width)) * 100vw), 2.4rem); font-weight: 500; line-height: 1.3; padding: min(calc((12 / var(--width)) * 100vw), 12px) min(calc((20 / var(--width)) * 100vw), 20px); margin: 0 calc((13 / var(--width)) * 100vw) calc((-13 / var(--width)) * 100vw) calc((-18 / var(--width)) * 100vw); position: relative; z-index: 1; }
@media (max-width: 760px) { .program-cards .program-card .card__ttl { font-size: min(calc((32 / 760) * 100vw), 3.2rem); padding: calc((14 / 760) * 100vw) calc((20 / 760) * 100vw); margin: 0 calc((13 / 760) * 100vw) calc((-13 / 760) * 100vw) calc((-18 / 760) * 100vw); } }
.program-cards .program-card .card__ttl span.icon__pickup { display: flex; align-items: center; justify-content: center; background: url("../img/icon_bg_pop.png") center center no-repeat; background-size: contain; color: var(--black); font-size: min(calc((17 / var(--width)) * 100vw), 1.7rem); font-weight: 500; line-height: 1.3; text-align: center; width: calc((86 / var(--width)) * 100vw); height: calc((86 / var(--width)) * 100vw); max-width: 86px; max-height: 86px; position: absolute; top: calc((-14 / var(--width)) * 100vw); right: calc((-10 / var(--width)) * 100vw); }
@media (max-width: 760px) { .program-cards .program-card .card__ttl span.icon__pickup { font-size: min(calc((24 / 760) * 100vw), 2.4rem); width: calc((117 / 760) * 100vw); height: calc((117 / 760) * 100vw); max-width: 117px; max-height: 117px; } }
.program-cards .program-card .card__ttl:has(span.icon__pickup) { padding-right: min(calc((86 / 760) * 100vw), 86px); position: relative; }
@media (max-width: 760px) { .program-cards .program-card .card__ttl:has(span.icon__pickup) { padding-right: min(calc((96 / 760) * 100vw), 96px); } }
.program-cards .program-card figure.card__img { aspect-ratio: 400 / 259; margin-bottom: min(calc((24 / var(--width)) * 100vw), 24px); position: relative; z-index: 0; }
.program-cards .program-card figure.card__img span { display: block; width: 100%; height: 100%; background-color: #808080; border: 1px solid var(--black); border-radius: 5px; position: relative; z-index: 1; overflow: hidden; }
.program-cards .program-card figure.card__img span img { width: 100%; height: auto; vertical-align: top; object-fit: cover; }
.program-cards .program-card figure.card__img::after { content: ''; display: block; width: 100%; height: 100%; background-color: #c3c3c3; border: 1px solid var(--black); border-radius: 5px; position: absolute; left: min(calc((8 / var(--width)) * 100vw), 8px); top: min(calc((8 / var(--width)) * 100vw), 8px); z-index: -1; }
.program-cards .program-card p { font-size: min(calc((18 / var(--width)) * 100vw), 1.8rem); line-height: 1.5; }
@media (max-width: 760px) { .program-cards .program-card p { font-size: min(calc((28 / 760) * 100vw), 2.8rem); } }
.program-cards .program-card.cat01 .card__ttl { background-color: #d8f0fc; }
.program-cards .program-card.cat02 .card__ttl { background-color: #d2e7b2; }
.program-cards .program-card.cat03 .card__ttl { background-color: #faf3bc; }
.program-cards .program-card.cat04 .card__ttl { background-color: #f9d6e1; }
.program-cards .program-card.cat05 .card__ttl { background-color: #d8aae0; }

.slick-list { overflow: initial !important; }

.bg--shine { display: block; position: absolute; pointer-events: none; }
.bg--shine.sh01 { background: url("../img/shine_yellow.png") left top no-repeat; background-size: contain; width: min(calc((96 / 1920) * 100vw), 96px); height: min(calc((95 / 1920) * 100vw), 95px); top: calc((144 / 1920) * 100%); left: calc((290 / 1920) * 100%); }
@media (max-width: 760px) { .bg--shine.sh01 { background-image: url("../img/shine_yellow_sp.png"); width: min(calc((73 / 760) * 100vw), 73px); height: min(calc((109 / 760) * 100vw), 109px); top: calc((70 / 760) * 100%); left: calc((30 / 760) * 100%); } }
.bg--shine.sh02 { background: url("../img/shine_cf.png") left top no-repeat; background-size: contain; width: min(calc((230 / 1920) * 100vw), 230px); height: min(calc((135 / 1920) * 100vw), 135px); top: calc((110 / 1920) * 100%); left: calc((1400 / 1920) * 100%); }
@media (max-width: 760px) { .bg--shine.sh02 { background-image: url("../img/shine_cf_sp.png"); width: min(calc((104 / 760) * 100vw), 104px); height: min(calc((196 / 760) * 100vw), 196px); top: calc((48 / 760) * 100%); left: auto; right: calc((24 / 760) * 100%); } }
.bg--shine.sh03 { background: url("../img/shine_fc2.png") left top no-repeat; background-size: contain; width: min(calc((88 / 1920) * 100vw), 88px); height: min(calc((91 / 1920) * 100vw), 91px); left: calc((642 / 1920) * 100%); bottom: calc((130 / 1920) * 100%); }
@media (max-width: 760px) { .bg--shine.sh03 { background-image: url("../img/shine_fc2_sp.png"); width: min(calc((88 / 760) * 100vw), 88px); height: min(calc((91 / 760) * 100vw), 91px); left: calc((105 / 760) * 100%); bottom: calc((96 / 760) * 100%); } }
.bg--shine.sh04 { background: url("../img/shine_wh.png") left top no-repeat; background-size: contain; width: min(calc((96 / 1920) * 100vw), 96px); height: min(calc((95 / 1920) * 100vw), 95px); top: 0; right: calc((75 / 1920) * 100%); }
@media (max-width: 760px) { .bg--shine.sh04 { background-image: url("../img/shine_wh_sp.png"); width: min(calc((49 / 760) * 100vw), 49px); height: min(calc((68 / 760) * 100vw), 68px); top: 0; right: calc((26 / 760) * 100%); } }
.bg--shine.sh05 { background: url("../img/shine_wh.png") left top no-repeat; background-size: contain; width: min(calc((96 / 1920) * 100vw), 96px); height: min(calc((95 / 1920) * 100vw), 95px); left: calc((39 / 1920) * 100%); bottom: calc((84 / 1920) * 100%); }
@media (max-width: 760px) { .bg--shine.sh05 { background-image: url("../img/shine_wh02_sp.png"); width: min(calc((32 / 760) * 100vw), 32px); height: min(calc((43 / 760) * 100vw), 43px); top: 0; left: calc((30 / 760) * 100%); } }

button.slick-arrow { font-size: 0; }
button.slick-arrow.slick-prev, button.slick-arrow.slick-next { width: calc((50 / var(--width)) * 100vw); height: calc((50 / var(--width)) * 100vw); max-width: 50px; max-height: 50px; position: absolute; bottom: 0; }
@media (max-width: 760px) { button.slick-arrow.slick-prev, button.slick-arrow.slick-next { width: calc((80 / 760) * 100vw); height: calc((80 / 760) * 100vw); max-width: 80px; max-height: 80px; } }
button.slick-arrow.slick-prev { background: url("../img/common/slide-arrow_prev.png") center center no-repeat; background-size: contain; left: 45%; transition: background ease .3s; }
@media (hover: hover) { button.slick-arrow.slick-prev:hover, button.slick-arrow.slick-prev:focus { background-image: url("../img/common/slide-arrow_prev_on.png"); } }
@media (max-width: 760px) { button.slick-arrow.slick-prev { left: 35%; } }
button.slick-arrow.slick-next { background: url("../img/common/slide-arrow_next.png") center center no-repeat; background-size: contain; right: 45%; transition: background ease .3s; }
@media (hover: hover) { button.slick-arrow.slick-next:hover, button.slick-arrow.slick-next:focus { background-image: url("../img/common/slide-arrow_next_on.png"); } }
@media (max-width: 760px) { button.slick-arrow.slick-next { right: 35%; } }

ul.t-program__tabs { display: flex; flex-wrap: wrap; justify-content: center; column-gap: min(calc((30 / var(--width)) * 100vw), 30px); max-width: 1400px; margin-inline: auto; }
@media (max-width: 760px) { ul.t-program__tabs { column-gap: calc((12 / 760) * 100vw); } }
ul.t-program__tabs li { width: calc(50% - ((30 / var(--width)) * 100vw)); }
@media (max-width: 760px) { ul.t-program__tabs li { width: calc(50% - ((12 / 760) * 100vw)); } }
ul.t-program__tabs li a { display: block; width: 100%; background-color: #fff; border: min(calc((3 / var(--width)) * 100vw), 3px) solid var(--black); border-bottom: 0; border-top-left-radius: 10px; border-top-right-radius: 10px; font-size: min(calc((44 / var(--width)) * 100vw), 4.4rem); font-weight: 500; text-align: center; letter-spacing: 0.5rem; padding: min(calc((20 / var(--width)) * 100vw), 20px) min(calc((24 / var(--width)) * 100vw), 24px) min(calc((24 / var(--width)) * 100vw), 24px); position: relative; }
@media (max-width: 760px) { ul.t-program__tabs li a { border-width: min(calc((4 / 760) * 100vw), 4px); font-size: min(calc((38 / 760) * 100vw), 3.8rem); text-align: left; padding: calc((16 / 760) * 100vw) calc((16 / 760) * 100vw) calc((16 / 760) * 100vw) calc((24 / 760) * 100vw); } }
ul.t-program__tabs li a::after { content: ''; display: block; width: calc((45 / var(--width)) * 100vw); height: calc((45 / var(--width)) * 100vw); max-width: 45px; max-height: 45px; background: url("../img/common/tab_arrow.png") center center no-repeat; background-size: contain; position: absolute; right: calc((40 / var(--width)) * 100vw); top: 50%; transform: translateY(-50%); transition: background ease .25s; }
@media (max-width: 760px) { ul.t-program__tabs li a::after { width: calc((40 / 760) * 100vw); height: calc((40 / 760) * 100vw); max-width: 40px; max-height: 40px; right: calc((16 / 760) * 100vw); } }
@media (hover: hover) { ul.t-program__tabs li:first-child a:hover::after, ul.t-program__tabs li:first-child a:focus::after { background: url("../img/common/tab_arrow_on.png") center center no-repeat; background-size: contain; }
  ul.t-program__tabs li:nth-child(2) a:hover::after, ul.t-program__tabs li:nth-child(2) a:focus::after { background: url("../img/common/tab_arrow_skyblue_on.png") center center no-repeat; background-size: contain; } }

.t-program__contents { border-top: calc((3 / var(--width)) * 100vw) solid var(--black); padding-top: calc((82 / var(--width)) * 100vw); padding-bottom: calc((73 / var(--width)) * 100vw); }
@media (max-width: 760px) { .t-program__contents { border-top-width: min(calc((4 / 760) * 100vw), 4px); padding-top: calc((38 / 760) * 100vw); padding-bottom: calc((70 / 760) * 100vw); } }
.t-program__contents > .inner { position: relative; }
.t-program__contents.bunkei { background-color: #f6ab00; background-image: radial-gradient(circle, #f59e0b 3.5px, transparent 3.5px), radial-gradient(circle, #f59e0b 3.5px, transparent 3.5px), radial-gradient(circle, #f59e0b 3.5px, transparent 3.5px), radial-gradient(circle, #f59e0b 3.5px, transparent 3.5px); background-position: 0 0, 22px 0, 11px 12px, 33px 12px; background-size: 44px 24px; }
.t-program__contents.rikou { background-color: #54c3f1; background-image: radial-gradient(circle, #00a9ff 3.5px, transparent 3.5px), radial-gradient(circle, #00a9ff 3.5px, transparent 3.5px), radial-gradient(circle, #00a9ff 3.5px, transparent 3.5px), radial-gradient(circle, #00a9ff 3.5px, transparent 3.5px); background-position: 0 0, 22px 0, 11px 12px, 33px 12px; background-size: 44px 24px; }

.t-program__ttl { text-align: center; margin-bottom: min(calc((42 / var(--width)) * 100vw), 42px); }
@media (max-width: 760px) { .t-program__ttl { margin-bottom: min(calc((38 / 760) * 100vw), 38px); } }
.t-program__ttl img { width: calc((770 / var(--width)) * 100vw); max-width: 770px; height: auto; }
@media (max-width: 760px) { .t-program__ttl img { width: calc((602 / 760) * 100%); max-width: 602px; } }

.t-program-cards { display: flex; flex-wrap: wrap; column-gap: 8%; margin-bottom: calc((84 / var(--width)) * 100vw); position: relative; z-index: 1; }
@media (max-width: 1200px) { .t-program-cards { column-gap: 4%; } }
@media (max-width: 760px) { .t-program-cards { margin-bottom: 0; } }
.t-program-cards .t-program-card { background-color: #fff; border: min(calc((3 / var(--width)) * 100vw), 3px) solid var(--black); border-radius: min(calc((10 / var(--width)) * 100vw), 10px); flex-shrink: 0; position: relative; width: 28%; max-width: 400px; margin-bottom: calc((32 / var(--width)) * 100vw); }
@media (max-width: 1200px) { .t-program-cards .t-program-card { width: 48%; } }
@media (max-width: 760px) { .t-program-cards .t-program-card { border-width: min(calc((4 / 760) * 100vw), 4px); width: 100%; max-width: 100%; } }
.t-program-cards .t-program-card::after { content: ''; display: block; background-color: #c3c3c3; border: min(calc((2 / var(--width)) * 100vw), 2px) solid var(--black); border-radius: min(calc((10 / var(--width)) * 100vw), 10px); width: 100%; height: 100%; position: absolute; top: min(calc((7 / var(--width)) * 100vw), 7px); left: min(calc((7 / var(--width)) * 100vw), 7px); z-index: -1; }
@media (max-width: 760px) { .t-program-cards .t-program-card::after { border-width: min(calc((4 / 760) * 100vw), 4px); top: min(calc((10 / 760) * 100vw), 10px); left: min(calc((10 / 760) * 100vw), 10px); } }
.t-program-cards .t-program-card .card__facility { color: #fff; background-color: #ccc; border-top-left-radius: min(calc((5 / var(--width)) * 100vw), 5px); border-top-right-radius: min(calc((5 / var(--width)) * 100vw), 5px); font-size: min(calc((25 / var(--width)) * 100vw), 2.5rem); font-weight: 500; line-height: 1; padding: calc((13 / var(--width)) * 100vw) calc((25 / var(--width)) * 100vw); }
@media (max-width: 760px) { .t-program-cards .t-program-card .card__facility { font-size: min(calc((32 / 760) * 100vw), 3.2rem); } }
.t-program-cards .t-program-card .card__in { padding: calc((12 / var(--width)) * 100vw) calc((24 / var(--width)) * 100vw) calc((32 / var(--width)) * 100vw); }
@media (max-width: 760px) and (min-width: 481px) { .t-program-cards .t-program-card .card__in { display: flex; } }
@media (max-width: 480px) { .t-program-cards .t-program-card .card__in { display: block; } }
.t-program-cards .t-program-card .card__img { aspect-ratio: 350 / 240; background-color: #ccc; margin-bottom: calc((24 / var(--width)) * 100vw); position: relative; overflow: clip; }
@media (max-width: 760px) and (min-width: 481px) { .t-program-cards .t-program-card .card__img { width: calc((280 / 760) * 100vw); height: calc((217 / 760) * 100vw); flex-shrink: 0; margin-right: 3.15%; margin-bottom: 0; } }
@media (max-width: 480px) { .t-program-cards .t-program-card .card__img { width: 100%; height: auto; margin-bottom: calc((12 / 480) * 100vw); } }
.t-program-cards .t-program-card .card__img img { width: auto; height: 100%; vertical-align: top; position: absolute; transform: translateY(-50%); top: 50%; left: 0; right: 0; margin: auto; }
.t-program-cards .t-program-card p { color: var(--black); font-size: min(calc((17 / var(--width)) * 100vw), 1.7rem); line-height: 1.47; }
@media (max-width: 760px) { .t-program-cards .t-program-card p { font-size: min(calc((28 / 760) * 100vw), 2.8rem); } }
.t-program-cards .t-program-card p > strong { color: var(--black); font-size: min(calc((22 / var(--width)) * 100vw), 2.2rem); font-weight: 500; line-height: 1.4; }
@media (max-width: 760px) { .t-program-cards .t-program-card p > strong { font-size: min(calc((38 / 760) * 100vw), 3.8rem); line-height: 1.3; } }
.t-program-cards .t-program-card p:has(strong) { margin-bottom: calc((20 / var(--width)) * 100vw); }
.t-program-cards .t-program-card p:has(strong) small { font-size: 87.5%; }
@media (max-width: 760px) { .t-program-cards .t-program-card p:has(strong) { margin-bottom: calc((12 / 760) * 100vw); } }
.t-program-cards .t-program-card.law .card__facility { background-color: #5da24d; }
.t-program-cards .t-program-card.law p > strong { color: #5da24d; }
.t-program-cards .t-program-card.int .card__facility { background-color: #db9900; }
.t-program-cards .t-program-card.int p > strong { color: #db9900; }
.t-program-cards .t-program-card.eco .card__facility { background-color: #27a8d1; }
.t-program-cards .t-program-card.eco p > strong { color: #27a8d1; }
.t-program-cards .t-program-card.man .card__facility { background-color: #a63a3a; }
.t-program-cards .t-program-card.man p > strong { color: #a63a3a; }
.t-program-cards .t-program-card.soc .card__facility { background-color: #0685bd; }
.t-program-cards .t-program-card.soc p > strong { color: #0685bd; }
.t-program-cards .t-program-card.sci .card__facility { background-color: #009198; }
.t-program-cards .t-program-card.sci p > strong { color: #009198; }

.schedule__area { padding-top: calc((104 / var(--width)) * 100vw); padding-bottom: calc((200 / var(--width)) * 100vw); }
@media (max-width: 760px) { .schedule__area { padding-top: calc((80 / 760) * 100vw); padding-bottom: calc((80 / 760) * 100vw); } }
.schedule__area .ttl { margin-bottom: calc((32 / var(--width)) * 100vw); }

ul.schedule__tabs { display: flex; column-gap: 3px; position: relative; padding-bottom: min(calc((10 / var(--width)) * 100vw), 10px); }
ul.schedule__tabs::after { content: ''; display: block; height: min(calc((10 / var(--width)) * 100vw), 10px); width: 100%; background-color: #dddddd; border: min(calc((3 / var(--width)) * 100vw), 3px) solid var(--black); position: absolute; left: 0; bottom: 0; z-index: -1; }
ul.schedule__tabs li { min-width: 210px; }
@media (max-width: 760px) { ul.schedule__tabs li { min-width: initial; } }
ul.schedule__tabs li label { display: block; font-size: min(calc((24 / var(--width)) * 100vw), 2.4rem); font-weight: 500; background-color: #dddddd; padding: calc((8 / var(--width)) * 100vw) calc((16 / var(--width)) * 100vw); letter-spacing: 0.5rem; border-top-left-radius: min(calc((10 / var(--width)) * 100vw), 10px); border-top-right-radius: min(calc((10 / var(--width)) * 100vw), 10px); border-top: min(calc((3 / var(--width)) * 100vw), 3px) solid var(--black); border-left: min(calc((3 / var(--width)) * 100vw), 3px) solid var(--black); border-right: min(calc((3 / var(--width)) * 100vw), 3px) solid var(--black); width: 100%; height: 100%; transition: background ease .25s; }
@media (max-width: 760px) { ul.schedule__tabs li label { font-size: min(calc((30 / 760) * 100vw), 3rem); } }
ul.schedule__tabs li.tab--bunkei label { background-color: #fbd580; }
ul.schedule__tabs li.tab--rikou label { background-color: #aae1f8; }

.schedule__contents { margin: 0 0 calc((29 / var(--width)) * 100vw); }

.schedule__content { overflow: auto; visibility: hidden; opacity: 0; height: 0; padding: 0; transition: visibility ease .3s, opacity ease .3s, height linear .0s; }
.schedule__content::-webkit-scrollbar { height: 6px; }
.schedule__content::-webkit-scrollbar-track { background-color: #dcdddd; border: min(calc((2 / var(--width)) * 100vw), 2px) solid var(--black); border-radius: min(calc((12 / var(--width)) * 100vw), 12px); }
.schedule__content::-webkit-scrollbar-thumb { background-color: #808080; border: min(calc((2 / var(--width)) * 100vw), 2px) solid var(--black); height: min(calc((6 / var(--width)) * 100vw), 6px); border-radius: min(calc((12 / var(--width)) * 100vw), 12px); }
.schedule__content.content--common img { display: block; width: calc((1889 / var(--width)) * 100vw); height: auto; max-width: 1889px; }
.schedule__content.content--bunkei::-webkit-scrollbar-track { background-color: #fbd9af; }
.schedule__content.content--bunkei::-webkit-scrollbar-thumb { background-color: #f5a949; }
.schedule__content.content--bunkei img { display: block; width: calc((1703 / var(--width)) * 100vw); height: auto; max-width: 1703px; }
.schedule__content.content--rikou::-webkit-scrollbar-track { background-color: #b4e5f9; }
.schedule__content.content--rikou::-webkit-scrollbar-thumb { background-color: #54c3f1; }
.schedule__content.content--rikou img { display: block; width: calc((1615 / var(--width)) * 100vw); height: auto; max-width: 1615px; }

input[name="tab__switch"] { opacity: 0; position: absolute; -webkit-appearance: auto; }

input#tab__common:checked ~ ul.schedule__tabs li.tab--common label { background-color: #dddddd; position: relative; top: min(calc((3 / var(--width)) * 100vw), 3px); }

input#tab__bunkei:checked ~ ul.schedule__tabs li.tab--bunkei label { background-color: #f6ab00; position: relative; top: min(calc((3 / var(--width)) * 100vw), 3px); }

input#tab__rikou:checked ~ ul.schedule__tabs li.tab--rikou label { background-color: #54c3f1; position: relative; top: min(calc((3 / var(--width)) * 100vw), 3px); }

input#tab__common:checked ~ ul.schedule__tabs::after { background-color: #dddddd; }

input#tab__bunkei:checked ~ ul.schedule__tabs::after { background-color: #f6ab00; }

input#tab__rikou:checked ~ ul.schedule__tabs::after { background-color: #54c3f1; }

input#tab__common:checked ~ .schedule__contents .content--common, input#tab__bunkei:checked ~ .schedule__contents .content--bunkei, input#tab__rikou:checked ~ .schedule__contents .content--rikou { visibility: visible; opacity: 1; height: 100%; padding-top: calc((24 / var(--width)) * 100vw); padding-bottom: calc((24 / var(--width)) * 100vw); }

.others { padding-bottom: calc((125 / var(--width)) * 100vw); }

.img_dining-room { display: block; position: relative; }
@media screen and (min-width: 761px) { .img_dining-room { transform: translateY(calc((-108 / var(--width)) * 100vw)); margin-bottom: calc((-58 / var(--width)) * 100vw); } }
@media (max-width: 760px) { .img_dining-room { transform: translateY(-20px); } }

dl.access { margin-bottom: calc((63 / var(--width)) * 100vw); position: relative; z-index: 1; }
dl.access dt { color: #fff; font-size: min(calc((37 / var(--width)) * 100vw), 3.7rem); line-height: 1; text-align: center; letter-spacing: 0.5rem; background-color: #eb6d9a; border: min(calc((3 / var(--width)) * 100vw), 3px) solid var(--black); border-radius: min(calc((10 / var(--width)) * 100vw), 10px); padding: min(calc((16 / var(--width)) * 100vw), 16px); margin-bottom: min(calc((24 / var(--width)) * 100vw), 24px); position: relative; width: 100%; }
@media (max-width: 760px) { dl.access dt { font-size: min(calc((32 / 760) * 100vw), 3.2rem); line-height: 1.5; letter-spacing: 0; padding: min(calc((16 / 760) * 100vw), 16px) min(calc((24 / 760) * 100vw), 24px); margin-bottom: min(calc((24 / 760) * 100vw), 24px); } }
dl.access dt::after { content: ''; display: block; background-color: #c3c3c3; border: min(calc((3 / var(--width)) * 100vw), 3px) solid var(--black); border-radius: min(calc((10 / var(--width)) * 100vw), 10px); width: 100%; height: 100%; position: absolute; left: min(calc((9 / var(--width)) * 100vw), 9px); top: min(calc((9 / var(--width)) * 100vw), 9px); z-index: -1; }

.maps { background-color: #fff; border-radius: min(calc((10 / var(--width)) * 100vw), 10px); box-shadow: min(calc((8 / var(--width)) * 100vw), 8px) min(calc((8 / var(--width)) * 100vw), 8px) 0px rgba(0, 0, 0, 0.2); padding: min(calc((48 / var(--width)) * 100vw), 48px) min(calc((100 / var(--width)) * 100vw), 100px) min(calc((64 / var(--width)) * 100vw), 64px); max-width: 1400px; }
@media (max-width: 760px) { .maps { padding: min(calc((24 / var(--width)) * 100vw), 24px) min(calc((24 / var(--width)) * 100vw), 24px) min(calc((56 / var(--width)) * 100vw), 56px); } }

ul.btns li:not(:last-child) { margin-bottom: calc((28 / var(--width)) * 100vw); }

.present__area { padding: min(calc((48 / var(--width)) * 100vw), 48px) 0 min(calc((42 / var(--width)) * 100vw), 42px); position: relative; overflow-x: clip; }
.present__area::after { content: ''; display: block; width: 100%; height: 100%; background-color: #f39939; mix-blend-mode: multiply; position: absolute; top: 0; left: 0; }

.present-box { aspect-ratio: 1400 / 825; padding: min(calc((60 / var(--width)) * 100vw), 60px); position: relative; z-index: 1; }
@media (max-width: 760px) { .present-box { padding: min(calc((60 / var(--width)) * 100vw), 60px) min(calc((48 / var(--width)) * 100vw), 48px); } }
.present-box::after { content: ''; display: block; width: 100%; height: 100%; background-color: #fff; border: calc((9 / var(--width)) * 100vw) solid #f3e259; border-radius: calc((34 / var(--width)) * 100vw); clip-path: polygon(0 0, calc(100% - 80px) 0, 100% 80px, 100% 80px, 100% 100%, 80px 100%, 0 calc(100% - 80px)); position: absolute; z-index: -1; top: 0; left: 0; position: absolute; }
@media (max-width: 760px) { .present-box::after { clip-path: polygon(0 0, calc(100% - 40px) 0, 100% 40px, 100% 40px, 100% 100%, 40px 100%, 0 calc(100% - 40px)); } }
.present-box span.corner { width: 180px; height: min(calc((3 / var(--width)) * 100vw), 3px); background-color: var(--black); position: absolute; }
@media (max-width: 760px) { .present-box span.corner { width: 80px; } }
.present-box span.corner.cr { transform: rotate(45deg); transform-origin: top left; top: -20px; right: -80px; }
@media (max-width: 760px) { .present-box span.corner.cr { top: -10px; right: -30px; } }
.present-box span.corner.cl { transform: rotate(45deg); transform-origin: left bottom; left: -20px; bottom: 100px; }
@media (max-width: 760px) { .present-box span.corner.cl { left: -10px; bottom: 48px; } }
.present-box p { color: var(--black); font-size: min(calc((26 / var(--width)) * 100vw), 2.6rem); font-weight: 500; line-height: 1.46; margin-bottom: calc((28 / var(--width)) * 100vw); }
.present-box figure { max-width: 424px; margin: 0 auto calc((12 / var(--width)) * 100vw); }
.present-box figure figcaption { font-size: min(calc((19 / var(--width)) * 100vw), 1.9rem); }

.present__area .ttl { text-transform: uppercase; margin-bottom: calc((32 / var(--width)) * 100vw); }

.m-footer { padding-top: min(calc((58 / var(--width)) * 100vw), 58px); padding-bottom: min(calc((70 / var(--width)) * 100vw), 70px); }
@media (max-width: 760px) { .m-footer { padding-bottom: min(calc((140 / 760) * 100vw), 140px); } }

.bnr--oc { display: block; width: 100%; max-width: 1000px; height: auto; margin: 0 auto calc((60 / var(--width)) * 100vw); }
@media (max-width: 760px) { .bnr--oc { margin-bottom: calc((24 / 760) * 100vw); } }

.sns__area { margin-bottom: calc((20 / var(--width)) * 100vw); }
@media screen and (min-width: 761px), print { .sns__area { display: flex; align-items: center; column-gap: calc((54 / var(--width)) * 100vw); } }
@media (max-width: 760px) { .sns__area { margin-bottom: calc((37 / 760) * 100vw); } }

.sns__label { display: block; width: calc((427 / var(--width)) * 100vw); height: auto; max-width: 427px; animation: sns-label cubic-bezier(0, 0.19, 0.58, 0.91) infinite 1.75s; transform-origin: left bottom; }
@media screen and (min-width: 761px), print { .sns__label { flex-shrink: 0; } }
@media (max-width: 760px) { .sns__label { margin-bottom: calc((24 / 760) * 100vw); } }

@keyframes sns-label { 0% { transform: rotate(0deg); }
  50% { transform: rotate(-5deg); }
  100% { transform: rotate(0deg); } }
ul.sns__links { display: flex; align-items: center; justify-content: space-between; }
@media screen and (min-width: 761px), print { ul.sns__links { column-gap: min(calc((72 / var(--width)) * 100vw), 72px); margin-left: auto; flex-shrink: 0; } }
@media (max-width: 760px) { ul.sns__links { margin-left: calc((80 / 760) * 100vw); } }
ul.sns__links li { flex-shrink: 0; }
ul.sns__links li a { display: block; width: calc((120 / var(--width)) * 100vw); height: calc((120 / var(--width)) * 100vw); max-width: 120px; max-height: 120px; aspect-ratio: 1 / 1; transform-origin: center center; transition: transform ease .3s; }
@media (hover: hover) { ul.sns__links li a:hover, ul.sns__links li a:focus { transform: scale(90%); } }

@media screen and (min-width: 761px), print { .contacts { display: flex; align-items: end; justify-content: space-between; background-color: #f0f0f0; border: min(calc((8 / var(--width)) * 100vw), 8px) solid #c3c3c3; border-radius: min(calc((20 / var(--width)) * 100vw), 20px); padding: min(calc((30 / var(--width)) * 100vw), 30px) min(calc((100 / var(--width)) * 100vw), 100px) min(calc((40 / var(--width)) * 100vw), 40px); margin-bottom: min(calc((100 / var(--width)) * 100vw), 100px); }
  .contacts > div { flex-shrink: 0; }
  .contacts .contact__name { font-size: min(calc((43 / var(--width)) * 100vw), 4.3rem); font-weight: 500; }
  .contacts .contact__name small { font-size: 51%; }
  .contacts dl.contact__hours { font-size: min(calc((14 / var(--width)) * 100vw), 1.4rem); line-height: 1; color: #fff; background-color: var(--black); border-radius: min(calc((13 / var(--width)) * 100vw), 13px); padding: 6px 12px; display: flex; align-items: center; column-gap: min(calc((8 / var(--width)) * 100vw), 8px); margin-top: min(calc((12 / var(--width)) * 100vw), 12px); }
  .contacts dl.contact__hours dt { font-weight: normal; }
  .contacts .contact__tel { font-size: min(calc((65 / var(--width)) * 100vw), 6.5rem); font-weight: 300; }
  .contacts .contact__tel + p { font-size: min(calc((14 / var(--width)) * 100vw), 1.4rem); } }
@media (max-width: 760px) { .contacts { background-color: #f0f0f0; border: min(calc((8 / var(--width)) * 100vw), 8px) solid #c3c3c3; border-left: 0; border-right: 0; padding: min(calc((40 / var(--width)) * 100vw), 40px) min(calc((56 / var(--width)) * 100vw), 56px); margin: 0 -24px min(calc((70 / var(--width)) * 100vw), 70px); display: flex; flex-wrap: wrap; justify-content: space-between; }
  .contact__name { font-size: min(calc((43 / var(--width)) * 100vw), 4.3rem); font-weight: 500; width: 50%; margin-bottom: auto; }
  .contact__name small { font-size: 55.8%; }
  dl.contact__hours { display: flex; align-items: center; color: #fff; background-color: var(--black); padding: calc((10 / 760) * 100vw); margin-top: calc((10 / 760) * 100vw); margin-bottom: calc((10 / 760) * 100vw); width: 48%; margin-bottom: auto; }
  dl.contact__hours dt, dl.contact__hours dd { flex-shrink: 0; }
  dl.contact__hours dt { font-size: calc((14 / 760) * 100vw); border: 1px solid #fff; padding: calc((24 / 760) * 100vw); margin-right: calc((8 / 760) * 100vw); }
  dl.contact__hours dd { font-size: calc((19 / 760) * 100vw); }
  .contacts > div { width: 100%; }
  .contacts > div:first-child { display: flex; align-items: flex-start; }
  .contact__tel { font-size: min(calc((70 / 760) * 100vw), 7rem); line-height: 1; white-space: nowrap; margin-bottom: calc((8 / 760) * 100vw); } }
.f-logo { display: block; max-width: 350px; height: auto; margin: 0 auto calc((30 / var(--width)) * 100vw); }
@media (max-width: 760px) { .f-logo { width: calc((475 / var(--width)) * 100vw); max-width: 475px; } }

p.copyright { font-size: min(calc((18 / var(--width)) * 100vw), 1.8rem); font-weight: 300; text-align: center; }

button#pagetop { display: block; font-size: 0; width: min(calc((80 / var(--width)) * 100vw), 80px); height: min(calc((80 / var(--width)) * 100vw), 80px); background: url("../img/common/icon_pagetop.png") center center no-repeat; background-size: contain; position: fixed; right: min(calc((24 / var(--width)) * 100vw), 24px); bottom: min(calc((10 / var(--width)) * 100vw), 10px); z-index: 8; transition: transform ease .25s; }
@media (hover: hover) { button#pagetop:hover, button#pagetop:focus { transform: scale(80%); } }
@media (max-width: 760px) { button#pagetop { right: min(calc((24 / 760) * 100vw), 24px); bottom: min(calc((120 / 760) * 100vw), 120px); } }

.dot-bar { width: 100%; display: flex; align-items: center; }
.dot-bar::before, .dot-bar::after { content: ''; display: block; width: min(calc((13 / var(--width)) * 100vw), 13px); height: min(calc((13 / var(--width)) * 100vw), 13px); border: min(calc((3 / var(--width)) * 100vw), 3px) solid var(--black); border-radius: 50%; }
.dot-bar span { width: 100%; height: min(calc((3 / var(--width)) * 100vw), 3px); background-color: var(--black); display: block; }

a.btn { display: block; background-color: var(--black); border: min(calc((3 / var(--width)) * 100vw), 3px) solid #909090; border-radius: calc((44 / var(--width)) * 100vw); color: #ffffff; padding: min(calc((22 / var(--width)) * 100vw), 22px) min(calc((44 / var(--width)) * 100vw), 44px); text-align: center; max-width: 970px; margin-inline: auto; font-size: min(calc((37 / var(--width)) * 100vw), 3.7rem); font-weight: 500; letter-spacing: 0.5rem; position: relative; }
@media (max-width: 760px) { a.btn { font-size: min(calc((32 / 760) * 100vw), 3.2rem); letter-spacing: 0; padding: min(calc((16 / 760) * 100vw), 16px) min(calc((24 / 760) * 100vw), 24px); } }
a.btn::after { content: ''; display: block; width: min(calc((50 / var(--width)) * 100vw), 50px); height: min(calc((50 / var(--width)) * 100vw), 50px); background: url("../img/common/icon_arrow.svg") center center no-repeat; background-size: contain; background-position: 0 0; position: absolute; right: min(calc((40 / var(--width)) * 100vw), 40px); top: 50%; transform: translateY(-50%); transition: transform ease .2s; }
@media (max-width: 760px) { a.btn::after { width: calc((35 / 760) * 100vw); height: calc((35 / 760) * 100vw); right: calc((40 / 760) * 100vw); } }
@media (hover: hover) { a.btn:hover::after, a.btn:focus::after { transform: translateY(-50%) scale(85%); } }
a.btn[href=""] { pointer-events: none; background-color: #8e8e8e; color: #fff; }
a.btn.wh { background-color: #fff; color: var(--black); text-align: left; }
@media (max-width: 760px) { a.btn.wh { border-radius: calc((10 / 760) * 100vw); padding-right: calc((64 / 760) * 100vw); } }
a.btn[target="_blank"]::after { content: ''; display: block; background: url("../img/common/icon_window.svg") center center no-repeat; background-size: contain; width: min(calc((40 / var(--width)) * 100vw), 40px); height: min(calc((28 / var(--width)) * 100vw), 28px); }
@media (hover: hover) { a.btn:hover[target="_blank"]::after, a.btn:focus[target="_blank"]::after { right: min(calc((40 / var(--width)) * 100vw), 40px); } }

.ttl { color: #fff; font-size: min(calc((65 / var(--width)) * 100vw), 6.5rem); font-weight: 500; letter-spacing: 0.5rem; text-shadow: 3px 3px 0px var(--black); text-align: center; margin-bottom: calc((70 / var(--width)) * 100vw); position: relative; z-index: 1; }
@media (max-width: 760px) { .ttl { font-size: min(calc((57 / 760) * 100vw), 5.7rem); margin-bottom: calc((46 / 760) * 100vw); } }
.ttl::after { content: ''; text-align: center; position: absolute; top: 0; left: 0; right: 0; margin: auto; z-index: -1; text-storoke-width: 3px; text-storoke-color: #3e3a39; -webkit-text-stroke-width: 3px; -webkit-text-stroke-color: #3e3a39; }

.program__area .ttl::after { content: '共通プログラム'; }

.t-program__area .ttl::after { content: '体験型プログラム'; }

.schedule__area .ttl { text-transform: uppercase; line-height: 1; transform: translateY(-70%); }

.schedule__area .ttl::after { display: none; }

.schedule__area .ttl span { display: inline-block; background-color: #fff; padding-inline: 24px; position: relative; z-index: -1; }

.schedule__area .ttl span::after { content: 'Schedule'; text-transform: uppercase; text-align: center; position: absolute; top: 0; left: 0; right: 0; margin: auto; z-index: -1; text-storoke-width: 3px; text-storoke-color: #3e3a39; -webkit-text-stroke-width: 3px; -webkit-text-stroke-color: #3e3a39; }

.present__area .ttl::after { content: 'Present'; text-transform: uppercase; }

.txt--right { text-align: right; }

.txt--center { text-align: center; }

.txt--left { text-align: left; }

.notes { font-size: min(calc((16 / var(--width)) * 100vw), 1.6rem); text-indent: calc((-16 / var(--width)) * 100vw); line-height: 1.3; padding-left: calc((16 / var(--width)) * 100vw); }
.notes::before { content: '※'; display: inline-block; }
@media (max-width: 760px) { .notes { font-size: min(calc((25 / 760) * 100vw), 2.5rem); } }

html[lang="en"] .notes::before { content: '*'; }

.fs20 { font-size: 2rem; }

.mgb84 { margin-bottom: min(calc((84 / var(--width)) * 100vw), 84px); }

@media (max-width: 760px) { .mgb70sp { margin-bottom: min(calc((70 / 760) * 100vw), 70px); } }
.up { opacity: 0; transform: translateY(30px); }

.up--active { animation: fadeUP 0.75s forwards; opacity: 0; }

@keyframes fadeUP { from { opacity: 0; transform: translateY(30px); }
  to { opacity: 1; transform: translateY(0); } }
.delay01 { animation-delay: 0.1s; }

.delay02 { animation-delay: 0.2s; }

.delay03 { animation-delay: 0.3s; }

.delay04 { animation-delay: 0.4s; }

.delay05 { animation-delay: 0.5s; }
