/* Overrides puntuales sin tocar el CSS minificado original */
:root{--brand-primary:#0a58ca;--brand-hover-bg:rgba(10,88,202,.10);--brand-link-color-dark:#93c5fd;--brand-hover-bg-dark:rgba(147,197,253,.15);--lang-active-bg:#14b8a6;--lang-active-border:#0d9488;--lang-active-text:#ffffff}
/* Alinear los items de contacto por la parte superior para que títulos como "Ubicación" queden alineados con los demás */
.contact-item { align-items: flex-start; }

/* Normalizar márgenes para evitar desplazamientos verticales entre items */
.contact-item h4 { margin: 0; }
.contact-item p { margin: 0; }

/* Usar layout de columna con gap consistente en el contenedor de texto */
.contact-item > div { display: flex; flex-direction: column; gap: 0.2rem; }
/* Alinear y normalizar el bloque de íconos para máxima uniformidad */
.contact-item > i {
  min-width: 40px; /* coincide con el width del CSS base */
  width: 40px;
  text-align: center;
  line-height: 1; /* evita centrado vertical inesperado */
  align-self: flex-start; /* alinear parte superior con el título */
  margin-top: 1px; /* microajuste visual respecto al h4 */
}

/* Global: show a + after stats numbers, matching number typography */
.about .stats .stat-number::after{ content:'+'; }

/* Logo styling centralizado */
.nav-logo{perspective:800px}
.nav-logo .logo-img{height:40px;width:auto;display:block;filter:drop-shadow(0 1px 2px rgba(0,0,0,.28));will-change:transform;transform-origin:center;transform-style:preserve-3d;backface-visibility:hidden;animation:footerMirror 2s ease-in-out infinite alternate;transition:filter .3s ease}
.nav-logo .logo-img:hover{filter:drop-shadow(0 4px 8px rgba(0,0,0,.28))}

.hero-logo{display:flex;justify-content:center;align-items:center;margin-bottom:12px}
.hero-logo .logo-img{height:112px;width:auto;filter:drop-shadow(0 3px 8px rgba(0,0,0,.22));animation:logoFloat 6s ease-in-out infinite}
@media (min-width:768px){
  .hero-logo .logo-img{height:140px}
  .nav-logo .logo-img{height:48px}
}
@keyframes logoFloat{0%{transform:translateY(4px)}50%{transform:translateY(-16px)}100%{transform:translateY(4px)}}

/* Floating WhatsApp widget */
.wa-widget{position:fixed;right:16px;bottom:16px;z-index:2147483000;display:flex;align-items:center;gap:10px}
/* Collapsible label: contracted by default, expands on hover/focus */
.wa-widget .wa-label{background:#1f2a37;color:#fff;padding:10px 12px;border-radius:10px;box-shadow:0 2px 10px rgba(0,0,0,.2);font-weight:600;white-space:nowrap;overflow:hidden;max-width:0;opacity:0;margin-right:0;transition:max-width .25s ease, opacity .2s ease, margin-right .2s ease, padding .2s ease}
.wa-widget.wa-show .wa-label,
.wa-widget:hover .wa-label,
.wa-widget .wa-fab:focus-visible + .wa-label{max-width:420px;opacity:1;margin-right:8px;padding:10px 12px}
.wa-widget .wa-fab{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:#25D366;color:#fff;text-decoration:none;box-shadow:0 6px 16px rgba(0,0,0,.25);transition:transform .2s ease, box-shadow .2s ease}
.wa-widget .wa-fab:hover{transform:translateY(-2px) scale(1.04);box-shadow:0 10px 22px rgba(0,0,0,.28)}
.wa-widget .wa-fab i{font-size:28px;line-height:1}
@media (min-width:768px){
  .wa-widget{right:24px;bottom:24px}
  .wa-widget .wa-fab{width:64px;height:64px}
  .wa-widget .wa-fab i{font-size:32px}
}
/* Subtle WA icon animation on hover */
.wa-widget .wa-fab i{transition:transform .2s ease}
.wa-widget .wa-fab:hover i,.wa-widget .wa-fab:focus-visible i{animation:waNudge .6s ease both}

/* Avoid overlap with consent banner/panel when visible */
#consent-banner:not([hidden]) ~ .wa-widget,
#consent-panel:not([hidden]) ~ .wa-widget{bottom:110px}

/* Google reviews: button and badge */
.google-reviews-btn{display:inline-flex;align-items:center;gap:8px;margin-left:12px;padding:8px 12px;border-radius:6px;background:#1a73e8;color:#fff;text-decoration:none;font-weight:600;transition:transform .2s ease, box-shadow .2s ease, background-color .2s ease;border:0}
 .google-reviews-btn:hover,.google-reviews-btn:focus-visible{background:#1558b0;transform:translateY(-2px);box-shadow:0 12px 28px rgba(0,0,0,.22);border:0}
.google-reviews-btn i{font-size:16px;transition:transform .2s ease}
.google-reviews-btn img{width:18px;height:18px;transition:transform .2s ease;display:inline-block}
.google-reviews-btn:hover i,.google-reviews-btn:focus-visible i,.google-reviews-btn:hover img,.google-reviews-btn:focus-visible img{animation:gNudge .6s ease both}
@keyframes gNudge{0%{transform:translateY(0) rotate(0) scale(1)}30%{transform:translateY(-1px) rotate(-4deg) scale(1.05)}60%{transform:translateY(-1px) rotate(4deg) scale(1.05)}100%{transform:translateY(0) rotate(0) scale(1)}}
.google-badge{display:inline-block;margin-left:12px;font-weight:700;color:#1a73e8}
@media (max-width:600px){
  .google-reviews-btn{margin-top:8px;margin-left:0}
  .google-badge{display:block;margin:6px 0 0}
}

/* Navbar link lift */
.nav-link,.nav-link-external{display:inline-block;padding:4px 6px;border-radius:6px;border:1px solid transparent;transition:transform .2s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease, text-shadow .2s ease}
/* Uniformar color base del enlace "Blog" con el resto del menú */
.navbar .nav-link-external{color:inherit}
.nav-link:hover,.nav-link:focus-visible,
.nav-link-external:hover,.nav-link-external:focus-visible{transform:translateY(-3px) scale(1.04);box-shadow:0 12px 26px rgba(0,0,0,.22);background:linear-gradient(180deg, rgba(45,212,191,0.18), rgba(20,184,166,0.18));border-color:transparent;color:inherit;outline:none}
/* Navbar: no underline base */
.navbar .nav-link,
.navbar .nav-link-external{ text-decoration: none !important; }
/* Navbar: remove underline in all states */
.navbar .nav-link:hover,
.navbar .nav-link:focus,
.navbar .nav-link:focus-visible,
.navbar .nav-link:active,
.navbar .nav-link[aria-current],
.navbar .nav-link[aria-selected],
.navbar .nav-link-external:hover,
.navbar .nav-link-external:focus,
.navbar .nav-link-external:focus-visible,
.navbar .nav-link-external:active,
.navbar .nav-link-external[aria-current],
.navbar .nav-link-external[aria-selected]{
  text-decoration: none !important;
}

/* Header: sticky shrink behavior and mobile logo reduction */
.navbar{transition: background-color .2s ease, box-shadow .2s ease}
.nav-container{transition: padding .2s ease}
.nav-logo .logo-img{transition: height .2s ease, filter .2s ease}

/* Desktop/tablet shrink */
@media (min-width:768px){
  .navbar.shrink .nav-container{ padding: 0.45rem 1.25rem; }
  .navbar.shrink .nav-logo .logo-img{ height: 36px !important; }
}

/* Mobile: smaller logo and lighter menu spacing */
@media (max-width:767px){
  /* Reduce logo size to ~60% of previous override height */
  .nav-logo .logo-img{ height: 24px !important; } /* was 40px */
  .navbar.shrink .nav-container{ padding: 0.40rem 0.85rem; }
  .navbar.shrink .nav-logo .logo-img{ height: 20px !important; }
  /* Increase spacing and touch targets in the mobile menu */
  .nav-menu{ gap: 1.25rem !important; text-align:center !important; }
  .nav-menu a{ display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:10px 16px; text-align:center; }
  /* Icons next to each mobile menu item (decorative) */
  .nav-menu a.nav-link[data-i18n="nav.home"]::before{ content: "🏠"; }
  .nav-menu a.nav-link[data-i18n="nav.about"]::before{ content: "👥"; }
  .nav-menu a.nav-link[data-i18n="nav.services"]::before{ content: "🦷"; }
  .nav-menu a.nav-link[data-i18n="nav.gallery"]::before{ content: "📸"; }
  .nav-menu a.nav-link-external[data-i18n="nav.blog"]::before{ content: "📰"; }
  .nav-menu a.nav-link[data-i18n="nav.contact"]::before{ content: "📞"; }
}

/* Tablet & Mobile: uppercase hamburger menu text */
@media (max-width:1023px){
  .nav-menu a{ text-transform: uppercase; letter-spacing: .04em; }
}

/* Language buttons lift */
.lang-btn{border:1px solid transparent;border-radius:6px;transition:transform .2s ease, box-shadow .2s ease, background-color .2s ease, filter .2s ease, color .2s ease}
.lang-btn:hover,.lang-btn:focus-visible{transform:translateY(-2px) scale(1.03);box-shadow:0 10px 22px rgba(0,0,0,.18);background:linear-gradient(180deg, rgba(45,212,191,0.18), rgba(20,184,166,0.18));border-color:transparent;color:inherit;filter:none;outline:none}
/* Active language button (ES/EN) */
.lang-btn[aria-pressed="true"],
.lang-btn.active,
.lang-btn.is-active,
.lang-btn[aria-current="true"],
.lang-btn[aria-selected="true"]{
  background: var(--lang-active-bg);
  color: var(--lang-active-text);
  font-weight: 800;
  box-shadow: 0 8px 20px rgba(0,0,0,.16);
}
.lang-btn[aria-pressed="true"]:hover,
.lang-btn[aria-pressed="true"]:focus-visible,
.lang-btn.active:hover,
.lang-btn.active:focus-visible,
.lang-btn.is-active:hover,
.lang-btn.is-active:focus-visible,
.lang-btn[aria-current="true"]:hover,
.lang-btn[aria-current="true"]:focus-visible,
.lang-btn[aria-selected="true"]:hover,
.lang-btn[aria-selected="true"]:focus-visible{
  transform: translateY(-2px) scale(1.03);
  background: var(--lang-active-bg);
  color: var(--lang-active-text);
  outline: none;
  box-shadow: 0 10px 22px rgba(0,0,0,.18);
}

/* CTA and primary buttons lift */
.cta-button,.service-chat-btn,.submit-btn{transition:transform .2s ease, box-shadow .2s ease, background-color .2s ease, border-color .2s ease}
.cta-button:hover,.cta-button:focus-visible,
.service-chat-btn:hover,.service-chat-btn:focus-visible,
.submit-btn:hover,.submit-btn:focus-visible{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.16)}
/* Subtle WhatsApp icon animation inside buttons */
/* Ensure layout and spacing for service chat buttons */
.service-chat-btn{display:inline-flex;align-items:center;gap:8px}
/* "Más información" button for service cards */
.service-more-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:8px 12px;border-radius:8px;background:linear-gradient(45deg, #2dd4bf, #14b8a6);color:#fff;text-decoration:none !important;font-weight:700;border:none;transition:transform .2s ease, box-shadow .2s ease, background .2s ease}
.service-more-btn:hover,.service-more-btn:focus-visible{transform:translateY(-2px);box-shadow:0 10px 22px rgba(0,0,0,.18);background:linear-gradient(45deg, #14b8a6, #0d9488);outline:none}
.service-more-btn:active{transform:translateY(-1px)}
/* Spacing within service cards: stick buttons to bottom (More Info above WhatsApp) */
.service-card .service-more-btn{margin-top:auto;margin-bottom:8px}
/* Ensure WhatsApp sits right below More Info (override base auto spacing) */
.service-card .service-chat-btn{margin-top:6px !important}
.cta-button.cta-whatsapp i,.service-chat-btn i{transition:transform .2s ease}
.cta-button.cta-whatsapp .wa-icon,.service-chat-btn .wa-icon{ width:18px; height:18px; display:inline-block; transition: transform .2s ease; }
.cta-button.cta-whatsapp:hover i,.cta-button.cta-whatsapp:focus-visible i,
.service-chat-btn:hover i,.service-chat-btn:focus-visible i,
.cta-button.cta-whatsapp:hover .wa-icon,.cta-button.cta-whatsapp:focus-visible .wa-icon,
.service-chat-btn:hover .wa-icon,.service-chat-btn:focus-visible .wa-icon{animation:waNudge .6s ease both}
/* Tap/active pulse on icon for selection feedback */
.service-chat-btn:active i{animation:waTap .3s ease both}
.cta-button.cta-whatsapp:active i{animation:waTap .3s ease both}
@keyframes waNudge{0%{transform:translateY(0) rotate(0)}30%{transform:translateY(-1px) rotate(-6deg)}60%{transform:translateY(-1px) rotate(6deg)}100%{transform:translateY(0) rotate(0)}}
@keyframes waTap{0%{transform:scale(1)}50%{transform:scale(1.15)}100%{transform:scale(1)}}
@media (prefers-reduced-motion: reduce){
  .cta-button.cta-whatsapp:hover i,.cta-button.cta-whatsapp:focus-visible i,
  .cta-button.cta-whatsapp:active i,
  .service-chat-btn:hover i,.service-chat-btn:focus-visible i,
  .service-chat-btn:active i,
  .wa-widget .wa-fab:hover i,.wa-widget .wa-fab:focus-visible i,
  .google-reviews-btn:hover i,.google-reviews-btn:focus-visible i{animation:none}
}
/* Stronger lift for hero CTAs */
.cta-button.cta-primary:hover,.cta-button.cta-primary:focus-visible,
.cta-button.cta-whatsapp:hover,.cta-button.cta-whatsapp:focus-visible{transform:translateY(-3px) scale(1.03);box-shadow:0 12px 28px rgba(0,0,0,.22), 0 0 0 3px rgba(0,0,0,.04)}
/* Darken hero CTAs on hover without forcing brand color overrides */
.cta-button.cta-primary:hover,.cta-button.cta-primary:focus-visible{filter:brightness(0.96) saturate(1.05)}
.cta-button.cta-whatsapp:hover,.cta-button.cta-whatsapp:focus-visible{background-color:#20bf5c}
/* Stronger lift for service WhatsApp buttons */
.service-chat-btn:hover,.service-chat-btn:focus-visible{transform:translateY(-3px) scale(1.03);box-shadow:0 12px 28px rgba(0,0,0,.22);background-color:#20bf5c}
/* Active/tap states for tactile feedback */
.cta-button:active,.service-chat-btn:active,.submit-btn:active{transform:translateY(-1px) scale(0.99);box-shadow:0 6px 16px rgba(0,0,0,.18)}
.cta-button.cta-primary:active,.cta-button.cta-whatsapp:active{box-shadow:0 8px 20px rgba(0,0,0,.2)}
.google-reviews-btn:active{transform:translateY(-1px) scale(0.99);box-shadow:0 8px 20px rgba(0,0,0,.2)}
.nav-link:active,.nav-link-external:active,.lang-btn:active{transform:translateY(-1px);box-shadow:0 6px 14px rgba(0,0,0,.14)}

/* Logo carousel (under blog) */
.logo-carousel{background:#f8fafc;padding:24px 0 40px; --logo-slot-h:64px; --logo-slot-w:180px}
.logo-carousel .logo-subtitle{color:#475569;margin:0}
.logo-carousel .logo-marquee{overflow:hidden;position:relative}
.logo-carousel .logo-list{display:flex;align-items:center;gap:clamp(20px,3vw,36px);width:max-content;animation:logoScroll 30s linear infinite;will-change:transform}
.logo-carousel .logo-list:hover{animation-play-state:paused}
.logo-carousel .logo-item{list-style:none; width:var(--logo-slot-w); height:var(--logo-slot-h); display:flex; align-items:center; justify-content:center; padding:0 8px}
.logo-carousel .logo-item img{max-height:100%;max-width:100%;width:auto;height:auto;display:block;filter:grayscale(100%) contrast(.9) brightness(.9);opacity:.85;transition:filter .2s ease, opacity .2s ease}
.logo-carousel .logo-item img:hover{filter:grayscale(0) contrast(1) brightness(1);opacity:1}
@media (min-width:768px){
  .logo-carousel{ --logo-slot-h:80px; --logo-slot-w:210px }
}
/* Desktop: taller and wider slots for horizontal logos */
@media (min-width:1024px){
  .logo-carousel{ --logo-slot-h:90px; --logo-slot-w:240px }
}
@keyframes logoScroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* Contact form submit button -> turquoise gradient */
.contact .contact-form .submit-btn,
.contact .contact-form button[type="submit"],
.contact .contact-form input[type="submit"]{
  background: linear-gradient(45deg, #2dd4bf, #14b8a6) !important;
  color:#fff !important;
  border:none !important;
  border-color:transparent !important;
  border-radius:8px !important;
  text-decoration:none !important;
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
}
.contact .contact-form .submit-btn:hover,
.contact .contact-form .submit-btn:focus-visible,
.contact .contact-form button[type="submit"]:hover,
.contact .contact-form button[type="submit"]:focus-visible,
.contact .contact-form input[type="submit"]:hover,
.contact .contact-form input[type="submit"]:focus-visible{
  background: linear-gradient(45deg, #14b8a6, #0d9488) !important;
  box-shadow: 0 10px 22px rgba(0,0,0,.18);
  outline:none;
}
.contact .contact-form .submit-btn:active,
.contact .contact-form button[type="submit"]:active,
.contact .contact-form input[type="submit"]:active{
  transform: translateY(-1px);
}
html.a11y-dark .contact .contact-form .submit-btn,
html.a11y-dark .contact .contact-form button[type="submit"],
html.a11y-dark .contact .contact-form input[type="submit"]{
  background: linear-gradient(45deg, #2dd4bf, #14b8a6) !important;
}
html.a11y-dark .contact .contact-form .submit-btn:hover,
html.a11y-dark .contact .contact-form .submit-btn:focus-visible,
html.a11y-dark .contact .contact-form button[type="submit"]:hover,
html.a11y-dark .contact .contact-form button[type="submit"]:focus-visible,
html.a11y-dark .contact .contact-form input[type="submit"]:hover,
html.a11y-dark .contact .contact-form input[type="submit"]:focus-visible{
  background: linear-gradient(45deg, #14b8a6, #0d9488) !important;
}

/* Footer layout: restore side-by-side lists and keep policy links at bottom */
/* Footer logo styling (above clinic name) */
.footer .footer-logo{display:flex;justify-content:center;align-items:center;margin-bottom:12px;perspective:800px}
.footer .footer-logo .logo-img{height:72px;width:auto;display:block;filter:drop-shadow(0 1px 2px rgba(0,0,0,.28));will-change:transform;transform-origin:center;transform-style:preserve-3d;backface-visibility:hidden;animation:footerMirror 2s ease-in-out infinite alternate;transition:filter .3s ease}
.footer .footer-logo .logo-img:hover,
.footer .footer-logo .logo-img:focus-visible{filter:drop-shadow(0 4px 8px rgba(0,0,0,.28))}
@keyframes footerMirror{from{transform:rotateY(0turn)}to{transform:rotateY(0.35turn)}}
@media (min-width:768px){
  .footer .footer-logo .logo-img{height:96px}
}
@media (prefers-reduced-motion: reduce){
  .footer .footer-logo .logo-img{animation:none}
  .nav-logo .logo-img{animation:none}
}

/* Footer layout: restore side-by-side lists and keep policy links at bottom */
.footer .social-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px;justify-content:center}
/* Default (mobile-first): stack sections */
.footer .footer-content{gap:24px 40px;align-items:flex-start}

/* Mobile: show Services first, then Links, then Clinic info */
@media (max-width: 767px){
  .footer .footer-content{display:flex !important; flex-direction:column !important}
  .footer .footer-content > .footer-section:nth-of-type(1){order:2}
  .footer .footer-content > .footer-section:nth-of-type(2){order:1}
  .footer .footer-content > .footer-section:nth-of-type(3){order:3}
}

/* Desktop/tablet layout: enforce two columns (Links, Services) and clinic info full width below */
@media (min-width: 768px){
  .footer .footer-content{display:grid !important;grid-template-columns:1fr 1fr !important;gap:28px 48px !important;align-items:flex-start}
  /* Expect HTML order: 1) Links, 2) Services, 3) Clinic info */
  /* Place Links on the left (col 1) and Services on the right (col 2) */
  .footer .footer-content > .footer-section:nth-of-type(1){grid-column:1}
  .footer .footer-content > .footer-section:nth-of-type(2){grid-column:2}
  .footer .footer-content > .footer-section:nth-of-type(3){grid-column:1 / -1}
}
@media (min-width: 1024px){
  .footer .footer-content{gap:32px 64px !important}
}
/* Tidy lists (exclude payment cards UL): keep each internal list single column */
.footer .footer-section ul:not(.cards){list-style:none;margin:8px 0 0;padding:0;display:grid;gap:12px;grid-template-columns:1fr;grid-auto-flow:row dense;justify-items:stretch;align-items:stretch;justify-content:center;width:100%}
.footer-section li{margin:0}
@media (min-width: 480px){ .footer .footer-section ul:not(.cards){ grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 768px){ .footer .footer-section ul:not(.cards){ grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px){ .footer .footer-section ul:not(.cards){ grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Center odd last item across both columns to keep visual centering in landscape */
.footer .footer-section ul:not(.cards) > li:last-child:nth-child(odd){ grid-column: 1 / -1; }

/* Footer links and social icons lift */
.footer .social-links a,.footer-section ul a{display:inline-block;padding:4px 6px;border-radius:6px;transition:transform .2s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease, text-shadow .2s ease}
.footer .social-links a:hover,.footer .social-links a:focus-visible,
.footer-section ul a:hover,.footer-section ul a:focus-visible{transform:translateY(-3px) scale(1.03);box-shadow:0 12px 28px rgba(0,0,0,.22);background-color:rgba(255,255,255,.10);color:#cfe3ff;text-shadow:0 1px 3px rgba(0,0,0,.8), 0 4px 12px rgba(0,0,0,.35)}

/* Footer bottom row (policies): stay below columns */
.footer .footer-bottom{margin-top:16px;padding-top:12px;border-top:1px solid #e5e7eb;display:grid;grid-template-columns:1fr;grid-auto-flow:row dense;justify-content:center;align-items:center;gap:12px;row-gap:10px;overflow-x:visible}
@media (min-width: 480px){
  .footer .footer-bottom{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 768px){
  .footer .footer-bottom{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.footer .footer-bottom > p{grid-column:1 / -1;grid-row:1;margin:0;text-align:center}
.footer .footer-bottom > a{white-space:normal}

/* Footer policy/consent links: high-contrast chips with good tap targets */
 .footer .footer-bottom .consent-manage-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  text-decoration:none !important;
  border-radius:8px;
  padding:6px 10px;
  color:#fff;
  background: rgba(255,255,255,0.06);
  border:0 !important; /* sin contorno, igual que Enlaces/Servicios */
  transition: transform .2s ease, box-shadow .2s ease, color .2s ease, background-color .2s ease, border-color .2s ease;
  width: 100%;
  text-align: center;
  white-space: normal;
}
.footer .footer-bottom .consent-manage-link:hover,
.footer .footer-bottom .consent-manage-link:focus-visible{
  transform: translateY(-2px);
  box-shadow: 0 10px 22px rgba(0,0,0,0.22);
  background: rgba(10,88,202,0.72);
  color:#eaf2ff;
  border:0 !important; /* mantener sin contorno en hover/focus */
  outline: none;
}
html.a11y-dark .footer .footer-bottom .consent-manage-link:hover,
html.a11y-dark .footer .footer-bottom .consent-manage-link:focus-visible{
  background: rgba(147,197,253,0.85);
  border:0 !important;
  color:#eaf2ff;
}
.footer .footer-bottom .consent-manage-link:active{ transform: translateY(-1px); }
@media (max-width: 767px){
  .footer .footer-bottom .consent-manage-link{ min-height: 38px; line-height: 1.2; }
}

/* Footer section lists: chip style for Links and Services */
.footer .footer-section ul a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  width:100%;
  padding:6px 10px;
  border-radius:8px;
  background: rgba(255,255,255,0.06);
  border:0 !important; /* quitar líneas de contorno */
  color:#fff;
  text-decoration:none !important;
  text-align:center;
  white-space:normal;
  transition: transform .2s ease, box-shadow .2s ease, color .2s ease, background-color .2s ease, border-color .2s ease;
}
.footer .footer-section ul a:hover,
.footer .footer-section ul a:focus-visible{
  transform: translateY(-2px);
  box-shadow: 0 10px 22px rgba(0,0,0,0.22);
  background: rgba(10,88,202,0.72);
  color:#eaf2ff;
  border:0 !important; /* mantener sin contorno en hover/focus */
  outline: none;
}
/* Grid cell hover: change chip color when hovering the LI (full cell) */
.footer .footer-section ul:not(.cards) > li{ border-radius:10px; transition: background-color .2s ease, box-shadow .2s ease; }
.footer .footer-section ul:not(.cards) > li:hover a,
.footer .footer-section ul:not(.cards) > li:focus-within a{
  background: rgba(10,88,202,0.72);
  border:0 !important; /* sin contorno también al resaltar la celda */
  color:#eaf2ff;
}
html.a11y-dark .footer .footer-section ul:not(.cards) > li:hover a,
html.a11y-dark .footer .footer-section ul:not(.cards) > li:focus-within a{
  background: rgba(147,197,253,0.85);
  border:0 !important;
  color:#eaf2ff;
}
/* Payment methods: hover background for each card */
.payment-methods .cards li{ border-radius:8px; padding:4px 6px; transition: background-color .2s ease, box-shadow .2s ease; }
.payment-methods .cards li:hover{ background: rgba(10,88,202,0.18); box-shadow: 0 6px 16px rgba(0,0,0,0.22); }
html.a11y-dark .payment-methods .cards li:hover{ background: rgba(147,197,253,0.22); box-shadow: 0 6px 16px rgba(0,0,0,0.35); }
/* Chips layout base: center text but stretch grid items to fill columns */
.footer .footer-section{ text-align: center; }
.footer .footer-section ul:not(.cards){ justify-items: stretch; align-items: stretch; }
/* Ensure chips always fill 100% of their cell */
.footer .footer-section ul a{ width: 100% !important; }

/* Center chips on tablets and mobile -> stretch to fill their grid cell (like Policies) */
@media (max-width: 1023px){
  .footer .footer-section ul:not(.cards){ justify-items: stretch; }
  .footer .footer-section ul a{ width: 100% !important; }
}

/* Reviews subsection (About) */
.reviews-subsection{margin-top:32px}
.reviews-subsection h3{margin:0 0 12px;font-size:1.5rem}
.reviews-scroller{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;padding-bottom:8px}
.reviews-scroller::-webkit-scrollbar{height:6px}
.reviews-scroller::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:4px}
.reviews-list{list-style:none;padding:0;margin:0;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(280px, 340px);grid-template-rows:1fr;gap:13px;scroll-snap-type:x mandatory}
@media (min-width:768px){
  .reviews-list{grid-auto-columns:calc((100% - (13px * 2)) / 3)}
}
.review-card{display:flex;gap:16px;align-items:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;padding:10px;scroll-snap-align:start;transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;box-shadow:0 6px 16px rgba(0,0,0,.12)}
/* Card lift on hover/focus for better affordance */
.review-card:hover,
.review-card:focus-within{transform:translateY(-6px) scale(1.02);box-shadow:0 20px 48px rgba(0,0,0,.26), 0 2px 8px rgba(0,0,0,.04);border-color:#cbd5e1;background:#fff}

/* Review cards: space for Google badge and position context */
.reviews-subsection .review-card{ position: relative; padding-right: 32px; }
@media (min-width: 1024px){ .reviews-subsection .review-card{ padding-right: 40px; } }
/* Colored Google G badge at top-right of each review card */
.reviews-subsection .review-card::after{
  content: '';
  position: absolute;
  top: 8px;
  right: 8px;
  width: 24px;
  height: 24px;
  background: url('images/google-g.svg') no-repeat center / contain;
  opacity: 0.98;
  pointer-events: none;
}

/* Reviews cards: stronger card feel on desktop */
@media (min-width: 1024px){
  .reviews-subsection .review-card{
    border-radius: 14px;
    padding: 16px;
  }
}

/* Reviews navigation (overlay on carousel) */
.reviews-subsection{position:relative}
.reviews-subsection .reviews-nav{position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);display:flex;justify-content:space-between;align-items:center;gap:10px;padding:0 4px;pointer-events:none;z-index:2;opacity:.0;transition:opacity .2s ease}
/* Fade in controls on hover/focus for accessibility and cleanliness */
.reviews-subsection:hover .reviews-nav, .reviews-subsection:focus-within .reviews-nav{opacity:1}
.reviews-subsection .reviews-nav button{appearance:none;border:1px solid #1a73e8;background:rgba(255,255,255,.95);background-image:linear-gradient(180deg, rgba(255,255,255,1) 0%, rgba(255,255,255,.92) 100%);backdrop-filter:saturate(110%) blur(1px);color:#1a73e8;width:48px;height:48px;padding:0;border-radius:50%;font-weight:700;cursor:pointer;box-shadow:0 6px 16px rgba(0,0,0,.12);display:inline-flex;align-items:center;justify-content:center;line-height:1;font-size:20px;pointer-events:auto;transition:background-color .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease}
.reviews-subsection .reviews-nav button:hover{background:#fff; background-image:linear-gradient(180deg, #fff 0%, rgba(255,255,255,.96) 100%); color:#1558b0; border-color:#1558b0; box-shadow:0 6px 14px rgba(0,0,0,.12)}
.reviews-subsection .reviews-nav button:focus-visible{outline:3px solid rgba(26,115,232,.35); outline-offset:2px}
.reviews-subsection .reviews-nav .reviews-prev,.reviews-subsection .reviews-nav .reviews-next{min-width:48px}
@media (max-width:767px){.reviews-subsection .reviews-nav{display:none}}
.reviews-scroller{scroll-behavior:smooth}

/* Reviews: increase the visible box height for better aesthetics */
@media (max-width: 767px){
  .reviews-scroller{ min-height: 170px; }
  .review-card{ min-height: 146px; }
}
@media (min-width: 768px) and (max-width: 1023px){
  .reviews-scroller{ min-height: 200px; }
  .review-card{ min-height: 172px; }
}
@media (min-width: 1024px){
  .reviews-scroller{ min-height: 260px; }
  .review-card{ min-height: 228px; }
  .review-body{ min-height: 112px; }
}

/* Tablet and Mobile: compact testimonial cards for uniform small look */
@media (max-width: 767px){
  .reviews-subsection .review-card{ padding: 8px; gap: 12px; padding-right: 28px; }
  .review-avatar, .review-avatar-img{ width: 72px; height: 72px; flex: 0 0 72px; }
  .review-avatar i{ font-size: 28px; }
  .review-body{ min-height: 72px; }
  .review-header{ gap: 7px; }
  .review-name{ font-size: 0.92rem; }
  .review-stars{ font-size: 0.90rem; }
  .review-text{ font-size: 0.90rem; line-height: 1.5; }
  .reviews-subsection .review-card::after{ width: 20px; height: 20px; }
}
@media (min-width: 768px) and (max-width: 1023px){
  .reviews-subsection .review-card{ padding: 9px; gap: 13px; padding-right: 32px; }
  .review-avatar, .review-avatar-img{ width: 80px; height: 80px; flex: 0 0 80px; }
  .review-avatar i{ font-size: 32px; }
  .review-body{ min-height: 80px; }
  .review-header{ gap: 8px; }
  .review-name{ font-size: 0.98rem; }
  .review-stars{ font-size: 0.96rem; }
  .review-text{ font-size: 0.94rem; line-height: 1.55; }
  .reviews-subsection .review-card::after{ width: 22px; height: 22px; }
}

/* Desktop: larger review avatars for better balance */
@media (min-width: 1024px){
  .review-avatar,
  .review-avatar-img{
    width: 112px;
    height: 112px;
    flex: 0 0 112px;
  }
}

/* Gallery: arrow-only nav (no circular buttons), bigger and always visible */
.gallery{position:relative}
.gallery .reviews-nav{position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);display:flex;justify-content:space-between;align-items:center;gap:10px;padding:0 4px;opacity:1 !important;pointer-events:auto !important; z-index: 20 !important}
@media (max-width:767px){ .gallery .reviews-nav{ display:flex !important; } }
.gallery .reviews-nav button{width:auto !important;height:auto !important;min-width:48px !important;min-height:48px !important;border-radius:0 !important;background:transparent !important;border:0 !important;box-shadow:none !important;padding:10px !important;color:#fff !important}
.gallery .reviews-nav button i{font-size:52px !important;line-height:1;color:inherit !important;text-shadow:0 3px 10px rgba(0,0,0,.65);transition:transform .15s ease, filter .15s ease}
.gallery .reviews-nav button:hover i,.gallery .reviews-nav button:focus-visible i{transform:translateY(-1px);filter:brightness(1.1)}

/* Before & After: use same arrow-only nav controls */
.before-after{position:relative}
.before-after .reviews-nav{position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);display:flex;justify-content:space-between;align-items:center;gap:10px;padding:0 4px;opacity:1 !important;pointer-events:auto !important; z-index: 20 !important}
@media (max-width:767px){ .before-after .reviews-nav{ display:flex !important; } }
.before-after .reviews-nav button{width:auto !important;height:auto !important;min-width:48px !important;min-height:48px !important;border-radius:0 !important;background:transparent !important;border:0 !important;box-shadow:none !important;padding:10px !important;color:#fff !important}
.before-after .reviews-nav button i{font-size:52px !important;line-height:1;color:inherit !important;text-shadow:0 3px 10px rgba(0,0,0,.65);transition:transform .15s ease, filter .15s ease}
.before-after .reviews-nav button:hover i,.before-after .reviews-nav button:focus-visible i{transform:translateY(-1px);filter:brightness(1.1)}

/* Lightbox close button: simple X without circular background (common libraries) */
.glightbox-clean .gclose,
.glightbox-clean .gclose:hover,
.glightbox-clean .gclose:focus,
.lg-toolbar .lg-close,
.lg-toolbar .lg-close:hover,
.lg-toolbar .lg-close:focus,
.pswp__button--close,
.pswp__button--close:hover,
.pswp__button--close:focus,
.fancybox__button--close,
.fancybox-button--close,
.lightbox-close,
.lightbox .lightbox-close{background:transparent !important;border:0 !important;border-radius:0 !important;box-shadow:none !important;color:#fff !important;width:auto !important;height:auto !important;opacity:1 !important;padding:10px !important;min-width:48px !important;min-height:48px !important;line-height:1 !important;cursor:pointer !important; z-index:2147483005 !important}
.glightbox-clean .gclose svg,
.lg-toolbar .lg-close svg,
.pswp__button--close svg,
.fancybox__button--close svg,
.fancybox-button--close svg{width:40px;height:40px;fill:none;stroke:#fff;filter:drop-shadow(0 3px 10px rgba(0,0,0,.65))}
/* Fallback for text-based close icons */
.glightbox-clean .gclose::before,
.lg-toolbar .lg-close::before,
.pswp__button--close::before,
.fancybox__button--close::before,
.fancybox-button--close::before,
.lightbox-close::before{font-size:40px}
/* Visible focus for keyboard users */
.glightbox-clean .gclose:focus-visible,
.lg-toolbar .lg-close:focus-visible,
.pswp__button--close:focus-visible,
.fancybox__button--close:focus-visible,
.fancybox-button--close:focus-visible,
.lightbox-close:focus-visible{outline:3px solid rgba(255,255,255,.6);outline-offset:2px;border-radius:4px}

.review-avatar{width:88px;height:88px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:#eef2ff;color:#4f46e5;flex:0 0 88px}
.review-avatar i{font-size:36px;line-height:1}
/* Real photo avatars */
.review-avatar-img{width:88px;height:88px;border-radius:12px;object-fit:cover;display:block;border:1px solid #e5e7eb;background:#fff;flex:0 0 88px;transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;will-change:transform}
/* Lift effect on hover/focus and when hovering the entire card (more pronounced) */
.review-avatar-img:hover,
.review-avatar-img:focus-visible,
.review-card:hover .review-avatar-img{transform:translateY(-3px) scale(1.05);box-shadow:0 12px 28px rgba(0,0,0,.22), 0 0 0 3px rgba(26,115,232,.12);border-color:#c7d2fe}

.review-body{display:flex;flex-direction:column;gap:6px;justify-content:center;min-height:88px}
.review-header{display:flex;align-items:center;gap:10px}
.review-name{font-weight:700}
.review-stars{color:#f59e0b;font-weight:700}
.review-text{margin:0;color:#111827}
.reviews-cta{margin-top:10px}

/* Gallery: single-row horizontal scroller with snap (mirrors reviews) */
.gallery{position:relative}
.gallery-grid{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;padding-bottom:8px;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(260px, 340px);grid-template-rows:1fr;gap:13px;scroll-snap-type:x mandatory;scroll-behavior:smooth}
@media (min-width:768px){
  /* Show 3 cards on desktop with equal gaps */
  .gallery-grid{grid-auto-columns:calc((100% - (13px * 2)) / 3)}
}
.gallery-item{scroll-snap-align:start}
.gallery-item img{display:block;width:100%;height:auto;aspect-ratio:4 / 3;object-fit:cover;border-radius:12px;box-shadow:0 10px 24px rgba(0,0,0,0.08);transition:transform .2s ease, box-shadow .2s ease}
.gallery-item img:hover,.gallery-item img:focus-visible{transform:translateY(-2px) scale(1.01);box-shadow:0 16px 32px rgba(0,0,0,0.12)}
/* Gallery navigation controls now inherit reviews styles by using reviews-* classes in HTML */
/* Keeping .gallery-nav styles for backward compatibility (unused once HTML is updated) */
.gallery-nav{position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);display:flex;justify-content:space-between;align-items:center;gap:10px;padding:0 4px;pointer-events:none;z-index:2;opacity:.0;transition:opacity .2s ease}
.gallery:hover .gallery-nav,.gallery:focus-within .gallery-nav{opacity:1}
.gallery-nav button{appearance:none;border:1px solid #1a73e8;background:rgba(255,255,255,.95);background-image:linear-gradient(180deg, rgba(255,255,255,1) 0%, rgba(255,255,255,.92) 100%);backdrop-filter:saturate(110%) blur(1px);color:#1a73e8;width:48px;height:48px;padding:0;border-radius:50%;font-weight:700;cursor:pointer;box-shadow:0 6px 16px rgba(0,0,0,.12);display:inline-flex;align-items:center;justify-content:center;line-height:1;font-size:20px;pointer-events:auto;transition:background-color .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease}
.gallery-nav button:hover{background:#fff; background-image:linear-gradient(180deg, #fff 0%, rgba(255,255,255,.96) 100%); color:#1558b0; border-color:#1558b0; box-shadow:0 6px 14px rgba(0,0,0,.12)}
.gallery-nav button:focus-visible{outline:3px solid rgba(26,115,232,.35); outline-offset:2px}
.gallery-nav button i{font-size:18px}
.gallery-nav button[disabled]{opacity:.4; cursor:not-allowed}
@media (max-width:767px){.gallery-nav{display:none}}

/* Before & After: horizontal scroller and uniform compare widgets */
.before-after .before-after-grid{
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 8px;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(280px, 100%);
  grid-template-rows: 1fr;
  gap: 13px;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
}
@media (min-width: 768px){
  .before-after .before-after-grid{ grid-auto-columns: calc((100% - 13px) / 2); }
}
.before-after .before-after-grid > *{ scroll-snap-align: start; }


/* Before & After: force all compare widgets to same size and cover-fit images */
.before-after .premium-twentytwenty-container{
  position: relative;
  width: 100%;
  height: var(--ba-height, 360px) !important; /* uniform height */
  max-width: 720px;
  margin: 0 auto 16px;
  border-radius: 12px;
  overflow: hidden;
}
@media (max-width: 767px){
  .before-after .premium-twentytwenty-container{ --ba-height: 300px; }
}
@media (min-width: 1024px){
  .before-after .premium-twentytwenty-container{ --ba-height: 420px; }
}
.before-after .premium-twentytwenty-before,
before-after .premium-twentytwenty-after{
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
}

/* Before & After pagination dots */
.before-after .ba-pagination{ display:flex; justify-content:center; align-items:center; gap:8px; margin: 6px 0 2px; }
.before-after .ba-dot{ width:10px; height:10px; border-radius:50%; background:rgba(255,255,255,.65); border:1px solid rgba(255,255,255,.9); box-shadow:0 2px 6px rgba(0,0,0,.25); cursor:pointer; padding:0; display:inline-block }
.before-after .ba-dot[aria-selected="true"]{ background:#1a73e8; border-color:#1a73e8 }
.before-after .ba-dot:focus-visible{ outline:3px solid rgba(26,115,232,.5); outline-offset:2px }
html.a11y-dark .before-after .ba-dot{ background:rgba(147,197,253,.75); border-color:rgba(147,197,253,.95) }
html.a11y-dark .before-after .ba-dot[aria-selected="true"]{ background:#60a5fa; border-color:#60a5fa }
@media (hover: none) and (pointer: coarse){
  .cta-button,.service-chat-btn,.submit-btn{
    transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease, border-color .15s ease, filter .15s ease;
  }
  .cta-button.cta-primary,.cta-button.cta-whatsapp{
    transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease, filter .15s ease;
  }
  .google-reviews-btn{
    transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease;
  }
  .nav-link,.lang-btn{
    transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease, filter .15s ease;
  }
  .review-card{
    transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
  }
  .consent-manage-link{
    transition: transform .15s ease, box-shadow .15s ease, color .15s ease;
  }
}

/* Contact form privacy checkbox alignment */
.contact-form label.checkbox{
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 8px;
  line-height: 1.3;
  text-align: left;
}
.contact-form label.checkbox input[type="checkbox"]{
  margin-top: 3px; /* align checkbox with first line of text */
}

/* Prevent hero description text from being truncated with ellipsis (ensure wrapping) */
.service-hero p{
  display: block !important;
  overflow: visible !important;
  text-overflow: initial !important;
  white-space: normal !important;
  -webkit-line-clamp: unset !important;
  -webkit-box-orient: initial !important;
}
/* Ensure service titles never get clamped or ellipsized */
.service-hero h1{
  display: block !important;
  overflow: visible !important;
  text-overflow: initial !important;
  white-space: normal !important;
  -webkit-line-clamp: unset !important;
  -webkit-box-orient: initial !important;
  line-height: 1.2 !important;
}

/* Force left alignment for privacy checkbox text */
.contact-form label.checkbox{justify-content:flex-start;text-align:left}

/* Hide Google reviews button inside Contact form */
.contact .contact-reviews-cta{display:none !important}
.contact-form label.checkbox a{
  text-decoration: none;
}

/* Keep privacy text and link in a single line and flush checkbox to the left */
.contact-form label.checkbox{flex-wrap: nowrap; padding-left: 0 !important; margin-left: 0 !important}
.contact-form label.checkbox > span{white-space: nowrap}
.contact-form label.checkbox input[type="checkbox"]{margin: 0 1px 0 0 !important}
.contact-form .form-group label.checkbox{margin-left: 0 !important}

/* Pull the checkbox group further left and reduce internal spacing */
.contact-form label.checkbox{gap: 1px !important}
.contact-form .form-group label.checkbox{gap: 1px !important}

/* Force zero spacing as final override */
.contact-form .form-group > label.checkbox{display:flex !important; align-items:center !important; gap:0 !important; column-gap:0 !important}
.contact-form .form-group > label.checkbox input[type="checkbox"]{margin:0 !important}
.contact-form label.checkbox > span{margin-left:0 !important}

/* Ultra-specific overrides per field to defeat any remaining cascade */
.contact-form .form-group > label.checkbox[for="privacy_accept"],
.contact-form .form-group > label.checkbox[for="privacy_accept_en"]{display:inline-flex !important; align-items:center !important; gap:0 !important; column-gap:0 !important}
.contact-form .form-group > label.checkbox[for="privacy_accept"] > input#privacy_accept,
.contact-form .form-group > label.checkbox[for="privacy_accept_en"] > input#privacy_accept_en{margin-right:0 !important; margin-left:0 !important}

/* Microajuste visual para checkbox nativo: pega el control al texto */
.contact-form .form-group > label.checkbox input[type="checkbox"]{transform: translateX(-2px) !important}
.contact-form .form-group > label.checkbox[for="privacy_accept"] > input#privacy_accept{transform: translateX(-2px) !important}
.contact-form .form-group > label.checkbox[for="privacy_accept_en"] > input#privacy_accept_en{transform: translateX(-2px) !important}

/* Contact form: intro block styling */
.form-intro{ text-align:center; margin: 16px 0 32px; }
/* Extra space below contact form (ES/EN) */
.contact-form{ margin-bottom: 32px; }
.form-intro h3{ margin:0 0 14px; font-size:1.25rem; line-height:1.2; }
.form-intro h3 strong{ font-weight:800; }
/* Centered separator line under the title */
.form-intro::after{ content:''; display:block; width:140px; height:1px; background:#0a58ca; border-radius:1px; margin:0 auto 20px; }
.form-intro p{ margin:0 0 16px; color:#374151; font-size:1rem; max-width:62ch; margin-left:auto; margin-right:auto; }
/* Remove underline for phone link in intro */
.contact-form .form-intro a{ text-decoration: none !important; }
/* Dark theme adjustments */
html.a11y-dark .form-intro p{ color:#cbd5e1; }
html.a11y-dark .form-intro::after{ background:#93c5fd; }

/* Interactive map embed (Contact) */
.contact-info .map-embed{ position:relative; width:100%; aspect-ratio: 16 / 9; min-height: 280px; margin-top:12px; border:1px solid #e5e7eb; border-radius:12px; overflow:hidden; background:#f8fafc; }
.contact-info .map-embed iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; display:block; }
@media (min-width:768px){ .contact-info .map-embed{ min-height:320px; } }
html.a11y-dark .contact-info .map-embed{ border-color:#1f2937; background:#0f172a; }

/* Blog section */
.blog{padding:40px 0}
.blog-grid{display:grid;gap:16px;grid-template-columns:1fr;align-items:stretch}
@media(min-width:768px){.blog-grid{grid-template-columns:repeat(3,1fr)}}
.post-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease, background-color .2s ease}
.post-card:hover,.post-card:focus-within{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.12);border-color:#d1d5db}
.post-card img{display:block;width:100%;height:auto;aspect-ratio:5/3;object-fit:cover}
.post-card h3{margin:10px 12px 6px;font-size:1.1rem}
.post-card p{margin:0 12px 8px;color:#374151}
.post-card .post-meta{display:block;color:#6b7280;margin:0 12px 12px;font-size:.9rem}
.blog-cta{margin-top:14px}

/* Blog cards: shrink images, round corners and add soft shadow (Home, ES/EN) */
.blog .post-card img{
  width: 86%;
  margin: 10px auto 0;
  border-radius: 12px;
  display: block;
  box-shadow: 0 8px 20px rgba(0,0,0,.12);
  transition: box-shadow .2s ease, transform .2s ease;
}
/* Slightly stronger lift on hover */
.blog .post-card:hover img{ box-shadow: 0 16px 36px rgba(0,0,0,.20); }

/* Blog cards: remove visible borders (contorno) */
.blog .post-card{ border: 0 !important; }
.blog .post-card:hover, .blog .post-card:focus-within{ border: 0 !important; border-color: transparent !important; }

/* Blog cards: intensify color and shadow on hover/focus (match Services feel) */
.blog .post-card:hover,
.blog .post-card:focus-within{
  background-color: rgba(10,88,202,0.12) !important;
  box-shadow: 0 28px 64px rgba(0,0,0,.24) !important;
  transform: translateY(-3px);
}
/* Dark theme counterpart */
html.a11y-dark .blog .post-card:hover,
html.a11y-dark .blog .post-card:focus-within{
  background-color: rgba(10,88,202,0.32) !important;
  box-shadow: 0 32px 72px rgba(0,0,0,.40) !important;
}

/* Ensure blog card titles are never underlined */
.post-card h3,
.post-card h3 a{
  text-decoration: none !important;
}
.post-card h3 a:hover,
.post-card h3 a:focus-visible{
  text-decoration: none !important;
}
/* Blog cards: remove underline on entire card link in all states */
.blog .post-card a,
.blog .post-card a:visited,
.blog .post-card a:hover,
.blog .post-card a:focus,
.blog .post-card a:focus-visible,
.blog .post-card a:active{
  text-decoration: none !important;
  text-underline-offset: 0 !important;
}

/* Payment methods */
.payment-methods{margin-top:12px;text-align:center}
.payment-methods .cards{display:flex;gap:10px;align-items:center;justify-content:center;padding:0;margin:8px 0;list-style:none}
.payment-methods img{display:block;filter:saturate(0.95)}
.payment-note{margin:0;color:#374151}

/* Accessibility widget */
/* Move to the left, align with WhatsApp widget sizing and effects */
.a11y-widget{position:fixed;left:16px;bottom:16px;z-index:2147483001;display:flex;flex-direction:column;align-items:flex-start}
.a11y-toggle{appearance:none;border:0;border-radius:50%;width:56px;height:56px;font-size:28px;line-height:1;cursor:pointer;background:#0a58ca;color:#fff;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;box-shadow:0 6px 16px rgba(0,0,0,.25);transition:transform .2s ease, box-shadow .2s ease, background-color .2s ease}
.a11y-toggle:hover,.a11y-toggle:focus-visible{transform:translateY(-2px) scale(1.04);box-shadow:0 10px 22px rgba(0,0,0,.28);background-color:#0a55c0}
.a11y-toggle:active{transform:translateY(-1px) scale(0.99);box-shadow:0 8px 20px rgba(0,0,0,.2)}
/* Panel opens above the button on the left */
.a11y-panel{position:absolute;left:0;bottom:72px;background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:12px;width:min(387px, 92vw);box-shadow:0 12px 24px rgba(0,0,0,.18)}
.a11y-panel h3{margin:0 0 8px}
.a11y-panel ul{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.a11y-panel .a11y-font{display:flex;gap:8px}
/* TTS button with speaker icon spacing */
.a11y-panel #a11y-tts{display:inline-flex;align-items:center;gap:8px}
/* Accessibility classes (enhanced) */
html.a11y-contrast{filter:contrast(1.1)}
html.a11y-dyslexia{font-family:"Atkinson Hyperlegible","OpenDyslexic",system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}
html.a11y-reduce-motion *{animation:none !important;transition:none !important;scroll-behavior:auto !important}
/* New toggles */
html.a11y-underline-links a{ text-decoration: underline !important; text-underline-offset: .15em; }
html.a11y-highlight-links a{ box-shadow: 0 0 0 2px rgba(26,115,232,.35); background: rgba(26,115,232,.06); border-radius:4px; }
html.a11y-grayscale{ filter: grayscale(1) contrast(1.05); }
html.a11y-line-height body{ line-height: 1.8; }
html.a11y-letter-spacing body{ letter-spacing: 0.02em; }
html.a11y-strong-focus :focus-visible{ outline:3px solid #ff9800 !important; outline-offset: 2px !important; }
/* Dark theme / high-contrast background */
html.a11y-dark body{ background:#0b1220; color:#e6eaf2; }
html.a11y-dark a{ color:#93c5fd; }
html.a11y-dark .navbar, html.a11y-dark .footer{ background-color:#0b1220; color:#e6eaf2; }
html.a11y-dark .footer .footer-bottom{ border-top-color:#334155; }
html.a11y-dark .post-card, html.a11y-dark .review-card{ background:#101827; border-color:#1f2937; color:#e6eaf2; }
html.a11y-dark .gallery-item img{ box-shadow:0 10px 24px rgba(0,0,0,0.5); }
html.a11y-dark .google-reviews-btn{ background:#1558b0; }
html.a11y-dark .google-reviews-btn:hover, html.a11y-dark .google-reviews-btn:focus-visible{ background:#124a93; }
/* Buttons and CTAs contrast on dark */
html.a11y-dark .cta-button, html.a11y-dark .service-chat-btn, html.a11y-dark .submit-btn{ color:#fff; border-color: transparent; }
html.a11y-dark .cta-button.cta-primary{ background:#2563eb; }
html.a11y-dark .cta-button.cta-primary:hover, html.a11y-dark .cta-button.cta-primary:focus-visible{ background:#1d4ed8; filter:none }
html.a11y-dark .cta-button.cta-whatsapp, html.a11y-dark .service-chat-btn{ background:#25D366; color:#0b1220; font-weight:700 }
html.a11y-dark .cta-button.cta-whatsapp:hover, html.a11y-dark .cta-button.cta-whatsapp:focus-visible,
html.a11y-dark .service-chat-btn:hover, html.a11y-dark .service-chat-btn:focus-visible{ background:#22c35e }
/* Navigation hover backgrounds for clarity */
html.a11y-dark .nav-link:hover, html.a11y-dark .nav-link:focus-visible,
html.a11y-dark .nav-link-external:hover, html.a11y-dark .nav-link-external:focus-visible{ background: linear-gradient(180deg, rgba(45,212,191,0.25), rgba(20,184,166,0.25)); border-color: transparent; color: inherit; }
html.a11y-dark .lang-btn:hover, html.a11y-dark .lang-btn:focus-visible{ background: linear-gradient(180deg, rgba(45,212,191,0.25), rgba(20,184,166,0.25)); border-color: transparent; color: inherit; }
/* Active language button (dark) */
html.a11y-dark .lang-btn[aria-pressed="true"],
html.a11y-dark .lang-btn.active,
html.a11y-dark .lang-btn.is-active,
html.a11y-dark .lang-btn[aria-current="true"],
html.a11y-dark .lang-btn[aria-selected="true"]{
  background: var(--lang-active-bg);
  color: var(--lang-active-text);
}
html.a11y-dark .lang-btn[aria-pressed="true"]:hover,
html.a11y-dark .lang-btn[aria-pressed="true"]:focus-visible,
html.a11y-dark .lang-btn.active:hover,
html.a11y-dark .lang-btn.active:focus-visible,
html.a11y-dark .lang-btn.is-active:hover,
html.a11y-dark .lang-btn.is-active:focus-visible,
html.a11y-dark .lang-btn[aria-current="true"]:hover,
html.a11y-dark .lang-btn[aria-current="true"]:focus-visible,
html.a11y-dark .lang-btn[aria-selected="true"]:hover,
html.a11y-dark .lang-btn[aria-selected="true"]:focus-visible{
  background: var(--lang-active-bg);
  color: var(--lang-active-text);
}

.a11y-note{margin-top:6px;color:#6b7280;font-size:.9rem}
/* Lift on the a11y font size buttons for consistency */
.a11y-font button{appearance:none;border:1px solid #e5e7eb;background:#fff;border-radius:8px;padding:6px 10px;cursor:pointer;transition:transform .2s ease, box-shadow .2s ease, background-color .2s ease}
.a11y-font button:hover,.a11y-font button:focus-visible{transform:translateY(-2px);box-shadow:0 6px 14px rgba(0,0,0,.12);background:#f9fafb}

/* Desktop spacing matches WhatsApp widget */
@media (min-width:768px){
  .a11y-widget{left:24px;bottom:24px}
  .a11y-toggle{width:64px;height:64px;font-size:32px}
}

/* A11y panel: present checkboxes as accessible switches */
.a11y-panel label.switch-label{display:inline-flex;align-items:center;gap:10px;cursor:pointer}
.a11y-panel label.switch-label input[type="checkbox"]{position:absolute;opacity:0;width:1px;height:1px;overflow:hidden}
.a11y-panel .a11y-switch{position:relative;width:42px;height:24px;border-radius:999px;background:#e5e7eb;box-shadow:inset 0 0 0 1px #cfd4dc;transition:background .2s ease, box-shadow .2s ease;flex:0 0 42px}
.a11y-panel .a11y-switch::after{content:'';position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2);transition:transform .2s ease}
.a11y-panel label.switch-label input[type="checkbox"]:checked + .a11y-switch{background:#0a58ca;box-shadow:inset 0 0 0 1px rgba(10,88,202,.2)}
.a11y-panel label.switch-label input[type="checkbox"]:checked + .a11y-switch::after{transform:translateX(18px)}
.a11y-panel label.switch-label input[type="checkbox"]:focus-visible + .a11y-switch{outline:3px solid rgba(10,88,202,.35);outline-offset:2px}
@media (prefers-reduced-motion: reduce){
  .a11y-panel .a11y-switch,.a11y-panel .a11y-switch::after{transition:none}
}

/* A11y panel: enable internal scroll on tablets and mobile */
@media (max-width: 1023px){
  .a11y-panel{ max-height: 65vh; overflow-y: auto; -webkit-overflow-scrolling: touch; }
}
@media (max-width: 767px){
  .a11y-panel{ max-height: 72vh; }
}

/* Avoid overlap with consent banner/panel when visible (same behavior as WA) */
#consent-banner:not([hidden]) ~ .a11y-widget,
#consent-panel:not([hidden]) ~ .a11y-widget{bottom:110px}

/* Collapsible label for a11y widget (mirrors WA label behavior) */
.a11y-toggle{position:relative}
/* Default hidden capsule to the right of the button */
.a11y-toggle::after{
  content: '';
  position:absolute; left: calc(100% + 8px); top:50%; transform:translateY(-50%);
  background:#1f2a37; color:#fff; border-radius:10px; box-shadow:0 2px 10px rgba(0,0,0,.2);
  font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:clip;
  max-width:0; opacity:0; padding:10px 0; margin-left:0; pointer-events:none;
  transition:max-width .25s ease, opacity .2s ease, padding .2s ease;
}
/* Localized label text by page language */
html[lang="es"] .a11y-toggle::after{ content:'Accesibilidad'; }
html[lang="en"] .a11y-toggle::after{ content:'Accessibility'; }
/* Reveal on hover/focus */
.a11y-widget:hover .a11y-toggle::after,
.a11y-toggle:focus-visible::after{ max-width:420px; opacity:1; padding:10px 12px; }

/* Section layout inside a11y panel */
.a11y-section{ padding: 6px 0; border-top: 1px solid #e5e7eb; }
.a11y-section:first-of-type{ border-top: 0; }
.a11y-section h4{ margin: 6px 0 6px; font-size: 1rem; }
.a11y-section ul{ list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }

/* Content links are underlined by default for distinguishability (WCAG 1.4.1) */
main a:not(.btn):not(.cta-button):not(.service-more-btn):not(.service-chat-btn):not(.nav-link):not(.nav-link-external):not(.lang-btn):not(.google-reviews-btn):not(.wa-fab):not(.a11y-toggle),
.post-body a,
.article-content a { text-decoration: underline; text-underline-offset: .15em; }

/* Preserve non-underlined look for UI controls */
.navbar a, .btn, .cta-button, .service-more-btn, .service-chat-btn, .google-reviews-btn, .wa-fab, .a11y-toggle, .post-card a { text-decoration: none; }
.post-card a { color: inherit; display: block; }

/* Improve skip link visibility and affordance */
.skip-link{ position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden; }
.skip-link:focus{ left:16px; top:16px; width:auto; height:auto; padding:10px 14px; background:#111827; color:#fff; border-radius:6px; text-decoration: underline; box-shadow:0 6px 14px rgba(0,0,0,.2); z-index:2147483002; }

/* Consent banner links: ensure high contrast on dark background (WCAG 1.4.3) */
.consent-banner a{ color:#fff; text-decoration: underline; font-weight:600; }

/* Hero background image override */
  .hero{
  --hero-bg: image-set(url('images/hero-bg.webp') type('image/webp') 1x, url('images/hero-bg.jpg') type('image/jpeg') 1x);
  background-image: var(--hero-bg);
  background-size: cover;
  background-position: center 30%;
  background-repeat: no-repeat;
  position: relative; /* enable overlay */
  color: #fff; /* ensure text readable over background */
}
/* Overlay to improve text contrast on top of the hero image */
.hero::before{
  content: '';
  position: absolute; inset: 0;
  /* combined overlay: subtle radial vignette + vertical brand gradient */
  background:
    radial-gradient(ellipse at 30% 20%, rgba(0,0,0,0.22), rgba(0,0,0,0) 60%),
    linear-gradient(to bottom, rgba(10,88,202,0.60), rgba(10,88,202,0.32) 30%, rgba(0,0,0,0.82) 100%);
  pointer-events: none;
  z-index: 1;
}
/* Keep hero content above overlay */
.hero > *{ position: relative; z-index: 2; }
/* Responsive composition: height and focal adjustment */
@media (min-width: 768px){
  .hero{ min-height: 76vh; }
}
@media (max-width: 767px){
  .hero{ min-height: 64vh; background-position: center 30%; }
  /* Slight blur of the background image under overlay for smaller screens */
  .hero::after{
    content: '';
    position: absolute; inset: 0;
    background-image: var(--hero-bg);
    background-size: cover;
    background-position: inherit;
    background-repeat: no-repeat;
    filter: blur(2px);
    transform: scale(1.02); /* hide blur edges */
    opacity: .95;
    z-index: 0;
    pointer-events: none;
  }
  .hero::before{
    /* stronger brand overlay on mobile for smaller text sizes */
    background: linear-gradient(to bottom, rgba(10,88,202,0.85), rgba(10,88,202,0.60) 30%, rgba(0,0,0,0.90) 100%);
  }
}
/* Strengthen legibility for hero title and description */
.hero .hero-title{ color:#fff; text-shadow: 0 1px 2px rgba(0,0,0,0.6), 0 2px 8px rgba(0,0,0,0.65); }
.hero .hero-description{ color:#fff; text-shadow: 0 1px 3px rgba(0,0,0,0.55), 0 2px 6px rgba(0,0,0,0.5); }
/* Add subtle background chips behind hero text for definition */
.hero .hero-title, .hero .hero-description{
  background: rgba(0,0,0,0.18);
  padding: 0 .35em;
  border-radius: .35em;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
/* Make CTAs pop a bit more over imagery */
.hero .cta-button{ box-shadow: 0 10px 24px rgba(0,0,0,0.22); }
.hero .cta-button:focus-visible{ outline: 3px solid rgba(255,255,255,0.5); outline-offset: 2px; }
/* Hero primary CTA (Agendar cita / Request appointment) -> turquoise gradient */
.hero .cta-button.cta-primary:not(.cta-whatsapp){
  background: linear-gradient(45deg, #2dd4bf, #14b8a6) !important;
  color:#fff !important;
  border:none !important;
  border-color:transparent !important;
  border-radius:8px !important;
  text-decoration:none !important;
}
.hero .cta-button.cta-primary:not(.cta-whatsapp):hover,
.hero .cta-button.cta-primary:not(.cta-whatsapp):focus-visible{
  background: linear-gradient(45deg, #14b8a6, #0d9488) !important;
  box-shadow: 0 10px 22px rgba(0,0,0,.18);
  outline:none;
}
.hero .cta-button.cta-primary:not(.cta-whatsapp):active{ transform: translateY(-1px); }
/* Dark theme override to keep turquoise in hero as well */
html.a11y-dark .hero .cta-button.cta-primary:not(.cta-whatsapp){
  background: linear-gradient(45deg, #2dd4bf, #14b8a6) !important;
}
html.a11y-dark .hero .cta-button.cta-primary:not(.cta-whatsapp):hover,
html.a11y-dark .hero .cta-button.cta-primary:not(.cta-whatsapp):focus-visible{
  background: linear-gradient(45deg, #14b8a6, #0d9488) !important;
}

/* Center hero content: logo, headings and buttons */
.hero .hero-container{
  display:flex;
  flex-direction:column;
  align-items:center; /* horizontal centering of all children */
  text-align:center;  /* center headings, paragraph and inline buttons */
  gap:10px;
}
/* Keep CTAs nicely spaced when centered */
.hero .cta-button{ margin-top:6px; }
/* Ensure the Google reviews button centers within the hero */
.hero .google-reviews-btn{ margin-left:0; margin-top:8px; }

/* Fine-tune mobile/tablet spacing for a professional look */
@media (max-width: 767px){
  .hero .hero-container{ padding: 48px 16px 36px; gap:12px; }
  .hero .hero-title{ margin: 6px 0 4px; line-height: 1.15; }
  .hero .hero-description{ margin: 0 auto 4px; max-width: 52ch; }
  .hero .cta-button{ margin: 6px auto 0; }
  .hero .google-reviews-btn{ margin: 10px auto 0; }
}
@media (min-width: 768px) and (max-width: 1023px){
  .hero .hero-container{ padding: 64px 24px 44px; gap:14px; align-items:center; text-align:center; }
  .hero .hero-title{ margin: 8px 0 6px; }
  .hero .hero-description{ margin: 0 auto 6px; max-width: 60ch; }
  .hero .cta-button{ margin: 8px auto 0; display: inline-flex; justify-content: center; }
  .hero .google-reviews-btn{ margin: 10px auto 0; display: inline-flex; justify-content: center; }
}
@media (min-width: 1024px){
  .hero .hero-container{ padding: 72px 24px 56px; gap:16px; }
  .hero .hero-description{ max-width: 64ch; margin-inline: auto; }
}

/* Services buttons: center text in Tablet and Mobile */
@media (max-width: 1023px){
  .services .service-card .service-more-btn,
  .services .service-card .service-chat-btn{
    justify-content: center !important;
    text-align: center !important;
  }
  /* Make WhatsApp button full width for consistent centering */
  .services .service-card .service-chat-btn{ width: 100% !important; }
}

/* Footer background image override (mirror hero approach) */
  .footer{
  --footer-bg: image-set(url('images/footer.webp') type('image/webp') 1x, url('images/footer.jpg') type('image/jpeg') 1x);
  background-image: var(--footer-bg);
  background-size: cover;
  background-position: center 50%;
  background-repeat: no-repeat;
  position: relative;
  color: #fff;
}
.footer::before{
  content: '';
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse at 30% 20%, rgba(0,0,0,0.28), rgba(0,0,0,0) 60%),
    linear-gradient(to bottom, rgba(10,88,202,0.60), rgba(10,88,202,0.32) 30%, rgba(0,0,0,0.82) 100%);
  pointer-events: none;
  z-index: 1;
}
.footer > *{ position: relative; z-index: 2; }
/* Footer link contrast over imagery */
.footer a{ color:#fff; }
.footer a:hover,.footer a:focus{ color:#e6f0ff; }
/* Footer typography definition for better readability over image */
.footer h3, .footer h4, .footer p, .footer a{ text-shadow: 0 1px 3px rgba(0,0,0,0.7); }

@media (max-width: 767px){
  .footer{ background-position: center 45%; }
  .footer::after{
    content: '';
    position: absolute; inset: 0;
    background-image: var(--footer-bg);
    background-size: cover;
    background-position: inherit;
    background-repeat: no-repeat;
    filter: blur(2px);
    transform: scale(1.02);
    opacity: .95;
    z-index: 0;
    pointer-events: none;
  }
  .footer::before{
    background: linear-gradient(to bottom, rgba(10,88,202,0.85), rgba(10,88,202,0.60) 30%, rgba(0,0,0,0.90) 100%);
  }
}

/* Services: round corners of service icon images (ES/EN) */
.service-card .service-icon-img { border-radius: 12px; }
/* Make service card a robust flex column (if not already) */
.service-card{ display:flex; flex-direction:column; }

/* Add subtle transparency to service cards (gray tone) */
.service-card{ background-color: rgba(55,65,81,0.12) !important; backdrop-filter: saturate(110%) blur(1.5px); transition: background-color .18s ease, box-shadow .18s ease, transform .18s ease !important; }
.service-card:hover,
.service-card:focus-within{ background-color: rgba(10,88,202,0.52) !important; box-shadow: 0 28px 64px rgba(0,0,0,0.24) !important; }
/* Dark theme counterpart */
html.a11y-dark .service-card{ background-color: rgba(16,24,39,0.92) !important; }
html.a11y-dark .service-card:hover,
html.a11y-dark .service-card:focus-within{ background-color: rgba(10,88,202,0.68) !important; box-shadow: 0 32px 72px rgba(0,0,0,0.40) !important; }

/* Remove top color line from service cards */
.service-card::before {
  content: none !important;
  display: none !important;
  height: 0 !important;
  background: none !important;
}

/* Mobile fix: ensure Services cards are visible even if JS animations don't run */
@media (max-width: 768px){
  .services-grid,
  .services-grid .service-card{
    opacity: 1 !important;
    transform: none !important;
  }
}

/* Remove underline specifically in Contact section links */
.contact a,
.contact .contact-item a,
.contact .contact-info a,
.contact .contact-form a{
  text-decoration: none !important;
  text-underline-offset: 0;
}
/* Contact links: hover/focus visual affordance without underline */
.contact a:hover,
.contact a:focus-visible,
.contact .contact-item a:hover,
.contact .contact-item a:focus-visible,
.contact .contact-info a:hover,
.contact .contact-info a:focus-visible,
.contact .contact-form a:hover,
.contact .contact-form a:focus-visible{
  color:var(--brand-primary);
  background: var(--brand-hover-bg);
  border-radius:3px;
  outline:none;
  transition: color .15s ease, background-color .15s ease;
}
/* Dark theme variant for contact links */
html.a11y-dark .contact a:hover,
html.a11y-dark .contact a:focus-visible,
html.a11y-dark .contact .contact-item a:hover,
html.a11y-dark .contact .contact-item a:focus-visible,
html.a11y-dark .contact .contact-info a:hover,
html.a11y-dark .contact .contact-info a:focus-visible,
html.a11y-dark .contact .contact-form a:hover,
html.a11y-dark .contact .contact-form a:focus-visible{
  color:var(--brand-link-color-dark);
  background: var(--brand-hover-bg-dark);
}

/* Remove underline in blog article text links */
.post .post-body a,
.post .article-content a{
  text-decoration: none !important;
  text-underline-offset: 0;
}

/* Also remove underline from general text inside blog articles */
.post h1, .post h2, .post h3, .post h4, .post h5, .post h6,
.post p, .post li, .post blockquote, .post figcaption, .post .post-meta{
  text-decoration: none !important;
  text-underline-offset: 0;
}

/* Blog article links: hover/focus visual affordance without underline */
.post .post-body a:hover,
.post .post-body a:focus-visible,
.post .article-content a:hover,
.post .article-content a:focus-visible{
  color:var(--brand-primary);
  background: var(--brand-hover-bg);
  border-radius:3px;
  outline: none;
  transition: color .15s ease, background-color .15s ease;
}
/* Dark theme variant */
html.a11y-dark .post .post-body a:hover,
html.a11y-dark .post .post-body a:focus-visible,
html.a11y-dark .post .article-content a:hover,
html.a11y-dark .post .article-content a:focus-visible{
  color:var(--brand-link-color-dark);
  background: var(--brand-hover-bg-dark);
}

/* Blog posts: hero image global size and rounding (ES/EN) */
.post > picture img{ width:70% !important; margin:10px auto 0; border-radius:12px; display:block; box-shadow:0 10px 24px rgba(0,0,0,.08); transition: box-shadow .2s ease, transform .2s ease; }
/* Subtle lift on hover/focus for article hero images */
.post > picture img:hover,
.post > picture img:focus-visible{ box-shadow:0 16px 32px rgba(0,0,0,0.12); transform: translateY(-2px) scale(1.01); }

/* Contact: mobile layout - ensure form appears below the map and adjust fields */
@media (max-width: 767px){
  /* Force single-column layout and explicit order */
  .contact .contact-content{
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-template-areas:
      "info"
      "form" !important;
    gap: 16px !important;
  }
  .contact .contact-info{ grid-area: info !important; }
  .contact .contact-form{ grid-area: form !important; }

  /* Make sure map has enough height in mobile so iframe=100% is visible */
  .contact-info .map-embed{ min-height: 280px; border-radius: 12px; overflow: hidden; }
  .contact-info .map-embed iframe{ width: 100%; height: 100%; }

  /* Stack date/time and compact paddings */
  .contact .form-row{ display: grid; grid-template-columns: 1fr; gap: 12px; }
  .contact .contact-form{ padding: 16px; }

  /* Avoid overlap with floating WhatsApp button at the end of the section */
  .contact .container{ padding-bottom: 80px; }
}

/* Mobile view: fit contact map+form within viewport without page scroll */
@media (max-width: 767px){
  /* Compact section spacing */
  .contact{ padding-top: 48px; padding-bottom: 56px; }
  .contact .section-title{ margin-bottom: 10px; }

  /* Use dynamic viewport and reserve space for fixed navbar offset and title */
  .contact .contact-content{
    gap: 10px !important;
    grid-template-rows: minmax(140px, 26dvh) minmax(0, 1fr) !important;
    max-height: calc(100dvh - var(--scroll-offset) - 64px);
  }

  /* Map visible height on mobile (avoid collapsing parents) */
  .contact .contact-info .map-embed{ height: auto !important; min-height: clamp(180px, 26dvh, 320px) !important; }

  /* Form: compact and allow internal scroll only if absolutely necessary */
  .contact .contact-form{
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    max-height: 100%;
    overflow: auto;
  }
  .contact .form-intro{ margin: 6px 0 8px; }
  .contact .form-intro p{ font-size: .95rem; }

  /* Tighter vertical rhythm */
  .contact .form-group{ margin-bottom: 10px; }
  /* Place date/time side-by-side to save vertical space on small screens */
  .contact .form-row{ display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .contact .form-group textarea{ min-height: 84px; }

  /* Slightly smaller captcha to save space */
  .contact .g-recaptcha{ transform: scale(0.92); transform-origin: 0 0; height: 66px; width: 100% !important; display: inline-block; }
  .contact .form-group{ overflow-x: hidden; }

  /* Give a bit of room for the floating WhatsApp button */
  .contact .container{ padding-bottom: 56px; }
}

/* Ultra-small viewport heights: further compact */
@media (max-width: 767px) and (max-height: 640px){
  /* Ensure the map still has visible height on very short screens */
  .contact .contact-info .map-embed{ min-height: clamp(160px, 24dvh, 320px); }
  .contact .form-intro p{ display:none; }
  .contact .g-recaptcha{ transform: scale(0.85); height: 60px; }
  .contact .form-group textarea{ min-height: 72px; }
}

/* Ensure no horizontal scroll and keep navbar hamburger visible on small mobiles */
@media (max-width: 767px){
  html, body{ overflow-x: hidden; }
  .nav-container{ gap: 6px; }
  .nav-logo .logo-img{ width:96px; height:24px; }
  .lang-switch{ gap:4px; }
  .lang-btn{ padding:4px 8px; font-size:.85rem; text-decoration: none !important; }
  .nav-toggle{ display:flex; flex:0 0 auto; }
  .lang-switch, .nav-logo{ flex:0 0 auto; }
}
/* Expand mobile nav behavior up to tablet widths */
@media (max-width: 1024px){
  .nav-toggle{ display:flex !important; flex:0 0 auto; }
  /* Mirror mobile nav menu behavior for tablets */
  .nav-menu{
    position: fixed;
    left: -100%;
    top: 60px;
    right: auto;
    flex-direction: column;
    background-color: rgba(255,255,255,0.95);
    backdrop-filter: blur(10px);
    width: 100%;
    text-align: center;
    transition: left .3s ease;
    box-shadow: 0 10px 27px rgba(0,0,0,0.05);
    padding: 2rem 0;
    gap: 1rem;
    z-index: 1000;
  }
  .nav-menu.active{ left: 0; }
  /* When the top info bar is present and sticky, push the menu below both bars */
  .elementor-section.elementor-top-section[data-id="470b3b3d"] ~ .navbar .nav-menu{ top: 96px !important; }
}
@media (min-width:768px) and (max-width:1024px){
  .elementor-section.elementor-top-section[data-id="470b3b3d"] ~ .navbar .nav-menu{ top: 104px !important; }
}
@media (max-width: 359px){
  .nav-logo .logo-img{ width:88px; height:22px; }
}

/* Safe-area aware positioning for the WhatsApp FAB on mobile */
@media (max-width: 767px){
  .wa-widget{ right: max(14px, env(safe-area-inset-right, 0px)); bottom: max(14px, env(safe-area-inset-bottom, 0px)); }
}

/* Ensure map appears above and form below for <=768px as well */
@media (max-width: 768px){
  /* Explicit grid areas order at the section level */
  .contact .contact-content{
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-template-areas:
      "info"
      "form" !important;
    grid-auto-flow: row !important;
  }
  .contact .contact-info{ grid-area: info !important; }
  .contact .contact-form{ grid-area: form !important; }

  /* Force explicit row placement to avoid any inversion */
  .contact .contact-content > .contact-info{ grid-row: 1 !important; grid-column: 1 !important; }
  .contact .contact-content > .contact-form{ grid-row: 2 !important; grid-column: 1 !important; }

  /* Fallback for Android/WebView quirks: switch to flex column ordering */
  .contact .contact-content{ display:flex !important; flex-direction:column !important; gap:10px !important; }
  .contact .contact-content > .contact-info{ order:0 !important; }
  .contact .contact-content > .contact-form{ order:1 !important; }

  /* Ensure container doesn't clip the form and force form visibility */
  .contact .contact-content{ max-height: none !important; overflow: visible !important; }
  .contact .contact-form{ display: block !important; visibility: visible !important; opacity: 1 !important; }

  /* Keep default order of items inside contact-info to avoid unexpected layout issues */
  .contact .contact-info{ display:block; }

  /* Navbar compact at <=768px */
  html, body{ overflow-x:hidden; }
  .nav-container{ gap:6px; }
  .nav-logo .logo-img{ width:96px; height:24px; }
  .lang-switch{ gap:4px; }
  .lang-btn{ padding:4px 8px; font-size:.85rem; }
  .nav-toggle{ display:flex; flex:0 0 auto; }
}

/* Language selector: inline SVG flags for ES/EN */
.lang-switch .lang-btn{ display:inline-flex; align-items:center; gap:6px; }
.lang-switch .lang-btn::before{
  content:'';
  width:16px; height:12px;
  border-radius:2px;
  background-position:center;
  background-repeat:no-repeat;
  background-size:cover;
  box-shadow:0 0 0 1px rgba(0,0,0,.06) inset;
  filter:saturate(0.95) contrast(0.98);
}
.lang-switch .lang-btn[data-lang="es"]::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='12' viewBox='0 0 16 12'%3E%3Crect width='16' height='12' fill='%23aa151b'/%3E%3Crect y='3' width='16' height='6' fill='%23f1bf00'/%3E%3C/svg%3E");
}
.lang-switch .lang-btn[data-lang="en"]::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='12' viewBox='0 0 16 12'%3E%3Crect width='16' height='12' fill='%23ffffff'/%3E%3Cg fill='%23b22234'%3E%3Crect y='0' width='16' height='1'/%3E%3Crect y='2' width='16' height='1'/%3E%3Crect y='4' width='16' height='1'/%3E%3Crect y='6' width='16' height='1'/%3E%3Crect y='8' width='16' height='1'/%3E%3Crect y='10' width='16' height='1'/%3E%3C/g%3E%3Crect width='7' height='7' fill='%233c3b6e'/%3E%3C/svg%3E");
}

/* Slightly increase top padding of service hero to avoid any overlap with fixed navbar */
.service-hero{ padding-top: calc(var(--scroll-offset) + 12px) !important; }
/* Desktop: give a bit more headroom under fixed navbar */
@media (min-width: 1024px){
  .service-hero{ padding-top: calc(var(--scroll-offset) + 24px) !important; }
}

/* Blog posts: apply same spacing as service hero */
.post > header{ padding-top: calc(var(--scroll-offset) + 12px) !important; }
@media (min-width: 1024px){
  .post > header{ padding-top: calc(var(--scroll-offset) + 24px) !important; }
}
/* Blog posts: center header CTA and increase spacing from text and image */
.post .blog-cta{ display:flex; justify-content:center; align-items:center; text-align:center; gap:16px; margin-top:20px !important; margin-bottom:24px !important; }
@media (min-width:768px) and (max-width:1023px){ .post .blog-cta{ margin-top:22px !important; margin-bottom:28px !important; } }
@media (min-width:1024px){ .post .blog-cta{ margin-top:24px !important; margin-bottom:32px !important; } }
/* Blog posts: center footer CTAs and increase spacing from surrounding content */
.post > footer{ display:flex; justify-content:center; align-items:center; gap:16px; flex-wrap:wrap; text-align:center; margin-top:24px !important; margin-bottom:48px !important; }
@media (min-width:768px) and (max-width:1023px){ .post > footer{ margin-top:28px !important; margin-bottom:64px !important; } }
@media (min-width:1024px){ .post > footer{ margin-top:24px !important; margin-bottom:40px !important; } }

/* Blog posts: increase line height for article text */
.post .post-body p,
.post .post-body li{
  line-height: 1.75;
}

/* Blog CTAs: unify button background with Home hero button (exclude WhatsApp) */
.post .blog-cta .btn:not([data-cta="service_whatsapp"]),
.post .blog-cta .cta-button:not(.cta-whatsapp),
.post > footer .btn:not([data-cta="service_whatsapp"]),
.post > footer .cta-button:not(.cta-whatsapp){
  background: linear-gradient(45deg, #2dd4bf, #14b8a6) !important;
  color:#fff !important;
  border: none !important;
  border-color: transparent !important;
  border-radius:8px !important;
  text-decoration: none !important;
}
.post .blog-cta .btn:not([data-cta="service_whatsapp"]):hover,
.post .blog-cta .btn:not([data-cta="service_whatsapp"]):focus-visible,
.post .blog-cta .cta-button:not(.cta-whatsapp):hover,
.post .blog-cta .cta-button:not(.cta-whatsapp):focus-visible,
.post > footer .btn:not([data-cta="service_whatsapp"]):hover,
.post > footer .btn:not([data-cta="service_whatsapp"]):focus-visible,
.post > footer .cta-button:not(.cta-whatsapp):hover,
.post > footer .cta-button:not(.cta-whatsapp):focus-visible{
  background: linear-gradient(45deg, #14b8a6, #0d9488) !important;
  box-shadow: 0 10px 22px rgba(0,0,0,.18);
  outline: none;
}
.post .blog-cta .btn:not([data-cta="service_whatsapp"]):active,
.post .blog-cta .cta-button:not(.cta-whatsapp):active,
.post > footer .btn:not([data-cta="service_whatsapp"]):active,
.post > footer .cta-button:not(.cta-whatsapp):active{
  transform: translateY(-1px);
}

/* Service detail pages: WhatsApp CTA color (match Home) */
.service-hero .btn.btn-primary[data-cta="service_whatsapp"],
a.btn.btn-primary[data-cta="service_whatsapp"]{
  background:#25D366 !important;
  border-color:#25D366 !important;
  color:#fff !important;
}
.service-hero .btn.btn-primary[data-cta="service_whatsapp"]:hover,
.service-hero .btn.btn-primary[data-cta="service_whatsapp"]:focus-visible,
a.btn.btn-primary[data-cta="service_whatsapp"]:hover,
a.btn.btn-primary[data-cta="service_whatsapp"]:focus-visible{
  background:#1ebe5d !important;
  border-color:#1ebe5d !important;
}

/* Global CTAs: "Agendar por WhatsApp" and "Solicitar cita" (match Services styles) */
/* WhatsApp scheduling buttons (green, like service-chat-btn) */
a.btn[data-cta="agendar_whatsapp"],
a.btn[data-cta="book_whatsapp"],
a.btn[data-cta="blog_whatsapp"],
a.btn[data-cta="whatsapp"],
button.btn[data-cta="agendar_whatsapp"],
.cta-button.cta-whatsapp,
.btn-agendar-whatsapp,
a.btn[aria-label*="Agendar por WhatsApp" i],
a.btn[title*="Agendar por WhatsApp" i],
a.btn[aria-label*="Schedule via WhatsApp" i],
a.btn[title*="Schedule via WhatsApp" i],
.post .article-content a.btn[href*="wa.me" i],
.post .article-content a.btn[href*="api.whatsapp.com" i]{
  background:#25D366 !important;
  border-color:#25D366 !important;
  color:#fff !important;
  display:inline-flex; align-items:center; gap:8px;
  text-decoration:none !important;
  border-radius:8px;
  transition:transform .2s ease, box-shadow .2s ease, background-color .2s ease;
}
a.btn[data-cta="agendar_whatsapp"]:hover,
a.btn[data-cta="book_whatsapp"]:hover,
a.btn[data-cta="blog_whatsapp"]:hover,
a.btn[data-cta="whatsapp"]:hover,
button.btn[data-cta="agendar_whatsapp"]:hover,
.cta-button.cta-whatsapp:hover,
.btn-agendar-whatsapp:hover,
a.btn[aria-label*="Agendar por WhatsApp" i]:hover,
a.btn[title*="Agendar por WhatsApp" i]:hover,
a.btn[aria-label*="Schedule via WhatsApp" i]:hover,
a.btn[title*="Schedule via WhatsApp" i]:hover,
.post .article-content a.btn[href*="wa.me" i]:hover,
.post .article-content a.btn[href*="api.whatsapp.com" i]:hover,
a.btn[data-cta="agendar_whatsapp"]:focus-visible,
a.btn[data-cta="book_whatsapp"]:focus-visible,
a.btn[data-cta="blog_whatsapp"]:focus-visible,
a.btn[data-cta="whatsapp"]:focus-visible,
button.btn[data-cta="agendar_whatsapp"]:focus-visible,
.cta-button.cta-whatsapp:focus-visible,
.btn-agendar-whatsapp:focus-visible,
a.btn[aria-label*="Agendar por WhatsApp" i]:focus-visible,
a.btn[title*="Agendar por WhatsApp" i]:focus-visible,
a.btn[aria-label*="Schedule via WhatsApp" i]:focus-visible,
a.btn[title*="Schedule via WhatsApp" i]:focus-visible,
.post .article-content a.btn[href*="wa.me" i]:focus-visible,
.post .article-content a.btn[href*="api.whatsapp.com" i]:focus-visible{
  background:#20bf5c !important;
  border-color:#20bf5c !important;
  box-shadow:0 10px 22px rgba(0,0,0,.18);
  outline:none;
}
a.btn[data-cta="agendar_whatsapp"]:active,
a.btn[data-cta="book_whatsapp"]:active,
a.btn[data-cta="blog_whatsapp"]:active,
a.btn[data-cta="whatsapp"]:active,
button.btn[data-cta="agendar_whatsapp"]:active,
.cta-button.cta-whatsapp:active,
.btn-agendar-whatsapp:active,
.post .article-content a.btn[href*="wa.me" i]:active,
.post .article-content a.btn[href*="api.whatsapp.com" i]:active{
  transform:translateY(-1px);
}

/* Appointment request buttons (gradient, like service-more-btn) */
/* Blog and generic CTAs */
a.btn[data-cta="solicitar_cita"],
button.btn[data-cta="solicitar_cita"],
.cta-button[data-cta="solicitar_cita"],
.btn-solicitar-cita,
a.btn[data-cta="request_appointment"],
button.btn[data-cta="request_appointment"],
a.btn[data-cta="book_appointment"],
button.btn[data-cta="book_appointment"],
/* Services detail pages: request/contact button */
a.btn[data-cta="service_contact"],
button.btn[data-cta="service_contact"],
.service-hero .btn.btn-outline,
.section .service-actions .btn.btn-outline,
/* Accessibility via attributes where present */
a.btn[aria-label*="Solicitar cita" i],
a.btn[title*="Solicitar cita" i],
a.btn[aria-label*="Request appointment" i],
a.btn[title*="Request appointment" i],
a.btn[aria-label*="Book appointment" i],
a.btn[title*="Book appointment" i]{
  background:linear-gradient(45deg, #2dd4bf, #14b8a6) !important;
  color:#fff !important;
  border:none !important;
  border-color:transparent !important;
  border-radius:8px !important;
  text-decoration:none !important;
  display:inline-flex; align-items:center; gap:8px;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}
/* Hover/Focus */
a.btn[data-cta="solicitar_cita"]:hover,
button.btn[data-cta="solicitar_cita"]:hover,
.cta-button[data-cta="solicitar_cita"]:hover,
.btn-solicitar-cita:hover,
a.btn[data-cta="request_appointment"]:hover,
button.btn[data-cta="request_appointment"]:hover,
a.btn[data-cta="book_appointment"]:hover,
button.btn[data-cta="book_appointment"]:hover,
a.btn[data-cta="service_contact"]:hover,
button.btn[data-cta="service_contact"]:hover,
.service-hero .btn.btn-outline:hover,
.section .service-actions .btn.btn-outline:hover,
a.btn[aria-label*="Solicitar cita" i]:hover,
a.btn[title*="Solicitar cita" i]:hover,
a.btn[aria-label*="Request appointment" i]:hover,
a.btn[title*="Request appointment" i]:hover,
a.btn[aria-label*="Book appointment" i]:hover,
a.btn[title*="Book appointment" i]:hover,
a.btn[data-cta="solicitar_cita"]:focus-visible,
button.btn[data-cta="solicitar_cita"]:focus-visible,
.cta-button[data-cta="solicitar_cita"]:focus-visible,
.btn-solicitar-cita:focus-visible,
a.btn[data-cta="request_appointment"]:focus-visible,
button.btn[data-cta="request_appointment"]:focus-visible,
a.btn[data-cta="book_appointment"]:focus-visible,
button.btn[data-cta="book_appointment"]:focus-visible,
a.btn[data-cta="service_contact"]:focus-visible,
button.btn[data-cta="service_contact"]:focus-visible,
.service-hero .btn.btn-outline:focus-visible,
.section .service-actions .btn.btn-outline:focus-visible,
a.btn[aria-label*="Solicitar cita" i]:focus-visible,
a.btn[title*="Solicitar cita" i]:focus-visible,
a.btn[aria-label*="Request appointment" i]:focus-visible,
a.btn[title*="Request appointment" i]:focus-visible,
a.btn[aria-label*="Book appointment" i]:focus-visible,
a.btn[title*="Book appointment" i]:focus-visible{
  background:linear-gradient(45deg, #14b8a6, #0d9488) !important;
  box-shadow:0 10px 22px rgba(0,0,0,.18);
  outline:none;
}
/* Active */
a.btn[data-cta="solicitar_cita"]:active,
button.btn[data-cta="solicitar_cita"]:active,
.cta-button[data-cta="solicitar_cita"]:active,
.btn-solicitar-cita:active,
a.btn[data-cta="request_appointment"]:active,
button.btn[data-cta="request_appointment"]:active,
a.btn[data-cta="book_appointment"]:active,
button.btn[data-cta="book_appointment"]:active,
a.btn[data-cta="service_contact"]:active,
button.btn[data-cta="service_contact"]:active,
.service-hero .btn.btn-outline:active,
.section .service-actions .btn.btn-outline:active{
  transform:translateY(-1px);
}

/* Brand logo carousel - normalize logo image sizes */
.logo-carousel .logo-list .logo-item img {
  height: calc(var(--logo-slot-h) - 8px); /* follow slot height with a small inner padding */
  width: auto;  /* keep aspect ratio */
  object-fit: contain;
  display: block;
  margin: 0 auto; /* center horizontally */
  padding: 4px 8px; /* horizontal padding for spacing */
}

/* Top info bar (above navbar) - themed to site colors */
.elementor-section.elementor-top-section[data-id="470b3b3d"]{
  position: sticky;
  top: 0;
  z-index: 2147482000; /* below floating widgets, above content/navbar */
  background: linear-gradient(180deg, rgba(10,88,202,0.98), rgba(10,88,202,0.92));
  color:#fff;
  border-bottom:1px solid rgba(255,255,255,.25);
  font-size:.95rem;
}
/* Keep the whole top bar in a single line on desktop/tablet */
 .elementor-section.elementor-top-section[data-id="470b3b3d"] .elementor-container{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  flex-wrap: nowrap;
  white-space: nowrap;
}
.elementor-section.elementor-top-section[data-id="470b3b3d"] .elementor-icon-list-items{ display:flex; align-items:center; justify-content:center; gap:0; margin:0; padding:0; list-style:none; }
.elementor-section.elementor-top-section[data-id="470b3b3d"] .elementor-icon-list-item{ margin:0; padding:0; list-style:none; }
/* Topbar separators (desktop/tablet): add a decorative bullet between items */
.elementor-section.elementor-top-section[data-id="470b3b3d"] .topbar-centered-list .elementor-icon-list-item{ display:inline-flex; align-items:center; }
.elementor-section.elementor-top-section[data-id="470b3b3d"] .topbar-centered-list .elementor-icon-list-item + .elementor-icon-list-item::before{
  content:"\2022"; /* bullet • */
  display:inline-block;
  color:#fff;
  opacity:.85;
  margin:0 28px;
  line-height:1;
}
.elementor-section.elementor-top-section[data-id="470b3b3d"] .elementor-top-column{ flex:0 0 auto; width:auto; }
.elementor-section.elementor-top-section[data-id="470b3b3d"] a{ color:#fff; text-decoration:none; }
.elementor-section.elementor-top-section[data-id="470b3b3d"] a:hover,
.elementor-section.elementor-top-section[data-id="470b3b3d"] a:focus-visible{ text-decoration:underline; text-underline-offset:.15em; outline:none; }
.elementor-section.elementor-top-section[data-id="470b3b3d"] .elementor-icon-list-icon i{ color:#fff; font-size:18px; }
/* Extra spacing between icon and text (e.g., location icon and address) */
.elementor-section.elementor-top-section[data-id="470b3b3d"] .topbar-centered-list .elementor-icon-list-icon{ margin-right: 6px; }
/* Mobile: compact single-line top info bar */
@media (max-width:767px){
  .elementor-section.elementor-top-section[data-id="470b3b3d"]{
    display:block !important;
    padding:6px 8px;
  }
  .elementor-section.elementor-top-section[data-id="470b3b3d"] .elementor-container{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    flex-wrap:nowrap;
    white-space:nowrap;
    overflow:hidden;
  }
  .elementor-section.elementor-top-section[data-id="470b3b3d"] .elementor-top-column{
    flex:0 0 auto;
    width:auto;
  }
  .elementor-section.elementor-top-section[data-id="470b3b3d"] .elementor-icon-list-items{
    display:flex;
    align-items:center;
    gap:8px;
    margin:0;
    padding:0;
  }
  /* Visually hide list texts but keep them accessible to screen readers */
  .elementor-section.elementor-top-section[data-id="470b3b3d"] .elementor-icon-list-text{
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    clip-path: inset(50%);
    white-space:nowrap;
    border:0;
  }
  .elementor-section.elementor-top-section[data-id="470b3b3d"] .elementor-icon-list-icon i{
    font-size:18px;
    line-height:1;
  }
  /* Make phone/email anchors easier to tap while staying compact */
  .elementor-section.elementor-top-section[data-id="470b3b3d"] .elementor-inline-items .elementor-inline-item a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:6px 8px;
    border-radius:6px;
    text-decoration:none;
  }
  /* Hide separators on mobile to keep the compact icons-only look */
  .elementor-section.elementor-top-section[data-id="470b3b3d"] .topbar-centered-list .elementor-icon-list-item + .elementor-icon-list-item::before{
    display:none !important;
    content:none !important;
  }
}
/* Dark/high-contrast theme variant */
html.a11y-dark .elementor-section.elementor-top-section[data-id="470b3b3d"]{
  background:#0b1220;
  border-bottom-color:#334155;
}
html.a11y-dark .elementor-section.elementor-top-section[data-id="470b3b3d"] a{ color:#e6eaf2; }

/* Make navbar sticky; offset when top bar is present */
.navbar{ position: sticky; top: 0; z-index: 2147481900; }
/* Ensure navbar sits below the top info bar */
.elementor-section.elementor-top-section[data-id="470b3b3d"] + .navbar{ top:36px !important; }
@media (min-width:768px){
  .elementor-section.elementor-top-section[data-id="470b3b3d"] + .navbar{ top:44px !important; }
}

/* Mobile navbar: reduce logo further and center the hamburger button */
@media (max-width: 767px){
  /* Reduce logo height and let width auto-adjust to keep proportions */
  .nav-logo .logo-img{
    height: 20px !important;
    width: auto !important;
  }
  /* Ensure navbar has a stable height and center-align contents */
  .nav-container{
    position: relative;
    min-height: 52px; /* matches menu top offset closely */
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  /* Center hamburger button horizontally within the navbar */
  .nav-toggle{
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 1002; /* above logo/lang in flow */
  }
}

/* Desktop (>=1024px): disable sticky behavior for top bar and navbar, and remove desktop-only offsets */
@media (min-width:1024px){
  .elementor-section.elementor-top-section[data-id="470b3b3d"]{
    position: static !important;
    top: auto !important;
    z-index: auto !important;
  }
  .navbar{
    position: static !important;
    top: auto !important;
    z-index: auto !important;
  }
  /* Remove extra top spacing that assumed fixed nav on desktop */
  :root{ --scroll-offset: 0px; }
  .service-hero{ padding-top: 12px !important; }
  .post > header{ padding-top: 12px !important; }
}

/* Home (hero): tablet and mobile tweaks */
/* Hide Google reviews button on <=1023px, reduce logo-title spacing, keep everything centered */
@media (max-width: 1023px){
  .hero .google-reviews-btn{ display:none !important; }
  .hero .hero-container{ align-items:center !important; text-align:center !important; gap:8px !important; }
  .hero .cta-button{ margin-left:auto !important; margin-right:auto !important; }
}
@media (max-width: 767px){
  .hero-logo{ margin-bottom: 4px !important; }
}
@media (min-width:768px) and (max-width:1023px){
  .hero-logo{ margin-bottom: 6px !important; }
}

/* About image sizing on tablet and mobile: 720x1280 box, centered */
@media (max-width: 1023px){
  .about .about-image picture{ display:block; }
  .about .about-image .about-img{
    width: min(720px, 100%);
    aspect-ratio: 9 / 16; /* 720 x 1280 */
    height: auto; /* computed by aspect ratio */
    object-fit: cover;
    display: block;
    margin-left: auto;
    margin-right: auto;
    border-radius: 12px; /* optional: keep rounded like cards */
  }
}

/* Apply the same about image sizing on desktop as well */
.about .about-image picture{ display:block; }
.about .about-image .about-img{
  width: min(720px, 100%);
  aspect-ratio: 9 / 16; /* 720 x 1280 */
  height: auto; /* computed by aspect ratio */
  object-fit: cover;
  display: block;
  margin-left: auto;
  margin-right: auto;
  border-radius: 12px;
}
