@font-face {
    font-family: "TAoonishi";
    src: url("../fonts/ta-oonishi.woff2") format("woff2");
    font-style: normal;
    /* bold / 600 指定でもこの1ファイルを使う */
    font-weight: 100 900;
    font-display: block;
}

.handwrite-1{
    font-family: "TAoonishi", sans-serif;
}
.handwrite-2{
    font-family: "TAoonishi", sans-serif;
    font-weight: bold;
}

:root{
    --green: #5b8f63;
    --green-dark: #4a7352;
    --green-pale: #e3ece5;
    --orange: #ec5b03;
    --orange-soft: #e58450;
    --burgundy: #6F343C;
    --beige-dark: #d8d0c2;
    --beige-soft: #FBF8F3;
    --beige-warm: #f5f1e7;
    --white: #ffffff;
    --yellow: #f3e55b;
    --text: #3B312B;
    --text-muted: #4a433d;
    --section-line: rgba(74, 115, 82, 0.32);
}

html{
  scroll-behavior: smooth;
  overflow-x: hidden;
  overflow-x: clip;
  background: var(--beige-soft);
}
body{
	font-family: "Noto Sans JP", sans-serif;
    overflow-x: hidden;
    overflow-x: clip;
    background: var(--beige-warm);
    color: var(--text);
}
img{
	width: 100%;
    height: auto;
	display: block;
}
p{
	line-height: 2;
	letter-spacing: 1px;
}
h1,
h2,
h3{
	font-weight: 600;
	line-height: 1.7;
	letter-spacing: 3px;
    font-family: "TAoonishi", sans-serif;
}
/* TAoonishi の ® は空グリフのため、上付き記号は実在するフォントを使う */
h1 sup, h2 sup, h3 sup {
    font-family: "Noto Sans JP", sans-serif;
}
h5,
h6{
    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;
	line-height: 1.5;
    letter-spacing: 2px;
}
th{
    white-space: nowrap;
}
dt,
dd,
li{
	line-height: 1.5;
    letter-spacing: 2px;
}
section{
    padding: 80px 0;
}

@media screen and (max-width:768px){
    p,
    th,
    td,
    li,
    time{
        font-size: 15px;
    }
    h1,
    h2,
    h3{
        letter-spacing: 1px;
        overflow-wrap: anywhere;
    }
    th{
        white-space: normal;
    }
    section{
        padding: 30px 0;
    }
    body{
        padding-bottom: calc(76px + env(safe-area-inset-bottom));
    }
}

.width-800{
	max-width: 800px;
	width: 90%;
	margin-left: auto;
	margin-right: auto;
}
.width-900{
	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-1100{
	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-1300{
	max-width: 1300px;
	width: 90%;
	margin-left: auto;
	margin-right: auto;
}
.width-1400{
	max-width: 1400px;
	width: 90%;
	margin-left: auto;
	margin-right: auto;
}
.width-l{
	max-width: 1500px;
	width: 90%;
	margin-left: auto;
	margin-right: auto;
}
.width-full{
	max-width: 2000px;
	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;
}
.l404-page{
    padding-top: 100px;
}

.text-r{
	text-align: right;
}
.text-c{
	text-align: center;
}
.inner-item{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.sec-title,
.sec-title2{
    margin-bottom: 70px;
}
.sec-title.flex{
    flex-wrap: nowrap;
}
.sec-title .title-main{
    align-items: center;
    flex: 0 0 auto;
}
.sec-title .title-main img{
    width: 55px;
    margin-right: 10px;
}
.sec-title .title-main .title-label{
    display: flex;
    flex-direction: column;
    gap: 5px;
}
.title-ja{
    font-family: "TAoonishi", sans-serif;
    font-weight: bold;
    color: var(--text);
    letter-spacing: 0.06em;
    line-height: 1.35;
}
.title-en{
    font-family: 'Josefin Sans', sans-serif;
    font-weight: 500;
    color: var(--green-dark);
    letter-spacing: 0.14em;
    line-height: 1.2;
}
.sec-title .title-main .title-ja{
    font-size: 28px;
}
.sec-title .title-main .title-en{
    font-size: 15px;
    display: block;
}
.sec-title p{
    border-bottom: 1px solid var(--green-dark);
    padding: 0 15px 10px;
    margin-left: 15px;
    flex: 1 1 0;
    min-width: 0;
}

.sec-title2 .title-main{
    font-size: 30px;
    border-bottom: 1px solid #aaa;
    padding-bottom: 15px;
    margin-bottom: 15px;
}
.sec-title2 .title-main small{
    font-size: 16px;
    color: var(--green-dark);
    margin-left: 15px;
    font-family: 'Josefin Sans', sans-serif;
}

.sec-title3{
    text-align: center;
    margin-bottom: 70px;
}
.sec-title3 .title-main{
    position: relative;
}
.sec-title3 .title-main::after{
    content: "";
    position: absolute;
    left: 50%;
    bottom: -15px;
    transform: translateX(-50%);
    width: 60px;
    height: 2px;
    background: var(--green);
}
.sec-title3 .en{
    display: block;
    margin-bottom: 12px;
    color: var(--green);
    font-size: 14px;
    font-weight: 500;
    letter-spacing: .2em;
    text-transform: uppercase;
    font-family: 'Josefin Sans', sans-serif;
}
.sec-title3 .ja{
    display: block;
    font-size: 32px;
    line-height: 1.5;
}
.sec-title3 p{
    margin-top: 70px;
}

.swiper-pagination-bullet-active{
    background: var(--green)!important;
}

.josefin{
    font-family: 'Josefin Sans', sans-serif;
    line-height: 1;
    letter-spacing: 2px;
    color: var(--text-muted);
}
.serif{
    font-family: "Noto Serif JP", serif;
}
.imp{
    font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
}

.gold-text{
    color: transparent;
    background: linear-gradient(
        135deg,
        #8a6a1f 0%,
        #d6b45c 25%,
        #fff2a8 50%,
        #c89b2c 75%,
        #6f4f12 100%
    );
    -webkit-background-clip: text;
    background-clip: text;
}
.marker-yellow{
    background: linear-gradient(transparent 60%,#fefd9b 0);
    display: inline!important;
    padding: 0 10px;
}

.cover{
    height: 100%;
    object-fit: cover;
}

.bg1{
    background: var(--beige-soft);
}
.key{
    color: var(--orange-soft);
    font-weight: bold;
}

@media screen and (max-width:768px){
	.flex,
	.flex-sb{
		display: block;
	}
    .l404-page{
        padding-top: 50px;
    }
.sec-title,
.sec-title2,
.sec-title3{
    margin-bottom: 40px;
}
.sec-title3 p{
    margin-top: 50px;
}

}

/**********************************************************************/
/*************************  リンクボタン  *************************/
/**********************************************************************/

/* パターン1：ミニマル・ボーダー */
.link-btn{
    display: block;
}
.link-btn .btn{
  display: inline-block;
  color: var(--green);
  padding: 12px;
  text-decoration: none;
  letter-spacing: 0.15em; /* 字間を広げて洗練された印象に */
  position: relative;
  transition: color 0.3s ease;
}
/* 下線の設定（通常は非表示） */
.link-btn .btn::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 0; /* 幅0からスタート */
  height: 1px; /* 繊細な1pxの線 */
  background-color: var(--green);
  transition: all 0.3s ease;
  transform: translateX(-50%);
}
/* ホバー時の効果 */
.link-btn .btn:hover {
  color: #8da991; /* 文字色をグリーンに */
}
.link-btn .btn:hover::after{
  width: 80%; /* 線を中央に短めに引く（100%でもOK） */
}

/* パターン2：アウトライン */
.link-btn2 .btn {
    display: inline-block;
    padding: 15px;
    color: var(--green);
    text-decoration: none;
    letter-spacing: 0.1em;
    border: 1px solid var(--green);
    border-radius: 0;
    background-color: transparent;
    transition: all 0.3s ease;
    min-width: 300px;
    font-weight: 500;
}
/* ホバー時の効果 */
.link-btn2 .btn:hover {
  color: #fff; /* 文字を白に */
  background-color: var(--green);
  text-decoration: none; /* 下線を消す */
}

.link-btn2 .btn2{
    background: var(--green);
    color: #fff;
}
.link-btn2 .btn2:hover{
    color: var(--green);
    background-color: transparent;
}

/* パターン3：テキストアロー */
.link-btn3 .btn {
  display: inline-block;
  color: #333; /* 文字色：落ち着いた黒 */
  text-decoration: none;
  letter-spacing: 0.15em;
  position: relative;
  padding-right: 35px; /* 右側に矢印スペース */
  transition: color 0.3s ease;
}
/* 矢印（疑似要素） */
.link-btn3 .btn::after {
  content: '→'; /* シンプルな矢印（FontAwesomeなど不要） */
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%); /* 中央寄せ */
  font-size: 1.2em;
  color: var(--green);
  transition: transform 0.3s ease, color 0.3s ease;
}
/* ホバー時の効果 */
.link-btn3:hover .btn {
  color: #8da991; /* 文字もグリーンに */
  text-decoration: none;
}
.link-btn3:hover .btn::after{
  transform: translateY(-50%) translateX(5px); /* 矢印がすっと右に動く */
}
.link-btn3 img{
    transition: opacity 0.3s ease;
}
.link-btn3:hover img{
    opacity: 0.7;
}

.link-btn4 a{
    border: 1px solid var(--green);
    padding: 10px 20px;
    display: inline-block;
    background: var(--green);
    color: var(--beige-soft);
    transition: all 0.3s ease;
    font-size: 14px;
    border-radius: 5px;
}
.link-btn4 a:hover{
    background: var(--beige-soft);
    color: var(--green);
}

a.text-link{
    color: #0000ee;
    text-decoration: underline;
}
a.text-link:hover{
    color: #0000ee;
    text-decoration: underline;
    opacity: 0.7;
}

.page-foot-btns{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 16px 20px;
    margin-top: 50px;
}
.spec-nav-related{
    margin-top: 32px;
}
.spec-nav-sep{
    margin: 0 0.6em;
    color: var(--green);
}
@media screen and (max-width: 768px) {
    .page-foot-btns{
        flex-direction: column;
        align-items: center;
        margin-top: 24px;
    }
    .page-foot-btns .link-btn2{
        width: 100%;
        max-width: 360px;
        font-size: 14px;
    }
    .page-foot-btns .link-btn2 .btn{
        min-width: 0;
        width: 100%;
        box-sizing: border-box;
    }
    .link-btn3 .btn{
        font-size: 14px;
    }
}

/**********************************************************************/
/*************************  ホバーアニメーション  *************************/
/**********************************************************************/
@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(--green);
	  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,
	.hov-zoom2 img{
	  transition: transform 0.4s ease, opacity 0.4s ease;
	}
	.hov-zoom:hover img,
	.hov-zoom2:hover img{
	  transform: scale(1.1);  /* 少し拡大 */
	  opacity: 0.7;            /* ちょっと薄くする */
	}

	.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);
        display: block;
	}
	.hov-up:hover{
		transform: translateY(-6px);
	}
}

/**********************************************************************/
/**********************  オブザーバーアニメーション  ***********************/
/**********************************************************************/
/* フェイド + スライド <div class="fade-up js-fadein"> */
.fade-up {
    opacity: 0;
    transform: translateY(30px);
    transition: 0.8s ease;
}
.fade-up.is-visible{
    opacity: 1;
    transform: translateY(0);
}
/* フェイド + スケール <div class="fade-scale js-fadein"> */
.fade-scale {
    opacity: 0;
    transform: scale(0.95);
    transition: 0.6s ease;
}
.fade-scale.is-visible{
    opacity: 1;
    transform: scale(1);
}
/* 横からスライド <div class="fade-left js-fadein"> */
.fade-left {
    opacity: 0;
    transform: translateX(-40px);
    transition: 0.8s ease;
}
.fade-left.is-visible{
    opacity: 1;
    transform: translateX(0);
}
/* マスクで出現 <div class="mask-item js-fadein"> */
.mask-item {
    overflow: hidden;
}
.mask-item img{
    display: block;
    width: 100%;
    /* 初期状態 */
    clip-path: inset(0 100% 0 0);
    transition: clip-path 0.8s ease;
}
.mask-item.is-visible img{
    clip-path: inset(0 0 0 0);
}
/* ぼかしながら出現 <div class="blur-item js-fadein"> */
.blur-item {
    opacity: 0;
    filter: blur(8px);
    transform: translateY(20px);
    transition: 
        opacity 0.8s ease,
        filter 0.8s ease,
        transform 0.8s ease;
}
.blur-item.is-visible{
    opacity: 1;
    filter: blur(0);
    transform: translateY(0);
}

.delay-15{ transition-delay: 0.15s; }
.delay-20{ transition-delay: 0.2s; }
.delay-30{ transition-delay: 0.3s; }
.delay-40{ transition-delay: 0.4s; }
.delay-50{ transition-delay: 0.5s; }

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

.header-fix{
    border-bottom: 1px solid #f1f1f4;
    left: 0;
    position: fixed;
    right: 0;
    top: 0;
    z-index: 100;
    background: rgba(255,255,255,0.9);
	height: 62px;
    padding: 2px;
    transform: translateY(-100%);
    opacity: 0;
    visibility: hidden;
    transition: transform 0.35s ease, opacity 0.35s ease;
    box-shadow: 0 2px 5px rgba(0,0,0,0.08);
}
.header-fix.show{
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
}
.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: 2.5%;
	font-size: 14px;
	position: relative;
}
.header-nav-parent{
	cursor: default;
}
.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: var(--beige-soft);
    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;
}
.nav-child-title{
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: bold;
    color: var(--key);
}
.nav-child-title::after{
    content: "";
    flex-grow: 1;
    border-top: 1px solid #aaa;
}
.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 {
    position: fixed;
    top: 0;
    right: -100%;
    width: 100%;
    height: 100vh;
    background-color: var(--beige-dark);
    transition: right 0.4s ease;
    z-index: 90;
    box-shadow: -5px 0 15px rgba(0, 0, 0, 0.1);
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 50px 0;
}
/* 開いた状態 */
.drawer.open {
  right: 0;
}
.drawer-in{
    min-height: 100vh;
}
.drawer-logo{
    text-align: center;
    margin-bottom: 80px;
}
.drawer-logo a{
    justify-content: center;
    gap: 10px;
}
.drawer-logo a img:first-of-type{
    width: 60px;
}
.drawer-logo a img:last-of-type{
    width: 240px;
}
.drawer-column{
    flex: 1;
}
.drawer-menu{
    flex-grow: 1;
}
.drawer-column{
    flex-basis: 32%;
}
.drawer-menu-section:not(:last-of-type){
    margin-bottom: 40px;
}
.drawer-menu-title{
    border-left: 4px solid var(--green);
    padding: 8px 0 2px 10px;
    font-size: 28px;
    line-height: 1;
    margin-bottom: 20px;
    font-weight: 500;
    font-family: 'Josefin Sans', sans-serif;
}
.drawer-menu-section ul li:not(:last-of-type){
    margin-bottom: 20px;
}
.drawer-cta{
    flex-basis: 26%;
}
.drawer-cta > a{
    display: block;
    border: 2px solid;
    padding: 15px 5px;
    text-align: center;
    margin-bottom: 15px;
    transition: all 0.3s ease;
}
.drawer-cta > a:hover{
    background: var(--green);
    color: #fff;
    border-color: var(--green);
}
.drawer-sns-area{
    display: flex;
    justify-content: end;
    gap: 3%;
    margin-top: 30px;
}
.drawer-sns-area a{
    display: block;
    width: 50px;
}
.drawer-info a{
    gap: 15px;
    justify-content: flex-end;
    align-items: center;
}
.d-tel{
    width: 60px;
}
.d-tel-text{
    font-size: 48px;
    line-height: 0;
    font-family: 'Josefin Sans', sans-serif;
    font-weight: 500;
    margin: 22px 0 12px;
}

@media screen and (max-width:768px){
	.hamburger-area{
		top: 14px;
		right: 16px;
	}
    .drawer{
        justify-content: flex-start;
        padding: 72px 0 40px;
    }
    .drawer-logo{
        margin-bottom: 36px;
    }
    .drawer-logo a img:first-of-type{
        width: 44px;
    }
    .drawer-logo a img:last-of-type{
        width: 180px;
    }
    .drawer-menu-title{
        font-size: 20px;
        margin-bottom: 14px;
    }
    .drawer-menu-section{
        margin-bottom: 35px;
    }
    .drawer-menu-section ul li:not(:last-of-type){
        margin-bottom: 12px;
    }
    .drawer-column{
        margin-bottom: 8px;
    }
    .drawer-cta{
        margin-top: 12px;
    }
    .drawer-info{
        margin-top: 24px;
    }
    .drawer-info a{
        justify-content: flex-start;
        gap: 10px;
    }
    .d-tel{
        width: 45px;
    }
    .d-info p{
        font-size: 14px;
    }
    .d-info p.d-tel-text{
        font-size: 28px;
        line-height: 1.1;
        letter-spacing: 1px;
        margin: 8px 0 0;
    }
.drawer-cta > a{
    border: 1px solid;
    padding: 12px 5px;
    font-size: 14px;
}

    
}

/**********************************************************************/
/***************************  フロントページ  ***************************/
/**********************************************************************/

/* ========== フロントページ：通常 ========== */

/* 表示用見出し（TAoonishi） */
.front-page .fv-title,
.front-page .fv-title1,
.front-page .fv-title2,
.front-page .fv-subtitle,
.front-page .f-labo-info h2,
.front-page .f-labo-info h2 span,
.front-page .f-labo-link,
.front-page .f-labo-img-in p,
.front-page .f-lineup h3,
.front-page .f-lineup-info h4,
.front-page .f-lineup-info h4 span,
.front-page .f-per-item h3,
.front-page .f-event-item h3,
.front-page .works-card h3,
.front-page .f-voice-item p,
.front-page .contact-area h2{
    font-family: "TAoonishi", sans-serif;
    font-weight: bold;
}
.front-page .f-per-item h3 span{
    font-family: 'Josefin Sans', sans-serif;
    font-weight: 500;
}
.front-page .f-lineup-info h4 span small{
    font-family: "TAoonishi", sans-serif;
    font-weight: bold;
}

/* ラインナップ以降のアクセントカラー */
.front-page .f-lineup h3{
    color: var(--burgundy);
}
.front-page .f-lineup-img span{
    color: var(--green-dark);
}
.front-page .f-lineup-info h4 span{
    color: var(--green-dark);
}
.front-page .f-per-item .num{
    color: var(--green-dark);
}
.front-page .f-per-item h3 span{
    color: var(--orange-soft);
}
.front-page .works-card h3{
    color: var(--green-dark);
}
.front-page .f-event-item h3{
    color: var(--green-dark);
}
.front-page .f-event .link-btn .btn{
    color: var(--orange);
}
.front-page .f-event .link-btn .btn::after{
    background-color: var(--orange);
}
.front-page .f-event .link-btn .btn:hover{
    color: var(--orange-soft);
}
.front-page .f-voice-item p{
    color: var(--green-dark);
    background: rgba(255, 255, 255, 0.82);
}

/* ヒーロー */
.hero-slider{
    position: relative;
    padding: 0;
}
.hero-slider .swiper-img{
    position: relative;
}
.hero-slider .swiper-img::before{
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: linear-gradient(
        90deg,
        rgba(255, 255, 255, 0.88) 0%,
        rgba(255, 255, 255, 0.72) 24%,
        rgba(255, 255, 255, 0.42) 46%,
        rgba(255, 255, 255, 0.12) 66%,
        rgba(255, 255, 255, 0) 82%
    );
}
.hero-slider .swiper-slide.no-gradient .swiper-img::before{
    display: none;
}
.front-swiper{ height: 100dvh; }
.front-swiper .swiper-slide,
.front-swiper .swiper-img{ height: 100%; }
.front-swiper .swiper-img img{
  width: 100%; height: 100%;
  object-fit: cover; display: block;
}
@keyframes zoomUp { from{ transform: scale(1); } to{ transform: scale(1.15); } }
.front-swiper .swiper-slide-active .swiper-img,
.front-swiper .swiper-slide-duplicate-active .swiper-img,
.front-swiper .swiper-slide-prev .swiper-img{
  animation: zoomUp 9s linear both;
}
.front-swiper img{
  transform: scale(1);
  animation: none;
  transition: transform 1s ease;
}
.front-swiper img.zooming{
  animation: zoomInOut 15s ease-in-out infinite alternate;
}
@keyframes zoomInOut {
  0%{ transform: scale(1); }
  100%{ transform: scale(1.25); }
}
.swiper-pagination{
  bottom: 20px;
}
.hero-slider-text{
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    display: flex;
    z-index: 1;
    flex-direction: column;
    justify-content: center;
    padding-left: 10%;
}
.fv-title{
    margin-bottom: 10px;
    text-shadow:
        -1px -1px 1px rgba(255, 255, 255, 0.95),
         1px -1px 1px rgba(255, 255, 255, 0.95),
        -1px  1px 1px rgba(255, 255, 255, 0.95),
         1px  1px 1px rgba(255, 255, 255, 0.95),
         0 0 10px rgba(255, 255, 255, 0.85);
}
.fv-title1{
    font-size: 50px;
    margin-bottom: 10px;
    display: block;
    -webkit-text-stroke: 1.5px currentColor;
    paint-order: stroke fill;
}
.fv-title2{
    color: var(--green);
    font-size: 70px;
    display: block;
    line-height: 1;
    margin-bottom: 25px;
    -webkit-text-stroke: 1.5px currentColor;
    paint-order: stroke fill;
}
.fv-subtitle{
    font-size: 28px;
    color: var(--orange);
    -webkit-text-stroke: 0.8px currentColor;
    paint-order: stroke fill;
}
.hero-slider-text p{
    font-size: 18px;
    line-height: 2.2;
    margin-bottom: 60px;
    text-shadow:
        -1px -1px 1px rgba(255, 255, 255, 0.95),
         1px -1px 1px rgba(255, 255, 255, 0.95),
        -1px  1px 1px rgba(255, 255, 255, 0.95),
         1px  1px 1px rgba(255, 255, 255, 0.95),
         0 0 8px rgba(255, 255, 255, 0.85);
}
.btns{
    gap: 20px;
}
.btns a{
    border: 1px solid var(--green);
    display: flex;
    gap: 10px;
    align-items: center;
    padding: 25px 40px 25px 25px;
    border-radius: 10px;
    width: 280px;
    position: relative;
    font-size: 18px;
    letter-spacing: 1px;
}
.btns a::after{
    content: "＞";
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
}
.btns img{
    width: 25px;
}
.soudan-btn{
    background: var(--green-dark);
    color: #fff;
    border-color: var(--green-dark);
}
.soudan-btn:hover{
    background: var(--green);
    border-color: var(--green);
}
.catalog-btn{
    background: rgba(255,255,255,0.72);
}
.labo-btn{
    background: var(--orange-soft);
    color: #fff;
    border-color: var(--orange-soft);
}

/* シックハウス */
.f-sickhouse{
    background: #fff;
    text-align: center;
}
.f-sickhouse h2{
    font-family: "TAoonishi", sans-serif;
    font-weight: bold;
    font-size: 36px;
    margin-bottom: 50px;
}
.f-sickhouse h2 span{
    background: linear-gradient(transparent 62%, rgba(243, 229, 91, 0.7) 0);
    color: var(--green);
    padding-left: 18px;
}
.f-sickhouse p{
    margin-bottom: 50px;
}
.f-sickhouse p strong{
    color: var(--orange-soft);
}
.f-sick-items{
    max-width: 800px;
    margin: auto;
}
.f-sick-items div{
    flex-basis: 32%;
}
.f-sick-items div span{
    line-height: 1.8;
}

