/*
Theme Name: dds_stena45.ru
Author: Анна Верещагина
Description: Образовательный портал по генеалогическим исследованиям, работе с архивами и мемориальной культуре. Тема в стиле «Архивная память».
Version: 1.1
Text Domain: pamyat
*/

/* ============ Переменные ============ */
:root{
    --paper:#ECE7E0;
    --paper-alt:#F4F1EB;
    --header-bg:#D9D2C5;
    --footer-bg:#2A323A;
    --sidebar-bg:#E3DDD4;
    --ink:#1C2128;
    --accent:#3F8D93;
    --accent-2:#A67C5B;
    --muted:#7A7F85;
    --card-border:#D1C9BC;
    --dark-panel:#2A323A;
    --font-head:'Courier New','IBM Plex Mono',ui-monospace,monospace;
    --font-body:Georgia,'IBM Plex Serif','Times New Roman',serif;
    --shell:min(92%,1180px);
}

/* ============ База ============ */
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
    margin:0;
    font-family:var(--font-body);
    font-size:18px;
    line-height:1.7;
    color:var(--ink);
    background-color:var(--paper);
    background-image:radial-gradient(rgba(28,33,40,.05) 1px,transparent 1px);
    background-size:16px 16px;
    overflow-x:hidden;
}
img{max-width:100%;height:auto;}
a{color:var(--accent);text-decoration:none;}
p{margin:0 0 1.1em;}
h1,h2,h3,h4,h5,h6{font-family:var(--font-head);line-height:1.25;color:var(--ink);font-weight:700;}
h1{font-size:3.5rem;margin:.2em 0 .5em;}
h2{font-size:2rem;}
h3{font-size:1.4rem;}

.shell{width:var(--shell);margin-inline:auto;}

/* Текстовые ссылки в контенте — волнистое подчёркивание при наведении */
.entry-content a,.widget a,.front-text a{
    color:var(--accent);
    text-decoration:none;
    transition:color .15s;
}
.entry-content a:hover,.front-text a:hover{
    color:var(--accent-2);
    text-decoration:underline;
    text-decoration-style:wavy;
    text-underline-offset:3px;
}

/* ============ Кнопки ============ */
.btn{
    display:inline-block;
    font-family:var(--font-head);
    font-size:.95rem;
    letter-spacing:.04em;
    padding:.7em 1.5em;
    border:1.5px solid var(--accent);
    border-radius:2px;
    color:var(--accent);
    background:transparent;
    cursor:pointer;
    transition:background .15s,color .15s;
}
.btn:hover{background:var(--accent);color:var(--paper);}
.btn-fill{background:var(--accent);color:var(--paper);border-color:var(--accent);}
.btn-fill:hover{filter:brightness(.9);color:var(--paper);}

/* ============ Шапка ============ */
.site-header{
    background:var(--header-bg);
    position:relative;
    overflow:hidden;
    border-bottom:1px solid var(--card-border);
}
.site-header::before{
    content:"";
    position:absolute;
    top:-30px;left:-20px;
    width:220px;height:220px;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120'%3E%3Cg fill='%232A323A'%3E%3Crect x='18' y='40' width='84' height='58' rx='3'/%3E%3Crect x='30' y='24' width='60' height='20' rx='2'/%3E%3Crect x='40' y='12' width='40' height='14'/%3E%3C/g%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-size:contain;
    opacity:.04;
    pointer-events:none;
}
.header-inner{
    display:flex;
    align-items:center;
    gap:1.5rem;
    padding:1.6rem 0;
    position:relative;
    z-index:1;
    flex-wrap:wrap;
}
.brand-logo{max-height:76px;width:auto;display:block;}
.brand-svg{width:64px;height:64px;flex:0 0 auto;}
.brand-text{min-width:0;}
.site-title{
    font-family:var(--font-head);
    font-size:1.25rem;
    font-weight:700;
    margin:0;
    line-height:1.3;
}
.site-title a{color:var(--ink);}
.site-desc{
    font-size:.9rem;
    color:var(--muted);
    margin:.35rem 0 0;
    max-width:70ch;
    line-height:1.5;
}

