@charset "UTF-8";
/* destyle.css v4.0.0 | MIT License | https://github.com/nicolas-cusan/destyle.css */
/* ↓ パッケージ導入せず直書きも可能、必要に応じてnpm管理も可 */
@import url("https://unpkg.com/destyle.css/destyle.css");
/* ----------------------------------------
Foundation - base -
プロジェクトにおける基本的なスタイルを定義します。
ページの下地としての全体の背景や、基本的なタイポグラフィなどが該当します。
---------------------------------------- */
@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@700&family=Noto+Sans+JP:wght@100..900&display=swap");
* {
  box-sizing: border-box;
  font-size: inherit;
}

html {
  font-size: 62.5%;
  overflow-x: hidden;
}

body {
  color: #333333;
  background: #fff;
  font-size: clamp(15px, 15px + (18 - 15) * (100vw - 375px) / (1280 - 375), 18px);
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  letter-spacing: 0.08em;
  word-wrap: break-word;
  font-feature-settings: "palt" 1;
  text-align: justify;
  text-justify: inter-ideograph;
  line-height: 2;
  position: relative;
  overflow-x: hidden;
  font-size: 1.5vw;
}
@media only screen and (max-width: 1400px) {
  body {
    font-size: 1.25vw;
  }
}
@media only screen and (max-width: 960px) {
  body {
    font-size: 2.2vw;
  }
}
@media only screen and (max-width: 768px) {
  body {
    font-size: 3.25vw;
  }
}
@media only screen and (min-width: 1401px) {
  body {
    font-size: 1.6rem;
  }
}
@media only screen and (max-width: 768px) {
  body {
    overflow-x: hidden;
  }
}

