/*
  ILB Responsive Guardrails
  هدف: جلوگیری از overflow افقی و بهبود نمایش ویجت‌ها در موبایل/تبلت
  بدون تغییر ساختار خروجی ویجت‌ها (فقط override های امن)
*/

/* Prevent accidental overflow while keeping scopes limited to ILB widgets */
.ilb-w,
.ilb-w *,
.ilb-lightbox,
.ilb-lightbox *{
  box-sizing:border-box;
}

.ilb-w{ max-width:100%; }

.ilb-w img,
.ilb-w svg,
.ilb-w video,
.ilb-w iframe{
  max-width:100%;
  height:auto;
}

.ilb-w pre,
.ilb-w code{
  max-width:100%;
  overflow:auto;
  word-break:break-word;
}

/* Buttons should never force horizontal scroll */
.ilb-w .ilb-btn{
  max-width:100%;
  white-space:normal;
  text-align:center;
}

/* If (for any reason) the page overflows, lock X overflow to preserve responsive layout */
html.ilb-xoverflow,
body.ilb-xoverflow{
  overflow-x:hidden !important;
}

/* Common flex helpers */
@media (max-width: 640px){
  .ilb-between{ flex-wrap:wrap; }
}

/* Core: force grid templates to adapt on tablet/mobile even when set inline in widget render */
@media (max-width: 1024px){
  /* Many ILB widgets output inline grid-template-columns; make it auto-fit */
  .ilb-w [style*="grid-template-columns"]{
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)) !important;
  }

  /* Hero two-column -> stack */
  .ilb-w.ilb-hero .ilb-grid{
    grid-template-columns: 1fr !important;
  }

  /* Footer mega / multi-columns -> 2 columns on tablet */
  .ilb-w [style*="grid-template-columns:1.4fr 1fr 1fr 1fr"],
  .ilb-w [style*="grid-template-columns:1.25fr 1fr"],
  .ilb-w [style*="grid-template-columns:1.2fr 0.8fr"]{
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 680px){
  .ilb-w [style*="grid-template-columns"]{
    grid-template-columns: 1fr !important;
  }

  /* Bundle Builder rows: allow wrapping on small screens */
  .ilb-bundle-builder .ilb-bb__row{
    flex-wrap:wrap;
    align-items:flex-start;
  }
  .ilb-bundle-builder .ilb-bb__row input.ilb-bb__chk{
    margin-top:6px;
  }
  .ilb-bundle-builder [style*="white-space:nowrap"]{
    white-space:normal !important;
  }

  /* Price text can get too large */
  .ilb-price{ font-size:22px !important; }
}

/* Runtime UI elements (cookie, sticky bars) */
@media (max-width: 520px){
  .ilb-cookie,
  .ilb-wc-buybar{
    flex-direction:column;
    align-items:stretch;
    gap:12px;
  }

  .ilb-cookie button,
  .ilb-wc-buybar .ilb-wc-cta{
    width:100%;
    text-align:center;
  }
}
