@charset "UTF-8";

/* ========================================
  TOP
  /index.html
======================================== */

/* First View
---------------------------------------- */
.fv {
  position: fixed;
  z-index: -1;
  top: var(--header-height);
  left: 0;
  width: 100%;
  height: calc(100vh - var(--header-height));
}
.fv__slide {
  height: 100%;
}
.fv__content {
  position: relative;
  height: calc(100vh - var(--header-height));

  > div {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    color: #FFF;
    transform: translateY(3rem);
    opacity: 0;
    transition: opacity 2s ease, transform 2s ease;

    &.is-visible {
      transform: translateY(0);
      opacity: 1;
    }
  }
}
.vegas-overlay {
  background-color: rgba(91, 91, 91, 1);
  mix-blend-mode: multiply;
}
.fv-content01 {
  display: flex;
  justify-content: center;
  align-items: center;

  @media screen and (max-width: 767px) {
    h1 {
      width: min(40%, 19.2rem);
    }
  }
}
.fv-content02__inner {
  width: min(90%, 120rem);
  height: 100%;
  margin: 0 auto;
  padding: 5% 0;
  display: flex;
  justify-content: space-between;

  @media screen and (max-width: 767px) {
    flex-direction: column;
    justify-content: center;
  }
}
.fv-content__text {
  display: flex;
  flex-direction: column;
  justify-content: center;

  .fv-copy {
    margin-bottom: .5em;
    font-family: var(--font-serif);
    font-size: min(3.6rem, 6vw);
    letter-spacing: .1em;
  }
  p:not([class]) {
    margin-top: 1em;
    font-size: 1.6rem;
    letter-spacing: .15em;
  }
  @media screen and (max-width: 767px) {
    p:not([class]) {
      font-size: 1.5rem;
      letter-spacing: .1em;
    }
  }
}
.fv-content__catch {
  width: calc((556 / 1200) * 100%);
  display: flex;
  align-items: flex-end;

  @media screen and (max-width: 767px) {
    width: min(60%, 30rem);
    margin: 7vw 5vw 0 auto;
  }
}

/* Top Target
---------------------------------------- */
.top-target {
  padding-top: min(6rem, 5vw);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0 min(4.5rem, 5%);

  li a {
    display: block;
    padding: 2em;
    border: solid 1px #CCC;
    background-color: #FFF;
    text-align: center;
    font-family: var(--font-serif);
    letter-spacing: .2em;
    transition: background-color .3s ease;

    @media (hover: hover) {
      &:hover {
        background-color: #f2f2f2;
      }
    }
  }
}

/* Top News
---------------------------------------- */
.top-news {
  margin-top: min(10rem, 10vw);
}
.top-news__inner {
  display: grid;
  grid-template-columns: 1fr 95rem;

  @media screen and (max-width: 767px) {
    grid-template-columns: 1fr;
  }
}
.top-news__link {
  margin-top: 3rem;
  text-align: right;

  a {
    display: inline-flex;
    align-items: center;
    gap: 0 1em;
    font-family: var(--font-en);
    font-size: 1.2rem;

    &::after {
      content: "";
      width: 1.1rem;
      aspect-ratio: 1;
      background-color: currentColor;
      mask: url(../images/common/icon-view-all.svg) center center / contain no-repeat;
      transition: transform .3s ease;
    }
    @media (hover: hover) {
      &:hover {
        &::after {
          transform: translateX(.5em);
        }
      }
    }
  }
  @media screen and (max-width: 767px) {
    a {
      font-size: 1.5rem;
    }
  }
}

