/* Responsive polish — parches globales sobre el CSS legacy.
   Carga después de style.min.css. No reemplaza breakpoints existentes,
   sólo cierra huecos comunes en mobile. */

/* Prevención de scroll horizontal */
html, body { overflow-x: hidden; max-width: 100%; }

/* Imágenes fluidas por defecto */
img, video, iframe { max-width: 100%; height: auto; }

/* Mobile: texto no cortado y legible */
@media (max-width: 640px) {
  body { -webkit-text-size-adjust: 100%; font-size: 16px; }
  h1 { font-size: clamp(1.6rem, 6vw, 2.2rem); line-height: 1.2; }
  h2 { font-size: clamp(1.3rem, 5vw, 1.8rem); line-height: 1.25; }
  h3 { font-size: clamp(1.1rem, 4.2vw, 1.4rem); line-height: 1.3; }
  p, li, a, label, input, textarea, button { font-size: 15px; line-height: 1.55; }

  /* Padding lateral consistente en todas las secciones */
  section, .container, .general, .contenedor, main, header, footer {
    padding-left: max(16px, env(safe-area-inset-left));
    padding-right: max(16px, env(safe-area-inset-right));
    box-sizing: border-box;
  }

  /* Tablas responsivas: scroll en lugar de desbordar */
  table { display: block; overflow-x: auto; max-width: 100%; }

  /* Botones y links: área táctil mínima 44px */
  button, .btn, input[type=submit], input[type=button], a.button, .mp-menu a {
    min-height: 44px;
    padding-top: 10px;
    padding-bottom: 10px;
  }

  /* Inputs full width */
  input[type=text], input[type=email], input[type=tel], input[type=password], textarea, select {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    font-size: 16px !important; /* previene zoom iOS — !important para ganarle a input.css legacy */
  }

  /* Grids de productos / proyectos: 1 columna en teléfono */
  .cat-display, .columna, .producto, .proyecto, .slide, .item {
    float: none !important;
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* Owl Carousel: controles más grandes */
  .owl-prev, .owl-next { min-width: 44px; min-height: 44px; font-size: 20px; }
}

/* Tablet */
@media (min-width: 641px) and (max-width: 1024px) {
  .cat-display, .producto { width: 50% !important; box-sizing: border-box; padding: 0 8px; }
}

/* Accesibilidad: focus visible */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible {
  outline: 2px solid #8b6f47;
  outline-offset: 2px;
}

/* Lazy image placeholders no rotas */
img[src=""], img:not([src]) { visibility: hidden; }

/* Reduce motion respeto */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* ─── Breadcrumbs Madecor ─── */
.mc-breadcrumb {
  background: #fff;
  border-bottom: 1px solid #ececec;
}
.mc-breadcrumb__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 22px 48px 18px;
  font-family: "EB Garamond", Georgia, serif;
  font-size: 13px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #9a9a97;
  line-height: 1.4;
}
.mc-breadcrumb a {
  color: #20201f;
  text-decoration: none;
  position: relative;
  transition: color .2s ease;
}
.mc-breadcrumb a::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -2px;
  height: 1px;
  background: #20201f;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .25s ease;
}
.mc-breadcrumb a:hover { color: #20201f; }
.mc-breadcrumb a:hover::after { transform: scaleX(1); }
.mc-breadcrumb__sep {
  display: inline-block;
  margin: 0 12px;
  color: #cfcfcd;
  font-weight: 300;
}
.mc-breadcrumb__current {
  color: #626261;
  font-style: italic;
  text-transform: none;
  letter-spacing: 0.02em;
  font-size: 14px;
}
@media (max-width: 768px) {
  .mc-breadcrumb__inner { padding: 16px 20px 14px; font-size: 12px; letter-spacing: 0.12em; }
  .mc-breadcrumb__sep { margin: 0 8px; }
  .mc-breadcrumb__current { font-size: 13px; }
}
