/* Utilities: spacing */
.px-0 { padding-inline: 0 !important; }
.py-xs { padding-block: var(--asy-space-xs) !important; }
.py-sm { padding-block: var(--asy-space-sm) !important; }
.py-md { padding-block: var(--asy-space-md) !important; }
.py-lg { padding-block: var(--asy-space-lg) !important; }
.py-xl { padding-block: var(--asy-space-xl) !important; }

/* gap */
.gap-sm { gap: var(--asy-space-sm); }
.gap-md { gap: var(--asy-space-md); }
.gap-lg { gap: var(--asy-space-lg); }

/* radius */
.r-sm { border-radius: var(--asy-r-sm); }
.r-md { border-radius: var(--asy-r-md); }
.r-lg { border-radius: var(--asy-r-lg); }

/* shadows */
.shadow-sm { box-shadow: 0 1px 3px rgba(0,0,0,.06); }
.shadow-md { box-shadow: 0 6px 24px rgba(0,0,0,.08); }

/* Layout wrappers & sections */

/* Hero wrapper (contained in max container) */
.asy-hero {
  max-width: var(--asy-container-max);
  margin-inline: auto;
  padding-inline: clamp(1rem, 3vw, 2rem);
}
.asy-hero--tight { max-width: 1000px; }

/* Generic section spacing */
.asy-section     { padding-block: var(--asy-space-lg); }
.asy-section--lg { padding-block: var(--asy-space-xl); }

/* prevents flexbox from shrinking full-bleed sections */
.asy-fullbleed {
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  width: 100vw;
  max-width: 100vw;

  /* NEW: play nice with flex parents */
  flex: 0 0 auto;        /* don't shrink, don't grow */
  display: block;        /* make sure it's block-level */
  box-sizing: border-box;
}



/* Safety: avoid accidental horizontal scroll when using fullbleed */
body.has-fullbleed { overflow-x: clip; }

.u-box { box-sizing: border-box; }
.u-box, .u-box * , .u-box *::before, .u-box *::after { box-sizing: inherit; }


.u-unconstrain :where(.is-layout-constrained, .wp-block-post-content) {
  max-width: none !important;
  margin-inline: 0 !important;
  padding-inline: 0 !important;
}

/* Robust fullbleed */
.u-fullbleed{
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
}
@supports (width: 100dvw){
  .u-fullbleed{
    width: 100dvw;
    margin-left: calc(50% - 50dvw) !important;
    margin-right: calc(50% - 50dvw) !important;
  }
}

:root {
  --asy-wide-max: 1200px;      
  --asy-gutter: 16px;          
}
.u-wide {
  max-width: var(--asy-wide-max);
  margin-inline: auto;
  padding-inline: var(--asy-gutter);
}

:root { --asy-normal-max: 960px; }
.u-normal {
  max-width: var(--asy-normal-max);
  margin-inline: auto;
  padding-inline: var(--asy-gutter);
}

/* Width presets */
:root{
  --asy-wide-max: 1600px;
  --asy-normal-max: 1200px;
  --asy-gutter: clamp(1rem, 3vw, 2rem);
}
.u-normal{ max-width: var(--asy-normal-max); margin-inline:auto; padding-inline: var(--asy-gutter); }
.u-wide  { max-width: var(--asy-wide-max);  margin-inline:auto; padding-inline: var(--asy-gutter); }
