/* 見出しフォント */
.heading_ss {
	font-size: 12px;
	line-height: 2.3;
	letter-spacing: 0.05em;
	font-family: "Zen Old Mincho", serif;
	font-weight: normal;
}

.heading_s {
	font-size: 19px;
	line-height: 1.4;
	letter-spacing: 0.05em;
	font-family: "Zen Old Mincho", serif;
	font-weight: normal;
}

.heading_m {
	font-size: 22px;
	line-height: 1.2;
	letter-spacing: 0.05em;
	font-family: "Zen Old Mincho", serif;
	font-weight: normal;
}

.heading_l {
	font-size: 27px;
	line-height: 1;
	letter-spacing: 0.05em;
	font-family: "Zen Old Mincho", serif;
	font-weight: normal;
}

.heading-hol_ss {
	font-size: 12px;
	line-height: 2.3;
	letter-spacing: 0.05em;
	writing-mode: vertical-rl;
	font-family: "Zen Old Mincho", serif;
	vertical-align: top;
	font-weight: normal;
}

.heading-hol_s {
	font-size: 19px;
	line-height: 1.4;
	letter-spacing: 0.5em;
	writing-mode: vertical-rl;
	font-family: "Zen Old Mincho", serif;
	vertical-align: top;
	font-weight: normal;
}

.heading-hol_m {
	font-size: 22px;
	line-height: 1.2;
	letter-spacing: 0.05em;
	writing-mode: vertical-rl;
	font-family: "Zen Old Mincho", serif;
	vertical-align: top;
	font-weight: normal;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-weight: 500;
}

/* 本文フォント */
.main-text_ss {
	font-size: 14px;
	line-height: 1.9;
	letter-spacing: 0.05em;
}

.main-text_s {
	font-size: 15px;
	line-height: 1.7;
	letter-spacing: 0.05em;
}

.main-text_m {
	font-size: 16px;
	line-height: 1.4;
	letter-spacing: 0.05em;
}

.main-text-hol_ss {
	font-size: 14px;
	line-height: 1.8;
	letter-spacing: 0.05em;
	writing-mode: vertical-rl;
	vertical-align: top
}

/* リンクフォント */
.link_s {
	font-size: 16px;
	line-height: 1.7;
	letter-spacing: 0.05em;
	font-family: "Zen Old Mincho", serif;
}

.link_m {
	font-size: 16px;
	line-height: 1.3;
	letter-spacing: 0.05em;
	font-family: "Zen Old Mincho", serif;
}

/* カテゴリフォント */
.category_s {
	font-size: 15px;
	line-height: 1.2;
	letter-spacing: 0.05em;
	font-family: "Zen Old Mincho", serif;
}

.category-hol_s {
	font-size: 15px;
	line-height: 1.2;
	letter-spacing: 0.05em;
	writing-mode: vertical-rl;
	vertical-align: top;
	font-family: "Zen Old Mincho", serif;
}

.category_s.sp {
	display: none;
}

@media (max-width:768px) {
	.category-hol_s.pc {
		display: none;
	}

	.category_s.sp {
		display: flex;
	}
}

.yakuhan {
	font-family: YakuHanJP, "Zen Kaku Gothic New";
	font-weight: 400;
}

/* ------------------- header ------------------ */

/* =========================
   追従ヘッダー（ロゴ＋ハンバーガー）
   ========================= */

/* ヘッダ全体のベース */
.site-header {
	position: relative;
	z-index: 1000;
}

/* 追従バー本体（画面上部に固定） */
.site-header-bar {
	position: fixed;
	/* スクロールしても追従 */
	inset-inline: 0;
	/* left:0; right:0; のショートハンド */
	top: 0;
	z-index: 50;
	/* スライダーより前面に */
	pointer-events: none;
	/* 子要素にだけクリックを通すため、一旦無効に */
	width: 95%;
	margin: 0 auto;
}



/* インナー：幅を制限して中央寄せ */
.site-header-inner {
	padding: 16px 0;
	/* ヘッダーの内側余白 */
	display: flex;
	align-items: center;
	justify-content: space-between;
	pointer-events: auto;
	/* ここから内側はクリックOK */
	align-items: start;
	transition:
		opacity 0.25s ease,
		transform 0.25s ease;
	opacity: 1;
	transform: translateY(0);
}

/* 消えるとき（スクロール状態が切り替わる瞬間） */
.site-header-inner.is-header-hiding {
	opacity: 0;
	transform: translateY(4px);
}

/* 現れるとき */
.site-header-inner.is-header-showing {
	opacity: 1;
	transform: translateY(0px);
}

/* ヘッダーがファーストビュー上にいる間の状態 */
.site-header.is-over-fv .hamburger-line {
	background-color: currentColor;
}

.site-header.is-over-fv .primary-nav a {
	color: currentColor;
}

/* ファーストビューを抜けて、通常コンテンツ上に来たとき */
.site-header:not(.is-over-fv) .hamburger-line {
	background-color: #858585;
}

.site-header:not(.is-over-fv) .primary-nav a {
	color: #858585;
}

.header-hamburger {
	position: relative;
	/* ★絶対配置の基準にする */
	display: inline-block;
	width: 50px;
	height: 50px;
	padding: 0;
	border: none;
	background: transparent;
	cursor: pointer;
}

