/* 
キャンペーンボタン
*/
@media (max-width: 1000px) {
  .campaign-wrapper {
    position: fixed;
    width: 328px;
    bottom: 15px;
    z-index: 10;
    left: 50%;
    transform: translateX(-50%);
  }
}
@media (min-width: 1001px) {
  .campaign-wrapper {
    padding: 32px 66px 0 83px;
  }
}
.campaign-wrapper a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 18px 36px 19px 72px;
  background-color: #ffffff;
}
.campaign-left p {
  margin-bottom: 6px;
  color: #eb6130;
  font-size: 24px;
  line-height: 30px;
}
.campaign-center-tanpin {
  padding: 0 7px;
  font-family: "Noto Sans JP", serif;
  font-size: 10px;
  font-weight: 400;
  color: #5f432e;
  letter-spacing: 0.07em;
}
@media (max-width: 1000px) {
  .campaign-wrapper a {
    position: relative;
    flex-direction: column;
    padding: 8px 0 10px;
    border: solid 2px #5f432e;
    border-radius: 12px;
  }
  #campaign-close-btn {
    position: absolute;
    top: -10px;
    right: -9px;
    z-index: 1;
  }
  .campaign-left p {
    font-size: 12px;
    line-height: 12px;
  }
  .campaign-center {
    display: flex;
    flex-direction: column-reverse;
  }
  .campaign-tanpin-wrapper {
    position: absolute;
    top: 3px;
    left: 13px;
    transform: rotate(-10deg);
  }
  .campaign-center-tanpin {
    position: relative;
    display: inline-flex;
    align-items: center;
    padding: 0 5px;
    font-size: 10px;
  }
}
@media (min-width: 1001px) {
  .campaign-wrapper a {
    padding: 18px 36px 19px 72px;
    border: solid 3px #5f432e;
    border-radius: 100px;
    box-shadow: 3px 6px 1px rgba(105, 76, 54, 0.1);
  }
  .campaign-wrapper a:hover {
    transform: translate(3px, 6px);
    box-shadow: none;
  }
  #campaign-close-btn {
    display: none;
  }
  .campaign-center-tanpin {
    position: relative;
    display: inline-flex;
    align-items: center;
    padding: 0 7px;
    font-size: 18px;
  }
}
.campaign-left {
  text-align: center;
}
.campaign-center {
  text-align: center;
}

.campaign-center-tanpin::before {
  content: "";
  position: absolute;
  background-color: #5f432e;
  transform: rotate(-120deg);
  transform-origin: left center;
}
.campaign-center-tanpin::after {
  content: "";
  position: absolute;
  background-color: #5f432e;
  transform: rotate(120deg);
  transform-origin: right center;
}
.campaign-right {
  padding: 9px 26px;
  background-color: #f2cb51;
  border-radius: 34px;
  font-size: 18px;
  line-height: 24px;
  text-align: center;
}
@media (max-width: 1000px) {
  .campaign-center-tanpin::before {
    left: 0;
    top: 72%;
    width: 12px;
    height: 1px;
    transform: rotate(-120deg);
  }
  .campaign-center-tanpin::after {
    right: 3px;
    top: 72%;
    width: 12px;
    height: 1px;
    transform: rotate(120deg);
  }
  .campaign-center-main {
    font-size: 18px;
    line-height: 18px;
    margin-bottom: 6px;
  }
  .campaign-center-sub {
    font-size: 10px;
    line-height: 10px;
    margin-bottom: 6px;
  }
  .campaign-left img {
    display: none;
  }
  .campaign-right {
    width: 183px;
    padding: 3px 0px;
    background-color: #f2cb51;
    border-radius: 34px;
    font-size: 12px;
    text-align: center;
  }
  .campaign-right br {
    display: none;
  }
}
@media (min-width: 1001px) {
  .campaign-center-tanpin::before {
    left: 0;
    top: 72%;
    width: 15px;
    height: 2px;
    transform: rotate(-120deg);
  }
  .campaign-center-tanpin::after {
    right: 3px;
    top: 72%;
    width: 15px;
    height: 2px;
    transform: rotate(120deg);
  }
  .campaign-center-main {
    font-size: 32px;
    line-height: 41px;
  }
  .campaign-center-sub {
    font-size: 18px;
    line-height: 27px;
  }
}
/* 
  ファーストビューセクション
  */
