/* Text remains in the DOM for selection and assistive technology. Only its visual ink is replaced. */
.sg-raster { position: relative; }
.sg-raster.sg-raster-ready { -webkit-text-fill-color: transparent; color: transparent !important; }
.sg-raster.sg-raster-ready::after { content: ""; display: block; position: absolute; inset: 0 auto auto 0; width: var(--sg-width); height: var(--sg-height); pointer-events: none; background: var(--sg-ink); -webkit-mask: var(--sg-image) 0 0 / 100% 100% no-repeat; mask: var(--sg-image) 0 0 / 100% 100% no-repeat; }
.sg-tester-output { margin: 1rem 0; overflow: hidden; min-height: 5rem; }
.sg-tester-output img { display: block; max-width: 100%; }
.sg-tester-status { font: 12px/1.5 system-ui, sans-serif; margin: .5rem 0; }
.sg-tester-input { font-family: system-ui, sans-serif !important; font-size: 18px !important; min-height: 5rem !important; height: 7rem !important; }
.sg-contact-note { font: 14px/1.5 system-ui, sans-serif; margin: 1rem 0; }
/* Flex-centred signature tiles: request centred raster and centre its box (23 Oct 2026). */
.font-signatures > .sg-raster { text-align: center; }
.font-signatures > .sg-raster.sg-raster-ready::after { inset: 0; margin: auto; }
/* Licence offer: figure keeps the price size; its raster replaces system text (23 Oct 2026). */
.offer-price > .offer-figure { font-size: inherit; letter-spacing: inherit; }
.offer-lead.sg-raster-ready, .font-offer dt.sg-raster-ready, .offer-price > span.sg-raster-ready { height: var(--sg-height); overflow: hidden; }
/* Buttons and short links: trimmed label raster placed in flow (23 Oct 2026). */
.sg-ui.sg-ui-ready { display: var(--sg-display) !important; align-items: center; justify-content: var(--sg-justify); column-gap: 0 !important; font-size: 0 !important; letter-spacing: 0 !important; text-decoration: none !important; }
.sg-ui.sg-ui-ready:not(.sg-ui-after)::before, .sg-ui.sg-ui-ready.sg-ui-after::after { content: ""; display: block; flex: 0 1 auto; min-width: 0; width: var(--sg-w); max-width: 100%; height: var(--sg-line); background: currentColor; -webkit-mask: var(--sg-image) left center / 100% auto no-repeat; mask: var(--sg-image) left center / 100% auto no-repeat; }
.sg-ui.sg-ui-ready:not(.sg-ui-after)::before { margin-right: var(--sg-gap); }
.sg-ui.sg-ui-ready.sg-ui-after::after { margin-left: var(--sg-gap); }
.sg-ui.sg-ui-ready.sg-ui-underline { background-image: linear-gradient(currentColor, currentColor); background-repeat: no-repeat; background-size: 100% 1px; background-position: 0 calc(100% - var(--sg-ul)); }