.hamburger-line {
	position: absolute;
	/* ★中央基準に配置 */
	top: 50%;
	left: 50%;
	width: 40px;
	height: 1px;
	background-color: currentColor;
	border-radius: 999px;
	transform-origin: center;
	transition:
		transform 0.4s ease,
		width 0.25s ease,
		opacity 0.4s ease;
}

/* 初期位置：上下にズラす量（ここで間隔調整） */
.line-top {
	transform: translate(-50%, -5px);

}

.line-bottom {
	transform: translate(-50%, 5px);
}

/* 開いているときは常にクロス */
.header-hamburger.is-open .line-top {
	transform: translate(-50%, 0) rotate(25deg);
}

.header-hamburger.is-open .line-bottom {
	transform: translate(-50%, 0) rotate(-25deg);
}

.header-hamburger.is-open .hamburger-line {
	background-color: #858585;
}

/* ロゴ（右上） */
.header-logo a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}


/* ==============
   フルスクリーンメニュー
   ============== */

.global-nav {
	position: fixed;
	inset: 0;
	/* top:0; right:0; bottom:0; left:0 */
	z-index: 40;
	opacity: 0;
	visibility: hidden;
	transition:
		opacity 0.35s ease,
		visibility 0.35s ease;
}

.global-nav-back {
	background-color: #ffffff;
	width: 100vw;
	height: 100vh;
	display: flex;
	flex-direction: column;
	padding: 6% 2.5% 2% 3%;
}

/* 開いているとき */
.global-nav.is-open {
	opacity: 1;
	visibility: visible;
}

/* 内側の白いパネル */
.global-nav-inner {
	box-sizing: border-box;
	display: flex;
}

/* 左カラム：メインメニュー */
.global-nav-main {
	display: flex;
	flex-direction: column;
	min-width: 300px;
	margin-right: 6%;
}

/* 各ブロック */
.global-nav-block {
	margin-bottom: 67px;
}

.global-nav-subnav {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 20px;
}

.global-nav-separator {
	opacity: 0.6;
}

/* 共通リンク */
.global-nav-link {
	font-size: 16px;
	line-height: 1.4;
	letter-spacing: 0.05em;
	text-decoration: none;
}

.global-nav-link.main-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 8px;
}

.global-nav-link.tel-link {
	opacity: 0.8;
}

/* 下部の住所 */
.global-nav-address {}

/* 右カラム：画像＋コピー */
.global-nav-center {
	min-width: 220px;
	margin-right: 6%;
}

.global-nav-side {
	display: flex;
	justify-content: space-between;
	margin: 0 0 0 auto;
	width: 50vw;
	height: 70vh;
}

.global-nav-contact {
	margin: 0 0 52px;
}

.global-nav-contact .view-more-link {
	padding: 0 0 13px;
	width: 208px;
}

.global-nav-photo {
	width: 100%;
	overflow: hidden;
}

.global-nav-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.global-nav-bottom {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	margin: auto 0 0
}

.global-nav-bottom p {
	margin: 0;
}

.global-nav-copy {
	opacity: 0.6;
}


/* 通常メニュー：縦並び（左側） */
.primary-nav {
	display: none;
	/* デフォルトでは隠す：スクロール時用 */
}

.primary-nav-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	/* スクショのように縦並び */
	gap: 8px;
}

.primary-nav-list a {
	text-decoration: none;
	font-size: 14px;
	letter-spacing: 0.08em;
	color: currentColor;
}

/* 画面の一番上（ファーストビュー）にいるとき */
.site-header.is-top .site-header-inner {
	background: transparent;
	/* 背景を完全に透明に */
}

/* トップでは通常メニューを表示、ハンバーガーを消す */
.site-header.is-top .primary-nav {
	display: block;
}

.site-header.is-top .header-hamburger {
	display: none;
}

/* スクロール後（少し下にスクロールした状態） */
.site-header.is-scrolled .primary-nav {
	display: none;
	/* 通常メニューを隠す */
}

.site-header.is-scrolled .header-hamburger {
	display: inline-flex;
	/* ハンバーガーを表示 */
}

/* ロゴコンテナそのものに幅と高さを持たせる */
.header-logo {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	/* 右上ロゴ想定 */
	width: 180px;
	/* ★ ここがポイント：明示的に幅を持たせる */
	box-sizing: content-box;
}

.site-logo {
	display: block;
	object-fit: contain;

	/* ★ アニメーション用 */
	opacity: 1;
	transform: translateY(0);
	transition:
		opacity 0.25s ease,
		transform 0.25s ease;
}

/* 消えるとき */
.site-logo.is-logo-hiding {
	opacity: 0;
	transform: translateY(6px);
}

/* 現れるとき */
.site-logo.is-logo-showing {
	opacity: 1;
	transform: translateY(-6px);
}

@media (max-width: 1140px) {

	.global-nav-side {
		display: none;
	}

	.global-nav-bottom {
		display: none;
	}

	.global-nav-inner {
		margin: 50px 0 auto 0;
	}

	.global-nav-block {
		margin-bottom: 39px;
	}

	.global-nav-back {
		background-color: #ffffff;
		width: 100vw;
		height: 100vh;
		display: flex;
		flex-direction: column;
	}

	.site-header.is-logo-top .header-logo a {
		transform: translateX(0px);
	}
}


@media (max-width: 768px) {
	.global-nav-inner {
		flex-direction: column;
	}
}


