/* =========================================================
   FGLB STAGE SYSTEM
   Fixed scalable stage with configurable grid
   ========================================================= */

:root {
  --fglb-gap-s: 0.5rem;
  --fglb-gap-m: 1rem;
  --fglb-gap-l: 1.5rem;

  --fglb-text-xs: clamp(0.7rem, 0.55rem + 0.35vw, 0.9rem);
  --fglb-text-sm: clamp(0.85rem, 0.7rem + 0.45vw, 1rem);
  --fglb-text-base: clamp(1rem, 0.8rem + 0.65vw, 1.15rem);
  --fglb-text-lg: clamp(1.15rem, 0.85rem + 1vw, 1.6rem);
  --fglb-text-xl: clamp(1.4rem, 0.9rem + 1.8vw, 2.4rem);
  --fglb-text-2xl: clamp(1.8rem, 1rem + 2.8vw, 3.4rem);

  --fglb-line-tight: 1.1;
  --fglb-line-normal: 1.35;
  --fglb-line-copy: 1.5;
}

/* Outer marker */
.fglb-stage-root[data-fglb-stage="1"] {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

/* Real stage = Gutenberg inner container */
.fglb-stage-root[data-fglb-stage="1"] > .wp-block-group__inner-container,
.fglb-stage-root[data-fglb-stage="1"] > div.wp-block-group__inner-container {
  display: grid !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;

  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: hidden !important;

  position: relative !important;
  flex: none !important;

  aspect-ratio: var(--fglb-stage-ratio-x, 4) / var(--fglb-stage-ratio-y, 4);
  align-items: stretch !important;
  justify-items: stretch !important;
}

/* Ratio mapping from data attributes */
.fglb-stage-root[data-fglb-stage="1"][data-fglb-ratio-x][data-fglb-ratio-y] > .wp-block-group__inner-container,
.fglb-stage-root[data-fglb-stage="1"][data-fglb-ratio-x][data-fglb-ratio-y] > div.wp-block-group__inner-container {
  --fglb-stage-ratio-x: attr(data-fglb-ratio-x number);
  --fglb-stage-ratio-y: attr(data-fglb-ratio-y number);
}

/* Fallback explicit ratio presets */
.fglb-stage-root[data-fglb-stage="1"][data-fglb-ratio-x="1"][data-fglb-ratio-y="1"] > .wp-block-group__inner-container,
.fglb-stage-root[data-fglb-stage="1"][data-fglb-ratio-x="1"][data-fglb-ratio-y="1"] > div.wp-block-group__inner-container { aspect-ratio: 1 / 1; }

.fglb-stage-root[data-fglb-stage="1"][data-fglb-ratio-x="4"][data-fglb-ratio-y="3"] > .wp-block-group__inner-container,
.fglb-stage-root[data-fglb-stage="1"][data-fglb-ratio-x="4"][data-fglb-ratio-y="3"] > div.wp-block-group__inner-container { aspect-ratio: 4 / 3; }

.fglb-stage-root[data-fglb-stage="1"][data-fglb-ratio-x="3"][data-fglb-ratio-y="4"] > .wp-block-group__inner-container,
.fglb-stage-root[data-fglb-stage="1"][data-fglb-ratio-x="3"][data-fglb-ratio-y="4"] > div.wp-block-group__inner-container { aspect-ratio: 3 / 4; }

.fglb-stage-root[data-fglb-stage="1"][data-fglb-ratio-x="16"][data-fglb-ratio-y="9"] > .wp-block-group__inner-container,
.fglb-stage-root[data-fglb-stage="1"][data-fglb-ratio-x="16"][data-fglb-ratio-y="9"] > div.wp-block-group__inner-container { aspect-ratio: 16 / 9; }

.fglb-stage-root[data-fglb-stage="1"][data-fglb-ratio-x="9"][data-fglb-ratio-y="16"] > .wp-block-group__inner-container,
.fglb-stage-root[data-fglb-stage="1"][data-fglb-ratio-x="9"][data-fglb-ratio-y="16"] > div.wp-block-group__inner-container { aspect-ratio: 9 / 16; }

.fglb-stage-root[data-fglb-stage="1"][data-fglb-ratio-x="4"][data-fglb-ratio-y="4"] > .wp-block-group__inner-container,
.fglb-stage-root[data-fglb-stage="1"][data-fglb-ratio-x="4"][data-fglb-ratio-y="4"] > div.wp-block-group__inner-container { aspect-ratio: 4 / 4; }

.fglb-stage-root[data-fglb-stage="1"][data-fglb-ratio-x="12"][data-fglb-ratio-y="12"] > .wp-block-group__inner-container,
.fglb-stage-root[data-fglb-stage="1"][data-fglb-ratio-x="12"][data-fglb-ratio-y="12"] > div.wp-block-group__inner-container { aspect-ratio: 12 / 12; }

/* Gap presets */
.fglb-stage-root[data-fglb-stage="1"][data-fglb-gap="s"] > .wp-block-group__inner-container,
.fglb-stage-root[data-fglb-stage="1"][data-fglb-gap="s"] > div.wp-block-group__inner-container {
  gap: var(--fglb-gap-s) !important;
}

.fglb-stage-root[data-fglb-stage="1"][data-fglb-gap="m"] > .wp-block-group__inner-container,
.fglb-stage-root[data-fglb-stage="1"][data-fglb-gap="m"] > div.wp-block-group__inner-container {
  gap: var(--fglb-gap-m) !important;
}

.fglb-stage-root[data-fglb-stage="1"][data-fglb-gap="l"] > .wp-block-group__inner-container,
.fglb-stage-root[data-fglb-stage="1"][data-fglb-gap="l"] > div.wp-block-group__inner-container {
  gap: var(--fglb-gap-l) !important;
}

/* Column grid presets */
.fglb-stage-root[data-fglb-stage="1"][data-fglb-cols="1"] > .wp-block-group__inner-container,
.fglb-stage-root[data-fglb-stage="1"][data-fglb-cols="1"] > div.wp-block-group__inner-container { grid-template-columns: repeat(1, 1fr) !important; }

.fglb-stage-root[data-fglb-stage="1"][data-fglb-cols="2"] > .wp-block-group__inner-container,
.fglb-stage-root[data-fglb-stage="1"][data-fglb-cols="2"] > div.wp-block-group__inner-container { grid-template-columns: repeat(2, 1fr) !important; }

.fglb-stage-root[data-fglb-stage="1"][data-fglb-cols="3"] > .wp-block-group__inner-container,
.fglb-stage-root[data-fglb-stage="1"][data-fglb-cols="3"] > div.wp-block-group__inner-container { grid-template-columns: repeat(3, 1fr) !important; }

.fglb-stage-root[data-fglb-stage="1"][data-fglb-cols="4"] > .wp-block-group__inner-container,
.fglb-stage-root[data-fglb-stage="1"][data-fglb-cols="4"] > div.wp-block-group__inner-container { grid-template-columns: repeat(4, 1fr) !important; }

.fglb-stage-root[data-fglb-stage="1"][data-fglb-cols="5"] > .wp-block-group__inner-container,
.fglb-stage-root[data-fglb-stage="1"][data-fglb-cols="5"] > div.wp-block-group__inner-container { grid-template-columns: repeat(5, 1fr) !important; }

.fglb-stage-root[data-fglb-stage="1"][data-fglb-cols="6"] > .wp-block-group__inner-container,
.fglb-stage-root[data-fglb-stage="1"][data-fglb-cols="6"] > div.wp-block-group__inner-container { grid-template-columns: repeat(6, 1fr) !important; }

.fglb-stage-root[data-fglb-stage="1"][data-fglb-cols="8"] > .wp-block-group__inner-container,
.fglb-stage-root[data-fglb-stage="1"][data-fglb-cols="8"] > div.wp-block-group__inner-container { grid-template-columns: repeat(8, 1fr) !important; }

.fglb-stage-root[data-fglb-stage="1"][data-fglb-cols="10"] > .wp-block-group__inner-container,
.fglb-stage-root[data-fglb-stage="1"][data-fglb-cols="10"] > div.wp-block-group__inner-container { grid-template-columns: repeat(10, 1fr) !important; }

.fglb-stage-root[data-fglb-stage="1"][data-fglb-cols="12"] > .wp-block-group__inner-container,
.fglb-stage-root[data-fglb-stage="1"][data-fglb-cols="12"] > div.wp-block-group__inner-container { grid-template-columns: repeat(12, 1fr) !important; }

/* Row grid presets */
.fglb-stage-root[data-fglb-stage="1"][data-fglb-rows="1"] > .wp-block-group__inner-container,
.fglb-stage-root[data-fglb-stage="1"][data-fglb-rows="1"] > div.wp-block-group__inner-container { grid-template-rows: repeat(1, 1fr) !important; }

.fglb-stage-root[data-fglb-stage="1"][data-fglb-rows="2"] > .wp-block-group__inner-container,
.fglb-stage-root[data-fglb-stage="1"][data-fglb-rows="2"] > div.wp-block-group__inner-container { grid-template-rows: repeat(2, 1fr) !important; }

.fglb-stage-root[data-fglb-stage="1"][data-fglb-rows="3"] > .wp-block-group__inner-container,
.fglb-stage-root[data-fglb-stage="1"][data-fglb-rows="3"] > div.wp-block-group__inner-container { grid-template-rows: repeat(3, 1fr) !important; }

.fglb-stage-root[data-fglb-stage="1"][data-fglb-rows="4"] > .wp-block-group__inner-container,
.fglb-stage-root[data-fglb-stage="1"][data-fglb-rows="4"] > div.wp-block-group__inner-container { grid-template-rows: repeat(4, 1fr) !important; }

.fglb-stage-root[data-fglb-stage="1"][data-fglb-rows="5"] > .wp-block-group__inner-container,
.fglb-stage-root[data-fglb-stage="1"][data-fglb-rows="5"] > div.wp-block-group__inner-container { grid-template-rows: repeat(5, 1fr) !important; }

.fglb-stage-root[data-fglb-stage="1"][data-fglb-rows="6"] > .wp-block-group__inner-container,
.fglb-stage-root[data-fglb-stage="1"][data-fglb-rows="6"] > div.wp-block-group__inner-container { grid-template-rows: repeat(6, 1fr) !important; }

.fglb-stage-root[data-fglb-stage="1"][data-fglb-rows="8"] > .wp-block-group__inner-container,
.fglb-stage-root[data-fglb-stage="1"][data-fglb-rows="8"] > div.wp-block-group__inner-container { grid-template-rows: repeat(8, 1fr) !important; }

.fglb-stage-root[data-fglb-stage="1"][data-fglb-rows="10"] > .wp-block-group__inner-container,
.fglb-stage-root[data-fglb-stage="1"][data-fglb-rows="10"] > div.wp-block-group__inner-container { grid-template-rows: repeat(10, 1fr) !important; }

.fglb-stage-root[data-fglb-stage="1"][data-fglb-rows="12"] > .wp-block-group__inner-container,
.fglb-stage-root[data-fglb-stage="1"][data-fglb-rows="12"] > div.wp-block-group__inner-container { grid-template-rows: repeat(12, 1fr) !important; }

/* Stage items */
.fglb-stage-root[data-fglb-stage="1"] > .wp-block-group__inner-container > [data-fglb-item="1"],
.fglb-stage-root[data-fglb-stage="1"] > div.wp-block-group__inner-container > [data-fglb-item="1"] {
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: 100% !important;
  max-height: 100% !important;
  width: auto !important;
  height: auto !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  align-self: stretch !important;
  justify-self: stretch !important;
  flex: none !important;
  overflow: hidden !important;

  display: flex;
  flex-direction: column;
  justify-content: stretch;
}

/* Positioning via start/span */
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-item="1"] {
  grid-column: var(--fglb-col-start, 1) / span var(--fglb-col-span, 1);
  grid-row: var(--fglb-row-start, 1) / span var(--fglb-row-span, 1);
}