.top-area-main {
  position: relative;
  max-width: 954px;
  margin: 0 auto;
  padding-top: 74px;
  margin-bottom: 126px;
  text-align: center;
}
.top-area h2 {
  margin-bottom: 42px;
  position: relative;
  z-index: 1;
}
.top-area p {
  font-size: 28px;
  line-height: 42px;
  position: relative;
  z-index: 1;
}
@media (max-width: 1000px) {
  .top-area {
    padding: 82px 36px 0;
  }
  .top-area-main {
    padding-top: 192px;
    margin-bottom: 170px;
  }
  .top-area h2 {
    margin-bottom: 26px;
  }
  .top-area p {
    font-size: 18px;
    line-height: 27px;
  }
  .top-area-bottom {
    margin: 0 -36px;
  }
}
@media (max-width: 399px) {
  .top-area p {
    font-size: 16px;
  }
}
@media (min-width: 1001px) {
  .top-area h2 img {
    width: 304px;
    height: 204px;
  }
}
.top-chara {
  position: absolute;
}
.top-pandaru {
  top: 40px;
  left: 58px;
  animation: rotate linear 2.4s infinite;
}
.top-umashi {
  top: 25px;
  right: 60px;
  animation: diagonal2 2.5s infinite;
}
.top-aoitori {
  left: -15px;
  bottom: -30px;
  animation: diagonal 2.8s -0.3s infinite;
}
.top-cabeji {
  bottom: -30px;
  right: -20px;
  animation: rotate linear 2.7s -0.5s infinite;
}
@media (max-width: 767px) {
  .top-pandaru {
    top: 36px;
    left: -10px;
  }
  .top-umashi {
    top: 18px;
    right: -24px;
  }
  .top-aoitori {
    left: -5px;
    bottom: -140px;
  }
  .top-cabeji {
    bottom: -140px;
    right: -12px;
  }
}
@media (min-width: 768px) {
  .top-pandaru {
    top: 36px;
    left: 80px;
  }
  .top-umashi {
    top: 30px;
    right: 76px;
  }
  .top-aoitori {
    left: 78px;
    bottom: -140px;
  }
  .top-cabeji {
    bottom: -123px;
    right: 62px;
  }
}
@media (min-width: 1001px) {
  .top-pandaru {
    top: 40px;
    left: 58px;
  }
  .top-umashi {
    top: 25px;
    right: 60px;
  }
  .top-aoitori {
    left: -15px;
    bottom: -30px;
  }
  .top-cabeji {
    bottom: -30px;
    right: -20px;
  }
  .top-pandaru img {
    width: 219px;
    height: 219px;
  }
  .top-umashi img {
    width: 230px;
    height: 230px;
  }
  .top-aoitori img {
    width: 178px;
    height: 178px;
  }
  .top-cabeji img {
    width: 186px;
    height: 186px;
  }
}
.swiper1 {
  width: 100%;
  overflow: hidden;
}
@media (max-width: 1000px) {
  .swiper1 .swiper-slide {
    width: 161px !important;
    height: 120px !important;
  }
}
@media (min-width: 1001px) {
  .swiper1 .swiper-slide {
    width: 260px !important;
    height: 195px !important;
  }
}
.swiper1 .swiper-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.swiper1 .swiper-wrapper {
  transition-timing-function: linear !important;
}
/* 
  紹介セクション
  */
.about-area {
  padding: 64px 66px 100px 83px;
}
.about-text {
  max-width: 750px;
  height: auto;
  margin: 0 auto 57px;
}
@media (max-width: 1000px) {
  .about-area {
    padding: 64px 18px 50px;
  }
  .about-text {
    max-width: 750px;
    height: auto;
    margin-bottom: 116px;
  }
}
.about-text img {
  width: 100%;
  height: auto;
}
.about-image-flex {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  gap: 16px;
  position: relative;
  max-width: 752px;
  height: auto;
  margin: 0 auto 70px;
}
.about-image-flex p {
  font-size: 20px;
  margin-bottom: 12px;
  text-align: center;
}
@media (min-width: 768px) {
  .about-image-left p {
    padding-right: 9.2%;
  }
}
.about-image-left img,
.about-image-right img {
  width: 100%;
  height: auto;
}
.about-chara1 {
  position: absolute;
  left: -165px;
  bottom: -50px;
  animation: rotate linear 2.4s infinite;
}
.about-chara2 {
  position: absolute;
  right: -120px;
  bottom: -50px;
  animation: diagonal2 2.5s infinite;
}
@media (max-width: 1000px) {
  .about-image-flex {
    gap: 2%;
    margin-bottom: 64px;
  }
  .about-chara1 {
    left: -31px;
    bottom: -154px;
  }
  .about-chara2 {
    top: -163px;
    right: -6px;
  }
  .about-image-flex p {
    font-size: 16px;
    margin-bottom: 8px;
  }
  .about-image-left {
    width: 39%;
  }
  .about-image-right {
    width: 58%;
  }
}
@media (min-width: 1001px) {
  .about-chara1 img {
    width: 259px;
    height: 259px;
  }
  .about-chara2 img {
    width: 224px;
    height: 200px;
  }
}
.about-step-container {
  display: flex;
  gap: 27px;
  align-items: flex-start;
  max-width: 954px;
  margin: 0 auto;
}
.about-step-item {
  text-align: center;
}
.about-step-item img {
  width: 100%;
  height: auto;
}
.about-step-item p {
  margin-top: 12px;
  text-align: center;
  font-size: 20px;
}
@media (max-width: 1000px) {
  .about-step-container {
    display: block;
  }
  .about-step-item {
    margin-bottom: 16px;
  }
  .step-1 {
    width: 48%;
    margin: 0 auto 16px;
  }
  .step-1 img {
    width: 100%;
    height: auto;
  }
  .step-2,
  .step-3 {
    display: inline-block;
    width: 48%;
  }
  .about-step-item p {
    margin: 8px -15px;
    font-size: 16px;
    line-height: 16px;
  }
}
/* 
  お悩みセクション
  */
