@charset "UTF-8";
/*------------------------------------
  全体設定　ここから
-------------------------------------*/
/* 初期設定 */
html {
  font-size: 62.5%;
}

body {
  width: 100%;
  font-size: 1.8rem;
  line-height: 1.22;
  font-family: 'Noto Serif JP', serif;
}

body,
header,
nav,
h1,
h2,
h3,
h4,
h5,
h6,
p,
ol,
ul,
li,
a,
dl,
dd,
dt,
div,
span,
time,
figure,
figcaption,
article,
section,
aside {
  margin: 0px;
  padding: 0px;
  box-sizing: border-box;
  font-weight: normal;
  letter-spacing: .15rem;
}
h2 {
  font-size: 3rem;
  font-weight: bold;
  margin-bottom: 3rem;
}
h2.underline{
  padding-bottom: 1.5rem;
  border-bottom: 2px solid #8B1F0D;
}
h3 {
  font-size: 1.8rem;
  letter-spacing: 0.04em;
  font-weight: bold;
  line-height: 1.43;
}
p{
  font-size: 1.8rem;
}
img,
svg {
  vertical-align: bottom;
  width: 100%;
}
a {
  text-decoration: none;
  color: #000;
  display: inline-block;
  text-align: center;
  vertical-align: middle;
}
ul li {
  list-style-type: none;
}

.flex-container{
  display: flex;
  flex-wrap: wrap;
}
.sp-newline,
.sp-only{
  display: none;
}
@media screen and (max-width: 570px){
  body {
    font-size: 1.6rem;
  }
  h2{
    font-size: 2.5rem;
    margin-bottom: 2rem;
  }
  h3 {
    font-size: 1.4rem;
  }
  .pc-newline,
  .pc-only{
    display: none;
  }
  .sp-newline,
  .sp-only{
    display: block;
  }
}
/* 初期設定----------------------------------------------- */

/* セクション設定 */
.section-wrapper {
  padding: 7% 2.8rem 2%;
}
.lp-width{
  max-width: 1200px;
  margin: 0 auto;
}
@media screen and (max-width: 760px){
}
@media screen and (max-width: 570px){
  .section-wrapper {
    padding: 13% 2.8rem 2%;
  }
}
/* セクション設定-------------------------------------------- */


/** -------- スマホ -------- **/
@media screen and (max-width: 768px){
  .button {
    font-size: 1.4rem;
    padding: 1rem 1.5rem;
  }
}

/*オープニングアニメーション*/
.animation-start{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #fff;
  z-index: 10;
}
.animation-end{
  display: none;
}
.animation-end.active{
  display: block;
}

/*------------------------------------
  トップページ（index.html）設定
-------------------------------------*/
#header{
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  height: 9rem;
  padding: 0 5rem;
  position: fixed;
  top: 0;
  z-index: 9;
  background-color: rgba(255,255,255,0.7);
}
#header.active{
  z-index: 999;
}
#header .logo{
  width: 28.414rem;
}
#header .gnav-pc-wrap {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  width: 70%;
}
#header ul.gnav-pc{
	display: flex;
  justify-content: flex-end;
	text-align: center;
  width: 100%;
}
#header ul.gnav-pc li {
  display: inline;
  margin-left: 4.5%;
}
#header ul.gnav-pc li a {
	transition:	all .2s;
  position: relative;
}
#header ul.gnav-pc li a::after{
  position: absolute;
  content: "";
  bottom: -0.5rem;
  left: 0;
  width: 0%;
  height: 1px;
  background-color: #8B1F0D;
  transition:	all .3s;
}
#header ul.gnav-pc li a:hover::after{
  width: 100%;
}
@media screen and (max-width: 760px){
  #header{
    padding: 0 2rem 0 3rem;
  }
}
@media screen and (max-width: 570px){
  #header{
    padding: 0 1.5rem 0 2.5rem;
    height: 45.91px;
  }
  #header .logo{
    width: 13.3rem;
  }
}

