/*
Theme Name: Estate Theme
Description: 不動産サイト用WordPressテーマ
Version: 1.0
Author: Your Name
*/

/*----------------------------------------------------------------------------------------------------------
 * 共通
----------------------------------------------------------------------------------------------------------*/
/* Reset & Base Styles */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-weight: 400;
	scroll-behavior: smooth;
}

.grecaptcha-badge{
	display:none;
}

/* WordPress管理バー対応 */
.admin-bar .header {
    top: 32px;
}

@media screen and (max-width: 782px) {
    .admin-bar .header {
        top: 46px;
    }
}

/* 基本ブロック
---------------------------------------------*/
.section,
.page section{
	padding-bottom: 5rem;
	padding-top: 5rem;
}

.container {
	max-width:1200px;
    margin: 0 auto;
    padding: 0 2rem;
}

@media screen and (max-width: 767px) {
	.section,
	.page section{
		padding-bottom: 3rem;
		padding-top: 3rem;	
	}
	.container{
		padding:0 1rem;
	}
}

/*背景色
---------------------------------------------*/
.bg-gray {
    background: #edf1f3;
}

/*幅調整
---------------------------------------------*/
.maxw1200{width:100%;max-width:1200px;margin:0 auto;}
.maxw1000{width:100%;max-width:1000px;margin:0 auto;}
.maxw800{width:100%;max-width:800px;margin:0 auto;}
.wfull{
	margin: 0 calc(50% - 50vw);
    padding: 5rem calc(50vw - 50%) 5rem;
}

/*グリッド
---------------------------------------------*/
.box-container{
	display:flex;
	flex-wrap: wrap;
	justify-content: space-around;;
}

@media screen and (max-width: 767px) {
	.col-sp12{width:calc((100% / 12) * 12);}
	.col-sp11{width:calc((100% / 12) * 11);}
	.col-sp10{width:calc((100% / 12) * 10);}
	.col-sp9{width:calc((100% / 12) * 9);}
	.col-sp8{width:calc((100% / 12) * 8);}
	.col-sp7{width:calc((100% / 12) * 7);}
	.col-sp6{width:calc((100% / 12) * 6);}
	.col-sp5{width:calc((100% / 12) * 5);}
	.col-sp4{width:calc((100% / 12) * 4);}
	.col-sp3{width:calc((100% / 12) * 3);}
	.col-sp2{width:calc((100% / 12) * 2);}
	.col-sp1{width:calc((100% / 12) * 1);}
	.box-container.reverse{flex-direction: column-reverse;}
}
@media screen and (max-width: 500px) {
	.col-sm12{width:calc((100% / 12) * 12);}
	.col-sm11{width:calc((100% / 12) * 11);}
	.col-sm10{width:calc((100% / 12) * 10);}
	.col-sm9{width:calc((100% / 12) * 9);}
	.col-sm8{width:calc((100% / 12) * 8);}
	.col-sm7{width:calc((100% / 12) * 7);}
	.col-sm6{width:calc((100% / 12) * 6);}
	.col-sm5{width:calc((100% / 12) * 5);}
	.col-sm4{width:calc((100% / 12) * 4);}
	.col-sm3{width:calc((100% / 12) * 3);}
	.col-sm2{width:calc((100% / 12) * 2);}
	.col-sm1{width:calc((100% / 12) * 1);}
}
@media screen and (min-width: 768px) {
	.col-md12{width:calc((100% / 12) * 12);}
	.col-md11{width:calc((100% / 12) * 11);}
	.col-md10{width:calc((100% / 12) * 10);}
	.col-md9{width:calc((100% / 12) * 9);}
	.col-md8{width:calc((100% / 12) * 8);}
	.col-md7{width:calc((100% / 12) * 7);}
	.col-md6{width:calc((100% / 12) * 6);}
	.col-md5{width:calc((100% / 12) * 5);}
	.col-md4{width:calc((100% / 12) * 4);}
	.col-md3{width:calc((100% / 12) * 3);}
	.col-md2{width:calc((100% / 12) * 2);}
	.col-md1{width:calc((100% / 12) * 1);}
}
@media screen and (min-width: 1200px) {
	.col-lg12{width:calc((100% / 12) * 12);}
	.col-lg11{width:calc((100% / 12) * 11);}
	.col-lg10{width:calc((100% / 12) * 10);}
	.col-lg9{width:calc((100% / 12) * 9);}
	.col-lg8{width:calc((100% / 12) * 8);}
	.col-lg7{width:calc((100% / 12) * 7);}
	.col-lg6{width:calc((100% / 12) * 6);}
	.col-lg5{width:calc((100% / 12) * 5);}
	.col-lg4{width:calc((100% / 12) * 4);}
	.col-lg3{width:calc((100% / 12) * 3);}
	.col-lg2{width:calc((100% / 12) * 2);}
	.col-lg1{width:calc((100% / 12) * 1);}
}

/* 余白
---------------------------------------------*/
.pd2p{padding:2%;}
.pdl20{padding-left:20px;}
.pdt2rem{padding-top:2rem;}

/* 改行
---------------------------------------------*/
@media screen and (max-width: 767px) {
	.sp-none{display:none;}
}
@media screen and (min-width: 768px) {
	.pc-none{display:none;}
}

/*フォント
---------------------------------------------*/
/*フォントファミリー*/
h1,h2,h3,h4,h5,h6,p,li,dd,dt,dl,th,td,a{
	font-family: 'Poppins','Noto Sans JP', sans-serif;
    color: #000;
    font-weight: 400;
}

h1,h2,h3,h4,h5,h6,p,li,dd,dt,dl,th,td{
	line-height:2.2;
}

p{
	font-size:1rem;
}

.txt{
	margin-bottom:2rem;
}

.search-error p {
    color: #e91e63;
    font-weight: bold;
}

.fs-80p{font-size:80%;}

@media screen and (max-width: 767px) {
	p {
		font-size:14px;
	}
}

/*位置*/
.txt-l{text-align:left;}
.txt-c{text-align:center;}
.txt-r{text-align:right;}

/*タイトルパターン1：左に漢字タイトル＆右に大英字*/
.box-title{
    padding-top: 60px;
    padding-bottom: 80px;
}
.box-title_sub{
    font-size: 120px;
    line-height: 1;
    position: absolute;
    right: 20px;
    color: #ccc;
}
.box-title_h2{
	font-size: 36px!important;
	font-weight: 700;
	letter-spacing: .1rem;
	margin-top: 70px;
	margin-bottom: 60px;
	z-index: 200;
	position: relative;
}

