/* Гео-страницы (страна/город/площадка/каталог площадок). Общие токены — site.css. Mobile-first. */

/* breadcrumb */
.geo-crumbs{display:flex; align-items:center; gap:7px; font-size:14px; color:var(--faint); margin-bottom:24px; flex-wrap:wrap;}
.geo-crumbs a{color:var(--mute); text-decoration:none;}
.geo-crumbs a:hover{color:var(--ink);}
.geo-crumbs__cur{color:var(--ink); font-weight:500;}

/* flag hero */
.geo-hero{display:flex; align-items:flex-end; gap:18px; margin-bottom:14px; flex-wrap:wrap;}
.geo-hero__flag{font-size:56px; line-height:1; flex:none;}
.geo-hero__h1{font-size:32px; font-weight:700; letter-spacing:-0.03em; line-height:1; margin:0;}
.geo-hero__sup{font-size:14px; font-weight:500; color:var(--accent); text-decoration:none;}
.geo-lead{font-size:16px; line-height:1.5; color:var(--mute); margin:0 0 22px; max-width:600px;}

/* stat grid */
.geo-stats{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:32px;}
.geo-stat{border:1px solid var(--line); border-radius:10px; padding:16px 18px;}
.geo-stat__num{font-size:26px; font-weight:700; letter-spacing:-0.02em;}
.geo-stat__num--accent{color:var(--accent);}
.geo-stat__label{font-size:12px; font-weight:600; letter-spacing:0.04em; text-transform:uppercase; color:var(--faint); margin-top:2px;}