/*	ハンバーガーメニュー（ボタン）	*/
#header .openbtn{
	position: relative;
	cursor: pointer;
  width: 35px;
  height:35px;
	margin-left: 20px;
	transition: all .3s;
  background-color: #A4220C;
}
#header .openbtn span{
  display: inline-block;
  transition: all .4s;/*アニメーションの設定*/
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  height: 1px;
	background: #fff;
	width: 70%;
}
#header .openbtn span:nth-of-type(1) {
	top:8px;
}
#header .openbtn span:nth-of-type(2) {
	top:17px;
}
#header .openbtn span:nth-of-type(3) {
	top:26px;
}
/*activeクラスが付与されると線が回転して×に*/
#header .openbtn.active span:nth-of-type(1) {
    top: 11px;
    left: 4px;
    transform: translateY(6px) rotate(-45deg);
    width: 80%;
}
#header .openbtn.active span:nth-of-type(2) {
	opacity: 0;/*真ん中の線は透過*/
}
#header .openbtn.active span:nth-of-type(3){
    top: 23px;
    left: 4px;
    transform: translateY(-6px) rotate(45deg);
    width: 80%;
}

/*	ハンバーガーメニュー（メニュー）	*/
#header .gnav-sp-wrap{
  display: none;
  width: 50%;
	z-index: 7;
}
.gnav-sp-list{
	display: block;
	visibility: hidden;
	opacity: 0;
	z-index: 100;
	background-color: #fff;
	position: fixed;
	width: 100%;
	top: 0;
	right: 0;
	transition: all 0.5s;
  overflow: auto;
}
.gnav-sp-list.is-active{
	visibility: visible;
	opacity: 1;
}
.gnav-sp-list .menu{
  padding: 12rem 10% 3rem;
  width: 100%;
}
ul.gnav-sp {
  padding-left: 2rem;
}
ul.gnav-sp li {
  display: block;
}
ul.gnav-sp li a {
  display: block;
  font-size: 1.6rem;
  margin-bottom: 2rem;
  letter-spacing: 0.1em;
  text-align: left;
}
.gnav-sp-list .bland-list{
  background-image: url(../images/bg-blandlist.png);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  color: #fff;
  text-align: center;
  padding: 2rem 10% 5rem;
}
.gnav-sp-list .bland-list .title{
  border-bottom: 2px solid #fff;
  padding-bottom: 1rem;
  margin-bottom: 3rem;
}
.gnav-sp-list .bland-list a{
  color: #fff;
}
.gnav-sp-list .bland-list .flex-container{
  margin-top: 3rem;
  justify-content: center;
}
.gnav-sp-list .bland-list .flex-container img{
  width: 28.23px;
  height: 28.23px;
  margin: 0 1rem;
}
@media screen and (max-width: 1100px){
	#header .gnav-pc-wrap{
		display: none;
	}
	#header .gnav-sp-wrap{
		display: flex;
		justify-content: flex-end;
		align-items: center;
	}
	#header .gnav-sp{
		display: block;
	}
}
@media screen and (max-width: 570px){
  .gnav-sp-list .menu{
    padding-top: 7rem;
  }
}

/* メインビジュアル */
#mainvisual{
	width: 100%;
  height: 90vh;
  /* position: relative; */
}
#mainvisual .swiper{
  position: absolute;
  width: 100%;
  height: calc(100% - 9rem);
  bottom: 0;
  left: 0;
}
#mainvisual .swiper img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#mainvisual .swiper.sp{
  display: none;
}
#mainvisual .main-image{
  position: absolute;
  top: 50%;
  left: 50%;
  width: 257.57px;
  height: 233.95px;
  transform: translate(-50%, -50%);
  z-index: 20;
  animation: fadein 1s forwards 0.5s;
  opacity: 0;
}
@keyframes fadein {
	0% {opacity: 0}
	100% {opacity: 1}
}
@media screen and (max-width: 760px){
  #mainvisual .swiper.pc{
    display: none;
  }
  #mainvisual .swiper.sp{
    display: block;
  }
}
@media screen and (max-width: 570px){
  #mainvisual .swiper{
    height: calc(100% - 45.91px);
  }
  #mainvisual .main-image{
    width: 120.85px;
    height: 109.55px;
  }
}

