@charset "UTF-8";
/* ============================================================
   プライムテラス＆ガーデンページ（terrace/）
   数値は支給デザイン（1920px）の実測値。
   ・font-size：clamp(最小, px÷19.2 vw, 1920時の値)
   ・縦余白：rem（1440px表示時＝デザイン×0.75）／横方向：%
   ============================================================ */

/* ===== 共通変数 ===== */
.terrace {
	--c-text: #333;
	--c-garden: #ebf7d9;
	--f-serif: "Noto Serif JP", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
	--f-sans: "Noto Sans JP", "Yu Gothic", "YuGothic", "Hiragino Kaku Gothic ProN", sans-serif;
	--f-en: "Jost", "Josefin Sans", "Noto Sans JP", sans-serif;
	color: var(--c-text);
	font-family: var(--f-serif);
	line-height: 2;
}
.terrace img { max-width: 100%; height: auto; display: block; }
.terrace :where(ul) { list-style: none; margin: 0; padding: 0; }
.terrace :where(h2, h3, h4, h5) { color: var(--c-text); } /* 共通CSSのSP見出し色（青・グレー）を打ち消し、黒に統一 */
.terrace :where(.ter-prime, .ter-garden) :where(p, h2, h3, h4, h5) { margin: 0; }
.terrace .pc { display: inline; }
.terrace .sp { display: none; }
.ter-inner { width: 65.42%; margin: 0 auto; } /* 1256/1920 */

