/* Styles for the blocks the editor can add to rich text (figure, pull quote, box, button, video). Neutral, driven by custom properties
   so each design can set them: --cms-accent, --cms-accent-ink, --cms-soft, --cms-line, --cms-radius, --cms-font-display. Used on the public site and in the editor. */
.cms-figure { margin: 1.5em auto; max-width: 100%; }
.cms-figure[data-size="small"] { max-width: 20rem; }
.cms-figure[data-size="medium"] { max-width: 36rem; }
.cms-figure[data-size="full"] { max-width: 100%; }
.cms-figure img, .cms-figure picture { display: block; max-width: 100%; height: auto; border-radius: var(--cms-radius, 6px); }
.cms-figure figcaption { margin-top: .5em; font-size: .9em; opacity: .75; text-align: center; }
.cms-figure figcaption:empty { display: none; }
blockquote.cms-pullquote { margin: 1.6em 0; padding: .25em 0 .25em 1.1em; border-left: 3px solid var(--cms-accent, currentColor); font-family: var(--cms-font-display, inherit); font-size: 1.35em; line-height: 1.4; font-style: italic; }
.cms-callout { margin: 1.4em 0; padding: 1em 1.2em; border-radius: var(--cms-radius, 8px); background: var(--cms-soft, rgba(128, 140, 100, .14)); border: 1px solid var(--cms-line, rgba(128, 140, 100, .35)); }
.cms-callout--tip { background: var(--cms-soft-2, rgba(190, 120, 80, .12)); border-color: var(--cms-line-2, rgba(190, 120, 80, .35)); }
.cms-callout > :first-child { margin-top: 0; } .cms-callout > :last-child { margin-bottom: 0; }
.cms-cta { margin: 1.4em 0; }
.cms-btn { display: inline-block; padding: .75em 1.4em; border-radius: var(--cms-radius-btn, 999px); text-decoration: none; font-weight: 600; line-height: 1.2; border: 2px solid var(--cms-accent, currentColor); background: var(--cms-accent, #4f6338); color: var(--cms-accent-ink, #fff); }
.cms-btn--secondary { background: transparent; color: var(--cms-accent, inherit); }
.cms-btn:hover { filter: brightness(.94); }
.cms-embed { position: relative; margin: 1.5em 0; aspect-ratio: 16 / 9; max-width: 100%; }
.cms-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; border-radius: var(--cms-radius, 6px); }
.cms-embed:has(iframe[src*="instagram.com"]), .cms-embed:has(iframe[src*="linkedin.com"]) { aspect-ratio: auto; max-width: 28rem; margin-inline: auto; min-height: 36rem; }
table:not([class]) { border-collapse: collapse; width: 100%; margin: 1.4em 0; }
table:not([class]) th, table:not([class]) td { border: 1px solid var(--cms-line, rgba(128, 128, 128, .35)); padding: .55em .7em; text-align: left; vertical-align: top; }
table:not([class]) th { background: var(--cms-soft, rgba(128, 140, 100, .14)); }
