@font-face {
    font-family: "Montserrat Local";
    src: url("../fonts/montserrat-latin.woff2") format("woff2");
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
}

@font-face {
    font-family: "Prompt Local";
    src: url("../fonts/prompt-800-latin.woff2") format("woff2");
    font-style: normal;
    font-weight: 800;
    font-display: swap;
}

@font-face {
    font-family: "Inter Local";
    src: url("../fonts/inter-latin.woff2") format("woff2");
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
}

:root {
    --avery-blue: #0038a5;
    --avery-blue-deep: #03178b;
    --avery-cream: #f9f4ea;
    --avery-yellow: #ffd20c;
    --avery-magenta: #c720a7;
    --avery-cyan: #3bcfe5;
    --avery-ink: #101322;
    --avery-muted: #555968;
    --avery-line: #d9d9df;
    --avery-white: #ffffff;
    --avery-success: #087a4b;
    --avery-warning: #8b4a00;
    --avery-danger: #9a2f19;
    --avery-surface-subtle: #f4f5f7;

    --eu-blue: #003399;
    --eu-yellow: #ffed00;
    --eu-black: #000000;
    --eu-white: #ffffff;

    --font-ui: "Montserrat Local", Montserrat, Arial, sans-serif;
    --font-display: "Prompt Local", "Arial Black", sans-serif;
    --font-eu: "Inter Local", Inter, Arial, sans-serif;
    --shell: 78rem;
    --radius-sm: 0.5rem;
    --radius-md: 1rem;
    --shadow-paper: 0.75rem 0.75rem 0 #d5cfbf;
    --focus: 0 0 0 0.22rem var(--avery-yellow), 0 0 0 0.4rem var(--avery-blue-deep);
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    scroll-padding-block: 2rem 7rem;
}

body {
    margin: 0;
    background: var(--avery-white);
    color: var(--avery-ink);
    font-family: var(--font-ui);
    font-size: 1rem;
    line-height: 1.65;
    overflow-wrap: break-word;
}

body.has-sticky-cta {
    padding-block-end: 6rem;
}

img {
    display: block;
    max-inline-size: 100%;
}

a {
    color: inherit;
    text-decoration-thickness: 0.1em;
    text-underline-offset: 0.18em;
}

button,
input {
    font: inherit;
}

button,
summary,
label,
a {
    -webkit-tap-highlight-color: transparent;
}

:focus-visible {
    outline: none;
    box-shadow: var(--focus);
}

[id] {
    scroll-margin-block-start: 2rem;
}

.shell {
    inline-size: min(100% - 2rem, var(--shell));
    margin-inline: auto;
}

.sr-only {
    position: absolute;
    inline-size: 1px;
    block-size: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.skip-link {
    position: fixed;
    inset-block-start: 0.75rem;
    inset-inline-start: 0.75rem;
    z-index: 1000;
    padding: 0.75rem 1rem;
    background: var(--avery-yellow);
    color: var(--avery-ink);
    font-weight: 700;
    transform: translateY(-160%);
}

.skip-link:focus {
    transform: translateY(0);
}

.site-header {
    position: relative;
    z-index: 10;
    background: rgba(255, 255, 255, 0.98);
    border-block-end: 1px solid var(--avery-line);
}

.header-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1.5rem;
    min-block-size: 5rem;
    padding-block: 0.75rem;
}

.text-lockup {
    display: inline-grid;
    color: var(--avery-blue-deep);
    line-height: 1;
    text-decoration: none;
}

.text-lockup__brand {
    margin-block-start: 0.2rem;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.015em;
}

.text-lockup__product {
    font-family: var(--font-display);
    font-size: 1.25rem;
    font-weight: 800;
    letter-spacing: -0.03em;
    text-transform: uppercase;
}

.site-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 1.15rem;
    font-size: 0.82rem;
    font-weight: 700;
}

.site-nav a {
    min-block-size: 2.75rem;
    display: inline-flex;
    align-items: center;
    color: var(--avery-blue-deep);
    text-decoration: none;
}

.site-nav a:hover {
    text-decoration: underline;
    text-decoration-color: var(--avery-magenta);
}

.hero {
    position: relative;
    overflow: hidden;
    background: var(--avery-cream);
    border-block-end: 1px solid #ddd5c5;
    padding-block: clamp(3.5rem, 8vw, 7.5rem);
}

.hero::before {
    content: "";
    position: absolute;
    inset-block: 0;
    inset-inline-start: max(0px, calc(50% + 29rem));
    inline-size: 0.5rem;
    background: var(--avery-magenta);
}