/* Top BLock
---------------------------------------- */
.top-block {
  position: relative;

  &:not(:last-child) {
    margin: min(9rem, 7vw) 0;
  }
}
.top-block__more {
  margin-top: 2.5rem;
  display: flex;
  
  &.u-right {
    justify-content: flex-end;
  }
}
.top-block01, .top-block03 {
  figure {
    width: 50%;
    aspect-ratio: 72 / 40;
    min-height: 40rem;

    img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
  }
  .top-block__body {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
  }
  .top-block__inner {
    width: 50%;
    margin-left: auto;
    padding-left: calc((80 / 1200) * 100%);
  }
  @media screen and (max-width: 767px) {
    figure {
      width: 100%;
      min-height: initial;
    }
    .top-block__body {
      position: static;
      display: block;
    }
    .top-block__inner {
      width: 100%;
      padding: 7vw 0 0;
    }
  }
}
.top-block03 {
  background-color: #E8EBEC;

  figure {
    margin-left: auto;
  }
  .top-block__inner {
    margin-right: auto;
    margin-left: 0;
    padding-right: calc((80 / 1200) * 100%);
    padding-left: 0;
  }
  @media screen and (max-width: 767px) {
    .top-block__inner {
      width: 100%;
      padding: 7vw 0;
    }
  }
}
.top-block02 {
  figure {
    width: 100%;
    aspect-ratio: 144 / 40;
    min-height: 40rem;

    img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
  }
  .top-block__body {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
  }
  .top-block__inner {
    width: 50%;
    margin-right: auto;
    padding-right: calc((80 / 1200) * 100%);
    color: #FFF;
  }
  @media screen and (max-width: 767px) {
    figure {
      width: 100%;
      aspect-ratio: 72 / 40;
      min-height: initial;
    }
    .top-block__body {
      position: static;
      display: block;
    }
    .top-block__inner {
      width: 100%;
      padding: 7vw 0 0;
      color: var(--color-primary);
    }
  }
}



/* ========================================
  NEWS
  /news/index.html
======================================== */
/* NEWS List
---------------------------------------- */
.news-list {
  border-top: solid 1px #CCC;

  .entry-wrap {
    padding: 2.5rem 0;
    border-bottom: solid 1px #CCC;
    display: grid;
    grid-template-columns: 13rem 1fr;
    transition: opacity .2s ease;

    @media (hover: hover) {
      &:hover {
        opacity: .7;
      }
    }
    &[href="#"] {
      pointer-events: none;
    }
  }
  .entry-date {
    font-family: var(--font-en);
    font-size: 1.5rem;
    font-weight: 400;
    letter-spacing: .05em;
  }
  .entry-title {
    font-size: 1.6rem;
  }
  .entry-text {
    margin-top: 1em;
  }
  @media screen and (max-width: 767px) {
    .entry-wrap {
      padding: 1.5rem 0;
      grid-template-columns: 1fr;
    }
  }
}
.news .news-list {
  padding-bottom: min(12rem, 10vw);
  
  @media screen and (min-width: 767px) {
    min-height: 70rem;
  }
}


/* ========================================
  ABOUT US
  /aboutus/index.html
======================================== */
.aboutus-feature__inner {
  margin-top: min(12rem, 10vw);
  padding: min(6.7rem, 10vw) 0 min(12rem, 10vw);
  border: solid var(--color-border);
  border-width: 1px 0;
}
.aboutus-feature__title {
  margin-bottom: min(4rem, 7vw);
  display: grid;
  grid-template-rows: auto auto;

  img {
    display: block;
    margin: 0 auto .5rem;
  }
  span {
    padding-left: .2em;
    text-align: center;
    font-family: var(--font-serif);
    font-size: min(2.2rem, 4vw);
    font-weight: 400;
    letter-spacing: .2em;
  }
}
.aboutus-feature__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0 2.9rem;

  li {
    position: relative;
    padding: min(5rem, 7vw) 2rem;
    border: solid 1px #7F7F7F;
    border-radius: 2rem;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;

    .num {
      position: absolute;
      top: 1rem;
      left: 2rem;
      font-family: var(--font-en);
      font-size: 3rem;
      font-weight: 400;
      color: #646464;
    }
    .txt {
      font-size: 1.6rem;
      color: #000;

      strong {
        position: relative;
        padding: 0 .1em;
        
        font-family: var(--font-serif);
        font-size: 2.2rem;
        font-weight: 600;
        letter-spacing: .05em;

        &::before {
          content: "";
          position: absolute;
          top: 50%;
          left: 50%;
          transform: translate(-50%, -45%);
          width: 102%;
          height: 80%;
          background-color: #F3ECC5;
        }
        span {
          position: relative;
        }
      }
    }
    .img {
      position: absolute;
      bottom: 2rem;
      right: 4rem;
      width: 15%;
    }
  }
  @media screen and (max-width: 767px) {
    grid-template-columns: 1fr;
    gap: 5vw 0;
  }
}
.aboutus-message {
  padding: min(12rem, 10vw) 0;
}
.aboutus-message__title {
  margin-bottom: min(7rem, 10vw);
}
.aboutus-message__sign {
  margin-top: min(3rem, 5vw);
  display: flow-root;

  p {
    float: right;
    display: grid;
    font-family: var(--font-serif);

    span {
      font-size: 1.3rem;
      letter-spacing: .2em;
    }
    strong {
      font-size: 1.8rem;
      font-weight: 500;
      letter-spacing: .3em;
    }
  }
}


