/* TPR Unified reusable component library. */

/* Eyebrows and section headings */
.tpr-kicker,
.tpr-eyebrow {
    display: block;
    margin: 0 0 var(--tpr-space-3);
    color: var(--tpr-accent-strong);
    font-size: var(--tpr-text-xs);
    font-weight: 900;
    letter-spacing: 0.15em;
    line-height: 1.2;
    text-transform: uppercase;
}

.tpr-section-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: var(--tpr-space-8);
    margin-bottom: clamp(1.75rem, 4vw, 3.25rem);
}

.tpr-section-heading__copy {
    max-width: 820px;
}

.tpr-section-heading h2,
.tpr-section-heading__title {
    margin: 0;
    color: var(--tpr-section-ink);
    font-family: var(--tpr-font-display);
    font-size: var(--tpr-text-3xl);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 0.95;
}

.tpr-section-heading__intro {
    max-width: 680px;
    margin: var(--tpr-space-4) 0 0;
    color: var(--tpr-muted);
    font-size: var(--tpr-text-lg);
}

.tpr-section-heading__action {
    align-self: end;
}

/* Buttons */
.tpr-button,
button.tpr-button,
input[type="submit"].tpr-button {
    --tpr-button-bg: var(--tpr-accent);
    --tpr-button-color: var(--tpr-accent-contrast);
    --tpr-button-border: var(--tpr-accent);
    display: inline-flex;
    min-height: 50px;
    align-items: center;
    justify-content: center;
    gap: var(--tpr-space-2);
    padding: 0.72rem 1.4rem;
    border: 1px solid var(--tpr-button-border);
    border-radius: var(--tpr-control-radius);
    background: var(--tpr-button-bg);
    color: var(--tpr-button-color);
    font-size: var(--tpr-text-sm);
    font-weight: 900;
    letter-spacing: 0.035em;
    line-height: 1;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
    transition:
        background-color var(--tpr-duration) var(--tpr-ease),
        border-color var(--tpr-duration) var(--tpr-ease),
        color var(--tpr-duration) var(--tpr-ease),
        transform var(--tpr-duration) var(--tpr-ease),
        box-shadow var(--tpr-duration) var(--tpr-ease);
}

.tpr-button:hover {
    --tpr-button-bg: var(--tpr-accent-strong);
    --tpr-button-border: var(--tpr-accent-strong);
    color: var(--tpr-button-color);
    transform: translateY(-2px);
    box-shadow: var(--tpr-shadow-sm);
}

.tpr-button:active {
    transform: translateY(0);
}

.tpr-button--secondary {
    --tpr-button-bg: var(--tpr-section-ink);
    --tpr-button-color: var(--tpr-white);
    --tpr-button-border: var(--tpr-section-ink);
}

.tpr-button--secondary:hover {
    --tpr-button-bg: var(--tpr-black);
    --tpr-button-border: var(--tpr-black);
}

.tpr-button--outline {
    --tpr-button-bg: transparent;
    --tpr-button-color: var(--tpr-section-ink);
    --tpr-button-border: var(--tpr-line-strong);
}

.tpr-button--outline:hover {
    --tpr-button-bg: var(--tpr-section-ink);
    --tpr-button-color: var(--tpr-white);
    --tpr-button-border: var(--tpr-section-ink);
}

.tpr-button--ghost {
    --tpr-button-bg: transparent;
    --tpr-button-color: var(--tpr-accent-strong);
    --tpr-button-border: transparent;
    padding-inline: 0;
}

.tpr-button--ghost:hover {
    --tpr-button-bg: transparent;
    --tpr-button-color: var(--tpr-section-ink);
    --tpr-button-border: transparent;
    box-shadow: none;
}

.tpr-button--light {
    --tpr-button-bg: var(--tpr-white);
    --tpr-button-color: var(--tpr-black);
    --tpr-button-border: var(--tpr-white);
}

.tpr-button--small {
    min-height: 40px;
    padding-inline: 1rem;
    font-size: var(--tpr-text-xs);
}

.tpr-button--large {
    min-height: 62px;
    padding-inline: 2rem;
    font-size: var(--tpr-text-base);
}

.tpr-button[aria-disabled="true"],
.tpr-button:disabled {
    cursor: not-allowed;
    opacity: 0.5;
    pointer-events: none;
}