.hero-grid {
    display: grid;
    gap: 3rem;
}

.hero-copy {
    align-self: center;
}

.eyebrow,
.section-number,
.micro-label {
    margin: 0 0 1.25rem;
    color: var(--avery-blue-deep);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.eyebrow {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.eyebrow-dot {
    inline-size: 0.7rem;
    block-size: 0.7rem;
    flex: 0 0 auto;
    background: var(--avery-magenta);
    border-radius: 50%;
}

h1,
h2,
h3,
p {
    margin-block-start: 0;
}

h1,
h2 {
    text-wrap: balance;
}

h1 {
    max-inline-size: 48rem;
    margin-block-end: 1.5rem;
    color: var(--avery-blue-deep);
    font-family: var(--font-display);
    font-size: clamp(2.45rem, 5vw, 3.8rem);
    font-weight: 800;
    letter-spacing: -0.055em;
    line-height: 0.93;
    text-transform: uppercase;
}

h1 span {
    color: var(--avery-blue);
}

h2 {
    margin-block-end: 1.25rem;
    color: var(--avery-blue-deep);
    font-family: var(--font-display);
    font-size: clamp(2rem, 5.5vw, 4rem);
    font-weight: 800;
    letter-spacing: -0.045em;
    line-height: 1;
}

h3 {
    color: var(--avery-blue-deep);
    font-size: 1.15rem;
    line-height: 1.25;
}

.hero-lead {
    max-inline-size: 43rem;
    color: #303443;
    font-size: clamp(1.08rem, 2vw, 1.3rem);
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.75rem;
    margin-block: 2rem 1.5rem;
}

.primary-action,
.final-actions {
    display: grid;
    gap: 0.35rem;
}

.button {
    min-block-size: 3.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.65rem;
    padding: 0.75rem 1.4rem;
    border: 2px solid transparent;
    border-radius: 999px;
    cursor: pointer;
    font-size: 0.88rem;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    transition: background-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.button:hover:not(.button--disabled):not(:disabled) {
    transform: translateY(-2px);
}

.button--primary {
    background: var(--avery-blue);
    color: var(--avery-white);
}

.button--primary:hover:not(.button--disabled):not(:disabled) {
    background: var(--avery-blue-deep);
}

.button--secondary {
    background: var(--avery-white);
    border-color: var(--avery-blue);
    color: var(--avery-blue-deep);
}

.button--secondary:hover {
    background: #edf3ff;
}

.button--disabled,
.button:disabled {
    background: #747784;
    color: var(--avery-white);
    cursor: not-allowed;
}

.cta-status {
    max-inline-size: 18rem;
    color: var(--avery-muted);
    font-size: 0.7rem;
    line-height: 1.35;
}

.trust-line {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem 1.35rem;
    margin: 0;
    padding: 0;
    color: var(--avery-muted);
    font-size: 0.75rem;
    font-weight: 600;
    list-style: none;
}

.trust-line li::before {
    content: "✓";
    margin-inline-end: 0.45rem;
    color: var(--avery-success);
    font-weight: 800;
}

.hero-copy > .legal-note {
    max-inline-size: 43rem;
    margin-block-start: 1.25rem;
}

.label-workbench {
    position: relative;
    padding: clamp(1rem, 3vw, 1.75rem);
    background: var(--avery-white);
    border: 1px solid #cbc5ba;
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-paper);
}

.label-workbench::after {
    content: "";
    position: absolute;
    inset-block-start: -0.6rem;
    inset-inline-end: 12%;
    inline-size: 5rem;
    block-size: 1.2rem;
    background: var(--avery-cyan);
    border: 1px solid #1095a9;
}

.workbench-topline {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
}

.workbench-topline h2 {
    margin: 0;
    font-family: var(--font-ui);
    font-size: 1rem;
    letter-spacing: -0.02em;
    line-height: 1.25;
    text-transform: none;
}

.micro-label {
    margin-block-end: 0.35rem;
    font-size: 0.62rem;
}

.status-chip {
    align-self: flex-start;
    padding: 0.35rem 0.6rem;
    background: var(--avery-cream);
    border: 1px solid #c7c0b2;
    border-radius: 999px;
    color: #454239;
    font-size: 0.62rem;
    font-weight: 700;
    white-space: nowrap;
}

.label-sheet {
    position: relative;
    inline-size: min(100%, 95mm);
    aspect-ratio: 95 / 100;
    margin: 1.35rem auto;
    container-type: inline-size;
    background: var(--eu-white);
    box-shadow: 0 0.45rem 0.9rem rgba(16, 19, 34, 0.18);
    transform-origin: 50% 50%;
}

.label-sheet img {
    inline-size: 100%;
    block-size: 100%;
}

.eu-overlay {
    position: absolute;
    display: flex;
    align-items: center;
    overflow: hidden;
    background: var(--eu-white);
    color: var(--eu-black);
    font-family: var(--font-eu);
    white-space: nowrap;
}

.eu-overlay--brand {
    inset-block-start: 22.4%;
    inset-inline-start: 2%;
    inline-size: 68.5%;
    block-size: 6.1%;
    font-size: 3.34cqi;
    font-weight: 400;
}

.eu-overlay--model {
    inset-block-start: 22.4%;
    inset-inline-start: 73.06%;
    inline-size: 25.7%;
    block-size: 6.1%;
    justify-content: flex-start;
    font-size: 3.34cqi;
    font-weight: 400;
    text-align: start;
}

.eu-overlay--duration {
    inset-block-start: 31%;
    inset-inline-start: 1.9%;
    inline-size: 43%;
    block-size: 23.5%;
    justify-content: flex-start;
    font-size: 29.71cqi;
    font-weight: 800;
    letter-spacing: 0;
    line-height: 1;
}

.label-sheet.is-updating {
    animation: label-confirm 180ms ease-out;
}

@keyframes label-confirm {
    50% { transform: translateY(-2px); }
}

.preview-form {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.7rem;
}

.preview-field {
    min-inline-size: 0;
}

.preview-field label {
    display: block;
    margin-block-end: 0.25rem;
    color: #373a48;
    font-size: 0.68rem;
    font-weight: 700;
}

.preview-field input {
    inline-size: 100%;
    min-block-size: 2.75rem;
    padding: 0.55rem 0.65rem;
    border: 1px solid #777b88;
    border-radius: var(--radius-sm);
    color: var(--avery-ink);
}

.preview-field input[aria-invalid="true"] {
    border-color: var(--avery-danger);
    box-shadow: 0 0 0 1px var(--avery-danger);
}

.field-help {
    margin: -0.15rem 0 0;
    color: var(--avery-muted);
    font-size: 0.62rem;
}

.field-help--inline {
    min-block-size: 1.25rem;
    margin-block-start: 0.25rem;
}

.field-error {
    min-block-size: 1.25rem;
    margin: 0.25rem 0 0;
    color: var(--avery-danger);
    font-size: 0.64rem;
    font-weight: 700;
    line-height: 1.35;
}

.format-choice {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
    margin: 0.2rem 0 0;
    padding: 0;
    border: 0;
}

.format-choice legend {
    grid-column: 1 / -1;
    margin-block-end: 0.1rem;
    color: #373a48;
    font-size: 0.68rem;
    font-weight: 700;
}

.format-choice label {
    min-inline-size: 0;
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    padding: 0.65rem;
    background: var(--avery-white);
    border: 1px solid #9da1ad;
    border-radius: var(--radius-sm);
    cursor: pointer;
}

.format-choice label:has(input:checked) {
    background: #edf3ff;
    border-color: var(--avery-blue);
}

.format-choice input {
    inline-size: 1.05rem;
    block-size: 1.05rem;
    flex: 0 0 auto;
    margin-block-start: 0.15rem;
    accent-color: var(--avery-blue);
}

.format-choice span {
    min-inline-size: 0;
    display: grid;
    gap: 0.1rem;
    line-height: 1.25;
}

.format-choice strong {
    color: var(--avery-blue-deep);
    font-size: 0.75rem;
}

.format-choice small {
    color: var(--avery-muted);
    font-size: 0.58rem;
}

.editor-actions,
.print-service-note,
.export-status,
.format-choice {
    grid-column: 1 / -1;
}

.editor-actions {
    display: grid;
    gap: 0.55rem;
}

.editor-actions .button {
    inline-size: 100%;
}

.print-service-note {
    margin: 0;
    color: var(--avery-muted);
    font-size: 0.62rem;
    line-height: 1.45;
}

.export-status {
    min-block-size: 1.45rem;
    margin: 0;
    color: var(--avery-muted);
    font-size: 0.68rem;
    font-weight: 650;
    line-height: 1.45;
}

.export-status[data-state="success"] {
    color: var(--avery-success);
}

.export-status[data-state="error"] {
    color: var(--avery-danger);
}

.preview-caption {
    margin: 1rem 0 0;
    color: var(--avery-muted);
    font-size: 0.68rem;
    line-height: 1.5;
}

.preview-caption a {
    color: var(--avery-blue-deep);
    font-weight: 700;
}

.section {
    padding-block: clamp(4.5rem, 9vw, 8.5rem);
}

.section-heading-row {
    display: grid;
    gap: 1rem 3rem;
    margin-block-end: clamp(2.5rem, 5vw, 4.5rem);
}

.section-heading-row h2 {
    max-inline-size: 52rem;
    margin-block-end: 0;
}

.section-heading-row > p {
    max-inline-size: 35rem;
    margin-block-end: 0;
    align-self: end;
    color: var(--avery-muted);
    font-size: 1.03rem;
}

.section-heading-row--light h2,
.section-heading-row--light .section-number,
.section-heading-row--light > p {
    color: var(--avery-white);
}

.legal-note {
    margin: 1.5rem 0 0;
    padding: 0.8rem 1rem;
    background: #f1f2f4;
    border: 1px solid #d5d8df;
    color: #555b66;
    font-size: 0.72rem;
    line-height: 1.5;
}

.section--check {
    background: var(--avery-white);
}

.check-grid,
.faq-grid {
    display: grid;
    gap: 2.5rem 5rem;
}

.section-intro > p:not(.section-number):not(.legal-note) {
    max-inline-size: 34rem;
    color: var(--avery-muted);
}

.check-panel {
    min-inline-size: 0;
}

.check-progress {
    margin-block-end: 1.25rem;
}

.check-progress p {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-block-end: 0.45rem;
    color: var(--avery-blue-deep);
    font-size: 0.72rem;
    font-weight: 700;
}

.check-progress progress {
    inline-size: 100%;
    block-size: 0.5rem;
    display: block;
    overflow: hidden;
    border: 0;
    border-radius: 999px;
    accent-color: var(--avery-blue);
}

.check-question {
    margin: 0;
    padding: 1.2rem 0;
    border: 0;
    border-block-start: 1px solid var(--avery-line);
}

.check-question:last-of-type {
    border-block-end: 1px solid var(--avery-line);
}

.is-conversational .check-card {
    padding: clamp(1.5rem, 4vw, 2.5rem);
    background: var(--avery-surface-subtle);
    border: 1px solid var(--avery-line);
    border-radius: var(--radius-md);
}

.is-conversational .check-question {
    display: none;
    padding: 0;
    border: 0;
}

.is-conversational .check-question.is-active {
    display: grid;
}

.is-conversational .check-question__prompt {
    font-size: clamp(1.05rem, 2.4vw, 1.35rem);
}

.check-question__prompt {
    display: grid;
    grid-template-columns: 2rem minmax(0, 1fr);
    gap: 0.65rem;
    margin: 0;
    color: var(--avery-blue-deep);
    font-weight: 700;
    line-height: 1.4;
}

.check-question__prompt span:first-child {
    color: var(--avery-magenta);
    font-size: 0.68rem;
    line-height: 2.05;
}

.choice-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    margin-block-start: 0.85rem;
    padding-inline-start: 2.65rem;
}

.choice-row label {
    min-block-size: 2.75rem;
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.45rem 0.8rem;
    background: var(--avery-cream);
    border: 1px solid #bdb6a8;
    border-radius: 999px;
    cursor: pointer;
    font-size: 0.78rem;
    font-weight: 600;
}

.choice-row label:has(input:checked) {
    background: #e8f0ff;
    border-color: var(--avery-blue);
    color: var(--avery-blue-deep);
}

.choice-row input {
    inline-size: 1.15rem;
    block-size: 1.15rem;
    accent-color: var(--avery-blue);
}

.check-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
    margin-block-start: 1.5rem;
}

