/*
 * Bootstrap 4 -> 5 compatibility shim for migrated v1 content (#3797).
 *
 * v1's CMS content is Bootstrap 4 markup; base.html serves Bootstrap 5.2.3, which
 * removed or renamed every class below. This aliases the BS4 names the fleet
 * actually uses (a read-only scan of 49 live v1 sites, 2026-09-28) onto their BS5
 * behaviour. It is a bounded layer, NOT a port of Bootstrap 4: a name goes in only
 * if migrated content uses it, and SHIMMED / SPACING_FAMILIES in
 * pinogy_app/bootstrap4_compat.py are the list the suite checks this file against,
 * both ways.
 *
 * Linked from base.html only for a tenant that started as a v1 site
 * (bootstrap4_compat.schema_loads_shim). Never linked from shop_base.html, which is
 * the Bootstrap 4 root and has all of this already.
 *
 * Left out on purpose -- they need component CSS, not an alias, and a half-right
 * one is worse than a visibly wrong one: close, media, jumbotron, embed-responsive.
 * The import counts them and mig_report.md lists them as hand-fix items.
 *
 * This does not restore v1's own template CSS (theme.css, theme-elements.css,
 * pinogy-1.0.1.css). See docs/bootstrap4-compat-shim.md.
 *
 * Utilities carry !important, as they did in Bootstrap 4 and do in Bootstrap 5.
 */

/* Renamed utilities: text-start / text-end, fw-bold / fw-normal. */
.text-left{text-align:left!important}
.text-right{text-align:right!important}
.font-weight-bold{font-weight:700!important}
.font-weight-normal{font-weight:400!important}

/* sr-only -> visually-hidden. */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* no-gutters -> g-0. */
.no-gutters{--bs-gutter-x:0;--bs-gutter-y:0}

/* Removed outright in Bootstrap 5; restored with Bootstrap 4.6's own values. */
.form-group{margin-bottom:1rem}
.btn-block{display:block;width:100%}
.btn-block+.btn-block{margin-top:.5rem}
input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}

