@charset "UTF-8";

/* ==== root ========================== */
:root {
  --color-black: #4D4D4D;
  --color-white: #FCFCFB;
  --color-navy: #003E72;
  --color-primary: #AFA37D;
  --color-txt-gold: #8D7C47;
  --color-bg: #EFEDE6;
  --color-bg-gray: #F5F5F5;

  --noto-sans: "Noto Sans JP", serif;
  --cormorant: "Cormorant Garamond", serif;
  --zen-old: "Zen Old Mincho", serif;
  --klee-one: "Klee One", serif;


  --line-middle: 2;
  --line-large: 2.4;
}

/*================================================
 *  loader
 ================================================*/
.loader {
  position: fixed;
  width: 100%;
  height: 100%;
  background-color: var(--color-bg);
  z-index: 555;
  top: 0;
  left: 0;
  display: flex;
  justify-content: center;
  align-items: center;
}

.loader img {
  width: 30rem;
  margin: auto;
}

@media screen and (max-width:767px) {

  .loader img {
    width: 50rem;
  }

}

/*================================================
 *  mainVisual
 ================================================*/
#mainVisual {
  padding-top: 14rem;
  max-width: 100%;
}

#mainVisual .inner {
  gap: 6rem;
  position: relative;
  min-width: unset;
  margin-left: auto;
}

#mainVisual h2 {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: 25vw;
  padding-left: 2rem;
  font-family: var(--zen-old);
  font-weight: 300;
  line-height: 3;
  margin-top: 12rem;
  z-index: 2;
  letter-spacing: 0.05em;
  font-size: 3.2rem;
  height: 500px;
}


#mainVisual h2 span:first-of-type {
  margin-top: 0;
}

#mainVisual .slide__inner {
  width: 58.33vw;
  height: 70rem;
  overflow: hidden;
  margin-right: 1.5rem;
}

#mainVisual .mv__slide .swiper {
  width: 28.4vw;
  height: 70rem;
}

#mainVisual .mv__slide .swiper .swiper-wrapper {
  transition-timing-function: linear;
}

#mainVisual .mv__slide .swiper-slide {
  height: 36.5vw;
  overflow: hidden;
  object-fit: cover;
  overflow-y: hidden;
  margin: 1rem 0;
}

#mainVisual .copy {
  position: absolute;
  top: 50%;
  left: 2rem;
  width: 100vh;
  transform: translateX(-50%) rotate(90deg);
  text-align: center;
  font-family: var(--cormorant);
  font-size: 1.2rem;
}

@media screen and (max-width:767px) {
  #mainVisual {
    padding-top: 28rem;
    padding-bottom: 0;
  }

  #mainVisual .inner {
    gap: 0;
    padding-left: 0;
    width: 67rem;
    margin-left: auto;
  }

  #mainVisual .mainVisual__text {
    width: 100%;
  }

  #mainVisual h2 {
    font-size: 3.4rem;
    margin: 0 22rem 10rem auto;
    position: static;
    padding-left: 0;
    width: fit-content;
    text-align: center;
    height: 200px;
  }

  #mainVisual .slide__inner {
    width: 67rem;
    height: 56.2rem;
    margin-left: auto;
    margin-right: 0;
  }

  #mainVisual .mv__slide .swiper {
    width: 32.7rem;
    height: 56.2rem;
  }

  #mainVisual .mv__slide .swiper-slide {
    height: 41.9rem;
  }

  #mainVisual .copy {
    position: absolute;
    top: auto;
    left: 2rem;
    bottom: 14rem;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    font-size: 1.6rem;
  }
}

/*================================================
 * intro
================================================*/
#topIntro {
  padding-bottom: 0;
}

#topIntro::before {
  position: absolute;
  content: "";
  background-size: contain;
  background-repeat: no-repeat;
  vertical-align: middle;
  display: inline-block;
  background-image: url(../images/intro_bg.png);
  width: 68rem;
  height: 75rem;
  top: -31vw;
  left: 0;
  z-index: -1;
}

#topIntro .inner {
  width: 59.3vw;
  min-width: unset;
  margin-left: auto;
  padding-right: 14rem;
  margin-top: 2rem;
}

#topIntro .inner p {
  font-size: clamp(14px, 2rem, 100px);
  font-family: var(--zen-old);
  margin-top: 1em;
}

@media screen and (max-width:767px) {
  #topIntro {
    padding: 10rem 0;
  }

  #topIntro::before {
    background-image: url(../images/intro_bg_sp.png);
    width: 47.4rem;
    height: 72.7rem;
    top: 76.2rem;
  }

  #topIntro .inner {
    width: 69rem;
    margin: 0 auto;
    padding-right: 0;
  }

  #topIntro .inner p {
    font-size: 3.2rem;
  }
}

