@charset "UTF-8";
/***
    The new CSS reset - version 1.7.3 (last updated 7.8.2022)
    GitHub page: https://github.com/elad2412/the-new-css-reset
***/
/*
    Remove all the styles of the "User-Agent-Stylesheet", except for the 'display' property
    - The "symbol *" part is to solve Firefox SVG sprite bug
 */
*:where(:not(html, iframe, canvas, img, svg, video, audio):not(svg *, symbol *)) {
  all: unset;
  display: revert;
}

/* Preferred box-sizing value */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* Reapply the pointer cursor for anchor tags */
a, button {
  cursor: revert;
}

/* Remove list styles (bullets/numbers) */
ol, ul, menu {
  list-style: none;
}

/* For images to not be able to exceed their container */
img {
  max-width: 100%;
}

/* removes spacing between cells in tables */
table {
  border-collapse: collapse;
}

/* Safari - solving issue when using user-select:none on the <body> text input doesn't working */
input, textarea {
  -webkit-user-select: auto;
}

/* revert the 'white-space' property for textarea elements on Safari */
textarea {
  white-space: revert;
}

/* minimum style to allow to style meter element */
meter {
  -webkit-appearance: revert;
  appearance: revert;
}

/* reset default text opacity of input placeholder */
::placeholder {
  color: unset;
}

/* fix the feature of 'hidden' attribute.
   display:revert; revert to element instead of attribute */
:where([hidden]) {
  display: none;
}

/* revert for bug in Chromium browsers
   - fix for the content editable attribute will work properly.
   - webkit-user-select: auto; added for Safari in case of using user-select:none on wrapper element*/
:where([contenteditable]:not([contenteditable=false])) {
  -moz-user-modify: read-write;
  -webkit-user-modify: read-write;
  overflow-wrap: break-word;
  -webkit-line-break: after-white-space;
  -webkit-user-select: auto;
}

/* apply back the draggable feature - exist only in Chromium and Safari */
:where([draggable=true]) {
  -webkit-user-drag: element;
}

/* CSS Document */
body {
  font-family: "Noto Serif JP", "游明朝", YuMincho, "Hiragino Mincho ProN W3", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  word-break: break-all;
  overflow-wrap: break-word;
  background-color: #fcfcfc;
  text-align: center;
  line-height: 1.6;
  color: #231815;
  transition: all 0.2s;
  margin: auto;
}

/* font-size */
html {
  font-size: 62.5%;
}

ul, ol, dl, li, strong, dt, dd, p, div, span, a, article, label, input, select, textarea {
  font-size: clamp(1.6rem, 2vw, 1.8rem);
  font-weight: bold;
}

.bold {
  font-weight: bold;
}

.tal {
  text-align: left;
}

.tar {
  text-align: right;
}

/* grid */
.grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-gap: 16px;
  padding-right: 16px;
  padding-left: 16px;
  align-items: start;
}

.wrap {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-gap: 16px;
  align-items: start;
}

.center {
  text-align: center;
}

.clear {
  display: none !important;
}

.show {
  display: block !important;
}

.hidden {
  visibility: hidden !important;
}

@media (min-width: 768px) {
  .mob-clear {
    display: none !important;
  }
  .mob-show {
    display: block !important;
  }
  .mob-hidden {
    visibility: hidden !important;
  }
}
@media (min-width: 1024px) {
  .pad-clear {
    display: none !important;
  }
  .pad-show {
    display: block !important;
  }
  .pad-hidden {
    visibility: hidden !important;
  }
}
@media (min-width: 1280px) {
  .web-clear {
    display: none !important;
  }
  .web-show {
    display: block !important;
  }
  .web-hidden {
    visibility: hidden !important;
  }
}
@media (min-width: 1600px) {
  .max-clear {
    display: none !important;
  }
  .max-show {
    display: block !important;
  }
  .max-hidden {
    visibility: hidden !important;
  }
}
.all-1 {
  grid-column: span 1;
}

.all-2 {
  grid-column: span 2;
}

.all-3 {
  grid-column: span 3;
}