/* Directional spacing: pl/pr/ml/mr -> ps/pe/ms/me, with breakpoint variants. */
.pl-0{padding-left:0!important}
.pl-1{padding-left:.25rem!important}
.pl-2{padding-left:.5rem!important}
.pl-3{padding-left:1rem!important}
.pl-4{padding-left:1.5rem!important}
.pl-5{padding-left:3rem!important}
.pr-0{padding-right:0!important}
.pr-1{padding-right:.25rem!important}
.pr-2{padding-right:.5rem!important}
.pr-3{padding-right:1rem!important}
.pr-4{padding-right:1.5rem!important}
.pr-5{padding-right:3rem!important}
.ml-0{margin-left:0!important}
.ml-1{margin-left:.25rem!important}
.ml-2{margin-left:.5rem!important}
.ml-3{margin-left:1rem!important}
.ml-4{margin-left:1.5rem!important}
.ml-5{margin-left:3rem!important}
.ml-auto{margin-left:auto!important}
.mr-0{margin-right:0!important}
.mr-1{margin-right:.25rem!important}
.mr-2{margin-right:.5rem!important}
.mr-3{margin-right:1rem!important}
.mr-4{margin-right:1.5rem!important}
.mr-5{margin-right:3rem!important}
.mr-auto{margin-right:auto!important}
@media (min-width:576px){
  .pl-sm-0{padding-left:0!important}
  .pl-sm-1{padding-left:.25rem!important}
  .pl-sm-2{padding-left:.5rem!important}
  .pl-sm-3{padding-left:1rem!important}
  .pl-sm-4{padding-left:1.5rem!important}
  .pl-sm-5{padding-left:3rem!important}
  .pr-sm-0{padding-right:0!important}
  .pr-sm-1{padding-right:.25rem!important}
  .pr-sm-2{padding-right:.5rem!important}
  .pr-sm-3{padding-right:1rem!important}
  .pr-sm-4{padding-right:1.5rem!important}
  .pr-sm-5{padding-right:3rem!important}
  .ml-sm-0{margin-left:0!important}
  .ml-sm-1{margin-left:.25rem!important}
  .ml-sm-2{margin-left:.5rem!important}
  .ml-sm-3{margin-left:1rem!important}
  .ml-sm-4{margin-left:1.5rem!important}
  .ml-sm-5{margin-left:3rem!important}
  .ml-sm-auto{margin-left:auto!important}
  .mr-sm-0{margin-right:0!important}
  .mr-sm-1{margin-right:.25rem!important}
  .mr-sm-2{margin-right:.5rem!important}
  .mr-sm-3{margin-right:1rem!important}
  .mr-sm-4{margin-right:1.5rem!important}
  .mr-sm-5{margin-right:3rem!important}
  .mr-sm-auto{margin-right:auto!important}
}
@media (min-width:768px){
  .pl-md-0{padding-left:0!important}
  .pl-md-1{padding-left:.25rem!important}
  .pl-md-2{padding-left:.5rem!important}
  .pl-md-3{padding-left:1rem!important}
  .pl-md-4{padding-left:1.5rem!important}
  .pl-md-5{padding-left:3rem!important}
  .pr-md-0{padding-right:0!important}
  .pr-md-1{padding-right:.25rem!important}
  .pr-md-2{padding-right:.5rem!important}
  .pr-md-3{padding-right:1rem!important}
  .pr-md-4{padding-right:1.5rem!important}
  .pr-md-5{padding-right:3rem!important}
  .ml-md-0{margin-left:0!important}
  .ml-md-1{margin-left:.25rem!important}
  .ml-md-2{margin-left:.5rem!important}
  .ml-md-3{margin-left:1rem!important}
  .ml-md-4{margin-left:1.5rem!important}
  .ml-md-5{margin-left:3rem!important}
  .ml-md-auto{margin-left:auto!important}
  .mr-md-0{margin-right:0!important}
  .mr-md-1{margin-right:.25rem!important}
  .mr-md-2{margin-right:.5rem!important}
  .mr-md-3{margin-right:1rem!important}
  .mr-md-4{margin-right:1.5rem!important}
  .mr-md-5{margin-right:3rem!important}
  .mr-md-auto{margin-right:auto!important}
}
@media (min-width:992px){
  .pl-lg-0{padding-left:0!important}
  .pl-lg-1{padding-left:.25rem!important}
  .pl-lg-2{padding-left:.5rem!important}
  .pl-lg-3{padding-left:1rem!important}
  .pl-lg-4{padding-left:1.5rem!important}
  .pl-lg-5{padding-left:3rem!important}
  .pr-lg-0{padding-right:0!important}
  .pr-lg-1{padding-right:.25rem!important}
  .pr-lg-2{padding-right:.5rem!important}
  .pr-lg-3{padding-right:1rem!important}
  .pr-lg-4{padding-right:1.5rem!important}
  .pr-lg-5{padding-right:3rem!important}
  .ml-lg-0{margin-left:0!important}
  .ml-lg-1{margin-left:.25rem!important}
  .ml-lg-2{margin-left:.5rem!important}
  .ml-lg-3{margin-left:1rem!important}
  .ml-lg-4{margin-left:1.5rem!important}
  .ml-lg-5{margin-left:3rem!important}
  .ml-lg-auto{margin-left:auto!important}
  .mr-lg-0{margin-right:0!important}
  .mr-lg-1{margin-right:.25rem!important}
  .mr-lg-2{margin-right:.5rem!important}
  .mr-lg-3{margin-right:1rem!important}
  .mr-lg-4{margin-right:1.5rem!important}
  .mr-lg-5{margin-right:3rem!important}
  .mr-lg-auto{margin-right:auto!important}
}
@media (min-width:1200px){
  .pl-xl-0{padding-left:0!important}
  .pl-xl-1{padding-left:.25rem!important}
  .pl-xl-2{padding-left:.5rem!important}
  .pl-xl-3{padding-left:1rem!important}
  .pl-xl-4{padding-left:1.5rem!important}
  .pl-xl-5{padding-left:3rem!important}
  .pr-xl-0{padding-right:0!important}
  .pr-xl-1{padding-right:.25rem!important}
  .pr-xl-2{padding-right:.5rem!important}
  .pr-xl-3{padding-right:1rem!important}
  .pr-xl-4{padding-right:1.5rem!important}
  .pr-xl-5{padding-right:3rem!important}
  .ml-xl-0{margin-left:0!important}
  .ml-xl-1{margin-left:.25rem!important}
  .ml-xl-2{margin-left:.5rem!important}
  .ml-xl-3{margin-left:1rem!important}
  .ml-xl-4{margin-left:1.5rem!important}
  .ml-xl-5{margin-left:3rem!important}
  .ml-xl-auto{margin-left:auto!important}
  .mr-xl-0{margin-right:0!important}
  .mr-xl-1{margin-right:.25rem!important}
  .mr-xl-2{margin-right:.5rem!important}
  .mr-xl-3{margin-right:1rem!important}
  .mr-xl-4{margin-right:1.5rem!important}
  .mr-xl-5{margin-right:3rem!important}
  .mr-xl-auto{margin-right:auto!important}
}
