/*
Theme Name: dds_niiem-vlad.ru
Author: Владимир Громов
Description: Научно-практический портал по клинической микробиологии, эпидемиологии и лабораторной диагностике. Дизайн — лабораторный минимализм.
Version: 1.1
Text Domain: nvlab
*/

/* ================= Переменные ================= */
:root{
    --bg:        #F4F7FB;
    --bg-alt:    #FFFFFF;
    --bg-accent: #E8EEF5;
    --head-bg:   #FFFFFF;
    --head-line: #D0D9E5;
    --foot-bg:   #1B2A3B;
    --ink:       #1A2A3A;
    --link:      #0066B3;
    --link-dk:   #004B8F;
    --teal:      #00A8A8;
    --muted:     #6A7B8C;
    --line:      #D0D9E5;
    --mono:      "JetBrains Mono","Roboto Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
    --sans:      "Inter","Roboto","Source Sans Pro",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
    --shell:     min(92%,1180px);
}

/* ================= База ================= */
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
    margin:0;
    font-family:var(--sans);
    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(--link);text-decoration:none;}

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

h1,h2,h3,h4{font-family:var(--sans);color:var(--ink);line-height:1.2;font-weight:700;letter-spacing:-.01em;}
h1{font-size:3.5rem;margin:.2em 0 .5em;}
h2{font-size:2rem;margin:0 0 .6em;}
h3{font-size:1.35rem;margin:0 0 .4em;}
p{margin:0 0 1.1em;}

/* Числа и даты — моноширинный + бирюзовый */
time,.num,.stat-num,.tl-year,.post-meta time,.widget_recent_entries .post-date{
    font-family:var(--mono);
    color:var(--teal);
    font-variant-numeric:tabular-nums;
}

/* Заголовки секций — линия-разделитель слева */
.sec-head{margin-bottom:1.6rem;}
.sec-head h2{position:relative;padding-bottom:.55rem;margin-bottom:0;text-align:left;}
.sec-head h2::after{content:"";position:absolute;left:0;bottom:0;width:60px;height:3px;background:var(--link);}
.sec-head .sub{color:var(--muted);margin:.6rem 0 0;max-width:60ch;}

/* ================= Ссылки с выезжающим подчёркиванием ================= */
.content-area a:not(.btn):not(.card-title-link),
.tile,
.footer-widgets a{position:relative;}
.underline-anim{position:relative;}
.content-area a:not(.btn):not(.card-title-link)::after{
    content:"";position:absolute;left:0;bottom:-2px;width:100%;height:1px;
    background:currentColor;transform:scaleX(0);transform-origin:left;
    transition:transform .25s ease;
}
.content-area a:not(.btn):not(.card-title-link):hover::after{transform:scaleX(1);}

