/* Соборный парк — общие стили раздела (4 страницы).
   Подключается ПОСЛЕ _common.css, поэтому переменные оттуда уже доступны.
   Здесь только то, что специфично для парка: схема с клумбами, карточки клумб,
   списки растений, карточки библейских растений. */

/* ─── Подменю раздела ─────────────────────────────────────────────── */
.park-subnav{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:0 0 8px}
.park-subnav a{font-family:'Montserrat Ace',sans-serif;font-size:9.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--text2);text-decoration:none;padding:11px 20px;
  border:1px solid var(--border);border-radius:999px;transition:border-color .25s,color .25s,background .25s}
.park-subnav a:hover{border-color:var(--gold);color:var(--gold)}
.park-subnav a.is-active{background:var(--navy);border-color:var(--navy);color:#fff}

/* ─── Схема парка ─────────────────────────────────────────────────── */
/* Слои схемы обведены по пикселям карты-исходника (scripts/trace_full.py в
   рабочих файлах): формы зданий, газонов, дорог, дорожек, воды и значков ограды
   не нарисованы от руки, а сняты с карты — поэтому номера клумб ложатся точно. */
.park-map-wrap{position:relative;margin-top:36px}
.park-map-frame{position:relative;border:1px solid var(--border);border-radius:var(--radius);
  overflow:hidden;background:var(--pm-bg)}
.park-map-svg{display:block;width:100%;height:auto;
  --pm-bg:#f2efe7;--pm-lawn:#d6e4c8;--pm-road:#e1e4ec;--pm-walk:#fbf9f5;
  --pm-build:#e3ded2;--pm-build-line:#c9c1b1;--pm-water:#cfe4f0;--pm-fence:#b9b0a0}
.pm-road-a{fill:var(--pm-road)}
.pm-lawn{fill:var(--pm-lawn)}
.pm-walk{fill:var(--pm-walk)}
.pm-water{fill:var(--pm-water);stroke:#bcd6e6;stroke-width:2}
.pm-build-a{fill:var(--pm-build);stroke:var(--pm-build-line);stroke-width:2}
.pm-fence-a{fill:var(--pm-fence)}
.pm-label text{font-family:'Montserrat Ace',sans-serif;font-size:19px;fill:#7b7566;letter-spacing:.04em}
.pm-label-sm text{font-size:16px}
.pm-street text{font-family:'Montserrat Ace',sans-serif;font-size:17px;fill:#9a9486;letter-spacing:.18em}

/* Маркеры клумб — кнопки поверх схемы */
.pm-marker{cursor:pointer}
.pm-marker circle,.pm-marker rect{fill:var(--white);stroke:var(--navy);stroke-width:3;transition:fill .2s,stroke .2s}
.pm-marker text{font-family:'Montserrat Ace',sans-serif;font-weight:600;font-size:26px;
  fill:var(--navy);text-anchor:middle;dominant-baseline:central;pointer-events:none;transition:fill .2s}
.pm-marker.is-small text{font-size:25px;letter-spacing:-.5px}
.pm-marker:hover circle,.pm-marker:hover rect,
.pm-marker:focus-visible circle,.pm-marker:focus-visible rect{fill:var(--gold);stroke:var(--gold)}
.pm-marker:hover text,.pm-marker:focus-visible text{fill:#fff}
.pm-marker.is-active circle,.pm-marker.is-active rect{fill:var(--navy);stroke:var(--navy)}
.pm-marker.is-active text{fill:var(--gold)}
.pm-marker:focus{outline:none}
.pm-marker:focus-visible circle,.pm-marker:focus-visible rect{stroke-dasharray:4 3}

.park-map-hint{font-family:'Montserrat Ace',sans-serif;font-size:9px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--muted);text-align:center;margin-top:14px}

/* Всплывающая карточка клумбы */
.pm-pop{position:fixed;inset:0;z-index:3000;display:none;align-items:center;justify-content:center;padding:24px}
.pm-pop.is-open{display:flex}
.pm-pop-back{position:absolute;inset:0;background:rgba(20,22,32,.72);backdrop-filter:blur(3px)}
.pm-pop-card{position:relative;background:var(--white);border-radius:var(--radius);max-width:860px;
  width:100%;max-height:88vh;overflow:auto;box-shadow:0 30px 70px rgba(0,0,0,.35)}
.pm-pop-img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;background:var(--beige2)}
.pm-pop-body{padding:26px 30px 30px}
.pm-pop-num{font-family:'Montserrat Ace',sans-serif;font-size:9px;letter-spacing:.28em;
  text-transform:uppercase;color:var(--gold);margin-bottom:8px}
.pm-pop-title{font-family:'Angst','Playfair Display',Georgia,serif;font-size:clamp(20px,2.4vw,28px);
  color:var(--navy);font-weight:400;line-height:1.25;margin-bottom:6px}
.pm-pop-note{font-size:13px;color:var(--muted);margin-bottom:18px}
.pm-pop-close{position:absolute;top:12px;right:12px;width:40px;height:40px;border-radius:50%;
  background:rgba(20,22,32,.55);border:1px solid rgba(255,255,255,.35);color:#fff;font-size:20px;
  line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}
.pm-pop-close:hover{background:rgba(20,22,32,.8)}

/* ─── Списки растений ─────────────────────────────────────────────── */
.plant-group + .plant-group{margin-top:18px}
.plant-group-title{font-family:'Montserrat Ace',sans-serif;font-size:9px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--navy);margin-bottom:10px;padding-bottom:7px;border-bottom:1px solid var(--border)}
.plant-list{list-style:none;display:flex;flex-wrap:wrap;gap:7px}
.plant-list li{font-size:13px;color:var(--text2);background:var(--beige);border:1px solid var(--border);
  border-radius:999px;padding:6px 13px;line-height:1.3}

/* ─── Карточки клумб (страница «Все растения парка») ──────────────── */
/* Сетка, а не список во всю ширину: при 31 карточке широкая строка оставляла
   много пустого места справа от коротких списков растений. */
.bed-list{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:32px;align-items:start}
.bed-card{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;
  background:var(--white);display:flex;flex-direction:column}
.bed-card-figure{position:relative;background:var(--beige2)}
.bed-card-figure img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.bed-card-num{position:absolute;top:10px;left:10px;min-width:34px;height:34px;padding:0 9px;
  border-radius:999px;background:var(--navy);color:var(--gold);display:flex;align-items:center;
  justify-content:center;font-family:'Montserrat Ace',sans-serif;font-weight:600;font-size:13px}
.bed-card-body{padding:16px 18px 18px}
.bed-card-complex{font-family:'Montserrat Ace',sans-serif;font-size:8px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--gold);margin-bottom:5px}
.bed-card-title{font-family:'Angst','Playfair Display',Georgia,serif;font-size:18px;color:var(--navy);
  font-weight:400;line-height:1.3;margin-bottom:3px}
.bed-card-note{font-size:12.5px;color:var(--muted);margin-bottom:10px}
.bed-card .plant-group + .plant-group{margin-top:12px}
.bed-card .plant-group-title{font-size:8px;margin-bottom:7px;padding-bottom:5px}
.bed-card .plant-list{gap:5px}
.bed-card .plant-list li{font-size:12px;padding:4px 10px}

/* Заголовок комплекса — во всю ширину сетки */
.bed-complex-head{grid-column:1/-1}

/* ─── Карточки библейских растений ────────────────────────────────── */
.bible-list{display:flex;flex-direction:column;gap:26px;margin-top:36px}
.bible-card{border:1px solid var(--border);border-left:3px solid var(--gold);border-radius:var(--radius);
  background:var(--white);padding:28px 30px}
.bible-card h3{font-family:'Angst','Playfair Display',Georgia,serif;font-size:24px;color:var(--navy);
  font-weight:400;margin-bottom:4px}
.bible-card-latin{font-family:'Montserrat Ace',sans-serif;font-style:italic;font-size:12px;
  color:var(--muted);margin-bottom:16px}
.bible-card p{font-size:15px;line-height:1.9;color:var(--text2);margin-bottom:14px}
.bible-quote{border-left:2px solid var(--border);padding:10px 18px;margin:16px 0;background:var(--beige);
  font-style:italic;font-size:15px;line-height:1.75;color:var(--text2)}
.bible-quote cite{display:block;margin-top:7px;font-style:normal;font-family:'Montserrat Ace',sans-serif;
  font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}

/* ─── Растения от прихожан ────────────────────────────────────────── */
.donated-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:36px}
.donated-item{border:1px solid var(--border);border-radius:var(--radius);background:var(--white);
  padding:18px 20px;display:flex;align-items:center;gap:14px}
.donated-item span{font-size:15px;color:var(--navy);line-height:1.4}
.donated-leaf{flex:0 0 22px;height:22px;color:var(--gold)}
.donated-leaf svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.3}