/* 空気・暮らし */
.f-air{
    background: linear-gradient(
        180deg,
        #e4ddd2 0%,
        #ebe6dc 28%,
        var(--beige-warm) 72%,
        var(--beige-soft) 100%
    );
    padding: 140px 0;
    color: var(--text);
    position: relative;
}
.f-air-top-img{
    flex-basis: 50%;
    position: relative;
    overflow: hidden;
}
.f-air-top-img img{
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 0 40px 40px 0;
}
.f-air-top-info{
    flex-basis: 45%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-right: 5%;
    position: relative;
}
.f-air-top-info h2{
    font-size: 36px;
    margin-bottom: 40px;
    color: var(--green);
}
.f-air-top-info p{
    font-size: 18px;
}
.f-air-mid{
    position: relative;
    padding: 100px 5%;
}
.f-air-mid::before,
.f-air-mid::after{
    content: "";
    display: block;
    width: 48px;
    height: 2px;
    background: var(--green);
    margin: 0 auto;
    opacity: 0.45;
}
.f-air-mid::before{
    margin-bottom: 36px;
}
.f-air-mid::after{
    margin-top: 36px;
}
.f-air-mid div{
    position: absolute;
    top: 0;
    left: 0;
}
.f-air-mid h2{
    text-align: center;
    font-size: 42px;
    line-height: 1.75;
    position: relative;
    z-index: 1;
    color: var(--text);
    letter-spacing: 4px;
}
.f-air-mid h2 em{
    font-style: normal;
    color: var(--green);
    background: linear-gradient(transparent 62%, rgba(243, 229, 91, 0.7) 0);
    padding: 0 8px;
}
.f-air-foot{
    max-width: 1300px;
    margin: auto;
    padding: 0 5%;
}
.f-air-foot-info{
    flex-basis: 60%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.f-air-foot-info h2{
    font-size: 36px;
    margin-bottom: 40px;
    color: var(--green);
}
.f-air-foot-info p{
    font-size: 18px;
}
.f-air-foot-img{
    flex-basis: 35%;
}
.f-air-foot-img img{
    border-radius: 30px;
}
.f-air-foot-img img:first-of-type{
    margin-bottom: 30px;
}

/* 代表メッセージ */
.f-ceo{
    background: var(--white);
}
.f-ceo-top{
    max-width: 600px;
    margin-bottom: 30px;
}
.f-ceo-img{
    flex-basis: 35%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.f-ceo-img p{
    text-align: right;
    font-size: 18px;
    margin-top: 10px;
}
.f-ceo-img p img{
    max-width: 200px;
    margin: 10px 0 0 auto;
}
.f-ceo-info{
    flex-basis: 60%;
}
.f-ceo-cta{
    margin-top: 28px;
}
.f-ceo-cta-link{
    display: block;
    padding: 24px 20px 20px;
    border-radius: 16px;
    background: linear-gradient(180deg, var(--beige-soft) 0%, var(--beige-warm) 100%);
    border: 1px solid var(--section-line);
    box-shadow: 0 2px 14px rgba(91, 143, 99, 0.07);
    text-decoration: none;
    color: inherit;
    transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.f-ceo-lead{
    font-size: 19px;
    line-height: 1.85;
    text-align: center;
    margin-bottom: 12px;
    color: var(--text);
}
.f-ceo-lead strong{
    color: var(--orange);
    font-size: 1.2em;
    font-weight: normal;
}
.f-ceo-lead::after{
    content: "▼";
    display: block;
    font-size: 11px;
    color: var(--green);
    margin-top: 8px;
    animation: f-ceo-arrow 1.8s ease-in-out infinite;
}
@keyframes f-ceo-arrow{
    0%,

    100%{ transform: translateY(0); opacity: 0.5; }
    50%{ transform: translateY(5px); opacity: 1; }
}
.f-ceo-btn-img{
    display: block;
    max-width: 560px;
    margin: 0 auto;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1);
    transition: box-shadow 0.3s ease, transform 0.3s ease;
}
.f-ceo-btn-img img{
    display: block;
    width: 100%;
}
@media screen and (min-width:768px){
    .f-ceo-cta-link:hover{
        border-color: rgba(91, 143, 99, 0.45);
        box-shadow: 0 10px 32px rgba(91, 143, 99, 0.18);
        transform: translateY(-4px);
    }
    .f-ceo-cta-link:hover .f-ceo-btn-img{
        box-shadow: 0 10px 28px rgba(236, 91, 3, 0.15);
        transform: scale(1.02);
    }
}

/* ラボ */
.f-labo{
    padding: 100px 5% 110px;
    max-width: none;
    background: linear-gradient(180deg, var(--green-pale) 0%, var(--beige-soft) 45%, var(--green-pale) 100%);
}
.f-labo-head{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    text-align: center;
    margin-bottom: 44px;
}
.f-labo-head .title-en{
    font-size: 15px;
    margin-bottom: 0;
}
.f-labo-head-title{
    font-size: 28px;
    border-bottom: 1px solid var(--green-dark);
    display: inline-block;
    padding-bottom: 10px;
}
.f-labo-in{
    overflow: hidden;
    border-radius: 28px;
    max-width: 1400px;
    margin: 0 auto;
    min-height: 520px;
    background: var(--green-dark);
    box-shadow: 0 24px 60px rgba(47, 77, 55, 0.22);
    border: 1px solid rgba(91, 143, 99, 0.25);
    position: relative;
    text-decoration: none;
    transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.f-labo-info{
    flex-basis: 38%;
    padding: 72px 48px;
    color: #fff;
    display: flex;
    flex-direction: column;
    gap: 28px;
    position: relative;
    z-index: 2;
    background: var(--green-dark);
}
.f-labo-info::before{
    content: "";
    position: absolute;
    inset: 20px;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 18px;
    pointer-events: none;
}
.f-labo-info h2{
    font-size: 14px;
    letter-spacing: 0.18em;
    position: relative;
    z-index: 1;
    color: rgba(243, 229, 91, 0.85);
    font-weight: 500;
}
.f-labo-info h2 span{
    display: block;
    font-size: 34px;
    line-height: 1.65;
    margin-top: 20px;
    letter-spacing: 0.06em;
    color: var(--yellow);
}
.f-labo-info p{
    line-height: 2;
    color: rgba(255, 255, 255, 0.88);
    margin: auto 0;
    position: relative;
    z-index: 1;
}
.f-labo-link{
    margin-top: auto;
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: 10px;
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
    padding: 14px 28px;
    border-radius: 6px;
    font-size: 15px;
    letter-spacing: 0.1em;
    z-index: 1;
    border: 1px solid rgba(255, 255, 255, 0.45);
    transition: background 0.3s ease, border-color 0.3s ease;
}
.f-labo-link::after{
    content: "→";
    transition: transform 0.3s ease;
}
.f-labo-img{
    flex-basis: 62%;
    min-height: 520px;
    position: relative;
    overflow: hidden;
}
.f-labo-img::after{
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        90deg,
        rgba(47, 77, 55, 0.15) 0%,
        rgba(0, 0, 0, 0.08) 50%,
        rgba(95, 122, 99, 0.22) 100%
    );
    z-index: 1;
    pointer-events: none;
}
.f-labo-img img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.8s ease, filter 0.8s ease;
}
.f-labo-img-in{
    position: absolute;
    width: 340px;
    height: 340px;
    background: rgba(255, 255, 255, 0.88);
    backdrop-filter: blur(4px);
    border-radius: 50%;
    text-align: center;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    z-index: 2;
    border: 2px solid rgba(255, 255, 255, 0.9);
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.22);
    transition: all 0.4s ease;
    outline: 8px solid rgba(255, 255, 255, 0.22);
}
.f-labo-img-in p{
    font-size: 28px;
    font-weight: bold;
    color: var(--burgundy);
    line-height: 1.7;
    letter-spacing: 0.08em;
}
.f-labo-img-in p .font-l{
    font-size: 40px;
    line-height: 1;
}
.f-labo-img-in p .font-s{
    font-size: 24px;
}
.f-labo-in:hover{
    transform: translateY(-4px);
    box-shadow: 0 30px 70px rgba(47, 77, 55, 0.28);
}
.f-labo-in:hover .f-labo-img img{
    transform: scale(1.06);
    filter: brightness(1.05);
}
.f-labo-in:hover .f-labo-link{
    background: rgba(255, 255, 255, 0.2);
    border-color: rgba(255, 255, 255, 0.75);
}
.f-labo-in:hover .f-labo-link::after{
    transform: translateX(4px);
}
.f-labo-in:hover .f-labo-img-in{
    transform: translate(-50%, -50%) scale(1.05);
    background: rgba(255, 255, 255, 0.95);
}

/* ラインナップ */
.f-lineup{
    background: var(--beige-warm);
}
.f-lineup-items-top{
    position: relative;
    padding-bottom: 50px;
    margin-bottom: 100px;
    margin-top: 80px;
}
.f-lineup-items-top::after{
    content: "";
    width: 70%;
    height: 100%;
    background: var(--white);
    top: 0;
    left: 0;
    position: absolute;
    margin-left: 30%;
    box-shadow: 0 2px 24px rgba(59, 49, 43, 0.08);
}
.f-lineup-items-top-in,
.f-lineup-items-foot-in{
    z-index: 1;
    position: relative;
}
.f-lineup h3{
    text-align: center;
    font-size: 34px;
    transform: translateY(-24px);
    margin-bottom: 50px;
}
.f-lineup-item-flex{
    gap: 50px;
    margin-bottom: 70px;
}
.f-lineup-item{
    flex: 1;
}
.f-lineup-img{
    position: relative;
    margin-bottom: 15px;
}
.f-lineup-img span{
    position: absolute;
    font-size: 55px;
    top: -40px;
    left: 5px;
    letter-spacing: 2px;
    font-weight: bold;
    color: var(--green-dark);
    text-shadow: 0 1px 3px rgba(255,255,255,.8),
0 0 12px rgba(255,255,255,.5);
}
.f-lineup-img img{
    border-radius: 20px;
}
.f-lineup-info h4{
    margin-bottom: 15px;
    font-size: 14px;
}
.f-lineup-info h4 span{
    display: block;
    font-size: 26px;
}
.f-lineup-info h4 span small{
    font-size: 16px;
    font-weight: 500;
}
.f-lineup-info p{
    font-size: 15px;
    line-height: 1.7;
    color: var(--text-muted);
}
.f-lineup-items-foot{
    position: relative;
    padding-bottom: 50px;
}
.f-lineup-items-foot::after{
    content: "";
    width: 70%;
    height: 100%;
    background: var(--white);
    top: 0;
    left: 0;
    position: absolute;
    box-shadow: 0 2px 24px rgba(59, 49, 43, 0.08);
}
.f-lineup-foot-img img{
    aspect-ratio: 3/2;
    object-fit: cover;
}

/* 家づくりガイド */
.f-performance{
    background: var(--white);
}
.f-per-items{
    gap: 30px;
}
.f-per-item{
    flex-basis: calc(100% / 2 - 15px);
    background: var(--beige-soft);
    padding: 0 20px 20px;
    margin-top: 20px;
    border: 1px solid var(--section-line);
    box-shadow: 0 4px 14px rgba(59, 49, 43, 0.1);
    border-radius: 20px;
}
.f-per-item .num{
    font-size: 50px;
    margin: -30px auto 5px;
    display: inline-block;
    font-weight: bold;
    color: var(--text-muted);
}
.f-per-item h3{
    padding-bottom: 10px;
    border-bottom: 1px solid var(--beige-dark);
    margin-bottom: 10px;
    font-weight: bold;
    font-size: 21px;
}
.f-per-item h3 span{
    display: flex;
    gap: 10px;
    align-items: center;
    letter-spacing: 1px;
    font-size: 14px;
    margin-bottom: 5px;
    font-weight: 500;
}
.f-per-item h3 span::after{
    content: "";
    flex-grow: 1;
    border-top: 1px solid #aaa;
}
.f-per-item div{
    align-items: center;
}
.f-per-item div p{
    flex-basis: 65%;
}
.f-per-item div div{
    flex-basis: 33%;
}
.f-per-item div img{
    aspect-ratio: 1/1;
    object-fit: cover;
    border-radius: 10px;
}

/* 施工事例 */
.f-works{
    background: var(--beige-soft);
}
.works-marquee{
    overflow: hidden;
    width: 100%;
}
.works-marquee-track{
    display: flex;
    gap: 24px;
    width: max-content;
    animation: marquee-scroll 60s linear infinite;
    margin-bottom: 80px;
}
.works-card{
    flex: 0 0 auto;
    width: 400px;
    text-decoration: none;
    color: inherit;
}
.works-card img{
    display: block;
    width: 100%;
    height: 280px;
    object-fit: cover;
    border-radius: 20px;
}
.works-card h3{
    padding: 10px 15px 0;
}
@keyframes marquee-scroll {
    0%{
        transform: translateX(0);
    }
    100%{
        transform: translateX(calc(-50% - 12px));
    }
}

/* オーナーの声 */
.f-voice{
    background: var(--white);
}
.f-voice-items{
    margin-bottom: 40px;
}
.f-voice-item{
    flex-basis: 47%;
    position: relative;
    display: block;
}
.f-voice-item img{
    aspect-ratio: 3/2;
    object-fit: cover;
}
.f-voice-item p{
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    z-index: 1;
    transform: translateY(-50%);
    text-align: center;
    padding: 10px;
    background: rgba(255,255,255,0.6);
    font-size: 18px;
    font-weight: bold;
    width: auto;
    min-width: 100%;
    line-height: 1.5;
    white-space: nowrap;
}
.f-voice-reviews{
    margin-bottom: 40px;
}
.f-voice-text{
    padding: 0 5%;
}

/* イベント */
.f-event{
    background: var(--beige-soft);
}
.f-event-items{
    margin-bottom: 40px;
}
.f-event-item{
    flex-basis: 31%;
    border: 1px solid var(--section-line);
    border-radius: 4px;
    box-shadow: 0 4px 14px rgba(59, 49, 43, 0.1);
}
.f-event-item a{
    display: flex;
    flex-direction: column;
    height: 100%;
}
.f-event-img img{
    aspect-ratio: 16/9;
    object-fit: cover;
}
.f-event-status{
    display: block;
    padding: 5px;
    text-align: center;
    color: #fff;
}
.f-event-status.open{
    background: var(--orange);
}
.f-event-status.closed{
    background: #999;
}
.f-event-info{
    background: var(--beige-soft);
    padding: 20px;
    flex-grow: 1;
}
.f-event-item h3{
    border-bottom: 1px solid var(--green-dark);
    padding-bottom: 10px;
    margin-bottom: 10px;
}
.f-event-date{
    position: relative;
    padding-left: 30px;
    font-size: 14px;
    color: var(--text-muted);
    margin-bottom: 10px;
}
.f-event-date img{
    position: absolute;
    left: 0;
    top: 7px;
    width: 16px;
}