/* ============ Навигация ============ */
.main-nav{
    background:var(--dark-panel);
    border-bottom:3px solid var(--accent);
}
.main-nav .nav-inner{display:flex;align-items:center;justify-content:space-between;}
.main-nav ul{
    list-style:none;
    margin:0;padding:0;
    display:flex;
    flex-wrap:wrap;
}
.main-nav li{margin:0;}
.main-nav a{
    display:block;
    font-family:var(--font-head);
    font-size:.9rem;
    letter-spacing:.03em;
    color:#E3DDD4;
    padding:.9rem 1.15rem;
    border-right:1px solid rgba(255,255,255,.08);
    transition:background .15s,color .15s;
}
.main-nav a:hover,.main-nav .current-menu-item>a{
    background:var(--accent);
    color:#fff;
}
.nav-toggle{
    display:none;
    background:none;border:none;
    color:#E3DDD4;
    font-size:1.4rem;
    padding:.8rem 1rem;
    cursor:pointer;
}

/* ============ Хлебные крошки ============ */
.breadcrumbs{
    font-family:var(--font-head);
    font-size:.8rem;
    color:var(--muted);
    padding:1rem 0 .2rem;
}
.breadcrumbs a{color:var(--accent);}
.breadcrumbs a:hover{text-decoration:underline;}
.breadcrumbs .sep{margin:0 .4rem;color:var(--accent-2);}

/* ============ Раскладки ============ */
.site-main{padding:1.5rem 0 3rem;}
.layout-with-sidebar{
    display:grid;
    grid-template-columns:minmax(0,67fr) minmax(0,27fr);
    gap:3%;
    align-items:start;
}
.layout-single .content-area{width:85%;margin-inline:auto;}

@media (max-width:960px){
    .layout-with-sidebar{grid-template-columns:1fr;}
    .layout-single .content-area{width:100%;}
}

/* ============ Сайдбар ============ */
.sidebar{
    background:var(--sidebar-bg);
    border:1px solid var(--card-border);
    padding:1.4rem 1.4rem;
    min-width:0;
}
.sidebar .widget{margin-bottom:1.8rem;}
.sidebar .widget:last-child{margin-bottom:0;}
.sidebar .widget-title,
.sidebar h2{
    font-family:var(--font-head);
    font-size:1rem;
    color:var(--ink);
    border-bottom:1.5px solid var(--accent);
    padding-bottom:.4rem;
    margin:0 0 .9rem;
}
.sidebar,.sidebar a,.sidebar li{color:var(--ink);}
.sidebar a{color:var(--accent);}
.sidebar a:hover{text-decoration:underline;text-decoration-style:wavy;}
.sidebar ul{list-style:none;margin:0;padding:0;}
.sidebar li{padding:.4rem 0;border-bottom:1px dotted var(--card-border);font-size:.95rem;}
.sidebar li:last-child{border-bottom:none;}
.sidebar .post-date{display:block;font-family:var(--font-head);font-size:.75rem;color:var(--muted);}

