@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: #0073aa;
  --bg: rgba(220,220,220,0.5);
}

html {
  scroll-behavior: smooth;
  overflow-x: hidden;
}
body{
	font-family: "Noto Sans JP", sans-serif;
    background-image: url("../img/main-bg.webp");
    color: #555;
}
img{
	width: 100%;
    height: auto;
	display: block;
}
p{
	line-height: 2;
	letter-spacing: 1px;
}
h1,h2,h3,h4{
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 2px;
}
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;
    font-weight: 500;
}
dt, dd {
	line-height: 1.5;
}
section{
    margin-bottom: 100px;
}

@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-al{
	display: flex;
	flex-wrap: wrap;
}
.flex-sb, .flex-sb-al{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.rev{
	flex-direction: row-reverse;
}
@media screen and (max-width:768px){
	.flex,.flex-sb {
		display: block;
	}
}


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


.text-r{
	text-align: right;
}
.text-c{
	text-align: center;
}

.sec-title{
    margin-bottom: 80px;
}
.sec-title .title-main{
    position: relative;
    font-size: 28px;
    text-align: center;
    font-weight: 700;
}
.sec-title .title-sub{
    display: block;
    font-size: 16px;
    color: var(--key);
}
.sec-title p{
    margin: 60px auto 0;
    width: 90%;
    max-width: 800px;
}


@media screen and (max-width:768px){
    .sec-title {
        margin-bottom: 30px;
    }
    .sec-title .title-main {
        font-size: 24px;
        font-weight: 600;
    }
    .sec-title p {
        margin: 30px auto 0;
    }
	.simple-slider{
		display: flex;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scroll-behavior: smooth;
		-webkit-overflow-scrolling: touch;
		flex-wrap: nowrap;
        padding-bottom: 10px;
	}
	.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;
}


.link-btn {
	border: 1px solid var(--key);
	border-radius: 30px;
	padding: 15px 80px;
	font-size: 16px;
	display: inline-block;
	color: #fff;
    background: var(--key);
	transition: all 0.3s ease;
    position: relative;
}

.link-btn:hover {
	background-color: #fff; /* うっすら背景 */
	transform: translateY(-2px);          /* 少し浮く */
	box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.1); /* 影で立体感 */
    color: var(--key);
}
.link-btn2{
    padding: 10px 30px;
    border: 1px solid;
    display: inline-block;
    background: #fff;
    font-size: 14px;
    transition: all 0.3s ease;
}
.link-btn2:hover{
    background: var(--key);
    color: #fff;
}
.inner-item{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
}

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

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


/**********************************************************************/
/*************************  アニメーション  *************************/
/**********************************************************************/

.fade-in {
    opacity: 0;
    transform: translateY(20px);
    transition: all 0.8s ease-out;
}

.fade-in.visible {
    opacity: 1;
    transform: translateY(0);
}

.delay-0 {
    transition-delay: 0s;
}
.delay-1 {
    transition-delay: 0.3s;
}

/***ホバーアニメーション***/
@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);     /* 横幅を元に戻す */
	}
    a:hover .hov-underline::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.7;
	}
	.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;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 10;
    background: #fff;
	height: 62px;
    padding: 2px;
    transition: top 0.3s ease;
}
.home .header-fix{
    top: -62px;
}
.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.75rem;
    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;
    letter-spacing: .04em;
    font-weight: 500;
}
.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;
    font-weight: 500;
}
.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;
    transition: top 0.3s ease;
}
.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%;
    position: relative;
}
.drawer-img::after{
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255,255,255,0.5);
}
.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;
    font-weight: 500;
}
.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;
    font-weight: 600;
}


@media screen and (max-width:768px){
	.hamburger-area {
		top: 14px;
		right: 16px;
	}
	.drawer-text {
		padding: 40px 30px 120px;
	}
	.drawer-logo {
		margin: 0 auto 30px;
	}
	.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;
	}
}

