:root{
  /* Use clamp to keep a comfortable minimum on phones and cap on desktops */
  --swg-pad-min: 16px;
  --swg-pad-max: 48px;
  --swg-pad: clamp(var(--swg-pad-min), 5vw, var(--swg-pad-max));
  /* iOS safe areas (notch phones) */
  --swg-safe-left: env(safe-area-inset-left, 0px);
  --swg-safe-right: env(safe-area-inset-right, 0px);
  --swg-pl: max(var(--swg-pad), var(--swg-safe-left));
  --swg-pr: max(var(--swg-pad), var(--swg-safe-right));
}

/* Always apply to header/footer wrappers */
header, footer, .site-header, .site-footer{
  box-sizing:border-box;
  padding-left: var(--swg-pl);
  padding-right: var(--swg-pr);
}

/* Keep admin bar intact */
#wpadminbar{ padding:0 !important; }

/* Constrain full-bleed blocks on small screens so padding remains visible */
@media (max-width: 782px){
  html, body{ overflow-x:hidden; }

  .wp-site-blocks{
    box-sizing:border-box;
    padding-left: var(--swg-pl);
    padding-right: var(--swg-pr);
  }

  body .alignfull,
  body .wp-block-group.alignfull,
  body .wp-block-cover.alignfull,
  body .wp-site-blocks > *:where(.alignfull){
    box-sizing: border-box;
    margin-left: auto !important;
    margin-right: auto !important;
    width: calc(100% - (var(--swg-pl) + var(--swg-pr))) !important;
    padding-left: var(--swg-pl);
    padding-right: var(--swg-pr);
  }
}

/* Respect themes that already add adequate padding: this rule raises specificity only if needed */
@media (max-width: 782px){
  body header.site-header, body footer.site-footer{
    padding-left: var(--swg-pl);
    padding-right: var(--swg-pr);
  }
}
