@charset "UTF-8";
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
  margin: 0;
  padding: 0; }

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
  display: block; }

body {
  line-height: 1; }

ol, ul {
  list-style: none; }

blockquote, q {
  quotes: none; }

blockquote:before, blockquote:after, q:before, q:after {
  content: none; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

.clearfix:after {
  content: ".";
  display: block;
  height: 0;
  font-size: 0;
  clear: both;
  visibility: hidden; }

.clearfix {
  display: inline-block; }

/* Hides from IE Mac */
* html .clearfix {
  height: 1%; }

.clearfix {
  display: block; }

/* ---------- 初期 ---------- */
body {
  letter-spacing: 0;
  font-family: "Zen Kaku Gothic New", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif; }

img {
  width: 100%;
  max-width: 100%;
  height: auto;
  line-height: 0;
  pointer-events: none;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-touch-callout: none;
  -moz-user-select: none;
  user-select: none; }

a {
  text-decoration: none; }

strong {
  font-weight: bold; }

/* ---------- /共通部分 ---------- */
#jougetyuou {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  -webkit-transform: translateY(-50%) translateX(-50%);
  margin: auto; }

#kadomaru {
  border-radius: 10px;
  -webkit-border-radius: 10px;
  -moz-border-radius: 10px; }

#resbtn {
  -webkit-appearance: none; }

.ancr {
  position: relative;
  transition: 0.5s; }

.anca {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: block;
  z-index: 10;
  cursor: pointer; }

.ancr:hover {
  opacity: 0.75;
  transition: 0.5s;
  cursor: pointer; }

/* ---------- /参考タグ部分 ---------- */
/* 無限スクロール用のアニメーション定義 */
@keyframes loop-scroll {
  0% {
    transform: translateX(0); }
  100% {
    transform: translateX(-100%); } }