/* Explicit attribute mapping */
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-col-start="1"]  { --fglb-col-start: 1; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-col-start="2"]  { --fglb-col-start: 2; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-col-start="3"]  { --fglb-col-start: 3; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-col-start="4"]  { --fglb-col-start: 4; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-col-start="5"]  { --fglb-col-start: 5; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-col-start="6"]  { --fglb-col-start: 6; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-col-start="7"]  { --fglb-col-start: 7; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-col-start="8"]  { --fglb-col-start: 8; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-col-start="9"]  { --fglb-col-start: 9; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-col-start="10"] { --fglb-col-start: 10; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-col-start="11"] { --fglb-col-start: 11; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-col-start="12"] { --fglb-col-start: 12; }

.fglb-stage-root[data-fglb-stage="1"] [data-fglb-col-span="1"]  { --fglb-col-span: 1; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-col-span="2"]  { --fglb-col-span: 2; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-col-span="3"]  { --fglb-col-span: 3; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-col-span="4"]  { --fglb-col-span: 4; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-col-span="5"]  { --fglb-col-span: 5; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-col-span="6"]  { --fglb-col-span: 6; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-col-span="7"]  { --fglb-col-span: 7; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-col-span="8"]  { --fglb-col-span: 8; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-col-span="9"]  { --fglb-col-span: 9; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-col-span="10"] { --fglb-col-span: 10; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-col-span="11"] { --fglb-col-span: 11; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-col-span="12"] { --fglb-col-span: 12; }