.solution-area {
  position: relative;
  overflow-x: clip;
  background-color: #f2cb51;
  padding: 66px 66px 40px 83px;
}
@media (max-width: 1000px) {
  .solution-area {
    padding: 35px 18px 60px;
  }
}
.solution-area::before {
  content: "";
  display: block;
  background-image: url(../images/wave.png);
  background-repeat: no-repeat;
  background-size: contain;
  width: 1103px;
  height: 69px;
  position: absolute;
  left: 0;
  top: -33px;
}
.solution-area::after {
  content: "";
  display: block;
  background-image: url(../images/wave.png);
  background-repeat: no-repeat;
  background-size: contain;
  width: 1103px;
  height: 69px;
  position: absolute;
  left: 0;
  bottom: -33px;
  transform: rotateX(180deg);
}
.solution-heading-wrapper {
  width: 100%;
  height: fit-content;
  position: relative;
}
.solution-heading {
  max-width: 562px;
  height: auto;
  margin: 0 auto 46px;
  position: relative;
  z-index: 1;
}
.solution-heading img {
  width: 100%;
  height: auto;
}
.solution-chara1 {
  position: absolute;
  top: 10px;
  left: -5px;
  animation: diagonal 2.5s infinite;
}
.solution-chara2 {
  position: absolute;
  top: 15px;
  right: -5px;
  animation: rotate linear 2.4s infinite;
}
@media (max-width: 1000px) {
  .solution-heading {
    margin-bottom: 196px;
  }
  .solution-chara1 {
    top: 142px;
    left: 18px;
  }
  .solution-chara2 {
    top: 142px;
    right: 26px;
  }
}
@media (min-width: 1001px) {
  .solution-chara1 img {
    width: 210px;
    height: 192px;
  }
  .solution-chara2 img {
    width: 187px;
    height: 202px;
  }
}
.solution-flex {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  gap: 4%;
  margin-bottom: 45px;
  padding: 0 22px;
}
.solution-flex-item-left img,
.solution-flex-item-right img {
  width: 100%;
  height: auto;
  margin-bottom: 16px;
}
.solution-flex-item-left p,
.solution-flex-item-right p {
  font-size: 16px;
  font-family: "Noto Sans JP", serif;
  font-weight: 400;
  line-height: 30px;
  letter-spacing: 0.07em;
}
.solution-flex-item-center {
  display: flex;
  align-items: center;
}
@media (max-width: 767px) {
  .solution-flex {
    flex-direction: column;
    gap: 16px;
    margin-bottom: 75px;
    padding: 0 18px;
  }
  .solution-flex:last-of-type {
    margin-bottom: 0;
  }
  .solution-flex-item-center {
    justify-content: center;
  }
  .solution-flex-item-left img,
  .solution-flex-item-right img {
    margin-bottom: 12px;
  }
  .solution-flex-item-left p,
  .solution-flex-item-right p {
    font-size: 15px;
    line-height: 22px;
  }
  .solution-flex-item-center img {
  }
}
@media (min-width: 1001px) {
}
/*
  こだわりセクション
  */
.commitment-area {
  position: relative;
  padding: 110px 66px 96px 83px;
  overflow-x: clip;
}
.heading-tableware {
  width: 436px;
  height: 116px;
  background-image: url(../images/heading-tableware-bg.png);
  background-size: cover;
  background-position: center;
  text-align: center;
  font-size: 32px;
  margin: 0 auto;
  padding-top: 65px;
}
.commitment-area .heading-tableware {
  margin-bottom: 49px;
}
@media (max-width: 1000px) {
  .commitment-area {
    padding: 53px 18px 30px;
  }
  .heading-tableware-wrapper {
    padding: 0 18px;
  }
  .heading-tableware {
    max-width: 328px;
    width: 100%;
    height: 87px;
    background-image: url(../images/heading-tableware-bg.png);
    background-repeat: no-repeat;
    background-size: 100% 100%;
    font-size: 24px;
    margin: 0 auto;
    padding-top: 44px;
  }
  .commitment-area .heading-tableware {
    margin-bottom: 122px;
  }
}
.commitment-top-wrapper {
  position: relative;
}
.commitment-top {
  position: relative;
  z-index: 2;
  width: 100%;
  background-image: url(../images/commitment-top-bg.png);
  background-size: 100% 100%;
  background-position: center;
  padding: 28px 34px 35px 24px;
  margin-bottom: 10px;
}
.commitment-top-chara {
  position: absolute;
  z-index: 1;
  width: 232px;
  height: 232px;
  top: -15px;
  right: 28px;
  transition: top 0.5s ease;
}
.commitment-top-chara.on {
  top: -120px;
}
.commitment-top-chara img {
  width: 100%;
  height: auto;
}
.commitment-top-content {
  position: relative;
  z-index: 1;
}
.commitment-top-content h3 {
  font-size: 24px;
  margin-bottom: 18px;
  text-align: center;
}
.commitment-top-flex {
  display: flex;
  flex-direction: row;
  gap: 18px;
}
.commitment-top-flex-img,
.commitment-top-flex-text {
  width: calc(50% - 9px);
}
.commitment-top-flex-img img {
  width: 100%;
  height: auto;
}
.commitment-top-flex-text p {
  font-family: "Noto Sans JP", serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 30px;
  letter-spacing: 0.07em;
}
@media (max-width: 1000px) {
  .commitment-top {
    background-image: url(../images/commitment-flex-bg.png);
    background-size: 100% 100%;
    background-position: center;
    padding: 20px 24px;
    margin-bottom: 8px;
  }
  .commitment-top-chara {
    width: 216px;
    height: 216px;
    right: -11px;
  }
  .commitment-top-flex {
    flex-direction: column;
  }
  .commitment-top-content h3 {
    font-size: 21px;
  }
  .commitment-top-flex-img {
    width: 94%;
    margin: 0 auto;
  }
  .commitment-top-flex-text {
    width: 100%;
  }
  .commitment-top-flex-text p {
    font-size: 15px;
    line-height: 22px;
  }
}
.commitment-flex {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 10px;
}
.commitment-flex-item {
  position: relative;
  width: calc(50% - 5px);
  background-image: url(../images/commitment-flex-bg.png);
  background-size: 100% 100%;
  background-position: center;
  padding: 28px 32px 39px;
}
.commitment-flex-heading {
  font-size: 24px;
  margin-bottom: 20px;
  text-align: center;
}
.commitment-flex-item-inner {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
}
.commitment-flex-item-img {
  width: 42%;
}
.commitment-flex-item-img img {
  width: 100%;
  height: auto;
}
.commitment-flex-text {
  width: 55%;
}
.commitment-flex-text p {
  font-family: "Noto Sans JP", serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 30px;
  letter-spacing: 0.07em;
}
.commitment-flex-text-small {
  margin-top: 6px;
  font-size: 10px !important;
  line-height: 15px !important;
}
@media (min-width: 768px) {
  .commitment-flex-text-small {
    margin-top: 30px;
    font-size: 12px !important;
    line-height: 14px !important;
  }
}
.commitment-wave {
  position: absolute;
  bottom: -39px;
  left: 0;
  width: 1103px;
  z-index: 1;
}
@media (max-width: 767px) {
  .commitment-flex {
    gap: 8px;
  }
  .commitment-flex-item {
    width: 100%;
    padding: 20px 24px;
  }
  .commitment-flex-heading {
    font-size: 21px;
    margin-bottom: 18px;
  }
  .commitment-flex-item-inner {
    align-items: flex-start;
  }
  .commitment-flex-item-img {
    width: 37%;
  }
  .commitment-flex-text {
    width: 56%;
  }
  .commitment-flex-text p {
    font-size: 15px;
    line-height: 23px;
  }
}
@media (max-width: 395px) {
  .commitment-flex-item-img {
    width: 34%;
  }
  .commitment-flex-text {
    width: 60%;
  }
}
/*
  メリットセクション
  */