/**********************************************************************/
/***************************  フロントページ  ***************************/
/**********************************************************************/
.front-slider {
  position: relative;
}
.front_top_slider {
  margin-bottom: 80px;
  height: 100vh;
}
.front_top_slider .swiper-slide {
  height: 100%;
}
.front_top_slider .swiper-img{
    height: 100%;
}
.front_top_slider .swiper-img img {
  height: 100%;
  object-fit: cover;
}
@keyframes zoomUp {
  from { transform: scale(1); }
  to { transform: scale(1.15); }
}
.front_top_slider .swiper-slide-active .swiper-img,
.front_top_slider .swiper-slide-duplicate-active .swiper-img,
.front_top_slider .swiper-slide-prev .swiper-img {
  animation: zoomUp 9s linear both;
}
.front_top_slider .swiper-img img {
  width: 100%;
  display: block;
}
.front-top-text{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1;
}
.front-top-text h1{
    font-size: 38px;
    color: #fff;
    letter-spacing: 3px;
}
.f-event{
    position: relative;
}
.f-event-items{
    gap: 3.5%;
    margin-bottom: 50px;
}
.f-event-item{
    flex-basis: 31%;
}
.f-event-img{
    margin-bottom: 10px;
}
.f-event-img img{
    aspect-ratio: 1/1;
    object-fit: cover;
}
.f-event-status{
    display: inline-block;
    width: 130px;
    padding: 5px;
    text-align: center;
    color: #fff;
    margin: 5px 0;
    font-size: 14px;
}
.f-event-status.open{
    background: #dc143c;
}
.f-event-status.closed{
    background: #616161;
}
.f-event-info h3{
    font-size: 18px;
    border-bottom: 1px solid #aaa;
    padding: 7px 0;
}
.f-event-info dl{
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    margin-bottom: 15px;
}
.f-event-info dt{
    flex-basis: 80px;
    border-bottom: 1px solid #aaa;
    padding: 7px 0;
}
.f-event-info dd{
    flex-basis: calc(100% - 80px);
    border-bottom: 1px solid #aaa;
    padding: 7px 0;
}
.link-pict{
    padding-top: 10px;
}
.f-event-bg{
    position: absolute;
    left: 0;
    bottom: 25px;
    width: 100%;
    height: 60%;
    background: var(--bg);
}
.f-event-in{
    position: relative;
}
.f-concept-img{
    flex-basis: 55%;
}
.f-concept-img img{
    height: 100%;
    object-fit: cover;
}
.f-concept-info{
    align-self: flex-end;
    flex-basis: 45%;
    margin-left: -5%;
    background: #fff;
    padding: 40px;
    display: flex;
    flex-direction: column;
    border-radius: 30px;
    margin-bottom: 30px;
    margin-top: 30px;
}
.f-concept-info .sec-title{
    margin-bottom: 40px;
}
.f-concept-info p{
    font-size: 14px;
    line-height: 1.8;
    margin-bottom: 30px;
}
.f-contents{
    background: var(--bg);
    padding: 80px 0;
}
.f-contents-items{
    margin-top: -20px;
}
.f-contents-items>div{
    flex-basis: 47%;
}
.f-contents-items div a{
    display: block;
}
.f-contents-items div a:first-of-type{
    margin-bottom: 50px;
}
.f-contents-item-l{
    margin-top: 60px;
}
.f-contents-img{
    width: 90%;
}
.f-contents-img img{
    aspect-ratio: 7/4;
    object-fit: cover;
}
.f-contents-info{
    background: #fff;
    border-radius: 20px;
    margin-left: auto;
    margin-top: -30px;
    padding: 25px;
    position: relative;
    width: 80%;
    box-shadow: 1px 1px 2px rgba(0,0,0,0.3);
}
.f-contents-info h3{
    color: var(--key);
    font-size: 18px;
    margin-bottom: 15px;
}
.f-contents-info p{
    font-size: 15px;
    line-height: 1.7;
}
.f-works-slider{
    margin-bottom: 80px;
}
.f-works-slider .swiper-wrapper {
  transition-timing-function: linear !important;
}
.f-works-item{
    position: relative;
}
.f-works-item img{
    aspect-ratio: 1/1;
    object-fit: cover;
}
.f-works-item h3{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    justify-content: center;
    align-items: center;
    font-size: 18px;
    text-align: center;
    background: rgba(0,0,0,0.5);
    opacity: 0;
    transition: opacity 0.3s ease;
    display: flex;
    color: #fff;
}
.f-works-item:hover h3{
    opacity: 1;
}

.f-news-blog{
    background: var(--bg);
    padding: 100px 0;
}
.f-news-blog-title {
    margin-bottom: 50px;
    align-items: flex-end;
}
.f-news-blog-title .title-main{
    font-size: 28px;
    font-weight: 700;
}
.f-news-blog-title .title-sub{
    display: block;
    font-size: 16px;
    color: var(--key);
}
.f-news-blog-title p{
    margin-top: 30px;
}
.f-news-blog time{
    font-size: 14px;
    margin-right: 10px;
}
.f-news{
    flex-basis: 47%;
    display: flex;
    flex-direction: column;
}
.f-news-items{
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
.f-news-info{
    align-items: center;
    flex-wrap: nowrap;
    margin-bottom: 8px;
}
.f-news-info h3{
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex-basis: calc(100% - 90px);
}
.news-line{
    width: 100%;
    height: 1px;
    background: #ccc;
}
.news-link{
    font-size: 14px;
}
.f-blog{
    flex-basis: 47%;
}
.f-blog-item:not(:last-of-type){
    padding-bottom: 15px;
    margin-bottom: 15px;
    border-bottom: 1px solid #ccc;
}
.f-blog-img{
    height: 100px;
}
.f-blog-img img{
    aspect-ratio: 3/2;
    object-fit: cover;
    height: 100%;
}
.f-blog-info{
    flex-basis: calc(100% - 170px);
    display: flex;
    flex-direction: column;
}
.f-blog-info .text-r{
    margin-top: auto;
}


.f-estate a{
    margin: 0 auto 100px;
    max-width: 800px;
    width: 90%;
    height: 250px;
    background: #999;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 30px;
}
.contact-area{
    background-image: url(https://winglife.site/wp-content/uploads/2025/06/lineup-top.webp);
    position: relative;
    padding: 50px 0;
    background-size: cover;
    background-position: center;
    text-align: center;
    color: #fff;
    text-shadow: 2px 2px 1px rgba(0,0,0,0.5);
    z-index: 0;
    overflow: hidden;
}
.contact-area::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.3);
    z-index: -1;
}
.contact-in h2{
    margin-bottom: 30px;
}
.contact-in h2 span{
    font-size: 40px;
    display: block;
}
.contact-text1 {
    border-bottom: 1px solid;
    padding-bottom: 20px;
    margin-bottom: 20px;
}
.contact-tel {
    margin-bottom: 50px;
}
.contact-tel p {
    margin-bottom: 10px;
}
.contact-tel a {
    display: inline-block;
    font-size: 24px;
}
.contact-tel a span {
    font-size: 50px;
    letter-spacing: 4px;
    margin-left: 5px;
}
.btn-flex2 {
    display: flex;
    justify-content: center;
    gap: 20px;
}
.contact-area .btn-flex2 .link-btn {
    background: transparent;
    position: relative;
    border: 2px solid #fff;
    text-align: center;
    padding: 15px 20px 15px 25px;
    width: 350px;
    color: #fff;
}
.btn-flex2 .link-btn img {
    width: 40px;
    position: absolute;
    left: 20px;
    top: 50%;
    transform: translateY(-50%);
}
.link-btn::after {
    content: "＞";
    position: absolute;
    top: 50%;
    right: 30px;
    transform: translateY(-50%);
}

