@charset "UTF-8";
/* ----関数設定---- */
/* ----------------------------------------------------------------------
サブページ共通
---------------------------------------------------------------------- */
.br_sp {
  display: none;
}

h2 {
  display: none;
}

h3 {
  font-size: 6rem;
  letter-spacing: 0.05em;
  line-height: 1.4;
  text-align: center;
  padding-bottom: 3.2rem;
  border-bottom: 1px solid #000;
  margin-bottom: 6rem;
}

h3.en_deco {
  font-size: 5rem;
  letter-spacing: 0.3em;
  border-bottom: none;
  padding-bottom: 0;
}
h3.en_deco span {
  display: block;
  margin-top: 2rem;
}

.pagevisual {
  width: 90%;
  aspect-ratio: 158/67;
  max-width: 1580px;
  margin-inline: auto;
  margin-top: 15rem;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  position: relative;
  margin-bottom: 16rem;
}
.pagevisual .page_copy {
  font-size: 7rem;
  line-height: 1.5;
  letter-spacing: 0.075em;
  position: absolute;
}

section {
  margin-bottom: 20rem;
  position: relative;
}

span.span_yoko {
  writing-mode: horizontal-tb;
  margin-bottom: 4px;
}

.sec_hero .sec_copy_wrapper {
  display: flex;
  gap: 3rem;
  flex-direction: row-reverse;
  align-items: flex-start;
  justify-content: center;
}
.sec_hero .copy_title {
  font-size: 6rem;
  letter-spacing: 0.1em;
  line-height: 1.4;
  white-space: nowrap;
}
.sec_hero .sec_copy {
  font-size: 3.4rem;
  line-height: 1.6;
  letter-spacing: 0.1em;
}
.sec_hero .pic_wrapper {
  width: 61rem;
  margin-right: -8rem;
  flex-shrink: 0;
}

.lead_text {
  font-size: max(3.5rem, 20px);
  line-height: 1.8;
  letter-spacing: 0.05em;
  text-align: center;
  margin-bottom: 19rem;
}

.sec_inner:has(~ .sec_inner) {
  margin-bottom: 17rem;
}

.sec_inner_flex {
  display: flex;
  gap: 9rem;
  align-items: flex-start;
}
.sec_inner_flex .sec_label {
  border: 1px solid #000;
  padding: 2rem;
  position: relative;
  background-color: #fff;
}
.sec_inner_flex .sec_label .label {
  font-size: 3.8rem;
  white-space: nowrap;
}
.sec_inner_flex .sec_label .label .label_large {
  font-size: 5rem;
  letter-spacing: 0.075em;
  margin-bottom: 2rem;
}
.sec_inner_flex .sec_label picture {
  position: absolute;
  left: 50%;
  translate: -50% 0;
}
.sec_inner_flex .sec_label picture img {
  height: auto;
}
.sec_inner_flex .sec_content .pic_flex {
  display: flex;
  flex-wrap: wrap;
  gap: 6rem 10rem;
  margin-bottom: 4.5rem;
}
.sec_inner_flex .sec_content .pic_flex picture {
  width: calc((100% - 10rem) / 2);
}
.sec_inner_flex .sec_content p {
  font-size: max(1.9rem, 14px);
  letter-spacing: 0.075em;
}
.sec_inner_flex .sec_content .sec_desc_wrap {
  margin-top: 4rem;
}
.sec_inner_flex .sec_content .sec_desc_wrap .sec_desc:has(~ .sec_desc) {
  margin-bottom: 2rem;
}
.sec_inner_flex .sec_content .sec_desc_wrap .sec_desc {
  font-size: max(2.4rem, 14px);
  letter-spacing: 0.04em;
  line-height: 1.4;
  border: 1px solid #fff;
  padding: 1rem 2rem 1.2rem;
  border-radius: 50px;
  max-width: 90%;
}