/* ニュース・ブログ */
.f-news-blog{
    background: var(--beige-soft);
}
.f-news-blog-flex{
    margin-bottom: 80px;
}
.f-news-blog .sec-title{
    margin-bottom: 20px;
    border-bottom: 1px solid var(--green-dark);
    padding: 10px;
}
.f-news-blog .link-btn3{
    margin-left: auto;
    align-self: center;
}
.f-news-blog time{
    font-size: 15px;
    color: var(--text-muted);
    font-weight: 400;
    margin-bottom: 5px;
    display: inline-block;
    letter-spacing: 1px;
    font-family: 'Josefin Sans', sans-serif;
}
.f-news{
    flex-basis: 46%;
}
.f-news-card{
    height: 100px;
    border-bottom: 1px solid var(--section-line);
    padding: 0 10px;
}
.f-news-card a{
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.f-news-blog .f-blog-info{
    min-width: 0;
}
.f-news-blog h3{
    font-size: 20px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.f-blog{
    flex-basis: 46%;
}
.f-blog-link{
    border-bottom: 1px solid #ddd;
}
.f-blog-img img{
    height: 150px;
    padding: 10px;
    aspect-ratio: 3/2;
    object-fit: cover;
}
.f-blog-info{
    flex-basis: calc(100% - 225px);
    display: flex;
    flex-direction: column;
    padding: 10px;
    justify-content: center;
}
.f-blog-title{
    font-size: 18px !important;
    color: var(--burgundy);
    margin-bottom: 5px;
}
.f-blog-title + p{
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    line-height: 1.8;
    color: #666;
}
.front-page .contact-area{
    background: var(--beige-soft);
}
.banner{
    max-width: 1000px;
    margin: auto;
}

/* ========== フロントページ：スマホ ========== */
@media screen and (max-width:768px){
    .front-page h2,
    .front-page h3,
    .front-page h4{
        letter-spacing: 1px;
        line-height: 1.55;
    }
    .front-page .sec-title{
        margin-bottom: 36px;
    }
    .front-page .sec-title.flex{
        display: block;
    }
    .front-page .sec-title .title-main img{
        width: 40px;
        margin-right: 8px;
    }
    .front-page .sec-title .title-main .title-ja{
        font-size: 22px;
    }
    .front-page .sec-title .title-main .title-en{
        font-size: 12px;
    }
    .front-page .sec-title p{
        margin: 16px 0 0;
        padding: 0 0 10px;
    }
    .front-page .link-btn2 .btn{
        min-width: 0;
        width: 100%;
        max-width: 320px;
        box-sizing: border-box;
        padding: 14px 16px;
        font-size: 15px;
    }

    /* ヒーロー */
    .hero-slider .swiper-img::before{
        background: linear-gradient(
            180deg,
            rgba(255, 255, 255, 0.82) 0%,
            rgba(255, 255, 255, 0.68) 38%,
            rgba(255, 255, 255, 0.42) 68%,
            rgba(255, 255, 255, 0.22) 100%
        );
    }
    .hero-slider-text{
        padding: 72px 6% 36px;
        text-align: center;
        align-items: center;
        justify-content: center;
    }
    .fv-title{
        margin-bottom: 12px;
    }
    .fv-title1{
        font-size: 22px;
        letter-spacing: 1px;
        margin-bottom: 8px;
        line-height: 1.5;
        -webkit-text-stroke: 0.7px currentColor;
    }
    .fv-title2{
        font-size: 34px;
        letter-spacing: 1px;
        margin-bottom: 14px;
        line-height: 1.25;
        -webkit-text-stroke: 0.7px currentColor;
    }
    .fv-subtitle{
        font-size: 15px;
        letter-spacing: 0.5px;
        line-height: 1.6;
        -webkit-text-stroke: 0.4px currentColor;
    }
    .hero-slider-text p{
        line-height: 1.9;
        margin-bottom: 28px;
        max-width: 36em;
        font-size: 15px;
    }
    .front-swiper{
        height: 100svh;
    }
    .hero-slider-text .btns{
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 10px;
        width: 100%;
        max-width: 300px;
    }
    .hero-slider-text .btns a{
        width: 100%;
        padding: 16px 36px 16px 18px;
        font-size: 15px;
        justify-content: center;
    }

    /* シックハウス */
    .f-sickhouse h2{
        font-size: 22px;
        margin-bottom: 24px;
    }
    .f-sickhouse h2 span{
        padding-left: 8px;
    }
    .f-sickhouse p{
        margin-bottom: 28px;
        text-align: left;
    }
    .f-sick-items.flex-sb{
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        row-gap: 20px;
    }
    .f-sick-items div{
        flex-basis: 47%;
    }
    .f-sick-items div span{
        display: block;
        font-size: 13px;
        margin-top: 8px;
    }

    /* 空気・暮らし */
    .f-air{
        padding: 48px 0;
    }
    .f-air-top-img img{
        border-radius: 0;
        height: auto;
        max-height: 280px;
    }
    .f-air-top-info{
        padding: 32px 5% 0;
    }
    .f-air-top-info h2,
    .f-air-foot-info h2{
        font-size: 24px;
        margin-bottom: 18px;
        text-align: center;
    }
    .f-air-top-info p,
    .f-air-foot-info p{
        font-size: 15px;
    }
    .f-air-mid{
        padding: 44px 5%;
    }
    .f-air-mid h2{
        font-size: 22px;
        letter-spacing: 1px;
        line-height: 1.6;
    }
    .f-air-mid::before{
        margin-bottom: 24px;
    }
    .f-air-mid::after{
        margin-top: 24px;
    }
    .f-air-foot{
        padding: 0 5%;
    }
    .f-air-foot-info{
        padding-bottom: 28px;
    }
    .f-air-foot-img img{
        border-radius: 16px;
    }
    .f-air-foot-img img:first-of-type{
        margin-bottom: 16px;
    }

    /* 代表メッセージ */
    .f-ceo-img{
        width: 80%;
        min-width: 270px;
        margin: 0 auto 24px;
    }
    .f-ceo-img p{
        text-align: center;
    }
    .f-ceo-img p img{
        margin: 10px auto 0;
    }
    .f-ceo-top{
        margin-bottom: 20px;
    }
    .f-ceo-cta-link{
        padding: 20px 14px 16px;
    }
    .f-ceo-lead{
        font-size: 16px;
        line-height: 1.8;
    }

    /* ラボ */
    .f-labo{
        padding: 60px 16px 70px;
    }
    .f-labo-head{
        margin-bottom: 28px;
    }
    .f-labo-head .title-en{
        font-size: 13px;
    }
    .f-labo-head-title{
        font-size: 22px;
        letter-spacing: 0.1em;
    }
    .f-labo-in{
        flex-direction: column;
        min-height: auto;
        border-radius: 20px;
    }
    .f-labo-info{
        padding: 40px 24px;
        gap: 20px;
    }
    .f-labo-info::before{
        display: none;
    }
    .f-labo-info h2{
        font-size: 12px;
    }
    .f-labo-info h2 span{
        font-size: 22px;
        margin-top: 14px;
    }
    .f-labo-link{
        align-self: stretch;
        justify-content: center;
        font-size: 14px;
        padding: 14px 20px;
    }
    .f-labo-img{
        min-height: 280px;
    }
    .f-labo-img-in{
        width: 200px;
        height: 200px;
    }
    .f-labo-img-in p{
        font-size: 16px;
    }
    .f-labo-img-in p .font-l{
        font-size: 22px;
    }
    .f-labo-img-in p .font-s{
        font-size: 14px;
    }

    /* ラインナップ */
    .f-lineup-items-top{
        margin-top: 48px;
        margin-bottom: 48px;
        padding-bottom: 24px;
    }
    .f-lineup-items-top::after,
    .f-lineup-items-foot::after{
        width: 100%;
        margin-left: 0;
    }
    .f-lineup h3{
        font-size: 20px;
        transform: none;
        margin-bottom: 36px;
        padding-top: 28px;
    }
    .f-lineup-item-flex{
        gap: 0;
        margin-bottom: 24px;
        padding-top: 8px;
    }
    .f-lineup-item{
        margin-bottom: 50px;
    }
    .f-lineup-item:last-child{
        margin-bottom: 0;
    }
    .f-lineup-img{
        margin-bottom: 12px;
    }
    .f-lineup-img span{
        top: -35px;
    }
    .f-lineup-img img,
    .f-lineup-foot-img img{
        border-radius: 12px;
    }
    .f-lineup-items-top .f-lineup-img img{
        aspect-ratio: 1/1;
        object-fit: cover;
    }
    .f-lineup-info h4{
        font-size: 13px;
        margin-bottom: 8px;
    }
    .f-lineup-info h4 span{
        font-size: 20px;
    }
    .f-lineup-info h4 span small{
        font-size: 14px;
    }

    /* 家づくりガイド */
    .f-per-items{
        gap: 0;
    }
    .f-per-item{
        margin: 0 auto 25px;
        padding: 0 16px 16px;
        border-radius: 14px;
        display: block;
    }
    .f-per-item .num{
        font-size: 32px;
        margin: -18px auto 4px;
    }
    .f-per-item h3{
        font-size: 18px;
    }
    .f-per-item h3 span{
        font-size: 11px;
    }
    .f-per-item .flex-sb{
        display: flex;
        align-items: center;
        gap: 12px;
    }
    .f-per-item div p{
        flex-basis: 62%;
        line-height: 1.7;
    }
    .f-per-item div div{
        flex-basis: 34%;
    }

    /* 施工事例 */
    .works-marquee-track{
        gap: 16px;
        margin-bottom: 40px;
    }
    .works-card{
        width: 240px;
    }
    .works-card img{
        height: 168px;
        border-radius: 12px;
    }
    .works-card h3{
        font-size: 15px;
        padding: 8px 8px 0;
        letter-spacing: 0.5px;
        line-height: 1.5;
    }

    /* オーナーの声 */
    .f-voice-item{
        margin-bottom: 16px;
    }
    .f-voice-item p{
        font-size: 16px;
        padding: 8px;
        white-space: nowrap;
    }
    .f-voice-text{
        padding: 0;
        text-align: left;
    }

    /* イベント */
    .f-event-item{
        margin-bottom: 20px;
    }
    .f-event-item h3{
        font-size: 18px;
    }
    .f-event-info{
        padding: 16px;
    }

    /* ニュース・ブログ */
    .f-news-blog-flex{
        margin-bottom: 40px;
    }
    .f-news{
        margin-bottom: 40px;
    }
    .f-news-blog .sec-title{
        padding: 0 0 10px;
    }
    .f-news-card{
        height: auto;
        min-height: 84px;
        padding: 12px 4px;
    }
    .f-news-blog h3{
        font-size: 16px;
        white-space: normal;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
    }
    .f-blog-card{
        margin-bottom: 8px;
    }
    .f-blog-link.flex-sb{
        display: flex;
        align-items: stretch;
    }
    .f-blog-img{
        flex: 0 0 38%;
    }
    .f-blog-img img{
        height: 100%;
        min-height: 96px;
        padding: 8px;
    }
    .f-blog-info{
        flex-basis: 62%;
        padding: 8px 8px 8px 0;
    }
    .f-blog-title{
        font-size: 16px !important;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .f-news-blog .sp{
        margin-top: 20px;
    }

    /* CTA */
    .contact-area{
        padding-bottom: 8px;
    }
    .contact-area h2{
        font-size: 18px;
        margin-bottom: 12px;
    }
}

/**********************************************************************/
/***************************  contact-link  ***************************/
/**********************************************************************/
.contact-area{
    gap: 5px;
    padding-bottom: 5px;
}
.contact-area article{
    flex: 1;
    text-align: center;
    color: #fff;
    position: relative;
}
.contact-area article a{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.contact-area-img{
    aspect-ratio: 3/2;
    position: relative;
}
.contact-area-img::after{
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.4);
}
.contact-area-img img{
    height: 100%;
    object-fit: cover;
}
.contact-area a>div{
    position: relative;
    z-index: 1;
}
.contact-area a>div>div{
    width: 80px;
    margin: 0 auto 10px;
}
.contact-area h2{
    font-size: 24px;
    margin-bottom: 15px;
    position: relative;
}
.contact-area h2::after{
    content: "";
    position: absolute;
    bottom: -10px;
    left: 50%;
    transform: translateX(-50%);
    width: 50px;
    height: 2px;
    background: #f5f1e7;
}

@media screen and (max-width:768px){
    .contact-area a>div>div{
        width: 60px;
    }
    .contact-area h2{
        font-size: 20px;
    }
    .contact-area h2::after{
        bottom: -8px;
        width: 40px;
        height: 1px;
    }
    .contact-area article{
        margin-bottom: 3px;
    }
}

/**********************************************************************/
/******************************  footer  ******************************/
/**********************************************************************/
.map-area{
    height: 400px;
}
.footer-nav{
    padding: 50px 0;
}
.footer-nav .drawer-logo p{
    margin-top: 10px;
}
.copyright{
    background: var(--beige-dark);
    padding: 10px;
    text-align: center;
    font-size: 13px;
}
.copyright a{
    text-decoration: underline;
}
.bottom-nav{
    position: fixed;
    bottom: -100px;
    left: 0;
    width: 100%;
    justify-content: center;
    background: var(--beige-soft);
    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: var(--beige-dark);
	border: 1px solid var(--beige-dark);
}
.bottom-mail{
	background: var(--green);
	border: 1px solid var(--green);
    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-info{
        margin-bottom: 30px;
        text-align: center;
    }
	.footer-logo{
		margin-bottom: 0px;
	}
    .footer-logo a{
        font-size: 22px;
    }
    .footer-logo img{
        height: 40px;
        object-fit: contain;
    }
	.footer-info p{
		margin-bottom: 10px;
	}
    .footer-contact-area{
        margin-bottom: 30px;
        padding-left: 0;
    }
    .footer-contact a{
        margin-bottom: 12px;
        font-size: 14px;
        padding: 10px;
    }

	.footer-wrapper nav{
		margin: 0 5%;
	}
    .footer-nav li{
        margin-bottom: 0;
        font-size: 14px;
    }
    .footer-nav li a{
        margin-bottom: 0;
    }
    .footer-nav>ul>li{
        padding: 15px;
        border-bottom: 1px dashed #ccc;
    }
    .footer-nav li ul li{
        height: auto;
        padding: 15px;
    }
    .footer-nav li ul li:not(:last-of-type){
        border-bottom: 1px dashed #ccc;
    }    
    .map-area{
        height: 220px;
    }
    .footer-nav{
        padding: 36px 0 24px;
    }
    .footer-nav .drawer-logo{
        margin-bottom: 28px;
    }
	.copyright{
		font-size: 12px;
        padding: 12px 16px 20px;
	}
	.bottom-nav{
		padding: 8px;
        padding-bottom: calc(8px + env(safe-area-inset-bottom));
	}
	.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-top h2{
    font-size: 30px;
    text-align: center;
}
.page-top p{
    margin-top: 50px;
    text-align: center;
    line-height: 2.2;
    font-family: "Noto Serif JP", serif;
    font-size: 18px;
}
.page-top-archive-title{
    display: flex;
    justify-content: center;
}
.page-top-archive .title-main{
    justify-content: center;
    align-items: center;
}
.page-top-archive .title-main img{
    width: 55px;
    margin-right: 12px;
}
.page-top-archive .title-main .title-label{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}
.page-top-archive .title-main .title-ja{
    font-size: 28px;
    text-align: center;
}
.page-top-archive .title-main .title-en{
    font-size: 16px;
    display: block;
    text-align: center;
}
.page-top-archive p{
    margin-top: 40px;
}
.page-top-flex{
    padding-left: 10%;
}
.page-top-info{
    flex-basis: 580px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.page-top-info h2{
    margin-bottom: 30px;
    font-size: 32px;
    color: var(--green);
}
.page-top-info h2 span{
    font-size: 16px;
    display: block;
    margin-top: 5px;
}
.page-top-info p{
    font-size: 18px;
}
.page-top-info .lead{
    margin-bottom: 10px;
    color: var(--orange-soft);
    line-height: 1.8;
}
.page-top-img{
    flex-basis: calc(100% - 630px);
}
.page-top-img img{
    height: 100%;
    object-fit: cover;
    border-radius: 30px 0 0 30px;
}

.breadcrumb{
    padding: 10px;
    border-bottom: 1px solid #aaa;
}
.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;
    padding: 0;
}
.page-header-img{
    height: 500px;
    background: #3b312b;
}
.page-header-text{
    background: rgba(0,0,0,0.3);
}
.header-text{
    color: #fff;
    font-size: 44px;
    text-align: center;
    text-shadow: 2px 2px 3px rgba(0,0,0,0.5);
    font-family: "TAoonishi", sans-serif;
    font-weight: bold;
    line-height: 1.5;
    letter-spacing: 3px;
}
.header-text span{
    display: block;
    font-size: 18px;
    font-family: 'Josefin Sans', sans-serif;
}
.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;
}

.page-sec-title .main span{
    font-size: 40px;
    color: var(--key);
    display: flex;
    align-items: flex-end;
    gap: 1rem;
    line-height: 1;
}
.page-sec-title .main{
    text-align: center;
    margin-bottom: 50px;
}
.page-sec-title .main span::before,
.page-sec-title .main span::after{
    content: "";
    border-top: 1px solid #ddd;
    flex-grow: 1;
}
.page-sec-title small{
    display: inline-block;
    margin-top: 10px;
    color: #98948c;
    font-size: 14px;
}

.page-sec-title2{
    position: relative;
    font-size: 26px;
    margin-bottom: 34px;
}
.page-sec-title2::after{
    content: "";
    position: absolute;
    width: 80px;
    height: 2px;
    background: var(--green);
    bottom: -12px;
    left: 0;
}

.page-sec-title3{
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 40px;
}
.page-sec-title3 .title-ja{
    font-size: 26px;
    padding-left: 0;
}
.page-sec-title3 .title-en{
    font-size: 16px;
}

.page-img-title-img{
    position: relative;
    clip-path: inset(0);
    width: 70%;
    margin-left: auto;
    height: 500px;
}
.page-img-title-img::before{
    content: "";
    position: fixed;
    inset: 0;
    background-size: cover;
    background-position: center center;
    z-index: -1;
    width: 70%;
    margin-left: auto;
}
.page-img-title h3{
    transform: translate(-5%, -90px);
    line-height: 1.5;
    color: #fff;
    mix-blend-mode: difference;
    width: 70%;
    margin-left: auto;
}
.page-img-title h3 span{
    display: block;
    font-size: 100px;
    letter-spacing: 5px;
}

.page-img-title h3 small{
    font-size: 40px;
    display: inline-block;
    margin-left: 20px;
}

.page-foot{
    text-align: center;
}
.page-foot .line{
    width: 2px;
    height: 100px;
    background: var(--green);
    margin: 0 auto 50px;
}
.page-foot-title{
    font-size: 28px;
    margin-bottom: 50px;
    color: var(--green);
}
.page-foot p{
    font-size: 18px;
    font-family: "Noto Serif JP", serif;
}
.page-foot .btn2{
    margin-top: 50px;
}
.page-foot .page-foot-btns .btn2{
    margin-top: 0;
}

.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: 10px;
	}
    .breadcrumb ul li{
        font-size: 12px;
    }
    .breadcrumb ul li:not(:last-of-type)::after{
        margin: 0 10px;
    }
    .page-header-img{
        height: 50vh;
    }
    .header-text{
        font-size: 32px;
    }
    .header-text span{
        font-size: 16px;
    }
    .page-top h2{
        font-size: 20px;
    }
    .page-top p{
        margin-top: 30px;
        line-height: 2;
        font-size: 15px;
    }

.page-top-flex{
    padding: 0 5%;
}
.page-top-info{
    margin-bottom: 15px;
}
.page-top-info h2{
    margin-bottom: 20px;
    font-size: 24px;
}
.page-top-info p{
    font-size: 15px;
}
.page-top-img img{
    height: auto;
    width: 100%;
    border-radius: 20px;
}
    .sec-title3 .ja{
        font-size: 22px;
    }
    .page-links{
        margin-bottom: 40px;
        gap: 10px;
    }

    .sec-title .title-main .title-ja{
        font-size: 24px;
    }
    .sec-title .title-main .title-en{
        font-size: 13px;
    }
    .page-top-archive .title-main .title-ja{
        font-size: 24px;
    }
    .page-top-archive .title-main .title-en{
        font-size: 14px;
    }
    .page-top-archive .title-main img{
        margin: 0 auto 10px;
    }
    .page-sec-title2{
        font-size: 20px;
    }
    .page-sec-title3 .title-ja{
        font-size: 22px;
    }
    .page-sec-title3 .title-en{
        font-size: 13px;
    }
    .page-top-archive p{
        margin-top: 30px;
    }
    .page-sec-title .main{
        text-align: center;
        margin-bottom: 30px;
    }
    .page-sec-title .main span{
        font-size: 28px;
        gap: 10px;
    }
    .page-sec-title small{
        font-size: 12px;
    }
    .page-foot .line{
        height: 60px;
        margin: 0 auto 30px;
    }
    .page-foot-title{
        font-size: 18px;
        margin-bottom: 30px;
    }
    .page-foot p{
        font-size: 14px;
    }
    .page-foot .btn2{
        margin-top: 24px;
        font-size: 14px;
        padding: 12px;
    }
    .page-foot .page-foot-btns .btn2{
        margin-top: 0;
    }

    .page-img-title-img{
        position: relative;
        clip-path: inset(0);
        width: 100%;
        margin-left: auto;
        height: 400px;
    }
    .page-img-title-img::before{
        width: 100%;
    }
    .page-img-title h3{
        transform: translate(0, -40px);
        width: 90%;
        margin-right: auto;
    }
    .page-img-title h3 span{
        font-size: 50px;
    }
    .page-img-title h3 small{
        font-size: 20px;
    }
    .thanks-page h2{
        font-size: 18px;
        text-align: center;
        margin-bottom: 20px;
    }
}

/**********************************************************************/
/*****************************  ラボラトリー  *****************************/
/**********************************************************************/

.labo-slider{
    padding-bottom: 0;
}
.labo-slider h2{
    text-align: center;
    font-size: 36px;
    margin-bottom: 80px;
}
.labo-slider h2 small{
    display: block;
    font-size: 18px;
    color: var(--orange-soft);
}
.parallax-js{
    position: relative;
    height: 400px;
    overflow: hidden;
}

.parallax-js__bg{
    position: absolute;
    inset: -80px 0;
    background-size: cover;
    background-position: center;
    will-change: transform;
}
.para1{
    background-image: url("../img/laboratory/la2.webp");
}
.para2{
    background-image: url("../img/laboratory/la3.webp");
}
.labo-slider .works-marquee-track{
     margin-bottom: 0px; 
}
.labo-apply{
    padding: 60px 0;
    border-top: 1px solid #bbb;
}
.labo-page .width-800{
    width: 100%;
}
@media screen and (max-width: 768px) {
    .parallax-js{
        height: 220px;
    }

    .parallax-js__bg{
        inset: -50px 0;
    }
    .labo-slider h2{
        font-size: 22px;
        margin-bottom: 36px;
        padding: 0 5%;
    }
    .labo-slider h2 small{
        font-size: 14px;
        margin-top: 10px;
        letter-spacing: 0.5px;
        overflow-wrap: anywhere;
    }
}

/**********************************************************************/
/*****************************  コンセプト  *****************************/
/**********************************************************************/
.con-main h2{
    text-align: center;
    font-size: 36px;
    margin-bottom: 80px;
}
.con-main h2 small{
    display: block;
    font-size: 18px;
    color: var(--orange-soft);
}
.concept-item{
    margin-top: 150px;
}
.concept-item-top{
    margin-left: 10%;
    margin-bottom: 80px;
    background: var(--beige-soft);
}
.concept-item-top.rev{
    margin-left: auto;
    margin-right: 10%;
}
.concept-img1{
    flex-basis: 50%;
    transform: translate(-10%, -70px);
}
.rev .concept-img1{
    transform: translate(10%, -70px);
}
.concept-img1 img{
    height: 100%;
    object-fit: cover;
}
.concept-item-top-info{
    flex-basis: 50%;
    padding: 50px 5% 60px 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.rev .concept-item-top-info{
    padding: 50px 0 60px 10%;
}
.concept-item-num{
    font-weight: 400;
    font-size: 30px;
    margin-bottom: 20px;
    font-family: 'Josefin Sans', sans-serif;
    color: var(--burgundy);
}
.concept-item-top-info h3{
    font-size: 24px;
    border-bottom: 1px solid;
    padding-bottom: 10px;
    margin-bottom: 15px;
    max-width: 700px;
    font-weight: bold;
    color: var(--green);
}
.concept-item-top-info p{
    font-size: 15px;
    max-width: 650px;
}
.con-foot-item{
    flex-basis: 47%;
}
.con-foot-item img{
    aspect-ratio: 3/2;
    object-fit: cover;
}
.con-foot-item h4{
    margin: 15px auto 25px;
    border-left: 4px solid var(--green);
    padding: 2px 0 4px 16px;
    font-size: 22px;
    font-family: "TAoonishi", sans-serif;
}
.con-foot-item p{
    font-size: 15px;
    line-height: 1.9;
}
.youtube{
    width: 800px;
    max-width: 100%;
    height: 450px;
    margin: auto;
}
.youtube iframe{
    width: 100%;
    height: 100%;
}
.youtube-info{
    text-align: center;
    margin-top: 20px;
}
.youtube-info h3{
    font-size: 24px;
    margin-bottom: 15px;
    color: var(--burgundy);
}
.youtube-note{
    margin: 16px auto 0;
    font-size: 13px;
    line-height: 1.8;
    color: #777;
}
.youtube-transcript-btn{
    margin-top: 24px;
}
.youtube-transcript-btn button{
    display: inline-block;
    padding: 12px 24px;
    color: var(--green);
    letter-spacing: 0.08em;
    border: 1px solid var(--green);
    background: transparent;
    cursor: pointer;
    transition: all 0.3s ease;
    font-size: 14px;
}
.youtube-transcript-btn button:hover{
    color: #fff;
    background-color: var(--green);
}
@media screen and (max-width:768px){
    .youtube{
        height: 52vw;
    }
    .youtube-info h3{
        font-size: 18px;
    }
    .youtube-info p{
        text-align: left;
    }
    .con-main h2{
        font-size: 22px;
        margin-bottom: 40px;
        padding: 0 5%;
    }
    .con-main h2 small{
        font-size: 14px;
        margin-top: 10px;
        line-height: 1.7;
        letter-spacing: 0.5px;
        overflow-wrap: anywhere;
    }
    .concept-item{
        margin-top: 56px;
    }
    .concept-item-top,
    .concept-item-top.rev{
        margin-left: 0;
        margin-right: 0;
        margin-bottom: 32px;
        padding: 0 5% 24px;
    }
    .concept-img1,
    .rev .concept-img1{
        transform: none;
        margin-bottom: 8px;
    }
    .concept-img1 img{
        height: auto;
        width: 100%;
        border-radius: 12px;
    }
    .concept-item-top-info,
    .rev .concept-item-top-info{
        padding: 16px 0 8px;
    }
    .concept-item-num{
        font-size: 20px;
        margin-bottom: 12px;
    }
    .concept-item-top-info h3{
        font-size: 18px;
    }
    .con-foot-item{
        margin-bottom: 28px;
    }
    .con-foot-item h4{
        font-size: 18px;
        margin: 12px auto 12px;
    }
}

/**********************************************************************/
/*****************************  会社案内  *****************************/
/**********************************************************************/
.com1-info{
    flex-basis: 65%;
}
.com1-info p{
    margin-bottom: 30px;
}
.com1-img{
    flex-basis: 32%;
}
.com-cert{
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 32px;
    margin-top: 40px;
    padding-top: 32px;
    border-top: 1px solid var(--section-line);
}
.com-cert-img{
    flex: 0 0 200px;
}
.com-cert-img a{
    display: block;
    border-radius: 4px;
    overflow: hidden;
    box-shadow: 0 4px 18px rgba(59, 49, 43, 0.14);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    cursor: zoom-in;
}
.com-cert-img img{
    width: 100%;
    height: auto;
    display: block;
    background: #f8f4ea;
}
.com-cert-info{
}
.com-cert-label{
    font-size: 13px;
    letter-spacing: 0.18em;
    color: var(--green);
    font-weight: 700;
    margin-bottom: 4px;
    line-height: 1.4;
}
.com-cert-info h3{
    font-size: 22px;
    letter-spacing: 0.08em;
    margin-bottom: 12px;
    line-height: 1.5;
}
.com-cert-info p{
    margin-bottom: 0;
}
.com-cert-note{
    margin-top: 10px;
    font-size: 13px;
    color: var(--text-muted);
    letter-spacing: 0.06em;
}
@media screen and (min-width:769px){
    .com-cert-img a:hover{
        transform: translateY(-3px);
        box-shadow: 0 8px 24px rgba(59, 49, 43, 0.18);
    }
}
.com-profile{
    background: var(--beige-dark);
    margin-left: auto;
    padding: 50px 0;
    position: relative;
    justify-content: space-between;
}
.com-profile-img{
    flex-basis: 45%;
    position: relative;
    z-index: 10;
    display: flex;
    align-items: center;
}
.com-profile-img img{
    height: 90%;
    object-fit: cover;
}
.com-profile table,
.com-profile td,
.com-profile th{
    border: none;
}
.com-profile table{
    flex-basis: 55%;
    padding: 0 7%;
    display: block;
}
.com-profile th{
    padding-right: 30px;
    border-right: 1px solid;
}
.com-profile td{
    padding-left: 30px;
    margin-bottom: 20px;
}
.com-profile-bg-w{
    position: absolute;
    top: 0;
    left: 0;
    width: 10%;
    height: 100%;
    background: var(--beige-soft);
}
.com3-info{
    flex-basis: 50%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 30px;
}
.com3-info>p{
    font-size: 22px;
    line-height: 1.7;
    margin-bottom: 20px;
    color: var(--orange);
    font-weight: bold;
}
.com3-aria{
    background: #fff;
    padding: 30px;
    box-shadow: 3px 3px 4px rgba(0,0,0,0.2);
    border-radius: 30px;
}
.com3-aria h3{
    color: var(--green);
    font-weight: 600;
    font-size: 20px;
    display: flex;
    gap: 20px;
    align-items: center;
}
.com3-aria h3::before,
.com3-aria h3::after{
    content: "";
    flex-grow: 1;
    border-top: 1px solid var(--green);
}
.com3-img{
    flex-basis: 45%;
}
.com4-in{
    gap: 50px;
}
.com4-in>div{
    flex-basis: calc(100% / 2 - 25px);
}
.company-page .top-btn{
    background: var(--beige-soft);
    padding: 50px 0;
}

@media screen and (max-width:768px){
    .com1-img{
        width: 80%;
        margin: 0 auto 20px;
        min-width: 270px;
    }
    .com-cert{
        display: block;
        margin-top: 28px;
        padding-top: 24px;
        text-align: center;
    }
    .com-cert-img{
        width: 130px;
        margin: 0 auto 16px;
    }
    .com-cert-info h3{
        font-size: 18px;
    }
    .com-cert-note{
        font-size: 12px;
    }
    .com-profile{
        padding: 28px 5%;
    }
    .com-profile-img{
        margin-bottom: 20px;
    }
    .com-profile-img img{
        height: auto;
        border-radius: 12px;
    }
    .com-profile table{
        padding: 0 0 0 12%;
    }
    .com-profile th,
    .com-profile td{
        display: block;
        padding: 4px 0;
        border-right: none;
    }
    .com-profile th{
        padding-right: 0;
        margin-top: 12px;
        font-weight: 700;
    }
    .com-profile td{
        padding-left: 0;
        margin-bottom: 0;
    }
    .com3-info>p{
        font-size: 18px;
        margin: 0;
    }
    .com3-aria{
        padding: 20px;
        margin-bottom: 20px;
    }
    .com4-in{
        display: flex;
        gap: 16px;
    }
    .com4-in>div{
        flex-basis: calc(50% - 8px);
        margin-bottom: 8px;
    }
}

/**********************************************************************/
/*****************************  求人情報  *****************************/
/**********************************************************************/
.recruit-page .page-top h2 {
    font-size: 32px;
    line-height: 1.6;
    margin-bottom: 30px;
    font-family: "TAoonishi", sans-serif;
    color: var(--orange);
    font-weight: bold;
}
.recruit-about{
    background: var(--beige-dark);
}
.recruit-about-flex{
    gap: 50px;
}
.recruit-about-info{
    flex-basis: 55%;
}
.recruit-about-img{
    flex-basis: 40%;
}
.recruit-about-img img{
    border-radius: 20px;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.recruit-job-links{
    margin-top: 30px;
    gap: 15px;
    flex-wrap: wrap;
}
.recruit-job-link{
    flex: 1;
    min-width: 200px;
    display: block;
    padding: 16px 20px;
    background: #fff;
    border: 1px solid var(--green);
    color: var(--green);
    text-align: center;
    border-radius: 8px;
    font-size: 14px;
    transition: background 0.3s, color 0.3s;
}
.recruit-job-link:hover{
    background: var(--green);
    color: #fff;
}
.recruit-story{
    padding: 60px 0;
}
.recruit-message{
    gap: 50px;
    align-items: stretch;
}
.recruit-message-aside{
    flex-basis: 30%;
    flex-shrink: 0;
}
.recruit-message-aside,
.recruit-staff-aside{
    align-self: stretch;
}
.recruit-sticky-panel{
    position: sticky;
    top: 100px;
    text-align: center;
}
.recruit-sticky-panel img{
    border-radius: 20px;
    width: 100%;
}
.recruit-message-name{
    margin-top: 12px;
    font-size: 14px;
    color: #666;
}
.recruit-message-body{
    flex-basis: 65%;
}
.recruit-message-body > p{
    margin-bottom: 20px;
    line-height: 1.9;
}
.recruit-quote{
    margin: 24px 0;
    padding: 20px 24px;
    background: #fff;
    border-left: 4px solid var(--green);
    border-radius: 0 12px 12px 0;
    box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.06);
}
.recruit-quote p{
    line-height: 1.9;
    margin-bottom: 12px;
}
.recruit-quote p:last-child{
    margin-bottom: 0;
}
.recruit-quote-em{
    border-left-color: var(--orange);
    font-family: "TAoonishi", sans-serif;
    font-size: 18px;
    color: var(--orange);
    font-weight: bold;
}
.recruit-staff{
    padding: 60px 0;
}
.recruit-staff-box{
    background: var(--beige-soft);
    padding: 40px;
    border-radius: 20px;
    gap: 40px;
    align-items: stretch;
}
.recruit-staff-aside{
    flex-basis: 28%;
    flex-shrink: 0;
}
.recruit-staff-name{
    font-size: 18px;
    font-weight: 600;
    color: var(--green);
    margin-top: 12px;
    margin-bottom: 0;
}
.recruit-staff-body{
    flex-basis: 68%;
}
.recruit-staff-body > p{
    line-height: 1.9;
    margin-bottom: 16px;
}
.recruit-staff-note{
    margin-top: 24px;
    font-size: 14px;
    color: #666;
}
.recruit-jobs{
    padding: 60px 0;
}
.recruit-job{
    background: #fff;
    padding: 40px;
    border-radius: 20px;
    margin-bottom: 40px;
    box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.06);
}
.recruit-job-title{
    font-size: 22px;
    color: var(--green);
    font-weight: 600;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid #ddd;
}
.recruit-job-title small{
    display: block;
    font-size: 14px;
    font-weight: normal;
    color: #666;
    margin-top: 6px;
}
.recruit-job-lead{
    margin-bottom: 24px;
    line-height: 1.9;
}
.recruit-common{
    background: #fff;
    padding: 40px;
    border-radius: 20px;
    box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.06);
}
.recruit-common-title{
    font-size: 20px;
    color: var(--green);
    font-weight: 600;
    margin-bottom: 24px;
}
.recruit-table,
.recruit-table th,
.recruit-table td{
    border: none;
    height: auto;
}
.recruit-table{
    width: 100%;
    border-collapse: collapse;
    border: 1px solid #e5e0d8;
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
}
.recruit-table tr{
    border-bottom: 1px solid #ece8e2;
}
.recruit-table tr:last-child{
    border-bottom: none;
}
.recruit-table th,
.recruit-table td{
    padding: 20px 28px;
    line-height: 1.85;
    vertical-align: top;
    text-align: left;
    letter-spacing: 0.04em;
}
.recruit-table th{
    width: 28%;
    min-width: 140px;
    color: var(--green);
    font-weight: 600;
    white-space: nowrap;
    background: var(--beige-soft);
    border-right: 1px solid #ece8e2;
}
.recruit-table td{
    color: var(--text);
    background: #fff;
}
.recruit-table td small,
.recruit-table td .note{
    display: block;
    margin-top: 6px;
    font-size: 13px;
    color: #777;
    line-height: 1.7;
}
.recruit-apply{
    padding: 60px 0;
}
.recruit-page .top-btn{
    background: var(--beige-soft);
    padding: 50px 0;
}
@media screen and (max-width: 768px) {
    .recruit-page .page-top h2{
        font-size: 24px;
    }
    .recruit-about-flex,
    .recruit-message{
        flex-direction: column;
    }
    .recruit-sticky-panel{
        position: static;
    }
    .recruit-job,
    .recruit-common,
    .recruit-staff-box{
        padding: 24px 20px;
    }
    .recruit-table th,
    .recruit-table td{
        display: block;
        width: 100%;
        padding: 14px 18px;
    }
    .recruit-table th{
        padding-bottom: 8px;
        margin-bottom: 10px;
        border-right: none;
        border-bottom: none;
        white-space: normal;
    }
    .recruit-table td{
        padding-top: 0;
        padding-bottom: 18px;
        border-bottom: 1px solid #ece8e2;
    }
    .recruit-table tr:last-child td{
        border-bottom: none;
    }
    .recruit-job-link:first-of-type{
        margin-bottom: 10px;
    }
    .recruit-staff-box{
        flex-direction: column;
    }
.recruit-job-links{
    margin-bottom: 30px;
}
.recruit-job-title{
    font-size: 18px;
}
.recruit-job,
.recruit-common,
.recruit-staff-box{
    padding: 18px;
}

}

