@import url('https://fonts.googleapis.com/css2?family=Josefin+Sans:wght@100..700&family=Noto+Sans+JP:wght@100..900&family=Noto+Serif+JP:wght@200..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Yusei+Magic&family=Zen+Kurenaido&family=Zen+Kaku+Gothic+New:wght@400;500;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,700;1,700&display=swap');


:root {
    /* メインカラー */
    --key: #4AA36C;
    /* アクセント */
    --accent: #E88A2E;
    /* サブカラー */
    --sub: #2f6f9f;
    /* ボーダー */
    --border: #E5E5E5;
    /* 背景ベージュ */
    --bg1: #f1f1ea;
    /* 背景グレー */
    --bg2: #f3f4f5;
}

html {
  scroll-behavior: smooth;
/*  overflow-x: hidden;*/
}
body{
	font-family: "Noto Sans JP", sans-serif;
    overflow-x: hidden;
    color: #333;
}
img{
	width: 100%;
    height: auto;
	display: block;
}
p{
	line-height: 2;
	letter-spacing: 2px;
}
h1,h2,h3,h4{
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 3px;
    font-family: "Noto Serif JP", serif;
}
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;
	height: 25px;
	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){
    h1 {
        font-size: 22px;
        letter-spacing: 2px;
    }
    h2 {
        font-size: 20px;
        letter-spacing: 2px;
    }
    h3 {
        font-size: 18px;
        letter-spacing: 2px;
    }
    p, th, td, li, time {
        font-size: 14px;
    }
    th, td {
        padding: 8px 12px;
        font-size: 13px;
    }
    th {
        white-space: normal;
    }
    section{
        padding: 30px 0;
    }
    .table-scroll {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .table-scroll table {
        min-width: 480px;
    }
    .width-900,
    .width-ss,
    .width-s,
    .width-m,
    .width-l {
        width: 92%;
    }
}

.width-ss{
	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;
}
.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;
}
@media screen and (max-width:768px){
	.flex,.flex-sb {
		display: block;
	}
    .l404-page{
        padding-top: 52px;
    }
    .l404-page h1 {
        font-size: 24px;
    }
}

.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{
    margin-bottom: 70px;
    text-align: center;
}
.sec-title .title-main span{
    display: block;
    font-size: 36px;
    position: relative;
    margin-bottom: 25px;
}
.sec-title .title-main span::after{
    content: "";
    position: absolute;
    bottom: -10px;
    left: 50%;
    transform: translateX(-50%);
    height: 2px;
    width: 80px;
    background: var(--accent);
}
.sec-title .title-main small{
    font-size: 16px;
    color: #aaa;
}

.sec-title p{
    margin-top: 60px;
    font-size: 18px;
    line-height: 2.4;
}
@media screen and (max-width:768px){
    .sec-title {
        margin-bottom: 40px;
    }
    .sec-title .title-main span {
        font-size: 24px;
        margin-bottom: 15px;
    }
    .sec-title .title-main span::after {
        width: 50px;
        bottom: -8px;
    }
    .sec-title .title-main small {
        font-size: 13px;
    }
    .sec-title p {
        margin-top: 24px;
        font-size: 14px;
        line-height: 2;
    }
}

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

.josefin{
    font-family: 'Josefin Sans', sans-serif;
    line-height: 1;
    letter-spacing: 2px;
    color: #777;
}
.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;
}

.dm{
    position: relative;
}
.dm::after{
    content: "ダミー";
    position: absolute;
    color: #fff;
    background: #000;
    font-weight: bold;
    font-size: 13px;
    padding: 0 10px;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

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


/* パターン1：ミニマル・ボーダー */
.link-btn{
    margin-top: 40px;
}

.btn-line{
    position: relative;
    display: inline-flex;
    align-items: center;
    min-width: 260px;
    padding: 14px 24px;
    border: 1px solid #222;
    color: #111;
    text-decoration: none;
    background: transparent;
    overflow: visible;
    transition: all .4s ease;
    justify-content: center;
}

/* hover背景 */
.btn-line::after{
    content: "";
    position: absolute;
    inset: 0;

    background: #CCE8D5;

    transform: scaleX(0);
    transform-origin: left;
    transition: transform .4s ease;

    z-index: 0;
}

.btn-line:hover::after{
    transform: scaleX(1);
}

/* テキスト */
.btn-text{
    position: relative;
    z-index: 2;

    display: flex;
    flex-direction: column;
    gap: 4px;
}

.btn-text strong{
    display: block;
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: .08em;
    font-weight: 400;
}

.btn-text small{
    display: block;

    font-size: 12px;
    letter-spacing: .08em;
}

/* 矢印 */
.btn-arrow{
    position: absolute;
    top: 50%;
    right: -35px;

    width: 70px;
    height: 1px;

    background: #222;

    transform: translateY(-50%);
    transition: all .4s ease;

    z-index: 2;
}

.btn-arrow::after{
    content: "";
    position: absolute;
    right: 0;
    top: 50%;

    width: 10px;
    height: 10px;

    border-top: 1px solid #222;
    border-right: 1px solid #222;

    transform: translateY(-50%) rotate(45deg);
}

/* hover */
.btn-line:hover .btn-arrow{
    right: -45px;
}

/* パターン2 */
.link-btn2 .btn{
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 18px;
    color: #333;
    text-decoration: none;
    font-size: 14px;
    letter-spacing: .08em;
    transition: all .4s ease;
}

/* テキスト */
.link-btn2 .btn span{
    position: relative;
}


/* 線 */
.link-btn2 .btn i{
    position: relative;

    display: block;
    width: 42px;
    height: 1px;

    background: #111;

    transition: transform .4s ease;
}

/* 矢印 */
.link-btn2 .btn i::after{
    content: "";
    position: absolute;
    right: 0;
    top: 50%;

    width: 8px;
    height: 8px;

    border-top: 1px solid #111;
    border-right: 1px solid #111;

    transform: translateY(-50%) rotate(45deg);

    transition: all .4s ease;
}

/* hover */
.link-btn2 .btn:hover{
    color: var(--key);
}
.link-btn2 .btn:hover i{
    transform: translateX(8px);
}
.link-btn2 .btn:hover i::after{
    right: -3px;
}

/* パターン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(--key);
  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;
}


@media screen and (max-width:768px){
    .btn-line {
        min-width: auto;
        width: 100%;
        max-width: 300px;
        padding: 12px 20px;
    }
    .btn-text strong {
        font-size: 14px;
    }
    .btn-arrow {
        right: -24px;
        width: 48px;
    }
    .btn-line:hover .btn-arrow {
        right: -28px;
    }
    .link-btn {
        margin-top: 30px;
    }
    .link-btn2.text-r {
        text-align: center;
    }
}


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

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

	.hov-zoom {
	  overflow: hidden;
	}
	.hov-zoom img, .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.95);
	height: 70px;
    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: 40px;
    display: inline-block;
    margin-right: 5px;
    width: auto;
}
.header-container nav{
	flex-basis: calc(100% - 250px);
}
@media screen and (max-width:1150px){
	.header-container nav{
		display: none;
	}
}

.header-nav{
    display: flex;
    align-items: center;
    justify-content: right;
	margin-right: 25px;
}
.header-nav>li{
	margin-left: 3%;
	font-size: 14px;
	position: relative;
}
.header-nav>li::before {
  content: "";
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  height: 12px;
}
.header-nav>li ul {
    position: absolute;
    top: 100%;
    left: 50%;
    background: 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: #f1f1ea;
    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{
    width: 380px;
    display: inline-block;
    margin-bottom: 10px;
}
.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(--key);
    padding: 4px 0 6px 10px;
    font-size: 30px;
    line-height: 1;
    margin-bottom: 20px;
    font-weight: 700;
}
.drawer-menu-section ul li:not(:last-of-type){
    margin-bottom: 20px;
}
.drawer-cta{
    flex-basis: 26%;
    display: flex;
    flex-direction: column;
}
.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(--key);
    color: #fff;
    border-color: var(--key);
}
.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.8;
    font-family: 'Josefin Sans', sans-serif;
    font-weight: 500;
    margin: 10px 0 0;
}


@media screen and (max-width:768px){
	.hamburger-area {
		top: 14px;
		right: 16px;
	}
    .drawer {
        padding: 70px 0 100px;
        justify-content: flex-start;
    }
    .drawer-logo {
        margin-bottom: 36px;
    }
    .drawer-logo a {
        width: 220px;
    }
    .drawer-main {
        display: block;
    }
    .drawer-menu {
        display: block;
    }
    .drawer-column {
        flex-basis: 100%;
        margin-bottom: 8px;
    }
    .drawer-menu-section {
        margin-bottom: 28px;
    }
    .drawer-menu-title {
        font-size: 20px;
        margin-bottom: 14px;
    }
    .drawer-menu-section ul li:not(:last-of-type) {
        margin-bottom: 12px;
    }
    .drawer-cta {
        flex-basis: 100%;
        margin-top: 24px;
    }
    .drawer-cta > a {
        padding: 12px 5px;
        font-size: 14px;
    }
    .drawer-sns-area {
        justify-content: center;
        margin-top: 20px;
    }
    .drawer-info {
        margin-top: 28px;
    }
    .drawer-info a.flex {
        display: flex !important;
        align-items: center;
        text-align: center;
        gap: 10px;
    }
    .d-tel {
        width: 48px;
    }
    .d-tel-text {
        font-size: 32px;
        margin: 10px 0 5px;
    }
}

/**********************************************************************/
/***************************  フロントページ  ***************************/
/**********************************************************************/
.hero-slider{
    position: relative;
    padding: 0;
}
.hero-slider .swiper-img {
    position: relative;
}

/* ===== トップスライダー ===== */
.front-swiper { height: 85vh; }
.front-swiper .swiper-slide,
.front-swiper .swiper-img { height: 100%; }
.front-swiper .swiper-img img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
}
/* ズームは .swiper-img に当てる。prev/duplicate-active も対象に含める */
@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); } /* 拡大率はお好みで 1.2〜1.3 */
}
/* ページネーションの位置調整（任意） */
.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;
    text-align: center;
    text-shadow: 0 2px 4px rgba(0,0,0,0.8);
}
.fv-title{
    margin-bottom: 50px;
    color: #fff;
}
.fv-title1{
    font-size: 40px;
}
.fv-title2{
    font-size: 52px;
    display: block;
    line-height: 1.2;
    margin-bottom: 20px;
}
.fv-subtitle{
    display: block;
    font-size: 24px;
    font-weight: 400;
    margin-bottom: 0;
    line-height: 1.6;
}
.hero-slider-text p{
    font-size: 20px;
    line-height: 2;
    color: #fff;
}
.f-top-nav{
    margin-top: 60px;
}
.f-top-nav li{
    text-align: center;
    flex-basis: 23%;
    color: #333;
}
.f-top-nav li a{
    display: block;
    padding: 5px;
    border: 1px solid;
    width: 100%;
    transition: all 0.3s ease;
}
.f-top-nav li a:hover{
    transform: translateY(-5px);
    color: #fff;
    border-color: var(--key);
    background: var(--key);
}
.f-top-nav li small{
    display: block;
}

