/* Widget geometry is local; appearance follows Bootstrap root tokens. */
@layer custom {
    .widget-area,
    .article-widgets {
        display: grid;
        gap: var(--bs-spacer-9);
    }
    .site-widget {
        min-width: 0;
        color: var(--bs-fg-body);
        padding-top: var(--bs-spacer-6);
        border-top: var(--bs-border-width) solid var(--bs-border-color);
        overflow-wrap: anywhere;
    }
    .site-widget :is(div, header, ul, ol, li, form, label, input, h2, h3) {
        min-width: 0;
    }
    .site-widget :is(h2, h3) {
        margin: 0;
        font-family: var(--bs-heading-font-family);
        font-weight: var(--bs-heading-font-weight);
        line-height: var(--bs-heading-line-height);
    }
    .site-widget--surface {
        padding: var(--bs-spacer-6);
        border: 0;
        border-radius: var(--bs-radius-5);
        background: var(--bs-theme-bg-subtle, var(--bs-bg-2));
    }
    .site-widget__heading {
        display: flex;
        align-items: baseline;
        gap: var(--bs-spacer-3);
        margin-bottom: var(--bs-spacer-5);
    }
    .site-widget__heading > i {
        color: var(--bs-primary-fg);
        font-size: var(--bs-font-size-lg);
        flex-shrink: 0;
    }
    .site-widget :is(a, button, input, select, textarea):focus-visible {
        outline: var(--bs-focus-ring-width) solid var(--bs-primary-fg);
        outline-offset: var(--bs-spacer-1);
    }
    .site-widget .btn,
    .site-widget input {
        min-height: 44px;
        max-width: 100%;
    }
    .site-widget .btn {
        white-space: normal;
        gap: var(--bs-spacer-3);
    }
    .site-widget .btn > i {
        flex-shrink: 0;
    }
    .site-widget__search {
        display: grid;
        gap: var(--bs-spacer-4);
    }
    .site-widget__search-field {
        display: grid;
        gap: var(--bs-spacer-3);
    }
    .site-widget__label {
        color: var(--bs-fg-2);
        font-size: var(--bs-font-size-sm);
    }
    .site-widget__topics,
    .site-widget__tags,
    .site-widget__articles {
        padding: 0;
        margin: 0;
        list-style: none;
    }
    .site-widget__topic,
    .site-widget__article-title a {
        display: flex;
        justify-content: space-between;
        align-items: baseline;
        gap: var(--bs-spacer-4);
        padding: 0;
        border: 0;
        color: inherit;
        text-align: start;
        font: inherit;
        min-height: 44px;
        white-space: normal;
    }
    .site-widget__topic > span:first-child,
    .site-widget__article-title a > span {
        min-width: 0;
    }
    .site-widget__topic {
        align-items: center;
        padding-block: var(--bs-spacer-3);
        border-bottom: var(--bs-border-width) solid var(--bs-border-color);
    }
    .site-widget__topic:hover,
    .site-widget__article-title a:hover {
        color: var(--bs-primary-fg);
    }
    .site-widget__topic > i,
    .site-widget__article-title i {
        color: var(--bs-primary-fg);
        flex-shrink: 0;
        font-size: var(--bs-font-size-lg);
    }
    .site-widget__count {
        color: var(--bs-fg-2);
        font-size: var(--bs-font-size-sm);
        font-variant-numeric: tabular-nums;
        white-space: nowrap;
        flex-shrink: 0;
    }
    .site-widget__tags {
        display: flex;
        flex-wrap: wrap;
        gap: var(--bs-spacer-3);
    }
    .site-widget__tags > li {
        max-width: 100%;
    }
    .site-widget__tag {
        text-align: start;
        font-size: var(--bs-font-size-sm);
    }
    .site-widget__articles > li {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        gap: var(--bs-spacer-4);
        padding-block: var(--bs-spacer-5);
        border-bottom: var(--bs-border-width) solid var(--bs-border-color);
    }
    .site-widget__articles > li:first-child {
        padding-top: 0;
    }
    .site-widget__number {
        min-width: 2ch;
        color: var(--bs-primary-fg);
        font-size: var(--bs-font-size-sm);
        font-variant-numeric: tabular-nums;
        white-space: nowrap;
    }
    .site-widget__date {
        margin: var(--bs-spacer-3) 0 0;
        color: var(--bs-fg-2);
        font-size: var(--bs-font-size-sm);
    }
    .site-widget--banner {
        display: grid;
        justify-items: start;
        gap: var(--bs-spacer-5);
        padding: var(--bs-spacer-7);
        border: 0;
        border-radius: var(--bs-radius-5);
        background: var(--widget-banner-bg, var(--bs-primary-bg-subtle));
        color: var(--widget-banner-fg, var(--bs-fg-body));
    }
    .site-widget--banner.site-widget--small {
        padding: var(--bs-spacer-5);
        gap: var(--bs-spacer-4);
    }
    .site-widget--banner.site-widget--large {
        padding: var(--bs-spacer-9);
        gap: var(--bs-spacer-6);
    }
    .site-widget__symbol {
        color: var(--bs-primary-fg);
        font-size: var(--bs-font-size-3xl);
        line-height: 1;
    }
    .site-widget__eyebrow {
        margin: 0;
        font-size: var(--bs-font-size-sm);
        font-weight: var(--bs-font-weight-semibold);
    }
    .site-widget__copy {
        margin: 0;
        color: var(--bs-fg-2);
        white-space: pre-line;
    }
    .site-widget--banner .site-widget__copy {
        color: inherit;
    }
    .site-widget__action {
        margin-top: var(--bs-spacer-3);
    }
    .site-widget--note-surface {
        padding: var(--bs-spacer-7);
        border: 0;
        border-radius: var(--bs-radius-5);
        background: var(--widget-note-bg, var(--bs-bg-2));
    }
    .site-widget__rich-text > :first-child {
        margin-top: 0;
    }
    .site-widget__rich-text > :last-child {
        margin-bottom: 0;
    }
    .site-widget__rich-text :is(p, ul, ol, blockquote) {
        margin-block: 0 var(--bs-spacer-5);
    }
    .site-widget__rich-text :is(ul, ol) {
        padding-inline-start: var(--bs-spacer-7);
    }
    .site-widget__rich-text blockquote {
        margin-inline: 0;
        border-inline-start: var(--bs-spacer-1) solid var(--bs-primary-border);
        padding-inline-start: var(--bs-spacer-5);
        color: var(--bs-fg-2);
    }
    .site-widget__rich-text :is(img, video, iframe) {
        max-width: 100%;
        height: auto;
        border-radius: var(--bs-radius-4);
    }
    .site-widget__rich-text :is(pre, table) {
        display: block;
        max-width: 100%;
        overflow-x: auto;
    }
    .site-widget__rich-text a,
    .site-widget__privacy {
        color: var(--bs-primary-fg);
        text-underline-offset: var(--bs-spacer-1);
    }
    .site-widget__rich-text--left {
        text-align: start;
    }
    .site-widget__rich-text--right {
        text-align: end;
    }
    .site-widget__rich-text--center {
        text-align: center;
    }
    .site-widget__rich-text--justify {
        text-align: justify;
    }
    .site-widget--newsletter {
        border-top-color: var(--bs-primary-border);
    }
    .site-widget--newsletter > .site-widget__symbol {
        display: block;
        margin-bottom: var(--bs-spacer-5);
    }
    .site-widget__signup {
        margin-top: var(--bs-spacer-6);
    }
    .site-widget__signup .cms-shortcode-form__form {
        /* Contain the form row's Bootstrap gutters within the widget. */
        padding-inline: calc(var(--bs-spacer-3) / 2);
    }
    .site-widget__signup :is(input, button[type='submit']) {
        min-height: 44px;
        max-width: 100%;
    }
    .site-widget__signup button[type='submit'] {
        white-space: normal;
    }
    .site-widget__notice,
    .site-widget__note {
        margin: var(--bs-spacer-5) 0 0;
        color: var(--bs-fg-2);
        font-size: var(--bs-font-size-sm);
    }
    .site-widget__archive {
        margin-top: var(--bs-spacer-5);
    }
    .site-widget__privacy {
        display: inline-flex;
        align-items: center;
        min-height: 44px;
        margin-top: var(--bs-spacer-3);
        font-size: var(--bs-font-size-sm);
    }
    [data-widget-theme-form] .cms-shortcode-form__submit {
        --bs-btn-bg: var(--bs-primary-base) !important;
        --bs-btn-color: var(--bs-primary-contrast) !important;
        --bs-btn-border-color: var(--bs-primary-base) !important;
        --bs-btn-hover-bg: var(--bs-primary-base) !important;
        --bs-btn-hover-color: var(--bs-primary-contrast) !important;
        --bs-btn-hover-border-color: var(--bs-primary-base) !important;
        --bs-btn-active-bg: var(--bs-primary-base) !important;
        --bs-btn-active-color: var(--bs-primary-contrast) !important;
        --bs-btn-active-border-color: var(--bs-primary-base) !important;
        border-radius: var(--bs-radius-4);
    }
    [data-widget-theme-form] .form-control {
        border-radius: var(--bs-radius-4);
    }
}
