/* ==========================================================================
   Публичный сайт (лендинг): раскладка варианта «Плакат». Цвета и шрифты —
   только токены brand.css; здесь — сетки, размеры и отступы секций.
   Подключается после brand.css. Префикс классов — ld-.
   ========================================================================== */

:root {
  --ld-line: #dbe9ea;
  --ld-gutter: clamp(16px, 5vw, 80px);
  --ld-section: clamp(40px, 6vw, 72px);
}

body.ld-body { background: var(--chem-surface); }
.ld-main { display: flex; flex-direction: column; }
.ld-section { padding: var(--ld-section) var(--ld-gutter); }
.ld-section--white { background: #fff; border-top: 1px solid var(--ld-line); border-bottom: 1px solid var(--ld-line); }
.ld-section--tint { background: var(--chem-tint); }
.ld-wrap { max-width: 1280px; margin: 0 auto; }

.ld-h2 { font-size: clamp(28px, 3.4vw, 44px); line-height: 1.05; margin: 0; }
.ld-eyebrow { font-size: 13px; text-transform: uppercase; letter-spacing: 0.06em; font-weight: 500; color: var(--chem-teal-900); }
.ld-muted { color: var(--bs-secondary-color); }
.ld-link { color: var(--chem-teal-900); font-weight: 500; text-decoration: none; }
.ld-link:hover { color: var(--chem-teal-900); text-decoration: underline; }
.ld-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 24px; margin-bottom: 28px; }
.ld-card { background: #fff; border: 1px solid var(--ld-line); border-radius: var(--bs-border-radius-lg); }
.ld-card--link { display: flex; flex-direction: column; gap: 10px; text-decoration: none; color: var(--chem-ink); transition: border-color 0.15s; }
.ld-card--link:hover { border-color: var(--chem-teal); color: var(--chem-ink); }
.ld-prose p:last-child { margin-bottom: 0; }

/* --- шапка: те же цвета, что у системы --- */
.ld-nav .navbar-brand { margin-right: 24px; }
.ld-nav .nav-link { font-size: 15px; }

/* --- первый экран: тёмная плашка #004F59 --- */
.ld-hero { background: var(--chem-teal-900); color: #fff; padding: clamp(48px, 7vw, 88px) var(--ld-gutter) clamp(40px, 6vw, 72px); }
.ld-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 56px; align-items: center; }
.ld-hero__eyebrow { font-size: 15px; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(255, 255, 255, 0.72); }
.ld-hero__title { font-size: clamp(40px, 6.6vw, 88px); line-height: 0.98; text-transform: uppercase; letter-spacing: -0.015em; color: #fff; margin: 0; max-width: 820px; }
.ld-hero__slogan { font-size: clamp(20px, 2.2vw, 28px); line-height: 1.25; color: #fff; margin: 0; }
.ld-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 12px; }
/* height: auto — иначе атрибут height="425" держит высоту, когда ширина меньше, и енот сплющивается */
.ld-hero__raccoon { width: 330px; height: auto; justify-self: end; }
.ld-hero .btn { height: 48px; padding: 0 24px; font-size: 16px; display: inline-flex; align-items: center; }
.ld-btn-white { --bs-btn-bg: #fff; --bs-btn-border-color: #fff; --bs-btn-color: var(--chem-teal-900); --bs-btn-hover-bg: var(--chem-tint); --bs-btn-hover-border-color: var(--chem-tint); --bs-btn-hover-color: var(--chem-teal-900); --bs-btn-active-bg: #d2e9ea; --bs-btn-active-border-color: #d2e9ea; --bs-btn-active-color: var(--chem-teal-900); }
.ld-btn-ghost { --bs-btn-bg: transparent; --bs-btn-border-color: rgba(255, 255, 255, 0.7); --bs-btn-color: #fff; --bs-btn-hover-bg: rgba(255, 255, 255, 0.12); --bs-btn-hover-border-color: #fff; --bs-btn-hover-color: #fff; --bs-btn-active-bg: rgba(255, 255, 255, 0.2); --bs-btn-active-color: #fff; }

/* --- ближайшие события --- */
.ld-events { background: #fff; border-bottom: 1px solid var(--ld-line); padding: 28px var(--ld-gutter); }
.ld-events__row { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 20px 32px; }
.ld-events__list { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px 24px; flex: 1 1 600px; }
.ld-event { display: flex; flex-direction: column; gap: 2px; }
.ld-event__date { font-size: 20px; font-weight: 700; color: var(--chem-teal); font-variant-numeric: tabular-nums; }
.ld-event__title { font-size: 14px; }

/* --- туры --- */
.ld-stages { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.ld-stage { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.ld-tours { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; flex: 1; }
.ld-tour { padding: 28px 24px; display: flex; flex-direction: column; gap: 14px; }
.ld-tour--final { background: var(--chem-tint); border-color: var(--chem-tint); }
.ld-tour--final .tag { background: #fff; }
.ld-tour__numeral { font-size: 72px; line-height: 1; font-weight: 800; font-style: italic; color: var(--chem-teal); }
.ld-tour--final .ld-tour__numeral { color: var(--chem-teal-900); }
.ld-tour h3 { font-size: 22px; margin: 0; }
.ld-tour__tags { display: flex; flex-wrap: wrap; gap: 6px; }
.ld-tour__text { font-size: 15px; line-height: 1.5; }
.ld-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-top: 24px; }
.ld-details .ld-card { padding: 32px; display: flex; flex-direction: column; gap: 16px; }
.ld-details h3 { font-size: 20px; margin: 0; }
.ld-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.ld-fact { display: flex; flex-direction: column; gap: 4px; }
.ld-fact__num { font-size: 30px; font-weight: 700; color: var(--chem-teal-900); font-variant-numeric: tabular-nums; line-height: 1.1; }
.ld-fact__label { font-size: 14px; color: var(--bs-secondary-color); }

/* --- новости --- */
.ld-news { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.ld-news__item { padding: 24px; background: var(--chem-surface); }
.ld-news__date { font-size: 13px; color: var(--bs-secondary-color); }
.ld-news__title { font-size: 20px; font-weight: 700; color: var(--chem-teal-900); line-height: 1.25; }
.ld-news__excerpt { font-size: 15px; line-height: 1.5; color: var(--bs-secondary-color); }
.ld-news-page { max-width: 820px; }
.ld-news-page .ld-card { padding: 28px 32px; }
.ld-news-page .ld-card + .ld-card { margin-top: 16px; }

/* --- подготовка --- */
.ld-materials { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; }
.ld-material { display: flex; flex-direction: column; gap: 12px; text-decoration: none; padding-top: 20px; border-top: 1px solid #b7cfd1; color: var(--chem-ink); }
.ld-material:hover { color: var(--chem-ink); }
.ld-material:hover .ld-material__title { text-decoration: underline; }
.ld-material__num { font-size: 15px; font-weight: 700; color: var(--chem-teal); font-variant-numeric: tabular-nums; }
.ld-material__title { font-size: 22px; font-weight: 700; color: var(--chem-teal-900); }
.ld-material__text { font-size: 15px; line-height: 1.5; color: var(--bs-secondary-color); }

/* --- международный трек --- */
.ld-intl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px; }
.ld-intl h2 { font-size: clamp(24px, 2.6vw, 32px); margin: 0 0 14px; }
.ld-intl .ld-prose { font-size: 16px; line-height: 1.55; }

/* --- организаторы --- */
.ld-org { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.ld-org .ld-card { padding: 32px; display: flex; flex-direction: column; gap: 10px; }
.ld-org__name { font-size: 24px; font-weight: 700; color: var(--chem-teal-900); line-height: 1.2; }
.ld-partners { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 24px; margin-top: 24px; }
.ld-partner { padding: 20px 24px; font-size: 15px; font-weight: 500; color: var(--chem-ink); text-decoration: none; }
.ld-partner:hover { color: var(--chem-teal-900); }

/* --- контакты: тёмная плашка --- */
.ld-contacts { background: var(--chem-teal-900); color: #fff; border-radius: var(--bs-border-radius-lg); padding: 40px 48px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 40px; }
.ld-contacts h2 { color: #fff; margin: 0; font-size: clamp(24px, 2.6vw, 32px); }
.ld-contacts__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 32px; font-size: 16px; }
.ld-contact { display: flex; flex-direction: column; gap: 4px; }
.ld-contact__label { font-size: 13px; color: rgba(255, 255, 255, 0.7); }
.ld-contact a, .ld-contact span { color: #fff; font-weight: 500; text-decoration: none; }
.ld-contact a:hover { text-decoration: underline; color: #fff; }

/* --- подвал --- */
.ld-footer { padding: 16px var(--ld-gutter); }

/* --- адаптив --- */
@media (max-width: 1199.98px) {
  .ld-stages { grid-template-columns: minmax(0, 1fr); gap: 32px; }
}
@media (max-width: 991.98px) {
  .ld-hero__grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .ld-hero__raccoon { width: 150px; justify-self: start; order: -1; }
  .ld-materials { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .ld-news { grid-template-columns: minmax(0, 1fr); }
  .ld-intl, .ld-org, .ld-details { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .ld-contacts { grid-template-columns: minmax(0, 1fr); padding: 32px 28px; gap: 24px; }
}
@media (max-width: 575.98px) {
  .ld-tours, .ld-stages, .ld-facts, .ld-contacts__list { grid-template-columns: minmax(0, 1fr); }
  .ld-stage { gap: 12px; }
  .ld-tour__numeral { font-size: 56px; }
  .ld-details .ld-card, .ld-org .ld-card { padding: 24px; }
}

/* --- внутренняя страница («Оформление проектов») --- */
.ld-page { max-width: 1080px; }
.ld-page__grid { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 32px; align-items: start; }
.ld-page__body { padding: 28px 32px; font-size: 16px; line-height: 1.6; }
.ld-page__body h3 { font-size: 20px; margin: 24px 0 10px; }
.ld-page__body h3:first-child { margin-top: 0; }
.ld-page__body ol, .ld-page__body ul { padding-left: 1.4em; }
.ld-page__body li { margin-bottom: 4px; }
.ld-page__aside { position: sticky; top: 24px; }
.ld-page__aside-card { padding: 20px 24px; display: flex; flex-direction: column; gap: 10px; }
@media (max-width: 991.98px) {
  .ld-page__grid { grid-template-columns: minmax(0, 1fr); }
  .ld-page__aside { position: static; }
  .ld-page__body { padding: 20px; }
}
