@charset "UTF-8";
/*==========================================================
貝塚市加神二丁目 事業用地 専用LP（page-kaizuka-land.php）
サイト共通の配色（ネイビーのグラデーション／#142048／ベージュ／ゴールド）に合わせています
==========================================================*/

.lp-kz {
	--kz-navy: #142048;
	--kz-navy2: #071734;
	--kz-blue: #2b6e95;
	--kz-grad: linear-gradient(100deg, rgba(8,33,77,1) 0%, rgba(29,57,105,1) 50%, rgba(4,64,90,1) 100%);
	--kz-gold: #b9a066;
	--kz-beige: #ece9e6;
	--kz-gray: #f5f6f8;
	--kz-text: #333;
	--kz-line: #06c755;
	font-family: 'Noto Sans JP', sans-serif;
	color: var(--kz-text);
	letter-spacing: 0.05em;
}
.lp-kz *,
.lp-kz *::before,
.lp-kz *::after { box-sizing: border-box; }
.lp-kz img { max-width: 100%; height: auto; display: block; }

/* サイト共通の右下固定ボタン（電話・LINE）はLP専用の固定ボタンに置き換え */
.btm_fixed { display: none !important; }

/*----------------------------------------------------------
共通パーツ
----------------------------------------------------------*/
.lp-kz-sec { padding: 96px 0; }
.lp-kz-sec--gray { background: var(--kz-gray); }