/* ========================================
  COMPANY
  /company/index.html
======================================== */
.company-profile {
  padding-bottom: min(14rem, 10vw);
  border-bottom: solid 1px var(--color-border);
}
.company-profile__table {
  font-weight: 400;

  tr {
    &:nth-child(odd) {
      background-color: rgba(232, 235, 236, .55);
    }
    th, td {
      padding: 1em 2.5em;
    }
    th {
      width: 15em;
      letter-spacing: .4em;
    }
  }
  @media screen and (max-width: 767px) {
    tr {
      th, td {
        display: block;
      }
      th {
        width: 100%;
        padding: 1em 1.5em .25em;
      }
      td {
        padding: 0 1.5em 1em;
      }
    }
    }
}
.company-map {
  width: min(100%, 87rem);
  margin: min(10rem, 7vw) auto 0;

  iframe {
    width: 100%;
    height: min(30rem, 80vw);
  }
}
.company-safety {
  padding: min(12rem, 10vw) 0;
}


/* ========================================
  HISTORY
  /history/index.html
======================================== */
.history-header {
  width: min(74rem,90%);
  margin: 0 auto min(5.5rem, 7vw);
  display: grid;
  grid-template-rows: auto auto;
  justify-items: center;
}
.history-header__image {
  width: min(6rem, 12%);
  margin: max(-3rem, -2vw) 0 1rem;
}
.history-header__copy {
  text-align: center;
  font-family: var(--font-serif);
  font-size: min(2.2rem, 4.6vw);
  font-weight: 400;
  letter-spacing: .2em;
}
.history-wrap {
  position: relative;
  width: min(74rem,90%);
  margin: 0 auto;

  &::before {
    content: "HISTORY";
    position: absolute;
    top: 1.5em;
    left: -5em;
    transform: rotate(90deg);
    font-family: var(--font-en);
    font-size: 1.2rem;
    letter-spacing: .18em;
  }
  @media screen and (max-width: 767px) {
    width: 76%;

    &::before {
      left: -5em;
      font-size: 1rem;
    }
  }
}
.history-item {
  display: grid;
  grid-template-columns: min(9rem, 15vw) 1fr;
}
.history-item__year {
  position: relative;
  border-right: solid .2rem #C2C2C2;

  > div {
    display: flex;
    justify-content: space-between;
    align-items: center;

    &::after {
      content: "";
      width: min(1.4rem, 3vw);
      aspect-ratio: 1;
      border: solid .2rem #604C3F;
      border-radius: 50%;
      background-color: #FFF;
      transform: translateX(calc(50% + .1em));
    }
    span {
      line-height: 1;
      font-family: var(--font-serif);
      font-size: min(2.8rem, 5vw);
      font-weight: 500;
    }
  }
}
.history-item__text {
  position: relative;
  padding: min(3rem, 4vw) 0 min(4rem, calc(5vw + 2rem)) min(3rem, 4vw);

  &::after {
    content: "";
    position: absolute;
    bottom: 2rem;
    left: 0;
    width: 4rem;
    border-bottom: dashed 1px #C2C2C2;
  }
}
.history-item:last-child .history-item__text {
  padding-bottom: min(15rem, 20vw);

  &::after {
    content: none;
  }
}
.history-contents {
  li {
    &:not(:first-child) {
      margin-top: 2rem;
    }
    > span:first-child {
      display: block;
      font-family: var(--font-serif);
      font-size: 1.3rem;
    }
    strong {
      display: block;
      margin: 1rem 0 1.5rem;
      line-height: 1.4;
      font-size: 1.8rem;
      font-weight: 400;
    }
    > figure {
      margin-top: 1rem;

      &:not(:last-child) {
        margin-bottom: 1rem;
      }
      img {
        display: block;

        + img {
          margin-top: 1.5rem;
        }
      }
    }
  }
}
.y1917-img01 {
  display: flex;
  align-items: flex-end;
  gap: 0 1em;
  line-height: 1.6;
  font-size: 1.2rem;
  letter-spacing: 0;

  img {
    width: 10rem;
  }
}
.y1963-img img { width: 26.7rem; }
.y1974-img img { width: 24.5rem; }
.y1978-img img { width: 24.5rem; }
.y2013-img img {  margin: 2rem 0; }
.y2018-img img:nth-child(2) { width: 39.7rem; }
.y2020-img img:nth-child(2) { width: 39.7rem; }
.y2024-img img { width: 39.7rem; }
@media screen and (max-width: 767px) {
  .y1988-img img { max-width: 40%; }
  .y2018-img img:first-child { max-width: 70%; }
  .y2020-img img:first-child { max-width: 17%; }
}