/* ─── Мобильная адаптация (те же точки, что в _common.css) ────────── */
@media(max-width:1024px){
  .bed-list{gap:14px}
  .donated-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:640px){
  .park-subnav{gap:7px}
  .park-subnav a{padding:9px 14px;font-size:9px;letter-spacing:.12em}
  .bed-list{grid-template-columns:1fr;gap:12px}
  .bed-card-body{padding:14px 15px 16px}
  .donated-grid{grid-template-columns:1fr}
  .bible-card{padding:22px 20px}
  .bible-card h3{font-size:21px}
  .pm-pop{padding:0}
  .pm-pop-card{max-height:100vh;border-radius:0}
  .pm-pop-body{padding:20px 18px 26px}
  .pm-label text{font-size:26px}
  .pm-label-sm text{font-size:16px}
.pm-street text{font-size:24px}
  .pm-marker circle{stroke-width:4}
  .pm-marker text{font-size:32px}
  .pm-marker.is-small text{font-size:30px}
}

/* ─── Галерея парка ───────────────────────────────────────────────── */
/* Колонки, а не grid: кадры вертикальные и горизонтальные вперемешку, и в
   сетке с фиксированной пропорцией между ними оставались дыры. Колоночная
   раскладка ставит их вплотную и не режет композицию кадра. */
