/* Первый экран: жирная фраза гротеском перетекает в антикву, на всю ширину */
.hero { padding-block: clamp(14px, 1.8vw, 32px) clamp(22px, 2.2vw, 36px); }
.hero-text { display: grid; gap: clamp(18px, 1.8vw, 28px); justify-items: start; }
h1 {
  font: 400 clamp(1.5rem, 1.22rem + .78vw, 2.375rem)/1.24 var(--serif);
  font-variation-settings: "opsz" 28;
  letter-spacing: -.018em; text-wrap: pretty;
}
h1 b { font-family: var(--sans); font-weight: 600; letter-spacing: -.024em; font-variation-settings: normal; }

/* Стена коллажей без обрезки. Порядок блоков подобран так, что колонки сходятся по высоте при 2, 3, 4 и 8 колонках. */
.plan { columns: 2; column-gap: 6px; }
.plan-col { display: contents; }
.block { position: relative; display: block; overflow: hidden; border-radius: 4px; text-decoration: none; break-inside: avoid; margin-bottom: 6px; }
.block .art, .block img { display: block; width: 100%; height: auto; }
.block img { transition: transform .7s cubic-bezier(.2, .7, .2, 1); }
.block:hover img { transform: scale(1.03); }
.block span { position: absolute; left: 5px; bottom: 5px; background: var(--bg); color: var(--ink); font: 500 .6875rem/1.3 var(--sans); padding: 2px 6px; border-radius: 4px; }
@media (min-width: 620px) { .plan { columns: 3; } }
@media (min-width: 860px) { .plan { columns: 4; } }
@media (min-width: 1100px) {
  .plan { columns: auto; display: flex; align-items: stretch; gap: 6px; width: min(max(1880px, 93vw), calc(100% + var(--g) * 1.75)); max-width: none; margin-inline: 0; margin-left: 50%; transform: translateX(-50%); }
  .plan-col { display: flex; flex-direction: column; justify-content: space-between; gap: 6px; flex: 1 1 0; min-width: 0; }
  .block { margin-bottom: 0; }
}

/* Секции */
.sec { padding-top: clamp(44px, 4.4vw, 76px); }
.title { font: 600 clamp(1.875rem, 1.35rem + 1.8vw, 3.25rem)/1.08 var(--sans); letter-spacing: -.028em; text-wrap: balance; }
.intro { font-size: 1.125rem; line-height: 1.5; max-width: 34em; text-wrap: pretty; }

/* Разбор инструкции */
.dec-grid { display: grid; gap: 28px; align-items: center; }
.dec-grid > * { min-width: 0; }
.dec-grid .pic { overflow: hidden; border-radius: 6px; }
.dec-grid img { width: 100%; }
.dec-text { display: grid; gap: 18px; }
.steps { display: grid; counter-reset: step; }
.steps li { display: grid; grid-template-columns: 2.25em minmax(0, 1fr); padding-block: 12px; border-top: 1px solid var(--line); counter-increment: step; }
.steps li:last-child { border-bottom: 1px solid var(--line); }
.steps li::before { content: counter(step); font: 400 .875rem/1.65 var(--sans); color: var(--muted); grid-row: 1 / 3; }
.steps h3 { font: 600 1.0625rem/1.4 var(--sans); }
.steps p { font-size: 1rem; line-height: 1.45; color: var(--muted); margin-top: 2px; }
@media (min-width: 1000px) { .dec-grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 56px; } }

/* Работы */
.jobs { padding-top: 18px; }
.job { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; padding-block: 14px; border-top: 1px solid var(--line); text-decoration: none; }
.job .pic { overflow: hidden; border-radius: 4px; }
.job img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; transition: transform .7s cubic-bezier(.2, .7, .2, 1); }
.job:hover img { transform: scale(1.04); }
.job h3 { font: 600 clamp(1.25rem, 1.1rem + .6vw, 1.625rem)/1.2 var(--sans); letter-spacing: -.016em; text-wrap: balance; }
.job p { font-size: 1rem; line-height: 1.45; color: var(--muted); max-width: 40em; margin-top: 6px; text-wrap: pretty; }
.job .stack { font: 400 .8125rem/1.5 var(--sans); color: var(--muted); }
@media (min-width: 760px) {
  .job { grid-template-columns: clamp(170px, 14vw, 250px) minmax(0, 1fr) minmax(120px, 220px); gap: 32px; align-items: center; }
  .job .stack { text-align: right; }
}

/* Направления */
.dirs { display: grid; gap: 36px 20px; padding-top: 26px; }
.dir { display: grid; gap: 12px; align-content: start; justify-items: start; min-width: 0; }
.dir .pic { width: 100%; overflow: hidden; border-radius: 6px; }
.dir img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.dir h3 { font: 600 1.5rem/1.2 var(--sans); letter-spacing: -.016em; margin-top: 4px; }
.dir ul { display: grid; gap: 6px; list-style: disc; padding-left: 1.2em; font-size: 1rem; line-height: 1.45; }
@media (min-width: 860px) { .dirs { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* Заголовок слева, содержание справа */
.side-grid { display: grid; gap: 24px; }
.side-grid > * { min-width: 0; }
.side-text { display: grid; gap: 16px; align-content: start; justify-items: start; }
.pain { padding-block: 16px; border-top: 1px solid var(--line); }
.pain:last-child { border-bottom: 1px solid var(--line); }
.pain h3 { font: 600 clamp(1.1875rem, 1.05rem + .5vw, 1.5rem)/1.22 var(--sans); letter-spacing: -.014em; text-wrap: balance; }
.pain p { font-size: 1.0625rem; line-height: 1.5; color: var(--muted); margin-top: 6px; max-width: 40em; text-wrap: pretty; }
.faq .acc + .acc { border-top: 0; }
.faq .acc summary { font: 500 clamp(1rem, .95rem + .25vw, 1.125rem)/1.35 var(--sans); padding-block: 14px; }
.faq .acc p { font-size: 1.0625rem; line-height: 1.5; color: var(--muted); padding-bottom: 16px; max-width: 42em; }
@media (min-width: 1000px) { .side-grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 56px; } .side-text { position: sticky; top: 76px; align-self: start; } }

/* Конституция */
.const-card { display: grid; gap: 24px; align-items: center; background: var(--card); border-radius: 12px; padding: clamp(16px, 2vw, 32px); }
.const-card .badge { max-width: 280px; }
.const-card .badge img { width: 100%; }
.const-text { display: grid; gap: 16px; justify-items: start; }
@media (min-width: 700px) { .const-card { grid-template-columns: clamp(180px, 16vw, 280px) minmax(0, 1fr); gap: clamp(28px, 4vw, 64px); } }

@media (prefers-reduced-motion: reduce) { .block img, .job img { transition: none; } }