/* ================= Кнопки ================= */
.btn{
    display:inline-block;
    padding:.7rem 1.4rem;
    border-radius:4px;
    font-weight:600;
    font-size:.98rem;
    cursor:pointer;
    border:1.5px solid var(--link);
    transition:background .18s ease,transform .12s ease,color .18s ease;
}
.btn-filled{background:var(--link);color:#fff;}
.btn-filled:hover{background:var(--link-dk);border-color:var(--link-dk);transform:translateY(2px);}
.btn-outline{background:transparent;color:var(--link);}
.btn-outline:hover{background:var(--link);color:#fff;transform:translateY(2px);}

/* ================= Лабораторный штатив под шапкой ================= */
.lab-rack{
    width:100%;
    border-bottom:1px solid var(--head-line);
    background:var(--head-bg);
}
.lab-rack .dots{
    width:var(--shell);margin-inline:auto;
    display:flex;gap:10px;justify-content:center;align-items:center;
    padding:9px 0;
    color:var(--teal);letter-spacing:6px;font-size:12px;line-height:1;
}
.lab-rack .dots::before{content:"● ● ●";}

/* ================= Шапка ================= */
.site-header{background:var(--head-bg);border-bottom:1px solid var(--head-line);}
.header-inner{
    display:flex;align-items:center;gap:1.4rem;
    padding:1.15rem 0;flex-wrap:wrap;
}
.brand{display:flex;align-items:center;gap:1rem;min-width:0;flex:1;}
.brand-logo{display:block;width:56px;height:56px;flex:0 0 auto;}
.brand-text{min-width:0;}
.brand-name{
    display:block;font-weight:700;font-size:1.02rem;color:var(--ink);
    line-height:1.3;
}
.brand-desc{
    display:block;color:var(--muted);font-size:.8rem;margin-top:.15rem;
    max-width:62ch;
}

/* ================= Навигация ================= */
.main-nav{border-top:1px solid var(--head-line);background:var(--head-bg);}
.main-nav .shell{display:flex;align-items:center;}
.nav-toggle{
    display:none;background:none;border:0;cursor:pointer;
    padding:.7rem 0;color:var(--ink);font-size:1rem;font-weight:600;
    align-items:center;gap:.5rem;
}
.nav-toggle .bars{display:inline-block;width:20px;height:2px;background:var(--ink);position:relative;}
.nav-toggle .bars::before,.nav-toggle .bars::after{content:"";position:absolute;left:0;width:20px;height:2px;background:var(--ink);}
.nav-toggle .bars::before{top:-6px;}
.nav-toggle .bars::after{top:6px;}
.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;padding:.85rem 1.1rem;color:var(--ink);font-weight:500;
    border-bottom:2px solid transparent;transition:color .18s ease,border-color .18s ease;
}
.main-nav a:hover,.main-nav .current-menu-item>a{color:var(--link);border-bottom-color:var(--link);}

/* ================= Хлебные крошки ================= */
.breadcrumbs{
    width:var(--shell);margin:1.3rem auto 0;font-size:.85rem;color:var(--muted);
}
.breadcrumbs a{color:var(--link);}
.breadcrumbs .sep{margin:0 .45rem;color:var(--line);}

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

/* ================= Сайдбар ================= */
.sidebar{background:var(--bg);}
.widget{
    background:var(--bg-alt);border:1px solid var(--line);border-radius:6px;
    padding:1.3rem 1.3rem;margin-bottom:1.5rem;
}
.widget .widget-title,.widget h2{
    font-size:1.05rem;margin:0 0 .9rem;color:var(--ink);
    padding-bottom:.5rem;border-bottom:1px solid var(--line);
}
.widget ul{list-style:none;margin:0;padding:0;}
.widget li{padding:.4rem 0;border-bottom:1px dashed var(--line);}
.widget li:last-child{border-bottom:0;}
.widget a{color:var(--link);}
.widget a:hover{color:var(--link-dk);}
.widget_recent_entries li{display:flex;flex-direction:column;}
.widget_recent_entries .post-date{font-size:.78rem;margin-top:.2rem;}

/* ================= Карточки записей (горизонтальные, миниатюра слева) ================= */
.card{
    display:flex;flex-direction:row;
    border:1px solid var(--line);border-radius:6px;overflow:hidden;
    background:var(--bg-alt);margin-bottom:1.4rem;position:relative;
    transition:border-color .18s ease;
}
.card::before{
    content:"";position:absolute;left:0;top:0;bottom:0;width:4px;
    background:var(--link);transform:scaleY(0);transform-origin:top;
    transition:transform .2s ease;
}
.card:hover{border-color:var(--link);}
.card:hover::before{transform:scaleY(1);}
.card-thumb-wrap{
    flex:0 0 240px;position:relative;overflow:hidden;background:var(--bg-accent);
}
.card-thumb-wrap a{display:block;position:absolute;top:0;left:0;right:0;bottom:0;}
.card-thumb-wrap img,.card-thumb-wrap svg{
    width:100%;height:100%;object-fit:cover;display:block;
}
.card-body{flex:1;min-width:0;padding:1.3rem 1.4rem;display:flex;flex-direction:column;}
.card-title{font-size:1.25rem;margin:0 0 .5rem;}
.card-title-link{color:var(--ink);}
.card-title-link:hover{color:var(--link);}
.post-meta{font-size:.8rem;color:var(--muted);margin-bottom:.6rem;}
.card-excerpt{color:var(--ink);flex:1;}
.card-excerpt p{margin:0 0 0.5em;background:none;}
.card-more{margin-top:.8rem;}
.card-more a{
    font-weight:600;font-size:.9rem;color:var(--link);
}
.card-more a:hover{color:var(--link-dk);}

/* ================= Одиночная запись / страница ================= */
.entry-header h1{font-size:2.6rem;}
.entry-content{margin-top:1.4rem;}
.entry-content img{border-radius:6px;}
.entry-content h2{margin-top:1.6em;}
.entry-content ul,.entry-content ol{padding-left:1.3em;}
.entry-content blockquote{
    margin:1.4em 0;padding:1.1rem 1.4rem;
    background:var(--bg-accent);border-left:4px solid var(--teal);border-radius:4px;
    color:var(--ink);
}
.entry-content table{border-collapse:collapse;width:100%;margin:1.4em 0;}
.entry-content th,.entry-content td{border:1px solid var(--line);padding:.6rem .8rem;text-align:left;}
.entry-content th{background:var(--bg-accent);}

/* ================= Главная ================= */
.front-section{padding:3.4rem 0;}
.front-section.alt{background:var(--bg-alt);}
.front-section > .shell{width:85%;}

/* Hero */
.fs-hero{background:var(--foot-bg);color:#fff;padding:4.2rem 0;}
.fs-hero > .shell{
    display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
    gap:2.6rem;align-items:center;
}
.fs-hero h1{color:#fff;font-size:3.1rem;margin:0 0 1rem;letter-spacing:-.02em;}
.fs-hero .lede{color:#C6D3E2;font-size:1.15rem;max-width:52ch;margin:0 0 1.6rem;}
.fs-hero .hero-actions{display:flex;gap:.9rem;flex-wrap:wrap;}
.fs-hero .btn-outline{border-color:#fff;color:#fff;}
.fs-hero .btn-outline:hover{background:#fff;color:var(--foot-bg);}
.hero-art{justify-self:center;width:100%;max-width:340px;}
.hero-art svg{width:100%;height:auto;display:block;}

/* Таймлайн */
.timeline{position:relative;margin-top:1.2rem;padding-top:2.2rem;}
.timeline::before{content:"";position:absolute;left:0;right:0;top:calc(2.2rem - 1px);height:2px;background:var(--line);}
.tl-track{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1.2rem;}
.tl-item{position:relative;padding-top:1.4rem;}
.tl-item::before{
    content:"";position:absolute;top:calc(-2.2rem + 0.55rem);left:0;
    width:15px;height:15px;border-radius:50%;background:var(--bg);
    border:3px solid var(--link);
}
.tl-year{display:block;font-size:1.1rem;font-weight:700;margin-bottom:.35rem;}
.tl-text{font-size:.92rem;color:var(--ink);margin:0;}

/* Статистика */
.fs-stats{background:var(--bg-accent);position:relative;overflow:hidden;}
.fs-stats::before{
    content:"";position:absolute;inset:0;pointer-events:none;
    background-image:repeating-linear-gradient(45deg,rgba(0,102,179,.05) 0,rgba(0,102,179,.05) 1px,transparent 1px,transparent 11px);
}
.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.6rem;position:relative;}
.stat{border-left:3px solid var(--teal);padding:.2rem 0 .2rem 1.1rem;}
.stat-num{display:block;font-size:2.8rem;font-weight:700;line-height:1;}
.stat-label{display:block;color:var(--muted);font-size:.9rem;margin-top:.5rem;}

/* Рубрикатор */
.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem;}
.tile{
    display:flex;flex-direction:column;align-items:flex-start;gap:.8rem;
    border:1.5px solid var(--line);border-radius:6px;padding:1.5rem 1.4rem;
    background:var(--bg-alt);color:var(--ink);min-width:0;
    transition:background .2s ease,border-color .2s ease,color .2s ease;
}
.tile:hover{background:var(--link);border-color:var(--link);color:#fff;}
.tile .tile-ico{width:40px;height:40px;color:var(--link);transition:color .2s ease;}
.tile:hover .tile-ico{color:#fff;}
.tile .tile-name{font-weight:700;font-size:1.08rem;}
.tile .tile-desc{font-size:.86rem;color:var(--muted);transition:color .2s ease;}
.tile:hover .tile-desc{color:#DCE7F2;}

/* Последние записи на главной */
.latest-list{display:grid;grid-template-columns:1fr;gap:0;}

/* ================= Пагинация ================= */
.pagination{display:flex;flex-wrap:wrap;gap:.4rem;margin:2rem 0 0;}
.pagination .page-numbers{
    display:inline-flex;align-items:center;justify-content:center;
    min-width:42px;height:42px;padding:0 .7rem;
    border:1px solid var(--line);border-radius:4px;
    color:var(--link);font-family:var(--mono);font-size:.95rem;background:var(--bg-alt);
    transition:background .16s ease,color .16s ease,border-color .16s ease;
}
.pagination a.page-numbers:hover{background:var(--link);color:#fff;border-color:var(--link);}
.pagination .page-numbers.current{background:var(--link);color:#fff;border-color:var(--link);}
.pagination .page-numbers.dots{border-color:transparent;background:transparent;color:var(--muted);}

/* ================= Поиск ================= */
.search-form{display:flex;gap:.5rem;}
.search-form .search-field{
    flex:1;min-width:0;padding:.6rem .8rem;border:1px solid var(--line);
    border-radius:4px;font-size:.95rem;font-family:var(--sans);background:var(--bg-alt);color:var(--ink);
}
.search-form .search-submit{
    padding:.6rem 1.1rem;border:0;border-radius:4px;background:var(--link);color:#fff;
    font-weight:600;cursor:pointer;
}
.search-form .search-submit:hover{background:var(--link-dk);}

/* ================= 404 ================= */
.err404{text-align:left;padding:1rem 0 2rem;}
.err404 .code{font-family:var(--mono);color:var(--teal);font-size:4rem;font-weight:700;line-height:1;}

/* ================= Комментарии ================= */
.comments-area{margin-top:2.5rem;}
.comment-list{list-style:none;margin:0;padding:0;}
.comment-list li{margin:0 0 1.2rem;}
.comment-body{border:1px solid var(--line);border-radius:6px;padding:1rem 1.2rem;background:var(--bg-alt);}
.comment-meta{font-size:.82rem;color:var(--muted);margin-bottom:.4rem;}
.comment-respond{margin-top:1.6rem;padding:1.4rem;border:1px solid var(--line);border-radius:6px;background:var(--bg-alt);}
.comment-form input[type=text],.comment-form input[type=email],.comment-form input[type=url],.comment-form textarea{
    width:100%;padding:.6rem .8rem;border:1px solid var(--line);border-radius:4px;font-family:var(--sans);
    background:var(--bg);color:var(--ink);margin-top:.3rem;
}
.comment-form textarea{min-height:120px;}
.comment-form p{margin-bottom:.9rem;}

/* ================= Подвал ================= */
.site-footer{background:var(--foot-bg);color:#C6D3E2;margin-top:auto;}
.footer-widgets{
    width:var(--shell);margin-inline:auto;
    display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.2rem;
    padding:3rem 0 2rem;
}
.footer-widgets .widget{background:transparent;border:0;padding:0;margin:0;}
.footer-widgets .widget-title,.footer-widgets .widget h2{
    color:#fff;border-bottom:1px solid rgba(255,255,255,.16);
}
.footer-widgets .widget,
.footer-widgets p,
.footer-widgets li{color:#B7C6D8;}
.footer-widgets a{color:#DCE7F2;}
.footer-widgets a:hover{color:#fff;}
.footer-widgets li{border-bottom:1px dashed rgba(255,255,255,.12);}
.footer-widgets .widget_recent_entries .post-date{color:var(--teal);}
.site-bottom{border-top:1px solid rgba(255,255,255,.12);}
.site-bottom .shell{padding:1.2rem 0;font-size:.82rem;color:#8FA3B8;}

/* ================= Cookie-баннер ================= */
.cookie-banner[hidden]{display:none !important;}
.cookie-banner{
    position:fixed;left:0;right:0;bottom:0;z-index:1000;
    background:var(--foot-bg);color:#DCE7F2;border-top:2px solid var(--link);
    padding:1rem 0;
}
.cookie-banner .shell{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap;justify-content:space-between;}
.cookie-banner p{margin:0;font-size:.9rem;flex:1;min-width:240px;}
.cookie-banner a{color:#fff;text-decoration:underline;}
.cookie-banner .btn{white-space:nowrap;}

/* ================= Адаптив ================= */
@media (max-width:960px){
    .layout-with-sidebar{grid-template-columns:1fr;gap:2rem;}
    .fs-hero > .shell{grid-template-columns:1fr;}
    .hero-art{max-width:260px;order:-1;}
    .tl-track{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:2rem;}
    .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
    .tiles{grid-template-columns:repeat(2,minmax(0,1fr));}
    h1{font-size:2.6rem;}
    .fs-hero h1{font-size:2.4rem;}
}
@media (max-width:600px){
    body{font-size:16px;}
    .front-section > .shell,.layout-single .content-area{width:100%;}
    .front-section{padding:2.4rem 0;}
    .fs-hero{padding:2.8rem 0;}
    .header-inner{padding:1rem 0;}
    .nav-toggle{display:flex;}
    .main-nav ul{display:none;flex-direction:column;width:100%;}
    .main-nav ul.open{display:flex;}
    .main-nav a{padding:.75rem 0;border-bottom:1px solid var(--head-line);}
    .main-nav .current-menu-item>a{border-bottom-color:var(--head-line);}
    .tl-track{grid-template-columns:1fr;}
    .stats-grid{grid-template-columns:1fr;}
    .tiles{grid-template-columns:1fr;}
    h1{font-size:2.1rem;}
    .fs-hero h1{font-size:2rem;}
    .entry-header h1{font-size:1.9rem;}
    /* карточка — вертикально, миниатюра сверху */
    .card{flex-direction:column;}
    .card-thumb-wrap{flex:none;width:100%;position:static;}
    .card-thumb-wrap a{position:static;}
    .card-thumb-wrap img,.card-thumb-wrap svg{width:100%;height:auto;aspect-ratio:16/9;}
    .cookie-banner .shell{flex-direction:column;align-items:flex-start;}
}