/* ========================================
  CORPORATE CLIENT
  /corporate-client/index.html
======================================== */
.corp-lineup {
  gap: min(7rem, 7vw) min(7%, 5vw);

  li a {
    display: block;

    .corp-lineup__thumb {
      aspect-ratio: 340 / 228;
      overflow: hidden;
      
      img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: transform .3s ease;
      }
    }
    .corp-lineup__text {
      margin-top: min(2rem, 3vw);
      display: grid;
      gap: 1rem 0;
      line-height: 1.4;
      text-align: center;

      .ja {
        font-family: var(--font-serif);
        font-size: min(2rem, 4vw);
        font-weight: 400;
        letter-spacing: .05em;
      }
      .en {
        font-family: var(--font-en);
        font-size: 1rem;
        letter-spacing: .1em;
      }
    }
    @media (hover: hover) {
      &:hover {
        .corp-lineup__thumb {
          img {
            transform: scale(1.1);
          }
        }
      }
    }
  }
}


/* ========================================
  PRODUCTS
  /corporate-client/-----/index.html
======================================== */
.product-list {
  gap: min(9rem, 10vw) 5%;
}
.product-list__item {
  display: grid;
  grid-template-columns: calc((330 / 575) * 100%) 1fr;
  font-size: 1.2rem;

  .name {
    margin-top: .5em;
    line-height: 1.5;
    font-family: var(--font-serif);
    font-weight: 400;
    font-size: 1.8rem;
  }
  .lead {
    margin: 1em 0;
    padding-bottom: 1em;
    border-bottom: solid 1px var(--color-border);
    font-size: 1.3rem;
  }
  .spec {
    margin-top: 1em;

    li {
      display: inline-block;
      margin-right: 1em;
    }
  }
  @media screen and (max-width: 767px) {
    grid-template-columns: 35% 1fr;
    gap: 0 2%;

    .image {
      margin-top: 1em;
    }
    .name {
      margin-top: 0;
    }
  }
}
.products-button {
  margin-top: min(15rem, 15vw);
  text-align: center;
}


