/* ==========================================================================
   request.css ── ご依頼ページ専用スタイル
   ========================================================================== */

/* --------------------------------------------------------------------------
   共通パネル基底
   -------------------------------------------------------------------------- */
.req-panel {
	background: var(--color-panel-bg);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border: 1px solid var(--color-panel-border);
	border-radius: var(--radius-lg);
	padding: clamp(1.5rem, 4vw, 2.5rem);
	box-shadow: var(--shadow-panel);
}

.req-lead {
	font-size: 0.92rem;
	line-height: 1.8;
	margin-bottom: 1.75rem;
	color: var(--color-text);
}

/* --------------------------------------------------------------------------
   料金表
   -------------------------------------------------------------------------- */
.price-wrap {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.price-row-a {
	display: flex;
	justify-content: space-between;
	padding: 0.9rem 1.5rem;
	border-bottom: 1px solid rgba(255,255,255,0.05);
	font-size: 0.9rem;
	gap: 1rem;
}
.price-row-a:nth-child(odd) {
	background: rgba(255,255,255,0.06);
}
.price-row-a.price-header {
	opacity: 0.85;
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--color-primary);
}
.price-label-a {
	flex: 1.8;
	opacity: 0.8;
}
.price-mid-a {
	flex: 1;
	opacity: 0.8;
	font-size: 0.85rem;
}
.price-value-a {
	flex: 1.5;
	text-align: right;
	color: var(--color-primary);
	opacity: 0.9;
}
.price-row-a small {
	font-size: 0.7rem;
	opacity: 0.6;
	display: block;
}
.price-note-a {
	font-size: 0.8rem;
	opacity: 0.85;
	line-height: 1.8;
	margin-bottom: 0.5rem;
}
.price-note-a--mb {
	margin-bottom: 0.75rem;
}
.price-table-a {
	margin-bottom: 1rem;
	background: var(--color-card-bg);
	border-radius: var(--radius-md);
	border: 1px solid var(--color-card-border);
	overflow: hidden;
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}

/* --------------------------------------------------------------------------
   シミュレーターパネル
   -------------------------------------------------------------------------- */
.sim-panel,
.status-panel,
.price-panel,
.delivery-panel {
	background: var(--color-panel-bg);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border: 1px solid var(--color-panel-border);
	border-radius: var(--radius-lg);
	padding: clamp(1.5rem, 4vw, 2.5rem);
	box-shadow: var(--shadow-panel);
}

.sim-panel--cta {
	text-align: center;
	padding: 2.5rem;
}

.sim-lead {
	opacity: 0.7;
	font-size: 0.9rem;
	margin-bottom: 2rem;
}

/* --------------------------------------------------------------------------
   規約パネル
   -------------------------------------------------------------------------- */
.terms-panel {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	align-items: stretch;
	background: none;
	border: none;
	box-shadow: none;
	padding: 0;
}

/* --------------------------------------------------------------------------
   注意事項・規約ブロック
   -------------------------------------------------------------------------- */
.notes-block {
	background: rgba(26, 26, 42, 0.7);
	border: 1px solid var(--color-card-border);
	border-radius: var(--radius-md);
	padding: 1.5rem;
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}

.notes-block__title {
	font-size: 0.88rem;
	font-weight: 700;
	color: var(--color-primary);
	margin-bottom: 1rem;
	padding-bottom: 0.5rem;
	border-bottom: 1px solid var(--color-card-border);
}

/* 小見出し：規約内のサブセクション用（2.1〜 / 〇前提 等） */
.notes-block__title--sub {
	border-bottom: none;
	padding-bottom: 0;
	margin-bottom: 0.4rem;
	font-size: 0.82rem;
}
/* 小見出し + 上マージンあり（2つ目以降） */
.notes-block__title--sub-mt {
	border-bottom: none;
	padding-bottom: 0;
	margin-bottom: 0.4rem;
	margin-top: 1rem;
	font-size: 0.82rem;
}

/* 料金表内の区切り見出し */
.notes-block__title--section {
	border-bottom: none;
	margin-top: 1rem;
	margin-bottom: 0.4rem;
}
.notes-block__title--section-lg {
	border-bottom: none;
	margin-top: 1.5rem;
	margin-bottom: 0.4rem;
}

.notes-list {
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
}
.notes-list li {
	font-size: 0.85rem;
	line-height: 1.8;
	padding-left: 1.1em;
	position: relative;
}
.notes-list li::before { content: '・'; position: absolute; left: 0; color: var(--color-primary); }
.notes-list li small { display: block; font-size: 0.78rem; color: var(--color-text-light); margin-top: 0.2rem; }

.notes-list--caution li::before { color: #c0392b; content: '✕'; }
.notes-list--mt { margin-top: 0.75rem; }

.notes-lead {
	font-size: 0.85rem;
	margin-bottom: 0.75rem;
	opacity: 0.8;
}
.notes-lead--sm {
	font-size: 0.85rem;
	margin-bottom: 0.5rem;
	opacity: 0.8;
}

/* --------------------------------------------------------------------------
   ご依頼フォーム
   -------------------------------------------------------------------------- */
.contact-panel {
	display: flex;
	flex-direction: column;
	gap: 1.75rem;
}

.contact-note {
	font-size: 0.82rem;
	opacity: 0.85;
	line-height: 1.8;
	margin-bottom: 2rem;
}

.contact-form {
	display: flex;
	flex-direction: column;
	gap: 1.2rem;
}

.form-group { display: flex; flex-direction: column; gap: 0.4rem; }

.form-label {
	font-size: 0.75rem;
	letter-spacing: 0.2em;
	color: var(--color-primary);
	opacity: 0.8;
}

.form-input,
.form-textarea {
	background: rgba(10, 18, 40, 0.7);
	border: 1px solid rgba(255,255,255,0.15);
	color: var(--color-text);
	padding: 0.8rem 1rem;
	font-family: var(--font-main);
	font-size: 0.9rem;
	outline: none;
	transition: border-color 0.3s;
	width: 100%;
	border-radius: var(--radius-sm);
}
.form-input:focus,
.form-textarea:focus {
	border-color: var(--color-primary);
}
.form-textarea { height: 320px; resize: vertical; }

.form-result {
	margin-top: 1rem;
	font-size: 0.85rem;
	opacity: 0.7;
}

.form-submit {
	background: transparent;
	border: 1px solid var(--color-primary);
	color: var(--color-primary);
	padding: 1rem 4rem;
	font-family: var(--font-main);
	font-size: 0.85rem;
	letter-spacing: 0.3em;
	cursor: pointer;
	transition: background var(--transition), color var(--transition);
	align-self: center;
	border-radius: var(--radius-sm);
}
.form-submit:hover {
	background: var(--color-primary);
	color: #fff;
}

#contact {
	background: linear-gradient(to bottom, transparent, rgba(15, 25, 50, 0.85) 18rem);
}

/* --------------------------------------------------------------------------
   ページ内サブナビは style.css で管理
   -------------------------------------------------------------------------- */

/* --------------------------------------------------------------------------
   レスポンシブ
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
	.price-row-a { padding: 0.7rem 0.875rem; font-size: 0.82rem; }
}
@media (max-width: 480px) {
	.price-label-a,
	.price-mid-a,
	.price-value-a { flex: none; width: 100%; text-align: left; }
	.price-row-a { flex-direction: column; gap: 0.25rem; }
	.price-row-a.price-header { display: none; }
}