.park-gallery{column-count:4;column-gap:12px;margin-top:36px}
.pg-item{display:block;width:100%;padding:0;margin:0 0 12px;position:relative;
  break-inside:avoid;-webkit-column-break-inside:avoid;
  border:1px solid var(--border);background:var(--beige2);border-radius:var(--radius);
  overflow:hidden;cursor:pointer;transition:transform .3s ease,border-color .3s ease}
.pg-item img{width:100%;height:auto;display:block;transition:transform .5s ease}
.pg-item:hover{border-color:var(--gold);transform:translateY(-3px)}
.pg-item:hover img{transform:scale(1.04)}
.pg-cap{position:absolute;left:0;right:0;bottom:0;padding:26px 14px 11px;text-align:left;
  font-family:'Montserrat Ace',sans-serif;font-size:10px;letter-spacing:.1em;color:#fff;
  background:linear-gradient(to top,rgba(18,18,16,.82),rgba(18,18,16,0))}

.pg-view{position:fixed;inset:0;z-index:3200;display:none;align-items:center;justify-content:center;padding:40px 70px}
.pg-view.is-open{display:flex}
.pg-view-back{position:absolute;inset:0;background:rgba(14,15,13,.92)}
.pg-view-fig{position:relative;max-width:min(1200px,100%);max-height:100%;display:flex;
  flex-direction:column;align-items:center;gap:14px}
.pg-view-fig img{max-width:100%;max-height:82vh;object-fit:contain;display:block;border-radius:var(--radius)}
.pg-view-fig figcaption{font-family:'Montserrat Ace',sans-serif;font-size:11px;letter-spacing:.18em;
  text-transform:uppercase;color:rgba(255,255,255,.72);text-align:center}
.pg-nav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.3);color:#fff;font-size:30px;
  line-height:1;cursor:pointer;z-index:2;transition:background .2s}
.pg-nav:hover{background:rgba(255,255,255,.22)}
.pg-prev{left:16px}
.pg-next{right:16px}
.pg-close{z-index:2}

@media(max-width:1024px){
  .park-gallery{column-count:3}
}
@media(max-width:640px){
  .park-gallery{column-count:2;column-gap:9px}
  .pg-item{margin-bottom:9px}
  .pg-cap{font-size:9px;padding:20px 9px 8px;letter-spacing:.06em}
  .pg-view{padding:12px}
  .pg-nav{width:42px;height:42px;font-size:24px}
  .pg-prev{left:6px}
  .pg-next{right:6px}
  .pg-view-fig img{max-height:74vh}
}

/* ─── Статья о парке: текст и фотографии в разворот ───────────────── */
/* Текст раньше стоял колонкой 760px, а галерея и схема под ним — во всю
   ширину; получался узкий столбец посреди пустого холста. Теперь каждая
   пара «текст + фотография» занимает всю ширину секции. */
.park-story{display:flex;flex-direction:column;gap:48px}
.park-story-row{display:grid;grid-template-columns:1.05fr 1fr;gap:46px;align-items:center}
.park-story-row.is-reverse{grid-template-columns:1fr 1.05fr}
.park-story-text p{font-size:17px;line-height:1.95;color:var(--text2);margin-bottom:20px}
.park-story-text p:last-child{margin-bottom:0}
.park-story-text p.lead{font-size:19px;line-height:1.85;color:var(--navy);font-weight:600}
.park-story-fig{position:relative;margin:0;border:1px solid var(--border);border-radius:var(--radius);
  overflow:hidden;cursor:pointer;background:var(--beige2);transition:border-color .3s,transform .3s}
.park-story-fig img{width:100%;height:auto;display:block;transition:transform .5s ease}
.park-story-fig:hover{border-color:var(--gold);transform:translateY(-3px)}
.park-story-fig:hover img{transform:scale(1.03)}
.park-story-fig figcaption{position:absolute;left:0;right:0;bottom:0;padding:28px 16px 12px;
  font-family:'Montserrat Ace',sans-serif;font-size:10px;letter-spacing:.12em;color:#fff;
  background:linear-gradient(to top,rgba(18,18,16,.82),rgba(18,18,16,0))}

@media(max-width:1024px){
  .park-story{gap:36px}
  .park-story-row,.park-story-row.is-reverse{grid-template-columns:1fr;gap:24px}
  /* в одну колонку фотография всегда идёт после текста */
  .park-story-row.is-reverse .park-story-fig{order:2}
  .park-story-row.is-reverse .park-story-text{order:1}
}
@media(max-width:640px){
  .park-story-text p{font-size:16px;line-height:1.85;margin-bottom:16px}
  .park-story-text p.lead{font-size:17px}
  .park-story-fig figcaption{font-size:9px;padding:22px 12px 9px}
}