.map{
    height: 400px;
}

@media screen and (max-width:768px){
    .front-top-text h1 {
        font-size: 24px;
        text-align: center;
    }
.f-event-info h3 {
    font-size: 16px;
    padding: 7px 0;
}
.f-event-info dl {
    margin-bottom: 20px;
    font-size: 14px;
}
.link-info{
    font-size: 14px;
}
.f-event {
    margin-bottom: 80px;
}
.f-event-bg {
    bottom: -30px;
    height: 75%;
}
.f-concept-info {
    margin-left: 0;
    padding: 30px;
    border-radius: 0px;
    margin-bottom: 30px;
    margin-top: 0px;
}
.f-concept-info p {
    margin-bottom: 50px;
}
.f-contents {
    padding: 50px 0 30px;
}
.f-contents-items {
    margin-top: -30px;
}
.f-contents-items div a {
    margin-bottom: 30px!important;
}
.f-contents-info {
    padding: 20px;
    width: 90%;
}
.f-contents-info h3 {
    font-size: 16px;
    margin-bottom: 10px;
}
.f-contents-info p {
    font-size: 14px;
}
.f-works-slider {
    margin-bottom: 50px;
}
.f-news {
    margin-bottom: 50px;
}
.f-news-blog {
    padding: 50px 0;
}
.f-news-blog-title {
    margin-bottom: 30px;
}
.f-news-blog-title .title-main {
    font-size: 24px;
    font-weight: 600;
    text-align: center;
}
.f-news-info h3 {
    font-size: 14px;
    margin-top: 5px;
}
.news-line {
    margin: 15px 0;
}
.f-news-items {
    margin-bottom: 50px;
}
.f-blog {
    border-top: 1px solid;
    padding-top: 40px;
}
.f-blog-items{
    margin-bottom: 50px;
}
.f-blog-img {
    height: auto;
    margin-bottom: 10px;
}
.f-blog-info h3{
    margin-bottom: 10px;
}
.f-estate a {
    margin: 0 auto 50px;
}
.contact-in h2 {
    font-size: 14px;
}
.contact-in h2 span {
    font-size: 24px;
}
.contact-tel a {
    font-size: 18px;
}
.contact-tel a span {
    font-size: 32px;
    letter-spacing: 3px;
}
.btn-flex2 {
    display: block;
}
.contact-area .btn-flex2 .link-btn {
    padding: 13px 20px 13px 25px;
    width: 100%;
    margin-bottom: 10px;
}
.link-pict {
    font-size: 14px;
}



}

/**********************************************************************/
/******************************  footer  ******************************/
/**********************************************************************/
.footer{
    padding-top: 50px;
    background: #f2f2f2;
}
.footer-wrapper{
	margin-bottom: 50px;
}
.footer-info{
	flex-basis: 280px;
}
.footer-logo a{
    display: flex;
    align-items: center;
    font-size: 28px;
    letter-spacing: 2px;
    font-weight: 300;
    margin-bottom: 20px;
}
.footer-logo img{
    height: 50px;
    display: inline-block;
    margin-right: 5px;
    width: auto;
}
.footer-info p{
	margin-bottom: 20px;
}
.footer-info p a{
    font-size: 18px;
    color: var(--key);
    text-decoration: underline;
}
.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-contact{
    margin-bottom: 10px!important;
}
.footer-contact a{
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 13px 10px;
    border-radius: 5px;
    letter-spacing: 3px;
    justify-content: center;
    font-size: 18px;
    border: 1px solid;
}
.event-btn, .tel-btn{
    background: #555;
    border-color: #555;
    color: #fff;
}
.contact-btn{
    color: #fff;
    border-color: var(--key);
    background: var(--key);
}
.catalog-btn{
    color: var(--key);
}
.copyright{
	background: #000;
	color: #fff;
	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;
    border: 1px solid;
}
.bottom-nav a img{
	width: 25px;
}
.grecaptcha-badge {
  transition: bottom 0.3s ease !important;
  z-index: 1000;
}