.lp-kz-head { text-align: center; margin-bottom: 48px; }
.lp-kz-head p {
	font-size: 15px;
	letter-spacing: 0.2em;
	color: var(--kz-gold);
	margin-bottom: 8px;
}
.lp-kz-head h3 {
	font-size: 30px;
	font-weight: 700;
	color: var(--kz-navy);
	line-height: 1.5;
}
.lp-kz-head h3::after {
	content: "";
	display: block;
	width: 48px;
	height: 2px;
	background: var(--kz-gold);
	margin: 18px auto 0;
}
.lp-kz-head--white h3 { color: #fff; }

.lp-kz-label {
	display: inline-block;
	font-size: 12px;
	font-weight: 500;
	color: var(--kz-blue);
	letter-spacing: 0.1em;
}
.lp-kz-caption { font-size: 12px; color: #6b6b6b; line-height: 1.8; margin-top: 12px; }
.lp-kz-caption--white { color: rgba(255,255,255,0.8); }

/* ボタン */
.lp-kz-cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.lp-kz-cta--center { justify-content: center; }
.lp-kz-btn {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 68px;
	padding: 12px 32px;
	font-size: 17px;
	font-weight: 700;
	color: #fff !important;
	text-align: center;
	line-height: 1.4;
	position: relative;
	z-index: 1;
	transition: opacity .3s;
}
.lp-kz-btn small { font-size: 11px; font-weight: 400; opacity: .85; margin-top: 3px; }
.lp-kz-btn:hover { opacity: .85; }
.lp-kz-btn--main { background: var(--kz-grad); min-width: 300px; }
.lp-kz-btn--main::before {
	content: "";
	position: absolute;
	width: 40px;
	height: 1px;
	background: #fff;
	left: -16px;
	top: 50%;
}
.lp-kz-btn--line { background: var(--kz-line); min-width: 220px; }

/*----------------------------------------------------------
FV
----------------------------------------------------------*/
.lp-kz-fv {
	position: relative;
	background: var(--kz-gray);
	overflow: hidden;
}
.lp-kz-fv::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-image: url("../images/under/under_kv.png");
	background-repeat: repeat-x;
	background-size: contain;
	opacity: .5;
}
.lp-kz-fv__inner {
	position: relative;
	max-width: 1200px;
	margin: 0 auto;
	padding: 64px 30px 72px;
	display: flex;
	align-items: center;
	gap: 56px;
}
.lp-kz-fv__txt { flex: 1 1 48%; }
.lp-kz-fv__img { flex: 1 1 52%; }
.lp-kz-fv__img img {
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	box-shadow: 24px 24px 0 var(--kz-beige);
}
.lp-kz-fv__badge { display: flex; gap: 8px; margin-bottom: 20px; }
.lp-kz-fv__badge span {
	font-size: 13px;
	font-weight: 500;
	padding: 5px 16px;
	color: #fff;
	background: var(--kz-navy);
}
.lp-kz-fv__badge span + span { background: var(--kz-gold); }
.lp-kz-fv__ttl {
	font-size: 40px;
	font-weight: 700;
	color: var(--kz-navy2);
	line-height: 1.45;
	letter-spacing: 0.06em;
}
.lp-kz-fv__ttl strong {
	font-family: 'Montserrat', 'Noto Sans JP', sans-serif;
	font-weight: 600;
	font-size: 1.5em;
	color: var(--kz-navy);
	border-bottom: 3px solid var(--kz-gold);
	line-height: 1.1;
}
.lp-kz-fv__lead { font-size: 16px; line-height: 2; margin-top: 20px; color: #383838; }
.lp-kz-fv__nums {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	margin-top: 28px;
	border-top: 1px solid #c2c2c2;
	border-bottom: 1px solid #c2c2c2;
}
.lp-kz-fv__nums li { padding: 14px 8px; text-align: center; list-style: none; }
.lp-kz-fv__nums li + li { border-left: 1px solid #c2c2c2; }
.lp-kz-fv__nums .lp-kz-label { display: block; margin-bottom: 4px; }
.lp-kz-fv__nums b { font-family: 'Montserrat', sans-serif; font-size: 26px; color: var(--kz-navy); font-weight: 600; letter-spacing: 0.02em; }
.lp-kz-fv__nums small { font-size: 13px; margin-left: 2px; }
.lp-kz-fv__price {
	display: flex;
	align-items: baseline;
	gap: 16px;
	margin-top: 20px;
	padding: 16px 20px;
	background: #fff;
	border-left: 4px solid var(--kz-gold);
}
.lp-kz-fv__price p { font-size: 18px; font-weight: 700; color: var(--kz-navy); }
.lp-kz-fv__price b { font-family: 'Montserrat', 'Noto Sans JP', sans-serif; font-size: 32px; font-weight: 600; margin-right: 2px; letter-spacing: 0.02em; }
.lp-kz-fv__price small { font-size: 13px; font-weight: 400; color: #555; margin-left: 8px; }
.lp-kz-fv__note { font-size: 13px; color: var(--kz-navy); margin-top: 14px; font-weight: 500; }
.lp-kz-fv__note::before { content: "✓"; color: var(--kz-gold); margin-right: 6px; font-weight: 700; }

/*----------------------------------------------------------
POINT
----------------------------------------------------------*/
.lp-kz-points { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; padding: 0; }
.lp-kz-points li {
	list-style: none;
	background: #fff;
	border: 1px solid #dde3ea;
	padding: 36px 28px 32px;
	position: relative;
}
.lp-kz-points li::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 4px;
	background: var(--kz-grad);
}
.lp-kz-points__no { display: block; font-size: 34px; color: var(--kz-gold); line-height: 1; margin-bottom: 14px; }
.lp-kz-points h4 { font-size: 19px; font-weight: 700; color: var(--kz-navy); line-height: 1.5; margin-bottom: 14px; }
.lp-kz-points p { font-size: 14px; line-height: 1.9; }

/*----------------------------------------------------------
SITE PLAN
----------------------------------------------------------*/
.lp-kz-site { display: flex; gap: 48px; align-items: flex-start; }
.lp-kz-site__map { flex: 1 1 55%; background: #fff; padding: 24px; border: 1px solid #dde3ea; }
.lp-kz-site__map svg { width: 100%; height: auto; display: block; }
.lp-kz-site__data { flex: 1 1 45%; }
.kz-svg-road { font-size: 17px; font-weight: 700; fill: #142048; }
.kz-svg-small { font-size: 13px; fill: #555; }
.kz-svg-gate { font-size: 14px; font-weight: 700; fill: #fff; }
.kz-svg-dim { font-size: 15px; font-weight: 700; fill: #142048; }
.kz-svg-area { font-size: 40px; font-weight: 600; fill: #fff; font-family: 'Montserrat', sans-serif; }
.kz-svg-area2 { font-size: 22px; font-weight: 500; fill: #fff; }
.kz-svg-white { font-size: 15px; fill: #e2c59f; letter-spacing: 0.1em; }
.kz-svg-n { font-size: 14px; font-weight: 700; fill: #142048; }

.lp-kz-spec > div {
	display: flex;
	border-bottom: 1px solid #c2c2c2;
	padding: 16px 4px;
}
.lp-kz-spec > div:first-child { border-top: 1px solid #c2c2c2; }
.lp-kz-spec dt { width: 140px; flex-shrink: 0; font-size: 14px; font-weight: 500; color: var(--kz-blue); }
.lp-kz-spec dd { font-size: 15px; font-weight: 500; color: var(--kz-navy); line-height: 1.6; }
.lp-kz-spec dd small { display: block; font-size: 12px; font-weight: 400; color: #6b6b6b; }

/*----------------------------------------------------------
USE
----------------------------------------------------------*/
.lp-kz-uses { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; padding: 0; }
.lp-kz-uses li {
	list-style: none;
	padding: 24px 24px 22px;
	background: var(--kz-gray);
	border-left: 4px solid var(--kz-navy);
}
.lp-kz-uses h4 { font-size: 17px; font-weight: 700; color: var(--kz-navy); margin-bottom: 8px; }
.lp-kz-uses p { font-size: 14px; line-height: 1.8; }
.lp-kz-uses li.lp-kz-uses--ask { background: #fff; border: 1px dashed var(--kz-gold); border-left: 4px solid var(--kz-gold); }

.lp-kz-notice {
	margin-top: 32px;
	padding: 28px 32px;
	background: #fbf8f1;
	border: 1px solid #e2c59f;
}
.lp-kz-notice p { font-size: 14px; line-height: 1.9; }
.lp-kz-notice p b { font-size: 16px; color: var(--kz-navy); }
.lp-kz-notice p + p { margin-top: 6px; }
.lp-kz-textlink {
	display: inline-block;
	margin-top: 14px;
	font-size: 15px;
	font-weight: 700;
	color: var(--kz-navy) !important;
	border-bottom: 1px solid var(--kz-navy);
	padding-bottom: 2px;
}
.lp-kz-textlink::after { content: " →"; }

/*----------------------------------------------------------
ACCESS
----------------------------------------------------------*/
.lp-kz-access { display: flex; gap: 40px; align-items: stretch; }
.lp-kz-access__map { flex: 1 1 58%; min-height: 360px; }
.lp-kz-access__map iframe { width: 100%; height: 100%; min-height: 360px; border: 0; display: block; }
.lp-kz-access__list { flex: 1 1 42%; padding: 0; }
.lp-kz-access__list li { list-style: none; padding: 18px 0; border-bottom: 1px solid #c2c2c2; }
.lp-kz-access__list li:first-child { border-top: 1px solid #c2c2c2; }
.lp-kz-access__list p { font-size: 16px; font-weight: 500; color: var(--kz-navy); margin-top: 4px; line-height: 1.6; }

/*----------------------------------------------------------
SCHEDULE
----------------------------------------------------------*/
.lp-kz-flow { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; padding: 0; counter-reset: none; }
.lp-kz-flow li {
	list-style: none;
	position: relative;
	background: var(--kz-gray);
	padding: 24px 18px;
	text-align: center;
}
.lp-kz-flow li:not(:last-child)::after {
	content: "";
	position: absolute;
	right: -13px;
	top: 50%;
	transform: translateY(-50%);
	border-style: solid;
	border-width: 9px 0 9px 10px;
	border-color: transparent transparent transparent var(--kz-gold);
	z-index: 1;
}
.lp-kz-flow li:last-child { background: var(--kz-grad); color: #fff; }
.lp-kz-flow span { font-size: 13px; color: var(--kz-gold); letter-spacing: 0.15em; }
.lp-kz-flow h4 { font-size: 18px; font-weight: 700; color: var(--kz-navy); margin: 6px 0 8px; }
.lp-kz-flow li:last-child h4 { color: #fff; }
.lp-kz-flow p { font-size: 13px; line-height: 1.7; }
.lp-kz-flow__note { text-align: center; font-size: 14px; margin-top: 28px; }

/*----------------------------------------------------------
OUTLINE
----------------------------------------------------------*/
.lp-kz-table { max-width: 900px; margin: 0 auto; background: #fff; }
.lp-kz-table table th { width: 220px; }
.lp-kz-table table td { width: auto; line-height: 1.7; }

/*----------------------------------------------------------
FAQ
----------------------------------------------------------*/
.lp-kz-faq { max-width: 860px; margin: 0 auto; }
.lp-kz-faq details { border-bottom: 1px solid #c2c2c2; }
.lp-kz-faq details:first-child { border-top: 1px solid #c2c2c2; }
.lp-kz-faq summary {
	list-style: none;
	cursor: pointer;
	position: relative;
	padding: 22px 48px 22px 44px;
	font-size: 16px;
	font-weight: 700;
	color: var(--kz-navy);
	line-height: 1.6;
}
.lp-kz-faq summary::-webkit-details-marker { display: none; }
.lp-kz-faq summary::before {
	content: "Q";
	position: absolute;
	left: 8px;
	top: 20px;
	font-family: 'Cinzel', serif;
	font-size: 20px;
	color: var(--kz-gold);
}
.lp-kz-faq summary::after {
	content: "+";
	position: absolute;
	right: 12px;
	top: 18px;
	font-size: 24px;
	font-weight: 300;
	color: var(--kz-navy);
}
.lp-kz-faq details[open] summary::after { content: "−"; }
.lp-kz-faq details p { padding: 0 20px 24px 44px; font-size: 14px; line-height: 1.9; }

/*----------------------------------------------------------
CONTACT
----------------------------------------------------------*/
.lp-kz-contact { background: var(--kz-grad); padding: 96px 0; color: #fff; }
.lp-kz-contact__merit {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 12px 28px;
	margin-bottom: 36px;
	padding: 0;
}
.lp-kz-contact__merit li { list-style: none; font-size: 15px; font-weight: 500; }
.lp-kz-contact__merit li::before { content: "✓"; color: #e2c59f; margin-right: 8px; font-weight: 700; }
.lp-kz-contact__box { display: flex; gap: 32px; align-items: flex-start; }
.lp-kz-contact__form {
	flex: 1 1 62%;
	background: #fff;
	color: var(--kz-text);
	padding: 40px 40px 32px;
}
.lp-kz-contact__lead { font-size: 14px; font-weight: 500; color: var(--kz-navy); margin-bottom: 20px; }
.lp-kz-contact__sub { flex: 1 1 38%; display: flex; flex-direction: column; gap: 20px; }
.lp-kz-contact__item { border: 1px solid rgba(255,255,255,0.35); padding: 28px 24px; }
.lp-kz-contact__ttl { font-size: 16px; font-weight: 700; margin-bottom: 10px; }
.lp-kz-contact__item p { font-size: 14px; line-height: 1.8; }
.lp-kz-contact__item .lp-kz-btn { width: 100%; margin-top: 16px; min-height: 58px; }
.lp-kz-tel { display: block; font-size: 32px; color: #fff !important; letter-spacing: 0.06em; margin: 4px 0 6px; }

/* LP内フォーム（Contact Form 7） */
.lp-kz-contact__form .kz-field { margin-bottom: 18px; }
.lp-kz-contact__form .kz-field > label,
.lp-kz-contact__form .kz-field > .kz-field__label {
	display: block;
	font-size: 14px;
	font-weight: 700;
	color: var(--kz-navy);
	margin-bottom: 6px;
}
.lp-kz-contact__form .kz-req,
.lp-kz-contact__form .kz-opt {
	display: inline-block;
	font-size: 11px;
	font-weight: 500;
	padding: 1px 8px;
	margin-left: 8px;
	vertical-align: 1px;
	color: #fff;
	background: #b54a3c;
}
.lp-kz-contact__form .kz-opt { background: #9a9a9a; }
.lp-kz-contact__form input[type="text"],
.lp-kz-contact__form input[type="email"],
.lp-kz-contact__form input[type="tel"],
.lp-kz-contact__form select,
.lp-kz-contact__form textarea {
	width: 100%;
	font-size: 16px;
	padding: 12px 14px;
	border: 1px solid #c2c2c2;
	background: #fafafa;
	border-radius: 0;
	font-family: inherit;
	color: #222;
}
.lp-kz-contact__form textarea { height: 110px; }
.lp-kz-contact__form .wpcf7-checkbox .wpcf7-list-item { display: block; margin: 0 0 6px; font-size: 15px; }
.lp-kz-contact__form .wpcf7-acceptance { font-size: 13px; }
.lp-kz-contact__form .kz-privacy { font-size: 12px; color: #6b6b6b; margin: 4px 0 16px; line-height: 1.7; }
.lp-kz-contact__form input[type="submit"] {
	width: 100%;
	min-height: 64px;
	font-size: 18px;
	font-weight: 700;
	color: #fff;
	background: var(--kz-grad);
	border: 0;
	cursor: pointer;
	letter-spacing: 0.1em;
	-webkit-appearance: none;
	border-radius: 0;
}
.lp-kz-contact__form input[type="submit"]:hover { opacity: .85; }
.lp-kz-contact__form .wpcf7-not-valid-tip { font-size: 13px; }
.lp-kz-contact__form .wpcf7-spinner { display: block; margin: 8px auto 0; }

/*----------------------------------------------------------
売主情報
----------------------------------------------------------*/
.lp-kz-company { padding: 48px 0 56px; background: #fff; }
.lp-kz-company dl { max-width: 860px; margin: 0 auto; }
.lp-kz-company dl > div { display: flex; padding: 10px 0; border-bottom: 1px solid #e5e5e5; font-size: 13px; line-height: 1.8; }
.lp-kz-company dt { width: 110px; flex-shrink: 0; color: var(--kz-blue); font-weight: 500; }
.lp-kz-company dd { color: #383838; }

/*----------------------------------------------------------
固定CTA
----------------------------------------------------------*/
.lp-kz-fixed {
	position: fixed;
	right: 0;
	bottom: 0;
	z-index: 998;
	display: flex;
}
.lp-kz-fixed a {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 64px;
	padding: 0 28px;
	font-size: 16px;
	font-weight: 700;
	color: #fff !important;
}
.lp-kz-fixed__form { background: var(--kz-grad); min-width: 220px; }
.lp-kz-fixed__line { background: var(--kz-line); }
.lp-kz-fixed__tel { background: #262626; }

/*----------------------------------------------------------
タブレット
----------------------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 1200px) {
	.lp-kz-fv { margin-top: 92px; }
	.lp-kz-fv__inner { gap: 32px; padding: 48px 24px 56px; }
	.lp-kz-fv__ttl { font-size: 32px; }
	.lp-kz .container { width: 100%; }
	.lp-kz-points { grid-template-columns: 1fr; }
	.lp-kz-uses { grid-template-columns: repeat(2, 1fr); }
	.lp-kz-site, .lp-kz-access, .lp-kz-contact__box { flex-direction: column; }
	.lp-kz-site__map, .lp-kz-site__data, .lp-kz-access__map, .lp-kz-access__list, .lp-kz-contact__form, .lp-kz-contact__sub { width: 100%; }
	.lp-kz-access__map { min-height: 320px; }
}

/*----------------------------------------------------------
スマホ
----------------------------------------------------------*/
@media only screen and (max-width: 767px) {
	.lp-kz { padding-bottom: 60px; }
	.lp-kz .container { width: 100%; padding-left: 16px; padding-right: 16px; }
	.lp-kz-sec { padding: 64px 0; }
	.lp-kz-head { margin-bottom: 32px; }
	.lp-kz-head h3 { font-size: 22px; }

	.lp-kz-fv { margin-top: 76px; }
	.lp-kz-fv__inner { flex-direction: column-reverse; gap: 0; padding: 0 0 40px; }
	.lp-kz-fv__img { width: 100%; }
	.lp-kz-fv__img img { aspect-ratio: 3 / 2; box-shadow: none; }
	.lp-kz-fv__txt { width: 100%; padding: 24px 16px 0; }
	.lp-kz-fv__badge { margin-bottom: 14px; }
	.lp-kz-fv__ttl { font-size: 25px; }
	.lp-kz-fv__lead { font-size: 14px; line-height: 1.85; margin-top: 14px; }
	.lp-kz-fv__nums { margin-top: 20px; }
	.lp-kz-fv__nums li { padding: 12px 4px; }
	.lp-kz-fv__nums .lp-kz-label { font-size: 10px; letter-spacing: 0; }
	.lp-kz-fv__nums b { font-size: 20px; }
	.lp-kz-fv__nums small { font-size: 11px; }
	.lp-kz-fv__price { flex-wrap: wrap; gap: 4px 12px; padding: 12px 16px; }
	.lp-kz-fv__price p { font-size: 15px; }
	.lp-kz-fv__price b { font-size: 27px; }
	.lp-kz-fv__price small { display: block; margin-left: 0; }
	.lp-kz-cta { flex-direction: column; margin-top: 20px; }
	.lp-kz-btn, .lp-kz-btn--main, .lp-kz-btn--line { width: 100%; min-width: 0; }
	.lp-kz-btn--main::before { display: none; }

	.lp-kz-points { grid-template-columns: 1fr; gap: 16px; }
	.lp-kz-points li { padding: 28px 20px 24px; }
	.lp-kz-points h4 { font-size: 17px; }

	.lp-kz-site, .lp-kz-access, .lp-kz-contact__box { flex-direction: column; gap: 24px; }
	.lp-kz-site__map { padding: 12px; width: 100%; }
	.lp-kz-site__data, .lp-kz-access__map, .lp-kz-access__list, .lp-kz-contact__form, .lp-kz-contact__sub { width: 100%; }
	.lp-kz-spec dt { width: 112px; font-size: 13px; }
	.lp-kz-spec dd { font-size: 14px; }

	.lp-kz-uses { grid-template-columns: 1fr; gap: 12px; }
	.lp-kz-uses li { padding: 18px 18px 16px; }
	.lp-kz-notice { padding: 22px 18px; }

	.lp-kz-access__map, .lp-kz-access__map iframe { min-height: 260px; }
	.lp-kz-access__list p { font-size: 15px; }

	.lp-kz-flow { grid-template-columns: 1fr; gap: 14px; }
	.lp-kz-flow li { display: flex; align-items: center; gap: 14px; text-align: left; padding: 16px 18px; }
	.lp-kz-flow li:not(:last-child)::after {
		right: auto;
		left: 50%;
		top: auto;
		bottom: -12px;
		transform: translateX(-50%);
		border-width: 10px 9px 0 9px;
		border-color: var(--kz-gold) transparent transparent transparent;
	}
	.lp-kz-flow span { flex-shrink: 0; width: 62px; }
	.lp-kz-flow h4 { margin: 0; font-size: 16px; flex-shrink: 0; width: 76px; }
	.lp-kz-flow__note { text-align: left; }

	.lp-kz-table table th { width: 110px; padding: 10px 12px; font-size: 13px; }
	.lp-kz-table table td { padding: 10px 12px; font-size: 13px; }

	.lp-kz-faq summary { font-size: 15px; padding: 18px 40px 18px 36px; }
	.lp-kz-faq summary::before { left: 4px; top: 16px; }
	.lp-kz-faq details p { padding: 0 8px 20px 36px; }

	.lp-kz-contact { padding: 64px 0; }
	.lp-kz-contact__merit { flex-direction: column; align-items: flex-start; gap: 8px; margin-bottom: 24px; }
	.lp-kz-contact__form { padding: 28px 18px 24px; }
	.lp-kz-tel { font-size: 28px; }

	.lp-kz-company dl > div { flex-direction: column; }

	.lp-kz-fixed { left: 0; width: 100%; }
	.lp-kz-fixed a { flex: 1; height: 60px; padding: 0 8px; font-size: 15px; min-width: 0; }
	.lp-kz-fixed__form { flex: 1.6 !important; }
}
