.cmc-public-form,
.cmc-public-card,
.cmc-sponsor-card,
.cmc-notice,
.cmc-success {
    background: #fffaf1;
    border: 1px solid #eadfce;
    border-radius: 18px;
    box-shadow: 0 10px 25px rgba(67, 54, 37, 0.06);
    padding: 1.25rem;
}

.cmc-public-form {
    display: grid;
    gap: 1rem;
    max-width: 760px;
}

.cmc-public-form label,
.cmc-public-form fieldset {
    display: grid;
    gap: 0.35rem;
}

.cmc-public-form input[type="text"],
.cmc-public-form input[type="email"],
.cmc-public-form select,
.cmc-public-form textarea {
    border: 1px solid #cfc4b4;
    border-radius: 10px;
    font: inherit;
    padding: 0.75rem 0.85rem;
    width: 100%;
}

.cmc-public-form button,
.cmc-sponsor-card a,
.cmc-sponsor-link {
    background: #1f3328;
    border: 0;
    border-radius: 999px;
    color: #fff;
    cursor: pointer;
    display: inline-block;
    font-weight: 700;
    padding: 0.8rem 1.2rem;
    text-decoration: none;
}

.cmc-checkbox {
    align-items: flex-start;
    display: flex !important;
    gap: 0.55rem;
}

.cmc-gravity-turnstile {
    margin: 1rem 0;
}

.cmc-hp-field {
    height: 1px;
    left: -10000px;
    overflow: hidden;
    position: absolute;
    width: 1px;
}

.cmc-success {
    background: #eef8ec;
    border-color: #b9d8b5;
    color: #1d4d26;
}

.cmc-notice {
    background: #f8f4ec;
    color: #38443a;
}

.cmc-public-list,
.cmc-sponsor-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.cmc-sponsor-card img {
    border-radius: 12px;
    display: block;
    height: auto;
    max-width: 160px;
}

/* Keep keyboard focus visible even when third-party component styles reset it. */
:where(
    a,
    button,
    input,
    select,
    textarea,
    summary,
    [tabindex]:not([tabindex="-1"])
):focus-visible,
iframe:focus {
    outline: 3px solid #005fcc !important;
    outline-offset: 3px !important;
}

iframe:focus {
    box-shadow: 0 0 0 3px #005fcc !important;
}

/* Keep single-event metadata links at the WCAG 2.2 minimum target size. */
.single-tribe_events .tribe-events-event-meta .tribe-venue > a,
.single-tribe_events .tribe-events-event-meta .tribe-venue-url > a {
    align-items: center;
    display: inline-flex;
    min-height: 24px;
}