/* ブランド紹介 */
#bland{
  text-align: center;
}
#bland .flex-container{
  justify-content: center;
  max-width: 89.8rem;
  margin: 0 auto;
}
#bland .flex-container .flex-item{
  width: calc(100% / 3);
  padding: 3rem;
  position: relative;
  transition: .3s all;
}
#bland .flex-container .flex-item:hover{
  opacity: 0.6;
}
#bland .flex-container .flex-item::before{
  position: absolute;
  content: "";
  top: 50%;
  left: 0;
  width: 1px;
  height: 60%;
  transform: translateY(-50%);
  border-left: 1px solid #707070;
}
#bland .flex-container .flex-item:last-of-type::after{
  position: absolute;
  content: "";
  top: 50%;
  right: 0;
  width: 1px;
  height: 60%;
  transform: translateY(-50%);
  border-right: 1px solid #707070;
}
#bland .flex-container .flex-item img{
  max-width: 173.9px;
  max-height: 141.25px;
  object-fit: contain;
}
#bland .flex-container .flex-item h3{
  margin-top: 3rem;
}
@media screen and (max-width: 760px){
  #bland .flex-container .flex-item{
    padding: 2rem;
  }
}
@media screen and (max-width: 570px){
  #bland .flex-container .flex-item h3{
    margin-top: 2rem;
  }
  #bland .flex-container .flex-item{
    width: 50%;
    padding: 1rem 1rem 4rem;
  }
  #bland .flex-container .flex-item::before,
  #bland .flex-container .flex-item:last-of-type::after{
    display: none;
  }
  #bland .flex-container .flex-item img{
    max-width: 114.64px;
    max-height: 98.15px;
  }
}

/* ニュース */
#news{
  padding-top: 0;
}
#news h2 span{
  font-size: 1.8rem;
  margin-left: 2rem;
}
#news .lp-width{
  max-width: 800px;
}
#news .news-list{
  display: flex;
  background-color: #8B1F0D;
  color: #fff;
  padding: 3.5rem 5rem;
  margin-bottom: 1rem;
  flex-wrap: wrap;
  text-align: left;
}
#news .news-list .date{
  width: 20%;
  transition: .3s all;
}
#news .news-list:hover .date{
  opacity: 0.6;
}
#news .news-list .text{
  position: relative;
  transition: .3s all;
}
#news .news-list:hover .text{
  opacity: 0.6;
}
#news .news-list .text::after{
  position: absolute;
  content: "";
  bottom: -0.2rem;
  left: 0;
  width: 0%;
  height: 1px;
  background-color: #fff;
  transition: .3s all;
}
#news .news-list:hover .text::after{
  width: 100%;
}
#news .bottom-btn{
  text-align: right;
}
#news .bottom-link{
  display: inline-block;
  padding-right: 2rem;
  margin-left: auto;
  position: relative;
  transition: .3s all;
}
#news .bottom-link:hover{
  opacity: 0.6;
}
#news .bottom-link::after{
  position: absolute;
  content: "";
  top: 50%;
  right: 0;
  width: 7.33px;
  height: 12.82px;
  transform: translateY(-50%);
  background-image: url(../images/arrow.png);
  background-repeat: no-repeat;
  background-size: contain;
}
@media screen and (max-width: 570px){
  #news h2 span{
    font-size: 1.4rem;
  }
  #news .news-list{
    padding: 1rem 2.5rem;
  }
  #news .news-list .date,
  #news .news-list .text{
    width: 100%;
    line-height: normal;
  }
  #news .news-list .date{
    font-size: 1.5rem;
}
  #news .news-list .text {
      font-size: 1.6rem;
  }
}