/* ========================================
  INDIVIDUAL CUSTOMERS
  /individual-customers/index.html
======================================== */
.indiv-main {
  padding-top: 0;
}
.indiv-lead {
  margin-top: .3rem;
  background-color: var(--color-primary);
  color: #FFF;
}
.indiv-lead__inner {
  padding: 8rem 0 10rem;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  align-items: center;

  @media screen and (max-width: 767px) {
    padding: min(8rem, 10vw) 5% min(10rem, 15vw);
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
    gap: 10vw 0;
  }
}
.indiv-lead__image {
  padding-right: 15%;
  text-align: center;

  @media screen and (max-width: 767px) {
    padding-right: 0;

    img {
      max-width: 30%;
    }
  }
}
.indiv-lead__copy {
  margin-bottom: 1em;
  font-family: var(--font-serif);
  font-size: min(2.2rem, 4vw);
  font-weight: 500;
  letter-spacing: .1em;
}
.indiv-lead__text {
  line-height: 2.14;
  letter-spacing: .1em;
  font-feature-settings: normal;
}
.indiv-feature {
  width: 100%;
  aspect-ratio: 1440 / 1364;
  background: url(../images/individual-customers/feature-bg.png) center top / 160rem auto no-repeat #F4F3E7;
}
.indiv-feature__inner {
  width: min(90%, 120rem);
  margin: 0 auto;
  padding: min(13.7rem, 15vw) 0 min(13.4rem, 15vw);

  @media screen and (max-width: 767px) {
    display: grid;
    gap: 2em 0;
  }
}
.indiv-feature__block {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0 4.2rem;

  &.feature-block02 {
    flex-direction: row-reverse;
  }
  &.feature-block03 {
    gap: 0 6.8rem;
  }
  > figure {
    img {
      transform: scale(.5);
      opacity: 0;
      transition: all 1s ease;
      transition-delay: .5s;
    }
    &.is-visible {
      img {
        transform: scale(1);
        opacity: 1;
      }
    }
  }
  .feature-img01 {
    width: min(68.2rem, 100%);
  }
  .feature-img02 {
    width: min(56.7rem, 100%);
  }
  .feature-img03 {
    width: min(57.1rem, 100%);
  }
  @media screen and (max-width: 767px) {
    flex-direction: column;
    gap: 1em 0;

    &.feature-block02 {
      flex-direction: column;
    }
    &.feature-block03 {
      gap: 1em 0;
    }
  }
}
.indiv-feature__text {
  flex: 1;
  display: flex;
  justify-content: flex-end;
  line-height: 2.4;
  font-family: var(--font-serif);
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: .05em;

  &.feature-text02 {
    justify-content: flex-start;
  }
  @media screen and (max-width: 767px) {
    line-height: 1.8;
  }
}
.indiv-info {
  padding: min(10rem, 10vw) 0 min(13.4rem, 10vw);
}
.indiv-info__title {
  margin-bottom: 1em;
  font-family: var(--font-serif);
  font-size: min(2.2rem, 5vw);
  font-weight: 400;
  letter-spacing: .3em;
}
.feature-info__inner {
  display: grid;
  grid-template-columns: 54.3rem 1fr;
  gap: 0 10rem;

  @media screen and (max-width: 767px) {
    grid-template-columns: 1fr;
  }
}
.feature-info__outline {
  dl {
    display: grid;
    grid-template-columns: 8em 1fr;

    dt, dd {
      padding: 1.2em 0;
      letter-spacing: .1em;

      &:not(:last-of-type) {
        border-bottom: solid 1px var(--color-border);
      }
      small {
        font-size: .9em;
        letter-spacing: .05em;
      }
    }
  }
  @media screen and (max-width: 767px) {
    dl {
      grid-template-columns: 7em 1fr;
    }
  }
}
.feature-info__map {
  figure {
    margin-bottom: 1em;
    display: grid;
    grid-template-columns: 29.1rem 1fr;
    gap: 0 1.4rem;

    > div {
      height: 19.6rem;

      img {
        width: 100%;
        height: 100%;
        object-fit: cover;
      }
    }
  }
  @media screen and (max-width: 767px) {
    figure {
      grid-template-columns: 1fr;
      gap: 1em 0;
    }
  }
}
.feature-info__gmap {
  width: min(100%, 87rem);
  margin: min(8rem, 7vw) auto 0;

  iframe {
    width: 100%;
    height: min(28rem, 80vw);
  }
}
.instagram-banner {
  margin-bottom: min(16rem, 10vw);
  padding: min(2.5rem, 2vw);
  background-color: var(--color-secondary);
  display: grid;
  grid-template-columns: 1fr auto;
  color: #FFF;
  transition: background-color .5s ease, color .5s ease;

  @media (hover: hover) {
    &:hover {
      background-color: rgba(76, 94, 112, .1);
      color: var(--color-secondary);
    }
  }
  @media screen and (max-width: 767px) {
    grid-template-columns: 1fr;
  }
}
.instagram-banner__text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 1.5rem 0;

  .icon {
    width: 2.8rem;
    aspect-ratio: 1;
    background-color: currentColor;
    mask: url(../images/individual-customers/icon-instagram.svg) center center / contain no-repeat;
  }
  .title {
    display: grid;
    text-align: center;

    .en {
      font-family: var(--font-en);
      font-size: min(3rem, 6vw);
      font-weight: 400;
      letter-spacing: .18em;
    }
    .ja {
      font-family: var(--font-serif);
      font-size: min(1.5rem, 3vw);
      font-weight: 500;
      letter-spacing: .3em;
    }
  }
  .logo {
    width: min(8.9rem, 20vw);
    aspect-ratio: 90 / 143;
    background-color: currentColor;
    mask: url(../images/individual-customers/logo-kaniebakery-02.svg) center center / contain no-repeat;
  }
  @media screen and (max-width: 767px) {
    padding: 7vw 0;
  }
}
.instagram-banner__image {
  display: grid;
  grid-template-columns: repeat(4, 15rem);
  gap: 1rem;

  @media screen and (max-width: 767px) {
    grid-template-columns: repeat(4, 1fr);
    gap: 1vw;
  }
}


