/*
 * AIVB dynamic-field visual system.
 * Every product and post shortcode emits an .aivb-field semantic hook; this
 * sheet deliberately styles the data component, never the user's grid/layout.
 */
.aivb-field,
.aivb-reference-loop-card,
.aivb-loop-card[data-aivb-card-preset="default"] {
    --aivb-field-primary: var(--aivb-ui-primary, #60a5fa);
    --aivb-field-accent: var(--aivb-ui-accent, #3b82f6);
    --aivb-field-page: var(--aivb-ui-page, #ffffff);
    --aivb-field-surface: color-mix(in srgb, var(--aivb-field-page) 92%, var(--aivb-field-primary));
    --aivb-field-surface-strong: color-mix(in srgb, var(--aivb-field-page) 84%, var(--aivb-field-primary));
    --aivb-field-border: color-mix(in srgb, var(--aivb-field-primary) 18%, var(--aivb-field-page));
    --aivb-field-text: var(--aivb-ui-text, #1e3a5f);
    --aivb-field-muted: var(--aivb-ui-muted, #64748b);
    --aivb-field-card-radius: var(--aivb-ui-card-radius, 8px);
    --aivb-field-input-radius: var(--aivb-ui-input-radius, 6px);
    --aivb-field-button-radius: var(--aivb-ui-button-radius, 6px);
    --aivb-field-button-height: var(--aivb-ui-button-height, 48px);
    --aivb-field-shadow: var(--aivb-ui-shadow, 0 8px 20px rgba(15,23,42,.12));
    --aivb-field-heading-font: var(--aivb-ui-heading-font, inherit);
    --aivb-field-body-font: var(--aivb-ui-body-font, inherit);
    box-sizing: border-box;
    font-family: var(--aivb-field-body-font);
}

.aivb-field *,
.aivb-field *::before,
.aivb-field *::after { box-sizing: border-box; }
.aivb-field :is(svg, .dashicons, [class*="icon" i]) {
    width: 1em;
    height: 1em;
    max-width: 1.125rem;
    max-height: 1.125rem;
    flex: 0 0 auto;
    vertical-align: -.125em;
}

.aivb-field--title {
    color: var(--aivb-field-text) !important;
    font-family: var(--aivb-field-heading-font) !important;
    font-weight: 700;
    letter-spacing: -.018em;
    line-height: 1.3;
}
.aivb-field--title a,
a:has(.aivb-field--title) {
    color: inherit;
    text-decoration: none !important;
}
.aivb-field--title:hover,
a:hover > .aivb-field--title { color: var(--aivb-field-primary) !important; }

.aivb-field--media {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    border-radius: var(--aivb-ui-image-radius, 8px) !important;
    background: var(--aivb-field-surface);
    object-fit: cover;
}

.aivb-field--summary,
.aivb-field--content {
    color: var(--aivb-field-muted);
    font-family: var(--aivb-field-body-font);
    font-size: var(--aivb-ui-base-size, 16px);
    line-height: 1.65;
}
.aivb-field--summary > :first-child,
.aivb-field--content > :first-child { margin-top: 0; }
.aivb-field--summary > :last-child,
.aivb-field--content > :last-child { margin-bottom: 0; }
.aivb-field--content :is(a, a:visited) {
    color: var(--aivb-field-primary);
    font-weight: 600;
    text-decoration-color: color-mix(in srgb, var(--aivb-field-primary) 42%, transparent);
    text-underline-offset: .16em;
}
.aivb-field--content a:hover { color: var(--aivb-field-accent); text-decoration-color: currentColor; }
.aivb-field--content :is(ul, ol) { padding-inline-start: 1.3em; }
.aivb-field--content li + li { margin-top: .35em; }
.aivb-field--content blockquote {
    margin: 1.25em 0;
    padding: 1em 1.1em;
    border-inline-start: 3px solid var(--aivb-field-primary);
    border-radius: 0 var(--aivb-field-input-radius) var(--aivb-field-input-radius) 0;
    background: var(--aivb-field-surface);
    color: var(--aivb-field-text);
}
.aivb-field--content table {
    width: 100%;
    margin: 1.25em 0;
    border: 1px solid var(--aivb-field-border);
    border-collapse: separate;
    border-radius: var(--aivb-field-card-radius);
    border-spacing: 0;
    overflow: hidden;
}
.aivb-field--content :is(th, td) { padding: .75em .9em; border-bottom: 1px solid var(--aivb-field-border); text-align: start; }
.aivb-field--content th { background: var(--aivb-field-surface-strong); color: var(--aivb-field-text); font-weight: 700; }
.aivb-field--content tr:last-child :is(th, td) { border-bottom: 0; }

.aivb-field--price,
.aivb-loop-price {
    color: var(--aivb-field-primary) !important;
    font-size: 1.2em;
    font-weight: 750;
    font-variant-numeric: tabular-nums;
    line-height: 1.25;
}
.aivb-field--regular-price,
.aivb-loop-regular-price { color: var(--aivb-field-muted) !important; text-decoration: line-through; }
.aivb-field--savings,
.aivb-field--discount {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 2px 8px;
    border: 1px solid var(--aivb-field-border);
    border-radius: var(--aivb-field-input-radius);
    background: var(--aivb-field-surface);
    color: var(--aivb-field-primary);
    font-size: .78em;
    font-weight: 700;
    line-height: 1.2;
}

.aivb-field--taxonomy,
.aivb-field--badge,
.aivb-field--stock,
.aivb-field--date,
.aivb-field--author,
.aivb-field--reading-time,
.aivb-field--comments-count,
.aivb-field--review-count,
.aivb-field--sku,
.aivb-field--attribute,
.aivb-field--sales-count {
    color: var(--aivb-field-muted);
    font-size: .875em;
    line-height: 1.45;
}
.aivb-field--taxonomy {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 6px;
    vertical-align: middle;
}
.aivb-field--taxonomy a,
.aivb-field--badge {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 3px 8px;
    border: 1px solid var(--aivb-field-border);
    border-radius: var(--aivb-field-input-radius);
    background: var(--aivb-field-surface);
    color: var(--aivb-field-primary) !important;
    font-size: .82em;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
}
.aivb-field--taxonomy a:hover { background: var(--aivb-field-surface-strong); border-color: var(--aivb-field-primary); }
.aivb-field--badge { background: var(--aivb-field-surface-strong); }
.aivb-field--rating .star-rating,
.aivb-field--rating .star-rating span::before { color: var(--aivb-field-accent); }
.aivb-field--stock { display: inline-flex; align-items: center; gap: 6px; font-weight: 650; }
.aivb-field--stock::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: currentColor; opacity: .72; }
.aivb-field--avatar { width: 40px; height: 40px; border: 1px solid var(--aivb-field-border); border-radius: 50%; object-fit: cover; }

.aivb-field--actions,
.aivb-loop-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.aivb-field--action,
.aivb-field--actions :is(button, .button, a),
.aivb-field.aivb-loop-button,
.aivb-field.aivb-inquiry-trigger {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: var(--aivb-field-button-height) !important;
    padding: 0 18px !important;
    border: 1px solid var(--aivb-field-primary) !important;
    border-radius: var(--aivb-field-button-radius) !important;
    background: var(--aivb-field-primary) !important;
    box-shadow: none !important;
    color: #fff !important;
    font-family: var(--aivb-field-body-font) !important;
    font-size: .94rem !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    text-align: center;
    text-decoration: none !important;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}
.aivb-field--action:hover,
.aivb-field--actions :is(button, .button, a):hover,
.aivb-field.aivb-loop-button:hover,
.aivb-field.aivb-inquiry-trigger:hover { background: var(--aivb-field-accent) !important; border-color: var(--aivb-field-accent) !important; color: #fff !important; transform: translateY(-1px); }
.aivb-field--action:focus-visible,
.aivb-field--actions :is(button, .button, a):focus-visible,
.aivb-field.aivb-loop-button:focus-visible,
.aivb-field.aivb-inquiry-trigger:focus-visible { outline: 3px solid color-mix(in srgb, var(--aivb-field-primary) 30%, transparent); outline-offset: 2px; }
.aivb-field--action.aivb-loop-button--secondary,
.aivb-field--actions .aivb-loop-button--secondary {
    background: transparent !important;
    color: var(--aivb-field-primary) !important;
}
.aivb-field--action.aivb-loop-button--secondary:hover,
.aivb-field--actions .aivb-loop-button--secondary:hover { background: var(--aivb-field-surface-strong) !important; color: var(--aivb-field-accent) !important; }
.aivb-field.aivb-loop-button--outline,
.aivb-field.aivb-loop-button--ghost,
.aivb-loop-button--outline :is(button, .button, a),
.aivb-loop-button--ghost :is(button, .button, a) {
    background: transparent !important;
    color: var(--aivb-field-primary) !important;
}
.aivb-field.aivb-loop-button--ghost,
.aivb-loop-button--ghost :is(button, .button, a) { border-color: transparent !important; }
.aivb-field.aivb-loop-button--outline:hover,
.aivb-field.aivb-loop-button--ghost:hover,
.aivb-loop-button--outline :is(button, .button, a):hover,
.aivb-loop-button--ghost :is(button, .button, a):hover { background: var(--aivb-field-surface-strong) !important; color: var(--aivb-field-accent) !important; }
.aivb-field--actions.aivb-loop-add-to-cart :is(.button, button) { width: auto; margin: 0; }

.aivb-field--comments {
    max-width: 800px;
    margin: 40px auto;
    padding: 20px;
    color: var(--aivb-field-text);
}
.aivb-field--comments :is(h3, h4) {
    color: var(--aivb-field-text) !important;
    font-family: var(--aivb-field-heading-font) !important;
    letter-spacing: -.015em;
}
.aivb-field--comments h3 { margin: 0 0 20px; font-size: clamp(1.25rem, 1.1rem + .4vw, 1.5rem); }
.aivb-field--comments h4 { margin: 0 0 18px; font-size: 1.125rem; }
.aivb-field--comments .aivb-comments-list { margin-bottom: 28px; }
.aivb-field--comments .aivb-comment-item,
.aivb-field--comments .aivb-comment-form {
    border: 1px solid var(--aivb-field-border) !important;
    border-radius: var(--aivb-field-card-radius) !important;
    background: var(--aivb-field-page) !important;
    box-shadow: none;
}
.aivb-field--comments .aivb-comment-item { margin-bottom: 12px; padding: 18px !important; }
.aivb-field--comments .aivb-comment-form { padding: 22px !important; }
.aivb-field--comments .aivb-comment-header { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.aivb-field--comments .aivb-comment-avatar { width: 44px; height: 44px; margin: 0 !important; border: 1px solid var(--aivb-field-border); border-radius: 50%; }
.aivb-field--comments .aivb-comment-author { color: var(--aivb-field-text) !important; font-weight: 700; }
.aivb-field--comments .aivb-comment-date,
.aivb-field--comments .aivb-no-comments { color: var(--aivb-field-muted) !important; }
.aivb-field--comments .aivb-comment-content { color: var(--aivb-field-text) !important; line-height: 1.65; }
.aivb-field--comments .aivb-form-group { margin-bottom: 16px; }
.aivb-field--comments .aivb-form-group label { color: var(--aivb-field-text) !important; font-weight: 650; }
.aivb-field--comments .aivb-form-group :is(input[type="text"], input[type="email"], textarea) {
    width: 100%;
    min-height: 44px;
    padding: 10px 12px;
    border: 1px solid var(--aivb-field-border) !important;
    border-radius: var(--aivb-field-input-radius) !important;
    background: var(--aivb-field-page);
    color: var(--aivb-field-text) !important;
    font: inherit;
}
.aivb-field--comments .aivb-form-group textarea { min-height: 120px; resize: vertical; }
.aivb-field--comments .aivb-form-group :is(input, textarea):focus { border-color: var(--aivb-field-primary) !important; outline: 3px solid color-mix(in srgb, var(--aivb-field-primary) 22%, transparent); outline-offset: 1px; }
.aivb-field--comments .aivb-submit-button {
    min-height: var(--aivb-field-button-height) !important;
    padding: 0 18px !important;
    border: 1px solid var(--aivb-field-primary) !important;
    border-radius: var(--aivb-field-button-radius) !important;
    background: var(--aivb-field-primary) !important;
    color: #fff !important;
    font: 700 .94rem/1 var(--aivb-field-body-font) !important;
}
.aivb-field--comments .aivb-submit-button:hover { background: var(--aivb-field-accent) !important; border-color: var(--aivb-field-accent) !important; opacity: 1 !important; }
.aivb-field--comments .aivb-comments-message { border: 1px solid var(--aivb-field-border); border-radius: var(--aivb-field-input-radius); background: var(--aivb-field-surface); color: var(--aivb-field-text); }
.aivb-field--comments .aivb-comments-message:is(.success, .error) { border-color: var(--aivb-field-border); background: var(--aivb-field-surface); color: var(--aivb-field-text); }

/* A detail/Loop template may provide a legacy reference-card wrapper. Its data
 * fields still use the same system and must not be recoloured by inline or theme CTA rules. */
.aivb-reference-loop-card,
.aivb-loop-card[data-aivb-card-preset="default"] {
    --aivb-loop-title-size: clamp(1.12rem, 1.02rem + .34vw, 1.34rem);
    --aivb-loop-title-line-height: 1.25;
    --aivb-loop-body-size: .95rem;
    --aivb-loop-button-height-density: 42px;
    --aivb-loop-button-padding-x: 15px;
    --aivb-loop-button-font-size: .86rem;
    box-sizing: border-box;
    overflow: hidden !important;
    border: 1px solid var(--aivb-field-border) !important;
    border-radius: var(--aivb-field-card-radius) !important;
    background: var(--aivb-field-page) !important;
    box-shadow: var(--aivb-field-shadow) !important;
}
.aivb-reference-loop-card .aivb-field,
.aivb-loop-card .aivb-field { --aivb-field-page: var(--aivb-loop-page, var(--aivb-ui-page, #fff)); }

/* Default Loop cards are also rendered inside Query, where frontend.css is
 * intentionally not loaded. Keep their media/body geometry here so text never
 * touches the card edge in either rendering path. */
.aivb-loop-card[data-aivb-card-preset="default"] { display: flex; flex-direction: column; min-width: 0; }
.aivb-loop-card[data-aivb-card-preset="default"] .aivb-loop-card__media { display: block; width: 100%; overflow: hidden; background: var(--aivb-field-surface); }
.aivb-loop-card[data-aivb-card-preset="default"] .aivb-loop-card__image { display: block !important; width: 100% !important; height: 260px !important; margin: 0 !important; border-radius: 0 !important; object-fit: cover !important; object-position: center; }
.aivb-loop-card[data-aivb-card-preset="default"] .aivb-loop-card__image--post { height: 220px !important; }
.aivb-loop-card[data-aivb-card-preset="default"] .aivb-loop-card__body { display: flex; flex: 1 1 auto; flex-direction: column; gap: 10px; min-width: 0; padding: 16px !important; }
.aivb-loop-card[data-aivb-card-preset="default"] .aivb-loop-card__body > * { min-width: 0; margin: 0 !important; }
.aivb-loop-card[data-aivb-card-preset="default"] .aivb-loop-card__eyebrow,
.aivb-loop-card[data-aivb-card-preset="default"] .aivb-loop-card__rating,
.aivb-loop-card[data-aivb-card-preset="default"] .aivb-loop-card__meta { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; color: var(--aivb-field-muted); font-size: .84rem; line-height: 1.4; }
.aivb-loop-card[data-aivb-card-preset="default"] .aivb-loop-card__title { color: var(--aivb-field-text); font-family: var(--aivb-field-heading-font); font-size: var(--aivb-loop-title-size); font-weight: 700; line-height: var(--aivb-loop-title-line-height); }
.aivb-loop-card[data-aivb-card-preset="default"] .aivb-loop-card__title a { color: inherit; text-decoration: none !important; }
.aivb-loop-card[data-aivb-card-preset="default"] .aivb-loop-card__summary { color: var(--aivb-field-muted); font-size: var(--aivb-loop-body-size); line-height: 1.58; }
.aivb-loop-card[data-aivb-card-preset="default"] .aivb-loop-card__summary p { margin: 0 !important; }
.aivb-loop-card[data-aivb-card-preset="default"] .aivb-loop-card__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto !important; padding-top: 2px; }
.aivb-loop-card[data-aivb-card-preset="default"] .aivb-loop-button--disabled { display: inline-flex; align-items: center; justify-content: center; min-height: var(--aivb-loop-button-height-density); padding-inline: var(--aivb-loop-button-padding-x); border: 1px solid var(--aivb-field-border); border-radius: var(--aivb-field-button-radius); cursor: not-allowed; opacity: .72; background: var(--aivb-field-surface) !important; color: var(--aivb-field-muted) !important; font-size: var(--aivb-loop-button-font-size); font-weight: 700; }

/* Link chrome belongs to the surrounding theme, not field data.  Scope this
 * reset to AIVB output so product/category/read-more links never regain a
 * theme underline in a Loop, Query result, or detail field. */
.aivb-query-group a,
.aivb-loop-container a,
.aivb-reference-loop-card a,
.aivb-loop-card a,
.aivb-field a {
    text-decoration: none !important;
}

/* Card density follows the resolved column count rather than a fixed global
 * heading/button size.  The same attributes are emitted by Query and legacy
 * Loop renderers so saved templates remain compatible. */
:is(.aivb-query-grid, .aivb-loop-container)[data-aivb-grid-columns="4"] {
    --aivb-loop-title-size: clamp(1.04rem, .98rem + .22vw, 1.21rem);
    --aivb-loop-title-line-height: 1.24;
    --aivb-loop-body-size: .88rem;
    --aivb-loop-button-height-density: 40px;
    --aivb-loop-button-padding-x: 12px;
    --aivb-loop-button-font-size: .8rem;
}
:is(.aivb-query-grid, .aivb-loop-container)[data-aivb-grid-columns="3"] {
    --aivb-loop-title-size: clamp(1.1rem, 1rem + .3vw, 1.3rem);
    --aivb-loop-title-line-height: 1.25;
    --aivb-loop-body-size: .92rem;
    --aivb-loop-button-height-density: 42px;
    --aivb-loop-button-padding-x: 14px;
    --aivb-loop-button-font-size: .84rem;
}
:is(.aivb-query-grid, .aivb-loop-container)[data-aivb-grid-columns="2"] {
    --aivb-loop-title-size: clamp(1.18rem, 1.06rem + .42vw, 1.42rem);
    --aivb-loop-body-size: .96rem;
    --aivb-loop-button-height-density: 44px;
    --aivb-loop-button-padding-x: 16px;
    --aivb-loop-button-font-size: .88rem;
}

/* Reference conversion markup is intentionally normalized here as a final
 * guardrail: utility classes or a theme must not decide image height, heading
 * scale, CTA geometry or the reading order of dynamic field modules. */
.aivb-reference-loop-card > .container {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
.aivb-reference-loop-card > .container > article {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
    min-height: 100%;
    overflow: hidden !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}
/* Some early AI cards store their media/body directly on the reference root
 * instead of using the newer .container > article skeleton. Give that legacy
 * shape the same dependable inner spacing in sidebar and topbar Query layouts. */
.aivb-reference-loop-card:not(:has(> .container)) {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    padding: 16px !important;
}
.aivb-reference-loop-card:not(:has(> .container)) > :first-child:has(img) {
    width: calc(100% + 32px) !important;
    margin: -16px -16px 0 !important;
    overflow: hidden;
}
.aivb-reference-loop-card:not(:has(> .container)) > :first-child:has(img) img {
    display: block !important;
    width: 100% !important;
    height: 260px !important;
    margin: 0 !important;
    border-radius: 0 !important;
    object-fit: cover !important;
}
.aivb-reference-loop-card:not(:has(> .container)) > * { margin: 0 !important; }
.aivb-reference-loop-card > .container > article > :first-child {
    width: 100%;
    padding: 0 !important;
    overflow: hidden;
    background: var(--aivb-field-surface);
}
.aivb-reference-loop-card .aivb-reference-loop-card__image {
    display: block !important;
    width: 100% !important;
    height: 260px !important;
    min-height: 260px !important;
    max-height: 260px !important;
    margin: 0 !important;
    border-radius: 0 !important;
    object-fit: cover !important;
    object-position: center !important;
}
.aivb-reference-loop-card--post .aivb-reference-loop-card__image { height: 220px !important; min-height: 220px !important; max-height: 220px !important; }
.aivb-reference-loop-card > .container > article > :last-child {
    display: flex !important;
    flex: 1 1 auto;
    flex-direction: column !important;
    gap: 12px !important;
    padding: 16px !important;
}
.aivb-reference-loop-card > .container > article > :last-child > * { margin: 0 !important; }
.aivb-reference-loop-card .aivb-reference-loop-card__taxonomy,
.aivb-reference-loop-card > .container > article > :last-child > :has(.aivb-loop-taxonomy) { order: 1; }
.aivb-reference-loop-card .aivb-reference-loop-card__title,
.aivb-reference-loop-card .aivb-field--title { order: 2; color: var(--aivb-field-text) !important; font-size: var(--aivb-loop-title-size) !important; line-height: var(--aivb-loop-title-line-height) !important; }
.aivb-reference-loop-card .aivb-reference-loop-card__price { order: 3; }
.aivb-reference-loop-card .aivb-reference-loop-card__summary { order: 4; color: var(--aivb-field-muted) !important; font-size: var(--aivb-loop-body-size) !important; font-weight: 400 !important; letter-spacing: normal !important; line-height: 1.58 !important; text-transform: none !important; }
.aivb-reference-loop-card .aivb-reference-loop-card__summary p { margin: 0 !important; }
.aivb-reference-loop-card .aivb-reference-loop-card__rating,
.aivb-reference-loop-card > .container > article > :last-child > :has(.aivb-loop-stock, .aivb-loop-sku) { order: 5; }
.aivb-reference-loop-card .aivb-reference-loop-card__actions { order: 6; margin-top: 4px !important; }
.aivb-reference-loop-card .aivb-reference-loop-card__specs,
.aivb-reference-loop-card section[aria-labelledby="specifications-heading"] { order: 7; }
.aivb-reference-loop-card section[aria-labelledby="specifications-heading"]:has(> .sr-only:only-child) { display: none !important; }
.aivb-reference-loop-card hr { order: 8; width: 100%; margin: 2px 0 !important; border: 0; border-top: 1px solid var(--aivb-field-border); }
.aivb-reference-loop-card :is(svg, [class*="icon" i]) {
    width: 1rem !important;
    height: 1rem !important;
    min-width: 1rem !important;
    min-height: 1rem !important;
    max-width: 1rem !important;
    max-height: 1rem !important;
    fill: currentColor;
    color: var(--aivb-field-primary);
    vertical-align: -.125em;
}
.aivb-reference-loop-card :is(.aivb-reference-loop-card__actions, .aivb-field--actions) > * { margin: 0 !important; }
.aivb-reference-loop-card :is(.aivb-reference-loop-card__actions, .aivb-field--actions, .aivb-loop-button, .aivb-inquiry-trigger) :is(button, a),
.aivb-reference-loop-card :is(.aivb-loop-button, .aivb-inquiry-trigger) {
    min-height: var(--aivb-loop-button-height-density) !important;
    padding-inline: var(--aivb-loop-button-padding-x) !important;
    font-size: var(--aivb-loop-button-font-size) !important;
}

@media (max-width: 1024px) and (min-width: 768px) {
    :is(.aivb-query-grid, .aivb-loop-container)[data-aivb-grid-columns-tablet="3"] { --aivb-loop-title-size: clamp(1.06rem, 1rem + .25vw, 1.22rem); --aivb-loop-body-size: .88rem; --aivb-loop-button-height-density: 40px; --aivb-loop-button-font-size: .8rem; }
    :is(.aivb-query-grid, .aivb-loop-container)[data-aivb-grid-columns-tablet="2"] { --aivb-loop-title-size: clamp(1.14rem, 1.04rem + .34vw, 1.34rem); --aivb-loop-body-size: .93rem; --aivb-loop-button-height-density: 42px; --aivb-loop-button-font-size: .84rem; }
}

@media (max-width: 767px) {
    :is(.aivb-query-grid, .aivb-loop-container)[data-aivb-grid-columns-mobile="2"] { --aivb-loop-title-size: clamp(1.04rem, .96rem + 1vw, 1.18rem); --aivb-loop-title-line-height: 1.23; --aivb-loop-body-size: .86rem; --aivb-loop-button-height-density: 40px; --aivb-loop-button-padding-x: 11px; --aivb-loop-button-font-size: .78rem; }
    :is(.aivb-query-grid, .aivb-loop-container)[data-aivb-grid-columns-mobile="1"] { --aivb-loop-title-size: clamp(1.18rem, 1rem + 1.1vw, 1.36rem); --aivb-loop-body-size: .94rem; --aivb-loop-button-height-density: 42px; --aivb-loop-button-padding-x: 15px; --aivb-loop-button-font-size: .84rem; }
}

@media (max-width: 640px) {
    .aivb-field--actions > * { flex: 1 1 auto; }
    .aivb-field--content { overflow-wrap: anywhere; }
    .aivb-loop-container { box-sizing: border-box; gap: 16px !important; padding: 0 14px 28px; }
}

@media (prefers-reduced-motion: reduce) {
    .aivb-field--action,
    .aivb-field--actions :is(button, .button, a),
    .aivb-field.aivb-loop-button,
    .aivb-field.aivb-inquiry-trigger { transition: none; }
}