/**********************************************************************/
/*****************************  ラインナップ個別  *****************************/
/**********************************************************************/
.lineup-page .breadcrumb {
    padding: 20px 10px;
}
.line-top{
    padding: 30px 0;
}
.line-top-info{
    flex-basis: 35%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 10%;
    padding-left: 5%;
}
.line-top-info h1{
    font-size: 48px;
    letter-spacing: 5px;
    font-family: "Noto Serif JP", serif;
}
.line-top-info h1 span{
    display: block;
    margin-top: 15px;
    font-size: 20px;
}
.line-top-info p{
    font-size: 20px;
    color: #555;
}
.line-top-imgarea{
    position: relative;
    flex-basis: 62%;
}
.line-top-flow{
    position: absolute;
    left: -35px;
    bottom: 24px;
    z-index: 10;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.line-top-flow span{
    width: 14px;
    height: 14px;
    border-right: 2px solid var(--green);
    border-top: 2px solid var(--green);
    transform: rotate(-45deg);
    opacity: 0;
    animation: flowUp 2s infinite;
}
.line-top-flow span:nth-child(2){
    animation-delay: .2s;
}
.line-top-flow span:nth-child(3){
    animation-delay: .4s;
}
@keyframes flowUp {
    0%{
        opacity: 0;
        transform: translateY(10px) rotate(-45deg);
    }
    30%{
        opacity: 1;
    }
    100%{
        opacity: 0;
        transform: translateY(-10px) rotate(-45deg);
    }
}
.line-top-imgs{
    aspect-ratio: 3/2;
    overflow: hidden;
    border-radius: 20px 0 0 20px;
}
.line-top-imgs .swiper-slide{
    height: auto;
}
.line-top-imgs img{
    width: 100%;
    aspect-ratio: 3 / 2.15;
    object-fit: cover;
    display: block;
}
.line1 h2{
    font-size: 28px;
    color: var(--burgundy);
    font-weight: bold;
    margin-bottom: 50px;
}
.line1 h2 span{
    font-size: 40px;
    font-weight: 500;
}
.line2{
    padding-top: 0;
}
.line2-slider{
    overflow: hidden;
    width: 100%;
}
.line2-track{
    display: flex;
    gap: 20px;
    width: max-content;
    animation: lineFlow 30s linear infinite;
}
.line2-track img{
    width: 320px;
    aspect-ratio: 1/1;
    object-fit: cover;
    flex-shrink: 0;
}
@keyframes lineFlow {
    from{
        transform: translateX(0);
    }

    to{
        transform: translateX(calc(-50% - 10px));
    }
}
.line3{
    background: var(--beige-soft);
}
.line3-title{
    margin-bottom: 50px;
}
.line3-title h2{
    font-size: 36px;
    margin-bottom: 50px;
}
.line3-title h2 span{
    display: block;
    font-size: 18px;
    margin-top: 10px;
    color: var(--green);
    font-weight: 600;
    font-family: 'Josefin Sans', sans-serif;
}
.line3-item-flex{
    margin-bottom: 80px;
}
.line3-item-img{
    flex-basis: 60%;
    padding-bottom: 50px;
}
.line3-item-info{
    flex-basis: 50%;
    margin-left: -15%;
    padding: 5%;
    background: rgba(235,227,212,0.9);
    align-self: end;
    position: relative;
    z-index: 1;
}
.rev .line3-item-info{
    margin-left: auto;
    margin-right: -15%;
}
.line3-item-info h3{
    font-size: 28px;
    border-bottom: 1px solid #aaa;
    padding-bottom: 15px;
    margin-bottom: 15px;
}
.line3-item-info h3 small{
    display: block;
    font-size: 16px;
    color: var(--burgundy);
    margin-top: 10px;
    font-weight: bold;
}
.lineup-page  .top-btn{
    background: var(--beige-soft);
}
.lineup-page .contact-area{
    background: var(--beige-soft);
}

@media screen and (max-width:768px){
    .lineup-page .breadcrumb{
        margin-bottom: 0;
    }
    .line-top{
        padding: 20px 0 0;
    }
    .line-top-info{
        padding: 12px 5% 20px;
        gap: 12px;
    }
    .line-top-info h1{
        font-size: 36px;
        letter-spacing: 2px;
    }
    .line-top-info h1 span{
        font-size: 16px;
        margin-top: 8px;
    }
    .line-top-info p{
        font-size: 16px;
    }
    .line-top-imgarea{
        padding: 0 5% 20px;
    }
    .line-top-imgs{
        border-radius: 16px;
    }
    .line-top-flow{
        left: 8px;
        bottom: 36px;
    }
    .line1 h2{
        font-size: 20px;
        margin-bottom: 24px;
    }
    .line1 h2 span{
        font-size: 28px;
    }
    .line1 p{
        text-align: left;
    }
    .line2-track img{
        width: 220px;
    }
    .line3-title h2{
        font-size: 20px;
        margin-bottom: 30px;
    }
    .line3-title h2 span{
        font-size: 15px;
    }
    .line3-item-flex{
        margin-bottom: 32px;
    }
    .line3-item-img{
        padding-bottom: 0;
    }
    .line3-item-info,
    .rev .line3-item-info{
        margin-left: 0;
        margin-right: 0;
        padding: 20px 5%;
    }
    .line3-item-info h3{
        font-size: 20px;
        padding-bottom: 10px;
        margin-bottom: 10px;
    }
}

/** プレミアムページ **/
.page-id-118 .breadcrumb, .page-id-121 .breadcrumb{
    background: #fff;
}
.premium .line-top,
.premium .line1,
.premium .line2{
    background: #333;
    color: #fff;
}
.premium .line-top p,
.premium .line1 h2{
    color: #fff;
    font-family: "Noto Serif JP", serif;
}
.premium .line-top-flow span{
    border-color: #fff;
}

/** スマート **/
.smart .line-top, .smart .line1, .smart .line2{
    background: var(--beige-dark);
}

/**********************************************************************/
/*****************************  平屋ページ  *****************************/
/**********************************************************************/
.hiraya-page .breadcrumb {
    padding: 20px 10px;
}
.hiraya-top{
    position: relative;
}
.hiraya-top-info{
    position: absolute;
    top: 0;
    left: 0;
    height: 74%;
    width: 38%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0 3%;
}
.hiraya-top-info h1{
    font-size: clamp(48px, 7vw, 100px);
    font-family: 'Noto Sans JP';
    font-weight: 700;
    letter-spacing: 0.12em;
    line-height: 1;
    margin-bottom: 30px;
}
.hiraya-top-info h1 span:first-of-type{
    color: #a68e76;
}
.hiraya-top-info h1 span:last-of-type{
    color: #aa8858;
}
.hiraya-top-info p{
    color: #8d8175;
    font-family: "TAoonishi", sans-serif;
    font-weight: 600;
}
.hiraya-top-info p:last-of-type{
    font-size: clamp(12px, 1vw, 18px);
    line-height: 3;
}
.hiraya-top-text1{
    font-size: clamp(18px, 1.8vw, 34px);
    font-weight: 500;
    margin-bottom: 30px;
}
.hiraya1{
    padding: 0;
}
.hiraya1 h2{
    font-size: 26px;
    margin-bottom: 50px;
    color: var(--green-dark);
}
.hiraya2{
    padding: 0;
}
.hiraya2-flex{
    position: relative;
    min-height: 700px;
}
.hiraya2-flex::before{
    content: "";
    position: absolute;
    top: -1px;
    left: 0;
    width: 100%;
    height: 18%;
    background: #f5f1e7;
    z-index: 1;
    clip-path: polygon(
        0 0,
        100% 0,
        0 100%
    );
}
.hiraya2-flex::after{
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 10%;
    background: #f5f1e7;
    z-index: 2;
    clip-path: polygon(
        0 0,
        100% 100%,
        0 100%
    );
}
.hiraya2-img{
    flex-basis: 50%;
}
.hiraya2-info{
    flex-basis: 50%;
    background: var(--beige-dark);
    padding: 50px 5%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.hiraya2-info h2{
    font-size: 28px;
    color: var(--burgundy);
    margin-bottom: 30px;
}
.hiraya2-info p{
    max-width: 600px;
}
.hiraya3-title{
    margin-bottom: 50px;
}
.hiraya3-title h2{
    font-size: 28px;
    margin-bottom: 40px;
    color: var(--green-dark);
}
.hiraya3-title p{
    font-size: 18px;
}
.hiraya-item{
    flex-basis: 31%;
    margin: 20px auto 30px;
    background: var(--beige-dark);
    padding: 30px 20px 20px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.hiraya-item-img{
    position: relative;
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    background: none;
    cursor: pointer;
    text-align: left;
}
.hiraya-item-img img{
    aspect-ratio: 3/2;
    object-fit: cover;
    width: 100%;
    transition: opacity 0.3s ease;
}
.hiraya-item-img:hover img{
    opacity: 0.7;
}
.hiraya-item .num{
    position: absolute;
    top: -25px;
    left: -10px;
    font-size: 50px;
    color: var(--burgundy);
    font-family: 'Josefin Sans', sans-serif;
    text-shadow: 0 0 12px rgba(255, 255, 255, 0.95), 0 0 24px rgba(255, 255, 255, 0.7);
}
.hiraya-item h3{
    font-size: 20px;
    color: var(--burgundy);
}
.hiraya-item p{
    margin-bottom: 15px;
    text-align: left;
}
.hiraya-item .link-btn3{
    margin-top: auto;
}
.hiraya-item .link-btn3 .btn::after{
    color: var(--burgundy);
}
.hiraya-item .link-btn3:hover .btn{
    color: var(--burgundy);
}
.hiraya-item .hiraya-madori{
    display: none;
}
.hiraya-item .js-hiraya-madori{
    border: 0;
    background: none;
    padding: 0 35px 0 0;
    font: inherit;
    cursor: pointer;
}
.hiraya-image-modal{
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    visibility: hidden;
    pointer-events: none;
    padding: 20px;
}
.hiraya-image-modal.is-open{
    visibility: visible;
    pointer-events: auto;
}
.hiraya-image-modal__backdrop{
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0);
    transition: background 0.35s ease;
}
.hiraya-image-modal.is-open .hiraya-image-modal__backdrop{
    background: rgba(0, 0, 0, 0.65);
}
.hiraya-image-modal__dialog{
    position: relative;
    z-index: 1;
    width: min(92vw, 960px);
    max-height: 90vh;
    margin: auto;
    background: #fff;
    padding: 28px;
    border-radius: 8px;
    overflow: auto;
    opacity: 0;
    transform: translateY(-16px) scale(0.98);
    transition: opacity 0.35s ease, transform 0.35s ease;
}
.hiraya-image-modal.is-open .hiraya-image-modal__dialog{
    opacity: 1;
    transform: translateY(0) scale(1);
}
.hiraya-image-modal__close{
    position: absolute;
    top: 8px;
    right: 12px;
    font-size: 1.75rem;
    line-height: 1;
    background: none;
    border: 0;
    cursor: pointer;
    color: #333;
    z-index: 2;
}
.hiraya-image-modal__body img{
    display: block;
    width: 100%;
    height: auto;
    max-height: 80vh;
    object-fit: contain;
    aspect-ratio: auto;
}
@media screen and (max-width: 768px) {
    .hiraya-image-modal{
        padding: 12px;
    }
    .hiraya-image-modal__dialog{
        width: 100%;
        padding: 36px 12px 16px;
    }
}
.hiraya4{
    background: var(--beige-soft);
}
.hiraya4-title{
    margin-bottom: 50px;
}
.hiraya4-title h2{
    font-size: 28px;
    margin-bottom: 40px;
    color: var(--green-dark);
}
.hiraya4-title p{
    font-size: 18px;
}
.hiraya4-item{
    position: relative;
    padding-bottom: 70px;
}
.hiraya4-item::before{
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    height: 60%;
    width: 100%;
    background: var(--beige-dark);
    clip-path: polygon(
        0% 50%,100% 0%,
        100% 100%,
        0% 100%
    );
}
.hiraya4-item:first-of-type{
    margin-bottom: 100px;
}
.hiraya4-item .flex-sb{
    position: relative;
    z-index: 1;
}
.hiraya4-img{
    flex-basis: calc(100% - 450px);
}
.hiraya4-img img{
    max-height: 500px;
    object-fit: cover;
    height: 100%;
}
.hiraya4-info{
    flex-basis: 360px;
    align-self: center;
}
.hiraya4-info h3{
    margin-bottom: 20px;
    font-size: 24px;
}
.hiraya4 .num{
    font-family: 'Josefin Sans', sans-serif;
    font-size: 40px;
    color: var(--green);
    margin-right: 10px;
    line-height: 1;
    font-weight: 600;
}
.hiraya4-info h3 span{
    display: block;
}
.hiraya4-info ul{
    font-size: 18px;
    margin-bottom: 30px;
}
.hiraya4-info ul li{
    padding-left: 30px;
    position: relative;
    margin-bottom: 7px;
}
.hiraya4-info ul li::before{
    content: "☑️";
    position: absolute;
    top: 0;
    left: 0;
}
.hiraya4-item:last-of-type::before{
    clip-path: polygon(
        0% 0%,100% 50%,
        100% 100%,
        0% 100%
    );
}
.hiraya4-info .price{
    border-bottom: 2px solid var(--green-dark);
    text-align: right;
    padding-right: 20px;
}

@media screen and (max-width:768px){
    .hiraya-top-info{
        position: static;
        width: 100%;
        height: auto;
        padding: 24px 6% 16px;
    }
    .hiraya-top-info h1{
        font-size: 40px;
        margin-bottom: 16px;
    }
    .hiraya-top-text1{
        font-size: 18px;
        margin-bottom: 12px;
    }
    .hiraya-top-info p:last-of-type{
        font-size: 14px;
        line-height: 1.8;
    }
    .hiraya1 h2,
    .hiraya2-info h2,
    .hiraya3-title h2{
        font-size: 22px;
        margin-bottom: 20px;
    }
    .hiraya2-flex{
        min-height: 0;
    }
    .hiraya2-info{
        padding: 32px 6% 100px;
    }
    .hiraya-item h3{
        font-size: 18px;
    }
    .hiraya-item{
        margin: 0 0 20px;
        gap: 10px;
    }
    .hiraya3-title p{
        font-size: 15px;
    }
.hiraya4-title h2{
    font-size: 20px;
    margin-bottom: 30px;
}
.hiraya4-title p{
    font-size: 15px;
    text-align: left;
}
.hiraya4-info h3{
    margin: 20px;
    font-size: 20px;
}
.hiraya4 .num{
    font-size: 34px;
}
.hiraya4-item{
    padding-bottom: 40px;
}
.hiraya4-item:first-of-type{
    margin-bottom: 40px;
}

}

/**********************************************************************/
/*****************************  コンパクト  *****************************/
/**********************************************************************/
.compact-page .breadcrumb {
    padding: 20px 10px;
    background: var(--beige-soft);
}
.compact-top{
    background-image: url("../img/compact/compact-top.webp");
    background-size: cover;
    background-position: center;
    height: 90vh;
    width: 100%;
}
.compact-top-info{
    padding-left: 10%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.compact-top-info h1{
    margin-bottom: 30px;
}
.compact-top-info h1 .en{
    display: block;
    color: var(--green);
    font-weight: 400;
    font-size: 26px;
    margin-bottom: 10px;
    font-family: 'Josefin Sans', sans-serif;
    padding-left: 5px;
}
.compact-top-info h1 .ja{
    font-size: 60px;
    line-height: 1.5;
}
.compact-top-info p{
    font-size: 17px;
    line-height: 2.4;
    text-shadow: 0 0 6px #fff,
    0 0 12px #fff,
    0 0 20px rgba(255,255,255,.8);
}
.compact1-flex{
    align-items: center;
}
.compact1-info{
    flex-basis: 48%;
}
.compact1-img{
    flex-basis: 48%;
}
.compact2{
    background: var(--beige-soft);
}
.compact2-item{
    flex-basis: 46%;
    margin-bottom: 50px;
}
.compact2-item:nth-of-type(even){
    transform: translateY(50px);
}
.compact2-item h3{
    color: var(--green);
    font-weight: bold;
    text-align: center;
    padding: 15px 0 10px;
    font-size: 20px;
}
.compact3-img{
    max-width: 800px;
    margin: auto;
}
.compact4{
    background: var(--beige-dark);
}
.compact4-items{
    gap: 30px;
}
.compact4-item{
    background: var(--beige-soft);
    border-radius: 20px;
    flex-basis: calc(100% / 3 - 20px);
    padding: 40px;
    text-align: center;
}
.compact4-item div{
    width: 150px;
    margin: 0 auto 30px;
    border: 1px solid #aaa;
    border-radius: 50%;
}
.compact4-item h3{
    margin-bottom: 20px;
    font-size: 20px;
    color: var(--orange-soft);
}

@media screen and (max-width:768px){
    .compact-page .breadcrumb{
        margin-bottom: 0;
    }
    .compact-top{
        height: auto;
        min-height: 70vh;
    }
    .compact-top-info{
        padding: 0px 6%;
    }
    .compact-top-info h1 .en{
        font-size: 18px;
    }
    .compact-top-info h1 .ja{
        font-size: 28px;
        line-height: 1.45;
    }
    .compact-top-info p{
        font-size: 15px;
        line-height: 1.9;
    }
    .compact1-img img{
        margin: 15px auto;
    }
    .compact2-item{
        margin-bottom: 30px;
    }
    .compact2-item:nth-of-type(even){
        transform: none;
    }
    .compact3 .sec-title3 p{
        text-align: left;
    }
    .compact4-item{
        padding: 20px;
        margin-bottom: 20px;
    }
    .compact4-item div{
        width: 100px;
        margin: 0 auto 20px;
    }
.compact4-item h3{
    margin-bottom: 10px;
}

}

/**********************************************************************/
/*****************************  リフォーム  *****************************/
/**********************************************************************/
.ref1{
    background: var(--beige-soft);
}
.ref1-item-img{
    flex-basis: 50%;
}
.ref1-item-img img{
    aspect-ratio: 3/2;
}
.ref1-item-info{
    flex-basis: 50%;
    padding: 0 5%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 30px;
}
.ref1-item-info h3{
    position: relative;
    padding: 0 0 3px 17px;
    font-size: 24px;
    font-weight: bold;
    line-height: 1.4;
    color: var(--orange-soft);
    border-left: 3px solid;
}

@media screen and (max-width:768px){
    .ref1-item-info{
        padding: 20px 0 0;
        gap: 16px;
        margin-bottom: 20px;
    }
    .ref1-item-info h3{
        font-size: 20px;
    }
}

/**********************************************************************/
/*****************************  パフォーマンス  *****************************/
/**********************************************************************/
.per-spec{
    background: var(--beige-soft);
}
.per-spec-in h3{
    text-align: center;
    font-size: 26px;
    margin-bottom: 20px;
    position: relative;
}
.per-spec-in h3::after{
    content: "";
    position: absolute;
    left: 50%;
    bottom: -12px;
    height: 2px;
    width: 80px;
    transform: translateX(-50%);
    background: var(--green);
}
.per-spec-lead{
    text-align: center;
    line-height: 1.8;
    margin: 40px auto 40px;
}
.per-spec-items{
    gap: 24px;
    justify-content: center;
}
.per-spec-item{
    flex-basis: calc(50% - 12px);
    max-width: 380px;
    background: #fff;
    text-align: center;
    padding: 36px 24px;
    border-top: 3px solid var(--green);
    box-shadow: 3px 3px 5px rgba(0,0,0,0.1);
}
.per-spec-label{
    font-size: 15px;
    color: var(--green-dark);
    margin-bottom: 12px;
    letter-spacing: 0.08em;
}
.per-spec-value{
    font-size: 24px;
    font-weight: bold;
    color: var(--green-dark);
    line-height: 1.4;
    margin-bottom: 12px;
}
.per-spec-note{
    font-size: 14px;
    color: #777;
}
@media screen and (max-width:768px){
    .per-spec-in h3{
        font-size: 22px;
    }
    .per-spec-items{
        flex-direction: column;
        align-items: center;
    }
    .per-spec-item{
        width: 100%;
        max-width: none;
        padding: 28px 20px;
        margin-bottom: 20px;
    }
    .per-spec-value{
        font-size: 20px;
    }
}
.per1{
    background: #fff;
}
.per1-flex{
    align-items: center;
}
.per1-img{
    flex-basis: 48%;
}
.per1-info{
    flex-basis: 48%;
}
.per1-info h3{
    font-size: 25px;
    margin-bottom: 30px;
}
.per1-info p{
    line-height: 1.7;
}
.per2-item{
    margin-bottom: 80px;
}
.per2-info{
    flex-basis: 70%;
    margin-left: 5%;
    position: relative;
    display: flex;
    align-items: center;
    padding: 50px 0;
}
.rev .per2-info{
    margin-left: 0;
    margin-right: 5%;
}
.per2-info-in{
    background: rgba(245,241,231,0.9);
    padding: 50px;
}
.per2-img{
    flex-basis: 80%;
    margin-left: -55%;
}
.rev .per2-img{
    margin-left: 0;
    margin-right: -55%;
}
.per2-img img{
    height: 100%;
    object-fit: cover;
    max-height: 620px;
}
.per3{
    background: var(--beige-soft);
}
.per3-in h3{
    position: relative;
    text-align: center;
    font-size: 26px;
    margin-bottom: 60px;
}
.per3-in h3::after{
    content: "";
    position: absolute;
    left: 50%;
    bottom: -15px;
    height: 2px;
    width: 80px;
    transform: translateX(-50%);
    background: var(--green);
}
.per3-cate h4{
    background: var(--green);
    text-align: center;
    padding: 10px;
    font-size: 20px;
    color: #fff;
    margin-bottom: 30px;
}
.per3-items{
    gap: 30px;
    margin-bottom: 50px;
}
.per3-item{
    flex-basis: calc(100% / 3 - 20px);
    display: flex;
    flex-direction: column;
}
.per3-item h5{
    margin: 15px 0 10px;
    font-size: 18px;
    text-align: center;
}
.per3-item p{
    line-height: 1.7;
    margin-bottom: 20px;
    padding: 0 3%;
    color: #777;
}
.per3-item .text-r{
    margin-top: auto;
}
.per3-item img{
    aspect-ratio: 3/2;
    object-fit: cover;
}

@media screen and (max-width:768px){
    .per1-img img{
        width: 100%;
        height: auto;
    }
    .per1-info h3{
        font-size: 20px;
        margin: 20px 0 16px;
    }
    .per2-item{
        margin-bottom: 0;
    }
    .per2-info,
    .rev .per2-info{
        margin-left: 0;
        margin-right: 0;
        padding: 0;
    }
    .per2-info-in{
        padding: 28px 20px;
    }
    .per2-img,
    .rev .per2-img{
        margin-left: 0;
        margin-right: 0;
    }
    .per2-img img{
        height: auto;
        max-height: none;
        width: 100%;
    }
    .per3-in h3{
        font-size: 20px;
        margin-bottom: 50px;
    }
    .per3-item:not(:last-of-type){
        margin-bottom: 20px;
    }
.per3-cate h4{
    padding: 10px;
    font-size: 18px;
    margin-bottom: 20px;
}
}

/**********************************************************************/
/*****************************  家づくりの流れ  *****************************/
/**********************************************************************/
.flow1, .flow2, .flow3{
    padding-top: 0;
}
.flow1{
    background: #f6f4ef;
}
.flow2{
    background: #faf4f2;
}
.flow3{
    background: #f3f6f7;
}
.flow-sec-title{
    background: var(--green-dark);
    padding: 20px;
    margin-bottom: 50px;
    text-align: center;
    color: #fff;
    font-size: 26px;
}
.flow-sec-title .num{
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    margin-bottom: 10px;
    font-size: 20px;
}
.flow-sec-title .num::before,
.flow-sec-title .num::after{
    content: "";
    flex-grow: 0.05;
    border-top: 2px solid;
}
.flow-item-info{
    flex-basis: 48%;
}
.flow-item-num{
    flex-basis: 50px;
}
.flow-item-num span{
    width: 50px;
    height: 50px;
    background: #fff;
    border: 2px solid var(--green);
    color: var(--green);
    font-size: 32px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-family: 'Josefin Sans', sans-serif;
    padding-top: 6px;
}
.flow-item-num div{
    width: 2px;
    height: calc(100% - 50px);
    background: var(--green);
    margin: auto;
}
.flow-item-info-in{
    flex-basis: calc(100% - 70px);
    display: flex;
    flex-direction: column;
    padding-bottom: 50px;
}
.flow-item-info-in h3{
    text-align: center;
    font-size: 24px;
    font-weight: 700;
    border-bottom: 2px solid var(--green);
    padding-bottom: 10px;
    color: var(--green-dark);
}
.flow-item-info-in h3 span{
    font-weight: 500;
    font-size: 15px;
    display: block;
    color: var(--text);
    margin-top: 3px;
}
.flow-item-info-in p{
    margin: auto;
    padding: 20px 0;
}
.flow-item-img{
    flex-basis: 48%;
    padding-bottom: 50px;
}

@media screen and (max-width:768px){
    .flow-sec-title{
        font-size: 18px;
        padding: 16px 12px;
        margin-bottom: 28px;
    }
    .flow-item-info{
        display: flex;
        align-items: stretch;
        margin-bottom: 8px;
    }
    .flow-item-num{
        flex: 0 0 44px;
    }
    .flow-item-num span{
        width: 44px;
        height: 44px;
        font-size: 24px;
    }
    .flow-item-info-in{
        flex: 1;
        min-width: 0;
        padding-bottom: 20px;
    }
    .flow-item-info-in h3{
        font-size: 18px;
    }
    .flow-item-img{
        padding-bottom: 28px;
    }
}

/**********************************************************************/
/*****************************  ポリシー  *****************************/
/**********************************************************************/
.privacy-page{
    padding: 60px 0 100px;
}
.privacy-page .inner{
    max-width: 900px;
    width: 90%;
    margin-left: auto;
    margin-right: auto;
}
.privacy-page .privacy-section{
    padding: 0;
    margin-bottom: 45px;
}
.privacy-page .privacy-section:last-of-type{
    margin-bottom: 0;
}
.privacy-page h2,
.policy h2{
    font-size: 20px;
    margin: 0 0 15px;
    padding: 4px 0 6px 20px;
    border-left: 5px solid var(--green);
    color: var(--green-dark);
    font-weight: 700;
    font-family: "Noto Sans JP", sans-serif;
}
.policy h2{
    margin: 35px 0 10px;
}
.privacy-page p{
    margin-bottom: 12px;
}
.privacy-page p:last-child{
    margin-bottom: 0;
}
.privacy-page ul{
    margin: 12px 0 0;
    padding-left: 1.4em;
}
.privacy-page li{
    list-style: disc;
    margin-bottom: 8px;
    line-height: 1.8;
}
.privacy-page li:last-child{
    margin-bottom: 0;
}
.privacy-page a{
    color: var(--green);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.privacy-page a:hover{
    color: var(--green-dark);
}
.privacy-external-links{
    margin-top: 15px;
}
.privacy-contact{
    display: block;
    font-style: normal;
    border: 1px solid var(--section-line);
    background: var(--beige-soft);
    padding: 28px 30px;
    margin-top: 20px;
}
.privacy-contact p{
    margin-bottom: 10px;
}
.privacy-contact p:last-child{
    margin-bottom: 0;
}
.privacy-contact strong{
    font-size: 18px;
    color: var(--green-dark);
    letter-spacing: 2px;
}
.privacy-date{
    text-align: right;
    font-size: 14px;
    margin-top: 40px;
    color: var(--text-muted);
}
.com-name{
    border: 1px solid var(--section-line);
    padding: 30px;
    margin: 15px 0;
}

@media screen and (max-width:768px){
    .privacy-page{
        padding: 40px 0 70px;
    }
    .privacy-page .privacy-section{
        margin-bottom: 35px;
    }
    .privacy-page h2,
    .policy h2{
        font-size: 16px;
        padding: 4px 0 6px 15px;
        border-left: 4px solid var(--green);
    }
    .privacy-contact{
        padding: 20px;
    }
    .privacy-contact strong{
        font-size: 16px;
    }
}

/**********************************************************************/
/*****************************  免震基礎  *****************************/
/**********************************************************************/
.mensinkiso-page .page-top-info p + p{
    margin-top: 1em;
}
.menshin-hero-badges{
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 28px;
}
.menshin-hero-badges li{
    background: var(--green);
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.05em;
    padding: 8px 16px;
    border-radius: 999px;
}
.mensinkiso-page .page-top-info .menshin-option-note{
    margin-top: 16px;
    font-size: 13px;
    line-height: 1.7;
    opacity: 0.8;
}
.menshin-photo-slot{
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 320px;
    background: repeating-linear-gradient(
        -45deg,
        #f3f0ea,
        #f3f0ea 12px,
        #ebe6dd 12px,
        #ebe6dd 24px
    );
    border: 2px dashed rgba(95, 122, 99, 0.45);
    border-radius: 30px 0 0 30px;
    color: var(--green);
    text-align: center;
    padding: 30px;
}
.menshin-photo-slot p{
    font-size: 16px;
    line-height: 1.8;
    font-weight: 600;
}
.menshin-photo-slot small{
    display: block;
    margin-top: 8px;
    font-size: 13px;
    font-weight: 500;
    color: #666;
}
.menshin-method-img .menshin-photo-slot{
    border-radius: 20px;
    min-height: 360px;
}
.menshin-guarantee{
    background: #fff;
}
.menshin-guarantee-head{
    margin-bottom: 40px;
}
.menshin-guarantee-lead{
    color: var(--orange);
    letter-spacing: 0.12em;
    font-weight: 600;
    margin-bottom: 10px;
}
.menshin-guarantee-head h3{
    font-size: 32px;
    color: var(--green);
    font-weight: 700;
    margin-bottom: 16px;
}
.menshin-guarantee-head p{
    font-size: 18px;
    line-height: 1.9;
}
.menshin-guarantee-flex{
    gap: 24px;
    margin-bottom: 24px;
}
.menshin-guarantee-card{
    flex-basis: calc(50% - 12px);
    background: var(--beige-soft);
    border-radius: 20px;
    padding: 36px 30px;
    text-align: center;
    box-shadow: 3px 3px 3px rgba(0,0,0,0.12);
}
.menshin-guarantee-label{
    font-size: 16px;
    font-weight: 600;
    color: var(--green);
    letter-spacing: 0.08em;
    margin-bottom: 10px;
}
.menshin-guarantee-num{
    font-size: 28px;
    font-weight: 700;
    color: #333;
    line-height: 1.3;
    margin-bottom: 12px;
}
.menshin-guarantee-num span{
    font-size: 56px;
    color: var(--burgundy);
    margin: 0 4px;
}
.menshin-guarantee-note{
    font-size: 15px;
    color: #666;
}
.menshin-worry{
    background: var(--beige-dark);
    font-size: 18px;
}
.menshin-worry-info h3{
    font-size: 32px;
    margin-bottom: 30px;
    color: var(--burgundy);
    font-weight: 600;
}
.menshin-worry-info ul{
    display: inline-block;
    text-align: left;
    margin-bottom: 20px;
}
.menshin-worry-info ul li{
    position: relative;
    padding-left: 30px;
    margin-bottom: 15px;
}
.menshin-worry-info ul li::before{
    content: "☑️";
    position: absolute;
    left: 0;
    top: 0;
}
.men-merit-title{
    margin-bottom: 50px;
}
.men-merit-title h3{
    font-size: 28px;
    margin-bottom: 20px;
}
.menshin-merit-flex{
    margin-bottom: 20px;
}
.menshin-merit-card{
    flex-basis: 32%;
    background: var(--beige-soft);
    padding: 28px 22px;
    border-radius: 20px;
    box-shadow: 3px 3px 3px rgba(0,0,0,0.2);
}
.menshin-merit-card--text{
    text-align: center;
}
.menshin-merit-num{
    display: inline-block;
    font-size: 28px;
    letter-spacing: 0.12em;
    color: var(--green);
    font-weight: 700;
    border-bottom: 2px solid var(--green);
    padding-bottom: 4px;
    margin-bottom: 16px;
}
.menshin-merit-card h4{
    margin: 0 auto 14px;
    font-size: 18px;
    text-align: center;
    border-bottom: 1px solid var(--green);
    padding-bottom: 10px;
    font-weight: 700;
    color: var(--green);
}
.menshin-merit-card p{
    line-height: 1.7;
    text-align: left;
}
.menshin-fs{
    background: #fff;
}
.menshin-fs-intro{
    margin-bottom: 50px;
}
.menshin-fs-lead{
    color: var(--orange);
    letter-spacing: 0.12em;
    font-weight: 600;
    margin-bottom: 8px;
}
.menshin-fs-intro h3{
    font-size: 40px;
    color: var(--green);
    font-weight: 700;
    margin-bottom: 20px;
}
.menshin-fs-intro p{
    font-size: 18px;
    line-height: 1.9;
}
.menshin-fs-diagram{
    max-width: 800px;
    margin: 0 auto 150px;
}
.menshin-fs-diagram h4{
    font-size: 24px;
    color: var(--green);
    font-weight: 700;
    margin-bottom: 24px;
}
.menshin-fs-diagram img{
    max-width: 100%;
    height: auto;
    border-radius: 16px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.08);
    margin-bottom: 16px;
}
.menshin-fs .menshin-method{
    background: transparent;
    padding: 0;
}
.menshin-method{
    background: var(--beige-soft);
}
.menshin-method.flex-sb,
.menshin-fs .menshin-method.flex-sb{
    align-items: center;
}
.menshin-method-info{
    flex-basis: 50%;
    position: relative;
    background: rgba(255,255,255,0.7);
    padding: 50px;
    align-self: center;
}
.menshin-method-info h3{
    font-size: 36px;
    margin-bottom: 30px;
    position: relative;
}
.menshin-method-info h3::after{
    content: "";
    bottom: -10px;
    left: 0;
    background: var(--green);
    height: 3px;
    width: 60px;
    position: absolute;
}
.menshin-method-img{
    flex-basis: 70%;
    margin-left: -20%;
}
.menshin-method-img img{
    width: 100%;
    border-radius: 20px;
    display: block;
}
.menshin-reason{
    background: var(--beige-soft);
}
.menshin-reason-list{
    max-width: 900px;
    margin: 0 auto;
}
.menshin-reason-item{
    background: #fff;
    border-radius: 16px;
    padding: 34px 36px;
    margin-bottom: 22px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06);
    border-left: 5px solid var(--green);
}
.menshin-reason-item h4{
    display: flex;
    align-items: center;
    gap: 14px;
    font-size: 22px;
    font-weight: 700;
    color: #333;
    margin-bottom: 16px;
    line-height: 1.5;
}
.menshin-reason-item h4 span{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--green);
    color: #fff;
    font-size: 16px;
    flex-shrink: 0;
}
.menshin-reason-item p{
    font-size: 16px;
    line-height: 2;
    color: #555;
}
.menshin-faq{
    background: var(--beige-soft);
}

.menshin-faq h3{
    margin-bottom: 50px;
    text-align: center;
    font-size: 28px;
    color: #333;
}

.faq-item{
    background: #fff;
    border-radius: 14px;
    padding: 30px 34px;
    margin-bottom: 22px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06);
    border-left: 5px solid var(--green);
}