main {
  display: block;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  line-height: 1.3;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

img {
  -webkit-backface-visibility: hidden;
  vertical-align: bottom;
  width: 100%;
  height: auto;
}

iframe {
  vertical-align: bottom;
}

svg {
  overflow: hidden;
  backface-visibility: hidden;
  transform: translateZ(0);
}

a {
  text-decoration: none;
}

[id] {
  scroll-margin-top: 5em;
}

/* ----------------------------------------
form style
---------------------------------------- */
input,
button,
select,
textarea {
  background: transparent;
  border: none;
  border-radius: 0;
  font: inherit;
  font-size: 1.5rem;
  font-weight: normal;
  margin: 0;
}

textarea {
  width: 100%;
  resize: vertical;
}

input[type=submit],
input[type=button],
label,
button,
select {
  cursor: pointer;
}

select::-ms-expand {
  display: none;
}

input[type=text],
input[type=passwprd],
input[type=search],
input[type=email],
input[type=tel],
input[type=url],
input[type=date],
input[type=month],
input[type=week],
input[type=time],
input[type=number],
textarea {
  width: 100%;
  padding: 5px;
  border: solid 1px #aaa;
  background-color: #fff;
}

select {
  width: 100%;
  border: solid 1px #aaa;
  padding: 5px;
}

/* ----------------------------------------
Component
再利用できるパターンとして、小さな単位のモジュールを定義します。
grid/button/form/media...
---------------------------------------- */
.c-section {
  padding: 4em 3.25em;
}
@media only screen and (max-width: 960px) {
  .c-section {
    padding: 4em 2em;
  }
}
@media only screen and (max-width: 768px) {
  .c-section {
    padding: 3em 2em;
  }
}
@media only screen and (max-width: 480px) {
  .c-section {
    padding: 3em 1em;
  }
}
.c-pt0em {
  padding-top: 0;
}
.c-pt5em {
  padding-top: 5em;
}
@media only screen and (max-width: 768px) {
  .c-pt5em {
    padding-top: 3em;
  }
}
.c-pt7em {
  padding-top: 7em;
}
@media only screen and (max-width: 768px) {
  .c-pt7em {
    padding-top: 4em;
  }
}
.c-pt8em {
  padding-top: 8em;
}
@media only screen and (max-width: 768px) {
  .c-pt8em {
    padding-top: 4em;
  }
}
.c-pb0em {
  padding-bottom: 0;
}
.c-pb5em {
  padding-bottom: 5em;
}
@media only screen and (max-width: 768px) {
  .c-pb5em {
    padding-top: 3em;
  }
}
.c-pb6em {
  padding-bottom: 6em;
}
@media only screen and (max-width: 768px) {
  .c-pb6em {
    padding-bottom: 4em;
  }
}
.c-pb8em {
  padding-bottom: 8em;
}
@media only screen and (max-width: 768px) {
  .c-pb8em {
    padding-bottom: 4em;
  }
}
.c-inner1366 {
  max-width: 1366px;
  margin: 0 auto;
}
.c-inner1024 {
  max-width: 1024px;
  margin: 0 auto;
}
.c-inner840 {
  max-width: 840px;
  margin: 0 auto;
}
.c-colorOrange {
  color: #FF6C00;
}
.c-colorWhite {
  color: #fff;
}
.c-colorBlack {
  color: #333333;
}
.c-em {
  text-decoration: underline;
  color: #FF6C00;
}
.c-bgColorOrange {
  background-color: #FF6C00;
  color: #fff;
}
.c-bgColorOrange02 {
  background-color: rgba(255, 106, 0, 0.06);
}
.c-bgColorOrange03 {
  background-color: #FFF6F0;
}
.c-bgColorGray {
  background-color: #F2F2F2;
}
.c-bgColorGray02 {
  background-color: #919191;
}
.c-bgColorGreen {
  background-color: #16A73C;
  color: #fff;
}
.c-fontMont {
  font-family: "Montserrat", sans-serif;
}
.c-txtCenter {
  text-align: center;
}
.c-txtRight {
  text-align: right;
}
.c-txtSmaller {
  font-size: 75%;
}
.c-txtBigger {
  font-size: 110%;
  margin: 0 0.05em;
}
.c-bold {
  font-weight: bold;
}
.c-brPc {
  display: block;
}
@media only screen and (max-width: 768px) {
  .c-brPc {
    display: none;
  }
}
.c-brTablet {
  display: none;
}
@media only screen and (max-width: 960px) {
  .c-brTablet {
    display: block;
  }
}
@media only screen and (max-width: 768px) {
  .c-brTablet {
    display: none;
  }
}
.c-brMobile {
  display: none;
}
@media only screen and (max-width: 768px) {
  .c-brMobile {
    display: block;
  }
}
.c-txtBox {
  line-height: 2;
}
.c-title {
  font-size: 225%;
}
.c-title .sub {
  font-size: 1.2rem;
  letter-spacing: 0.1em;
}
@media only screen and (max-width: 768px) {
  .c-title {
    font-size: 200%;
  }
}
@media only screen and (max-width: 480px) {
  .c-title {
    font-size: 240%;
  }
}
.c-titleEng {
  font-size: 250%;
  letter-spacing: 0.1em;
}
.c-titleEng .sub {
  font-size: 1.4rem;
  letter-spacing: 0;
}
.c-titleEng br {
  display: none;
}
@media only screen and (max-width: 768px) {
  .c-titleEng {
    font-size: 200%;
  }
}
@media only screen and (max-width: 480px) {
  .c-titleEng {
    font-size: 240%;
  }
}
.c-titlePage {
  font-size: 265%;
}
.c-titlePage .sub {
  font-size: 1.2rem;
  letter-spacing: 0.1em;
  margin-bottom: 1em;
}
.c-titlePage02 {
  font-size: 265%;
}
.c-titlePage02 .sub {
  font-size: 1.2rem;
  letter-spacing: 0.1em;
  margin-bottom: 1em;
}
.c-titlePage02 br {
  display: none;
}
.c-table tr {
  border-bottom: 1px solid #C9C9C9;
}
.c-table tr:first-child {
  border-top: 2px solid #FF6C00;
}
.c-table tr th {
  font-weight: bold;
  padding: 2em 1em;
  width: 26%;
}
.c-table tr th.short {
  width: 22%;
}
.c-table tr td {
  padding: 2em 1em;
}
@media only screen and (max-width: 768px) {
  .c-table tr {
    display: flex;
    flex-wrap: wrap;
  }
  .c-table tr th {
    width: 100%;
    padding: 1em;
    padding-bottom: 0;
    color: #FF6C00;
  }
  .c-table tr th.short {
    width: 100%;
  }
  .c-table tr td {
    width: 100%;
    padding: 1em;
    padding-top: 0.5em;
  }
}
.c-documentLink {
  text-align: center;
  line-height: 1.4;
  border-bottom: 2px solid #FF6C00;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  padding-bottom: 0.5em;
}
.c-documentLink::before {
  content: "";
  top: 50%;
  right: 3%;
  transform: translateY(-50%);
  width: 30vw;
  max-width: 22px;
  height: 30vw;
  max-height: 22px;
  position: absolute;
  background: url(../images/common/icon-arrow-orange.svg) no-repeat center/cover;
}
.c-documentLink:hover {
  color: #FF6C00;
}
@media only screen and (max-width: 768px) {
  .c-documentLink::before {
    width: 4vw;
    height: 4vw;
  }
}
.c-flexImgContainer__inner {
  max-width: 1255px;
  margin: 0 auto;
  display: flex;
  justify-content: flex-start;
  position: relative;
  z-index: 1;
}
.c-flexImgContainer__inner::before {
  content: "";
  background-color: rgba(255, 106, 0, 0.06);
  width: 17em;
  height: 17em;
  top: 0;
  left: 0;
  position: absolute;
  z-index: -1;
}
.c-flexImgContainer__inner::after {
  content: "";
  background-color: rgba(255, 106, 0, 0.06);
  width: 12.5em;
  height: 12.5em;
  bottom: 0;
  right: 0;
  position: absolute;
  z-index: -1;
}
.c-flexImgContainer__left {
  width: 33%;
  margin-top: 6em;
}
.c-flexImgContainer__left .catch {
  font-size: 175%;
  margin-top: 1.4em;
}
.c-flexImgContainer__left .main {
  line-height: 1.6;
}
.c-flexImgContainer__left .txt {
  margin-top: 3.5em;
}
.c-flexImgContainer__left .txt.short {
  margin-top: 2em;
}
.c-flexImgContainer__right {
  padding-top: 5em;
  padding-bottom: 3em;
  width: 55%;
}
.c-flexImgContainer__right .imgBox {
  width: 93%;
}
@media only screen and (max-width: 960px) {
  .c-flexImgContainer__inner {
    flex-wrap: wrap;
  }
  .c-flexImgContainer__left {
    margin-top: 4em;
    width: fit-content;
  }
  .c-flexImgContainer__left .catch {
    margin-top: 1em;
  }
  .c-flexImgContainer__left .txt {
    margin-top: 2em;
  }
  .c-flexImgContainer__right {
    width: 100%;
    padding-top: 3em;
  }
  .c-flexImgContainer__right .imgBox {
    width: 80%;
    margin: 0 auto;
  }
}
.c-newsContainer {
  overflow: hidden;
  padding: 0 3em;
}
.c-newsContainer__inner {
  position: relative;
  z-index: 1;
}
.c-newsContainer__inner::before {
  content: "";
  top: 0;
  left: -15%;
  width: 200vw;
  height: 100%;
  position: absolute;
  background-color: #F2F2F2;
  z-index: -1;
}
.c-newsContainer__upper {
  display: flex;
  justify-content: space-between;
}
.c-newsContainer__upper .c-titleEng {
  display: flex;
  align-items: center;
}
.c-newsContainer__upper .c-titleEng .sub {
  margin-left: 0.8em;
}
.c-newsContainer__flexBox {
  display: flex;
  margin-top: 3em;
  width: 100vw;
}
.c-newsContainer__item {
  max-width: 408px;
  display: block;
  overflow: hidden;
}
.c-newsContainer__item .imgBox {
  aspect-ratio: 408/296;
  position: relative;
  overflow: hidden;
}
.c-newsContainer__item .imgBox .cate {
  position: absolute;
  z-index: 1;
  bottom: 0;
  left: 0;
  padding: 0.1em 0.8em;
  font-size: 80%;
}
.c-newsContainer__item .imgBox img {
  position: absolute;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: scale 0.2s ease;
}
.c-newsContainer__item .date {
  font-size: 95%;
  font-family: "Noto Sans JP";
  color: #A7A7A7;
  letter-spacing: 0;
}
.c-newsContainer__item:hover {
  color: #FF6C00;
}
.c-newsContainer__item:hover .imgBox img {
  scale: 1.15;
}
.c-newsContainer--btn {
  background-color: #333333;
  padding: 0.5em 3em 0.5em 2em;
  border-radius: 1000px;
  position: relative;
  border: 2px solid #333;
}
.c-newsContainer--btn::before {
  content: "";
  top: 50%;
  right: 10%;
  transform: translateY(-50%);
  width: 30vw;
  max-width: 16px;
  height: 30vw;
  max-height: 16px;
  position: absolute;
  background: url(../images/common/icon-arrow.svg) no-repeat center/cover;
}
.c-newsContainer--btn:hover {
  background-color: #fff;
  color: #333;
}
.c-newsContainer--btn:hover::before {
  background: url(../images/common/icon-arrow-black.svg) no-repeat center/cover;
}
.c-newsContainer .swiper {
  width: 100vw;
  margin-left: inherit;
  margin-right: inherit;
}
.c-newsContainer .swiper-wrapper {
  gap: 0 1em;
}
@media only screen and (max-width: 960px) {
  .c-newsContainer {
    padding: 0 2em;
  }
  .c-newsContainer__item .imgBox {
    aspect-ratio: 408/296;
  }
}
@media only screen and (max-width: 480px) {
  .c-newsContainer {
    padding: 0 1em;
  }
  .c-newsContainer--btn::before {
    width: 4vw;
    height: 4vw;
  }
}
.c-cvArea {
  padding-top: 5em;
  padding-bottom: 6.5em;
}
.c-cvArea .c-inner1366 {
  position: relative;
}
.c-cvArea__txt {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 10;
  width: 100%;
  padding: 0 2em;
}
.c-cvArea .bgImg::before {
  content: "";
  background-color: rgba(0, 0, 0, 0.4);
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  position: absolute;
  z-index: 1;
}
.c-cvArea .txt {
  margin-top: 2.5em;
}
@media only screen and (max-width: 960px) {
  .c-cvArea .bgImg {
    aspect-ratio: 960/700;
  }
  .c-cvArea .bgImg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}
@media only screen and (max-width: 768px) {
  .c-cvArea .bgImg {
    aspect-ratio: 960/960;
  }
}
.c-cvArea02 {
  padding: 1.5em 2em;
  border: 2px solid #FF6C00;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0 5em;
}
.c-cvArea02__left {
  font-size: 115%;
}
.c-cvArea02__right .tel {
  display: block;
  margin-top: 0.25em;
  font-size: 160%;
  padding-left: 1.2em;
  position: relative;
  line-height: 1.6;
}
.c-cvArea02__right .tel::before {
  content: "";
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 30vw;
  max-width: 24px;
  height: 30vw;
  max-height: 24px;
  position: absolute;
  background: url(../images/common/icon-tel.svg) no-repeat center/cover;
}
@media only screen and (max-width: 960px) {
  .c-cvArea02 {
    padding: 1.5em 1em;
    flex-wrap: wrap;
  }
  .c-cvArea02__right {
    margin-top: 1em;
    text-align: center;
  }
  .c-cvArea02__right .tel {
    display: table;
    margin-left: auto;
    margin-right: auto;
  }
}
@media only screen and (max-width: 768px) {
  .c-cvArea02__right .tel::before {
    width: 5vw;
    height: 5vw;
    max-width: inherit;
    max-height: inherit;
  }
}
.c-recruitBtn {
  max-width: 280px;
  margin: 2.5em auto 0;
  font-size: 95%;
  border: 2px solid #FF6C00;
  border-radius: 1000px;
  padding: 0.65em 2.8em;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
  background: #fff;
  position: relative;
}
.c-recruitBtn::before {
  content: "";
  top: 50%;
  right: 5%;
  transform: translateY(-50%);
  width: 30vw;
  max-width: 16px;
  height: 30vw;
  max-height: 16px;
  position: absolute;
  background: url(../images/common/icon-arrow-orange.svg) no-repeat center/cover;
}
.c-recruitBtn span {
  position: relative;
  padding-left: 1.5em;
}
.c-recruitBtn span::before {
  content: "";
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 30vw;
  max-width: 18px;
  height: 30vw;
  max-height: 18px;
  position: absolute;
  background: url(../images/common/icon-recruit.svg) no-repeat center/cover;
}
.c-recruitBtn:hover {
  background-color: #FF6C00;
  color: #fff;
}
.c-recruitBtn:hover::before {
  background: url(../images/common/icon-arrow.svg) no-repeat center/cover;
}
.c-recruitBtn:hover span::before {
  background: url(../images/common/icon-recruit-white.svg) no-repeat center/cover;
}
@media only screen and (max-width: 960px) {
  .c-recruitBtn {
    max-width: 40%;
  }
  .c-recruitBtn span::before {
    width: 4vw;
    height: 4vw;
    max-width: inherit;
    max-height: inherit;
  }
}
@media only screen and (max-width: 768px) {
  .c-recruitBtn {
    max-width: 70%;
  }
}
.c-contactBtn {
  max-width: 280px;
  margin: 2.5em auto 0;
  font-size: 95%;
  border: 2px solid #FF6C00;
  border-radius: 1000px;
  padding: 0.65em 2.8em;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
  background: #fff;
  position: relative;
}
.c-contactBtn::before {
  content: "";
  top: 50%;
  right: 5%;
  transform: translateY(-50%);
  width: 30vw;
  max-width: 16px;
  height: 30vw;
  max-height: 16px;
  position: absolute;
  background: url(../images/common/icon-arrow-orange.svg) no-repeat center/cover;
}
.c-contactBtn span {
  position: relative;
  padding-left: 1.5em;
}
.c-contactBtn span::before {
  content: "";
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 30vw;
  max-width: 18px;
  height: 30vw;
  max-height: 18px;
  position: absolute;
  background: url(../images/common/icon-contact-orange.svg) no-repeat center/cover;
}
.c-contactBtn:hover {
  background-color: #FF6C00;
  color: #fff;
}
.c-contactBtn:hover::before {
  background: url(../images/common/icon-arrow.svg) no-repeat center/cover;
}
.c-contactBtn:hover span::before {
  background: url(../images/common/icon-contact.svg) no-repeat center/cover;
}
@media only screen and (max-width: 960px) {
  .c-contactBtn {
    max-width: 40%;
  }
  .c-contactBtn::before {
    width: 3.5vw;
    height: 3.5vw;
    max-width: inherit;
    max-height: inherit;
  }
  .c-contactBtn span::before {
    width: 4vw;
    height: 4vw;
    max-width: inherit;
    max-height: inherit;
  }
}
@media only screen and (max-width: 768px) {
  .c-contactBtn {
    max-width: 70%;
  }
}
.c-googleMap iframe {
  width: 100%;
}
@media only screen and (max-width: 768px) {
  .c-googleMap iframe {
    height: 500px;
  }
}
.c-overviewContainer {
  padding-top: 6.5em;
  padding-bottom: 0;
}
.c-overviewContainer .c-inner1024 {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.c-overviewContainer .c-title {
  white-space: nowrap;
  width: fit-content;
}
.c-overviewContainer__table {
  width: 70%;
}
@media only screen and (max-width: 960px) {
  .c-overviewContainer .c-inner1024 {
    flex-wrap: wrap;
  }
  .c-overviewContainer .c-title {
    width: 100%;
    margin-bottom: 1.25em;
  }
  .c-overviewContainer__table {
    width: 100%;
  }
}
@media only screen and (max-width: 768px) {
  .c-overviewContainer {
    padding-top: 4em;
  }
}
.c-followBanner {
  position: fixed;
  z-index: 100;
  bottom: 4vw;
  right: 0;
  gap: 2.5em 0;
  display: flex;
  flex-direction: column;
}
.c-followBanner a {
  display: block;
  line-height: 1.4;
  padding: 1.2em 0.75em;
  font-size: 90%;
}
.c-followBanner a span {
  padding-top: 2em;
  display: block;
  position: relative;
}
.c-followBanner a span::before {
  content: "";
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 2vw;
  height: 2vw;
  max-width: 24px;
  max-height: 24px;
  position: absolute;
  background: url(../images/common/icon-tel-white.svg) no-repeat center/cover;
}
.c-followBanner a .c-followBanner--mail::before {
  background: url(../images/common/icon-mail-white.svg) no-repeat center/cover;
}
.c-followBanner a:hover {
  opacity: 0.8;
}
@media only screen and (max-width: 960px) {
  .c-followBanner {
    gap: 1.5em 0;
    bottom: 10%;
  }
  .c-followBanner a span::before {
    width: 6vw;
    height: 6vw;
  }
}
@media only screen and (max-width: 768px) {
  .c-followBanner {
    flex-direction: inherit;
    bottom: 0;
    width: 100%;
  }
  .c-followBanner a {
    width: 50%;
    padding: 1em 0.5em;
  }
  .c-followBanner a br {
    display: none;
  }
  .c-followBanner a span {
    padding-top: 0;
    padding-left: 1.5em;
    display: table;
    margin: 0 auto;
  }
  .c-followBanner a span::before {
    top: 50%;
    left: 0;
    width: 3.5vw;
    height: 3.5vw;
    transform: translateY(-50%);
  }
}
.c-availabilityContainer--title .main {
  font-size: 175%;
}
.c-availabilityContainer--title .sub {
  margin-top: 0.5em;
  font-size: 125%;
}
.c-availabilityContainer__box {
  margin-top: 2em;
}
.c-availabilityContainer__box .exp {
  margin-bottom: 0.25em;
  text-align: center;
}
.c-availabilityContainer__box table {
  min-width: 466px;
  width: fit-content !important;
  margin: 0 auto;
  height: inherit !important;
  display: block;
}
.c-availabilityContainer__box table tbody {
  width: 100%;
  display: block;
}
.c-availabilityContainer__box table tr {
  width: 100% !important;
  height: inherit !important;
  display: flex;
}
.c-availabilityContainer__box table tr:first-child td {
  background-color: #FF6C00 !important;
  font-weight: bold !important;
  color: #fff !important;
}
.c-availabilityContainer__box table tr td {
  text-align: center !important;
  color: #FF6C00 !important;
  border: 1px solid #C6C6C6 !important;
  padding: 0.5em 1em !important;
  vertical-align: middle;
  width: inherit !important;
  height: inherit !important;
}
.c-availabilityContainer__box table tr td.c-colorBlack {
  color: #333333 !important;
}
@media only screen and (max-width: 768px) {
  .c-availabilityContainer__box {
    margin-top: 2em;
  }
  .c-availabilityContainer__box .exp {
    margin-bottom: 0.25em;
    text-align: center;
  }
  .c-availabilityContainer__box table {
    min-width: inherit;
    width: 100% !important;
  }
}
.c-pageHeader {
  position: relative;
}
.c-pageHeader .c-titlePage {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
}
.c-pageHeader .bgImg {
  position: relative;
  z-index: -1;
}
.c-pageHeader .bgImg::before {
  content: "";
  background-color: rgba(0, 0, 0, 0.3);
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  position: absolute;
  z-index: 1;
}
@media only screen and (max-width: 960px) {
  .c-pageHeader .bgImg {
    aspect-ratio: 1600/620;
  }
  .c-pageHeader .bgImg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}
@media only screen and (max-width: 768px) {
  .c-pageHeader .bgImg {
    aspect-ratio: 1600/860;
  }
}
.c-pageHeader02 {
  padding-top: 8em;
}
.c-messageContainer {
  padding-top: 7em;
}
.c-messageContainer .c-title .sub {
  margin-bottom: 2em;
}
.c-messageContainer__catch {
  margin-top: 1.8em;
  margin-bottom: -1em;
  font-size: 175%;
}
.c-messageContainer__txt {
  margin-top: 3em;
}
@media only screen and (max-width: 768px) {
  .c-messageContainer__txt {
    text-align: left;
  }
}
.c-featureContainer {
  padding-top: 7.5em;
}
.c-featureContainer .c-title {
  margin-bottom: 1.5em;
}
.c-featureContainer__box {
  margin-bottom: 4.5em;
}
.c-featureContainer__box:last-of-type {
  margin-bottom: 0;
}
.c-featureContainer__flexBox {
  display: flex;
  justify-content: space-between;
  padding: 2em;
}
.c-featureContainer__flexBox .titBox {
  width: 45%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
}
.c-featureContainer__flexBox .titBox .point {
  position: absolute;
  top: 50%;
  right: 12%;
  font-size: 115%;
  line-height: 1.2;
  text-align: center;
}
.c-featureContainer__flexBox .titBox .point::before {
  content: "";
  background-color: #333333;
  width: 4.4em;
  height: 4.4em;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  position: absolute;
  z-index: -1;
  border-radius: 100%;
}
.c-featureContainer__flexBox .titBox .point .sub {
  font-size: 50%;
  margin-top: 0.1em;
  font-weight: normal;
}
.c-featureContainer__flexBox .titBox .sub {
  font-size: 80%;
}
.c-featureContainer__flexBox .titBox .main {
  font-size: 200%;
  line-height: 1;
}
.c-featureContainer__flexBox .txtBox {
  width: 55%;
}
.c-featureContainer__flexBox .txtBox .catch {
  font-size: 115%;
  margin-bottom: 0.5em;
}
@media only screen and (max-width: 960px) {
  .c-featureContainer__flexBox {
    flex-wrap: wrap;
  }
  .c-featureContainer__flexBox .titBox .point {
    transform: translateY(-50%);
  }
  .c-featureContainer__flexBox .titBox {
    width: 100%;
  }
  .c-featureContainer__flexBox .txtBox {
    margin-top: 2em;
    width: 100%;
  }
}
@media only screen and (max-width: 768px) {
  .c-featureContainer {
    padding-top: 4em;
  }
}
.c-imgbgContainer {
  position: relative;
}
.c-imgbgContainer__inner {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  padding: 0 2em;
}
.c-imgbgContainer .tit {
  display: table;
  margin: 0 auto 0;
  position: relative;
}
.c-imgbgContainer .tit::before {
  content: "";
  top: -120%;
  left: 50%;
  transform: translateX(-50%);
  width: 30vw;
  max-width: 40px;
  height: 30vw;
  max-height: 40px;
  position: absolute;
  background: url(../images/common/icon-sunflower-white.svg) no-repeat center/cover;
}
.c-imgbgContainer .tit.lunch::before {
  background: url(../images/common/icon-lunch-white.svg) no-repeat center/cover;
}
.c-imgbgContainer .tit .main {
  font-size: 200%;
}
.c-imgbgContainer .tit .orangemark {
  font-size: 110%;
  position: absolute;
  top: 50%;
  right: -60%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
}
.c-imgbgContainer .tit .orangemark::before {
  content: "";
  background-color: #FF6C00;
  width: 6.25em;
  height: 6.25em;
  top: 42%;
  left: 50%;
  transform: translate(-50%, -50%);
  position: absolute;
  z-index: -1;
  border-radius: 100%;
}
.c-imgbgContainer .tit .orangemark.left {
  right: inherit;
  left: -40%;
}
.c-imgbgContainer .bgImg {
  position: relative;
  z-index: -1;
}
.c-imgbgContainer .bgImg::before {
  content: "";
  background-color: rgba(0, 0, 0, 0.4);
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  position: absolute;
  z-index: 1;
}
.c-imgbgContainer .txt {
  margin-top: 3.5em;
  position: relative;
  display: table;
  margin-left: auto;
  margin-right: auto;
}
@media only screen and (max-width: 960px) {
  .c-imgbgContainer .bgImg {
    aspect-ratio: 1600/750;
  }
  .c-imgbgContainer .bgImg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}
@media only screen and (max-width: 768px) {
  .c-imgbgContainer .tit::before {
    top: -90%;
    width: 6vw;
    height: 6vw;
  }
  .c-imgbgContainer .tit .orangemark {
    font-size: 70%;
    top: 0;
    right: -40%;
  }
  .c-imgbgContainer .tit .orangemark.left {
    top: -30%;
    left: -20%;
  }
  .c-imgbgContainer .txt {
    margin-top: 2em;
  }
  .c-imgbgContainer .bgImg {
    aspect-ratio: 1600/1100;
  }
}
.c-pointContainer__flex {
  display: flex;
  gap: 6em 4em;
}
.c-pointContainer__flex__item {
  width: calc(100% - 4em);
}
.c-pointContainer__flex__item .imgBox {
  position: relative;
}
.c-pointContainer__flex__item .imgBox .graymark {
  font-size: 110%;
  position: absolute;
  top: 8%;
  right: 8%;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1;
  line-height: 1.4;
}
.c-pointContainer__flex__item .imgBox .graymark::before {
  content: "";
  background-color: #333333;
  width: 4.5em;
  height: 4.5em;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  position: absolute;
  z-index: -1;
  border-radius: 100%;
}
.c-pointContainer__flex__item .tit {
  font-size: 150%;
  line-height: 1.4;
  margin: 1.2em 0 1.4em;
}
.c-pointContainer__flex__item .tit .sub {
  font-size: 1.4rem;
}
@media only screen and (max-width: 768px) {
  .c-pointContainer__flex {
    flex-wrap: wrap;
  }
  .c-pointContainer__flex__item {
    width: 100%;
  }
}
.c-dayContainer__selectBox {
  margin-top: 3em;
  margin-bottom: 8em;
  display: flex;
  justify-content: center;
  gap: 0 4em;
  cursor: pointer;
  line-height: 1.6;
}
.c-dayContainer__selectBox__item {
  width: 40%;
  text-align: center;
  font-size: 150%;
  border-bottom: 3px solid #FF6C00;
  padding: 0.25em 2em;
  position: relative;
  color: #A7A7A7;
}
.c-dayContainer__selectBox__item::before {
  content: "";
  width: 0;
  height: 0;
  top: 50%;
  transform: translateY(-50%) rotate(180deg);
  right: 10%;
  position: absolute;
  border-left: 6.5px solid transparent;
  border-right: 6.5px solid transparent;
  border-top: 10px solid #A7A7A7;
}
.c-dayContainer__selectBox__item.active {
  color: #FF6C00;
}
.c-dayContainer__selectBox__item.active::before {
  border-top: 10px solid #FF6C00;
  transform: translateY(-50%) rotate(0deg);
}
.c-dayContainer__flex {
  margin-top: 5em;
  display: flex;
  justify-content: space-between;
  gap: 3em;
}
.c-dayContainer__flex__left {
  width: 50%;
  position: relative;
  height: 100%;
  z-index: 1;
}
.c-dayContainer__flex__left::before {
  content: "";
  position: absolute;
  width: 4px;
  height: 100%;
  top: 0;
  left: 6rem;
  background-color: rgba(255, 106, 0, 0.3);
}
.c-dayContainer__flex__left .cutoutBox {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: -20%;
  max-width: 294px;
}
.c-dayContainer__flex__left__dayBox {
  position: relative;
  margin-bottom: 7em;
  padding-left: 10em;
}
.c-dayContainer__flex__left__dayBox:last-of-type {
  margin-bottom: 0;
}
.c-dayContainer__flex__left__dayBox .time {
  font-size: 140%;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  width: 120px;
  text-align: center;
}
.c-dayContainer__flex__left__dayBox .time::before {
  content: "";
  background-color: #FF6C00;
  width: 30vw;
  max-width: 106px;
  height: 30vw;
  max-height: 106px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  position: absolute;
  z-index: -1;
  border-radius: 100%;
}
.c-dayContainer__flex__left__dayBox .txt {
  font-size: 125%;
  line-height: 1.6;
}
.c-dayContainer__flex__right {
  width: calc(50% - 3em);
  display: flex;
  flex-direction: column;
}
.c-dayContainer__flex__right .imgBox {
  max-width: 280px;
  margin-bottom: 1.5em;
}
.c-dayContainer__flex__right .imgBox:nth-of-type(2n) {
  max-width: 351px;
  align-self: flex-end;
}
.c-dayContainer__flex__right .txt {
  margin-top: 1em;
}
.c-dayContainer .holidayBox {
  display: none;
}
@media only screen and (max-width: 1400px) {
  .c-dayContainer .c-dayContainer__flex__left__dayBox .time::before {
    width: 8vw;
    height: 8vw;
  }
}
@media only screen and (max-width: 960px) {
  .c-dayContainer__selectBox {
    gap: 0 2em;
  }
  .c-dayContainer__selectBox__item {
    padding: 0.25em 1em;
    width: 48%;
  }
  .c-dayContainer__selectBox__item::before {
    right: 0.5em;
  }
  .c-dayContainer__flex__left {
    width: 60%;
  }
  .c-dayContainer__flex__left__dayBox {
    padding-left: 7em;
  }
  .c-dayContainer__flex__left .cutoutBox {
    max-width: 30vw;
  }
  .c-dayContainer__flex__right {
    width: calc(40% - 3em);
  }
  .c-dayContainer .c-dayContainer__flex__left__dayBox .time::before {
    width: 12vw;
    height: 12vw;
  }
}
@media only screen and (max-width: 768px) {
  .c-dayContainer__selectBox {
    gap: 2em 0;
    flex-wrap: wrap;
  }
  .c-dayContainer__selectBox__item {
    width: 100%;
  }
  .c-dayContainer__flex {
    flex-wrap: wrap;
  }
  .c-dayContainer__flex__left {
    width: 100%;
  }
  .c-dayContainer__flex__left::before {
    left: 6rem;
    width: 3px;
  }
  .c-dayContainer__flex__left .cutoutBox {
    max-width: 40vw;
    right: 0;
  }
  .c-dayContainer__flex__left__dayBox {
    margin-bottom: 5em;
  }
  .c-dayContainer__flex__right {
    width: 100%;
  }
  .c-dayContainer__flex__right .imgBox {
    max-width: 70%;
  }
  .c-dayContainer__flex__right .imgBox:nth-of-type(2n) {
    max-width: 80%;
  }
  .c-dayContainer .c-dayContainer__flex__left__dayBox .time::before {
    width: 18vw;
    max-width: inherit;
    height: 18vw;
    max-height: inherit;
  }
}
@media only screen and (max-width: 480px) {
  .c-dayContainer__flex__left::before {
    left: 4rem;
    width: 2.5px;
  }
  .c-dayContainer .c-dayContainer__flex__left__dayBox .time {
    width: 80px;
  }
  .c-dayContainer .c-dayContainer__flex__left__dayBox .time::before {
    width: 15vw;
    height: 15vw;
  }
}
.c-eventContainer01__flex {
  margin-top: 2em;
  display: flex;
  justify-content: center;
  gap: 0 3em;
}
.c-eventContainer01__flex__item {
  background-color: #fff;
  width: 32%;
}
.c-eventContainer01__flex__txtBox {
  padding: 0.5em 2em 1.5em;
  width: fit-content;
  margin: 0 auto;
}
.c-eventContainer01__flex__txtBox .tit {
  font-size: 150%;
  margin-bottom: 0.5em;
}
.c-eventContainer01__flex__txtBox .listBox01,
.c-eventContainer01__flex__txtBox .listBox02 {
  padding: 0.25em 0;
}
.c-eventContainer01__flex__txtBox .listBox01 .list,
.c-eventContainer01__flex__txtBox .listBox02 .list {
  padding-left: 1.2em;
  position: relative;
  margin-bottom: 0.5em;
  line-height: 1.4;
}
.c-eventContainer01__flex__txtBox .listBox01 .list::before,
.c-eventContainer01__flex__txtBox .listBox02 .list::before {
  content: "";
  position: absolute;
  background-color: #C9C9C9;
  width: 30vw;
  max-width: 10px;
  height: 30vw;
  max-height: 10px;
  top: 0.5em;
  left: 0;
  border-radius: 100%;
}
.c-eventContainer01__flex__txtBox .listBox01 .list:last-of-type,
.c-eventContainer01__flex__txtBox .listBox02 .list:last-of-type {
  margin-bottom: 0;
}
.c-eventContainer01__flex__txtBox .listBox02 {
  position: relative;
  padding-left: 2em;
  margin-bottom: 1em;
}
.c-eventContainer01__flex__txtBox .listBox02 .season {
  position: absolute;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  top: 0;
  left: 0;
  padding: 0.15em;
}
.c-eventContainer01__flex__txt {
  padding-bottom: 1em;
  text-align: center;
}
@media only screen and (max-width: 960px) {
  .c-eventContainer01__flex {
    gap: 0 0.5em;
  }
  .c-eventContainer01__flex__txtBox {
    padding: 0.5em 0.5em 1em;
  }
}
@media only screen and (max-width: 768px) {
  .c-eventContainer01__flex {
    gap: 2em 1em;
    flex-wrap: wrap;
  }
  .c-eventContainer01__flex__item {
    width: 100%;
  }
  .c-eventContainer01__flex__item .imgBox {
    aspect-ratio: 310/180;
  }
  .c-eventContainer01__flex__item .imgBox img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .c-eventContainer01__flex__txtBox {
    padding: 0.5em 2em 2em;
  }
  .c-eventContainer01__flex__txtBox .listBox01 .list::before,
  .c-eventContainer01__flex__txtBox .listBox02 .list::before {
    width: 2vw;
    height: 2vw;
  }
}
.c-eventContainer02__flex {
  display: flex;
  flex-wrap: wrap;
  gap: 4em 2em;
  margin-top: 3em;
}
.c-eventContainer02__flex__item {
  width: calc((100% - 4em) / 3);
  position: relative;
  padding-left: 5em;
}
.c-eventContainer02__flex__item .month {
  font-size: 175%;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
}
.c-eventContainer02__flex__item .month::before {
  content: "";
  background-color: #fff;
  width: 3em;
  height: 3em;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  position: absolute;
  z-index: -1;
  border-radius: 100%;
}
.c-eventContainer02__flex__item .listBox .list {
  padding-left: 1.2em;
  position: relative;
  margin-bottom: 1em;
  line-height: 1.4;
}
.c-eventContainer02__flex__item .listBox .list::before {
  content: "";
  position: absolute;
  background-color: #C9C9C9;
  width: 30vw;
  max-width: 10px;
  height: 30vw;
  max-height: 10px;
  top: 0.5em;
  left: 0;
  border-radius: 100%;
}
.c-eventContainer02__flex__item .listBox .list:last-of-type {
  margin-bottom: 0;
}
@media only screen and (max-width: 960px) {
  .c-eventContainer02__flex__item {
    width: calc((100% - 2em) / 2);
  }
}
@media only screen and (max-width: 768px) {
  .c-eventContainer02 {
    padding-left: 2em;
    padding-right: 2em;
  }
  .c-eventContainer02__flex {
    gap: 0;
  }
  .c-eventContainer02__flex__item {
    width: 100%;
    margin-bottom: 2em;
    min-height: 102px;
    padding-left: 5.5em;
  }
  .c-eventContainer02__flex__item .month {
    width: 12vw;
  }
  .c-eventContainer02__flex__item .listBox {
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: 100%;
  }
  .c-eventContainer02__flex__item .listBox .list {
    margin-bottom: 0.5em;
  }
  .c-eventContainer02__flex__item .listBox .list::before {
    width: 2vw;
    height: 2vw;
  }
}
@media only screen and (max-width: 480px) {
  .c-eventContainer02__flex__item {
    margin-bottom: 1em;
    min-height: 92px;
  }
}
.c-priceContainer .c-titleEng {
  display: flex;
  align-items: center;
  border-bottom: 2px solid #333;
  padding-bottom: 0.25em;
}
.c-priceContainer .c-titleEng .sub {
  margin-left: 1em;
}
.c-priceContainer__table {
  margin-top: 2.5em;
  width: 100%;
}
.c-priceContainer__table tr th {
  padding: 2em 1em 2em 3em;
  width: 26%;
  line-height: 1.4;
  vertical-align: middle;
}
.c-priceContainer__table tr td {
  letter-spacing: 0;
  padding: 2em 2em 2em 0;
}
@media only screen and (max-width: 768px) {
  .c-priceContainer__table tr {
    display: flex;
    flex-wrap: wrap;
  }
  .c-priceContainer__table tr th {
    padding: 1em;
    padding-bottom: 0;
    width: 100%;
  }
  .c-priceContainer__table tr td {
    padding: 1em;
    padding-top: 0.5em;
    width: 100%;
  }
}
.c-flexcardContainer__flex {
  margin-top: 5em;
  display: flex;
  flex-wrap: wrap;
  gap: 4em 2em;
  counter-reset: num;
}
.c-flexcardContainer__flex__item {
  background-color: #fff;
  padding: 2.8em 2em 2em 2em;
  width: calc((100% - 4em) / 3);
  position: relative;
  counter-increment: num;
}
.c-flexcardContainer__flex__item::before {
  content: counter(num, decimal-leading-zero);
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, -40%);
  width: 30vw;
  max-width: 56px;
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #FF6C00;
  border-radius: 100%;
  color: #fff;
  font-size: 130%;
  line-height: 1;
  font-family: "Montserrat", sans-serif;
}
.c-flexcardContainer__flex__item .tit {
  font-size: 140%;
  border-bottom: 1px dotted #C9C9C9;
  padding-bottom: 0.5em;
  line-height: 1.6;
}
.c-flexcardContainer__flex__item .txt {
  margin-top: 1.5em;
  line-height: 2;
}
@media only screen and (max-width: 960px) {
  .c-flexcardContainer__flex {
    gap: 3em 1em;
  }
  .c-flexcardContainer__flex__item {
    width: calc((100% - 1em) / 2);
  }
}
@media only screen and (max-width: 768px) {
  .c-flexcardContainer__flex__item {
    width: 100%;
  }
  .c-flexcardContainer__flex__item::before {
    width: 12vw;
  }
}
.c-qaContainer .c-title {
  display: flex;
  align-items: center;
  padding-left: 1em;
  position: relative;
}
.c-qaContainer .c-title::before {
  content: "";
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 30vw;
  max-width: 28px;
  height: 30vw;
  max-height: 28px;
  position: absolute;
  background: url(../images/common/icon-sunflower.svg) no-repeat center/cover;
}
.c-qaContainer .c-title .sub {
  margin-left: 2em;
}
.c-qaContainer .subtxt {
  font-size: 115%;
  margin-top: 1em;
}
.c-qaContainer__box {
  margin-top: 2em;
}
.c-qaContainer--tit {
  font-size: 150%;
  padding: 0.75em 0.5em 0.75em 2em;
  line-height: 1.4;
}
.c-qaContainer--tit span {
  position: relative;
  padding-left: 1.5em;
  display: block;
}
.c-qaContainer--tit span::before {
  content: "Q";
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  position: absolute;
  font-family: "Montserrat", sans-serif;
}
.c-qaContainer--txt {
  padding: 1.5em 0 2.5em;
}
@media only screen and (max-width: 768px) {
  .c-qaContainer--tit {
    padding: 0.75em 0.5em 0.75em 0.5em;
    font-size: 120%;
  }
  .c-qaContainer--tit span {
    padding-left: 1.2em;
  }
}
.c-downloadContainer__item .tit .main {
  font-size: 125%;
  margin-bottom: 0.25em;
}
.c-downloadContainer__item .tit .sub {
  display: table;
  margin: 0 auto;
  font-size: 80%;
  padding: 0 1em;
}
.c-downloadContainer__item__flex {
  margin-top: 2em;
  display: flex;
  flex-wrap: wrap;
  gap: 3em 2em;
}
.c-downloadContainer__item__flex .c-documentLink {
  width: calc((100% - 4em) / 3);
}
@media only screen and (max-width: 960px) {
  .c-downloadContainer__item__flex .c-documentLink {
    width: calc((100% - 2em) / 2);
  }
}
@media only screen and (max-width: 768px) {
  .c-downloadContainer__item__flex .c-documentLink {
    width: 80%;
    margin-left: auto;
    margin-right: auto;
  }
}
.c-txtContainer__txtBox {
  margin-top: 4em;
  padding-bottom: 2em;
}
.c-txtContainer__txtBox:last-of-type {
  padding-bottom: 0;
}
.c-txtContainer__txtBox h2 {
  font-size: 140%;
  margin-top: 3em;
  padding-bottom: 1em;
  border-bottom: 1px solid #C9C9C9;
}
.c-txtContainer__txtBox h2 span {
  margin-right: 0.2em;
}
.c-txtContainer__txtBox p {
  margin-top: 2em;
}
.c-txtContainer__txtBox ol {
  list-style-type: decimal;
  padding-left: 1.2em;
}
.c-txtContainer__txtBox ol > li > ol {
  list-style: none;
  padding-left: 1.5em;
}
.c-txtContainer__txtBox ol > li > ol > li:nth-child(1)::before {
  content: "① ";
}
.c-txtContainer__txtBox ol > li > ol > li:nth-child(2)::before {
  content: "② ";
}
.c-txtContainer__txtBox ol > li > ol > li:nth-child(3)::before {
  content: "③ ";
}
.c-txtContainer__txtBox ol > li > ol > li:nth-child(4)::before {
  content: "④ ";
}
.c-txtContainer__txtBox ol > li > ol > li:nth-child(5)::before {
  content: "⑤ ";
}
.c-txtContainer__txtBox ol > li > ol > li:nth-child(6)::before {
  content: "⑥ ";
}
.c-txtContainer__txtBox ol > li > ol > li:nth-child(7)::before {
  content: "⑦ ";
}
.c-txtContainer__txtBox ol > li > ol > li:nth-child(8)::before {
  content: "⑧ ";
}
.c-txtContainer__txtBox ol > li > ol > li:nth-child(9)::before {
  content: "⑨ ";
}
.c-txtContainer__txtBox ol > li > ol > li:nth-child(10)::before {
  content: "⑩ ";
}
.c-photoContainer {
  aspect-ratio: 1600/470;
}
.c-photoContainer img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media only screen and (max-width: 960px) {
  .c-photoContainer {
    aspect-ratio: 1600/940;
  }
}

/* ----------------------------------------
Project
プロジェクト固有のパターンであり、いくつかのComponentと、
それに該当しない要素によって構成されるものを定義します。
例えば、記事一覧や、ユーザープロフィール、画像ギャラリーなどコンテンツを構成する要素などが該当します。
articles/ranking/promo...
---------------------------------------- */
.p-pagetop {
  position: absolute;
  right: 2%;
  bottom: 0;
  z-index: 10;
  background-color: #333333;
  font-weight: bold;
  text-align: center;
  padding: 1.5em;
  color: #fff;
  font-size: 70%;
  letter-spacing: 0;
}
.p-pagetop:hover {
  cursor: pointer;
}
@media only screen and (max-width: 768px) {
  .p-pagetop {
    bottom: 15em;
  }
}

/* ----------------------------------------
Utility
ComponentとProjectレイヤーのObjectのモディファイアで
解決することが難しい・適切では無い、わずかなスタイルの調整のための便利クラスなどを定義します。
clearfix/display/margin...
---------------------------------------- */
@media only screen and (max-width: 1400px) {
  .u-display-mobile {
    display: none;
  }
}
@media only screen and (max-width: 768px) {
  .u-display-pc {
    display: none;
  }
}
.u-link-disabled {
  pointer-events: none;
  text-decoration: none;
}
.u-align-center {
  text-align: center;
}
.u-align-left {
  text-align: left;
}
.u-align-right {
  text-align: right;
}

.header {
  position: fixed;
  width: 100%;
  background-color: #fff;
  z-index: 999;
  padding: 1.25em 1.5em;
}
.header .c-inner1366 {
  display: flex;
  justify-content: space-between;
}
.header-logo {
  max-width: 260px;
  width: 30%;
}
.header-logo:hover {
  opacity: 0.6;
}
.header-upper {
  display: flex;
  justify-content: flex-end;
  align-items: center;
}
.header-upper__item {
  font-size: 85%;
  padding: 0 1.5em;
  display: block;
  position: relative;
}
.header-upper__item.first::before {
  content: "";
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  background-color: #C9C9C9;
  width: 1px;
  height: 70%;
  position: absolute;
}
.header-upper__item:hover {
  color: #FF6C00;
  text-decoration: underline;
}
.header-upper__recruit {
  margin-right: 1.25em;
  margin-left: 1em;
  font-size: 95%;
  border: 2px solid #FF6C00;
  border-radius: 1000px;
  padding: 0.65em 2.8em;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
}
.header-upper__recruit span {
  position: relative;
  padding-left: 1.5em;
}
.header-upper__recruit span::before {
  content: "";
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 30vw;
  max-width: 18px;
  height: 30vw;
  max-height: 18px;
  position: absolute;
  background: url(../images/common/icon-recruit.svg) no-repeat center/cover;
}
.header-upper__recruit:hover {
  background-color: #FF6C00;
}
.header-upper__recruit:hover span {
  color: #fff;
}
.header-upper__recruit:hover span::before {
  background: url(../images/common/icon-recruit-white.svg) no-repeat center/cover;
}
.header-upper__contact {
  font-size: 95%;
  border-radius: 1000px;
  padding: 0.65em 2em;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
  border: 2px solid #FF6C00;
}
.header-upper__contact span {
  position: relative;
  padding-left: 1.5em;
}
.header-upper__contact span::before {
  content: "";
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 30vw;
  max-width: 18px;
  height: 30vw;
  max-height: 18px;
  position: absolute;
  background: url(../images/common/icon-contact.svg) no-repeat center/cover;
}
.header-upper__contact:hover {
  background-color: #fff;
}
.header-upper__contact:hover span {
  color: #FF6C00;
}
.header-upper__contact:hover span::before {
  background: url(../images/common/icon-contact-orange.svg) no-repeat center/cover;
}
.header-bottom {
  margin-top: 1em;
  display: flex;
  justify-content: flex-end;
  gap: 1em 2.5em;
}
.header-gnavLink:hover {
  color: #FF6C00;
  text-decoration: underline;
}
@media only screen and (max-width: 960px) {
  .header {
    padding: 0.5em 1.5em;
  }
  .header-logo {
    max-width: 25vw;
    position: relative;
    z-index: 999;
  }
  .header-gnav {
    display: flex;
    flex-flow: column;
    justify-content: center;
    width: 100%;
    height: 200vh;
    background-color: #fff;
    position: absolute;
    top: 0;
    right: -100%;
    transition: right 600ms 0s ease;
    justify-content: flex-start;
    padding: 20% 3em 3em;
  }
  .header-gnav.is-enable {
    right: 0;
  }
  .header-gnav .header-upper {
    margin-top: 3em;
    order: 1;
    flex-wrap: wrap;
    justify-content: center;
  }
  .header-gnav .header-upper__recruit, .header-gnav .header-upper__contact {
    margin: 1em 0.5em 0;
    height: auto;
    width: 47%;
  }
  .header-gnav .header-bottom {
    order: 0;
    flex-wrap: wrap;
    gap: 0;
  }
  .header-gnav .header-bottom .header-gnavItem {
    width: 100%;
    border-bottom: 1px solid #C9C9C9;
    margin-top: 0;
  }
  .header-gnav .header-bottom .header-gnavItem:first-of-type {
    border-top: 1px solid #C9C9C9;
  }
  .header-gnav .header-bottom .header-gnavLink {
    display: block;
    padding-top: 0.75em;
    padding-bottom: 0.75em;
    position: relative;
  }
  .header-gnav .header-bottom .header-gnavLink::before {
    content: "";
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    width: 30vw;
    max-width: 20px;
    height: 30vw;
    max-height: 20px;
    position: absolute;
    background: url(../images/common/icon-arrow-orange.svg) no-repeat center/cover;
  }
}
@media only screen and (max-width: 768px) {
  .header .header-upper__recruit, .header .header-upper__contact {
    width: 100%;
  }
  .header .header-upper__recruit span::before, .header .header-upper__contact span::before {
    width: 3.5vw;
    height: 3.5vw;
  }
}
@media only screen and (max-width: 480px) {
  .header-logo {
    min-width: 150px;
  }
  .header-gnav {
    padding: 25% 3em 3em;
  }
}
.header-hamburger {
  display: none;
  position: relative;
  cursor: pointer;
  right: 1em;
}
@media only screen and (max-width: 960px) {
  .header-hamburger {
    display: block;
  }
}
.header-hamburger > span {
  position: absolute;
  left: 50%;
  width: 24px;
  height: 2px;
  background: #333;
  border-radius: 999px;
  transition: all 0.3s ease;
  transform: translateX(-50%);
}
.header-hamburger > span:nth-child(1) {
  top: 16px;
}
.header-hamburger > span:nth-child(2) {
  top: 24px;
}
.header-hamburger > span:nth-child(3) {
  top: 32px;
}
.header-hamburger.is-close > span:nth-child(1) {
  top: 24px;
  transform: translateX(-50%) rotate(45deg);
}
.header-hamburger.is-close > span:nth-child(2) {
  opacity: 0;
}
.header-hamburger.is-close > span:nth-child(3) {
  top: 24px;
  transform: translateX(-50%) rotate(-45deg);
}

.footer {
  background-color: #F2F2F2;
  padding-bottom: 0;
  padding-top: 6em;
}
.footer__inner {
  max-width: 960px;
  margin: 0 auto;
  padding: 0 2em;
}
.footer--logo img {
  max-width: 250px;
}
.footer__nav {
  margin-top: 3em;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  font-size: 90%;
}
.footer__nav__box {
  width: 22.5%;
}
.footer__nav--link {
  margin-bottom: 1em;
  display: block;
}
.footer__nav--link:hover {
  text-decoration: underline;
}
.footer__copy {
  border-top: 1px solid #E8E8E8;
  margin-top: 3em;
  padding: 2em 0;
  color: rgba(51, 51, 51, 0.5);
  font-size: 80%;
}
@media only screen and (max-width: 960px) {
  .footer__nav__box {
    width: 100%;
  }
}
@media only screen and (max-width: 768px) {
  .footer {
    padding-top: 4em;
    padding-bottom: 5em;
  }
  .footer--logo {
    margin-bottom: 1em;
  }
  .footer--logo img {
    max-width: 60vw;
  }
  .footer--logo .txt {
    margin-top: 1em;
  }
}

#home .top-visual {
  width: 100%;
  position: relative;
  padding-bottom: 3.5em;
  aspect-ratio: 1600/720;
}
#home .top-visual .swiper {
  width: 100%;
  max-width: 100%;
}
#home .top-visual .swiper-slide > img {
  width: 100%;
  height: auto;
  display: block;
}
#home .top-visual .swiper-wrapper {
  height: 100%;
}
#home .top-visual .swiper-slide {
  height: 100%;
}
#home .top-visual .swiper-slide .imgBox {
  display: block;
}
#home .top-visual .swiper-pagination {
  position: absolute;
  left: 2%;
  bottom: 10%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.8em;
  z-index: 2;
  width: 5%;
  counter-reset: slideNum;
}
#home .top-visual .swiper-pagination-bullet {
  position: relative;
  width: 1em;
  height: 1em;
  border-radius: 50%;
  background-color: #FFB100;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.7em;
  font-weight: 700;
  letter-spacing: 0.04em;
  opacity: 1;
  transition: transform 0.3s ease, background-color 0.3s ease;
  counter-increment: slideNum;
}
#home .top-visual .swiper-pagination-bullet-active {
  width: 2.2em;
  height: 2.2em;
}
#home .top-visual .swiper-pagination-bullet-active::before {
  content: counter(slideNum, decimal-leading-zero);
  display: flex;
  align-items: center;
  justify-content: center;
}
@media only screen and (max-width: 960px) {
  #home .top-visual {
    padding-bottom: 0;
    aspect-ratio: 1600/850;
  }
  #home .top-visual .swiper {
    height: 100%;
  }
  #home .top-visual .swiper .imgBox {
    height: 100%;
    position: relative;
  }
  #home .top-visual .swiper .imgBox img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}