.merit-area {
  padding: 78px 66px 100px 83px;
  background-image: url(../images/lattice.png);
  background-repeat: repeat;
}
.merit-area .heading-tableware {
  margin-bottom: 78px;
}
.merit-flex {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 63px 8%;
  padding: 0 30px 0 44px;
}
.merit-flex-item {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: calc(50% - 4%);
  position: relative;
}
.point-illust {
  position: absolute;
  top: -30px;
  left: -20px;
}
.merit-flex-img {
  width: 100%;
  height: auto;
}
.merit-flex-img img {
  width: 100%;
  height: auto;
}
.merit-flex-heading {
  font-size: 24px;
  line-height: 36px;
  text-align: center;
}
.merit-flex-text {
  font-family: "Noto Sans JP", serif;
  font-size: 16px;
  line-height: 30px;
  font-weight: 400;
  text-align: center;
  letter-spacing: 0.07em;
}
@media (max-width: 767px) {
  .merit-flex {
    flex-direction: column;
    gap: 66px;
    padding: 0 18px;
  }
  .merit-flex-item {
    gap: 0;
    width: 100%;
    margin: 0 auto;
  }
  .point-illust {
    width: 143px;
    height: 81px;
    top: -30px;
    left: -20px;
  }
  .merit-flex-img {
    margin-bottom: 16px;
  }
  .merit-flex-heading {
    font-size: 21px;
    line-height: 32px;
    margin-bottom: 12px;
  }
  .merit-flex-text {
    font-size: 15px;
    line-height: 22px;
  }
}
@media (max-width: 1000px) {
  .merit-area {
    padding: 61px 18px 46px;
  }
  .merit-area .heading-tableware {
    margin-bottom: 62px;
  }
}
/*
  献立例セクション
  */
.examples-area {
  padding: 77px 66px 96px 83px;
  position: relative;
}
.examples-top-wave {
  position: absolute;
  top: -39px;
  left: 0;
  width: 1103px;
  z-index: 1;
  transform: rotate(180deg);
}
.examples-area .heading-tableware {
  margin-bottom: 66px;
}
.examples-flex {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 34px 3%;
}
.example-item {
  position: relative;
  width: 31%;
}
.example-dow {
  position: absolute;
  left: -17px;
  top: -18px;
}
.example-img {
  margin-bottom: 16px;
}
.example-img img {
  width: 100%;
  height: auto;
}
.example-text {
  font-size: 20px;
  line-height: 24px;
  text-align: center;
}
.examples-bottom-wave {
  position: absolute;
  bottom: -39px;
  left: 0;
  width: 1103px;
  z-index: 1;
}
@media (max-width: 1000px) {
  .examples-area {
    padding: 48px 18px 40px;
  }
  .examples-area .heading-tableware {
    margin-bottom: 46px;
  }
  .examples-flex {
    padding-left: 10px;
    gap: 22px 5%;
  }
  .example-item {
    width: 47%;
  }
  .example-dow {
    width: 33px;
    height: 33px;
    left: -10px;
    top: -16px;
  }
  .example-img {
    margin-bottom: 6px;
  }
  .example-text {
    font-size: 15px;
    line-height: 18px;
  }
}
/*
  ご利用までの流れセクション
  */
