/*
Theme Name: dds_vote4debbie.com
Author: Татьяна Орлова
Description: Информационная тема для сайта о жизни многоквартирного дома: собрания, протоколы, расходы, благоустройство двора и работа с управляющей организацией.
Version: 1.1
Text Domain: sosedi
Requires at least: 6.0
Requires PHP: 8.0
*/

/* =========================================================
   Переменные и сброс
   ========================================================= */
:root{
    --ink:        #23303a;
    --muted:      #5d6b74;
    --bg:         #f5f3ee;
    --card:       #ffffff;
    --primary:    #1f4a5f;
    --primary-dk: #16394a;
    --accent:     #cf7a34;
    --accent-dk:  #b0651f;
    --line:       #e2ddd1;
    --footer-bg:  #182b34;
    --footer-ink: #d3dde2;
    --footer-mut: #8ba2ac;
    --radius:     12px;
    --shadow:     0 6px 22px rgba(24,43,52,.08);
}

*{ box-sizing:border-box; }

html{ scroll-behavior:smooth; }

body{
    margin:0;
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"PT Sans",sans-serif;
    font-size:17px;
    line-height:1.65;
    color:var(--ink);
    background:var(--bg);
    overflow-x:hidden;
}

img{ max-width:100%; height:auto; }

a{ color:var(--primary); text-decoration:none; }
a:hover{ color:var(--accent-dk); text-decoration:underline; }

h1,h2,h3,h4{ line-height:1.25; color:var(--ink); font-weight:700; }
h1{ font-size:2rem; margin:.2em 0 .6em; }
h2{ font-size:1.6rem; margin:1.4em 0 .6em; }
h3{ font-size:1.22rem; margin:1.2em 0 .5em; }
p{ margin:0 0 1.1em; }

/* Контейнер ширины задаётся в одном месте (A12.7) */
.shell{ width:min(92%,1180px); margin-inline:auto; }

/* =========================================================
   Шапка
   ========================================================= */
.site-header{
    background:var(--card);
    border-bottom:1px solid var(--line);
}
.header-inner{
    display:flex;
    align-items:center;
    gap:1.4rem;
    flex-wrap:wrap;
    padding:1rem 0;
}
.branding{
    display:flex;
    align-items:center;
    gap:.85rem;
    min-width:0;
}
.branding .brand-logo,
.branding .brand-logo svg{
    display:block;
    width:56px;
    height:56px;
    flex:0 0 auto;
}
.brand-text{ min-width:0; }
.site-title{
    font-size:1.18rem;
    font-weight:700;
    margin:0;
    line-height:1.2;
}
.site-title a{ color:var(--ink); }
.site-desc{
    margin:.15rem 0 0;
    font-size:.86rem;
    color:var(--muted);
    line-height:1.35;
}

.main-nav{ margin-left:auto; min-width:0; }
.main-nav ul{
    list-style:none;
    display:flex;
    flex-wrap:wrap;
    gap:.3rem 1.1rem;
    margin:0;
    padding:0;
}
.main-nav a{
    display:block;
    padding:.35rem .2rem;
    color:var(--ink);
    font-weight:600;
    font-size:.98rem;
}
.main-nav a:hover{ color:var(--primary); text-decoration:none; }
.main-nav .current-menu-item > a{ color:var(--primary); }

.nav-toggle{
    display:none;
    margin-left:auto;
    background:var(--primary);
    color:#fff;
    border:0;
    border-radius:8px;
    padding:.5rem .8rem;
    font-size:1rem;
    cursor:pointer;
}

/* =========================================================
   Каркас страницы
   ========================================================= */
.site-main{ padding:2.2rem 0 2.8rem; }

.layout-with-sidebar{
    display:grid;
    grid-template-columns:minmax(0,67fr) minmax(0,27fr);
    gap:2.4rem;
    align-items:start;
}
.layout-single{ display:block; }
.layout-single .content-area{ max-width:none; }

.content-area{ min-width:0; }

/* Ширина 85% для одноколоночных контекстов (главная, страница без сайдбара) */
.no-sidebar .content-area,
.front .content-wide{ width:100%; }

.breadcrumbs{
    font-size:.9rem;
    color:var(--muted);
    margin:0 0 1.4rem;
}
.breadcrumbs a{ color:var(--primary); }
.breadcrumbs .sep{ margin:0 .35rem; color:var(--muted); }

/* =========================================================
   Записи (single / архивы)
   ========================================================= */
