/* ---------- Nuestras sedes ---------- */
.ge-sedes { padding: 4rem 0 5rem; }
.ge-sedes-title { text-align: center; margin-bottom: 2.5rem; }
.ge-sedes-grid { display: grid; grid-template-columns: 1fr; gap: 2rem; }
.ge-sede-card { border: 1px solid var(--ge-border); border-radius: var(--ge-radius); padding: 2rem; }
.ge-sede-card h3 { margin-bottom: 0.8rem; font-size: 1.3rem; }
.ge-sede-direccion, .ge-sede-telefono { display: flex; align-items: center; gap: 0.6rem; font-size: 1rem; color: var(--ge-text-muted); margin-bottom: 0.6rem; }
.ge-sede-direccion .ge-icon, .ge-sede-telefono .ge-icon { color: var(--ge-orange-500); width: 1.2rem; height: 1.2rem; flex-shrink: 0; }
.ge-sede-telefono a:hover { color: var(--ge-green-700); }
.ge-sede-map { width: 100%; margin-top: 1.5rem; border-radius: var(--ge-radius-sm); overflow: hidden; aspect-ratio: 21 / 9; min-height: 320px; }
.ge-sede-map iframe { width: 100%; height: 100%; border: 0; display: block; }

@media (max-width: 760px) {
	.ge-sede-map { aspect-ratio: 4 / 3; min-height: 260px; }
}

/* ---------- Cuerpo: canales + formulario ---------- */
.ge-contact-body { padding: 4rem 0 5rem; }
.ge-contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: start; }
.ge-contact-channels h2 { position: relative; padding-bottom: 0.8rem; margin-bottom: 1.5rem; }
.ge-contact-channels h2::after { content: ''; position: absolute; left: 0; bottom: 0; width: 2.2rem; height: 3px; background: var(--ge-green-600); border-radius: 2px; }

.ge-channel-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.2rem; }
.ge-channel-card { border: 1px solid var(--ge-border); border-radius: var(--ge-radius); padding: 1.4rem; }
.ge-channel-icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 2.6rem; height: 2.6rem; border-radius: 50%;
	background: var(--ge-green-600); color: var(--ge-white);
	margin-bottom: 0.8rem;
}
.ge-channel-icon-orange { background: var(--ge-orange-500); }
.ge-channel-icon .ge-icon { width: 1.3rem; height: 1.3rem; }
.ge-channel-card h3 { font-size: 0.95rem; margin-bottom: 0.5rem; }
.ge-channel-value { font-weight: 700; margin: 0 0 0.2rem; }
.ge-channel-value a:hover { color: var(--ge-green-700); }
.ge-channel-note { font-size: 0.8rem; color: var(--ge-text-muted); margin: 0.5rem 0 0; padding-top: 0.5rem; border-top: 1px solid var(--ge-border); }
.ge-channel-card .ge-btn { margin-top: 0.8rem; }

/* ---------- Tarjeta del formulario ---------- */
.ge-contact-form-card { background: var(--ge-bg-alt); border-radius: var(--ge-radius); padding: 2rem; }
.ge-contact-form-card h2 { margin-bottom: 0.3rem; }
.ge-contact-form-subtitle { color: var(--ge-text-muted); margin-bottom: 1.5rem; }

.ge-form-notice { border-radius: var(--ge-radius-sm); padding: 0.9rem 1.1rem; margin-bottom: 1.2rem; font-size: 0.9rem; }
.ge-form-notice-success { background: var(--ge-green-100); color: var(--ge-green-800); }
.ge-form-notice-error { background: #fbe7e7; color: #a02222; }

.ge-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.ge-form-field { margin-bottom: 1.1rem; }
.ge-form-field label { display: block; font-size: 0.85rem; font-weight: 600; margin-bottom: 0.4rem; }
.ge-required { color: var(--ge-orange-600); }
.ge-form-field input[type="text"],
.ge-form-field input[type="email"],
.ge-form-field input[type="tel"],
.ge-form-field select,
.ge-form-field textarea {
	width: 100%;
	padding: 0.75rem 1rem;
	border: 1px solid var(--ge-border);
	border-radius: var(--ge-radius-sm);
	background: var(--ge-white);
	font: inherit;
	color: var(--ge-text);
}
.ge-form-field textarea { resize: vertical; }
.ge-form-field input:focus, .ge-form-field select:focus, .ge-form-field textarea:focus {
	outline: 2px solid var(--ge-green-600); outline-offset: 1px;
}

.ge-honeypot { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

.ge-form-checkbox { display: flex; align-items: flex-start; gap: 0.6rem; font-size: 0.85rem; color: var(--ge-text-muted); margin-bottom: 1.4rem; cursor: pointer; }
.ge-form-checkbox input { margin-top: 0.2rem; }
.ge-form-checkbox a { color: var(--ge-green-700); text-decoration: underline; }

.ge-form-submit { width: 100%; justify-content: center; font-size: 1rem; }

@media (max-width: 960px) {
	.ge-contact-grid { grid-template-columns: 1fr; }
	.ge-channel-grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
	.ge-form-row { grid-template-columns: 1fr; }
}