/*================================================
 * topstyle
================================================*/
#topStyle {
  padding-bottom: 0;
}

#topStyle .inner {
  width: 115rem;
  min-width: 747px;
  margin-left: auto;
  margin-right: 12rem;
  padding-left: 3rem;
}

#topStyle .under__inner {
  width: 120rem;
  margin-left: auto;
  margin-right: auto;
  padding-left: 0;
  padding-top: 19rem;
  padding-bottom: 8rem;
}

#topStyle h2 {
  margin-bottom: 8rem;
  width: 100%;
}

#topStyle h3 {
  font-size: 2.8rem;
  line-height: var(--line-large);
  margin-bottom: 6rem;
}

#topStyle p {
  line-height: var(--line-large);
}

#topStyle .top__txt p {
  width: 55rem;
}

#topStyle .top__img {
  width: 54rem;
  position: absolute;
  top: 21rem;
  right: 0;
}

#topStyle .top__img img:first-of-type {
  width: 38.7rem;
  margin-left: auto;
}

#topStyle .top__img img:nth-of-type(2) {
  width: 19rem;
  margin-top: 5rem;
}

.under__txt {
  width: 54rem;
}

#topStyle .under__img {
  width: 56rem;
}

#topStyle .under__img img:first-of-type {
  width: 34rem;
}

#topStyle .under__img img:nth-of-type(2) {
  width: 19rem;
  margin-left: auto;
  margin-top: -12rem;
}

#topStyle h4 {
  text-align: center;
  font-size: 2.8rem;
}

#topStyle .narrow>p.ac {
  margin: 4rem 0;
}

#topStyle .ws_bg {
  margin-top: 8rem;
}

@media screen and (max-width:767px) {
  #topStyle {
    padding-top: 5rem;
  }

  #topStyle .inner {
    min-width: unset;
    padding-left: 0;
    padding-right: 0;
    width: 100%;
  }

  #topStyle h2 {
    width: 69rem;
    margin: 0 auto 8rem;
  }

  #topStyle .top__txt,
  #topStyle .under__txt {
    width: 69rem;
    margin: auto;
  }

  #topStyle .top__txt p,
  #topStyle .under__txt p {
    width: 100%;
  }

  #topStyle h3 {
    font-size: 3.2rem;
  }

  #topStyle .top__img {
    width: 63rem;
    position: static;
    margin-left: auto;
    margin-top: 6rem;
  }

  #topStyle .top__img img:first-of-type {
    width: 45.4rem;
  }

  #topStyle .top__img img:nth-of-type(2) {
    width: 22.6rem;
    margin-top: 6rem;
  }

  #topStyle .under__inner {
    padding-top: 8rem;
    padding-bottom: 10rem;
    padding-left: 0;
    padding-right: 0;
    min-width: unset;
    width: 100%;
  }

  #topStyle .under__inner h3 {
    margin-bottom: 4rem;
  }

  #topStyle .under__img {
    width: 66rem;
    margin: 8rem auto 0 0;
  }

  #topStyle .under__img img:first-of-type {
    width: 40rem;
  }

  #topStyle .under__img img:nth-of-type(2) {
    width: 22rem;
    margin-top: -14rem;
  }

  #topStyle h4 {
    font-size: 3.2rem;
  }

  #topStyle .narrow {
    width: 100%;
  }

  #topStyle .ws_bg {
    margin-top: 10rem;
  }
}

/*================================================
 * toppositions
================================================*/
#topPositions {
  background: var(--color-bg-gray);
}

#topPositions::before {
  position: absolute;
  content: "";
  width: 100%;
  height: 40rem;
  background: var(--color-bg-gray);
  top: -35rem;
  left: 0;
  z-index: -1;
}

#topPositions ul li {
  margin-top: 8rem;
}

#topPositions ul li:first-child {
  margin-top: 4rem;
}

#topPositions ul li>div:not(.btnArea) {
  width: 54rem;
}

#topPositions ul li>div p {
  margin: 2rem 0 4rem;
}

#topPositions ul li img {
  width: 60rem;
}

@media screen and (max-width:767px) {
  #topPositions::before {
    content: none;
  }

  #topPositions ul li>div:not(.btnArea) {
    width: 100%;
  }

  #topPositions ul li>div p {
    margin: 1rem 0 3rem;
  }

  #topPositions ul li img {
    margin: 4rem auto;
  }

  #topPositions .btnArea.sp {
    width: 100%;
  }
}


/*================================================
 * top-interview
================================================*/
#topInterview .inner {
  width: 115rem;
  margin: 0 auto;
}

