/*
Theme Name: dds_migration-expert.ru
Theme URI: https://migration-expert.ru/
Author: Елена Смирнова
Description: Тема информационно-аналитического портала о трудовой миграции и построении карьеры. Концепция «Светлая роща»: хвойные и мятные тона, метафора роста и укоренения на новом месте.
Version: 1.1
Requires at least: 6.0
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: migexp
*/

/* ---------- Скрытие по атрибуту hidden (до основных стилей) ---------- */
[hidden] { display: none !important; }
.cookie-banner[hidden] { display: none !important; }

/* ---------- Токены ---------- */
:root {
    --bg: #F4F9F4;
    --mint: #E4F0E6;
    --glade: #D4E8D8;
    --conifer: #0F3D2E;
    --conifer-deep: #0A2A1F;
    --side: #ECF5EE;
    --ink: #1B2E24;
    --emerald: #1E8A5E;
    --emerald-dark: #166B49;
    --leaf: #7BC96F;
    --moss: #5F7A6A;
    --white: #FFFFFF;
    --f-head: "Manrope", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
    --f-body: "PT Sans", "Trebuchet MS", "Segoe UI", Arial, sans-serif;
    --lift: 0 6px 16px rgba(30, 138, 94, .2);
}

/* ---------- База ---------- */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { transition: none !important; animation: none !important; }
}

body {
    margin: 0;
    overflow-x: hidden;
    font-family: var(--f-body);
    font-size: 1.0625rem;
    line-height: 1.65;
    color: var(--ink);
    background-color: var(--bg);
    background-image: repeating-linear-gradient(45deg, rgba(30, 138, 94, .03) 0 1px, transparent 1px 16px);
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--f-head);
    font-weight: 800;
    line-height: 1.22;
    color: var(--ink);
    margin: 1.6em 0 .6em;
    letter-spacing: -.01em;
    overflow-wrap: break-word;
    hyphens: auto;
}
h1 { font-size: 2.2rem; }
h2 { font-size: 1.7rem; }
h3 { font-size: 1.3rem; }
h4 { font-size: 1.12rem; }

/* Бутон перед H2 и H3 */
h2::before,
h3::before {
    content: "";
    display: inline-block;
    width: .4em;
    height: .4em;
    margin-right: .5em;
    border-radius: 50%;
    background: var(--leaf);
    vertical-align: .16em;
}

p { margin: 0 0 1.1em; }
p, li, dd, td, th, blockquote { overflow-wrap: break-word; hyphens: auto; }

a {
    color: var(--emerald);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: .22em;
    transition: color .2s ease, text-decoration-color .2s ease, text-decoration-thickness .2s ease;
}
a:hover {
    color: var(--emerald-dark);
    text-decoration-color: var(--leaf);
    text-decoration-thickness: 2px;
}
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible {
    outline: 2px solid var(--leaf);
    outline-offset: 2px;
}

img, svg, video { max-width: 100%; height: auto; }
img { display: block; }