.all-4, .three {
  grid-column: span 4;
}

.all-5 {
  grid-column: span 5;
}

.all-6, .half {
  grid-column: span 6;
}

.all-7 {
  grid-column: span 7;
}

.all-8 {
  grid-column: span 8;
}

.all-9 {
  grid-column: span 9;
}

.all-10 {
  grid-column: span 10;
}

.all-11 {
  grid-column: span 11;
}

.all-12, .all {
  grid-column: span 12;
}

@media (min-width: 768px) {
  .pad-1 {
    grid-column: span 1;
  }
  .pad-2 {
    grid-column: span 2;
  }
  .pad-3 {
    grid-column: span 3;
  }
  .pad-4 {
    grid-column: span 4;
  }
  .pad-5 {
    grid-column: span 5;
  }
  .pad-6 {
    grid-column: span 6;
  }
  .pad-7 {
    grid-column: span 7;
  }
  .pad-8 {
    grid-column: span 8;
  }
  .pad-9 {
    grid-column: span 9;
  }
  .pad-10 {
    grid-column: span 10;
  }
  .pad-11 {
    grid-column: span 11;
  }
  .pad-12 {
    grid-column: span 12;
  }
}
@media (min-width: 1024px) {
  .web-1 {
    grid-column: span 1;
  }
  .web-2 {
    grid-column: span 2;
  }
  .web-3 {
    grid-column: span 3;
  }
  .web-4 {
    grid-column: span 4;
  }
  .web-5 {
    grid-column: span 5;
  }
  .web-6 {
    grid-column: span 6;
  }
  .web-7 {
    grid-column: span 7;
  }
  .web-8 {
    grid-column: span 8;
  }
  .web-9 {
    grid-column: span 9;
  }
  .web-10 {
    grid-column: span 10;
  }
  .web-11 {
    grid-column: span 11;
  }
  .web-12 {
    grid-column: span 12;
  }
}
@media (min-width: 1280px) {
  .max-1 {
    grid-column: span 1;
  }
  .max-2 {
    grid-column: span 2;
  }
  .max-3 {
    grid-column: span 3;
  }
  .max-4 {
    grid-column: span 4;
  }
  .max-5 {
    grid-column: span 5;
  }
  .max-6 {
    grid-column: span 6;
  }
  .max-7 {
    grid-column: span 7;
  }
  .max-8 {
    grid-column: span 8;
  }
  .max-9 {
    grid-column: span 9;
  }
  .max-10 {
    grid-column: span 10;
  }
  .max-11 {
    grid-column: span 11;
  }
  .max-12 {
    grid-column: span 12;
  }
}
/* fadeUp */
.fadeUp {
  animation-name: fadeUpAnime;
  animation-duration: 0.5s;
  animation-fill-mode: forwards;
  opacity: 0;
}