.flow-area {
  padding: 80px 66px 96px 83px;
  background-image: url(../images/flow-bg.png);
  background-repeat: repeat-y;
  background-size: contain;
}
.flow-area .heading-tableware {
  margin-bottom: 48px;
}
.flow-flex-vertical {
  display: flex;
  flex-direction: column;
  gap: 56px;
  margin-bottom: 59px;
}
.flow-vertical-item {
  position: relative;
  z-index: 2;
  width: 70%;
  max-width: 670px;
  background-image: url(../images/flow-bg-wide.png);
  background-size: 100% 100%;
  background-position: center;
  margin: 0 auto;
  padding: 32px 46px 35px;
}
.flow-vertical-item h3,
.flow-horizontal-item h3 {
  font-size: 24px;
  margin-bottom: 16px;
  text-align: center;
}
.flow-vertical-item p,
.flow-horizontal-item p {
  line-height: 30px;
  font-family: "Noto Sans JP", serif;
  font-size: 16px;
  font-weight: 400;
  text-align: center;
  letter-spacing: 0.07em;
}
.flow-vertical-item::after {
  content: "";
  position: absolute;
  bottom: -46px;
  left: 50%;
  transform: translateX(-50%);
  width: 28px;
  height: 40px;
  background-image: url(../images/flow-arrow.png);
  background-size: contain;
  background-repeat: no-repeat;
}
.after-contract {
  font-size: 26px;
  margin-bottom: 8px;
  text-align: center;
}
.flow-flex-horizontal {
  display: flex;
  flex-direction: row;
  gap: 5%;
}
.flow-horizontal-item {
  position: relative;
  width: 30%;
  background-image: url(../images/white-bg-narrow.png);
  background-size: 100% 100%;
  background-position: center;
  padding: 57px 26px 61px;
}
.flow-horizontal-item:not(:last-of-type):after {
  content: "";
  position: absolute;
  background-image: url(../images/flow-arrow.png);
  background-size: contain;
  background-repeat: no-repeat;
}
@media (max-width: 1000px) {
  .flow-area {
    padding: 40px 18px 60px;
    background-size: 182%;
  }
  .flow-area .heading-tableware {
    margin-bottom: 32px;
  }
  .flow-flex-vertical {
    gap: 47px;
    margin-bottom: 48px;
  }
  .flow-vertical-item {
    width: 100%;
    background-image: url(../images/white-bg-merit-sp.png);
    background-size: 100% 100%;
    padding: 16px 38px 21px;
  }
  .flow-vertical-item h3,
  .flow-horizontal-item h3 {
    font-size: 21px;
    margin-bottom: 16px;
  }
  .flow-vertical-item p,
  .flow-horizontal-item p {
    line-height: 23px;
    font-size: 15px;
  }
  .flow-vertical-item::after {
    bottom: -41px;
    width: 24px;
    height: 35px;
  }
  .after-contract {
    font-size: 21px;
    margin-bottom: 6px;
  }
  .flow-flex-horizontal {
    flex-direction: column;
    gap: 47px;
  }
  .flow-horizontal-item {
    width: 100%;
    background-image: url(../images/white-bg-merit-sp.png);

    padding: 16px 38px 21px;
  }
  .flow-horizontal-item:not(:last-of-type):after {
    bottom: -41px;
    left: 50%;
    transform: translateX(-50%);
    width: 24px;
    height: 35px;
  }
}
@media (min-width: 1001px) {
  .flow-horizontal-item:not(:last-of-type):after {
    top: calc(50% - 14px);
    right: -13%;
    width: 28px;
    height: 40px;
    transform: rotate(270deg);
  }
}
/*
  ご利用施設の声セクション
  */
