/*
 * responsive-fixes.css
 * Parche de responsividad para BYGGERR SRL
 * Agregar DESPUÉS de main.css en el <head>
 * Cubre: Contact, Hero, Gallery, Featured Services, Footer
 */

/* ============================================================
   CONTACT — fixes completos
   ============================================================ */

/* El wrapper ya tiene grid en >=992px; forzamos que funcione
   bien en todos los anchos intermedios */
.contact .contact-wrapper {
  gap: 24px;
}

/* Mapa: altura adaptable en lugar de fija */
.contact .map-container {
  height: clamp(200px, 35vw, 360px);
  border-radius: 15px;
}

.contact .map-container iframe {
  width: 100%;
  height: 100%;
  display: block;
  border: none;
}

/* Panel info: no forzar height 100% en móvil (genera espacios raros) */
.contact .contact-info-panel {
  height: auto;
}

/* Form container: padding más generoso en desktop, más chico en móvil */
.contact .form-container {
  padding: clamp(20px, 4vw, 40px);
}

/* Inputs flotantes — mejor contraste en focus */
.contact .form-container .form-floating .form-control:focus {
  outline: none;
}

/* Botón submit — ancho completo en móvil ya estaba, pero asegurar texto centrado */
.contact .form-container .btn-submit {
  width: 100%;
  text-align: center;
  justify-content: center;
}

/* Social icons: wrap en pantallas muy pequeñas */
.contact .social-links-panel .social-icons {
  flex-wrap: wrap;
  gap: 10px;
}

/* ── Tablet 768–991px ── */
@media (min-width: 768px) and (max-width: 991px) {
  .contact .contact-wrapper {
    grid-template-columns: 1fr;
  }

  .contact .contact-info-panel {
    padding: 30px;
  }

  /* Cards de info en 2 columnas dentro del panel */
  .contact .contact-info-cards {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }

  .contact .social-links-panel {
    margin-top: 24px;
  }

  .contact .map-container {
    height: 260px;
  }
}