.fglb-stage-root[data-fglb-stage="1"] [data-fglb-row-start="1"]  { --fglb-row-start: 1; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-row-start="2"]  { --fglb-row-start: 2; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-row-start="3"]  { --fglb-row-start: 3; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-row-start="4"]  { --fglb-row-start: 4; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-row-start="5"]  { --fglb-row-start: 5; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-row-start="6"]  { --fglb-row-start: 6; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-row-start="7"]  { --fglb-row-start: 7; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-row-start="8"]  { --fglb-row-start: 8; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-row-start="9"]  { --fglb-row-start: 9; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-row-start="10"] { --fglb-row-start: 10; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-row-start="11"] { --fglb-row-start: 11; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-row-start="12"] { --fglb-row-start: 12; }

.fglb-stage-root[data-fglb-stage="1"] [data-fglb-row-span="1"]  { --fglb-row-span: 1; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-row-span="2"]  { --fglb-row-span: 2; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-row-span="3"]  { --fglb-row-span: 3; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-row-span="4"]  { --fglb-row-span: 4; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-row-span="5"]  { --fglb-row-span: 5; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-row-span="6"]  { --fglb-row-span: 6; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-row-span="7"]  { --fglb-row-span: 7; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-row-span="8"]  { --fglb-row-span: 8; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-row-span="9"]  { --fglb-row-span: 9; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-row-span="10"] { --fglb-row-span: 10; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-row-span="11"] { --fglb-row-span: 11; }
.fglb-stage-root[data-fglb-stage="1"] [data-fglb-row-span="12"] { --fglb-row-span: 12; }