.faq-item h4{
    position: relative;
    margin-bottom: 18px;
    padding-left: 42px;
    font-size: 20px;
    font-weight: 600;
    line-height: 1.6;
    color: #333;
}

.faq-item h4::before{
    content: "Q";
    position: absolute;
    top: 2px;
    left: 0;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--green);
    color: #fff;
    font-size: 16px;
    text-align: center;
    padding-left: 2px;
    font-weight: 700;
}

.faq-item p{
    position: relative;
    padding-left: 42px;
    font-size: 16px;
    line-height: 2;
    color: #555;
}

.faq-item p::before{
    content: "A";
    position: absolute;
    top: 4px;
    left: 0;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #e8efe9;
    color: var(--green);
    font-size: 18px;
    text-align: center;
    padding-left: 2px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: "Noto Serif JP", serif;
    font-weight: 700;
}

.faq-last{
    margin-top: 50px;
    padding: 34px 30px;
    background: #fff;
    border-radius: 14px;
    border: 1px solid rgba(95, 122, 99, 0.28);
}

.faq-last p{
    font-size: 18px;
    line-height: 2;
    font-weight: 500;
    color: var(--green);
}

@media screen and (max-width: 767px) {
    .mensinkiso-page .page-top-info h2{
        font-size: 24px;
        margin-bottom: 18px;
    }
    .mensinkiso-page .page-top-info p{
        font-size: 15px;
        line-height: 1.9;
    }
    .menshin-hero-badges{
        margin-top: 20px;
        gap: 8px;
    }
    .menshin-hero-badges li{
        font-size: 12px;
        padding: 6px 12px;
    }
    .mensinkiso-page .page-top-info .menshin-option-note{
        font-size: 12px;
        margin-top: 14px;
    }
    .mensinkiso-page .page-top-img{
        flex-basis: auto;
        width: 100%;
    }
    .menshin-photo-slot{
        min-height: 220px;
        border-radius: 0;
        padding: 24px 16px;
    }
    .menshin-photo-slot p{
        font-size: 14px;
    }
    .menshin-method-img .menshin-photo-slot{
        min-height: 240px;
        border-radius: 14px;
    }
    .menshin-guarantee-head h3{
        font-size: 22px;
    }
    .menshin-guarantee-head p{
        font-size: 15px;
    }
    .menshin-guarantee-flex{
        flex-direction: column;
        gap: 16px;
    }
    .menshin-guarantee-card{
        padding: 20px;
        margin-bottom: 15px;
    }
    .menshin-guarantee-num{
        font-size: 22px;
    }
    .menshin-guarantee-num span{
        font-size: 42px;
    }
    .menshin-worry-info h3{
        font-size: 22px;
        margin-bottom: 22px;
    }
    .menshin-worry{
        font-size: 15px;
    }
    .men-merit-title h3{
        font-size: 22px;
    }
    .menshin-merit-flex{
        flex-direction: column;
        gap: 16px;
    }
    .menshin-merit-card{
        margin-bottom: 20px;
        padding: 20px;
    }
    .menshin-fs-intro h3{
        font-size: 24px;
    }
    .menshin-fs-intro p{
        font-size: 15px;
    }
    .menshin-fs-diagram{
        margin: 0 auto 50px;
    }
    .menshin-fs-diagram h4{
        font-size: 18px;
    }
    .menshin-fs-intro p:last-of-type{
        text-align: left;
    }
    .menshin-fs .menshin-method.flex-sb{
        flex-direction: column;
    }
    .menshin-method-info{
        flex-basis: auto;
        width: 100%;
        padding: 0px;
    }
    .menshin-method-info h3{
        font-size: 22px;
        margin-bottom: 30px;
    }
    .menshin-method-img{
        flex-basis: auto;
        width: 100%;
        margin-left: 0;
        margin-top: 20px;
    }
    .menshin-reason-item{
        padding: 24px 20px;
    }
    .menshin-reason-item h4{
        font-size: 18px;
        gap: 10px;
    }
    .menshin-reason-item h4 span{
        width: 30px;
        height: 30px;
        font-size: 14px;
    }
    .menshin-reason-item p{
        font-size: 15px;
        line-height: 1.9;
    }
    .men-merit-title{
        margin-bottom: 30px;
    }
    .menshin-faq{
        padding: 70px 0;
    }

    .menshin-faq h3{
        margin-bottom: 34px;
        font-size: 20px;
    }

    .faq-item{
        padding: 24px 20px;
        margin-bottom: 18px;
        border-left-width: 4px;
    }

    .faq-item h4{
        padding-left: 36px;
        font-size: 17px;
    }

    .faq-item h4::before,
    .faq-item p::before{
        width: 26px;
        height: 26px;
        font-size: 14px;
        line-height: 26px;
    }

    .faq-item p{
        padding-left: 36px;
        font-size: 15px;
        line-height: 1.9;
    }

    .faq-last{
        margin-top: 36px;
        padding: 28px 20px;
    }

    .faq-last p{
        font-size: 16px;
    }
}

/**********************************************************************/
/*****************************  保証  *****************************/
/**********************************************************************/
.warranty-page .war-top h2{
    font-size: 30px;
    text-align: center;
    margin-bottom: 40px;
}
.war-fv{
    margin-top: 40px;
}
.war-fv img{
    width: 100%;
    border-radius: 8px;
}
.war-top-txt{
    text-align: center;
}
.war-top-txt h3{
    font-size: 24px;
    margin-bottom: 24px;
    line-height: 1.6;
    color: var(--orange-soft);
}
.war-top-txt p{
    line-height: 2;
}

.war-differ{
    background: var(--beige-soft);
}
.war-differ-inner h3{
    font-size: 24px;
    text-align: center;
    margin-bottom: 30px;
    color: var(--green-dark);
}
.war-differ-inner > p{
    text-align: center;
    line-height: 2;
    margin: 0 auto 40px;
}
.war-differ-scroll{
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.war-differ-table{
    width: 100%;
    min-width: 640px;
    border-collapse: separate;
    border-spacing: 4px;
}
.war-differ-head th,
.war-differ-head td,
.war-differ-row th,
.war-differ-row td{
    vertical-align: middle;
    text-align: center;
}
.war-differ-head td{
    height: 90px;
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.5;
}
.war-differ-mine{
    background: var(--green-dark);
    padding: 8px 10px;
}
.war-differ-mine img{
    width: 74%;
    max-width: 160px;
    margin: 0 auto 8px;
}
.war-differ-mine span,
.war-differ-other span{
    display: block;
}
.war-differ-other{
    background: #8a9a87;
}
.war-differ-row th,
.war-differ-row td{
    height: 100px;
    background: var(--green-pale);
    position: relative;
}
.war-differ-row th span,
.war-differ-row td span{
    display: block;
    position: relative;
    z-index: 2;
    line-height: 1.5;
    font-weight: 500;
    font-size: 14px;
    color: var(--text);
}
.war-differ-row th span{
    font-weight: 700;
    color: var(--green-dark);
}
.war-differ-row td.dubble{
    background: #fff;
}
.war-differ-row td.dubble::after,
.war-differ-row td.circle::after,
.war-differ-row td.triangle::after,
.war-differ-row td.cross::after{
    content: "";
    width: 80px;
    height: 80px;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
    opacity: .9;
}
.war-differ-row td.dubble::after{
    background-image: url(../img/war/dubble_icon.webp);
}
.war-differ-row td.circle::after{
    background-image: url(../img/war/circle_icon.webp);
}
.war-differ-row td.triangle::after{
    background-image: url(../img/war/triangle_icon.webp);
}
.war-differ-row td.cross::after{
    background-image: url(../img/war/cross_icon.webp);
}

.war-period{
    background: var(--beige-warm);
}
.war-period-top{
    text-align: center;
    margin-bottom: 50px;
}
.war-period-top > p{
    line-height: 2;
    margin-bottom: 28px;
}
.war-period-badges{
    display: flex;
    justify-content: center;
    gap: 16px;
    margin-bottom: 16px;
}
.war-period-badge{
    width: 132px;
    height: 132px;
    border-radius: 50%;
    background: var(--green-dark);
    color: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    line-height: 1.2;
}
.war-period-badge:nth-child(2){
    background: var(--orange);
}
.war-period-badge-label{
    font-size: 14px;
    font-weight: 700;
}
.war-period-badge-num{
    font-size: 42px;
    font-weight: 700;
    letter-spacing: .02em;
}
.war-period-badge-num span{
    font-size: 16px;
    margin-left: 2px;
}
.war-period-note{
    font-size: 12px;
    color: var(--text-muted);
}
.war-period-box,
.war-target-box{
    background: #fff;
    border-radius: 8px;
    padding: 48px 60px 60px;
}
.war-period-heading{
    background: var(--green-dark);
    color: #fff;
    font-size: 24px;
    font-weight: 700;
    text-align: center;
    padding: 22px 0;
    border-radius: 4px;
    margin-bottom: 40px;
}
.war-period-list{
    margin-left: 20px;
    padding-bottom: 40px;
    border-bottom: 1px solid var(--section-line);
}
.war-period-item{
    display: grid;
    grid-template-columns: 160px 1fr;
    align-items: flex-start;
    position: relative;
    z-index: 2;
}
.war-period-item:not(:last-child){
    margin-bottom: 24px;
}
.war-period-item-line::after{
    content: "";
    position: absolute;
    height: calc(100% + 8px);
    width: 1px;
    left: 11px;
    top: 20px;
    background: var(--beige-dark);
}
.war-period-year{
    position: relative;
    font-size: 18px;
    font-weight: 700;
    padding-left: 35px;
    color: var(--green-dark);
}
.war-period-year::after{
    content: "";
    width: 22px;
    height: 22px;
    position: absolute;
    background: var(--orange-soft);
    border-radius: 50%;
    top: 50%;
    transform: translateY(-50%);
    left: 0;
    z-index: 1;
}
.war-period-ttl{
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
}
.war-period-ttl h4{
    font-size: 18px;
    font-weight: 700;
    color: var(--green-dark);
}
.war-period-ttl span{
    font-size: 13px;
    color: var(--text-muted);
}
.war-period-desc{
    line-height: 2;
    margin-top: 12px;
}
.war-period-copy{
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
    margin-top: 16px;
}
.war-period-copy span:nth-child(1){
    font-size: 18px;
    font-weight: 700;
    color: var(--green-dark);
}
.war-period-copy span:nth-child(2){
    font-size: 24px;
    font-weight: 700;
    color: var(--orange);
}
.war-period-bottom{
    padding-top: 32px;
    display: grid;
    gap: 32px;
}
.war-period-check h4{
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 10px;
    color: var(--green-dark);
}
.war-period-check > p{
    line-height: 2;
    margin-bottom: 12px;
}
.war-period-detail{
    background: var(--green-pale);
    border-radius: 8px;
    padding: 20px 32px;
    width: fit-content;
    max-width: 100%;
}
.war-period-detail p{
    line-height: 2;
}

.war-target{
    background: var(--beige-warm);
    padding-top: 0;
}
.war-target-img{
    width: 90%;
    max-width: 900px;
    margin: 0 auto 30px;
    display: block;
}
.war-target-note{
    font-size: 14px;
    line-height: 2;
}

@media screen and (max-width: 800px){
    .war-period-box,
    .war-target-box{
        padding: 36px 24px 40px;
    }
    .war-period-list .war-period-item:last-child{
        grid-template-columns: 1fr;
        gap: 12px;
    }
    .war-period-list .war-period-item:last-child .war-period-inner{
        padding-left: 35px;
    }
    .war-period-copy{
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }
}

@media screen and (max-width: 768px){
    .warranty-page .war-top h2{
        font-size: 24px;
        margin-bottom: 24px;
    }
    .war-differ-scroll{
        width: 100%;
        max-width: 100%;
    }
    .war-top-txt h3{
        font-size: 18px;
        margin-bottom: 16px;
    }
    .war-differ-inner h3{
        font-size: 18px;
        margin-bottom: 16px;
    }
    .war-differ-inner > p{
        text-align: left;
        margin-bottom: 24px;
        font-size: 14px;
    }
    .war-differ-head td{
        height: 56px;
        font-size: 10px;
    }
    .war-differ-mine img{
        margin-bottom: 2px;
    }
    .war-differ-row th,
    .war-differ-row td{
        height: 70px;
    }
    .war-differ-row th span,
    .war-differ-row td span{
        font-size: 10px;
    }
    .war-differ-row td.dubble::after,
    .war-differ-row td.circle::after,
    .war-differ-row td.triangle::after,
    .war-differ-row td.cross::after{
        width: 42px;
        height: 42px;
    }
    .war-period-top > p{
        text-align: left;
        font-size: 14px;
        margin-bottom: 16px;
    }
    .war-period-badge{
        width: 85px;
        height: 85px;
    }
    .war-period-badge-label{
        font-size: 11px;
    }
    .war-period-badge-num{
        font-size: 28px;
    }
    .war-period-badge-num span{
        font-size: 12px;
    }
    .war-period-heading{
        font-size: 16px;
        padding: 16px 0;
        margin-bottom: 20px;
    }
    .war-period-list{
        margin-left: 0;
        padding-bottom: 24px;
    }
    .war-period-item{
        grid-template-columns: 110px 1fr;
    }
    .war-period-item-line::after{
        left: 6px;
        top: 4px;
        height: calc(100% + 24px);
    }
    .war-period-year{
        font-size: 15px;
        padding-left: 24px;
    }
    .war-period-year::after{
        width: 12px;
        height: 12px;
        top: 4px;
        transform: none;
    }
    .war-period-ttl{
        gap: 6px;
        align-items: flex-start;
        flex-direction: column;
    }
    .war-period-ttl h4{
        font-size: 15px;
    }
    .war-period-ttl span{
        font-size: 11px;
    }
    .war-period-copy span:nth-child(1){
        font-size: 15px;
    }
    .war-period-copy span:nth-child(2){
        font-size: 18px;
    }
    .war-period-detail{
        padding: 16px;
    }
    .war-period-check h4{
        font-size: 15px;
    }
    .war-target-img{
        width: 100%;
    }
}

/**********************************************************************/
/*****************************  素材ページ共通  *****************************/
/**********************************************************************/
.mat-hero{
    background: var(--beige-dark);
}

.mat-points{
    padding: 80px 0 40px;
}
.mat-points-head h3{
    font-size: 26px;
    color: var(--green);
    margin-bottom: 16px;
}
.mat-points-head p{
    margin-bottom: 40px;
    line-height: 1.9;
}
.mat-points-items{
    gap: 20px;
}
.mat-points-item{
    flex-basis: calc(33.333% - 14px);
    background: var(--beige-soft);
    border-radius: 24px;
    padding: 32px 24px;
    text-align: center;
}
.mat-points-items--4 .mat-points-item{
    flex-basis: calc(25% - 15px);
}
.mat-points-num{
    font-size: 13px;
    letter-spacing: 0.12em;
    color: var(--orange-soft);
    margin-bottom: 12px;
}
.mat-points-item h4{
    font-size: 18px;
    color: var(--green);
    margin-bottom: 12px;
}
.mat-points-item p:last-child{
    font-size: 14px;
    line-height: 1.8;
}

.mat-sec-head{
    margin-bottom: 50px;
}
.mat-sec-head h3{
    font-size: 26px;
    color: var(--green);
    margin-bottom: 28px;
    line-height: 1.6;
}
.mat-sec-head p{
    line-height: 2;
    margin-bottom: 1.5em;
}
.mat-sec-head p:last-child{
    margin-bottom: 0;
}
.mat-sec-head .lead{
    font-size: 18px;
    color: var(--orange-soft);
    margin-bottom: 16px;
}

.mat-text-block{
    max-width: 860px;
    margin: 0 auto 50px;
}
.mat-text-block:last-child{
    margin-bottom: 0;
}
.mat-text-block h3{
    font-size: 26px;
    color: var(--green);
    margin-bottom: 16px;
}
.mat-text-block .lead{
    font-size: 18px;
    color: var(--orange-soft);
    margin-bottom: 24px;
}
.mat-text-block p{
    line-height: 2;
    margin-bottom: 1.4em;
}
.mat-text-block p:last-child{
    margin-bottom: 0;
}

.mat-compare{
    gap: 30px;
}
.mat-compare-item{
    flex-basis: calc(50% - 15px);
    background: #fff;
    border-radius: 24px;
    padding: 28px 24px 32px;
}
.mat-compare-label{
    text-align: center;
    font-size: 16px;
    color: var(--green);
    margin-bottom: 16px;
    font-weight: 700;
}
.mat-compare-item img{
    border-radius: 16px;
    margin-bottom: 16px;
}
.mat-compare-item figcaption{
    text-align: center;
    line-height: 1.8;
    font-size: 15px;
}
.mat-compare-item--ok{
    box-shadow: 0 0 0 2px var(--green);
}

.mat-md-flex{
    gap: 24px;
    margin-bottom: 60px;
}
.mat-md-box{
    flex-basis: calc(50% - 12px);
    background: #fff;
    border: 1px solid #e5e0d8;
    border-radius: 24px;
    padding: 36px 32px;
}
.mat-md-box h4{
    font-size: 20px;
    color: var(--green);
    margin-bottom: 16px;
}
.mat-md-box--caution{
    background: var(--beige-soft);
    border-color: transparent;
}
.mat-md-box--caution h4{
    color: var(--burgundy);
}
.mat-md-box p{
    line-height: 1.9;
}

.cell2-info--split{
    flex-basis: 100%;
    align-items: center;
    gap: 40px;
}
.cell2-info--split .cell2-copy{
    flex: 1 1 52%;
    min-width: 0;
}
.cell2-info--split .cell2-img,
.cell2-info--split.rev .cell2-img{
    flex: 0 1 40%;
    margin: 0;
}
.cell2-info--split .cell2-img img{
    width: 100%;
    height: auto;
    border-radius: 16px;
}
.cell2-img--tall img{
    width: auto;
    max-width: 100%;
    max-height: 360px;
    display: block;
    margin: 0 auto;
    object-fit: contain;
    background: #fff;
}

@media screen and (max-width: 768px) {
    .mat-points{
        padding: 50px 0 20px;
    }
    .mat-points-head h3,
    .mat-sec-head h3,
    .mat-text-block h3{
        font-size: 22px;
    }
    .mat-points-items,
    .mat-compare,
    .mat-md-flex{
        flex-direction: column;
    }
    .mat-points-item{
        padding: 20px;
        margin-bottom: 15px;
    }
    .mat-compare-item{
        padding: 20px;
        margin-bottom: 20px;
    }
    .mat-md-box{
        padding: 20px;
        margin-bottom: 0;
    }
    .cell2-info--split{
        flex-direction: column;
        gap: 24px;
        padding: 32px 24px;
    }
    .cell2-info--split.rev{
        flex-direction: column;
    }
    .cell2-info--split .cell2-copy,
    .cell2-info--split .cell2-img,
    .cell2-info--split.rev .cell2-img{
        flex: none;
        width: 100%;
    }
    .cell2-img--tall img{
        max-height: none;
    }
}

/**********************************************************************/
/*****************************  セルロースファイバー  *****************************/
/**********************************************************************/
.cell-top-img{
    max-width: 600px;
    margin: 50px auto 0; 
}
.cell1{
    background: var(--beige-soft);
}
.cell1-foot{
    margin-top: 80px;
    text-align: center;
}
.cell1-foot h3{
    font-size: 26px;
    margin-bottom: 30px;
}
.cell1-foot-items{
    margin: 60px auto;
}
.cell1-foot-item{
    flex-basis: 19%;
}
.cell1-foot-item img{
    border-radius: 30px;
    box-shadow: 3px 3px 6px rgba(0,0,0,0.1);
    margin-bottom: 15px;
}
.cell2-item{
    padding: 35px 0;
}
.cell2-item>div{
    align-items: end;
}
.cell2-info{
    flex-basis: 50%;
    position: relative;
    background: rgba(255,255,255,0.9);
    border-radius: 50px;
    padding: 50px;
}
.cell2-info h3{
    font-size: 26px;
    color: var(--green);
    margin-bottom: 20px;
}
.cell2-info .lead{
    font-size: 18px;
    margin-bottom: 10px;
    color: var(--orange-soft);
}
.cell2-img{
    flex-basis: 60%;
    margin-left: -10%;
    margin-bottom: 60px;
}
.rev .cell2-img{
    margin-left: auto;
    margin-right: -10%;
}
.cell3{
    background: var(--beige-dark);
    text-align: center;
}
.cell3 h3{
    font-size: 26px;
    margin-bottom: 30px;
    color: var(--green);
}
.cell3 .lead{
    font-size: 20px;
    color: var(--orange);
    margin-bottom: 20px;
}
.cell-youtube{
    display: flex;
    gap: 30px;
    margin-top: 50px;
}

.cell-youtube .movie{
    flex: 1;
    min-width: 0;
    aspect-ratio: 16 / 9;
}

.cell-youtube .movie iframe{
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}

@media screen and (max-width: 768px) {
    .cell-youtube{
        flex-direction: column;
        gap: 20px;
    }

    .cell-youtube .movie{
        width: 100%;
    }
    .cell1-foot h3,
    .cell2-info h3,
    .cell3 h3{
        font-size: 20px;
    }
    .cell1-foot-items{
        display: flex;
        flex-wrap: wrap;
        gap: 12px;
        justify-content: center;
        margin: 32px auto;
    }
    .cell1-foot-item{
        flex-basis: calc(100% / 3 - 8px);
    }
    .cell2-item{
        padding: 0 0 20px;
    }
    .cell2-info{
        padding: 28px 20px;
        border-radius: 24px;
    }
    .cell2-info .lead,
    .cell3 .lead{
        font-size: 16px;
    }
    .cell2-img,
    .rev .cell2-img{
        margin: 15px 0 0!important;
    }
    .sp-text-l{
        text-align: left;
    }
}

/**********************************************************************/
/*****************************  木へのこだわり  *****************************/
/**********************************************************************/
.wood2 h2{
    font-size: 26px;
    margin-bottom: 30px;
    color: var(--burgundy);
}
.wood2 .lead{
    font-size: 20px;
    margin-bottom: 20px;
    color: var(--orange-soft);
}
.wood2-items{
    gap: 20px;
}
.wood2-item{
    background: var(--beige-soft);
    border-radius: 30px;
    padding: 30px;
    margin-top: 50px;
    flex-basis: calc(100% / 5 - 16px);
    text-align: center;
}
.wood2-item img{
    max-width: 100px;
    margin: auto;
}
.wood2-item p{
    font-size: 18px;
    margin-top: 20px;
}
.wood3{
    background: var(--beige-dark);
}

@media screen and (max-width:768px){
    .wood2 h2{
        font-size: 22px;
        margin-bottom: 16px;
    }
    .wood2 .lead{
        font-size: 16px;
    }
    .wood2-items{
        display: flex;
        flex-wrap: wrap;
        gap: 12px;
        margin-top: 28px;
    }
    .wood2-item{
        flex-basis: calc(33.333% - 8px);
        margin-top: 0;
        padding: 16px 8px;
        border-radius: 16px;
    }
    .wood2-item img{
        max-width: 64px;
    }
    .wood2-item p{
        font-size: 13px;
        margin-top: 10px;
        letter-spacing: 0.5px;
    }
}

/**********************************************************************/
/*****************************  カタログ  *****************************/
/**********************************************************************/
.catalog-page .links-btn {
    justify-content: center;
    gap: 15px;
    margin-top: 50px;
}
.catalog-page .links-btn a{
    background: #333;
    color: #fff;
    padding: 10px 25px;
    display: block;
}
.catalogs{
    background: var(--beige-dark);
}
#cata1,
#cata2,
#cata3,
#cata4{
    scroll-margin-top: 100px;
}
.catalogitem{
    background: var(--beige-soft);
    padding: 40px;
    margin-bottom: 40px;
    box-shadow: 3px 3px 8px rgba(0,0,0,.3);
    border-radius: 30px;
}
.catalogitem h3{
    text-align: center;
    font-size: 30px;
    margin-bottom: 43px;
    font-weight: 800;
    position: relative;
}
.catalogitem h3 strong{
    font-size: 34px;
    color: var(--orange);
}
.catalogitem h3:after{
    content: "";
    width: 100px;
    height: 3px;
    position: absolute;
    bottom: -15px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--green);
}
.cata-top{
    background: linear-gradient(
    to bottom,
    #bfd3c1 0%,
    #d9e6d9 100%
);
    padding: 30px 40px;
    border-radius: 20px;
    margin-bottom: 30px;
}
.catalogitem-img{
    justify-content: center;
    gap: 20px;
}
.catalogitem-img img{
    flex: 1;
}
.catalogitem>p{
    max-width: 1000px;
    margin: auto;
}