@media screen and (max-width: 820px) {
  .br_pc {
    display: none;
  }
  .br_sp {
    display: inline-block;
  }
  h3 {
    font-size: 4.4rem;
  }
  section {
    margin-bottom: 16rem;
  }
  .pagevisual {
    aspect-ratio: 158/80;
    margin-bottom: 10rem;
  }
  .pagevisual .page_copy {
    font-size: 4.2rem;
  }
  .sec_hero .copy_title {
    font-size: 4.2rem;
  }
  .sec_hero .sec_copy {
    font-size: 2.8rem;
  }
  .lead_text {
    font-size: 2.5rem;
    margin-bottom: 12rem;
  }
  .sec_inner_flex {
    gap: 6rem;
  }
  .sec_inner_flex .sec_label .label {
    font-size: 2.6rem;
  }
  .sec_inner_flex .sec_label .label .label_large {
    font-size: 4rem;
  }
  .sec_inner_flex .sec_content .pic_flex {
    gap: 3rem 5rem;
  }
  .sec_inner_flex .sec_content .pic_flex picture {
    width: calc((100% - 5rem) / 2);
  }
  .sec_inner_flex .sec_content .sec_desc_wrap .sec_desc {
    max-width: 100%;
  }
}
/* 私たちの豚のこと .treasure   ---------------------------------------------------------------------- */
.treasure .bg_mesh::before {
  top: auto;
  bottom: -24px;
}
.treasure .bg_mesh.mid.bg_mesh::before {
  height: 84rem;
  background-repeat: repeat;
}
.treasure .pagevisual {
  background-image: image-set(url("../images/pagevisual_treasure.webp?2") 1x, url("../images/pagevisual_treasure@2x.webp?2") 2x);
}
.treasure .pagevisual .page_copy {
  color: #fff;
  top: 13%;
  left: 17%;
  filter: drop-shadow(0px 0px 8px rgba(0, 0, 0, 0.75));
}
.treasure .sec_hero.hero01 {
  position: relative;
}
.treasure .sec_hero.hero01 .sec_copy_wrapper {
  position: relative;
}
.treasure .sec_hero.hero01 .sec_copy_wrapper .pic_wrapper {
  width: 61rem;
  margin-right: -8rem;
  flex-shrink: 0;
}
.treasure .sec_hero.hero01 .deco_en {
  position: absolute;
  top: 51rem;
  right: 16%;
  width: 35rem;
}
.treasure .section01 .pig_flex {
  display: flex;
  gap: 4.5rem;
  align-items: flex-end;
  justify-content: center;
  margin-bottom: 4rem;
}
.treasure .section01 .pig_flex picture:nth-child(1) {
  width: 17rem;
}
.treasure .section01 .pig_flex picture:nth-child(2) {
  width: 24rem;
}
.treasure .section01 .pig_flex picture:nth-child(3) {
  width: 35rem;
}
.treasure .section01 .sec_inner_flex .sec_label {
  padding: 2rem 2rem 4rem;
}
.treasure .section01 .sec_inner_flex .sec_label.label_small picture {
  width: 17rem;
  bottom: -7.9rem;
  left: 65%;
}
.treasure .section01 .sec_inner_flex .sec_label.label_mid picture {
  width: 24rem;
  bottom: -12.6rem;
  left: 65%;
}
.treasure .section01 .sec_inner_flex .sec_label.label_large picture {
  width: 34rem;
  bottom: -14.9rem;
  left: 0%;
}
.treasure .section01 .sec_inner_flex .sec_content .sec_desc_wrap .sec_desc {
  border-color: #65ab81;
  background-color: #f4f9f6;
  color: #137e3e;
}
.treasure .section02 {
  padding: 23rem 0 21rem;
  background-color: #eaf4ee;
  margin-bottom: 18rem;
}
.treasure .section02 .lead_pic {
  width: 100%;
  max-width: 60rem;
  margin-inline: auto;
  margin-bottom: 7.5rem;
}
.treasure .section02 .lead_text {
  letter-spacing: 0;
}
.treasure .section02 .flex_column3 {
  display: flex;
  gap: 4rem;
  margin-bottom: 8rem;
}
.treasure .section02 .flex_column3 .flex_item {
  width: calc((100% - 8rem) / 3);
}
.treasure .section02 .flex_column3 .flex_item picture {
  width: 100%;
  aspect-ratio: 1;
  margin-bottom: 4.5rem;
}
.treasure .section02 .flex_column3 .flex_item picture img {
  object-fit: cover;
  border-radius: 500px;
}
.treasure .section02 .flex_column3 .flex_item .item_label {
  background-color: #fff;
  font-family: "Noto Sans JP", "Yu Gothic", "游ゴシック", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
  font-weight: 600;
  color: #4d4d4d;
  font-size: max(1.9rem, 13px);
  padding: 8px 2px 10px;
  text-align: center;
  border-radius: 50px;
  margin-bottom: 3.5rem;
}
.treasure .section02 .flex_wrapper {
  display: flex;
  gap: 6rem;
}
.treasure .section02 .flex_wrapper picture {
  width: 55%;
  flex-shrink: 0;
}
.treasure .section02 .flex_wrapper .flex_text .flex_title {
  font-size: 5rem;
  margin-bottom: 3rem;
}
.treasure .section02 .flex_wrapper .flex_text p {
  line-height: 1.5;
}
.treasure .sec_hero.hero02 {
  margin-bottom: 8rem;
}
.treasure .sec_hero.hero02 .flex_hero {
  display: flex;
  gap: 11rem;
  align-items: flex-start;
  justify-content: center;
}
.treasure .sec_hero.hero02 .sec_copy {
  font-size: 4.3rem;
  line-height: 2;
}
.treasure .sec_hero.hero02 .pic_wrapper {
  flex-shrink: 0;
  margin-right: 0;
}
.treasure .sec_hero.hero02 .pic_wrapper.pig {
  width: 20rem;
  margin: auto 0 3rem 0;
}
.treasure .sec_hero.hero02 .pic_wrapper.human {
  width: 30rem;
  margin-top: -2rem;
}
.treasure .bottom_deco {
  width: 27rem;
  top: 0;
  right: 0;
  left: -36%;
  margin: auto;
  z-index: 1;
}
@media screen and (max-width: 820px) {
  .treasure .sec_hero.hero01 .sec_copy_wrapper .pic_wrapper {
    width: 21rem;
    position: relative;
    top: 20rem;
    right: 10rem;
    margin-right: -22rem;
  }
  .treasure .sec_hero.hero01 .deco_en {
    top: 34rem;
    right: 8rem;
    width: 24rem;
  }
  .treasure .section01 .lead_text {
    font-size: 3rem;
  }
  .treasure .section01 .pig_flex {
    gap: 2.5rem;
  }
  .treasure .section01 .pig_flex picture:nth-child(1) {
    width: 12rem;
  }
  .treasure .section01 .pig_flex picture:nth-child(2) {
    width: 16.8rem;
  }
  .treasure .section01 .pig_flex picture:nth-child(3) {
    width: 24.5rem;
  }
  .treasure .section01 .sec_inner_flex .sec_label.label_small picture {
    width: 14rem;
    bottom: -5.9rem;
  }
  .treasure .section01 .sec_inner_flex .sec_label.label_mid picture {
    width: 14rem;
    bottom: -6.6rem;
    left: 46%;
  }
  .treasure .section01 .sec_inner_flex .sec_label.label_large picture {
    width: 19rem;
    bottom: -8.5rem;
    left: 41%;
  }
  .treasure .section02 {
    padding: 16rem 0 19rem;
    margin-bottom: 12rem;
  }
  .treasure .section02 .lead_text {
    font-size: 2.8rem;
    text-align: left;
  }
  .treasure .section02 .flex_column3 {
    gap: 3rem;
  }
  .treasure .section02 .flex_column3 .flex_item {
    width: calc((100% - 6rem) / 3);
  }
  .treasure .section02 .flex_wrapper {
    gap: 3rem;
  }
  .treasure .section02 .flex_wrapper picture {
    width: 45%;
  }
  .treasure .section02 .flex_wrapper .flex_text .flex_title {
    font-size: 4rem;
  }
  .treasure .sec_hero.hero02 {
    margin-bottom: 0;
  }
  .treasure .sec_hero.hero02 .sec_copy {
    font-size: 3rem;
    line-height: 1.8;
  }
  .treasure .sec_hero.hero02 .flex_hero {
    gap: 5rem;
  }
  .treasure .sec_hero.hero02 .pic_wrapper.pig {
    width: 15rem;
  }
  .treasure .sec_hero.hero02 .pic_wrapper.human {
    width: 17rem;
    margin-top: 7rem;
  }
  .treasure .bottom_deco {
    width: 15rem;
  }
}
@media screen and (max-width: 820px) and (max-width: 520px) {
  .treasure .section02 .flex_column3 {
    flex-wrap: wrap;
    gap: 5rem 4rem;
    justify-content: center;
  }
  .treasure .section02 .flex_column3 .flex_item {
    width: calc((100% - 4rem) / 2);
  }
  .treasure .section02 .flex_wrapper {
    flex-direction: column;
  }
  .treasure .section02 .flex_wrapper picture {
    width: 100%;
    height: 30rem;
  }
  .treasure .section02 .flex_wrapper picture img {
    object-position: center;
  }
}