@media screen and (max-width: 990px) {
  .pconly {
    display: none !important; }

  html {
    font-size: calc(1vw * 100 / 390); }

  .fadein {
    opacity: 0;
    /*filter: blur(6px);
    transition: opacity 0.8s ease, filter 1.2s ease;*/
    transition: opacity 1s ease-out; }
    .fadein.show {
      opacity: 1;
      /*filter: blur(0);*/ }

  /* 背景スクロールを禁止するクラス */
  body.is-fixed {
    overflow: hidden; }

  main {
    width: 100%;
    overflow: hidden;
    position: relative;
    background: #007749; }

  #sp_head {
    width: 100%;
    padding: 16rem 0 13rem;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 10;
    background: #fff;
    text-align: center; }
    #sp_head.top {
      /* 初期状態：画面の上に隠しておく */
      transform: translateY(-100%);
      /* 滑らかに動かす設定（0.3秒かけて移動） */
      transition: transform 0.3s ease; }
      #sp_head.top.is-show {
        transform: translateY(0); }
    #sp_head a {
      display: inline-block; }
    #sp_head img {
      width: 50rem;
      margin: 0 auto;
      display: block; }

  /* メニューが開いている（.open）時は、スクロール位置に関わらずヘッダー表示を維持する */
  #navArea.open ~ #sp_head.top,
  #navArea.open #sp_head.top {
    transform: translateY(0); }

  #navArea {
    position: relative; }

  /*ハンバーガー メニュー*/
  nav.hum {
    display: block;
    position: fixed;
    top: 0;
    right: -393rem;
    /*bottom: 0;*/
    width: 393rem;
    height: 100vh;
    overflow-x: hidden;
    overflow-y: auto;
    background: #007749;
    -webkit-overflow-scrolling: touch;
    transition: all .5s;
    z-index: 21;
    opacity: 1; }
    nav.hum .hum_head {
      width: 100%;
      padding: 16rem 0 13rem; }
      nav.hum .hum_head a {
        display: block; }
      nav.hum .hum_head img {
        width: 50rem;
        margin: 0 auto;
        display: block; }
    nav.hum ul {
      border-top: solid 1rem #80bba4;
      text-align: center;
      box-sizing: border-box;
      padding: 130rem 0 50rem; }
      nav.hum ul li:nth-child(n+2) {
        margin-top: 70rem; }
      nav.hum ul li a {
        display: inline-block !important;
        width: auto; }
        nav.hum ul li a img {
          width: auto !important;
          height: 26rem; }

  .open nav.hum {
    right: 0;
    opacity: 1; }

  /*============
  .toggle_btn
  =============*/
  .toggle_btn {
    display: block;
    position: fixed;
    top: 24rem;
    right: 24rem;
    width: 22rem;
    height: 20rem;
    transition: all .5s;
    cursor: pointer;
    z-index: 23; }

  .toggle_btn span {
    display: block;
    position: absolute;
    left: 0;
    width: 22rem;
    height: 1rem;
    height: 2px;
    background-color: #007749;
    transition: all .5s; }

  .toggle_btn span:nth-of-type(1) {
    top: 0.1rem; }

  .toggle_btn span:nth-of-type(2) {
    top: 8rem; }

  .toggle_btn span:nth-of-type(3) {
    top: 16rem; }

  .open .toggle_btn span {
    background: #fff;
    box-shadow: none; }

  .open .toggle_btn span:nth-of-type(1) {
    -webkit-transform: translateY(8rem) rotate(-315deg);
    transform: translateY(8rem) rotate(-315deg); }

  .open .toggle_btn span:nth-of-type(2) {
    opacity: 0; }

  .open .toggle_btn span:nth-of-type(3) {
    -webkit-transform: translateY(-8rem) rotate(315deg);
    transform: translateY(-8rem) rotate(315deg); }

  /*============
  #mask
  =============*/
  #mask {
    display: none;
    transition: all .5s; }

  .open #mask {
    display: block;
    transition: all .5s;
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 100vh;
    z-index: 20; }

  #mv {
    width: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1;
    height: 100svh;
    box-sizing: border-box;
    display: flex;
    justify-content: flex-end;
    flex-direction: column; }
    #mv h1 {
      margin: 0 auto;
      position: relative;
      z-index: 2;
      height: 100%;
      display: flex;
      align-items: flex-end;
      margin-bottom: 7vw; }
      #mv h1 img {
        max-width: 200vw;
        height: 51vh;
        width: auto; }
    #mv .mv_img {
      width: 100%;
      position: absolute;
      top: 0;
      left: 0; }
      #mv .mv_img img {
        max-width: 2000vw;
        height: 83vh;
        min-height: 140vw;
        max-height: 40vw;
        width: auto;
        position: absolute;
        left: 53%;
        transform: translateX(-50%);
        /*top: max(-36vw, -24svh);*/
        top: max(-36vw, -24svh);
        margin: 0 auto; }
    #mv .scroll {
      width: 21rem;
      position: absolute;
      bottom: 7vh;
      left: 22rem; }
      #mv .scroll::before {
        position: absolute;
        content: "";
        width: 8rem;
        height: 73rem;
        bottom: -91rem;
        left: 50%;
        transform: translateX(-50%);
        background: url("../img/mv_scroll_line.png") no-repeat;
        background-size: contain; }

  .main_cont {
    padding-top: 100vh;
    overflow: hidden;
    position: relative;
    margin-top: 1vh; }

  #commit {
    width: 100%;
    position: relative;
    z-index: 3;
    padding-top: 40rem;
    margin-top: -40rem; }
    #commit .bg {
      padding: 84rem 0 149rem;
      background: url("../img/commit_bg.png") no-repeat center;
      background-size: 540rem 100%; }
    #commit .logo {
      width: 175rem;
      margin: 0 auto; }
    #commit h2 {
      width: 213rem;
      margin: 39rem auto 30rem; }
    #commit .commit_txt {
      font-size: 18rem;
      letter-spacing: 0.06em;
      line-height: 1.89em;
      font-weight: 500;
      color: #007749;
      text-align: center;
      margin-bottom: 70rem; }
      #commit .commit_txt span {
        display: inline-block;
        margin-top: 1em;
        font-size: 14rem; }
    #commit .commit_images {
      display: flex;
      overflow: hidden;
      width: 100%;
      /* 必要に応じて横幅を調整してください */
      /* スクロールさせるブロック：画像を横並びにしてアニメーションを適用します */ }
      #commit .commit_images .comit_img {
        display: flex;
        flex-shrink: 0;
        min-width: 100%;
        /* コンテナと同じ幅を確保します */
        animation: loop-scroll 30s linear infinite; }
        #commit .commit_images .comit_img img {
          width: 300rem;
          margin-right: 15rem; }

  #charm {
    padding-top: 40rem;
    margin-top: -40rem;
    position: relative;
    z-index: 2; }
    #charm .bg {
      margin-top: -40rem;
      background: #007749; }
    #charm .inner {
      width: 340rem;
      margin: 0 auto;
      padding: 123rem 0 44rem;
      padding: 123rem 0 54rem; }
      #charm .inner h2 {
        width: 100%;
        margin-bottom: 40rem; }
      #charm .inner .charm_boxes .charm_box {
        width: 100%;
        position: relative; }
        #charm .inner .charm_boxes .charm_box:nth-child(n+2) {
          margin-top: 20rem; }
        #charm .inner .charm_boxes .charm_box h3 {
          font-size: 29rem;
          letter-spacing: 0.04em;
          line-height: 1.24em;
          font-weight: 500;
          color: #fbe7bc;
          box-sizing: border-box;
          padding-left: 19rem;
          position: relative;
          margin-bottom: 15rem; }
          #charm .inner .charm_boxes .charm_box h3::before {
            position: absolute;
            content: "";
            width: 5rem;
            height: 63rem;
            top: 50%;
            left: 0;
            transform: translateY(-50%);
            background: #fbe7bc; }
        #charm .inner .charm_boxes .charm_box .charm_box_txt {
          margin-top: 15rem;
          letter-spacing: 0.08em;
          font-size: 19rem;
          line-height: 1.526em;
          font-weight: 500;
          color: #fff;
          padding-bottom: 30rem;
          position: relative;
          z-index: 2; }
        #charm .inner .charm_boxes .charm_box .charm_box_num {
          position: absolute;
          bottom: 0;
          left: 5rem; }
          #charm .inner .charm_boxes .charm_box .charm_box_num img {
            width: auto;
            height: 102rem; }
        #charm .inner .charm_boxes .charm_box:first-child .charm_box_txt {
          letter-spacing: 0.1em; }

  #lineup {
    padding-top: 64rem;
    margin-top: -64rem;
    position: relative;
    z-index: 2; }
    #lineup .bg {
      padding: 56rem 0 210rem;
      padding: 69rem 0 210rem;
      background: url("../img/lineup_btm_img.png?ver=1.1") no-repeat center bottom #fbe7bc;
      background-size: 100% auto; }
    #lineup h2 {
      width: 332rem;
      margin: 0 auto 15rem; }
    #lineup .cat {
      width: 99rem;
      margin: 0 auto 20rem;
      font-size: 13rem;
      letter-spacing: 0.1em;
      line-height: 1;
      font-weight: 500;
      color: #007749;
      text-align: center;
      padding: 6rem 0;
      border: solid 1rem #007749; }
    #lineup .lineup_txt {
      width: 340rem;
      margin: 0 auto;
      font-size: 19rem;
      letter-spacing: 0.06em;
      line-height: 1.5789em;
      font-weight: 500;
      color: #007749; }
      #lineup .lineup_txt .white_bg {
        display: block;
        width: 100%;
        font-size: 16rem;
        line-height: 1;
        font-weight: bold;
        color: #ec6622;
        text-align: center;
        padding: 11rem 0;
        background: #fff;
        margin: 20rem 0 5rem; }
      #lineup .lineup_txt .small {
        display: inline-block;
        font-size: 14rem; }
    #lineup #lineup_ancr {
      padding-top: 64rem;
      margin-top: -64rem; }
    #lineup h3 {
      width: 277rem;
      margin: 0 auto 28rem;
      padding-top: 45rem; }
    #lineup .lineup_boxes {
      width: 100%; }
      #lineup .lineup_boxes .slick-list {
        box-sizing: border-box;
        padding-right: 36rem;
        padding-left: 36rem;
        visibility: visible; }
      #lineup .lineup_boxes .lineup_box {
        width: 100%;
        margin: 0 8rem;
        background: #fff;
        border-radius: 10rem;
        padding-bottom: 37rem;
        overflow: hidden; }
        #lineup .lineup_boxes .lineup_box .lineup_box_head {
          padding: 76rem 0 63rem;
          background: #ff8034; }
          #lineup .lineup_boxes .lineup_box .lineup_box_head.yellow {
            background: #f3b838; }
          #lineup .lineup_boxes .lineup_box .lineup_box_head .lineup_box_img {
            width: 240rem;
            margin: 0 auto; }
        #lineup .lineup_boxes .lineup_box .lineup_box_ttl {
          width: 216rem;
          margin: 34rem 0 20rem 31rem; }
        #lineup .lineup_boxes .lineup_box .lineup_box_btn {
          width: 235rem;
          margin: 0 auto; }
          #lineup .lineup_boxes .lineup_box .lineup_box_btn a {
            display: block;
            width: 100%;
            font-size: 18rem;
            letter-spacing: 0.06em;
            line-height: 1;
            font-weight: 500;
            color: #fff;
            box-sizing: border-box;
            padding: 18rem 0 19rem 72rem;
            border-radius: 4rem;
            background: url("../img/lineup_box_arrow.png") no-repeat right 11rem center #ec6622;
            background-size: 8rem; }
      #lineup .lineup_boxes .slide-dot {
        text-align: center;
        margin-top: 61rem; }
        #lineup .lineup_boxes .slide-dot li {
          display: inline-block;
          width: 19rem;
          height: 19rem;
          border-radius: 100%;
          background: #cccccc;
          margin: 0 9rem; }
          #lineup .lineup_boxes .slide-dot li.slick-active {
            background: #007749; }
          #lineup .lineup_boxes .slide-dot li button {
            display: block;
            width: 100%;
            height: 100%;
            padding: 0;
            border: none;
            font-size: 0;
            border-radius: 100%;
            background: none; }
      #lineup .lineup_boxes .prev-arrow {
        width: 49rem;
        position: absolute;
        left: 88rem;
        bottom: -17rem; }
      #lineup .lineup_boxes .next-arrow {
        width: 49rem;
        position: absolute;
        right: 88rem;
        bottom: -17rem; }

  #under {
    background: #fbe7bc; }

  .product_cont {
    padding: 110rem 0 40rem; }
    .product_cont .inner {
      width: 340rem;
      margin: 0 auto; }
      .product_cont .inner h2 {
        width: 332rem; }
      .product_cont .inner .cat {
        width: 99rem;
        font-size: 13rem;
        letter-spacing: 0.1em;
        line-height: 1;
        font-weight: bold;
        color: #007749;
        text-align: center;
        padding: 6rem 0;
        border: solid 1rem #007749;
        margin: 22rem 0 29rem; }
      .product_cont .inner .product_slider {
        width: 100%;
        margin-bottom: 40rem; }
        .product_cont .inner .product_slider .slide-dot {
          text-align: center;
          margin-top: 17rem; }
          .product_cont .inner .product_slider .slide-dot li {
            display: inline-block;
            width: 10rem;
            height: 10rem;
            border-radius: 100%;
            margin: 0 6rem;
            background: #96c3b1; }
            .product_cont .inner .product_slider .slide-dot li.slick-active {
              background: #007749; }
            .product_cont .inner .product_slider .slide-dot li button {
              display: block;
              width: 100%;
              height: 100%;
              font-size: 0;
              border: none;
              background: none;
              border-radius: 100%;
              padding: 0; }
        .product_cont .inner .product_slider .prev-arrow {
          width: 10rem;
          position: absolute;
          left: 102rem;
          bottom: -3rem; }
        .product_cont .inner .product_slider .next-arrow {
          width: 10rem;
          position: absolute;
          right: 102rem;
          bottom: -3rem; }
      .product_cont .inner .product_txt {
        font-size: 18rem;
        letter-spacing: 0.06em;
        line-height: 1.44em;
        color: #007749;
        padding-bottom: 30rem;
        border-bottom: solid 1rem #007749;
        margin-bottom: 30rem; }
        .product_cont .inner .product_txt span {
          font-size: 16rem; }
        .product_cont .inner .product_txt sup {
          font-size: 0.6em;
          vertical-align: super; }
      .product_cont .inner .product_info {
        display: flex;
        justify-content: space-between;
        font-size: 16rem;
        line-height: 1.5em;
        color: #007749;
        margin-bottom: 25rem; }
        .product_cont .inner .product_info .product_info_left {
          width: 98rem;
          font-weight: 500;
          text-align: justify;
          text-align-last: justify;
          word-break: break-all;
          text-justify: inter-character; }
    .product_cont .inner .product_info .product_info_right a {
        color: #007749;
        text-decoration: none;
    }
        .product_cont .inner .product_info .product_info_right {
          width: 210rem; }
      .product_cont .inner .product_boxes .product_box {
        padding-top: 15rem;
        position: relative;
        color: #007749; }
        .product_cont .inner .product_boxes .product_box:nth-child(n+2) {
          margin-top: 35rem; }
        .product_cont .inner .product_boxes .product_box::before {
          position: absolute;
          content: "";
          width: 100%;
          height: 1rem;
          top: 0;
          left: 0;
          background: #007749; }
        .product_cont .inner .product_boxes .product_box::after {
          position: absolute;
          content: "";
          width: 108rem;
          height: 5rem;
          top: 1rem;
          left: 0;
          background: #007749; }
        .product_cont .inner .product_boxes .product_box h3 {
          font-size: 25rem;
          line-height: 1.36em;
          font-weight: bold;
          margin-bottom: 15rem; }
          .product_cont .inner .product_boxes .product_box h3 span {
            font-size: 18rem; }
        .product_cont .inner .product_boxes .product_box .product_box_img {
          margin-bottom: 10rem; }
        .product_cont .inner .product_boxes .product_box .product_box_txt {
          font-size: 18rem;
          letter-spacing: 0.06em;
          line-height: 1.444em;
          text-align: justify;
          word-break: break-all;
          font-variant-east-asian: monospace; }
          .product_cont .inner .product_boxes .product_box .product_box_txt.big {
            font-size: 22rem;
            letter-spacing: 0.06em;
            line-height: 1.45em;
            font-weight: 500;
            margin-bottom: 10rem; }
          .product_cont .inner .product_boxes .product_box .product_box_txt.small {
            font-size: 16rem;
            letter-spacing: 0.06em;
            line-height: 1.56em; }
      .product_cont .inner .product_btn {
        width: 100%;
        margin-top: 35rem;
        font-size: 20rem;
        letter-spacing: 0.06em;
        line-height: 1;
        font-weight: bold; }
        .product_cont .inner .product_btn a {
          display: block;
          width: 100%;
          color: #fff;
          box-sizing: border-box;
          padding: 27rem 0 27rem 60rem;
          border-radius: 5rem;
          background: url("../img/product_btn_arrow.png") no-repeat left 16rem center #ec6622;
          background-size: 8rem; } }
@media screen and (min-width: 991px) {
  html {
    overscroll-behavior-y: none; }

  body {
    height: 100%;
    position: relative; }

  .fadein {
    opacity: 0;
    /*filter: blur(6px);
    transition: opacity 0.8s ease, filter 1.2s ease;*/
    transition: opacity 1s ease-out; }
    .fadein.show {
      opacity: 1;
      /*filter: blur(0);*/ }

  #pcarea {
    background: #007749;
    position: relative;
    display: flex;
    justify-content: space-between; }

  .pc_bg {
    position: fixed;
    top: 0;
    left: 0;
    width: 54.166%;
    max-width: 1040px;
    height: 100%;
    z-index: 1;
    overflow: hidden; }
    .pc_bg .slide {
      position: absolute;
      width: 100%;
      height: 100%;
      background-size: cover;
      background-position: center center;
      opacity: 0;
      transform: scale(1);
      transition: opacity 3.5s ease-out, transform 9s ease-out;
      transition: opacity 2.5s ease-out, transform 9s ease-out;
      z-index: 0; }
      .pc_bg .slide.active {
        opacity: 1;
        /*transform: scale(1.1);*/
        z-index: 2; }
      .pc_bg .slide.fade-out {
        opacity: 0;
        /*transform: scale(1.1);*/
        z-index: 1;
        transition: opacity 0.5s ease-out, transform 9s ease-out; }

  .pcarea_left {
    width: 54.166%;
    max-width: 1040px;
    height: 100vh;
    position: sticky;
    top: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    z-index: 2; }
    .pcarea_left .inner {
      width: 35%;
      max-width: 254px;
      margin: 0 auto; }
      .pcarea_left .inner .pc_left_logo {
        width: 100%; }

  .pcarea_center {
    width: 480px;
    height: 100%; }

  .pcarea_right {
    width: 20.833%;
    max-width: 400px;
    height: 100vh;
    position: sticky;
    z-index: 3;
    top: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    background: url("../img/pc_right_img.png?ver=1.1") no-repeat center bottom;
    background-size: contain; }
    .pcarea_right .inner {
      width: 65%;
      /*max-width: 260px;*/
      margin: 0 auto;
      /*padding-top: 249px;*/ }
      .pcarea_right .inner ul {
        position: relative;
        top: -50px;
        border-top: solid 1px #fbe7bc; }
        .pcarea_right .inner ul li {
          border-bottom: solid 1px #fbe7bc; }
          .pcarea_right .inner ul li a {
            display: flex;
            justify-content: center;
            align-items: center;
            flex-direction: column;
            text-align: center;
            padding: clamp(10px, 1.5vw, 38px) 0 clamp(10px, 1.2vw, 30px);
            background: url("../img/pc_navi_arrow.png") no-repeat right center;
            background-size: 8px;
            transition: 0.3s; }
            .pcarea_right .inner ul li a:hover {
              filter: brightness(1.2); }
          .pcarea_right .inner ul li:nth-child(1) img {
            width: 24.615%; }
          .pcarea_right .inner ul li:nth-child(2) img {
            width: 42.108%; }
          .pcarea_right .inner ul li:nth-child(3) img {
            width: 45.0223%; }
          .pcarea_right .inner ul li:nth-child(4) img {
            width: 50.445%; } }
@media screen and (min-width: 991px) and (min-width: 1921px) {
  .pc_bg {
    width: 54.166%;
    max-width: inherit; }

  .pcarea_left {
    width: 54.166%;
    max-width: inherit; }

  .pcarea_center {
    position: relative;
    width: 480px !important; }

  .pcarea_right {
    width: calc( 100% - 54.166% - 480px );
    max-width: inherit;
    background: none; }
    .pcarea_right::before {
      position: absolute;
      content: "";
      width: 100%;
      height: 306px;
      left: 50%;
      bottom: 0;
      transform: translateX(-50%);
      background: url("../img/pc_right_img_02.png") no-repeat center bottom;
      background-size: auto 100%; } }
@media screen and (min-width: 991px) {
  body {
    position: relative; }

  main {
    width: 480px;
    overflow-x: hidden;
    background: #007749;
    position: relative;
    z-index: 5; }

  #sp_head {
    display: none; }

  #mv {
    width: 480px;
    max-height: 100vh;
    box-sizing: border-box;
    position: fixed;
    top: 0;
    z-index: 1;
    padding: 300px 0 50px;
    padding: 400px 0 70px;
    overflow: hidden;
    display: flex;
    justify-content: flex-end;
    flex-direction: column; }
    #mv h1 {
      width: 284px;
      margin: 0 auto;
      position: relative;
      z-index: 2; }
    #mv .mv_img {
      width: 1138px;
      position: absolute;
      top: -167px;
      left: -309px; }
    #mv .scroll {
      width: 26px;
      position: absolute;
      /*top: 692px;
      top: 585px;*/
      bottom: 160px;
      bottom: 177px;
      left: 30px; }
      #mv .scroll::before {
        position: absolute;
        content: "";
        width: 10px;
        height: 90px;
        bottom: -112px;
        left: 50%;
        transform: translateX(-50%);
        background: url("../img/mv_scroll_line.png") no-repeat;
        background-size: contain; }

  .main_cont {
    overflow: hidden;
    position: relative;
    margin-top: min(967px, 100vh); }

  #commit {
    width: 100%;
    position: relative;
    z-index: 3; }
    #commit::before {
      position: absolute;
      content: "";
      width: 100%;
      height: 50px;
      left: 0;
      bottom: 0;
      background: #007749; }
    #commit .bg {
      padding: 103px 0 183px;
      background: url("../img/commit_bg.png") no-repeat center;
      background-size: 664px 100%;
      position: relative;
      z-index: 2; }
    #commit .logo {
      width: 215px;
      margin: 0 auto; }
    #commit h2 {
      width: 262px;
      margin: 48px auto 37px; }
    #commit .commit_txt {
      font-size: 22px;
      letter-spacing: 0.06em;
      line-height: 1.89em;
      font-weight: 500;
      color: #007749;
      text-align: center;
      margin-bottom: 86px; }
      #commit .commit_txt span {
        display: inline-block;
        margin-top: 1em;
        font-size: 16px; }
    #commit .commit_images {
      display: flex;
      overflow: hidden;
      width: 100%;
      /* 必要に応じて横幅を調整してください */
      /* スクロールさせるブロック：画像を横並びにしてアニメーションを適用します */ }
      #commit .commit_images .comit_img {
        display: flex;
        flex-shrink: 0;
        min-width: 100%;
        /* コンテナと同じ幅を確保します */
        animation: loop-scroll 30s linear infinite; }
        #commit .commit_images .comit_img img {
          width: 369px;
          margin-right: 18px; }

  #charm {
    position: relative;
    z-index: 2; }
    #charm .bg {
      background: #007749; }
    #charm .inner {
      width: 418px;
      margin: 0 auto;
      padding: 102px 0 54px; }
      #charm .inner h2 {
        width: 100%;
        margin-bottom: 49px; }
      #charm .inner .charm_boxes .charm_box {
        width: 100%;
        position: relative; }
        #charm .inner .charm_boxes .charm_box:nth-child(n+2) {
          margin-top: 25px; }
        #charm .inner .charm_boxes .charm_box h3 {
          font-size: 36px;
          letter-spacing: 0.04em;
          line-height: 1.24em;
          font-weight: bold;
          color: #fbe7bc;
          box-sizing: border-box;
          padding-left: 23px;
          position: relative;
          margin-bottom: 18px; }
          #charm .inner .charm_boxes .charm_box h3::before {
            position: absolute;
            content: "";
            width: 6px;
            height: 77px;
            top: 50%;
            left: 0;
            transform: translateY(-50%);
            background: #fbe7bc; }
        #charm .inner .charm_boxes .charm_box .charm_box_txt {
          margin-top: 18px;
          letter-spacing: 0.08em;
          font-size: 23px;
          line-height: 1.526em;
          font-weight: 500;
          color: #fff;
          padding-bottom: 37px;
          position: relative;
          z-index: 2; }
        #charm .inner .charm_boxes .charm_box .charm_box_num {
          position: absolute;
          bottom: 0;
          left: 6px; }
          #charm .inner .charm_boxes .charm_box .charm_box_num img {
            width: auto;
            height: 125px; }
        #charm .inner .charm_boxes .charm_box:first-child .charm_box_txt {
          letter-spacing: 0.1em; }

  #lineup {
    position: relative;
    z-index: 2; }
    #lineup .bg {
      padding: 69px 0 258px;
      background: url("../img/lineup_btm_img.png") no-repeat center bottom #fbe7bc;
      background-size: 100% auto; }
    #lineup h2 {
      width: 408px;
      margin: 0 auto 18px; }
    #lineup .cat {
      width: 122px;
      margin: 0 auto 25px;
      font-size: 16px;
      letter-spacing: 0.1em;
      line-height: 1;
      font-weight: 500;
      color: #007749;
      text-align: center;
      padding: 7px 0;
      border: solid 1px #007749; }
    #lineup .lineup_txt {
      width: 418px;
      margin: 0 auto;
      font-size: 23px;
      letter-spacing: 0.06em;
      line-height: 1.5789em;
      font-weight: 500;
      color: #007749; }
      #lineup .lineup_txt .white_bg {
        display: block;
        width: 100%;
        font-size: 20px;
        line-height: 1;
        font-weight: bold;
        color: #ec6622;
        text-align: center;
        padding: 14px 0;
        background: #fff;
        margin: 25px 0 6px; }
      #lineup .lineup_txt .small {
        display: inline-block;
        font-size: 17px; }
    #lineup h3 {
      width: 341px;
      margin: 0 auto 34px;
      padding-top: 55px; }
    #lineup .lineup_boxes {
      width: 100%; }
      #lineup .lineup_boxes .slick-list {
        box-sizing: border-box;
        padding-right: 58px;
        padding-right: 44px;
        padding-left: 31px;
        padding-left: 44px;
        visibility: visible; }
      #lineup .lineup_boxes .lineup_box {
        width: 100%;
        margin: 0 10px;
        background: #fff;
        border-radius: 12px;
        padding-bottom: 46px;
        overflow: hidden; }
        #lineup .lineup_boxes .lineup_box .lineup_box_head {
          padding: 93px 0 77px;
          background: #ff8034; }
          #lineup .lineup_boxes .lineup_box .lineup_box_head.yellow {
            background: #f3b838; }
          #lineup .lineup_boxes .lineup_box .lineup_box_head .lineup_box_img {
            width: 295px;
            margin: 0 auto; }
        #lineup .lineup_boxes .lineup_box .lineup_box_ttl {
          width: 266px;
          margin: 42px 0 25px 38px; }
        #lineup .lineup_boxes .lineup_box .lineup_box_btn {
          width: 289px;
          margin: 0 auto; }
          #lineup .lineup_boxes .lineup_box .lineup_box_btn a {
            display: block;
            width: 100%;
            font-size: 22px;
            letter-spacing: 0.06em;
            line-height: 1;
            font-weight: 500;
            color: #fff;
            box-sizing: border-box;
            padding: 22px 0 23px 89px;
            border-radius: 5px;
            background: url("../img/lineup_box_arrow.png") no-repeat right 14px center #ec6622;
            background-size: 10px;
            transition: 0.3s; }
            #lineup .lineup_boxes .lineup_box .lineup_box_btn a:hover {
              filter: brightness(1.1); }
      #lineup .lineup_boxes .slide-dot {
        text-align: center;
        margin-top: 75px; }
        #lineup .lineup_boxes .slide-dot li {
          display: inline-block;
          width: 23px;
          height: 23px;
          border-radius: 100%;
          background: #cccccc;
          margin: 0 11px; }
          #lineup .lineup_boxes .slide-dot li.slick-active {
            background: #007749; }
          #lineup .lineup_boxes .slide-dot li button {
            display: block;
            width: 100%;
            height: 100%;
            padding: 0;
            border: none;
            font-size: 0;
            border-radius: 100%;
            background: none;
            cursor: pointer; }
      #lineup .lineup_boxes .prev-arrow {
        width: 60px;
        position: absolute;
        left: 108px;
        bottom: -21px;
        cursor: pointer;
        transition: 0.3s; }
        #lineup .lineup_boxes .prev-arrow:hover {
          filter: brightness(1.3); }
      #lineup .lineup_boxes .next-arrow {
        width: 60px;
        position: absolute;
        right: 108px;
        bottom: -21px;
        cursor: pointer;
        transition: 0.3s; }
        #lineup .lineup_boxes .next-arrow:hover {
          filter: brightness(1.3); }

  #under {
    background: #fbe7bc; }

  .product_cont {
    padding: 135px 0 49px;
    padding: 57px 0 49px; }
    .product_cont .inner {
      width: 418px;
      margin: 0 auto; }
      .product_cont .inner h2 {
        width: 408px; }
      .product_cont .inner .cat {
        width: 122px;
        font-size: 16px;
        letter-spacing: 0.1em;
        line-height: 1;
        font-weight: bold;
        color: #007749;
        text-align: center;
        padding: 7px 0;
        border: solid 1px #007749;
        margin: 27px 0 36px; }
      .product_cont .inner .product_slider {
        width: 100%;
        margin-bottom: 49px; }
        .product_cont .inner .product_slider .slide-dot {
          text-align: center;
          margin-top: 21px; }
          .product_cont .inner .product_slider .slide-dot li {
            display: inline-block;
            width: 12px;
            height: 12px;
            border-radius: 100%;
            margin: 0 7px;
            background: #96c3b1; }
            .product_cont .inner .product_slider .slide-dot li.slick-active {
              background: #007749; }
            .product_cont .inner .product_slider .slide-dot li button {
              display: block;
              width: 100%;
              height: 100%;
              font-size: 0;
              border: none;
              background: none;
              border-radius: 100%;
              padding: 0;
              cursor: pointer; }
        .product_cont .inner .product_slider .prev-arrow {
          width: 12px;
          position: absolute;
          left: 125px;
          bottom: -4px;
          cursor: pointer; }
        .product_cont .inner .product_slider .next-arrow {
          width: 12px;
          position: absolute;
          right: 125px;
          bottom: -4px;
          cursor: pointer; }
      .product_cont .inner .product_txt {
        font-size: 22px;
        letter-spacing: 0.06em;
        line-height: 1.44em;
        color: #007749;
        padding-bottom: 37px;
        border-bottom: solid 1px #007749;
        margin-bottom: 37px; }
        .product_cont .inner .product_txt span {
          font-size: 20px; }
        .product_cont .inner .product_txt sup {
          font-size: 0.6em;
          vertical-align: super; }
      .product_cont .inner .product_info {
        display: flex;
        justify-content: space-between;
        font-size: 16px;
        line-height: 1.5em;
        color: #007749;
        margin-bottom: 31px; }
        .product_cont .inner .product_info .product_info_left {
          width: 121px;
          font-weight: 500;
          text-align: justify;
          text-align-last: justify;
          word-break: break-all;
          text-justify: inter-character; }
    .product_cont .inner .product_info .product_info_right a {
        color: #007749;
        text-decoration: none;
    }
        .product_cont .inner .product_info .product_info_right {
          width: 258px; }
      .product_cont .inner .product_boxes .product_box {
        padding-top: 18px;
        position: relative;
        color: #007749; }
        .product_cont .inner .product_boxes .product_box:nth-child(n+2) {
          margin-top: 43px; }
        .product_cont .inner .product_boxes .product_box::before {
          position: absolute;
          content: "";
          width: 100%;
          height: 1px;
          top: 0;
          left: 0;
          background: #007749; }
        .product_cont .inner .product_boxes .product_box::after {
          position: absolute;
          content: "";
          width: 133px;
          height: 6px;
          top: 1px;
          left: 0;
          background: #007749; }
        .product_cont .inner .product_boxes .product_box h3 {
          font-size: 31px;
          line-height: 1.36em;
          font-weight: bold;
          margin-bottom: 18px; }
          .product_cont .inner .product_boxes .product_box h3 span {
            font-size: 22px; }
        .product_cont .inner .product_boxes .product_box .product_box_img {
          margin-bottom: 12px; }
        .product_cont .inner .product_boxes .product_box .product_box_txt {
          font-size: 22px;
          letter-spacing: 0.06em;
          line-height: 1.444em;
          text-align: justify;
          word-break: break-all;
          font-variant-east-asian: monospace; }
          .product_cont .inner .product_boxes .product_box .product_box_txt.big {
            font-size: 27px;
            letter-spacing: 0.06em;
            line-height: 1.45em;
            font-weight: 500;
            margin-bottom: 12px; }
          .product_cont .inner .product_boxes .product_box .product_box_txt.small {
            font-size: 20px;
            letter-spacing: 0.06em;
            line-height: 1.56em; }
      .product_cont .inner .product_btn {
        width: 100%;
        margin-top: 43px;
        font-size: 25px;
        letter-spacing: 0.06em;
        line-height: 1;
        font-weight: bold; }
        .product_cont .inner .product_btn a {
          display: block;
          width: 100%;
          color: #fff;
          box-sizing: border-box;
          padding: 33px 0 33px 74px;
          border-radius: 6px;
          background: url("../img/product_btn_arrow.png") no-repeat left 20px center #ec6622;
          background-size: 10px;
          transition: 0.3s; }
          .product_cont .inner .product_btn a:hover {
            filter: brightness(1.1); } }
