/* Contacto: propuesta compatible con la versión 14 aprobada. */
body[data-page="contacto"] { font-family: Montserrat, Arial, sans-serif; font-weight: 400; }
body[data-page="contacto"] main p { font-size: 16px; font-weight: 400; line-height: 1.65; text-wrap: pretty; }
body[data-page="contacto"] main h2 { font-size: 40px; font-weight: 650; line-height: 1.18; }
body[data-page="contacto"] main h3 { font-size: 17px; font-weight: 650; line-height: 1.4; letter-spacing: -.02em; }
body[data-page="contacto"] .footer-redesign .institutional { font-family: inherit; }
.contact-page-hero { background: var(--black); color: #fff; padding: 60px 0 56px; }
.contact-page-hero h1 { font-size: 54px; font-weight: 600; line-height: 1.08; text-wrap: balance; }
.contact-page-hero p { max-width: 100%; margin-top: 24px; color: #dedede; }
.contact-page-section { padding: 64px 0; }
.contact-page-grid { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: 72px; align-items: stretch; }
.contact-page-channels { display: flex; flex-direction: column; }
.contact-page-intro { max-width: 470px; margin-top: 22px; }
.contact-page-channel { display: flex; align-items: flex-start; gap: 16px; margin-top: 30px; padding-top: 26px; border-top: 1px solid var(--line); }
.contact-page-channel > svg { width: 24px; height: 24px; color: var(--red); flex-shrink: 0; margin-top: 2px; }
.contact-page-channel a { display: inline-block; margin-top: 8px; font-size: 16px; font-weight: 400; overflow-wrap: anywhere; }
.contact-page-channel a:hover { text-decoration: underline; text-underline-offset: 4px; }
.contact-page-claims { margin-top: auto; background: var(--black); color: #fff; border-radius: 3px; padding: 28px; }
.contact-page-channels > .contact-page-channel:last-of-type { margin-bottom: 34px; }
.contact-page-claims-head { display: flex; align-items: center; justify-content: space-between; gap: 22px; }
.contact-page-claims-head h3 { max-width: 220px; }
.contact-page-claims-head img { width: auto; height: 46px; max-width: 120px; flex-shrink: 0; }
.contact-page-claims p { color: #dedede; margin-top: 16px; }
.contact-page-claims-actions { display: flex; gap: 12px; margin-top: 22px; }
.contact-page-claims-actions .btn { flex: 1; min-width: 0; min-height: 48px; font-size: 14px; padding: 12px; gap: 10px; }
.contact-page-claims-actions svg { width: 20px; height: 20px; flex-shrink: 0; }
.contact-page-whatsapp { background: #127c3b; border-color: #127c3b; }
.contact-page-whatsapp:hover { background: #106d34; border-color: #106d34; }
.contact-page-claims-link { display: inline-flex; align-items: center; gap: 12px; font-size: 14px; font-weight: 400; margin-top: 22px; }
.contact-page-claims-link svg { width: 18px; height: 18px; flex-shrink: 0; }
.contact-page-claims-link:hover { text-decoration: underline; text-underline-offset: 4px; }
.contact-page-form-card { background: var(--paper); padding: 28px; border-radius: 3px; scroll-margin-top: 190px; display: flex; flex-direction: column; }
body[data-page="contacto"] .contact-page-form-card > h3 { font-size: 24px; font-weight: 600; }
.contact-page-form-card > p { margin-top: 10px; }
.contact-page-form-card form { flex: 1; display: flex; flex-direction: column; }
.contact-page-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin-top: 22px; }
.contact-page-field { display: flex; flex-direction: column; gap: 8px; font-size: 14px; font-weight: 400; line-height: 1.5; }
.contact-page-field.wide { grid-column: 1/-1; }
.contact-page-field[hidden] { display: none; }
.contact-page-field input, .contact-page-field select, .contact-page-field textarea { width: 100%; min-width: 0; border: 1px solid #d4d4cf; padding: 12px 13px; border-radius: 3px; background: #fff; color: var(--black); font-family: inherit; font-size: 14px; font-weight: 400; min-height: 48px; }
.contact-page-field textarea { min-height: 92px; resize: vertical; }
.contact-page-field input:focus, .contact-page-field select:focus, .contact-page-field textarea:focus { outline: 2px solid var(--red); outline-offset: 2px; }
.contact-page-form-bottom { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: auto; padding-top: 22px; }
.contact-page-form-bottom > span { font-size: 13px; color: var(--muted); }
.contact-page-form-bottom .btn { font-size: 14px; gap: 16px; }
/* Los avisos de envío comparten tipografía y escala con la ayuda del formulario. */
body[data-page="contacto"] main .contact-page-submit-status,
body[data-page="solicitar-asesoria"] main .contact-page-submit-status {
 margin-top: 20px;
 font-family: Montserrat, Arial, sans-serif;
 font-size: 13px;
 font-weight: 400;
 line-height: 1.6;
 overflow-wrap: anywhere;
}
.contact-page-submit-status a { text-decoration: underline; text-underline-offset: 4px; }
.contact-page-office { background: var(--paper); }
.contact-page-office-grid { display: grid; grid-template-columns: max-content minmax(0,1fr) max-content; gap: 48px; align-items: center; }
.contact-page-office-grid .eyebrow { margin-bottom: 20px; }
.contact-page-office-info { display: flex; align-items: center; gap: 16px; justify-self: center; max-width: 100%; min-width: 0; }
.contact-page-office-info > svg { width: 28px; height: 28px; color: var(--red); flex-shrink: 0; }
.contact-page-office-info p { min-width: 0; }
.contact-page-map-link { display: inline-flex; align-items: center; justify-content: center; gap: 16px; color: var(--black); margin-top: 0; font-size: 14px; font-weight: 400; border: 1px solid #bbb; border-radius: 3px; padding: 12px 16px; min-height: 48px; justify-self: end; }
.contact-page-map-link svg { width: 18px; height: 18px; color: var(--red); }
.contact-page-map-link:hover { border-color: var(--red); }
@media (max-width: 1200px) {
 .contact-page-office-grid { grid-template-columns: 1fr; gap: 24px; }
 .contact-page-office-info { justify-self: start; }
 .contact-page-map-link { justify-self: start; margin-left: 44px; }
}
@media (max-width: 1100px) {
 .contact-page-hero h1 { font-size: 48px; }
 .contact-page-grid, .contact-page-office-grid { gap: 40px; }
 .contact-page-form-card { padding: 28px; }
 .contact-page-claims { padding: 24px; }
}
@media (max-width: 850px) {
 .contact-page-grid, .contact-page-office-grid { grid-template-columns: 1fr; gap: 36px; }
 .contact-page-office-grid { gap: 24px; }
 .contact-page-office-info { justify-self: start; }
 .contact-page-map-link { justify-self: start; margin-left: 44px; }
 .contact-page-intro { max-width: 100%; }
 .contact-page-claims { max-width: 560px; margin-top: 0; }
}
@media (max-width: 600px) {
 .contact-page-hero { padding: 48px 0; }
 .contact-page-hero h1 { font-size: 40px; line-height: 1.12; }
 .contact-page-section { padding: 48px 0; }
 body[data-page="contacto"] main h2 { font-size: 30px; }
 .contact-page-grid { margin-top: 0; }
 .contact-page-form-grid { grid-template-columns: 1fr; gap: 18px; }
 .contact-page-field.wide { grid-column: auto; }
 .contact-page-form-card { padding: 24px; }
 .contact-page-claims { padding: 24px; }
 .contact-page-claims-head img { height: 40px; max-width: 104px; }
 .contact-page-form-bottom { flex-wrap: wrap; }
 .contact-page-form-bottom .btn { width: 100%; }
}
@media (max-width: 360px) {
 .contact-page-hero h1 { font-size: 36px; }
 .contact-page-form-card, .contact-page-claims { padding: 20px; }
 .contact-page-claims-head { gap: 12px; }
 .contact-page-claims-head img { height: 34px; }
 .contact-page-claims-actions .btn { font-size: 13px; padding: 12px 8px; }
 .contact-page-claims-link { gap: 8px; font-size: 13px; }
}
