/* ЭСД24 — esd24.online. Деловой стиль доверия: лесная зелень, тёплый белый, системные шрифты. */
:root {
  --ink: #1c2420;
  --muted: #5a655e;
  --green: #1e6b3e;
  --green-dark: #14522d;
  --green-pale: #e8f1ea;
  --bg: #fbfbf9;
  --card: #f2f4f0;
  --line: #dde3dd;
  --amber: #8a5a12;
  --amber-pale: #fdf3dd;
  --todo: #ffe89e;
}
* { box-sizing: border-box; margin: 0; }
html { -webkit-text-size-adjust: 100%; }
body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: 17px; line-height: 1.6; color: var(--ink); background: var(--bg);
}
a { color: var(--green); }
img { max-width: 100%; }

/* Шапка */
header.site {
  background: #fff; border-bottom: 1px solid var(--line);
  position: sticky; top: 0; z-index: 10;
}
/* На мобильном шапка высокая (нав в 2-3 строки) — прилипание отдаёт пол-экрана, отключаем */
@media (max-width: 700px) {
  header.site { position: static; }
  nav.main { font-size: 13.5px; gap: 2px 10px; }
  .logo { font-size: 19px; }
}
.site-inner {
  max-width: 960px; margin: 0 auto; padding: 10px 16px;
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
}
.logo { font-weight: 800; font-size: 22px; color: var(--ink); text-decoration: none; letter-spacing: .5px; }
.logo b { color: var(--green); }
.logo small { display: block; font-size: 11px; font-weight: 500; color: var(--muted); letter-spacing: .2px; }
nav.main { display: flex; gap: 2px 14px; flex-wrap: wrap; font-size: 14.5px; }
nav.main a { color: var(--ink); text-decoration: none; padding: 4px 2px; border-bottom: 2px solid transparent; }
nav.main a:hover { color: var(--green); }
nav.main a.here { border-bottom-color: var(--green); color: var(--green); font-weight: 600; }

/* Контент */
main { max-width: 960px; margin: 0 auto; padding: 28px 16px 56px; }
h1 { font-size: clamp(26px, 4.5vw, 38px); line-height: 1.2; letter-spacing: -.3px; margin-bottom: 14px; text-wrap: balance; }
h2 { font-size: clamp(20px, 3vw, 26px); margin: 36px 0 12px; text-wrap: balance; }
h3 { font-size: 18px; margin: 22px 0 8px; }
p { margin: 10px 0; }
ul, ol { margin: 10px 0 10px 22px; }
li { margin: 5px 0; }
.lead { font-size: clamp(18px, 2.6vw, 21px); color: var(--muted); max-width: 46em; }
.muted { color: var(--muted); }
.small { font-size: 14px; }

/* Герой */
.hero { padding: 20px 0 8px; }
.hero .claim { color: var(--green-dark); font-weight: 700; }

/* Кнопки связи */
.cta-row { display: flex; gap: 10px; flex-wrap: wrap; margin: 20px 0 6px; }
.btn {
  display: inline-block; padding: 12px 20px; border-radius: 8px; text-decoration: none;
  font-weight: 700; font-size: 16px; border: 2px solid var(--green);
}
.btn.primary { background: var(--green); color: #fff; }
.btn.primary:hover { background: var(--green-dark); border-color: var(--green-dark); }
.btn.ghost { color: var(--green); background: #fff; }
.btn.ghost:hover { background: var(--green-pale); }
.workhours { font-size: 14.5px; color: var(--muted); margin-top: 4px; }

/* Карточки */
.grid { display: grid; gap: 14px; margin: 18px 0; }
@media (min-width: 640px) { .grid.cols3 { grid-template-columns: 1fr 1fr 1fr; } .grid.cols2 { grid-template-columns: 1fr 1fr; } }
.card { background: var(--card); border: 1px solid var(--line); border-radius: 10px; padding: 16px 18px; }
.card h3 { margin-top: 0; }
.card .num { display: inline-block; background: var(--green); color: #fff; font-weight: 800; border-radius: 6px; padding: 1px 9px; margin-bottom: 8px; }

/* Таблицы */
.tablewrap { overflow-x: auto; margin: 16px 0; }
table { border-collapse: collapse; width: 100%; min-width: 480px; font-size: 15.5px; }
th, td { border: 1px solid var(--line); padding: 9px 12px; text-align: left; vertical-align: top; }
th { background: var(--green-pale); font-weight: 700; }
td.good { background: #eef7ef; }
tbody tr:nth-child(even) td:not(.good) { background: #f7f8f6; }
td, th { font-variant-numeric: tabular-nums; }

/* Примечания */
.note { background: var(--amber-pale); border-left: 4px solid var(--amber); border-radius: 6px; padding: 12px 16px; margin: 16px 0; font-size: 15.5px; }
.official { background: var(--green-pale); border-left: 4px solid var(--green); border-radius: 6px; padding: 12px 16px; margin: 16px 0; }

/* Плейсхолдеры до запуска (убрать при деплое) */
.todo { background: var(--todo); border-radius: 4px; padding: 0 6px; font-weight: 600; }

/* FAQ */
details { border: 1px solid var(--line); border-radius: 8px; background: #fff; margin: 8px 0; padding: 0; }
details summary { cursor: pointer; font-weight: 600; padding: 12px 16px; list-style-position: inside; }
details[open] summary { border-bottom: 1px solid var(--line); }
details .answer { padding: 10px 16px 14px; }

/* Новости */
.newsitem { border-bottom: 1px solid var(--line); padding: 14px 0; }
.newsitem .date { font-size: 13.5px; color: var(--muted); }

/* Подвал */
footer.site { border-top: 1px solid var(--line); background: #fff; }
.foot-inner { max-width: 960px; margin: 0 auto; padding: 22px 16px 30px; font-size: 14px; color: var(--muted); }
.foot-inner a { color: var(--muted); }