@media only screen and (max-width: 768px) {
  #home .top-visual {
    aspect-ratio: 1600/1200;
  }
}
@media only screen and (max-width: 480px) {
  #home .top-visual {
    aspect-ratio: 960/1000;
  }
}
#home .introduction {
  padding-left: 0;
  padding-right: 0;
  padding-bottom: 0;
  background-color: #fff;
}
#home .introduction .c-title {
  display: table;
  margin: 0 auto 1.25em;
}
#home .introduction__flex {
  display: flex;
  gap: 1px 1px;
}
#home .introduction__flex__item {
  width: calc((100% - 2px) / 3);
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  z-index: 1;
  aspect-ratio: 532/600;
  padding: 2.5em;
}
#home .introduction__flex__item::before {
  content: "";
  background: linear-gradient(to top, rgba(52, 52, 52, 0.8901960784) 0%, rgba(0, 0, 0, 0.1803921569) 100%);
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  position: absolute;
  z-index: -1;
}
#home .introduction__flex__item .bgImg {
  position: absolute;
  top: 0;
  left: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
#home .introduction__flex__item .bgImg img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#home .introduction__flex__item .orangemark {
  position: absolute;
  top: 3em;
  left: 3em;
}
#home .introduction__flex__item .orangemark::before {
  content: "";
  background-color: #FF6C00;
  width: 8.5em;
  height: 8.5em;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  position: absolute;
  z-index: -1;
  border-radius: 100%;
}
#home .introduction__flex__item .orangemark .main {
  font-size: 115%;
  line-height: 1.5;
}
#home .introduction__flex__item .orangemark .sub {
  margin-top: 0.25em;
  font-size: 95%;
}
#home .introduction__flex__item:hover::before {
  opacity: 0;
}
@media screen and (max-width: 1600px) {
  #home .introduction__flex__item {
    padding: 2em 1em;
  }
}
@media only screen and (max-width: 1400px) {
  #home .introduction__flex__item {
    padding: 2.5em;
  }
}
#home .introduction__flex--tit {
  font-size: 200%;
  padding-left: 1.25em;
  padding-right: 1.25em;
  position: relative;
  width: fit-content;
  line-height: 1.6;
}
#home .introduction__flex--tit::before {
  content: "";
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 30vw;
  max-width: 28px;
  height: 30vw;
  max-height: 28px;
  position: absolute;
  background: url(../images/common/icon-sunflower.svg) no-repeat center/cover;
}
#home .introduction__flex--tit::after {
  content: "";
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  width: 30vw;
  max-width: 22px;
  height: 30vw;
  max-height: 22px;
  position: absolute;
  background: url(../images/common/icon-arrow.svg) no-repeat center/cover;
}
#home .introduction__flex .txt {
  margin-top: 0.5em;
  line-height: 2;
  font-size: 95%;
  min-height: 85px;
}
@media only screen and (max-width: 1400px) {
  #home .introduction__flex {
    flex-wrap: wrap;
  }
  #home .introduction__flex__item {
    width: calc((100% - 1px) / 2);
  }
  #home .introduction__flex__item:last-of-type {
    width: 100%;
    aspect-ratio: 1400/600;
  }
}
@media only screen and (max-width: 960px) {
  #home .introduction__flex--tit::before {
    width: 4.2vw;
    max-width: inherit;
    height: 4.2vw;
    max-height: inherit;
  }
  #home .introduction__flex__item {
    width: 100%;
    aspect-ratio: 1400/1000;
  }
  #home .introduction__flex__item:last-of-type {
    aspect-ratio: 1400/1000;
  }
}
@media only screen and (max-width: 768px) {
  #home .introduction__flex--tit::before {
    width: 6vw;
    height: 6vw;
  }
  #home .introduction__flex--tit::after {
    width: 4vw;
    height: 4vw;
  }
  #home .introduction__flex__item {
    padding: 2em 1em;
    aspect-ratio: 532/600;
  }
  #home .introduction__flex__item:last-of-type {
    aspect-ratio: 532/600;
  }
}
#home .overview {
  padding-bottom: 5em;
}
#home .overview .c-table .imgTxt {
  display: inline-block;
  width: 24vw;
  max-width: 300px;
  height: 1em;
  background: url(../images/common/mail-img.svg) no-repeat center/cover;
}
#home .overview .c-table .imgTxt:hover {
  opacity: 0.6;
}
@media only screen and (max-width: 960px) {
  #home .overview .c-table .imgTxt {
    width: 44vw;
  }
}
@media only screen and (max-width: 768px) {
  #home .overview .c-table .imgTxt {
    width: 60vw;
  }
}