/* 全体のラッパー：画面いっぱい */
.fv-slider {
	position: relative;
	width: 100%;
	height: 100vh;
	overflow: hidden;
}

/* 各スライド */
.fv-slide {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;

	opacity: 0;
	z-index: 1;

	/* ★ここ重要：常時アニメはやめる */
	animation: none;
	transform: scale(1);
	transform-origin: center center;

	transition: opacity 2s ease-in-out;
	will-change: transform, opacity;
}

/* 表示中スライドだけ見える */
.fv-slide.is-active {
	opacity: 1;
	z-index: 2;
}

/* ★表示開始時にズームを1回だけして、そのまま止める */
.fv-slide.is-zoom {
	animation: fv-zoom 10s ease-in-out forwards;
	/* interval(9000ms)と合わせる */
}

@keyframes fv-zoom {
	from {
		transform: scale(1.00);
	}

	to {
		transform: scale(1.05);
	}
}

/* テキストエリア（中央寄せなど） */
.fv-content {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	pointer-events: none;
	/* クリックは下層に通すなら */
}

.fv-inner {
	text-align: center;
	padding: 0 20px;
}

.fv-title {
	font-size: clamp(28px, 4vw, 40px);
	letter-spacing: 0.1em;
}

.fv-subtitle {
	font-size: 14px;
	margin-bottom: 10px;
	letter-spacing: 0.2em;
}

:root[data-fv-theme="white"] {
	--fv-text: #fff;
}

:root[data-fv-theme="black"] {
	--fv-text: #000;
}

:root[data-fv-theme="white"] {
	--humberger: #fff;
}

:root[data-fv-theme="black"] {
	--humberger: #858585;
}

.site-header,
.site-header a,
.site-header .hamburger-line{
	transition: color .45s ease-out,
		background-color .45s ease-out,
		fill .45s ease-out,
		stroke .45s ease-out;
}

.site-logo-wrap.is-logo-hiding {
  opacity: 0;
  transition: opacity .3s ease-out;
}

.site-logo-wrap.is-logo-showing {
  opacity: 1;
  transition: opacity .3s ease-out;
}

/* FV上（is-over-fv）の間だけテーマ色を適用したい */
.site-header.is-over-fv {
	color: var(--fv-text);
}

.site-header.is-over-fv a {
	color: var(--fv-text);
}

.hamburger-line {
	color: var(--humberger);
}

/* WP管理バーがある場合に上が切れるのが気になるならオプションで */
body.admin-bar .fv-slider {
	height: calc(100vh - 32px);
}

@media (max-width: 768px) {
	body.admin-bar .fv-slider {
		height: calc(100vh - 46px);
	}
}


/* ------------------- header ------------------ */

/* ------------------- footer ------------------ */

/* ===== フッター全体 ===== */
.site-footer .footer-inner {
	margin: 180px auto 27px;
	width: 95%;
	background: #ffffff;
	/* 内側の白 */
	box-sizing: border-box;
}

/* ===== 上段：メニュー部分 ===== */
.footer-nav {
	display: flex;
	justify-content: flex-start;
	gap: 60px;
	/* 各ブロックの間隔 */
}

.footer-nav-block {
	line-height: 1.9;
	letter-spacing: 0.08em;
	white-space: nowrap;
	font-weight: 400;
}

/* ===== 下段：会社情報＋コピーライト ===== */
.footer-bottom {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	margin-top: 18px;
}


.footer-copy {
	color: #666666;
}

.footer-icon {
	display: flex;
	align-items: center;
	gap: 4px;
}

.footer-pro-guide {
	display: flex;
	gap: 60px;
}

.footer-nav-property .footer-link,
.footer-nav-guide .footer-link {
	color: #666666;
}

.footer-link.sp {
	display: none;
}

.footer-link.pc {
	display: block;
}

br.sp {
	display: none;
}

/* ===== レスポンシブ（スマホ向け） ===== */
@media (max-width: 768px) {
	.site-footer .footer-inner {
		margin: 120px auto 27px;
	}

	.footer-nav {
		flex-direction: column;
		gap: 26px;
	}

	.footer-nav-guide {
		border-right: none;
		padding-right: 0;
		margin-right: 0;
	}

	.footer-bottom {
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
		margin-top: 39px;
	}

	.global-nav-separator.sp {
		display: none;
	}

	.footer-link.sp {
		width: 208px;
		display: inline-flex;
		align-items: flex-end;
		gap: 0.5em;
		position: relative;
		justify-content: space-between;
		overflow: hidden;
		border-bottom: 1px solid #858585;
		padding: 0 0 13px
	}

	.footer-link.pc {
		display: none;
	}

	.footer-copy {
		color: #000;
		margin-top: 14px;
	}

	.footer-pro-guide {
		gap: 90px;
	}

	br.sp {
		display: block;
	}
}

/* ------------------- footer ------------------ */


/* ------------------- main_cont ------------------ */

.main_cont {
	width: 95%;
	margin: 0 auto;
}

.about {
	display: flex;
	margin: 176px 0 192px;
}

.guide {
	display: flex;
	margin: 232px 0 284px;
}

.property {
	display: flex;
	margin: 192px 0 76px;
}

.news {
	display: flex;
	justify-content: center;
	width: 100%;
}

.about-top {
	position: relative;
	width: 100%;
	height: 100vh;
	/* 画面の高さぴったり */
	overflow: hidden;
}

.about_image {
	width: 55%;
	object-fit: cover;
}

