body.contact-page { background: #f3f9fd; }
.contact-captcha { margin-top: 16px; max-width: 360px; }
.contact-captcha > label { display: block; margin-bottom: 8px; color: #111; font-size: 13px; font-weight: 600; }
.contact-captcha-image-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 8px; }
.contact-captcha-image-row img { width: 190px; max-width: 100%; height: auto; border: 1px solid #dce6ee; border-radius: 8px; }
.contact-page .contact-captcha .contact-input input { padding: 9px 0; font-size: 14px; }
#contact-captcha-refresh { border: 0; background: transparent; padding: 8px 0; color: #07356d; font-size: 13px; cursor: pointer; }
.contact-captcha small { display: block; margin-top: 4px; color: #526b80; font-size: 12px; }
.contact-page .contact-consents { display: grid; gap: 16px; margin-top: 20px; }
.contact-page .contact-consent { display: grid; grid-template-columns: 18px minmax(0, 1fr); align-items: start; gap: 12px; }
.contact-page .contact-consent input[type="checkbox"] { width: 18px; height: 18px; margin: 4px 0 0; padding: 0; accent-color: #ed1232; cursor: pointer; }
.contact-page .contact-consent label { margin: 0; color: #111; font-size: 14px; font-weight: 400; line-height: 1.7; cursor: pointer; }
.contact-page .contact-consent a { color: #07356d; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.contact-page .contact-consent a:hover { color: #ed1232; }
.consent-required { color: #ed1232; }
.contact-page .consent-optional { color: #111; }
.contact-page .contact-validation { margin: 0 0 16px; color: #111; font-size: 14px; }
#contact-success { position: fixed; inset: 0; margin: auto; box-sizing: border-box; width: min(400px, calc(100% - 32px)); max-height: calc(100dvh - 32px); overflow-y: auto; border: 0; border-radius: 18px; padding: 24px 24px 20px; text-align: center; color: #07356d; box-shadow: 0 20px 60px #03275640; }
#contact-success::backdrop { background: #031c3b99; }
#contact-success h2 { font-size: 20px !important; line-height: 1.35; margin: 10px 0 8px; }
#contact-success p { color: #526b80; font-size: 14px; line-height: 1.5; margin: 0 0 16px; }
#contact-success .contact-success-icon { color: #168350; font-size: 34px; line-height: 1; }
#contact-success .contact-success-close { position: absolute; top: 8px; right: 8px; display: grid; place-items: center; width: 36px; height: 36px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: #526b80; font-size: 27px; line-height: 1; cursor: pointer; }
#contact-success .contact-success-close:hover { background: #f0f4f8; color: #ed1232; }
.contact-page .office-location { width: 100%; text-align: left; color: #fff; font-family: inherit; cursor: pointer; }
.contact-page .office-location:hover,
.contact-page .office-location[aria-pressed='true'] { background: #ffffff0d !important; }
.contact-page .office-location:hover .box-icon { background: #cf0e2d !important; }
.contact-page .map-location-card { bottom: auto; }
.contact-page #map-location-note { margin: 12px 0 0; font-size: 11px !important; }
body.contact-page > section.inner-hero.about-hero { display: flex !important; }
body.contact-page .contact-section .info-side h2 { font-size: 20px !important; line-height: 1.3 !important; }
body.contact-page .contact-section .map-location-card h2 { font-size: 18px !important; line-height: 1.3 !important; }
body.contact-page .contact-section .info-side p { font-size: 12px !important; line-height: 1.6 !important; }
body.contact-page .contact-section .form-side > p,
body.contact-page .contact-section .map-location-card p { font-size: 13px !important; line-height: 1.7 !important; }
.contact-page .contact-section { width: min(calc(100% - 64px), 1200px); padding: 48px 0 !important; background: transparent; }
.contact-page .contact-wrapper { display: grid; grid-template-columns: minmax(0, 2.15fr) minmax(0, 1fr); gap: 24px; }
.contact-page .form-side { position: relative; overflow: hidden; border-radius: 14px; padding: 32px !important; }
.contact-page .form-side::after { content: ''; position: absolute; top: 0; right: 0; width: 86px; height: 86px; background: linear-gradient(45deg,#ffb8c1,#ff1739); clip-path: polygon(0 0,100% 0,100% 100%); pointer-events: none; }
.contact-eyebrow { display: block; color: #ed1232; border-left: 3px solid #ed1232; padding-left: 8px; font-size: 12px; font-weight: 700; text-transform: uppercase; margin-bottom: 8px; }
.contact-page .form-side h1 { font-size: clamp(24px,2.5vw,30px); color: #07356d; font-weight: 800; line-height: 1.25; margin: 0 0 6px; }
.contact-page .form-side > p { max-width: none; margin-bottom: 24px; font-size: 13px; }
.contact-page .form-row { gap: 16px; margin-bottom: 16px; }
.contact-input { display: flex; align-items: center; gap: 12px; border: 1px solid #dce6ee; border-radius: 7px; background: #fff; padding: 0 14px; min-width: 0; }
.contact-input > i { color: #698296; font-size: 16px; flex-shrink: 0; }
.contact-page .contact-input :is(input,select,textarea) { width: 100%; min-width: 0; border: 0; background: transparent; outline: 0; padding: 14px 0; font-size: 16px; color: #31516b; font-family: inherit; }
.contact-input :is(input,textarea)::placeholder { color: #698296; opacity: 1; }
.contact-input:focus-within { border-color: #3282c4; box-shadow: 0 0 0 3px #3282c419; }
.contact-message { align-items: flex-start; }
.contact-message > i { padding-top: 15px; }
.contact-page .contact-message textarea { resize: vertical; min-height: 80px; height: 90px; }
.contact-actions { display: flex; align-items: center; gap: 24px; margin-top: 22px; }
.contact-page .btn-send { display: inline-flex; gap: 12px; align-items: center; margin: 0 !important; background: #ff1739 !important; padding: 12px 24px !important; font-size: 13px !important; width: auto; }
.contact-page .btn-send:hover { background: #cc0c2b !important; transform: translateY(-2px); }
.contact-reset { border: 0; background: transparent; color: #698296; font-size: 13px; padding: 10px 0; display: inline-flex; align-items: center; gap: 8px; }
.contact-reset:hover { color: #07356d; }
.contact-page .info-side { position: relative; overflow: hidden; background: linear-gradient(140deg,#063b7c,#032756) !important; border-radius: 14px !important; padding: 28px !important; }
.contact-page .info-side::after { content: ''; position: absolute; bottom: 0; right: 0; width: 85px; height: 85px; background: linear-gradient(135deg,transparent 40%,#174c8d 40% 60%,#ff1739 60% 78%,#ff7187 78%); clip-path: polygon(100% 0,100% 100%,0 100%); pointer-events: none; }
.contact-page .info-side h2 { color: white; font-size: 20px; font-weight: 700; margin: 0 0 8px; }
.contact-info-intro { color: #d6e6f7; font-size: 12px; line-height: 1.6; margin-bottom: 8px; }
.contact-page .box-content span { color: #fff; opacity: 1; font-size: 13px !important; font-weight: 600; }
.contact-page .box-content :is(a,p) { color: #e4edf8; font-size: 12px; line-height: 1.6; margin: 0; text-decoration: none; overflow-wrap: anywhere; }
.contact-page .box-content a:hover { text-decoration: underline; }
.contact-page .contact-box { cursor: default; align-items: flex-start; }
.contact-page .box-icon { background: #ff1739 !important; }
.contact-page .social-icons { margin-top: 18px; position: relative; z-index: 1; }
.contact-page .map-wrapper { position: relative; margin-top: 28px !important; background: #e4edf3; }
.contact-page #officeMap { display: block; height: 300px !important; }
.map-location-card { position: absolute; z-index: 1; left: 24px; top: 24px; bottom: 24px; width: 300px; padding: 24px; border-radius: 12px; background: #fff; box-shadow: 0 4px 18px #123b601a; }
.map-location-card h2 { color: #07356d; font-size: 18px; font-weight: 800; margin: 0 0 16px; display: flex; align-items: center; gap: 12px; }
.map-location-card h2 i { color: #ff1739; }
.map-location-card p { color: #698296; font-size: 13px; line-height: 1.7; margin: 0 0 22px; }
.map-location-card a { display: inline-flex; align-items: center; gap: 10px; background: #07356d; color: white; border-radius: 30px; padding: 11px 16px; font-size: 12px; text-decoration: none; }
.map-location-card a:hover { background: #0b4b95; }
.contact-page :is(button,a):focus-visible { outline: 3px solid #66a8e3; outline-offset: 4px; }
@media(max-width:992px) { .contact-page .contact-section { width: calc(100% - 40px); padding-top: 36px !important; } .contact-page .contact-wrapper { grid-template-columns: minmax(0,1fr); } }
@media(max-width:600px) { .contact-page .contact-section { width: calc(100% - 28px); padding-top: 28px !important; } .contact-page .form-side { padding: 24px 20px !important; } .contact-page .form-row { gap: 14px; } .contact-actions { gap: 18px; flex-wrap: wrap; } .map-location-card { position: relative; inset: auto; width: auto; margin: 14px; padding: 20px; } .contact-page #officeMap { height: 240px !important; } }
@media(prefers-reduced-motion:reduce) { .contact-page * { transition: none !important; } }
/* Responsive contact layout: scoped overrides for shared site styles. */
body.contact-page .contact-section { margin-inline: auto; }
body.contact-page .contact-section .contact-wrapper { display: grid !important; grid-template-columns: minmax(0, 2.15fr) minmax(0, 1fr); min-height: 0; }
body.contact-page .contact-section :is(.form-side,.info-side,.form-row,.contact-input,.box-content) { min-width: 0; max-width: 100%; }
body.contact-page .contact-section .form-row { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
body.contact-page .contact-section .contact-box { width: 100%; }
body.contact-page .contact-section .box-content { overflow-wrap: anywhere; }
body.contact-page .contact-section .contact-input :is(input,select,textarea) { font-size: 16px; }
body.contact-page .contact-section #officeMap { width: 100%; border: 0; }
body.contact-page .contact-section .contact-consent label { overflow-wrap: anywhere; }
@media(max-width:992px) {
  body.contact-page .contact-section .contact-wrapper { grid-template-columns: minmax(0,1fr); }
  body.contact-page .contact-section .info-side { min-height: 0; }
}
@media(max-width:600px) {
  body.contact-page .contact-section .form-row { grid-template-columns: minmax(0,1fr) !important; }
  body.contact-page .contact-section :is(.form-side,.info-side) { padding: 24px 18px !important; }
  body.contact-page .contact-section .form-side h1 { font-size: 24px !important; line-height: 1.3; }
  body.contact-page .contact-section .map-location-card { position: relative; inset: auto; width: auto; max-width: calc(100% - 28px); height: auto; margin: 14px; padding: 18px; }
  body.contact-page .contact-section .map-location-card a { flex-wrap: wrap; }
  body.contact-page .contact-section .contact-actions { flex-wrap: wrap; gap: 12px 18px; }
  body.contact-page .contact-section .contact-captcha { width: 100%; }
}
@media(max-width:360px) {
  body.contact-page .contact-section { width: calc(100% - 20px); }
  body.contact-page .contact-section :is(.form-side,.info-side) { padding: 20px 14px !important; }
  body.contact-page .contact-section .btn-send { padding: 12px 16px !important; }
}