/*タイトルパターン2：画像上にタイトル*/
.box-title2 {
	position: relative;
	max-height:400px;
}
.box-title2 img {
	width: 100%; /* divの幅に対する割合 */
	max-height: 400px;
}
.box-title2 .img::before{
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	display: block;
	width: 100%;
	height: 100%;
	background: rgba(0,0,0, 0.4);
	max-height:400px;
}
.box-title2 h2 {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%,-50%);
	color:#fff;
	font-size:2rem;
	text-align:center;
	font-family: 'Poppins', sans-serif;
 	font-weight: 600;
 	letter-spacing: 0.25rem;
}
.box-title2 h2 span{
	display:block;
	font-size:14px;
	line-height:2.2;
}

.box-title3 {
	font-size: 3rem;
    border-top: 1px solid #000;
	padding: 5rem 0px 3rem 0;
}

.box-title3 .sub {
	display: block;
    font-size: 1rem;
}
.box-title3 .sub:before{
	content:"⚫︎";
	padding-right: 10px;
	color:#e91e63;
}

@media screen and (max-width: 767px) {
    .box-title {
		padding:50px 0px;
		width:100%;
    }
    .box-title_sub {
		position: relative;
		font-size: 4.5rem;
		right: 0;
		top: 20px;
		text-align: right;
		margin-bottom:0px!important;
	}
	.box-title_h2{
        font-size: 2rem!important;
        margin-top: -25px;
        margin-bottom: 0px;
		overflow-x:hidden;
		width: 100%;
		margin-left: calc(10%/2);
	}
	.box-title2 h2{
		line-height: 1.1;
	}
    .box-title3 {
        font-size: 2rem;
		padding:3rem 0 2rem 0;
    }
}



/*リスト
---------------------------------------------*/
ul li{
	list-style: none;
}

ul.check li:before{
	content: "✔︎";
    padding-right: 5px;
}

ol{
	margin-left:2rem;
}

/*ホバー
---------------------------------------------*/
a {
    text-decoration: none;
	color: #e91e63;
}
a:hover {
	color: #ccc;
}

/* Target Link - ターゲットリンクスタイル */
.target {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}
.target i{
	padding-left:10px;
}

/* 【共通】ボタン */
/* .btn */
.btn {
    display: inline-block;
    padding: 12px 30px;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
    z-index: 1;
    text-align: center;
    max-width: 250px;
	width:100%;
}

.btn::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    transition: left 0.3s ease;
    z-index: -1;
}

.btn:hover::before {
    left: 0;
}

/* 選択中 */
.btn.select {
    width: auto;
    min-width: auto;
    max-width: none;
    padding: 8px 16px;
}

.btn.active {
    background: #000;
    color: #fff;
    border-color: #000;
}

.btn.active::before {
    left: 0;
}


/* 背景ピンク */
.pink {
    background: #e91e63;
    border: 1px solid #e91e63;
    color: #fff;
}
.pink::before {
    background: #fff;
}

.pink:hover {
	color: #e91e63;
}

/* 背景黒 */
.black {
    background: #000;
    border: 1px solid #000;
    color: #fff;
}

.black::before {
    background: #fff;
}

.black:hover {
	color: #000!important;
}

/* 枠黒＆背景透明 */
.fblack {
    background: transparent;
    border: 1px solid #000;
    color: #000;
}

.fblack::before {
    background: #000;
}

.fblack:hover {
    color: #fff;
}

/* 枠白＆背景透明 */
.fwhite {
    background: transparent;
    border: 1px solid #fff;
    color: #fff;
}

.fwhite::before {
    background: #fff;
}

.fwhite:hover {
    color: #000;
}


@media screen and (max-width: 767px) {
	.btn{
		padding: 12px 18px;
		font-size: 14px;
	}
}

/*画像
---------------------------------------------*/
img {
    max-width: 100%;
    height: auto;
}

.hero-slide.fv01 {
    background-image: url('/wp-content/uploads/fv01.jpg');
}

.hero-slide.fv02 {
    background-image: url('/wp-content/uploads/fv02.jpg');
}

.hero-slide.fv03 {
    background-image: url('/wp-content/uploads/fv03.jpg');
}

.service-image.service01 {
    background-image: url('/wp-content/uploads/service01.jpg');
}

.service-image.service02 {
    background-image: url('/wp-content/uploads/service02.jpg');
}

.service-image.service03 {
    background-image: url('/wp-content/uploads/service03.jpg');
}

.service-image.service04 {
    background-image: url('/wp-content/uploads/service04.jpg');
}

.service-image.service05 {
    background-image: url('/wp-content/uploads/service05.jpg');
}

.service-image.service06 {
    background-image: url('/wp-content/uploads/service06.jpg');
}

.search-item-bg.search01 {
    background-image: url('/wp-content/uploads/top-search01.jpg');
}

.search-item-bg.search02 {
    background-image: url('/wp-content/uploads/top-search02.jpg');
}

/*----------------------------------------------------------------------------------------------------------
 * 【共通】ヘッダー
----------------------------------------------------------------------------------------------------------*/
/* ヘッダーバー */
.header {
    background: rgba(255, 255, 255, 0.9);
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    backdrop-filter: blur(5px);
}

.header-container {
	width:90%;
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
	height:60px;
}

/* ヘッダーロゴ */
.logo-image {
    width: 120px;
    height: auto;
}

/* グローバルメニュー */
.header .nav{
	width: calc(100% - 100px);
}
.nav-menu {
    display: flex;
	justify-content: flex-end;
    list-style: none;
    gap: 2rem;
    position: relative;
}

.nav-menu li {
    position: relative;
	font-size:14px;
	line-height:50px;
}

.nav-menu a {
    transition: color 0.3s;
	color: #000;
}

.nav-menu .btn a{
	color:#fff;
	line-height:2;
}

.nav-menu a:hover,
.nav-menu .btn a:hover{
    color: #e91e63;
}

.nav-menu li.btn{
	line-height: 1 !important;
	padding: 15px 30px;
}

/* グローバルメニュー（サブメニュー） */
.nav-menu ul.sub-menu {
    position: absolute;
    top: 56px;
    left: 0;
    background: #fff;
    min-width: 200px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px);
    transition: all 0.3s ease;
    z-index: 1000;
	border-top: 1px solid #f1f1f1;
}

.nav-menu li:hover > ul.sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.nav-menu ul.sub-menu li {
    width: 100%;
    border-bottom: 1px solid #f1f1f1;
	border-right: 1px solid #f1f1f1;
	border-left: 1px solid #f1f1f1;
	line-height:45px;
}

.nav-menu ul.sub-menu a {
	color: #000;
    display: block;
    padding: 10px 20px;
    transition: background 0.3s;
}

.nav-menu ul.sub-menu a:hover {
    background: #f1f1f1;
}

/* レスポンシブ */
@media (max-width: 991px) {
	.nav-menu{
		gap: 20px;
	}
	.nav-menu li.btn{
		max-width: 150px !important;
    	width: 150px;
	}
}

@media (min-width: 768px) {
	.hamburger-menu{
		display: none;
	}
}

