/* ===== ВезёмЗерно — юридический слой, cookie-баннер, служба заботы =====
   Использует токены из theme.css (--vz-green, --vz-radius и т.п.), который
   всегда подключается раньше. */

/* =====================================================================
   1. Юридические страницы (/terms, /privacy, /personal-data-consent, /cookies)
   ===================================================================== */
.vz-legal { padding: 24px 0 56px; }

.vz-legal__breadcrumbs {
    display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
    font-size: 13px; color: var(--vz-text-muted); margin-bottom: 18px;
}
.vz-legal__breadcrumbs a { color: var(--vz-text-secondary); }
.vz-legal__breadcrumbs a:hover { color: var(--vz-green); }
.vz-legal__crumb-current { color: var(--vz-text-muted); }

.vz-legal__head {
    display: flex; align-items: center; gap: 14px; margin-bottom: 22px;
    padding-bottom: 20px; border-bottom: 1px solid var(--vz-border-light);
}
.vz-legal__head-icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 52px; height: 52px; flex-shrink: 0; border-radius: var(--vz-radius);
    background: var(--vz-green-bg); color: var(--vz-green);
}
.vz-legal__title { margin: 0; font-size: 28px; line-height: 1.25; font-weight: 800; color: var(--vz-text); }

.vz-legal__body { font-size: 16px; line-height: 1.7; color: var(--vz-text); }
.vz-legal__body .vz-legal__lead {
    font-size: 17px; color: var(--vz-text-secondary); background: var(--vz-bg-alt);
    border-left: 3px solid var(--vz-green); border-radius: var(--vz-radius-xs);
    padding: 14px 18px; margin: 0 0 26px;
}
.vz-legal__section { margin: 0 0 30px; }
.vz-legal__body h2 {
    font-size: 20px; font-weight: 700; color: var(--vz-text); margin: 0 0 12px;
    padding-top: 4px;
}
.vz-legal__body h3 { font-size: 17px; font-weight: 700; color: var(--vz-text); margin: 20px 0 8px; }
.vz-legal__body p { margin: 0 0 14px; }
.vz-legal__body ul, .vz-legal__body ol { margin: 0 0 16px; padding-left: 22px; }
.vz-legal__body li { margin: 0 0 8px; }
.vz-legal__body a { color: var(--vz-green); text-decoration: underline; text-underline-offset: 2px; }
.vz-legal__body a:hover { color: var(--vz-green-dark); }

.vz-legal__ph {
    background: var(--vz-gold-bg); color: var(--vz-gold);
    border: 1px dashed var(--vz-gold-light); border-radius: var(--vz-radius-xs);
    padding: 1px 6px; font-size: 0.92em; font-weight: 600; white-space: normal;
}
.vz-legal__meta {
    margin-top: 26px; padding-top: 16px; border-top: 1px solid var(--vz-border-light);
    font-size: 14px; color: var(--vz-text-muted);
}

.vz-legal__docnav {
    display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 32px;
    padding-top: 20px; border-top: 1px solid var(--vz-border-light); font-size: 14px;
}
.vz-legal__docnav a { color: var(--vz-text-secondary); }
.vz-legal__docnav a:hover { color: var(--vz-green); }

@media (max-width: 640px) {
    .vz-legal__title { font-size: 23px; }
    .vz-legal__head-icon { width: 44px; height: 44px; }
    .vz-legal__body { font-size: 15px; }
}

/* =====================================================================
   2. Cookie-баннер
   ===================================================================== */
.vz-cookie {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 1000;
    display: flex; justify-content: center; padding: 14px;
    pointer-events: none;
}
.vz-cookie[hidden] { display: none; }
.vz-cookie__inner {
    pointer-events: auto;
    display: flex; align-items: center; gap: 18px; flex-wrap: wrap;
    max-width: 1120px; width: 100%;
    background: var(--vz-bg); border: 1px solid var(--vz-border);
    border-radius: var(--vz-radius); box-shadow: var(--vz-shadow-lg);
    padding: 16px 20px;
    transform: translateY(140%); transition: transform 0.32s ease;
}
.vz-cookie.is-visible .vz-cookie__inner { transform: translateY(0); }
.vz-cookie__text { flex: 1 1 320px; font-size: 14px; line-height: 1.55; color: var(--vz-text-secondary); }
.vz-cookie__more { color: var(--vz-green); font-weight: 600; white-space: nowrap; }
.vz-cookie__more:hover { color: var(--vz-green-dark); text-decoration: underline; }
.vz-cookie__actions { display: flex; gap: 10px; flex-shrink: 0; }