/* ページトップリンク */
/*リンクの形状*/
.page-top{
  position: fixed;
  justify-content: center;
  align-items: center;
  right: 3rem;
  bottom:5rem;
  z-index: 2;
	display: flex;
	border-radius: 50%;
	width: 90px;
	height: 90px;
	transition:all 0.3s;
  background-color: #8B1F0D;
  color: #fff;
  opacity: 0;
  font-size: 2.5rem;
  font-weight: bold;
  padding-top: 1rem;
}
.page-top::after{
  position: absolute;
  content: "";
  width: 21.62px;
  height: 12.36px;
  top: 20px;
  left: 50%;
  transform: translateX(-50%);
  background-image: url(../images/arrow-white.png);
  background-repeat: no-repeat;
  background-size: contain;
}
/*　上に上がる動き　*/
.page-top.UpMove{
	animation: UpAnime 0.5s forwards;
}
@keyframes UpAnime{
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
/*　下に下がる動き　*/
.page-top.DownMove{
	animation: DownAnime 0.5s forwards;
}
@keyframes DownAnime{
  from {
  	opacity: 1;
  }
  to {
  	opacity: 0;
  }
}
@media screen and (max-width: 570px){
  .page-top{
    width: 6rem;
    height: 6rem;
    font-size: 1.5rem;
    bottom: 10rem;
    right: 2rem;
  }
  .page-top::after{
    width: 14.29px;
    height: 8.17px;
    top: 15px;
  }
}

/* フッター */
#footer{
  text-align: center;
  padding-top: 7rem;
}
#footer .snslogo a{
  width: 45px;
  height: 45px;
  margin: 0 30px;
}
#footer .copyright{
  background-color: #000;
  color: #fff;
  font-size: 1.2rem;
  padding: 4rem;
  margin-top: 3rem;
  font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
}
@media screen and (max-width: 570px){
  #footer{
    margin-top: 3%;
  }
  #footer .snslogo a{
    width: 28.23px;
    height: 28.23px;
    margin: 0 16px;
  }
  #footer .copyright{
    padding: 2rem;
    font-size: 1rem;
    letter-spacing: normal;
  }
}

/* ヘッダー画像 */
.mainvisual-img{
  position: relative;
  width: 100%;
  height: auto;
  padding-bottom: 5rem;
}
.page-title{
  position: absolute;
  top: 41%;
  left: 10%;
  transform: translateY(-52%);
}
.page-title h1{
  font-size: clamp(5rem,2.2vw,6rem);
  font-weight: bold;
  line-height: 0.8em;
}
@media screen and (max-width: 1024px){
  .page-title{
    top: 35%;
  }
  .page-title h1{
    font-size: clamp(3rem,2vw,4rem);
  }
}
@media screen and (max-width: 570px){
  .page-title{
    top: 41%;
  }
  .page-title h1{
    font-size: clamp(2rem,1.8vw,3rem);
    line-height: 1em;
  }
  .mainvisual-img{
      padding-bottom: 2rem;
  }
}

/* 会社概要 */
#company {
  padding: 1rem 3rem 4rem;
}
#company .company{
  padding-bottom: 2rem;
  max-width: 900px;
  margin: 0 auto;
}
#company table{
  margin: 0 auto;
}
#company th,
#company td{
  border-bottom: 1px solid #8B1F0D;
  padding: 2rem 7rem ;
}
#company th {
  text-align: left;
  word-break: keep-all;
}
#company td{
  padding-right: 15rem;
}
@media screen and (max-width: 1024px){
  #company {
    padding: 2rem 2rem 0 2rem;
  }
  #company th,
  #company td{
    padding: 2rem 5rem ;
  }
  #company td{
    padding-right: 6rem;
  }
}
@media screen and (max-width: 570px){
  #company {
    padding: 2rem 2rem 0 2rem;
  }
  #company th,
  #company td {
    display: block;
    min-width: 0;
    padding: 0.5rem 0;
  }
  #company th{
    border-bottom: none;
    padding: 1.5rem 0 0 0;
  }
  #company td {
    padding-bottom: 1.5rem;
  }
}


