.msp-component {
    --msp-component-ink: #101820;
    --msp-component-gold: #c8a063;
    --msp-component-coral: #ff6758;
    box-sizing: border-box;
    font-family: inherit;
    letter-spacing: 0;
}
.msp-component *, .msp-component *::before, .msp-component *::after { box-sizing: border-box; }
.msp-component a { text-decoration: none; }
.msp-component:focus-visible, .msp-component a:focus-visible { outline: 2px solid #ff6758; outline-offset: 4px; }
a.msp-component.msp-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    max-width: 100%;
    padding: 12px 20px;
    border: 1px solid transparent;
    border-radius: 6px;
    background: var(--msp-component-gold);
    color: var(--msp-component-ink);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.4;
    text-align: center;
    overflow-wrap: anywhere;
    white-space: normal;
    box-shadow: none;
    transition: background-color 160ms ease;
}
a.msp-component.msp-button--secondary { background: var(--msp-component-ink); color: white; }
a.msp-component.msp-button--outline { background: transparent; color: var(--msp-component-ink); border-color: currentColor; }
a.msp-component.msp-button:hover { background: var(--msp-component-coral); color: var(--msp-component-ink); }
.msp-component.msp-container { width: 100%; max-width: 1240px; margin-inline: auto; padding-inline: 24px; }
.msp-component.msp-container--narrow { max-width: 760px; }
.msp-component.msp-container--wide { max-width: 1440px; }
.msp-component.msp-container--full { max-width: none; }
.msp-component.msp-align--left { text-align: left; }
.msp-component.msp-align--center { text-align: center; }
.msp-component.msp-align--right { text-align: right; }
.msp-component.msp-spacing--none { padding-block: 0; }
.msp-component.msp-spacing--compact { padding-block: 24px; }
.msp-component.msp-spacing--normal { padding-block: 48px; }
.msp-component.msp-spacing--roomy { padding-block: 72px; }
.msp-component.msp-card { width: 100%; overflow: hidden; border: 1px solid #dde2e5; border-radius: 8px; background: white; color: var(--msp-component-ink); }
.msp-card .msp-card__image { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.msp-card .msp-card__body { padding: 24px; }
.msp-component .msp-component__title { margin: 0 0 12px; color: inherit; font-size: 24px; line-height: 1.25; font-weight: 700; letter-spacing: 0; overflow-wrap: anywhere; }
.msp-component .msp-component__text { margin: 0 0 20px; font-size: 16px; line-height: 1.6; color: inherit; overflow-wrap: anywhere; }
.msp-component.msp-cta-section { width: 100%; background: #f0f5f3; color: var(--msp-component-ink); }
.msp-cta-section .msp-cta-section__inner { display: flex; align-items: center; justify-content: space-between; gap: 32px; max-width: 1240px; margin-inline: auto; padding: 48px 24px; }
.msp-cta-section__inner > div { min-width: 0; }
.msp-cta-section .msp-button { flex-shrink: 0; }
.msp-component.msp-footer { width: 100%; background: #101820; color: #fff; }
.msp-footer .msp-footer__inner { display: flex; align-items: center; flex-wrap: wrap; justify-content: space-between; gap: 24px; max-width: 1240px; margin-inline: auto; padding: 32px 24px; }
.msp-footer .msp-footer__brand { display: inline-flex; align-items: center; gap: 12px; font-size: 22px; font-weight: 700; color: #c8a063; }
.msp-footer__brand img { width: 44px; height: 44px; border-radius: 50%; object-fit: contain; }
.msp-footer .msp-footer__menu { display: flex; flex-wrap: wrap; gap: 16px; margin: 0; padding: 0; list-style: none; }
.msp-footer .msp-footer__menu li { margin: 0; padding: 0; list-style: none; }
.msp-footer .msp-footer__menu a { display: inline-flex; align-items: center; min-height: 44px; color: white; font-size: 14px; }
.msp-footer .msp-footer__menu a:hover { color: #c8a063; }
.msp-footer small { overflow-wrap: anywhere; }
@media (max-width: 640px) {
    .msp-component.msp-container { padding-inline: 16px; }
    .msp-cta-section .msp-cta-section__inner { flex-direction: column; align-items: flex-start; gap: 16px; padding: 32px 16px; }
    .msp-cta-section .msp-button { width: 100%; }
    .msp-footer .msp-footer__inner { flex-direction: column; align-items: flex-start; padding: 24px 16px; }
    .msp-component.msp-spacing--roomy { padding-block: 48px; }
}
@media (prefers-reduced-motion: reduce) { a.msp-component.msp-button { transition: none; } }
