@charset "utf-8";
/* CSS Document -----------------------------

 2026.08.27

--------------------------------------------*/
/*============================================
  共通パーツ
=============================================*/
:root {
  --size180: clamp(130px, calc(130px + 50 * ((100vw - 375px) / 1545)), 180px);
  --size160: clamp(60px, calc(60px + 100 * ((100vw - 375px) / 1545)), 160px);
  --size150: clamp(50px, calc(50px + 100 * ((100vw - 375px) / 1545)), 150px);
  --size130: clamp(50px, calc(50px + 80 * ((100vw - 375px) / 1545)), 130px);
  --size100: clamp(50px, calc(50px + 50 * ((100vw - 375px) / 1545)), 100px);
  --size20-100: clamp(20px, calc(20px + 80 * ((100vw - 375px) / 1545)), 100px);
  --size90: clamp(50px, calc(50px + 40 * ((100vw - 375px) / 1545)), 90px);
  --size80: clamp(50px, calc(50px + 30 * ((100vw - 375px) / 1545)), 80px);
  --size20-80: clamp(20px, calc(20px + 60 * ((100vw - 375px) / 1545)), 80px);
  --size70: clamp(50px, calc(50px + 20 * ((100vw - 375px) / 1545)), 70px);
  --size20-70: clamp(20px, calc(20px + 50 * ((100vw - 375px) / 1545)), 70px);
  --size60: clamp(40px, calc(40px + 20 * ((100vw - 375px) / 1545)), 60px);
  --size20-60: clamp(20px, calc(20px + 40 * ((100vw - 375px) / 1545)), 60px);
  --size50: clamp(40px, calc(40px + 10 * ((100vw - 375px) / 1545)), 50px);
  --size20-50: clamp(20px, calc(20px + 30 * ((100vw - 375px) / 1545)), 50px);
  --size40: clamp(30px, calc(30px + 10 * ((100vw - 375px) / 1545)), 40px);
  --size20-40: clamp(20px, calc(20px + 20 * ((100vw - 375px) / 1545)), 40px);
  --size30: clamp(20px, calc(20px + 10 * ((100vw - 375px) / 1545)), 30px);
  --size20: clamp(10px, calc(10px + 10 * ((100vw - 375px) / 1545)), 20px);
  --green: #539AA0;
  --orange: #F59C44;
  --color-text: #111;
  --font-w: 400;
  --font-jp: "Helvetica Neue", Arial, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "BIZ UDPGothic", Meiryo, sans-serif;
  --font-base: clamp(13px, calc(13px + 3 * ((100vw - 375px) / 1545)), 16px);
  --font40: clamp(24px, calc(24px + 16 * ((100vw - 375px) / 1545)), 40px);
  --font36: clamp(20px, calc(20px + 16 * ((100vw - 375px) / 1545)), 36px);
  --font32: clamp(20px, calc(20px + 12 * ((100vw - 375px) / 1545)), 32px);
  --font30: clamp(20px, calc(20px + 10 * ((100vw - 375px) / 1545)), 30px);
  --font26: clamp(20px, calc(20px + 6 * ((100vw - 375px) / 1545)), 26px);
  --font24: clamp(16px, calc(16px + 8 * ((100vw - 375px) / 1545)), 24px);
  --font22: clamp(16px, calc(16px + 6 * ((100vw - 375px) / 1545)), 22px);
  --font20: clamp(15px, calc(15px + 5 * ((100vw - 375px) / 1545)), 20px);
  --font18: clamp(14px, calc(14px + 4 * ((100vw - 375px) / 1545)), 18px);
  --font15: clamp(13px, calc(13px + 2 * ((100vw - 375px) / 1545)), 15px);
  --font14: clamp(12px, calc(12px + 2 * ((100vw - 375px) / 1545)), 14px);
  --font12: clamp(10px, calc(10px + 2 * ((100vw - 375px) / 1545)), 12px);
  --line-height-base: 1.5;
  --spacing-base: .018em;
}
#interview .interview__staff-card {background: #3D8389;}
.HeiseiMaruGothicStdW4 {font-family: "heisei-maru-gothic-std", sans-serif;font-weight: 400;font-style: normal;}
.HeiseiMaruGothicStdW8 {font-family: "heisei-maru-gothic-std", sans-serif;font-weight: 800;font-style: normal;}
.FuturaPTM {font-family: "futura-pt", sans-serif;font-weight: 500;font-style: normal;}
.FuturaPTH {font-family: "futura-pt", sans-serif;font-weight: 700;font-style: normal;}
.blank {padding: var(--size150) 0;}
/* ----------------------------------------------

 * タグの設定

---------------------------------------------- */
a {
  display: inline-block;
  outline: none;
  color: var(--color-text);
  cursor: pointer;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
  transition: .3s ease;
  user-select: none;
}
a.link {position: absolute;top: 0;left: 0;z-index: 2;width: 100%;height: 100%;}
input,
input[type="submit"],
input[type="button"],
button {
  border-radius: 0;
  appearance: button;
  box-sizing: border-box;
  outline: none;
  color: var(--color-text);
  font-style: normal;
  font-weight: var(--font-w);
  font-family: var(--font-jp);
  cursor: pointer;
}
input[type="submit"]::-webkit-search-decoration,
input[type="button"]::-webkit-search-decoration {display: none;}
input[type="button"],
input[type="text"],
input[type="submit"],
input[type="image"],
input[type="tel"],
input[type="email"],
textarea {appearance: none;border-radius: 0;color: var(--color-text);}
select {font-family: var(--font-jp);appearance: none;}
/*------------------------------------------------*/
html {
  margin: 0;
  padding: 0;
  overflow-x: clip;
  background: #fff;
  color: var(--color-text);
  font-style: normal;
  font-weight: var(--font-w);
  font-size: 62.5%;
  line-height: var(--line-height-base);
  font-family: var(--font-jp);
  -webkit-font-smoodting: antialiased;
  -moz-osx-font-smoodting: grayscale;
  word-break: break-all;
}
body {overflow-x: clip;font-size: var(--font-base);line-height: var(--line-height-base);}
h3,h4,h5 {line-height: 1.3;}
p {font-size: var(--font-base);line-height: var(--line-height-base);}
li,th,td,dt,dd,figcaption {line-height: var(--line-height-base);}
section {position: relative;z-index: 1;}
.inner {width: 90%;max-width: 1120px;margin: 0 auto;}
.flexbox {display: flex;flex-wrap: wrap;justify-content: space-between;}
/* title common */
.title_common {position: relative;margin-bottom: var(--size50);}
.title_common h2 {color: #BEE8DD;font-size: min(clamp(45px, calc(45px + 55 * ((100vw - 375px) / 1545)), 100px), 10vw);letter-spacing: .1em;text-align: center;}
.title_common p.text {margin-top: -1em;font-size: var(--font30);letter-spacing: .2em;text-align: center;}
a[href^="tel:"] {pointer-events: none;}
.pc,.pc2,.pc3 {display: block;}
.sp,.sp2,.sp3 {display: none;}
@media only screen and ( max-width : 1024px ) {
  .pc3 {display: none;}
  .sp3 {display: block;}
}
@media only screen and ( max-width : 767px ) {
  a[href^="tel:"] {pointer-events: visible;}
  .pc {display: none;}
  .sp {display: block;}
}
@media only screen and ( max-width : 500px ) {
  .pc2 {display: none;}
  .sp2 {display: block;}
}
/*------------------------------------------------

  ページ表示時のフェードイン

------------------------------------------------*/
body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: #fff;
  pointer-events: none;
  animation: pageRevealOverlay 2.5s ease-out forwards;
}
@keyframes pageRevealOverlay {
  from {opacity: 1;}
  to {opacity: 0;}
}
@media (prefers-reduced-motion: reduce) {
  body::before {animation: none;opacity: 0;}
}
/*------------------------------------------------

  header

------------------------------------------------*/
header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: sticky;
  top: 0;
  right: 0;
  left: 0;
  z-index: 99;
  padding: 10px var(--font30);
  background: #fff;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 16%);
  transition: .3s;
  transform: translateY(0);
}
header.is-hidden {transform: translateY(-100%);}
@media only screen and ( max-width : 767px ) {
  header.is-hidden {transform: translateY(0);}
}
header .logo {position: relative;z-index: 1;width: 20%;}
header nav {display: flex;justify-content: flex-end;width: 100%;}
header nav ul {display: flex;justify-content: center;align-items: center;gap: 2vw;position: absolute;top: 50%;left: 51%;transform: translate(-50%, -50%);width: 100%;}
header nav ul li a {
  position: relative;
  color: #414141;
  font-size: .95vw;
	line-height: 1;
	letter-spacing: .08em;
  text-align: center;
}
header nav ul li a span {display: block;margin-bottom: .5em;color: #6BAA9A;font-size: .8em;letter-spacing: .05em;text-align: center;transition: .3s;}
header nav .entry a {
  position: relative;
  z-index: 1;
  padding: 1.2vw 3.5vw;
  border-radius: 4em;
  background: #EB8A2A;
  color: #fff;
  font-weight: 700;
  font-size: 1.2vw;
  letter-spacing: .08em;
}
header nav .entry a:hover {background: #0E5A49;}
header nav .entry a span {display: block;color: #FAB352;font-size: 0.8em;letter-spacing: .1em;text-align: center;transition: .3s;}
header nav .entry a:hover span {color: #6BAA9A;}
header .hamburger {display: none;}
@media only screen and ( max-width : 1024px ) {
  header {height: 70px;padding: 0 15px;}
  header .logo {width: 200px;}
  header .hamburger {
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: 0;
    right: 0;
    z-index: 30;
    width: 90px;
    height: 88px;
    padding-top: 27px;
    border: none;
    border-bottom-left-radius: 20px;
    box-shadow: 0 0 26px rgba(183, 174, 169, 16%);
    overflow: hidden;
    background: #fff;
    color: #0E5A49;
    font-weight: 700;
    font-size: 1.4rem;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  }
  header .hamburger span {
    display: block;
    position: absolute;
    width: 30px;
    height: 2px;
    border-radius: 2px;
    background: #0E5A49;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    transform-origin: center;
  }
  header .hamburger span:nth-child(1) {top: 32px;}
  header .hamburger span:nth-child(2) {top: 43px;}
  header .hamburger.is-active span:nth-child(1) { transform: translateY(5.5px) rotate(45deg); }
  header .hamburger.is-active span:nth-child(2) { transform: translateY(-5.5px) rotate(-45deg); }
  /* ナビゲーションメニュー */
  header nav {
    display: block;
    position: fixed;
    top: 0;
    right: -100%;
    z-index: 20;
    width: 80%;
    max-width: 320px;
    height: 100vh;
    padding: 80px 40px 30px;
    background: #fff;
    backdrop-filter: blur(20px);
    box-shadow: -10px 0 32px rgba(114, 90, 81, 24%);
    transition: right 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  }
  header nav.is-active {right: 0;}
  header nav ul {position: initial;transform: none;display: block;margin-bottom: 20px;}
  header nav ul li {
    opacity: 0;
    transform: translateX(30px);
    margin-bottom: 20px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  }
  header nav.is-active ul li {opacity: 1;transform: translateX(0);}
  header nav.is-active ul li:nth-child(1) {transition-delay: .1s;}
  header nav.is-active ul li:nth-child(2) {transition-delay: .2s;}
  header nav.is-active ul li:nth-child(3) {transition-delay: .3s;}
  header nav.is-active ul li:nth-child(4) {transition-delay: .4s;}
  header nav.is-active ul li:nth-child(5) {transition-delay: .5s;}
  header nav.is-active ul li:nth-child(6) {transition-delay: .6s;}
  header nav.is-active ul li:nth-child(7) {transition-delay: .7s;}
  header nav.is-active ul li:nth-child(8) {transition-delay: .8s;}
  header nav .entry {opacity: 0;transform: translateX(30px);transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);}
  header nav.is-active .entry {opacity: 1;transform: translateX(0);transition-delay: .8s;}
  header nav ul li a {font-size: 1.6rem;text-align: left;}
  header nav .entry a {width: 100%;padding: 20px 0;border-radius: 50px;font-size: 2rem;text-align: center;}
  header nav ul li a:hover {transform: translateX(10px);}
  header nav ul li a span {text-align: left;}
}
/*--------------------------------------------------

  footer

--------------------------------------------------*/
footer {padding: 30px 0;background: #006577;}
footer small {display: block;color: #fff;font-size: var(--font12);text-align: center;}
/*--------------------------------------------------

  back top

--------------------------------------------------*/
.wrapper {position: relative;}
.page_top {
  display: none;
  position: fixed;
  bottom: calc(24px + var(--footer-offset, 0px));
  right: 24px;
  z-index: 10;
}
.page_top #goToTop {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  border: 1px solid rgba(0, 101, 119, .15);
  background: rgba(255, 255, 255, .7);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 8px 24px rgba(0, 101, 119, .16);
  color: #006577;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .1em;
  transition: .3s ease;
}
.page_top #goToTop svg {display: block;transition: transform .3s ease;}
.page_top #goToTop:hover {
  background: #006577;
  color: #fff;
  border-color: #006577;
  transform: translateY(-5px);
  box-shadow: 0 12px 28px rgba(0, 101, 119, .32);
}
.page_top #goToTop:hover svg {transform: translateY(-2px);}
@media only screen and ( max-width : 767px ) {
  .page_top {right: 14px;bottom: calc(14px + var(--footer-offset, 0px));}
  .page_top #goToTop {width: 46px;height: 46px;font-size: 8px;}
}