@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;
    }
	.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: 48%;
		display: block;
		text-align: center;
	}
	.bottom-nav a img {
		width: 23px;
		margin: 0 auto 5px;
	}
    
}

/**********************************************************************/
/*****************************  page共通  *****************************/
/**********************************************************************/
.page, .single, .archive{
	margin-top: 62px;
}
.breadcrumb{
    padding-bottom: 10px;
    margin-top: 10px;
    margin-bottom: 100px;
}
.breadcrumb ul{
    display: flex;
    align-items: center;
    font-size: 14px;
    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: 60vh;
}
.header-text{
    color: #fff;
    font-size: 50px;
    font-weight: 700;
    margin-left: 15%;
    letter-spacing: 5px;
    text-shadow: 1px 2px 1px rgba(0,0,0,0.5);
}
.header-text span{
    display: block;
    font-size: 18px;
    font-weight: 500;
}
.page-top{
    width: 90%;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}
.page-top h2{
    font-size: 30px;
}
.page-top p{
    margin-top: 60px;
    line-height: 2.2;
    font-size: 18px;
}
.title-area{
    background: #EBECED;
    padding: 40px;
    height: 200px;
    display: flex;
    align-items: center;
    margin-bottom: 60px;
}
.page-title .title-main{
    font-size: 30px;
    border-bottom: 1px solid;
    padding-bottom: 5px;
}
.page-title .title-sub{
    font-size: 14px;
}




@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: 20px;
    }
    .page-top p {
        margin-top: 30px;
        font-size: 14px;
        text-align: left;
    }
    .title-area {
        padding: 30px;
        height: 160px;
        margin-bottom: 40px;
    }
    .page-title .title-main {
        font-size: 24px;
    }
}


/**********************************************************************/
/**************************  コンセプトページ  **************************/
/**********************************************************************/
.concept-slider .swiper-wrapper{
    transition-timing-function: linear !important;
}
.concept-item{
    background: var(--bg);
    padding: 60px 0 100px;
}
.concept-item-in{
    position: relative;
}
.concept-item-img{
    flex-basis: 48%;
    position: relative;
    z-index: 1;
}
.concept-item-img img{
    height: 95%;
    object-fit: cover;
}
.concept-item-info{
    flex-basis: 48%;
    position: relative;
    z-index: 2;
}
.concept-num{
    color: #867656;
    font-size: 35px;
    text-align: center;
    font-weight: bold;
    margin-bottom: 60px;
    font-family: "Noto Serif JP", serif;
    font-style: italic;
    line-height: 1;
    display: block;
}
.concept-num span{
    font-size: 50px;
}
.concept-item-info h2{
    font-size: 24px;
    margin-bottom: 10px;
}
.concept-item-info h3{
    border-bottom: 2px solid;
    padding-bottom: 5px;
    margin-bottom: 30px;
}
.concept-item-info p{
    line-height: 1.8;
}
.concept-item-bg{
    background: #E5DFD1;
    bottom: -50px;
    right: -50px;
    height: calc(100% - 20px);
    width: 60%;
    position: absolute;
}
.rev .concept-item-bg{
    right: auto;
    left: -50px;
}

@media screen and (max-width:768px){
    .concept-item-bg {
        display: none;
    }
    .concept-item {
        padding: 30px 0;
    }
    .concept-item-img {
        margin-bottom: 15px;
    }
    .concept-num {
        font-size: 18px;
        margin-bottom: 25px;
        letter-spacing: 2px;
    }
    .concept-num span {
        font-size: 30px;
    }
    .concept-item-info h2 {
        font-size: 22px;
        margin-bottom: 20px;
        text-align: center;
    }
    .concept-item-info h3 {
        border-bottom: 1px solid;
        text-align: center;
    }
}


/**********************************************************************/
/**************************  建築プランと価格ページ  **************************/
/**********************************************************************/
.plan-title h2{
    background: var(--key);
    width: 170px;
    height: 160px;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    color: #fff;
    gap: 10px;
    font-size: 14px;
}
.plan-title h2 span{
    font-size: 20px;
}
.plan-title>div{
    flex-basis: calc(100% - 170px);
}
.plan-title h3,.plan-title p{
    height: 80px;
    display: flex;
    align-items: center;
    padding: 0 30px;
}
.plan-title h3{
    border-bottom: 1px dashed var(--key);
    font-size: 24px;
}
.plan-title p{
    line-height: 1.5;
    font-weight: 500;
}
.plan-item-foot{
    padding-left: 170px;
    padding-top: 30px;
    position: relative;
}
.plan-item-foot::before{
    content: "";
    position: absolute;
    height: 100%;
    width: 2px;
    background: var(--key);
    top: 0;
    left: 85px;
}
.plan-info h4{
    margin: 30px;
    font-size: 20px;
}
.plan-info p{
    text-align: right;
    margin-top: 20px;
}
.plan-info p span{
    font-size: 24px;
    font-weight: bold;
    margin-left: 1rem;
}