@media (max-width: 767px) {
    .hamburger-menu {
        display: flex;
	    flex-direction: column;
	    justify-content: space-around;
	    width: 30px;
	    height: 30px;
	    background: transparent;
	    border: none;
	    cursor: pointer;
	    padding: 0;
	    z-index: 1001;
	}
	.hamburger-menu span {
	    display: block;
	    height: 3px;
	    width: 100%;
	    background: #000;
	    border-radius: 3px;
	    transition: all 0.3s ease;
	}

	.hamburger-menu.active span:nth-child(1) {
    	transform: rotate(45deg) translate(7px, 7px);
	}
	.hamburger-menu.active span:nth-child(2) {
    	opacity: 0;
	}
	.hamburger-menu.active span:nth-child(3) {
    	transform: rotate(-45deg) translate(7px, -7px);
	}
    .nav {
        position: fixed;
        top: 0;
        right: -100%;
        width: 280px;
        height: 100vh;
        background: #fff;
        transition: right 0.3s ease;
        z-index: 1000;
        padding: 80px 20px 20px;
        overflow-y: auto;
    }
    .nav.active {
        right: 0;
    }
    .nav-menu {
        flex-direction: column;
        gap: 0;
        width: 100%;
    }
    .nav-menu li {
        width: 100%;
    }
    .nav-menu ul.sub-menu {
        position: static;
        opacity: 1;
        visibility: visible;
        transform: none;
        background: #f8f9fa;
        margin-left: 20px;
        max-height: 300px;
        overflow: visible;
    }   
    .nav-contact {
        margin-top: 20px;
        display: block;
        text-align: center;
    }
	.nav-menu ul.sub-menu li{
		line-height: 25px;
	}
	.nav-menu ul.sub-menu li:last-child{
		margin-bottom: 10px;
	}
}

/*----------------------------------------------------------------------------------------------------------
 * 【共通】パンくず
----------------------------------------------------------------------------------------------------------*/
.breadcrumb-section {
    padding: 1rem 0;
}

.breadcrumb {
    margin: 0;
    padding: 0;
}

.breadcrumb-list {
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    margin: 0;
}

.breadcrumb-item {
    display: flex;
    align-items: center;
    font-size: 0.875rem;
}

.breadcrumb-item + .breadcrumb-item::before {
    content: ">";
    margin: 0 0.5rem;
}

.breadcrumb-item a{
	color: #000;
}
.breadcrumb-item a:hover {
    color: #ccc;
}

/* レスポンシブ対応 */
@media (max-width: 767px) {
    .breadcrumb-section {
        padding: 0.75rem 0;
    }
    
    .breadcrumb-item {
        font-size: 0.8rem;
    }
    
    .breadcrumb-item + .breadcrumb-item::before {
        margin: 0 0.375rem;
    }
}


/*----------------------------------------------------------------------------------------------------------
 * 【共通】フッター
----------------------------------------------------------------------------------------------------------*/
/* Footer Background Section */
.footer-background-section {
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    position: relative;
    background-image: url('/wp-content/uploads/img-footer.jpg');
	padding-top:0px!important;
	margin-top:150px;
	padding-bottom:0px!important;
}

.footer-background-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.8);
    z-index: 1;
}

/* Footer Free Section */
.footer-free-section {
    position: relative;
    z-index: 2;
    padding: 0;
}
.footer-background-section h2,
.footer-background-section h3,
.footer-background-section h4,
.footer-background-section p,
.footer-background-section a{
	color:#fff;
}

.footer-free-block {
    background-image: url('/wp-content/uploads/top_document_bl.jpg');
    background-size: cover;
    background-position: center;
	margin:0 auto;
    height: 200px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 2rem 3rem;
    border-radius: 8px;
    position: relative;
	top:-50px;
}

.footer-free-block::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.4);
    border-radius: 8px;
}

.footer-free-block h2 {
    font-size: 3rem;
    margin: 0;
    position: relative;
    z-index: 1;
}

.footer-free-block h3 {
    font-size: 1.2rem;
    margin: 0;
    margin-left: 1rem;
    flex: 1;
    position: relative;
    z-index: 1;
}

.footer-free-btn {
    width: 60px;
    height: 60px;
    border: 1px solid #fff;
    border-radius: 50%;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    text-decoration: none;
    transition: all 0.3s ease;
    position: relative;
    z-index: 1;
}

.footer-free-btn:hover {
    background: #fff;
    color: #000;
}

/* Footer Contact Section */
.footer-contact-section {
    position: relative;
    z-index: 1;
}

.footer-contact-block {
    color: #fff;
    margin-left: auto;
    padding-right: 2rem;
}

.footer-contact-block h2 {
    font-size: 2.5rem;
    margin-bottom: 0.5rem;
    text-align: left;
}

.footer-contact-block h3 {
    font-size: 1.2rem;
    margin-bottom: 1rem;
    text-align: left;
}

.footer-contact-block p {
    font-size: 0.9rem;
    line-height: 1.6;
    margin-bottom: 2rem;
    text-align: left;
}

.footer-contact-block .button-container {
    text-align: right;
}


/* フッターメイン */
.footer {
    padding: 3rem 0 1rem;
    position: relative;
    z-index: 10;
}

.footer a {
    text-decoration: none;
    font-size: 0.9rem;
    transition: color 0.3s ease;
    line-height: 1.4;
}

.footer a:hover {
    color: #777;
}

.footer-content {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 3rem;
    margin-bottom: 3rem;
    position: relative;
    z-index: 11;
}

.footer-section h3 {
    margin-bottom: 1rem;
    color: #e91e63;
}

.footer-section ul {
    list-style: none;
}

.footer-section ul li {
    margin-bottom: 0.5rem;
    line-height: 1.2;
    font-size: 0.9rem;
}

.footer-left {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    position: relative;
    z-index: 11;
}

.footer-logo-image {
    height: 50px;
    width: auto;
}

.footer-address p {
    margin-bottom: 0.5rem;
    line-height: 1.6;
	font-size:0.9rem;
}

.footer-center {
    position: relative;
    z-index: 11;
}

.footer-menus {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
}

.footer-menu-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-menu-list li {
    margin-bottom: 0.75rem;
}

.footer-menu-list .sub-menu {
    list-style: none;
    padding-left: 0.5rem;
    margin-top: 0.5rem;
}

.footer-menu-list .sub-menu li {
    margin-bottom: 0.5rem;
}

.footer-menu-list .sub-menu a:before{
	content:"-";
	padding-right:3px;
}

.footer-right {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    position: relative;
    z-index: 11;
}

.group-title {
    font-size: 1rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid #fff;
    padding-bottom: 0.5rem;
}

.group-subtitle {
    font-size: 0.9rem;
    margin-bottom: 1.5rem;
}

.group-companies {
    display: flex;
    flex-direction: column;
}

/* ポリシーメニュー */
.footer-nav {
    text-align: center;
}

