.country-flag { display:inline-block; width:28px; height:21px; object-fit:contain; vertical-align:middle; border-radius:2px; flex-shrink:0; }
.map-marker > span { display:grid; place-items:center; }
.map-marker .country-flag { width:20px; height:15px; border-radius:1px; }
[data-map-active-flag] .country-flag { width:36px; height:27px; }
.rum-filters .filter-flag { display:inline-flex; align-items:center; justify-content:center; min-width:28px; }
/* Country-led rum cards: one visual language for catalog and map. */
.rum-card .rum-visual { height:auto; padding:16px 22px 34px; display:grid; grid-template-columns:minmax(0,1fr) auto; grid-template-rows:auto 210px; gap:18px 16px; align-items:center; justify-items:center; }
.rum-card .rum-origin { position:static; grid-column:1; grid-row:1; max-width:none; justify-self:start; line-height:1.6; }
.rum-card .rum-number { position:static; grid-column:2; grid-row:1; justify-self:end; }
.rum-card .rum-card-flag,.rum-card .rum-card-region { grid-column:1 / -1; grid-row:2; max-height:100%; }
.rum-card .rum-visual::after { display:none; }
.rum-card-flag { position:relative; z-index:1; width:100%; max-width:280px; height:100%; aspect-ratio:4/3; object-fit:contain; border-radius:3px; box-shadow:0 16px 28px #15372c24; transition:transform 260ms ease; }
.rum-card:hover .rum-card-flag { transform:translateY(-5px); }
.rum-card-region { width:100%; max-width:280px; }
.rum-card-region svg { display:block; width:100%; height:auto; }
@media(max-width:540px) { .rum-card .rum-visual { height:auto; padding:16px 22px 28px; grid-template-rows:auto 176px; } .rum-card-flag { max-width:235px; } }
@media(prefers-reduced-motion:reduce) { .rum-card-flag { transition:none; } .rum-card:hover .rum-card-flag { transform:none; } }