@keyframes fadeUpAnime {
  from {
    opacity: 0;
    transform: translateY(100px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* スクロールをしたら出現する要素にはじめに透過0を指定　*/
.fadeUpTrigger {
  opacity: 0;
}

.maw {
  max-width: 1600px;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
}

.maw_page {
  max-width: 1440px;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
}

.vertical_txt {
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  text-align: left;
}
.vertical_txt span {
  margin-top: -10px;
}

.btn_1 a {
  display: inline-block;
}
.btn_1 a p {
  font-size: clamp(2rem, 2vw + 0.75rem, 2.4rem);
}
.btn_1 a p::after {
  transition: all 0.2s;
  content: "";
  display: inline-block;
  background-image: url(../img/btn-1.png);
  background-repeat: no-repeat;
  background-size: contain;
  width: 8px;
  height: 12px;
  margin-left: 8px;
  margin-bottom: 2.4px;
}
.btn_1 a:hover {
  opacity: 0.9;
}
.btn_1 a:hover p::after {
  transition: all 0.2s;
  transform: translateX(4px);
}

.btn_2 a {
  padding-top: 24px;
  padding-bottom: 24px;
  width: 400px;
  border: 2px solid #231815;
  border-radius: 120px;
  display: inline-block;
}
.btn_2 a p {
  transition: all 0.2s;
  font-size: clamp(2rem, 2vw + 0.75rem, 2.4rem);
}
.btn_2 a p::after {
  transition: all 0.2s;
  content: "";
  display: inline-block;
  background-image: url(../img/btn-2.png);
  background-repeat: no-repeat;
  background-size: contain;
  width: 10px;
  height: 15px;
  margin-left: 8px;
  margin-bottom: 2.4px;
}
.btn_2 a:hover {
  background-color: #231815;
}
.btn_2 a:hover p {
  transition: all 0.2s;
  color: #fcfcfc;
}
.btn_2 a:hover p::after {
  transition: all 0.2s;
  transform: translateX(4px);
  background-image: url(../img/btn-2-h.png);
}

@media (max-width: calc(768px - 1px)) {
  .main .vertical_txt {
    line-height: 2.2;
    font-size: 14px;
  }
  .main .vertical_txt span {
    font-size: 14px;
  }
  .btn_2 a {
    width: 320px;
  }
  .btn_2 a p::after {
    width: 8px;
    height: 12px;
    margin-bottom: 0.4px;
  }
}
header {
  height: 104px;
}
header .header_wrap {
  z-index: 9999;
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
}
header .header_wrap .header_logo {
  padding: 40px 42px 32px 32px;
  background-color: #fcfcfc;
  text-align: left;
}
header .header_wrap .header_logo .header_logo_img {
  max-width: 160px;
  width: 100%;
}
header .header_wrap .header_menu {
  text-align: right;
  line-height: 104px;
  margin-right: 40px;
}
header .header_wrap .header_menu li {
  display: inline-block;
  margin-left: 8px;
}
header .header_wrap .header_menu li a {
  padding: 16px 24px;
  font-size: clamp(1.6rem, 2vw, 1.8rem);
  position: relative;
}
header .header_wrap .header_menu li a::after {
  position: absolute;
  left: 30%;
  content: "";
  width: 40%;
  height: 2px;
  background: #231815;
  bottom: 0px;
  transform: scale(0, 1);
  transform-origin: center top;
  transition: all 0.2s;
}
header .header_wrap .header_menu li a:hover {
  opacity: 0.9;
}
header .header_wrap .header_menu li a:hover::after {
  transform: scale(1, 1);
}
header .header_wrap .header_menu li .pagenow::after {
  transform: scale(1, 1);
}
header .header_wrap .header_menu li .pagenow:hover {
  opacity: 1;
}
header .header_wrap .header_menu li:last-child {
  margin-left: 16px;
}
header .header_wrap .header_menu li:last-child a {
  background-color: #231815;
  color: #fcfcfc;
  font-size: 16px;
  transition: all 0.2s;
  border: 2px solid #231815;
  border-radius: 120px;
}
header .header_wrap .header_menu li:last-child a:hover {
  transition: all 0.2s;
  background-color: #fcfcfc;
  color: #231815;
}
header .header_wrap .header_menu li:last-child a::after {
  content: none;
}

.top_welcome {
  position: relative;
}
.top_welcome .top_welcome_img {
  padding-right: 40px;
  padding-left: 40px;
  width: 100%;
  height: 100%;
}
.top_welcome .top_ilst {
  position: absolute;
  left: 16px;
  bottom: -40px;
  max-width: 240px;
  width: 100%;
}
.top_welcome h2 {
  position: absolute;
  right: 80px;
  bottom: -280px;
}
.top_welcome h2 .top_msg {
  max-width: 240px;
  width: 100%;
}

.top_hh {
  margin-bottom: 120px;
}
.top_hh .vertical_txt {
  margin-top: 40px;
  margin-bottom: 80px;
  margin-right: auto;
  margin-left: auto;
}

.top_products h2 {
  font-size: clamp(2.4rem, 2vw + 0.75rem, 3.2rem);
  text-align: left;
}
.top_products .top_products_wrap {
  margin-top: 24px;
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
}
.top_products .top_products_wrap li {
  margin-bottom: 32px;
}
.top_products .top_products_wrap li a .top_products_img {
  transition: all 0.2s;
  max-width: 226px;
  width: 100%;
}
.top_products .top_products_wrap li a p {
  margin-top: 16px;
  font-size: clamp(2rem, 2vw + 0.75rem, 2.4rem);
}
.top_products .top_products_wrap li a:hover {
  transition: all 0.2s;
}
.top_products .top_products_wrap li a:hover .top_products_img {
  box-shadow: 0 4px 6px #999;
}
.top_products .top_products_wrap li a:hover p {
  opacity: 0.9;
}

.top_about {
  margin-top: 200px;
  margin-bottom: 120px;
  display: flex;
  flex-flow: row wrap;
  align-items: center;
  justify-content: center;
}
.top_about .vertical_txt {
  margin-right: 80px;
}
.top_about .top_about_img_wrap .top_about_img {
  max-width: 640px;
  width: 100%;
  margin-bottom: 16px;
  box-shadow: 4px 4px #231815;
}

.wave {
  position: relative;
  height: 200px; /*何も表示されない場合は各波の親要素に高さを持たせましょう。*/
}

canvas {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
}

footer {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
footer .footer_top {
  padding-top: 80px;
  padding-bottom: 120px;
  background-color: #f2f2f2;
}
footer .footer_top .footer_top_msg_wrap {
  display: flex;
  flex-flow: row wrap;
  align-items: center;
  justify-content: center;
}
footer .footer_top .footer_top_msg_wrap .footer_top_img {
  max-width: 400px;
  width: 100%;
  box-shadow: 4px 4px #231815;
}
footer .footer_top .footer_top_msg_wrap .vertical_txt {
  margin-left: 80px;
}
footer .footer_top .footer_top_btn_wrap {
  margin-top: 80px;
  display: flex;
  flex-flow: row wrap;
  align-items: flex-start;
  justify-content: center;
}
footer .footer_top .footer_top_btn_wrap .btn_2 {
  margin-left: 16px;
  margin-right: 16px;
}
footer .footer_top .footer_top_btn_wrap .btn_2:first-child {
  margin-bottom: 40px;
}
footer .footer_btm {
  padding-top: 80px;
  padding-bottom: 80px;
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  align-self: flex-start;
}
footer .footer_btm .footer_btm_menu {
  list-style-type: circle;
  margin-top: 24px;
}
footer .footer_btm .footer_btm_menu li {
  margin-left: 16px;
  margin-right: 16px;
}
footer .footer_btm .footer_btm_menu li:hover {
  text-decoration: underline;
}
footer .footer_btm .footer_btm_menu li a {
  padding-left: 8px;
  padding-right: 8px;
}
footer .footer_btm .footer_btm_ilst {
  max-width: 320px;
  width: 100%;
  height: 100%;
  margin-left: 56px;
  margin-right: 80px;
}
footer .footer_btm .footer_btm_info {
  text-align: left;
}
footer .footer_btm .footer_btm_info .footer_btm_logo {
  max-width: 160px;
  width: 100%;
}
footer .footer_btm .footer_btm_info .footer_btm_info_ttl {
  font-size: clamp(2rem, 2vw + 0.75rem, 2.4rem);
  margin-bottom: 16px;
}
footer .footer_btm .footer_btm_info .footer_btm_info_txt {
  font-size: clamp(1.6rem, 2vw, 1.8rem);
  margin-bottom: 8px;
}
footer .footer_btm .footer_btm_info .footer_btm_info_cr {
  margin-top: 8px;
  font-size: 16px;
}

.page_main {
  margin-top: 120px;
  margin-bottom: 80px;
}
.page_main .page_txt_lh2 {
  line-height: 2;
}
.page_main .blc_left {
  margin-bottom: 80px;
  align-items: center;
}
.page_main .blc_left .page_img_wrap {
  margin-left: auto;
}
.page_main .blc_left .page_img_wrap .page_img_conts {
  position: relative;
  max-width: 640px;
  width: 100%;
}
.page_main .blc_left .page_img_wrap .page_img_conts h2 {
  font-size: clamp(2rem, 2vw + 0.75rem, 2.4rem);
  position: absolute;
  top: -40px;
  left: 16px;
  background-color: #fcfcfc;
  padding: 8px;
}
.page_main .blc_left .page_img_wrap .page_img_conts .page_img {
  max-width: 640px;
  width: 100%;
  box-shadow: 4px 4px #231815;
}
.page_main .blc_left .page_txt_wrap {
  padding-left: 40px;
  max-width: 600px;
  width: 100%;
  text-align: left;
  margin-right: auto;
}
.page_main .blc_left .page_txt_wrap h2 {
  font-size: clamp(2rem, 2vw + 0.75rem, 2.4rem);
}
.page_main .blc_left .page_txt_wrap p {
  font-size: clamp(1.6rem, 2vw, 1.8rem);
}
.page_main .blc_right {
  margin-bottom: 80px;
  align-items: center;
}
.page_main .blc_right .page_txt_wrap {
  max-width: 600px;
  width: 100%;
  margin-left: auto;
  padding-right: 40px;
}
.page_main .blc_right .page_txt_wrap h2 {
  text-align: left;
  font-size: clamp(2rem, 2vw + 0.75rem, 2.4rem);
}
.page_main .blc_right .page_txt_wrap p {
  width: 100%;
  text-align: left;
  font-size: clamp(1.6rem, 2vw, 1.8rem);
}
.page_main .blc_right .page_img_wrap {
  margin-right: auto;
}
.page_main .blc_right .page_img_wrap .page_img {
  max-width: 640px;
  width: 100%;
  box-shadow: 4px 4px #231815;
}
.page_main .page_product_h1 {
  font-size: clamp(2.4rem, 2vw + 0.75rem, 3.2rem);
  margin-bottom: 40px;
}
.page_main .page_product {
  max-width: 640px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 80px;
}
.page_main .page_product .page_product_h {
  text-align: left;
  font-size: clamp(2rem, 2vw + 0.75rem, 2.4rem);
  margin-bottom: 8px;
}
.page_main .page_product .page_product_txt {
  text-align: left;
  font-size: clamp(1.6rem, 2vw, 1.8rem);
  margin-bottom: 16px;
}
.page_main .page_product .page_product_img_wrap {
  position: relative;
  margin-bottom: 16px;
}
.page_main .page_product .page_product_img_wrap .page_product_img {
  box-shadow: 4px 4px #231815;
}
.page_main .page_product .page_product_img_wrap .page_product_hr, .page_main .page_product .page_product_img_wrap .page_product_hl {
  position: absolute;
  top: 16px;
  background-color: #fcfcfc;
  padding: 16px 8px;
  font-size: clamp(2.4rem, 2vw + 0.75rem, 3.2rem);
}
.page_main .page_product .page_product_img_wrap .page_product_hr {
  right: 16px;
}
.page_main .page_product .page_product_img_wrap .page_product_hl {
  left: 16px;
}
.page_main .page_product .page_product_lnk {
  margin-top: 8px;
}
.page_main .page_product .page_product_lnk a {
  display: inline-block;
}
.page_main .page_product .page_product_lnk a p {
  font-size: clamp(2rem, 2vw + 0.75rem, 2.4rem);
}
.page_main .page_product .page_product_lnk a p::after {
  transition: all 0.2s;
  content: "";
  display: inline-block;
  background-image: url(../img/btn-3.png);
  background-repeat: no-repeat;
  background-size: contain;
  width: 48px;
  height: 6px;
  margin-left: 8px;
  margin-bottom: 8px;
}
.page_main .page_product .page_product_lnk a:hover {
  opacity: 0.9;
}
.page_main .page_product .page_product_lnk a:hover p::after {
  transition: all 0.2s;
  transform: translateX(4px);
}
.page_main .page_product_desc {
  max-width: 600px;
}
.page_main .page_product_desc .page_product_txt {
  line-height: 2;
}
.page_main .page_about {
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 80px;
}
.page_main .page_about .page_about_h {
  font-size: clamp(2.4rem, 2vw + 0.75rem, 3.2rem);
  margin-bottom: 40px;
}
.page_main .page_about .page_about_img {
  max-width: 640px;
  width: 100%;
  box-shadow: 4px 4px #231815;
  margin-bottom: 40px;
}
.page_main .page_about .page_about_h3 {
  font-size: clamp(2rem, 2vw + 0.75rem, 2.4rem);
  text-align: left;
  margin-bottom: 8px;
}
.page_main .page_about .page_about_txt {
  text-align: left;
  font-size: clamp(1.6rem, 2vw, 1.8rem);
  line-height: 2;
}
.page_main .page_about_box1 {
  max-width: 1024px;
  width: 100%;
}
.page_main .page_about_box2 {
  align-items: center;
}
.page_main .page_about_box2 table {
  margin-bottom: 40px;
  margin-right: auto;
  margin-left: auto;
  max-width: 560px;
  width: 100%;
}
.page_main .page_about_box2 table tr td {
  border: 1px solid #231815;
  padding: 16px;
}
.page_main .page_about_box2 table tr td:first-child {
  background-color: #f2f2f2;
}
.page_main .page_about_box2 table tr td:nth-child(2) {
  text-align: left;
}
.page_main .page_contact {
  margin-bottom: 80px;
}
.page_main .page_contact .page_contact_h {
  font-size: clamp(2.4rem, 2vw + 0.75rem, 3.2rem);
  margin-bottom: 32px;
}
.page_main .page_contact .page_contact_txt {
  font-size: clamp(1.6rem, 2vw, 1.8rem);
  line-height: 2;
}
.page_main .page_contact .page_contact_tel {
  font-size: clamp(2rem, 2vw + 0.75rem, 2.4rem);
  margin-top: 16px;
}
.page_main .page_contact_btm {
  margin-bottom: 120px;
  max-width: 1024px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}
.page_main .page_contact_btm .page_contact_box {
  width: 100%;
  margin-bottom: 40px;
}
.page_main .page_contact_btm .page_contact_box label, .page_main .page_contact_btm .page_contact_box input, .page_main .page_contact_btm .page_contact_box textarea {
  text-align: left;
  width: 100%;
}
.page_main .page_contact_btm .page_contact_box label {
  display: inline-block;
  margin-bottom: 8px;
  padding-left: 8px;
}
.page_main .page_contact_btm .page_contact_box label span {
  color: red;
}
.page_main .page_contact_btm .page_contact_box input, .page_main .page_contact_btm .page_contact_box textarea {
  border: 2px solid #231815;
  border-radius: 8px;
  padding: 8px;
}
.page_main .page_contact_btm .page_contact_box input::placeholder {
  color: #f2f2f2;
}
.page_main .page_contact_btm .page_contact_box textarea {
  height: 200px;
  resize: vertical;
}
.page_main .page_contact_btm button {
  cursor: pointer;
}
.page_main .page_contact_btm button p {
  font-size: clamp(2rem, 2vw + 0.75rem, 2.4rem);
}
.page_main .page_contact_btm button p::after {
  transition: all 0.2s;
  content: "";
  display: inline-block;
  background-image: url(../img/btn-3.png);
  background-repeat: no-repeat;
  background-size: contain;
  width: 48px;
  height: 6px;
  margin-left: 8px;
  margin-bottom: 8px;
}
.page_main .page_contact_btm button:hover {
  opacity: 0.9;
}
.page_main .page_contact_btm button:hover p::after {
  transition: all 0.2s;
  transform: translateX(4px);
}

/*========= ナビゲーションのためのCSS ===============*/
#g-nav {
  /*position:fixed;にし、z-indexの数値を大きくして前面へ*/
  position: fixed;
  z-index: 999;
  /*ナビのスタート位置と形状*/
  top: 0;
  right: -120%;
  width: 100%;
  height: 100vh; /*ナビの高さ*/
  background: #fcfcfc;
  /*動き*/
  transition: all 0.4s;
}

/*アクティブクラスがついたら位置を0に*/
#g-nav.panelactive {
  right: 0;
}

/*ナビゲーションの縦スクロール*/
#g-nav.panelactive #g-nav-list {
  /*ナビの数が増えた場合縦スクロール*/
  position: fixed;
  z-index: 999;
  width: 100%;
  height: 100vh; /*表示する高さ*/
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}

/*ナビゲーション*/
#g-nav #g-nav-list .g_nav_wrap {
  /*ナビゲーション天地中央揃え*/
  position: absolute;
  z-index: 999;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
}
#g-nav #g-nav-list .g_nav_wrap .header_logo_img {
  max-width: 120px;
  width: 100%;
  margin-bottom: 40px;
}
#g-nav #g-nav-list .g_nav_wrap ul {
  margin-bottom: 40px;
}
#g-nav #g-nav-list .g_nav_wrap ul li a {
  display: inline-block;
  position: relative;
}
#g-nav #g-nav-list .g_nav_wrap ul li a::after {
  position: absolute;
  left: 30%;
  content: "";
  width: 40%;
  height: 2px;
  background: #231815;
  bottom: 2px;
  transform: scale(0, 1);
  transform-origin: center top;
  transition: all 0.2s;
}
#g-nav #g-nav-list .g_nav_wrap ul li a:hover::after {
  transform: scale(1, 1);
}
#g-nav #g-nav-list .g_nav_wrap ul li .pagenow::after {
  transform: scale(1, 1);
}
#g-nav #g-nav-list .g_nav_wrap ul li .pagenow:hover {
  opacity: 1;
}
#g-nav #g-nav-list .g_nav_wrap .cr {
  font-size: 16px;
}