/* コピーライト */
.footer-bottom p{
    text-align: center;
    font-size: 12px;
}


@media (max-width: 767px) {
	.footer-background-section{
		margin-top: 60px;
	}
    .footer-free-block {
        height: 160px;
        padding: 1.5rem 2rem;
    }
    .footer-free-block h2 {
        font-size: 2.5rem;
    }
    .footer-contact-block {
        padding-right: 0;
        margin-left: 0;
        max-width: 100%;
    }
    .footer-contact-block .button-container {
        text-align: center;
    }
    .footer-contact-block h2 {
        font-size: 2rem;
    }
    .footer-content {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    .footer-nav-menu {
        flex-direction: column;
        gap: 1rem;
    }
}

@media (max-width: 480px) {
    .footer {
        padding: 2rem 0 1rem;
    }    
    .footer-content {
        gap: 1.5rem;
    }
    .footer-logo-image {
        height: 40px;
	}/* 
    .property-item {
        grid-template-columns: 1fr;
        grid-template-rows: auto auto auto;
        gap: 1rem;
        padding: 1rem;
        text-align: center;
    }
    .property-image-left,
    .property-image-center {
        max-width: 200px;
        justify-self: center;
    }
    .property-details {
        text-align: left;
    }*/
}


/*----------------------------------------------------------------------------------------------------------
 * 【HOME】TOPページ
----------------------------------------------------------------------------------------------------------*/

/* ===========================================
   FV
   =========================================== */
.hero {
    height: 100vh;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: #fff;
    overflow: hidden;
}

.hero-slider {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.hero-slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    opacity: 0;
    transform: scale(1.2);
    transition: opacity 1s ease-in-out, transform 5s ease-out;
}

/* アクティブFVアニメーション */
.hero-slide.active {
    opacity: 1;
    animation: heroZoomIn 5s ease-out forwards;
}

.hero-slide::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.4);
    z-index: 1;
}

/* キーフレームアニメーション定義 */
@keyframes heroZoomIn {
    0% {
        transform: scale(1.2);
    }
    100% {
        transform: scale(1);
    }
}

.hero-content {
    position: relative;
    z-index: 2;
}

.hero-content h1 {
    font-size: 3rem;
    margin-bottom: 1rem;
	color: #fff;
}

.hero-content p {
    font-size: 1.2rem;
    opacity: 0.9;
	color: #fff;
}

/* About Section */
.about {
    background: #f1f1f1;
}

.about-content {
    text-align: center;
    max-width: 800px;
    margin: 0 auto;
    line-height: 1.8;
}

/* Service Section */
.service-category {
    margin-bottom: 4rem;
}


.service-grid a {
    position: relative;
    height: 250px;
    overflow: hidden;
    transition: transform 0.3s;
    display: block;
    text-decoration: none;
}

.service-grid a:hover {
    transform: translateY(-5px);
}

.service-image {
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    position: relative;
}

.service-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: rgba(0, 0, 0, 0.8);
    padding: 1rem;
    text-align: center;
}

.service-overlay h4{
	color:#fff;
}

.service-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 2rem;
    margin-top: 3rem;
}

.service-item {
    text-align: center;
    padding: 2rem;
    background: #fff;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s;
}

.service-item:hover {
    transform: translateY(-5px);
}

.service-item img {
    width: 80px;
    height: 80px;
    object-fit: cover;
    border-radius: 50%;
    margin-bottom: 1rem;
}

.service-item h3 {
    margin-bottom: 1rem;
}

@media (max-width: 767px) {
	.service-category{
		margin-bottom: 2rem;
	}
	.service-grid{
		margin-top:1rem;	
	}
}
/* ===========================================
   SEARCH SECTION - CONSOLIDATED
   =========================================== */

/* Search Grid - Base style for homepage */
.search-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
    margin-top: 3rem;
}

/* Search Grid - Wide variant for archive pages */
.search-grid.wide {
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
}

/* Search Item - Base style for homepage */
.search-item {
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s;
}

/* Search Item - Tall variant for archive pages */
.search-item.tall {
    height: 300px;
    background: none;
    box-shadow: none;
}

.search-item:hover {
    transform: translateY(-5px);
}