#recruit .interview {
  padding-bottom: 2em;
}
#recruit .job .c-table {
  margin-top: 2em;
  width: 100%;
}

#news .article #entry .entry {
  padding: 5em 0;
  border-bottom: 1px solid #C9C9C9;
}
#news .article #entry .entry:first-of-type {
  padding-top: 0;
}
#news .article #entry .entry:last-of-type {
  padding-bottom: 2em;
  border-bottom: 0;
}
#news .article #entry .entry h3 {
  font-size: 200%;
  line-height: 1.6;
  font-weight: bold;
  margin-bottom: 1em;
}
#news .article #entry .entry h1,
#news .article #entry .entry h2,
#news .article #entry .entry h4,
#news .article #entry .entry h5,
#news .article #entry .entry h6 {
  font-size: 160%;
  font-weight: bold;
}
#news .article #entry .entry a {
  color: #FF6C00;
}
#news .article #entry .entry a:hover {
  text-decoration: underline;
}
#news .article #entry .entry .content {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
#news .article #entry .entry .content table {
  border-collapse: collapse;
  width: max-content;
  min-width: 100%;
}
#news .article #entry .entry .content table tr:first-child td {
  background-color: #FF6C00;
  font-weight: bold;
  color: #fff;
  white-space: nowrap;
}
#news .article #entry .entry .content table tr td {
  text-align: center;
  color: #FF6C00;
  border: 1px solid #C6C6C6;
  padding: 0.5em 3em;
  vertical-align: middle;
  white-space: nowrap;
}
#news .article #entry .information {
  text-align: inherit;
  margin: 0 0 1em;
  font-size: 90%;
}
#news .article #entry .information a {
  font-weight: bold;
  color: #FF6C00;
}
#news .article #utility {
  font-size: 100%;
}
#news .article #utility .utility {
  background: #F2F2F2;
  padding: 2em;
  border-radius: 2em;
}
#news .article #utility .utility h3 {
  font-size: 120%;
  font-weight: bold;
  padding: 0.2em 0.6em;
}
#news .article #utility .utility .calender tr td a {
  background-color: #fff;
  display: block;
  border-radius: 0.5em;
}
#news .article #utility .content a {
  color: #FF6C00;
}
#news .article #utility .content a:hover {
  text-decoration: underline;
}
#news .article #freo-container form input[type=submit] {
  background-color: #FF6C00;
}
#news .article #freo-container .order a {
  color: #FF6C00;
}
#news .article #freo-container .order a:hover {
  text-decoration: underline;
}