@media screen and (max-width:768px){
    .catalogitem{
        padding: 24px 16px;
        border-radius: 20px;
        margin-bottom: 24px;
    }
    .catalogitem h3{
        font-size: 18px;
        margin-bottom: 28px;
        line-height: 1.6;
    }
    .catalogitem h3 strong{
        font-size: 20px;
    }
    .cata-top{
        padding: 16px;
        border-radius: 12px;
    }
    .catalogitem-img{
        display: flex;
        gap: 8px;
    }
    .catalogitem-img img{
        flex: 1;
        min-width: 0;
        width: auto;
    }
}

/**********************************************************************/
/*****************************  お役立ち情報  *****************************/
/**********************************************************************/
.page-id-3118 .breadcrumb {
    padding: 20px 10px;
    background: #fff;
}
.mag-main{
    background: #fff;
}
.mag-top-img{
    max-width: 800px;
    margin: 0 auto 80px;
}
.mag-main h2{
    font-size: 20px;
    margin-bottom: 20px;
    background: var(--section-line);
    text-align: center;
    padding: 10px;
}
.mailtable{
    margin-bottom: 40px;
}
.mailtable th{
    text-align: center;
    font-weight: bold;
    font-size: 18px;
}
.mag-main p{
    text-align: center;
}

/**********************************************************************/
/*****************************  よくある質問  *****************************/
/**********************************************************************/
.faq-main{
    background: var(--green-pale);
}
#qa1,
#qa2,
#qa3,
#qa4,
#qa5,
#qa6{
    scroll-margin-top: 300px;
}
.page-links{
    gap: 15px;
    margin-bottom: 80px;
}
.page-links a{
    position: relative;
    display: block;
    background: var(--green);
    color: var(--beige-soft);
    padding: 20px 10px;
    flex-basis: calc(100% / 3 - 10px);
    text-align: center;
    border-radius: 5px;
}
.page-links a::before{
    content: "";
    position: absolute;
    inset: 4px;
    border-radius: 3px;
    border: 1px dashed #fff;
}
.faq-items h3{
    background: var(--beige-soft);
    background-image: url("../img/front/top.webp");
    padding: 50px;
    text-align: center;
    color: #333;
    font-weight: bold;
    font-size: 30px;
    margin-bottom: 50px;
}
.faq-items h3:not(:first-of-type){
    margin-top: 80px;
}
.faq-items h3 .en{
    font-family: 'Josefin Sans', sans-serif;
    font-size: 24px;
    color: var(--orange);
    letter-spacing: 3px;
}
.faq-items h3 .num{
    font-weight: 500;
    font-size: 40px;
    font-family: "TAoonishi", sans-serif;
    transform: translateY(2px);
    display: inline-block;
    margin-right: 20px;
}

@media screen and (max-width:768px){
    .faq-items h3{
        padding: 28px 16px;
        font-size: 20px;
        margin-bottom: 28px;
    }
    .faq-items h3:not(:first-of-type){
        margin-top: 48px;
    }
    .faq-items h3 .en{
        font-size: 16px;
        letter-spacing: 1px;
    }
    .faq-items h3 .num{
        font-size: 28px;
        margin-right: 10px;
    }
    .page-links{
        margin-bottom: 40px;
    }
    .page-links a{
        padding: 16px 10px;
    }
    .page-links a:not(:last-of-type){
        margin-bottom: 10px;
    }
}

/**********************************************************************/
/*****************************  コンタクト  *****************************/
/**********************************************************************/
.contact-page .contact-tel-area{
    padding-top: 0;
}
.contact-tel{
    text-align: center;
    background: var(--beige-soft);
    border-radius: 16px;
    padding: 40px 30px;
}
.contact-tel-label{
    font-size: 16px;
    letter-spacing: 2px;
}
.contact-tel-num{
    display: inline-block;
    margin: 8px 0 12px;
    font-size: 48px;
    line-height: 1.2;
    font-family: 'Josefin Sans', sans-serif;
    font-weight: 500;
    color: var(--green);
    letter-spacing: 2px;
}
.contact-tel-note{
    font-size: 14px;
    line-height: 1.8;
    color: var(--text-muted);
}

.form{
    background: var(--beige-soft);
}
.contact-form{
    padding: 50px;
    background: #f9f9f9;
    border-radius: 5px;
    box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
}
.contact-form>h3{
    font-size: 22px;
    margin-bottom: 60px;
    text-align: center;
    position: relative;
}
.contact-form>h3::after{
    content: "";
    position: absolute;
    bottom: -20px;
    left: 50%;
    transform: translateX(-50%);
    height: 2px;
    width: 60px;
    background: var(--green);
}
.contact-top-p{
    text-align: center;
    margin-bottom: 40px;
}

.form-group{
    margin-bottom: 20px;
}
.form-label{
    margin-bottom: 15px;
    display: flex;
    align-items: center;
}
.required{
    color: #fff;
    background: var(--green);
    border: 1px solid var(--green);
    margin: 0 10px;
    font-size: 12px;
    padding: 3px 10px;
    letter-spacing: 2px;
}
.optional{
    color: var(--green);
	border: 1px solid var(--green);
    margin-left: 10px;
    font-size: 12px;
    padding: 3px 10px;
    letter-spacing: 2px;
}
.input-group{
    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 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;
}
input[type="radio"]{
  -webkit-appearance: auto;  /* iOS Safari向け */
  appearance: auto;
  background: initial;
  border: initial;
  width: auto;
  height: auto;
}
.checkbox-group .wpcf7-list-item-label{
    flex: 1 1 auto; /* 残りを自動で折り返して使う */
    word-break: break-word;
    white-space: nowrap;
    line-height: 2;
}
.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(--green);
    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%;
}
.wpcf7-radio .wpcf7-list-item{
    margin-right: 2%;
}
.howday-group{
    flex-direction: row;
    flex-wrap: wrap;
}
.entry-content .howday-group>p{
    margin-bottom: 0;
}
.howday-item{
    flex-wrap: wrap;
    margin-right: 10px;
}
.howday-item .wpcf7-list-item-label{
    display: none;
}
.howday-bg{
    background: cornflowerblue;
    color: #fff;
    padding: 5px 10px;
    line-height: 1;
}
.font16{
    font-size: 16px;
}
.br2 p:nth-of-type(even){
    flex-basis: calc(100% - 250px);
}

/* 希望日：カレンダーを短く */
.preferred-date-row{
    margin-bottom: 13px;
}
.preferred-date-row .wpcf7-form-control-wrap,
.preferred-date-row input[type="date"]{
  width: 220px !important;
  max-width: 220px !important;
  flex: none;
}

/* 時間：ラベルの直後に2択を横並び */
.preferred-time-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 15px;
}
.preferred-time-row .input-label{
  width: 70px;
  flex: 0 0 70px;
}
.preferred-time-row .radio-group{
  flex: 0 1 auto;
  width: auto;
}
.preferred-time-row .wpcf7-form-control-wrap,
.preferred-time-row .wpcf7-radio{
  display: flex !important;
  flex-wrap: nowrap;
  align-items: center;
  gap: 20px;
  width: auto !important;
}
.preferred-time-row .wpcf7-list-item{
  display: inline-flex !important;
  align-items: center;
  margin: 0 !important;
  width: auto !important;
}
.preferred-time-row .wpcf7-list-item label{
  display: inline-flex !important;
  align-items: center;
  gap: 6px;
  margin: 0;
  width: auto !important;
  white-space: nowrap;
  cursor: pointer;
}
.preferred-time-row .wpcf7-list-item-label{
  width: auto !important;
}
.preferred-time-row input[type="radio"]{
  width: 16px !important;
  height: 16px !important;
  min-width: 16px;
  padding: 0 !important;
  margin: 0;
  flex: none;
}

@media (max-width: 767px) {
  .preferred-date-row .wpcf7-form-control-wrap,
  .preferred-date-row input[type="date"]{
    width: 100% !important;
    max-width: 100% !important;
  }
}

@media screen and (max-width:768px){
    .contact-page{
        padding: 0;
    }
    .contact-page .page-top p{
        text-align: left;
    }
    .contact-tel{
        padding: 30px 20px;
    }
    .contact-tel-num{
        font-size: 36px;
    }
    .contact-top-p{
        margin-bottom: 30px;
    }
    .contact-width{
        width: 100%;
    }
    .contact-width .contact-top-p{
        width: 90%;
        margin: 0 auto 30px;
    }
	.contact-form{
		padding: 20px;
	}
    .contact-form>h3{
        font-size: 18px;
    }
	.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;
    }
    .contact-width .contact-bottom-p{
        width: 90%;
        margin-left: auto;
        margin-right: auto;
    }
    .br2 p:nth-of-type(even){
        flex-basis: auto;
    }
    .howday-group p{
        width: 100%;
    }
    .howday-item .font16{
        flex-basis: calc(100% - 19px);
        font-size: 14px;
        letter-spacing: 1px;
    }
    .input-group.has-label{
        flex-wrap: wrap;
        align-items: flex-start;
    }
    .has-label .input-label{
        width: 100%;
        margin-bottom: 4px;
    }
    .has-label span{
        width: 100% !important;
    }
}

/* Privacy Policy Modal */
.pp-modal {
    position: fixed;
    inset: 0;
    z-index: 1000;
    visibility: hidden;
    pointer-events: none;
}
.pp-modal.is-open{ display: block; }
.pp-modal__backdrop{ position: absolute; inset: 0; background: rgba(0,0,0,0); transition: background 0.5s ease }
.pp-modal.is-open .pp-modal__backdrop{
    background: rgba(0,0,0,0.5);
}
.pp-modal__dialog{
    position: relative; max-width: 720px; margin: 5vh auto; background: #fff;
    padding: 40px; border-radius: 12px; max-height: 85vh; overflow: hidden;
    display: flex;
    flex-direction: column;
    transform: translateY(-20px);
    opacity: 0;
    transition: opacity 0.5s ease, transform 0.5s ease;
    will-change: opacity, transform;
}
.pp-modal__body{
    overflow-y: auto;
    min-height: 0;
    flex: 1 1 auto;
    padding-right: 4px;
}
.pp-modal.is-open{
    visibility: visible;
    pointer-events: auto;
}
.pp-modal.is-open .pp-modal__dialog{
    transform: translateY(0);
    opacity: 1;
}
#pp-title,
.pp-modal__title{
    text-align: center;
    margin-bottom: 30px;
    font-size: 26px;
    border-bottom: 1px solid #aaa;
    padding-bottom: 10px;
    color: var(--key);
}
.policy-modal h4{
    margin: 15px 0;
    border-left: 3px solid var(--key);
    padding: 5px 0 5px 15px;
    font-size: 18px;
}
.policy-modal p{
    font-size: 15px;
}
.policy-modal .com-name{
    margin: 20px auto;
    border: 1px solid #aaa;
    padding: 10px 15px;
}
.policy-modal .privacy-date{
    text-align: right;
    font-size: 14px;
}
.pp-modal__close{
    position: absolute;
    top: 1rem;
    right: 1rem;
    z-index: 2;
    width: 2rem;
    height: 2rem;
    font-size: 1.5rem;
    line-height: 1;
    background: #fff;
    border: 0;
    cursor: pointer;
}
.transcript-modal p{
    font-size: 15px;
    line-height: 1.9;
    margin-bottom: 1em;
}
.transcript-modal p:last-child{
    margin-bottom: 0;
}
.transcript-modal .transcript-note{
    margin: 0 0 1.5em;
    font-size: 13px;
    line-height: 1.8;
    color: #777;
}
.transcript-time{
    display: inline-block;
    min-width: 3.2em;
    margin-right: 0.6em;
    color: #888;
    font-size: 13px;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.04em;
}
.wpcf7-response-output{
    margin-top: 30px;
    text-align: center;
}
@media screen and (max-width:768px){
    .pp-modal__dialog{ margin: 4vh auto; border-radius: 12px; padding: 1rem; }
}
/**********************************************************************/
/*****************************  一覧共通  *****************************/
/**********************************************************************/
.pagination {
    text-align: center;
    margin: 60px auto 0;
}

.pagination .nav-links{
    display: inline-flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 6px;
}

.pagination .page-numbers{
    display: inline-block;
    min-width: 36px;
    padding: 12px 16px;
    border: 1px solid;
    color: #333;
    font-size: 0.95rem;
    text-decoration: none;
    border-radius: 4px;
    transition: all 0.25s ease;
}

.pagination .page-numbers:hover{
    background: var(--orange);
    color: #fff;
}

.pagination .page-numbers.current{
    background: var(--orange);
    color: #fff;
    cursor: default;
    pointer-events: none;
}

.pagination .page-numbers.prev,
.pagination .page-numbers.next{
    font-weight: 600;
}

.pagination .page-numbers.prev:hover,
.pagination .page-numbers.next:hover{
    background: var(--orange);
    color: #fff;
}

/**********************************************************************/
/*****************************  イベント一覧  *****************************/
/**********************************************************************/
.a-event-main{
    padding: 0;
}
.a-event-item:not(:last-of-type){
    margin-bottom: 20px;
    border-bottom: 1px solid #aaa;
    padding-bottom: 20px;
}
.a-event-thumb{
    flex-basis: 40%;
}
.a-event-info{
    flex-basis: 57%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.a-event-status{
    width: 200px;
    text-align: center;
    padding: 5px;
    display: inline-block;
    margin-bottom: 10px;
    color: #fff;
    border-radius: 10px;
}
.a-event-status.open{
    background: var(--orange);
}
.a-event-status.closed{
    background: #777;
}
.a-event-title{
    font-size: 22px;
    margin-bottom: 13px;
}
.a-event-detail{
    background: #fff;
    padding: 15px 25px;
    font-size: 14px;
    box-shadow: 3px 3px 8px rgba(0,0,0,0.1);
}
.a-event-date{
    position: relative;
    padding-left: 40px;
    font-size: 14px;
    color: #777;
}
.a-event-date:not(:last-of-type){
    margin-bottom: 8px;
    border-bottom: 1px solid #ddd;
    padding-bottom: 8px;
}
.a-event-date:last-child{
    margin-bottom: 0;
}
.a-event-date img{
    position: absolute;
    left: 8px;
    top: 7px;
    width: 16px;
}
.a-event-date-place img{
    width: 20px;
    top: 5px;
    left: 6px;
}

@media screen and (max-width:768px){
.a-event-thumb{
    margin-bottom: 15px;
}
.a-event-detail{
    margin-top: 15px;
}
}

/**********************************************************************/
/*****************************  施工事例一覧  *****************************/
/**********************************************************************/
.case-filter {
    margin: auto;
    display: flex;
    justify-content: center;
    align-items: flex-end;
    gap: 14px;
}

.case-filter .filter-item{
    width: 260px;
}
.case-filter select{
    width: 100%;
    height: 52px;
    padding: 0 40px 0 18px;
    border: 1px solid #d8d2cc;
    background: #fff url("data:image/svg+xml;utf8,<svg fill='%233f342d' height='20' viewBox='0 0 20 20' width='20' xmlns='http://www.w3.org/2000/svg'><path d='M5 7l5 5 5-5z'/></svg>") no-repeat right 14px center / 16px;
    font-size: 15px;
    color: #3f342d;
    appearance: none;
}

.case-filter button{
    height: 52px;
    padding: 0 32px;
    background: #3f342d;
    color: #fff;
    border: none;
    font-weight: bold;
    cursor: pointer;
}

.case-filter button:hover{
    opacity: 0.85;
}
.a-works-items{
    gap:20px;
}
.a-works-item{
    flex-basis: calc(50% - 10px);
}
.a-works-thumb{
    margin-bottom: 15px;
    width: 100%;
}
.a-works-thumb img{
    border-radius: 25px;
    aspect-ratio: 3/2;
    object-fit: cover;
}
.a-works-item h3{
    font-size: 18px;
    padding: 0 2%;
}

@media screen and (max-width: 768px) {
    .case-filter{
        flex-direction: column;
        align-items: stretch;
        gap: 16px;
        width: 90%;
    }
    .case-filter .filter-item{
        width: 100%;
    }
    .case-filter button{
        width: 100%;
    }
    .a-works-item:not(:last-of-type){
        margin-bottom: 20px;
    }

}

/**********************************************************************/
/*****************************  シングル共通  *****************************/
/**********************************************************************/

.s-h1{
    font-size: 30px;
    margin-bottom: 10px;
    color: var(--green);
    font-weight: 600;
}
.single-main h2{
    font-size: 24px;
    padding: 7px 25px;
    margin-top: 40px;
    margin-bottom: 30px;
    font-weight: bold;
    background: var(--green);
    color: #fff;
}
.single-main h3{
    border-bottom: 1px solid;
    padding: 2px 20px 6px;
    margin-bottom: 20px;
    margin-top: 30px;
    font-size: 20px;
    font-weight: bold;
    border-left: 5px solid var(--green);
}
.single-main h4{
    font-weight: bold;
    font-size: 18px;
    margin-bottom: 20px;
    text-decoration: underline;
}
.single-main h5{
    font-weight: bold;
    font-size: 18px;
    margin-bottom: 20px;
}
.s-time{
    margin-bottom: 20px;
}
.single-main ul{
    margin: 30px 0 30px 20px;
    padding-left: 20px;
    font-weight: bold;
}
.single-main li{
    margin-bottom: 15px;
    line-height: 2;
    list-style: disc;
}
.single-main ol {
    margin-left: 40px;
}
.single-main ol li{
    list-style: auto;
    margin-bottom: 25px;
}
.single-main ol li strong{
    margin-bottom: 5px;
    display: inline-block;
}
.single-main p{
    margin-bottom: 20px;
    font-weight: 400;
}
.single-main a{
    text-decoration: underline;
}
.single-main .wp-block-image{
    margin: 40px auto 20px;
}
.single-main .wp-block-image img,
.single-main figure.aligncenter img,
.single-main .wp-block-gallery.has-nested-images img,
.single-main .wp-block-media-text__media img{
    max-height: 700px;
    width: auto;
    max-width: 100%;
    height: auto;
    object-fit: contain!important;
}
.single-main .wp-block-image a,
.single-main figure.aligncenter a,
.single-main .wp-block-gallery.has-nested-images a{
    display: inline-block;
    max-width: 100%;
}
.single-main .wp-element-caption{
    margin-top: 10px;
    font-size: 14px;
    text-align: center;
}
.single-interview-page .single-main .wp-element-caption{
    font-size: 18px;
    line-height: 1.6;
    font-family: "TAoonishi", sans-serif;
}
.single-main .wp-block-media-text{
    margin-bottom: 30px;
}
.single-main .wp-block-embed{
    width: 100%;
    max-width: 100%;
    margin: 30px 0;
}
.single-main .wp-block-embed__wrapper{
    width: 100%;
    position: relative;
    aspect-ratio: 16 / 9;
}
.single-main .wp-has-aspect-ratio .wp-block-embed__wrapper::before{
    content: none;
    display: none;
    padding-top: 0;
}
.single-main .wp-block-embed iframe{
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}
.single-adjacent-wrap{
    margin-bottom: 80px;
}
.single-foot-actions{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    margin-top: 48px;
}
.single-foot-actions .link-btn2 .btn{
    min-width: 240px;
    margin: 0;
}
.single-foot-top{
    margin: 0;
    font-size: 13px;
}
.single-foot-top a{
    color: #888;
    text-decoration: none;
    letter-spacing: 0.12em;
    transition: color 0.3s ease;
}
.single-foot-top a:hover{
    color: var(--green);
}
.single-adjacent{
    display: flex;
    gap: 30px;
    justify-content: space-between;
}
.single-adjacent .adjacent-empty{
    flex: 1 1 0;
    min-width: 0;
    visibility: hidden;
    pointer-events: none;
}
.single-adjacent .adjacent{
    display: flex;
    align-items: center;
    gap: 20px;
    text-decoration: none;
    border-top: 1px solid #ccc;
    border-bottom: 1px solid #ccc;
    padding: 7px 15px;
    flex: 1 1 0;
    min-width: 0;
}
.single-adjacent .adjacent.next{
    justify-content: flex-end;
    text-align: end;
}
.single-adjacent .thumb{
    flex-shrink: 0;
}
.single-adjacent .meta{
    flex: 1;
    min-width: 0;
}
.single-adjacent .thumb img{
    width: 96px;
    height: 96px;
    object-fit: cover;
    border-radius: 8px;
    display: block;
}
.single-adjacent .meta .label{
    display: block;
    font-size: 14px;
    opacity: .7;
    margin-bottom: 8px;
}
.single-adjacent .meta .title{
    font-size: 16px;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}
.single-main figure.wp-block-gallery.has-nested-images{
    margin: 40px auto 30px;
}

@media (max-width: 768px) {
    .s-h1{
        font-size: 20px;
    }
    .single-main h2{
        font-size: 18px;
        border-left: 4px solid var(--key);
        padding: 3px 0 4px 12px;
        margin-top: 20px;
        margin-bottom: 20px;
    }
    .single-main h3{
        border-bottom: 1px solid;
        padding: 0 10px 6px;
        margin-top: 30px;
        font-size: 18px;
    }
    .single-main h4{
        font-size: 16px;
        margin-bottom: 15px;
    }
    .single-main h5{
        font-size: 16px;
        margin-bottom: 15px;
    }
    .single-main h6{
        margin-bottom: 15px;
    }
    .single-main p{
        margin-bottom: 15px;
    }
    .single-main ul{
        margin: 20px 0;
        padding-left: 12px;
    }
    .single-main .wp-block-image{
        margin: 20px auto;
    }
    .single-main .wp-block-button a{
        text-decoration: none;
        font-size: 14px;
    }
    .single-interview-page .single-main .wp-element-caption{
        font-size: 16px;
        text-align: left;
    }
    .single-adjacent-wrap{
        margin: 50px auto 80px;
    }
    .single-foot-actions{
        margin-top: 32px;
        gap: 16px;
    }
    .single-foot-actions .link-btn2 .btn{
        min-width: 0;
        width: 100%;
        max-width: 300px;
    }
    .single-adjacent{
        flex-direction: column;
        gap: 12px;
    }
    .single-adjacent .adjacent-empty{
        display: none;
    }
    .single-adjacent .thumb img{
        width: 72px;
        height: 72px;
    }
    .single-adjacent .meta .label{
        font-size: 12px;
    }
    .single-adjacent .meta .title{
        font-size: 14px;
    }
}

/**********************************************************************/
/*****************************  ブログ一覧  *****************************/
/**********************************************************************/
.a-blog-main {
    padding: 0 0 80px;
}
.a-blog-items{
    gap: 48px 40px;
}
.a-blog-item{
    flex-basis: calc(50% - 20px);
}
.a-blog-link{
    display: block;
    height: 100%;
    text-decoration: none;
    background: #fff;
    border-radius: 20px;
    padding: 15px 15px 25px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.08)
}
.a-blog-thumb{
    margin: 0;
    overflow: hidden;
    border-radius: 12px;
}
.a-blog-thumb img,
.a-blog-thumb-img{
    aspect-ratio: 3 / 2;
    object-fit: cover;
    border-radius: 12px;
}
.a-blog-body{
    padding: 16px 8px 8px;
}
.a-blog-date{
    display: block;
    font-size: 14px;
    color: #aaa;
    letter-spacing: 1px;
    margin-bottom: 8px;
}
.a-blog-title{
    font-size: 18px;
    font-weight: 500;
    color: var(--burgundy);
    line-height: 1.5;
    margin-bottom: 10px;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}