@media screen and (max-width:768px){
    .plan-item{
        border-left: 3px solid var(--key);
    }
    .plan-title h2 {
        width: 100%;
        height: auto;
        gap: 0px;
        padding: 8px;
        margin-bottom: 20px;
    }
    .plan-title h3 {
        font-size: 18px;
        padding: 0 10px 10px;
        margin: 0 20px 15px;
        height: auto;
    }
    .plan-title p {
        height: auto;
        margin: 0 30px;
    }
    .plan-item-foot::before {
        width: 0px;
    }
    .plan-item-foot {
        padding-left: 30px;
        padding-top: 10px;
    }
    .plan-info h4 {
        margin: 20px 0;
        font-size: 18px;
    }
    .plan-info p span {
        font-size: 20px;
    }
}

/**********************************************************************/
/**************************  住宅性能ページ  **************************/
/**********************************************************************/
.per-top-in{
    margin-top: 60px;
}
.per-top-in h3{
    background: var(--key);
    color: #fff;
    font-size: 26px;
    padding: 10px;
    margin-bottom: 50px;    
}
.per-top-items{
    justify-content: space-around;
}
.per-top-items>div{
    flex-basis: 17%;
    font-size: 22px;
}
.per-top-items>div img{
    margin-bottom: 10px;
}
.per-sec-title{
    height: 250px;
    position: relative;
    margin-bottom: 100px;
}
.per-sec-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.3);
}
.per-sec-title img{
    height: 100%;
    object-fit: cover;
}
.per-sec-title-in{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 1;
    color: #fff;
}
.per-sec-title-in h2{
    color: #fff;
    text-shadow: 2px 2px 3px rgba(0,0,0,0.5);
    letter-spacing: 3px;
    font-size: 32px;
    text-align: center;
    font-weight: 500;
    line-height: 1.4;
}
.per-sec-title-in h2 span{
    font-size: 50px;
    font-weight: bold;
    display: block;
}
.per-sec-top{
    margin-bottom: 60px;
}
.per-sec-top>div{
    flex-basis: 48%;
}
.per-sec-top-info h3{
    font-size: 20px;
    font-weight: bold;
    border-bottom: 1px solid;
    text-align: center;
    padding-bottom: 10px;
    margin-bottom: 15px;
}
.per-sec-foot{
    background: var(--bg);
    padding: 50px;
}
.per-sec-foot-l{
    flex-basis: 35%;
    background: #fff;
}
.per-sec-foot-l h4{
    background: #9E7C5F;
    font-size: 24px;
    text-align: center;
    color: #fff;
    margin-bottom: 25px;
}
.per-sec-foot-l h5{
    text-align: center;
    font-size: 24px;
    border-bottom: 1px solid;
    margin: 0 30px 20px;
    padding-bottom: 10px;
}
.per-sec-foot-l p{
    padding: 0 30px 30px;
    line-height: 1.8;
}
.per-sec-foot-r{
    flex-basis: 58%;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
}

@media screen and (max-width:768px){
    .per-top-in {
        margin-top: 30px;
    }
    .per-top-in h3 {
        font-size: 16px;
        margin-bottom: 20px;
    }
    .per-top-items {
        justify-content: center;
        gap: 3.5%;
    }
    .per-top-items>div {
        flex-basis: 31%;
        font-size: 16px;
    }
    .per-top-items>div:nth-of-type(-n+3){
        margin-bottom: 20px;
    }
    .per-sec-title {
        height: 200px;
        margin-bottom: 20px;
    }
    .per-sec-title-in h2 {
        font-size: 20px;
    }
    .per-sec-title-in h2 span {
        font-size: 38px;
    }
    .per-sec-top {
        margin-bottom: 30px;
    }
    .per-sec-top-info h3 {
        font-size: 16px;
        margin-top: 10px;
    }
    .per-sec-foot {
        background: none;
        padding: 0px;
    }
    .per-sec-foot-l h4 {
        font-size: 16px;
        margin-bottom: 20px;
        padding: 5px;
    }
    .per-sec-foot-l h5 {
        font-size: 18px;
        margin: 0 20px 15px;
        padding-bottom: 10px;
    }
}


/**********************************************************************/
/**************************  家づくりの流れページ  **************************/
/**********************************************************************/
.flow-items-title{
    background: var(--bg);
    padding: 50px;
    text-align: center;
    margin-bottom: 80px;
}
.flow-items-title h2{
    background: #333;
    color: #fff;
    font-weight: bold;
    padding: 6px 30px;
    display: inline-block;
    font-size: 18px;
    margin-bottom: 15px;
}
.flow-items-title p{
    font-size: 18px;
    font-weight: 500;
}
.flow-item {
    padding: 0 0 50px 30px;
    position: relative;
}
.flow-item:not(:last-of-type)::after {
    content: "";
    height: 100%;
    position: absolute;
    top: 36px;
    left: 0;
    width: 1px;
    background: #7F7F7F;
}
.flow-item::before {
    content: "●";
    position: absolute;
    top: 27px;
    left: -8px;
    color: #7F7F7F;
}
.flow-item>div {
    flex-basis: 45%;
}
.flow-item-info h3 {
    display: flex;
    align-items: center;
    font-size: 22px;
    margin-bottom: 30px;
    line-height: 1.3;
}
.flow-num{
    width: 61px;
    display: inline-block;
    border-bottom: 2px solid;
    padding-bottom: 5px;
    margin-right: 20px;
    font-size: 50px;
    letter-spacing: 0px;
    font-style: italic;
}