.entry{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:1.6rem 1.7rem;
    box-shadow:var(--shadow);
    margin-bottom:1.6rem;
}
.entry-header .entry-title{ margin-top:0; }
.entry-meta{
    font-size:.85rem;
    color:var(--muted);
    margin-bottom:1rem;
}
.entry-meta a{ color:var(--muted); }
.entry-content{ min-width:0; }
.entry-content img{ border-radius:8px; }
.entry-content h2,
.entry-content h3{ margin-top:1.4em; }
.entry-thumb{ margin:0 0 1.2rem; }
.entry-thumb img{ display:block; width:100%; border-radius:8px; }

.entry-content table{
    width:100%;
    border-collapse:collapse;
    margin:1.2em 0;
}
.entry-content table,
.entry-content th,
.entry-content td{ border:1px solid var(--line); }
.entry-content th,
.entry-content td{ padding:.55rem .7rem; text-align:left; }
.entry-content th{ background:#eef2f1; }

/* =========================================================
   Карточки записей (см. A8, A10)
   ========================================================= */
.card-list{
    display:grid;
    grid-template-columns:1fr;
    gap:1.3rem;
}
.card{
    display:flex;
    flex-direction:column;
    background:var(--card);
    border:1px solid var(--line);
    border-radius:var(--radius);
    overflow:hidden;
    box-shadow:var(--shadow);
    min-width:0;
}
.card-thumb-wrap{
    display:block;
    position:relative;
    overflow:hidden;
    aspect-ratio:16 / 9;
    background:#e9efee;
}
.card-thumb-wrap a{ display:block; }
.card-thumb-wrap img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}
.card-thumb-fallback{
    display:flex;
    width:100%;
    height:100%;
    align-items:center;
    justify-content:center;
    background:linear-gradient(135deg,#274c5e,#1f4a5f);
    color:#cfe0e6;
    font-size:.9rem;
}
.card-body{
    flex:1;
    display:flex;
    flex-direction:column;
    padding:1.15rem 1.25rem 1.3rem;
    min-width:0;
}
.card-title{ margin:0 0 .4rem; font-size:1.2rem; }
.card-title a{ color:var(--ink); }
.card-title a:hover{ color:var(--primary); text-decoration:none; }
.card-meta{
    font-size:.82rem;
    color:var(--muted);
    margin-bottom:.6rem;
}
.card-excerpt{ min-width:0; }
.card-excerpt p{ margin:0 0 .5em; background:none; }
.card-more{
    margin-top:auto;
    align-self:flex-start;
    padding-top:.4rem;
    font-weight:600;
    color:var(--primary);
}
.card-more:hover{ color:var(--accent-dk); text-decoration:none; }

/* =========================================================
   Пагинация — type => plain (см. D5)
   ========================================================= */
.pagination{
    display:flex;
    flex-wrap:wrap;
    gap:.4rem;
    margin:2rem 0 .5rem;
}
.pagination .page-numbers{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:2.4rem;
    padding:.45rem .7rem;
    border:1px solid var(--line);
    border-radius:8px;
    background:var(--card);
    color:var(--ink);
    font-weight:600;
    line-height:1;
}
.pagination a.page-numbers:hover{
    border-color:var(--primary);
    color:var(--primary);
    text-decoration:none;
}
.pagination .page-numbers.current{
    background:var(--primary);
    border-color:var(--primary);
    color:#fff;
}
.pagination .page-numbers.dots{
    border:0;
    background:none;
}

/* =========================================================
   Сайдбар и виджеты
   ========================================================= */
.sidebar{ min-width:0; }
.widget{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:1.2rem 1.3rem;
    margin-bottom:1.4rem;
    box-shadow:var(--shadow);
}
.widget-title{
    margin:0 0 .8rem;
    font-size:1.05rem;
    color:var(--ink);
    padding-bottom:.5rem;
    border-bottom:2px solid var(--accent);
}
.widget ul{ list-style:none; margin:0; padding:0; }
.widget li{
    padding:.4rem 0;
    border-bottom:1px solid var(--line);
    color:var(--ink);
}
.widget li:last-child{ border-bottom:0; }
.widget a{ color:var(--primary); }
.widget a:hover{ color:var(--accent-dk); }
.widget .post-date{ color:var(--muted); font-size:.8rem; display:block; }

/* =========================================================
   Подвал
   ========================================================= */
.site-footer{
    background:var(--footer-bg);
    color:var(--footer-ink);
    margin-top:2.5rem;
}
.footer-cols{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:2rem;
    padding:2.6rem 0 1.6rem;
}
.footer-col{ min-width:0; }
.footer-col .widget{
    background:transparent;
    border:0;
    box-shadow:none;
    padding:0;
    margin:0;
    color:var(--footer-ink);
}
.footer-col .widget-title{
    color:#fff;
    border-bottom-color:var(--accent);
}
.footer-col .widget p{ color:var(--footer-ink); }
.footer-col .widget li{
    border-bottom-color:rgba(255,255,255,.12);
    color:var(--footer-ink);
}
.footer-col .widget a{ color:#e7eef1; }
.footer-col .widget a:hover{ color:var(--accent); }
.footer-col .widget .post-date{ color:var(--footer-mut); }
.site-copyright{
    border-top:1px solid rgba(255,255,255,.12);
    padding:1.1rem 0;
    font-size:.86rem;
    color:var(--footer-mut);
    text-align:center;
}

/* =========================================================
   Главная — тематические блоки
   ========================================================= */
.front-section{ padding:2.6rem 0; }
.front-section + .front-section{ border-top:1px solid var(--line); }
.section-head{ margin:0 0 1.4rem; }
.section-head h2{ margin:0 0 .3rem; }
.section-head p{ margin:0; color:var(--muted); }

/* Блок 1 — текст + иллюстрация */
.fs-split{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:2.2rem;
    align-items:center;
}
.fs-split .fs-figure img,
.fs-split .fs-figure svg{
    display:block;
    width:100%;
    height:auto;
    border-radius:var(--radius);
}
.fs-split.reverse .fs-text{ order:2; }
.fs-split.reverse .fs-figure{ order:1; }

/* Блок — сетка карточек-рубрик */
.fs-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:1.3rem;
}
.topic-card{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:1.4rem 1.4rem 1.5rem;
    box-shadow:var(--shadow);
    min-width:0;
}
.topic-card .ic{
    width:46px;height:46px;display:block;margin-bottom:.7rem;
}
.topic-card h3{ margin:.1rem 0 .4rem; font-size:1.12rem; }
.topic-card p{ margin:0; color:var(--muted); font-size:.95rem; }

/* Блок — шаги */
.fs-steps{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
    gap:1.3rem;
    counter-reset:step;
}
.step-card{
    position:relative;
    background:var(--card);
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:1.4rem 1.4rem 1.4rem;
    box-shadow:var(--shadow);
    min-width:0;
}
.step-card .step-num{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:38px;height:38px;
    border-radius:50%;
    background:var(--primary);
    color:#fff;
    font-weight:700;
    margin-bottom:.7rem;
}
.step-card h3{ margin:.1rem 0 .35rem; font-size:1.08rem; }
.step-card p{ margin:0; color:var(--muted); font-size:.94rem; }

/* Блок — FAQ */
.fs-faq{ max-width:820px; }
.faq-item{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:10px;
    padding:.2rem 1.2rem;
    margin-bottom:.8rem;
    box-shadow:var(--shadow);
}
.faq-item summary{
    cursor:pointer;
    font-weight:600;
    padding:.95rem 0;
    list-style:none;
    color:var(--ink);
    position:relative;
    padding-right:1.8rem;
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{
    content:"+";
    position:absolute;
    right:.2rem;top:.85rem;
    font-size:1.3rem;
    color:var(--accent-dk);
}
.faq-item[open] summary::after{ content:"–"; }
.faq-item .faq-a{ padding:0 0 1rem; color:var(--muted); }
.faq-item .faq-a p{ margin:0 0 .6em; }

/* Блок — CTA (плашка с фоном, отступы со всех сторон — A14) */
.fs-cta{
    background:var(--primary);
    color:#fff;
    border-radius:var(--radius);
    padding:2.4rem 2.2rem;
    text-align:center;
}
.fs-cta h2{ color:#fff; margin:0 0 .5rem; }
.fs-cta p{ color:#dbe7ec; margin:0 auto 1.3rem; max-width:640px; }
.btn{
    display:inline-block;
    background:var(--accent);
    color:#fff;
    font-weight:700;
    padding:.75rem 1.6rem;
    border-radius:9px;
}
.btn:hover{ background:var(--accent-dk); color:#fff; text-decoration:none; }
.btn-outline{
    background:transparent;
    border:2px solid #fff;
    color:#fff;
}
.btn-outline:hover{ background:#fff; color:var(--primary); }

/* Последние записи на главной */
.front-latest .card-list{
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
}

/* =========================================================
   Комментарии
   ========================================================= */
.comments-area{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:1.5rem 1.7rem;
    box-shadow:var(--shadow);
    margin-top:1.6rem;
}
.comment-list{ list-style:none; margin:0; padding:0; }
.comment-list .children{ list-style:none; margin:0 0 0 1.4rem; padding:0; }
.comment-item{ margin:1rem 0; }
.comment-body{
    border:1px solid var(--line);
    border-radius:10px;
    padding:1rem 1.1rem;
    background:#faf9f5;
}
.comment-meta{
    display:flex;
    gap:.8rem;
    align-items:baseline;
    margin-bottom:.5rem;
    font-size:.88rem;
}
.comment-author{ font-weight:700; }
.comment-date{ color:var(--muted); }
.comment-reply a{ font-size:.85rem; font-weight:600; }
.comment-respond{ margin-top:1.4rem; }
.comment-form label{ display:block; font-weight:600; margin:.7rem 0 .3rem; }
.comment-form input[type=text],
.comment-form input[type=email],
.comment-form input[type=url],
.comment-form textarea{
    width:100%;
    padding:.6rem .7rem;
    border:1px solid var(--line);
    border-radius:8px;
    font:inherit;
    background:#fff;
}
.comment-form .submit,
.search-form button,
.wp-block-search__button{
    background:var(--primary);
    color:#fff;
    border:0;
    border-radius:8px;
    padding:.6rem 1.2rem;
    font-weight:600;
    cursor:pointer;
}
.comment-form .submit:hover{ background:var(--primary-dk); }

/* =========================================================
   Форма поиска
   ========================================================= */
.search-form{
    display:flex;
    gap:.5rem;
    min-width:0;
}
.search-form label{ flex:1; min-width:0; }
.search-form .search-field{
    width:100%;
    padding:.55rem .7rem;
    border:1px solid var(--line);
    border-radius:8px;
    font:inherit;
}
.search-form button:hover{ background:var(--primary-dk); }

/* =========================================================
   404
   ========================================================= */
.error-404{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:2.2rem 1.9rem;
    box-shadow:var(--shadow);
    text-align:center;
}
.error-404 .code{
    font-size:3.4rem;
    font-weight:800;
    color:var(--primary);
    margin:0;
}
.error-404 .search-form{
    max-width:440px;
    margin:1.4rem auto 0;
}

/* =========================================================
   Cookie-баннер (см. A11, D6)
   ========================================================= */
.cookie-banner[hidden]{ display:none !important; }
.cookie-banner{
    position:fixed;
    left:0;right:0;bottom:0;
    z-index:999;
    background:var(--footer-bg);
    color:var(--footer-ink);
    padding:1rem 1.2rem;
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:center;
    gap:.9rem 1.4rem;
    box-shadow:0 -4px 20px rgba(0,0,0,.18);
}
.cookie-banner p{ margin:0; font-size:.92rem; max-width:820px; }
.cookie-banner a{ color:#fff; text-decoration:underline; }
.cookie-banner .cookie-accept{
    background:var(--accent);
    color:#fff;
    border:0;
    border-radius:8px;
    padding:.55rem 1.3rem;
    font-weight:700;
    cursor:pointer;
    flex:0 0 auto;
}
.cookie-banner .cookie-accept:hover{ background:var(--accent-dk); }

/* =========================================================
   Адаптив
   ========================================================= */
@media (max-width:960px){
    .layout-with-sidebar{ grid-template-columns:1fr; }
    .footer-cols{ grid-template-columns:1fr 1fr; }
    h1{ font-size:1.7rem; }
    h2{ font-size:1.42rem; }
}

@media (max-width:600px){
    body{ font-size:16px; }
    .nav-toggle{ display:inline-block; }
    .main-nav{
        flex-basis:100%;
        margin-left:0;
    }
    .main-nav ul{
        display:none;
        flex-direction:column;
        gap:0;
        margin-top:.6rem;
    }
    .main-nav.open ul{ display:flex; }
    .main-nav li{ border-bottom:1px solid var(--line); }
    .main-nav a{ padding:.65rem .2rem; }

    .fs-split{ grid-template-columns:1fr; }
    .fs-split.reverse .fs-text{ order:1; }
    .fs-split.reverse .fs-figure{ order:2; }

    .footer-cols{ grid-template-columns:1fr; gap:1.6rem; }

    .fs-cta{ padding:1.9rem 1.4rem; }
    .entry{ padding:1.3rem 1.2rem; }
}