.f-news-event-main{
    background-image: url("../img/front/news-bg.webp");
    background-position: center;
    background-size: cover;
    padding: 60px 0;
    position: relative;
}
.f-news-event-main::before{
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(255,255,255,0.7);    
}
.f-event{
    margin-bottom: 40px;
}
.f-event-item{
    flex-basis: 31%;
}
.f-event-status{
    width: 100%;
    display: block;
    text-align: center;
    color: #fff;
    padding: 5px;
    font-size: 18px;
    letter-spacing: 3px;
}
.f-event-img img{
    aspect-ratio: 7/4;
    object-fit: cover;
}
.closed .f-event-img{
    position: relative;
}
.closed .f-event-img::after{
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.6);
}
.open .f-event-status{
    background: var(--accent);
}
.closed .f-event-status{
    background: #777;
}
.f-event .btn-line{
    background: #fff;
}
.f-news{
    position: relative;
    background: rgba(255,255,255,0.9);
    padding: 40px;
}
.f-news-item{
    border-bottom: 1px dotted #999;
    padding-bottom: 10px;
    margin-bottom: 15px;
}
.f-news-item:last-of-type{
    margin-bottom: 25px;
}
.f-news-item a{
    align-items: center;
}
.f-news-date{
    font-size: 14px;
    letter-spacing: 1px;
    color: #777;
    flex-basis: 110px;
}
.f-news-tag{
    display: inline-block;
    flex-basis: 110px;
    padding: 5px 12px;
    font-size: 12px;
    line-height: 1.4;
    text-align: center;
    color: #fff;
    background: #999;
    margin-right: 30px;
}
/* イベント */
.f-news-tag--event{
    background: #8c8c8c;
}
/* ニュース */
.f-news-tag--news{
    background: #2f6f9f;
}
/* ブログ */
.f-news-tag--blog{
    background: #6b8f71;
}
/* 施工事例 */
.f-news-tag--works{
    background: #b08a5b;
}
.f-news-title{
    min-width: 0;
    flex: 1;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.f-concept-info{
    flex-basis: 50%;
    background: #f1f1ea;
    padding: 100px 5%;
    text-align: center;
}
.f-concept-subtitle{
    font-size: 24px;
    margin-bottom: 20px;
    font-family: "Noto Serif JP", serif;
    letter-spacing: 5px;
}
.f-concept-img{
    width: 50%;
    min-height: 620px;

    background-image: url("../img/front/f-concept2.webp");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed;
}
.f-our-values-title{
    font-size: 32px;
    margin-bottom: 50px;
    letter-spacing: 5px;
    position: relative;
}
.f-our-values-title::after{
    content: "";
    position: absolute;
    bottom: -10px;
    left: 0;
    width: 100px;
    height: 3px;
    background: var(--accent);
}
.f-our-value{
    margin-bottom: 50px;
}
.f-our-value-info{
    align-items: center;
    margin-bottom: 50px;
}
.f-our-value-info h3{
    font-size: 30px;
    line-height: 1.3;
    flex-basis: 380px;
}
.f-our-value-info h3 span{
    display: flex;
    align-items: center;
    gap: 20px;
}
.f-our-value-info .num{
    font-size: 50px;
    letter-spacing: 5px;
    font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
    color: #aaa;
}
.f-our-value-info h3 small{
    font-size: 14px;
    color: #999;
    display: block;
}
.f-our-value-info-r{
    flex-basis: calc(100% - 420px);
}
.f-our-value-info-r h4{
    font-size: 23px;
    margin-bottom: 20px;
    color: var(--key);
    font-weight: 600;
}
.f-our-value-imgs img{
    width: 49%;
    aspect-ratio: 3/2;
    object-fit: cover;
}
.f-lineup{
    background: #f1f1ea;
}
.f-lineup-items{
    margin-bottom: 80px;
}
.f-lineup-item{
    flex-basis: 32%;
}
.f-lineup-item a{
    border-radius: 5px;
    padding: 30px;
    background: #fff;
    display: flex;
    flex-direction: column;
    height: 100%;
}
.f-lineup-item h3{
    font-size: 28px;
    text-align: center;
    margin-bottom: 15px;
}
.f-lineup-item h3 span:not(.lineup-cate){
    display: block;
    font-size: 16px;
    position: relative;
    color: #777;
    margin-top: 18px;
    line-height: 1.8;
}
.f-lineup-item h3 span:not(.lineup-cate)::after{
    content: "";
    position: absolute;
    top: -10px;
    left: 50%;
    transform: translateX(-50%);
    height: 2px;
    width: 50px;
    background: var(--accent);
}
.f-lineup-item h3 .lineup-cate{
    margin-top: 12px;
    font-size: 16px;
    padding: 4px 25px;
}
.f-lineup-item p{
    padding: 0 2%;
    line-height: 1.7;
    margin-bottom: 15px;
}
.f-lineup-item a>div{
    margin-top: auto;
}
.f-lineup .bunner a{
    box-shadow: 3px 3px 5px rgba(0,0,0,0.5);
    display: block;
}
.f-lineup .bunner{
    margin-top: 80px;
}
.f-works{
    background: #f3f4f5;
}
.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-qa{
    background: #f1f1ea;
}
.faq-item{
    border-bottom: 1px solid #ddd;
}

/* 質問 */
.faq-question{
    position: relative;

    width: 100%;
    padding: 24px 56px 24px 0;

    display: flex;
    align-items: center;
    gap: 18px;

    background: none;
    border: none;
    cursor: pointer;

    text-align: left;
}

/* Q A */
.faq-q,
.faq-a{
    width: 34px;
    height: 34px;

    flex-shrink: 0;

    border-radius: 50%;

    display: flex;
    align-items: center;
    justify-content: center;

    background: var(--key);
    color: #fff;

    font-size: 16px;
}

.faq-a{
    background: var(--accent);
}
/* テキスト */
.faq-question-text{
    font-size: 16px;
    line-height: 1.8;
}

/* + */
.faq-question::before,
.faq-question::after{
    content: "";
    position: absolute;
    right: 18px;
    top: 50%;

    width: 18px;
    height: 1px;

    background: #222;

    transition: .3s;
}

.faq-question::after{
    transform: rotate(90deg);
}

.faq-item.active .faq-question::after{
    transform: rotate(0);
}

/* 開閉 */
.faq-answer-wrap{
    max-height: 0;
    overflow: hidden;

    transition: max-height .35s ease;
}

.faq-answer{
    display: flex;
    gap: 18px;

    padding: 0 56px 28px 0;
}
.faq-answer p{
    margin: 0;
    line-height: 1.9;
}
.f-blog-items{
    gap:2%;
    margin-bottom: 80px;
}
.f-blog-item{
    flex-basis: 23.5%;
}
.f-blog-img img{
    aspect-ratio:3/2;
    object-fit: cover;
}

@media screen and (max-width:768px){
    .front-swiper {
        height: 70vh;
        min-height: 400px;
        max-height: 560px;
    }
    .hero-slider-text {
        padding: 0 5%;
    }
    .fv-title {
        margin-bottom: 24px;
    }
    .fv-title1 {
        font-size: 20px;
        display: block;
    }
    .fv-title2 {
        font-size: 26px;
        margin-bottom: 12px;
    }
    .fv-subtitle {
        font-size: 16px;
    }
    .hero-slider-text p {
        font-size: 13px;
        line-height: 1.9;
        letter-spacing: 1px;
    }
    .f-top-nav {
        margin-top: 24px;
    }
    .f-top-nav ul {
        display: flex !important;
        flex-wrap: wrap;
        gap: 8px;
    }
    .f-top-nav li {
        flex-basis: calc(50% - 4px);
    }
    .f-top-nav li a {
        font-size: 13px;
        padding: 10px 4px;
    }
    .f-top-nav li small {
        font-size: 10px;
    }
    .f-news-event-main {
        padding: 36px 0;
    }
    .f-event {
        margin-bottom: 28px;
    }
    .f-event-item {
        margin-bottom: 20px;
    }
    .f-event-status {
        font-size: 14px;
        letter-spacing: 2px;
    }
    .f-news {
        padding: 24px 16px;
    }
    .f-news-item a.flex {
        display: flex !important;
        flex-wrap: wrap;
        align-items: center;
        gap: 6px 10px;
    }
    .f-news-date {
        flex-basis: auto;
        font-size: 12px;
    }
    .f-news-tag {
        flex-basis: auto;
        margin-right: 0;
        font-size: 11px;
        padding: 4px 10px;
    }
    .f-news-title {
        flex-basis: 100%;
        white-space: normal;
        text-overflow: unset;
        overflow: visible;
        font-size: 14px;
        line-height: 1.6;
    }
    .f-concept-flex{
        flex-direction: column;
    }
    .f-concept-info,
    .f-concept-img{
        width: 100%;
    }
    .f-concept-info {
        padding: 50px 5%;
    }
    .f-concept-subtitle {
        font-size: 18px;
        letter-spacing: 2px;
        margin-bottom: 16px;
    }
    .f-concept-img{
        background-image: url("../img/front/f-concept2.webp");
        min-height: 280px;
        background-attachment: scroll;
    }
    .f-our-values-title {
        font-size: 22px;
        margin-bottom: 32px;
        letter-spacing: 2px;
        text-align: center;
    }
    .f-our-values-title::after {
        left: 50%;
        width: 50px;
        height: 2px;
        transform: translateX(-50%);
    }
    .f-our-value {
        margin-bottom: 36px;
    }
    .f-our-value-info {
        margin-bottom: 20px;
    }
    .f-our-value-info h3 {
        font-size: 20px;
        margin-bottom: 20px;
        text-align: center;
    }
    .f-our-value-info h3 span {
        flex-wrap: wrap;
        gap: 10px;
        justify-content: center;
    }
    .f-our-value-info .num {
        font-size: 32px;
    }
    .f-our-value-info h3 small {
        font-size: 12px;
    }
    .f-our-value-info-r {
        flex-basis: 100%;
    }
    .f-our-value-info-r h4 {
        font-size: 17px;
        text-align: center;
    }
    .f-our-value-img {
        margin-top: 8px;
    }
    .f-lineup-items {
        margin-bottom: 40px;
    }
    .f-lineup-item {
        margin-bottom: 20px;
        background: #fff;
    }
    .f-lineup-item a {
        padding: 24px 18px;
        background: none;
    }
    .f-lineup-item h3 {
        font-size: 22px;
    }
    .f-lineup-item h3 span:not(.lineup-cate) {
        font-size: 14px;
        margin-top: 12px;
    }
    .f-lineup .bunner {
        margin-top: 40px;
        width: 80%;
    }
    .works-card {
        width: 260px;
    }
    .works-card img {
        height: 180px;
        border-radius: 12px;
    }
    .works-card h3 {
        font-size: 15px;
    }
    .works-marquee-track {
        gap: 16px;
        margin-bottom: 40px;
    }
    .f-blog .sec-title p{
        text-align: left;
    }
    .f-blog-items {
        display: flex !important;
        flex-direction: column;
        gap: 16px;
        margin-bottom: 40px;
    }
    .f-blog-item {
        flex-basis: 100%;
    }
    .f-blog-link.flex-sb {
        display: flex !important;
        flex-direction: column;
    }
    .f-blog-img {
        margin-bottom: 12px;
    }
    .f-blog-title {
        font-size: 15px;
    }
    .f-qa-items.width-m{
        width: 100%;
    }
    .faq-question {
        padding: 16px 36px 16px 0;
        gap: 10px;
    }
    .faq-q,
    .faq-a {
        width: 28px;
        height: 28px;
        font-size: 14px;
    }
    .faq-question-text {
        font-size: 14px;
        line-height: 1.7;
    }
    .faq-answer {
        padding: 0 16px 20px 0;
        gap: 10px;
    }
}

/**********************************************************************/
/***************************  contact-link  ***************************/
/**********************************************************************/
.contact-area{
    gap: 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: 4px;
    }
    .contact-area.flex {
        display: flex !important;
        flex-direction: column;
    }
}

/**********************************************************************/
/******************************  footer  ******************************/
/**********************************************************************/
.sec-com-in{
    background-image: url("../img/sec-com.webp");
    position: relative;
    background-position: center;
    background-size: cover;
    padding: 80px 0;
    margin-bottom: 5px;
}
.sec-com-in::before{
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(255,255,255,0.7);
}
.sec-com-info{
    position: relative;
    text-align: center;
}
.sec-com-in .drawer-logo {
    margin-bottom: 0px;
}
.com-logo{
    width: 220px;
    margin: 0 auto 40px;
}
.com-info{
    margin-bottom: 40px;
}
.sec-company-sns-area h2{
    font-size: 30px;
    margin-bottom: 30px;
}
.sns-items{
    justify-content: center;
    gap: 5%;
}
.sns-items a{
    flex-basis: 50px;
}

.map-area{
    height: 400px;
}
.footer-nav {
    padding-bottom: 80px;
}
.copyright {
    background: var(--bg1);
    padding: 10px;
    text-align: center;
    font-size: 13px;
}
.bottom-nav{
    position: fixed;
    bottom: -100px;
    left: 0;
    width: 100%;
    justify-content: center;
    background: var(--bg1);
    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(--sub);
	border: 1px solid var(--sub);
    color: #fff;
}
.bottom-mail{
	background: var(--key);
	border: 1px solid var(--key);
    color: #fff;
}
.bottom-catalog{
	background: #f9f8f4;
	border: 1px solid #333;
}
.bottom-nav a img{
	width: 25px;
}
.jimo{
    margin-top: auto;
}

@media screen and (max-width:768px){
    .sec-com-in {
        padding: 50px 0;
    }
    .com-logo {
        width: 180px;
        margin-bottom: 25px;
    }
    .com-info {
        margin-bottom: 28px;
    }
    .sec-company-sns-area h2 {
        font-size: 22px;
        margin-bottom: 20px;
    }
    .sns-items {
        display: flex !important;
        justify-content: center;
    }
    .footer-nav {
        padding-bottom: 40px;
    }
    .footer-nav .drawer-main {
        display: block;
    }
    .footer-nav .drawer-cta {
        margin-top: 20px;
    }
    .map-area {
        height: 260px;
    }
    .bottom-nav {
        padding: 8px 10px;
        padding-bottom: max(8px, env(safe-area-inset-bottom));
        gap: 6px;
    }
    .bottom-nav a {
        flex: 1;
        flex-direction: column;
        justify-content: center;
        gap: 4px;
        padding: 12px 6px;
        font-size: 11px;
        border-radius: 8px;
        text-align: center;
    }
    .bottom-nav a img {
        width: 20px;
    }
    .jimo {
        margin-top: 30px;
        width: 240px;
    }
}



/**********************************************************************/
/*****************************  page共通  *****************************/
/**********************************************************************/
.page-header{
    padding-top: 60px;
}
.page-header-img{
    margin-left: 10%;
    padding: 0 0 50px 50px;
    position: relative;
}
.page-header-img img{
    max-height: 70vh;
}
.header-text{
    position: absolute;
    left: 0;
    bottom: 0;
    background: #fff;
    font-size: 70px;
    padding: 30px 50px 0 0;
}
.header-text span{
    font-size: 16px;
}
.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-top .sec-title{
    margin-bottom: 0;
}

.page-foot{
    text-align: center;
}
.page-foot.bg1{
    background: var(--bg1);
    margin-bottom: 80px;
}
.page-foot .line {
    width: 1px;
    height: 100px;
    background: #333;
    margin: 0 auto 50px;
}
.page-foot h2 {
    font-size: 28px;
    margin-bottom: 50px;
    color: var(--key);
    font-weight: 600;
}
.page-foot p {
    font-size: 18px;
    margin-bottom: 1.2rem;
}
.page-foot .link-btn {
    margin-top: 60px;
}


.page-guide {
    padding: 40px 0;
    background: #f7f2ea;
}

.page-guide-inner {
    background: #fff;
    border: 1px solid #e6ded2;
    padding: 30px;
}

.page-guide-head {
    text-align: center;
    font-size: 20px;
    margin-bottom: 10px;
}
.page-guide-list {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.page-guide-list li {
    position: relative;
    flex: 1;
}

.page-guide-list li:not(:last-child)::after {
    content: "›";
    position: absolute;
    top: 50%;
    right: -14px;
    transform: translateY(-50%);
    color: #9c8f80;
    font-size: 2rem;
}

.page-guide-list li a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 58px;
    padding: 12px 14px;
    border-radius: 999px;
    color: #333;
    text-decoration: none;
    font-weight: 500;
    text-align: center;
    line-height: 1.5;
}
.page-guide-list li p{
    font-size: 15px;
    padding-left: 5px;
}
.page-guide-list li.is-current a {
    background: #e3f1eb;
    color: #00856b;
}