.voices-area {
  padding: 77px 66px 96px 83px;
  position: relative;
}
.voices-top-wave {
  position: absolute;
  top: -39px;
  left: 0;
  width: 1103px;
  z-index: 1;
  transform: rotate(180deg);
}
.voices-area .heading-tableware {
  margin-bottom: 48px;
}
.facility-introduction {
  font-size: 24px;
  line-height: 36px;
  text-align: center;
  margin: 0 auto 32px;
}
.facility-wrapper {
  display: none;
}
.facility-aoitori {
  position: absolute;
  transform: translateY(-50%);
  bottom: 63%;
  right: 2vw;
  animation: diagonal 2.8s infinite;
  width: 15vw;
  height: auto;
}
.facility-pandaru {
  position: absolute;
  bottom: 63%;
  transform: translateY(-50%);
  left: 4vw;
  animation: rotate linear 2.4s infinite;
  width: 15vw;
  height: auto;
}
.facility-image {
  width: 100%;
  max-width: 450px;
  height: auto;
  margin-bottom: 16px;
}
.facility-name {
  font-size: 24px;
  margin-bottom: 8px;
}
.facility-location {
  font-family: "Noto Sans JP", serif;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.07em;
}
.voices-area h3 {
  display: none;
}
.voice-item {
  position: relative;
  background-image: url(../images/white-bg-narrow.png);
  background-size: 100% 100%;
  background-position: center;
  padding: 30px 25px;
  font-family: "Noto Sans JP", serif;
  font-size: 16px;
  font-weight: 400;
  display: flex;
  flex-direction: column;
  gap: 16px;
  height: 380px;
}
.voice-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-bottom: 12px;
  border-bottom: 2px solid #ffd700;
}
.voice-avatar {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid #fff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  flex-shrink: 0;
}
.voice-heading {
  font-size: 18px;
  font-weight: 700;
  color: #2c5f2d;
  line-height: 1.4;
  margin: 0;
  flex: 1;
}
.voice-text {
  letter-spacing: 0.07em;
  line-height: 1.8;
  flex: 1;
  font-size: 15px;
  color: #333;
  margin: 0;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 5;
}
.voice-info {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 12px;
  border-top: 1px solid #e0e0e0;
  margin-top: auto;
}
.voice-facility {
  font-size: 14px;
  font-weight: 600;
  color: #2c5f2d;
}
.voice-location {
  font-size: 12px;
  color: #666;
  background-color: #f5f5f5;
  padding: 4px 8px;
  border-radius: 4px;
}
@media (max-width: 1000px) {
  .voices-area {
    padding: 32px 18px 50px;
  }
  .voices-area .heading-tableware {
    margin-bottom: 32px;
  }
  .facility-introduction {
    max-width: 294px;
    font-size: 21px;
    line-height: 32px;
    margin-bottom: 30px;
  }
  .facility-wrapper {
    padding: 0 18px;
    margin-bottom: 183px;
  }
  .facility-aoitori {
    display: none;
  }
  .facility-pandaru {
    display: none;
  }
  .facility-image {
    width: 100%;
    max-width: 450px;
    height: auto;
    margin-bottom: 16px;
  }
  .facility-name {
    font-size: 21px;
  }
  .facility-location {
    font-size: 15px;
  }
  .facility-location {
    font-size: 15px;
  }
  .voices-area h3 {
    font-size: 18px;
    line-height: 27px;
  }
  .voice-item {
    padding: 24px 20px;
    height: 320px;
  }
  .voice-header {
    gap: 12px;
    padding-bottom: 14px;
    align-items: flex-start;
  }
  .voice-avatar {
    width: 45px;
    height: 45px;
    margin-top: 2px;
  }
  .voice-heading {
    font-size: 16px;
    line-height: 1.3;
  }
  .voice-text {
    font-size: 14px;
    line-height: 1.75;
    padding: 0 2px;
  }
  .voice-facility {
    font-size: 13px;
    font-weight: 600;
  }
  .voice-location {
    font-size: 11px;
    padding: 4px 8px;
    background-color: #f0f7f0;
  }
}
@media screen and (max-width: 767px) {
  .swiper2 {
    margin: 0 auto 30px;
    padding: 0 0 35px;
    position: relative;
    overflow: visible;
  }
  .swiper2 .swiper-wrapper {
    padding: 0;
  }
  .voice-item {
    background-color: #fff;
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    background-image: none;
    height: 320px;
  }
  /* モバイル用ページネーション */
  .swiper2 .swiper-pagination {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    text-align: center;
  }
  .swiper2 .swiper-pagination-bullet {
    width: 8px;
    height: 8px;
    background-color: #ddd;
    opacity: 1;
    margin: 0 4px;
  }
  .swiper2 .swiper-pagination-bullet-active {
    background-color: #2c5f2d;
    width: 24px;
    border-radius: 4px;
  }
  /* モバイル用ナビゲーションボタン */
  .swiper2 .swiper-button-next,
  .swiper2 .swiper-button-prev {
    width: 36px;
    height: 36px;
    background-color: #fff;
    border-radius: 50%;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
    top: 50%;
    margin-top: -18px;
  }
  .swiper2 .swiper-button-next:after,
  .swiper2 .swiper-button-prev:after {
    font-size: 16px;
    color: #2c5f2d;
    font-weight: bold;
  }
  .swiper2 .swiper-button-prev {
    left: 5px;
  }
  .swiper2 .swiper-button-next {
    right: 5px;
  }
}
@media screen and (min-width: 768px) {
  .swiper2 {
    position: relative;
    padding: 0 50px 40px;
  }
  .voices-area .swiper-wrapper {
    flex-wrap: nowrap;
    gap: 0;
  }
  .voice-item {
    width: auto;
    height: 380px;
  }
  .voice-heading {
    font-size: 17px;
  }
  .voice-text {
    font-size: 14px;
  }
  .voice-info {
    padding-top: 16px;
  }
  .voice-facility {
    font-size: 14px;
  }
  .voice-location {
    font-size: 12px;
    padding: 5px 10px;
  }
  /* Swiper Navigation Buttons */
  .swiper-button-next,
  .swiper-button-prev {
    width: 40px;
    height: 40px;
    background-color: #fff;
    border-radius: 50%;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  }
  .swiper-button-next:after,
  .swiper-button-prev:after {
    font-size: 20px;
    color: #2c5f2d;
    font-weight: bold;
  }
  .swiper-button-prev {
    left: 10px;
  }
  .swiper-button-next {
    right: 10px;
  }
  /* Swiper Pagination */
  .swiper-pagination {
    position: absolute;
    bottom: 10px;
  }
  .swiper-pagination-bullet {
    width: 10px;
    height: 10px;
    background-color: #ccc;
    opacity: 0.5;
  }
  .swiper-pagination-bullet-active {
    background-color: #2c5f2d;
    opacity: 1;
  }
}
/*
  よくある質問セクション
  */
.faq-area {
  padding: 0 66px 96px 83px;
}
.faq-area .heading-tableware {
  margin-bottom: 54px;
}
.faq-area-inner {
  position: relative;
  width: calc(100% - 36px);
  border-radius: 10px;
  box-shadow: 0 0 0 18px #ffffff;
  border: 2px dashed rgba(242, 203, 81, 0.45);
  background-color: #ffffff;
  margin-left: 18px;
  padding: 30px 30px 25px;
}
.faq-cabeji {
  position: absolute;
  top: 72px;
  right: 32px;
  animation: rotate linear 2.4s infinite;
}
@media screen and (max-width: 1000px) {
  .faq-cabeji {
    display: none;
  }
}
.faq-item {
  max-width: 683px;
  margin: 0 auto 52px 91px;
}
.question {
  position: relative;
  margin-bottom: 21px;
  font-size: 20px;
  line-height: 30px;
}
.answer {
  position: relative;
  font-family: "Noto Sans JP", serif;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.07em;
}
.question::before {
  position: absolute;
  left: -40px;
  top: -2px;
  content: "Q.";
  font-size: 28px;
  color: #eb6130;
}
.answer::before {
  position: absolute;
  left: -40px;
  top: -4px;
  content: "A.";
  font-size: 28px;
  color: #3375b6;
  font-weight: bold;
}
@media (max-width: 767px) {
  .faq-area {
    padding: 0 18px 42px;
  }
  .faq-area .heading-tableware {
    width: 100%;
    margin: 0 auto 32px;
  }
  .faq-area-inner {
    width: calc(100% - 20px);
    border-radius: 10px;
    box-shadow: 0 0 0 10px #ffffff;
    margin-left: 10px;
    padding: 32px 8px 0;
  }
  .faq-item {
    padding: 0 8px 0 0;
    margin: 0 auto 40px 47px;
  }
  .question {
    margin-bottom: 16px;
    font-size: 18px;
    line-height: 27px;
  }
  .answer {
    font-size: 15px;
    line-height: 23px;
  }
  .question::before,
  .answer::before {
    top: 0;
    font-size: 24px;
  }
}
/*
  コンバージョンセクション
  */