/* Inline icons */
.tpr-icon {
    width: 1.15em;
    height: 1.15em;
    flex: 0 0 auto;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.tpr-icon--solid {
    fill: currentColor;
    stroke: none;
}

/* Badges */
.tpr-badge {
    display: inline-flex;
    min-height: 26px;
    align-items: center;
    gap: var(--tpr-space-1);
    padding: 0.35rem 0.6rem;
    border: 1px solid rgba(var(--tpr-accent-rgb), 0.28);
    border-radius: var(--tpr-radius-pill);
    background: var(--tpr-accent-soft);
    color: var(--tpr-accent-strong);
    font-size: var(--tpr-text-xs);
    font-weight: 900;
    letter-spacing: 0.05em;
    line-height: 1;
    text-transform: uppercase;
}

.tpr-badge--dark {
    border-color: var(--tpr-black);
    background: var(--tpr-black);
    color: var(--tpr-white);
}

/* Card system */
.tpr-card {
    position: relative;
    display: flex;
    min-width: 0;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--tpr-line);
    border-radius: var(--tpr-radius-md);
    background: var(--tpr-card);
    box-shadow: 0 0 0 rgba(0, 0, 0, 0);
    transition:
        transform var(--tpr-duration) var(--tpr-ease),
        box-shadow var(--tpr-duration) var(--tpr-ease),
        border-color var(--tpr-duration) var(--tpr-ease);
}

.tpr-card:hover {
    border-color: var(--tpr-line-strong);
    transform: translateY(-5px);
    box-shadow: var(--tpr-shadow-md);
}

.tpr-card__media,
.tpr-card__image {
    position: relative;
    display: block;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: var(--tpr-charcoal);
}

.tpr-card__media img,
.tpr-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--tpr-duration-slow) var(--tpr-ease);
}

.tpr-card:hover .tpr-card__media img,
.tpr-card:hover .tpr-card__image img {
    transform: scale(1.045);
}

.tpr-card__badge {
    position: absolute;
    z-index: 2;
    top: var(--tpr-space-4);
    left: var(--tpr-space-4);
}

.tpr-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: clamp(1.15rem, 2.2vw, 1.75rem);
}

.tpr-card__meta,
.tpr-article__meta {
    margin: 0 0 var(--tpr-space-3);
    color: var(--tpr-muted);
    font-size: var(--tpr-text-xs);
    font-weight: 700;
    letter-spacing: 0.035em;
    text-transform: uppercase;
}

.tpr-card__title,
.tpr-card h2,
.tpr-card h3 {
    margin: 0 0 var(--tpr-space-3);
    color: var(--tpr-section-ink);
    font-family: var(--tpr-font-display);
    font-size: var(--tpr-text-xl);
    line-height: 1;
}

.tpr-card__title a,
.tpr-card h2 a,
.tpr-card h3 a {
    color: inherit;
    text-decoration: none;
}

.tpr-card__excerpt,
.tpr-card__body > p:not(.tpr-card__meta) {
    margin-bottom: var(--tpr-space-5);
    color: var(--tpr-muted);
}

.tpr-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--tpr-space-4);
    margin-top: auto;
    padding-top: var(--tpr-space-5);
    border-top: 1px solid var(--tpr-line);
}

.tpr-card__price {
    color: var(--tpr-accent-strong);
    font-weight: 900;
}

.tpr-card--flat {
    border-radius: 0;
    box-shadow: none;
}

.tpr-card--horizontal {
    display: grid;
    grid-template-columns: minmax(180px, 38%) minmax(0, 1fr);
}

.tpr-card--horizontal .tpr-card__media,
.tpr-card--horizontal .tpr-card__image {
    height: 100%;
    aspect-ratio: auto;
}

.tpr-card--featured {
    grid-column: span 2;
}

.tpr-card--featured .tpr-card__media,
.tpr-card--featured .tpr-card__image {
    aspect-ratio: 16 / 8;
}

.tpr-card__placeholder {
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
    background: linear-gradient(145deg, var(--tpr-charcoal), var(--tpr-black));
    color: var(--tpr-accent);
    font-family: var(--tpr-font-display);
    font-size: var(--tpr-text-3xl);
    font-style: italic;
    font-weight: 900;
}