@media screen and (max-width:768px){
	.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 {
        padding-top: 52px;
    }
    .page-header-img {
        margin-left: 0;
        padding: 0 0 24px 5%;
    }
    .page-header-img img {
        max-height: 42vh;
        width: 92%;
    }
    .header-text {
        font-size: 24px;
        padding: 10px 20px 0 20px;
        letter-spacing: 2px;
    }
    .header-text span {
        font-size: 12px;
        display: block;
        margin-top: 3px;
        letter-spacing: 1px;
    }
    .page-guide {
        padding: 24px 0;
    }
    .page-guide-inner {
        padding: 20px 16px;
    }
    .page-guide-head {
        font-size: 16px;
    }
    .page-guide-list {
        flex-direction: column;
        gap: 8px;
    }
    .page-guide-list li {
        width: 100%;
    }
    .page-guide-list li:not(:last-child)::after {
        display: none;
    }
    .page-guide-list li a {
        min-height: 46px;
        font-size: 13px;
        padding: 10px 12px;
    }
    .page-guide-list li p {
        font-size: 13px;
    }
    .page-foot .line {
        height: 60px;
        margin-bottom: 30px;
    }
    .page-foot h2 {
        font-size: 20px;
        margin-bottom: 24px;
    }
    .page-foot p {
        font-size: 14px;
        line-height: 2;
    }
    .page-foot .link-btn {
        margin-top: 36px;
    }
    .page-foot.bg1 {
        margin-bottom: 40px;
    }
}


/**********************************************************************/
/*****************************  コンセプト  *****************************/
/**********************************************************************/
section.con-top{
    padding-bottom: 0;
}
section.con1{
    padding-top: 0;
}
.con1-img{
    height: 380px;
    background-image: url("../img/concept/con1.webp");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed;
    margin-bottom: 80px;
}
.con1-flex {
    align-items: center;
}
.con1-text{
    flex-basis: 56%;
    max-width: 620px;
}
.con1-text p {
    line-height: 2.1;
    margin-bottom: 1.2em;
}
.con1-text p:last-child {
    margin-bottom: 0;
}
.con1-text strong {
    font-weight: 700;
    background: linear-gradient(
        transparent 68%,
        rgba(196, 137, 83, 0.22) 68%
    );
}
.con1-ceo{
    flex-basis: 40%;
}

.con2{
    background: var(--bg1);
}
.con2-l{
    flex-basis: 130px;
    justify-content: center;
    align-items: flex-start;
    gap: 15px;
    font-size: 18px;
}
.con2-l p{
    writing-mode: vertical-rl;
    background: #fff;
    padding: 15px 2px;
}
.con2-r{
    flex-basis: calc(100% - 170px);
}
.con2-r h2{
    font-size: 28px;
    margin-bottom: 40px;
    line-height: 1.6;
}
.con2-r h2 small{
    font-size: 0.85rem;
    letter-spacing: 1px;
    color: #aaa;
    display: block;
}
.con2-item:not(:last-of-type){
    margin-bottom: 20px;
    padding-bottom: 20px;
    border-bottom: 1px solid #ccc;
}
.con2-item h3{
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 30px;
    margin-bottom: 30px;
}
.con2-item h3 .num{
    width: 33px;
    height: 33px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    letter-spacing: 0;
    color: #fff;
    font-size: 22px;
}
.con2-item:nth-of-type(odd) h3 .num{
    background: var(--accent);
}
.con2-item:nth-of-type(even) h3 .num{
    background: var(--key);
}

.con2-item p{
    line-height: 1.8;
}


@media screen and (max-width:768px){
    .con1-img {
        height: 200px;
        margin-bottom: 36px;
        background-attachment: scroll;
    }
    .con1-flex {
        display: flex;
        flex-direction: column;
        gap: 24px;
    }
    .con1-text,
    .con1-ceo {
        flex-basis: 100%;
        max-width: none;
    }
    .con2-l {
        display: none;
    }
    .con2-r {
        flex-basis: 100%;
    }
    .con2-r h2 {
        font-size: 20px;
        margin-bottom: 28px;
    }
    .con2-item h3 {
        font-size: 20px;
        margin-bottom: 16px;
        flex-wrap: wrap;
    }
    .con2-item h3 .num {
        width: 28px;
        height: 28px;
        font-size: 18px;
    }
    .con2-item p {
        line-height: 2;
    }
}


/**********************************************************************/
/*****************************  家づくりの流れ  *****************************/
/**********************************************************************/
.flow2{
    padding-top: 0;
}
.flow2-sticky{
    flex-basis: 180px;
}
.flow2-sticky p{
    position: sticky;
    top: 100px;
    writing-mode: vertical-rl;
    font-size: 38px;
    font-family: "Noto Serif JP", serif;    
}
.flow2-main{
    flex-basis: calc(100% - 220px);
}
.flow2-l{
    flex-basis: 58%;
}
.flow2-num{
    flex-basis: 60px;
    font-size: 50px;
    color: var(--key);
    display: flex;
    flex-direction: column;
    gap: 5px;
    align-items: center;
}
.flow2-num .line{
    height: 100%;
    width: 1px;
    background: #bbb;
}
.flow2-info{
    flex-basis:  calc(100% - 80px);
    padding: 12px 0 50px;
}
.flow2-info h3{
    font-size: 24px;
    margin-bottom: 20px;
}
.flow2-img{
    flex-basis: 38%;
    padding-bottom: 50px;
}


@media screen and (max-width:768px){
    .flow-page .flow1 {
        padding-bottom: 10px;
    }
    .flow-page .flow2 {
        padding-top: 30px;
        background: var(--bg1);
    }
    .flow-page .flow2-sticky {
        flex-basis: 100%;
        margin-bottom: 24px;
    }
    .flow-page .flow2-sticky p {
        position: static;
        writing-mode: unset;
        font-size: 17px;
        background: var(--key);
        color: #fff;
        font-weight: 600;
        line-height: 1.65;
        padding: 14px 16px;
        text-align: center;
        border-radius: 4px;
        letter-spacing: 1px;
    }
    .flow-page .flow2-main {
        flex-basis: 100%;
        display: flex;
        flex-direction: column;
        gap: 0;
    }
    .flow-page .flow2-item {
        position: relative;
        display: grid !important;
        grid-template-columns: 44px 1fr;
        grid-template-areas:
            "num title"
            "img img"
            "desc desc";
        column-gap: 12px;
        background: #fff;
        border-radius: 8px;
        box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
        padding: 18px 16px;
        margin-bottom: 28px;
        border: 1px solid rgba(0, 0, 0, 0.04);
    }
    .flow-page .flow2-item:last-child {
        margin-bottom: 0;
    }
    .flow-page .flow2-item:not(:last-child)::after {
        content: "";
        position: absolute;
        left: 50%;
        bottom: -20px;
        transform: translateX(-50%);
        width: 2px;
        height: 16px;
        background: var(--key);
        opacity: 0.35;
    }
    .flow-page .flow2-l {
        display: contents;
    }
    .flow-page .flow2-num {
        grid-area: num;
        flex-basis: auto;
        font-size: 26px;
        font-weight: 600;
        line-height: 1.2;
        align-self: start;
        padding-top: 2px;
    }
    .flow-page .flow2-num .line {
        display: none;
    }
    .flow-page .flow2-info {
        display: contents;
    }
    .flow-page .flow2-info h3 {
        grid-area: title;
        font-size: 17px;
        margin-bottom: 0;
        line-height: 1.5;
        font-weight: 600;
        letter-spacing: 1px;
        align-self: center;
    }
    .flow-page .flow2-info p {
        grid-area: desc;
        font-size: 14px;
        line-height: 1.85;
        letter-spacing: 0.5px;
        color: #555;
        margin-top: 14px;
    }
    .flow-page .flow2-img {
        grid-area: img;
        flex-basis: 100%;
        padding-bottom: 0;
        margin-top: 14px;
        border-radius: 6px;
        overflow: hidden;
    }
    .flow-page .page-foot.bg1 {
        margin-bottom: 40px;
    }
}


