html[data-text-size="large"] { --font-scale: 1.3; }
/* Keep the fixed toolbar and decorative cover stable while reading text grows. */
.site-header, .hero { --font-scale: 1; }
.font-size-toggle {
  width: 44px;
  height: 44px;
  flex-shrink: 0;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: transparent;
  font-size: 19px;
  font-weight: 600;
  line-height: 1;
}
.font-size-toggle[aria-pressed="true"] {
  background: var(--green);
  color: white;
  border-color: var(--green);
}
@media screen {
  html[data-text-size="large"] .place-grid:not(.list-view) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media screen and (max-width: 1000px) {
  html[data-text-size="large"] .consular-grid,
  html[data-text-size="large"] .health-grid,
  html[data-text-size="large"] .travel-tips,
  html[data-text-size="large"] .transport-notes,
  html[data-text-size="large"] .choice-panel { grid-template-columns: 1fr; }
}
@media screen and (max-width: 760px) {
  html[data-text-size="large"] .place-grid:not(.list-view) { grid-template-columns: 1fr; }
  html[data-text-size="large"] .place-card { grid-template-columns: 90px minmax(0, 1fr); }
  html[data-text-size="large"] .day-nav { grid-template-columns: repeat(5, minmax(68px, 1fr)); overflow-x: auto; }
  html[data-text-size="large"] .filters { flex-wrap: wrap; }
}