@media (max-width: 560px) {
    .vz-cookie { padding: 10px; }
    .vz-cookie__inner { padding: 14px 16px; gap: 12px; }
    .vz-cookie__actions { width: 100%; }
    .vz-cookie__actions .vz-btn { flex: 1 1 auto; justify-content: center; }
}

/* =====================================================================
   3. Служба заботы (плавающий виджет)
   ===================================================================== */
.vz-support { position: fixed; right: 22px; bottom: 22px; z-index: 990; }

.vz-support__fab {
    display: inline-flex; align-items: center; justify-content: center;
    width: 56px; height: 56px; padding: 0; border: none; cursor: pointer;
    background: var(--vz-green); color: #fff; font-family: var(--vz-font);
    border-radius: 50%;
    box-shadow: var(--vz-shadow-lg); transition: background var(--vz-transition), transform var(--vz-transition);
}
.vz-support__fab:hover { background: var(--vz-green-dark); transform: translateY(-1px); }
.vz-support__fab-icon { display: inline-flex; }
/* Круглая кнопка — только иконка; подпись доступна ассистивным технологиям через aria-label */
.vz-support__fab-label { display: none; }
.vz-support.is-open .vz-support__fab { display: none; }

.vz-support__panel {
    position: absolute; right: 0; bottom: 0;
    width: 360px; max-width: calc(100vw - 32px);
    background: var(--vz-bg); border: 1px solid var(--vz-border);
    border-radius: var(--vz-radius); box-shadow: var(--vz-shadow-lg);
    overflow: hidden;
}
.vz-support__panel[hidden] { display: none; }

.vz-support__header {
    display: flex; align-items: center; justify-content: space-between;
    padding: 14px 16px; background: var(--vz-green-bg); border-bottom: 1px solid var(--vz-border-light);
}
.vz-support__title { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; color: var(--vz-green-dark); font-size: 15px; }
.vz-support__close {
    display: inline-flex; background: none; border: none; cursor: pointer;
    color: var(--vz-text-secondary); padding: 4px; border-radius: var(--vz-radius-xs);
}
.vz-support__close:hover { background: rgba(0,0,0,0.06); color: var(--vz-text); }

.vz-support__form { padding: 16px; display: flex; flex-direction: column; gap: 12px; }
.vz-support__field { display: flex; flex-direction: column; gap: 5px; font-size: 13px; font-weight: 600; color: var(--vz-text-secondary); }
.vz-support__field select,
.vz-support__field input,
.vz-support__field textarea {
    font-family: var(--vz-font); font-size: 14px; font-weight: 400; color: var(--vz-text);
    padding: 9px 11px; border: 1px solid var(--vz-border); border-radius: var(--vz-radius-xs);
    background: var(--vz-bg); width: 100%;
}
.vz-support__field select:focus,
.vz-support__field input:focus,
.vz-support__field textarea:focus {
    outline: none; border-color: var(--vz-green); box-shadow: 0 0 0 3px var(--vz-green-bg);
}
.vz-support__field textarea { resize: vertical; min-height: 84px; }

.vz-support__note { margin: 0; font-size: 12px; line-height: 1.5; color: var(--vz-text-muted); }
.vz-support__submit { width: 100%; justify-content: center; }

.vz-support__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.vz-support__msg { font-size: 13px; line-height: 1.5; padding: 10px 12px; border-radius: var(--vz-radius-xs); }
.vz-support__msg[hidden] { display: none; }
.vz-support__msg--success { background: var(--vz-green-bg); color: var(--vz-green-dark); }
.vz-support__msg--error { background: var(--vz-warm-light); color: var(--vz-warm); }
.vz-support__msg--info { background: var(--vz-bg-alt); color: var(--vz-text-secondary); }

@media (max-width: 560px) {
    .vz-support { right: 14px; bottom: 14px; }
    .vz-support__fab { width: 52px; height: 52px; }
    .vz-support__panel { width: calc(100vw - 28px); }
}

/* Когда виден cookie-баннер — приподнимаем виджет на мобильных, чтобы не наложились */
@media (max-width: 560px) {
    .vz-support { bottom: 90px; }
}

/* =====================================================================
   4. Чекбоксы согласий на форме регистрации
   ===================================================================== */
.vz-account-page .field_checkbox { margin-top: 6px; }
.vz-account-page .field_checkbox label { font-size: 14px; line-height: 1.5; color: var(--vz-text-secondary); }
.vz-account-page .field_checkbox a { color: var(--vz-green); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.vz-account-page .field_checkbox a:hover { color: var(--vz-green-dark); }
