/* ==========================================================
	contact.css
	お問い合わせページ用CSS（全フォームパーツ対応標準スタイル）
	========================================================== */
body {
	background: var(--bg);
}

.pd-page-hero-header { 
	background: linear-gradient(rgba(0,40,90,0.65), rgba(0,25,60,0.85)), url('../../images/main/page_main.jpg') center/cover; 
	color: var(--wh); padding: 60px 0; text-align: left;
}
.pd-page-hero-header h1 {
	font-size: 2.2rem;
	font-weight: 800;
	letter-spacing: 0.05em;
	font-family: "Shippori Mincho", serif;
}
.pd-cpt-hero-eyebrow {
	font-family: "Jost", sans-serif;
}

.pd-breadcrumb-bar {
	background: var(--wh);
	padding: 15px 0;
	font-size: 0.85rem;
	color: var(--tm);
}
.pd-breadcrumb-list {
	display: flex;
	flex-wrap: wrap;
	list-style: none;
	gap: 8px;
}
.pd-breadcrumb-list a {
	text-decoration: none;
	color: var(--p);
	font-weight: 600;
}
.pd-breadcrumb-list a:hover {
	text-decoration: underline;
}
.pd-breadcrumb-list li:not(:last-child)::after {
	content: '>';
	margin-left: 8px;
	color: #cbd5e1;
}
.pd-breadcrumb-list li:last-child {
	color: var(--td);
	font-weight: 500;
}