/**********************************************************************/
/*****************************  商品ページ  *****************************/
/**********************************************************************/
.royal .lineup-top{
    background: var(--bg2);
}
.lineup-top{
    text-align: center;
}
.lineup-top h2{
    font-size: 28px;
    margin-bottom: 50px;
}
.lineup-top p{
    font-size: 18px;
    line-height: 2.4;
}
section.line-concept, section.line-recommend, section.line-madori{
    padding-top: 0;
}
.line-bg-title{
    background-size: cover;
    background-position: center;
    padding: 50px 0;
    position: relative;
    color: #fff;
    text-shadow: 2px 2px 1px rgba(0,0,0,0.7);
    margin-bottom: 50px;
}
.royal .line-bg-title{
    background-image: url("../img/royal/madori1.webp");
}
.line-bg-title::before{
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.5);
    z-index: 0;
}
.line-bg-title>div{
    position: relative;
    z-index: 1;
}
.line-bg-title h2{
    border-left: 5px solid;
    margin-bottom: 40px;
    padding: 0 0 5px 15px;
    font-size: 34px;
    font-weight: bold;
}
.line-bg-title h2 span{
    display: block;
    font-size: 21px;
    font-weight: 500;
}
.line-con-item{
    margin-bottom: 70px;
}
.line-con-info{
    flex-basis: 48%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.line-con-head{
    align-items: center;
    margin-bottom: 20px;
    display: flex;
}
.line-con-head span{
    font-family: 'Josefin Sans', sans-serif;
    font-size: 55px;
    margin-right: 15px;
    transform: translateY(5px);
    font-weight: 600;
    font-style: italic;
}
.line-con-head p{
    font-size: 28px;
}
.line-con-info h3{
    font-size: 26px;
    margin-bottom: 20px;
    font-weight: 600;
}
.line-con-info>p{
    margin-bottom: 20px;
}
.link-btn4{
    text-align: right;
}
.link-btn4 a{
    border-bottom: 1px solid;
    padding: 0 5px 5px;
    transition: color 0.3s ease;
}
.link-btn4 a:hover{
    color: var(--key);
}

.line-con-img{
    flex-basis: 48%;
}
.line-con-img img{
    height: 100%;
    object-fit: cover;
}
.royal section.line-recommend{
    padding-bottom: 160px;
}
.line-recommend{
    background: var(--bg2);
}
.line-recommend-list{
    margin-top: 80px;
}
.line-recommend-item{
    flex-basis: 23%;
    background: #fff;
    padding: 30px 20px;
    box-shadow: 3px 3px 6px rgba(0,0,0,0.2);
}
.line-recommend-item div{
    width: 50%;
    max-width: 65px;
    margin: 0 auto 20px;
}
.line-recommend-item h3{
    font-size: 17px;
    margin-bottom: 15px;
    color: #4f6f55;
    font-weight: 700;
    text-align: center;
}
.line-recommend-item p{
    font-size: 15px;
    line-height: 1.7;
    color: #555;
}
section.line-price{
    padding: 0 0 160px;
}
.line-price-table-wrap{
    overflow: hidden;
}
.line-price-table-scroll{
    overflow: hidden;
}
.line-price-table{
    background: #fff;
    box-shadow: 0 10px 30px rgba(0,0,0,0.04);
    margin-bottom: 30px;
}
.line-price-table th{
    background: #3e342b;
    color: #fff;
    font-weight: 600;
    padding: 15px 24px;
}
.line-price-table td{
    padding: 10px 24px;
    vertical-align: middle;
}
.line-price-table tbody tr:nth-child(even) td{
    background: #faf8f4;
}
.line-price-table strong{
    font-size: 20px;
    color: #3e342b;
    letter-spacing: 0.05em;
}
.line-price-table td:nth-child(2){
    font-size: 22px;
    font-weight: 700;
    color: #b08968;
}
.line-price-table td:nth-child(3){
    line-height: 1.8;
}
.line-price-table td:nth-child(3) small{
    display: block;
    margin-top: 8px;
    color: #777;
    font-size: 13px;
}
.line-price-note p{
    margin-top: 20px;
}
.line-price-table-brand{
    padding: 14px 24px;
    text-align: center;
    border-radius: 4px 4px 0 0;
}
.line-price-table-title{
    font-size: 28px;
    font-weight: 500;
    color: #333;
    letter-spacing: 0.08em;
    font-family: "Noto Serif JP", serif;
}
.line-price-table-title span{
    font-size: 0.85em;
}
.line-price-table-detail.line-price-plan-prime th{
    background: #c9a0a8;
}
.line-price-table-detail.line-price-plan-smart th{
    background: #5a9a8a;
}
.line-price-table-detail.line-price-plan-enterprise th{
    background: #b5a050;
}
.line-price-table-detail{
    width: 100%;
    border-collapse: collapse;
}
.line-price-table-detail th,
.line-price-table-detail td{
    border: 1px solid #e5e0d8;
    text-align: center;
}
.line-price-table-detail thead th{
    font-size: 14px;
    padding: 12px 16px;
}
.line-price-table-detail tbody td{
    padding: 12px 14px;
    background: #fff;
}
.line-price-table-detail tbody tr:nth-child(even) td{
    background: #f7f5f1;
}
.line-price-table-detail .price-area-sqm{
    width: 14%;
    font-size: 15px;
    color: #555;
}
.line-price-table-detail .price-area-tsubo{
    width: 10%;
}
.line-price-table-detail .price-area-tsubo strong{
    font-size: 22px;
    color: #333;
    letter-spacing: 0.05em;
}
.line-price-table-detail .price-amount{
    width: 38%;
    text-align: right;
    padding-right: 20px;
    line-height: 1.5;
}
.line-price-table-detail .price-ex{
    display: block;
    font-size: 22px;
    font-weight: 700;
    color: #222;
    letter-spacing: 0.02em;
}
.line-price-table-detail .price-in{
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: #d64545;
}
.line-price-table-detail .price-yen{
    font-size: 0.72em;
    font-weight: 600;
    margin-left: 2px;
}
.line-madori{
    background: var(--bg1);
}
.plan-balloon{
    position: relative;
    max-width: 700px;
    width: 80%;
    margin: 0px auto 20px;
    padding: 25px;
    background: #fffdf8;
    border: 2px solid #b89b6d;
    border-radius: 36px;
    box-shadow: 10px 10px 0 #b89b6d;
    text-align: center;
    transform: translateY(-80px);
}
.plan-balloon::before{
    content: "";
    position: absolute;
    bottom: -49px;
    left: 50%;
    transform: translateX(-50%);
    width: 50px;
    height: 50px;
    background: #fffdf8;
    border-right: 10px solid #b89b6d;
    border-bottom: 3px solid #b89b6d;
    rotate: 50deg;
}
.plan-balloon span{
    position: relative;
    z-index: 2;
    font-size: 28px;
    line-height: 1.5;
    font-weight: 500;
    color: #3e342b;
    letter-spacing: 0.05em;
	font-family: "Noto Sans JP", sans-serif;    
}
.line-madori1{
    position: relative;
    margin-bottom: 150px;
}
.line-madori-a{
    position: absolute;
    top: 0;
    right: 0;
    width: clamp(170px, 14vw, 260px);
}
.line-madori1-img{
    flex-basis: 55%;
    position: relative;
    z-index: 1;
}
.line-madori1-info{
    flex-basis: 55%;
    margin-left: -10%;
    background: #fff;
    transform: translateY(60px);
    padding: 40px 5% 100px 13%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.line-madori1-info h3{
    font-size: 26px;
    font-weight: bold;
    margin-bottom: 30px;
}
.line-madori-img{
    position: relative;
    margin-bottom: 100px;
}
.line-madori-plan{
    background: rgba(255,255,255,0.5);
    padding: 0 40px 40px;
}
.line-madori-plan:not(:last-of-type) {
    margin-bottom: 60px;
}
.line-madori-plan-img{
    flex-basis: 48%;
}
.line-madori-plan-info{
    flex-basis: 48%;
}
.line-madori-plan-title{
    text-align: center;
    margin: 0px auto 10px;
}
.line-madori-plan-title h3{
    display: inline-block;
    background: var(--accent);
    color: #fff;
    padding: 10px 40px;
    border-radius: 40px;
    transform: translateY(-23px);
    font-weight: bold;
    font-size: 18px;
}
.line-madori-plan-info dl{
    border-bottom: 1px solid #aaa;
    padding: 0 10px 8px;
    margin-bottom: 8px;
    align-items: center;
}
.line-madori-plan-info dl:last-of-type{
    margin-bottom: 20px;
}
.line-madori-plan-info dt{
    flex-basis: 120px;
}
.line-madori-plan-info dd{
    flex-basis: calc(100% - 120px);
}
.line-madori-plan-info p{
    background: #fff;
    padding: 20px;
    font-size: 15px;
    line-height: 1.7;
    box-shadow: 3px 3px 5px rgba(0,0,0,0.05);
}
.line-madori-plan-info p strong{
    font-size: 16px;
    margin-bottom: 5px;
    display: block;
}


@media screen and (max-width:768px){
    .lineup-top h2,
    .lineup-title h2 {
        font-size: 18px;
        margin-bottom: 24px;
    }
    .lineup-top p,
    .lineup-title p {
        font-size: 14px;
        line-height: 2;
    }
    .line-bg-title {
        padding: 36px 0;
        margin-bottom: 28px;
    }
    .line-bg-title h2 {
        font-size: 22px;
        margin-bottom: 16px;
        padding-left: 12px;
    }
    .line-bg-title h2 span {
        font-size: 14px;
        margin-top: 6px;
    }
    .line-bg-title p {
        font-size: 14px;
        line-height: 2;
    }
    .line-con-item {
        margin-bottom: 36px;
    }
    .line-con-item.flex-sb {
        display: flex !important;
        flex-direction: column;
    }
    .line-con-info,
    .line-con-img {
        flex-basis: 100%;
    }
    .line-con-img {
        order: -1;
        margin-bottom: 16px;
    }
    .line-con-head span {
        font-size: 36px;
    }
    .line-con-head p {
        font-size: 18px;
    }
    .line-con-info h3 {
        font-size: 18px;
    }
    .line-recommend-list {
        gap: 16px;
    }
    .line-recommend-item {
        margin-bottom: 20px;
        padding: 24px 20px;
    }
    .line-recommend-item h3 {
        font-size: 16px;
    }
    section.line-price {
        padding-bottom: 80px;
    }
    .line-price-table-scroll {
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
    }
    .line-price-table {
        min-width: 520px;
    }
    .line-price-table-detail{
        min-width: 640px;
    }
    .line-price-table-detail .price-ex{
        font-size: 17px;
    }
    .line-price-table-detail .price-in{
        font-size: 11px;
    }
    .line-price-table-title{
        font-size: 22px;
    }
    .line-price-table th,
    .line-price-table td {
        font-size: 15px;
        padding: 10px 16px;
    }
    .line-price-table th,
    .line-price-table td:first-child,
    .line-price-table td:nth-child(2) {
        white-space: nowrap;
    }
    .line-price-table strong,
    .line-price-table td:nth-child(2) {
        font-size: 16px;
    }
    .line-price-table td:nth-child(3) small {
        font-size: 12px;
    }
    .plan-balloon {
        width: 92%;
        padding: 18px 16px;
        transform: translateY(-40px);
        border-radius: 24px;
    }
    .plan-balloon span {
        font-size: 16px;
    }
    .line-madori1.flex {
        display: flex !important;
        flex-direction: column;
    }
    .line-madori1-img,
    .line-madori1-info {
        flex-basis: 100%;
    }
    .line-madori1-info {
        margin-left: 0;
        transform: none;
        padding: 28px 5%;
    }
    .line-madori1-info h3 {
        font-size: 20px;
        margin-bottom: 16px;
    }
    .line-madori-a {
        position: static;
        width: 100px;
        margin: 0 auto 12px;
        display: block;
    }
    .line-madori-img {
        margin-bottom: 60px;
    }
    .line-madori-plan {
        padding: 0 12px 24px;
    }
    .line-madori-plan:not(:last-of-type) {
        margin-bottom: 50px;
    }
    .line-madori-plan-title h3 {
        font-size: 16px;
    }
    .line-madori-flex.flex-sb {
        display: flex !important;
        flex-direction: column;
    }
    .line-madori-plan-img,
    .line-madori-plan-info {
        flex-basis: 100%;
    }
    .line-madori-plan-img {
        margin-bottom: 16px;
    }
    .line-madori-plan-info p {
        font-size: 14px;
    }
    .line-madori-plan-info dl.flex-al {
        display: flex !important;
        flex-wrap: wrap;
        gap: 4px;
    }
    .line-madori-plan-info dt {
        flex-basis: 100%;
    }
    .line-madori-plan-info dd {
        flex-basis: 100%;
    }
}

/**********************************************************************/
/*****************************  Primeページ  *****************************/
/**********************************************************************/
.prime-hero{
    position: relative;
    padding: 0;
}
.prime-hero .prime-swiper{
    z-index: 0;
}
.prime-hero-text{
    z-index: 2;
    pointer-events: none;
}
.prime-swiper{
    position: relative;
    overflow: hidden;
    height: 75vh;
    min-height: 480px;
    max-height: 800px;
}
.prime-swiper .swiper-slide,
.prime-swiper .swiper-img{
    height: 100%;
}
.prime-swiper .swiper-img img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.prime-swiper .swiper-slide-active .swiper-img,
.prime-swiper .swiper-slide-duplicate-active .swiper-img,
.prime-swiper .swiper-slide-prev .swiper-img{
    animation: zoomUp 9s linear both;
}
.prime-swiper-pagination{
    bottom: 24px;
}
.prime-hero-text .prime-hero-label{
    font-family: 'Josefin Sans', sans-serif;
    font-size: 14px;
    letter-spacing: 0.3em;
    margin-bottom: 12px;
    color: #fff;
}
.prime-hero-text .fv-title1{
    font-family: 'Cormorant Garamond', serif;
    font-size: 72px;
    font-weight: 700;
    letter-spacing: 0.08em;
    display: block;
    line-height: 1;
}
.prime-hero-text .fv-title2{
    font-size: 22px;
    font-weight: 500;
    letter-spacing: 0.4em;
    margin-top: 8px;
}
.prime-intro{
    background: var(--bg2);
}
.prime-intro-img{
    flex-basis: 50%;
}
.prime-intro-info{
    flex-basis: 47%;
}
.prime-badges{
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 28px;
    list-style: none;
    padding: 0;
}
.prime-badges li span{
    display: inline-block;
    background: var(--key);
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.08em;
    padding: 8px 16px;
    border-radius: 4px;
}
.prime-intro-info h2{
    font-size: 28px;
    font-weight: 600;
    margin-bottom: 20px;
    line-height: 1.6;
}
.prime-intro-lead{
    font-size: 18px;
    font-weight: 600;
    color: var(--key);
    margin-bottom: 20px;
    line-height: 1.8;
}
.prime-intro-info > p{
    margin-bottom: 1.2em;
}
.prime-features{
    background: var(--bg1);
}
.prime-plan-area{
    background: var(--bg1);
}
.prime-spec{
    padding: 80px 0 100px;
}
.line-spec-title{
    text-align: center;
    font-size: 28px;
    font-weight: 500;
    color: #3e342b;
    letter-spacing: 0.08em;
    margin-bottom: 40px;
    font-family: "Noto Serif JP", serif;
}
.line-spec-title span{
    font-size: 0.85em;
}
.line-spec-table-wrap{
    overflow: hidden;
}
.line-spec-table-scroll{
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.line-spec-table{
    width: 100%;
    min-width: 720px;
    background: #fff;
    border-collapse: collapse;
    box-shadow: 0 10px 30px rgba(0,0,0,0.04);
    font-size: 15px;
    line-height: 1.6;
}
.line-spec-table th,
.line-spec-table td{
    border: 1px solid #d8d0c4;
    padding: 10px 12px;
    vertical-align: middle;
    text-align: center;
}
.line-spec-table thead th{
    color: #fff;
    font-weight: 600;
    font-size: 15px;
    padding: 14px 10px;
}
.line-spec-table thead th small{
    display: block;
    font-size: 11px;
    font-weight: 500;
    margin-top: 2px;
}
.line-spec-table .spec-col-item{
    background: #3e342b;
    width: 22%;
}
.line-spec-table .spec-col-prime{
    background: #c9a0a8;
    width: 26%;
}
.line-spec-table .spec-col-smart{
    background: #5a9a8a;
    width: 26%;
}
.line-spec-table .spec-col-enterprise{
    background: #b5a050;
    width: 26%;
}
.line-spec-table tbody th[scope="row"]{
    background: #faf8f4;
    color: #3e342b;
    font-weight: 500;
    text-align: left;
    font-size: 16px;
}
.line-spec-table tbody th[scope="row"] small{
    display: block;
    font-size: 10px;
    color: #777;
    font-weight: 400;
}
.line-spec-table tr.spec-category th{
    background: #ebe6dc;
    color: #3e342b;
    font-weight: 700;
    text-align: left;
    padding: 8px 20px;
    font-size: 16px;
}
.line-spec-table td{
    color: #333;
}
.line-spec-table td.spec-span{
    text-align: center;
}
.line-spec-table td.spec-cell-mark{
    text-align: center;
    vertical-align: middle;
}
.spec-mark{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #333;
    vertical-align: middle;
}
.spec-mark-svg{
    display: block;
    width: 18px;
    height: 18px;
}
.line-spec-table td.spec-na{
    position: relative;
    background: #f5f3ef;
    padding: 0;
}
.line-spec-table td.spec-na::before{
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top right, transparent calc(50% - 0.5px), #ccc calc(50% - 0.5px), #ccc calc(50% + 0.5px), transparent calc(50% + 0.5px));
}
.prime-price{
    background: var(--bg2);
    padding-top: 0;
}
.prime .prime-price-title{
    background-image: url("../img/prime/p1.webp");
    background-position: center center;
}
.lineup-page.smart .prime-price-title{
    background-image: url("../img/smart/s1.webp");
}
.lineup-page.enterprise .prime-price-title{
    background-image: url("../img/enterprise/e1.webp");
}
.lineup-page.royal .prime-price-title{
    background-image: url("../img/royal/ro-title-bg.webp");
}
.prime .line-price-table:not(.line-price-table-detail) th{
    background: #2d5a3d;
}
.prime .line-price-table:not(.line-price-table-detail) strong{
    color: #2d5a3d;
}
.prime .line-price-table:not(.line-price-table-detail) td:nth-child(2){
    color: var(--key);
}
.prime-madori{
    padding-top: 0;
}
.prime .plan-balloon{
    border-color: var(--key);
    box-shadow: 10px 10px 0 var(--key);
}
.prime .plan-balloon::before{
    border-right-color: var(--key);
    border-bottom-color: var(--key);
}
.prime .plan-balloon span{
    color: #2c3e30;
}
.prime .line-madori-plan-title h3{
    background: var(--key);
}
.prime .line-madori-img.prime-madori-photos{
    max-width: 1600px;
    width: 94%;
    margin: 120px auto 60px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    padding: 40px 0;
}
.prime-madori-photo{
    background: #fff;
    padding: 5px;
    box-shadow: 0 6px 18px rgba(0,0,0,0.09);
    border-radius: 3px;
    overflow: hidden;
    transition: box-shadow 0.3s ease;
}
.prime-madori-photo img{
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    display: block;
}
.prime-madori-photo:hover{
    box-shadow: 0 10px 24px rgba(0,0,0,0.13);
}
.line-madori-cta{
    margin: auto;
}
.prime-features .sec-title{
    margin-bottom: 50px;
}
.prime .line-con-head span{
    color: var(--key);
}
.prime .line-con-head p{
    color: #3e4a3f;
}
.prime .line-con-info h3{
    color: #2c3e30;
}

@media screen and (max-width: 768px){
    .prime-swiper{
        height: 55vh;
        min-height: 360px;
    }
    .prime-hero-text .fv-title1{
        font-size: 48px;
    }
    .prime-hero-text .fv-title2{
        font-size: 16px;
    }
    .prime-intro-inner{
        flex-direction: column;
    }
    .prime-intro-img,
    .prime-intro-info{
        flex-basis: 100%;
    }
    .prime-intro-info h2{
        font-size: 22px;
    }
    .prime-intro-lead{
        font-size: 16px;
    }
    .prime .line-madori-img.prime-madori-photos{
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
        padding: 20px 0;
    }
    .prime .line-madori1{
        flex-direction: column;
    }
    .prime .line-madori1-img,
    .prime .line-madori1-info{
        flex-basis: 100%;
        margin-left: 0;
        transform: none;
        padding: 30px 5%;
    }
    .prime .line-con-item{
        display: flex;
        flex-direction: column;
        margin-bottom: 50px;
    }
    .prime .line-con-info,
    .prime .line-con-img{
        flex-basis: 100%;
    }
    .prime .line-con-img{
        order: -1;
        margin-bottom: 20px;
    }
    .lineup-page.prime .line-madori-img.prime-madori-photos {
        grid-template-columns: repeat(2, 1fr);
        gap: 8px;
        padding: 16px 0;
        margin: 60px auto;
    }
    .line-madori-cta{
        margin: 40px auto 60px;
    }
    .prime-spec{
        padding: 50px 0 60px;
    }
    .line-spec-title{
        font-size: 22px;
        margin-bottom: 24px;
    }
    .line-spec-table{
        font-size: 11px;
    }
    .line-spec-table th,
    .line-spec-table td{
        padding: 8px 6px;
    }
    .line-spec-table thead th{
        font-size: 13px;
    }
}


/**********************************************************************/
/*****************************  間取りページ  *****************************/
/**********************************************************************/
.madori-page .madori-top{
    padding-top: 40px;
}
.madori-page .madori-top .sec-title p{
    text-align: center;
    line-height: 2;
}
.madori-section{
    background: var(--bg1);
    padding-bottom: 120px;
    margin-top: 80px;
}
.madori-balloon{
    position: relative;
    max-width: 700px;
    width: 80%;
    margin: -80px auto 20px;
    padding: 25px;
    background: #fffdf8;
    border: 2px solid var(--key);
    border-radius: 36px;
    box-shadow: 10px 10px 0 var(--key);
    text-align: center;
    transform: translateY(-80px);
}
.madori-balloon::before{
    content: "";
    position: absolute;
    bottom: -49px;
    left: 50%;
    transform: translateX(-50%);
    width: 50px;
    height: 50px;
    background: #fffdf8;
    border-right: 10px solid var(--key);
    border-bottom: 3px solid var(--key);
    rotate: 50deg;
}
.madori-balloon span{
    position: relative;
    z-index: 2;
    font-size: 28px;
    line-height: 1.5;
    font-weight: 500;
    color: #2c3e30;
    letter-spacing: 0.05em;
    font-family: "Noto Sans JP", sans-serif;
}
.madori-intro{
    position: relative;
    margin-bottom: 160px;
}
.madori-intro-img{
    flex-basis: 55%;
    position: relative;
    z-index: 1;
}
.madori-intro-info{
    flex-basis: 55%;
    margin-left: -10%;
    background: #fff;
    transform: translateY(60px);
    padding: 40px 5% 100px 13%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.madori-intro-info h3{
    font-size: 26px;
    font-weight: bold;
    margin-bottom: 30px;
}
.madori-plans{
    margin-top: 40px;
}
.madori-plan{
    background: rgba(255,255,255,0.5);
    padding: 0 40px 40px;
}
.madori-plan:not(:last-of-type){
    margin-bottom: 60px;
}
.madori-plan-img{
    flex-basis: 48%;
}
.madori-plan-info{
    flex-basis: 48%;
}
.madori-plan-title{
    text-align: center;
    margin: 0 auto 10px;
}
.madori-plan-title h3{
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 18px;
    background: var(--key);
    color: #fff;
    padding: 8px 36px 8px 8px;
    border-radius: 999px;
    transform: translateY(-23px);
    font-weight: bold;
    line-height: 1.2;
}
.madori-plan-tsubo{
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 65px;
    height: 65px;
    background: #fff;
    border-radius: 50%;
    line-height: 1;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}
.madori-plan-num{
    font-size: 28px;
    font-weight: bold;
    letter-spacing: 0;
    line-height: 1;
}
.madori-plan-unit{
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 1px;
    margin-top: 2px;
    transform: translate(3px, 4px);
}
.madori-plan-label{
    font-size: 23px;
    font-weight: 500;
    letter-spacing: 2px;
    text-align: left;
    white-space: nowrap;
}
.madori-plans .madori-plan:nth-child(3n+1) .madori-plan-title h3{
    background: var(--key);
}
.madori-plans .madori-plan:nth-child(3n+1) .madori-plan-tsubo{
    color: var(--key);
}
.madori-plans .madori-plan:nth-child(3n+2) .madori-plan-title h3{
    background: var(--accent);
}
.madori-plans .madori-plan:nth-child(3n+2) .madori-plan-tsubo{
    color: var(--accent);
}
.madori-plans .madori-plan:nth-child(3n) .madori-plan-title h3{
    background: var(--sub);
}
.madori-plans .madori-plan:nth-child(3n) .madori-plan-tsubo{
    color: var(--sub);
}
.madori-plan-info dl{
    border-bottom: 1px solid #aaa;
    padding: 0 10px 8px;
    margin-bottom: 8px;
    align-items: center;
}
.madori-plan-info dl:last-of-type{
    margin-bottom: 20px;
}
.madori-plan-info dt{
    flex-basis: 120px;
}
.madori-plan-info dd{
    flex-basis: calc(100% - 120px);
}
.madori-plan-info p{
    background: #fff;
    padding: 20px;
    font-size: 15px;
    line-height: 1.7;
    box-shadow: 3px 3px 5px rgba(0,0,0,0.05);
}
.madori-plan-info p strong{
    font-size: 18px;
    margin-bottom: 8px;
    display: inline-block !important;
}
.madori-lineup-links{
    justify-content: center;
    gap: 16px;
    margin: 30px 0 40px;
    flex-wrap: wrap;
}
.madori-lineup-links .btn{
    display: inline-block;
    min-width: 140px;
    padding: 12px 24px;
    border: 1px solid var(--key);
    color: var(--key);
    text-align: center;
    text-decoration: none;
    transition: background 0.3s, color 0.3s;
}
.madori-lineup-links .btn:hover{
    background: var(--key);
    color: #fff;
}
.madori-promo{
    margin-top: 60px;
    padding-top: 40px;
    border-top: 1px solid var(--border);
}
.madori-promo p{
    margin-bottom: 24px;
    color: #555;
    text-align: center;
}

@media screen and (max-width: 768px){
    .madori-section{
        margin-top: 40px;
        padding-bottom: 80px;
    }
    .madori-balloon{
        width: 92%;
        padding: 18px 16px;
        transform: translateY(-40px);
        border-radius: 24px;
    }
    .madori-balloon span{
        font-size: 16px;
    }
    .madori-intro.flex{
        display: flex !important;
        flex-direction: column;
    }
    .madori-intro-img,
    .madori-intro-info{
        flex-basis: 100%;
    }
    .madori-intro-info{
        margin-left: 0;
        transform: none;
        padding: 28px 5%;
    }
    .madori-intro-info h3{
        font-size: 20px;
        margin-bottom: 16px;
    }
    .madori-plan{
        padding: 0 12px 24px;
    }
    .madori-plan:not(:last-of-type){
        margin-bottom: 50px;
    }
    .madori-plan-title h3{
        gap: 12px;
        padding: 6px 20px 6px 6px;
    }
    .madori-plan-tsubo{
        width: 64px;
        height: 64px;
    }
    .madori-plan-num{
        font-size: 24px;
    }
    .madori-plan-unit{
        font-size: 11px;
    }
    .madori-plan-label{
        font-size: 15px;
        letter-spacing: 1px;
        white-space: normal;
    }
    .madori-plan-flex.flex-sb{
        display: flex !important;
        flex-direction: column;
    }
    .madori-plan-img,
    .madori-plan-info{
        flex-basis: 100%;
    }
    .madori-plan-img{
        margin-bottom: 16px;
    }
    .madori-plan-info p{
        font-size: 14px;
    }
    .madori-plan-info dl.flex-al{
        display: flex !important;
        flex-wrap: wrap;
        gap: 4px;
    }
    .madori-plan-info dt,
    .madori-plan-info dd{
        flex-basis: 100%;
    }
    .madori-lineup-links .btn{
        min-width: 120px;
        padding: 10px 16px;
        font-size: 14px;
    }
    .madori-promo{
        margin-top: 40px;
        padding-top: 30px;
    }
}


/**********************************************************************/
/*****************************  会社案内  *****************************/
/**********************************************************************/
.com1{
    background: var(--bg2);
}
.com1 h3{
    text-align: center;
    font-size: 28px;
    margin-bottom: 50px;
}
.com1-flex{
    align-items: center;
}
.com1-img{
    flex-basis: 35%;
    max-width: 370px;
}
.com1-info{
    flex-basis: 60%;
}
.com2 th{
    background: var(--bg1);
}


@media screen and (max-width:768px){
    .com1 h3 {
        font-size: 20px;
        margin-bottom: 28px;
    }
    .com1-img {
        width: 200px;
        margin: 0 auto 20px;
    }
    .company-page .com2 {
        overflow-x: visible;
    }
    .company-page .com-profile table {
        display: block;
        width: 100%;
        min-width: 0;
        overflow-x: visible;
        border: none;
    }
    .company-page .com-profile table tbody {
        display: block;
        border: 1px solid #d8d8db;
    }
    .company-page .com-profile table tr {
        display: block;
        border: none;
        border-bottom: 1px solid #d8d8db;
    }
    .company-page .com-profile table tr:last-child {
        border-bottom: none;
    }
    .company-page .com-profile table th,
    .company-page .com-profile table td {
        display: block;
        width: 100%;
        height: auto;
        box-sizing: border-box;
    }
    .company-page .com-profile table th {
        border: none;
        border-bottom: 1px solid #d8d8db;
        font-weight: 600;
        padding: 10px 14px;
    }
    .company-page .com-profile table td {
        border: none;
        padding: 12px 14px;
        line-height: 1.85;
        letter-spacing: 0.5px;
    }
    .com-profile.flex {
        display: flex !important;
        flex-direction: column;
        gap: 24px;
    }
    .com-profile-img {
        margin-bottom: 8px;
    }
}


/**********************************************************************/
/**************************  アフターフォローページ  **************************/
/**********************************************************************/
.follow1 {
    background: var(--bg1);
    padding: 100px 0;
}

.follow1-inner {
    max-width: 1100px;
    margin: 0 auto;
}

.follow1-head {
    text-align: center;
    margin-bottom: 60px;
}

.follow1-sub {
    color: var(--key);
    font-size: 14px;
    letter-spacing: 0.15em;
    margin-bottom: 15px;
}

.follow1-head h2 {
    font-size: 38px;
    line-height: 1.5;
}
.follow1-inner>p{
    margin-bottom: 30px;
}
.follow2 .text-c p{
    display: inline-block;
    text-align: left;
    margin-bottom: 40px;
}
.follow2 .text-c p span{
    text-align: right;
    display: block;
    font-size: 14px;
}
.follow-youtube-wrap{
    max-width: 900px;
    margin: auto;
}
.follow-youtube{
    height: 0;
    max-width: 100%;
    overflow: hidden;
    padding-bottom: 56.5%;
    position: relative;
    width: 100%;
    margin: 0 auto 50px;
}
.follow-youtube iframe{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
.follow-img{
    max-width: 900px;
    margin: auto;
}
.follow-img img{
    margin-bottom: 20px;
}
.follow-img .kome{
    font-size: 14px;
    text-indent: -25px;
    margin-left: 25px;
}

@media screen and (max-width:768px){
    .follow1 {
        padding: 70px 0;
    }

    .follow1-head {
        margin-bottom: 40px;
    }

    .follow1-head h2 {
        font-size: 26px;
    }

}
/**********************************************************************/
/*****************************  ラインナップ  *****************************/
/**********************************************************************/
.a-line-top {
    padding-bottom: 150px;
    position: relative;
    overflow: hidden;
}
.a-line-title {
    text-align: center;
}
.a-line-title .title-main {
    font-size: 34px;
    margin-bottom: 50px;
}
.a-line-title p {
    line-height: 2.4;
    font-size: 18px;
}
.line-en {
    position: absolute;
    left: 0;
    bottom: 10px;
    display: flex;
    width: max-content;
    animation: lineFlow 30s linear infinite;
    white-space: nowrap;
    z-index: 1;
}
.line-en span {
    display: block;
    font-size: 90px;
    font-family: serif;
    letter-spacing: 5px;
    line-height: 1;
    color: rgba(0,0,0,.05);
    font-weight: bold;
    padding-right: 40px;
}
@keyframes lineFlow {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%);
    }
}
.a-line-main.royalhouse{
    background: var(--bg2);
}
.a-line-main.onehouse{
    background: var(--bg1);
}
.a-line-main a{
    background: #fff;
    padding: 50px;
    box-shadow: 3px 3px 10px rgba(0,0,0,0.1);
    margin-bottom: 50px;
}
.lineup-cate{
    background: #243447;
    margin-top: 20px;
    display: inline-block;
    color: #fff;
    padding: 8px 30px;
    letter-spacing: 2px;
}
.lineup-cate2{
    background: #bca891;
}
.a-line-item-img{
    flex-basis: 48%;
    overflow: hidden;
}
.a-line-item-img img{
    transition: transform .6s ease;
    aspect-ratio: 3/2;
    object-fit: cover;
}
.a-line-item:hover .a-line-item-img img{
    transform: scale(1.05);
}
.a-line-item-info{
    flex-basis: 48%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.a-line-item-info h3{
    font-weight: bold;
    font-size: 30px;
    border-bottom: 1px solid #ccc;
    padding-bottom: 10px;
    margin-bottom: 20px;
}
.a-line-item-info h3 span{
    font-size: 14px;
    display: block;
    font-weight: 400;
}
.a-line-item-info h4{
    font-size: 18px;
    font-weight: bold;
    margin-bottom: 15px;
}
.a-line-item-info .link-btn {
    text-align: right;
}
.a-line-item-info .btn{
    display: inline-block;
    background: var(--accent);
    padding: 8px 54px 8px 30px;
    color: #fff;
    font-size: 14px;
    border-radius: 3px;
    position: relative;
    transition: .3s;
}
.a-line-item-info .btn::before{
    content: "";
    position: absolute;
    top: 50%;
    right: 22px;
    width: 18px;
    height: 1px;
    background: #fff;
    transform: translateY(-50%);
    transition: .3s;
}
.a-line-item-info .btn::after{
    content: "";
    position: absolute;
    top: 50%;
    right: 22px;
    width: 7px;
    height: 7px;
    border-top: 1px solid #fff;
    border-right: 1px solid #fff;
    transform: translateY(-50%) rotate(45deg);
    transition: .3s;
}
.a-line-main a:hover .btn::before,
.a-line-main a:hover .btn::after{
    right: 16px;
}


@media screen and (max-width:768px){
    .a-line-main .sec-title p {
        font-size: 14px;
        line-height: 2;
        margin-top: 16px;
    }
    .a-line-top {
        padding-bottom: 70px;
    }
    .a-line-title .title-main {
        font-size: 24px;
        margin-bottom: 24px;
    }
    .a-line-title p {
        font-size: 14px;
        line-height: 2;
    }
    .line-en span {
        font-size: 44px;
        padding-right: 24px;
    }
    .lineup-cate{
        margin-top: 10px;
    }
    .a-line-main a {
        padding: 24px 18px;
        margin-bottom: 24px;
    }
    .a-line-item.flex-sb {
        display: flex !important;
        flex-direction: column;
    }
    .a-line-item-img {
        flex-basis: 100%;
        margin-bottom: 16px;
    }
    .a-line-item-info {
        flex-basis: 100%;
    }
    .a-line-item-info h3 {
        font-size: 22px;
    }
    .a-line-item-info h4 {
        font-size: 15px;
    }
    .a-line-item-info .link-btn {
        text-align: center;
        margin-top: 16px;
    }
    .lineup-cate {
        font-size: 13px;
        padding: 6px 20px;
    }
}


/**********************************************************************/
/*****************************  リフォーム  *****************************/
/**********************************************************************/
.ref1{
    background:  var(--bg1);
}
.ref1-item-img{
    flex-basis: 50%;
}
.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: 500;
    line-height: 1.4;
    color: var(--key);
    border-left: 3px solid;
}
.ref-items{
    gap: 30px;
}
.ref-item{
    flex-basis: calc(100% / 3 - 20px);
}
.ref-item a{
    position: relative;
}
.cat-tag{
    position: absolute;
    top: 0;
    left: 0;
    display: inline-block;
    color: #fff;
    padding: 5px 20px;
    width: 200px;
    text-align: center;
    border: 1px solid rgba(255,255,255,0.5);
}
/* リフォーム */
.cat-tag.reform {
    background: #c97b63;
}
/* エクステリア */
.cat-tag.exterior {
    background: #5f7f5a;
}
.ref-item h3{
    width: 90%;
    background: #fff;
    margin: -20px auto 30px;
    display: block;
    position: relative;
    padding: 20px;
    border-bottom: 4px solid var(--key);
    box-shadow: 0px 0px 5px rgba(0,0,0,0.1);
}
.reform-page .page-foot {
    background: var(--bg2);
    margin-bottom: 80px;
}


/**********************************************************************/
/*****************************  リフォーム事例一覧  *****************************/
/**********************************************************************/
.a-reform-page .ref2 {
    padding: 60px 0 80px;
}
.a-reform-page .ref-items {
    margin-bottom: 20px;
}
.ref-item img,
.ref-item .wp-post-image {
    width: 100%;
    display: block;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}
.ref-item a > div {
    overflow: hidden;
}
.a-reform-page .item-none {
    width: 100%;
    text-align: center;
    padding: 40px 0;
}


@media screen and (max-width:768px){
    .ref1-item-img,
    .ref1-item-info {
        flex-basis: 100%;
    }
    .ref1-item-info {
        padding: 24px 0 0;
        gap: 16px;
        margin-bottom: 15px;
    }
    .ref1-item-info h3 {
        font-size: 18px;
    }
    .ref-items {
        gap: 0;
    }
    .ref-item {
        flex-basis: 100%;
        margin-bottom: 24px;
    }
    .cat-tag {
        width: 160px;
        font-size: 13px;
        padding: 4px 12px;
    }
    .ref-item h3 {
        padding: 16px;
        margin-bottom: 20px;
        font-size: 14px;
    }
    .reform-page .page-foot {
        margin-bottom: 40px;
    }
}


/**********************************************************************/
/*****************************  基本仕様と性能ページ  *****************************/
/**********************************************************************/
.per1{
    background: var(--bg2);
}
.perform-stand>div{
    flex-basis: 48%;
}
.perform-spec-head{
    background: #333;
    text-align: center;
    font-size: 20px;
    color: #fff;
    padding: 5px;
}
.perform-spec-data{
    display: flex;
    padding: 20px 0;
    border-bottom: 1px solid #333;
    gap: 15px;
    align-items: center;
}
.perform-spec-data dt{
    background: var(--key);
    color: #fff;
    width: 200px;
    text-align: center;
    padding: 5px;
}
.perform-spec-data span{
    font-size: 12px;
}
.per2 {
    background: var(--bg1);
}
.per2-item{
    margin-bottom: 100px;
    align-items: center;
}
.per2-img{
    flex-basis: 70%;
    margin-right: -20%;
}
.rev .per2-img{
    margin-right: auto;
    margin-left: -20%;
}
.per2-info{
    flex-basis: 50%;
    margin-left: -7%;
}
.rev .per2-info{
    margin-left: auto;
    margin-right: -7%;
}
.per2-info-in{
    background: rgba(255,255,255,0.8);
    padding: 50px;
    position: relative;
    z-index: 1;
}
.per2-info-in h3{
    font-size: 30px;
    margin-bottom: 15px;
}
.per2-info-in h3 span{
    font-family: 'Josefin Sans', sans-serif;
    font-size: 40px;
    padding-right: 10px;
    transform: translateY(2px);
    display: inline-block;
    color: var(--key);
}
.per2-info-in h4{
    font-size: 24px;
    margin-bottom: 30px;
    border-bottom: 1px solid #aaa;
    padding: 0 15px 7px 15px;
}



@media screen and (max-width:768px){
    .perform-stand > div {
        flex-basis: 100%;
        margin-bottom: 24px;
    }
    .perform-spec{
        border: 1px solid;
        margin-bottom: 15px;
    }
    .perform-spec-in{
        padding: 0 5% 13px;
    }
    .perform-spec-head {
        font-size: 16px;
    }
    .perform-spec-data {
        flex-direction: column;
        gap: 8px;
        padding: 16px 0 0;
        border: none;
    }
    .perform-spec-data dt {
        width: 100%;
        font-size: 14px;
    }
    .per2-item {
        margin-bottom: 48px;
    }
    .per2-img {
        flex-basis: 100%;
        margin-right: 0 !important;
        margin-left: 0 !important;
    }
    .per2-info {
        flex-basis: 100%;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    .per2-info-in {
        padding: 28px 20px;
    }
    .per2-info-in h3 {
        font-size: 20px;
    }
    .per2-info-in h3 span {
        font-size: 28px;
    }
    .per2-info-in h4 {
        font-size: 17px;
        margin-bottom: 16px;
    }
}


/**********************************************************************/
/*****************************  よくある質問  *****************************/
/**********************************************************************/
.f-qa-items h3 {
    position: relative;
    margin: 70px 0 20px;
    padding: 0px 0px 7px 22px;
    font-size: 32px;
    font-weight: 500;
    line-height: 1.5;
    color: #333;
    letter-spacing: 0.08em;
    border-left: 6px solid var(--key);
}
.f-qa-items h3:first-child {
    margin-top: 0;
}
.faq-note{
    margin-top: 40px;
    color: #555;
    text-indent: -18px;
    margin-left: 18px;
}
@media screen and (max-width:768px){
    .f-qa-items h3 {
        font-size: 18px;
        margin: 36px 0 10px;
        padding-left: 14px;
        border-left-width: 4px;
        display: flex;
    }
    .f-qa-items h3 .num{
        flex-basis: 22px;
    }
    .f-qa-items h3 .text{
        flex-basis: calc(100% - 25px);
    }
}

/**********************************************************************/
/*****************************  ポリシー  *****************************/
/**********************************************************************/
.policy h2{
    font-size: 20px;
    margin: 35px 0 10px;
    padding: 4px 0 6px 20px;
    border-left: 5px solid var(--key);
}
.privacy-date{
    text-align: right;
    font-size: 14px;
}
.com-name{
    border: 1px solid;
    padding: 30px;
    margin: 15px 0;
}

@media screen and (max-width:768px){
    .policy h2 {
        font-size: 16px;
        padding: 4px 0 6px 15px;
        border-left: 4px solid var(--key);
    }
}


/**********************************************************************/
/*****************************  カタログ  *****************************/
/**********************************************************************/
.catalog-page .links-btn {
    justify-content: center;
    gap: 15px;
    margin-top: 50px;
}
.catalog-page .links-btn a {
    background: var(--key);
    color: #fff;
    padding: 10px 25px;
    display: block;
}
.catalogs {
    background: #f1f1ea;
}
#cata1, #cata2, #cata3, #cata4 {
    scroll-margin-top: 100px;
}
.catalogitem {
    background: #fff;
    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;
    position: relative;
}
.catalogitem h3 strong {
    font-size: 34px;
    color: var(--accent);
}
.catalogitem h3:after {
    content: "";
    width: 100px;
    height: 3px;
    position: absolute;
    bottom: -15px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--accent);
}
.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){
    #cata1, #cata2, #cata3, #cata4 {
        scroll-margin-top: 64px;
    }
    .catalogitem {
        padding: 24px 18px;
        border-radius: 16px;
        margin-bottom: 24px;
    }
    .catalogitem h3 {
        font-size: 18px;
        margin-bottom: 32px;
    }
    .catalogitem h3 strong {
        font-size: 20px;
    }
    .cata-top {
        padding: 20px 16px;
        border-radius: 12px;
    }
    .catalogitem-img {
        flex-direction: column;
    }
    .catalogitem-img img:not(:last-of-type) {
        margin-bottom: 15px;
    }
    .catalog-page .links-btn {
        flex-direction: column;
        align-items: stretch;
    }
    .catalog-page .links-btn a {
        text-align: center;
        margin-bottom: 10px;
    }
}