#gakudou .feature .c-pointContainer__flex {
  margin-top: 2em;
}

#ekimae .feature .c-pointContainer__flex {
  margin-top: 2em;
}

#document .download .c-downloadContainer--txt {
  padding-bottom: 0;
}

#contact .tel .c-telBox a {
  margin: 0.25em auto 0;
  display: table;
  font-size: 200%;
  padding-left: 1.2em;
  position: relative;
  line-height: 1.6;
}
#contact .tel .c-telBox a::before {
  content: "";
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 30vw;
  max-width: 28px;
  height: 30vw;
  max-height: 28px;
  position: absolute;
  background: url(../images/common/icon-tel.svg) no-repeat center/cover;
}
#contact .mail {
  padding-bottom: 6em;
}
#contact .mail .c-title {
  margin-bottom: 1em;
}
#contact .mail button,
#contact .mail input,
#contact .mail optgroup,
#contact .mail select,
#contact .mail textarea {
  appearance: auto;
}
#contact .mail .mfp-cont {
  width: calc(100% - 170px);
  padding: 10px 0 15px;
  line-height: 1.5;
  margin: 0px;
}
#contact .mail .mfp-cont select {
  max-width: 150px;
  flex-shrink: 1;
  margin-right: 1em;
  padding: 0.5em;
  border: none;
  border-radius: 0.5em;
  background: #fff;
}
#contact .mail form#mailformpro dl dt {
  width: 250px;
}
#contact .mail form#mailformpro dl dd {
  width: calc(100% - 250px);
}
#contact .mail form#mailformpro input,
#contact .mail form#mailformpro button,
#contact .mail form#mailformpro select,
#contact .mail form#mailformpro textarea {
  font-size: 115%;
}
#contact .mail form#mailformpro .mfp_ruby {
  color: #ffb47f;
  font-family: "Montserrat", sans-serif;
  margin-top: 0.5em;
}
#contact .mail form#mailformpro .mfp_must {
  color: #FF0000;
}
#contact .mail form#mailformpro .mfp_buttons {
  display: flex;
  justify-content: center;
  gap: 0 1.25em;
  max-width: 650px;
}
#contact .mail form#mailformpro .mfp_buttons button {
  border-radius: 100px;
  padding: 1.2em 1em;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
  text-align: center;
  margin: inherit;
  min-width: inherit;
  width: 100%;
}
#contact .mail form#mailformpro .mfp_buttons button:hover {
  opacity: 0.6;
}
#contact .mail form#mailformpro .mfp_buttons .sub {
  background-color: #FF6C00;
}
#contact .mail #mfp_content {
  max-width: inherit;
}
#contact .mail .mfp_form_area input[type=text],
#contact .mail .mfp_form_area input[type=number],
#contact .mail .mfp_form_area input[type=select-one],
#contact .mail .mfp_form_area input[type=email],
#contact .mail .mfp_form_area input[type=tel],
#contact .mail .mfp_form_area input[type=date],
#contact .mail .mfp_form_area input[type=password],
#contact .mail .mfp_form_area textarea {
  border: solid 1px #c9c9c9;
  border-radius: 0.25em;
}
#contact .mail .mfp label {
  border: solid 1px #c9c9c9;
  padding: 0.5em 1em;
  border-radius: 0.25em;
}
#contact .mail .mfp select {
  border: solid 1px #c9c9c9;
  border-radius: 0.25em;
}
@media only screen and (max-width: 960px) {
  #contact .mail form#mailformpro dl dt {
    width: 100%;
  }
  #contact .mail form#mailformpro dl dd {
    width: 100%;
  }
}
@media only screen and (max-width: 768px) {
  #contact .tel .c-telBox a::before {
    width: 6vw;
    height: 6vw;
    max-width: inherit;
    max-height: inherit;
  }
}
@media only screen and (max-width: 480px) {
  #contact .mail form#mailformpro .mfp_buttons {
    flex-wrap: wrap;
  }
  #contact .mail form#mailformpro label {
    width: 100%;
    margin: 0.5em 0;
  }
  #contact .mail form#mailformpro .mfp-cont select {
    margin: 0.5em 0;
    max-width: 100%;
  }
}