/* Search Item Background - Base style */
.search-item-bg {
    height: 200px;
    background-size: cover;
    background-position: center;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Search Item Background - Full size variant */
.search-item-bg.full {
    width: 100%;
    height: 100%;
}

.search-item-overlay {
    background: rgba(0, 0, 0, 0.4);
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
}

.search-item-content {
    position: relative;
    z-index: 1;
    text-align: center;
    color: #fff;
}

.search-item h3 {
    font-size: 1.5rem;
    margin-bottom: 0.5rem;
	color: #fff;
}

/* Archive page specific content styling */
.search-item-content.archive h3 {
    margin-bottom: 1rem;
}

.search-btn {
    background: rgba(255, 255, 255, 0.9);
    padding: 0.5rem 1rem;
    border-radius: 4px;
    margin-top: 1rem;
    display: inline-block;
    transition: background 0.3s;
}

.search-btn:hover {
    background: #fff;
}

/* お知らせ */
.news-item {
    display: flex;
    align-items: center;
    padding: 0.5rem;
    border-bottom: 1px solid #ccc;
    text-decoration: none;
    color: inherit;
    transition: background-color 0.3s ease;
}

/* ===========================================
   レスポンシブ
   =========================================== */
@media (max-width: 767px) {
    .news-item {
        flex-direction: column;
        align-items: flex-start;
    }
    .news-title {
        margin-left: 0;
        margin-top: 0.5rem;
    }
}

/*----------------------------------------------------------------------------------------------------------
 * 【共通】固定ページ
----------------------------------------------------------------------------------------------------------*/
/* Archive Sale Property Styles */
.page-header {
    padding: 2rem 0;
    margin-top: 80px;
}

.page-title {
    font-size: 2rem;
    margin-bottom: 0.5rem;
}

@media screen and (max-width: 767px) {
	.page-header {
    	margin-top: 0px;
	}
}
/*----------------------------------------------------------------------------------------------------------
 * 固定ページ（Company-会社情報）
----------------------------------------------------------------------------------------------------------*/
/*テーブル*/
.com-tbl{
	width:100%;
}
.com-tbl th,
.com-tbl td{
    line-height: 2;
    padding: 20px;
	border-bottom: 1px solid #ccc;
}

@media screen and (max-width: 767px) {
    .com-tbl th,
    .com-tbl td{
        line-height: 2;
        padding: 5px;
    }
}

/*map*/
#location1,
#location2,
#location3{
    background: linear-gradient(180deg, #ffffff 0%, #fff 50%, #edf1f3 50%, #edf1f3 100%);
    padding-bottom: 80px;
	margin-left: calc(-50vw + 50%);
    margin-right: calc(-50vw + 50%);
}
/*アクセスマップ*/
.com-map .ttl-ver::before {
    display: block;
     content: '';
    position: absolute;
    top: 0;
    left: 55px;
    width: 1px;
    height: 120px;
    background-color: #bd006d;
    -ms-transform: rotate(45deg);
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
}

.com-map .ttl-ver{
	margin: 0 0 40px 30px;
}
.com-map .ttl-ver{
	position: relative;
   padding: 70px 0 0 65px;
}
.com-map .ttl-ver .en{
    font-family: 'Overpass', sans-serif;
    display: block;
    margin-bottom: 12px;
    font-size: 13px;
    line-height: 1.0;
    letter-spacing: 0.01em;
}
.com-map .ttl-ver .jp{
    display: block;
    font-size: 26px;
    line-height: 1.0;
}
.com-map .ttl-ver_orange {
    color: #bd006d;
}
.com-map .box-map {
    position: relative;
}

.com-map .box-map_inner {
    padding: 0 30px;
}
.com-map .gmap {
    border: 1px solid #333;
}

.com-map .box-txt{
    margin:10px 0px;	
}

@media only screen and (max-width: 500px){
    .com-map .ttl-ver {
        margin: 0 0 40px 0px;
    }
}
@media only screen and (max-width: 767px){
    .com-map .gmap iframe {
        width: 100%;
        height: 300px;
        vertical-align: bottom;
    }
}

@media only screen and (min-width: 768px){
	.com-map{
		position: relative;
	}
	.com-map .ttl-ver {
		display: inline-block;
		padding: 95px 0 0 80px;
		position:relative;
	}
	.com-map.type1 .ttl-ver {
		position: absolute;
		top: 32%;
		left: calc((100% - 1150px) / 2);
		margin: 0;
	}
	.com-map.type2 .ttl-ver {
		position: absolute;
		top: 5%;
		right: 12.6%;
		margin: 0;
	}
    .com-map .ttl-ver .en {
        font-family: 'Overpass', sans-serif;
        display: block;
        position: absolute;
        top: 95px;
        left: 140px;
        margin-bottom: 12px;
        font-size: 16px;
        line-height: 1.0;
        letter-spacing: 0.06em;
        -webkit-writing-mode: vertical-rl;
        -ms-writing-mode: tb-rl;
        writing-mode: vertical-rl;
    }
    .com-map .ttl-ver .jp {
        display: inline-block;
        font-size: 36px;
        line-height: 1.0;
        -webkit-writing-mode: vertical-rl;
        -ms-writing-mode: tb-rl;
        writing-mode: vertical-rl;
        letter-spacing: 0.1em;
    }
    .com-map .box-map：not(.gmap) ::before {
        content: "";
        display: block;
        position: absolute;
        top: 38%;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: #eaf3f3;
        z-index: -100;
    }
    .com-map.type1 .box-map_inner {
        width: 65%;
        margin: 0 7% 0 28%;
        padding: 0;
    }
	.com-map.type2 .box-map_inner {
		width: 65%;
		margin: 0 28% 0 7%;
		padding: 0;
	}
    .com-map .gmap {
        width: 99%;
		height:532px;
    }
    .com-map .gmap iframe {
        width: 100%;
        height: 530px;
        vertical-align: bottom;
    }
}

/*----------------------------------------------------------------------------------------------------------
 * 固定ページ（事業内容-Service）
----------------------------------------------------------------------------------------------------------*/
/**/
#service-select ul.box-container{
	justify-content:space-around;
}

/*セクション背景*/
#service-rental,
#service-sale,
#service-management,
#service-interior,
#service-equipment,
#service-trade{
    background: linear-gradient(180deg, #ffffff 0%, #fff 30%, #edf1f3 30%, #edf1f3 100%);
    padding-bottom: 80px;
}

.box-txt p.title2{
    margin-top: 50px;
    font-weight: 600;
    font-size: 15px;
	letter-spacing:0.1rem;
}
.box-txt p.sub{	
    font-size: 1.5em;
    line-height: 1.5em;
    font-weight: 900;
}

@media screen and (max-width:767px) {
	#service-rental,
	#service-sale,
	#service-management,
	#service-interior,
	#service-equipment,
	#service-trade{
  		background: linear-gradient(180deg, #ffffff 0%, #fff 20%, #edf1f3 20%, #edf1f3 100%);
		padding-bottom: 1rem;
	}	
}

@media screen and (max-width:550px) {
	#service-select ul.box-container{
	    justify-content: flex-start;
	}
	#service-select ul.box-container li{
	    margin: 0px 10px;
	}
}

/*----------------------------------------------------------------------------------------------------------
 * 固定ページ（事業詳細-Service）
----------------------------------------------------------------------------------------------------------*/
.box-service{
	text-align:center;
}
.box-service img{
    max-width: 100px !important;
    width: 80%;
}
.box-service p{
	font-size:14px;
	line-height:1.8;
}


/*----------------------------------------------------------------------------------------------------------
 * 固定ページ（お問い合わせ-Contact）
----------------------------------------------------------------------------------------------------------*/
.wpcf7{
    border: none;
    background: transparent;
}
.wpcf7 p{
	margin-bottom:0;
}
.wpcf7 input,
.wpcf7 textarea{
	padding: 0.5rem;
}

/*テーブル設定*/
table{margin-bottom:0;}
.wpcf7 table th{
	vertical-align: top;
	text-align: left;
}
.wpcf7-form table tr th {width:30%;}
.wpcf7-form table tr td {width:70%;}

.wpcf7-form table tr th,
.wpcf7-form table tr td {
    border-bottom: 1px solid #ccc;
    padding: 20px;
}

@media screen and (max-width: 767px){
  .wpcf7-form table tr th ,
  .wpcf7-form table tr td {
      display:block;
      width:100%;
  }
    .wpcf7 table th{
        padding: 10px 0px 0px 0px;
        border-bottom: 0px solid #fff;
    }
    .wpcf7 table td{
        padding: 0px 15px 10px 15px;
    }
}

/*必須項目*/
.red {
    background: #030303;
    color: #FFF !important;
    padding: 3px;
    border-radius: 10%;
    font-size: 11px;
    margin-right: 5px;
}

/*任意項目*/
.blue_arbitrarily {
    background: #ccc;
    color: #FFF !important;
    padding: 3px;
    border-radius: 10%;
    font-size: 11px;
    margin-right: 5px;
}

/*項目名サブタイトル*/
.blue_2 {
    font-size: 11px;
    color: #ccc;
	display:block;
}
@media screen and (max-width: 767px){
    .blue_2{
        top: -10px;
        position: relative;
    }
}

.textst, .mailst, .telst {
	max-width: 280px;
}

.wpcf7-submit:hover{
	background:#000;
	color: #fff;
}
/*
.wpcf7-spinner{
	display:none;
}*/


/*reCAPTCHA*/
.grecaptcha-badge { visibility: hidden; }