/* お問い合わせ */
#contact {
	margin:0 auto;
  padding: 1rem 3rem 4rem;
}
#contact p{
	text-align: center;
  padding-bottom: 2rem;
}
table.formTable,
#confirm {
	margin:0 auto 4rem;
  max-width:1000px;
	border-collapse: collapse;
}
table.formTable th,
table.formTable td {
	padding:20px;
}
table.formTable th {
	/* width: 370px; */
	text-align:left;
  vertical-align: top;
}
table.formTable td{
  text-align: left;
  width: 55%;
}
table.formTable th .title {
  display: inline-block;
	background:#8B1F0D;
  color: #fff;
  font-size: 1.8rem;
  font-weight: bold;
	width:fit-content;
  height: 43px;
  padding: 1rem 2rem;
  word-break: keep-all;
}
/* table.formTable th span {
	display: inline-block;
	font-size: 0.7rem;
	font-weight: bold;
	padding: 0.2em 0.4em;
	margin-left: 1em;
} */
table.formTable span.req {
	display: inline-block;
	padding: 0.2em 0.4em;
	margin-left: 1em;
  color: #E1112D;
  border: 1px #E1112D dashed;
  font-size: 1.6rem;
  padding: 0.4em 0.7em;
  letter-spacing: 0;
  word-break: keep-all;
  background-color: #fff;
  word-break: keep-all;
}
::placeholder {
	color: #ccc;
	font-weight: normal;
}
input[type="text"],
input[type="tel"],
input[type="email"],
textarea {
  border: 1px solid #8B1F0D;
  width: 100%;
  min-height: 5rem;
  padding: 2rem;
}

form input[type="submit"],
form input[type="button"]{
	height:57px;
	padding: 1rem 5rem;
  background-color: #8B1F0D;
	color: #fff;
	font-size: 1.8rem;
	border: 1px solid #8B1F0D;
  font-family: 'Noto Serif JP', serif;
}
#contact .button {
  text-align: center;
  
}
#contact form input[type="submit"]:hover {
	background-color: #FFF;
	color: #8B1F0D;
}
#thanks p,
#confirm p {
  text-align: center;
  margin-bottom: 8rem;
}

#thanks {
  max-width: 600px;
	margin:0 auto;
  text-align: center;
}
#thanks .button a {
	height:45px;
	padding: 1rem 5rem;
  /* background-color: #8B1F0D;
	color: #fff; */
	font-size: 1.8rem;
  font-family: 'Noto Serif JP', serif;
}
#thanks .button {
  margin: 0 auto;
  max-width: 320px;
  background-color: #8B1F0D;
  border: 1px solid #8B1F0D;
  padding: 1.5rem 2rem;
}
#thanks .button:hover{
  background-color: #fff;
}
#thanks .button a{
  color: #fff;
}
#thanks .button a:hover{
  color: #8B1F0D;
}

#confirm .button-box {
  display: flex;
  justify-content: space-evenly;
}
#confirm table.formTable th::before {
  content: "";
  position: absolute;
  width: 4px;
  height: 25px;
  background-color: #8B1F0D;
  top: 4px;
  left: 0;
}
form input[type="button"] {
  background-color: #BBBBCB;
  border: 1px solid #BBBBCB;
}
form input[type="submit"]:hover {
  color: #8B1F0D;
  background-color: #fff;
}
form input[type="button"]:hover{
  color: #BBBBCB;
  background-color: #fff;
}

p.error_messe {
    margin: 5px 0;
    color: red;
}

@media screen and (max-width:1100px) {
  table.formTable th, 
table.formTable td {
	display:block;
}
table.formTable td{
  width: 100%;
}
input[type="text"],
input[type="tel"],
input[type="email"],
textarea {
  padding: 2rem 22rem 2rem 2rem;
}
}

/*　簡易版レスポンシブ用CSS（必要最低限のみとしています。ブレークポイントも含め自由に設定下さい）　*/
@media screen and (max-width:572px) {
  #contact {
    padding: 1rem 1rem 4rem;
  }