/* Text links */
.tpr-link-arrow {
    display: inline-flex;
    align-items: center;
    gap: var(--tpr-space-2);
    color: var(--tpr-accent-strong);
    font-size: var(--tpr-text-sm);
    font-weight: 900;
    letter-spacing: 0.025em;
    text-decoration: none;
    text-transform: uppercase;
}

.tpr-link-arrow:hover {
    color: var(--tpr-section-ink);
}

/* Forms */
.tpr-form {
    display: grid;
    gap: var(--tpr-space-5);
}

.tpr-form-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--tpr-space-4);
}

.tpr-field {
    display: grid;
    gap: var(--tpr-space-2);
}

.tpr-field label,
.tpr-label {
    color: var(--tpr-section-ink);
    font-size: var(--tpr-text-xs);
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.tpr-input,
.tpr-select,
.tpr-textarea,
.tpr-form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.tpr-form select,
.tpr-form textarea {
    width: 100%;
    min-height: 52px;
    padding: 0.75rem 0.95rem;
    border: 1px solid var(--tpr-line-strong);
    border-radius: var(--tpr-control-radius);
    background: var(--tpr-white);
    color: var(--tpr-section-ink);
    transition:
        border-color var(--tpr-duration-fast) ease,
        box-shadow var(--tpr-duration-fast) ease;
}

.tpr-textarea,
.tpr-form textarea {
    min-height: 140px;
    resize: vertical;
}

.tpr-input:focus,
.tpr-select:focus,
.tpr-textarea:focus,
.tpr-form input:focus,
.tpr-form select:focus,
.tpr-form textarea:focus {
    border-color: var(--tpr-accent);
    outline: 0;
    box-shadow: var(--tpr-ring);
}

.tpr-field__help {
    color: var(--tpr-muted);
    font-size: var(--tpr-text-xs);
}

.tpr-search-box {
    display: flex;
    width: 100%;
}

.tpr-search-box .tpr-input,
.tpr-search-box input[type="search"] {
    min-width: 0;
    flex: 1;
    border-inline-end: 0;
}

.tpr-search-box .tpr-button,
.tpr-search-box button {
    flex: 0 0 auto;
}

/* Empty and status panels */
.tpr-panel,
.tpr-placeholder-panel,
.tpr-empty-state {
    padding: clamp(1.5rem, 4vw, 3rem);
    border: 1px solid var(--tpr-line);
    border-radius: var(--tpr-radius-md);
    background: var(--tpr-paper);
}

.tpr-panel--dark {
    border-color: #34383a;
    background: var(--tpr-black);
    color: var(--tpr-white);
}

.tpr-notice {
    display: flex;
    align-items: flex-start;
    gap: var(--tpr-space-4);
    padding: var(--tpr-space-4) var(--tpr-space-5);
    border-inline-start: 4px solid var(--tpr-accent);
    background: var(--tpr-accent-soft);
    color: var(--tpr-section-ink);
}

/* Pagination */
.navigation.pagination {
    margin-top: var(--tpr-space-12);
}

.nav-links {
    display: flex;
    flex-wrap: wrap;
    gap: var(--tpr-space-2);
}

.page-numbers {
    display: grid;
    min-width: 42px;
    min-height: 42px;
    place-items: center;
    padding: var(--tpr-space-2);
    border: 1px solid var(--tpr-line);
    border-radius: var(--tpr-control-radius);
    background: var(--tpr-card);
    color: var(--tpr-section-ink);
    font-weight: 800;
    text-decoration: none;
}

.page-numbers.current,
.page-numbers:hover {
    border-color: var(--tpr-accent);
    background: var(--tpr-accent);
    color: var(--tpr-accent-contrast);
}

/* Existing theme shell refinements */
.tpr-site-header {
    box-shadow: 0 1px 0 rgba(13, 15, 16, 0.04);
}

.tpr-section {
    padding-block: var(--tpr-space-section);
}

.tpr-hero__intro {
    max-width: 720px;
    font-size: var(--tpr-text-lg);
}

.tpr-page-header {
    background: var(--tpr-section-paper);
}

.tpr-site-footer a:hover {
    color: var(--tpr-accent);
}

/* WooCommerce baseline */
.woocommerce .woocommerce-breadcrumb,
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
    color: var(--tpr-muted);
    font-size: var(--tpr-text-sm);
}