/*----------------------------------------------------------------------------------------------------------
 *【投稿】お知らせ関連
----------------------------------------------------------------------------------------------------------*/
/* ===========================================
   NEWS SECTION - CONSOLIDATED
   =========================================== */
.news-date {
    min-width: 150px;
}

.news-category{
    min-width: 100px;
    border: 1px solid #000;
    text-align: center;
    padding: 5px;
}

.news-title {
    flex: 1;
    margin-left: 2rem;
    text-decoration: none;
}

.news-item:hover .news-date,
.news-item:hover .news-title {
    color: #ccc;
}
.news-item:hover .news-category{
	color: #ccc;
	border: 1px solid #ccc;
}

.news-more {
    text-align: center;
    margin-top: 3rem;
}

/* ===========================================
   SINGLE POST PAGE - 記事詳細ページ
   =========================================== */

.single-content {
    padding: 3rem 0;
}

.post-article {
    background: #fff;
    padding: 2rem;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.post-header {
    margin-bottom: 2rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid #f1f1f1;
}

.post-meta {
    margin-bottom: 1rem;
}

.post-date {
    font-size: 0.9rem;
}

.post-title {
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 1.4;
    margin: 0;
}
.post-content {
    line-height: 1.8;
    margin-bottom: 2rem;
}

.post-content p {
    margin-bottom: 1.5rem;
}

.post-content h2,
.post-content h3,
.post-content h4 {
    margin: 2rem 0 1rem 0;
}

.post-content img {
    max-width: 100%;
    height: auto;
}
.post-tags {
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 1px solid #f1f1f1;
}

.post-tags h3 {
    font-size: 1rem;
    margin-bottom: 0.5rem;
}

.tag-list a {
    display: inline-block;
    background: #f1f1f1;
    color: #000;
    padding: 0.3rem 0.8rem;
    margin: 0.2rem 0.3rem 0.2rem 0;
    border-radius: 4px;
    text-decoration: none;
    font-size: 0.9rem;
    transition: background-color 0.3s ease;
}

.tag-list a:hover {
    background: #e91e63;
    color: #fff;
}

/* 前へ、次へ、ページャー */
.post-navigation {
    max-width: 800px;
    margin: 2rem auto;
    padding: 1.5rem 0;
    border-top: 1px solid #f1f1f1;
}

.nav-links {
    display: flex;
    justify-content: space-between;
    gap: 2rem;
}

.nav-previous,
.nav-next {
    flex: 1;
}

.nav-link {
    display: block;
    padding: 1rem;
    background: #f8f9fa;
    border-radius: 4px;
    text-decoration: none;
    transition: background-color 0.3s ease;
}

.nav-link:hover {
    background: #f1f1f1;
}

.nav-direction {
    display: block;
    font-size: 0.9rem;
    color: #777;
    margin-bottom: 0.3rem;
}

.nav-title {
    display: block;
    line-height: 1.4;
}

.nav-next .nav-link {
    text-align: right;
}

.back-to-list {
    max-width: 800px;
    margin: 2rem auto;
    text-align: center;
}

/* モバイル対応 */
@media (max-width: 767px) {    
    .post-title {
        font-size: 1.5rem;
    }
    
    .nav-links {
        flex-direction: column;
        gap: 1rem;
    }
    
    .nav-next .nav-link {
        text-align: left;
    }
}

/*----------------------------------------------------------------------------------------------------------
 *【カスタム投稿】売買物件（一覧ページ）
----------------------------------------------------------------------------------------------------------*/
.filter-section {
    background: #fff;
    padding: 2rem;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    margin-bottom: 2rem;
}

.status-filter {
    display: flex;
    gap: 1rem;
    margin-bottom: 2rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid #ccc;
}

.status-filter .btn {
    flex: 0 0 auto;
    min-width: 120px;
}

.type-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.type-filter .btn {
    flex: 0 0 auto;
    min-width: 80px;
}

/* Results Count - 検索結果件数表示 */
.results-count {
    margin-bottom: 1rem;
    font-size: 0.9rem;
}

/* Results Count variant - margin reset */
.results-header .results-count {
    margin: 0;
}

.properties-list {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.property-item {
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    padding: 1rem;
    margin-bottom: 2rem;
    transition: transform 0.3s;
}

.property-item:hover {
    transform: translateY(-2px);
}

/* Price Highlight - Base style for archive pages */
.price-highlight {
    font-size: 1.1rem;
    color: #e91e63;
}

/* Price Highlight - Large variant for single property pages */
.price-highlight.large {
    font-size: 1.3rem;
    font-weight: bold;
}

.property-actions {
	width: 100%;
    text-align: center;
    margin: 20px 0px;
}

.pagination {
    text-align: center;
    margin-top: 3rem;
}

.pagination a,
.pagination span {
    display: inline-block;
    padding: 0.5rem 1rem;
    margin: 0 0.25rem;
    border: 1px solid #ccc;
    border-radius: 4px;
}

.pagination .current {
    background: #e91e63;
    color: #fff;
    border-color: #e91e63;
}

.no-properties {
    text-align: center;
    padding: 3rem;
}

/* Responsive Styles */
@media (max-width: 767px) {
    .search-grid {
        grid-template-columns: 1fr;
    }
    .property-item {
        grid-template-columns: 1fr 1fr 1fr;
        gap: 0.75rem;
        padding: 0.75rem;
    }
    .property-image-left,
    .property-image-center {
        max-width: 200px;
    }
    .status-filter {
        flex-direction: column;
        gap: 0.5rem;
    }
    .type-filter {
        justify-content: center;
    }
    .property-actions {
        flex-direction: column;
    }
}

@media (max-width: 480px) {
    .property-item {
        grid-template-columns: 1fr 1fr 1fr;
        gap: 0.5rem;
        padding: 0.5rem;
    }  
    .property-image-left,
    .property-image-center {
        max-width: 150px;
    }
}


/*----------------------------------------------------------------------------------------------------------
 *【カスタム投稿】売買物件（詳細ページ）
----------------------------------------------------------------------------------------------------------*/
/* Single Sale Property Styles */
.property-detail-single {
    padding: 2rem 0;
}

.property-title-main {
    font-size: 2.5rem;
    margin-bottom: 2rem;
    text-align: center;
    line-height: 1.4;
}

/* 画像スライダー */
.property-slider-section {
    margin-bottom: 3rem;
}

.main-slider {
    position: relative;
    max-width: 800px;
    margin: 0 auto 2rem;
    background: #f1f1f1;
    border-radius: 8px;
    overflow: hidden;
}

.slider-container {
    position: relative;
    width: 100%;
    height: 500px;
}

.slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    transition: opacity 0.5s ease-in-out;
}

.slide.active {
    opacity: 1;
}

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

.slider-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(0, 0, 0, 0.4);
    color: #fff;
    border: none;
    font-size: 2rem;
    width: 50px;
    height: 50px;
    cursor: pointer;
    transition: background 0.3s;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.slider-btn:hover {
    background: rgba(0, 0, 0, 0.8);
}

.prev-btn {
    left: 10px;
}

.next-btn {
    right: 10px;
}

.slider-counter {
    position: absolute;
    bottom: 15px;
    right: 15px;
    background: rgba(0, 0, 0, 0.8);
    color: #fff;
    padding: 0.5rem 1rem;
    border-radius: 20px;
    font-size: 0.9rem;
}

/* サムネイルスライダー */
.thumbnail-slider {
    max-width: 800px;
    margin: 0 auto;
}

.thumbnail-container {
    display: flex;
    gap: 0.5rem;
    overflow-x: auto;
    padding: 0.5rem 0;
    scrollbar-width: thin;
}

.thumbnail-container::-webkit-scrollbar {
    height: 6px;
}

.thumbnail-container::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 3px;
}