.about_image img {
	width: 100%;
	object-fit: cover;
	height: 100%;
}

.about .about_cont {
	margin: 0 3%;
}

.about .about_cont {
	display: flex;
	flex-direction: column;
	/* 子要素を縦並びに */
}

.about .about_cont p {
	margin: 0 0 50px;
}

.about .about_cont .title {
	align-self: flex-end;
	/* 自分だけ右側に寄せる */
	text-align: right;
	/* 中の文字も右揃えに */
	margin-bottom: 15px;
	white-space: nowrap;
	width: 100%;
}

.property {
	align-items: center;
	align-items: stretch;
	/* 子要素（aと.title）の高さを揃えて伸ばす */
	border-top: 1px solid #858585;
	border-bottom: 1px solid #858585;
}

.property a {
	margin: 16px 0;
}

.property>a.heading_m {
	flex: 1 1 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.property .title {
	border-left: 1px solid #858585;
	border-right: 1px solid #858585;
	padding: 42px 21px 42px 53px;
	margin: 24px 16px;
	white-space: nowrap;
	width: 143px;
}

.property-divider {
	width: 1px;
	background: #858585;
	margin: 30px 17px;
	height: 210px;
}

.property .title.pc {
	display: block;
}

.property .property-divider.sp {
	display: none;
}

.main_cont title.sp {
	display: none;
}

/* タブの中身を切り替える用 */
.property-panel {
	display: none;
}

.property-panel.is-active {
	display: block;
}

.heading-link {
	display: inline-flex;
	/* 横並びで文字＋アイコン */
	align-items: flex-end;
	/* 下揃え（必要に応じて調整） */
	gap: 0.5em;
	/* 文字と矢印の間隔 */
	position: relative;
	overflow: hidden;
	border: 1px solid transparent;
	/* 枠の太さだけ先に確保 */
	transition: border-color 0.4s ease;
	/* 色だけふわっと変える */
}

.heading-link:hover,
.heading-link.is-active {
	border: 1px solid #858585;
}

.view-more-link {
	display: inline-flex;
	/* 横並びで文字＋アイコン */
	align-items: flex-end;
	/* 下揃え（必要に応じて調整） */
	gap: 0.5em;
	/* 文字と矢印の間隔 */
	position: relative;
	justify-content: space-between;
	overflow: hidden;
	border-bottom: 1px solid #858585;
}

.common-right .view-more-link {
	width: 448px;
}

.news-contents .view-more-link {
	margin-top: 69px;
}

/* 文字部分 */
.link-text {
	display: inline-block;
}

/* ホバー時に JS でこのクラスを付ける */
.link-text.is-animating {
	animation: slideDownUp 0.6s ease-in-out forwards;
}

.year li a {
	position: relative;
	display: inline-block;
	/* transform を効かせるため */
	overflow: hidden;
	/* はみ出た部分を隠す */
}

/* .is-animating がついている間だけアニメーション */
.year li a.is-animating {
	animation: slideDownUp 0.6s ease-in-out forwards;
}

/* 文字だけ下→消える→上から戻る */
@keyframes slideDownUp {
	0% {
		transform: translateY(0);
		opacity: 1;
	}

	49% {
		transform: translateY(70%);
		opacity: 0;
	}

	50% {
		transform: translateY(-70%);
		opacity: 0;
	}

	100% {
		transform: translateY(0);
		opacity: 1;
	}
}

/* SVG を包む枠。ここで見切らせる */
.link-icon {
	position: relative;
	width: 12px;
	height: 12px;
	overflow: hidden;
	/* 右下＆左上に抜ける部分を隠す */
	--arrow-distance: 80%;
	/* 斜め移動の距離（あとで調整可能） */
}

/* 矢印そのもの */
.link-arrow {
	width: 100%;
	height: 100%;
	display: block;
}

/* JS で .link-icon に is-animating が付いたときだけ動かす */
.link-icon.is-animating .link-arrow {
	animation: arrowDiagonal 0.6s ease-in-out forwards;
}

/* 右下に移動 → 左上から戻ってくる */
@keyframes arrowDiagonal {
	0% {
		transform: translate(0, 0);
		opacity: 1;
	}

	49% {
		transform: translate(var(--arrow-distance), var(--arrow-distance));
		/* 右下へ */
		opacity: 0;
	}

	50% {
		transform: translate(calc(-1 * var(--arrow-distance)),
				calc(-1 * var(--arrow-distance)));
		/* 左上の外側にワープ */
		opacity: 0;
	}

	100% {
		transform: translate(0, 0);
		/* 元の位置に戻る */
		opacity: 1;
	}
}

.guide {
	justify-content: end;
}

.guide a {
	position: relative;
}

.guide_cont {
	display: flex;
	flex-direction: column;
	margin: 0 auto;
}

.guide_cont .common-center {
	margin-top: auto;
	width: 30vw;
}

.guide_cont .common-center .view-more-link {
	width: 100%;
}


.guide-img {
	margin-left: 16px;
	width: 25vw;
	height: 600px;
	overflow: hidden;
}

.guide-img img {
	height: 100%;
	width: 100%;
	object-fit: cover;
	transition: transform .6s ease;
}

.guide_cont_main {
	display: flex;
	gap: 122px;
	margin: 0 auto;
}

.guide_cont_main .title {
	width: 60px;
}

.guide .link_m:hover .guide-img img {
	transform: scale(1.1);
}

.guide-link {
	position: absolute;
	display: inline-flex;
	align-items: center;
	width: 216px;
	justify-content: space-between;
	overflow: hidden;
	background: #FFFFFF;
	padding: 11px 29px;
	bottom: 0;
	right: 0;
}

/* ------------------- main_cont ------------------ */
.about_page_cont {
	width: 85%;
	margin: 88px auto 0;
}

.property_page_cont {
	width: 85%;
	margin: 120px auto 0;
}

.about_page_about {
	display: flex;
	padding-bottom: 112px;
	border-bottom: 1px solid #858585;
	gap: 50px;
}

.about_page_about_img {
	width: 50vw;
	max-height: 65vh;
}

.about_page_about img {
	object-fit: cover;
	height: 100%;
}

.hero {
	min-height: 100vh;
	/* 画面いっぱい */
	background-image: url("../images/about_top.jpg");
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
	/* 画像を全面表示 */
	position: relative;
	display: grid;
	place-items: center;
	/* 中央に配置 */
}

.hero .title {
	display: flex;
	color: #ffffff;
	transform: translateX(43%);
	/* 右へ20px。数値を増やすほど右へ */
	align-items: center;
	gap: 45px;
}

.hero .main-text_ss {
	transform: translateY(-6px);
}

.about_page_cont .title {
	width: 100%;
	margin-bottom: 78px;
}

.about_page_lead {
	margin: 0 0 0 auto;
	display: flex;
	flex-direction: column;
}

.about_page_lead .title {
	margin: auto 0 0
}

.about_page_lead .title .main-text_ss {
	margin-right: 10px;
}


.about_page_preview {
	margin-top: 81px;
	padding-bottom: 81px;
	border-bottom: 1px solid #858585;
}

.about_page_preview .title {
	margin-bottom: 67px;
}

.about_page_preview .main-text_ss {
	margin-bottom: 108px;
}

.about_map iframe {
	width: 100%;
	height: 100%;
}

iframe {
	z-index: 1;
	position: relative;
}


.company_information {
	margin-top: 120px;
}

.company_information .title {
	margin-bottom: 143px;
	text-align: center;
	display: block;
	height: 95px;
}

.company_cont {
	display: flex;
}

.company_cont li span {
	margin: 24px 0;
	flex: 1;
}

.company_cont li div {
	flex: 2;
}

.company_cont li p {
	margin: 24px 0;
}

.company_cont ul {
	width: 45%;
	margin: 0;
	padding: 0;
}

.company_cont .about_map {
	margin: 0 0 0 auto;
	height: auto;
	position: relative;
	width: calc(45% - 9px);
	transform: translateY(-18px);
	top: 9px;
}

.company_cont li {
	display: flex;
	border-bottom: 1px solid #858585;
}

.company_cont .about_map:after {
	content: "";
	position: absolute;
	right: -8px;
	bottom: -8px;
	border-right: 1px solid #858585;
	border-bottom: 1px solid #858585;
	width: 99%;
	height: 99%;
}


.rc-link {
	display: inline-flex;
	gap: 0.5em;
	position: relative;
	justify-content: center;
	overflow: hidden;
	border: 1px solid #858585;
	border-radius: 1000px;
	padding: 10px;
	width: 320px;
	height: 64px;
	align-items: center;
}

.rc-link .link-icon {
	position: absolute;
	width: 12px;
	height: 12px;
	overflow: hidden;
	--arrow-distance: 80%;
	right: 8%;
}

@media (max-width: 1000px) {

	.about_page_about {
		flex-direction: column;
		border-bottom: 1px solid #FFFFFF;
		gap: 55px;
		padding-bottom: 0;
	}

	.about_page_cont {
		margin: 81px auto 0;
	}

	.about_page_cont .title {
		margin-bottom: 69px;
	}

	.about_page_lead {
		order: 1;
	}

	.about_page_lead p {
		margin: 0;
	}

	.about_page_about_img {
		order: 2;
		width: 100%;
		height: auto;
		max-height: unset;
	}

	.about_page_about img {
		height: auto;
	}

	.about_page_lead .title {
		margin: 37px 0 0;
	}

	.about_page_preview {
		margin-top: 77px;
		padding-bottom: 81px;
	}

	.about_page_preview .title {
		margin-bottom: 47px;
	}

	.about_page_preview .main-text_ss {
		margin-bottom: 60px;
	}

	.company_information {
		margin-top: 60px;
	}

	.company_information .title {
		margin: 0 0 52px 3%;
	}

	.company_cont {
		display: flex;
		flex-direction: column;
	}

	.company_cont ul {
		width: 100%;
	}

	.company_cont li {
		flex-direction: column;
		padding: 9px 0;
	}

	.company_cont li span {
		margin: 0;
		font-weight: 500;
	}

	.company_cont li p {
		margin: 0;
	}

	.company_cont .about_map {
		margin: auto;
		width: calc(100% - 9px);
		padding: 0 8px 8px 0;
		margin: 24px 0 0;
		height: 35vh;
	}
}


.common-center {
	text-align: center;
}

.common-right {
	text-align: right;
}

/* preparty */

.property-contents .common-right {
	margin: 100px 3% 0;
}

/* 一覧全体：横並び＋折り返し */
.property-list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(272px, 1fr));
	gap: 57px 27px;
	margin: 0 3%;
}

