.contact-page { background: #f4f7fc; }
.contact-page .gallery-page-header { background: #eef3fb; }
.contact-page-hero { position: relative; min-height: 520px; display: flex; align-items: center; padding: 45px 0 70px; isolation: isolate; }
.contact-page-hero::before { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg,rgba(5,18,62,.9) 0%,rgba(7,27,80,.78) 33%,rgba(10,35,97,.17) 76%),url("fachada-reitoria.jpg") center 49%/cover; }
.contact-page-hero-copy { width: min(100%,590px); padding: clamp(26px,4vw,48px); border: 1px solid rgba(255,255,255,.45); border-radius: 26px; color: #fff; background: rgba(6,24,72,.66); box-shadow: 0 24px 60px rgba(2,12,45,.24); backdrop-filter: blur(12px); }
.contact-page-hero-copy .eyebrow { color: #f4cd65; }
.contact-page-hero h1 { margin: 10px 0 12px; font: 400 clamp(3.5rem,7vw,6.5rem)/.95 var(--serif); letter-spacing: -.055em; }
.contact-page-hero p { max-width: 53ch; margin: 0 0 14px; color: rgba(255,255,255,.9); line-height: 1.65; }
.contact-page-hero .contact-page-hero-lead { font: 400 clamp(1.3rem,2.4vw,1.8rem)/1.22 var(--serif); color: #fff; }
.contact-page-hero-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 23px; }
.contact-page-content { padding-top: clamp(44px,5vw,76px); padding-bottom: 65px; }
.contact-page-heading { max-width: 780px; margin-bottom: 26px; }
.contact-page-heading .eyebrow { color: #bd8100; }
.contact-page-heading h2 { margin: 8px 0 9px; color: #071d63; font: 600 clamp(2rem,4vw,3rem)/1.08 var(--display); letter-spacing: -.045em; }
.contact-page-heading p { margin: 0; color: #4d5d7b; line-height: 1.65; }
.contact-page-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.contact-page-card { display: flex; flex-direction: column; align-items: flex-start; gap: 15px; min-width: 0; padding: 26px; border: 1px solid #dfe7f3; border-radius: 22px; color: #26385e; background: #fff; box-shadow: 0 12px 32px rgba(7,29,83,.065); }
.contact-page-card-featured { background: linear-gradient(140deg,#fff,#f1f8ff); }
.contact-page-icon { display: grid; place-items: center; flex: 0 0 auto; width: 51px; height: 51px; border-radius: 16px; color: #9c6900; background: #fff0c9; }
.contact-page-icon .icon { width: 25px; height: 25px; }
.contact-page-icon-green { color: #11794b; background: #dbf5e7; }
.contact-page-icon-blue { color: #123999; background: #e4edff; }
.contact-page-card h3,.contact-location-list h3 { margin: 0 0 9px; color: #071d63; font: 650 1.22rem/1.22 var(--display); }
.contact-page-card p,.contact-location-list p { margin: 0 0 11px; line-height: 1.56; }
.contact-page-card small { display: block; line-height: 1.5; color: #61708c; }
.contact-page-value { display: block; color: #092477; font-size: .91rem; line-height: 1.4; overflow-wrap: anywhere; }
.contact-page-card a.contact-page-value { text-decoration: underline; text-decoration-color: #f0bf51; text-underline-offset: 4px; }
.contact-page-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 15px; width: 100%; margin-top: auto; padding: 11px 13px; border: 1px solid #d8e2f1; border-radius: 11px; color: #092477; background: #f6f8fd; font-size: .82rem; font-weight: 780; }
.contact-page-button:hover,.contact-page-button:focus-visible { border-color: #092477; background: #eef2ff; }
.contact-page-button .icon,.contact-location-list a .icon { width: 16px; height: 16px; }
.contact-social-list { margin: 0; padding-left: 18px; font-size: .8rem; line-height: 1.7; }
.contact-social-list strong { overflow-wrap: anywhere; }
.contact-social-actions { display: flex; flex-wrap: wrap; gap: 7px; margin-top: auto; }
.contact-social-actions a { padding: 8px 10px; border-radius: 9px; color: #082475; background: #edf2fc; font-size: .74rem; font-weight: 760; }
.contact-social-actions a:hover,.contact-social-actions a:focus-visible { background: #dce7ff; }
.contact-page-location { margin-top: 76px; scroll-margin-top: 16px; }
.contact-location-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 17px; align-items: stretch; }
.contact-location-layout > img { width: 100%; height: 100%; min-height: 490px; object-fit: cover; border-radius: 23px; }
.contact-location-list { display: grid; gap: 16px; }
.contact-location-list article { display: flex; flex-direction: column; align-items: flex-start; padding: 24px; border: 1px solid #dfe7f3; border-radius: 22px; background: #fff; }
.contact-location-list .contact-page-icon { margin-bottom: 12px; }
.contact-location-list a { display: inline-flex; align-items: center; gap: 9px; margin-top: auto; color: #092477; font-size: .82rem; font-weight: 800; text-decoration: underline; text-underline-offset: 4px; }
.contact-page-cta { display: flex; align-items: center; justify-content: space-between; gap: 25px; margin-top: 65px; padding: clamp(26px,4vw,43px); border-radius: 24px; color: #fff; background: linear-gradient(115deg,#071b5f,#173b94); }
.contact-page-cta .eyebrow { color: #f4cb64; }
.contact-page-cta h2 { margin: 9px 0; font: 500 clamp(1.8rem,3vw,2.6rem)/1.13 var(--serif); }
.contact-page-cta p { max-width: 66ch; margin: 0; color: rgba(255,255,255,.82); line-height: 1.6; }
.contact-page-cta .btn { flex: 0 0 auto; }
.contact-page-closing { margin: 36px auto 0; max-width: 700px; text-align: center; color: #50617f; line-height: 1.7; }
.contact-page-closing strong { color: #092477; }
.contact-page-prompt { margin-top: 20px; }
.contact-page :is(a,button):focus-visible { outline: 3px solid #d99e16; outline-offset: 3px; }
@media (max-width: 1000px) { .contact-page-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 720px) { .contact-page-hero { min-height: 0; padding: 35px 0 48px; } .contact-page-hero::before { background: linear-gradient(90deg,rgba(5,18,62,.8),rgba(7,27,80,.5)),url("fachada-reitoria.jpg") center/cover; } .contact-page-hero-copy { background: rgba(6,24,72,.83); backdrop-filter: none; } .contact-location-layout { grid-template-columns: 1fr; } .contact-location-layout > img { min-height: 0; height: 290px; } .contact-page-cta { align-items: flex-start; flex-direction: column; } }
@media (max-width: 560px) { .contact-page-grid { grid-template-columns: 1fr; } .contact-page-card { padding: 22px; } .contact-page-hero-actions .btn { width: 100%; justify-content: center; } .contact-page-cta .btn { width: 100%; justify-content: center; } }
