.contact-wrap { max-width: var(--container-narrow); margin-inline: auto; padding: var(--space-section) var(--space-5); }

.contact-info-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-5); }
.contact-info-card { background: rgb(var(--color-surface)); padding: var(--space-6); box-shadow: var(--shadow-card); display: flex; gap: var(--space-4); align-items: flex-start; }
.contact-info-card .ci-icon { flex: 0 0 40px; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; background: rgb(var(--color-bg-soft)); border-radius: 50%; color: rgb(var(--color-primary)); }
.contact-info-card .ci-body { flex: 1; min-width: 0; }
.contact-info-card .ci-label { font-family: var(--font-zh); color: rgb(var(--color-text-muted)); font-size: var(--text-xs); margin-bottom: var(--space-1); }
.contact-info-card .ci-value { word-break: break-word; }
.contact-info-card .ci-empty { color: rgb(var(--color-text-muted)); font-style: italic; }

.contact-map { margin-top: var(--space-8); background: rgb(var(--color-surface)); box-shadow: var(--shadow-card); overflow: hidden; }
.contact-map iframe { width: 100%; height: 360px; border: 0; display: block; }
.contact-map .cm-bar { display: flex; justify-content: space-between; align-items: center; padding: var(--space-4) var(--space-6); border-bottom: 1px solid rgb(var(--color-border)); }
.contact-map .cm-bar h2 { margin: 0; }
.contact-map .cm-open { display: inline-flex; align-items: center; gap: var(--space-2); padding: var(--space-2) var(--space-4); background: rgb(var(--color-primary)); color: rgb(var(--color-on-primary)); text-decoration: none; font-size: var(--text-sm); transition: var(--transition-fast); }
.contact-map .cm-open:hover { background: rgb(var(--color-accent)); }
.contact-map-empty { margin-top: var(--space-8); padding: var(--space-10); text-align: center; background: rgb(var(--color-bg-soft)); color: rgb(var(--color-text-muted)); font-style: italic; }

.contact-transport { margin-top: var(--space-10); }
.contact-transport h2 { margin-bottom: var(--space-6); }
.contact-transport-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-5); }
.contact-transport-card { background: rgb(var(--color-surface)); padding: var(--space-6); box-shadow: var(--shadow-card); }
.contact-transport-card .ct-icon { width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; background: rgb(var(--color-bg-soft)); border-radius: 50%; color: rgb(var(--color-primary)); margin-bottom: var(--space-4); }
.contact-transport-card .ct-title { font-family: var(--font-zh); font-size: var(--text-h4); margin-bottom: var(--space-3); }
.contact-transport-card .ct-body { color: rgb(var(--color-text-body)); line-height: 1.7; }
.contact-transport-card .ct-empty { color: rgb(var(--color-text-muted)); font-style: italic; }

.contact-form-section { margin-top: var(--space-10); }
.contact-form-section h2 { margin-bottom: var(--space-6); }
.contact-form-card { background: rgb(var(--color-surface)); padding: var(--space-6); box-shadow: var(--shadow-card); }

.contact-cta { margin-top: var(--space-10); padding: var(--space-8) var(--space-6); background: rgb(var(--color-primary)); color: rgb(var(--color-on-primary)); text-align: center; }
.contact-cta h2 { color: rgb(var(--color-on-primary)); margin-bottom: var(--space-5); }
.contact-cta-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-4); }
.contact-cta-actions a { display: inline-flex; align-items: center; gap: var(--space-2); padding: var(--space-3) var(--space-6); background: rgb(var(--color-surface)); color: rgb(var(--color-primary)); text-decoration: none; font-family: var(--font-zh); transition: var(--transition-fast); }
.contact-cta-actions a:hover { background: rgb(var(--color-accent)); color: rgb(var(--color-on-primary)); }

@media (max-width: 768px) {
	.contact-info-grid { grid-template-columns: 1fr; }
	.contact-transport-grid { grid-template-columns: 1fr; }
	.contact-map .cm-bar { flex-direction: column; gap: var(--space-3); align-items: flex-start; }
}