/* ========================================
  RECRUIT
  /recruit/index.html
======================================== */
.page-header-recruit {
  .page-header__image {
    aspect-ratio: 1440 / 647;
    max-height: 64.7rem;

    @media screen and (max-width: 767px) {
      aspect-ratio: 375 / 260;
      max-height: initial;
    }
  }
  .page-header__body {
    overflow: hidden;
    
    > div {
      margin-top: min(5rem, 7vw);
      margin-bottom: auto;
    }
    .page-header__decoration {
      margin: 0 0 -.16em;
      overflow: hidden;
      line-height: 1;
      white-space: nowrap;
      text-indent: -.1em;
      font-family: var(--font-en);
      font-size: 8.4vw;
      font-weight: 700;
      letter-spacing: .07em;
      color: #FFF;
      opacity: .7;
    }
  }
}
.recruit-sectitle {
  display: grid;
  gap: 1.5rem 0;
  line-height: 1;
  color: var(--color-secondary);

  .en {
    font-family: var(--font-en);
    font-size: min(4.6rem, 6vw);
    font-weight: 500;
    letter-spacing: .2em;
  }
  .ja {
    font-family: var(--font-serif);
    font-size: min(1.8rem, 3.6vw);
    font-weight: 500;
    letter-spacing: .2em;
  }
  @media screen and (max-width: 767px) {
    .en {
      letter-spacing: .1em;
    }
  }
}
.recruit-message {
  width: min(100%, 144rem);
  margin: 0 auto;
  padding-bottom: 4rem;
  aspect-ratio: 1440 / 1388;
  background: url(../images/recruit/recruit-bg.svg) center top / 144rem auto no-repeat;

  @media screen and (max-width: 767px) {
    padding-bottom: 0;
    background: none;
  }
}
.recruit-message__inner {
  width: min(90%, 103rem);
  margin: 0 auto;
}
.recruit-message__copy {
  display: grid;
  grid-template-rows: auto auto;
  text-align: center;
  font-family: var(--font-serif);
  letter-spacing: .36em;

  span {
    font-size: min(3rem, 4.4vw);
    font-weight: 500;
  }
  strong {
    font-size: min(3.6rem, 6vw);
    font-weight: 500;
  }
  @media screen and (max-width: 767px) {
    letter-spacing: .2em;
  }
}
.recruit-message__lead {
  margin-top: 2.5em;
  margin-bottom: min(10rem, 15vw);
  line-height: 2.3;
  text-align: center;
  font-family: var(--font-serif);
  font-size: 1.8rem;
  font-weight: 500;
  letter-spacing: .05em;

  @media screen and (max-width: 767px) {
    font-size: 1.6rem;
  }
}
.recruit-message__body {
  position: relative;
  padding-top: 14.8rem;

  @media screen and (max-width: 767px) {
    padding-top: 0;
  }
}
.recruit-message__block {
  width: min(100%, 89rem);
  margin-right: auto;
  padding: 8rem 13.2rem 7rem;
  border-radius: 6rem;
  background-color: #F8F5E6;

  .message-title {
    margin-left: -6rem;
    margin-bottom: 7rem;
  }
  .message-text {
    p {
      margin-top: 1.5em;
      line-height: 2.14;
      letter-spacing: .1em;
    }
  }
  .message-name {
    display: flex;
    justify-content: flex-end;

    p {
      display: grid;
      grid-template-rows: auto auto;
      line-height: 1.7;

      span {
        &:first-child {
          font-size: 1.3rem;
          letter-spacing: .2em;
        }
        &:last-child {
          font-family: var(--font-serif);
          font-size: 1.8rem;
          font-weight: 400;
          letter-spacing: .26em;
        }
      }
    }
  }
  .message-image {
    position: absolute;
    top: 0;
    right: 0;
    width: min(44.5rem, 100%);
    border-radius: min(6rem, 4vw);
    overflow: hidden;
  }
  @media screen and (max-width: 767px) {
    padding: 10vw 7vw 0;
    border-radius: 3rem;
    overflow: hidden;

    .message-title {
      margin-left: 0;
      margin-bottom: 3rem;
    }
    .message-image {
      position: static;
      width: calc(100% + 14vw);
      margin: 7vw -7vw 0 -7vw;
      border-radius: 0;
    }
  }
}
.recruit-dept {
  padding-top: min(15rem, 15vw);
}
.recruit-dept__title {
  margin-bottom: 4rem;
}
.recruit-dept__block {
  position: relative;

  &:last-child {
    margin-top: 2.3rem;
  }
  &::before {
    content: "";
    position: absolute;
    z-index: -1;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 44%;
    background-color: #E8E3D2;
  }
  > * {
    position: relative;
  }
  @media screen and (max-width: 767px) {
    padding-top: 5vw;

    &:last-child {
      margin-top: 0;
      padding-bottom: 5vw;
    }
    &::before {
      width: 50vw;
      height: 100%;
    }
  }
}
.recruit-dept__list {
  padding-bottom: 2rem;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0 6.6rem;

  li:nth-child(2) {
    padding-top: 7.6rem;
  }
  li {
    transform: translateY(10rem);
    opacity: 0;
    filter: blur(1rem);
    transition: all 1s ease;
    transition-delay: .5s;

    &:nth-child(2) {
      transition-delay: .7s;
    }
    &:nth-child(3) {
      transition-delay: .9s;
    }
    &.is-visible {
      transform: translateY(0);
    }
    @media screen and (max-width: 767px) {
      &:nth-child(2) {
        transition-delay: .5s;
      }
      &:nth-child(3) {
        transition-delay: .5s;
      }
    }
  }
  a {
    position: relative;
    display: block;
    

    .dept-image {
      width: 72%;
      aspect-ratio: 256 / 368;
      margin-left: auto;
      border-radius: min(10rem, 5vw);
      box-shadow: 0 .4rem .4rem rgba(0, 0, 0, .25);
      overflow: hidden;

      img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: transform .5s ease;
      }
    }
    .dept-text {
      position: absolute;
      bottom: 2rem;
      left: 0;
    }
    .dept-num {
      margin-left: 1rem;
    }
    .dept-button {
      width: 9.5em;
      margin-top: .5em;
      padding: .25em 1.5rem .25em 0;
      border: none;
      gap: 0;
      font-size: min(2.2rem, 4vw);

      &::after {
        width: 1.2rem;
      }
      span {
        flex: 1;
        padding-left: calc(1.5rem + 1.2rem);
        text-align: center;

        &.type1 {
          letter-spacing: .5em;
        }
        &.type2 {
          letter-spacing: .2em;
        }
      }
    }
    @media (hover: hover) {
      &:hover {
        .dept-button {
          background-color: #FFF;
          color: var(--color-secondary);

          &::after {
            transform: translateX(1rem);
          }
        }
        .dept-image {
          img {
            transform: scale(1.1);
          }
        }
      }
    }
  }
  @media screen and (max-width: 767px) {
    width: 84%;
    margin: 0 auto;
    padding-bottom: 0;
    grid-template-columns: 1fr;
    gap: 5vw 0;

    li:nth-child(2) {
      padding-top: 0;
    }
    a {
      .dept-image {
        width: 60%;
        aspect-ratio: 1;
      }
      .dept-num {
        width: 40%;
      }
    }
  }
}
.recruit-desc {
  padding-top: min(17rem, 15vw);
}
.recruit-desc__title {
  margin-bottom: min(6.5rem, 10vw);
}
.recruit-desc__table {
  width: 100%;
  border: solid 1px #A0A0A0;

  tr:nth-child(odd) {
    background-color: rgba(232, 235, 236, .55);
  }
  th, td {
    padding: 1em 2em;
    vertical-align: top;
  }
  th {
    border-right: solid 1px #A0A0A0;
  }
  td {
    p:not(:first-child) {
      margin-top: 1em;
    }
    ul {
      margin-left: 1.5em;
      list-style-type: disc;
    }
  }
  @media screen and (max-width: 767px) {
    th, td {
      display: block;
      padding-right: 1em;
      padding-left: 1em;
    }
    th {
      padding-bottom: .5em;
      border-right: none;
      font-weight: 500;
    }
    td {
      padding-top: 0;

      p:not(:first-child) {
        margin-top: .5em;
      }
    }
  }
}
.recruit-info {
  margin-top: min(17rem, 15vw);
  padding-top: min(13rem, 10vw);
  background-color: #EDEDE8;
}
.recruit-info__inner {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0 6.5rem;

  > div {
    padding-top: 2.5rem;
  }
  > figure {
    border-radius: min(6rem, 5vw);
    overflow: hidden;
  }
  @media screen and (max-width: 767px) {
    width: 90%;
    margin: 0 auto;
    grid-template-columns: 1fr;

    > div {
      padding-top: 0;
    }
    > figure {
      margin-top: 5vw;
    }
  }
}
.recruit-info__image {
  margin-top: min(10rem, 10vw);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: min(.7rem, 1vw);

  @media screen and (max-width: 767px) {
    grid-template-columns: repeat(2, 1fr);
  }
}
.recruit-info__logo {
  padding: min(8rem, 10vw) 0;
  text-align: center;

  @media screen and (max-width: 767px) {
    img {
      max-width: 50%;
    }
  }
}