/* ============ Карточки записей ============ */
.card{
    display:flex;
    flex-direction:column;
    border:1px solid var(--card-border);
    background:var(--paper-alt);
    border-radius:0;
    margin-bottom:2rem;
    position:relative;
    transition:transform .18s,box-shadow .18s;
}
.card::before{
    content:"";
    position:absolute;
    left:0;top:0;bottom:0;
    width:0;
    background:var(--accent);
    transition:width .18s;
}
.card:hover{transform:translateX(4px);}
.card:hover::before{width:4px;}
.card-thumb-wrap{
    position:relative;
    overflow:hidden;
    display:block;
    border-bottom:1px solid var(--card-border);
}
.card-thumb-wrap img{
    width:100%;
    height:auto;
    aspect-ratio:16/9;
    object-fit:cover;
    display:block;
    filter:grayscale(15%) contrast(1.02);
}
.card-thumb-wrap::after{
    content:"";
    position:absolute;inset:0;
    background-image:radial-gradient(rgba(0,0,0,.10) 1px,transparent 1px);
    background-size:3px 3px;
    pointer-events:none;
    opacity:.5;
}
.card-body{
    flex:1;
    padding:1.2rem 1.4rem 1.5rem;
    min-width:0;
}
.card-title{
    font-family:var(--font-head);
    font-size:1.25rem;
    margin:0 0 .5rem;
    line-height:1.3;
}
.card-title a{color:var(--ink);}
.card-title a:hover{color:var(--accent);}
.card-meta{
    font-family:var(--font-head);
    font-size:.78rem;
    color:var(--muted);
    margin-bottom:.7rem;
}
.card-excerpt{color:#333;font-size:.97rem;}
.card-excerpt p{margin:0 0 .5em;background:none;}
.card-more{margin-top:.8rem;}

/* ============ Одиночная запись / страница ============ */
.entry-header .entry-title{margin-top:.2rem;}
.entry-meta{
    font-family:var(--font-head);
    font-size:.82rem;
    color:var(--muted);
    margin-bottom:1.2rem;
}
.stamp{
    display:inline-block;
    font-family:var(--font-head);
    font-size:.78rem;
    color:var(--accent);
    border:1.5px solid var(--accent);
    border-radius:3px;
    padding:.25em .7em;
    transform:rotate(-2deg);
    letter-spacing:.05em;
}
.entry-thumb{margin:1.2rem 0;border:1px solid var(--card-border);}
.entry-thumb img{display:block;width:100%;height:auto;}
.entry-content{font-size:1.05rem;}
.entry-content img{height:auto;}
.entry-content h2,.entry-content h3{margin-top:1.6em;}
.entry-content blockquote{
    border-left:3px solid var(--accent);
    background:var(--paper-alt);
    margin:1.5em 0;
    padding:1rem 1.4rem;
    position:relative;
    color:#2b2f36;
}
.entry-content blockquote::before{
    content:"\2338";
    position:absolute;
    top:.4rem;right:.7rem;
    color:var(--accent-2);
    font-size:1rem;
}
.entry-content table{border-collapse:collapse;width:100%;margin:1.4em 0;}
.entry-content th,.entry-content td{border:1px solid var(--card-border);padding:.6em .8em;text-align:left;}
.entry-content th{background:var(--sidebar-bg);font-family:var(--font-head);font-size:.9rem;}

/* ============ Главная ============ */
.front-section{padding:0 0 120px;position:relative;margin-top:60px;}
.front-section:first-child{margin-top:30px;}
.front-section::after{
    content:"";
    display:block;
    position:absolute;
    left:0;bottom:60px;
    width:40%;
    height:6px;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='6' viewBox='0 0 120 6'%3E%3Cpath d='M0 3 Q15 0 30 3 T60 3 T90 3 T120 3' stroke='%23A67C5B' stroke-width='1.5' fill='none' opacity='.5'/%3E%3C/svg%3E");
    background-repeat:repeat-x;
}
.front-section:last-child{padding-bottom:40px;}
.front-section:last-child::after{display:none;}
.sec-head{margin-bottom:1.8rem;}
.sec-num{
    display:block;
    font-family:var(--font-head);
    font-size:1rem;
    letter-spacing:.2em;
    color:var(--accent);
    opacity:.7;
    border-top:1px solid var(--accent);
    padding-top:.5rem;
    width:60px;
    margin-bottom:.4rem;
}
.sec-title{font-size:2rem;margin:0;}
.sec-sub{color:var(--muted);margin-top:.4rem;}

/* Блок 1 — текст + иллюстрация */
.fs-textimg{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:2.5rem;
    align-items:center;
}
.fs-textimg .fs-figure figcaption{
    font-family:var(--font-head);
    font-size:.75rem;
    color:var(--muted);
    margin-top:.5rem;
    border-left:2px solid var(--accent-2);
    padding-left:.6rem;
}
.fs-figure{margin:0;}
.fs-figure img{
    width:100%;height:auto;display:block;
    border:1px solid var(--card-border);
    filter:grayscale(40%) contrast(1.03);
}
.fs-figure .grain{position:relative;}
.fs-figure .grain::after{
    content:"";position:absolute;inset:0;
    background-image:radial-gradient(rgba(0,0,0,.12) 1px,transparent 1px);
    background-size:3px 3px;opacity:.5;pointer-events:none;
}

/* Блок 2 — цитата на тёмном фоне */
.fs-quote{
    background:linear-gradient(180deg,#2A323A 0%,#222930 100%);
    color:#E3DDD4;
    padding:3rem 2.6rem;
    position:relative;
    background-image:repeating-linear-gradient(180deg,transparent,transparent 22px,rgba(255,255,255,.03) 22px,rgba(255,255,255,.03) 23px);
}
.fs-quote .quote-grid{
    display:grid;
    grid-template-columns:minmax(0,3fr) minmax(0,1fr);
    gap:2rem;
    align-items:center;
}
.fs-quote blockquote{
    margin:0;
    font-family:var(--font-body);
    font-size:1.6rem;
    line-height:1.5;
    color:#F4F1EB;
}
.fs-quote blockquote::before{content:"« ";color:var(--accent);}
.fs-quote blockquote::after{content:" »";color:var(--accent);}
.fs-quote .quote-author{
    font-family:var(--font-head);
    font-size:.85rem;
    color:var(--accent);
    margin-top:1rem;
}
.fs-quote .quote-portrait{text-align:center;}
.fs-quote .quote-portrait img{
    width:120px;height:120px;object-fit:cover;
    border:2px solid var(--accent);
    filter:grayscale(60%);
    display:inline-block;
}
.fs-quote .quote-role{
    font-family:var(--font-head);
    font-size:.72rem;
    color:#B9BEC4;
    margin-top:.5rem;
}
.fs-quote .founding-stamp{
    display:inline-block;
    margin-top:2rem;
    font-family:var(--font-head);
    font-size:.72rem;
    color:var(--accent);
    border:1.5px solid var(--accent);
    border-radius:3px;
    padding:.3em .8em;
    transform:rotate(-2deg);
    letter-spacing:.06em;
}

/* Блок 3 — пошаговый */
.fs-steps{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:1.5rem;
}
.fs-step{
    border-bottom:2px solid var(--card-border);
    padding:0 .4rem 1.2rem;
    position:relative;
    min-width:0;
}
.fs-step .step-num{
    font-family:var(--font-head);
    font-size:2.6rem;
    color:var(--accent-2);
    line-height:1;
    display:block;
    margin-bottom:.6rem;
}
.fs-step h3{font-size:1.05rem;margin:0 0 .4rem;}
.fs-step p{font-size:.92rem;color:#3a3f45;margin:0;}
.fs-step:not(:last-child)::after{
    content:"";
    position:absolute;
    top:1.4rem;right:-1rem;
    width:1.4rem;height:2px;
    background-image:linear-gradient(90deg,var(--accent-2) 50%,transparent 50%);
    background-size:6px 2px;
}

/* Блок 4 — рубрикатор (папки) */
.fs-folders{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:1.4rem;
}
.folder-card{
    display:flex;
    background:var(--paper-alt);
    border:1px solid var(--card-border);
    border-radius:0 4px 4px 0;
    overflow:hidden;
    min-width:0;
    transition:transform .18s;
    text-decoration:none;
}
.folder-card .spine{
    flex:0 0 12px;
    background:var(--accent);
    transition:background .18s;
}
.folder-card:nth-child(2) .spine{background:var(--accent-2);}
.folder-card:nth-child(3) .spine{background:#5a6b73;}
.folder-card:nth-child(4) .spine{background:#8a5a4a;}
.folder-card .folder-body{padding:1.1rem 1.3rem;min-width:0;}
.folder-card h3{font-size:1.2rem;margin:0 0 .3rem;color:var(--ink);}
.folder-card p{font-size:.88rem;color:var(--muted);margin:0;}
.folder-card:hover{transform:translateY(-4px);}
.folder-card:hover .spine{filter:brightness(1.15);}

/* Ряд последних записей на главной */
.latest-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:1.6rem;
}
.latest-grid .card{margin-bottom:0;}
.front-latest{padding:0 0 120px;position:relative;margin-top:60px;}
.front-latest .view-all{margin-top:2rem;text-align:left;}

/* ============ Пагинация ============ */
.pagination{
    display:flex;
    flex-wrap:wrap;
    gap:.4rem;
    margin:2.5rem 0 1rem;
}
.pagination .page-numbers{
    display:inline-block;
    font-family:var(--font-head);
    font-size:.9rem;
    padding:.5em .85em;
    border:1.5px solid var(--card-border);
    border-radius:2px;
    color:var(--accent);
    background:var(--paper-alt);
    transition:background .15s,color .15s,border-color .15s;
}
.pagination a.page-numbers:hover{background:var(--accent);color:#fff;border-color:var(--accent);}
.pagination .page-numbers.current{background:var(--accent);color:#fff;border-color:var(--accent);}
.pagination .page-numbers.dots{border:none;background:none;color:var(--muted);}

/* ============ Поиск ============ */
.search-form{display:flex;gap:.4rem;}
.search-form .search-field{
    flex:1;min-width:0;
    padding:.6em .8em;
    border:1.5px solid var(--card-border);
    border-radius:2px;
    background:#fff;
    font-family:var(--font-body);
    font-size:.95rem;
}
.search-form .search-submit{
    font-family:var(--font-head);
    padding:.6em 1.1em;
    border:1.5px solid var(--accent);
    border-radius:2px;
    background:var(--accent);
    color:#fff;
    cursor:pointer;
}
.search-form .search-submit:hover{filter:brightness(.9);}

/* ============ Комментарии ============ */
.comments-area{margin-top:2.5rem;border-top:1px solid var(--card-border);padding-top:1.5rem;}
.comments-area .comment-list{list-style:none;margin:0;padding:0;}
.comments-area .comment-body{
    border:1px solid var(--card-border);
    background:var(--paper-alt);
    padding:1rem 1.2rem;
    margin-bottom:1rem;
}
.comments-area .comment-author{font-family:var(--font-head);font-size:.9rem;}
.comments-area .comment-meta{font-size:.75rem;color:var(--muted);}
.comment-form input[type=text],
.comment-form input[type=email],
.comment-form input[type=url],
.comment-form textarea{
    width:100%;
    padding:.6em .8em;
    border:1.5px solid var(--card-border);
    border-radius:2px;
    background:#fff;
    font-family:var(--font-body);
    margin-bottom:.8rem;
}
.comment-form .submit{
    font-family:var(--font-head);
    padding:.6em 1.4em;
    border:1.5px solid var(--accent);
    border-radius:2px;
    background:var(--accent);
    color:#fff;
    cursor:pointer;
}
.comment-form .submit:hover{filter:brightness(.9);}

/* ============ Подвал ============ */
.site-footer{
    background:var(--footer-bg);
    color:#C7CDD3;
    padding:3rem 0 1.5rem;
    margin-top:2rem;
}
.footer-cols{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:2.5rem;
}
.site-footer .widget-title,
.site-footer h2{
    font-family:var(--font-head);
    font-size:1rem;
    color:#F4F1EB;
    border-bottom:1.5px solid var(--accent);
    padding-bottom:.4rem;
    margin:0 0 1rem;
}
.site-footer,.site-footer p,.site-footer li{color:#C7CDD3;}
.site-footer a{color:#8FC7CC;}
.site-footer a:hover{color:#B7DEE1;text-decoration:underline;}
.site-footer ul{list-style:none;margin:0;padding:0;}
.site-footer li{padding:.35rem 0;border-bottom:1px dotted rgba(255,255,255,.1);font-size:.92rem;}
.site-footer li:last-child{border-bottom:none;}
.site-footer .post-date{display:block;font-family:var(--font-head);font-size:.72rem;color:#9AA0A6;}
.site-copyright{
    text-align:center;
    font-family:var(--font-head);
    font-size:.78rem;
    color:#9AA0A6;
    margin-top:2.5rem;
    padding-top:1.2rem;
    border-top:1px solid rgba(255,255,255,.12);
}

/* ============ 404 ============ */
.error-404{text-align:center;padding:3rem 0;}
.error-404 .code{font-family:var(--font-head);font-size:5rem;color:var(--accent-2);margin:0;}

/* ============ Cookie-баннер ============ */
.cookie-banner[hidden]{display:none !important;}
.cookie-banner{
    position:fixed;
    left:0;right:0;bottom:0;
    z-index:9999;
    background:var(--dark-panel);
    color:#E3DDD4;
    border-top:3px solid var(--accent);
    padding:1rem 0;
}
.cookie-banner .cookie-inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1.2rem;
    flex-wrap:wrap;
}
.cookie-banner p{margin:0;font-size:.9rem;flex:1;min-width:240px;}
.cookie-banner a{color:#8FC7CC;text-decoration:underline;}
.cookie-banner .cookie-accept{
    font-family:var(--font-head);
    padding:.6em 1.6em;
    border:1.5px solid var(--accent);
    border-radius:2px;
    background:var(--accent);
    color:#fff;
    cursor:pointer;
    white-space:nowrap;
}
.cookie-banner .cookie-accept:hover{filter:brightness(.9);}

/* ============ Адаптив ============ */
@media (max-width:960px){
    h1{font-size:2.6rem;}
    .footer-cols{grid-template-columns:1fr;gap:1.8rem;}
    .fs-textimg,.fs-quote .quote-grid{grid-template-columns:1fr;}
    .fs-steps{grid-template-columns:repeat(2,minmax(0,1fr));}
    .fs-step:not(:last-child)::after{display:none;}
    .latest-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
    .fs-quote .quote-portrait{order:-1;}
}
@media (max-width:600px){
    body{font-size:16px;}
    h1{font-size:2.1rem;}
    .front-section{padding-bottom:80px;margin-top:40px;}
    .front-latest{padding-bottom:80px;}
    .fs-folders,.fs-steps,.latest-grid{grid-template-columns:1fr;}
    .fs-quote{padding:2rem 1.4rem;}
    .fs-quote blockquote{font-size:1.3rem;}
    .layout-single .content-area,
    .layout-with-sidebar .content-area{width:100%;}
    .main-nav .nav-inner{flex-direction:column;align-items:stretch;}
    .nav-toggle{display:block;align-self:flex-end;}
    .main-nav ul{flex-direction:column;display:none;}
    .main-nav ul.is-open{display:flex;}
    .main-nav a{border-right:none;border-top:1px solid rgba(255,255,255,.08);}
    .card-thumb-wrap img{aspect-ratio:16/9;}
}
