/*
Theme Name: 京都山栄フーズ　
*/
@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Noto+Sans+JP:wght@100..900&display=swap');
*,*::before,*::after {
  max-width: 100%;
}
html, body {
  margin: 0;
  padding: 0;
  overflow-x: hidden;
}
[data-aos="fade-up"] {
  transform: translate3d(0, 40px, 0); /* ここで距離を調整 */
}

[data-aos="fade-up"].aos-animate {
  transform: translate3d(0, 0, 0); /* 最終位置 */
}
* {
  box-sizing: border-box;
}

img, table, iframe {
  max-width: 100%;
  height: auto;
}

html {
  overflow-x: hidden!important;
}
body {
/*  overflow-x: hidden;*/
  background: #f7f7f7;
  font-size: calc(16 / 1400 * 100vw);
  font-family: "Montserrat", "Noto Sans JP", serif;
  line-height: 1.85;
  letter-spacing: .05em;
}
.header {
  max-width: 100vw;
/*  overflow-x: hidden;*/
  padding: calc(16 / 1400 * 100vw) calc(20 / 1400 * 100vw);
  left: 50%;
  transform: translateX(-50%);
  .logo {
    width: calc(250 / 1400 * 100vw);
  }
}

.fixed-header {
  left: 0;
/*  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);*/
  border-bottom: 1px solid #eee;
  transform: translateY(-100%);
  transition: transform 0.3s ease-in-out;
  z-index: 1000;
}
.top-header {
  text-shadow: 1px 1px 10px rgba(0, 0, 0, 0.2);
}
.fixed-header.show {
  transform: translateY(0);
}

#nav-menu {
  position: fixed;
  top: 17.5vw;
  right: -100%;
  max-width: 100vw;
  width: 100%;
  height: calc(100vh - 17.5vw);
  padding: 0 calc(20 / 420 * 100vw);
  transition: right 0.3s ease-in-out;
  z-index: 1000;
  a {
    padding: calc(20 / 420 * 100vw) 0 calc(18 / 420 * 100vw);
    border-bottom: 1px solid #eee;
  }
}
#nav-menu.show {
  right: 0;
}
.menu-icon-wrap {
  top: 0;
  right: 0;
  z-index: 1100;
  width: 17.5vw;
  height: 17.5vw;
  background: #46BE3E;
}
.menu-icon {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 17.5vw;
  height: 17.5vw;
  cursor: pointer;
}
.menu-icon span {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 30px;
  height: 2px;
  background: white;
  transition: transform 0.3s ease-in-out;
}
.menu-icon span:nth-child(1) {
  transform: translateY(9px);
}
.menu-icon span:nth-child(3) {
  transform: translateY(-9px);
}
.menu-icon.open span:nth-child(1) {
  transform: translateY(2px) rotate(45deg);
}
.menu-icon.open span:nth-child(2) {
  opacity: 0;
}
.menu-icon.open span:nth-child(3) {
  transform: translateY(-2px) rotate(-45deg);
}

#topBtn {
  display: none; /* 初期状態で非表示 */
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 1000;
  background: #215732;
  padding: calc(48 / 1400 * 100vw);
}
#topBtn::before {
  content: "";
  display: block;
  width: 8px;
  height: 8px;
  border-top: solid 2px #fff;
  border-right: solid 2px #fff;
  transform: rotate(-45deg);
}
.page-top {
  background: url(images/page_kv_bg.png) no-repeat;
  background-size: 60%;
  background-position: 95% 105%;
}
.f-feature-palt {
  font-feature-settings: "palt";
}
.dim:hover,
.dim:focus {
  opacity: .5!important;
  transition: opacity .15s ease-in!important;
}
.dim:active {
  opacity: .8; transition: opacity .15s ease-out!important;
}

/*------------ フォントサイズ ------------*/
.fz180 {
  font-size: calc(180 / 1400 * 100vw);
}
.fz160 {
  font-size: calc(160 / 1400 * 100vw);
}
.fz80 {
  font-size: calc(80 / 1400 * 100vw);
}
.fz60 {
  font-size: calc(60 / 1400 * 100vw);
}
.fz52 {
  font-size: calc(52 / 1400 * 100vw);
}
.fz50 {
  font-size: calc(50 / 1400 * 100vw);
  line-height: 1.5;
}
.fz48 {
  font-size: calc(48 / 1400 * 100vw);
}
.fz46 {
  font-size: calc(46 / 1400 * 100vw);
}
.fz36 {
  font-size: calc(36 / 1400 * 100vw);
}
.fz28 {
  font-size: calc(28 / 1400 * 100vw);
}
.fz26 {
  font-size: calc(26 / 1400 * 100vw);
}
.fz24 {
  font-size: calc(24 / 1400 * 100vw);
}
.fz22 {
  font-size: calc(22 / 1400 * 100vw);
}
.fz20 {
  font-size: calc(20 / 1400 * 100vw);
}
.fz18 {
  font-size: calc(18 / 1400 * 100vw);
}
.fz17 {
  font-size: calc(17 / 1400 * 100vw);
}
.fz16 {
  font-size: calc(16 / 1400 * 100vw);
}
.fz15 {
  font-size: calc(15 / 1400 * 100vw);
}
.fz14 {
  font-size: calc(14 / 1400 * 100vw);
}
.fz13 {
  font-size: calc(13 / 1400 * 100vw);
}
.fz12 {
  font-size: calc(12 / 1400 * 100vw);
}
.fz11 {
  font-size: calc(11 / 1400 * 100vw);
}
/*------------ /フォントサイズ ------------*/
.link-text {
  padding: calc(10 / 1400 * 100vw) 0;
  border-bottom: solid calc(3 / 1400 * 100vw) #215732;
  margin-right: 0;
  margin-left: auto;
  img {
    width: calc(18 / 1400 * 100vw);
    margin-right: calc(16 / 1400 * 100vw);
    margin-left: calc(40 / 1400 * 100vw);
  }
}
.cat {
  padding: calc(2 / 1400 * 100vw) calc(8 / 1400 * 100vw);
}
/*------------ トップページ ------------*/
.top {

.top-kv-wrap {
  position: relative;
  z-index: 1000;
  .img-wrap {
    img {
      height: 100vh;
      object-fit: cover;
    }
  }
  .img-wrap {
    position: relative;
    width: 100%;
    height: 100vh;
    overflow: hidden;
  }

  .img-wrap img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    opacity: 0;
    transform: scale(1);
    transition: opacity 1.2s ease-in-out, transform 6s ease-in-out;
    z-index: 0;
  }

  .img-wrap img.active {
    opacity: 1;
    z-index: 2;
    transform: scale(1.1);
  }

}
.kv-copy-wrap {
  width: 100vw;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(1.18);
}
.sec01 {
  .right {
    padding: calc(60 / 1400 * 100vw) calc(40 / 1400 * 100vw) calc(40 / 1400 * 100vw);
    .flex {
      margin: calc(50 / 1400 * 100vw) 0;
      .fz24 {
        writing-mode: vertical-rl;
        text-orientation: mixed;
      }
      .text-gr {
        margin: 0 calc(50 / 1400 * 100vw);
        .fz28 {
          margin-bottom: calc(30 / 1400 * 100vw);
        }
      }
    }
  }
  .link-text {
    margin-right: calc(40 / 1400 * 100vw);
  }
}

