/*!
 * Overprint — styles for module markup (BlockSuite).
 *
 * Module stylesheets are not in cascade layers, so rules in Overprint's
 * layered stylesheet cannot override what they set. This file loads after
 * them (and after the engine's integrations.css), outside the layers, so its
 * rules win; an admin's custom CSS still comes later. Colors come from the
 * engine's tokens and Overprint's --op-* values (overprint.css).
 */

/* --------------------------------------------------------------------------
   Buttons, heroes and stats: square, heavy, the first ink printed a little off
   -------------------------------------------------------------------------- */
.bst-button {
    border-width: var(--op-line);
    border-radius: 0;
    font-family: var(--v-font-heading);
    font-weight: 800;
    font-variation-settings: "wdth" 88;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    box-shadow: var(--op-pop) var(--op-pop) 0 var(--op-ink-1);
}
.bst-button:hover { translate: -1px -1px; box-shadow: calc(var(--op-pop) + 1px) calc(var(--op-pop) + 1px) 0 var(--op-ink-1); }
.bst-button:active { translate: var(--op-pop) var(--op-pop); box-shadow: none; }
.bst-button--outline { box-shadow: var(--op-pop) var(--op-pop) 0 var(--op-ink-2); }
.bst-hero { border-radius: 0; }
.bst-hero__heading {
    font-family: var(--v-font-heading);
    font-variation-settings: "wdth" var(--op-display-width);
    text-transform: var(--v-heading-case);
    line-height: 0.95;
    text-shadow: var(--op-mis) calc(var(--op-mis) * 0.7) 0 var(--op-ink-1);
}
.bst-hero__eyebrow { font-family: var(--op-font-label); letter-spacing: 0.12em; text-transform: uppercase; }
.bst-stats[data-style="cards"] .bst-stats__item {
    border: var(--op-line) solid var(--op-key);
    border-radius: 0;
    box-shadow: var(--op-pop) var(--op-pop) 0 var(--op-ink-2);
}
.bst-stats__value { font-family: var(--v-font-heading); font-weight: 800; font-variation-settings: "wdth" var(--op-display-width); }
.bst-stats__label { font-family: var(--op-font-label); }

/* --------------------------------------------------------------------------
   Tabs: stamped labels, the selected one inked, over an index card
   -------------------------------------------------------------------------- */
.bst-tabs-block__tablist { gap: 0.6rem; margin-block-end: 1rem; border-bottom: 0; }
.bst-tabs-block__tab {
    margin: 0;
    padding: 0.4rem 1rem;
    border: var(--op-line) solid var(--op-key);
    border-radius: 0;
    background: var(--v-surface);
    color: var(--v-text);
    font-family: var(--v-font-heading);
    font-weight: 800;
    font-variation-settings: "wdth" 85;
    text-transform: uppercase;
    box-shadow: none;
    transform: none;
    translate: none;
}
.bst-tabs-block__tab:hover { background: var(--v-surface-alt); color: var(--v-text); text-decoration: none; box-shadow: none; transform: none; translate: none; }
.bst-tabs-block__tab[aria-selected="true"],
.bst-tabs-block__tab[aria-selected="true"]:hover {
    border-color: var(--op-key);
    background: var(--v-accent);
    color: var(--v-on-accent);
}
.bst-tabs-block__tab:active { transform: none; translate: none; }
.bst-tabs-block__panel {
    padding: 1.25rem 1.5rem;
    border: var(--op-line) solid var(--op-key);
    border-radius: 0;
    background: var(--v-surface);
    box-shadow: var(--op-pop) var(--op-pop) 0 var(--op-ink-2);
}
.bst-tabs-block__panel > :first-child { margin-block-start: 0; }
.bst-tabs-block__panel > :last-child { margin-block-end: 0; }

/* --------------------------------------------------------------------------
   Accordions: a stack of index cards; the open one gets the first ink
   -------------------------------------------------------------------------- */
.bst-accordion__item,
.bst-accordion__item:first-of-type {
    border: var(--op-line) solid var(--op-key);
    border-radius: 0;
    background: var(--v-surface);
}
.bst-accordion__item + .bst-accordion__item { margin-block-start: 0.75rem; }
.bst-accordion__item:has(> .bst-accordion__header > .bst-accordion__trigger[aria-expanded="true"]) {
    box-shadow: var(--op-pop) var(--op-pop) 0 var(--op-ink-1);
}
.bst-accordion__header { font-size: var(--v-step-1); }
.bst-accordion__trigger {
    padding: 0.85rem 1.25rem;
    border-radius: 0;
    background: none;
    color: var(--v-text);
    font-family: var(--v-font-heading);
    font-weight: 800;
    font-variation-settings: "wdth" 88;
    text-transform: uppercase;
    box-shadow: none;
    transform: none;
    translate: none;
}
.bst-accordion__trigger:hover { background: var(--v-surface-alt); color: var(--v-text); box-shadow: none; transform: none; translate: none; }
.bst-accordion__trigger:active { transform: none; translate: none; }
.bst-accordion__content { padding: 0.25rem 1.25rem 1.25rem; }

/* --------------------------------------------------------------------------
   Other BlockSuite blocks
   -------------------------------------------------------------------------- */
.bst-cta { border-radius: 0; }
.bst-timeline__date { font-family: var(--op-font-label); font-weight: 700; }
.card-slider-block__inner { border: var(--op-line) solid var(--op-key); border-radius: 0; overflow: hidden; }
.card-slider-block__title { font-family: var(--v-font-heading); font-weight: 700; }
.card-slider-block__prev, .card-slider-block__next { border-radius: 0; box-shadow: none; translate: none; }