table { width: 100%; border-collapse: collapse; margin: 0 0 1.4em; border: 1px solid #B9D6C2; }
th, td { border: 1px solid #B9D6C2; padding: .6em .8em; text-align: left; vertical-align: top; }
th { background: var(--mint); font-family: var(--f-head); font-weight: 700; }

blockquote {
    margin: 1.6em 0;
    padding: 1.2rem 1.5rem;
    background: var(--mint);
    border-left: 3px solid var(--emerald);
    border-radius: 0 8px 8px 0;
    font-style: italic;
}
blockquote p:last-child { margin-bottom: 0; }

pre, code { font-family: Consolas, "Courier New", monospace; font-size: .92em; }
pre { overflow-x: auto; padding: 1rem 1.2rem; background: var(--mint); border-radius: 6px; }

hr { border: 0; height: 1px; background: #C9DECE; margin: 2em 0; }

.screen-reader-text {
    position: absolute !important;
    width: 1px; height: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px);
    white-space: nowrap;
}
.skip-link {
    position: absolute;
    top: -40px; left: 1rem;
    z-index: 100;
    padding: .5rem 1rem;
    background: var(--emerald);
    color: var(--white);
    border-radius: 0 0 6px 6px;
}
.skip-link:focus { top: 0; }

/* ---------- Контейнер ---------- */
.shell { width: min(92%, 1180px); margin-inline: auto; }
.shell--front { width: min(85%, 1180px); }

/* ---------- Полоса «горизонт почвы» ---------- */
.soil-line {
    height: 4px;
    background: linear-gradient(90deg, var(--emerald) 0 33.33%, var(--leaf) 33.33% 66.66%, var(--conifer-deep) 66.66% 100%);
}

/* ---------- Кнопки ---------- */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5em;
    padding: .78rem 1.5rem;
    font-family: var(--f-head);
    font-weight: 700;
    font-size: 1rem;
    line-height: 1.25;
    text-align: center;
    text-decoration: none;
    border-radius: 6px;
    border: 1.5px solid transparent;
    cursor: pointer;
    transition: background-color .25s ease, color .25s ease, border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.btn:hover { text-decoration: none; transform: translateY(-2px); box-shadow: var(--lift); }
.btn--fill { background: var(--emerald); border-color: var(--emerald); color: var(--white); }
.btn--fill:hover { background: var(--emerald-dark); border-color: var(--emerald-dark); color: var(--white); }
.btn--line { background: transparent; border-color: var(--emerald); color: var(--emerald); }
.btn--line:hover { background: var(--emerald); color: var(--white); }
.btn--line-light { border-color: var(--mint); color: var(--mint); }
.btn--line-light:hover { background: var(--emerald); border-color: var(--emerald); color: var(--white); }
.btn--ghost-white { background: transparent; border-color: var(--white); color: var(--white); }
.btn--ghost-white:hover { background: var(--white); color: var(--conifer); box-shadow: 0 6px 16px rgba(0, 0, 0, .2); }

/* ---------- Шапка ---------- */
.masthead { background: var(--conifer); color: #DCEBE0; }
.masthead-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.1rem 0;
}
.brand { display: flex; align-items: center; gap: 1rem; min-width: 0; }
.brand-mark { flex: 0 0 auto; display: block; }
.brand-logo { width: 56px; height: 56px; object-fit: contain; }
.brand-text { min-width: 0; }
.brand-name {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-family: var(--f-head);
    font-weight: 700;
    font-size: .98rem;
    line-height: 1.35;
    color: var(--bg);
    text-decoration: none;
}
.brand-name:hover { color: var(--leaf); text-decoration: none; }
.brand-desc {
    display: none;
    margin: .35rem 0 0;
    font-size: .86rem;
    line-height: 1.45;
    color: #A9C9B3;
}
.nav-toggle {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    padding: .55rem .9rem;
    background: transparent;
    color: var(--bg);
    border: 1.5px solid rgba(228, 240, 230, .45);
    border-radius: 6px;
    font-family: var(--f-head);
    font-weight: 700;
    font-size: .9rem;
    cursor: pointer;
}
.nav-toggle-bars,
.nav-toggle-bars::before,
.nav-toggle-bars::after {
    display: block;
    width: 18px;
    height: 2px;
    background: currentColor;
    border-radius: 2px;
    transition: transform .2s ease, background-color .2s ease;
}
.nav-toggle-bars { position: relative; }
.nav-toggle-bars::before, .nav-toggle-bars::after { content: ""; position: absolute; left: 0; }
.nav-toggle-bars::before { top: -6px; }
.nav-toggle-bars::after { top: 6px; }
.nav-toggle[aria-expanded="true"] .nav-toggle-bars { background: transparent; }
.nav-toggle[aria-expanded="true"] .nav-toggle-bars::before { transform: translateY(6px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle-bars::after { transform: translateY(-6px) rotate(-45deg); }

.primary-nav { display: none; border-top: 1px solid rgba(228, 240, 230, .14); }
.primary-nav.is-open { display: block; }
.nav-list { list-style: none; margin: 0; padding: .5rem 0 .9rem; }
.nav-list li { margin: 0; }
.nav-list a {
    display: block;
    padding: .6rem 0;
    font-family: var(--f-head);
    font-weight: 700;
    font-size: .98rem;
    color: #E4F0E6;
    text-decoration: none;
    border-bottom: 2px solid transparent;
}
.nav-list a:hover,
.nav-list .current-menu-item > a { color: var(--leaf); text-decoration: none; }

/* ---------- Основная область ---------- */
.site-main {
    display: block;
    padding-bottom: 3.5rem;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 360'%3E%3Cg fill='%231E8A5E' fill-opacity='.04'%3E%3Cpath d='M140 360V210h20v150z'/%3E%3Cpath d='M150 240l-50-50 8-8 42 42zM150 222l46-52 8 7-44 50z'/%3E%3Ccircle cx='150' cy='110' r='80'/%3E%3Ccircle cx='80' cy='150' r='58'/%3E%3Ccircle cx='222' cy='150' r='60'/%3E%3Ccircle cx='110' cy='70' r='52'/%3E%3Ccircle cx='196' cy='72' r='54'/%3E%3Ccircle cx='150' cy='180' r='50'/%3E%3C/g%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 2% bottom 1rem;
    background-size: 300px auto;
}
.home .site-main { padding-bottom: 0; }

/* ---------- Хлебные крошки ---------- */
.crumbs {
    padding: 1.4rem 0 .4rem;
    font-size: .92rem;
    color: var(--moss);
}
.crumbs a { color: var(--emerald); }
.crumbs-sep { margin: 0 .35em; color: var(--leaf); }

/* ---------- Раскладки ---------- */
.layout { padding: 1rem 0 2rem; }
.layout--single { display: block; }
.layout--single > .content-area { width: 100%; margin-left: auto; margin-right: auto; }
.layout--aside { display: block; }
.content-area { min-width: 0; }

.sidebar {
    min-width: 0;
    margin-top: 2.5rem;
    padding: 1.6rem 1.5rem;
    background-color: var(--side);
    background-image: radial-gradient(rgba(30, 138, 94, .07) 1px, transparent 1.2px);
    background-size: 14px 14px;
    border-radius: 10px;
    color: var(--ink);
}

.page-head { margin-bottom: 2rem; }
.page-title, .entry-title { font-size: 2.2rem; margin: .6rem 0 .8rem; }
.page-title::before, .entry-title::before { content: none; }
.page-intro { color: var(--moss); }
.empty-note { color: var(--moss); font-size: 1.05rem; }

/* ---------- Заголовки секций ---------- */
.sec-title {
    font-size: clamp(1.6rem, 3.2vw, 2.3rem);
    margin: 0 0 1.8rem;
    padding-left: 1.1rem;
    border-left: 2px solid var(--emerald);
}
.sec-title::after {
    content: "";
    display: block;
    width: 46px;
    height: 2px;
    margin-top: .9rem;
    background: var(--leaf);
}
.sec-lead { max-width: 44rem; color: var(--moss); margin: -.6rem 0 2.4rem 1.2rem; }

/* ---------- Карточки ---------- */
.card-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.8rem; }
.card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
    background: var(--white);
    border-radius: 10px;
    border-top: 3px solid var(--leaf);
    box-shadow: 0 4px 12px rgba(30, 138, 94, .08);
    transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.card:hover {
    transform: translateY(-4px);
    border-top-color: var(--emerald);
    box-shadow: 0 8px 18px rgba(30, 138, 94, .14);
}
.card-thumb { position: relative; overflow: hidden; }
.card-thumb a { display: block; }
.card-thumb img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}
.card-thumb::after {
    content: "";
    position: absolute;
    left: 0; right: 0; bottom: 0;
    height: 45%;
    background: linear-gradient(to top, rgba(15, 61, 46, .35), rgba(15, 61, 46, 0));
    pointer-events: none;
}
.card-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 1.3rem 1.4rem 1.5rem;
}
.card-title { font-size: 1.2rem; margin: 0 0 .7rem; line-height: 1.3; }
.card-title a { color: var(--ink); text-decoration: none; }
.card-title a:hover { color: var(--emerald); text-decoration: none; }
.card-meta { display: flex; flex-wrap: wrap; gap: .4rem 1rem; font-size: .88rem; color: var(--moss); margin-bottom: .7rem; }
.card-pin { color: var(--emerald); font-weight: 700; }
.card-excerpt { flex: 1; color: #33473B; font-size: .99rem; }
.card-excerpt p { margin: 0 0 .5em; background: none; }
.card-more {
    align-self: flex-start;
    margin-top: .6rem;
    font-family: var(--f-head);
    font-weight: 700;
    font-size: .95rem;
}

/* ---------- Теги категорий ---------- */
.term-row { display: flex; flex-wrap: wrap; gap: .45rem; margin: 0 0 .8rem; }
.term-chip {
    display: inline-block;
    padding: .18rem .6rem;
    background: var(--mint);
    color: var(--emerald);
    border-radius: 4px;
    font-family: var(--f-head);
    font-weight: 600;
    font-size: .8rem;
    line-height: 1.5;
    text-decoration: none;
    transition: background-color .2s ease, color .2s ease;
}
.term-chip:hover { background: var(--emerald); color: var(--white); text-decoration: none; }

/* ---------- Пагинация (type => plain) ---------- */
.pager {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    margin: 2.6rem 0 0;
}
.pager .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.6rem;
    height: 2.6rem;
    padding: 0 .85rem;
    border: 1.5px solid var(--emerald);
    border-radius: 6px;
    background: var(--white);
    color: var(--emerald);
    font-family: var(--f-head);
    font-weight: 700;
    font-size: .95rem;
    text-decoration: none;
    transition: background-color .2s ease, color .2s ease, transform .2s ease;
}
.pager a.page-numbers:hover { background: var(--emerald); color: var(--white); transform: translateY(-2px); }
.pager .page-numbers.current { background: var(--emerald); color: var(--white); }
.pager .page-numbers.dots { border-color: transparent; background: transparent; color: var(--moss); min-width: auto; padding: 0 .3rem; }

/* ---------- Запись и страница ---------- */
.entry-head { margin-bottom: 1.4rem; }
.entry-meta { font-size: .92rem; color: var(--moss); }
.entry-cover { margin: 0 0 2rem; border-radius: 10px; overflow: hidden; }
.entry-cover img { width: 100%; height: auto; }
.entry-content { font-size: 1.08rem; }
.entry-content > *:first-child { margin-top: 0; }
.entry-content img { border-radius: 8px; }
.entry-content ul, .entry-content ol { padding-left: 1.4em; margin: 0 0 1.2em; }
.entry-content li { margin-bottom: .4em; }
.entry-content ul li::marker { color: var(--emerald); }
.entry-content figure { margin: 1.6em 0; }
.entry-content figcaption { font-size: .9rem; color: var(--moss); margin-top: .5em; }
.entry-foot { margin-top: 2rem; }
.entry-pages { margin-top: 1.5rem; font-family: var(--f-head); font-weight: 700; }
.alignleft { float: left; margin: .3em 1.4em 1em 0; }
.alignright { float: right; margin: .3em 0 1em 1.4em; }
.aligncenter { margin-left: auto; margin-right: auto; }

.entry-nav { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; margin: 2.6rem 0; }
.entry-nav-link {
    display: block;
    min-width: 0;
    padding: 1.1rem 1.3rem;
    background: var(--white);
    border-radius: 10px;
    border-top: 3px solid var(--leaf);
    box-shadow: 0 4px 12px rgba(30, 138, 94, .08);
    color: var(--ink);
    font-family: var(--f-head);
    font-weight: 700;
    text-decoration: none;
}
.entry-nav-link span { display: block; font-family: var(--f-body); font-weight: 400; font-size: .85rem; color: var(--moss); margin-bottom: .25rem; }
.entry-nav-link:hover { border-top-color: var(--emerald); color: var(--emerald); text-decoration: none; }

/* ---------- Комментарии ---------- */
.remarks { margin-top: 3rem; }
.remarks-title { font-size: 1.5rem; }
.remark-list, .remark-list .children { list-style: none; margin: 0; padding: 0; }
.remark-list .children { padding-left: 1.6rem; border-left: 2px dashed var(--leaf); }
.remark-body {
    margin: 0 0 1.2rem;
    padding: 1.2rem 1.4rem;
    background: var(--white);
    border-radius: 10px;
    box-shadow: 0 4px 12px rgba(30, 138, 94, .06);
}
.remark-head { display: flex; align-items: center; gap: .8rem; margin-bottom: .6rem; }
.remark-avatar { border-radius: 50%; }
.remark-author { display: block; font-family: var(--f-head); font-weight: 700; }
.remark-date { font-size: .85rem; color: var(--moss); }
.remark-wait { color: var(--emerald-dark); font-style: italic; }
.remark-reply a { font-family: var(--f-head); font-weight: 700; font-size: .9rem; }
.remarks-closed { color: var(--moss); }
.comment-respond { margin-top: 2rem; padding: 1.6rem 1.5rem; background: var(--side); border-radius: 10px; }
.comment-reply-title { margin-top: 0; font-size: 1.35rem; }
.comment-reply-title small { margin-left: .6rem; font-size: .85rem; font-family: var(--f-body); }
.comment-form p { margin-bottom: 1rem; }
.comment-form label { display: block; margin-bottom: .3rem; font-weight: 700; font-size: .95rem; }
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea,
.seek-field {
    width: 100%;
    padding: .7rem .9rem;
    font: inherit;
    color: var(--ink);
    background: var(--white);
    border: 1.5px solid #B9D6C2;
    border-radius: 6px;
}
.comment-form input:focus, .comment-form textarea:focus, .seek-field:focus { border-color: var(--emerald); outline: none; }
.comment-form-cookies-consent { display: flex; gap: .6rem; align-items: flex-start; }
.comment-form-cookies-consent label { font-weight: 400; margin: 0; }
.comment-form .submit {
    padding: .78rem 1.6rem;
    background: var(--emerald);
    color: var(--white);
    border: 0;
    border-radius: 6px;
    font-family: var(--f-head);
    font-weight: 700;
    font-size: 1rem;
    cursor: pointer;
    transition: background-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.comment-form .submit:hover { background: var(--emerald-dark); transform: translateY(-2px); box-shadow: var(--lift); }

/* ---------- Поиск ---------- */
.seek { display: flex; gap: .6rem; flex-wrap: wrap; margin: 1.2rem 0; }
.seek-field { flex: 1 1 14rem; min-width: 0; }
.seek-btn { flex: 0 0 auto; }

/* ---------- 404 ---------- */
.lost { text-align: center; padding: 2rem 0 3rem; }
.lost-code {
    margin: 0;
    font-family: var(--f-head);
    font-weight: 800;
    font-size: clamp(5rem, 16vw, 9rem);
    line-height: 1;
    color: var(--mint);
    -webkit-text-stroke: 2px var(--emerald);
}
.lost-text { color: var(--moss); max-width: 36rem; margin-left: auto; margin-right: auto; }
.lost .seek { max-width: 32rem; margin-left: auto; margin-right: auto; }

/* ---------- Виджеты: сайдбар ---------- */
.widget { margin: 0 0 1.8rem; }
.widget:last-child { margin-bottom: 0; }
.widget ul { list-style: none; margin: 0; padding: 0; }
.widget li { margin: 0; }
.sidebar .widget-title { font-size: 1.12rem; margin: 0 0 1rem; color: var(--ink); }
.sidebar .widget { color: var(--ink); }
.sidebar .widget a { color: var(--ink); text-decoration: none; }
.sidebar .widget a:hover { color: var(--emerald); text-decoration: underline; text-decoration-color: var(--leaf); }
.sidebar .widget li { padding: .6rem 0; border-bottom: 1px dashed #B9D6C2; line-height: 1.4; }
.sidebar .widget li:last-child { border-bottom: 0; }
.sidebar .post-date { display: block; font-size: .82rem; color: var(--moss); }
.sidebar .seek-field { background: var(--white); }

/* ---------- Подвал ---------- */
.groundfloor { background: var(--conifer-deep); color: #CFE3D5; }
.groundfloor-cols {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 2.2rem;
    padding: 3.2rem 0 2.4rem;
}
.groundfloor-col { min-width: 0; }
.groundfloor .widget { color: #CFE3D5; font-size: .97rem; }
.groundfloor .widget-title { color: #F4F9F4; font-size: 1.1rem; margin: 0 0 1rem; }
.groundfloor .widget p { color: #CFE3D5; }
.groundfloor .widget a { color: #A8DD9E; text-decoration: none; }
.groundfloor .widget a:hover { color: var(--white); text-decoration: underline; text-decoration-color: var(--leaf); }
.groundfloor .widget li { padding: .35rem 0; }
.groundfloor .post-date { color: #8FB59C; }
.copyline {
    margin: 0;
    padding: 1.3rem 0 1.6rem;
    border-top: 1px solid rgba(207, 227, 213, .14);
    font-size: .9rem;
    color: #9DBFA8;
}

/* ---------- Cookie-баннер ---------- */
.cookie-banner {
    position: fixed;
    left: 1rem; right: 1rem; bottom: 1rem;
    z-index: 90;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .9rem 1.4rem;
    padding: 1.1rem 1.3rem;
    background: var(--conifer);
    color: #DCEBE0;
    border-radius: 10px;
    border-top: 3px solid var(--leaf);
    box-shadow: 0 10px 30px rgba(10, 42, 31, .3);
}
.cookie-text { flex: 1 1 18rem; margin: 0; font-size: .93rem; line-height: 1.5; color: #DCEBE0; }
.cookie-accept { flex: 0 0 auto; }

/* ---------- Главная: общие полосы ---------- */
.front-band { position: relative; padding: 4rem 0; }
.front-band--mint {
    background-color: var(--mint);
    background-image: repeating-linear-gradient(90deg, transparent 0 230px, rgba(30, 138, 94, .05) 230px 231px);
}
.front-band--plain {
    background-image: repeating-linear-gradient(90deg, transparent 0 230px, rgba(30, 138, 94, .035) 230px 231px);
}
.front-band--glade {
    background-image:
        repeating-linear-gradient(45deg, rgba(30, 138, 94, .05) 0 1px, transparent 1px 16px),
        linear-gradient(160deg, var(--mint), var(--glade));
}
.band-foot { margin-top: 2.4rem; }

/* ---------- Блок 1: hero ---------- */
.grove-hero {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    min-height: 520px;
    padding: 5rem 0 4.5rem;
    background: var(--conifer);
}
.grove-hero-img {
    position: absolute;
    top: 0; left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}
.grove-hero::after {
    content: "";
    position: absolute;
    top: 0; right: 0; bottom: 0; left: 0;
    background: linear-gradient(100deg, rgba(10, 42, 31, .82) 0%, rgba(15, 61, 46, .62) 45%, rgba(15, 61, 46, .18) 100%);
}
.grove-hero-branch {
    position: absolute;
    top: 0; right: 0;
    z-index: 2;
    width: 150px;
    height: auto;
    opacity: .9;
    pointer-events: none;
}
.grove-hero-inner { position: relative; z-index: 3; }
.grove-hero-title {
    max-width: 15em;
    margin: 0 0 1.1rem;
    font-size: 2.15rem;
    line-height: 1.15;
    color: var(--white);
    text-shadow: 0 2px 14px rgba(10, 42, 31, .45);
}
.grove-hero-sub {
    max-width: 36rem;
    margin: 0 0 2rem;
    font-size: 1.12rem;
    color: #E4F0E6;
    text-shadow: 0 1px 8px rgba(10, 42, 31, .4);
}
.grove-hero-actions { display: flex; flex-wrap: wrap; gap: .9rem; }

/* ---------- Блок 2: шаги ---------- */
.trail { list-style: none; margin: 0; padding: 0; max-width: 54rem; }
.trail-step {
    position: relative;
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr);
    gap: 1.2rem;
    padding-bottom: 2.4rem;
}
.trail-step:last-child { padding-bottom: 0; }
.trail-step::before {
    content: "";
    position: absolute;
    left: 27px;
    top: 62px;
    bottom: 6px;
    border-left: 2px dashed var(--leaf);
}
.trail-step:last-child::before { display: none; }
.trail-num {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--emerald);
    color: var(--white);
    font-family: var(--f-head);
    font-weight: 800;
    font-size: 1.5rem;
    box-shadow: 0 0 0 6px rgba(123, 201, 111, .25);
}
.trail-text { min-width: 0; padding-top: .55rem; }
.trail-title { margin: 0 0 .45rem; font-size: 1.25rem; }
.trail-text p { margin: 0; color: #33473B; }

/* ---------- Блок 3: факты ---------- */
.facts {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem 0;
}
.fact {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: .4rem 1rem;
    min-width: 0;
}
.fact:nth-child(even) { border-left: 2px solid var(--mint); }
.fact-num {
    font-family: var(--f-head);
    font-weight: 800;
    font-size: 2.6rem;
    line-height: 1.1;
    color: var(--emerald);
    letter-spacing: -.02em;
}
.fact-label { margin-top: .35rem; color: var(--moss); font-size: 1rem; }

/* ---------- Блок 4: CTA ---------- */
.front-band--outro {
    overflow: hidden;
    padding: 5rem 0;
    background: var(--conifer);
}
.clearing { position: relative; z-index: 1; text-align: center; }
.clearing-leaf {
    position: absolute;
    width: 90px;
    height: 90px;
    opacity: .15;
    z-index: -1;
    pointer-events: none;
}
.clearing-leaf--tl { top: -3.2rem; left: -1rem; transform: rotate(-20deg); }
.clearing-leaf--tr { top: -3rem; right: -1rem; transform: scaleX(-1) rotate(-15deg); }
.clearing-leaf--bl { bottom: -3.2rem; left: 4%; transform: scaleY(-1) rotate(10deg); }
.clearing-leaf--br { bottom: -3rem; right: 4%; transform: rotate(160deg); }
.clearing-title {
    margin: 0 auto 1rem;
    max-width: 18em;
    font-size: clamp(1.8rem, 4.2vw, 2.8rem);
    color: var(--white);
}
.clearing-title::before { content: none; }
.clearing-text {
    max-width: 38rem;
    margin: 0 auto 2rem;
    color: #CDE9D3;
    font-size: 1.1rem;
}

/* ---------- ≥ 600px ---------- */
@media (min-width: 600px) {
    h1 { font-size: 2.6rem; }
    .page-title, .entry-title { font-size: 2.6rem; }
    .brand-logo { width: 62px; height: 62px; }
    .brand-desc {
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
    .card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .entry-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .entry-nav-link--next { text-align: right; grid-column: 2; }
    .groundfloor-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .grove-hero { min-height: 580px; }
    .grove-hero-title { font-size: 2.7rem; }
    .grove-hero-branch { width: 210px; }
    .trail-step { grid-template-columns: 64px minmax(0, 1fr); gap: 1.6rem; }
    .trail-step::before { left: 31px; top: 70px; }
    .trail-num { width: 64px; height: 64px; font-size: 1.65rem; }
    .trail-text { padding-top: .8rem; }
    .fact-num { font-size: 3rem; }
    .clearing-leaf { width: 120px; height: 120px; }
    .cookie-banner { left: 1.5rem; right: 1.5rem; bottom: 1.5rem; padding: 1.2rem 1.6rem; }
}

/* ---------- ≥ 960px ---------- */
@media (min-width: 960px) {
    h1 { font-size: 3.2rem; }
    .page-title, .entry-title { font-size: 3.2rem; }
    .nav-toggle { display: none; }
    .primary-nav { display: block; }
    .nav-list { display: flex; flex-wrap: wrap; gap: .2rem 2rem; padding: 0; }
    .nav-list a { padding: .9rem 0 .75rem; border-bottom: 2px solid transparent; }
    .nav-list a:hover,
    .nav-list .current-menu-item > a { border-bottom-color: var(--leaf); }
    .brand-name { font-size: 1.05rem; -webkit-line-clamp: 2; max-width: 62rem; }
    .brand-desc { max-width: 62rem; }

    .layout--single > .content-area { width: 85%; }
    .layout--aside {
        display: grid;
        grid-template-columns: minmax(0, 67%) minmax(0, 27%);
        justify-content: space-between;
        align-items: start;
    }
    .layout--aside .sidebar { margin-top: 0; }
    .layout--aside .card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .layout--single .card-grid,
    .card-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }

    .groundfloor-cols { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3rem; }

    .front-band { padding: 5.5rem 0; }
    .grove-hero { min-height: 640px; }
    .grove-hero-title { font-size: 3.2rem; }
    .grove-hero-branch { width: 260px; }
    .sec-title { padding-left: 1.4rem; }
    .sec-lead { margin-left: 1.5rem; }

    .facts { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .fact { border-left: 2px solid var(--mint); }
    .fact:first-child { border-left: 0; }
    .fact-num { font-size: 3.4rem; }

    .front-band--outro { padding: 6.5rem 0; }
}