@media screen and (max-width:768px){
.flow-items-title {
    padding: 30px;
    margin-bottom: 30px;
}
.flow-items-title h2 {
    font-size: 16px;
    margin-bottom: 10px;
}
.flow-items-title p {
    font-size: 16px;
}
.flow-item {
    padding: 0 0 30px 30px;
}
.flow-item::before {
    top: 22px;
}
.flow-item-img{
    margin-bottom: 15px;
}
.flow-item-info h3 {
    font-size: 20px;
    margin-bottom: 20px;
}
.flow-num {
    width: 55px;
    margin-right: 10px;
    font-size: 40px;
}
.flow-item-info>h3>span:last-of-type{
    width: calc(100% - 50px);
    font-size: 18px;
}
.flow-item::before {
    left: -3px;
}
.flow-item:not(:last-of-type)::after {
    left: 5px;
}

}


/**********************************************************************/
/**************************  不動産ページ  **************************/
/**********************************************************************/
.estate1{
    background-image: url("../img/estate/estate7.png");
    background-size: cover;
    padding: 80px 0;
}
.estate1 h2{
    text-align: center;
    font-size: 32px;
    margin-bottom: 80px;
    color: #fff;
}
.estate1-item{
    flex-basis: 30%;
}
.estate1-item:nth-of-type(-n+3){
    margin-bottom: 50px;
}
.estate1-item p{
    text-align: center;
    background: #fff;
    padding: 20px;
    font-size: 22px;
    line-height: 1.8;
}
.estate1-item p span{
    color: var(--key);
}
.estate-sec-title{
    text-align: center;
    font-size: 30px;
    margin-bottom: 60px;
}
.estate2-item{
    flex-basis: 46%;
    display: flex;
    flex-direction: column;
}
.estate2-item:nth-of-type(-n+2){
    margin-bottom: 50px;
}
.estate2-item h3{
    text-align: center;
    background: var(--key);
    color: #fff;
    font-size: 24px;
    padding: 10px;
}
.estate2-info{
    background: #fff;
    padding: 20px 30px;
    flex-grow: 1;
}
.estate2-info div{
    width: 200px;
    margin: auto;
}
.estate3{
    background: var(--bg);
    padding: 80px 0;
}
.estate3-item{
    flex-basis: calc(33% - 50px);
    background: #fff;
    padding: 30px;
    text-align: center;
    display: flex;
    flex-direction: column;
}
.estate3-item h3{
    font-size: 30px;
    font-weight: 400;
    color: var(--key);
}
.estate3-item>div{
    width: 180px;
    margin-left: auto;
    margin-right: auto;
}
.estate3-item p{
    margin: auto;
}
.arrow-right{
    width: 0;
    height: 0;
    border-left: 30px solid #555;
    border-top: 30px solid transparent;
    border-bottom: 30px solid transparent;
    align-self: center;
}
.estate4-items{
    border-top: 1px solid;
}
.estate4-items dl{
    border-bottom: 1px solid;
    padding: 30px;
}
.accordion-toggle{
    display: flex;
    align-items: center;
    color: var(--key);
    cursor: pointer;
}
.estate4-items dl span{
    font-size: 30px;
    width: 50px;
}
.estate4-items dl dt div{
    flex-basis: calc(100% - 100px);
    letter-spacing: 1px;
}
.toggle-icon{
    width: 30px;
    margin-left: auto;
    transition: transform 0.3s;
}
.accordion-content{
    max-height: 0;
    display: flex;
    align-items: center;
    overflow: hidden;
    transition: all 0.4s ease;
}
.accordion-content span{
    padding-left: 3px;
}
.accordion-content div{
    flex-basis: calc(100% - 50px);
    letter-spacing: 1px;
}
.accordion-content.open{
    max-height: 80px;
    margin-top: 15px;
}

@media screen and (max-width:768px){
.estate1 {
    padding: 40px 0 20px;
}
.estate1 h2 {
    font-size: 20px;
    margin-bottom: 30px;
    padding: 0 5%;
}
.estate1-items{
    justify-content: center;
}
.estate1-item {
    flex-basis: 80%;
    margin-bottom: 30px !important;
}
.estate1-item p {
    padding: 10px;
    font-size: 16px;
}
.estate-sec-title {
    font-size: 24px;
    margin-bottom: 30px;
}
.estate2-item{
    box-shadow: 2px 2px 3px rgba(0,0,0,0.3);
}
.estate2-item h3 {
    font-size: 18px;
    padding: 8px;
}
.estate2-info div {
    width: 120px;
    margin-bottom: 10px;
}
.estate2-item:not(:last-of-type) {
    margin-bottom: 30px;
}
.estate3 {
    padding: 50px 0;
}
.estate3-item {
    padding: 15px;
}
.estate3-item>div {
    width: 80px;
}
.arrow-right {
    transform: rotate(90deg);
    margin: auto;
}
.estate4-items dl {
    padding: 20px 0;
}
.estate4-items dl span {
    font-size: 26px;
    width: 35px;
}
.estate4-items dl dt div {
    flex-basis: calc(100% - 65px);
    font-size: 14px;
}
.toggle-icon {
    width: 20px;
}
.accordion-content div {
    flex-basis: calc(100% - 30px);
    font-size: 14px;
}
.accordion-content.open {
    max-height: 110px;
}



}