.a-blog-excerpt{
    font-size: 14px;
    line-height: 1.8;
    color: #666;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}

@media screen and (max-width: 768px) {
    .a-blog-item:not(:last-of-type){
        margin-bottom: 20px;
    }
    .a-blog-items{
        gap: 28px;
    }
    .a-blog-link{
        padding: 12px;
    }
    .a-blog-title{
        font-size: 16px;
    }
}

/**********************************************************************/
/*****************************  お知らせ一覧  *****************************/
/**********************************************************************/
.a-news-main {
    padding: 0 0 80px;
}
.a-news-items{
    display: flex;
    flex-direction: column;
    border-top: 1px solid #d9d4cb;
}
.a-news-link{
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr) 20px;
    align-items: center;
    gap: 24px;
    text-decoration: none;
    border-bottom: 1px solid #d9d4cb;
    padding: 26px 18px;
    transition: background-color 0.3s ease;
}
.a-news-link:hover{
    background: rgba(255, 255, 255, 0.7);
}
.a-news-link::after{
    content: "";
    width: 7px;
    height: 7px;
    border-top: 1px solid var(--green-dark);
    border-right: 1px solid var(--green-dark);
    transform: rotate(45deg);
    justify-self: end;
}
.a-news-meta{
    align-items: center;
    gap: 12px;
    margin: 0;
}
.a-news-date{
    font-size: 14px;
    color: var(--green-dark);
    letter-spacing: 1px;
}
.a-news-cat{
    display: none;
}
.a-news-title{
    font-size: 17px;
    font-weight: 400;
    color: var(--green-dark);
    line-height: 1.5;
    margin: 0;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}
.a-news-excerpt{
    display: none;
}

@media screen and (max-width: 768px) {
    .a-news-link{
        grid-template-columns: 1fr 16px;
        gap: 6px 12px;
        padding: 20px 8px;
    }
    .a-news-meta{
        grid-column: 1 / 2;
    }
    .a-news-title{
        grid-column: 1 / 2;
    }
    .a-news-link::after{
        grid-column: 2 / 3;
        grid-row: 1 / 3;
    }
    .a-news-title{
        font-size: 16px;
    }
}

/**********************************************************************/
/*****************************  シングルイベント  *****************************/
/**********************************************************************/
.single-event .breadcrumb {
    padding: 21px;
    border-bottom: 1px solid #aaa;
}
.single-event-page{
    margin-top: 50px;
}
.single-event-page h1{
    font-size: 28px;
    justify-content: center;
    gap: 1rem;
    align-items: center;
    margin-bottom: 50px;
}
.single-event-page .a-event-status{
    font-size: 18px;
    margin-bottom: 0;
}
.s-event-thumb{
    margin-bottom: 30px;
}
.s-event-detail{
    font-size: 18px;
    border-top: 1px solid #ccc;
    margin-bottom: 50px;
}
.s-event-detail dt{
    flex-basis: 200px;
    border-bottom: 1px solid #ccc;
    text-align: center;
    padding: 10px;
    background: var(--green);
    color: #fff;
}
.s-event-detail dd{
    flex-basis: calc(100% - 200px);
    border-bottom: 1px solid #ccc;
    padding: 10px 20px;
    background: var(--beige-soft);
}
.s-event-after{
    margin-top: 30px;
}
.single-event-page .contact-form{
    margin-bottom: 50px;
}
.single-event-page .contact-form .width-800{
    background: var(--beige-soft);
    padding: 50px;
    box-shadow: 3px 3px 6px rgba(0,0,0,0.2);
}
.event-end{
    text-align: center;
}

@media screen and (max-width:768px){
.single-event-page .a-event-status{
    font-size: 16px;
    margin-bottom: 15px;
    display: block;
    width: auto;
}
.single-event-page h1{
    font-size: 20px;
    margin: 0 auto 15px;
}
.s-event-detail{
    font-size: 14px;
    margin-bottom: 30px;
    padding: 15px 15px 5px;
    background: var(--beige-soft);
    border: none;
}
.s-event-detail dt{
    padding: 6px;
}
.s-event-detail dd{
    border-bottom: none;
}

}

/**********************************************************************/
/*****************************  シングルブログ  *****************************/
/**********************************************************************/
.no-img .breadcrumb {
    padding: 22px;
}

/**********************************************************************/
/*****************************  シングル施工事例  *****************************/
/**********************************************************************/
.s-works-top{
    padding-bottom: 50px;
}
.s-works-top h1{
    font-size: 28px;
    margin-bottom: 40px;
}
.s-works-top p{
    margin-bottom: 40px;
    background: var(--beige-soft);
    padding: 50px;
    border-radius: 30px;
}
.s-works-slider{
    margin-bottom: 40px;
}
.s-works-slider .swiper-slide{
    aspect-ratio: 3 / 2;
    overflow: hidden;
}
.s-works-slider .swiper-slide img{
    height: 100%;
    object-fit: cover;
    display: block;
}
.s-works-slider .swiper-button-prev,
.s-works-slider .swiper-button-next{
    color: #fff;
}
.s-works-slider .swiper-button-next:after,
.s-works-slider .swiper-button-prev:after{
    text-shadow: 3px 2px 1px rgba(0,0,0,0.5);
}

.s-info{
    gap: 15px;
    background: var(--beige-soft);
    padding: 30px;
    border-radius: 30px;
}
.s-info dl{
    margin-right: 15px;
    align-items: center;
}
.s-info dt{
    background: var(--green);
    padding: 2px 15px;
    font-size: 14px;
    color: #fff;
    margin-right: 10px;
    border-radius: 30px;
}
.s-works-imgs,
.s-works-points{
    padding-top: 0;
}
.s-works-imgs p{
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
}
.s-works-imgs p a{
    flex-basis: calc(100% / 3 - 10px);
    cursor: zoom-in;
}
.s-works-imgs p img{
    aspect-ratio: 3/2;
    object-fit: cover;
}
.s-works-points h2{
    font-size: 28px;
    margin-bottom: 40px;
}
.s-works-points h2 small{
    font-size: 20px;
}
.s-works-points article{
    margin-bottom: 80px;
}
.s-works-p-img{
    flex-basis: 48%;
}
.s-works-p-img img{
    height: 100%;
    object-fit: cover;
    max-height: 480px;
}
.s-works-p-info{
    flex-basis: 48%;
}

/* 施工事例ライトボックス */
.lb-overlay{
    position: fixed;
    inset: 0;
    z-index: 1100;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(20, 16, 12, 0.92);
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease, visibility 0.25s ease;
}
.lb-overlay.is-open{
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
}
.lb-overlay [hidden]{
    display: none !important;
}
.lb-figure{
    margin: 0;
    text-align: center;
}
.lb-overlay .lb-img{
    width: auto;
    height: auto;
    max-width: min(90vw, 1200px);
    max-height: 80vh;
    object-fit: contain;
}
.lb-counter{
    margin-top: 12px;
    color: #fff;
    font-size: 13px;
    letter-spacing: 2px;
    font-family: "Josefin Sans", sans-serif;
}
.lb-close,
.lb-prev,
.lb-next{
    position: absolute;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    color: #fff;
}
.lb-close{
    top: 16px;
    right: 16px;
}
.lb-close::before,
.lb-close::after{
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 22px;
    height: 2px;
    background: #fff;
}
.lb-close::before{
    transform: translate(-50%, -50%) rotate(45deg);
}
.lb-close::after{
    transform: translate(-50%, -50%) rotate(-45deg);
}
.lb-prev,
.lb-next{
    top: 50%;
    transform: translateY(-50%);
}
.lb-prev{
    left: 12px;
}
.lb-next{
    right: 12px;
}
.lb-prev::before,
.lb-next::before{
    content: "";
    display: block;
    width: 14px;
    height: 14px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    margin: 0 auto;
}
.lb-prev::before{
    transform: rotate(-135deg);
}
.lb-next::before{
    transform: rotate(45deg);
}
@media screen and (max-width: 768px){
    .s-works-top{
        padding-bottom: 20px;
    }
    .s-works-top h1{
        font-size: 20px;
        margin-bottom: 20px;
    }
    .s-works-slider{
        margin-bottom: 20px;
    }
    .s-info{
        padding: 20px;
        border-radius: 20px;
    }
    .s-info dd{
        font-size: 14px;
    }

    .lb-overlay .lb-img{
        max-width: 92vw;
        max-height: 72vh;
    }
    .lb-prev{
        left: 4px;
    }
    .lb-next{
        right: 4px;
    }
}

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

.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-0{
    margin-top: 0!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;
}
/*スマホのみ表示ブロック*/
br.pc {
  display: revert !important;
}
br.sp{
  display: none !important;
}
@media screen and (max-width: 768px) {
  .pc{
    display: none !important;
  }
  /*pcのみ表示ブロック*/
  .sp {
    display: block !important;
  }
  br.pc{
    display: none !important;
  }
  br.sp{
    display: revert !important;
  }
  /*スマホのみ表示ブロック*/
}

/**********************************************************************/
/**************************  エア断リノベーション  **************************/
/**********************************************************************/
.airdan-worry{
    background: transparent;
}
.airdan-worry-item{
    align-items: stretch;
}
.airdan-worry-info{
    flex-basis: 52%;
    margin-left: 5%;
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    padding: 40px 0;
}
.airdan-worry-info-in{
    background: rgba(251, 248, 243, 0.92);
    padding: 36px 40px;
    width: 100%;
}
.airdan-worry-info-in h3{
    font-size: 26px;
    margin-bottom: 24px;
    color: var(--burgundy);
    font-weight: 600;
    line-height: 1.5;
}
.airdan-worry-info-in ul{
    margin: 0 0 20px;
    padding: 0;
    list-style: none;
}
.airdan-worry-info-in ul li{
    position: relative;
    padding-left: 30px;
    margin-bottom: 12px;
    font-size: 16px;
    line-height: 1.7;
}
.airdan-worry-info-in ul li::before{
    content: "☑️";
    position: absolute;
    left: 0;
    top: 0;
}
.airdan-worry-info-in p{
    margin-bottom: 16px;
    font-size: 15px;
    line-height: 1.9;
}
.airdan-worry-info-in p:last-child{
    margin-bottom: 0;
}
.airdan-worry-img{
    flex-basis: 70%;
    margin-left: -28%;
}
.airdan-worry-img img{
    width: 100%;
    height: 100%;
    max-height: 520px;
    object-fit: cover;
    object-position: center 30%;
}
.airdan-system{
    background: #fff;
}
.airdan-system-top{
    margin-bottom: 50px;
}
.airdan-system-top h3{
    font-size: 32px;
    font-weight: 600;
    margin-bottom: 16px;
}
.airdan-system-top p{
    font-size: 18px;
    line-height: 1.9;
}
.airdan-system-steps{
    display: grid;
    gap: 18px;
    margin-bottom: 30px;
}
.airdan-system-step{
    display: flex;
    gap: 22px;
    align-items: flex-start;
    background: var(--beige-soft);
    border-radius: 14px;
    padding: 24px 28px;
    border-left: 5px solid var(--green);
}
.airdan-system-step span{
    flex-shrink: 0;
    color: var(--green);
    font-family: "Josefin Sans", sans-serif;
    font-size: 28px;
    font-weight: 600;
    line-height: 1;
    padding-top: 4px;
}
.airdan-system-step h4{
    font-size: 20px;
    font-weight: 700;
    color: var(--green-dark);
    margin-bottom: 8px;
}
.airdan-system-step p{
    margin-bottom: 0;
    line-height: 1.8;
    color: #555;
}
.airdan-note{
    font-size: 13px;
    color: #777;
}
.airdan-merit-title{
    margin-bottom: 50px;
}
.airdan-merit-title h3{
    font-size: 28px;
    margin-bottom: 16px;
}
.airdan-merit-title p{
    font-size: 16px;
    line-height: 1.9;
}
.airdan-merit-flex{
    flex-wrap: wrap;
    gap: 20px;
    margin-bottom: 30px;
}
.airdan-merit-card{
    flex-basis: calc(50% - 10px);
    background: var(--beige-soft);
    padding: 28px 24px;
    border-radius: 20px;
    box-shadow: 3px 3px 3px rgba(0,0,0,0.12);
}
.airdan-merit-card h4{
    margin: 0 auto 12px;
    font-size: 18px;
    text-align: center;
    border-bottom: 1px solid var(--green);
    padding-bottom: 10px;
    font-weight: 700;
    color: var(--green);
}
.airdan-merit-card p{
    line-height: 1.8;
    margin-bottom: 0;
}
.airdan-approach{
    background: var(--beige-soft);
}
.airdan-approach .flex-sb{
    align-items: center;
}
.airdan-approach-info{
    flex-basis: 48%;
    position: relative;
    background: rgba(255,255,255,0.7);
    padding: 50px;
}
.airdan-approach-info h3{
    font-size: 32px;
    margin-bottom: 30px;
    position: relative;
    line-height: 1.5;
}
.airdan-approach-info h3::after{
    content: "";
    bottom: -10px;
    left: 0;
    background: var(--green);
    height: 3px;
    width: 60px;
    position: absolute;
}
.airdan-approach-info p{
    line-height: 1.9;
    margin-bottom: 20px;
}
.airdan-approach-info ul{
    margin: 0;
    padding: 0;
    list-style: none;
}
.airdan-approach-info li{
    position: relative;
    padding: 12px 0 12px 28px;
    border-top: 1px solid rgba(91,143,99,0.28);
    line-height: 1.7;
}
.airdan-approach-info li::before{
    position: absolute;
    left: 4px;
    color: var(--green);
    content: "✓";
}
.airdan-approach-img{
    flex-basis: 48%;
}
.airdan-approach-img img{
    border-radius: 10px;
    width: 100%;
    height: auto;
}
.airdan-approach-img .kome{
    margin-top: 8px;
}
.airdan-flow-title{
    margin-bottom: 50px;
}
.airdan-flow-title h3{
    font-size: 28px;
}
.airdan-flow-list{
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}
.airdan-flow-list li{
    padding: 0 18px;
    border-left: 1px solid rgba(91,143,99,0.28);
}
.airdan-flow-list li:last-child{
    border-right: 1px solid rgba(91,143,99,0.28);
}
.airdan-flow-list li > span{
    display: block;
    margin-bottom: 20px;
    color: var(--green);
    font-family: "Josefin Sans", sans-serif;
    font-size: 28px;
    font-weight: 600;
}
.airdan-flow-list h4{
    font-size: 17px;
    font-weight: 700;
    color: var(--green-dark);
    margin-bottom: 10px;
    line-height: 1.5;
}
.airdan-flow-list p{
    margin-bottom: 0;
    font-size: 14px;
    line-height: 1.8;
    color: #555;
}
.airdan-faq{
    background: var(--beige-soft);
}
.airdan-faq h3{
    margin-bottom: 50px;
    text-align: center;
    font-size: 28px;
    color: #333;
}
@media screen and (max-width: 950px) {
    .airdan-merit-card{
        margin-bottom: 15px;
    }
    .airdan-worry-item{
        flex-direction: column-reverse;
    }
    .airdan-worry-info,
    .airdan-worry-img{
        flex-basis: 100%;
        width: 100%;
        margin-left: 0;
        padding: 0;
    }
    .airdan-worry-info-in{
        max-width: none;
        padding: 28px 24px;
        margin-bottom: 20px;
    }
    .airdan-worry-img img{
        max-height: 320px;
    }
    .airdan-approach .flex-sb{
        flex-direction: column;
        gap: 30px;
    }
    .airdan-approach-info,
    .airdan-approach-img{
        flex-basis: 100%;
        width: 100%;
    }
    .airdan-approach-info{
        padding: 30px 24px;
    }
    .airdan-flow-list{
        grid-template-columns: 1fr;
    }
    .airdan-flow-list li,
    .airdan-flow-list li:last-child{
        display: grid;
        grid-template-columns: 56px 1fr;
        gap: 16px;
        padding: 22px 0;
        border-left: 0;
        border-right: 0;
        border-bottom: 1px solid rgba(91,143,99,0.28);
    }
    .airdan-flow-list li > span{
        margin: 2px 0 0;
    }
}

@media screen and (max-width: 767px) {
    .airdan-worry-info-in h3,
    .airdan-system-top h3,
    .airdan-merit-title h3,
    .airdan-flow-title h3,
    .airdan-faq h3{
        font-size: 22px;
    }
    .airdan-approach-info h3{
        font-size: 26px;
    }
    .airdan-system-step{
        padding: 20px;
        gap: 16px;
    }
    .airdan-system-step span{
        font-size: 22px;
    }
    .airdan-system-step h4{
        font-size: 17px;
    }
    .airdan-faq{
        padding: 70px 0;
    }
    .airdan-worry{
        padding-top: 0;
    }
.airdan-worry-info-in ul li{
    margin-bottom: 8px;
}
.airdan-system-top p{
    font-size: 15px;
}
.airdan-system-top{
    margin-bottom: 30px;
}
.kome{
    font-size: 14px;
}

}

/**********************************************************************/
/*****************************  どんとパネル  *****************************/
/**********************************************************************/
.donto-promise{
    background: var(--beige-dark);
}
.donto-promise-title{
    margin-bottom: 50px;
}
.donto-promise-title h3{
    font-size: 28px;
    margin-bottom: 10px;
    color: var(--burgundy);
}
.donto-promise-title p{
    font-size: 18px;
}
.donto-making{
    background: #fff;
}
.donto-making-head{
    max-width: 780px;
    margin: 0 auto 40px;
}
.donto-making-label{
    margin-bottom: 14px;
    color: var(--green);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.18em;
}
.donto-making-head h3{
    font-size: 32px;
    color: var(--green);
    margin-bottom: 16px;
}
.donto-making-head .lead{
    font-size: 18px;
    color: var(--orange-soft);
    margin-bottom: 16px;
}
.donto-making-head > p:last-child{
    font-size: 16px;
    line-height: 1.9;
}
.donto-making-media{
    max-width: 920px;
    margin: 30px auto;
}
.donto-video video{
    display: block;
    width: 100%;
    height: auto;
    background: #111;
    border-radius: 16px;
}
.donto-video-frame{
    position: relative;
}
.donto-video--featured .donto-video-frame{
    box-shadow: 0 18px 40px rgba(59, 49, 43, 0.16);
    border-radius: 16px;
    overflow: hidden;
}
.donto-video--featured video{
    border-radius: 0;
}
.donto-video-play{
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
    width: 100%;
    height: 100%;
    background: rgba(59, 49, 43, 0.28);
    color: #fff;
    cursor: pointer;
    transition: background 0.25s ease, opacity 0.25s ease;
}
.donto-video-play:hover,
.donto-video-play:focus-visible{
    background: rgba(59, 49, 43, 0.4);
}
.donto-video-frame.is-playing .donto-video-play{
    opacity: 0;
    pointer-events: none;
}
.donto-video-play-icon{
    position: relative;
    width: 78px;
    height: 78px;
    border-radius: 50%;
    background: var(--green);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
}
.donto-video-play-icon::before{
    content: "";
    position: absolute;
    top: 50%;
    left: 54%;
    transform: translate(-50%, -50%);
    border-style: solid;
    border-width: 12px 0 12px 20px;
    border-color: transparent transparent transparent #fff;
}
.donto-video-play-text{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-shadow: 0 1px 8px rgba(0, 0, 0, 0.35);
}
.donto-video-play-text span{
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.04em;
    opacity: 0.9;
}
.donto-video-cap{
    margin-top: 10px;
    font-size: 14px;
    color: #666;
}
.donto-making-media .donto-video-cap{
    text-align: center;
}
.donto-making-steps{
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin-top: 40px;
}
.donto-making-steps li{
    flex: 1 1 calc(25% - 12px);
    min-width: 160px;
    padding: 22px 20px;
    background: var(--beige-soft);
    border-radius: 16px;
    border-top: 3px solid var(--green);
    line-height: 1.7;
    font-weight: 600;
}
.donto-making-steps li span{
    display: block;
    margin-bottom: 8px;
    color: var(--orange-soft);
    font-family: 'Josefin Sans', sans-serif;
    font-size: 15px;
    font-weight: 500;
    letter-spacing: 0.08em;
}
.donto-site{
    background: var(--beige-soft);
}
.donto-test{
    background: #fff;
}
.donto-test .flex-sb{
    align-items: center;
    gap: 2%;
}
.donto-test-info{
    flex-basis: 48%;
}
.donto-test-info h3{
    font-size: 32px;
    margin-bottom: 24px;
    color: var(--green);
    position: relative;
}
.donto-test-info h3::after{
    content: "";
    position: absolute;
    left: 0;
    bottom: -10px;
    width: 60px;
    height: 3px;
    background: var(--green);
}
.donto-test-info > p{
    margin-top: 28px;
    font-size: 16px;
    line-height: 1.9;
}
.donto-test-media{
    flex-basis: 50%;
}
.donto-test-facts{
    margin-top: 28px;
}
.donto-test-facts div{
    display: flex;
    gap: 16px;
    padding: 12px 0;
    border-top: 1px solid rgba(0,0,0,0.12);
}
.donto-test-facts dt{
    flex: 0 0 5.5em;
    color: #777;
    font-size: 13px;
}
.donto-test-facts dd{
    font-weight: 600;
    color: #333;
}
.donto-note{
    margin-top: 16px;
    font-size: 12px;
    color: #888;
}
.donto-faq{
    background: var(--beige-soft);
}

@media screen and (max-width: 768px) {
    .donto-page > section{
        padding: 50px 0;
    }
    .donto-page .page-top-flex{
        padding: 40px 5% 50px;
    }
    .donto-page .page-top-info{
        margin-bottom: 28px;
    }
    .donto-page .page-top-info h2{
        font-size: 22px;
        margin-bottom: 16px;
        line-height: 1.55;
    }
    .donto-page .page-top-info h2 span{
        font-size: 14px;
        margin-top: 10px;
        letter-spacing: 0.04em;
        line-height: 1.7;
    }
    .donto-promise-title{
        margin-bottom: 28px;
    }
    .donto-promise-title h3,
    .donto-making-head h3,
    .donto-test-info h3{
        font-size: 22px;
        line-height: 1.5;
    }
    .donto-promise-title p{
        font-size: 15px;
    }
    .donto-page .menshin-merit-card{
        margin-bottom: 16px;
        padding: 20px 18px 24px;
    }
    .donto-page .menshin-merit-card:last-child{
        margin-bottom: 0;
    }
    .donto-page .menshin-merit-card img{
        border-radius: 12px;
        margin-bottom: 14px;
    }
    .donto-page .menshin-merit-card h4{
        font-size: 16px;
        margin-bottom: 12px;
    }
    .donto-features .cell2-item{
        padding: 0 0 40px;
    }
    .donto-features .cell2-item:last-child{
        padding-bottom: 0;
    }
    .donto-features .cell2-img,
    .donto-features .rev .cell2-img{
        margin: 20px 0 0 !important;
    }
    .donto-features .cell2-img img{
        border-radius: 16px;
    }
    .donto-making-head{
        margin-bottom: 24px;
    }
    .donto-making-head .lead{
        font-size: 16px;
    }
    .donto-making-head > p:last-child{
        font-size: 15px;
        text-align: left;
    }
    .donto-making-media{
        margin: 0 auto;
    }
    .donto-video-play-icon{
        width: 64px;
        height: 64px;
    }
    .donto-video-play-icon::before{
        border-width: 10px 0 10px 16px;
    }
    .donto-video-play-text{
        font-size: 14px;
    }
    .donto-video-cap{
        margin-top: 12px;
        line-height: 1.7;
    }
    .donto-making-steps{
        flex-direction: column;
        gap: 10px;
        margin-top: 24px;
    }
    .donto-making-steps li{
        flex-basis: auto;
        min-width: 0;
        padding: 16px 18px;
        font-size: 15px;
    }
    .donto-test-info{
        margin-bottom: 32px;
    }
    .donto-test-info h3{
        margin-bottom: 28px;
    }
    .donto-test-info > p{
        margin-top: 20px;
        font-size: 15px;
    }
    .donto-test-facts{
        margin-top: 20px;
    }
    .donto-test-facts div{
        flex-direction: column;
        gap: 4px;
        padding: 14px 0;
    }
    .donto-faq{
        padding: 50px 0;
    }
}