/* ========================================
  Privacy Policy
  /privacy-policy/index.html
======================================== */
.privacy-header__image {
  aspect-ratio: 1440 / 290;
  max-height: 29rem;

  &::after {
    content: none;
  }
  @media screen and (max-width: 767px) {
    aspect-ratio: 16 / 6;
  }
}
.privacy-header__body {
  .page-title {
    color: #646464;
  }
}
.privacy-list {
  > li {
    padding: 0 0 4.5rem 8rem;

    &:not(:last-child) {
      margin-bottom: 4.5rem;
      border-bottom: solid 1px var(--color-border);
    }
    @media screen and (max-width: 767px) {
      padding: 0 0 2em 2em;

      &:not(:last-child) {
        margin-bottom: 2em;
      }
    }
    h2 {
      position: relative;
      margin-bottom: 1em;
      font-family: var(--font-serif);
      font-size: min(2.2rem, 4vw);
      font-weight: 500;
      letter-spacing: .09em;

      .num {
        position: absolute;
        top: -.3em;
        left: -1.5em;
        font-family: var(--font-en);
        font-size: min(3.4rem, 5.4vw);
      }
      @media screen and (max-width: 767px) {
        .num {
          top: -.25em;
          left: -1.2em;
        }
      }
    }
  }
}
.privacy-button {
  margin: min(10rem, 10vw) 0 min(14rem, 15vw);
  text-align: center;
}
.close-note {
  margin-top: 2em;
  font-size: 1.2rem;
}