/* ESA International Community — strictly additive; inherits the existing Swiss design tokens. */
.esa-community-intro { max-width: 800px; }
.esa-community-regions { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 24px; }
.esa-community-region-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; display: block; transition: border-color .18s ease; }
.esa-community-region-card:hover, .esa-community-region-card:focus-visible { border-color: var(--esa-blue); }
.esa-community-region-card .esa-community-region-photo { display: block; aspect-ratio: 4 / 3; object-fit: cover; background: #e9eef8; width: 100%; }
.esa-community-region-card .esa-community-region-caption { display: block; padding: 19px 22px 21px; color: var(--esa-blue-dark); font-size: 20px; font-weight: 600; }
.esa-community-region-card .esa-community-region-caption small { display: block; margin-top: 4px; color: var(--muted); font-size: 13px; font-weight: 400; }
.esa-community-region-heading { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin: 0 0 22px; }
.esa-community-region-heading h2 { margin: 0; font-size: clamp(26px, 3vw, 34px); line-height: 1.12; letter-spacing: -.5px; color: var(--esa-blue-dark); }
.esa-community-region-heading p { max-width: 720px; margin: 0; color: var(--muted); font-size: 15px; }
.esa-community-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 22px; }
.esa-community-media { margin: 0; min-width: 0; background: var(--white); border: 1px solid var(--border); box-shadow: var(--shadow); border-radius: 22px; overflow: hidden; }
.esa-community-media img, .esa-community-media video { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: #eff3fa; }
.esa-community-media figcaption { padding: 13px 17px 17px; margin: 0; min-height: 58px; font-size: 13px; line-height: 1.45; }
.esa-community-play { display: block; width: 100%; padding: 0; border: 0; cursor: pointer; background: transparent; position: relative; }
.esa-community-play::after { content: "▶"; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 49px; height: 49px; display: flex; justify-content: center; align-items: center; border-radius: 50%; background: rgba(14,47,109,.88); color: white; font-size: 18px; box-shadow: var(--shadow); pointer-events: none; }
.esa-community-play:focus-visible { outline: 3px solid var(--esa-yellow); outline-offset: -3px; }
.esa-community-load-more { margin-top: 26px; padding: 13px 22px; border: 1px solid var(--border); border-radius: 999px; background: var(--white); box-shadow: var(--shadow); color: var(--esa-blue-dark); font: inherit; font-weight: 600; cursor: pointer; }
.esa-community-load-more[hidden], .esa-community-region[hidden], .esa-community-region-card[hidden] { display: none !important; }
.esa-community-note { color: var(--muted); font-size: 14px; margin: 22px 0 0; }
.esa-community-region + .esa-community-region { border-top: 1px solid var(--border); }
@media (max-width: 980px) { .esa-community-regions, .esa-community-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 600px) { .esa-community-regions, .esa-community-grid { grid-template-columns: 1fr; } .esa-community-region-card .esa-community-region-photo { aspect-ratio: 16 / 9; } .esa-community-region-card .esa-community-region-caption { padding: 14px 18px; font-size: 18px; } }
@media (prefers-reduced-motion: reduce) { .esa-community-region-card { transition: none; } }