.property-list--few {
	grid-template-columns: 1fr 1fr 1fr 1fr !important;
}

/* 各カード 共通 */
.property-card {
	background-color: #fff;
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
}

.property-card.is-hidden {
	display: none;
}

/* カード内リンク */
.property-card__link {
	display: block;
	color: inherit;
	text-decoration: none;
}

/* ---------------- PC / タブレット時のレイアウト ---------------- */

.property-card__inner {
	display: block;
	/* PCでは縦レイアウト */
}

/* サムネ＋縦ラベル */
.property-card__thumb-wrap {
	position: relative;
	height: 100%;
	width: 100%;
}

.property-card__thumb {
	overflow: hidden;
}

.property-card__thumb img {
	position: relative;
	inset: 0;
	aspect-ratio: 1 / 1;
	/* 好きな比率に */
	object-fit: cover;
	display: block;
	width: 100%;
	height: 100%;
}

.property-card .property-card__thumb img {
	transition: transform .6s ease;
	/* ゆっくり変化させる */
}


.property-card:hover .property-card__thumb img {
	transform: scale(1.1);
	/* 拡大 */
}

.property-card:hover span .property-card__thumb img {
	transform: scale(1);
	/* 拡大 */
}

/* 左の縦ラベル（PC） */
.property-card__label {
	position: absolute;
	top: -10px;
	left: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: #ffffff;
	text-orientation: mixed;
	z-index: 1;
	border-right: 1px solid #858585;
	border-left: 1px solid #858585;
	height: 160px;
	width: 33px;
}

