/* ===== UDE Constructor — micro grid scoped (FIX) ===== */
[data-ude="constructor"] { --ude-gx:.75rem; --ude-gy:.75rem; }

/* Containers */
[data-ude="constructor"] .container,
[data-ude="constructor"] .container-fluid{
  width:100%; margin-right:auto; margin-left:auto;
  padding-right:calc(var(--ude-gx)); padding-left:calc(var(--ude-gx));
}

/* Max-widths estilo Bootstrap */
@media (min-width:576px){ [data-ude="constructor"] .container{ max-width:540px; } }
@media (min-width:768px){ [data-ude="constructor"] .container{ max-width:720px; } }
@media (min-width:992px){ [data-ude="constructor"] .container{ max-width:960px; } }
@media (min-width:1200px){[data-ude="constructor"] .container{ max-width:1140px; } }
@media (min-width:1400px){[data-ude="constructor"] .container{ max-width:1320px; } }

/* Row + gap (g-*) */
[data-ude="constructor"] .row{
  display:flex; flex-wrap:wrap;
  margin-right:calc(var(--ude-gx) * -1);
  margin-left: calc(var(--ude-gx) * -1);
  row-gap:var(--ude-gy);
}

/* Columnas (FIX: box-sizing + min-width) */
[data-ude="constructor"] .row > [data-ude-col]{
  box-sizing:border-box;
  min-width:0;               /* evita que contenido largo fuerce salto */
  padding-right:var(--ude-gx);
  padding-left: var(--ude-gx);
}

/* Gaps equivalentes a Bootstrap */
[data-ude="constructor"] .g-0 { --ude-gx:0rem;  --ude-gy:0rem; }
[data-ude="constructor"] .g-1 { --ude-gx:.25rem; --ude-gy:.25rem; }
[data-ude="constructor"] .g-2 { --ude-gx:.5rem;  --ude-gy:.5rem; }
[data-ude="constructor"] .g-3 { --ude-gx:1rem;   --ude-gy:1rem; }
[data-ude="constructor"] .g-4 { --ude-gx:1.5rem; --ude-gy:1.5rem; }
[data-ude="constructor"] .g-5 { --ude-gx:3rem;   --ude-gy:3rem; }

/* Columnas base */
[data-ude="constructor"] .col-12{ flex:0 0 auto; width:100%; }

/* Breakpoints */
@media (min-width:576px){
  [data-ude="constructor"] .col-sm-6{ flex:0 0 auto; width:50%; }
}
@media (min-width:768px){
  [data-ude="constructor"] .col-md-3{ flex:0 0 auto; width:25%; }
  [data-ude="constructor"] .col-md-4{ flex:0 0 auto; width:33.333333%; }
  [data-ude="constructor"] .col-md-6{ flex:0 0 auto; width:50%; }
  [data-ude="constructor"] .col-md-8{ flex:0 0 auto; width:66.666667%; }
  [data-ude="constructor"] .col-md-9{ flex:0 0 auto; width:75%; }
}
@media (min-width:992px){
  [data-ude="constructor"] .col-lg-3{ flex:0 0 auto; width:25%; }
  [data-ude="constructor"] .col-lg-4{ flex:0 0 auto; width:33.333333%; }
  [data-ude="constructor"] .col-lg-8{ flex:0 0 auto; width:66.666667%; }
  [data-ude="constructor"] .col-lg-9{ flex:0 0 auto; width:75%; }
}

/* Utilidades */
[data-ude="constructor"] .img-fluid{ max-width:100%; height:auto; display:block; }
[data-ude="constructor"] .d-block{ display:block; }
[data-ude="constructor"] .mx-auto{ margin-left:auto; margin-right:auto; }

[data-ude="constructor"] .text-start{ text-align:left; }
[data-ude="constructor"] .text-center{ text-align:center; }
[data-ude="constructor"] .text-end{ text-align:right; }

[data-ude="constructor"] .text-white{ color:#fff !important; }
[data-ude="constructor"] .text-dark{ color:#212529 !important; }
[data-ude="constructor"] .text-body{ color:#212529; }
[data-ude="constructor"] .bg-light{ background-color:#f8f9fa !important; }
[data-ude="constructor"] .bg-dark{ background-color:#212529 !important; }
[data-ude="constructor"] .bg-white{ background-color:#fff !important; }

[data-ude="constructor"] .my-4{ margin-top:1.5rem; margin-bottom:1.5rem; }
[data-ude="constructor"] .my-5{ margin-top:3rem;   margin-bottom:3rem; }
[data-ude="constructor"] .py-5{ padding-top:3rem;  padding-bottom:3rem; }

[data-ude="constructor"] h1,[data-ude="constructor"] h2,[data-ude="constructor"] h3{
  margin:.5rem 0 .75rem;
}

[data-ude="constructor"] .btn{
  display:inline-block; font-weight:600; line-height:1.5;
  text-align:center; text-decoration:none; cursor:pointer;
  border:1px solid transparent; padding:.5rem 1rem; border-radius:.375rem;
}
[data-ude="constructor"] .btn.btn-primary{
  background:#0d6efd; border-color:#0d6efd; color:#fff;
}
