/* Shared footer inspired by the supplied Contact-page reference. */
.site-footer.reference-footer {
  padding: 0 !important;
  margin: 0;
  background: #fff !important;
  border: 0;
  color: #173453;
  isolation: isolate;
  box-shadow: none !important;
}
.site-footer.reference-footer::before,
.site-footer.reference-footer::after { display: none; }
.reference-footer .rf-wrap { width: min(1180px, calc(100% - 80px)); margin-inline: auto; }
.reference-footer .rf-cta {
  position: relative;
  overflow: hidden;
  background: radial-gradient(ellipse at 85% 130%, #078dc5 0, transparent 50%), linear-gradient(115deg, #052b64, #05385b 75%, #034b76);
  color: #fff;
}
.reference-footer .rf-cta::before,
.reference-footer .rf-cta::after {
  content: '';
  position: absolute;
  width: 100%;
  height: 180px;
  border: 2px solid rgba(54, 198, 255, .32);
  border-radius: 50%;
  transform: rotate(-9deg);
  bottom: -145px;
  left: -12%;
  box-shadow: 0 -14px 0 rgba(0, 144, 233, .12), 0 -32px 0 rgba(30, 124, 228, .08);
  pointer-events: none;
}
.reference-footer .rf-cta::after { left: 42%; bottom: -126px; transform: rotate(12deg); }
.reference-footer .rf-cta-inner { position: relative; z-index: 1; display: flex; justify-content: space-between; align-items: center; gap: 28px; padding-block: 34px; }
.reference-footer .rf-cta h2 { margin: 0 0 8px; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(25px, 3vw, 34px); line-height: 1.2; color: #fff; }
#siteFooter.reference-footer .rf-cta h2 { font-family: Georgia, 'Times New Roman', serif !important; color: #fff !important; }
.reference-footer .rf-cta p { margin: 0; color: #e1edf9; font-size: 15px; line-height: 1.6; }
#siteFooter.reference-footer .rf-cta p { color: #e1edf9 !important; text-align: left !important; }
.reference-footer .rf-quote { display: inline-flex; align-items: center; justify-content: center; gap: 15px; flex-shrink: 0; min-height: 46px; padding: 12px 25px; border-radius: 999px; border: 1px solid #d6eeff; background: #fff; color: #075ab1; font: inherit; font-weight: 700; font-size: 14px; text-decoration: none; box-shadow: 0 3px 14px #05224c33; transition: transform .2s, box-shadow .2s; }
.reference-footer .rf-quote:hover { transform: translateY(-2px); box-shadow: 0 6px 20px #05224c55; }
.reference-footer .rf-grid { display: grid; grid-template-columns: 1.35fr .8fr 1.1fr 1.3fr; gap: 42px; padding-block: 38px 28px; }
.reference-footer .rf-logo { display: block; max-width: 265px; margin-bottom: 17px; }
.reference-footer .rf-logo img { width: 100%; height: auto; object-fit: contain !important; }
.reference-footer .rf-description { max-width: 290px; font-size: 13px; line-height: 1.8; margin: 0; color: #435d77; }
.reference-footer .rf-description { text-align: left !important; }
.reference-footer .rf-heading { margin: 0 0 16px; color: #153453; font-size: 14px; line-height: 1.4; font-weight: 700; }
.reference-footer .rf-links { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.reference-footer .rf-links a { color: #435d77; text-decoration: none; font-size: 12px; line-height: 1.6; }
.reference-footer .rf-links a:hover { color: #0864c5; text-decoration: underline; }
.reference-footer .rf-contact { display: grid; gap: 11px; }
.reference-footer .rf-contact-line { display: flex; align-items: flex-start; gap: 10px; font-size: 12px; line-height: 1.65; color: #435d77; margin: 0; }
.reference-footer .rf-contact-line > i { color: #00a884; margin-top: 4px; flex: 0 0 14px; }
.reference-footer .rf-contact-line a { color: inherit; text-decoration: none; overflow-wrap: anywhere; }
.reference-footer .rf-contact-line a:hover { color: #0864c5; text-decoration: underline; }
.reference-footer .rf-hours { display: block; margin-top: 3px; font-size: 11px; color: #667d92; }
.reference-socials { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; }
.reference-socials a { display: inline-flex; align-items: center; justify-content: center; width: 31px; height: 31px; border-radius: 50%; color: #fff; background: #0864c5; font-size: 14px; text-decoration: none; transition: transform .2s; }
.reference-socials a:hover { transform: translateY(-3px); color: #fff; }
.reference-socials .rs-linkedin { background: #086ba8; }
.reference-socials .rs-facebook { background: #0866ef; }
.reference-socials .rs-twitter { background: #079be2; }
.reference-socials .rs-whatsapp { background: #00a884; }
.reference-socials .rs-github { background: #243c56; }
.reference-footer .reference-socials { margin-top: 15px; }
.reference-footer .rf-credentials { padding-block: 0 17px; color: #62788d; font-size: 11px; }
.reference-footer .rf-credentials summary { cursor: pointer; width: fit-content; }
.reference-footer .rf-credentials ul { list-style: none; padding-top: 12px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.reference-footer .rf-credentials strong { display: block; margin-bottom: 4px; color: #173453; }
.reference-footer .rf-legal { background: #dceaf4; }
.reference-footer .rf-legal-inner { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; padding-block: 15px; }
.reference-footer .rf-copyright { font-size: 10px; color: #526c83; line-height: 1.7; margin: 0; }
.reference-footer .rf-registration { display: block; font-size: 9px; margin-top: 3px; }
.reference-footer .rf-legal-links { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 6px 0; max-width: 440px; }
.reference-footer .rf-legal-links a { color: #526c83; font-size: 10px; line-height: 1.7; text-decoration: none; }
.reference-footer .rf-legal-links a + a::before { content: '|'; display: inline-block; margin: 0 9px; color: #8da3b6; }
.reference-footer .rf-legal-links a:hover { color: #0864c5; text-decoration: underline; }
.reference-footer a:focus-visible,
.reference-footer summary:focus-visible,
.reference-socials a:focus-visible { outline: 3px solid #079be2; outline-offset: 4px; }
@media (max-width: 1000px) {
  .reference-footer .rf-grid { grid-template-columns: 1.2fr 1fr; gap: 30px 44px; }
}
@media (max-width: 600px) {
  .reference-footer .rf-wrap { width: calc(100% - 40px); }
  .reference-footer .rf-cta-inner { flex-direction: column; align-items: flex-start; gap: 20px; padding-block: 28px; }
  .reference-footer .rf-cta h2 { font-size: 26px; }
  .reference-footer .rf-cta p { font-size: 13px; }
  .reference-footer .rf-grid { grid-template-columns: 1fr 1fr; gap: 28px 22px; padding-block: 30px 22px; }
  .reference-footer .rf-brand,
  .reference-footer .rf-contact-col { grid-column: 1 / -1; }
  .reference-footer .rf-logo { max-width: 240px; }
  .reference-footer .rf-description { max-width: 100%; }
  .reference-footer .rf-heading { margin-bottom: 12px; }
  .reference-footer .rf-links a,
  .reference-footer .rf-contact-line { font-size: 12px; }
  .reference-footer .rf-legal-inner { flex-direction: column; gap: 10px; }
  .reference-footer .rf-legal-links { justify-content: flex-start; }
  .reference-footer .rf-credentials ul { grid-template-columns: 1fr; gap: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .reference-footer .rf-quote,
  .reference-socials a { transition: none; }
}
