@charset "utf-8";

/* -----------------------------------------------------------------
 cmn上書き
----------------------------------------------------------------- */
.g_main {
  padding-bottom: 15vw;
}
/* -----------------------------------------------------------------
 ローカルヘッダ
----------------------------------------------------------------- */
.local_hd {
  background: url("/products/img/page_ttl_bg.jpg") center center;
  background-size: cover;
}

/* -----------------------------------------------------------------
 sec共通パーツ cmn_sec
----------------------------------------------------------------- */
.cmn_sec {
  position: relative;
}
@media screen and (max-width: 767px) {
  .cmn_sec {
    margin-top: 20vw;
  }
  .cmn_sec:first-of-type {
    margin-top: 12vw;
  }
}
@media print, screen and (min-width: 768px) {
  .cmn_sec {
    margin-top: 13vw;
  }
  .cmn_sec:first-of-type {
    margin-top: 9vw;
  }
}

/* -----------------------------------------------------------------
 sec共通パーツ cmn_sec_bg_txt
----------------------------------------------------------------- */
.cmn_sec_bg_txt {
  position: absolute;
  top: -.3em;
  white-space: nowrap;
  line-height: 1;
  letter-spacing: 0;
  font-weight: 300;
  font-family: var(--font_latin_main);
  color: rgba(0,0,0,.05);
}
@media screen and (max-width: 767px) {
  .cmn_sec_bg_txt {
    font-size: 18vw;
  }
}
@media print, screen and (min-width: 768px) {
  .cmn_sec_bg_txt {
    font-size: 10rem;
  }
}

/* -----------------------------------------------------------------
 sec共通パーツ cmn_sec_cont
----------------------------------------------------------------- */
.cmn_sec_cont {
  display: flex;
  background: #fff;
  padding-bottom: 7vw;
}
@media screen and (max-width: 767px) {
  .cmn_sec_cont {
    flex-direction: column;
  }
}
@media print, screen and (min-width: 768px) {
  .cmn_sec:nth-of-type(odd) .cmn_sec_cont {
    margin-right: 6vw;
  }
  .cmn_sec:nth-of-type(even) .cmn_sec_cont {
    flex-direction: row-reverse;
    margin-left: 6vw;
  }
}


/* -----------------------------------------------------------------
 sec共通パーツ cmn_sec_img
----------------------------------------------------------------- */
@media screen and (max-width: 767px) {
  .cmn_sec_img {
    overflow: hidden;
    position: absolute;
    width: 100%;
    height: 10rem;
    margin-top: 5rem;
  }
  .cmn_sec_img img {
    display: inline;
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    min-width: 100%;
    height: 100%;
    object-fit: cover;
    transform: translate(-50%, -50%);
  }
}
@media print, screen and (min-width: 768px) {
  .cmn_sec_img {
    position: relative;
    flex-shrink: 0;
    width: 41vw;
    margin-top: 3rem;
  }
  .cmn_sec_img img {
    display: inline;
    position: absolute;
    top: 0;
    left: 50%;
    width: 100%;
    min-width: 100%;
    height: calc(100% + 10vw);
    object-fit: cover;
    transform: translate(-50%, -0%);
  }
}


/* -----------------------------------------------------------------
 sec共通パーツ cmn_sec_txt_box
----------------------------------------------------------------- */
.cmn_sec_txt_box {
  flex-grow: 1;
  padding: 0 6vw;
}


/* -----------------------------------------------------------------
 sec共通パーツ 見出し
----------------------------------------------------------------- */
.cmn_sec_ttl_lv1 {
  font-weight: 700;
  color: var(--color_main);
}
.cmn_sec_ttl_lv2 {
  border-bottom: var(--color_sub03)1px solid;
  font-weight: 700;
  color: var(--color_sub02);
}
.cmn_sec_ttl_lv3 {
  padding-top: 1.5em;
  font-weight: 700;
}
@media screen and (max-width: 767px) {
  .cmn_sec_ttl_lv1 {
    margin-top: 1.5rem;
    font-size: 1.6rem;
  }
  .cmn_sec_ttl_lv2 {
    padding-top: 13rem;
    padding-bottom: .6em;
  }
}
@media print, screen and (min-width: 768px) {
  .cmn_sec_ttl_lv1 {
    padding-top: 4em;
    font-size: 2.2rem;
  }
  .cmn_sec_ttl_lv2 {
    padding-top: 4em;
    padding-bottom: .6em;
  }
}


/* -----------------------------------------------------------------
 sec共通パーツ cmn_sec_list
----------------------------------------------------------------- */
.cmn_sec_list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto;
  padding-top: .4rem;
}
.cmn_sec_list .item {
  letter-spacing: 0;
}
@media screen and (max-width: 767px) {
  .cmn_sec_list {
    gap: .7em 1.5em;
    font-size: .75rem;
  }
}
@media print, screen and (min-width: 768px) {
  .cmn_sec_list {
    gap: .4em 1.5em;
    font-size: min(1.5vw, .76rem);
  }
}

/* -----------------------------------------------------------------
 sec共通パーツ cmn_btn01上書き
----------------------------------------------------------------- */
.cmn_btn01 {
  justify-content: flex-end;
}