/**********************************************************************/
/*****************************  コンタクト  *****************************/
/**********************************************************************/
.contact-page .form{
    background: var(--bg1);
}
.contact-form {
    padding: 50px;
    background: #f9f9f9;
    border-radius: 5px;
    box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
}
.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(--key);
    border: 1px solid var(--key);
    margin: 0 10px;
    font-size: 12px;
    padding: 3px 10px;
    letter-spacing: 2px;
}
.optional {
    color: var(--key);
	border: 1px solid var(--key);
    margin-left: 10px;
    font-size: 12px;
    padding: 3px 10px;
    letter-spacing: 2px;
}
.input-group {
    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;
    background: #fff;
}
textarea {
    resize: vertical;
}
.hogo{
    margin-bottom: 30px!important;
}
.hogo a,.contact-bottom-p a{
    letter-spacing: 1px;
    color: blue;
    text-decoration: underline;
}
.submit-button {
    width: 250px;
    text-align: center;
    background: var(--key);
    margin: 0 auto;
    display: inline-block;
    color: #fff;
    padding: 15px;
    letter-spacing: 2px;
    border-radius: 5px;
    cursor: pointer;
    border: none;
}

/* 希望日時：日付・時・分を横並び */
.contact-form .input-group3.has-label3 {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
    width: 100%;
}
.contact-form .input-group3.has-label3 > .input-label {
    flex: 0 0 100px;
    width: 100px;
    white-space: nowrap;
    margin: 0;
    font-size: 13px;
    color: #949497;
}
.contact-form .input-group3 .input-3items {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1;
    min-width: 0;
    flex-wrap: nowrap;
    line-height: 1;
    letter-spacing: 0;
}
.contact-form .input-group3 .input-3items .wpcf7-form-control-wrap {
    width: auto !important;
    margin: 0;
}
.contact-form .input-group3 .input-3items .wpcf7-form-control-wrap:first-child {
    flex: 0 0 auto;
}
.contact-form .input-group3 .input-3items .wpcf7-form-control-wrap:first-child input {
    width: 180px;
    max-width: 100%;
}
.contact-form .input-group3 .input-3items .wpcf7-form-control-wrap:not(:first-child) {
    flex: 0 0 auto;
}
.contact-form .input-group3 .input-3items .wpcf7-form-control-wrap:not(:first-child) select {
    width: 64px;
    flex: 0 0 64px;
    padding: 8px 4px;
}

