.community-intro { max-width: 780px; padding: 52px 0 36px; }
.community-intro h1 { margin: 16px 0 24px; }
.community-intro > p:last-child { max-width: 660px; font-size: 18px; color: var(--brand-muted); }
.community-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 40px; align-items: start; padding-bottom: 48px; }
.community-card { padding: 32px; background: white; border: 1px solid var(--line); border-radius: 20px; min-width: 0; }
.community-card h2, .community-details h2 { margin: 0 0 12px; font-size: 28px; letter-spacing: -.5px; line-height: 1.2; }
.community-card > p, .community-details p { color: var(--brand-muted); }
.community-aside { display: grid; gap: 32px; min-width: 0; }
.community-details { padding: 8px 12px; }
.community-details address { font-style: normal; color: var(--brand-muted); font-size: 14px; }
.community-email { display: inline-block; padding: 8px 0; font-size: 20px; color: var(--brand-accent); overflow-wrap: anywhere; }
.newsletter-card { background: var(--brand-soft); }
.community-form { margin-top: 24px; }
.community-field { display: flex; flex-direction: column; gap: 8px; margin-bottom: 24px; }
.community-field label { font-size: 15px; font-weight: 650; }
.community-form .community-field input, .community-form .community-field select, .community-form .community-field textarea {
    width: 100%; min-width: 0; min-height: 48px; padding: 12px; color: var(--brand-ink);
    background: #fff; border: 1px solid var(--brand-control-border); border-radius: 10px; font: inherit;
}
.community-field select { text-overflow: ellipsis; }
.community-field textarea { resize: vertical; }
.community-field small, .community-fineprint { font-size: 13px; color: var(--brand-muted); line-height: 1.6; }
.community-form :focus-visible { outline: 3px solid var(--brand-accent); outline-offset: 3px; }
.community-consent { display: flex; gap: 12px; align-items: flex-start; font-size: 14px; }
.community-consent input { flex: 0 0 20px; width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--brand-accent); }
.community-form .community-button { min-height: 48px; max-width: 100%; white-space: normal; padding: 12px 22px; background: var(--brand-accent);
    color: #fff; border: 1px solid var(--brand-accent); border-radius: 10px; cursor: pointer; font: 650 15px/1.5 var(--brand-font-body); }
.community-form .community-button:hover { background: var(--brand-accent-hover); }
.community-form .community-button-secondary { background: white; color: var(--brand-accent); }
.community-form .community-button-secondary:hover { background: var(--brand-blush); }
.community-success { padding: 20px; border: 1px solid #a6c7b4; border-radius: 12px; background: #f0f8f3; color: #244d36; }
.community-success h3 { margin-top: 0; }
.community-success p:last-child { margin-bottom: 0; }
.form-errors { padding: 16px 16px 16px 32px; background: #fff0f1; color: #8b2437; border-radius: 10px; }
.community-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.community-captcha { margin: 20px 0; }
.community-captcha-widget { max-width: 100%; }
.community-captcha-status { margin: 8px 0; }
.community-captcha-retry[hidden] { display: none; }
.newsletter-page { max-width: 680px; margin: 48px auto 64px; }
.newsletter-page h1 { font-size: clamp(32px, 5vw, 48px); overflow-wrap: anywhere; }
.community-invitation { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 28px 0; border-top: 1px solid #e8dce2; }
.community-invitation h2 { font-size: 24px; margin: 0 0 8px; }
.community-invitation p { margin: 0; color: var(--brand-muted); line-height: 1.6; }
.community-invitation-links { display: flex; flex-wrap: wrap; flex-shrink: 0; gap: 12px 24px; }
.community-invitation a { display: inline-flex; align-items: center; min-height: 44px; color: var(--brand-accent); font-weight: 650; }
@media (max-width: 760px) {
    .community-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
    .community-intro { padding-top: 24px; }
    .community-card { padding: 24px; }
    .community-invitation { align-items: flex-start; flex-direction: column; gap: 12px; }
}
@media (max-width: 400px) {
    .community-card { padding: 20px 16px; }
    .community-button { width: 100%; }
}