/*リストのレイアウト設定*/
#g-nav li {
  list-style: none;
  text-align: center;
}

#g-nav li a {
  color: #231815;
  text-decoration: none;
  padding: 10px;
  display: block;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: bold;
}

/*========= ボタンのためのCSS ===============*/
.openbtn {
  position: fixed;
  z-index: 9999; /*ボタンを最前面に*/
  top: 16px;
  right: 10px;
  cursor: pointer;
  width: 56px;
  height: 56px;
}

/*×に変化*/
.openbtn span {
  display: inline-block;
  transition: all 0.2s;
  position: absolute;
  left: 14px;
  height: 3px;
  background-color: #231815;
  width: 56%;
}

.openbtn span:nth-of-type(1) {
  top: 15px;
}

.openbtn span:nth-of-type(2) {
  top: 25px;
}

.openbtn span:nth-of-type(3) {
  top: 35px;
}

.openbtn.active span:nth-of-type(1) {
  top: 18px;
  left: 18px;
  transform: translateY(6px) rotate(-45deg);
  width: 48%;
}

.openbtn.active span:nth-of-type(2) {
  opacity: 0;
}

.openbtn.active span:nth-of-type(3) {
  top: 30px;
  left: 18px;
  transform: translateY(-6px) rotate(45deg);
  width: 48%;
}