.thumbnail-container::-webkit-scrollbar-thumb {
    background: #777;
    border-radius: 3px;
}

.thumbnail {
    flex-shrink: 0;
    width: 80px;
    height: 60px;
    border-radius: 4px;
    overflow: hidden;
    cursor: pointer;
    border: 2px solid transparent;
    transition: border-color 0.3s;
}

.thumbnail.active {
    border-color: #e91e63;
}

.thumbnail:hover {
    border-color: #e91e63;
    opacity: 0.8;
}

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

.no-image {
    max-width: 800px;
    margin: 0 auto;
    text-align: center;
}

.no-image img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
}

/* 物件情報テーブル */
.property-info-section {
    margin-bottom: 3rem;
}

.property-table {
    width: 100%;
    max-width: 800px;
    margin: 0 auto;
    border-collapse: collapse;
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.property-table th,
.property-table td {
    padding: 1rem 1.5rem;
    text-align: left;
    border-bottom: 1px solid #ccc;
}

.property-table th {
    background: #f1f1f1;
    font-weight: 600;
    width: 150px;
    color: #777;
}


/* Removed duplicate - consolidated above with variants */

/* 各セクション */
.property-description-section,
.property-features-section {
    margin-bottom: 3rem;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}

.property-description-section h3,
.property-features-section h3 {
    font-size: 1.5rem;
    margin-bottom: 1.5rem;
    border-bottom: 2px solid #e91e63;
    padding-bottom: 0.5rem;
}

.description-content {
    background: #fff;
    padding: 2rem;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    line-height: 1.8;
}

.features-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 0.5rem;
    list-style: none;
    padding: 0;
    background: #fff;
    padding: 2rem;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.features-list li {
    background: #f1f1f1;
    padding: 0.75rem 1rem;
    border-radius: 4px;
    border-left: 3px solid #e91e63;
    font-size: 0.9rem;
}

.contact-section {
    background: #fff;
    padding: 2rem;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    text-align: center;
    margin-bottom: 3rem;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}

.contact-section h3 {
    font-size: 1.5rem;
    margin-bottom: 1.5rem;
    border-bottom: 2px solid #e91e63;
    padding-bottom: 0.5rem;
}


/* Single Rental Property Styles */
.property-detail {
    padding: 2rem 0;
}

.property-content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    margin-bottom: 3rem;
}

.property-images {
    position: sticky;
    top: 100px;
}

.main-image img {
    width: 100%;
    border-radius: 8px;
    margin-bottom: 1rem;
}

.gallery-images {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.5rem;
}

.gallery-item img {
    width: 100%;
    height: 80px;
    object-fit: cover;
    border-radius: 4px;
    cursor: pointer;
    transition: opacity 0.3s;
}

.gallery-item img:hover {
    opacity: 0.8;
}


.property-description,
.property-features {
    margin-bottom: 2rem;
    background: #fff;
    padding: 2rem;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.property-description h3,
.property-features h3 {
    margin-bottom: 1rem;
    border-bottom: 2px solid #e91e63;
    padding-bottom: 0.5rem;
}

.related-properties {
    margin-top: 3rem;
    padding-top: 3rem;
    border-top: 1px solid #ccc;
}

.related-properties h3 {
    margin-bottom: 2rem;
    text-align: center;
    font-size: 1.5rem;
}

.related-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
}

.related-property {
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s;
}

.related-property:hover {
    transform: translateY(-5px);
}

.related-image {
    height: 150px;
    overflow: hidden;
}

.related-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.related-info {
    padding: 1rem;
}

.related-info h4 {
    margin-bottom: 0.5rem;
}

.related-rent {
    color: #e91e63;
    font-weight: bold;
}

