/* Общий файл стилей для server-rendered SEO-страниц (/almaty/event/:id,
   /almaty/attraction/:slug, /almaty/attractions, /about, /privacy).
   Значения переменных — те же, что в :root frontend/index.html (само приложение
   этот файл не подключает и не трогается этой правкой). Если палитра/шрифты
   приложения поменяются — обновить оба места. */
:root {
  --cream: #FBF3E7;
  --paper: #FFFDF9;
  --ink: #2A2118;
  --muted: #8A7A66;
  --line: #E8D9C0;
  --terracotta: #C1461B;
  --terracotta-dark: #9C3814;
  --teal: #10767A;
  --gold: #96701D;

  --cat-concert: #C1461B;
  --cat-theater: #7A2E4D;
  --cat-standup: #2E7A5F;
  --cat-movie: #4A3B6B;
  --cat-city: #10767A;
  --cat-food: #96701D;
  --cat-kids: #5F7A3D;
  --cat-date: #A14D63;
  --cat-growth: #2E4C7A;
  --cat-places: #6B4C9A;
  --cat-museum: #8A5C2B;
  --cat-activity: #B0303A;
  --cat-digest: #6B5D4F;
  --cat-party: #9C2D6B;
}

body {
  max-width: 640px;
  margin: 0 auto;
  padding: 24px;
  line-height: 1.5;
  overflow-wrap: break-word;
  background: var(--cream);
  color: var(--ink);
  font-family: 'Manrope', sans-serif;
  -webkit-font-smoothing: antialiased;
}
body.wide { max-width: 960px; }

h1, h2 { font-family: 'Unbounded', 'Manrope', sans-serif; }
h1 { margin-bottom: 4px; font-size: 26px; }
h2 { font-size: 17px; margin: 28px 0 8px; color: var(--teal); }
/* Заголовок страницы-каталога — фиксированный текст, не название события/места, поэтому
   можно ужать под одну строку, в отличие от h1 на детальных страницах (там переменная
   длина названия, ужимать под 1 строку было бы не универсально). */
body.wide h1 { font-size: 14px; }
a { color: var(--terracotta); }

.hero-img-wrap { position: relative; width: 100%; padding-top: 66.6%; border-radius: 12px; overflow: hidden; background: var(--line); }
.hero-img-wrap img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }

.badge-cat { display: inline-flex; align-items: center; color: #fff; padding: 5px 12px; border-radius: 999px; font-size: 11px; font-weight: 700; box-shadow: 0 2px 6px rgba(0,0,0,.18); }
.hero-img-wrap .badge-cat { position: absolute; top: 10px; left: 10px; }
p .badge-cat, h1 + .badge-cat { margin: 10px 0; }

.date-line { color: var(--terracotta-dark); font-weight: 600; margin: 8px 0; }
.meta { color: var(--muted); font-size: 14px; margin: 4px 0; }
.meta b { color: var(--ink); }
.credit { color: var(--muted); font-size: 12px; margin: 6px 0 20px; }
.gis { display: inline-block; margin: 12px 0 20px; padding: 9px 16px; border: 1.5px solid var(--teal); border-radius: 999px; color: var(--teal); text-decoration: none; font-weight: 600; font-size: 14px; }

.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; margin-top: 12px; }
.card { display: block; text-decoration: none; color: inherit; background: var(--paper); border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.card-media { position: relative; }
.card-media img { width: 100%; height: 140px; object-fit: cover; display: block; }
.card-media .badge-cat { position: absolute; top: 8px; left: 8px; font-size: 10px; padding: 4px 10px; }
.card-body { padding: 12px; }
.card h3 { margin: 0 0 6px; font-size: 15px; color: var(--ink); font-family: 'Unbounded', 'Manrope', sans-serif; }
.card p { margin: 0; font-size: 13px; color: var(--muted); }

.contact dt { font-weight: 600; color: var(--muted); font-size: 13px; margin-top: 10px; }
.contact dd { margin: 2px 0 0; }