@media (max-width: calc(1600px - 1px)) {
  header .header_wrap .header_menu li {
    margin-left: 0px;
  }
}
@media (max-width: calc(1280px - 1px)) {
  header .header_wrap .header_logo {
    padding: 24px 24px 16px 8px;
  }
  header .header_wrap .header_logo .header_logo_img {
    max-width: 120px;
    width: 100%;
  }
  header .header_wrap .header_menu {
    margin-right: 0px;
  }
  header .header_wrap .header_menu li a {
    padding: 8px 16px;
    font-size: 16px;
  }
  .top_welcome .top_welcome_img {
    padding-right: 0px;
    padding-left: 0px;
  }
  .top_welcome .top_ilst {
    left: 0px;
    bottom: -32px;
    max-width: 160px;
  }
  .top_welcome h2 {
    position: absolute;
    right: 16px;
    bottom: -120px;
  }
  .top_welcome h2 .top_msg {
    max-width: 120px;
  }
  .top_products .top_products_wrap li a .top_products_img {
    max-width: 160px;
  }
  .top_products .top_products_wrap li a p {
    font-size: clamp(1.6rem, 2vw, 1.8rem);
  }
  .top_about {
    margin-top: 120px;
    flex-flow: column wrap;
  }
  .top_about .vertical_txt {
    margin-right: 0px;
    margin-bottom: 40px;
  }
  footer .footer_top .footer_top_msg_wrap {
    flex-flow: column wrap;
  }
  footer .footer_top .footer_top_msg_wrap .footer_top_img {
    margin-bottom: 40px;
  }
  footer .footer_top .footer_top_msg_wrap .vertical_txt {
    margin-left: 0px;
  }
  footer .footer_btm .footer_btm_ilst {
    margin-left: 24px;
    margin-right: 40px;
  }
}
@media (max-width: calc(1024px - 1px)) {
  header {
    height: 80px;
  }
  header .header_wrap .header_logo {
    padding: 16px 16px 8px 4px;
    text-align: center;
  }
  header .header_wrap .header_logo .header_logo_img {
    max-width: 80px;
  }
  .top_welcome .top_ilst {
    bottom: -24px;
    max-width: 120px;
  }
  .top_welcome h2 {
    right: 16px;
    bottom: 8px;
  }
  .top_welcome h2 .top_msg {
    max-width: 120px;
  }
  .top_hh .vertical_txt {
    margin-bottom: 40px;
  }
  .top_products .top_products_wrap li a .top_products_img {
    max-width: 120px;
  }
  .top_products .top_products_wrap li a p {
    font-size: clamp(1.6rem, 2vw, 1.8rem);
  }
  .top_about {
    margin-top: 80px;
  }
  footer .footer_btm {
    flex-flow: column wrap;
  }
  footer .footer_btm .footer_btm_menu {
    margin-left: auto;
    margin-right: auto;
    margin-top: 80px;
    margin-bottom: 56px;
  }
  footer .footer_btm .footer_btm_menu li {
    margin-left: 24px;
    margin-right: 24px;
  }
  footer .footer_btm .footer_btm_ilst {
    max-width: 240px;
    margin-left: auto;
    margin-right: auto;
  }
  footer .footer_btm .footer_btm_info {
    text-align: center;
  }
}
@media (max-width: calc(768px - 1px)) {
  .top_hh .vertical_txt {
    margin-top: 64px;
    font-size: 14px;
  }
  .top_products h2 {
    text-align: center;
  }
  .top_products .top_products_wrap {
    justify-content: center;
  }
  .top_products .top_products_wrap li a .top_products_img {
    max-width: 72%;
  }
  .wave {
    height: 100px; /*何も表示されない場合は各波の親要素に高さを持たせましょう。*/
  }
  footer .footer_top {
    padding-top: 40px;
  }
  footer .footer_top .footer_top_msg_wrap .footer_top_img {
    max-width: 320px;
  }
  footer .footer_top .footer_top_msg_wrap .vertical_txt {
    line-height: 2;
    font-size: 14px;
  }
  footer .footer_top .footer_top_msg_wrap .vertical_txt span {
    font-size: 14px;
  }
}
@media (max-width: calc(1280px - 1px)) {
  .page_main .blc_left .page_img_wrap {
    margin-right: auto;
    margin-bottom: 24px;
  }
  .page_main .blc_left .page_txt_wrap {
    padding-left: 0px;
    max-width: 1024px;
    margin-left: auto;
  }
  .page_main .blc_right .page_txt_wrap {
    max-width: 1024px !important;
    margin-right: auto;
    padding-right: 0px;
  }
  .page_main .blc_right .page_img_wrap {
    margin-bottom: 24px;
    margin-left: auto;
  }
}
@media (max-width: calc(768px - 1px)) {
  .page_main .page_about .page_about_h {
    margin-bottom: 16px;
  }
  .page_main .page_about_box2 .page_about_h {
    margin-bottom: 0;
  }
  .page_main .page_contact {
    margin-bottom: 40px;
  }
  .page_main .page_contact .page_contact_h {
    margin-bottom: 16px;
  }
  .page_main .page_contact .page_contact_mail_txt {
    text-align: left;
  }
  .page_main .page_contact_btm {
    margin-top: -32px;
  }
}/*# sourceMappingURL=style.css.map */