.property-card__label p {
	margin: 0;
}

/* テキスト部分 */
.property-card__content {
	display: flex;
	flex-direction: column;
}

.property-card__name {
	display: flex;
	flex-direction: column;
	height: 44px;
	margin: 0 0 8px;
	font-size: 14px;
	line-height: 1.6;
}

.property-card__address,
.property-card__comment {
	margin: 0;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	overflow: hidden;
	text-overflow: ellipsis;
	-webkit-line-clamp: 1;
}

/* 下段（価格＋矢印） */
.property-card__bottom {
	margin-top: auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.property-card__bottom .link-icon {
	display: inline-flex;
}

.property-card__price {
	margin: 0;
	font-size: 14px;
}

.property-card__price-main {
	font-weight: 500;
	font-size: 16px;
}

/* 画像全体を覆う黒い半透明レイヤー */
.property-card__status-overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.4);
	display: flex;
	align-items: center;
	justify-content: center;
}

/* 成約済みのテキスト（縦書きっぽくしたければ writing-mode をON） */
.property-card__status-overlay-text {
	color: #fff;
}

/* 住所＋商談中を横並びに */
.property-card__row {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 8px;
	margin: 8px 0 0;
}



/* 商談中バッジ */
.property-card__badge-status {
	flex: 0 0 auto;
	align-self: flex-start;
	padding: 2px 10px;
	background-color: #3D3D3D;
	color: #fff;
	white-space: nowrap;
	line-height: normal;
}

.property-card__badge-status.main-text_ss.pc {
	font-size: 13px;
}

.news-contents {
	width: 80%;
	margin-right: 3%;
}

.news .title {
	width: 60px;
	margin: 0 auto;
}

.news-link {
	width: 100%;
	display: flex;
	border-top: 1px solid #858585;
}

article.news-link:last-of-type {
	border-bottom: 1px solid #858585;
	/* 最後だけ下線を追加 */
}

.news-link a {
	width: 100%;
	padding-bottom: 24px;
}

.news-link .link-icon {
	width: 16px;
	display: block;
	margin-left: auto;
}

.news-link .date {
	margin: 9px 0 28px 0;
}

.news-cont {
	display: flex;
	width: 100%;
}

.news-cont h3 {
	flex: 1;
	margin: 0 0 24px;
}

.news-cont p {
	flex: 2;
	margin: 0 0 29px;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	overflow: hidden;
	text-overflow: ellipsis;
	-webkit-line-clamp: 2;
	font-size: 14px;
	line-height: 1.9;
	letter-spacing: 0.05em;
}

.view-more-link {
	margin: auto 0 0;
	padding: 0 0 16px;
}

.new {
	position: absolute;
	top: 0;
	right: 0;
	width: 67px;
	height: 67px;
	background: #d60000;
	clip-path: polygon(100% 0, 0 0, 100% 100%);
	z-index: 2;
}

.new__text {
	position: absolute;
	top: 23px;
	right: 3px;
	transform: rotate(45deg);
	transform-origin: top right;
	color: #fff;
}

.fc700 {
	color: #666666 !important;
}

.property-card__badge-status.sp {
	display: none;
}

.property-card__badge-status.pc {
	display: flex;
}

.title.sp {
	display: none;
	text-align: center;
}

.guide_cont_main .sp {
	display: none;
}

.guide_cont_main .pc {
	display: block;
}

.guide .common-center.pc {
	display: block;
}

.guide .common-center.sp {
	display: none;
}

@media (max-width: 1440px) {
	.property-list {
		grid-template-columns: 1fr 1fr 1fr 1fr;
	}
}

@media (max-width: 1000px) {
	.property-list {
		grid-template-columns: 1fr 1fr 1fr;
	}

	.about_page_about_img {}
}

