@import url('https://fonts.googleapis.com/css2?family=Josefin+Sans:wght@100..700&family=Noto+Sans+JP:wght@100..900&family=Noto+Serif+JP:wght@200..900&display=swap');

:root {
  --key: #333;
  --sub: #f18d46;
}

html {
  scroll-behavior: smooth;
  overflow-x: hidden;
  background: #fff;
}
body{
	font-family: "Noto Sans JP", sans-serif;
    overflow-x: hidden;
    color: #333;
}
img{
	width: 100%;
	display: block;
}
p{
	line-height: 2;
	letter-spacing: 2px;
}
h1,h2,h3,h4{
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 3px;
    font-family: "Noto Serif JP", serif;
}
table{
	width: 100%;
}
table , td, th {
	border-collapse: collapse;
    letter-spacing: 2px;
	border: 1px solid #d8d8db;
}
th, td{
	padding: 10px 20px;
	height: 25px;
	line-height: 1.5
}
th{
    white-space: nowrap;
}
dt, dd {
	line-height: 1.5
}
section{
    margin-bottom: 120px;
}

@media screen and (max-width:768px){
	p{
		font-size: 14px;
	}
    th, td {
        line-height: 1.5;
        font-size: 13px;
        padding: 10px;
    }
    section{
        margin-bottom: 50px;
    }
}

.width-sss{
	max-width: 800px;
	width: 90%;
	margin-left: auto;
	margin-right: auto;
}
.width-ss{
	max-width: 900px;
	width: 90%;
	margin-left: auto;
	margin-right: auto;
}
.width-s{
	max-width: 1000px;
	width: 90%;
	margin-left: auto;
	margin-right: auto;
}
.width-sm{
	max-width: 1100px;
	width: 90%;
	margin-left: auto;
	margin-right: auto;
}
.width-m{
	max-width: 1200px;
	width: 90%;
	margin-left: auto;
	margin-right: auto;
}
.width-l{
	max-width: 1400px;
	width: 90%;
	margin-left: auto;
	margin-right: auto;
}
.width-xl{
	max-width: 1600px;
	width: 90%;
	margin-left: auto;
	margin-right: auto;
}