.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%;
}
.contact-form .radio-group .wpcf7-radio {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 10px;
}
.contact-form .radio-group .wpcf7-list-item {
    margin: 0 !important;
}
.contact-form .radio-group label {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 48px;
    padding: 10px 12px;
    font-size: 15px;
    color: #333;
    background: #fff;
    border: 1px solid #d5d5d5;
    border-radius: 4px;
    cursor: pointer;
    transition: border-color .2s, background-color .2s, box-shadow .2s;
}
.contact-form .radio-group label:hover {
    border-color: var(--key);
}
.contact-form .radio-group label:has(input[type="radio"]:checked) {
    color: var(--key);
    background: color-mix(in srgb, var(--key) 8%, #fff);
    border-color: var(--key);
    box-shadow: 0 0 0 1px var(--key);
}
.contact-form .radio-group input[type="radio"] {
    flex: 0 0 15px;
    width: 15px;
    height: 15px;
    margin: 0;
    accent-color: var(--key);
}
.contact-form .radio-group input[type="radio"]:focus-visible {
    outline: 2px solid var(--key);
    outline-offset: 2px;
}
.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);
}
.wpcf7-turnstile {
    display: flex;
    justify-content: center;
    margin: 30px 0;
}

@media screen and (max-width:768px){
    .contact-page {
        padding: 50px 0;
    }
    .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 .submit-button,
    .contact-form input[type="submit"] {
        width: 100%;
    }
    .contact-form .input-group3.has-label3 {
        flex-wrap: wrap;
        gap: 8px;
    }
    .contact-form .input-group3.has-label3 > .input-label {
        flex: 0 0 100%;
        width: 100%;
    }
    .contact-form .input-group3 .input-3items {
        flex: 1 1 100%;
        flex-wrap: wrap;
    }
    .contact-form .input-group3 .input-3items .wpcf7-form-control-wrap:first-child {
        flex: 0 0 100%;
        width: 100%;
    }
    .contact-form .input-group3 .input-3items .wpcf7-form-control-wrap:first-child input {
        width: 100%;
    }
	.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-form .radio-group .wpcf7-radio {
        grid-template-columns: 1fr;
    }
    .contact-form .radio-group label {
        font-size: 14px;
    }
    .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;
    }
}