/**********************************************************************/
/**************************  カンパニーページ  **************************/
/**********************************************************************/
.com-message .title-area{
    margin-bottom: 0;
    padding-bottom: 50px;
}
.com-message-item{
    margin-top: -40px;
}
.com-message-info{
    flex-basis: 48%;
    margin-top: 80px;
}
.ceo-name{
    display: block;
    text-align: right;
    margin-top: 20px;
    font-size: 18px;
    letter-spacing: 2px;
}
.com-message-img{
    flex-basis: 48%;
}
.company-profile{
    background: #EBECED;
    padding: 80px 0;
}
.company-profile .page-title{
    margin-bottom: 20px;
}
.company-profile table, .company-profile td, .company-profile th {
    border-color: #aaa;
}
.company-history .page-title{
    flex-basis: 150px;
}
.company-history dl{
    flex-basis: calc(100% - 180px);
}
.company-history dt{
    flex-basis: 150px;
    text-align: center;
    border-right: 1px solid #ccc;
    padding: 15px 0;
    position: relative;
}
.company-history dt::after {
    content: "";
    position: absolute;
    top: 25px;
    right: -3px;
    height: 6px;
    width: 6px;
    border-radius: 50%;
    background: #555;
}
.company-history dd {
    flex-basis: calc(100% - 150px);
    padding: 15px 0 15px 50px;
}

@media screen and (max-width:768px){
    .com-message-img {
        width: 80%;
        margin: auto;
    }
    .com-message-info {
        margin-top: 20px;
    }
    .company-profile {
        padding: 50px 0;
    }
    .ceo-name {
        font-size: 16px;
    }
    .company-history .page-title {
        margin-bottom: 30px;
    }
    .company-history dt {
        flex-basis: 80px;
    }
    .company-history dd {
        flex-basis: calc(100% - 80px);
        padding: 15px 0 15px 20px;
    }
}


/**********************************************************************/
/**************************  プライバシー  **************************/
/**********************************************************************/
.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;
    font-weight: 700;
}
.policy-main h3{
	font-size: 24px;
	margin-bottom: 20px;
    font-weight: 700;
}
.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;
    }
}


/**********************************************************************/
/**************************  コンタクトフォーム  **************************/
/**********************************************************************/
.form-area{
    background: #f2f2f2;
    padding: 80px 0;
    margin-bottom: 0;
}
.contact-form {
    padding: 40px;
    background: #f9f9f9;
    border-radius: 5px;
    box-shadow: 3px 3px 2px rgba(0,0,0,0.1);
}
.form-group {
    margin-bottom: 30px;
}
.form-label {
    margin-bottom: 15px;
    display: flex;
    align-items: center;
}
.required {
    color: #fff;
    background: var(--key);
	border: 1px solid var(--key);
    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;
    white-space: nowrap;
}
.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;
}
.wpcf7-list-item {
margin-left: 0!important;
}
.wpcf7-checkbox{
    display: flex;
    flex-wrap: wrap;
    gap: 3%;
}

@media screen and (max-width:768px){
    .contact-page {
        padding: 50px 0;
    }
	.contact-form {
		padding: 20px;
	}
	.input-label {
		width: 70px;
	}
	input, select, textarea {
		font-size: 14px;
	}
	.form-label {
		font-size: 14px;
	}
	.required{
		white-space: nowrap;
		width: 60px;
		text-align: center;
	}
	.optional {
		width: 70px;
		text-align: center;
	}
    .contact-bottom-p {
        font-size: 13px;
    }
    .checkbox-group .wpcf7-list-item-label {
        white-space: normal;
    }
}
/**********************************************************************/
/*****************************  カタログ  *****************************/
/**********************************************************************/
.catalogs article {
    flex-basis: 20%;
}
.catalogs article div {
    margin-bottom: 15px;
}
.catalogs2 article {
    flex-basis: 30%;
}
.catalogs2 article div {
    margin-bottom: 15px;
}
.form-title{
    margin-bottom: 50px;
    text-align: center;
}
.form-title h2{
    text-align: center;
    font-size: 30px;
    margin-bottom: 30px;
}

@media screen and (max-width:768px){
    .catalogs{
        margin-bottom: 0;
    }
    .catalogs article, .catalogs2 article {
        flex-basis: 47%;
        margin-bottom: 30px;
    }
    .catalog-page article p{
        text-align: center;
    }
}