.top_news {
  .news-item-wrap {
    margin-bottom: calc(50 / 1400 * 100vw);
  }
  .item {
    padding: 0 calc(10 / 1400 * 100vw);
    margin-top: calc(40 / 1400 * 100vw);
  }
}

.sec03 {
  padding: calc(100 / 1400 * 100vw) 0;
  .sec-title {
    .text {
      margin-top: calc(30 / 1400 * 100vw);
    }
  }
  .item-wrap {
    margin: calc(60 / 1400 * 100vw) 0 calc(30 / 1400 * 100vw);
    .item {
      overflow: hidden;
      border-bottom: calc(16 / 1400 * 100vw) solid #000;
      img {
        transition: transform 0.3s ease;
      }
      .text-gr {
        bottom: calc(36 / 1400 * 100vw);
        left: calc(26 / 1400 * 100vw);
        text-shadow: 1px 1px 10px rgba(0, 0, 0, 0.7);
        .fz20 {
          line-height: 1.15;
          margin-top: calc(12 / 1400 * 100vw);
        }
      }
    }
    .item.food {border-bottom-color: #215732;}
    .item.global {border-bottom-color: #46BE3E;}
    .item.human {border-bottom-color: #000;}
    .item.ayu {border-bottom-color: #CFD0D0;}
    .item:hover img {
      transform: scale(1.1);
    }
  }
}

.sec04 {
  width: 100vw;
  padding: calc(90 / 1400 * 100vw) 0;
  .item {
    padding: 0 calc(12 / 1400 * 100vw);
    margin-bottom: calc(32 / 1400 * 100vw);
  }
  .fz160 {
    white-space: nowrap;
    width: fit-content;
    color: #CFD0D0;
    line-height: 1;
    bottom: 0;
    left: 50%;
    transform: translate(-50%, 50%);
  }
}

.sec05 {
/*  ↓↓↓取り組みなしのためパディング調整*/
/*  padding: calc(170 / 1400 * 100vw) 0 0;*/
  padding: 0;
  .sec-title {
    margin-bottom: calc(120 / 1400 * 100vw);
    .fz26 {
      line-height: 1.5;
      margin-bottom: calc(32 / 1400 * 100vw);
    }
  }
}


.sec06 {
  padding: calc(120 / 1400 * 100vw) 0;
  .grid-container {
    display: grid;
    grid-template-areas:
      "philosophy profile profile"
      "philosophy message message"
      "logo locations locations";
    grid-template-columns: 8fr 13fr;
    gap: calc(12 / 1400 * 100vw);
  }

  .grid-item {
    position: relative;
    color: white;
    text-align: left;
    overflow: hidden;
    display: flex;
    align-items: flex-end;
    justify-content: flex-start;
    padding-bottom: 0;
  }
  .grid-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .philosophy {
    grid-area: philosophy;
  }

  .profile {
    grid-area: profile;
  }

  .message {
    grid-area: message;
  }

  .logo {
    grid-area: logo;
    background-color: #204020;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .locations {
    grid-area: locations;
  }
  .right {
    .text-gr {
      text-shadow: 1px 1px 10px rgba(0, 0, 0, 0.7);
      left: calc(10 / 1400 * 100vw);
      bottom: calc(10 / 1400 * 100vw);
      .fz20 {
        line-height: 1;
      }
    }
  }
}

}/*  /.top  */
.challenge-for {
  bottom: -6%;
}

.scroll-wrapper {
  display: inline-block;
  white-space: nowrap;
  animation: scroll-left 20s linear infinite;
}

.scroll-wrapper span {
  display: inline-block;
  white-space: nowrap;
}

@keyframes scroll-left {
  0% {
    transform: translateX(0%);
  }
  100% {
    transform: translateX(-100%);
  }
}

/*　footer　*/
.footer {
  padding: calc(80 / 1400 * 100vw) 0;
}
.contact-section-wrap {
  text-align: center;
  .bg-typo {
    color: #f7f7f7;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    line-height: 0;
    white-space: nowrap;
    z-index: -1;
  }
}

.contact-title {
  line-height: 1;
  margin: 0;
}

.contact-subtitle {
}

.contact-description {
  color: #444;
  margin-bottom: calc(30 / 1400 * 100vw);
}

.contact-box {
  background: #000;
  color: #fff;
  padding: calc(30 / 1400 * 100vw) calc(60 / 1400 * 100vw);
}

.contact-text {
  line-height: 1.4;
  .fz22 {
    margin-bottom: calc(10 / 1400 * 100vw);
  }
  p {
    margin: 0;
  }
}

.contact-button {
  background: #4cd137;
  color: #000;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 48px;
  width: 48px;
  height: 48px;
  text-decoration: none;
}

.footer-links {
  margin: calc(60 / 1400 * 100vw) auto calc(50 / 1400 * 100vw);
  gap: calc(40 / 1400 * 100vw);
}

.footer-logo {
}

.footer-logo img {
  width: calc(250 / 1400 * 100vw);
}

.footer-nav {
  display: flex;
  gap: calc(40 / 1400 * 100vw);
  flex: 2 1 calc(400 / 1400 * 100vw);
}

.footer-nav h4 {
  margin-bottom: 10px;
  font-weight: bold;
}

.footer-nav ul {
  list-style: none;
  padding: 0;
}

.footer-nav li {
  margin-bottom: ;
}

.footer-nav a {
  color: inherit;
  text-decoration: none;
}

.footer-nav a:hover {
  text-decoration: underline;
}

.footer-bottom {
  margin-top: ;
  display: flex;
  justify-content: space-between;
  border-top: 1px solid #ccc;
  padding-top: ;
}
/*　/footer　*/

/*------------ page ------------*/
.page-header {
  transform: translate(0);
}
.breadcrumb {
  position: relative;
  top: calc(-22 / 1400 * 100vw);
  z-index: 0;
  padding: calc(18 / 1400 * 100vw);
  margin: calc(20 / 1400 * 100vw) 0;
  .breadcrumb-home {
    line-height: 0;
  }
  .icon-home {
    width: calc(18 / 1400 * 100vw);
  }
  .breadcrumb-separator {
    width: calc(6 / 1400 * 100vw);
    margin-left: calc(30 / 1400 * 100vw);
    margin-right: calc(40 / 1400 * 100vw);
  }
  .breadcrumb-current {

  }
}

.page {
  padding-top: calc(150 / 1400 * 100vw);
  .page-title {
    margin-left: calc(50 / 1400 * 100vw);
  }
  .sec-title {
    margin-bottom: calc(90 / 1400 * 100vw);
  }
}
.archive.page {
  .page-title-wrap {

    .page-title {
      margin-left: 0;
    }
  }
  
}
.company {
  .item {
    margin-bottom: calc(100 / 1400 * 100vw);
    .text-1 {
      margin-top: calc(26 / 1400 * 100vw);
      margin-bottom: calc(14 / 1400 * 100vw);
    }
    .text-2 {
      margin-bottom: calc(32 / 1400 * 100vw);
    }
    .link-text {
      margin-right: auto;
      margin-left: 0;
    }
  }
}
.link-text-wrap {
  margin-bottom: calc(100 / 1400 * 100vw);
  .link-text {
    margin: 0;
  }
  .link-text.current {
    border-bottom: solid calc(3 / 1400 * 100vw) #46BE3E;
  }
}

.philosophy, .message {
  .sec-title {
    .text {
      margin-top: calc(40 / 1400 * 100vw);
    }
  }
}
.purpose {
  margin-bottom: calc(90 / 1400 * 100vw);
  .sec-title {
    padding: calc(80 / 1400 * 100vw) 0;
    border-top: solid 0.2px #000;
    border-bottom: solid 0.2px #000;
    margin-right: calc(70 / 1400 * 100vw);
    margin-bottom: 0;
  }
}
.mission {
  .sec-title {
    padding-bottom: calc(60 / 1400 * 100vw);
    border-bottom: solid 0.2px #000;
    margin-bottom: calc(60 / 1400 * 100vw);
  }
}
.the-commitment {
  .sec-title {
    margin-bottom: calc(180 / 1400 * 100vw);
  }
  .item-wrap {
    margin-top: calc(60 / 1400 * 100vw);
    .item {
      padding: calc(36 / 1400 * 100vw) 0;
      border-top: solid 0.2px #000;
      margin: 0;
      .fz46 {
        color: #CFD0D0;
      }
    }
    .item.last {
      border-bottom: solid 0.2px #000;
    }
  }
}

.message {
  .sec-title {
    padding-left: calc(60 / 1400 * 100vw);
    padding-bottom: calc(120 / 1400 * 100vw);
    .fz60 {
      margin-bottom: calc(40 / 1400 * 100vw);
    }
  }
}

.profile {
  padding-bottom: calc(180 / 1400 * 100vw);
  dl {
/*    padding: calc(36 / 1400 * 100vw) 0;*/
    margin: 0;
    dt {
      border-bottom: solid calc(3 / 1400 * 100vw) #215732;
    }
    dd {
      width: 100%;
      padding: calc(36 / 1400 * 100vw) 0 calc(36 / 1400 * 100vw) calc(20 / 1400 * 100vw);
      border-bottom: solid calc(1 / 1400 * 100vw) #215732;
      margin-left: 0;
    }
  }
  .history {
    padding-top: calc(120 / 1400 * 100vw);
    dl {
      dt {
        border-bottom: none;
      }
      dd {
        padding: calc(8 / 1400 * 100vw) 0;
        border-bottom: none;
      }
    }
  }
}
.company.locations {
  padding-bottom: calc(80 / 1400 * 100vw);
  .item {
    .left {
      a {
        .map-icon {
          width: calc(16 / 1400 * 100vw);
        }
        span {
          border-bottom: solid calc(1 / 1400 * 100vw) #000;
          margin-left: calc(10 / 1400 * 100vw);
          .new-tab-icon {
            width: calc(8 / 1400 * 100vw);
          }
        }
      }
    }
  }
}
.company-bottom-link-nav {
  padding: calc(160 / 1400 * 100vw) 0 calc(80 / 1400 * 100vw);
}
/*------------ / COMPANY ------------*/

/*------------ BUSINESS ------------*/
.business {
  .sec-title-wrap {
    padding-bottom: calc(120 / 1400 * 100vw);
  }
  .group {
    .gr-kv-wrap {
      .gr-kv-wrap-title {
        bottom: -50%;
        left: 50%;
        transform: translate(-50%, -50%);
        h3 {
          width: calc(180 / 1400 * 100vw);
          height: calc(180 / 1400 * 100vw);
          background: #46BE3E;
        }
      }
    }
    .contents-wrap {
      padding-top: calc(120 / 1400 * 100vw);
      padding-bottom: calc(210 / 1400 * 100vw);
      .title-wrap {
        margin-bottom: calc(40 / 1400 * 100vw);
        .num {
          width: calc(60 / 1400 * 100vw);
          height: calc(60 / 1400 * 100vw);
          background: #215732;
          margin-right: calc(28 / 1400 * 100vw);
        }
      }
      .gr-02 {
        padding-top: calc(90 / 1400 * 100vw);
      }
    }
    .contact-text {
      .fz22 {
        margin-bottom: 0;
        img {
          display: inline-block;
          margin-left: calc(24 / 1400 * 100vw);
          width: calc(15 / 1400 * 100vw);
        }
      }
    }
  }
  .human {
    .contents-wrap {
      .gr-02 {
        padding-bottom: calc(60 / 1400 * 100vw);
      }
    }
  }
}
/*------------ / BUSINESS ------------*/

/*------------ RECRUIT ------------*/
.recruit {
  padding-bottom: calc(170 / 1400 * 100vw);
}
.recruit-nav-btn {
  margin-bottom: calc(110 / 1400 * 100vw);
  a {
    width: calc(310 / 1400 * 100vw);
    height: calc(80 / 1400 * 100vw);
    background: #000;
    margin: 0 calc(17 / 1400 * 100vw);
    .arrow {
      width: calc(10 / 1400 * 100vw);
      top: 50%;
      right: calc(30 / 1400 * 100vw);
      transform: translate(-50%, -50%);
    }
  }
  a.current {
    background: #46BE3E;
  }
}
.recruit-wrap {
  padding-bottom: calc(100 / 1400 * 100vw);
}
/*------------ / RECRUIT ------------*/


/*------------ CONTACT ------------*/
.contact {
  padding-bottom: calc(150 / 1400 * 100vw);
  .form-wrap {
/*    margin-top: calc(120 / 1400 * 100vw);*/
  }
}
.form-wrap {
  padding: calc(70 / 1400 * 100vw);
  .title-wrap {
    padding: calc(40 / 1400 * 100vw) 0 calc(90 / 1400 * 100vw);
  }
  .privacy-policy-wrap {
    .title-wrap {
      padding: calc(90 / 1400 * 100vw) 0 calc(40 / 1400 * 100vw);
    }
    .privacy-policy {
      background: #F5F5F5;
      padding: calc(50 / 1400 * 100vw);
    }
  }
}
/* フォームスタイル */
input:not([type=checkbox], [type=radio]), button[type=submit], select, textarea {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  padding: 1.25em 1em;
  margin-bottom: 10px;
  border: none;
  font-size: calc(16 / 1400 * 100vw);
  box-sizing: border-box;
}

/* ラベルとレスポンシブ調整 */
form label {
  display: block;
  margin-bottom: 5px;
}
.contact .page-title-wrap {
  background: #fff;
}
.wpcf7-form-control-wrap {
  width: 70%;
  margin-bottom: 40px;
}
.wpcf7-form-control-wrap input:not([type=checkbox],[type=radio]),
.wpcf7-form-control-wrap select,
.wpcf7-form-control-wrap textarea {
  background: #fff;
  border: solid 0.2px #000;
  margin-bottom: 0;
}
.wpcf7-form-control-wrap input.p-postal-code {
  margin-bottom: 40px;
}
.wpcf7-form-control-wrap input::placeholder,
.wpcf7-form-control-wrap textarea::placeholder {
  color: #d9d9d9;
}
.wpcf7-form label {
  font-size: calc(16 / 1400 * 100vw);
  margin-right: 20px;
}
label.required {
  display: flex;
  justify-content: space-between;
  padding-right: 20px;
}
label.required::after {
  content: "必須";
  font-size: calc(15 / 1400 * 100vw);
  display: flex;
  justify-content: center;
  align-items: center;
  width: 46px;
  height: 32px;
  color: #fff;
  background: #4cd137;
}

input[type=button].wpcf7-previous,
input[type=submit] {
  display: flex;
  color: #fff;
  justify-content: center;
  align-items: center;
  text-align: center;
  width: 310px;
  height: 80px;
  background: #000;
  border-radius: 40px;
  margin: 80px auto 0;
}
input[type=button].wpcf7-previous {
  background: #bcbcbc;
  margin-top: 40px;
}
input[type=button].wpcf7-previous + input[type=submit] {
  margin-top: 40px;
}

.address-label {
  font-size: calc(16 / 1400 * 100vw);
  margin-right: 40px;
}
.privacy-policy-page-title-wrap {
  margin-top: 0;
  aspect-ratio: auto;
}
#wpcf7cpcnf + .privacy-policy-page-title-wrap,
#wpcf7cpcnf + .privacy-policy-content {
  display: none;
}
.privacy-policy-content {
  padding: clamp(2rem, 1.235rem + 3.265vw, 4.5rem) clamp(1.5rem, 0.046rem + 6.204vw, 6.25rem);
  max-height: 30rem;
  background-color: #f5f5f5;
  overflow-y: auto;
}
@media (max-width: 768px) {
  form input, form select, form textarea, form button {
    font-size: calc(16 / 780 * 100vw);
  }
  .wpcf7-form > .flex {
    flex-wrap: wrap;
  }
  .wpcf7-form > .flex label {
    width: 100%;
    flex-direction: row-reverse;
    justify-content: flex-end;
    align-items: center;
  }
  label.required::after {
    font-size: calc(16 / 780 * 100vw);
    border-radius: 4px;
    margin-right: .5rem;

  }
  .wpcf7-form-control-wrap {
    width: 100%;
  }
  .address-wrap {
    flex-direction: column;
  }
  .address-wrap .w-70 {
    width: 100%;
  }
  .address-wrap .w-70 .flex {
    flex-direction: column;
  }
  .address-wrap .w-70 .w-20 br {
    display: none;
  }
  .wpcf7-form-control-wrap input.p-postal-code, .p-postal-code {
    width: 140px;
  }
}
@media (max-width: 480px) {
  .form-wrap {
    padding: calc(20 / 420 * 100vw) calc(24 / 420 * 100vw) calc(50 / 420 * 100vw);
    border-bottom: 0.5px solid #e2e2e2;
  }
  .wpcf7-form label,
  form input, form select, form textarea, form button,
  .wpcf7-form-control-wrap input:not([type=checkbox],[type=radio]),
  .wpcf7-form-control-wrap select, .wpcf7-form-control-wrap textarea,
  .address-label {
    font-size: calc(16 / 420 * 100vw);
  }
  .wpcf7-form > .flex label.w-30, .address-label {
    font-weight: 700;
  }
  label.required::after {
    font-size: calc(12 / 420 * 100vw);
    font-weight: 500;
    width: calc(40 / 420 * 100vw);
    height: calc(24 / 420 * 100vw);
    border-radius: 4px;
    margin-right: .5rem;
  }
  input[type=button].wpcf7-previous, input[type=submit] {
    font-size: calc(16 / 420 * 100vw);
    padding: 0;
    height: calc(40 / 420 * 100vw);
  }

}
/*------------ /CONTACT ------------*/
.archive {
  max-width: 1240px;
}
.archive {
  .archive-category-wrap {
    margin-bottom: calc(40 / 1400 * 100vw);
  }
  .news-item-wrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start; /* 左揃えにする */
    gap: 1.5rem; /* 任意。Tachyonsでは `gap` クラスがないためCSSで */
    @media screen and (min-width: 30em) {
      .w-25-ns {
        width: 23%;
      }
    }
  }
}
.news-item-wrap {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start; /* 左揃えにする */
  gap: 0rem; /* 任意。Tachyonsでは `gap` クラスがないためCSSで */
  .item {
    overflow: hidden;
  }
}
.archive .space {
  aspect-ratio: 840/300;
}
.archive .space {
  aspect-ratio: 840/240;
}
.archive {
  main {
    padding-bottom: calc(80 / 1400 * 100vw);
    .back-arrow {
      transform: rotate(180deg);
      width: calc(7 / 1400 * 100vw);
    }
    .thumb-wrap {
      aspect-ratio: 3 / 2;
      height: auto;
      overflow: hidden;
      display: block;
      img {
        aspect-ratio: 3/2;
        width: 100%;
        object-fit: cover;
        transition: .3s;
      }
    }
    .thumb-wrap:hover {
      img {
        transform: scale(1.1);
      }
    }
  }
}
/* 投稿ページ（single）のみに適用 */
.single-post .post-content {
  max-width: 800px; /* 読みやすい幅 */
  margin: 0 auto;
  padding: 1rem;
  line-height: 1.5;
}

/* 見出しのスタイル */
.single-post h1 {
  /*margin-bottom: 2rem;*/
}
.single-post h2 {
  /*background: #BC414D;
  padding: 1.5rem 2rem;
  margin-top: 1.5rem;
  margin-bottom: 2rem;*/
}
.single-post h3 {
  line-height: 1.5;
  background: #F2F2F2;
  padding: 0.9rem 1.2rem;
  border-left: solid .5rem #46BE3E;
  margin-top: 1.5rem;
  margin-bottom: 2rem;
}

/* 画像をレスポンシブに */
.single-post img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* 段落の調整 */
.single-post p {
  line-height: 2;
  margin-bottom: 2rem;
}
.single-post {
  li {
    margin-bottom: 1rem;
  }
}

.single-post {
  max-width: 1080px;
}
.single-post .thumb-wrap {
  aspect-ratio: auto !important;
  display: flex!important;
}
.single-post .thumb-wrap img {
  max-width: 770px;
  max-height: 440px;
  object-fit: contain;
  aspect-ratio: auto;
}
.single-post .thumb-wrap:hover img {
  transform: scale(1.0)!important;
}


/* レスポンシブ調整 */
@media (max-width: 768px) {
  .single-post .post-content {
    padding: 0.5rem;
  }

  .single-post h1 {
    font-size: 1.75rem;
  }

  .single-post h2 {
    font-size: 1.25rem;
  }
}

/* 投稿ナビゲーション */
.post-navigation {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}
.post-navigation a {
  display: flex;
  align-items: center;
  text-decoration: none;
  color: inherit;
  transition: all 0.2s ease-in-out;
}
.post-navigation a:hover {
  opacity: 0.8;
}
.post-navigation img {
  width: 48px;
  height: 48px;
  object-fit: cover;
  border-radius: 8px;
}

.archive.page .post-navigation img {
  width: 20px;
  height: 20px;
}

/* ページネーション */
.pagination {
  display: flex;
  gap: 0.5rem;
}
.pagination-link a {
  display: block;
  padding: 0.5rem 1rem;
  background: #f4f4f4;
  border-radius: 4px;
  text-decoration: none;
  color: #333;
  transition: background 0.2s;
}
.pagination-link a:hover {
  background: #ddd;
}
.pagination-link .current {
  display: inline-block;
  background: #333;
  color: #fff;
  font-weight: bold;
  border-radius: 4px;
  padding: 0.5rem 1rem;
}
.break-word {
  word-wrap: break-word;
  overflow-wrap: break-word;
  word-break: break-word;
}
pre {
  overflow: scroll;
}
b, strong {
    font-weight: 700;
}

@media screen and (max-width: 769px) {
  .menu-icon-wrap {
    top: 0;
    right: 0;
  }
  .rotate90 {
    transform: rotate(90deg);
  }
  #topBtn {
    bottom: 10px;
    right: 10px;
  }
  .page-top {
    background-size: 70%;
    background-position: 98% 102%;
  }
}