.flex, .flex-always{
	display: flex;
	flex-wrap: wrap;
}
.flex-sb, .flex-sb-always{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.rev{
	flex-direction: row-reverse;
}
.flex-3items article{
	flex-basis: 32%;
}
.flex-3items img{
	margin-bottom: 15px;
    aspect-ratio: 5/3;
    object-fit: cover;
}
.flex-3items h3{
	font-size: 18px;
	margin-bottom: 15px;
}
@media screen and (max-width:768px){
	.flex,.flex-sb {
		display: block;
	}
    .flex-3items img {
        margin-bottom: 10px;
    }
    .flex-3items h3 {
        font-size: 16px;
        margin-bottom: 10px;
    }
    .flex-3items article {
        margin-bottom: 50px;
    }
}


.f2-bg{
	background: #f2f2f2;
	padding: 80px 0;
	margin-bottom: 80px;
}
.bk-bg{
	background: #000;
	padding: 80px 0;
	margin-bottom: 80px;
}
.f2-bg section,.f8-bg section{
	margin-bottom: 0;
}
@media screen and (max-width:768px){
	.f2-bg, .f8-bg {
		padding: 50px 0;
		margin-bottom: 50px;
	}
}


.text-r{
	text-align: right;
}
.text-c{
	text-align: center;
}
.key{
    color: var(--key);
}


.sec-title{
    margin-bottom: 80px;
}
.sec-title .title-main{
    position: relative;
    font-size: 16px;
    text-align: center;
}
.sec-title span{
    font-size: 45px;
    display: block;
    line-height: 1;
    margin-bottom: 10px;
}
.sec-title p{
    margin: 60px auto 0;
    width: 90%;
    max-width: 700px;
}
.sec-title2{
    margin-bottom: 20px;
}
.sec-title2 h2{
    font-size: 28px;
    font-weight: 400;
    display: flex;
    align-items: center;
	gap: 1rem;
}
.sec-title2 h2::after{
	content: "";
	flex-grow: 1;
	border-top: 1px solid;
}
.sec-line-title{
    max-width: 1200px;
    width: 90%;
    margin: 0 auto 50px;
    text-align: right;
}
.sec-line-title h2{
    font-size: 45px;
    line-height: 1.2;
    display: flex;
    align-items: center;
    gap: 1em;
}
.sec-line-title h2::before{
    content: "";
    flex-grow: 1;
    border-top: 1px solid;
}
.sec-line-title p{
    margin-top: 5px;
}


.cards{
	margin-bottom: 50px;
	gap: 2%;
}
.cards article{
	flex-basis: 23.5%;
    box-shadow: 3px 3px 5px rgba(0,0,0,0.3);
    background: #fff;
}
.cards a{
    display: flex;
    flex-direction: column;
	height: 100%;
}
.card-info{
    background: #fff;
    padding: 20px;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}
.card-info h3{
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 1px;
    margin-bottom: 15px;
}
.card-info>p{
	margin-bottom: 20px;
}
.card-info>time{
    font-size: 13px;
    margin-bottom: 15px;
    color: #949497;
    letter-spacing: 1px;
}
.card-img img{
    object-fit: cover;
    aspect-ratio: 3/2;
}

@media screen and (min-width: 769px) {
  .cards article {
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  }
  .cards article:hover {
    transform: translateY(-4px);
  }
}

@media screen and (max-width:768px){
.sec-title {
    margin-bottom: 50px;
}
.sec-title .title-main {
    font-size: 12px;
}
.sec-title span {
    font-size: 26px;
    margin-bottom: 5px;
}
.sec-line-title {
    font-size: 13px;
    margin-bottom: 30px;
}
.sec-line-title h2 {
    font-size: 30px;
}

	.card-info{
		padding: 10px;
	}
	.card-info h3 {
		margin-bottom: 10px;
	}
	.cards.slick-dotted.slick-slider{
		margin-bottom: 80px!important;
	}
	.front-page .cards article{
	    margin-right: 20px;
		margin-bottom: 20px;
    	width: 250px;
	}
	.simple-slider{
		display: flex;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scroll-behavior: smooth;
		-webkit-overflow-scrolling: touch;
		flex-wrap: nowrap;
	}
	.simple-slider article {
		width: 250px;
		flex: 0 0 250px;
		scroll-snap-align: start;
	}
}


/**********************************************************************/
/*****************************    *****************************/
/**********************************************************************/

.josefin{
    font-family: 'Josefin Sans', sans-serif;
    line-height: 1;
}
.serif{
    font-family: "Noto Serif JP", serif;
}


.marker-yellow{
    background: linear-gradient(transparent 60%,#fefd9b 0);
    display: inline!important;
    padding: 0 10px;
}

.tag-area{
    margin-bottom: 20px;	
}
.tag{
    font-size: 12px;
    border: 1px solid #ebebeb;
    color: #949497;
    padding: 2px 10px;
    border-radius: 20px;
    display: inline-block;
	margin-bottom: 3px;
	margin-right: 3px;
}

.link-info{
    color: #757578;
    font-size: 14px;
    padding-top: 10px;
    border-top: 1px solid #ebebeb;
	margin-top: auto;
}
.link-pict{
	position: relative;	
}

.link-pict::after{
	content: "";
	position: absolute;
	width: 20px;
	height: 20px;
	background-image: url("../img/arrow.svg");
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	top: 50%;
	right: 10px;
	transform: translateY(-50%);
	transition: opacity 0.3s ease-in-out;
}
.link-pict::before {
    content: "";
    position: absolute;
    width: 20px;
    height: 20px;
    background-image: url("../img/arrow-hover.svg");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    top: 50%;
    right: 10px;
    transform: translateY(-50%);
    opacity: 0; /* 初期状態で非表示 */
    transition: opacity 0.3s ease-in-out; /* フェードイン・フェードアウト */
}
.link-a:hover .link-pict::after{
	opacity: 0;
}
.link-a:hover .link-pict::before{
	opacity: 1;
}
.link-text{
	color: blue;
	text-decoration: underline;
}



.link-btn{
    border: 1px solid;
    padding: 13px 60px 13px 30px;
    display: inline-block;
    background: #333;
    color: #fff;
    position: relative;
}
.link-btn::after{
    content: "";
    background-image: url("../img/arrow2-w.svg");
    width: 20px;
    height: 6px;
    position: absolute;
    top: 50%;
    right: 24px;
    transform: translate(0px, -50%);
    background-size: contain;
    background-repeat: no-repeat;
    transition: transform 0.3s ease;
}
.link-btn:hover::after{
    transform: translate(5px, -50%);
}

.link-btn2 {
	border: 1px solid #333;
	border-radius: 30px;
	padding: 15px 80px;
	font-size: 16px;
	display: inline-block;
	background-color: transparent;
	color: #333;
	transition: all 0.3s ease;
}

.link-btn2:hover {
	background-color: rgba(0, 0, 0, 0.075); /* うっすら背景 */
	border-color: #000;                   /* 枠を濃く */
	transform: translateY(-2px);          /* 少し浮く */
	box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.1); /* 影で立体感 */
}

.btn-r{
	text-align: right;
}

.btn-bk{
    background: #000;
    padding: 10px 20px;
    color: #fff;
    display: inline-block;
    border-radius: 5px;
    font-size: 14px;
    letter-spacing: 1px;
}

.btn-flex2{
    display: flex;
    justify-content: center;
    gap: 30px;
}
.btn-flex2 a{
    display: flex;
    align-items: center;
    gap: 5px;
    border: 1px solid #000;
    border-radius: 50px;
    padding: 20px 40px;
}
.btn-flex2 a img{
    width: 20px;
}
.bk-btn{
    background: #000;
    color: #fff;
}

.inner-item{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}

.cover{
    height: 100%;
    object-fit: cover;
}
.pattern-bg1{
    background-color: transparent;
    background-image: linear-gradient(rgba(0,0,0,0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(0,0,0,0.05) 1px, transparent 1px), linear-gradient(rgba(0,0,0,0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(0,0,0,0.05) 1px, transparent 1px);
    background-size: 25px 25px, 25px 25px, 5px 5px, 5px 5px;
    background-position: -2px -2px, -2px -2px, -1px -1px, -1px -1px;
}
.img-pattern{
    background-color: #555555;
    opacity: 0.3;
    background-image: radial-gradient(#000000 1px, transparent 1px), radial-gradient(#000000 1px, #555555 1px);
    background-size: 4px 4px;
    background-position: 0 0, 2px 2px;
}


@media screen and (max-width:768px){
	.link-btn {
		padding: 12px;
		width: 90%;
		display: block;
		margin: auto;
		text-align: center;
		font-size: 14px;
	}
	.btn-r{
		text-align: center;
	}
}

/**********************************************************************/
/*************************  アコーディオンメニュー *************************/
/**********************************************************************/

.accordion{
	border: 2px solid #ddd;
	margin-bottom: 50px;
}
.accordion-header{
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px;
    border-bottom: 1px solid #f1f1f4;
}
.accordion-pict{
	width: 20px;
}
.accordion-header p{
	flex-basis: calc(100% - 80px);
}
.toggle-pict{
	width: 30px;
}
.toggle-pict img{
	transition: opacity 0.2s;
}
.accordion-content{
    padding: 0 20px;
	max-height: 0;
	overflow: hidden;
	opacity: 0;
	visibility: hidden;
	transition: all 0.3s ease-out;
}
.accordion-content.open{
	opacity: 1;
	visibility: visible;
	padding: 20px;
}
.accordion-content:not(:last-of-type).open{
	border-bottom: 2px solid #ddd;
}
.accordion-content .tag{
	margin-bottom: 0;
	cursor: pointer;
}

@media screen and (max-width:768px){
	.accordion {
		margin-bottom: 30px;
	}
	.accordion p{
		line-height: 1.6;
	}
	.accordion-header {
		padding: 5px 10px;
	}
	.toggle-pict {
		width: 20px;
	}
	.accordion-content{
		padding: 0 10px;
	}
	.accordion-content.open {
		padding: 10px;
	}	
}




/**********************************************************************/
/*************************  ホバーアニメーション  *************************/
/**********************************************************************/
@media screen and (min-width:768px){
	.hov-underline {
	  position: relative;
	  display: inline-block;
	  text-decoration: none;
	  color: inherit;
	}

	/* 下線の初期状態（非表示） */
	.hov-underline::after {
	  content: "";
	  position: absolute;
	  bottom: -5px;
	  left: 0;
	  height: 2px;
	  width: 100%;
	  background: var(--key);
	  transform: scaleX(0);     /* 横幅を0に */
	  transform-origin: left;   /* 左から伸びる */
	  transition: transform 0.3s ease;
	}
	/* ホバー時にアンダーラインを伸ばす */
	.hov-underline:hover::after {
	  transform: scaleX(1);     /* 横幅を元に戻す */
	}

	.hov-zoom {
	  overflow: hidden;
	}
	.hov-zoom img {
	  transition: transform 0.4s ease, opacity 0.4s ease;
	}
	.hov-zoom:hover img {
	  transform: scale(1.05);  /* 少し拡大 */
	  opacity: 0.8;            /* ちょっと薄くする */
	}

	.hov-opa{
		transition: opacity 0.3s ease;
	}
	.hov-opa:hover{
		opacity: 0.8;
	}
	.hov-btn {
		background-color: transparent;
		transition: all 0.3s ease;
	}
	.hov-btn:hover {
		background-color: rgba(0, 0, 0, 0.05);
		border-color: var(--key);
        color: var(--key);
		transform: translateY(-2px);
	}

	.hov-up {
		transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	}
	.hov-up:hover {
		transform: translateY(-4px);
	}
}


/**********************************************************************/
/*****************************  ヘッダー  *****************************/
/**********************************************************************/

.header-fix{
    border-bottom: 1px solid #f1f1f4;
    left: 0;
    position: fixed;
    right: 0;
    top: 0;
    z-index: 100;
    background: #fff;
	height: 62px;
    padding: 2px;
}
.header-container{
    display: flex;
    justify-content: space-between;
	align-items: center;
}
.header-logo a{
    display: flex;
    align-items: center;
    height: 62px;
    font-size: 24px;
    letter-spacing: 2px;
    font-weight: 300;
}
.header-logo img{
    height: 2.25rem;
    display: inline-block;
    margin-right: 5px;
    width: auto;
}
.header-container nav{
	flex-basis: calc(100% - 250px);
}
@media screen and (max-width:1150px){
	.header-container nav{
		display: none;
	}
}

.header-nav{
    display: flex;
    align-items: center;
    justify-content: right;
	margin-right: 25px;
}
.header-nav>li{
	margin-left: 3%;
	font-size: 14px;
	position: relative;
}
.header-nav>li::before {
  content: "";
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  height: 12px;
}
.header-nav>li ul {
    position: absolute;
    top: 100%;
    left: 50%;
    background: #fff;
    padding: 20px;
    white-space: nowrap;
    width: max-content;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    z-index: 10;
    letter-spacing: 1px;
    margin-top: 10px;
    transform: translateX(-50%);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease, visibility 0.3s;
}
.header-nav>li ul li:not(:last-of-type){
	padding-bottom: 15px;
}
.header-nav>li:hover ul{
	opacity: 1;
	visibility: visible;
}
.header-nav-btn{
    padding: 5px 15px;
    border-radius: 5px;
    border: 1px solid;
}

@media screen and (max-width:768px){
    .header-fix{
        height: 52px;
    }
    .header-logo {
        height: 50px;
    }
    .header-logo a {
        height: 50px;
        font-size: 20px;
    }
    .header-logo img {
        height: 30px;
    }    
}


/**********************************************************************/
/*************************  ハンバーガーメニュー  *************************/
/**********************************************************************/

.hamburger-area {
    position: fixed;
    top: 19px;
    right: 28px;
    z-index: 100;
}
.hamburger {
  position: relative;
  width: 30px;
  height: 24px;
  border: none;
  background: none;
  cursor: pointer;
}
/* 各線（span） */
.hamburger span {
  position: absolute;
  display: block;
  width: 100%;
  height: 3px;
  background-color: #333;
  border-radius: 2px;
  transition: all 0.4s ease;
}
/* 上の線 */
.hamburger span:nth-child(1) {
  top: 0;
}
/* 真ん中の線 */
.hamburger span:nth-child(2) {
  top: 50%;
  transform: translateY(-50%);
}
/* 下の線 */
.hamburger span:nth-child(3) {
  bottom: 0;
}
/* ✕ に変わるときの状態 */
.hamburger.active span:nth-child(1) {
  transform: rotate(45deg);
  top: 50%;
}
.hamburger.active span:nth-child(2) {
  opacity: 0;
}
.hamburger.active span:nth-child(3) {
  transform: rotate(-45deg);
  bottom: auto;
  top: 50%;
}
/* ドロワーメニュー初期状態 */
.drawer-menu {
  position: fixed;
  top: 0;
  right: -100%;
  width: 100%;
  height: 100vh;
  background-color: #fff;
  transition: right 0.4s ease;
  z-index: 90;
  box-shadow: -5px 0 15px rgba(0, 0, 0, 0.1);
  overflow-y: auto;
}
/* 開いた状態 */
.drawer-menu.open {
  right: 0;
}
.drawer-in{
    min-height: 100vh;
}
.drawer-img{
	flex-basis: 40%;
}
.drawer-img img{
    height: 100%;
    object-fit: cover;
}
.drawer-text{
    flex-basis: 60%;
    padding: 80px;
}
.drawer-main{
    flex-wrap: nowrap;
    gap: 6%;
}
.drawer-text nav{
    flex-basis: 400px;
}
.drawer-text .footer-support-area {
    margin-bottom: 60px;
}
@media screen and (max-width:1300px){
    .drawer-img{
        display: none;
    }
    .drawer-text{
        flex-basis: 100%;
    }
}
.drawer-logo{
    margin-bottom: 50px;
}
.drawer-logo a{
    display: flex;
    align-items: center;
    font-size: 30px;
    letter-spacing: 2px;
    font-weight: 300;
}
.drawer-logo img {
    display: inline-block;
    margin-right: 5px;
    width: 220px;
}
.drawer-main li{
    font-size: 18px;
}
.drawer-main li a {
    margin-bottom: 30px!important;
}
.drawer-contact-area{
    flex-basis: calc(100% - 400px);
}
.drawer-tel{
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    border: 1px solid;
    padding: 10px;
    width: 350px;
    margin: auto auto 30px;
    border-radius: 20px;
}
.drawer-tel-icon {
    flex-basis: 60px;
}
.drawer-tel-r p {
    font-size: 14px;
}
.drawer-tel-r a {
    font-size: 30px;
    padding: 5px 0;
    font-weight: bold;
    font-family: "Noto Serif JP", serif;
}
.drawer-btn {
    background: var(--key);
    text-align: center;
    color: #fff;
    width: 90%;
    margin: 0 auto 20px;
}
.drawer-btn a {
    display: block;
    padding: 15px 0;
}
.drawer-insta {
    width: 80%;
    margin: 40px auto 30px;
}
.drawer-l {
    flex-basis: 62%;
}
.drawer-nav-top nav, .drawer-nav-foot nav {
    flex-basis: 50%;
}
.drawer-flex nav {
    margin-bottom: 30px;
}
.drawer-flex h2 {
    font-family: "Noto Serif JP", serif;
    font-size: 20px;
    letter-spacing: 1px;
    margin-bottom: 15px;
    position: relative;
    font-weight: bold;
}
.drawer-flex h2::before {
    content: "";
    position: absolute;
    width: 18px;
    height: 18px;
    background-image: url("../img/drawer-arrow.svg");
    background-size: contain;
    background-repeat: no-repeat;
    top: 13px;
    left: -27px;
}
.drawer-flex nav li {
    margin-bottom: 26px;
}
.drawer-nav-foot nav div{
	margin-bottom: 40px;
}
.drawer-contact{
    width: 350px;
    margin: auto;
}
.drawer-contact a{
    display: flex;
    align-items: center;
    padding: 15px;
    justify-content: center;
    gap: 10px;
    font-size: 18px;
    margin-bottom: 15px;
    border-radius: 10px;
    border: 1px solid;
}
.drawer-sns-area{
    width: 350px;
    margin-top: 30px;
    display: flex;
    justify-content: end;
    gap: 1rem;
}
.drawer-sns-area a{
    width: 50px;
}

@media screen and (max-width:768px){
	.hamburger-area {
		top: 14px;
		right: 16px;
	}
	.drawer-text {
		padding: 40px 30px 90px;
	}
	.drawer-logo {
		margin: 0 auto 30px;
	}
    .drawer-logo a{
        display: none;
    }
	.drawer-r {
		margin-bottom: 40px;
	}
    .drawer-logo img {
        margin-right: 0;
        width: 180px;
    }
    .drawer-tel {
        width: 100%;
        margin-bottom: 20px;
    }
	.drawer-tel-icon {
		flex-basis: 50px;
	}
    .drawer-contact {
        width: 100%;
    }
    .drawer-contact a {
        margin-bottom: 10px;
    }
	.drawer-l {
		padding-left: 30px;
	}
	.drawer-flex nav li {
		position: relative;
		border-bottom: 1px solid #aaa;
		margin-bottom: 18px;
	}
	.drawer-flex nav li a {
		font-size: 14px;
		padding-bottom: 10px;
		display: block;
	}
	.drawer-flex nav li::after {
		content: "";
		position: absolute;
		width: 20px;
		height: 20px;
		top: 50%;
		transform: translateY(-50%);
		right: 0;
		background-image: url("../img/icon-btn-right-w.png");
		background-size: contain;
		background-repeat: no-repeat;
	}
    .drawer-sns-area {
        width: 100%;
        margin-top: 10px;
    }
    .drawer-sns-area a {
        width: 50px;
    }
}

/**********************************************************************/
/***************************  フロントページ  ***************************/
/**********************************************************************/
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.home{
    margin-top: 60px;
}
.front-slider.slick-dotted.slick-slider {
    margin-bottom: 0;
}
.front-slider-wrapper{
    height: calc(100vh - 300px);
    min-height: 640px;
    margin: 0 auto;
    padding: 0 40px;
    overflow: hidden;
}
.front-slider-area{
    max-width: 1640px;
    margin: 0 auto;
    height: 100%;
    position: relative;
}
.front-slider .slick-track{
    height: calc(100vh - 300px);
}
.front-slider .slick-slide{
    height: 100%;
}

.front-slider .slick-slide img {
    height: 100%;
    width: 100%;
    object-fit: cover;
    display: block;
    animation: none;
    transform: scale(1);
}
.front-slider .slick-slide img.zooming{
    animation: zoomInOut 15s ease-in-out infinite alternate;
}
@keyframes zoomInOut {
    0% {
        transform: scale(1);
    }
    100% {
        transform: scale(1.3);
    }
}
.front-slider .slick-dots{
    display: none!important;
}
.f-news{
    margin-bottom: 100px;
    padding: 0 40px;
}
.f-news-in{
    justify-content: center;
    max-width: 1640px;
    background: #EEEEEE;
    padding: 40px;
    margin: auto;
}
.f-news-title{
    display: flex;
    flex-direction: column;
    border-right: 1px solid;
    padding-right: 40px;
    margin-right: 40px;
    justify-content: center;
    gap: 20px;
}
.f-news-title .sec-title{
    margin: 0;
}
.f-news-item{
    padding: 10px 0;
}
.f-news-item:not(:last-of-type){
    border-bottom: 1px solid #ccc;
}
.f-news-item a{
    align-items: center;
}
.f-news-item a time{
    font-size: 14px;
    margin-right: 20px;
}
.f-news-item h3{
    padding-right: 60px;
    min-width: 200px;
}
.f-concept-l{
    flex-basis: 48%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 30px;
    text-align: center;
}
.f-concept-l h3{
    font-size: 14px;
}
.f-concept-l h3 span{
    display: block;
    font-size: 24px;
    border-bottom: 1px solid #999;
    padding-bottom: 5px;
    margin-bottom: 10px;
}
.f-concept-l a{
    align-self: center;
    letter-spacing: 2px;
}
.f-concept-r{
    flex-basis: 48%;
}
.f-concept-r img{
    height: 100%;
    object-fit: cover;
}
.f-event{
    background: #eee;
    padding: 60px 0;
}
.f-event-l{
    flex-basis: 120px;
    display: flex;
}
.f-event-l-in{
    writing-mode: vertical-rl;
}
.f-event-title h2{
    font-size: 50px;
    line-height: 1.2;
    margin-bottom: 20px;
}
.f-event-title p{
    line-height: 1.5;
    flex-grow: 1;
    border-right: 1px solid #333;
    padding-right: 10px;
}
.f-event-r{
    flex-basis: calc(100% - 220px);
}
.f-event-items{
    gap: 6%;
}
.f-event-item{
    flex-basis: 47%;
    margin-bottom: 50px;
}
.f-event-item a{
    display: flex;
    flex-direction: column;
    height: 100%;
}
.f-event-img{
    background: #fff;
}
.f-event-img img{
    aspect-ratio: 1/1;
    object-fit: contain;
}
.f-event-status{
    width: 100%;
    display: inline-block;
    background: red;
    padding: 8px;
    text-align: center;
    font-size: 18px;
    color: #fff;
    letter-spacing: 2px;
}
.f-event-status.open{
    background-color: #dc143c;
}
.f-event-status.closed{
    background-color: var(--key);
}
.f-event-item h3{
    font-size: 18px;
    font-weight: bold;
    background: #fff;
    padding: 20px;
    flex-grow: 1;
}
.f-lineup-items{
    gap: 5px;
}
.f-lineup-item{
    flex: 1;
}
.f-lineup-img img{
    aspect-ratio: 3/2;
    object-fit: cover;
    transition: filter 0.8s ease;
}
.f-lineup-img img:hover{
    filter: brightness(60%);
}
.f-lineup-info{
    background: #EEEEEE;
    padding: 40px;
    text-align: center;
    position: relative;
}
.f-lineup-info h4{
    font-size: 14px;
    margin-bottom: 10px;
}
.f-lineup-info h3{
    font-size: 24px;
    margin-bottom: 20px;
}
.f-works{
    background: #eee;
    padding: 80px 0;
}
.f-works a{
    transition: opacity 0.3s ease;
}
.f-works a:hover{
    opacity: 0.7;
}
.f-works-slider{
    margin-bottom: 50px;
}
.f-works-item{
    padding: 0 10px;
}
.f-works-item > a > div{
    aspect-ratio: 1/1;
    overflow: hidden;
}
.f-works-item img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.f-blog-items .card-img img {
    aspect-ratio: 3/2;
}
.f-works-item h3{
    width: 90%;
    margin: 10px auto;
    font-size: 18px;
    text-align: justify;
}
.insta{
    background: #eee;
    padding: 80px 0;
}
.insta-info{
    flex-basis: 30%;
    display: flex;
    flex-direction: column;
}
.insta-info a{
    margin-top: auto;
    align-self: center;
}
.insta-logo{
    width: 60px;
    margin: 0 auto 10px;
}
.insta-logo-text{
    max-width: 300px;
    margin: 0 auto 20px;
    text-align: right;
    font-size: 14px;
}
.insta-items{
    flex-basis: 68%;
}
.insta-items>a{
    display: block;
    flex-basis: 24.5%;
    margin-bottom: 5px;
}
.insta-items>a img{
    aspect-ratio: 1/1;
    object-fit: cover;
}
@media screen and (max-width:768px){
    .home{
        margin-top: 50px;
    }
    .front-slider-wrapper {
        padding: 0;
        height: auto;
        min-height: auto;
    }
    .f-slider-in div {
        width: 60px;
        margin: 0 auto 20px;
    }
    .f-slider-in h1 {
        font-size: 20px;
        text-align: center;
    }
    .front-slider.slick-slider {
        margin-bottom: 0;
    }
    .f-news {
        margin-bottom: 50px;
        padding: 0;
    }
    .f-news-in {
        padding: 30px 20px;
    }
    .f-news-title {
        border-right: none;
        padding-right: 0;
        margin-right: 0;
        margin-bottom: 20px;
    }    
    .f-news-title .sec-title .title-main {
        font-size: 12px;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 10px;
        flex-direction: row-reverse;
    }
    .f-news-title .sec-title span {
        font-size: 26px;
        margin-bottom: 5px;
    }
    .f-news-item {
        padding: 5px 0;
    }
    .f-news-item:nth-of-type(n + 3){
        display: none;
    }
    .f-news-item a time {
        font-size: 12px;
        margin-bottom: 2px;
        display: inline-block;
    }
    .f-news-item h3 {
        font-size: 14px;
    }
    .f-news-items{
        margin-bottom: 30px;
    }
    .btn{
        text-align: right;
    }
    .f-news .btn a {
        padding: 13px 30px;
        font-size: 14px;
    }
    .f-concept-r img{
        height: 400px;
        width: 90%;
        margin: auto;
    }
    .f-event-items {
        margin-bottom: 10px;
    }
    .f-event-l {
        flex-basis: 45px;
        display: flex;
        border-right: 1px solid;
        padding-right: 5px;
    }
    .f-event-l-in{
        display: flex;
        align-items: center;
    }
    .f-event-title h2 {
        font-size: 40px;
        line-height: 1;
        margin-bottom: 10px;
    }
    .f-event-subtitle{
        margin-bottom: 20px;
    }
    .f-event-title p{
        border: none;
        padding: 0;
    }
    .f-event-r {
        flex-basis: calc(100% - 55px);
    }
    .f-event-status {
        padding: 6px;
        font-size: 15px;
    }
    .f-event-item h3 {
        font-size: 15px;
    }
    .f-concept-l {
        margin-bottom: 30px;
    }
    .f-concept-l h3 span {
        font-size: 20px;
    }
    .f-concept-l a {
        padding: 15px 50px;
        font-size: 14px;
    }
    .f-concept-l>div{
        display: none;
    }
    .f-lineup-item {
        margin-bottom: 20px;
    }
    .f-lineup-info {
        padding: 30px 20px;
    }
    .f-lineup-info h4 {
        font-size: 12px;
        margin-bottom: 4px;
    }
    .f-lineup-info h3 {
        font-size: 20px;
    }
    .f-works {
        padding: 40px 0;
    }
    .f-works-slider {
        margin-bottom: 30px;
    }
    .f-works-item h3 {
        font-size: 14px;
        text-align: left;
    }
    .insta {
        padding: 50px 0;
    }
    .insta-info {
        margin-bottom: 40px;
    }
    .insta-logo {
        width: 40px;
    }
    .insta-logo-text {
        max-width: 230px;
    }
    .insta-p{
        text-align: center;
        margin-bottom: 30px;
    }
    .insta-items>a {
        flex-basis: 49%;
    }
}


/**********************************************************************/
/******************************  footer  ******************************/
/**********************************************************************/
.map-area{
    height: 400px;
}
.footer{
    border-top: 1px solid #f1f1f4;
    padding-top: 50px;
    background: #fff;
}
.footer-wrapper{
	margin-bottom: 50px;
}
.footer-info{
	flex-basis: 280px;
}
.footer-logo a{
    display: block;
    margin-bottom: 20px;
}
.footer-logo img{
    height: 50px;
    display: inline-block;
    margin-right: 5px;
    width: auto;
}
.footer-info p{
	margin-bottom: 20px;
}
.footer-sns{
    display: flex;
    gap: 15px;
    justify-content: center;
}
.footer-sns a{
	flex-basis: 30px;
}
.footer-wrapper nav{
	flex-basis: calc(100% - 280px);
    justify-content: flex-end;
}
.footer-support-area, .footer-company-area{
	flex-basis: 26%;
}
.footer-contact-area{
    flex-basis: 38%;
    padding-left: 20px;
}
.footer-contact-area li{
    border-radius: 10px;
}
.footer-nav h3{
    font-size: 20px;
    border-bottom: 2px solid var(--key);
    margin-bottom: 25px;
    padding-bottom: 10px;
    text-align: center;
}
.footer-nav li a{
	margin-bottom: 20px;
}
.footer-nav li ul li{
	font-size: 14px;
	margin-left: 10px;
	white-space: nowrap;
    height: 39px;
}
.footer-nav li ul li::before{
	content: "- "
}
.footer-nav .drawer-sns-area {
    width: 100%;
    margin: 0;
}
.footer-contact{
    margin-bottom: 10px!important;
}
.footer-contact a{
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 13px 10px;
    border-radius: 10px;
    letter-spacing: 3px;
    justify-content: center;
    font-size: 18px;
    border: 1px solid;
}
.event-btn{
    background: #ccc;
}
.event-btn a{
    border-color: #ccc;
}
.contact-btn{
    color: #fff;
    background: var(--key);
}
.contact-btn a{
    border-color: var(--key);
}
.catalog-btn{
    background: #f9f8f4;
}
.copyright {
    background: #eee;
    padding: 10px;
    text-align: center;
    font-size: 13px;
}
.bottom-nav{
    position: fixed;
    bottom: -100px;
    left: 0;
    width: 100%;
    justify-content: center;
    background: #fff;
    gap: 10px;
    padding: 12px;
    border-top: 1px solid #f1f1f4;
	transition: bottom 0.3s ease;
    z-index: 100;
}
.bottom-nav.show{
	bottom: 0;
}
.bottom-nav.hide{
	bottom: -100px;
}
.bottom-nav a{
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 20px 80px;
    border-radius: 10px;
    font-size: 20px;
}
.bottom-tel{
    background: #ccc;
	border: 1px solid #ccc;	
}
.bottom-mail{
	background: #333;
	border: 1px solid #333;
    color: #fff;
}
.bottom-catalog{
	background: #f9f8f4;
	border: 1px solid #333;
}
.bottom-nav a img{
	width: 25px;
}

@media screen and (max-width:768px){
	.footer {
		padding-top: 30px;
	}
	.footer-wrapper {
		margin-bottom: 30px;
	}
	.footer-logo {
		margin-bottom: 0px;
	}
    .footer-logo a {
        font-size: 22px;
    }
    .footer-logo img {
        height: 40px;
    }
    .footer-info {
        margin-bottom: 30px;
        text-align: center;
    }
	.footer-info p {
		margin-bottom: 10px;
	}
    .footer-contact-area {
        padding-left: 0;
    }
    .footer-contact-area li a {
        margin-bottom: 10px;
    }
    .footer-tel a {
        font-size: 20px;
    }
    .footer-contact a {
        font-size: 16px;
    }

	.footer-sns {
		margin-bottom: 30px;
        margin-top: 40px;
	}
	.footer-wrapper nav {
		margin: 0 5%;
	}
    .footer-nav{
        margin-bottom: 30px;
    }
    .footer-nav h3 {
        font-size: 16px;
    }
    .footer-nav li {
        margin-bottom: 30px;
        font-size: 14px;
    }
    .footer-nav>ul>li>ul{
        margin-top: 30px;
    }
    .footer-nav>ul>li>ul li {
        height: auto;
    }
    .footer-company-area{
        margin-bottom: 50px;
    }
    
	.copyright {
		font-size: 12px;
	}
	.bottom-nav{
		padding: 8px;
	}
	.bottom-nav a {
		padding: 10px;
		border-radius: 5px;
		font-size: 14px;
		flex-basis: 30%;
		display: block;
		text-align: center;
	}
	.bottom-nav a img {
		width: 23px;
		margin: 0 auto 5px;
	}
    
}

/**********************************************************************/
/*****************************  page共通  *****************************/
/**********************************************************************/
.page, .single, .archive{
	margin-top: 62px;
}
.page-top h2{
    font-size: 28px;
    text-align: center;
}
.page-top p{
    margin-top: 50px;
    text-align: center;
    line-height: 2.2;
}
.breadcrumb{
    padding: 10px;
    border-bottom: 1px solid #f1f1f4;
    background: #fff;
    margin-bottom: 100px;
}
.breadcrumb ul{
    display: flex;
    align-items: center;
    font-size: 12px;
    color: #333;
    flex-wrap: wrap;
}
.breadcrumb ul li{
    letter-spacing: 2px;
    line-height: 1.5;
}
.breadcrumb ul li:not(:last-of-type)::after{
	content: "＞";
	font-size: 12px;
	margin: 0 15px;
}
.page-header{
    position: relative;
    margin-bottom: 0;
}
.page-header-img{
    height: 300px;
}
.header-text{
    color: #fff;
    font-size: 44px;
    text-align: center;
    text-shadow: 2px 2px 3px rgba(0,0,0,0.5);
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 3px;
    font-family: "Noto Serif JP", serif;
}
.header-text span{
    display: block;
    font-size: 18px;
}
.comingsoon p{
    text-align: center;
    font-size: 18px;
}
.thanks-page h2{
    font-size: 30px;
    text-align: center;
    margin-bottom: 50px;
}

@media screen and (max-width:768px){
    .page, .single, .archive {
        margin-top: 52px;
    }
	.breadcrumb {
		padding-bottom: 10px;
		margin-bottom: 30px;
	}
    .breadcrumb ul {
        font-size: 12px;
        gap: 5px;
    }
    .breadcrumb ul li:not(:last-of-type)::after {
        margin: 0 10px;
    }
    .page-header-img {
        height: 220px;
    }
    .header-text {
        font-size: 32px;
    }
    .header-text span {
        font-size: 16px;
    }
    .page-top h2 {
        font-size: 24px;
    }
    .page-top p {
        margin-top: 30px;
        text-align: left;
        line-height: 2;
    }
    .thanks-page h2 {
        font-size: 18px;
        text-align: center;
        margin-bottom: 20px;
    }
}


/**********************************************************************/
/**************************  カンパニーページ  **************************/
/**********************************************************************/
.company-page table, .company-page td, .company-page th {
    border: none;
}
.company-message-flex{
    margin-bottom: 40px;
}
.company-message-img{
    flex-basis: 350px;
}
.company-message-img img{
    object-fit: cover;
    height: 100%;
}
.company-message-p{
    margin-bottom: 40px;
}
.company-message-info{
    flex-basis: calc(100% - 380px);
}
.company-message-info h3{
    font-size: 24px;
    font-weight: bold;
    border-bottom: 1px solid #aaa;
    padding-bottom: 10px;
    margin-bottom: 20px;
}
.company-message2-img{
    flex-basis: 52%;
}
.company-message2-info{
    flex-basis: 45%;
}
.ceo-name{
    line-height: 1.7;
    margin-top: 15px;
}
.ceo-name span{
    font-size: 20px;
    font-weight: 500;
}

.company-sec-title{
    background-image: url("../img/beige-bg.png");
    padding: 30px 0;
    margin-bottom: 80px;
}
.company-sec-title h2{
    max-width: 1000px;
    width: 90%;
    margin: auto;
    border-left: 5px solid;
    padding: 5px 20px;
    font-size: 18px;
}
.company-sec-title h2 span{
    display: block;
    font-size: 40px;
}
.phirosophy-p{
    width: 90%;
    margin: 0 auto 80px;
    text-align: center;
    font-size: 24px;
    letter-spacing: 3px;
    font-weight: 500;
}
.company-sub-title{
    margin: 0 auto 50px;
}
.company-sub-title div{
    display: flex;
    gap: 80px;
    align-items: center;
}
.company-sub-title>div::before, .company-sub-title>div::after {
    content: "";
    flex-grow: 1;
    border-top: 1px solid;
}
.company-sub-title div h3{
    text-align: center;
    font-size: 16px;
}
.company-sub-title div h3 span{
    display: block;
    font-size: 40px;
    line-height: 1.2;
}
.company-ph-item:not(:last-of-type){
    margin-bottom: 80px;
}
.company-ph-item>p{
    max-width: 900px;
    font-size: 18px;
    margin: auto;
}


.company-info{
	padding: 50px 0;
	background-image: url("../img/beige-bg.png");
}
.company-info-img{
	flex-basis: 40%;
}
.company-info-img img{
	height: 100%;
	object-fit: cover;
    max-height: 1150px;
}
.company-info-text{
    flex-basis: 50%;
    margin-right: 3%;
}
.company-info th{
    text-align: center;
    padding: 10px 0;
    border-right: 1px solid #6b5537;
    width: 150px;
}
.company-info td{
	padding: 10px 2em;
	line-height: 1.5;
}

.company-access .page-title2{
	margin-bottom: 0;
}
@media screen and (max-width:768px){
    .company-message-img{
        width: 85%;
        margin: 0 auto 15px;
    }
    .company-message-info h3 {
        font-size: 18px;
        text-align: center;
    }
    .company-message2-img {
        margin-bottom: 15px;
    }
    .company-info {
        padding: 30px 0;
    }
    .company-info-flex{
        width: 90%;
        margin: auto;
    }
    .company-info-text {
        margin-right: 0;
    }
    .company-info-img{
        width: 85%;
        margin: 0 auto 20px;
    }
    .company-info-img img {
        max-height: 360px;
        object-position: bottom;
    }
    .company-page tr {
        font-size: 14px;
    }
    .company-info th {
        padding: 15px 0;
        width: 95px;
    }
    .company-info td {
        padding: 15px 1em;
    }
}


/**********************************************************************/
/**************************  コンセプト  **************************/
/**********************************************************************/
.concept2{
    background-image: url("../img/beige-bg.png");
    padding: 80px 0;
}
.concept2-info{
    flex-basis: 45%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.concept2-info h2{
    font-size: 24px;
    margin-bottom: 20px;
    border-left: 5px solid var(--key);
    padding: 5px 0 5px 20px;
}
.concept2-img{
    flex-basis: 47%;
}
.concept2-img img{
    height: 100%;
    object-fit: cover;
}
.con3-item{
    padding: 80px 0;
}
.con3-item:first-of-type{
    padding-top: 0;
}
.con3-item:last-of-type{
    padding-bottom: 0;
}
.con3-item:nth-of-type(even){
    background: #EFEFEF;
}
.con3-item-info{
    flex-basis: 57%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.con3-item-title{
    display: flex;
    color: var(--key);
    align-items: center;
    margin-bottom: 20px;
    justify-content: space-between;
}
.con3-num{
    font-weight: 700;
    font-size: 50px;
}
.con3-item-info h3{
    flex-basis: calc(100% - 75px);
    font-size: 18px;
	font-family: "Noto Sans JP", sans-serif;
    font-weight: 600;
}
.con3-item-img{
    flex-basis: 40%;
}
.con3-item-img img{
    height: 100%;
    object-fit: cover;
}

@media screen and (max-width:768px){
    .concept2 {
        padding: 40px 0;
    }
    .concept2-info h2 {
        font-size: 18px;
        margin-bottom: 15px;
        border-left: 5px solid var(--key);
        padding: 5px 0 5px 15px;
    }
    .concept2-info p{
        margin-top: 15px;
    }
    .con3-num {
        font-weight: 600;
        font-size: 40px;
    }
    .con3-item-info h3 {
        flex-basis: calc(100% - 60px);
        font-size: 16px;
        font-weight: 500;
    }
    .con3-item-img{
        width: 90%;
        margin: 0 auto 15px;
    }
    .con3-item {
        padding: 40px 0;
    }
}

/**********************************************************************/
/**************************  商品  **************************/
/**********************************************************************/
.s-lineup-top{
    text-align: center;
    margin-bottom: 80px;
}
.s-lineup-top h2{
    text-align: center;
    margin-bottom: 60px;
    display: inline-block;
    font-size: 40px;
}
.s-lineup-top h2 img{
    width: 200px;
}
.s-lineup-top h2 span{
    display: block;
    font-size: 16px;
}
.s-lineup-text1{
    font-size: 18px;
    letter-spacing: 5px;
    margin-bottom: 80px;
}
.s-lineup-img{
    max-width: 1320px;
    margin: auto;
}
.s-lineup2 h3{
    text-align: center;
    font-weight: bold;
    font-size: 26px;
    margin-bottom: 50px;
}
.s-lineup2 p{
    max-width: 900px;
    margin: 0 auto 60px;
}
.s-lineup-items{
    gap: 2%;
}
.s-lineup-items div{
    flex-basis: 32%;
    margin-bottom: 20px;
}
.s-lineup-items div img{
    aspect-ratio: 1/1;
    object-fit: cover;
}
.s-lineup3{
    background: #f8f8f8;
    padding: 100px 0;
    margin-bottom: 80px;
}
.s-lineup3-item{
    background: #fff;
    padding: 40px;
    margin-bottom: 50px;
    border: 1px solid #ccc;
    border-radius: 5px;
}
.s-line3-img{
    flex-basis: 30%;
}
.s-line3-info{
    flex-basis: 65%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.s-line3-info h3{
    font-size: 24px;
    padding-bottom: 10px;
    border-bottom: 1px solid #ddd;
    margin-bottom: 20px;
}

@media screen and (max-width:768px){
    .s-lineup-top {
        margin-bottom: 50px;
    }
    .s-lineup-top h2 {
        margin-bottom: 30px;
    }
    .s-lineup-top h2 img {
        width: 160px;
    }
    .s-lineup-top span{
        font-size: 13px;
    }
.s-lineup-text1 {
    font-size: 16px;
    width: 90%;
    margin: 0 auto 50px;
}
.s-lineup2 h3 {
    font-size: 20px;
    margin-bottom: 30px;
}
.s-lineup2 p {
    margin: 0 auto 40px;
}
.s-lineup-items div {
    flex-basis: 49%;
    margin-bottom: 10px;
}
.s-lineup3 {
    padding: 50px 0;
    margin-bottom: 30px;
}
.s-lineup3-item {
    padding: 20px;
    margin-bottom: 30px;
}
.s-lineup3-item:last-of-type{
    margin-bottom: 0;
}
.s-line3-info h3 {
    font-size: 18px;
    margin: 10px 0 15px;
    text-align: center;
}


}



/**********************************************************************/
/**************************  長期保証  **************************/
/**********************************************************************/
.warranty-sec-title{
    background-image: url("../img/beige-bg.png");
    padding: 30px 0;
    margin-bottom: 80px;
    text-align: center;
}
.warranty-sec-title p{
    font-size: 18px;
    line-height: 1;
    margin-bottom: 8px;
}
.warranty-sec-title span{
    font-size: 30px;
    font-weight: bold;
}
.warranty-sec-title h3{
    font-size: 30px;
}
.warranty-item{
    margin-bottom: 20px;
}
.warranty-item div{
    flex-basis: 48%;
}
.warranty-item p{
    flex-basis: 48%;
    display: flex;
    align-items: center;
}
.warranty-page .kome{
    text-align: right;
    margin-bottom: 80px;
}
.warranty2 h4{
    font-size: 20px;
    display: flex;
    align-items: center;
    gap: 20px;
    margin: 30px auto 20px;
    font-weight: 600;
}
.warranty2 h4::before, .warranty2 h4::after{
    content: "";
    flex-grow: 1;
    border-top: 1px solid;
}
.warranty2 h4 span{
    background: #ff1493;
    padding: 0 10px;
    margin: 0 5px;
    color: #fff;
}
.bg-e{
    background: #eee;
}
.warranty2 th{
    background: #555;
    color: #fff;
    text-align: center;
}
@media screen and (max-width:768px){
.warranty-sec-title p {
    font-size: 14px;
}
.warranty-sec-title span {
    font-size: 26px;
}
.warranty-sec-title h3 {
    font-size: 22px;
}
.warranty-sec-title {
    margin-bottom: 30px;
}
.warranty-item div {
    margin-bottom: 15px;
}
.warranty-page .kome {
    text-align: left;
    margin-bottom: 30px;
}
.warranty2 h4 {
    gap: 10px;
}
.warranty2 h4 p{
    font-size: 16px;
    line-height: 1.7;
    text-align: center;
}
.table-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch; /* iOSでスムーズに */
  margin-bottom: 20px;
}
.table-scroll table {
  width: 100%;
  border-collapse: collapse;
}
.warranty2-1 table{
  min-width: 800px; /* 任意。内容に応じて調整可 */
}
.warranty2-2 table{
  min-width: 600px;
}


}


/**********************************************************************/
/**************************  採用情報  **************************/
/**********************************************************************/
.rec-sec-title{
    background: var(--key);
    color: #fff;
    padding: 14px;
    font-size: 20px;
    margin-bottom: 30px;
}
.info-table dl{
    display: flex;
}
.info-table dl:not(:last-of-type){
    border-bottom: 1px solid #e5e5e5;
    padding-bottom: 10px;
    margin-bottom: 10px;
}
.info-table dl dt{
    flex-basis: 180px;
    background: #f2f2f2;
    padding: 20px;
    border-radius: 5px;
    line-height: 1.8;
}
.info-table dl dd{
    flex-basis: calc(100% - 180px);
    padding: 20px 30px;
    line-height: 1.8;
}

@media screen and (max-width:768px){
.info-table dl {
    display: block;
}
.info-table dl:not(:last-of-type) {
    border-bottom: none;
    padding-bottom: 0;
    margin-bottom: 0;
}
.info-table dl dt {
    padding: 5px 20px;
}
.info-table dl dd {
    padding: 10px 20px;
    font-size: 14px;
}


}



/**********************************************************************/
/**************************  プライバシー  **************************/
/**********************************************************************/
.page-id-55 .img-pattern{
    display: none;
}
.page-id-55 .header-text{
    color: #000;
}
.page-id-55 .header-text span{
    color: #999;
}
.policy-main{
    margin-bottom: 80px;
}
.policy-main h2{
    border-left: 7px solid var(--key);
    padding: 3px 0 3px 10px;
    margin-bottom: 20px;
    font-size: 26px;
}
.policy-main h3{
	font-size: 24px;
	margin-bottom: 20px;
}
.policy-main p{
	margin-bottom: 30px;
    font-weight: 300;
}
.policy-main ul{
    background: #f8f8f8;
    padding: 20px;
    margin-bottom: 30px;
}
.policy-main li{
    text-indent: -20px;
    margin-left: 20px;
    line-height: 1.5;
}
.policy-main li:not(:last-of-type){
    margin-bottom: 20px;
}

@media screen and (max-width:768px){
    .policy-main {
        margin-bottom: 50px;
    }
	.policy-main h2 {
		border-left: 5px solid var(--key);
		margin-bottom: 10px;
		font-size: 18px;
	}
	.policy-main h3 {
		font-size: 16px;
		margin-bottom: 10px;
	}
    .policy-main li {
        font-size: 14px;
        line-height: 1.7;
    }
    .policy-main li:not(:last-of-type) {
        margin-bottom: 15px;
    }
}


/**********************************************************************/
/**************************  コンタクトフォーム  **************************/
/**********************************************************************/
.contact-top-p{
    margin-bottom: 30px;
    text-align: center;
}
.contact-form {
    padding: 60px 40px 30px;
    background: #f9f9f9;
    border-radius: 5px;
    box-shadow: 3px 3px 2px rgba(0,0,0,0.1);
}
form>p:first-of-type{
    display: none;
}
.form-title{
    text-align: center;
}
.form-title h2{
    font-size: 24px;
    margin-bottom: 60px;
    display: inline-block;
    position: relative;
}
.form-title h2::after{
    content: "";
    position: absolute;
    bottom: -10px;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 2px;
    background: #333;
}
.form-group {
    margin-bottom: 30px;
}
.form-label {
    font-size: 16px!important;
    margin-bottom: 15px!important;
    display: flex;
    align-items: center;
}
.required {
    color: #fff;
    background: var(--sub);
	border: 1px solid var(--sub);
    margin-left: 10px;
    font-size: 12px;
    padding: 3px 10px;
    letter-spacing: 2px;
}
.optional {
    color: var(--key);
	border: 1px solid var(--key);
    margin-left: 10px;
    font-size: 12px;
    padding: 3px 10px;
    letter-spacing: 2px;
}
.input-group p {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
    width: 100%;
    line-height: 1;
}
.input-label {
    width: 70px;
	font-size: 13px;
	color: #949497;
}
.input-group p span{
    width: 100%;
}
.has-label span{
    width: calc(100% - 70px)!important;
}
.checkbox-group {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.checkbox-group label {
    display: flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    font-size: 14px;
    margin-bottom: 5px;
}
input[type="checkbox"] {
    -webkit-appearance: checkbox;
    appearance: checkbox;
    flex: 0 0 18px;
    cursor: pointer;
}
.checkbox-group .wpcf7-list-item-label {
    flex: 1 1 auto; /* 残りを自動で折り返して使う */
    word-break: break-word;
}
.form-message-text{
    color: #949497;
    font-size: 13px;
    margin-bottom: 15px;
}
input, select, textarea {
    width: 100%;
    padding: 8px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 16px;
}
textarea {
    resize: vertical;
}
.hogo{
    margin-bottom: 30px!important;
}
.hogo a,.contact-bottom-p a{
    letter-spacing: 1px;
    color: blue;
    text-decoration: underline;
}
.submit-button {
    width: 250px;
    text-align: center;
    background: var(--key);
    margin: 0 auto;
    display: inline-block;
    color: #fff;
    padding: 15px;
    letter-spacing: 2px;
    border-radius: 5px;
}
.wpcf7-spinner{
    display: none!important;
}
.wpcf7-not-valid-tip {
    font-size: 14px;
    margin-top: 10px;
}
.contact-bottom-p{
    margin-top: 20px;
    line-height: 1.5;
}
.form-harf{
    flex-basis: 48%;
}

@media screen and (max-width:768px){
	.contact-form {
		padding: 30px 20px 10px;
	}
	.input-label {
		width: 70px;
	}
	input, select, textarea {
		font-size: 14px;
	}
    .form-title h2 {
        font-size: 18px;
        margin-bottom: 50px;
    }
	.form-label {
		font-size: 14px!important;
	}
	.required{
		white-space: nowrap;
		width: 60px;
		text-align: center;
	}
	.optional {
		width: 70px;
		text-align: center;
	}
    .contact-bottom-p {
        font-size: 13px;
    }
}
/**********************************************************************/
/*****************************  アーカイブ  *****************************/
/**********************************************************************/
.search .accordion-content.open{
	max-height: 70px;
}
.search .accordion-content{
    display: flex;
    align-items: center;
	flex-wrap: wrap;
}
.search .accordion-content p{
	margin: 0 20px 0 5px;
}
.filter-clear{
    margin-left: auto;
    border: 1px solid;
    padding: 10px;
    font-size: 14px;
}
.archive-items article{
    margin-bottom: 30px;
}
.pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    margin-top: 20px;
}
.page-numbers {
    display: inline-block;
    padding: 8px 12px;
    text-decoration: none;
    color: #333;
    border: 1px solid #ccc;
    border-radius: 4px;
    transition: background 0.3s;
}
.page-numbers:hover {
    background: #f0f0f0;
}
.page-numbers.current {
    background: var(--key);
    color: #fff;
    border-color: var(--key);
}
.item-none{
    text-align: center;
    font-size: 18px;
    width: 100%;
    margin-top: 50px;
}

/*ーーーーーーーーーーーニュースーーーーーーーーーーーー*/
.news-item{
    width: 100%;
    padding: 20px;
    box-shadow: 3px 3px 6px rgba(0,0,0,.3);
    border-radius: 7px;
    margin-bottom: 20px;
    background: #fff;
}
.single-news .entry-header {
    margin-bottom: 50px;
}
.news-item a {
    gap: 1.5rem;
    align-items: center;
}
.news-item a time {
    font-size: 13px;
    color: #949497;
    letter-spacing: 1px;
}

/*ーーーーーーーーーーーブログーーーーーーーーーーーー*/
.a-blog-items{
    gap: 4%;
}
.a-blog-item{
    flex-basis: 48%;
    margin-bottom: 30px;
    border-bottom: 1px solid #e0e0e0;
    padding-bottom: 30px;
}
.a-blog-item a{
    height: 100%;
}
.a-blog-img{
    flex-basis: 48%;
}
.a-blog-img img{
    aspect-ratio: 3/2;
    object-fit: cover;
}
.a-blog-info{
    flex-basis: 48%;
    display: flex;
    flex-direction: column;
    margin: 10px 0;
}
.a-blog-info time{
    margin-bottom: 10px;
    display: block;
}
.a-blog-info h3{
    
    margin-bottom: 10px;
}
.blog-excerpt {
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    line-height: 1.6;
    max-height: calc(1.6em * 2);
    margin: auto 0;
    font-size: 15px;
    color: #999;
}
@media screen and (max-width:768px){
    .a-blog-info time {
        font-size: 14px;
    }
}


/*ーーーーーーーーーーー施工事例ーーーーーーーーーーーー*/
.works-items{
    gap:3.5%;
}
.works-item{
    flex-basis: 31%;
    box-shadow: 2px 2px 5px rgba(0,0,0,0.3);
}
.works-item a{
    height: 100%;
    display: flex;
    flex-direction: column;
}
.works-img img{
    aspect-ratio: 1/1;
    object-fit: cover;
}
.works-info{
    padding: 20px;
    flex-grow: 1;
    flex-direction: column;
}
.works-info h3{
    margin: auto;
}
.works-tag{
    color: #999;
    font-size: 15px;
    margin-top: 20px;
}

/*ーーーーーーーーーーーイベントーーーーーーーーーーーー*/
.a-category{
    gap: 2px;
    margin-bottom: 50px;
}
.a-category a{
    display: inline-block;
    flex: 1 1 16%;
    background: #888;
    padding: 15px;
    color: #fff;
    text-align: center;
}
@media screen and (max-width:1000px){
    .a-category a{
        flex: 1 1 33%;
    }
}
.a-category a.active{
    background: #404040;
}

.event-items{
    margin-bottom: 50px;
    gap: 4%;
}
.event-item {
    flex-basis: 48%;
    box-shadow: 3px 3px 5px rgba(0,0,0,0.3);
    background: #fff;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    margin-bottom: 30px;
}
.event-page .f-event-status {
    padding: 8px;
    font-size: 16px;
    margin-bottom: 20px;
}

@media screen and (max-width: 1000px){
    .event-item-in{
        display: block;
    }
}
@media screen and (min-width: 769px) {
  .event-item:hover {
    transform: translateY(-4px);
  }
}
.event-item a{
    display: block;
    padding: 30px;
}
.event-item h3{
    font-size: 20px;
    margin-bottom: 20px;
    text-align: center;
}
.event-img{
    flex-basis: 48%;
}
.event-img img{
    aspect-ratio: 1/1;
    object-fit: cover;
}
.event-info{
    flex-basis: 48%;
    display: flex;
    flex-direction: column;
}
.f-event-status{
    display: block;
    padding: 10px;
    font-size: 20px;
}
.event-info dl{
    display: flex;
    flex-wrap: wrap;
    font-size: 15px;
    gap: 5px;
    margin-bottom: 20px;
}
.event-info dt{
    flex-basis: 45px;
}
.event-info dd{
    flex-basis: calc(100% - 50px);
}


/*ーーーーーーーーーーーお客様の声ーーーーーーーーーーーー*/
.voice-item{
    padding: 80px 0;
    margin-bottom: 0;
}
.voice-item:first-of-type{
    padding-top: 0;
}
.voice-item:nth-of-type(even){
    background: #eee;
}
.voice-item:nth-of-type(even)>div{
    flex-direction: row-reverse;
}
.voice-img{
    flex-basis: 40%;
}
.voice-info{
    flex-basis: 57%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.voice-info h3{
    font-size: 24px;
	font-family: "Noto Sans JP", sans-serif;
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 20px;
}
.voice-info h3::after{
    content: "";
    border-top: 1px solid;
    flex-grow: 1;
}



@media screen and (max-width:768px){
	.search .accordion-content.open {
		max-height: 120px;
        gap: 3px;
	}
	.archive-items article{
		margin-bottom: 20px;
	}
    .filter-clear{
        margin-top: 5px;
        font-size: 12px;
        padding: 5px 10px;
    }
    .pagination {
        margin-bottom: 30px;
    }
    .news-item {
        padding: 15px;
        margin-bottom: 15px;
    }
    .news-item a time {
        font-size: 12px;
        display: inline-block;
        margin-bottom: 5px;
    }
    .works-info h3 {
        font-size: 14px;
    }
    .voice-info h3 {
        font-size: 20px;
        margin-top: 10px;
    }
    .voice-item {
        padding: 40px 0;
    }
    .voice-img{
        width: 85%;
        margin: auto;
        margin: 0 auto 10px;
    }
    .single-news .entry-header {
        margin-bottom: 30px;
    }
}

/**********************************************************************/
/*****************************  シングル  *****************************/
/**********************************************************************/
.single{
    background-size: 3px 3px;
    background-image: repeating-linear-gradient(0deg, #eeeeee, #eeeeee 1px, transparent 1px, transparent);
}
.single-in{
    padding: 80px;
    background: #fff;
    box-shadow: 5px 5px 8px rgba(0,0,0,0.2);
    border-radius: 10px;
    margin-bottom: 50px;
}
.eyecatch{
    margin-bottom: 50px;
}
.single-page .eyecatch img{
    width: 100%;
    height: auto;
    object-fit: cover;
}
.entry-header{
    margin-bottom: 20px;
}
.entry-title{
    font-size: 30px;
    margin-bottom: 10px;
}
.single time{
    margin-bottom: 10px;
    display: block;
    letter-spacing: 2px;
    color: #949497;
}
.entry-content p{
    margin-bottom: 20px;
}
.entry-content li{
    letter-spacing: 2px;
    line-height: 2;
}

/*ーーーーーーーーーーーイベントーーーーーーーーーーーー*/
.s-event-info{
    margin-bottom: 50px;
}
.s-event-title{
    text-align: center;
    margin-bottom: 40px;
    font-size: 24px;
    background: #777;
    color: #fff;
    padding: 10px;
}
.event-closed{
    text-align: center;
    background: #333;
    color: #fff;
    font-size: 20px;
    margin-top: 50px;
    padding: 5px;
    line-height: 1.7;
}

/*ーーーーーーーーーーーブログーーーーーーーーーーーー*/
.single-blog h2.wp-block-heading{
    font-size: 24px;
    margin: 80px 0 30px;
}
.single-blog h3.wp-block-heading{
    font-size: 20px;
    margin: 80px 0 30px;
}
.single-blog h4.wp-block-heading{
    font-size: 18px;
    margin: 30px 0 20px;
}
.single-blog hr{
    margin-bottom: 20px!important;
}
.single-blog ul.wp-block-list{
    padding-left: 2%;
    margin-bottom: 20px;
}



/*ーーーーーーーーーーーワークスーーーーーーーーーーーー*/
.s-works-title{
    text-align: center;
    font-weight: 600;
    font-size: 22px;
    margin: 20px auto 40px;
}
.s-works-sectitle{
    border-bottom: 2px solid;
    margin-bottom: 20px;
    font-size: 24px;
    padding: 0 20px 10px;
}
.s-works-sectitle span{
    font-size: 16px;
    margin-left: 1rem;
}
.s-works-info{
    margin-bottom: 50px;
}
.s-works-info-items{
    background: #EDEDED;
    padding: 10px 20px;
    margin-bottom: 30px;
}
.s-works-info-items dl{
    flex-basis: 50%;
}
.s-works-info-items dt{
    flex-basis: 120px;
}
.s-works-info-items dd{
    flex-basis: calc(100% - 140px);
}
.s-works-info>p{
    max-width: 820px;
    margin: auto;
}
.s-works-gallery{
    margin-bottom: 120px;
}
.s-works-imgs{
    gap: 8px;
}
.s-works-img{
    flex-basis: calc((100% - 16px) / 3);
}
.s-works-img img{
    aspect-ratio: 1/1;
    object-fit: cover;
}



@media screen and (max-width:768px){
    .single {
        background-image: none;
    }
    .single-page {
        padding: 0;
    }
    .single-in {
        padding: 0 30px;
        border-radius: 0;
        width: 100%;
        box-shadow: none;
    }
    .entry-title {
        font-size: 20px;
        margin-bottom: 5px;
    }
    .has-text-align-center{
        text-align: left!important;
    }
    .single time {
        font-size: 13px;
    }
    .event {
        margin: 30px auto;
    }
    .s-event-title {
        font-size: 18px;
        padding: 5px;
        width: 100vw;
        margin: 0 calc(50% - 50vw) 25px;
    }
    .s-event .contact-form {
        padding: 30px 30px 10px;
        width: 100vw;
        margin: 0 calc(50% - 50vw);
    }
    .event-closed {
        font-size: 16px;
    }

    .s-works-info-items dl:first-of-type {
        margin-bottom: 10px;
    }

    .single-blog h2.wp-block-heading{
        font-size: 20px!important;
        margin: 40px 0 20px;
    }
    .single-blog h3.wp-block-heading{
        font-size: 18px!important;
        margin: 40px 0 20px;
    }
    .single-blog h4.wp-block-heading{
        font-size: 16px!important;
        margin-top: 20px;
    }
    .single-blog .eyecatch {
        margin-bottom: 30px;
    }
    .single-blog ul{
        font-size: 14px;
    }
}


/**********************************************************************/
/*****************************  マージン  *****************************/
/**********************************************************************/

.mb-0{
    margin-bottom: 0!important;
}
.mb-5{
	margin-bottom: 5px!important;
}
.mb-10{
	margin-bottom: 10px!important;
}
.mb-20{
	margin-bottom: 20px!important;
}
.mb-30{
	margin-bottom: 30px!important;
}
.mb-50{
	margin-bottom: 50px!important;
}
.mb-80{
	margin-bottom: 80px!important;
}
.mb-100{
	margin-bottom: 100px!important;
}
.mt-30{
	margin-top: 30px;
}
.mt-50{
	margin-top: 50px;
}

@media screen and (max-width:768px){
    .mb-0-sp{
        margin-bottom: 0!important;
    }
	.mb-30{
		margin-bottom: 20px!important;
	}
	.mb-50{
		margin-bottom: 30px!important;
	}
	.mb-80{
		margin-bottom: 30px!important;
	}
	.mb-100{
		margin-bottom: 50px!important;
	}
	.mt-30{
		margin-top: 20px!important;
	}
	.mt-50{
		margin-top: 20px!important;
	}
}

/**********************************************************************/
/**************************  PCスマホ切り替え  **************************/
/**********************************************************************/

.pc {
  display: block !important;
}
/*pcのみ表示ブロック*/
.sp {
  display: none !important;
}
/*スマホのみ表示ブロック*/
@media screen and (max-width: 768px) {
  .pc {
    display: none !important;
  }
  /*pcのみ表示ブロック*/
  .sp {
    display: block !important;
  }
  /*スマホのみ表示ブロック*/
}