/* ── Móvil <768px ── */
@media (max-width: 767px) {
  .contact .contact-wrapper {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .contact .contact-info-panel {
    padding: 24px 20px;
    border-radius: 16px;
  }

  .contact .contact-info-header h3 {
    font-size: 22px;
  }

  .contact .contact-info-cards {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .contact .info-card {
    padding: 16px;
    gap: 12px;
  }

  .contact .info-card .icon-container {
    width: 38px;
    height: 38px;
    flex-shrink: 0;
  }

  .contact .info-card .icon-container i {
    font-size: 16px;
  }

  .contact .info-card .card-content h4 {
    font-size: 14px;
    margin-bottom: 3px;
  }

  .contact .info-card .card-content p {
    font-size: 13px;
  }

  .contact .social-links-panel {
    margin-top: 20px;
  }

  .contact .social-links-panel h5 {
    font-size: 15px;
    margin-bottom: 12px;
  }

  .contact .social-links-panel .social-icons a {
    width: 38px;
    height: 38px;
    font-size: 16px;
  }

  .contact .map-container {
    height: 220px;
    border-radius: 12px;
  }

  .contact .form-container {
    padding: 22px 18px;
    border-radius: 16px;
  }

  .contact .form-container h3 {
    font-size: 20px;
  }

  .contact .form-container p {
    font-size: 14px;
    margin-bottom: 18px;
  }

  .contact .form-container .form-floating {
    margin-bottom: 14px;
  }

  .contact .form-container .form-floating .form-control {
    border-radius: 10px;
    font-size: 15px;
  }

  .contact .form-container .btn-submit {
    padding: 13px 20px;
    font-size: 15px;
    border-radius: 10px;
  }
}

/* ── Móvil pequeño <480px ── */
@media (max-width: 480px) {
  .contact .contact-info-panel {
    padding: 20px 16px;
  }

  .contact .form-container {
    padding: 18px 14px;
  }

  .contact .contact-info-cards {
    gap: 10px;
  }

  .contact .info-card {
    padding: 14px;
  }
}


/* ============================================================
   HERO — fixes tablet e intermedio
   ============================================================ */

/* Info badges: en tablet se rompen, usar column desde 900px */
@media (max-width: 900px) {
  .hero .hero-content .content-box .info-badges {
    flex-direction: column;
    gap: 14px;
  }
}

/* CTA group: botones full-width antes de 576px */
@media (max-width: 575px) {
  .hero .hero-content .content-box .cta-group {
    flex-direction: column;
  }

  .hero .hero-content .content-box .cta-group .btn {
    width: 100%;
    text-align: center;
    justify-content: center;
  }

  .hero .hero-content .content-box h1 {
    font-size: 1.75rem;
  }

  .hero .hero-wrapper {
    padding: 90px 0 40px;
  }
}

/* Badge accent: tamaño en móvil */
@media (max-width: 576px) {
  .hero .hero-content .content-box .badge-accent {
    font-size: 0.8rem;
    padding: 0.4rem 0.85rem;
    margin-bottom: 1rem;
  }
}


/* ============================================================
   FEATURED SERVICES — tablet 768-991px
   ============================================================ */

/* En tablet, las 2 columnas quedan muy apretadas.
   Forzar 1 columna entre 576 y 767 */
@media (max-width: 767px) {
  .featured-services .row.gy-4 > [class*="col-lg-6"] {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .featured-services .service-card {
    padding: 28px 22px;
  }
}

/* Entre 768 y 991: 2 cols con padding reducido */
@media (min-width: 768px) and (max-width: 991px) {
  .featured-services .service-card {
    padding: 28px 20px;
  }

  .featured-services .service-icon {
    width: 64px;
    height: 64px;
    margin-bottom: 18px;
  }

  .featured-services .service-icon i {
    font-size: 28px;
  }

  .featured-services .service-content h3 {
    font-size: 18px;
  }
}


/* ============================================================
   GALLERY / PROYECTOS — mejora móvil
   ============================================================ */

/* Cards: altura mínima consistente en móvil */
@media (max-width: 767px) {
  .gallery .gallery-item {
    margin-bottom: 20px;
  }

  .gallery .gallery-img img {
    aspect-ratio: 16/10;
  }

  /* Overlay siempre visible en móvil (no hay hover en touch) */
  .gallery .gallery-overlay {
    opacity: 1;
    visibility: visible;
    background: linear-gradient(to top, rgba(0,0,0,0.82) 0%, rgba(0,0,0,0.3) 65%, transparent 100%);
  }

  .gallery .gallery-info {
    opacity: 1;
    transform: translateY(0);
  }

  .gallery .gallery-info h4 {
    font-size: 14px;
    margin-bottom: 4px;
  }

  .gallery .gallery-info p {
    display: none; /* Muy poco espacio en móvil */
  }

  /* Filtros: más compactos */
  .gallery .isotope-filters {
    gap: 8px;
  }

  .gallery .isotope-filters li {
    padding: 6px 12px;
    font-size: 13px;
  }
}

/* 1 columna en móvil para la galería */
@media (max-width: 575px) {
  .gallery .isotope-container > [class*="col-lg-4"],
  .gallery .isotope-container > [class*="col-md-6"] {
    flex: 0 0 100%;
    max-width: 100%;
  }
}


/* ============================================================
   HOME ABOUT — tablet fix
   ============================================================ */

@media (min-width: 768px) and (max-width: 991px) {
  .home-about .about-image .experience-badge {
    right: 20px;
    bottom: -20px;
  }

  .home-about .about-content {
    margin-top: 50px;
  }
}

@media (max-width: 767px) {
  .home-about .about-image {
    margin-bottom: 40px;
  }

  .home-about .about-content h2 {
    font-size: 24px;
  }

  .home-about .about-content .lead {
    font-size: 16px;
  }

  /* Feature items: 1 columna */
  .home-about .row.g-4 > [class*="col-md-6"] {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .home-about .feature-item {
    padding: 18px;
  }

  .home-about .cta-wrapper {
    flex-direction: column;
  }

  .home-about .cta-wrapper .btn {
    width: 100%;
    text-align: center;
    display: block;
  }
}


/* ============================================================
   CALL TO ACTION — móvil
   ============================================================ */

@media (max-width: 767px) {
  .call-to-action {
    padding: 50px 0;
  }

  .call-to-action h2 {
    font-size: 1.7rem;
  }

  .call-to-action p {
    font-size: 1rem;
  }

  .call-to-action .cta-buttons {
    margin-bottom: 0;
  }

  .call-to-action .cta-buttons .btn-primary {
    display: block;
    width: 100%;
    max-width: 260px;
    margin: 0 auto;
    text-align: center;
  }
}


/* ============================================================
   SECTION TITLE — escala tipográfica en móvil
   ============================================================ */

@media (max-width: 575px) {
  .section-title {
    padding-bottom: 36px;
  }

  .section-title h2 {
    font-size: 24px;
  }

  .section-title p {
    font-size: 0.95rem;
  }
}


/* ============================================================
   FOOTER — tablet y móvil
   ============================================================ */

@media (max-width: 767px) {
  .footer .footer-top {
    padding-top: 36px;
  }

  /* Columnas del footer: 2 cols en tablet, 1 en móvil pequeño */
  .footer .footer-links {
    margin-bottom: 20px;
  }

  .footer .social-links {
    flex-wrap: wrap;
    gap: 10px;
  }

  .footer .social-links a {
    margin-right: 0;
  }
}

@media (max-width: 575px) {
  .footer .footer-about .logo span {
    font-size: 22px;
  }

  .footer .copyright {
    padding: 18px 0;
  }

  .footer .copyright p {
    font-size: 12px;
  }
}


/* ============================================================
   HEADER — fix padding en pantallas muy pequeñas
   ============================================================ */

@media (max-width: 380px) {
  .header .logo h1 {
    font-size: 18px;
  }

  .header .btn-getstarted {
    padding: 6px 12px;
    font-size: 13px;
    margin: 0 6px 0 0;
  }
}


/* ============================================================
   PAGE TITLE (breadcrumb pages) — contact, etc.
   ============================================================ */

@media (max-width: 575px) {
  .page-title {
    padding: 90px 0 14px;
  }

  .page-title .title-wrapper h1 {
    font-size: 1.6rem;
  }

  .page-title .title-wrapper p {
    font-size: 0.92rem;
  }
}


/* ============================================================
   GENERAL — overflow safety net
   ============================================================ */

/* Evita scroll horizontal en todo el sitio */
html, body {
  overflow-x: hidden;
}

/* Imágenes nunca desbordan */
img {
  max-width: 100%;
  height: auto;
}

/* iframes (mapa) no desbordan */
iframe {
  max-width: 100%;
}