/* 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.is-open {
    visibility: visible;
    pointer-events: auto;
}
.pp-modal.is-open .pp-modal__dialog {
    transform: translateY(0);
    opacity: 1;
}
#pp-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__body {
    overflow-y: auto;
    flex: 1;
    min-height: 0;
}
.pp-modal__close {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 2;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    line-height: 1;
    background: #fff;
    border: 0;
    cursor: pointer;
}
.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(--key);
    color: #fff;
}

.pagination .page-numbers.current {
    background: var(--key);
    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(--key);
    color: #fff;
}

@media screen and (max-width:768px){
    .pagination {
        margin-top: 40px;
    }
    .pagination .page-numbers {
        min-width: 32px;
        padding: 10px 12px;
        font-size: 14px;
    }
}


/**********************************************************************/
/*****************************  イベント一覧  *****************************/
/**********************************************************************/
.a-event-main{
    background: var(--bg1);
}
.a-event-item:not(:last-of-type){
    margin-bottom: 50px;
    border-bottom: 1px solid #aaa;
    padding-bottom: 50px;
}
.a-event-item a{
    align-items: center;
}
.a-event-thumb{
    flex-basis: 45%;
}
.a-event-info{
    flex-basis: 50%;
}
.a-event-status{
    display: inline-block;
    color: #fff;
    padding: 5px 50px;
    border-radius: 5px;
    letter-spacing: 5px;
    font-weight: bold;
    margin-bottom: 10px;
}
.a-event-status.open{
    background: var(--accent);
}
.a-event-status.closed{
    background: #999;
}
.a-event-title{
    font-weight: bold;
    font-size: 20px;
    margin-bottom: 15px;
}
.a-event-detail{
    background: #fff;
    padding: 20px;
    box-shadow: 3px 3px 1px rgba(0,0,0,0.1);
    gap: 5px;
    align-items: center;
}
.a-event-detail dt{
    flex-basis: 90px;
    background: var(--key);
    color: #fff;
    padding: 5px;
    text-align: center;
}
.a-event-detail dd{
    flex-basis: calc(100% - 105px);
}

@media screen and (max-width:768px){
    .a-event-item:not(:last-of-type) {
        margin-bottom: 36px;
        padding-bottom: 36px;
    }
    .a-event-item a.flex-sb {
        display: flex !important;
        flex-direction: column;
    }
    .a-event-thumb,
    .a-event-info {
        flex-basis: 100%;
    }
    .a-event-thumb {
        margin-bottom: 16px;
    }
    .a-event-status {
        padding: 4px 24px;
        letter-spacing: 2px;
        font-size: 13px;
    }
    .a-event-title {
        font-size: 17px;
    }
    .a-event-text{
        margin-bottom: 20px;
    }
    .a-event-detail {
        gap: 7px;
    }
    .a-event-detail.flex-sb {
        display: flex !important;
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }
    .a-event-detail dt {
        flex-basis: auto;
        width: 100%;
        font-size: 13px;
        padding: 3px;
    }
    .a-event-detail dd {
        flex-basis: 100%;
        font-size: 14px;
        text-align: center;
    }
}


/**********************************************************************/
/*****************************  お知らせ一覧  *****************************/
/**********************************************************************/
.a-news-main{
    background: var(--bg2);
}
.a-news-item{
    background: #fff;
    padding: 30px;
    box-shadow: 3px 3px 5px rgba(0,0,0,0.2);
    border-radius: 20px;
}
.a-news-item:not(:last-of-type){
    margin-bottom: 30px;
}
.a-news-time{
    align-items: center;
    margin-bottom: 15px;
}
.news-tag {
    display: inline-block;
    padding: 2px 10px;
    margin-left: 10px;
    font-size: 11px;
    line-height: 1.6;
    border-radius: 999px;
    letter-spacing: 0.05em;
}
/* お客様の声 */
.news-tag-voice {
    color: #8a5a2b;
    background: #f4eadf;
}
/* イベント */
.news-tag-event {
    color: #2f7d55;
    background: #e5f3ec;
}
/* ニュース */
.news-tag-news {
    color: #3b6f9e;
    background: #e7f0f8;
}
/* ブログ */
.news-tag-blog {
    color: #7a5fa3;
    background: #eee8f6;
}
/* 施工事例 */
.news-tag-works {
    color: #6b6b6b;
    background: #eeeeee;
}
.a-news-title{
    font-size: 20px;
    margin-bottom: 15px;
}
.a-news-excerpt{
    line-height: 1.7;
}



@media screen and (max-width:768px){
    .a-news-item {
        padding: 20px 16px;
        border-radius: 14px;
    }
    .a-news-title {
        font-size: 17px;
    }
    .a-news-time.flex {
        display: flex !important;
        flex-wrap: wrap;
        align-items: center;
        gap: 8px;
    }
    .a-news-time .news-tag {
        margin-left: 0;
    }
}


/**********************************************************************/
/*****************************  ブログ一覧  *****************************/
/**********************************************************************/
section.a-blog{
    padding-top: 0;
}
.a-blog-items {
    gap: 36px 28px;
}
.a-blog-item {
    width: calc((100% - 56px) / 3);
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.06);
}
.a-blog-thumb img {
    aspect-ratio: 4 / 3;
    object-fit: cover;
}
.a-blog-info{
    padding: 20px;
}
.a-blog-title{
    font-size: 18px;
    line-height: 1.65;
    font-weight: 600;
    letter-spacing: 0.04em;
    border-bottom: 1px solid #aaa;
    padding-bottom: 15px;
    margin-bottom: 15px;
}
.a-blog-excerpt{
    font-size: 14px;
    line-height: 1.9;
    color: #666;
}


@media screen and (max-width:768px){
    .a-blog-items {
        flex-direction: column;
    }
    .a-blog-item {
        width: 100%;
    }
    .a-blog-item:not(:last-of-type){
        margin-bottom: 30px;
    }
    .a-blog-info {
        padding: 16px;
    }
    .a-blog-title {
        font-size: 16px;
    }
}


/**********************************************************************/
/*****************************  施工事例一覧  *****************************/
/**********************************************************************/
.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;
}
.a-works-thumb img{
    border-radius: 25px;
    aspect-ratio: 3/2;
    object-fit: cover;
}
.a-works-item h3{
    font-weight: 400;
    font-size: 18px;
	font-family: "Noto Sans JP", sans-serif;
    padding: 0 2%;
}

@media screen and (max-width: 768px) {
    .a-works-items {
        gap: 16px;
    }
    .a-works-item {
        margin-bottom: 20px;
    }
    .a-works-item h3 {
        font-size: 16px;
    }
    .case-filter {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
        padding: 5%;
    }
    .case-filter .filter-item {
        width: 100%;
    }
    .case-filter button {
        width: 100%;
    }
}

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

.time{
    margin-bottom: 20px;
}
.single-page h1{
    font-size: 28px;
    margin-bottom: 15px;
}
@media screen and (max-width:768px){
    .single-page h1 {
        font-size: 20px;
    }
    .time {
        font-size: 13px;
    }
}

.s-thumbnail{
    margin-bottom: 20px;
}
/* h2 */
.single-main h2 {
    position: relative;
    margin: 60px 0 30px;
    padding: 20px 20px 20px 30px;
    background: #f8f6f1;
    border-radius: 10px;
    font-size: 26px;
    line-height: 1.5;
    font-weight: 600;
    border-left: 7px solid var(--key);
}

/* h3 */
.single-main h3 {
    position: relative;
    margin: 40px 0 26px;
    padding-bottom: 14px;
    font-size: 23px;
    line-height: 1.5;
    font-weight: 600;
    border-bottom: 1px solid #ddd;
    padding-left: 10px;
}

.single-main h3::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -1px;
    width: 80px;
    height: 3px;
    background: var(--accent);
    border-radius: 10px;
}

/**********************************************************************/
/*****************************  イベント詳細  *****************************/
/**********************************************************************/
.single-event .breadcrumb {
    padding: 21px;
}
.single-event-page {
    background: var(--bg1);
    padding: 40px 0 60px;
}
.single-event-page .s-event-main {
    background: #fff;
    padding: 40px 48px 48px;
    border-radius: 20px;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
}
.single-event-page .s-event-heading-row {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 24px;
    flex-wrap: wrap;
}
.single-event-page .s-event-status {
    display: inline-block;
    flex-shrink: 0;
    color: #fff;
    padding: 5px 20px;
    border-radius: 4px;
    letter-spacing: 2px;
    font-weight: bold;
    font-size: 13px;
    margin: 0;
}
.single-event-page .s-event-status.open {
    background: var(--accent);
}
.single-event-page .s-event-status.closed {
    background: #999;
}
.single-event-page .s-event-heading {
    flex: 1;
    min-width: 0;
    font-size: 26px;
    line-height: 1.4;
    margin: 0;
    text-align: left;
}
.single-event-page .s-event-eyecatch {
    margin-bottom: 28px;
    border-radius: 12px;
    overflow: hidden;
}
.single-event-page .s-event-eyecatch img {
    width: 100%;
}
section.s-event-info {
    padding: 25px 0;
}
.single-event-page .s-event-title {
    margin: 0px 0 30px;
    padding: 0 10px 10px;
    background: none;
    border-radius: 0;
    border-left: none;
    border-bottom: 2px solid var(--key);
    font-size: 26px;
    line-height: 1.5;
    font-weight: 700;
    color: #333;
}
.single-event-page .s-event-info-table {
    background: var(--bg2);
    padding: 8px 24px;
    border-radius: 10px;
}
.single-event-page .s-event-info-table dl {
    display: flex;
    align-items: center;
    gap: 4%;
    margin: 0;
    padding: 12px 0;
    border-bottom: 1px solid #e0e0d8;
}
.single-event-page .s-event-info-table dl:last-child {
    border-bottom: none;
    padding-bottom: 12px;
}
.single-event-page .s-event-info-table dl:first-child {
    padding-top: 12px;
}
.single-event-page .s-event-info-table dt {
    flex: 0 0 90px;
    color: #fff;
    text-align: center;
    padding: 4px 0;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 1px;
    background: var(--key);
    border-radius: 4px;
}
.single-event-page .s-event-info-table dd {
    flex: 1;
    margin: 0;
    line-height: 1.7;
    font-size: 15px;
}
.single-event-page .s-event-info-table dd a {
    color: var(--sub);
    text-decoration: underline;
}
.single-event-page .s-event-content {
    margin: 32px 0 0;
    padding-top: 32px;
    border-top: 1px solid var(--border);
}
.single-event-page .s-event-content.single-main h3::after {
    width: 48px;
    height: 2px;
}
.single-event-page .s-event-content.single-main p {
    margin-bottom: 16px;
}
.single-event-page .s-event-content.single-main ul,
.single-event-page .s-event-content.single-main ol {
    margin: 16px 0 20px;
}
.single-event-page .s-event-content.single-main hr,
.single-event-page .s-event-content.single-main .wp-block-separator {
    margin: 40px 0;
    border: none;
    border-top: 1px solid var(--border);
}
.single-event-page .s-event-content #ez-toc-container {
    margin: 20px 0 28px !important;
    padding: 24px !important;
    background: var(--bg1) !important;
    border-color: #e0e0d8 !important;
}
.s-event-form h2 {
    font-size: 24px;
    text-align: center;
    margin-bottom: 30px;
}
.single-event-page .s-event-form {
    margin: 0;
    padding: 0;
}
.single-event-page .s-event-form .contact-form {
    background: var(--bg2);
    border-radius: 12px;
    box-shadow: none;
}
.single-event-page .event-closed {
    text-align: center;
    padding: 50px 30px;
    font-size: 18px;
    line-height: 1.8;
    color: #666;
    background: #f9f9f9;
    border: 2px dashed #ccc;
    border-radius: 10px;
    letter-spacing: 2px;
}