.conversion-area {
  background-color: #f2cb51;
  padding: 20px 0;
}
.conversion-line {
  border-top: 2px dashed rgba(95, 67, 46, 0.45);
  border-bottom: 2px dashed rgba(95, 67, 46, 0.45);
}
.conversion-area-inner {
  position: relative;
  padding: 64px 66px 64px 83px;
}
.heading-container {
  position: relative;
  padding: 30px 20px;
  margin-bottom: 36px;
}
.heading-wrapper {
  position: relative;
  width: fit-content;
  margin: 0 auto;
}
.decorative-lines-wrapper {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
.decorative-lines-wrapper.left {
  left: -10px;
}
.decorative-lines-wrapper.right {
  right: 0;
}
.decorative-lines {
  width: 30px;
  height: 65px;
}
.decorative-lines-wrapper.right .decorative-lines {
  transform: rotate(180deg);
}
.heading-text {
  text-align: center;
  font-size: 32px;
  margin: 0 40px;
}
.circle-wrapper {
  position: relative;
  display: inline-block;
  margin: 0 17px;
}
.circle-bg {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 80px;
  height: 40px;
  border-radius: 20px;
}
.circle-bg::before {
  content: "";
  position: absolute;
  top: -12px;
  left: -14px;
  width: 67px;
  height: 67px;
  background: white;
  border-radius: 50%;
}
.circle-bg::after {
  content: "";
  position: absolute;
  top: -12px;
  right: -14px;
  width: 67px;
  height: 67px;
  background: white;
  border-radius: 50%;
}
.circle-text {
  position: relative;
  z-index: 1;
  display: inline-flex;
  gap: 4px;
}

@media (max-width: 767px) {
  .heading-container {
    padding: 0;
    margin-bottom: 32px;
  }
  .heading-wrapper {
    width: 100%;
  }
  .heading-text {
    font-size: 24px;
    margin: 0 32px;
  }
  .heading-text br {
    display: inline;
  }
  .sp-break {
    margin-top: 12px;
    display: block;
  }
  .decorative-lines-wrapper {
    gap: 3px;
  }
  .decorative-lines {
    width: 26px;
    height: 63px;
  }
  .decorative-lines-wrapper.left {
    left: 10px;
  }
  .decorative-lines-wrapper.right {
    right: 10px;
  }
  .circle-bg::before {
    top: -4px;
    left: -1px;
    width: 49px;
    height: 49px;
  }
  .circle-bg::after {
    top: -4px;
    right: -1px;
    width: 49px;
    height: 49px;
  }
}
.conversion-main-text {
  font-size: 24px;
  line-height: 36px;
  margin-bottom: 18px;
  text-align: center;
}
.conversion-sub-text {
  font-size: 16px;
  font-family: "Noto Sans JP", serif;
  font-weight: 400;
  line-height: 30px;
  margin-bottom: 60px;
  text-align: center;
  letter-spacing: 0.07em;
}
.conversion-btn-wrapper {
  position: relative;
  display: block;
  z-index: 1;
  max-width: 360px;
  height: 73px;
  background-color: #eb6130;
  box-shadow: 0px 6px 0px 0px #d55020;
  margin: 0 auto;
  padding: 26px 0 13px;
  border-radius: 5px;
  transition: 0.3s;
}
.conversion-btn-wrapper:hover {
  transform: translateY(5px);
  box-shadow: none;
}
.speech-bubble-wrapper {
  position: absolute;
  width: fit-content;
  height: 100%;
  transform: translate(-50%, -50%);
  left: 50%;
  top: 15px;
}
.speech-bubble {
  position: relative;
  display: inline-block;
  width: 304px;
  margin-bottom: 10px;
  padding: 4px 10px;
  border: 2px solid #d55020;
  border-radius: 9999px;
  background-color: #ffffff;
  text-align: center;
  font-family: "Noto Sans JP", serif;
  font-weight: 700;
  font-size: 20px;
  letter-spacing: 0.07em;
  color: #d55020;
}
.speech-bubble::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  border-style: solid;
  border-width: 10px 13px 0 13px;
  border-color: #d55020 transparent transparent;
  translate: -50% 100%;
}
.speech-bubble::after {
  content: "";
  position: absolute;
  bottom: 1px;
  left: 50%;
  border-style: solid;
  border-width: 7.5px 9.7px 0 9.7px;
  border-color: #ffffff transparent transparent;
  translate: -50% 100%;
}
.conversion-btn-text {
  position: relative;
  width: fit-content;
  margin: 0 auto;
  color: #ffffff;
  font-size: 24px;
  text-align: center;
}
.conversion-btn-text::after {
  position: absolute;
  display: block;
  content: "";
  width: 28px;
  height: 28px;
  background-image: url(../images/conversion-arrow.png);
  background-size: cover;
  right: -60px;
  top: 50%;
  transform: translateY(-50%);
}
.two-vegetables {
  position: absolute;
  left: 118px;
  bottom: 83px;
  z-index: 0;
  animation: diagonal 2.8s -0.3s infinite;
}
.three-vegetables {
  position: absolute;
  bottom: 69px;
  right: 89px;
  animation: diagonal2 2.5s infinite;
}
@media (max-width: 1000px) {
  .conversion-area-inner {
    padding: 55px 26px 230px;
  }
  .conversion-main-text {
    font-size: 18px;
    line-height: 27px;
    margin-bottom: 16px;
  }
  .conversion-sub-text {
    font-size: 15px;
    line-height: 23px;
    margin-bottom: 55px;
  }

  .conversion-btn-wrapper {
    height: 67px;
    padding: 26px 0 13px;
    border-radius: 5px;
  }
  .speech-bubble {
    width: 277px;
    margin-bottom: 10px;
    padding: 3px 10px 5px;
    font-size: 18px;
    line-height: 24px;
  }
  .conversion-btn-text {
    font-size: 21px;
  }
  .conversion-btn-text::after {
    width: 26px;
    height: 26px;
    right: -60px;
    top: 50%;
    transform: translateY(-50%);
  }
  .two-vegetables {
    width: 111px;
    height: 104px;
    left: 43px;
    bottom: 59px;
  }
  .three-vegetables {
    width: 126px;
    height: 130px;
    bottom: 38px;
    right: 42px;
  }
}