/* city scroll */
.geo-cities{display:flex; gap:14px; overflow-x:auto; padding-bottom:6px; -webkit-overflow-scrolling:touch; scroll-snap-type:x mandatory; margin-bottom:48px;}
.geo-cities::-webkit-scrollbar{display:none;}
.geo-city{text-decoration:none; color:inherit; border:1px solid var(--line); border-radius:12px; padding:20px; background:#fff; flex:none; width:248px; scroll-snap-align:start;}
.geo-city:hover{background:#FBFBFA; border-color:rgba(55,53,47,.16);}
.geo-city__top{display:flex; align-items:center; justify-content:space-between; margin-bottom:10px;}
.geo-city__name{font-size:20px; font-weight:700; letter-spacing:-0.02em;}
.geo-city__sub{font-size:13px; color:var(--mute); margin-top:4px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.geo-tag{font-size:12px; color:var(--mute); background:var(--hover); padding:3px 9px; border-radius:5px;}

/* type chips + toolbar */
.geo-toolbar{display:flex; align-items:center; gap:12px; margin-bottom:16px; flex-wrap:wrap;}
.geo-chips{display:flex; gap:6px;}
.geo-chip{font-family:inherit; cursor:pointer; font-size:13px; font-weight:500; padding:6px 12px; border-radius:7px; border:1px solid var(--line); background:#fff; color:#6E655A;}
.geo-chip.is-active{background:var(--ink); color:#fff; border-color:var(--ink);}

/* event rows (table view) */
.geo-erow{display:flex; align-items:center; gap:14px; padding:12px 10px; border-bottom:1px solid var(--line); text-decoration:none; color:inherit;}
.geo-erow:hover{background:var(--row-hover);}
.geo-erow__date{text-align:center; width:44px; flex:none; line-height:1.05;}
.geo-erow__day{font-size:18px; font-weight:700;}
.geo-erow__mon{font-size:10px; text-transform:uppercase; color:var(--faint);}
.geo-erow__thumb{width:44px; height:44px; border-radius:8px; flex:none; background-size:cover; background-position:center;}

/* pagination */
.geo-pager{display:flex; align-items:center; justify-content:center; gap:8px; margin-top:28px;}
.geo-pager a, .geo-pager span{font-size:14px; font-weight:500; height:34px; min-width:34px; padding:0 12px; border-radius:8px; border:1px solid var(--line);
  display:inline-flex; align-items:center; justify-content:center; text-decoration:none; color:var(--ink); background:#fff;}
.geo-pager a:hover{background:var(--row-hover);}
.geo-pager .is-current{background:var(--ink); color:#fff; border-color:var(--ink);}
.geo-pager .is-disabled{opacity:.4; pointer-events:none;}

/* follow button */
.geo-follow{display:inline-flex; align-items:center; gap:7px; font-family:inherit; border:none; cursor:pointer; background:var(--accent);
  color:#fff; font-size:15px; font-weight:500; padding:11px 22px; border-radius:8px; text-decoration:none; margin-bottom:48px;}
.geo-follow:hover{background:var(--accent-hover);}
.geo-follow--done{background:var(--online-bg); color:var(--online);}

/* venue cards grid (Venues list) */
.venue-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:14px;}
.venue-card{text-decoration:none; color:inherit; border:1px solid var(--line); border-radius:12px; overflow:hidden; background:#fff; display:flex; flex-direction:column;}
.venue-card:hover{border-color:rgba(55,53,47,.16); background:#FBFBFA;}
.venue-card__cover{height:96px; background-size:cover; background-position:center; position:relative; display:flex; align-items:flex-end; padding:10px;}
.venue-card__city{font-size:11px; font-weight:600; color:#fff; background:rgba(0,0,0,.3); padding:3px 8px; border-radius:5px;}
.venue-card__body{padding:14px 16px; flex:1; display:flex; flex-direction:column;}
.venue-card__name{font-size:16px; font-weight:600; letter-spacing:-0.01em; line-height:1.25;}
.venue-card__area{font-size:13px; color:var(--mute); margin-top:3px;}
.venue-card__meta{margin-top:auto; padding-top:12px; display:flex; align-items:center; gap:8px; font-size:12px; color:var(--faint);}
.venue-card__count{color:var(--accent); font-weight:500;}

/* Venues filters */
.geo-filters{display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-bottom:14px;}
.geo-filters__search{position:relative; flex:1; min-width:220px; max-width:360px;}
.geo-filters__search input{font-family:inherit; width:100%; font-size:15px; padding:11px 16px 11px 40px; border:1px solid var(--line);
  border-radius:10px; background:#FBFAF8; color:var(--ink); outline:none;}
.geo-filters__search input:focus{border-color:rgba(217,115,13,.5); background:#fff;}
.geo-filters__ico{position:absolute; left:14px; top:50%; transform:translateY(-50%); color:var(--faint); font-size:15px; pointer-events:none;}
.geo-select{font-family:inherit; font-size:14px; padding:11px 14px; border:1px solid var(--line); border-radius:10px; background:#fff; color:var(--ink); outline:none; cursor:pointer;}
.geo-select:focus{border-color:rgba(217,115,13,.5);}
.geo-reset{font-family:inherit; cursor:pointer; background:none; border:none; color:var(--mute); font-size:14px; font-weight:500; padding:11px 8px;}
.geo-reset:hover{color:var(--ink);}

/* Venue detail: photo gallery */
.venue-photos{display:grid; grid-template-columns:1fr 1fr; grid-auto-rows:118px; gap:8px; margin-bottom:28px;}
.venue-photos__cell{border-radius:10px; background-size:cover; background-position:center; background-color:#EDEAE4;}
.venue-photos__cell--lead{grid-row:span 2; grid-column:1 / -1;}

/* Venue detail: context label, address line */
.venue-ctx{display:inline-flex; align-items:center; gap:7px; font-size:13px; font-weight:500; color:var(--accent); background:var(--accent-bg); padding:5px 11px; border-radius:6px; margin-bottom:14px;}
.venue-loc{font-size:15px; color:var(--mute); margin-bottom:24px;}
.venue-loc a{color:var(--accent); text-decoration:none; font-weight:500;}

/* Venue detail: map + contacts */
.venue-split{display:grid; grid-template-columns:1fr; gap:20px; margin-bottom:48px;}
.venue-map{border:1px solid var(--line); border-radius:12px; overflow:hidden;}
.venue-map iframe{width:100%; height:260px; border:0; display:block;}
.venue-contacts{border:1px solid var(--line); border-radius:12px; padding:20px; display:flex; flex-direction:column; gap:16px;}
.venue-contacts__title{font-size:13px; font-weight:600; letter-spacing:0.02em; text-transform:uppercase; color:var(--mute);}
.venue-contact{display:flex; gap:11px; align-items:flex-start;}
.venue-contact__ico{width:30px; height:30px; border-radius:8px; background:var(--accent-bg); display:flex; align-items:center; justify-content:center; flex:none; font-size:14px;}
.venue-contact a{font-size:14px; font-weight:500; color:var(--ink); text-decoration:none;}
.venue-contact a.link{color:var(--accent);}
.venue-route{margin-top:auto; display:inline-flex; align-items:center; justify-content:center; gap:7px; text-decoration:none; background:var(--accent); color:#fff; font-size:14px; font-weight:500; padding:11px; border-radius:8px;}
.venue-route:hover{background:var(--accent-hover);}

@media (min-width:761px){
  .geo-hero__h1{font-size:42px;}
  .geo-stats{grid-template-columns:repeat(3,1fr);}
  .geo-stats--4{grid-template-columns:repeat(4,1fr);}
  .venue-photos{grid-template-columns:2fr 1fr 1fr;}
  .venue-photos__cell--lead{grid-column:auto;}
  .venue-split{grid-template-columns:1.4fr 1fr;}
}

/* Атрибуция фото (Commons/сайт) */
.venue-photos__credit{margin:8px 0 0;font-size:11px;color:var(--faint);line-height:1.5;}
.venue-photos__credit a{color:var(--faint);text-decoration:underline;text-underline-offset:2px;}

/* История площадки — «Здесь уже проходили» */
.venue-history{display:flex;flex-direction:column;border-top:1px solid var(--line);}
.venue-history__row{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:11px 2px;border-bottom:1px solid var(--line);text-decoration:none;color:inherit;}
.venue-history__row:hover{background:var(--bg-soft,#FAFAF9);}
.venue-history__date{flex:none;width:64px;font-size:12px;color:var(--faint);text-transform:capitalize;}
.venue-history__name{flex:1;min-width:0;font-size:14px;font-weight:500;letter-spacing:-0.01em;}
.venue-history__sp{flex:none;font-size:13px;color:var(--mute);}
@media (min-width:761px){
  .venue-history__row{padding:12px 4px;}
}