/* tachyons add styles */
@media screen and (min-width: 0px) {
  .red {
    color: #BC414D;
  }
  .yellow {
    color: #FFE834;
  }
  .washed-red {
    color: #FEE9E9;
  }
  .light-green {
    color: #46BE3E;
  }
  .bg-red {
    background-color: #BC414D;
  }
  .bg-light-green {
    background-color: #46BE3E;
  }
  .bg-washed-red {
    background-color: #FEE9E9;
  }
  .bg-washed-red-50 {
    background-color: rgba(254, 233, 233, .5);
  }
  .b--red {
    border-color: #BC414D;
  }
  .b--washed-red {
    border-color: #FEE9E9;
  }
  .min-vh-56 {
    min-height: 56vh;
  }
}

@media screen and (max-width: 960px) {

}
@media screen and (max-width: 768px) {
  body {
    font-size: calc(16 / 768 * 100vw);
  }
  .fz180 {
    font-size: calc(180 / 768 * 100vw);
  }
  .fz160 {
    font-size: calc(160 / 768 * 100vw);
  }
  .fz80 {
    font-size: calc(80 / 768 * 100vw);
  }
  .fz60 {
    font-size: calc(60 / 768 * 100vw);
  }
  .fz52 {
    font-size: calc(52 / 768 * 100vw);
  }
  .fz50 {
    font-size: calc(50 / 768 * 100vw);
  }
  .fz48 {
    font-size: calc(48 / 768 * 100vw);
  }
  .fz46 {
    font-size: calc(46 / 768 * 100vw);
  }
  .fz36 {
    font-size: calc(36 / 768 * 100vw);
  }
  .fz28 {
    font-size: calc(28 / 768 * 100vw);
  }
  .fz26 {
    font-size: calc(26 / 768 * 100vw);
  }
  .fz24 {
    font-size: calc(24 / 768 * 100vw);
  }
  .fz22 {
    font-size: calc(22 / 768 * 100vw);
  }
  .fz20 {
    font-size: calc(20 / 768 * 100vw);
  }
  .fz18 {
    font-size: calc(18 / 768 * 100vw);
  }
  .fz17 {
    font-size: calc(17 / 768 * 100vw);
  }
  .fz16 {
    font-size: calc(16 / 768 * 100vw);
  }
  .fz15 {
    font-size: calc(15 / 768 * 100vw);
  }
  .fz14 {
    font-size: calc(14 / 768 * 100vw);
  }
  .fz13 {
    font-size: calc(13 / 768 * 100vw);
  }
  .fz12 {
    font-size: calc(12 / 768 * 100vw);
  }
  .fz11 {
    font-size: calc(11 / 768 * 100vw);
  }



  .business {
      & .group {
          & .gr-kv-wrap {
            height: calc(180 / 768 * 100vw);
              & .gr-kv-wrap-title {
                  h3 {
                      width: calc(180 / 768 * 100vw);
                      height: calc(180 / 768 * 100vw);
                      background: #46BE3E;
                  }
              }
          }
      }
  }
  .business {
      & .group {
          & .contents-wrap {
              & .title-wrap {
                  .num {
                      min-width: calc(60 / 768 * 100vw);
                      height: calc(60 / 768 * 100vw);
                      background: #215732;
                      margin-right: calc(28 / 768 * 100vw);
                  }
              }
          }
      }
  }
  .top {
    .sec04 {
      .the-partners {
        font-size: calc(91.4 / 768 * 100vw);
        transform: translate(-50%, 50%) scale(1.3);
      }
    }
  }
  .challenge-for {
    font-size: calc(82.2 / 768 * 100vw);
    transform: scale(1.5);
    bottom: -3%;
  }
}
@media screen and (max-width: 480px) {
  body {
    font-size: calc(16 / 420 * 100vw);
  }
  .fixed-header {
    height: 17.5vw;
    z-index: 1001;
  }
  .header {
    .logo {
      width: calc(200 / 420 * 100vw);
    }
  }
  .top {
    .kv-copy-wrap {
      transform: translate(-50%, -50%) scale(1.9);
    }
    .news-item-wrap {
      .thumb-wrap {
        padding-right: calc(18 / 420 * 100vw);
      }
      .text-wrap {
        .cat-wrap {

          .cat {
            padding: calc(2 / 420 * 100vw) calc(8 / 420 * 100vw);
            font-size: calc(13 / 420 * 100vw);
          }
        }
        
      }
    }
    .section {
      .sec-title {
        .fz24 {
          margin-bottom: calc(20 / 420 * 100vw);
        }
        .fz60 {
          font-size: calc(38 / 420 * 100vw);
        }
        .fz26 {
          line-height: 1.8;
          margin: calc(40 / 420 * 100vw) 0;
        }
        .fw6 {
          font-weight: 700;
        }
      }
    }
    .sec02 {
      .item {
        .text-gr {
          .fz14 {
            line-height: 1.6;
          }
        }
      }
    }
    .sec03 {
      padding: calc(100 / 420 * 100vw) 0;
      .item-wrap {
        .item {
          border-bottom: calc(16 / 420 * 100vw) solid #000;
          margin-bottom: calc(20 / 420 * 100vw);
          img {
            width: 100%;
            height: calc(160 / 420 * 100vw);
            object-fit: cover;
          }
          .text-gr {
            bottom: 1rem;
            left: 1.5rem;
            .fz15 {
              line-height: 1.5;
            }
            .fz20 {
              font-size: calc(24 / 420 * 100vw);
              line-height: 1.25;
              letter-spacing: .05em;
              margin-top: .9rem;
              span {
                font-weight: 800;
              }
            }
          }
        }
        .item.food img { object-position: 0 calc(-280 / 420 * 100vw); }
        .item.global img { object-position: 0 calc(-225 / 420 * 100vw); }
        .item.human img { object-position: 0 0; }
        .item.ayu img { object-position: 0 calc(-225 / 420 * 100vw); }
        .sp-business-link {
          margin-bottom: calc(40 / 420 * 100vw);
          .link-text {
            border-color: #46BE3E;
            margin-left: 0;
            margin-right: auto;
          }
        }
      }
    }
    .sec04 {
      padding: calc(60 / 420 * 100vw) 0;
      .sec-title {
        .fz24 {
          margin-bottom: 0;
        }
      }
      .the-partners {
        font-size: calc(49.2 / 420 * 100vw);
        transform: translate(-50%, 50%) scale(2);
      }
      .slick-track {
        display: flex;
      }
      .slick-slider .item {
        width: calc(300 / 420 * 100vw);
        height: calc(414 / 420 * 100vw);
        aspect-ratio: 256/353;
        float: left;
      }
      .slick-prev:before, .slick-next:before {
        display: none;
      }
      .slick-prev { left: 1rem; z-index: 999; }
      .slick-next { right: 1rem; }
      .slick-prev, .slick-next {
        width: 45px;
        height: 45px;
        font-size: 1.2rem;
        color: #333;
        background: #fff;
        border-radius: 23px;
        box-shadow: 1px 1px 10px 0px rgba(0, 0, 0, 0.2);
        cursor: pointer;
        z-index: 10;
      }
    }
    .sec05 {
      padding: calc(80 / 420 * 100vw) 0 0;
      .sec-title {
        margin-bottom: calc(40 / 420 * 100vw);
        .link-text {
          margin-top: calc(20 / 420 * 100vw);
        }
      }
      .challenge-for {
        font-size: calc(44.3 / 420 * 100vw);
        transform: scale(2);
        bottom: -1%;
      }
    }
    .scroll-wrapper {
      animation: scroll-left 12s linear infinite;
    }
    .sec06 {
      padding: calc(40 / 420 * 100vw) 0;
      .sec-title {
        .fz24 {
          margin-bottom: 0;
        }
      }
      .grid-container {
        padding-top: calc(40 / 420 * 100vw);
        .grid-item {
          padding-bottom: 0;
          .text-gr {
            left: calc(10 / 420 * 100vw);
            bottom: calc(10 / 420 * 100vw);
            .fz20 {
              font-size: calc(15 / 420 * 100vw);
            }
            .fz14 {
              font-size: calc(11 / 420 * 100vw);
            }
          }
        }
      }
    }
  }
  .fz180 {
    font-size: calc(180 / 420 * 100vw);
  }
  .fz160 {
    font-size: calc(160 / 420 * 100vw);
  }
  .fz80 {
    font-size: calc(80 / 420 * 100vw);
  }
  .fz60 {
    font-size: calc(60 / 420 * 100vw);
  }
  .fz52 {
    font-size: calc(52 / 420 * 100vw);
  }
  .fz50 {
    font-size: calc(50 / 420 * 100vw);
  }
  .fz48 {
    font-size: calc(48 / 420 * 100vw);
  }
  .fz46 {
    font-size: calc(46 / 420 * 100vw);
  }
  .fz36 {
    font-size: calc(36 / 420 * 100vw);
  }
  .fz28 {
    font-size: calc(28 / 420 * 100vw);
  }
  .fz26 {
    font-size: calc(26 / 420 * 100vw);
  }
  .fz24 {
    font-size: calc(24 / 420 * 100vw);
  }
  .fz22 {
    font-size: calc(22 / 420 * 100vw);
  }
  .fz20 {
    font-size: calc(20 / 420 * 100vw);
  }
  .fz18 {
    font-size: calc(18 / 420 * 100vw);
  }
  .fz17 {
    font-size: calc(17 / 420 * 100vw);
  }
  .fz16 {
    font-size: calc(16 / 420 * 100vw);
  }
  .fz15 {
    font-size: calc(15 / 420 * 100vw);
  }
  .fz14 {
    font-size: calc(14 / 420 * 100vw);
  }
  .fz13 {
    font-size: calc(13 / 420 * 100vw);
  }
  .fz12 {
    font-size: calc(12 / 420 * 100vw);
  }
  .fz11 {
    font-size: calc(11 / 420 * 100vw);
  }
  .footer {
    padding: calc(60 / 420 * 100vw) 0;
    .contact-title {
      font-size: calc(36 / 420 * 100vw);
    }
    .contact-section {
      .contact-box {
        padding-top: calc(20 / 420 * 100vw);
        padding-bottom: calc(18 / 420 * 100vw);
        margin-top: calc(20 / 420 * 100vw);
        .fz22 { font-size: calc(18 / 420 * 100vw); }
        .fz14 { margin-top: calc(14 / 420 * 100vw); }
      }
    }
    .footer-links {
      .fz14 { font-size: calc(18 / 420 * 100vw); }
      .fz12 { font-size: calc(16 / 420 * 100vw); }
    }
  }
  .text {
    line-height: 2.1;
  }
  .link-text {
    padding: calc(10 / 420 * 100vw) 0;
    border-bottom: solid calc(4 / 420 * 100vw) #215732;
    img {
      width: calc(18 / 420 * 100vw);
      margin-right: calc(16 / 420 * 100vw);
      margin-left: calc(40 / 420 * 100vw);
    }
  }
  .company {
    .item {
      margin-bottom: calc(70 / 420 * 100vw);
      .link-text {
        margin-right: 0;
        margin-left: auto;
      }
    }
  }
  .page {
    padding-top: 17.5vw;
    .page-title {
      padding: calc(30 / 420 * 100vw) calc(20 / 420 * 100vw);
      margin-left: 0;
      .fz50 {
        font-size: calc(36 / 420 * 100vw);
        font-weight: 700;
        line-height: 1.2;
        letter-spacing: .05em;
      }
    }
    .sec-title {
      .fz24 {
        font-weight: 700;
        margin-bottom: calc(20 / 420 * 100vw);
      }
      .fz60 {
        font-size: calc(38 / 420 * 100vw);
        line-height: 1.2;
        margin-bottom: calc(12 / 420 * 100vw);
      }
      .fz36 {
        font-size: calc(22 / 420 * 100vw);
        line-height: 1.8;
        margin-bottom: calc(40 / 420 * 100vw);
      }
      .fz26 {
        line-height: 1.8;
        margin: calc(40 / 420 * 100vw) 0;
      }
      .fw6 {
        font-weight: 700;
      }
    }
    .item {
      .text-1 {
        .fz18 {
          font-weight: 700;
        }
      }
    }
    
  }
  .archive.page {
    .page-title {
      padding: calc(90 / 420 * 100vw) calc(0 / 420 * 100vw) calc(30 / 420 * 100vw);
    }
  }
  .breadcrumb {
    top: 0;
    padding: calc(12 / 420 * 100vw) calc(18 / 420 * 100vw);
    margin: 0;
    .icon-home {
      width: calc(18 / 420 * 100vw);
    }
    .breadcrumb-separator {
      width: calc(6 / 420 * 100vw);
    }
  }
  .archive.page {
    .breadcrumb {
      position: absolute;
      top: 17.5vw;
      left: 0;
      width: 100vw;
    }
  }
  .philosophy {
    .sec-title {
      .fz24 {
        margin-bottom: 0;
      }
    }
    .loop-text {
      font-size: calc(24.4 / 420 * 100vw);
      transform: translate(0,40px) scale(3);
    }
    .the-commitment {
      padding-top: calc(100 / 420 * 100vw);
      .item {
        font-size: calc(14 / 420 * 100vw);
        padding-bottom: calc(30 / 420 * 100vw);
        .fz46 {
          font-size: calc(32 / 420 * 100vw);
        }
        .fz24 {
          font-size: calc(18 / 420 * 100vw);
        }
      }
    }
  }
  .company-bottom-link-nav {
    .item {
      line-height: 0;
      margin-bottom: calc(40 / 420 * 100vw);
    }
  }
  .message-wrap {
    padding: calc(50 / 420 * 100vw) 0;
    .sec-title {
      padding: 0;
      .fz24 {
        font-weight: 700;
        margin-bottom: calc(20 / 420 * 100vw);
      }
      .fz60 {
        font-size: calc(38 / 420 * 100vw);
        line-height: 1.2;
        margin-bottom: calc(12 / 420 * 100vw);
      }
      .fz36 {
        font-size: calc(22 / 420 * 100vw);
        line-height: 1.8;
        margin-bottom: calc(40 / 420 * 100vw);
      }
      .fz26 {
        line-height: 1.8;
        margin: calc(40 / 420 * 100vw) 0;
      }
      .fw6 {
        font-weight: 700;
      }
    }
    .text {
      margin-bottom: calc(40 / 420 * 100vw);
    }
    .left {
      .tr {
        margin-top: calc(20 / 420 * 100vw);
        .fz12 {
          font-size: calc(15 / 420 * 100vw);
        }
        .fz14 {
          font-size: calc(17 / 420 * 100vw);
        }
      }
    }
  }
  .company.profile {
    .profile-wrap {
      padding: calc(50 / 420 * 100vw) 0;
      dl {
        flex-direction: column;
        dt {
          border-bottom: none;
        }
        dd {
          padding: 0 0 calc(20 / 420 * 100vw);
          border-bottom: solid calc(1 / 420 * 100vw) #215732;
          margin-bottom: calc(30 / 420 * 100vw);
          position: relative;
          &::after {
            content: "";
            display: block;
            width: 36%;
            height: 3px;
            background: #46BE3E;
            position: absolute;
            bottom: -1px;
            left: 0;
          }
        }
      }
    }
    .history {
      padding-top: 0;
      .sec-title {
        .fz24 {
          margin-bottom: 0;
        }
      }
      dl {
        flex-direction: column;
        margin-bottom: calc(20 / 420 * 100vw);
        dt {
          font-weight: 600;
          border: none;
        }
        dd {
          font-size: calc(14 / 420 * 100vw);
          padding-top: 0;
          border: none;
        }
      }
    }
  }
  .locations {
    .item {
      .left {
        margin-bottom: calc(30 / 420 * 100vw);
      }
    }
  }
  .recruit-nav-btn {
    margin-bottom: 0;
    a {
      width: 90%;
      height: calc(40 / 420 * 100vw);
      background: #000;
      margin: calc(20 / 420 * 100vw) auto 0;
    }
  }
  .recruit.profile {
    padding-bottom: 0;
    .profile-wrap {
      padding: calc(50 / 420 * 100vw) 0;
      dl {
        flex-direction: column;
        dt {
          border-bottom: none;
        }
        dd {
          padding: 0 0 calc(20 / 420 * 100vw);
          border-bottom: solid calc(1 / 420 * 100vw) #215732;
          margin-bottom: calc(30 / 420 * 100vw);
          margin-left: 0;
          position: relative;
          &::after {
            content: "";
            display: block;
            width: 36%;
            height: 3px;
            background: #46BE3E;
            position: absolute;
            bottom: -1px;
            left: 0;
          }
        }
      }
    }
  }
  .business {
      & .group {
          & .gr-kv-wrap {
            height: calc(220 / 420 * 100vw);
            img {
              height: 100%;
              object-fit: cover;
            }
              & .gr-kv-wrap-title {
                  h3 {
                      width: calc(140 / 420 * 100vw);
                      height: calc(140 / 420 * 100vw);
                      background: #46BE3E;
                      .fz24 {
                        font-size: calc(14 / 420 * 100vw);
                        letter-spacing: .05em;
                      }
                      .fz15 {
                        font-size: calc(12 / 420 * 100vw);
                      }
                  }
              }
          }
      }
  }
  .business {
      & .group {
          & .contents-wrap {
            padding-top: calc(60 / 420 * 100vw);
            padding-bottom: calc(60 / 420 * 100vw);
              & .title-wrap {
                  .num {
                      min-width: calc(50 / 420 * 100vw);
                      height: calc(60 / 420 * 100vw);
                      background: #215732;
                      margin-right: calc(20 / 420 * 100vw);
                  }
              }
              .text {
                margin-bottom: calc(16 / 420 * 100vw);
              }
          }
          .contact-text {
            .fz22 {
              font-size: calc(16 / 420 * 100vw);
              img {
                margin-left: calc(24 / 420 * 100vw);
                width: calc(15 / 420 * 100vw);
              }
            }
          }
      }
  }
  .contact {
    padding-bottom: 0;
    .form-wrap {
      margin-top: 0;
      .text {
        font-size: calc(14 / 420 * 100vw);
        font-weight: 500;
        margin: calc(36 / 420 * 100vw) 0 calc(64 / 420 * 100vw);
      }
    }
  }
  .recruit-nav-btn {
      & a {
          .arrow {
              width: calc(10 / 420 * 100vw);
              top: 50%;
              right: calc(30 / 420 * 100vw);
              transform: translate(-50%, -50%);
          }
      }
  }
  .archive {
    .archive-category-wrap {
      margin-bottom: calc(40 / 420 * 100vw)
    }
    .news-item-wrap {
      gap: 1.5rem; /* 任意。Tachyonsでは `gap` クラスがないためCSSで */
      .cat-wrap {
        .cat {
          padding: calc(3 / 420 * 100vw) calc(10 / 420 * 100vw);
        }
      }
    }
    main {
      padding-bottom: calc(80 / 420 * 100vw);
      .cat-wrap {
        .cat {
          font-size: calc(11 / 420 * 100vw);
          padding: calc(3 / 420 * 100vw) calc(10 / 420 * 100vw);
        }
        .date {
          font-size: calc(15 / 420 * 100vw);
        }
      }
      .back-arrow {
        width: calc(7 / 420 * 100vw);
      }
    }
  }
  .thumb-wrap {
    img {
      aspect-ratio: 1/1;
    }
  }
}