:root { scroll-padding-top: 88px; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
.skip-link { position: fixed; z-index: 1000; top: 8px; left: 8px; transform: translateY(-160%); padding: 12px 16px; border-radius: 8px; background: rgb(255, 255, 255); color: rgb(6, 18, 56); font-weight: 700; box-shadow: rgba(0, 0, 0, 0.2) 0px 4px 16px; }
.skip-link:focus { transform: translateY(0px); }
:focus-visible { outline: rgb(42, 163, 255) solid 3px; outline-offset: 3px; }
section[id], #cita, #contacto { scroll-margin-top: 88px; }
header { z-index: 80; }
.menu { max-height: min(-76px + 100dvh, 680px); overflow-y: auto; overscroll-behavior: contain; border-radius: 0px 0px 16px 16px; box-shadow: rgba(4, 11, 38, 0.28) 0px 20px 44px; }
.menu .mgrid { display: block; max-width: 920px; padding: 18px 24px 24px; }
.menu .mlinks { display: grid; grid-template-columns: repeat(2, minmax(0px, 1fr)); gap: 6px 12px; }
.menu .mlinks a { display: flex; align-items: center; min-width: 0px; min-height: 54px; padding: 10px 14px; border: 1px solid transparent; border-radius: 10px; text-decoration: none; transition: background 0.18s, border-color 0.18s; }
.menu .mlinks b { font: 600 clamp(18px, 2vw, 24px) / 1.2 Manrope,system-ui,sans-serif; color: rgb(255, 255, 255); }
.menu .mlinks a:hover, .menu .mlinks a.on { background: rgba(255, 255, 255, 0.08); border-color: rgba(42, 163, 255, 0.5); }
.menu .mlinks a:hover b, .menu .mlinks a.on b { color: rgb(155, 210, 255); transform: none; }
.menu .mlinks small { display: none; }
.hero { padding: 72px 0px 60px; }
.hero .wrap { grid-template-columns: minmax(0px, 1.3fr) minmax(300px, 0.86fr); gap: clamp(28px, 5vw, 72px); align-items: center; }
.hero .quick.contact-card { max-width: 560px; }
.hero-copy .cta { margin-top: 28px; }
.hero .quick.contact-card { padding: 22px 24px; border: 1px solid rgba(155, 210, 255, 0.2); border-radius: 18px; background: rgb(11, 29, 88); box-shadow: rgba(0, 0, 0, 0.18) 0px 16px 36px; }
.hero .quick.contact-card h2 { margin: 0px 0px 8px; color: rgb(255, 255, 255); font: 600 25px / 1.2 Manrope,system-ui,sans-serif; }
.contact-line { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 0px; border-bottom: 1px solid rgba(183, 198, 238, 0.2); }
.contact-line > div { min-width: 0px; }
.contact-label { display: block; margin-bottom: 3px; color: rgb(183, 198, 238); font-size: 12px; line-height: 1.35; }
.contact-number { display: block; color: rgb(255, 255, 255); font: 700 clamp(17px, 1.7vw, 21px) / 1.3 Manrope, sans-serif; letter-spacing: 0.01em; text-decoration: none; white-space: nowrap; }
.phone-action, .phone-action:hover { min-width: 92px; min-height: 46px; flex: 0 0 auto; border: 2px solid rgb(42, 163, 255); box-shadow: rgba(0, 0, 0, 0.18) 0px 4px 12px; background: rgb(42, 163, 255) !important; color: rgb(4, 22, 79) !important; }
.phone-action:hover { filter: brightness(1.06); transform: translateY(-1px); }
.hero .quick.contact-card .contact-address { margin: 14px 0px 12px; color: rgb(214, 225, 255); font-size: 14px; line-height: 1.55; }
.contact-card .directions { min-height: 44px; border: 1px solid rgba(255, 255, 255, 0.55); color: rgb(255, 255, 255); }
.contact-card .directions:hover { background: rgba(255, 255, 255, 0.1); }
.contact-layout { display: grid; grid-template-columns: minmax(0px, 1.15fr) minmax(260px, 0.85fr); gap: clamp(28px, 5vw, 68px); align-items: center; }
.contact-layout > div:first-child { max-width: 560px; }
.contact-layout h2 { margin-bottom: 16px; }
.contact-layout .contact-line { border-color: rgba(183, 198, 238, 0.25); }
.contact-layout .contact-label { color: rgb(183, 198, 238); font-size: 13px; }
.contact-layout .contact-number { color: rgb(255, 255, 255); font-size: clamp(19px, 2vw, 23px); }
.contact-layout .contact-email .email-address { font-size: clamp(11px, 2.6vw, 15px); white-space: nowrap; overflow-wrap: normal; letter-spacing: 0; }
.contact-email { margin: 12px 0px; color: var(--mute); }
.contact-email a { color: var(--ac2); font-weight: 700; overflow-wrap: anywhere; }
.contact-email > div { min-width: 0px; }
.contact-email .email-address { white-space: normal; overflow-wrap: anywhere; font-size: clamp(13px, 1.45vw, 17px); }
.contact-email .phone-action { color: rgb(4, 22, 79) !important; }
.finder-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.finder-actions .btn { width: 100%; min-width: 0; min-height: 56px; height: 56px; padding: 10px 8px; text-align: center; overflow-wrap: anywhere; }
.hero .contact-card .contact-email { margin: 12px 0px; color: rgb(214, 225, 255); font-size: 14px; line-height: 1.55; }
.hero .quick.contact-card .contact-email .email-address { font-size: clamp(10px, 1.25vw, 13px); white-space: nowrap; overflow-wrap: normal; letter-spacing: 0; }
.contact-layout .contact-email { margin: 16px 0px; color: rgb(214, 225, 255); }
.site-footer .contact-email { margin: 0px 0px 8px; font-size: 13px; line-height: 1.45; }
.site-footer .contact-email a { color: rgb(11, 21, 68); }
.menu .mlinks a[href^="mailto:"] { overflow-wrap: anywhere; }
.appointment-email { white-space: normal; text-align: center; overflow-wrap: anywhere; }
.contact-hours { margin: 18px 0px 0px; color: rgb(214, 225, 255); line-height: 1.65; }
.contact-address-card { padding: 24px; border: 1px solid rgba(155, 210, 255, 0.2); border-radius: 16px; background: rgb(11, 29, 88); }
.contact-address-card h3 { color: rgb(255, 255, 255); font: 600 25px / 1.2 Manrope,system-ui,sans-serif; }
.contact-address-card p { margin: 0px 0px 18px; color: rgb(214, 225, 255); line-height: 1.6; }
.contact-address-card .directions { min-height: 46px; }
.chip { min-height: 44px; }
details summary { min-height: 48px; padding-top: 12px; padding-bottom: 12px; cursor: pointer; }
.site-footer { padding: 34px 0px 18px; background: rgb(4, 11, 38); color: rgb(214, 225, 255); }
.footer-main { display: grid; grid-template-columns: minmax(150px, 0.85fr) minmax(140px, 0.65fr) minmax(250px, 1.2fr); gap: 36px; align-items: start; }
.footer-brand img { display: block; width: min(180px, 100%); height: auto; max-height: 76px; object-fit: contain; object-position: left center; }
.footer-brand p { max-width: 26ch; margin: 12px 0px 0px; color: rgb(183, 198, 238); font-size: 14px; line-height: 1.55; }
.site-footer h2 { margin: 0px 0px 12px; color: rgb(255, 255, 255); font: 700 14px / 1.3 Manrope, sans-serif; letter-spacing: 0.04em; text-transform: uppercase; }
.site-footer p { margin: 0px 0px 10px; font-size: 13px; line-height: 1.6; }
.footer-nav { display: grid; justify-items: start; gap: 8px; }
.footer-nav a, .footer-contact a, .footer-bottom a { color: rgb(255, 255, 255); text-decoration: none; text-underline-offset: 3px; }
.footer-nav a:hover, .footer-contact a:hover, .footer-bottom a:hover { color: rgb(155, 210, 255); text-decoration: underline; }
.footer-contact p { margin-bottom: 9px; }
.footer-label { color: rgb(183, 198, 238); font-size: 12px; }
.footer-disclosures { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; margin-top: 22px; padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, 0.14); }
.site-footer .footer-disclosures p { margin: 0px; color: rgb(183, 198, 238); font-size: 12px; line-height: 1.6; }
.footer-disclosures b { color: rgb(255, 255, 255); }
.footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 18px; padding-top: 14px; border-top: 1px solid rgba(255, 255, 255, 0.14); }
.site-footer .footer-bottom p { margin: 0px; color: rgb(183, 198, 238); }
.footer-bottom nav { display: flex; flex-wrap: wrap; gap: 18px; font-size: 13px; }
.fcall .btn { min-height: 48px; }
.hero .quick.contact-card .phone-action { color: rgb(4, 22, 79) !important; }
.kbg { animation: auto ease 0s 1 normal none running none !important; background-size: 100% 100% !important; transform: translateY(-50%) scale(1) !important; transition: none !important; }
@media (max-width: 860px) {
  .hero .wrap { grid-template-columns: 1fr; }
}
@media (max-width: 820px) {
  .contact-layout { grid-template-columns: 1fr; gap: 26px; }
  .contact-layout > div:first-child { max-width: none; }
  .footer-main { grid-template-columns: minmax(160px, 0.8fr) minmax(240px, 1.2fr); gap: 28px; }
  .footer-brand { grid-row: span 2; }
}
@media (max-width: 760px) {
  .finder-actions { grid-template-columns: 1fr; }
  .hero { padding: 56px 0px 44px; }
  .hero .wrap { grid-template-columns: 1fr; gap: 28px; }
  .hero-copy .cta { margin-top: 22px; }
  .hero .quick.contact-card { max-width: 100%; padding: 18px; }
  .menu { max-height: calc(-72px + 100dvh); }
  .menu .mgrid { padding: 12px 24px 20px; }
  .menu .mlinks { grid-template-columns: 1fr; gap: 3px; }
  .menu .mlinks a { min-height: 50px; padding: 8px 10px; }
  .menu .mlinks b { font-size: 21px; }
  .footer-main { grid-template-columns: 1fr; gap: 22px; }
  .footer-brand { grid-row: auto; }
  .footer-brand img { width: 156px; }
  .footer-disclosures { grid-template-columns: 1fr; gap: 12px; margin-top: 18px; }
  .footer-bottom { flex-direction: column; align-items: flex-start; gap: 8px; }
}
@media (max-width: 360px) {
  .hero h1 { font-size: 38px; }
  .contact-line { gap: 8px; }
  .contact-number { font-size: 16px; }
  .phone-action { min-width: 76px; padding: 10px 12px; }
}
.btn.sm.phone-action { min-height: 48px; }
@media (max-width: 400px) {
  .nav { gap: 8px; }
  .tools { gap: 6px; }
  .logo img { height: 36px; }
  .lang button { padding: 8px 6px; font-size: 11px; }
  .mbtn { width: 44px; min-width: 44px; min-height: 44px; justify-content: center; padding: 0px; }
  .mbtn span { position: absolute; width: 1px; height: 1px; padding: 0px; margin: -1px; overflow: hidden; clip: rect(0px, 0px, 0px, 0px); white-space: nowrap; border: 0px; }
}
@media (max-width: 450px) {
  .hero .quick.contact-card .contact-email { flex-wrap: wrap; }
  .hero .quick.contact-card .contact-email > div { flex: 1 0 100%; }
  .hero .quick.contact-card .contact-email .phone-action { margin-left: auto; }
  .contact-layout .contact-email { flex-wrap: wrap; }
  .contact-layout .contact-email > div { flex: 1 0 100%; }
  .contact-layout .contact-email .email-address { font-size: clamp(10px, 3.2vw, 13px); }
  .contact-layout .contact-email .phone-action { margin-left: auto; }
}
@media (max-width: 340px) {
  .lang button { padding: 7px 5px; font-size: 10px; }
}
@media (max-width: 760px) {
  html { scroll-padding-bottom: 104px; }
  .fcall { left: 10px; right: 10px; bottom: calc(8px + env(safe-area-inset-bottom,0px)); gap: 7px; padding: 7px; border: 1px solid rgba(11, 47, 180, 0.16); border-radius: 20px; background: rgba(255, 255, 255, 0.97); box-shadow: rgba(4, 22, 79, 0.2) 0px 8px 26px; backdrop-filter: blur(10px); }
  .fcall .btn { min-width: 0px; padding: 10px 14px; }
}
.site-footer { background: rgb(238, 244, 255); color: rgb(11, 21, 68); }
.site-footer h2, .footer-disclosures b { color: rgb(11, 21, 68); }
.footer-brand p, .footer-label, .site-footer .footer-disclosures p, .site-footer .footer-bottom p { color: rgb(77, 92, 134); }
.footer-nav a, .footer-contact a, .footer-bottom a { color: rgb(11, 21, 68); }
.footer-nav a:hover, .footer-contact a:hover, .footer-bottom a:hover { color: rgb(11, 47, 180); }
.footer-disclosures, .footer-bottom { border-color: rgba(11, 47, 180, 0.16); }
.fcall .btn:not(.ghost) { background: rgb(11, 47, 180); color: rgb(255, 255, 255); }
.tools .soc { gap: 5px; display: flex !important; }
.tools .soc a { width: 36px; height: 36px; }
@media (max-width: 560px) {
  .nav { flex-wrap: wrap; gap: 4px 8px; padding-bottom: 8px; }
  .tools { display: grid; grid-template-columns: auto 1fr auto; width: 100%; gap: 6px; }
  .tools .soc { justify-content: center; gap: 4px; }
  :root { scroll-padding-top: 132px; }
  section[id], #cita, #contacto { scroll-margin-top: 132px; }
  .menu { max-height: calc(-132px + 100dvh); }
}
@media (max-width: 420px) {
  .logo img { height: 34px; }
  .tools .soc a { width: 34px; height: 34px; }
  .lang button { padding: 7px 5px; font-size: 10px; }
  .mbtn { width: 44px; min-width: 44px; min-height: 44px; justify-content: center; padding: 0px; }
  .mbtn span { position: absolute; width: 1px; height: 1px; padding: 0px; margin: -1px; overflow: hidden; clip: rect(0px, 0px, 0px, 0px); white-space: nowrap; border: 0px; }
}
.fcall .btn:not(.ghost) { background: rgb(11, 47, 180); color: rgb(255, 255, 255); }
.site-footer { position: relative; padding: 48px 0px 22px; border-top: 1px solid rgba(11, 47, 180, 0.12); background: rgb(246, 248, 255); }
.site-footer::before { position: absolute; top: 0px; left: 50%; width: min(1120px, 100% - 48px); height: 3px; content: ""; transform: translateX(-50%); background: linear-gradient(90deg, rgb(11, 47, 180), rgb(42, 163, 255)); border-radius: 0px 0px 3px 3px; }
.footer-main { grid-template-columns: minmax(170px, 0.9fr) minmax(160px, 0.75fr) minmax(260px, 1.2fr); gap: clamp(28px, 5vw, 64px); }
.footer-brand img { width: min(190px, 100%); max-height: 82px; }
.site-footer h2 { margin-bottom: 16px; color: rgb(11, 47, 180); font-size: 13px; letter-spacing: 0.08em; }
.footer-nav { gap: 5px; }
.footer-nav a { display: inline-flex; align-items: center; min-height: 40px; padding: 6px 10px; margin-left: -10px; border-radius: 8px; font-size: 14px; transition: background-color 0.18s, color 0.18s; }
.footer-nav a:hover { background: rgb(232, 239, 255); text-decoration: none; }
.footer-contact p { margin: 0px 0px 13px; font-size: 14px; line-height: 1.55; }
.footer-contact a { font-weight: 700; }
.footer-label { display: inline-block; margin-bottom: 2px; color: rgb(83, 100, 142); font-size: 11px; font-weight: 700; letter-spacing: 0.045em; text-transform: uppercase; }
.footer-disclosures { gap: 18px; margin-top: 28px; padding-top: 20px; border-top: 1px solid rgba(11, 47, 180, 0.15); }
.site-footer .footer-disclosures p { padding: 16px 18px; border: 1px solid rgba(11, 47, 180, 0.1); border-radius: 12px; background: rgba(255, 255, 255, 0.75); color: rgb(83, 97, 125); font-size: 12px; line-height: 1.7; }
.footer-disclosures b { color: rgb(11, 47, 180); }
.footer-bottom { margin-top: 24px; padding-top: 18px; border-top: 1px solid rgba(11, 47, 180, 0.15); }
.site-footer .footer-bottom p, .footer-bottom nav { color: rgb(83, 97, 125); font-size: 12px; }
.footer-bottom a { color: rgb(38, 61, 124); }
@media (max-width: 820px) {
  .footer-main { grid-template-columns: minmax(150px, 0.8fr) minmax(240px, 1.2fr); gap: 26px 32px; }
}
@media (max-width: 760px) {
  .site-footer { padding-top: 36px; }
  .footer-main { gap: 22px; }
  .footer-nav { gap: 2px; }
  .footer-disclosures { gap: 10px; margin-top: 20px; padding-top: 16px; }
  .site-footer .footer-disclosures p { padding: 13px 14px; }
  .footer-bottom { margin-top: 18px; padding-top: 14px; }
}
.fcall .btn:not(.ghost) { background: rgb(11, 47, 180); color: rgb(255, 255, 255); }
.site-footer { padding-top: 30px; padding-bottom: 14px; }
.footer-main { gap: 24px; }
.footer-brand img { width: min(155px, 100%); max-height: 66px; }
.site-footer h2 { margin-bottom: 10px; }
.footer-nav { gap: 0px; }
.footer-nav a { min-height: 34px; }
.footer-contact p { margin-bottom: 8px; font-size: 13px; line-height: 1.45; }
.footer-directions { display: inline-block; margin-top: 3px; font-size: 12px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; color: rgb(11, 47, 180) !important; }
.footer-disclosures { gap: 12px; margin-top: 16px; padding-top: 14px; }
.site-footer .footer-disclosures p { padding: 10px 12px; font-size: 11px; line-height: 1.5; }
.footer-bottom { margin-top: 14px; padding-top: 12px; }
@media (max-width: 760px) {
  .site-footer { padding-top: 26px; padding-bottom: 100px; }
  .footer-main { gap: 14px; }
  .footer-nav a { min-height: 32px; }
  .footer-disclosures { gap: 8px; margin-top: 12px; padding-top: 12px; }
  .site-footer .footer-disclosures p { padding: 9px 11px; }
  .footer-bottom { gap: 6px; margin-top: 12px; padding-top: 10px; }
}
.fcall .btn:not(.ghost) { background: rgb(11, 47, 180); color: rgb(255, 255, 255); }
.footer-main { gap: 18px 26px; }
.site-footer .footer-disclosures { display: grid; grid-template-columns: minmax(0px, 1fr); gap: 12px; margin: 0px; padding: 0px; border: 0px; }
.site-footer .footer-disclosures .footer-policy p { padding: 0px; border: 0px; background: transparent; font-size: 11px; line-height: 1.5; }
.site-footer .footer-policy b { color: rgb(11, 47, 180); }
.footer-contact p { margin-bottom: 6px; }
.site-footer .footer-brand .footer-contact { margin-top: 16px; }
.footer-bottom a { min-height: 36px; display: inline-flex; align-items: center; }
.site-footer .footer-bottom { display: flex; }
@media (max-width: 760px) {
  .site-footer .footer-main { grid-template-columns: minmax(0px, 1fr); gap: 18px; }
  .site-footer .footer-brand, .site-footer .footer-nav, .site-footer .footer-disclosures { grid-area: auto / 1; }
  .site-footer .footer-contact { width: 100%; display: block; }
  .site-footer .footer-contact h2 { margin-bottom: 6px; }
  .footer-contact p { margin-bottom: 7px; }
  .site-footer .footer-brand .footer-contact { display: grid; grid-template-columns: repeat(2, minmax(0px, 1fr)); column-gap: 12px; align-items: start; }
  .site-footer .footer-brand .footer-contact h2, .site-footer .footer-brand .footer-contact p:nth-of-type(n+3) { grid-column: 1 / -1; }
  .site-footer .footer-brand .footer-contact p { min-width: 0px; }
  .site-footer .footer-disclosures { gap: 10px; margin-top: 0px; padding-top: 12px; border-top: 1px solid rgba(11, 47, 180, 0.14); }
  .site-footer { padding-bottom: 84px; }
  .footer-nav a { min-height: 28px; padding-top: 4px; padding-bottom: 4px; }
}
.fcall .btn:not(.ghost) { background: rgb(11, 47, 180); color: rgb(255, 255, 255); }
.fcall .btn.ghost { background: rgb(255, 255, 255); color: rgb(11, 47, 180); border: 1.5px solid rgba(11, 47, 180, 0.3); }
@media (max-width: 760px) {
  .site-footer { padding-bottom: 100px; }
}

h1, h2, h3, .menu .mlinks b, .tag, .quick a.num, .ph b, summary, .big, .mq, .hs i {
  font-family: Manrope, system-ui, sans-serif !important;
  font-style: normal !important;
}
h1, h2, h3 { letter-spacing: -0.025em; }
h1 { font-weight: 700 !important; line-height: 1.12; }
h2, h3 { font-weight: 600 !important; line-height: 1.2; }
.tag { font-weight: 600; }
.hero h1 em { font-style: normal !important; }