/**********************************************************************/
/*****************************  屋根材  *****************************/
/**********************************************************************/
.roof2{
    padding: 40px 0 80px;
}
.roof3{
    background: var(--beige-soft);
    padding: 40px 0;
}
.roof4{
    padding: 80px 0;
}
.roof-page .cell2-item .roof-no-img .cell2-info{
    flex-basis: 100%;
}
.roof-spec{
    margin-top: 40px;
}
.roof-spec h4,
.roof-compare h4{
    font-size: 22px;
    color: var(--green);
    margin-bottom: 24px;
}
.roof-table-scroll{
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.roof-spec-table,
.roof-compare-table{
    width: 100%;
    border-collapse: collapse;
    border: 1px solid #e5e0d8;
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
}
.roof-spec-table th,
.roof-spec-table td,
.roof-compare-table th,
.roof-compare-table td{
    border: none;
    padding: 18px 24px;
    line-height: 1.85;
    vertical-align: middle;
    letter-spacing: 0.04em;
}
.roof-spec-table tr,
.roof-compare-table tr{
    border-bottom: 1px solid #ece8e2;
}
.roof-spec-table tr:last-child,
.roof-compare-table tr:last-child{
    border-bottom: none;
}
.roof-spec-table th{
    width: 22%;
    min-width: 100px;
    color: var(--green);
    font-weight: 600;
    background: var(--beige-soft);
    border-right: 1px solid #ece8e2;
    text-align: center;
    white-space: nowrap;
}
.roof-compare-table thead th{
    background: var(--green);
    color: #fff;
    text-align: center;
    font-weight: 600;
}
.roof-compare-table thead th:first-child{
    background: var(--green-dark);
}
.roof-compare-table tbody th{
    width: 28%;
    min-width: 160px;
    color: var(--green);
    font-weight: 600;
    background: var(--beige-soft);
    border-right: 1px solid #ece8e2;
    text-align: left;
}
.roof-compare-table tbody td{
    text-align: center;
    font-size: 20px;
}
.roof-compare-table .mark-best{
    color: var(--orange);
    font-weight: 700;
}
.roof-compare-table .mark-ok{
    color: var(--green);
    font-weight: 700;
}
.roof-compare-table .mark-mid{
    color: #b08a3c;
    font-weight: 700;
}
.roof-compare-table .mark-bad{
    color: #999;
    font-weight: 700;
}
.roof-compare{
    margin-bottom: 50px;
}
.roof-compare-note{
    margin-top: 24px;
    line-height: 1.9;
}
.roof-why{
    margin: 0 auto 40px;
    padding: 40px;
    background: var(--beige-soft);
    border-radius: 30px;
    max-width: 900px;
}
.roof-why-img{
    margin-bottom: 24px;
}
.roof-why-img img{
    border-radius: 20px;
}
.roof-why p{
    line-height: 2;
}
@media screen and (max-width: 768px) {
    .roof2{
        padding: 40px 0 60px;
    }
    .roof4{
        padding: 40px 0 0;
    }
    .roof-spec-table{
        display: block;
        border: none;
        border-radius: 0;
        overflow: visible;
        background: transparent;
    }
    .roof-spec-table tbody{
        display: block;
    }
    .roof-spec-table tr{
        display: block;
        margin-bottom: 12px;
        border: 1px solid #e5e0d8;
        border-radius: 12px;
        overflow: hidden;
        background: #fff;
    }
    .roof-spec-table tr:last-child{
        margin-bottom: 0;
    }
    .roof-spec-table th,
    .roof-spec-table td{
        display: block;
        width: 100%;
        padding: 14px 18px;
    }
    .roof-spec-table th{
        border-right: none;
        text-align: left;
        padding-bottom: 6px;
    }
    .roof-spec-table td{
        padding-top: 0;
        padding-bottom: 18px;
        border-bottom: none;
    }
    .roof-compare-table{
        min-width: 520px;
    }
    .roof-why{
        padding: 28px 20px;
    }
    .roof-compare-table th{
        padding: 8px 15px;
        font-size: 14px;
    }
    .roof-compare-table tbody td{
        padding: 8px 15px;
        font-size: 16px;
    }
}

/**********************************************************************/
/*****************************  スペイン漆喰  *****************************/
/**********************************************************************/
.spain2{
    padding: 40px 0 20px;
}
.spain3{
    background: var(--beige-soft);
    padding: 60px 0;
}
.spain4,
.spain5,
.spain6{
    padding: 80px 0;
}
.spain5{
    background: var(--beige-soft);
}
.spain6{
    padding-bottom: 0;
}
.spain-compare{
    gap: 30px;
}
.spain-compare-item{
    flex-basis: calc(50% - 15px);
}
.spain-compare-item img{
    border-radius: 24px;
    margin-bottom: 16px;
}
.spain-compare-item figcaption{
    text-align: center;
    line-height: 1.8;
    font-size: 15px;
}
.spain-clean-items{
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
}
.spain-clean-item{
    flex-basis: calc(33.333% - 16px);
}
.spain-clean-item img{
    border-radius: 20px;
    margin-bottom: 12px;
}
.spain-clean-item figcaption{
    text-align: center;
    font-size: 14px;
    line-height: 1.7;
}
.spain-thermal{
    max-width: 900px;
    margin: 0 auto;
    background: #fff;
    padding-bottom: 30px;
    border-radius: 24px;
    box-shadow: 3px 3px 12px rgba(0,0,0,0.08);
}
@media screen and (max-width: 768px) {
    .spain4,
    .spain5,
    .spain6{
        padding: 50px 0;
    }
    .spain-compare{
        display: flex;
        flex-direction: column;
    }
    .spain-compare-item{
        flex-basis: 100%;
    }
    .spain-clean-item{
        flex-basis: calc(50% - 12px);
    }
}

/**********************************************************************/
/*****************************  モイス  *****************************/
/**********************************************************************/
.moise-page .page-top-info p + p{
    margin-top: 1em;
}
.moise-feat-items{
    gap: 20px;
}
.moise2,
.moise4,
.moise6{
    padding: 40px 0 80px;
}
.moise3,
.moise5{
    background: var(--beige-soft);
    padding: 80px 0;
}
.moise-sec-banner{
    max-width: 460px;
    margin: 0 0 28px;
}
.moise-sec-banner img{
    width: 100%;
    height: auto;
}
.moise-split-info .lead{
    font-size: 18px;
    color: var(--orange-soft);
    margin-bottom: 16px;
}
.moise-split{
    gap: 40px;
    align-items: center;
}
.moise-split-info{
    flex-basis: 48%;
}
.moise-split-info h3{
    font-size: 26px;
    color: var(--green);
    margin-bottom: 16px;
}
.moise-split-info p{
    line-height: 1.95;
    margin-bottom: 1em;
}
.moise-split-info p:last-child{
    margin-bottom: 0;
}
.moise-split-img{
    flex-basis: 48%;
}
.moise-split-img img{
    border-radius: 24px;
    width: 100%;
    height: auto;
}
.moise-split--usage{
    margin-top: 70px;
}
.moise-material-photos{
    max-width: 720px;
    margin: 0 auto;
}
.moise-material-photo img{
    border-radius: 24px;
    background: #fff;
}
.moise-diagrams{
    gap: 24px;
    margin-top: 40px;
}
.moise-diagram{
    flex-basis: calc(50% - 12px);
    background: #fff;
    border-radius: 20px;
    padding: 20px;
}
.moise-diagram img,
.moise-diagram-wide img{
    border-radius: 12px;
}
.moise-diagram figcaption,
.moise-diagram-wide figcaption{
    text-align: center;
    margin-top: 12px;
    font-size: 14px;
    line-height: 1.7;
}
.moise-diagram-wide{
    margin: 24px auto 0;
    background: #fff;
    border-radius: 20px;
    padding: 50px;
    max-width: 900px;
}
.moise-compare{
    margin-top: 60px;
}
.moise-compare-head{
    margin-bottom: 32px;
}
.moise-compare-head h3{
    font-size: 26px;
    color: var(--green);
    margin-bottom: 12px;
    line-height: 1.6;
}
.moise-compare-head .lead{
    font-size: 20px;
    color: var(--orange-soft);
    margin-bottom: 10px;
}
.moise-compare-head .kome{
    margin-bottom: 16px;
}
.moise-compare-head p{
    line-height: 2;
}
.moise-compare-grid{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}
.moise-compare-grid figure{
    background: #fff;
    border-radius: 20px;
    padding: 28px 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 320px;
}
.moise-compare-grid img{
    width: auto;
    max-width: 100%;
    max-height: 420px;
    height: auto;
    margin: 0 auto;
    border-radius: 8px;
}
.moise-burn{
    margin-top: 20px;
}
.moise-burn h4{
    font-size: 20px;
    color: var(--green);
    text-align: center;
    margin-bottom: 28px;
    line-height: 1.5;
}
.moise-burn-items{
    gap: 20px;
}
.moise-burn-item{
    flex-basis: calc(33.333% - 14px);
    background: #fff;
    border-radius: 20px;
    padding: 16px;
    text-align: center;
}
.moise-burn-item img{
    border-radius: 12px;
    margin-bottom: 12px;
}
.moise-burn-item figcaption{
    font-size: 14px;
    line-height: 1.6;
}
.moise-feat-item{
    flex-basis: calc(50% - 10px);
    background: #fff;
    border-radius: 24px;
    padding: 32px 28px;
    display: flex;
    flex-direction: column;
}
.moise-feat-item h4{
    font-size: 17px;
    color: var(--green);
    margin-bottom: 14px;
    line-height: 1.6;
}
.moise-feat-item p,
.moise-feat-item li{
    line-height: 1.9;
    font-size: 15px;
}
.moise-feat-item ul{
    margin-top: 12px;
    padding-left: 1.2em;
}
.moise-feat-item li{
    list-style: disc;
    margin-bottom: 6px;
}
.moise-feat-item img{
    width: auto;
    max-width: 100%;
    max-height: 220px;
    height: auto;
    margin: auto auto 0;
    padding-top: 20px;
    border-radius: 8px;
}
.moise-feat-item--termite{
    flex-basis: 100%;
}
.moise-feat-item--mold{
    flex-basis: 100%;
    flex-direction: row;
    align-items: center;
    gap: 36px;
}
.moise-feat-item--mold .moise-feat-copy{
    flex: 1 1 46%;
    min-width: 0;
}
.moise-feat-item--mold img{
    flex: 1 1 50%;
    max-height: 320px;
    margin: 0;
    padding-top: 0;
}
.moise-termite{
    display: flex;
    gap: 28px;
    align-items: stretch;
    margin-top: 20px;
}
.moise-termite img{
    flex: 0 1 42%;
    max-height: 280px;
    margin: 0;
    padding-top: 0;
    object-fit: contain;
}
.moise-termite-data{
    flex: 1 1 58%;
    min-width: 0;
}
.moise-termite-data h5{
    font-size: 16px;
    color: var(--green);
    margin-bottom: 8px;
}
.moise-termite-data > p{
    margin-bottom: 14px;
}
.moise-termite-split{
    display: flex;
    gap: 20px;
    align-items: flex-start;
}
.moise-termite-table{
    flex: 0 1 48%;
    width: auto;
    min-width: 240px;
}
.moise-termite-table th,
.moise-termite-table td{
    padding: 8px 12px;
    font-size: 13px;
    letter-spacing: 0.04em;
    height: auto;
    line-height: 1.6;
    white-space: normal;
}
.moise-termite-table th{
    background: var(--beige-warm);
    font-weight: 600;
}
.moise-termite-table td:last-child{
    text-align: center;
    font-weight: 700;
    color: var(--green-dark);
    white-space: nowrap;
}
.moise-termite-notes{
    flex: 1 1 52%;
    margin-top: 0;
    padding-left: 1em;
}
.moise-termite-notes li{
    list-style: disc;
    font-size: 12px;
    line-height: 1.7;
    margin-bottom: 6px;
    letter-spacing: 0.02em;
}
@media screen and (max-width: 768px) {
    .moise-split-info h3,
    .moise-compare-head h3{
        font-size: 22px;
    }
    .moise-feat-items,
    .moise-diagrams,
    .moise-burn-items,
    .moise-split{
        flex-direction: column;
    }
    .moise2,
    .moise4,
    .moise6{
        padding: 30px 0 50px;
    }
    .moise3,
    .moise5{
        padding: 50px 0;
    }
    .moise-split--usage{
        margin-top: 40px;
    }
    .moise-split-img{
        margin-top: 15px;
    }
    .moise-compare-grid{
        grid-template-columns: 1fr;
        gap: 16px;
    }
    .moise-compare-grid figure{
        min-height: 0;
        padding: 20px;
    }
    .moise-compare-grid img{
        max-height: 360px;
    }
    .moise-termite,
    .moise-termite-split{
        flex-direction: column;
        gap: 16px;
    }
    .moise-termite img{
        flex-basis: auto;
        max-height: 220px;
        width: auto;
        max-width: 100%;
    }
    .moise-termite-table{
        min-width: 0;
        width: 100%;
    }
    .moise-feat-item--mold{
        flex-direction: column;
        align-items: stretch;
        gap: 16px;
    }
    .moise-feat-item--mold img{
        max-height: 240px;
        width: auto;
        max-width: 100%;
    }
    .moise-diagram{
        margin-bottom: 20px;
    }
    .moise-burn-item{
        margin-bottom: 20px;
    }
    .moise-burn-item{
        width: 80%;
        margin: 0px auto 25px;
    }
    .moise-feat-item{
        padding: 20px;
        margin-bottom: 20px;
    }
    .moise-material-photo img{
        border-radius: 14px;
        background: #fff;
        padding: 8px;
    }

}

/**********************************************************************/
/*****************************  タイベック  *****************************/
/**********************************************************************/
.tyvek-page sup{
    font-family: "Noto Sans JP", sans-serif;
}
.tyvek-product{
    padding: 20px 0 60px;
}
.tyvek-product img{
    width: 100%;
    background: #fff;
    border-radius: 24px;
    box-shadow: 3px 3px 12px rgba(0,0,0,0.08);
}
.tyvek2{
    padding: 40px 0 80px;
}
.tyvek3{
    background: var(--beige-soft);
    padding: 80px 0;
}
.tyvek4{
    padding: 80px 0 0;
}
.tyvek-diagram{
    max-width: 860px;
    margin: 0 auto 36px;
    background: #fff;
    border-radius: 24px;
    padding: 24px;
}
.tyvek-diagram-note{
    text-align: center;
    margin-bottom: 40px;
    line-height: 1.9;
}
@media screen and (max-width: 768px) {
    .tyvek-product{
        padding: 10px 0 40px;
    }
    .tyvek2{
        padding: 20px 0 50px;
    }
    .tyvek3{
        padding: 50px 0;
    }
    .tyvek4{
        padding: 50px 0 0;
    }
}

/**********************************************************************/
/*****************************  EPS断熱材  *****************************/
/**********************************************************************/
.eps2{
    padding: 20px 0 80px;
}
.eps-panel{
    max-width: 520px;
    margin: 0 auto 60px;
    text-align: center;
}
.eps-panel img{
    margin-bottom: 24px;
}
.eps-panel p{
    line-height: 1.9;
    text-align: left;
}
.eps3{
    background: var(--beige-soft);
    padding: 80px 0;
}
.eps4{
    padding: 80px 0 0;
}
.eps-issue{
    margin-top: 50px;
}
.eps-issue h4{
    font-size: 20px;
    color: var(--green);
    margin-bottom: 16px;
    line-height: 1.6;
}
.eps-issue p{
    line-height: 1.9;
    margin-bottom: 1.2em;
}
.eps-photos{
    gap: 24px;
    margin-top: 24px;
}
.eps-photos figure{
    flex-basis: calc(50% - 12px);
}
.eps-photos img,
.eps-photo-tall img{
    border-radius: 20px;
    width: 100%;
    height: auto;
    display: block;
}
.eps-photo-tall{
    max-width: 420px;
    margin: 24px auto 0;
}
.eps-close{
    margin-top: 50px;
}
.eps-close p{
    line-height: 2;
    margin-bottom: 1.4em;
}
.eps-close p:last-child{
    margin-bottom: 0;
}
@media screen and (max-width: 768px) {
    .eps2{
        padding: 10px 0 50px;
    }
    .eps3{
        padding: 50px 0;
    }
    .eps4{
        padding: 50px 0 0;
    }
    .eps-photos{
        flex-direction: column;
    }
    .eps-photos--grid{
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        gap: 5px;
    }
    .eps-photos figure:not(:last-of-type) {
        margin-bottom: 20px;
    }
    .eps-photos--grid figure{
        flex-basis: calc(50% - 5px);
        margin-bottom: 0!important;
    }
}

/**********************************************************************/
/*****************************  フィニッシュコート  *****************************/
/**********************************************************************/
.fc-product{
    padding: 50px 0 20px;
}
.fc-product img{
    width: 100%;
    border-radius: 24px;
    box-shadow: 3px 3px 12px rgba(0,0,0,0.08);
}
.fc-spec{
    padding: 40px 0 20px;
}
.fc-spec h3{
    font-size: 26px;
    color: var(--green);
    margin-bottom: 28px;
    text-align: center;
}
.fc-spec-table{
    width: 100%;
    border-collapse: collapse;
    background: #fff;
}
.fc-spec-table th,
.fc-spec-table td{
    padding: 18px 24px;
    border-bottom: 1px solid #e5e0d8;
    line-height: 1.8;
    text-align: left;
    vertical-align: top;
}
.fc-spec-table th{
    width: 22%;
    color: var(--green);
    background: var(--beige-soft);
    font-weight: 700;
    white-space: nowrap;
}
.fc-extra{
    padding: 20px 0 80px;
}
.fc-extra-items{
    gap: 24px;
    align-items: stretch;
}
.fc-extra-item{
    flex-basis: calc(33.333% - 16px);
    background: var(--beige-soft);
    border-radius: 24px;
    padding: 28px 24px 32px;
}
.fc-extra-item h4{
    font-size: 18px;
    color: var(--green);
    margin-bottom: 16px;
    text-align: center;
}
.fc-extra-item img{
    border-radius: 16px;
    margin-bottom: 16px;
}
.fc-extra-item figcaption{
    font-size: 14px;
    line-height: 1.8;
}
.fc-weather{
    background: var(--beige-soft);
    padding: 80px 0;
}
.fc-data-wide{
    background: #fff;
    border-radius: 24px;
    padding: 20px;
    margin-bottom: 24px;
}
.fc-data-split{
    gap: 24px;
    margin-bottom: 24px;
    align-items: stretch;
}
.fc-data-split figure{
    flex-basis: calc(50% - 12px);
    background: #fff;
    border-radius: 24px;
    padding: 20px;
}
.fc-data img{
    width: 100%;
}
.fc-sd{
    padding: 40px 0 0;
}
.finish-coat-page .cell2-item > div{
    align-items: center;
}
.finish-coat-page .cell2-img,
.finish-coat-page .rev .cell2-img{
    margin-left: 0;
    margin-right: 0;
    flex-basis: 42%;
}
.finish-coat-page .cell2-img img{
    border-radius: 24px;
}
.fc-colors{
    max-width: 860px;
    margin: 20px auto 0;
    text-align: center;
}
.fc-colors h4{
    font-size: 20px;
    color: var(--green);
    margin-bottom: 24px;
}
.fc-colors img{
    width: 100%;
    background: #fff;
    border-radius: 24px;
    padding: 16px;
    box-shadow: 3px 3px 12px rgba(0,0,0,0.08);
}
.fc-coverage{
    padding: 80px 0 40px;
}
.fc-coverage h3{
    font-size: 26px;
    color: var(--green);
    margin-bottom: 28px;
    text-align: center;
}
.fc-coverage-table{
    width: 100%;
    border-collapse: collapse;
    border: 1px solid #e5e0d8;
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
}
.fc-coverage-table th,
.fc-coverage-table td{
    border: none;
    padding: 16px 24px;
    line-height: 1.85;
    vertical-align: middle;
    letter-spacing: 0.04em;
}
.fc-coverage-table thead th{
    background: var(--green);
    color: #fff;
    text-align: center;
    font-weight: 600;
}
.fc-coverage-table tbody tr{
    border-bottom: 1px solid #ece8e2;
}
.fc-coverage-table tbody tr:last-child{
    border-bottom: none;
}
.fc-coverage-table tbody td:first-child{
    background: var(--beige-soft);
    border-right: 1px solid #ece8e2;
}
.fc-coverage-table tbody td:last-child{
    width: 28%;
    text-align: center;
    white-space: nowrap;
    font-weight: 600;
    background: #fff;
}
.fc-coverage-name{
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 16px 24px;
    flex-wrap: wrap;
}
.fc-coverage-en{
    color: var(--text-muted);
    font-size: 14px;
    font-family: 'Josefin Sans', sans-serif;
    letter-spacing: 0.04em;
}
.fc-coverage-note{
    margin-top: 16px;
    font-size: 14px;
    line-height: 1.8;
    color: var(--text-muted);
}
@media screen and (max-width: 768px) {
    .fc-product{
        padding: 30px 0 10px;
    }
    .fc-spec h3,
    .fc-coverage h3{
        font-size: 22px;
    }
    .fc-coverage{
        padding: 50px 0 20px;
    }
    .fc-coverage-table th,
    .fc-coverage-table td{
        padding: 12px 14px;
        font-size: 14px;
    }
    .fc-coverage-name{
        flex-direction: column;
        gap: 4px;
    }
    .fc-coverage-table tbody td:last-child{
        width: 36%;
    }
    .fc-spec-table th,
    .fc-spec-table td{
        display: block;
        width: 100%;
        padding: 12px 18px;
    }
    .fc-extra-items,
    .fc-data-split{
        flex-direction: column;
    }
    .fc-extra{
        padding: 10px 0 50px;
    }
    .fc-extra-item:not(:last-of-type),.fc-data-split figure:not(:last-of-type) {
        margin-bottom: 20px;
    }
    .fc-weather{
        padding: 50px 0;
    }
}

/**********************************************************************/
/*****************************  樹脂サッシ  *****************************/
/**********************************************************************/
.sash-heat{
    padding: 80px 0 40px;
}
.sash-heat-items{
    gap: 30px;
    max-width: 860px;
    margin: 0 auto;
}
.sash-heat-items figure{
    flex-basis: calc(50% - 15px);
    background: #fff;
    border-radius: 24px;
    padding: 20px;
    box-shadow: 3px 3px 12px rgba(0,0,0,0.06);
}
.sash-product{
    padding: 40px 0 20px;
}
.sash-product-in{
    gap: 40px;
    align-items: center;
}
.sash-product-info{
    flex-basis: 54%;
}
.sash-product-info h3{
    font-size: 26px;
    color: var(--green);
    margin-bottom: 20px;
}
.sash-product-info p{
    line-height: 1.95;
    margin-bottom: 1.2em;
}
.sash-product-img{
    flex-basis: 38%;
}
.sash-product-img img{
    border-radius: 24px;
}
.sash-cost{
    background: var(--beige-soft);
    padding: 80px 0;
}
.sash-charts figure{
    background: #fff;
    border-radius: 24px;
    padding: 28px 24px 32px;
    margin-bottom: 24px;
}
.sash-charts figure:last-child{
    margin-bottom: 0;
}
.sash-charts figcaption{
    text-align: center;
    font-size: 16px;
    color: var(--green);
    margin-bottom: 20px;
    font-weight: 700;
}
.sash-spec{
    padding: 80px 0 40px;
}
.sash-spec-items{
    gap: 20px;
    margin-top: 20px;
}
.sash-spec-item{
    flex-basis: calc(33.333% - 14px);
    background: var(--beige-soft);
    border-radius: 24px;
    padding: 32px 28px;
}
.sash-spec-item h4{
    font-size: 18px;
    color: var(--green);
    margin-bottom: 16px;
}
.sash-spec-item p{
    font-size: 14px;
    line-height: 1.9;
}
.sash-season{
    padding: 20px 0 0;
}
.sash-season-items{
    gap: 30px;
}
.sash-season-item{
    flex-basis: calc(50% - 15px);
    background: var(--beige-soft);
    border-radius: 24px;
    padding: 32px 28px 36px;
}
.sash-season-label{
    text-align: center;
    letter-spacing: 0.18em;
    color: var(--orange-soft);
    margin-bottom: 20px;
    font-family: 'Josefin Sans', sans-serif;
    font-size: 18px;
}
.sash-season-item img{
    border-radius: 16px;
    margin-bottom: 20px;
    background: #fff;
}
.sash-season-item ul li{
    position: relative;
    padding-left: 1.2em;
    line-height: 1.9;
    margin-bottom: 8px;
    font-size: 15px;
}
.sash-season-item ul li::before{
    content: '・';
    position: absolute;
    left: 0;
}
@media screen and (max-width: 768px) {
    .sash-heat,
    .sash-spec{
        padding: 50px 0 20px;
    }
    .sash-cost{
        padding: 50px 0;
    }
    .sash-heat-items,
    .sash-product-in,
    .sash-season-items{
        flex-direction: column;
    }
    .sash-product-info h3{
        font-size: 22px;
    }
    .sash-heat-items figure:first-of-type {
        margin-bottom: 20px;
    }
    .sash-spec-item:not(:last-of-type) {
        margin-bottom: 20px;
    }
    .sash-season-item:not(:last-of-type) {
        padding: 20px;
        margin-bottom: 20px;
    }
}

/**********************************************************************/
/*****************************  紀州杉  *****************************/
/**********************************************************************/
.kishu-intro{
    padding: 80px 0 40px;
}
.kishu-intro-photos{
    gap: 24px;
    margin-bottom: 50px;
}
.kishu-intro-photos figure{
    flex-basis: calc(50% - 12px);
}
.kishu-intro-photos img,
.kishu-diagram img,
.kishu-wood img,
.kishu-step img{
    border-radius: 24px;
}
.kishu-diagram{
    margin: 40px auto 0;
    max-width: 960px;
    background: #fff;
    border-radius: 24px;
    padding: 20px;
}
.kishu-young{
    background: var(--beige-soft);
    padding: 80px 0;
}
.kishu-woods{
    padding: 80px 0 40px;
}
.kishu-woods-items{
    gap: 40px;
}
.kishu-wood{
    flex-basis: calc(50% - 20px);
    display: flex;
    flex-direction: column;
}
.kishu-wood h3{
    font-size: 26px;
    color: var(--green);
    margin-bottom: 12px;
}
.kishu-wood .lead{
    font-size: 18px;
    color: var(--orange-soft);
    margin-bottom: 20px;
}
.kishu-wood p{
    line-height: 1.95;
    margin-bottom: 1.2em;
}
.kishu-wood figure{
    margin-top: auto;
}
.kishu-resource{
    padding: 0 0 40px;
}
.kishu-canopy{
    margin-bottom: 50px;
}
.kishu-canopy img{
    width: 100%;
    max-height: 280px;
    object-fit: cover;
}
.kishu-why{
    padding: 40px 0 80px;
}
.kishu-born{
    background: var(--beige-soft);
    padding: 80px 0;
}
.kishu-flow{
    margin-bottom: 40px;
}
.kishu-steps{
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
}
.kishu-step{
    flex-basis: calc(33.333% - 16px);
    background: #fff;
    border-radius: 24px;
    padding: 16px 16px 24px;
}
.kishu-step figcaption{
    margin-top: 14px;
    text-align: center;
    line-height: 1.7;
}
.kishu-step figcaption span{
    display: block;
    color: var(--orange-soft);
    letter-spacing: 0.12em;
    font-size: 13px;
    margin-bottom: 6px;
}
@media screen and (max-width: 768px) {
    .kishu-intro,
    .kishu-woods{
        padding: 50px 0 20px;
    }
    .kishu-young,
    .kishu-born{
        padding: 50px 0;
    }
    .kishu-why{
        padding: 20px 0 50px;
    }
    .kishu-intro-photos,
    .kishu-woods-items{
        flex-direction: column;
    }
    .kishu-step{
        flex-basis: 100%;
    }
    .kishu-wood h3{
        font-size: 22px;
    }
}

/**********************************************************************/
/*****************************  コラム基礎  *****************************/
/**********************************************************************/
.cb-compare{
    background: var(--beige-soft);
    padding: 80px 0;
}
.cb-body{
    padding: 80px 0 0;
}
.cb-wide{
    margin-top: 50px;
}
.cb-wide img{
    width: 100%;
    aspect-ratio: 3/2;
    border-radius: 24px;
    max-height: 420px;
    object-fit: cover;
}
@media screen and (max-width: 768px) {
    .cb-compare{
        padding: 50px 0;
    }
    .cb-body{
        padding: 50px 0 0;
    }
}
