/* Responsive overrides - loaded after main.css */
@media (max-width: 991.98px) {
  .navbar-custom {
    background-color: rgba(0,0,0,.9);
    padding: .45rem 1rem;
  }
  .navbar-custom .navbar-brand img { height: 52px; width: auto; }
  .navbar-custom .navbar-collapse {
    background: rgba(0,0,0,.96);
    margin: .45rem -1rem -.45rem;
    padding: .75rem 1rem 1rem;
    max-height: calc(100vh - 70px);
    overflow-y: auto;
  }
  .navbar-custom .navbar-nav {
    align-items: stretch;
    gap: .15rem;
    width: 100%;
  }
  .navbar-custom .nav-item .nav-link { padding: .6rem .25rem; text-align: center; }
  .navbar .social-icons, .navbar .flags { justify-content: center; }

  header.header {
    min-height: 100svh;
    height: auto !important;
    background-attachment: scroll;
    padding: 90px 18px 40px !important;
  }
  header.header h1 {
    white-space: normal;
    font-size: clamp(2rem, 7vw, 3rem);
  }
  header.header .p-heading.p-large { font-size: 1.05rem; }

  #intro.basic-1 { padding: 90px 0 70px; }
  .products-grid { padding: 0 1rem; }
}

@media (max-width: 767.98px) {
  .reserva-section { padding: 55px 14px; }
  .form-container { padding: 20px 16px; }
  .reserva-form .form-row { flex-direction: column; gap: 10px; }
  .reserva-form .form-row > input { width: 100%; }
  .country-phone { display: flex; flex-direction: row; gap: 8px; width: 100%; }
  .country-phone select { flex: 0 0 30%; min-width: 92px; width: auto; }
  .country-phone input[type="tel"] { flex: 1 1 auto; min-width: 0; width: auto; }
  .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .products-grid { grid-template-columns: 1fr; }
  #footer .footer-links { flex-direction: column; gap: 8px; }
}

@media (max-width: 420px) {
  .navbar-custom .navbar-brand img { height: 44px; }
  header.header { padding-left: 12px !important; padding-right: 12px !important; }
  header.header h1 { font-size: 1.85rem; }
  .gallery-grid { grid-template-columns: 1fr; }
  .country-phone select { flex-basis: 34%; }
}
