/*
Theme Name: dds_tedxconstitutiondrive.com
Theme URI: https://tedxconstitutiondrive.com/
Author: Алексей Воронцов
Author URI: https://tedxconstitutiondrive.com/
Description: Редакционно-аналитическая тема о коттеджных посёлках России. Акцент на ландшафтный дизайн, благоустройство и сценарии загородной жизни.
Version: 1.1
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: tedxconstitutiondrive
*/

/* ==== Корневые переменные ==== */
:root{
    --bg-ecru: #f4ecdc;
    --bg-ecru-soft: #ede2cd;
    --bg-sage: rgba(174, 188, 167, 0.9);
    --bg-sage-solid: #aebca7;
    --accent-rust: #b6552c;
    --accent-rust-deep: #8e3f1d;
    --text-graphite: #2e2c28;
    --text-mute: #8b8773;
    --twilight: #1f3a5f;
    --footer-bg: #1f1d1a;
    --footer-text: #d6cfbf;
    --paper-line: rgba(46,44,40,0.12);
    --rust-shadow: rgba(182,85,44,0.15);
}

/* ==== Базовый сброс ==== */
*,
*::before,
*::after{ box-sizing: border-box; }

html{ scroll-behavior: smooth; }

body{
    margin: 0;
    font-family: "Inter", "Helvetica Neue", "Segoe UI", system-ui, sans-serif;
    font-size: 17px;
    line-height: 1.65;
    color: var(--text-graphite);
    background-color: var(--bg-ecru);
    background-image:
        radial-gradient(circle at 12% 18%, rgba(143,121,90,0.06) 0, transparent 35%),
        radial-gradient(circle at 88% 72%, rgba(143,121,90,0.05) 0, transparent 40%),
        repeating-radial-gradient(circle at 0 0, rgba(70,55,30,0.025) 0, rgba(70,55,30,0.025) 1px, transparent 1px, transparent 3px);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

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

a{
    color: var(--accent-rust);
    text-decoration: none;
    transition: color .2s ease, border-color .2s ease;
}
a:hover{ color: var(--accent-rust-deep); }

p{
    margin: 0 0 1em;
    /* фон НЕ задаём — глобально прозрачно */
}

h1, h2, h3, h4, h5, h6{
    font-family: "Cormorant Garamond", "EB Garamond", Georgia, "Times New Roman", serif;
    color: var(--text-graphite);
    font-weight: 600;
    letter-spacing: .005em;
    line-height: 1.25;
    margin: 1.4em 0 .55em;
}
h1{ font-size: 2.4rem; }
h2{ font-size: 1.85rem; }
h3{ font-size: 1.45rem; }
h4{ font-size: 1.2rem; }

blockquote{
    margin: 1.5em 0;
    padding: 1em 1.4em;
    background: var(--bg-sage);
    backdrop-filter: blur(6px);
    border-left: 4px solid var(--accent-rust);
    font-style: italic;
    color: var(--text-graphite);
}

hr{
    border: 0;
    height: 1px;
    background: var(--paper-line);
    margin: 2em 0;
}

table{
    width: 100%;
    border-collapse: collapse;
    margin: 1.5em 0;
    background: rgba(255,255,255,0.4);
}
table, th, td{
    border: 1px solid var(--paper-line);
}
th, td{
    padding: .65em .85em;
    text-align: left;
}
th{
    background: var(--bg-sage);
    font-weight: 600;
}

code, pre{
    font-family: "JetBrains Mono", "Fira Code", Menlo, monospace;
    background: rgba(174,188,167,0.25);
    border-radius: 4px;
}
code{ padding: .12em .4em; font-size: .92em; }
pre{
    padding: 1em 1.2em;
    overflow-x: auto;
    border-left: 3px solid var(--accent-rust);
}
pre code{ background: none; padding: 0; }

/* ==== Контейнер ==== */
.layout-shell{
    width: 92%;
    max-width: 1280px;
    margin: 0 auto;
}

/* ==== Шапка ==== */
.site-head{
    background: rgba(244,236,220,0.78);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-bottom: 1px solid var(--paper-line);
    padding: 1.1em 0;
}
.head-row{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2em;
    flex-wrap: wrap;
}
.brand{
    display: flex;
    align-items: center;
    gap: 1em;
    text-decoration: none;
    color: inherit;
    flex: 1 1 auto;
    min-width: 0;
}
.brand-logo, .brand svg.brand-mark{
    width: 56px;
    height: 56px;
    flex: 0 0 56px;
    border-radius: 14px;
    background: var(--bg-sage);
    padding: 6px;
    display: block;
}
.brand-text{ min-width: 0; }
.brand-name{
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 1.15rem;
    font-weight: 600;
    line-height: 1.25;
    color: var(--text-graphite);
    margin: 0 0 .15em;
    /* Длинное название не должно ломать вёрстку */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.brand-tagline{
    font-size: .8rem;
    color: var(--text-mute);
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.head-nav{ flex: 0 0 auto; }
.head-nav ul{
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 1.6em;
    flex-wrap: wrap;
}
.head-nav a{
    color: var(--text-graphite);
    font-size: .95rem;
    border-bottom: 1px solid transparent;
    padding-bottom: 2px;
}
.head-nav a:hover,
.head-nav .current-menu-item > a{
    color: var(--accent-rust);
    border-bottom-color: var(--accent-rust);
}
.menu-toggle{
    display: none;
    background: transparent;
    border: 1px solid var(--text-graphite);
    border-radius: 10px;
    padding: .45em .8em;
    cursor: pointer;
    font-size: .9rem;
    color: var(--text-graphite);
}

/* ==== Основной макет ==== */
.page-wrap{
    padding: 2.5em 0 3.5em;
}
.layout-2col{
    display: grid;
    grid-template-columns: 67% 27%;
    gap: 6%;
    align-items: start;
}
.layout-1col{
    width: 85%;
    margin: 0 auto;
}

/* ==== Хлебные крошки ==== */
.crumbs{
    font-size: .85rem;
    color: var(--text-mute);
    margin: 0 0 1.6em;
    word-spacing: .15em;
}
.crumbs a{
    color: var(--text-mute);
    border-bottom: 1px dashed transparent;
}
.crumbs a:hover{
    color: var(--accent-rust);
    border-bottom-color: var(--accent-rust);
}
.crumbs .sep{ margin: 0 .4em; opacity: .55; }

/* ==== Карточки записей ==== */
.cards-grid{
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.6em;
    margin: 0 0 2.5em;
}

.card{
    display: flex;
    flex-direction: column;
    background: rgba(255,255,255,0.55);
    border: 1px solid var(--paper-line);
    border-radius: 18px;
    overflow: hidden;
    transition: transform .25s ease, box-shadow .25s ease;
}
.card:hover{
    transform: translateY(-3px);
    box-shadow: 0 18px 40px -22px rgba(46,44,40,0.35);
}

.card-thumb-wrap{
    width: 100%;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: var(--bg-sage);
}
.card-thumb-wrap a{
    display: block;
    width: 100%;
    height: 100%;
}
.card-thumb-wrap img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .5s ease;
}
.card:hover .card-thumb-wrap img{ transform: scale(1.04); }

.card-body{
    flex: 1;
    padding: 1.2em 1.3em 1.4em;
    display: flex;
    flex-direction: column;
    gap: .55em;
}
.card-meta{
    font-size: .78rem;
    color: var(--text-mute);
    text-transform: uppercase;
    letter-spacing: .06em;
}
.card-meta a{ color: var(--text-mute); border-bottom: 1px dashed transparent; }
.card-meta a:hover{ color: var(--accent-rust); border-bottom-color: var(--accent-rust); }
.card-title{
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 1.35rem;
    line-height: 1.25;
    margin: 0;
}
.card-title a{ color: var(--text-graphite); }
.card-title a:hover{ color: var(--accent-rust); }
.card-excerpt{
    flex: 1;
    color: var(--text-graphite);
    font-size: .96rem;
}
.card-excerpt p{
    margin: 0 0 .5em;
    background: none;
}
.card-cta{
    margin-top: .4em;
}

/* ==== Кнопки ==== */
.btn{
    display: inline-block;
    padding: .65em 1.4em;
    border: 1px solid var(--accent-rust);
    border-radius: 18px;
    color: var(--accent-rust);
    background: transparent;
    font-size: .95rem;
    line-height: 1.2;
    cursor: pointer;
    transition: background .2s ease, color .2s ease, border-color .2s ease;
    text-align: center;
}
.btn:hover{
    background: var(--accent-rust);
    color: #fffaf0;
    border-color: var(--accent-rust);
}
.btn-ghost{
    background: none;
    border: none;
    color: var(--accent-rust);
    padding: 0;
    border-radius: 0;
}
.btn-ghost:hover{
    background: none;
    color: var(--accent-rust-deep);
    border-bottom: 1px dashed var(--accent-rust-deep);
}

/* ==== Сайдбар ==== */
.sidebar{
    background: var(--bg-sage);
    backdrop-filter: blur(8px);
    border-radius: 18px;
    padding: 1.5em 1.4em;
    align-self: start;
    position: sticky;
    top: 1em;
}
.widget{ margin-bottom: 1.8em; }
.widget:last-child{ margin-bottom: 0; }
.widget-title, .widget h2.widgettitle, .widget h3{
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 1.15rem;
    margin: 0 0 .8em;
    color: var(--text-graphite);
    letter-spacing: .01em;
}
.widget ul{
    list-style: none;
    padding: 0;
    margin: 0;
}
.widget ul li{
    padding: .4em 0;
    border-bottom: 1px solid rgba(46,44,40,0.08);
    font-size: .94rem;
}
.widget ul li:last-child{ border-bottom: 0; }
.widget a{
    color: var(--text-graphite);
    border-bottom: 1px dashed transparent;
}
.widget a:hover{
    color: var(--accent-rust);
    border-bottom-color: var(--accent-rust);
}

/* ==== Контент записи / страницы ==== */
.entry{
    background: rgba(255,255,255,0.55);
    border: 1px solid var(--paper-line);
    border-radius: 22px;
    padding: 2em 2.2em;
}
.entry-head{
    margin-bottom: 1.4em;
    padding-bottom: 1.2em;
    border-bottom: 1px solid var(--paper-line);
}
.entry-meta{
    font-size: .82rem;
    color: var(--text-mute);
    text-transform: uppercase;
    letter-spacing: .07em;
    margin-bottom: .5em;
}
.entry-meta a{ color: var(--text-mute); }
.entry-meta a:hover{ color: var(--accent-rust); }
.entry-title{ margin: 0; }
.entry-thumb{
    margin: 0 0 1.5em;
    border-radius: 14px;
    overflow: hidden;
}
.entry-thumb img{ width: 100%; display: block; }
.entry-content > *:first-child{ margin-top: 0; }
.entry-content figure{ margin: 1.5em 0; }
.entry-tags{
    margin-top: 2em;
    padding-top: 1.2em;
    border-top: 1px solid var(--paper-line);
    font-size: .9rem;
    color: var(--text-mute);
}
.entry-tags a{
    display: inline-block;
    margin: 0 .4em .4em 0;
    padding: .2em .7em;
    background: var(--bg-sage);
    border-radius: 12px;
    color: var(--text-graphite);
    font-size: .82rem;
}
.entry-tags a:hover{
    background: var(--accent-rust);
    color: #fffaf0;
}

/* ==== Главная — тематические блоки ==== */
.front-block{
    margin: 0 0 3em;
    padding: 2em 2.2em;
    border-radius: 22px;
    border: 1px solid var(--paper-line);
}
.front-block.tone-ecru{
    background: var(--bg-ecru-soft);
}
.front-block.tone-sage{
    background: var(--bg-sage);
    backdrop-filter: blur(6px);
}
.front-block.tone-paper{
    background: rgba(255,255,255,0.55);
}
.front-block.tone-twilight{
    background: var(--twilight);
    color: #ece6d2;
}
.front-block.tone-twilight h2,
.front-block.tone-twilight h3{ color: #f4ecdc; }
.front-block.tone-twilight a{ color: #f4ecdc; border-bottom: 1px dashed #d3a98d; }
.front-block.tone-twilight a:hover{ color: #ffd0b0; }

.front-block-head{
    margin-bottom: 1.4em;
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1.5em;
    flex-wrap: wrap;
}
.front-block-eyebrow{
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .14em;
    color: var(--accent-rust);
    margin: 0 0 .4em;
}
.front-block.tone-twilight .front-block-eyebrow{ color: #d3a98d; }
.front-block h2{ margin: 0; }

.feature-grid{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.4em;
}
.feature-card{
    background: rgba(255,255,255,0.45);
    border-radius: 14px;
    padding: 1.2em 1.3em;
    border: 1px solid var(--paper-line);
}
.front-block.tone-twilight .feature-card{
    background: rgba(255,255,255,0.06);
    border-color: rgba(255,255,255,0.12);
}
.feature-card h3{
    margin: 0 0 .5em;
    font-size: 1.2rem;
}
.feature-card p{ margin: 0; font-size: .96rem; }
.feature-num{
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 2rem;
    color: var(--accent-rust);
    line-height: 1;
    display: block;
    margin-bottom: .35em;
}

.steps-row{
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.2em;
}
.step{
    padding: 1em 1.1em;
    border-left: 3px solid var(--accent-rust);
    background: rgba(255,255,255,0.4);
    border-radius: 0 12px 12px 0;
}
.step-n{
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 1.6rem;
    color: var(--accent-rust);
    margin: 0 0 .15em;
}
.step h4{ margin: 0 0 .3em; font-size: 1rem; }
.step p{ margin: 0; font-size: .9rem; color: var(--text-graphite); }

/* ==== Пагинация ==== */
.pager{
    margin: 2em 0 0;
    display: flex;
    justify-content: center;
    gap: .4em;
    flex-wrap: wrap;
}
.pager a, .pager span{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    height: 38px;
    padding: 0 .8em;
    border-radius: 18px;
    border: 1px solid var(--paper-line);
    background: rgba(255,255,255,0.55);
    color: var(--text-graphite);
    font-size: .9rem;
    text-decoration: none;
    transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.pager a:hover{
    background: var(--accent-rust);
    color: #fffaf0;
    border-color: var(--accent-rust);
}
.pager .current{
    background: var(--accent-rust);
    color: #fffaf0;
    border-color: var(--accent-rust);
}
.pager .dots{ background: transparent; border-color: transparent; }

/* ==== Поиск ==== */
.search-form{
    display: flex;
    gap: .5em;
    align-items: stretch;
    margin: 1em 0;
}
.search-form input[type="search"]{
    flex: 1;
    padding: .65em 1em;
    border: 1px solid var(--paper-line);
    border-radius: 18px;
    background: rgba(255,255,255,0.65);
    color: var(--text-graphite);
    font-size: .95rem;
    outline: none;
    transition: border-color .2s ease;
}
.search-form input[type="search"]:focus{
    border-color: var(--accent-rust);
}
.search-form button{
    padding: .65em 1.3em;
    border-radius: 18px;
    border: 1px solid var(--accent-rust);
    background: transparent;
    color: var(--accent-rust);
    font-size: .95rem;
    cursor: pointer;
    transition: background .2s ease, color .2s ease;
}
.search-form button:hover{
    background: var(--accent-rust);
    color: #fffaf0;
}

/* ==== Комментарии ==== */
.comments-area{
    margin-top: 2.5em;
    background: rgba(255,255,255,0.55);
    border: 1px solid var(--paper-line);
    border-radius: 22px;
    padding: 2em 2.2em;
}
.comments-title{
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 1.6rem;
    margin: 0 0 1em;
}
.comment-list{
    list-style: none;
    padding: 0;
    margin: 0 0 2em;
}
.comment-list li{
    margin-bottom: 1.2em;
    padding: 1em 1.2em;
    border-left: 3px solid var(--accent-rust);
    background: rgba(244,236,220,0.5);
    border-radius: 0 12px 12px 0;
}
.comment-list .children{
    list-style: none;
    margin: 1em 0 0 1em;
    padding: 0;
}
.comment-author{
    font-weight: 600;
    margin-right: .6em;
}
.comment-meta{
    font-size: .78rem;
    color: var(--text-mute);
    margin-bottom: .5em;
}
.comment-form label{
    display: block;
    font-size: .85rem;
    color: var(--text-mute);
    margin-bottom: .3em;
}
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea{
    width: 100%;
    padding: .6em .9em;
    border: 1px solid var(--paper-line);
    border-radius: 12px;
    background: rgba(255,255,255,0.6);
    font-family: inherit;
    font-size: .95rem;
    margin-bottom: .9em;
    color: var(--text-graphite);
}
.comment-form textarea{ min-height: 110px; }
.comment-form .form-submit input{
    background: var(--accent-rust);
    color: #fffaf0;
    border: 1px solid var(--accent-rust);
    border-radius: 18px;
    padding: .65em 1.5em;
    font-size: .95rem;
    cursor: pointer;
    transition: background .2s ease;
}
.comment-form .form-submit input:hover{ background: var(--accent-rust-deep); }

/* ==== 404 ==== */
.error-404{
    text-align: center;
    padding: 3em 0;
}
.error-404 .num{
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 6rem;
    color: var(--accent-rust);
    line-height: 1;
    margin: 0;
}

/* ==== Подвал ==== */
.site-foot{
    background: var(--footer-bg);
    color: var(--footer-text);
    padding: 3em 0 1.5em;
    margin-top: 3em;
}
.foot-cols{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2.4em;
    margin-bottom: 2em;
}
.foot-col h2, .foot-col h3, .foot-col .widget-title{
    color: #f4ecdc;
    font-size: 1.05rem;
    margin: 0 0 1em;
    letter-spacing: .01em;
}
.foot-col, .foot-col p{ font-size: .92rem; color: var(--footer-text); }
.foot-col a{
    color: var(--accent-rust);
    border-bottom: 0;
}
.foot-col a:hover{ color: #ffb088; }
.foot-col ul{
    list-style: none;
    margin: 0;
    padding: 0;
}
.foot-col ul li{
    padding: .35em 0;
    border-bottom: 1px solid rgba(255,255,255,0.06);
    font-size: .92rem;
}
.foot-col ul li:last-child{ border-bottom: 0; }
.foot-bottom{
    border-top: 1px solid rgba(255,255,255,0.08);
    padding-top: 1.2em;
    text-align: center;
    font-size: .82rem;
    color: rgba(214,207,191,0.7);
}

/* ==== Cookie-баннер ==== */
.cookie-banner[hidden]{ display: none !important; }

.cookie-banner{
    position: fixed;
    left: 1em;
    right: 1em;
    bottom: 1em;
    z-index: 9999;
    background: rgba(31,29,26,0.97);
    color: #f4ecdc;
    border-radius: 18px;
    padding: 1.1em 1.4em;
    display: flex;
    align-items: center;
    gap: 1.2em;
    box-shadow: 0 10px 30px -10px rgba(0,0,0,0.5);
    backdrop-filter: blur(6px);
    flex-wrap: wrap;
}
.cookie-banner p{
    margin: 0;
    flex: 1 1 280px;
    font-size: .92rem;
    line-height: 1.5;
    background: none;
}
.cookie-banner button{
    background: var(--accent-rust);
    color: #fffaf0;
    border: 1px solid var(--accent-rust);
    border-radius: 18px;
    padding: .6em 1.4em;
    font-size: .92rem;
    cursor: pointer;
    transition: background .2s ease;
}
.cookie-banner button:hover{ background: var(--accent-rust-deep); }

/* ==== Адаптив ==== */
@media (max-width: 960px){
    .layout-2col{
        grid-template-columns: 1fr;
        gap: 2em;
    }
    .layout-1col{ width: 100%; }
    .sidebar{ position: static; }
    .feature-grid{ grid-template-columns: repeat(2, 1fr); }
    .steps-row{ grid-template-columns: repeat(2, 1fr); }
    .foot-cols{ grid-template-columns: 1fr 1fr; }
    h1{ font-size: 2rem; }
    h2{ font-size: 1.55rem; }

    .menu-toggle{ display: inline-block; }
    .head-nav{
        flex: 0 0 100%;
        order: 3;
    }
    .head-nav ul{
        display: none;
        flex-direction: column;
        gap: .5em;
        padding: 1em 0 0;
        width: 100%;
    }
    .head-nav.is-open ul{ display: flex; }
}

@media (max-width: 600px){
    body{ font-size: 16px; }
    .cards-grid{ grid-template-columns: 1fr; }
    .feature-grid{ grid-template-columns: 1fr; }
    .steps-row{ grid-template-columns: 1fr; }
    .foot-cols{ grid-template-columns: 1fr; }
    .entry{ padding: 1.4em 1.3em; }
    .front-block{ padding: 1.4em 1.3em; }
    .comments-area{ padding: 1.4em 1.3em; }
    .brand-logo, .brand svg.brand-mark{ width: 46px; height: 46px; flex-basis: 46px; }
    .brand-name{ font-size: 1rem; }
    .brand-tagline{ display: none; }
    h1{ font-size: 1.7rem; }
    h2{ font-size: 1.35rem; }
}

/* ==== Прочее ==== */
.alignleft{ float: left; margin: .3em 1.4em 1em 0; }
.alignright{ float: right; margin: .3em 0 1em 1.4em; }
.aligncenter{ display: block; margin: 1em auto; }
.wp-caption{ max-width: 100%; }
.wp-caption-text{
    font-size: .82rem;
    color: var(--text-mute);
    text-align: center;
    margin-top: .3em;
}
.screen-reader-text{
    position: absolute !important;
    clip: rect(1px,1px,1px,1px);
    height: 1px;
    width: 1px;
    overflow: hidden;
}
.skip-link{
    position: absolute;
    left: -9999px;
}
.skip-link:focus{
    left: 1em;
    top: 1em;
    background: var(--accent-rust);
    color: #fffaf0;
    padding: .5em 1em;
    border-radius: 12px;
    z-index: 9999;
}