/*
  トップ：コラム一覧セクション
  */
.top-column-area {
  position: relative;
  padding: 110px 66px 96px 83px;
  overflow-x: clip;
}
.heading-tableware {
  width: 436px;
  height: 116px;
  background-image: url(../images/heading-tableware-bg.png);
  background-size: cover;
  background-position: center;
  text-align: center;
  font-size: 32px;
  margin: 0 auto;
  padding-top: 65px;
}
.top-column-area .heading-tableware {
  margin-bottom: 48px;
}
.top-column-area .blog-list {
  margin-bottom: 48px;
}
@media (max-width: 1000px) {
  .top-column-area {
    padding: 53px 18px 30px;
  }
  .heading-tableware-wrapper {
    padding: 0 18px;
  }
  .heading-tableware {
    max-width: 328px;
    width: 100%;
    height: 87px;
    background-image: url(../images/heading-tableware-bg.png);
    background-repeat: no-repeat;
    background-size: 100% 100%;
    font-size: 24px;
    margin: 0 auto;
    padding-top: 44px;
  }
  .top-column-area .heading-tableware {
    margin-bottom: 32px;
  }
  .top-column-area .blog-list {
    margin-bottom: 32px;
  }
}
.top-column-main-text {
  font-size: 24px;
  line-height: 36px;
  margin-bottom: 48px;
  text-align: center;
}
@media (max-width: 1000px) {
  .top-column-main-text {
    font-size: 18px;
    line-height: 27px;
    margin-bottom: 32px;
  }
}

/* Store Section */
.store-area {
  padding: 65px 66px 96px 83px;
}
.store-area .heading-tableware {
  margin-bottom: 54px;
}
.store-content {
  position: relative;
  width: calc(100% - 36px);
  max-width: 1000px;
  border-radius: 10px;
  box-shadow: 0 0 0 18px #ffffff;
  border: 2px dashed rgba(242, 203, 81, 0.45);
  background-color: #ffffff;
  margin-left: 18px;
  padding: 48px;
  display: flex;
  gap: 48px;
  align-items: stretch;
}
.store-image {
  flex: 1.3;
}
.store-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 15% center;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}
.store-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.store-opening {
  display: inline-block;
  background-color: #fff;
  padding: 6px 14px;
  border-radius: 4px;
  font-size: 16px;
  font-weight: bold;
  color: #eb6130;
  border: 2px solid #eb6130;
  width: fit-content;
}
.store-name {
  font-size: 20px;
  font-weight: bold;
  line-height: 1.5;
  margin: 0;
}
.store-name-highlight {
  font-size: 24px;
}
.store-detail {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 16px 0;
  border-top: 1px solid #e8e8e8;
  border-bottom: 1px solid #e8e8e8;
}
.store-label {
  font-size: 14px;
  font-weight: bold;
  margin: 0;
  color: #666;
}
.store-address {
  margin: 0;
  font-family: "Noto Sans JP", serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 30px;
  letter-spacing: 0.07em;
}
.store-map-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 10px;
  background-color: transparent;
  border: 1px solid #5f432e;
  border-radius: 12px;
  color: #5f432e;
  font-size: 11px;
  font-weight: normal;
  text-decoration: none;
  transition: opacity 0.3s;
  width: fit-content;
  line-height: 1.4;
}
.store-map-btn:hover {
  opacity: 0.6;
}
.store-map-btn svg {
  flex-shrink: 0;
}
.store-description {
  font-family: "Noto Sans JP", serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 30px;
  letter-spacing: 0.07em;
  margin: 0;
}
.store-instagram {
  margin-top: 4px;
}
.instagram-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #5f432e;
  text-decoration: none;
  font-size: 16px;
  font-weight: bold;
  transition: opacity 0.3s;
}
.instagram-link:hover {
  opacity: 0.7;
}
.instagram-link img {
  width: 24px;
  height: 24px;
}

@media (max-width: 1000px) {
  .store-area {
    padding: 53px 18px 42px;
  }
  .store-area .heading-tableware {
    width: 100%;
    margin: 0 auto 32px;
  }
  .store-content {
    width: calc(100% - 20px);
    border-radius: 10px;
    box-shadow: 0 0 0 10px #ffffff;
    margin-left: 10px;
    padding: 32px 20px;
    flex-direction: column;
    gap: 24px;
  }
  .store-image {
    max-width: 100%;
  }
  .store-info {
    gap: 12px;
  }
  .store-opening {
    font-size: 15px;
    padding: 5px 12px;
  }
  .store-name {
    font-size: 18px;
  }
  .store-name-highlight {
    font-size: 22px;
  }
  .store-detail {
    padding: 12px 0;
  }
  .store-address {
    font-size: 15px;
    line-height: 23px;
  }
  .store-map-btn {
    font-size: 10px;
    padding: 2px 8px;
  }
  .store-description {
    font-size: 15px;
    line-height: 23px;
  }
}