#contact p {
  padding: 0 2rem;
  font-size: 1.6rem;
}
table.formTable th, 
table.formTable td {
	padding:10px;
  display:block;
}
table.formTable th {
	margin-top:5px;
	border-bottom:0;
}
form input[type="text"], form textarea {
	/* width:80%; */
	padding:5px;
	font-size:110%;
	display:block;
}
form input[type="submit"],
form input[type="reset"],
form input[type="button"] {
	display:block;
  margin: 0 auto;
	/* width:100%;
	height:40px; */
}
form input.short,
form input.mail{
  width: 100%;
}

#confirm form input[type="button"]{
  width: 100px;
}
#thanks p,
#confirm p {
  margin-bottom: 3rem;
  padding: 0 2rem;
  font-size: 1.6rem;
}
form input[type="submit"],
form input[type="button"]{
	padding: 0.5rem 2rem;
}
input[type="text"],
input[type="tel"],
input[type="email"],
textarea {
  padding: 5px;
  font-size: 110%;
}
#thanks .button {
  max-width: 240px;
  padding: 1.5rem 1rem;
}
#thanks .button a {
	height:26px;
	padding: 0.2rem 1rem;
}
}

/* 新着情報 */
#news-list{
  padding: 1rem 3rem 50vh;
}
#news-list .news {
  max-width: 1000px;
  border-bottom: 1px solid #8B1F0D;
  margin: 3rem auto 0;
}
#news-list .news .content{
  max-width: 900px;
  margin: 0 auto;
}
#news-list .text{
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 3rem;
}
#news-list .news .text .date{
  padding-right: 50px;
}
@media screen and (max-width: 570px){
  #news-list{
    padding-top: 2rem;
    padding-left: 2rem;
    padding-right: 2rem;
  }
  #news-list .news{
    margin-top: 2rem;
  }
  #news-list .news .text{
    display: block;
    margin-bottom: 2rem;
  }
  #news-list .news .text a.link{
    text-align: left;
  }
}

/* プライバシーポリシー */
#privacy,
#member {
  padding: 3rem 3rem 4rem;
  max-width: 900px;
  margin: 0 auto;
}
#privacy h2{
  text-align: center;
}
#privacy .flow {
  margin: 0 auto;
  border: 1px solid #8B1F0D;
  padding: 2rem 4rem;
  max-width: 800px;
}
#privacy .flow .text{
  max-width: 500px;
  margin: 0 auto;
}
#privacyr .flow .text p{
  padding-bottom: 1rem;
  text-align: left;
}
#privacy .flow .text span {
  font-weight: bold;
  color: #8B1F0D;
}
#rule{
  padding-bottom: 3rem;
}
#rule h2 {
  text-align: center;
  padding-top: 6rem;
}
#rule .rule{
  max-width: 870px;
  margin: 0 auto;
  padding-bottom: 30px;
}
#rule .rule .title{
  padding-bottom: 10px;
}
#rule .rule h3 {
  color: #8B1F0D;
  border-bottom: 1px solid #8B1F0D;
  font-size: 2rem;
  font-weight: bold;
}
#rule .rule .number {
  padding-bottom: 20px;
}
#rule .rule .number li{
  list-style-position: outside;
  margin-left: 1.5em;
}
#rule .rule .sub-number {
  display: flex;
}
#rule .rule .sub-number .system{
  min-width: 120px;
}
#rule .rule .sub-number .text{
  max-width: 800px;
  padding-left: 20px;
}
#rule .rule .katakana {
  padding: 20px 0 ;
}
@media screen and (max-width: 1024px){
}
@media screen and (max-width: 570px){
  #privacy {
    padding: 2rem 2rem 0 2rem;
  }
  #member{
    padding-bottom: 0;
  }
  #privacy .flow {
    padding: 2rem 3rem;
  }
  #rule .rule{
    padding-bottom: 20px;
  }
  #rule .rule .sub-number .system{
    min-width: 85px;
  }
  #rule .rule .sub-number .text{
    padding-left: 15px;
  }
}
