/* BrandBees ACF Repeater — minimal base CSS.
   Elementor generates ALL layout CSS via its selectors.
   We only set display:flex as a base so selectors work. */

/* Outer wrapper — Elementor writes display, grid-template-columns, gap, etc. */
.bb-arfe-outer {
    display: flex;      /* default; overridden by outer_display control */
    flex-wrap: wrap;    /* default; overridden by outer_flex_wrap control */
    gap: 24px;          /* default; overridden by outer_gap control */
    width: 100%;
    box-sizing: border-box;
}

/* Each card — Elementor writes flex-direction, justify-content, align-items, gap */
.bb-arfe-row {
    display: flex;               /* MUST exist for flex controls to work */
    flex-direction: column;      /* default; overridden by inner_direction */
    flex-wrap: nowrap;           /* default; overridden by inner_wrap */
    justify-content: flex-start; /* default; overridden by inner_justify */
    align-items: flex-start;     /* default; overridden by inner_align */
    gap: 8px;                    /* default; overridden by inner_gap */
    box-sizing: border-box;
    min-width: 0;
}

/* Reset browser defaults so typography controls are clean */
.bb-arfe-row h1,.bb-arfe-row h2,.bb-arfe-row h3,.bb-arfe-row h4,
.bb-arfe-row p { margin: 0; padding: 0; }

/* Field Group — inline flex container wrapping multiple sub-fields
   Direction, align, justify, gap are set inline by PHP from Elementor controls */
.bb-arfe-field-group {
    display: flex;       /* always flex; direction/align/gap come from inline style */
    min-width: 0;        /* prevents flex overflow */
    box-sizing: border-box;
}

/* Reset margins inside groups so gap is the only spacing */
.bb-arfe-field-group > * { margin: 0; }
.bb-arfe-field-group h1,.bb-arfe-field-group h2,.bb-arfe-field-group h3,
.bb-arfe-field-group h4,.bb-arfe-field-group p { margin: 0; padding: 0; }

/* Group grows to fill available space by default so siblings (like an icon) sit beside it */
.bb-arfe-row > .bb-arfe-field-group { flex: 1 1 0; min-width: 0; }

/* Images */
.bb-arfe-image { display: block; width: 100%; height: auto; max-width: 100%; }

/* Misc */
.bb-arfe-row a              { text-decoration: none; }
.bb-arfe-checkbox-list      { list-style: disc; margin: 0; padding-left: 1.25em; }
.bb-arfe-file               { display: inline-flex; align-items: center; gap: .3em; }
.bb-arfe-nested-repeater    { width: 100%; }
.bb-arfe-nested-row         { box-sizing: border-box; }