.is-conversational .check-actions {
    padding-block-start: 1.25rem;
    border-block-start: 1px solid var(--avery-line);
}

.check-actions [hidden],
.no-js .check-step-actions {
    display: none;
}

.check-step-error {
    min-block-size: 1.4rem;
    margin: 0.65rem 0 0;
    color: var(--avery-danger);
    font-size: 0.76rem;
    font-weight: 700;
}

.text-button {
    min-block-size: 2.75rem;
    padding-inline: 0.4rem;
    background: transparent;
    border: 0;
    color: var(--avery-blue-deep);
    cursor: pointer;
    font-size: 0.8rem;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 0.25em;
}

.check-result {
    margin-block-start: 1.5rem;
    padding: 1.25rem;
    background: #f4f5f7;
    border: 1px solid #d8dae0;
    border-inline-start: 0.45rem solid #7b7f8b;
}

.check-result[hidden] {
    display: none;
}

.check-result--not-relevant {
    background: #f4f5f7;
    border-color: #c9ccd4;
    border-inline-start-color: #555968;
}

.check-result--likely {
    background: #edf8f2;
    border-color: #87c3a6;
    border-inline-start-color: var(--avery-success);
}

.check-result--review {
    background: #fff6eb;
    border-color: #e2b985;
    border-inline-start-color: var(--avery-warning);
}