@media (max-width: 768px) {
	.about {
		flex-direction: column;
		margin: 78px 0 72px;
	}

	.about_cont p {
		margin: 0;
	}

	.about .about_cont .title {
		text-align: center;
		margin-bottom: 76px;
	}

	.about_cont .view-more-link {
		margin: 51px 0 64px;
	}

	.about_image {
		order: 2;
		width: 100vw;
		margin: 0 calc(50% - 50vw);
	}

	.main_cont title.sp {
		display: block;
		text-align: center;
	}

	.property {
		margin: 58px 0 24px;
	}

	.property a {
		margin: 8px 0;
	}

	.property-divider {
		margin: 16px 8px;
		height: 72px;
	}

	.property .title.pc {
		display: none;
	}

	.property .property-divider.sp {
		display: block;
	}

	.property-list {
		margin: 0;
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.property-list--few {
		grid-template-columns: 1fr !important;
	}

	.property-card__label {
		position: relative;
		display: flex;
		align-items: center;
		justify-content: center;
		background-color: #ffffff;
		text-orientation: mixed;
		border-right: 0px solid;
		border-left: 0px solid;
		border-top: 1px solid #858585;
		border-bottom: 1px solid #858585;
		height: 33px;
		width: 100%;
		top: 0;
	}

	.property-card__inner {
		display: flex;
		gap: 20px
	}

	.property-card__badge-status {
		flex: 0 0 auto;
		align-self: flex-start;
		padding: 2px 10px;
		background-color: #3D3D3D;
		color: #fff;
		white-space: nowrap;
	}

	.property-card__badge-status.sp {
		display: flex;
		position: absolute;
		bottom: 0;
		background: rgba(61, 61, 61, 0.7);
	}

	.property-card__badge-status.pc {
		display: none;
	}

	.title.sp {
		display: block;
		text-align: center;
		margin: 0 0 0 4.5vh;
	}

	.property-card__thumb-wrap {
		height: 100%;
		width: 100%;
		flex: 4;
	}

	.property-card__content {
		width: 100%;
		flex: 6;
	}

	.property-contents .common-right {
		margin: 61px 0 0;
	}

	.property-contents .common-right .view-more-link {
		width: 100%;
	}

	.guide {
		flex-direction: column;
		margin: 74px 0 0;
	}

	.guide_cont_main {
		flex-direction: column;
		gap: 122px;
		margin: 0 auto;
	}

	.guide_cont {
		margin: 58px auto 51px;
	}

	.guide_cont_main .title {
		order: 1;
	}

	.guide_cont_main .sp {
		display: block;
	}

	.guide_cont_main .pc {
		display: none;
	}

	.guide .common-center.pc {
		display: none;
	}

	.guide .common-center.sp {
		display: block;
	}

	.guide-img {
		margin-left: 0px;
		width: 100vw;
		margin: 0 calc(50% - 50vw);
		aspect-ratio: 4 / 3;
		height: auto;
	}

	.guide-link {
		margin: 0 calc(50% - 50vw);
		padding: 13px 29px;
	}

	.guide a.link_m {
		line-height: 0;
	}

	.guide .common-center {
		margin: 43px 0 0;
	}

	.guide .common-center .view-more-link {
		width: 100%;
	}

	.news {
		gap: 58px;
		justify-content: center;
		flex-direction: column;
		margin: 58px 0 0;
	}

	.news .title {
		width: unset;
		display: block;
		text-align: center;
		margin: 0 0 0 4.5vh;
	}

	.news-cont h3 {
		margin: 0 0 32px;
	}

	.news-contents {
		width: 100%;
	}

	.news .common-right .view-more-link {
		width: 100%;
	}

	.news-link .date {
		margin: 9px 0 21px 0;
	}

	.news-link a {
		padding-bottom: 0px;
	}

	.news-link span {
		display: none !important;
	}

	.news-cont p {
		display: none !important;
	}

	.news-contents .view-more-link {
		margin-top: 37px;
	}
}


.property-page .property {
	margin: 24px 0 27px;
	display: flex;
}

.property-page .property .property-divider {
	width: 1px;
	background: #858585;
	margin: 26px 16px;
	height: 58px;
}

.property-search {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

/* モーダル全体：画面全体を覆う */
.property-modal {
	position: fixed;
	inset: 0;
	/* top:0; right:0; bottom:0; left:0 と同じ */
	z-index: 1000;
	display: none;
	/* is-open で切り替え */
	top: -200px;
}

/* 表示時 */
.property-modal.is-open {
	display: block;
}

.property-modal__title {
	padding: 10px 0;
}

/* 背景のうっすらグレー（不要なら background: transparent; に） */
.property-modal__overlay {
	position: absolute;
	inset: 0;
	z-index: 8;
	backdrop-filter: blur(7px);
}

/* 中身：画面いっぱいを使う */
.property-modal__content {
	position: fixed;
	box-sizing: border-box;
	margin: 0;
	width: 100vw;
	max-width: none;
	max-height: none;
	padding: 0 10%;
	background: #fff;
	border-radius: 0;
	display: flex;
	flex-direction: column;
	overflow: auto;
	z-index: 9;
	height: 700px;
	top: 50vh;
	transform: translateY(-50%);
}

/* ページャーの並び（売買・賃貸共通） */
/* ページャー全体はそのまま */
.property-pagination {
	display: flex;
	align-items: center;
	gap: 24px;
	margin-top: 70px;
	justify-content: center;
}

/* ボタンの基本リセット */
.property-pagination button {
	background: none;
	border: none;
	padding: 0;
	font: inherit;
	cursor: pointer;
}

/* ページ番号（1,2,3...） */
.property-pagination button.is-page {
	font-size: 15px;
	line-height: 1.7;
	letter-spacing: 0.05em;
	color: #A3A3A3;
}

.property-pagination button.is-page.is-current {
	color: #000;
}

/* --- ここから矢印画像の設定 --- */

/* 共通の矢印ボタンの箱 */
.property-pagination button.is-arrow {
	width: 15px;
	/* 画像サイズに合わせて調整 */
	height: 15px;
	text-indent: -9999px;
	/* 「←」「→」テキストを見えなくする */
	overflow: hidden;
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
}

/* 右矢印（→）用画像  */
.property-pagination button.is-arrow.is-next {
	background-image: url('../images/arrow_side.svg');
	/* ★実際のパスに */
}

/* 左矢印（←）用画像：右矢印を左右反転して使う場合 */
.property-pagination button.is-arrow.is-prev {
	background-image: url('../images/arrow_side.svg');
	/* 同じ画像を使う */
	transform: scaleX(-1);
	/* 左右反転で「←」に見せる */
}

/* もし左用の画像が別ファイルなら上の2行を↓みたいにすればOK */
/*
.property-pagination button.is-arrow.is-prev {
  background-image: url('/assets/images/pager-arrow-left.svg');
  transform: none;
}
*/
/* お好みでホバー効果 */
.property-pagination button.is-page:hover:not(.is-current) {
	color: #999;
}

.property-pagination button.is-arrow:hover:not(:disabled) {
	opacity: 0.7;
}

@media(max-width:768px) {
	.property_page_cont {
		width: 95%;
	}

	.property-page .property .property-divider {
		margin: 26px 8px;
	}
}

.property-search-cont {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding-bottom: 27px;
	border-bottom: 1px solid #858585;
}

.property-sort-cont {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin: 53px 0 79px;
}


.property-search {
	align-items: flex-start;
	flex-flow: column;
	position: relative;
	gap: 40px;
	padding: 40px 0 0;
}

.property-search__row {
	display: flex;
	gap: 83px;
	align-items: baseline
}

.property-search__fields_box {
	min-height: 100px;
}

.property-search__label {
	flex-shrink: 0;
	min-width: 3em;
}

.property-search__fields {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 32px;
}

.property-sort-cont p {
	margin: 0;
}

.property-sort {
	position: relative;
	padding-bottom: 16px;
}

.property-sort:after {
	content: "";
	position: absolute;
	bottom: 0;
	display: block;
	background: #858585;
	width: 100%;
	height: 1px;
}

.property-sort-cont select {
	border: 0;
	outline: none;
	width: 210px;
}

.property-modal__info {
	display: flex;
	flex-direction: column;
	text-align: center;
}

.property-modal__info div {
	border-top: 1px solid #858585;
	border-bottom: 1px solid #858585;
}

[type="checkbox"],
[type="radio"] {
	display: none;
}

.property-sort-cont p span {
	font-size: 27px;
	line-height: 1;
	letter-spacing: 0.05em;
	font-family: "Zen Old Mincho", serif;
	font-weight: normal;
}

.property-search__fields label span {
	display: inline-block;
	padding-left: 24px;
	position: relative;
}

.property-search__fields label span::before,
.property-search__fields label span::after {
	content: '';
	display: block;
	position: absolute;
}

.property-search__fields label span::before {
	background: #fff;
	border: 1px solid #000;
	left: 0;
	top: 5px;
	height: 14px;
	width: 14px;
}

.property-search__fields label span::after {
	left: 3px;
	top: 8px;
	background: #000;
	opacity: 0;
	width: 8px;
	height: 8px;
}

.property-search__fields label input:checked+span::after {
	opacity: 1;
}

.is-modal-open .hamburger-line {
	background-color: #858585;
}

.is-modal-open {
	-ms-overflow-style: none;
	scrollbar-width: none;
}

.is-modal-open::-webkit-scrollbar {
	display: none;
}



.property-modal__content .common-center {
	padding: 40px 0;
	margin-top: auto;
}

@media (max-width:768px) {
	.property-search-cont {
		flex-direction: column;
		gap: 19px;
	}

	.property-page .property {
		margin: 30px 0 32px;
	}

	.property-sort {
		padding-bottom: 10px;
	}

	.property-sort-cont {
		margin: 24px 0 51px;
	}

	.property-search__row {
		flex-direction: column;
		gap: 18px;
	}

	.property-search {
		padding: 0;
		margin-top: 35px;
	}

	.property-modal__info div {
		width: 100vw;
		margin: 0 calc(50% - 50vw);
	}

	.property-modal__content {
		height: auto;
		overflow-y: scroll;
		padding: 70px 16px 24px;
	}

	.property-modal__content .common-center {
		margin-top: 42px;
	}

	.property-search__fields {
		width: auto;
	}

	.property-modal.is-open {
		overflow: hidden;
	}

	.property-sort-cont select {
		width: 140px;
	}

}

.site {
	display: grid;
	grid-template-rows: auto 1fr auto;
	grid-template-columns: 100%;
	min-height: 100vh;
}

footer {
	display: flex;
	align-items: flex-end;
}

.property-modal__content .header-hamburger.js-search-modal-close.is-open {
	position: absolute;
	transform: translate(-15px, 13px);
}