/* Responsive refinements. Desktop styles remain in style.css. */
img { max-width: 100%; height: auto; }
.mobile-nav-toggle { border: 0; background: transparent; }
a:focus-visible, button:focus-visible { outline: 3px solid #b38b32; outline-offset: 4px; }
.whatsapp-float { display: flex; align-items: center; justify-content: center; }
.whatsapp-float i { margin: 0 !important; }
@media (max-width: 991px) {
  body { line-height: 1.7; }
  section { padding: 44px 0; text-align: left; }
  section > .container { padding-right: 22px; padding-left: 22px; }
  #header, #header.header-transparent { height: 68px; background: rgba(42,44,57,.97); }
  #header .logo h1 { display: flex; align-items: center; gap: 6px; }
  #header .logo { min-width: 0; }
  #header .logo img { max-height: 32px; width: auto; }
  .mobile-nav-toggle { width: 44px; height: 44px; flex-shrink: 0; }
  .navbar-mobile ul { top: 76px; bottom: auto; max-height: calc(100dvh - 100px); padding: 12px; }
  .navbar-mobile a { min-height: 48px; margin: 4px 0; white-space: normal; }
  .navbar-mobile a:hover, .navbar-mobile .active { color: #2a2c39; }
  body.menu-open { overflow: hidden; }
  body.menu-open .whatsapp-float { visibility: hidden; }
  #hero { min-height: 0; padding: 100px 0 0; background-position: center; }
  #hero .carousel-container { height: auto; min-height: 340px; padding: 32px 0 48px; }
  #hero h2 { font-size: 15px; letter-spacing: 2px; line-height: 1.5; margin-bottom: 24px; }
  #hero h1 { font-size: clamp(25px, 6.5vw, 40px); line-height: 1.5; font-weight: 700; }
  #hero mark { box-decoration-break: clone; -webkit-box-decoration-break: clone; padding: 3px 8px; }
  #hero .btn-get-started { margin-top: 24px; min-height: 48px; display: inline-flex; align-items: center; background: #e8c772; color: #252733; font-weight: 700; }
  .hero-waves { height: 48px; display: block; }
  .section-title { padding-bottom: 24px; }
  .section-title h2 { line-height: 1.6; color: #777; margin-bottom: 10px; font-size: 12px; }
  .section-title h2::after { width: 40px; margin-right: 0; }
  .section-title p { font-size: clamp(23px, 5.8vw, 30px); line-height: 1.35; text-transform: none; overflow-wrap: anywhere; }
  .fotodeperfil { padding: 0; text-align: center; }
  .fotodeperfil img { width: 72%; max-width: 300px; }
  .features .nav-tabs { row-gap: 12px; }
  .features .nav-item { width: 50%; }
  .features .nav-link { height: 100%; min-height: 110px; flex-direction: column; gap: 10px; padding: 14px 8px; border-radius: 10px; text-align: center; }
  .features .nav-link i { font-size: 26px; padding: 0; }
  .features .nav-link h4 { display: block !important; font-size: 13px; line-height: 1.4; }
  .features .nav-link.active { color: #2a2c39; }
  .features .tab-pane h3 { font-size: 22px; line-height: 1.45; }
  .features .tab-pane img { max-height: 230px; width: auto; object-fit: contain; }
  .cta { padding: 36px 0; }
  .cta .cta-btn { color: #2a2c39; min-width: 180px; min-height: 48px; }
  .services .row { row-gap: 16px; }
  .services .row > div { margin-top: 0 !important; }
  .services .icon-box { padding: 24px; }
  .services .icon { position: static; margin-bottom: 12px; }
  .services .icon i { font-size: 32px; }
  .services .title, .services .description { margin-left: 0; }
  .services .description { font-size: 15px; line-height: 1.7; }
  .news h7 { display: block; font-size: 23px; line-height: 1.4; margin-bottom: 16px; }
  .news h8 { line-height: 1.5; margin-top: 8px; }
  .news img { object-fit: contain; }
  .news center img { max-width: 260px; }
  .testimonials .testimonial-item { padding: 4px 4px 12px; }
  .location .container-fluid { padding: 0; }
  .location iframe { height: 300px; border-radius: 12px; }
  .contact .row.mt-5 { margin-top: 0 !important; }
  .contact .info p { overflow-wrap: anywhere; }
  .contact .php-email-form input, .contact .php-email-form textarea { font-size: 16px; min-height: 48px; }
  .contact .php-email-form button[type=submit] { min-height: 48px; width: 100%; }
  #footer { padding-bottom: 100px; }
  .whatsapp-float { width: 52px !important; height: 52px !important; right: 16px !important; bottom: max(16px, env(safe-area-inset-bottom)) !important; font-size: 28px !important; z-index: 996 !important; }
  [data-aos] { opacity: 1 !important; transform: none !important; transition: none !important; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; scroll-behavior: auto !important; transition: none !important; }
  [data-aos] { opacity: 1 !important; transform: none !important; }
}