.woocommerce ul.products {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--tpr-grid-gap);
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
    display: none;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
    width: auto;
    margin: 0;
    padding: var(--tpr-space-4);
    border: 1px solid var(--tpr-line);
    border-radius: var(--tpr-radius-md);
    background: var(--tpr-card);
    transition:
        transform var(--tpr-duration) var(--tpr-ease),
        box-shadow var(--tpr-duration) var(--tpr-ease);
}

.woocommerce ul.products li.product:hover {
    transform: translateY(-4px);
    box-shadow: var(--tpr-shadow-md);
}

.woocommerce ul.products li.product a img {
    border-radius: calc(var(--tpr-radius-md) - 3px);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
    color: var(--tpr-section-ink);
    font-family: var(--tpr-font-display);
    font-size: var(--tpr-text-xl);
    line-height: 1;
}

.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
    color: var(--tpr-accent-strong);
    font-weight: 900;
}

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
    min-height: 46px;
    border-radius: var(--tpr-control-radius);
    background: var(--tpr-accent);
    color: var(--tpr-accent-contrast);
    font-weight: 900;
    text-transform: uppercase;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
    background: var(--tpr-accent-strong);
    color: var(--tpr-accent-contrast);
}

@media (max-width: 900px) {
    .tpr-section-heading {
        grid-template-columns: 1fr;
        align-items: start;
        gap: var(--tpr-space-5);
    }

    .tpr-card--horizontal {
        grid-template-columns: 1fr;
    }

    .tpr-card--horizontal .tpr-card__media,
    .tpr-card--horizontal .tpr-card__image {
        aspect-ratio: 16 / 10;
    }

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

@media (max-width: 620px) {
    .tpr-form-row,
    .woocommerce ul.products {
        grid-template-columns: 1fr;
    }

    .tpr-card--featured {
        grid-column: auto;
    }

    .tpr-search-box {
        display: grid;
    }

    .tpr-search-box .tpr-input,
    .tpr-search-box input[type="search"] {
        border-inline-end: 1px solid var(--tpr-line-strong);
    }
}


/* Sprint 2.2.1 completion: status, fields, loading and living-style-guide components. */
.tpr-badge--accent{background:var(--tpr-accent);color:var(--tpr-accent-contrast)}
.tpr-badge--success{background:#dff5e7;color:#176b36}.tpr-badge--warning{background:#fff0c7;color:#7a5200}.tpr-badge--danger{background:#fde0df;color:#8b1e1a}.tpr-badge--neutral{background:var(--tpr-paper-deep);color:var(--tpr-text)}
.tpr-field{display:grid;gap:var(--tpr-space-2)}.tpr-field__label{font-size:var(--tpr-text-sm);font-weight:800;color:var(--tpr-section-ink)}
.tpr-input,.tpr-select,.tpr-textarea{width:100%;min-height:50px;padding:.78rem 1rem;border:1px solid var(--tpr-line);border-radius:var(--tpr-control-radius);background:var(--tpr-card);color:var(--tpr-text);transition:border-color var(--tpr-duration-fast) var(--tpr-ease),box-shadow var(--tpr-duration-fast) var(--tpr-ease),background var(--tpr-duration-fast) var(--tpr-ease)}
.tpr-input:hover,.tpr-select:hover,.tpr-textarea:hover{border-color:var(--tpr-line-strong)}.tpr-input:focus,.tpr-select:focus,.tpr-textarea:focus{outline:0;border-color:var(--tpr-accent);box-shadow:var(--tpr-ring)}.tpr-input:disabled{cursor:not-allowed;opacity:.58;background:var(--tpr-paper)}
.tpr-field--error .tpr-input{border-color:#b92a25}.tpr-field__message{margin:0;color:var(--tpr-muted);font-size:var(--tpr-text-xs)}.tpr-field__message--error{color:#9b211d;font-weight:700}
.tpr-alert{display:grid;gap:var(--tpr-space-1);padding:var(--tpr-space-5) var(--tpr-space-6);border:1px solid var(--tpr-line);border-inline-start:5px solid var(--tpr-accent);background:var(--tpr-card);box-shadow:var(--tpr-shadow-sm)}.tpr-alert__title,.tpr-alert__message{margin:0}.tpr-alert--success{border-inline-start-color:#278a4c}.tpr-alert--warning{border-inline-start-color:#bd7c00}.tpr-alert--danger{border-inline-start-color:#b92a25}
.tpr-spinner{display:inline-block;width:1.4rem;height:1.4rem;border:2px solid rgba(var(--tpr-accent-rgb),.24);border-top-color:var(--tpr-accent);border-radius:50%;animation:tpr-spin .75s linear infinite}@keyframes tpr-spin{to{transform:rotate(360deg)}}
.tpr-icon{width:1.25em;height:1.25em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.tpr-design-system{padding-block:var(--tpr-space-section);background:var(--tpr-section-paper)}.tpr-design-system__hero{padding:clamp(2rem,5vw,5rem);background:var(--tpr-section-header);color:var(--tpr-header-text);box-shadow:var(--tpr-shadow-lg)}.tpr-design-system__hero h1{color:inherit}.tpr-ds-section{padding:clamp(1.5rem,4vw,3rem);background:var(--tpr-card);border:1px solid var(--tpr-line);box-shadow:var(--tpr-shadow-sm)}
.tpr-token-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--tpr-space-4)}.tpr-token{display:grid;gap:var(--tpr-space-2)}.tpr-token__swatch{aspect-ratio:16/9;border:1px solid var(--tpr-line)}.tpr-token code{font-size:var(--tpr-text-xs)}
.tpr-type-display{margin:0;font:900 var(--tpr-text-4xl)/.9 var(--tpr-font-display);letter-spacing:-.045em}.tpr-text-lead{font-size:var(--tpr-text-xl);line-height:1.45}.tpr-icon-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:var(--tpr-space-4)}.tpr-icon-sample{display:grid;place-items:center;gap:var(--tpr-space-2);min-height:100px;padding:var(--tpr-space-4);background:var(--tpr-paper);font-size:var(--tpr-text-xs);text-align:center}.tpr-icon-sample .tpr-icon{width:2rem;height:2rem}.tpr-layout-demo{padding:var(--tpr-space-5);background:var(--tpr-accent-soft);border:1px solid var(--tpr-line)}

/* Sprint 2.2.2 / v1.3.1 production component refinements */
.tpr-button--xs{min-height:32px;padding:.45rem .7rem;font-size:.68rem}.tpr-button--sm{min-height:40px;padding:.58rem 1rem;font-size:var(--tpr-text-xs)}.tpr-button--md{min-height:50px}.tpr-button--lg{min-height:60px;padding-inline:1.85rem;font-size:var(--tpr-text-base)}.tpr-button--xl{min-height:68px;padding-inline:2.25rem;font-size:var(--tpr-text-lg)}
.tpr-button--danger{--tpr-button-bg:#b42318;--tpr-button-border:#b42318;--tpr-button-color:#fff}.tpr-button--danger:hover{--tpr-button-bg:#8f1c13;--tpr-button-border:#8f1c13}.tpr-button--success{--tpr-button-bg:#16803c;--tpr-button-border:#16803c;--tpr-button-color:#fff}.tpr-button--success:hover{--tpr-button-bg:#116630;--tpr-button-border:#116630}.tpr-button--link{--tpr-button-bg:transparent;--tpr-button-border:transparent;--tpr-button-color:var(--tpr-accent-strong);min-height:auto;padding:0;text-transform:none;letter-spacing:0}.tpr-button--link:hover{--tpr-button-bg:transparent;--tpr-button-border:transparent;--tpr-button-color:var(--tpr-section-ink);box-shadow:none;transform:none;text-decoration:underline}.tpr-button--icon{width:50px;padding:0}.tpr-button--icon.tpr-button--xs{width:32px}.tpr-button--icon.tpr-button--sm{width:40px}.tpr-button--icon.tpr-button--lg{width:60px}.tpr-button--icon.tpr-button--xl{width:68px}.tpr-button--block{display:flex;width:100%}.tpr-button.is-loading{cursor:wait}.tpr-button__spinner{width:1em;height:1em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:tpr-spin .7s linear infinite}
.tpr-badge--solid{background:var(--tpr-section-ink);border-color:var(--tpr-section-ink);color:#fff}.tpr-badge--outline{background:transparent}.tpr-badge--accent{--badge-bg:var(--tpr-accent-soft);--badge-fg:var(--tpr-accent-strong);--badge-border:rgba(var(--tpr-accent-rgb),.35)}.tpr-badge--success{--badge-bg:#dcfce7;--badge-fg:#166534;--badge-border:#86efac}.tpr-badge--warning{--badge-bg:#fef3c7;--badge-fg:#92400e;--badge-border:#fcd34d}.tpr-badge--danger{--badge-bg:#fee2e2;--badge-fg:#991b1b;--badge-border:#fca5a5}.tpr-badge--neutral,.tpr-badge--default{--badge-bg:#f1f2f3;--badge-fg:#34383a;--badge-border:#d7dadd}.tpr-badge--dark{--badge-bg:#111;--badge-fg:#fff;--badge-border:#111}.tpr-badge[class*="tpr-badge--"]{background:var(--badge-bg,var(--tpr-accent-soft));color:var(--badge-fg,var(--tpr-accent-strong));border-color:var(--badge-border,rgba(var(--tpr-accent-rgb),.28))}.tpr-badge--solid.tpr-badge--accent{--badge-bg:var(--tpr-accent);--badge-fg:var(--tpr-accent-contrast);--badge-border:var(--tpr-accent)}.tpr-badge--solid.tpr-badge--success{--badge-bg:#16803c;--badge-fg:#fff;--badge-border:#16803c}.tpr-badge--solid.tpr-badge--warning{--badge-bg:#b45309;--badge-fg:#fff;--badge-border:#b45309}.tpr-badge--solid.tpr-badge--danger{--badge-bg:#b42318;--badge-fg:#fff;--badge-border:#b42318}.tpr-badge--outline{--badge-bg:transparent}.tpr-badge--pill{border-radius:var(--tpr-radius-pill)}
.tpr-alert{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--tpr-space-3);align-items:start;padding:var(--tpr-space-4);border:1px solid;border-radius:var(--tpr-radius-sm);background:#eef6ff;color:#12385c}.tpr-alert--success{background:#ecfdf3;color:#14532d;border-color:#86efac}.tpr-alert--warning{background:#fffbeb;color:#78350f;border-color:#fcd34d}.tpr-alert--danger{background:#fff1f2;color:#881337;border-color:#fda4af}.tpr-alert__icon{display:flex;margin-top:.1rem}.tpr-alert__title{display:block;margin-bottom:.2rem}.tpr-alert__message{margin:0}.tpr-alert__actions{display:flex;flex-wrap:wrap;gap:var(--tpr-space-3);margin-top:var(--tpr-space-3)}.tpr-alert__dismiss{display:grid;width:32px;height:32px;place-items:center;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer}.tpr-alert__dismiss:hover{background:rgba(0,0,0,.08)}.tpr-alert.is-dismissed{display:none}
.tpr-card--compact .tpr-card__body{padding:var(--tpr-space-4)}.tpr-card--cta{background:var(--tpr-section-ink);color:#fff}.tpr-card--cta .tpr-card__title,.tpr-card--cta .tpr-card__title a,.tpr-card--cta .tpr-card__excerpt,.tpr-card--cta .tpr-link-arrow{color:#fff}.tpr-card--statistic .tpr-card__stat{margin:0 0 var(--tpr-space-2);font-family:var(--tpr-font-display);font-size:var(--tpr-text-4xl);font-weight:900;line-height:.9;color:var(--tpr-accent-strong)}.tpr-card--category .tpr-card__media{aspect-ratio:4/3}.tpr-card--team .tpr-card__media{aspect-ratio:1/1}.tpr-card--product .tpr-card__price{font-size:var(--tpr-text-lg)}
.tpr-spinner{display:inline-block;width:28px;height:28px;border:3px solid currentColor;border-right-color:transparent;border-radius:50%;animation:tpr-spin .7s linear infinite}.tpr-spinner--sm{width:18px;height:18px;border-width:2px}.tpr-spinner--lg{width:42px;height:42px;border-width:4px}@keyframes tpr-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.tpr-button__spinner,.tpr-spinner{animation-duration:1.5s}}
