/**
 * Albi Mall — site shell
 * Light tokens only. Page centering is owned by Elementor / the theme body.
 * Do NOT force 100vw breakouts here — that fights a centered widget column.
 */

:root {
  --albi-site-max: 1360px;
  --albi-site-gutter: clamp(1.25rem, 4vw, 2.5rem);
  --albi-full-bleed: 100%;
  --albi-site-shell: min(var(--albi-site-max), 100%);
  --albi-site-pad: var(--albi-site-gutter);
  /* Legacy aliases used by home/list widgets */
  --albi-home-max: var(--albi-site-max);
  --albi-home-gutter: var(--albi-site-gutter);
  --albi-list-gutter: var(--albi-site-gutter);
  --albi-dir-max: var(--albi-site-max);
  --albi-dir-gutter: var(--albi-site-gutter);
  --albi-hero-radius: clamp(14px, 1.6vw, 28px);
}

/*
 * Keep horizontal clip on body only.
 * overflow-x on both html+body breaks iOS Safari scroll height with position:fixed
 * headers — footer appears to cover the last list results on mobile.
 */
html {
  overflow-x: hidden;
}

body.albi-site-shell-active,
body.albi-crm-site-styled {
  overflow-x: clip;
}

body.albi-site-shell-active .elementor,
body.albi-crm-site-styled .elementor {
  max-width: 100%;
}

/* Header/footer content column when not using Elementor boxed width */
.elementor-location-header .e-con > .e-con-inner,
.elementor-location-footer .e-con > .e-con-inner,
.elementor-location-header .elementor-section > .elementor-container,
.elementor-location-footer .elementor-section > .elementor-container {
  width: 100%;
  box-sizing: border-box;
}