/* 働く仲間のこと .friends   ---------------------------------------------------------------------- */
.friends .pagevisual {
  background-image: image-set(url("../images/pagevisual_vision.webp?2") 1x, url("../images/pagevisual_vision@2x.webp?2") 2x);
}
.friends .pagevisual .page_copy {
  color: #000;
  top: 24%;
  right: 8%;
  filter: drop-shadow(0px 0px 8px rgba(255, 255, 255, 0.95));
}
.friends .sec_hero {
  margin-bottom: 32rem;
}
.friends .sec_hero .sec_copy_wrapper {
  position: relative;
  justify-content: center;
}
.friends .sec_hero .sec_copy_wrapper .pic_wrapper {
  position: relative;
  width: 70rem;
  margin-right: -2rem;
  bottom: -18rem;
}
.friends .sec_hero .deco_en {
  position: absolute;
  top: 57rem;
  right: 13%;
  width: 51rem;
}
.friends .sec_inner_flex .sec_label .label .label_large {
  margin-bottom: 0;
}
.friends .section01 h3 {
  font-size: 5.2rem;
}
.friends .section01 .lead_text {
  font-size: 5.2rem;
  margin-bottom: 12rem;
}
.friends .section01 .overflow_left {
  margin-left: calc(50% - 50vw);
  display: flex;
  gap: 7rem;
  margin-bottom: 22rem;
}
.friends .section01 .overflow_left picture {
  width: 55%;
  flex-shrink: 0;
}
.friends .section01 .overflow_text .overflow_title {
  font-size: 4rem;
  line-height: 1.4;
  color: #007caa;
  margin-bottom: 4rem;
}
.friends .section01 .overflow_text p {
  font-size: max(1.9rem, 17px);
  letter-spacing: 0.05em;
}
.friends .section01 .bg_mesh::before {
  bottom: -22px;
  top: auto;
}
.friends .section01 .sec_inner_flex .sec_label {
  border-bottom: 1px solid #000;
}
.friends .section01 .sec_inner_flex .sec_content .sec_desc_wrap .sec_desc {
  color: #007caa;
  background-color: #ecf0f5;
  border-color: #007caa;
}
.friends .section02 {
  padding: 23rem 0 16rem 0;
  background-color: #ecf0f5;
  margin-bottom: 8rem;
}
.friends .section02 .lead_text {
  font-size: 3.3rem;
  letter-spacing: 0;
}
.friends .section02 .flex_wrapper {
  display: flex;
  gap: 5rem;
}
.friends .section02 .flex_wrapper:has(~ .flex_wrapper) {
  margin-bottom: 18rem;
}
.friends .section02 .flex_wrapper picture {
  width: 40%;
  flex-shrink: 0;
  aspect-ratio: 1;
}
.friends .section02 .flex_wrapper .flex_content {
  display: flex;
  flex-direction: column;
}
.friends .section02 .flex_wrapper .flex_content .content_title {
  color: #007caa;
  display: flex;
  gap: 1.8rem;
  align-items: center;
  font-size: 3.2rem;
  line-height: 1.3;
  border-bottom: 1px solid #007caa;
  margin-bottom: 3rem;
  padding-bottom: 1rem;
}
.friends .section02 .flex_wrapper .flex_content .content_title span.title_num {
  font-family: "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", "游ゴシック", YuGothic, "游ゴシック体", "メイリオ", sans-serif;
  font-size: 9rem;
  font-weight: 600;
}
.friends .section02 .flex_wrapper .flex_content p {
  font-size: max(1.9rem, 16px);
}
.friends .section02 .flex_wrapper .flex_content .content_points_wrapper {
  margin: auto 0 0 0;
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
.friends .section02 .flex_wrapper .flex_content .content_points_wrapper .point_item {
  font-family: "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", "游ゴシック", YuGothic, "游ゴシック体", "メイリオ", sans-serif;
  font-weight: 600;
  color: #007caa;
  padding: 2rem 2rem 2rem 7rem;
  background-color: #fff;
  border: 1px solid #007caa;
  font-size: max(1.9rem, 14px);
  letter-spacing: 0.075em;
  line-height: 1.3;
  position: relative;
}
.friends .section02 .flex_wrapper .flex_content .content_points_wrapper .point_item::before {
  content: "";
  left: 1rem;
  top: 50%;
  translate: 0 -50%;
  position: absolute;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
}
.friends .section02 .flex_wrapper .flex_content .content_points_wrapper .point_item.pig::before {
  width: 5rem;
  height: 3.8rem;
  background-image: url("../images/icon_pig.svg");
}
.friends .section02 .flex_wrapper .flex_content .content_points_wrapper .point_item.good::before {
  width: 5rem;
  height: 4.2rem;
  background-image: url("../images/icon_good.svg");
}
.friends .gallery_section {
  margin-top: 19rem;
}
.friends .gallery_section .gallery_title {
  font-family: "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", "游ゴシック", YuGothic, "游ゴシック体", "メイリオ", sans-serif;
  color: #007caa;
  font-size: 6rem;
  font-weight: 600;
  margin-bottom: 5rem;
  text-align: center;
}
.friends .gallery_section .gallery_wrapper {
  display: flex;
}
.friends .sec_hero.bottom_hero {
  margin-bottom: 0;
}
.friends .sec_hero.bottom_hero .flex_hero {
  display: flex;
  gap: 9rem;
  justify-content: center;
}
.friends .sec_hero.bottom_hero .flex_hero .pic_wrapper {
  width: 36rem;
  margin-right: 0;
  margin-top: 9rem;
}
.friends .sec_hero.bottom_hero .flex_hero .sec_copy {
  font-size: 4.2rem;
  line-height: 1.8;
}
.friends .bottom_deco picture {
  position: absolute;
  width: 11rem;
  bottom: 0;
  right: 0;
  left: 54%;
  margin: auto;
  z-index: 1;
}
@media screen and (max-width: 820px) {
  .friends .sec_hero {
    margin-bottom: 22rem;
  }
  .friends .sec_hero .sec_copy_wrapper .pic_wrapper {
    width: 33rem;
    margin-right: -8rem;
    bottom: -23rem;
  }
  .friends .sec_hero .deco_en {
    position: absolute;
    top: 43rem;
    right: 6%;
    width: 31rem;
  }
  .friends .section01 h3 {
    font-size: 3.4rem;
  }
  .friends .section01 .lead_text {
    font-size: 3.6rem;
    margin-bottom: 8rem;
  }
  .friends .section01 .overflow_left {
    gap: 5rem;
    flex-direction: column;
  }
  .friends .section01 .overflow_left picture {
    width: 85%;
  }
  .friends .section01 .overflow_left .overflow_text {
    margin-left: 5%;
  }
  .friends .section01 .overflow_left .overflow_title {
    font-size: max(3rem, 20px);
    margin-bottom: 3rem;
  }
  .friends .section02 {
    padding: 16rem 0 12rem 0;
  }
  .friends .section02 .flex_wrapper {
    flex-direction: column-reverse;
  }
  .friends .section02 .flex_wrapper picture {
    width: 100%;
    max-width: 260px;
    margin-inline: auto;
  }
  .friends .section02 .flex_wrapper .flex_content .content_title {
    font-size: max(2.6rem, 20px);
  }
  .friends .section02 .flex_wrapper .flex_content .content_title span.title_num {
    font-size: 6rem;
  }
  .friends .section02 .flex_wrapper .flex_content .content_points_wrapper {
    margin-top: 5rem;
  }
  .friends .section02 .flex_wrapper.right_img {
    flex-direction: column;
  }
  .friends .sec_hero.bottom_hero .flex_hero {
    gap: 1rem;
  }
  .friends .sec_hero.bottom_hero .flex_hero .sec_copy {
    font-size: 3.2rem;
  }
  .friends .sec_hero.bottom_hero .flex_hero .pic_wrapper {
    width: 29rem;
  }
}

/* 髙森農場のこと .about   ---------------------------------------------------------------------- */
.about table {
  width: 100%;
  font-size: max(1.8rem, 16px);
  font-family: "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", "游ゴシック", YuGothic, "游ゴシック体", "メイリオ", sans-serif;
}
.about table tr {
  border-bottom: 1px solid #000;
  line-height: 1.6;
  letter-spacing: 0.1em;
}
.about table tr:last-child {
  border-bottom: none;
}
.about table th {
  width: 5.5em;
  padding: 3rem 0;
}
.about table th.vertical_middle {
  vertical-align: middle;
}
.about table td {
  padding: 3rem 0 3rem 12rem;
  vertical-align: middle;
}
.about table .table_btn {
  max-width: 290px;
  width: 100%;
}
.about table .table_btn a {
  display: block;
  padding: 15px 25px;
  border: 100px;
  color: #fff;
  background-color: #007caa;
  font-weight: 600;
  text-align: center;
  letter-spacing: 0.15em;
  border-radius: 100px;
  transition: opacity 0.3s;
}
@media (hover: hover) and (pointer: fine) {
  .about table .table_btn a:hover {
    opacity: 0.7;
  }
}
.about table.table_about th {
  text-align: justify;
  text-align-last: justify;
}
.about table.table_about .td_flex {
  display: flex;
  gap: 3rem;
}
.about .pagevisual {
  background-image: image-set(url("../images/pagevisual_friends.webp") 1x, url("../images/pagevisual_friends@2x.webp") 2x);
}
.about .pagevisual .page_copy {
  color: #000;
  top: 24%;
  right: 8%;
  filter: drop-shadow(0px 0px 8px rgba(255, 255, 255, 0.95));
}
.about .sec_hero .pic_wrapper {
  width: 75rem;
  margin-right: -27rem;
  flex-shrink: 0;
  right: 49rem;
  position: relative;
  margin-top: -5rem;
}
.about .sec_hero .deco_en {
  position: absolute;
  top: 55rem;
  right: 11%;
  width: 47rem;
}
.about .pic_band {
  width: 100%;
  aspect-ratio: 192/54;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  background-image: image-set(url("../images/friends_bandimg01.webp") 1x, url("../images/friends_bandimg01@2x.webp") 2x);
}
.about .section01 {
  background-color: #f7f4eb;
  padding: 15rem 0 20rem 0;
}
.about .section01 .sec_box.box01 {
  margin-bottom: 20rem;
}
.about .section01 .sec_box.box01 .lead_text {
  text-align: left;
  font-size: max(2.4rem, 16px);
  line-height: 3;
  width: 80%;
  margin-inline: auto;
  margin-bottom: 9rem;
}
.about .section01 .sec_box.box01 .pic_flex {
  display: flex;
  gap: 7rem;
}
.about .section01 .sec_box.box01 .pic_flex picture {
  width: calc((100% - 14rem) / 3);
}
.about .section01 .sec_box.box02 .lead_text {
  font-size: 3.5rem;
  margin-bottom: 11rem;
}
.about .section02 h3.en_deco span {
  margin-top: 1rem;
  width: 37rem;
  margin-inline: auto;
}
.about .section02 .map_wrapper {
  width: 100%;
  aspect-ratio: 110/32;
}
.about .section02 .map_wrapper iframe {
  width: 100%;
  height: 100%;
}
.about .section03 h3.en_deco span {
  margin-top: 1rem;
  width: 29rem;
  margin-inline: auto;
}
.about .section04 h3.en_deco span {
  margin-top: 1rem;
  width: 35rem;
  margin-inline: auto;
}
.about .section04 .lead_title {
  text-align: center;
  font-size: 6rem;
  margin-bottom: 5.5rem;
}
.about .section04 .lead_text {
  margin-bottom: 9rem;
  font-size: 3.2rem;
  letter-spacing: 0;
}
.about .section04 .message_wrapper {
  display: flex;
  gap: 4rem;
  align-items: flex-start;
}
.about .section04 .message_wrapper .message p {
  font-size: max(1.9rem, 16px);
  line-height: 1.9;
}
.about .section04 .message_wrapper .message .message_sign {
  margin: 3.2rem 0 0 auto;
  width: fit-content;
}
.about .section04 .message_wrapper .message .message_sign .sign {
  margin-bottom: 10px;
  font-family: "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", "游ゴシック", YuGothic, "游ゴシック体", "メイリオ", sans-serif;
}
.about .section04 .message_wrapper .message .message_sign picture {
  width: 17rem;
  min-width: 100px;
}
.about .section04 .message_wrapper picture {
  width: 31%;
  flex-shrink: 0;
}
.about .bottom_deco picture {
  position: absolute;
  width: 20rem;
  bottom: 0;
  right: 0;
  left: 72%;
  margin: auto;
  z-index: 1;
}
@media screen and (max-width: 820px) {
  .about h3.en_deco {
    font-size: 4rem;
    margin-bottom: 3rem;
  }
  .about h3.en_deco span {
    margin-inline: auto;
  }
  .about h3.en_deco span img {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }
  .about table tr {
    flex-wrap: wrap;
    display: flex;
  }
  .about table th {
    width: 100%;
    padding-bottom: 5px;
  }
  .about table td {
    padding: 0 0 3rem 0;
    width: 100%;
  }
  .about table.table_about th {
    text-align: left;
    text-align-last: inherit;
  }
  .about table.table_about .td_flex {
    flex-direction: column;
    gap: 1rem;
  }
  .about .sec_hero {
    margin-bottom: 12rem;
  }
  .about .sec_hero .pic_wrapper {
    width: 55rem;
    margin-right: -39rem;
    right: 28rem;
    margin-top: 11rem;
  }
  .about .sec_hero .deco_en {
    top: 41rem;
    right: 4%;
    width: 37rem;
  }
  .about .section01 {
    padding: 10rem 0 16rem 0;
  }
  .about .section01 h3 {
    font-size: 4rem;
  }
  .about .section01 .sec_box.box01 {
    margin-bottom: 16rem;
  }
  .about .section01 .sec_box.box01 .lead_text {
    width: 100%;
    line-height: 2.6;
  }
  .about .section01 .sec_box.box01 .pic_flex {
    gap: 3rem;
  }
  .about .section01 .sec_box.box01 .pic_flex picture {
    width: calc((100% - 6rem) / 3);
  }
  .about .section01 .sec_box.box02 .lead_text {
    font-size: 2.8rem;
    letter-spacing: 0;
    margin-bottom: 7rem;
  }
  .about .section02 h3.en_deco span {
    width: 24rem;
  }
  .about .section02 .map_wrapper {
    aspect-ratio: 110/50;
  }
  .about .section03 h3.en_deco span {
    width: 24rem;
  }
  .about .section04 h3.en_deco span {
    width: 28rem;
  }
  .about .section04 .lead_title {
    font-size: 5rem;
  }
  .about .section04 .message_wrapper {
    flex-direction: column-reverse;
    gap: 7rem;
  }
  .about .section04 .message_wrapper picture {
    width: 80%;
    margin-inline: auto;
  }
  .about .section04 .message_wrapper picture img {
    aspect-ratio: 1;
    object-position: top;
  }
  .about .section04 .message_wrapper .message .message_sign {
    margin-top: 6rem;
  }
  .about .section04 .message_wrapper .message .message_sign picture {
    width: 100%;
    width: 26rem;
  }
  .about .section04 .message_wrapper .message .message_sign picture img {
    aspect-ratio: auto;
    object-position: center;
  }
}

/* 養豚の未来のこと .vision   ---------------------------------------------------------------------- */
.vision .pagevisual {
  background-image: image-set(url("../images/pagevisual_roadmap.webp") 1x, url("../images/pagevisual_roadmap@2x.webp") 2x);
}
.vision .pagevisual .page_copy {
  color: #fff;
  top: 14%;
  right: 5%;
  filter: drop-shadow(0px 0px 8px rgba(0, 0, 0, 0.95));
}
.vision .sec_hero {
  margin-bottom: 33rem;
}
.vision .sec_hero .sec_copy_wrapper .pic_wrapper {
  width: 61rem;
  margin-right: 0;
  right: 12rem;
  position: relative;
}
.vision .sec_hero .deco_en {
  position: absolute;
  top: 57rem;
  right: 18%;
  width: 31rem;
}
.vision .lead_text {
  margin-bottom: 5.5rem;
}
.vision .lead_text_sub {
  max-width: 770px;
  margin-inline: auto;
  margin-bottom: 15rem;
}
.vision .lead_text_sub p {
  font-size: max(1.9rem, 14px);
}
.vision .section01.bg_mesh::before {
  bottom: 0;
  top: auto;
}
.vision .section01 {
  padding-bottom: 23rem;
}
.vision .section01 .pic_flow {
  max-width: 1520px;
  margin-inline: auto;
  width: 90%;
}
.vision .section02 h4 {
  padding: 2.6rem 6rem 3rem;
  border: 1px solid #007caa;
  color: #007caa;
  font-size: 4.8rem;
  letter-spacing: 0.075em;
  width: fit-content;
  margin-inline: auto;
  margin-bottom: 4.5rem;
}
.vision .section02 .sec_box:has(~ .sec_box) {
  margin-bottom: 12rem;
}
.vision .section02 .flex_column3 {
  display: flex;
  gap: 10rem;
}
.vision .section02 .flex_column3 .flex_item {
  width: calc((100% - 20rem) / 3);
}
.vision .section02 .flex_column3 .flex_item picture {
  margin-bottom: 5rem;
}
.vision .section02 .flex_column3 .flex_item picture img {
  border-radius: 500px;
}
.vision .section02 .flex_column3 .flex_item .flex_body .flex_title_wrapper {
  color: #007caa;
  text-align: center;
  margin-bottom: 3rem;
}
.vision .section02 .flex_column3 .flex_item .flex_body .flex_title_wrapper .title_num {
  font-family: "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", "游ゴシック", YuGothic, "游ゴシック体", "メイリオ", sans-serif;
  font-weight: 600;
  font-size: 9rem;
  margin-bottom: 2rem;
}
.vision .section02 .flex_column3 .flex_item .flex_body .flex_title_wrapper .flex_title {
  font-size: max(2.5rem, 17px);
  line-height: 1.5;
  letter-spacing: 0;
  height: 3em;
}
.vision .section02 .flex_column3 .flex_item .flex_body p {
  font-size: max(2rem, 14px);
}
.vision .sec_hero.hero02 {
  margin-bottom: 14rem;
}
.vision .sec_hero.hero02 .flex_hero {
  display: flex;
  gap: 7rem;
  align-items: flex-start;
  justify-content: center;
}
.vision .sec_hero.hero02 .sec_copy {
  font-size: 3.6rem;
  line-height: 2;
  letter-spacing: 0;
}
.vision .sec_hero.hero02 .pic_wrapper {
  flex-shrink: 0;
  margin-right: 0;
  width: 66rem;
}
.vision .bottom_deco picture {
  position: absolute;
  width: 27rem;
  bottom: 0;
  right: 0;
  left: -64%;
  margin: auto;
  z-index: 1;
}
@media screen and (max-width: 820px) {
  .vision .sec_hero {
    margin-bottom: 16rem;
  }
  .vision .sec_hero .sec_copy_wrapper .pic_wrapper {
    width: 25rem;
    margin-right: -3rem;
    right: 0rem;
    top: 30rem;
    z-index: -1;
  }
  .vision .sec_hero .deco_en {
    top: 43rem;
    right: 9%;
    width: 24rem;
  }
  .vision .lead_text_sub {
    margin-bottom: 9rem;
  }
  .vision .section01 {
    padding-bottom: 10rem;
  }
  .vision .section01 .lead_text {
    font-size: max(2.5rem, 18px);
  }
  .vision .section01 .pic_flow {
    max-width: 360px;
  }
  .vision .section02 .lead_text {
    font-size: max(4rem, 18px);
  }
  .vision .section02 h4 {
    padding: 1.8rem 2.5rem 2.2rem;
    font-size: max(2.8rem, 18px);
  }
  .vision .section02 .flex_column3 {
    gap: 4rem;
    flex-wrap: wrap;
    justify-content: center;
  }
  .vision .section02 .flex_column3 .flex_item {
    width: calc((100% - 4rem) / 2);
  }
  .vision .section02 .flex_column3 .flex_item .flex_body .flex_title_wrapper {
    margin-bottom: 2rem;
  }
  .vision .section02 .flex_column3 .flex_item .flex_body .flex_title_wrapper .title_num {
    font-size: 7rem;
  }
  .vision .section02 .flex_column3 .flex_item .flex_body .flex_title_wrapper .flex_title {
    font-size: max(2.5rem, 14px);
  }
  .vision .sec_hero.hero02 {
    width: 90%;
    margin-inline: auto;
  }
  .vision .sec_hero.hero02 .flex_hero {
    flex-direction: column;
  }
  .vision .sec_hero.hero02 .flex_hero .pic_wrapper {
    margin: -14rem 0 0 auto;
    width: 42rem;
  }
  .vision .bottom_deco picture {
    width: 17rem;
  }
}

/* 採用情報 .recruit   ---------------------------------------------------------------------- */
.recruit .pagevisual {
  background-image: image-set(url("../images/pagevisual_recruit.webp") 1x, url("../images/pagevisual_recruit@2x.webp") 2x);
}
.recruit .pagevisual .page_copy {
  color: #000;
  top: 11%;
  right: 4%;
  line-height: 1.3;
}
.recruit .pagevisual .page_copy span {
  background-color: #fff;
  font-size: 4.5rem;
  padding: 8px;
}
.recruit .pagevisual .page_copy .copy_padding_btm_none {
  padding-bottom: 0;
}
.recruit .pagevisual .page_copy .copy_padding_top_none {
  padding-top: 0;
}
.recruit .pagevisual .page_copy.versp {
  display: none;
}
.recruit .content_title_wrapper {
  margin-bottom: 2rem;
}
.recruit .content_title_wrapper .content_title {
  font-size: 6rem;
  margin-bottom: 10px;
}
.recruit .content_title_wrapper .content_sub_title {
  font-family: "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", "游ゴシック", YuGothic, "游ゴシック体", "メイリオ", sans-serif;
  color: #007ca9;
  font-weight: 600;
  font-size: max(2.1rem, 13px);
}
.recruit .sec_hero {
  margin-bottom: 34rem;
}
.recruit .sec_hero .deco_en {
  position: absolute;
  top: 49rem;
  right: 20%;
  width: 42rem;
}
.recruit .recruit_links {
  margin-bottom: 12rem;
}
.recruit .recruit_links .recruit_flex {
  display: flex;
  gap: 15rem;
}
.recruit .recruit_links .recruit_flex a {
  display: block;
  width: calc((100% - 15rem) / 2);
  text-align: center;
}
.recruit .recruit_links .recruit_flex a picture {
  margin-bottom: 8px;
}
.recruit .recruit_links .recruit_flex a span {
  font-size: max(3.3rem, 17px);
  letter-spacing: 0.1em;
}
.recruit .section01 .bg_mesh::before {
  bottom: 0;
  top: auto;
}
.recruit .section01 h3.en_deco {
  margin-bottom: 3.6rem;
}
.recruit .section01 h3.en_deco span {
  margin-top: 0;
  width: 33rem;
  margin-inline: auto;
}
.recruit .section01 .jobdesc_list {
  margin-bottom: 14rem;
}
.recruit .section01 .jobdesc_list .jobdesc_item:not(:last-child) {
  margin-bottom: 7rem;
}
.recruit .section01 .jobdesc_list .jobdesc_item {
  display: flex;
  gap: 6rem;
  align-items: center;
  background-color: #ebeff4;
  border-radius: 15px;
  padding: 20px;
}
.recruit .section01 .jobdesc_list .jobdesc_item .list_title_wrapper {
  color: #007ca9;
  display: flex;
  gap: 2rem;
  align-items: center;
}
.recruit .section01 .jobdesc_list .jobdesc_item .list_title_wrapper .list_num {
  font-size: 8rem;
  font-family: "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", "游ゴシック", YuGothic, "游ゴシック体", "メイリオ", sans-serif;
  font-weight: 600;
  letter-spacing: 0.1em;
}
.recruit .section01 .jobdesc_list .jobdesc_item .list_title_wrapper .list_title {
  font-size: max(2.5rem, 16px);
  letter-spacing: 0.5em;
  white-space: nowrap;
}
.recruit .section01 .jobdesc_list .jobdesc_item .list_text p {
  font-size: max(2.5rem, 14px);
}
.recruit .section01 .overflow_left {
  margin-left: calc(50% - 50vw);
  display: flex;
  gap: 7rem;
}
.recruit .section01 .overflow_left picture {
  width: 83rem;
  flex-shrink: 0;
}
.recruit .section01 .overflow_right {
  margin-right: calc(50% - 50vw);
  display: flex;
  gap: 7rem;
}
.recruit .section01 .overflow_right picture {
  width: 83rem;
  flex-shrink: 0;
}
.recruit .section01 .jobdesc_content .content_text_list li:not(:last-child) {
  margin-bottom: 4.5rem;
}
.recruit .section01 .jobdesc_content .content_text_list li {
  font-size: max(2.5rem, 16px);
  padding-left: 1em;
  position: relative;
  line-height: 1.6;
}
.recruit .section01 .jobdesc_content .content_text_list li::before {
  content: "●";
  position: absolute;
  left: 0;
}
.recruit .section01 .jobdesc_content p {
  font-size: max(2.5rem, 16px);
  position: relative;
  line-height: 1.6;
}
.recruit .section01 .box01 {
  margin-bottom: 12rem;
}
.recruit .section01 .box02 .jobdesc_content {
  margin-top: 6rem;
}
.recruit .section02 .join_title {
  width: 100%;
  border: 2px solid #000;
  font-size: max(4rem, 22px);
  letter-spacing: 0.2em;
  padding: 22px 25px 25px;
  text-align: center;
  margin-bottom: 10rem;
}
.recruit .section02 .table_join {
  font-size: max(2.5rem, 16px);
  line-height: 2;
  letter-spacing: 0.1em;
  width: 100%;
}
.recruit .section02 .table_join tr {
  border-bottom: 1px solid #000;
}
.recruit .section02 .table_join th {
  padding: 2.7rem 0 3rem;
  text-align: justify;
  text-align-last: justify;
  width: 4.5em;
}
.recruit .section02 .table_join td {
  padding: 2.7rem 0 3rem 9rem;
}
.recruit .section03 h3.en_deco {
  margin-bottom: 6rem;
}
.recruit .section03 h3.en_deco span {
  margin-top: -0.5rem;
  width: 28rem;
  margin-inline: auto;
}
.recruit .section03 .apply_flow {
  margin-bottom: 12.5rem;
}
.recruit .section03 .apply_flow li {
  display: flex;
  gap: 2rem;
  align-items: center;
  position: relative;
}
.recruit .section03 .apply_flow li:not(:last-child) {
  margin-bottom: 7.3rem;
}
.recruit .section03 .apply_flow li .flow_num {
  font-size: 5rem;
  color: #007ca9;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-align: center;
  font-family: "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", "游ゴシック", YuGothic, "游ゴシック体", "メイリオ", sans-serif;
}
.recruit .section03 .apply_flow li .flow_num span {
  font-size: max(1.7rem, 12px);
  letter-spacing: 0;
  display: block;
  margin-bottom: 8px;
}
.recruit .section03 .apply_flow li .flow_body {
  background-color: #ebeff4;
  flex-grow: 1;
  display: flex;
  align-items: center;
  padding: 3rem 3rem 3rem 6.5rem;
  clip-path: polygon(3% 0, 100% 0%, 100% 100%, 0 100%);
  line-height: 1.4;
  font-size: max(2.5rem, 16px);
}
.recruit .section03 .apply_flow li::after {
  content: "";
  display: block;
  width: 2rem;
  height: 5rem;
  position: absolute;
  bottom: -0.5rem;
  left: 3.6rem;
  translate: -50% 100%;
  background-image: url("../images/flow_arrow.svg");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
}
.recruit .section03 .apply_flow li:last-child::after {
  content: none;
}
.recruit .section03 .apply_btn {
  max-width: 560px;
  width: 100%;
  margin-inline: auto;
}
.recruit .section03 .apply_btn a {
  display: block;
  font-size: 3rem;
  letter-spacing: 0.2em;
  border: 1px solid #000;
  padding: 2.6rem 4rem;
  border-radius: 100px;
  text-align: center;
}
.recruit .section03 .apply_btn a span {
  width: 5rem;
  display: inline-block;
  margin-right: 2rem;
  vertical-align: text-bottom;
}
.recruit .section03 .apply_btn a span img {
  vertical-align: inherit;
}
.recruit .section04 .content_title_wrapper {
  margin-bottom: 6rem;
}
.recruit .section04 .flow_img {
  max-width: 780px;
  width: 85%;
  margin-inline: auto;
}
.recruit .bottom_deco picture {
  position: absolute;
  width: 11rem;
  bottom: 0;
  right: 0;
  left: 54%;
  margin: auto;
  z-index: 1;
}
@media screen and (max-width: 820px) {
  .recruit .pagevisual {
    background-position: left 34% center;
  }
  .recruit .pagevisual .page_copy span {
    line-height: 1.8;
    padding: 5px 3px;
    font-size: 3.3rem;
  }
  .recruit .pagevisual .page_copy .copy_padding_btm_none {
    padding-bottom: 5px;
  }
  .recruit .pagevisual .page_copy .copy_padding_top_none {
    padding-top: 5px;
  }
  .recruit .pagevisual .page_copy.verpc {
    display: none;
  }
  .recruit .pagevisual .page_copy.versp {
    display: block;
  }
  .recruit .sec_hero {
    margin-bottom: 20rem;
  }
  .recruit .sec_hero .sec_copy {
    line-height: 1.4;
  }
  .recruit .sec_hero .deco_en {
    top: 37rem;
    right: 6%;
    width: 29rem;
  }
  .recruit .recruit_links .recruit_flex {
    gap: 6rem;
  }
  .recruit .recruit_links .recruit_flex a {
    width: calc((100% - 6rem) / 2);
  }
  .recruit .section01 .jobdesc_list .jobdesc_item {
    gap: 2rem;
    flex-direction: column;
    align-items: flex-start;
  }
  .recruit .section01 .jobdesc_list .jobdesc_item .list_title_wrapper .list_num {
    font-size: 6rem;
  }
  .recruit .section01 .jobdesc_list .jobdesc_item:not(:last-child) {
    margin-bottom: 5rem;
  }
  .recruit .section01 .overflow_left {
    flex-direction: column;
    gap: 4rem;
  }
  .recruit .section01 .overflow_left picture {
    width: 85%;
  }
  .recruit .section01 .overflow_right {
    flex-direction: column-reverse;
    gap: 4rem;
  }
  .recruit .section01 .overflow_right picture {
    width: 85%;
    margin: 0 0 0 auto;
  }
  .recruit .section01 .jobdesc_content {
    width: 90%;
    margin-inline: auto;
  }
  .recruit .section01 .box02 .jobdesc_content {
    margin-top: 0;
  }
  .recruit .section02 .join_title {
    padding: 16px 15px 20px;
    margin-bottom: 6rem;
  }
  .recruit .section02 .table_join tr {
    display: flex;
    flex-direction: column;
  }
  .recruit .section02 .table_join th {
    width: 100%;
    text-align: left;
    text-align-last: inherit;
    padding: 2rem 0 0;
  }
  .recruit .section02 .table_join td {
    padding: 0 0 2rem 0;
  }
}

/* 新卒採用 .recruit.newgrad  ---------------------------------------------------------------------- */
.recruit.newgrad .section00 .lead_text {
  font-size: max(2.5rem, 18px);
}

/* お問合せ .contact   ---------------------------------------------------------------------- */
.contact:has(.mw_wp_form_complete) .lead_text {
  display: none;
}
.contact .p-country-name {
  display: none;
}
.contact h2 {
  display: block;
}
.contact .h2_wrapper {
  text-align: center;
  margin-bottom: 12rem;
}
.contact .h2_wrapper picture {
  width: 33.8rem;
  margin-bottom: 4rem;
  margin-inline: auto;
}
.contact .h2_wrapper h2 {
  font-size: 4.7rem;
  letter-spacing: 0.2em;
}
.contact .h2_wrapper h2 span {
  display: block;
  width: 24rem;
  margin-inline: auto;
  margin-top: 2rem;
}
.contact .lead_text {
  font-size: max(1.6rem, 14px);
  text-align: left;
  line-height: 1.6;
  font-family: "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", "游ゴシック", YuGothic, "游ゴシック体", "メイリオ", sans-serif;
  margin-bottom: 5rem;
}
.contact .lead_text span.text_blue {
  color: #00a89c;
  font-weight: 600;
}
.contact input, .contact textarea {
  background-color: #dbe8e9;
  color: #000;
  padding: 15px;
  letter-spacing: 0.1em;
  width: 100%;
}
.contact input::placeholder, .contact textarea::placeholder {
  color: #90b9bc;
  font-size: max(1.6rem, 13px);
}
.contact .form_wrapper {
  font-family: "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", "游ゴシック", YuGothic, "游ゴシック体", "メイリオ", sans-serif;
  letter-spacing: 0.1em;
  font-size: max(1.6rem, 14px);
}
.contact .required {
  position: relative;
}
.contact .required::after {
  content: "※";
  font-size: max(1.2rem, 11px);
  color: #00a89c;
}
.contact .form_flex {
  display: flex;
  gap: 4.5rem;
  align-items: center;
}
.contact .form_flex:has(~ .form_flex) {
  margin-bottom: 4.5rem;
}
.contact .form_flex .form_th {
  width: 13em;
  position: relative;
  font-weight: 600;
  flex-shrink: 0;
}
.contact .form_flex .input_wrapper {
  flex-grow: 1;
}
.contact .form_flex.name .input_wrapper {
  display: flex;
  gap: 5rem;
}
.contact .form_flex.name .input_wrapper .input_item {
  width: calc((100% - 5rem) / 2);
}
.contact .form_flex.tel .input_wrapper {
  display: flex;
  gap: 3rem;
  align-items: center;
}
.contact .form_flex.address {
  align-items: flex-start;
}
.contact .form_flex.address .form_th {
  margin-top: 3rem;
}
.contact .form_flex.address .zip_wrapper {
  display: flex;
  gap: 3rem;
  align-items: center;
  width: calc((100% - (12rem + 2em)) / 3 * 2 + 6rem + 1em);
  margin-bottom: 1.5rem;
}
.contact .form_flex.address .zip_wrapper .input_item {
  margin-bottom: 0;
  width: calc((100% - 6rem - 1em) / 2);
}
.contact .form_flex.address .zip_wrapper .zip_first {
  position: relative;
}
.contact .form_flex.address .zip_wrapper .zip_first input {
  padding-left: 3em;
}
.contact .form_flex.address .zip_wrapper .zip_first::before {
  content: "〒";
  position: absolute;
  top: 50%;
  left: 1em;
  translate: 0 -50%;
}
.contact .form_flex.address .input_item {
  margin-bottom: 1.5rem;
}
.contact .form_flex.address .address01 {
  width: 50%;
}
.contact .form_flex.contents {
  height: 25rem;
  align-items: flex-start;
}
.contact .form_flex.contents .form_th {
  margin-top: 3rem;
}
.contact .form_flex.contents .textarea_item {
  height: 25rem;
}
.contact .form_flex.contents .textarea_item textarea {
  height: 100%;
}
.contact .privacy_wrapper {
  width: 100%;
  max-width: 830px;
  margin-inline: auto;
  overflow-y: auto;
  aspect-ratio: 83/25;
  border: 1px solid #000;
  padding: 2rem;
  margin-top: 12rem;
  line-height: 1.5;
}
.contact .privacy_wrapper .privacy_title {
  font-weight: 600;
  margin-bottom: 1rem;
}
.contact .privacy_wrapper .privacy_lead_text {
  margin-bottom: 5rem;
}
.contact .privacy_wrapper .privacy_item {
  margin-bottom: 5rem;
}
.contact .privacy_wrapper .privacy_item .sec_title {
  font-weight: 600;
  margin-bottom: 1rem;
}
.contact .privacy_wrapper .privacy_item ul {
  padding-left: 4rem;
  margin-top: 2rem;
}
.contact .privacy_wrapper .privacy_item ul li {
  margin-bottom: 1rem;
  list-style-type: disc;
}
.contact .agree_btn_wrapper {
  margin-top: 3.5rem;
  text-align: center;
  font-family: "HannariMincho", "Noto Sans JP", "Yu Gothic", "游ゴシック", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
  color: #4d4d4d;
  margin-bottom: 6rem;
}
.contact .agree_btn_wrapper input {
  width: fit-content;
  accent-color: #bfd6d8;
}
.contact .btm_msg {
  text-align: center;
  margin-bottom: 3rem;
  line-height: 1.4;
}
.contact .send_btn_wrapper {
  text-align: center;
}
.contact .send_btn_wrapper input {
  width: fit-content;
  transition: opacity 0.3s;
}
@media (hover: hover) and (pointer: fine) {
  .contact .send_btn_wrapper input:hover {
    opacity: 0.7;
  }
}
.contact .send_btn {
  margin-bottom: 18px;
}
.contact .send_btn input {
  width: 100%;
  max-width: 570px;
  text-align: center;
  border-radius: 100px;
  background-color: #007ca9;
  color: #fff;
  margin-inline: auto;
}
.contact .back_btn input {
  background-color: transparent;
  padding: 0;
  text-decoration: underline;
  color: #4d4d4d;
  text-align: center;
}
.contact .back_btn input:hover {
  text-decoration: none;
}
.contact .mw_wp_form_confirm .form_flex.name .input_wrapper {
  gap: 1rem;
}
.contact .mw_wp_form_confirm .form_flex.name .input_wrapper .input_item {
  width: fit-content;
}
.contact .mw_wp_form_confirm .form_flex.address .form_th {
  margin-top: 0;
}
.contact .mw_wp_form_confirm .form_flex.address .zip_wrapper {
  width: fit-content;
}
.contact .mw_wp_form_confirm .form_flex.address .zip_wrapper .input_item {
  width: auto;
}
.contact .mw_wp_form_confirm .form_flex.address .zip_first {
  padding-left: 1.3em;
}
.contact .mw_wp_form_confirm .form_flex.address .zip_first::before {
  left: 0;
}
.contact .mw_wp_form_confirm .form_flex.contents .form_th {
  margin-top: 0;
}
.contact .mw_wp_form_confirm .privacy_wrapper {
  display: none;
}
.contact .bottom_deco {
  width: 20.5rem;
  top: 0;
  right: 0;
  left: 31%;
  margin: auto;
  z-index: 1;
  margin-top: 8rem;
}
.contact .error {
  margin-top: 5px;
  line-height: 1.3;
  color: #c90606;
  display: block;
}
.contact .mw_wp_form_complete p {
  text-align: center;
}
@media screen and (max-width: 820px) {
  .contact .h2_wrapper {
    margin-bottom: 8rem;
  }
  .contact .h2_wrapper picture {
    width: 22.8rem;
    margin-bottom: 3rem;
  }
  .contact .h2_wrapper h2 {
    font-size: max(3.7rem, 26px);
  }
  .contact .h2_wrapper h2 span {
    width: 16rem;
    margin-top: 1rem;
  }
  .contact input, .contact textarea {
    padding: 10px;
  }
  .contact .form_flex {
    flex-direction: column;
    align-items: flex-start;
    gap: 2rem;
  }
  .contact .form_flex:has(~ .form_flex) {
    margin-bottom: 4rem;
  }
  .contact .form_flex .form_th {
    width: 100%;
  }
  .contact .form_flex.name .input_wrapper {
    gap: 2rem;
    width: 100%;
    max-width: 500px;
  }
  .contact .form_flex.name .input_wrapper .input_item {
    width: calc((100% - 2rem) / 2);
  }
  .contact .form_flex.tel .input_wrapper {
    gap: 1rem;
    width: 100%;
    max-width: 500px;
  }
  .contact .form_flex.address .form_th {
    margin-top: 0;
  }
  .contact .form_flex.address .zip_wrapper .zip_first input {
    padding-left: 2.4em;
  }
  .contact .form_flex.contents .form_th {
    margin-top: 0;
  }
  .contact .form_flex.contents .input_wrapper {
    width: 100%;
  }
  .contact .mw_wp_form_confirm .form_flex.name .input_wrapper {
    gap: 1rem;
  }
  .contact .mw_wp_form_confirm .form_flex.name .input_wrapper .input_item {
    width: fit-content;
  }
  .contact .mw_wp_form_confirm .form_flex.address .form_th {
    margin-top: 0;
  }
  .contact .mw_wp_form_confirm .form_flex.address .zip_wrapper {
    width: fit-content;
    gap: 1rem;
  }
  .contact .mw_wp_form_confirm .form_flex.address .zip_wrapper .input_item {
    width: auto;
  }
  .contact .mw_wp_form_confirm .form_flex.address .zip_first {
    padding-left: 1.3em;
  }
  .contact .mw_wp_form_confirm .form_flex.address .zip_first::before {
    left: 0;
  }
  .contact .mw_wp_form_confirm .form_flex.contents .form_th {
    margin-top: 0;
  }
  .contact .mw_wp_form_confirm .privacy_wrapper {
    display: none;
  }
  .contact .privacy_wrapper {
    aspect-ratio: 83/41;
  }
  .contact .mw_wp_form_complete p {
    text-align: left;
  }
}