/* ===== 共通パーツ ===== */
.ter-cap {
	position: absolute; right: 1em; bottom: .6em;
	color: #fff;
	font-size: clamp(0.625rem, 0.729vw, 0.875rem);
	line-height: 1;
}
.ter-cap--b { color: #333; }
.ter__title {
	font-family: var(--f-en);
	font-weight: 300;
	letter-spacing: .02em;
	font-size: clamp(2.312rem, 3.177vw, 3.812rem);
	line-height: 1.2;
	margin: 0 0 1.819rem;
}
.ter__lead {
	font-size: clamp(0.875rem, 1.250vw, 1.500rem);
	letter-spacing: .1em;
	line-height: 1.6;
	margin: 0 0 0.670rem;
}
.ter__body {
	font-size: clamp(0.625rem, 0.833vw, 1.000rem);
	letter-spacing: .045em;
	line-height: 2.4;
	margin: 0;
}
.ter__lead--c, .ter__body--c { text-align: center; }

/* ===== メインビジュアル ===== */
.ter-hero__img,
.ter-cg__img { position: relative; margin: 0; }
.ter-hero__img img,
.ter-cg__img img { width: 100%; }

/* ===== PRIME TERRACE & GARDEN ===== */
.ter-prime { padding: 3.938rem 0 3.656rem; }
.ter-prime__txt { width: 81.25%; margin: 0 auto 3.272rem; } /* 180〜1740/1920 */
.ter-prime__plan { width: 82.71%; margin: 0 auto; transform: translateX(-.3%); } /* 181.5〜1769.5/1920 */
.ter-prime__plan img { width: 100%; }
.ter-prime__plan .ter-cap { position: static; display: block; text-align: right; margin: 0.750rem -.85% 0 0; }

/* ===== PRIME GARDEN ===== */
.ter-garden { background: var(--c-garden); padding: 2.672rem 0 8.156rem; }
.ter-garden__title {
	font-family: var(--f-en);
	font-weight: 300;
	letter-spacing: 0;
	font-size: clamp(1.500rem, 2.083vw, 2.500rem);
	line-height: 1.2;
	text-align: center;
	margin-bottom: 1.537rem;
}
.ter-garden .ter__lead--c { margin-bottom: 0.656rem; }
.ter-garden .ter__body--c { line-height: 2.44; }

/* 設備・仕様（左：写真＋説明、右：Ggタイプ概念図） */
.ter-equip { display: flex; align-items: flex-start; margin-top: 4.172rem; }
.ter-equip__txt { width: 36.47%; flex-shrink: 0; }        /* 458/1256 */
.ter-equip__plan { width: 62.86%; flex-shrink: 0; margin-left: 3.38%; } /* 789.5/1256（右端は内枠から34pxはみ出す：デザイン準拠） */
.ter-equip__plan img { width: 100%; }
.ter-equip__plan .ter-cap { position: static; display: block; text-align: right; margin: -0.938rem 4.3% 0 0; }
.ter-equip__title {
	font-size: clamp(0.812rem, 1.146vw, 1.375rem);
	font-weight: 400;
	letter-spacing: .08em;
	line-height: 1.6;
	white-space: nowrap;
}
.ter-equip__list { margin-top: 2.062rem; }
.ter-equip__list li { display: flex; justify-content: space-between; align-items: flex-start; }
.ter-equip__list li + li { margin-top: 0.188rem; }
.ter-equip__img { width: 53.28%; } /* 244/458 */
.ter-equip__img img { width: 100%; }
.ter-equip__body { width: 41.5%; } /* 190/458 */
.ter-equip__body h5 { font-size: clamp(0.688rem, 0.938vw, 1.125rem); font-weight: 400; line-height: 1.5; }
.ter-equip__body p { font-size: clamp(0.625rem, 0.833vw, 1.000rem); letter-spacing: .045em; line-height: 1.92; text-align: justify; margin-top: 0.206rem; }

/* ライフシーン */
.ter-scenes__title {
	font-size: clamp(0.875rem, 1.250vw, 1.500rem);
	font-weight: 400;
	letter-spacing: .08em;
	line-height: 1.6;
	margin-top: 3.656rem;
}
.ter-scenes__list { display: flex; flex-wrap: wrap; justify-content: space-between; margin-top: 1.959rem; }
.ter-scene { width: 32.09%; margin-bottom: 3.656rem; } /* 403/1256 */
.ter-scene:nth-last-child(-n+3) { margin-bottom: 0; }
.ter-scene__img { position: relative; container-type: inline-size; }
.ter-scene__img img { width: 100%; }
.ter-scene__name { font-size: clamp(0.750rem, 1.042vw, 1.250rem); font-weight: 400; line-height: 1.5; margin-top: 0.773rem; }
.ter-scene__txt { font-size: clamp(0.688rem, 0.938vw, 1.125rem); letter-spacing: .03em; line-height: 1.83; margin-top: 0.539rem; }

/* ===== SP（ヒーロー〜PRIME GARDEN） ===== */
@media (max-width: 1023px) {
	.terrace .pc { display: none; }
	.terrace .sp { display: inline; }
	.ter-inner { width: 90%; }
	.ter-prime { padding: 2.5rem 0 2.5rem; }
	.ter-prime__txt { width: 90%; margin-bottom: 2rem; }
	.ter__title { font-size: clamp(1.1rem, 7.3vw, 1.75rem); line-height: 1.25; margin-bottom: 1rem; text-align: left; white-space: nowrap; } /* SP：英字タイトルを1行に収める（両端揃えの字間の開きを解消） */
	.ter__lead { font-size: 1.05rem; line-height: 1.75; letter-spacing: .04em; margin-bottom: .8rem; }
	.ter__body { font-size: .875rem; line-height: 2; letter-spacing: .02em; }
	.ter-prime__plan { width: 100%; transform: none; } /* SP：概念図は100%表示（横スクロールなし） */
	.ter-prime__plan .ter-cap { margin: .4rem 0 0; }
	.ter-garden { padding: 3rem 0 3.5rem; }
	.ter-garden__title { font-size: 1.75rem; margin-bottom: 1rem; }
	.ter__lead--c, .ter__body--c { text-align: left; }
	.ter-garden .ter__body--c { line-height: 2; }
	.ter-equip { flex-wrap: wrap; margin-top: 2.5rem; }
	.ter-equip__txt, .ter-equip__plan { width: 100%; margin-left: 0; }
	.ter-equip__title { font-size: 1.05rem; white-space: normal; letter-spacing: .04em; }
	.ter-equip__list { margin-top: 1.2rem; }
	.ter-equip__list li + li { margin-top: 1rem; }
	.ter-equip__img { width: 40%; }
	.ter-equip__body { width: 56%; }
	.ter-equip__body h5 { font-size: .95rem; }
	.ter-equip__body p { font-size: .8125rem; line-height: 1.75; margin-top: .2rem; }
	.ter-equip__plan { margin-top: 2rem; }
	.ter-equip__plan .ter-cap { margin: .4rem 0 0; font-size: .75rem; }
	.ter-scenes__title { font-size: 1.05rem; letter-spacing: .04em; margin-top: 3rem; }
	.ter-scenes__list { margin-top: 2rem; }
	.ter-scene, .ter-scene:nth-last-child(-n+3) { width: 47.5%; margin-bottom: 2.2rem; }
	.ter-scene:nth-last-child(-n+2) { margin-bottom: 0; }
	.ter-scene__name { font-size: .95rem; margin-top: .6rem; }
	.ter-scene__txt { font-size: .8125rem; line-height: 1.7; margin-top: .2rem; }
	.ter-cap { font-size: .6875rem; }
}
/* タブレット（768〜1023px）個別調整 */
@media (min-width: 768px) and (max-width: 1023px) {
	.ter-scene, .ter-scene:nth-last-child(-n+3) { width: 31%; }
	.ter-scene:nth-last-child(-n+3) { margin-bottom: 0; }
	.ter-equip__plan { width: 75%; margin: 2rem auto 0; }
}

/* ===== PRIME DOG LIFE ===== */
.ter-dog { background: #f1f8f5; padding: 0 0 5rem; }
.ter-dog__main { margin: 0 0 4.5rem; }
.ter-dog__main img, .ter-car__main img { width: 100%; }
.ter-dog .ter__body--c { margin-bottom: 3.5rem; }
.ter-dog sup, .ter-notes sup { font-size: .6em; vertical-align: super; }
.ter-dog__sub {
	font-size: clamp(1.1rem, .9vw + .5rem, 1.5rem);
	font-weight: 400;
	letter-spacing: .06em;
	line-height: 1.6;
	margin: 0 0 1.5rem;
}
.ter-dog__cols { display: flex; justify-content: space-between; align-items: flex-start; }
.ter-dog__col { width: 32.1%; }  /* 403/1256 */
/* 2026-10 修正：概念図と善福寺公園の段落ち解消（右列にまとめ、白背景を廃止） */
.ter-dog__right { width: 64%; } /* 804/1256 */
.ter-dog__plan { position: relative; width: 80.2%; margin: 0 0 0 auto; }  /* 645/804 */
.ter-dog__item { margin-bottom: 2.5rem; }
.ter-dog__item + .ter-dog__item { margin-top: 4.5rem; } /* PRIME DOG LIFE 2 の上を空ける */
.ter-dog__img, .ter-dog__park { container-type: inline-size; }
.ter-dog__img { position: relative; margin: 0 0 1.2rem; }
.ter-point {
	--pw: 23.6cqw; /* 焼き込みの円：95/403 */
	position: absolute; right: -1%; top: calc(var(--pw) * -0.16);
	width: var(--pw); height: var(--pw);
	border-radius: 50%;
	background: var(--c-point, #7a9d8b); /* ★要確認：POINT円の緑 */
	color: #fff;
	font-family: var(--f-en);
	font-size: calc(var(--pw) * .12);
	letter-spacing: .05em;
	line-height: 1.25;
	text-align: center;
	display: flex; flex-direction: column; align-items: center; justify-content: center;
}
.ter-point strong { font-family: var(--f-serif); font-weight: 400; font-size: 2.8em; line-height: 1; margin-top: .1em; }
.ter-dog__park .ter-point { --pw: 12.4cqw; right: 2%; top: 1.2rem; }
.ter-dog__h5 {
	font-size: clamp(.95rem, .6vw + .5rem, 1.2rem);
	font-weight: 400;
	line-height: 1.7;
	margin: 0 0 .6rem;
}
.ter-dog__txt {
	font-size: clamp(.85rem, .4vw + .55rem, 1rem);
	line-height: 1.9;
	margin: 0;
}
.ter-dog__park {
	--pw: 12.4cqw;
	display: flex; justify-content: space-between; align-items: center;
	width: 100%;
	margin: 2.5rem 0 0;
	padding: 1.5rem 2% 1.5rem;
	background: #cbd8d4; /* PRIME DOG LIFE 3 の背景色 */
	position: relative;
	box-sizing: border-box;
}
.ter-dog__parkimg { width: 55%; margin: 0; }
.ter-dog__parktxt { width: 41%; padding-top: calc(var(--pw) * .95); } /* バッジの下から文章を始める（文字被り防止） */

.ter-dog__parkname { font-size: clamp(.75rem, .35vw + .5rem, .9rem); text-align: right; margin: .8rem 0 0; }

/* ===== PRIME CAR & BICYCLE LIFE ===== */
.ter-car { background: #f7f5f2; padding: 0 0 2rem; }
.ter-car__main { margin: 0 0 4.5rem; }
.ter-car .ter__body--c { margin-bottom: 4rem; }
.ter-bar {
	background: #9fa0a0;
	color: #fff;
	font-weight: 400;
	font-size: clamp(.9rem, .55vw + .5rem, 1.15rem);
	letter-spacing: .1em;
	line-height: 1;
	text-align: center;
	padding: .8em 0;
	margin: 0 0 1.5rem;
}
.ter-bar__tag {
	display: inline-block;
	border: 1px solid #fff;
	padding: .25em .8em;
	margin-right: 1em;
	font-size: .9em;
	line-height: 1;
}
.ter-car__row { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 2rem; }
.ter-car__img { width: 30%; margin: 0; }  /* 377/1256 */
.ter-car__txt { width: 68%; }
.ter-car__h5 {
	font-size: clamp(.95rem, .6vw + .5rem, 1.25rem);
	font-weight: 400;
	line-height: 1.7;
	margin: 0 0 .5rem;
}
.ter-car__p {
	font-size: clamp(.85rem, .4vw + .55rem, 1rem);
	line-height: 1.9;
	margin: 0;
}
.ter-car__cmp { background: #fff; padding: 2rem 8%; margin: 0 0 2.5rem; }
.ter-car__cmplead { font-size: clamp(.85rem, .45vw + .5rem, 1.05rem); line-height: 1.8; margin: 0 0 1.2rem; }
.ter-car__cmpin { display: flex; justify-content: space-between; align-items: center; }
.ter-car__table { width: 50%; border-collapse: collapse; font-size: clamp(.8rem, .4vw + .5rem, 1rem); line-height: 1.5; text-align: center; }
.ter-car__table th, .ter-car__table td { border: 1px solid #ccc; padding: .5em .6em; font-weight: 400; }
.ter-car__table thead th { background: #9fa0a0; color: #fff; font-size: .85em; }
.ter-car__table thead th:first-child { background: transparent; border-color: transparent transparent #ccc transparent; }
.ter-car__table tbody th { background: #f7f7f7; }
.ter-car__table .is-fine th, .ter-car__table .is-fine td { border: 2px solid #6a171b; } /* ★要確認：赤枠色 */
.ter-car__table .is-fine th { color: #6a171b; background: #fff; }
.ter-car__fig { width: 44%; margin: 0; }
.ter-car__plan { display: flex; justify-content: center; align-items: flex-start; gap: 0; margin: 2.5rem 0 3.5rem; }
.ter-car__labels { width: 21.3%; }  /* 267/1256 */
.ter-car__planimg { position: relative; width: 40.1%; margin: 0; }  /* 504/1256 */
.ter-car__planimg .ter-cap { left: 22%; right: auto; bottom: 2.4%; } /* デザインどおり概念図の左下（「専用出入り口※1」の左） */
.ter-label {
	border: 1px solid #333;
	background: #fff;
	text-align: center;
	font-size: clamp(.85rem, .45vw + .5rem, 1.05rem);
	line-height: 1;
	padding: .55em 0;
	margin: 0 0 .8rem;
}
.ter-label--red { border-color: #6a171b; color: #6a171b; margin-bottom: 1.4rem; }
.ter-car__labels .ter-car__p { margin-bottom: 1rem; }
.ter-car__ev { margin: 0 0 1.4rem; }
.ter-car__row--bike .ter-car__txt { width: 33%; }
.ter-car__bike1 { padding-right: 2%; }
.ter-car__bike2 { border-left: 1px dotted #999; padding-left: 2.4%; }
.ter-car__row--bike .ter-car__p { font-size: clamp(.8rem, .35vw + .55rem, .95rem); }

/* ===== 注釈 ===== */
.ter-notes { padding: 3rem 0 2rem; }
.ter-car__parkingsp { display: none; margin: 0; } /* SP用：駐車場ブロックの1枚画像 */
.ter-notes p {
	width: 68.75%;
	margin: 0 auto;
	font-size: clamp(.65rem, .3vw + .45rem, .8rem);
	line-height: 1.8;
	text-align: center;
}

/* ===== SP（DOG / CAR / 注釈） ===== */
@media (max-width: 1023px) {
	.ter-dog { padding-bottom: 3rem; }
	.ter-dog__main, .ter-car__main { margin-bottom: 2.5rem; }
	.ter-dog .ter__body--c, .ter-car .ter__body--c { margin-bottom: 2.5rem; }
	.ter-dog__cols { flex-wrap: wrap; }
	.ter-dog__col, .ter-dog__right { width: 100%; }
	.ter-dog__item + .ter-dog__item { margin-top: 0; }
	.ter-dog__plan { width: 100%; margin: 0 auto 2rem; }

	.ter-dog__park { --pw: 16cqw; width: 100%; flex-wrap: wrap; padding: 1rem 4% 1.2rem; }
	.ter-dog__parkimg, .ter-dog__parktxt { width: 100%; }
	.ter-dog__parktxt { margin-top: 1rem; padding-top: 0; }
	.ter-dog__park .ter-point { --pw: 25.8cqw; top: calc(1rem - var(--pw) * .16); right: -3%; } /* 他の円（1・2）と同じ大きさ・写真の枠からはみ出す */
	.ter-bar { font-size: .95rem; padding: .7em 2%; line-height: 1.5; } /* SP：帯はコンテンツ幅・3本とも同じ大きさ */
	.ter-bar__tag { margin: 0 .6em 0 0; display: inline-block; font-size: .85em; }
	.ter-car__h5 { font-size: 1.05rem; line-height: 1.6; }
	.ter-car__p, .ter-car__row--bike .ter-car__p { font-size: .9rem; line-height: 1.8; }
	.ter-car__cmplead { font-size: .9rem; line-height: 1.7; }
	.ter-car__table { font-size: .85rem; }
	.ter-car__row { flex-wrap: wrap; }
	.ter-car__img, .ter-car__txt { width: 100%; }
	.ter-car__img img, .ter-car__ev img { width: 100%; } /* 自動車・電卓・自転車の写真：常に100%（大きい画面でも画像の実寸で止まらない） */
	.ter-car__txt { margin-top: 1rem; }
	.ter-car__cmp { padding: 1.5rem 4%; }
	.ter-car__cmpin { flex-wrap: wrap; }
	.ter-car__table { width: 100%; margin-bottom: 1.5rem; }
	.ter-car__fig { width: 80%; margin: 0 auto; }
	.ter-car__parking { display: none; } /* SP：縦並びでは意味が通らないため1枚画像に置き換え */
	.ter-car__parkingsp { display: block; width: 100%; margin: 0 0 2.5rem; } /* 帯と同じ幅（帯の直下） */
	.ter-car__parkingsp img { width: 100%; }
	.ter-car__plan { flex-wrap: wrap; }
	.ter-car__labels, .ter-car__planimg { width: 100%; }
	.ter-car__planimg { width: 90%; margin: 1.5rem auto 0; }
	.ter-car__ev { width: 60%; }
	.ter-car__row--bike .ter-car__txt { width: 100%; }
	.ter-car__bike1 { padding-right: 0; }
	.ter-car__bike2 { border-left: none; border-top: 1px dotted #999; padding: 1rem 0 0; margin-top: 1rem; }
	.ter-notes { padding: 2rem 0 1rem; }
	.ter-notes p { width: 90%; text-align: left; }
}
/* ===== タブレット（768〜1023px）DOG / CAR ===== */
@media (min-width: 768px) and (max-width: 1023px) {
	.ter-dog__col { width: 48%; }
	.ter-dog__right { width: 48%; }
	.ter-dog__plan { width: 100%; margin: 0; }
	.ter-car__img { width: 32%; }
	.ter-car__txt { width: 65%; margin-top: 0; }
	.ter-car__row--bike .ter-car__txt { width: 32%; }
	.ter-car__bike2 { border-left: 1px dotted #999; border-top: none; padding: 0 0 0 3%; margin: 0; }
}

/* ===== 固定ヘッダー分の上余白（★2026-10 再確認で修正：ヒーロー上部がヘッダーに隠れていた） ===== */
.terrace { padding-top: 100px; }
@media (max-width: 768px) {
	.terrace { padding-top: 76px; }
}