@media screen and (max-width: 768px) {
    .single-event-page {
        padding: 24px 0 40px;
    }
    .single-event-page .s-event-main {
        padding: 24px 20px 28px;
        border-radius: 12px;
    }
    .single-event-page .s-event-heading-row {
        gap: 10px;
        margin-bottom: 18px;
    }
    .single-event-page .s-event-heading {
        font-size: 20px;
        flex: 1 1 100%;
    }
    .single-event-page .s-event-status {
        padding: 4px 14px;
        font-size: 12px;
        letter-spacing: 1px;
    }
    .single-event-page .s-event-eyecatch {
        margin-bottom: 20px;
        border-radius: 8px;
    }
    .single-event-page .s-event-eyecatch img {
        max-height: 220px;
    }
    .single-event-page .s-event-title {
        font-size: 17px;
        margin-bottom: 14px;
    }
    .single-event-page .s-event-info-table {
        padding: 4px 16px;
    }
    .single-event-page .s-event-info-table dl {
        flex-direction: column;
        gap: 6px;
        padding: 14px 0;
    }
    .single-event-page .s-event-info-table dt {
        flex: none;
        width: 100%;
        border-right: none;
        border-bottom: 2px solid var(--key);
        padding-bottom: 4px;
    }
    .single-event-page .s-event-content {
        margin-top: 24px;
        padding-top: 24px;
    }
    .single-event-page .s-event-content.single-main h3 {
        margin: 22px 0 12px;
        font-size: 16px;
    }
    .single-event-page .s-event-content.single-main hr,
    .single-event-page .s-event-content.single-main .wp-block-separator {
        margin: 28px 0;
    }
    .s-event-form h2 {
        font-size: 18px;
    }
    .single-event-page .s-event-form .contact-form {
        border-radius: 8px;
    }
    .single-event-page .event-closed {
        padding: 35px 20px;
        font-size: 16px;
    }
}

.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;
}
.single-main ul{
    margin: 30px 0;
    padding-left: 20px;
    font-weight: bold;
}
.single-main li{
    margin-bottom: 10px;
}
.single-main p{
    margin-bottom: 20px;
}
.single-main a{
    text-decoration: underline;
}
.single-main .wp-block-image{
    margin: 40px auto 20px;
}
.single-main .wp-block-media-text {
    margin-bottom: 30px;
}
.single-adjacent {
    display: flex;
    gap: 16px;
    margin-bottom: 80px;
    justify-content: space-between;
}
.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;
    min-width: 0;
}
.single-adjacent a.adjacent.hov-up {
    display: flex;
}
.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;
    overflow-wrap: anywhere;
}


/* 目次 */
.ez-toc-title-container{
    text-align: center;
}
#ez-toc-container {
    width: 100% !important;
    margin: 48px 0 64px!important;
    padding: 32px !important;
    border: 1px solid #e5e0d8 !important;
    box-shadow: none !important;
}

#ez-toc-container .ez-toc-title-container {
    margin-bottom: 20px;
    padding-bottom: 16px;
    border-bottom: 1px solid #e5e0d8;
}

#ez-toc-container nav ul {
    margin: 0;
    padding: 0;
}

#ez-toc-container li {
    list-style: none;
    margin: 0;
    padding: 0;
}

#ez-toc-container li + li {
    margin-top: 12px!important;
}

/* 共通 */
#ez-toc-container a {
    display: block;
    position: relative;
    padding-left: 22px;
    text-decoration: none;
}

/* h2 */
#ez-toc-container .ez-toc-heading-level-2 > a::before {
    content: "";
    position: absolute;
    top: 0.4em;
    left: 0;
    width: 13px;
    height: 13px;
    background: var(--key);
    border-radius: 2px;
}

/* h3 */
#ez-toc-container .ez-toc-heading-level-3 > a::before {
    content: "";
    position: absolute;
    top: 0.7em;
    left: 1px;
    width: 6px;
    height: 6px;
    background: #999;
    border-radius: 50%;
}

#ez-toc-container a:hover {
    opacity: 0.65;
}

/* h3の目次がある場合 */
#ez-toc-container ul ul {
    margin-top: 10px;
    padding-left: 20px;
}

#ez-toc-container ul ul a {
    font-size: 0.95em;
    color: #555;
}

@media (max-width: 768px) {
.single-main h2 {
    font-size: 18px;
    border-left: 4px solid var(--key);
    padding: 12px;
    margin-top: 20px;
    margin-bottom: 20px;
}
.single-main h3 {
    border-bottom: 1px solid;
    padding: 0 10px 6px;
    margin-top: 20px;
    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-button a {
    text-decoration: none;
    font-size: 14px;
}


    .single-adjacent {
        flex-direction: column;
        gap: 12px;
        margin: 50px auto 0;
    }
    .single-adjacent .thumb img {
        width: 72px;
        height: 72px;
    }
    .single-adjacent .meta .label {
        font-size: 12px;
    }
    .single-adjacent .meta .title {
        font-size: 14px;
    }

    #ez-toc-container {
        margin: 40px 0 48px;
        padding: 24px 20px;
        border-radius: 12px;
    }

    #ez-toc-container .ez-toc-title {
        font-size: 20px;
    }

    #ez-toc-container a {
        padding-left: 18px;
    }

    #ez-toc-container a::before {
        width: 6px;
        height: 6px;
    }
    .single-btn-back {
        margin-bottom: 40px;
    }
    .single-main .wp-block-media-text {
        flex-direction: column !important;
        gap: 16px;
    }
    .single-main .wp-block-media-text .wp-block-media-text__media,
    .single-main .wp-block-media-text .wp-block-media-text__content {
        flex-basis: 100% !important;
        width: 100% !important;
    }
    .single-main .wp-block-image img {
        height: auto;
    }
}


/**********************************************************************/
/*****************************  シングルブログ  *****************************/
/**********************************************************************/
.single-blog{
    margin-top: 20px;
}

/**********************************************************************/
/*****************************  シングル施工事例  *****************************/
/**********************************************************************/
.s-works-top h1{
    text-align: center;
    font-size: 28px;
    margin-bottom: 50px;
}
.s-works-topimg{
    margin-bottom: 30px;
}
.s-works-topimg img{
    max-height: 800px;
    object-fit: cover;
}
.s-info{
    justify-content: center;
    gap: 5%;
    margin-bottom: 30px;
}
.s-info dl{
    align-items: center;
    gap: 20px;
}
.s-info dt{
    background: var(--accent);
    padding: 5px 20px;
    border-radius: 30px;
    color: #fff;
}
.s-works-top>p{
    border: 1px solid #777;
    padding: 50px;
}
section.s-works-imgs{
    padding: 0;
}
.s-works-imgs>p{
    display: flex;
    gap: 5px;
    flex-wrap: wrap;
}
.s-works-imgs>p a{
    flex-basis: calc( 100% / 3 - 4px );
}
.s-works-imgs>p a img{
    aspect-ratio: 1/1;
    object-fit: cover;
}
.s-works-points h2{
    font-size: 34px;
    margin-bottom: 40px;
}
.s-works-point{
    margin-bottom: 50px;
    align-items: center;
}
.s-works-p-img{
    flex-basis: 48%;
}
.s-works-p-img img{
    max-height: 480px;
    object-fit: cover;
}
.s-works-p-info{
    flex-basis: 48%;
}


/**********************************************************************/
/*****************************  シングルリフォーム事例  *****************************/
/**********************************************************************/
.s-reform-main{
    padding-bottom: 80px;
}
.s-reform-header{
    text-align: center;
    margin-top: 80px;
    margin-bottom: 60px;
}
.s-reform-header h1{
    font-size: 28px;
    margin-bottom: 20px;
}
.s-reform-cates{
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px;
}
.s-reform-cates .cat-tag{
    position: static;
    width: auto;
    min-width: 160px;
}
.s-reform-title{
    font-size: 22px;
    margin-bottom: 24px;
    padding-left: 16px;
    border-left: 4px solid var(--key);
}
.s-reform-after-title{
    margin-bottom: 30px;
}
.s-reform-after{
    margin-bottom: 60px;
}
.reform-slider{
    margin-bottom: 10px;
}
.reform-swiper-main{
    position: relative;
    overflow: hidden;
}
.reform-swiper-main .swiper-slide,
.reform-swiper-main .swiper-img{
    height: 100%;
}
.reform-swiper-main .swiper-img img{
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: cover;
}
.reform-swiper-thumbs{
    margin-top: 16px;
    overflow: hidden;
}
.reform-swiper-thumbs .swiper-slide{
    width: 120px;
    opacity: 0.45;
    cursor: pointer;
    transition: opacity 0.3s;
}
.reform-swiper-thumbs .swiper-slide-thumb-active{
    opacity: 1;
}
.reform-swiper-thumbs .swiper-slide img{
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    display: block;
    border: 2px solid transparent;
}
.reform-swiper-thumbs .swiper-slide-thumb-active img{
    border-color: var(--key);
}
.s-reform-content{
    background: var(--bg1);
    padding: 60px 0;
    margin-bottom: 60px;
}
.s-reform-text{
    border: 1px solid #777;
    padding: 40px 50px;
    line-height: 2;
    background: #fff;
}
.s-reform-before-items{
    gap: 20px;
}
.s-reform-before-item{
    flex: 1;
    min-width: 0;
}
.s-reform-before-item img{
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

@media screen and (max-width:768px){
    .a-reform-page .page-top {
        padding-bottom: 0;
    }
    .a-reform-page .page-top .sec-title {
        margin-bottom: 28px;
    }
    .a-reform-page .ref2 {
        padding: 24px 0 50px;
    }
    .a-reform-page .ref-items {
        gap: 0;
    }
    .a-reform-page .ref-item {
        flex-basis: 100%;
        margin-bottom: 28px;
    }
    .a-reform-page .ref-item:last-child {
        margin-bottom: 0;
    }
    .a-reform-page .ref-item h3 {
        width: 94%;
        margin: -16px auto 0;
        padding: 14px 12px;
        font-size: 14px;
        line-height: 1.6;
    }
    .a-reform-page .cat-tag {
        width: auto;
        min-width: 120px;
        max-width: 75%;
        font-size: 12px;
        padding: 4px 12px;
    }
    .a-reform-page .ref2 .pagination {
        margin-top: 32px;
    }
    .a-reform-page .item-none {
        padding: 24px 0;
        font-size: 14px;
    }

    .single-reform-page .s-reform-header {
        margin-top: 32px;
        margin-bottom: 0;
        border-bottom: 1px solid #ccc;
        padding-bottom: 20px;
    }
    .single-reform-page .s-reform-header h1 {
        font-size: 20px;
        line-height: 1.5;
        padding: 0 2%;
    }
    .single-reform-page .s-reform-cates {
        gap: 8px;
        padding: 0 2%;
    }
    .single-reform-page .s-reform-cates .cat-tag {
        min-width: auto;
        font-size: 12px;
        padding: 4px 14px;
    }
    .single-reform-page .s-reform-after {
        margin-bottom: 0;
    }
    .single-reform-page .s-reform-after-title {
        margin-bottom: 20px;
    }
    .single-reform-page .reform-swiper-main .swiper-img img {
        aspect-ratio: 4 / 3;
    }
    .single-reform-page .reform-swiper-thumbs {
        margin-top: 12px;
    }
    .single-reform-page .reform-swiper-thumbs .swiper-slide {
        width: 72px;
    }
    .single-reform-page .s-reform-content {
        padding: 40px 0;
        margin-bottom: 10px;
    }
    .single-reform-page .s-reform-text {
        padding: 20px 16px;
        font-size: 14px;
        line-height: 1.9;
    }
    .single-reform-page .s-reform-title {
        font-size: 18px;
        margin-bottom: 16px;
    }
    .single-reform-page .s-reform-before {
        margin-bottom: 20px;
    }
    .single-reform-page .s-reform-before-items {
        gap: 10px;
    }
    .single-reform-page .s-reform-before-item {
        flex-basis: calc(50% - 5px);
    }
    .single-reform-page .s-reform-main {
        padding-bottom: 0;
    }
    .single-reform-page .single-adjacent {
        width: 92%;
        max-width: 1000px;
        margin: 40px auto 0;
    }
}


@media screen and (max-width:768px){
    .s-works-top h1 {
        font-size: 20px;
        margin-bottom: 28px;
    }
    .s-works-topimg img {
        max-height: 50vh;
    }
    .s-info {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }
    .s-info dl {
        flex-wrap: wrap;
        gap: 8px;
    }
    .s-works-top > p {
        padding: 24px 16px;
        font-size: 14px;
    }
    .s-works-imgs > p a {
        flex-basis: calc(50% - 3px);
    }
    .s-works-points h2 {
        font-size: 22px;
        margin-bottom: 28px;
    }
    .s-works-point {
        margin-bottom: 28px;
    }
    .s-works-p-img,
    .s-works-p-info {
        flex-basis: 100%;
    }
    .s-works-p-img {
        margin-bottom: 14px;
    }
    .s-works-p-img img {
        max-height: 320px;
    }
}


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

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

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

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

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