.pd-contact-form-section { padding: 50px 0 100px; }
.pd-contact-form-card { background: #fff; border: 1px solid #edf2f6; box-shadow: 0 4px 25px rgba(0,0,0,0.03); padding: 50px 70px; max-width: 900px; margin: 0 auto; }

/* ---------- ステップバー ---------- */

.pd-contact-step-bar {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	width: 100%;
	margin: 0 auto 40px;
	position: relative;
}
.pd-contact-step-line-first {
	position: absolute;
	top: 7px;
	left: 16.66%;
	z-index: 1;
	width: 33.33%;
	height: 2px;
	background-color: #cbd5e1;
}
.pd-contact-step-line-second {
	position: absolute;
	top: 7px; left: 50%;
	z-index: 1;
	width: 33.33%;
	height: 2px;
	background-color: #cbd5e1;
}
.pd-contact-step-item {
	text-align: center;
	flex: 1;
	position: relative;
	z-index: 2;
	font-size: 0.8rem;
	color: #94a3b8;
	font-weight: 700;
}
.pd-contact-step-dot {
	position: relative;
	z-index: 3;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: #cbd5e1;
	margin: 0 auto 12px;
}
.pd-contact-step-item.is-active {
	color: var(--p);
}
.pd-contact-step-item.is-active .pd-contact-step-dot {
	background: var(--p);
	box-shadow: 0 0 0 5px rgba(0, 91, 172, 0.25);
}

/* ---------- リード文章 ---------- */

.pd-contact-form-lead { text-align: center; font-size: 0.95rem; color: #333; font-weight: 600; line-height: 1.8; margin-bottom: 50px; background: var(--wh); padding: 20px; border-radius: 4px; }

/* ---------- 入力項目 ---------- */

.pd-contact-form-group { margin-bottom: 35px; text-align: left; }

/* ラベルと「必須/任意」タグの組み合わせ */
.pd-contact-form-label-area { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.pd-contact-badge { font-size: 0.75rem; font-weight: bold; padding: 4px 10px; border-radius: 4px; color: #fff; min-width: 48px; text-align: center; }
.pd-contact-badge.required { background-color: #ef4444; } /* 必須：赤 */
.pd-contact-badge.optional { background-color: #64748b; } /* 任意：グレー */
.pd-contact-form-title { font-size: 1rem; font-weight: 700; color: #1e293b; }

/* 各種入力フィールド */
.pd-contact-input-text { width: 100%; padding: 14px 16px; font-size: 0.95rem; border: 1px solid #cbd5e1; background-color: #ffffff; border-radius: 4px; transition: border-color 0.3s; outline: none; }
.pd-contact-input-text:focus { border-color: var(--p); box-shadow: 0 0 0 3px rgba(0, 91, 172, 0.1); }
.pd-contact-textarea { width: 100%; height: 180px; resize: vertical; }

/* ラジオボタン ＆ チェックボックスの並び */
.pd-contact-choice-list { display: flex; flex-wrap: wrap; gap: 15px 25px; padding: 12px 16px; background: var(--bg); border-radius: 4px; margin-bottom: 10px; }
.pd-contact-choice-item { display: inline-flex; align-items: center; gap: 8px; font-size: 0.9rem; font-weight: 600; color: #333; cursor: pointer; }
.pd-contact-choice-item input[type="radio"], .pd-contact-choice-item input[type="checkbox"] { width: 16px; height: 14px; cursor: pointer; }

/* 入れ子になった子項目（設備設計チェックボックス用） */
.pd-contact-nested-choices { display: flex; flex-wrap: wrap; gap: 10px 20px; padding: 12px 24px; margin-left: 10px; border-left: 2px solid #e2e8f0; margin-bottom: 15px; }

/* 個人情報保護とプライバシーポリシー同意 */
.pd-contact-policy-area { text-align: center; margin: 50px 0 30px; font-size: 0.9rem; color: #444; font-weight: 500; }
.pd-contact-policy-link { color: var(--p); text-decoration: none; font-weight: 700; }
.pd-contact-policy-link:hover { text-decoration: underline; }
.pd-contact-agree-checkbox { display: flex; justify-content: center; align-items: center; gap: 8px; margin-top: 20px; font-weight: 700; cursor: pointer; }

/* 確認するボタン */
.pd-contact-submit-wrap { text-align: center; margin-top: 40px; }
.pd-contact-submit-button { 
	display: inline-flex; align-items: center; justify-content: center; border: 1px solid #333333; background: #ffffff; color: #333333; 
	padding: 14px 80px; font-size: 0.95rem; font-weight: 700; letter-spacing: 0.1em; text-decoration: none; border-radius: 30px; cursor: pointer;
	transition: all 0.5s cubic-bezier(0.165, 0.84, 0.44, 1); will-change: transform, background-color, box-shadow; transform: translateZ(0);
}
.pd-contact-submit-button:hover {
	background-color: var(--pd);
	border-color: var(--pd);
	color: var(--wh);
	transform: translateY(-3px) translateZ(0);
	box-shadow: 0 8px 20px rgba(0, 61, 117, 0.2);
	text-decoration: none;
}

@media (max-width: 768px) {
	.pd-contact-form-card { padding: 30px 20px; }
	.pd-contact-choice-list, .pd-contact-nested-choices { flex-direction: column; align-items: flex-start; gap: 12px; }
	.pd-contact-nested-choices { border-left: none; padding-left: 10px; }
	.pd-contact-submit-button { width: 100%; padding: 14px 0; }
	.pd-contact-step-line-first, .pd-contact-step-line-second { display: none; } /* スマホ時はバーを非表示にしテキストを最適化 */
}
.pd-contact-field-error {
	color: #e53935;
	font-size: 13px;
	margin-top: 4px;
}
.pd-contact-policy-area p {
	text-align: center;
}
.pd-contact-agree-checkbox input {
	display: inline-block;
	width: auto;
}
#pd-contact-confirm-form .pd-contact-form-group {
	display: flex;
	margin-bottom: 17.5px;
	padding-bottom: 17.5px;
	text-align: left;
	border-bottom: 1px solid #cbd5e1;
}
#pd-contact-confirm-form .pd-contact-form-group .pd-contact-form-label-area {
	margin-bottom: 0;
}
#pd-contact-confirm-form .pd-contact-form-group .pd-contact-form-title {
	width: 18rem;
}
.pd-contact-submit-wrap button {
	margin-right: 1rem;
}
.pd-contact-submit-wrap button:last-child {
	margin-right: 0;
}

.pd-contact-thanks {
	text-align: center;
	padding: var(--pd-space-xxl) 0;
}
.pd-thanks-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background-color: var(--pd-color-success);
	color: var(--pd-color-base);
	font-size: 32px;
	margin-bottom: var(--pd-space-lg);
}
.pd-thanks-title {
	font-size: var(--pd-font-size-xlarge);
	font-weight: 700;
	margin-bottom: var(--pd-space-md);
}
.pd-thanks-message {
	text-align:center;
	color: var(--pd-color-gray);
	margin-bottom: var(--pd-space-xl);
}
.pd-contact-field-error {
	display: block !important;
	color: #e03131;
	font-size: 0.875rem;
	margin-top: 0.5rem;
	font-weight: bold;
}

/* JSのクエリ用エラー非表示（hidden属性時） */
.pd-contact-field-error[hidden] {
	display: none !important;
}

@media (max-width: 768px) {
	.pd-contact-submit-wrap button {
		margin-bottom: 1rem;
	}
	.pd-contact-submit-wrap button:last-child {
		margin-bottom: 0;
	}
	#pd-contact-confirm-form .pd-contact-form-group {
		display: block;
	}
	#pd-contact-confirm-form .pd-contact-form-group .pd-contact-form-title {
		width: 100%;
	}
}