#topInterview ul {
  display: grid;
  gap: 3.7rem;
  grid-template-columns: repeat(3, 1fr);
  margin: 8rem 0 6rem;
}


#topInterview ul li img {
  width: 31.5rem;
}

#topInterview ul li div {
  width: 32rem;
  padding: 3rem 2rem 2rem;
  background: var(--color-white);
  margin-left: auto;
  margin-top: -10rem;
  position: relative;
  z-index: 1;
}

#topInterview ul li div.interview_list__img {
  width: 31.5rem;
  padding: 0;
  aspect-ratio: 113/133;
  margin: 0;
  z-index: 0;
  object-fit: cover;
  background-color: var(--color-bg-gray);
  display: block;
}

#topInterview ul li a:hover div {
  color: var(--color-primary);
}

#topInterview ul li div h3 {
  font-family: var(--klee-one);
  line-height: var(--line-middle);
  font-size: 1.8rem;
  min-height: 6em;
  transition: .4s;
}


#topInterview ul li div h4 {
  font-size: 2rem;
  font-weight: 400;
  text-align: right;
  transition: .4s;
}

#topInterview ul li div h4 span {
  font-size: 1.4rem;
  margin-right: 1em;
}

#topInterview ul li div p {
  text-align: right;
  font-size: 1.2rem;
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 0.1rem solid #D5D5D5;
  transition: .4s;
}

#topInterview ul li a:hover div p {
  border-top: 0.1rem solid var(--color-primary);
}

@media screen and (max-width:767px) {
  #topInterview .inner {
    width: 60.1rem;
  }

  #topInterview ul {
    gap: 8rem;
    grid-template-columns: repeat(1, 1fr);
  }

  #topInterview ul li img {
    width: 53rem;
  }

  #topInterview ul li div {
    width: 53rem;
  }

  #topInterview ul li div h3 {
    font-size: 2.8rem;
    min-height: unset;
  }

  #topInterview ul li div h4 {
    font-size: 3.6rem;
  }

  #topInterview ul li div h4 span {
    font-size: 2.6rem;
  }

  #topInterview ul li div p {
    font-size: 2rem;
  }
}

/*================================================
 * top-welfare
================================================*/
#topWelfare {
  background: var(--color-bg-gray);
  padding-bottom: 0;
}

#topWelfare .wrap {
  padding: 10rem 0 4rem;
  position: relative;
  z-index: 1;
  background: var(--color-white);
}

#topWelfare .narrow>p {
  margin: 4rem 0;
}

#topWelfare ul {
  display: grid;
  gap: 4rem;
  grid-template-columns: repeat(2, 1fr);
}

#topWelfare ul li img {
  width: 35rem;
  margin: 0 auto;
}

#topWelfare ul li h3 {
  font-size: 2rem;
  text-align: center;
  margin: 2rem 0 1rem;
}



#topWelfare .btnArea {
  margin-top: -3rem;
  z-index: 1;
  position: relative;
}

@media screen and (max-width:767px) {
  #topWelfare {
    padding-bottom: 5rem;
  }

  #topWelfare .wrap {
    padding: 10rem 4rem 6rem;
  }

  #topWelfare .narrow {
    width: 100%;
  }

  #topWelfare .narrow>p {
    margin: 4rem 0 6rem;
  }

  #topWelfare ul {
    grid-template-columns: repeat(1, 1fr);
  }

  #topWelfare ul li h3 {
    font-size: 3.2rem;
    margin: 2rem 0;
  }

  #topWelfare ul li img {
    width: 100%;
    margin: 0 auto;
  }
}


/*================================================
 * bloglist
================================================*/
#blogList {
  background: var(--color-bg-gray);
}

#blogList .btnArea {
  margin-top: 6rem;
}

#blogList ul {
  width: 66.3rem;
  margin-top: 2rem;
}

#blogList ul li {
  margin-top: 4rem;
}

#blogList ul li a {
  padding-bottom: 2rem;
  border-bottom: 0.2rem dashed #D5D5D5;
}

#blogList ul li a:hover {
  color: var(--color-primary);
  border-bottom: 0.2rem dashed var(--color-primary);
}

#blogList ul li a p {
  font-size: 1.4rem;
  font-weight: 400;
}

#blogList ul li a h3 {
  font-family: var(--noto-sans);
  font-size: 1.6rem;
  line-height: 1.8;
  font-weight: 400;
}

@media screen and (max-width:767px) {
  #blogList ul {
    width: 100%;
    margin-top: 0;
  }

  #blogList ul li:first-child {
    margin-top: 0;
  }

  #blogList ul li a p {
    font-size: 2.4rem;
  }

  #blogList ul li a h3 {
    font-size: 2.4rem;
  }
}
