.contact-page { background: #fff; }
.contact-hero { position: relative; overflow: hidden; padding: 84px 0 78px; background: linear-gradient(115deg,#eef5ff 0%,#fff 52%,#e9f8f4 100%); border-bottom: 1px solid #dfe8f4; }
.contact-hero::after { content:""; position:absolute; width:500px; height:500px; right:-250px; top:-320px; border:1px solid rgba(8,100,255,.11); border-radius:50%; box-shadow:0 0 0 65px rgba(8,100,255,.025),0 0 0 130px rgba(8,100,255,.016); }
.contact-hero-layout { position: relative; z-index:1; display:grid; grid-template-columns:minmax(0,1.1fr) minmax(420px,.9fr); gap:86px; align-items:center; }
.contact-hero-copy { max-width:670px; }
.contact-hero h1 { margin:0; color:#071a41; font-size:clamp(46px,4.4vw,64px); line-height:1.03; letter-spacing:-.048em; font-weight:770; }
.contact-hero-copy > p:not(.section-kicker) { margin:23px 0 0; max-width:650px; color:#4b5b75; font-size:17px; line-height:1.65; }
.contact-direct { background:#fff; border:1px solid #dce6f2; border-radius:18px; box-shadow:0 22px 50px rgba(4,23,54,.10); overflow:hidden; }
.contact-direct a { display:grid; grid-template-columns:52px 1fr; gap:16px; align-items:center; min-height:86px; padding:18px 24px; transition:background-color .18s ease; }
.contact-direct a + a { border-top:1px solid #e2e9f2; }
.contact-direct a:hover { background:#f7faff; }
.contact-direct-icon { width:48px; height:48px; display:grid; place-items:center; color:var(--blue); background:#edf4ff; border-radius:12px; }
.contact-direct-icon svg { width:25px; height:25px; stroke-width:1.8; }
.contact-direct-icon--wa { color:#18845d; background:#e9f7f1; }
.contact-direct-icon--wa svg path:first-child { fill:none; stroke:currentColor; }
.contact-direct-icon--wa svg path:last-child { fill:currentColor; stroke:none; }
.contact-direct small { display:block; color:#6b7890; font-size:12px; line-height:1.2; }
.contact-direct strong { display:block; margin-top:4px; color:#071a41; font-size:15px; line-height:1.3; }

.contact-main { padding:84px 0 92px; background:#fff; }
.contact-main-layout { display:grid; grid-template-columns:minmax(0,.78fr) minmax(620px,1.22fr); gap:80px; align-items:start; }
.contact-context { padding-top:16px; }
.contact-context h2 { margin:0; color:#071a41; font-size:clamp(34px,3.1vw,47px); line-height:1.08; letter-spacing:-.042em; font-weight:770; }
.contact-context > p:not(.section-kicker):not(.contact-coverage) { margin:22px 0 0; color:#4e5c76; font-size:16px; line-height:1.65; }
.contact-context-items { margin-top:32px; border-top:1px solid #dfe7f1; }
.contact-context-items div { display:grid; grid-template-columns:44px 1fr; gap:14px; padding:19px 0; border-bottom:1px solid #dfe7f1; }
.contact-context-items span { color:var(--blue); font-size:13px; font-weight:800; letter-spacing:.06em; }
.contact-context-items p { margin:0; color:#55647c; font-size:14px; line-height:1.52; }
.contact-context-items strong { color:#071a41; }
.contact-coverage { margin:28px 0 0; padding:17px 19px; color:#284a74; background:#edf5ff; border-left:3px solid var(--blue); font-size:14px; line-height:1.5; font-weight:650; }
.contact-form { padding:34px 36px 36px; background:#f5f8fc; border:1px solid #dce5f0; border-radius:18px; box-shadow:0 20px 48px rgba(4,23,54,.08); }
.contact-form-heading h2 { margin:0; color:#071a41; font-size:30px; letter-spacing:-.03em; }
.contact-form-heading > p:not(.section-kicker) { margin:8px 0 0; color:#69768b; font-size:13px; }
.contact-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:28px; }
.contact-form label { display:flex; flex-direction:column; gap:8px; }
.contact-form label > span { color:#213453; font-size:13px; font-weight:700; }
.contact-form input,
.contact-form select,
.contact-form textarea { width:100%; border:1px solid #cbd7e5; border-radius:8px; color:#071a41; background:#fff; padding:12px 13px; outline:none; transition:border-color .18s ease,box-shadow .18s ease; }
.contact-form input,
.contact-form select { min-height:47px; }
.contact-form textarea { resize:vertical; min-height:140px; line-height:1.5; }
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus { border-color:#6aa9ff; box-shadow:0 0 0 3px rgba(8,100,255,.10); }
.contact-field-full { grid-column:1/-1; }
.contact-consent { margin-top:20px; display:grid !important; grid-template-columns:18px 1fr; align-items:start; gap:10px !important; }
.contact-consent input { width:17px; height:17px; min-height:0; margin:1px 0 0; }
.contact-consent span { color:#56647b !important; font-weight:500 !important; line-height:1.45; }
.contact-consent a { color:var(--blue); text-decoration:underline; text-underline-offset:2px; }
.contact-form-actions { display:flex; align-items:center; gap:18px; margin-top:24px; }
.contact-form-actions .btn { color:#fff; background:var(--blue); border-color:var(--blue); }
.contact-form-actions p { margin:0; color:#718096; font-size:12px; line-height:1.4; }
.contact-form-error { margin:16px 0 0; color:#a22c2c; font-size:13px; font-weight:700; }

.contact-paths { padding:70px 0 82px; background:#f2f6fb; }
.contact-paths-heading { max-width:780px; margin-bottom:30px; }
.contact-paths-heading h2 { margin:0; color:#071a41; font-size:clamp(32px,2.9vw,43px); line-height:1.1; letter-spacing:-.04em; }
.contact-paths-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.contact-paths-grid a { min-height:210px; padding:26px; display:flex; flex-direction:column; background:#fff; border:1px solid #dce5ef; border-radius:14px; box-shadow:0 14px 32px rgba(4,23,54,.07); transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease; }
.contact-paths-grid a:hover { transform:translateY(-5px); border-color:rgba(8,100,255,.25); box-shadow:0 20px 42px rgba(4,23,54,.12); }
.contact-paths-grid span { color:var(--blue); font-size:12px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.contact-paths-grid strong { margin-top:28px; color:#071a41; font-size:21px; line-height:1.28; letter-spacing:-.02em; }
.contact-paths-grid small { margin-top:auto; padding-top:26px; color:#4f607a; font-size:13px; font-weight:750; }

@media (max-width:1080px) {
  .contact-hero-layout,
  .contact-main-layout { grid-template-columns:1fr; gap:44px; }
  .contact-direct { max-width:680px; }
  .contact-context { max-width:760px; }
}
@media (max-width:760px) {
  .contact-hero { padding:64px 0; }
  .contact-main { padding:64px 0 70px; }
  .contact-form-grid { grid-template-columns:1fr; }
  .contact-field-full { grid-column:auto; }
  .contact-paths-grid { grid-template-columns:1fr; }
  .contact-paths-grid a { min-height:170px; }
}
@media (max-width:520px) {
  .contact-hero h1 { font-size:41px; }
  .contact-direct a { padding:16px 18px; grid-template-columns:46px 1fr; }
  .contact-direct-icon { width:44px; height:44px; }
  .contact-form { padding:26px 20px 28px; }
  .contact-form-actions { align-items:stretch; flex-direction:column; }
  .contact-form-actions .btn { width:100%; }
}

/* Producción: canales directos sin WhatsApp ni teléfono personal */
.contact-direct { grid-template-columns: 1fr; }