/* Fluid text scaling inside stage */
.fglb-stage-root[data-fglb-stage="1"] p,
.fglb-stage-root[data-fglb-stage="1"] li,
.fglb-stage-root[data-fglb-stage="1"] figcaption {
  font-size: var(--fglb-text-base);
  line-height: var(--fglb-line-copy);
  margin: 0;
}

.fglb-stage-root[data-fglb-stage="1"] h1 {
  font-size: var(--fglb-text-2xl);
  line-height: var(--fglb-line-tight);
  margin: 0;
}

.fglb-stage-root[data-fglb-stage="1"] h2 {
  font-size: var(--fglb-text-xl);
  line-height: var(--fglb-line-tight);
  margin: 0;
}

.fglb-stage-root[data-fglb-stage="1"] h3,
.fglb-stage-root[data-fglb-stage="1"] h4 {
  font-size: var(--fglb-text-lg);
  line-height: var(--fglb-line-normal);
  margin: 0;
}

/* Media fills tile while staying proportional */
.fglb-stage-root[data-fglb-stage="1"] .wp-block-image,
.fglb-stage-root[data-fglb-stage="1"] figure.wp-block-image,
.fglb-stage-root[data-fglb-stage="1"] .wp-block-cover,
.fglb-stage-root[data-fglb-stage="1"] .wp-block-embed {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
}

.fglb-stage-root[data-fglb-stage="1"] figure.wp-block-image img,
.fglb-stage-root[data-fglb-stage="1"] .wp-block-image img,
.fglb-stage-root[data-fglb-stage="1"] .wp-block-cover img,
.fglb-stage-root[data-fglb-stage="1"] iframe,
.fglb-stage-root[data-fglb-stage="1"] video {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  display: block !important;
  object-fit: cover;
}

/* Prevent alignment utilities from breaking stage */
.fglb-stage-root[data-fglb-stage="1"] .alignwide,
.fglb-stage-root[data-fglb-stage="1"] .alignfull {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}