/**********************************************************************/
/*****************************  アーカイブ  *****************************/
/**********************************************************************/
.archive-items{
    border-left: 1px solid #ccc;
}
.archive-items article{
    padding: 20px;
    flex-basis: 33.33%;
    border-right: 1px solid #ccc;
    border-bottom: 1px solid #ccc;
    position: relative;
}
.archive-items article:nth-of-type(-n+3){
    border-top: 1px solid #ccc;
}
.archive-items article a{
    display: flex;
    flex-direction: column;
    height: 100%;
}
.archive-img img{
    aspect-ratio: 3/2;
    object-fit: cover;
}
.archive-info{
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}
.archive-info time{
    font-size: 14px;
    border-bottom: 1px solid #ccc;
    text-align: right;
    padding: 10px 2px;
    display: block;
    letter-spacing: 2px;
    margin-bottom: 10px;
}
.archive-info h3{
    margin-bottom: 15px;
}
.excerpt {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.6;
    margin-bottom: 30px;
    font-size: 14px;
}
.archive-info .more{
    margin-top: auto;
}
.pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    margin-top: 80px;
}
.page-num {
    display: inline-block;
    padding: 8px 12px;
    text-decoration: none;
    color: #333;
    border: 1px solid #ccc;
    border-radius: 4px;
    transition: background 0.3s;
}
.page-num:hover {
    background: #f0f0f0;
}
.page-num.current {
    background: var(--key);
    color: #fff;
    border-color: var(--key);
}

.post-type-archive-event .archive-img img{
    aspect-ratio: 1/1;
} 

/**********************************************************************/
/*****************************  アーカイブニュース  *****************************/
/**********************************************************************/
.news-item{
    background: #fff;
    padding: 20px;
    box-shadow: 2px 2px 3px rgba(0,0,0,0.3);
    border-radius: 10px;
    margin-bottom: 15px;
}
.news-info{
    align-items: center;
}
.news-info time{
    flex-basis: 100px;
    display: inline-block;
    word-break: break-word;
}
.news-info h3{
    flex-basis: calc(100% - 120px);
}

@media screen and (max-width:768px){
    .news-info h3 {
        margin-top: 10px;
    }
}


/**********************************************************************/
/*****************************  シングル施工事例  *****************************/
/**********************************************************************/
.s-works{
    margin-bottom: 100px;
}
.works-l{
    flex-basis: 500px;
    background: #fff;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
.works-l-in{
    padding: 30px 30px 50px;
    position: sticky;
    top: 80px;
    overflow-y: auto;
}
.works-l-in h1{
    font-size: 24px;
    margin-bottom: 25px;
    border-bottom: 2px solid #e2e2e2;
    padding-top: 10px;
    padding-bottom: 25px;
}
.works-l-in dl{
    display: flex;
    justify-content: space-between;
    font-size: 14px;
    color: #777;
    flex-wrap: wrap;
    margin-bottom: 25px;
    padding-bottom: 5px;
    border-bottom: 2px solid #e2e2e2;
}
.works-l-in dt{
    flex-basis: 140px;
    margin-bottom: 20px;
}
.works-l-in dd{
    flex-basis: calc(100% - 150px);
    margin-bottom: 15px;
}
.works-r{
    flex-basis: calc(100% - 530px);
    background: #fff;
    padding: 30px;
}
.works-r h2{
    margin: 30px 0;
}
.works-r h2 strong{
    display: inline-block;
    font-size: 36px;
    border-bottom: 1px solid;
    margin-bottom: 5px;
    padding: 0 40px 0px 0;
    font-weight: bold;
}
.works-r h2 span{
    display: block;
    font-size: 13px;
}
.works-gallery-item{
    flex-basis: 49%;
    margin-bottom: 15px;
}
.works-gallery-item img{
    aspect-ratio: 3/2;
    object-fit: cover;
}

@media screen and (max-width:768px){
    .s-works {
        margin-bottom: 50px;
    }
    .works-l-in h1 {
        font-size: 18px;
        margin-bottom: 20px;
        padding-top: 0;
        padding-bottom: 15px;
    }
    .works-l-in dl {
        border-top: 2px solid #e2e2e2;
        padding-top: 20px;
    }
    .works-l-in dt {
        flex-basis: 100%;
        margin-bottom: 5px;
        font-size: 16px;
        font-weight: bold;
    }
    .works-l-in dd {
        flex-basis: 100%;
    }
    .works-l-in dd:not(:last-of-type){
        border-bottom: 1px dashed #ccc;
        padding-bottom: 15px;
    }
    .works-l-in{
        padding: 30px 20px;
    }
    .works-r {
        padding: 20px 20px 0;
    }
    .works-r h1{
        font-size: 18px;
        margin-bottom: 20px;
        text-align: center;
    }
    .works-r h2 {
        margin: 20px 0;
    }
    .works-r h2 strong {
        font-size: 21px;
        margin-bottom: 5px;
        padding: 0 0 5px 0;
    }
    .works-gallery-item {
        flex-basis: calc(50% - 3px);
        margin-bottom: 6px;
    }
}

/**********************************************************************/
/*****************************  シングル  *****************************/
/**********************************************************************/
.single-page article>div{
    border: 15px solid #ddd;
    padding: 40px;
}
.single-in{
    margin-bottom: 60px;
}
.single-header{
    margin-bottom: 40px;
}
.single-header time{
    font-size: 16px;
    margin-bottom: 10px;
    display: inline-block;
    letter-spacing: 2px;
}
.single-title{
    font-size: 24px;
    border-bottom: 1px solid;
    padding-bottom: 20px;
}
.single-content p,.single-content figure{
    margin-bottom: 30px;
}


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

.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;
  }
  /*スマホのみ表示ブロック*/
}
