/* Новые страницы cargov.ru (шаблон NewPage.astro). Свой лёгкий CSS в стилистике сайта:
   тёмно-синий #04004c, фиолетовый #4a1dff, лаванда #ecf2ff, жёлтый #e9ff7a; заголовки Taylor Sans, текст Fira Sans. */
.cgl { --navy: #04004c; --violet: #4a1dff; --lav: #ecf2ff; --lav2: #e7e8ff; --yellow: #e9ff7a; --muted: rgba(4, 0, 76, .68);
  color: var(--navy); font-family: 'Fira Sans', sans-serif; font-size: 17px; line-height: 1.6; }
.cgl * { box-sizing: border-box; }
.cgl-wrap { max-width: 1240px; margin: 0 auto; padding: 0 20px; }
.cgl h1, .cgl h2, .cgl h3 { font-family: 'Taylor Sans', sans-serif; color: var(--navy); line-height: 1.12; margin: 0 0 18px; font-weight: 700; }
.cgl h1 { font-size: clamp(34px, 5vw, 60px); font-weight: 600; }
.cgl h2 { font-size: clamp(28px, 3.4vw, 44px); }
.cgl h3, .cgl .cgl-h3 { font-size: 22px; }
.cgl a { color: var(--violet); }

/* первый экран */
.cgl-hero { padding: 16px 0 40px; }
.cgl-hero__grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); gap: 16px; }
.cgl-hero__main { background: linear-gradient(135deg, #e9ecff 0%, #f3f0ff 60%, #e4e3ff 100%); border-radius: 32px; padding: 44px 40px; }
.cgl-crumbs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 22px; font-size: 13px; font-weight: 600; }
.cgl-crumbs a, .cgl-crumbs span { background: #fff; border-radius: 20px; padding: 6px 14px; text-decoration: none; }
.cgl-crumbs span { color: var(--navy); }
.cgl-lead { font-size: 19px; color: var(--muted); margin: 0 0 20px; max-width: 760px; }
.cgl-checks { list-style: none; padding: 0; margin: 0 0 28px; }
.cgl-checks li { position: relative; padding-left: 36px; margin: 0 0 12px; font-size: 17px; }
.cgl-checks li::before { content: ""; position: absolute; left: 0; top: 2px; width: 22px; height: 22px; border-radius: 50%;
  background: var(--violet) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='3' d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center/14px no-repeat; }
.cgl-hero__cta { display: flex; flex-wrap: wrap; gap: 12px; }
.cgl-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 28px; border-radius: 30px;
  font-weight: 600; font-size: 17px; text-decoration: none; border: 1px solid transparent; cursor: pointer; }
.cgl-btn--dark { background: var(--navy); color: #fff !important; }
.cgl-btn--ghost { background: #fff; color: var(--navy) !important; border-color: rgba(74, 29, 255, .25); }
.cgl-btn--yellow { background: var(--yellow); color: var(--navy) !important; }
.cgl-hero__card { background: linear-gradient(160deg, #5b4bff 0%, #4a1dff 55%, #3a12d6 100%); color: #fff; border-radius: 32px; padding: 40px 34px;
  display: flex; flex-direction: column; justify-content: center; gap: 22px; }
.cgl-fact { display: flex; flex-direction: column; gap: 4px; padding-bottom: 18px; border-bottom: 1px solid rgba(255, 255, 255, .25); }
.cgl-fact:last-of-type { border-bottom: 0; }
.cgl-fact__label { font-size: 14px; opacity: .85; }
.cgl-fact__value { font-family: 'Taylor Sans', sans-serif; font-size: 30px; line-height: 1.1; color: var(--yellow); }
.cgl-hero__note { margin: 0; font-size: 14px; color: #fff; }

/* секции */
.cgl-section { padding: 56px 0; }
.cgl-section--tint { background: var(--lav); border-radius: 32px; margin: 0 8px; }
.cgl-section--tight { padding: 24px 0 56px; }
.cgl-label { display: inline-flex; align-items: center; gap: 10px; color: var(--violet); font-size: 14px; margin: 0 0 10px; }
.cgl-label::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--violet); box-shadow: 0 0 0 6px #fff; }
.cgl-section--tint .cgl-label::before { box-shadow: 0 0 0 6px #fff; }
.cgl-text { max-width: 900px; color: var(--muted); }
.cgl-text p { margin: 0 0 14px; }
.cgl-text ul { padding-left: 20px; margin: 0 0 14px; }
.cgl-text li { margin-bottom: 6px; }
.cgl-text strong { color: var(--navy); }

.cgl-table { overflow-x: auto; margin-top: 24px; border-radius: 20px; }
.cgl-table table { width: 100%; min-width: 620px; border-collapse: collapse; background: #fff; font-size: 16px; }
.cgl-table th { background: var(--violet); color: #fff; text-align: left; padding: 16px 18px; font-weight: 600; }
.cgl-table td { padding: 14px 18px; border-bottom: 1px solid var(--lav2); color: var(--navy); vertical-align: top; }
.cgl-table tr:nth-child(even) td { background: #f8f8ff; }

.cgl-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 16px; margin-top: 24px; }
.cgl-card { background: #fff; border: 1px solid #d9d6ff; border-radius: 24px; padding: 26px 24px; }
.cgl-card h3 { font-size: 20px; margin-bottom: 10px; }
.cgl-card p { margin: 0; color: var(--muted); font-size: 16px; }

.cgl-steps { counter-reset: st; list-style: none; padding: 0; margin: 24px 0 0; display: grid; gap: 12px; max-width: 900px; }
.cgl-steps li { counter-increment: st; position: relative; padding: 16px 20px 16px 68px; background: #fff; border-radius: 18px; border: 1px solid #e3e1ff; }
.cgl-steps li::before { content: counter(st); position: absolute; left: 18px; top: 14px; width: 34px; height: 34px; border-radius: 50%;
  background: var(--yellow); color: var(--navy); font-weight: 700; display: flex; align-items: center; justify-content: center; }

/* FAQ */
.cgl-faq { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 32px; align-items: start; }
.cgl-faq__item { border: 1px solid #d9d6ff; border-radius: 20px; background: #fff; margin-bottom: 12px; }
.cgl-faq__item summary { cursor: pointer; list-style: none; padding: 20px 56px 20px 22px; font-weight: 600; font-size: 18px; position: relative; color: var(--navy); }
.cgl-faq__item summary::-webkit-details-marker { display: none; }
.cgl-faq__item summary::after { content: "+"; position: absolute; right: 22px; top: 50%; transform: translateY(-50%); font-size: 26px; font-weight: 300; }
.cgl-faq__item[open] summary::after { content: "−"; }
.cgl-faq__item .cgl-text { padding: 0 22px 18px; }

.cgl-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.cgl-chips a { border: 1px solid #c9c3ff; border-radius: 24px; padding: 9px 18px; text-decoration: none; color: var(--navy); font-weight: 500; }

/* новости */
.cgl-news { display: grid; gap: 16px; max-width: 960px; }
.cgl-news__item { background: #fff; border: 1px solid #d9d6ff; border-radius: 24px; padding: 26px 28px; }
.cgl-news__item time { color: var(--violet); font-size: 14px; }
.cgl-news__item h2 { font-size: 26px; margin: 6px 0 10px; }
.cgl-news__item h2 a { color: var(--navy); text-decoration: none; }

@media (hover: hover) {
  .cgl-btn, .cgl-chips a, .cgl-card { transition: transform .15s ease, box-shadow .15s ease; }
  .cgl-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(74, 29, 255, .22); }
  .cgl-chips a:hover { border-color: var(--violet); }
  .cgl-card:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(4, 0, 76, .08); }
}
@media (max-width: 900px) {
  .cgl-hero__grid, .cgl-faq { grid-template-columns: 1fr; }
  .cgl-hero__main { padding: 30px 22px; border-radius: 26px; }
  .cgl-hero__card { padding: 28px 24px; border-radius: 26px; }
  .cgl-section { padding: 40px 0; }
  .cgl-section--tint { margin: 0; border-radius: 24px; }
  .cgl-btn { width: 100%; }
}

/* Тема задаёт размеры заголовков глобально (часть — с !important) — на новых страницах держим свою шкалу */
body .cgl h1 { font-size: clamp(34px, 5vw, 60px) !important; line-height: 1.08 !important; }
body .cgl h2 { font-size: clamp(28px, 3.4vw, 44px) !important; line-height: 1.12 !important; }
body .cgl h3, body .cgl .cgl-h3 { font-size: 22px !important; line-height: 1.2 !important; }
body .cgl .cgl-card h3 { font-size: 20px !important; }
body .cgl .cgl-news__item h2 { font-size: 26px !important; }
@media (max-width: 767px) {
  body .cgl h1 { font-size: 32px !important; }
  body .cgl h2 { font-size: 26px !important; }
}

/* без карточки фактов (новости) — первый экран на всю ширину; лента новостей по левому краю */
.cgl-hero__grid:not(:has(.cgl-hero__card)) { grid-template-columns: 1fr; }
.cgl-news { margin: 0; }
.cgl-routes { margin-bottom: 26px; }