/* Single Property Pages Responsive Styles */
@media (max-width: 767px) {
    .property-title-main {
        font-size: 1.8rem;
        margin-bottom: 1.5rem;
    }
    .slider-container {
        height: 300px;
    }
    .property-table th {
        width: 120px;
        font-size: 0.9rem;
        padding: 0.75rem 1rem;
    }
    .property-table td {
        padding: 0.75rem 1rem;
        font-size: 0.9rem;
    }
    .slider-btn {
        width: 40px;
        height: 40px;
        font-size: 1.5rem;
    }
    .features-list {
        grid-template-columns: 1fr;
        padding: 1.5rem;
    }
    .description-content {
        padding: 1.5rem;
    }
    .property-content {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    .property-images {
        position: static;
    }
    .gallery-images {
        grid-template-columns: repeat(2, 1fr);
    }
    .related-grid {
        grid-template-columns: 1fr;
    }
}


/*----------------------------------------------------------------------------------------------------------
 * fade-upアニメーション
----------------------------------------------------------------------------------------------------------*/

/* fade-up.js で使用するCSS */

/* スクロールをしたら出現する要素にはじめに透過0を指定 */
.fadeUpTrigger {
    opacity: 0;
}

/* 下から */
.fadeUp {
    animation-name: fadeUpAnime;
    animation-duration: 1s;
    animation-fill-mode: forwards;
    opacity: 0;
}

@keyframes fadeUpAnime {
    from {
        opacity: 0;
        transform: translateY(200px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* 背景色が伸びて出現アニメーション */

/* スクロールをしたら出現する要素にはじめに透過0を指定 */
.bgLRextendTrigger {
    opacity: 0;
}

/* 背景色が伸びて出現（共通） */
.bgextend {
    animation-name: bgextendAnimeBase;
    animation-duration: 1s;
    animation-fill-mode: forwards;
    position: relative;
    overflow: hidden; /* はみ出た色要素を隠す */
    opacity: 0;
}

@keyframes bgextendAnimeBase {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;  
    }
}

/* 中の要素 */
.bgappear {
    animation-name: bgextendAnimeSecond;
    animation-duration: 1s;
    animation-delay: 0.6s;
    animation-fill-mode: forwards;
    opacity: 0;
}

@keyframes bgextendAnimeSecond {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}

/* 左から */
.bgLRextend::before {
    animation-name: bgLRextendAnime;
    animation-duration: 1s;
    animation-fill-mode: forwards;
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    background-color: #333; /* 伸びる背景色の設定 */
    left: 0;
    top: 0;
}

@keyframes bgLRextendAnime {
    0% {
        transform-origin: left;
        transform: scaleX(0);
    }
    50% {
        transform-origin: left;
        transform: scaleX(1);
    }
    50.001% {
        transform-origin: right;
    }
    100% {
        transform-origin: right;
        transform: scaleX(0);
    }
}

/*----------------------------------------------------------------------------------------------------------
 *【カスタム投稿】賃貸物件（一覧ページ）
----------------------------------------------------------------------------------------------------------*/

/* Search Section */
.search-section {
    margin-bottom: 2rem;
}

.search-form-wrap {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    margin-bottom: 2rem;
}

.search-title {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.5rem 2rem;
    border-bottom: 1px solid #ccc;
}

.search-title h3 {
    margin: 0;
}

.toggle-search {
    background: none;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.9rem;
}

.toggle-search .arrow {
    transition: transform 0.3s;
}

.toggle-search.active .arrow {
    transform: rotate(180deg);
}

.search-fields {
    padding: 2rem;
    display: none;
}

.search-fields.active {
    display: block;
}

.search-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    margin-bottom: 1.5rem;
}

.search-group {
    display: flex;
    flex-direction: column;
}

.search-group label {
    font-weight: 500;
    margin-bottom: 0.5rem;
    font-size: 0.9rem;
}

.search-select,
.search-input{
    padding: 0.75rem;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 0.9rem;
}

.range-inputs {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.range-inputs .search-select {
    flex: 1;
}

.range-separator {
    font-size: 0.9rem;
}

.checkbox-group {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.checkbox-label {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    background: #f1f1f1;
    padding: 0.5rem 0.75rem;
    border-radius: 4px;
    cursor: pointer;
    font-size: 0.85rem;
    transition: background 0.3s;
}

.checkbox-label:hover {
    background: #f1f1f1;
}

.checkbox-label input[type="checkbox"] {
    margin: 0;
}

.search-actions {
    display: flex;
    gap: 1rem;
    justify-content: center;
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 1px solid #ccc;
}

.results-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 2rem;
    padding: 1rem;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

/* Removed duplicate - consolidated above */

.sort-options {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.sort-options label {
    font-size: 0.9rem;
}

.sort-select {
    padding: 0.5rem;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 0.9rem;
}

.properties-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 2rem;
    margin-bottom: 3rem;
}

.property-card {
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s;
}

.property-card:hover {
    transform: translateY(-5px);
}

/* Property Image - Card style for rental listings */
.property-image {
    height: 200px;
    overflow: hidden;
    position: relative;
}

.property-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
	padding:1rem;
}

.new-badge {
    position: absolute;
    top: 10px;
    left: 10px;
    background: #e91e63;
    color: #fff;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-size: 0.8rem;
    font-weight: bold;
}

.property-info{
	padding:1rem;	
}
.property-info-table{
	font-size:14px;	
}

.property-rent {
    font-weight: bold;
    color: #e91e63;
    font-size: 1.1rem;
    margin-bottom: 0.5rem;
}

.property-details-row {
    display: flex;
    gap: 1rem;
    margin-bottom: 0.5rem;
    font-size: 0.9rem;
}

.property-station {
    font-size: 0.9rem;
    margin-bottom: 1rem;
}

.property-terms {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.term-tag {
    background: #f1f1f1;
    padding: 0.25rem 0.5rem;
    border-radius: 12px;
    font-size: 0.8rem;
}

/* Archive Rental Property Responsive */
@media (max-width: 767px) {
    .search-row {
        grid-template-columns: 1fr;
        gap: 1rem;
    }
    .results-header {
        flex-direction: column;
        gap: 1rem;
        align-items: flex-start;
    }
    .properties-grid {
        grid-template-columns: 1fr;
    }
    .checkbox-group {
        justify-content: center;
    }
    .search-actions {
        flex-direction: column;
    }
}

/*----------------------------------------------------------------------------------------------------------
 * 2カラムレイアウト（サイドバー付き）
----------------------------------------------------------------------------------------------------------*/
.content-layout {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 3rem;
    align-items: start;
}

.main-content {
    min-width: 0;
}

.sidebar {
    position: sticky;
    top: 100px;
    max-height: calc(100vh - 120px);
    overflow-y: auto;
}

/* ウィジェットスタイル */
.widget {
    background: #fff;
    margin-bottom: 2rem;
    padding: 1.5rem;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.widget-title {
    font-size: 1.2rem;
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid #e91e63;
    color: #333;
}

.widget ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.widget li {
    margin-bottom: 0.5rem;
    padding: 0.5rem 0;
    border-bottom: 1px solid #f1f1f1;
}

.widget li:last-child {
    border-bottom: none;
}

.widget a {
    color: #333;
    text-decoration: none;
    transition: color 0.3s;
}

.widget a:hover {
    color: #e91e63;
}

/* カテゴリーリスト */
.widget_categories ul li {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.widget_categories .count {
    background: #f1f1f1;
    color: #666;
    padding: 0.2rem 0.5rem;
    border-radius: 12px;
    font-size: 0.8rem;
}

/* 最近の投稿 */
.widget_recent_entries ul li {
    padding: 0.75rem 0;
}

.widget_recent_entries .post-date {
    font-size: 0.8rem;
    color: #666;
    margin-top: 0.2rem;
}

/* タグクラウド */
.widget_tag_cloud .tagcloud a {
    display: inline-block;
    background: #f1f1f1;
    color: #333;
    padding: 0.3rem 0.8rem;
    margin: 0.2rem 0.3rem 0.2rem 0;
    border-radius: 4px;
    text-decoration: none;
    font-size: 0.9rem !important;
    transition: background-color 0.3s ease;
}

.widget_tag_cloud .tagcloud a:hover {
    background: #e91e63;
    color: #fff;
}

/* 検索ウィジェット */
.widget_search .search-field {
    width: 100%;
    padding: 0.75rem;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 0.9rem;
}

.widget_search .search-submit {
    background: #e91e63;
    color: #fff;
    border: none;
    padding: 0.75rem 1.5rem;
    border-radius: 4px;
    cursor: pointer;
    margin-top: 0.5rem;
    transition: background 0.3s;
}

.widget_search .search-submit:hover {
    background: #c2185b;
}

/* レスポンシブ対応 */
@media (max-width: 767px) {
    .content-layout {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    
    .sidebar {
        position: static;
        max-height: none;
        overflow-y: visible;
    }
    
    .widget {
        padding: 1rem;
        margin-bottom: 1.5rem;
    }
    
    .widget-title {
        font-size: 1.1rem;
    }
}