/* Footer inspirado en la referencia, con navegación y enlaces disponibles. */
.footer-reference { position: relative; isolation: isolate; overflow: hidden; padding: 62px 0 37px; color: #e8edf2; background: radial-gradient(ellipse at 80% 90%, #0a1822, transparent 65%), linear-gradient(120deg, #030d15, #06121a); }
.footer-reference > .wrap { width: 100%; max-width: 1320px; padding-inline: 40px; }
.footer-ribbon { position: absolute; right: -12px; top: -8px; width: 350px; height: 355px; z-index: -1; opacity: .35; pointer-events: none; }
.footer-columns { display: grid; grid-template-columns: 1.06fr .92fr .48fr 1.48fr; gap: 48px; align-items: start; }
.footer-reference .footer-brand { display: block; width: 205px; margin: -15px 0 13px; }
.footer-reference .footer-brand img { display: block; width: 100%; height: auto; margin: 0; }
.footer-reference .footer-description { font-size: 13px; line-height: 1.6; color: #b8c4d1; margin: 0 0 15px; }
.footer-reference .footer-location { display: flex; align-items: center; gap: 13px; border-top: 1px solid #ffffff14; padding-top: 15px; font-size: 12px; line-height: 1.6; color: #b8c4d1; margin: 0 0 18px; }
.footer-location svg { width: 20px; height: 23px; color: #ffcc00; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
.footer-socials { display: flex; gap: 13px; }
.footer-socials > span { display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid #ffffff20; border-radius: 50%; background: #0d1e2980; color: #f0f4f8; }
.footer-socials svg { width: 15px; height: 15px; }
.footer-reference h2 { margin: 0 0 23px; color: #e9f0f6; text-transform: uppercase; font-size: 11px; font-weight: 600; line-height: 1.4; letter-spacing: .19em; }
.footer-reference h2::after { content: ''; display: block; height: 2px; width: 31px; background: #ffcc00; margin-top: 14px; }
.footer-navigation ul { display: grid; gap: 20px; padding: 0; margin: 0; list-style: none; }
.footer-navigation li { position: relative; padding-left: 18px; font-size: 12px; line-height: 1.6; }
.footer-navigation li::before { content: ''; position: absolute; left: 0; top: 5px; width: 6px; height: 6px; border-right: 1px solid #bbc8d5; border-top: 1px solid #bbc8d5; transform: rotate(45deg); }
.footer-navigation a, .footer-unlinked { color: #c3ceda; text-decoration: none; }
.footer-navigation a:hover { color: #ffcc00; }
.footer-contact ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; }
.footer-contact li { display: flex; align-items: center; gap: 16px; }
.footer-contact-icon { display: grid; place-items: center; width: 43px; height: 43px; flex-shrink: 0; color: #ffcc00; border: 1px solid #ffcc002e; border-radius: 8px; background: #07131c80; }
.footer-contact-icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.footer-contact a { color: #f1f4f8; text-decoration: none; font-size: 13px; line-height: 1.5; }
.footer-contact a:hover { color: #ffcc00; }
.footer-reference .footer-contact p { margin: 4px 0 0; color: #a8b5c5; font-size: 11px; line-height: 1.5; }
.footer-reference .footer-contact .footer-hours { margin: 0; color: #f1f4f8; font-size: 13px; }
.footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 30px; border-top: 1px solid #ffffff24; margin-top: 34px; padding-top: 25px; }
.footer-reference .footer-copyright p { margin: 0; font-size: 10px; line-height: 1.6; color: #d0dae4; }
.footer-reference .footer-copyright p + p { margin-top: 6px; color: #95a6b9; }
.footer-legal { display: flex; align-items: center; gap: 18px; font-size: 10px; line-height: 1.5; color: #d6dfe8; margin-left: auto; }
.footer-legal > span + span { border-left: 1px solid #ffffff3c; padding-left: 18px; }
.footer-top { display: inline-flex; align-items: center; gap: 10px; padding-left: 35px; border-left: 1px solid #ffffff3c; color: #edf2f7; text-decoration: none; font-size: 12px; white-space: nowrap; }
.footer-top > span { display: grid; place-items: center; border: 1px solid #ffcc00; color: #ffcc00; width: 30px; height: 30px; border-radius: 50%; font-size: 20px; line-height: 1; }
.footer-top:hover { color: #ffcc00; }
@media (min-width: 761px) and (max-width: 1100px) {
  .footer-reference { padding: 66px 0 34px; }
  .footer-reference > .wrap { padding-inline: 6.2% 5.9%; }
  .footer-columns { gap: 43px; padding-left: 11px; }
  .footer-reference .footer-brand { width: 160px; margin-top: -15px; margin-bottom: 11px; }
  .footer-reference .footer-description { font-size: 10px; margin-bottom: 11px; }
  .footer-reference .footer-location { padding-top: 12px; font-size: 9px; gap: 11px; margin-bottom: 14px; }
  .footer-location svg { width: 17px; height: 20px; }
  .footer-socials { gap: 10px; }
  .footer-socials > span { width: 30px; height: 30px; }
  .footer-socials svg { width: 12px; height: 12px; }
  .footer-reference h2 { font-size: 9px; margin-bottom: 18px; }
  .footer-reference h2::after { width: 25px; margin-top: 11px; }
  .footer-navigation ul { gap: 15px; }
  .footer-navigation li { font-size: 9px; padding-left: 15px; }
  .footer-navigation li::before { width: 5px; height: 5px; top: 4px; }
  .footer-contact ul { gap: 14px; }
  .footer-contact li { gap: 13px; }
  .footer-contact-icon { width: 37px; height: 37px; border-radius: 7px; }
  .footer-contact-icon svg { width: 19px; height: 19px; }
  .footer-contact a, .footer-reference .footer-contact .footer-hours { font-size: 10px; }
  .footer-reference .footer-contact p { font-size: 9px; margin-top: 3px; }
  .footer-bottom { margin-top: 26px; padding-top: 22px; gap: 22px; }
  .footer-reference .footer-copyright p { font-size: 8px; }
  .footer-legal { gap: 14px; font-size: 8px; }
  .footer-legal > span + span { padding-left: 14px; }
  .footer-top { font-size: 9px; gap: 8px; padding-left: 30px; }
  .footer-top > span { width: 25px; height: 25px; font-size: 18px; }
  .footer-ribbon { width: 270px; height: 290px; }
}
@media (min-width: 761px) and (max-width: 900px) {
  .footer-reference > .wrap { padding-inline: 28px; }
  .footer-columns { gap: 25px; }
  .footer-bottom { gap: 15px; flex-wrap: wrap; }
  .footer-legal { margin-left: 0; }
}
@media (max-width: 760px) {
  .footer-reference { padding: 42px 0 28px; }
  .footer-reference > .wrap { padding-inline: 22px; }
  .footer-columns { grid-template-columns: 1fr 1fr; gap: 32px 24px; }
  .footer-identity { grid-column: 1/-1; }
  .footer-reference .footer-brand { width: 185px; margin-top: -10px; }
  .footer-reference .footer-description { font-size: 12px; }
  .footer-reference .footer-location { max-width: 300px; font-size: 11px; }
  .footer-socials > span { width: 33px; height: 33px; }
  .footer-reference h2 { font-size: 10px; margin-bottom: 20px; }
  .footer-navigation ul { gap: 16px; }
  .footer-navigation li { font-size: 11px; padding-left: 15px; }
  .footer-contact { grid-column: 1/-1; }
  .footer-contact a, .footer-reference .footer-contact .footer-hours { font-size: 12px; }
  .footer-reference .footer-contact p { font-size: 11px; }
  .footer-contact-icon { width: 39px; height: 39px; }
  .footer-bottom { align-items: flex-start; flex-wrap: wrap; gap: 20px; margin-top: 30px; padding-top: 23px; }
  .footer-copyright { width: 100%; }
  .footer-reference .footer-copyright p { font-size: 9px; }
  .footer-legal { font-size: 9px; margin-left: 0; gap: 12px; flex-wrap: wrap; }
  .footer-legal > span + span { padding-left: 12px; }
  .footer-top { padding-left: 0; border-left: 0; font-size: 10px; margin-left: auto; gap: 8px; }
  .footer-top > span { width: 26px; height: 26px; font-size: 18px; }
  .footer-ribbon { top: -10px; right: -90px; width: 290px; height: 300px; opacity: .2; }
}
@media (max-width: 359px) {
  .footer-columns { grid-template-columns: 1fr; gap: 28px; }
  .footer-identity, .footer-contact { grid-column: auto; }
  .footer-top { margin-left: 0; }
}