.check-result__label {
    margin-block-end: 0.3rem;
    color: var(--avery-blue-deep);
    font-weight: 800;
}

.check-result__text {
    margin: 0;
    font-size: 0.88rem;
}

.noscript-note {
    padding: 1rem;
    background: #fff8d3;
    border: 1px solid #d7bd46;
    font-size: 0.8rem;
}

.section--friction {
    background: var(--avery-cream);
}

.friction-grid {
    display: grid;
    gap: 1px;
    background: #bfb8ab;
    border: 1px solid #bfb8ab;
}

.friction-grid article {
    padding: clamp(1.5rem, 4vw, 2.5rem);
    background: var(--avery-white);
}

.friction-grid h3 {
    font-size: 1.3rem;
}

.friction-grid p {
    margin: 0;
    color: var(--avery-muted);
    font-size: 0.9rem;
}

.friction-tag {
    display: inline-block;
    margin-block-end: 3rem;
    color: var(--avery-magenta);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.section--classification {
    background: var(--avery-blue-deep);
    color: var(--avery-white);
}

.classification-grid {
    display: grid;
    gap: 1rem;
}

.classification-grid article {
    min-block-size: 17rem;
    display: flex;
    flex-direction: column;
    padding: 1.5rem;
    border: 1px solid rgba(255, 255, 255, 0.4);
}

.classification-grid h3,
.classification-grid p {
    color: var(--avery-white);
}

.classification-grid p {
    font-size: 0.85rem;
}

.classification-grid p:last-child {
    margin-block-end: 0;
}

.classification-index {
    margin-block-end: auto;
    color: var(--avery-cyan);
    font-family: var(--font-display);
    font-size: 2.2rem;
    line-height: 1;
}

.classification-grid .classification-featured {
    background: var(--avery-yellow);
    border-color: var(--avery-yellow);
}

.classification-featured h3,
.classification-featured p,
.classification-featured .classification-index {
    color: #161300;
}

.section--classification > .shell > .legal-note {
    background: #f1f2f4;
    border-color: #d5d8df;
    color: #555b66;
}

.section--roles {
    background: var(--avery-white);
}

.role-list {
    border-block-start: 1px solid var(--avery-line);
}

.role-list article {
    display: grid;
    grid-template-columns: 2rem minmax(0, 1fr);
    gap: 1rem;
    padding-block: 1.4rem;
    border-block-end: 1px solid var(--avery-line);
}

.role-list article > span {
    color: var(--avery-magenta);
    font-size: 0.7rem;
    font-weight: 800;
}

.role-list h3 {
    margin-block-end: 0.4rem;
}

.role-list p {
    margin: 0;
    color: var(--avery-muted);
}

.section--mechanism {
    position: relative;
    background: var(--avery-surface-subtle);
    color: var(--avery-ink);
}

.mechanism-grid {
    display: grid;
    gap: 3rem 6rem;
}

.mechanism-grid h2,
.mechanism-grid .section-number {
    color: var(--avery-blue-deep);
}

.large-copy {
    max-inline-size: 42rem;
    font-size: 1.05rem;
}

.mechanism-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.mechanism-list li {
    display: grid;
    grid-template-columns: 2.75rem minmax(0, 1fr);
    gap: 1rem;
    padding-block: 1.2rem;
    border-block-start: 1px solid var(--avery-line);
}

.mechanism-list li:last-child {
    border-block-end: 1px solid var(--avery-line);
}

.mechanism-list li > span {
    inline-size: 2.4rem;
    block-size: 2.4rem;
    display: grid;
    place-items: center;
    background: var(--avery-blue-deep);
    border-radius: 50%;
    color: var(--avery-white);
    font-weight: 800;
}

.mechanism-list h3 {
    margin-block-end: 0.3rem;
}

.mechanism-list p {
    margin: 0;
    color: var(--avery-muted);
    font-size: 0.83rem;
}

.eu-rule-strip {
    grid-column: 1 / -1;
    margin-block-start: 1rem;
    padding: clamp(1.25rem, 3vw, 2rem);
    background: var(--avery-white);
    border: 1px solid var(--avery-line);
    border-block-start: 0.3rem solid var(--avery-yellow);
}

.eu-rule-strip h3 {
    margin-block-end: 1rem;
}

.eu-rule-strip ul {
    display: grid;
    gap: 0.85rem 2rem;
    margin: 0;
    padding-inline-start: 1.15rem;
    font-size: 0.8rem;
}

.mechanism-grid > .legal-note {
    grid-column: 1 / -1;
    margin-block-start: 0;
    background: #f1f2f4;
}

.section--outcomes {
    background: var(--avery-white);
}

.outcome-list {
    margin: 0;
    border-block-start: 2px solid var(--avery-blue-deep);
}

.outcome-list > div {
    display: grid;
    gap: 0.5rem 2rem;
    padding-block: 1.4rem;
    border-block-end: 1px solid var(--avery-line);
}

.outcome-list dt {
    color: var(--avery-blue-deep);
    font-weight: 800;
}

.outcome-list dd {
    margin: 0;
    color: var(--avery-muted);
}

.comparison {
    display: grid;
    gap: 1rem;
    margin-block-start: clamp(3rem, 6vw, 5rem);
}

.comparison article {
    padding: clamp(1.5rem, 4vw, 2.5rem);
    background: var(--avery-cream);
    border-block-start: 0.45rem solid #969084;
}

.comparison .comparison-standard {
    background: #eaf2ff;
    border-color: var(--avery-blue);
}

.comparison ul {
    margin-block-end: 0;
    padding-inline-start: 1.25rem;
}

.comparison li + li {
    margin-block-start: 0.45rem;
}

.section--industries {
    background: var(--avery-blue);
    color: var(--avery-white);
}

.industry-grid {
    display: grid;
    border-block-start: 1px solid rgba(255, 255, 255, 0.45);
}

.industry-grid details {
    border-block-end: 1px solid rgba(255, 255, 255, 0.45);
}

.industry-grid summary {
    min-block-size: 4.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    cursor: pointer;
    font-weight: 800;
    list-style: none;
}

.industry-grid summary::-webkit-details-marker,
.objection-list summary::-webkit-details-marker,
.faq-list summary::-webkit-details-marker {
    display: none;
}

.industry-grid summary span,
.objection-list summary span {
    color: var(--avery-yellow);
    font-size: 1.5rem;
    transition: transform 180ms ease;
}

.industry-grid details[open] summary span,
.objection-list details[open] summary span {
    transform: rotate(45deg);
}

.industry-grid details p {
    max-inline-size: 34rem;
    margin-block: -0.25rem 1.4rem;
    color: #e4e9ff;
    font-size: 0.85rem;
}

.section--industries > .shell > .legal-note {
    background: #f1f2f4;
    border-color: #d5d8df;
    color: #555b66;
}

.section--readiness {
    background: var(--avery-cream);
}

.readiness-grid {
    display: grid;
    gap: 2.5rem 6rem;
}

.readiness-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.readiness-list li {
    display: grid;
    grid-template-columns: 2rem minmax(0, 1fr);
    gap: 0.8rem;
    padding-block: 1rem;
    border-block-start: 1px solid #c9c0b1;
}

.readiness-list li:last-child {
    border-block-end: 1px solid #c9c0b1;
}

.readiness-list li > span {
    color: var(--avery-success);
    font-weight: 800;
}

.readiness-list strong {
    color: var(--avery-blue-deep);
}

.readiness-list p {
    margin: 0.2rem 0 0;
    color: var(--avery-muted);
    font-size: 0.8rem;
}

.review-cases {
    grid-column: 1 / -1;
    padding: clamp(1.25rem, 3vw, 2rem);
    background: var(--avery-white);
    border-block-start: 0.45rem solid var(--avery-magenta);
}

.review-cases h3 {
    margin-block-end: 0.75rem;
}

.review-cases ul {
    display: grid;
    gap: 0.5rem 2rem;
    margin: 0;
    padding-inline-start: 1.15rem;
    color: var(--avery-muted);
    font-size: 0.82rem;
}

.readiness-note {
    grid-column: 1 / -1;
}

.readiness-note .legal-note {
    margin-block-start: 0;
}

.section--objections {
    background: var(--avery-white);
}

.objections-grid {
    display: grid;
    gap: 2.5rem 6rem;
}

.objection-list {
    border-block-start: 1px solid var(--avery-line);
}

.objection-list details {
    border-block-end: 1px solid var(--avery-line);
}

.objection-list summary {
    min-block-size: 4.7rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    color: var(--avery-blue-deep);
    cursor: pointer;
    font-weight: 800;
    list-style: none;
}

.objection-list details p {
    margin-block: 0 1.4rem;
    color: var(--avery-muted);
    font-size: 0.88rem;
}

.section--faq {
    background: #f4f7fd;
}

.faq-list {
    min-inline-size: 0;
    border-block-start: 1px solid #b8c2d9;
}

.faq-list details {
    border-block-end: 1px solid #b8c2d9;
}

.faq-list summary {
    min-block-size: 4.5rem;
    display: grid;
    grid-template-columns: 2.2rem minmax(0, 1fr) 1.5rem;
    align-items: center;
    gap: 0.65rem;
    color: var(--avery-blue-deep);
    cursor: pointer;
    font-size: 0.9rem;
    font-weight: 800;
    line-height: 1.35;
    list-style: none;
}

.faq-list summary > span {
    color: var(--avery-magenta);
    font-size: 0.65rem;
}

.faq-list summary i {
    font-size: 1.35rem;
    font-style: normal;
    transition: transform 180ms ease;
}

.faq-list details[open] summary i {
    transform: rotate(45deg);
}

.faq-answer {
    padding: 0 0 1.4rem 2.85rem;
}

.faq-answer > p:first-child {
    color: #414755;
    font-size: 0.86rem;
}

.faq-answer .legal-note {
    margin-block-start: 0.75rem;
}

.section--sources {
    background: var(--avery-white);
}

.sources-grid {
    display: grid;
    gap: 2.5rem 6rem;
}

.sources-grid ul {
    margin: 0;
    padding: 0;
    border-block-start: 1px solid var(--avery-line);
    list-style: none;
}

.sources-grid li {
    border-block-end: 1px solid var(--avery-line);
}

.sources-grid a {
    min-block-size: 4.5rem;
    display: grid;
    grid-template-columns: 3rem minmax(0, 1fr) 1.5rem;
    align-items: center;
    gap: 0.75rem;
    color: var(--avery-blue-deep);
    font-size: 0.82rem;
    font-weight: 700;
    text-decoration: none;
}

.sources-grid a:hover {
    background: #f4f7fd;
}

.sources-grid a span {
    color: var(--avery-magenta);
    font-size: 0.67rem;
    letter-spacing: 0.08em;
}

.sources-grid a i {
    font-style: normal;
}

.final-cta {
    position: relative;
    overflow: hidden;
    padding-block: clamp(4rem, 8vw, 7rem);
    background: var(--avery-blue-deep);
    color: var(--avery-white);
}

.final-cta::after {
    content: "";
    position: absolute;
    inset-block-end: 0;
    inset-inline-end: 7%;
    inline-size: 7rem;
    block-size: 1.2rem;
    background: var(--avery-cyan);
}

.final-cta-grid {
    display: grid;
    align-items: end;
    gap: 2.5rem 5rem;
}

.final-cta h2,
.eyebrow--light {
    color: var(--avery-white);
}

.final-cta h2 {
    margin: 0;
}

.button--light {
    background: var(--avery-white);
    color: var(--avery-blue-deep);
}

.button--light.button--disabled {
    background: #d7d9df;
    color: #41434b;
}

.final-actions > a:not(.button) {
    color: var(--avery-white);
    font-size: 0.78rem;
}

.final-actions .cta-status {
    color: #dfe4ff;
}

.site-footer {
    padding-block: 3rem 1.5rem;
    background: #0b0e1a;
    color: #d8dbe7;
}

.footer-grid {
    display: grid;
    gap: 2rem 5rem;
}

.footer-grid > div > p:not(.footer-product) {
    max-inline-size: 35rem;
    font-size: 0.75rem;
}

.footer-product {
    margin-block-end: 0.5rem;
    font-family: var(--font-display);
    font-size: 1.6rem;
    text-transform: uppercase;
}

.footer-grid nav {
    display: grid;
    align-content: start;
    gap: 0.6rem;
}

.footer-grid nav a,
.footer-grid nav span {
    color: var(--avery-white);
    font-size: 0.78rem;
}

.footer-grid nav small {
    color: #a2a6b5;
}

.footer-bottom {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.5rem 2rem;
    margin-block-start: 2rem;
    padding-block-start: 1rem;
    border-block-start: 1px solid #343744;
    font-size: 0.68rem;
}

.footer-bottom p {
    margin: 0;
}

.sticky-cta {
    position: fixed;
    z-index: 50;
    inset-inline: 0.75rem;
    inset-block-end: 0.75rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 0.75rem;
    max-inline-size: 48rem;
    margin-inline: auto;
    padding: 0.65rem 0.65rem 0.65rem 1rem;
    background: var(--avery-white);
    border: 1px solid #aab0c0;
    border-radius: var(--radius-md);
    box-shadow: 0 0.75rem 2rem rgba(7, 15, 54, 0.24);
}

.sticky-cta[hidden] {
    display: none;
}

.sticky-cta p {
    display: grid;
    margin: 0;
    color: var(--avery-blue-deep);
    font-size: 0.74rem;
    line-height: 1.35;
}

.sticky-cta p span {
    color: var(--avery-muted);
    font-size: 0.65rem;
}

.sticky-cta .button {
    min-block-size: 2.75rem;
    padding-inline: 1rem;
    font-size: 0.75rem;
}

.sticky-close {
    inline-size: 2.75rem;
    block-size: 2.75rem;
    background: transparent;
    border: 0;
    border-radius: 50%;
    color: var(--avery-blue-deep);
    cursor: pointer;
    font-size: 1.5rem;
}

@media (min-width: 42rem) {
    .shell {
        inline-size: min(100% - 3rem, var(--shell));
    }

    .preview-form {
        grid-template-columns: 0.55fr 1fr 1fr;
    }

    .preview-field:nth-of-type(3) {
        grid-column: auto;
    }

    .preview-form > .field-help,
    .format-choice,
    .editor-actions,
    .print-service-note,
    .export-status {
        grid-column: 1 / -1;
    }

    .editor-actions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .friction-grid,
    .classification-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .role-list article {
        grid-template-columns: 3rem minmax(0, 1fr);
    }

    .outcome-list > div {
        grid-template-columns: minmax(13rem, 0.8fr) minmax(0, 1.2fr);
    }

    .comparison {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .eu-rule-strip ul,
    .review-cases ul {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .industry-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: 2.5rem;
    }

    .final-cta-grid,
    .footer-grid {
        grid-template-columns: minmax(0, 1.6fr) minmax(16rem, 0.7fr);
    }
}

@media (min-width: 64rem) {
    .hero-grid {
        grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
        align-items: center;
    }

    .label-workbench {
        transform: rotate(0.6deg);
    }

    .section-heading-row {
        grid-template-columns: minmax(0, 1.45fr) minmax(18rem, 0.55fr);
    }

    .check-grid,
    .faq-grid {
        grid-template-columns: minmax(19rem, 0.75fr) minmax(0, 1.25fr);
    }

    .section-intro--sticky {
        position: sticky;
        inset-block-start: 2rem;
        align-self: start;
    }

    .friction-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .classification-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .mechanism-grid,
    .readiness-grid,
    .objections-grid,
    .sources-grid {
        grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    }

    .role-list article {
        grid-template-columns: 3rem minmax(14rem, 0.65fr) minmax(0, 1.35fr);
        align-items: baseline;
    }

    .role-list article > div {
        display: contents;
    }

    .role-list h3,
    .role-list p {
        margin: 0;
    }
}

@media (max-width: 31rem) {
    .site-nav {
        inline-size: 100%;
        justify-content: space-between;
        gap: 0.2rem 0.75rem;
        border-block-start: 1px solid var(--avery-line);
        padding-block-start: 0.4rem;
        font-size: 0.7rem;
    }

    .site-nav a:nth-child(3) {
        display: none;
    }

    .hero-actions,
    .hero-actions .primary-action,
    .hero-actions .button {
        inline-size: 100%;
    }

    .choice-row {
        padding-inline-start: 0;
    }

    .choice-row label {
        flex: 1 1 8rem;
    }

    .sticky-cta {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .sticky-cta p {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }

    .button:hover:not(.button--disabled):not(:disabled) {
        transform: none;
    }
}

@media (forced-colors: active) {
    .button,
    .choice-row label,
    .format-choice label,
    .check-result,
    .legal-note {
        border: 2px solid ButtonText;
    }
}

@media print {
    .site-header,
    .hero-actions,
    .sticky-cta,
    .preview-form,
    .check-actions {
        display: none !important;
    }

    body {
        color: #000;
        background: #fff;
    }

    .section,
    .hero,
    .final-cta {
        padding-block: 2rem;
        break-inside: avoid;
    }
}
