/* contacto.css */
.contacto-main { display:grid; grid-template-columns:420px 1fr; min-height:100vh; }

.contacto-aside { background:var(--negro); position:sticky; top:0; height:100vh; overflow-y:auto; padding:calc(var(--nav-h) + 48px) 48px 48px; }
.contacto-aside::before { content:''; position:fixed; top:0; left:0; width:420px; height:100vh; background: radial-gradient(ellipse at 80% 20%, rgba(44,95,46,0.4) 0%, transparent 60%), radial-gradient(ellipse at 10% 80%, rgba(44,95,46,0.2) 0%, transparent 50%); pointer-events:none; z-index:0; }
.contacto-aside-inner { position:relative; z-index:1; }

.contacto-title { font-family:var(--font-display); font-size:clamp(40px,4vw,60px); font-weight:700; color:var(--blanco); line-height:1.1; margin:12px 0 20px; }
.contacto-title em { font-style:italic; color:rgba(255,255,255,0.55); }
.contacto-desc { font-size:15px; color:rgba(255,255,255,0.65); line-height:1.7; margin-bottom:36px; }

.contacto-metodos { display:flex; flex-direction:column; gap:12px; margin-bottom:36px; }
.metodo-card { display:flex; align-items:center; gap:14px; padding:16px 18px; border-radius:var(--radius-md); border:1px solid rgba(255,255,255,0.1); background:rgba(255,255,255,0.05); color:var(--blanco); transition:var(--transition); }
.metodo-card:hover { background:rgba(255,255,255,0.1); border-color:rgba(255,255,255,0.2); transform:translateX(4px); }
.metodo-wa { border-color:rgba(37,211,102,0.3); background:rgba(37,211,102,0.08); }
.metodo-wa:hover { background:rgba(37,211,102,0.15); border-color:rgba(37,211,102,0.5); }
.metodo-icon { width:44px; height:44px; border-radius:var(--radius-sm); background:rgba(37,211,102,0.2); color:#25D366; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.metodo-icon-tel { background:rgba(44,95,46,0.25); color:#6fcf72; }
.metodo-icon-email { background:rgba(44,95,46,0.25); color:#6fcf72; }
.metodo-card > div strong { display:block; font-size:14px; font-weight:600; color:var(--blanco); margin-bottom:2px; }
.metodo-card > div span { font-size:12px; color:rgba(255,255,255,0.5); }
.metodo-arrow { margin-left:auto; color:rgba(255,255,255,0.3); flex-shrink:0; }

.contacto-datos { display:flex; flex-direction:column; gap:12px; padding-top:28px; border-top:1px solid rgba(255,255,255,0.08); }
.dato-item { display:flex; align-items:center; gap:10px; font-size:13px; color:rgba(255,255,255,0.5); }
.dato-item svg { color:rgba(255,255,255,0.3); flex-shrink:0; }

/* Formulario */
.contacto-form-wrap { background:var(--beige); display:flex; align-items:flex-start; padding:calc(var(--nav-h) + 48px) 64px 64px; min-height:100vh; }
.contacto-form-card { background:var(--blanco); border-radius:var(--radius-xl); padding:48px; width:100%; max-width:640px; box-shadow:var(--shadow-lg); }
.contacto-form-card h2 { font-family:var(--font-display); font-size:30px; font-weight:700; color:var(--negro); margin-bottom:8px; }
.contacto-form-card > p { font-size:15px; color:var(--gris); }

/* Reusar form-group, form-row, label, input de presupuesto.css o styles.css */
.form-group { margin-bottom:20px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
label { display:block; font-size:14px; font-weight:500; color:var(--negro); margin-bottom:7px; }
.required { color:var(--verde); }
input[type="text"], input[type="tel"], input[type="email"], select, textarea { width:100%; padding:12px 16px; border:1.5px solid var(--beige-dark); border-radius:var(--radius-md); font-family:var(--font-body); font-size:15px; color:var(--negro); background:var(--blanco); transition:border-color var(--transition), box-shadow var(--transition); appearance:none; outline:none; }
input:focus, select:focus, textarea:focus { border-color:var(--verde); box-shadow:0 0 0 3px rgba(44,95,46,0.12); }
input.error, select.error, textarea.error { border-color:#e24b4a; }
select { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238A8A87' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; padding-right:40px; cursor:pointer; }
textarea { resize:vertical; min-height:130px; line-height:1.6; }
.field-error { display:block; font-size:12px; color:#e24b4a; margin-top:5px; min-height:16px; }
.checkbox-inline { display:flex; align-items:flex-start; gap:10px; cursor:pointer; font-size:14px; color:var(--gris); line-height:1.5; }
.checkbox-inline input[type="checkbox"] { width:18px; height:18px; flex-shrink:0; margin-top:1px; accent-color:var(--verde); }
.link-verde { color:var(--verde); text-decoration:underline; text-underline-offset:2px; }

.contacto-success { display:flex; align-items:center; gap:12px; background:var(--verde-fondo); border:1px solid var(--verde); border-radius:var(--radius-md); padding:14px 18px; margin-top:16px; color:var(--verde); font-weight:500; font-size:14px; }

@media (max-width:900px) {
  .contacto-main { grid-template-columns:1fr; }
  .contacto-aside { position:relative; height:auto; padding:calc(var(--nav-h) + 40px) 24px 40px; }
  .contacto-aside::before { width:100%; }
  .contacto-form-wrap { padding:40px 24px 64px; }
  .contacto-form-card { max-width:100%; }
}
@media (max-width:600px) {
  .form-row { grid-template-columns:1fr; }
  .contacto-form-card { padding:24px 20px; }
}