/*
Theme Name: ИЦПАиУД
Author: Исследовательский центр правовой аналитики и управления данными
Description: Тема центра правовой аналитики с редактируемым лендингом и внутренними страницами.
Version: 1.5.0
Text Domain: icpaud
*/
:root {
 --paper:#f0f1ec; --surface:#e3e8e4; --ink:#20363d; --blue:#1c3a46;
 --navy:#102b36; --cyan:#a3ccc4;
 --muted:#53676d; --line:#bdc9c8;
 --on-dark:#eaf0ed; --muted-dark:#bacbcf; --line-dark:#48616b;
 --result:#d8e5df; --source:#173440; --gutter:clamp(22px,5.5vw,100px);
 --font:"Segoe UI",Candara,sans-serif;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:120px; }
body { margin:0; background:var(--paper); color:var(--ink); font:17px/1.65 var(--font); overflow-wrap:break-word; }
h1,h2,h3,p,figure { margin:0; }
h1,h2,h3 { font-weight:500; text-wrap:balance; }
a { color:inherit; text-decoration-thickness:1px; text-underline-offset:.23em; }
button,input,textarea,select { font:inherit; }
button,input[type="submit"] { cursor:pointer; }
img,video { max-width:100%; height:auto; }
iframe { max-width:100%; }
:where(a,button,input,textarea,select,summary):focus-visible { outline:3px solid var(--blue); outline-offset:5px; }
[tabindex="-1"]:focus { outline:none; }
.skip-link,.screen-reader-text { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.skip-link:focus { position:fixed; top:12px; left:12px; width:auto; height:auto; clip-path:none; z-index:100000; background:white; color:var(--ink); padding:16px; }
/* Navigation remains in document flow, including without JavaScript. */
.site-header { position:sticky; top:0; z-index:20; display:flex; align-items:center; justify-content:space-between; gap:28px; padding:22px var(--gutter); background:var(--paper); border-bottom:1px solid var(--line); }
.site-name { max-width:340px; font-size:14px; font-weight:600; line-height:1.4; text-decoration:none; }
.site-nav ul { list-style:none; margin:0; padding:0; }
.site-nav>.menu { display:flex; flex-wrap:wrap; gap:12px 25px; }
.site-nav li { position:relative; }
.site-nav a { display:inline-block; padding-block:8px; font-size:15px; text-decoration:none; }
.site-nav a:hover,.site-nav a:focus-visible,.site-nav .current-menu-item>a { color:var(--blue); text-decoration:underline; }
.site-nav .sub-menu { display:none; position:absolute; left:0; top:100%; min-width:230px; padding:12px 18px; border:1px solid var(--line); background:var(--paper); }
.site-nav .sub-menu a { display:block; }
.site-nav li:hover>.sub-menu,.site-nav li:focus-within>.sub-menu { display:block; }
.site-nav .sub-menu .sub-menu { position:static; border:0; padding:0 0 0 15px; }
.header-cta { flex-shrink:0; color:var(--blue); font-size:15px; font-weight:600; }
.menu-toggle { display:none; align-items:center; justify-content:center; min-width:44px; min-height:44px; padding:0; color:var(--ink); background:transparent; border:1px solid var(--line); border-radius:4px; font-size:25px; }
.admin-bar .site-header { top:32px; }
/* Sources become a documented analytical result. */
.hero { display:grid; grid-template-columns:1.1fr 1fr; align-items:center; gap:clamp(40px,6vw,110px); padding:88px var(--gutter) 100px; }
.hero h1 { max-width:19ch; font-size:clamp(40px,4.4vw,66px); line-height:1.08; letter-spacing:-.035em; }
.hero-description { max-width:49ch; margin-top:30px; font-size:18px; color:var(--muted); line-height:1.65; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:52px; margin-top:34px; padding:12px 25px; border-radius:4px; background:var(--blue); color:white; text-decoration:none; font-size:16px; font-weight:600; }
.button:hover { background:var(--ink); }
.research-map { position:relative; padding:30px; background:var(--surface); border-radius:8px 8px 28px 8px; }
.research-map figcaption { margin-bottom:24px; font-size:16px; font-weight:600; color:var(--muted); }
.source-documents { display:grid; gap:9px; }
.source-document { display:flex; align-items:center; gap:14px; min-height:54px; padding:12px 17px; background:var(--paper); border:1px solid var(--line); border-radius:3px; font-size:15px; }
.document-glyph { position:relative; flex:0 0 18px; height:23px; border:1px solid var(--blue); border-radius:1px; }
.document-glyph::before,.document-glyph::after { content:""; position:absolute; left:4px; right:4px; height:1px; background:var(--blue); top:8px; }
.document-glyph::after { top:13px; }
.research-bridge { position:relative; display:grid; place-items:center; min-height:70px; padding:14px; text-align:center; }
.research-bridge::before { content:""; position:absolute; top:0; bottom:0; left:50%; width:1px; background:var(--blue); }
.research-bridge span { position:relative; background:var(--surface); color:var(--blue); font-size:14px; padding:3px 10px; }
.research-result { position:relative; background:var(--blue); color:white; padding:24px 26px; border-radius:3px 3px 14px 3px; }
.result-title { font-size:24px; font-weight:500; line-height:1.25; }
.research-result ul { margin:16px 0 0; padding-left:20px; font-size:15px; }
.research-result li+li { margin-top:4px; }
/* Section labels identify content; separators distinguish individual services. */
.section { padding:90px var(--gutter); }
.section-split { display:grid; grid-template-columns:minmax(170px,1fr) minmax(0,3fr); gap:clamp(30px,5vw,85px); }
.section-title { font-size:clamp(24px,2.4vw,34px); line-height:1.25; letter-spacing:-.02em; }
.intro { background:var(--surface); }
.statement { max-width:38ch; font-size:clamp(25px,2.65vw,39px); line-height:1.35; letter-spacing:-.02em; }
.intro-copy { display:grid; grid-template-columns:1fr 1fr; gap:38px; margin-top:36px; }
.intro-copy p,.services-heading p,.service-item p,.step p { max-width:68ch; color:var(--muted); }
.services-heading p { margin-top:24px; font-size:16px; }
.service-list { border-top:1px solid var(--line); }
.service-item { display:grid; grid-template-columns:1fr 1.2fr; gap:30px; padding:28px 0; border-bottom:1px solid var(--line); }
.service-item h3 { font-size:23px; line-height:1.3; }
.service-item p { font-size:16px; }
.approach { padding-top:45px; padding-bottom:100px; }
.steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; margin:0; padding:0; list-style:none; counter-reset:research-step; }
.step { counter-increment:research-step; }
.step::before { content:counter(research-step); display:grid; place-items:center; width:38px; height:38px; margin-bottom:24px; border-radius:50%; background:var(--surface); color:var(--blue); font-size:16px; font-weight:600; }
.step h3 { font-size:23px; line-height:1.3; margin-bottom:16px; }
.step p { font-size:16px; }
.contact { background:var(--blue); color:var(--paper); }
.contact-main .statement { max-width:37ch; }
.contact-links { display:flex; flex-wrap:wrap; gap:18px 40px; margin-top:34px; }
.contact-links a { max-width:100%; overflow-wrap:anywhere; font-size:clamp(21px,2.1vw,30px); }
.contact a:focus-visible { outline-color:white; }
.global-footer { display:flex; align-items:center; justify-content:space-between; gap:28px; padding:32px var(--gutter); background:var(--surface); color:var(--muted); font-size:13px; }
.footer-name { max-width:420px; }
/* Mineral blue, muted teal and neutral paper: shared semantic colors. */
.site-header,.hero,.contact,.global-footer { background:var(--navy); color:var(--on-dark); }
.site-header { border-bottom-color:var(--line-dark); }
.site-nav .sub-menu { background:var(--navy); border-color:var(--line-dark); }
.site-nav a:hover,.site-nav a:focus-visible,.site-nav .current-menu-item>a,.header-cta { color:var(--cyan); }
.menu-toggle { color:var(--on-dark); border-color:var(--muted-dark); }
.site-header :focus-visible,.hero :focus-visible,.global-footer :focus-visible { outline-color:var(--cyan); }
.hero-description { color:var(--muted-dark); }
.hero .button { background:var(--cyan); color:var(--navy); }
.hero .button:hover { background:var(--paper); }
.research-map { background:var(--blue); }
.research-map figcaption { color:var(--muted-dark); }
.source-document { background:var(--source); border-color:var(--line-dark); }
.document-glyph { border-color:var(--cyan); }
.document-glyph::before,.document-glyph::after,.research-bridge::before { background:var(--cyan); }
.research-bridge span { background:var(--blue); color:var(--cyan); }
.research-result { background:var(--result); color:var(--ink); }
.intro { background:var(--paper); }
.services { background:var(--blue); color:var(--on-dark); --line:var(--line-dark); --muted:var(--muted-dark); }
.client-policy { background:var(--surface); }
.policy-copy { max-width:70ch; }
.policy-copy p+p { margin-top:22px; }
.policy-refusal { padding-top:22px; border-top:1px solid var(--line); }
.contact-links a { color:var(--cyan); }
.global-footer { border-top:1px solid var(--line-dark); color:var(--muted-dark); flex-wrap:wrap; }
/* WordPress content, search and comments. */
.content-page { max-width:1100px; min-height:65vh; margin-inline:auto; }
.content-page h1 { margin-bottom:32px; font-size:clamp(34px,4.2vw,56px); line-height:1.15; letter-spacing:-.025em; }
.content-page h2 { margin-block:32px 18px; font-size:30px; line-height:1.3; }
.content-page h3 { margin-block:26px 12px; font-size:24px; }
.content-page p { margin-bottom:20px; }
.content-page a { color:var(--blue); }
.entry { margin:45px 0; padding-bottom:30px; border-bottom:1px solid var(--line); }
.entry-content { max-width:72ch; }
.entry-content figure { max-width:100%; margin:28px 0; }
.entry-content figcaption,.wp-caption-text { font-size:14px; color:var(--muted); }
.entry-content pre,.entry-content .wp-block-table { overflow-x:auto; }
.entry-content blockquote { margin:28px 0; padding:8px 24px; border-left:3px solid var(--blue); }
.entry-content table { border-collapse:collapse; width:100%; }
.entry-content th,.entry-content td { padding:10px; border:1px solid var(--line); text-align:left; }
:where(input:not([type="checkbox"]):not([type="radio"]),textarea,select) { max-width:100%; padding:10px 14px; border:1px solid var(--line); border-radius:3px; background:white; color:var(--ink); }
textarea { width:100%; }
input[type="submit"],button.search-submit { background:var(--blue); color:white; border:1px solid var(--blue); border-radius:3px; padding:10px 18px; }
.search-form { display:flex; flex-wrap:wrap; align-items:end; gap:12px; margin-block:24px; }
.search-form label { max-width:100%; }
.pagination,.comments-area { margin-top:48px; }
.page-numbers { display:inline-block; padding:8px 12px; }
.page-numbers.current { background:var(--surface); border-radius:3px; }
.comment-list { padding-left:24px; }
.comment-body { margin-block:28px; }
.comment-metadata { font-size:14px; }
.alignleft { float:left; margin:0 24px 16px 0; }
.alignright { float:right; margin:0 0 16px 24px; }
.aligncenter { display:block; margin-inline:auto; }
.entry-content::after { content:""; display:table; clear:both; }
@media(min-width:1600px) {
 .hero,.section,.site-header,.global-footer { padding-inline:max(var(--gutter),calc((100vw - 1424px)/2)); }
 .content-page { padding-inline:70px; }
}
@media(max-width:1150px) {
 .header-cta { display:none; }
 .site-name { max-width:310px; }
 .hero { gap:35px; padding-block:64px 76px; }
 .research-map { padding:24px; }
 .section-split { grid-template-columns:minmax(150px,1fr) minmax(0,3fr); gap:32px; }
 .steps { grid-template-columns:1fr; gap:30px; }
 .step { display:grid; grid-template-columns:38px 1fr; column-gap:20px; }
 .step::before { grid-row:1 / 3; margin:0; }
 .step p,.step h3 { grid-column:2; }
 .step h3 { margin-bottom:9px; }
}
@media(max-width:850px) {
 .site-header { flex-wrap:wrap; gap:12px; padding-block:16px; }
 .site-name { max-width:calc(100% - 60px); font-size:13px; }
 .site-nav { width:100%; }
 .site-nav>.menu { flex-direction:column; gap:3px; }
 .site-nav .sub-menu { display:block; position:static; min-width:0; padding:0 0 0 18px; border:0; }
 .has-menu-js .menu-toggle { display:inline-flex; }
 .has-menu-js .site-nav { display:none; max-height:calc(100dvh - 180px); overflow-y:auto; }
 .has-menu-js .site-nav.is-open { display:block; }
 .hero { grid-template-columns:1fr 1fr; gap:24px; }
 .hero h1 { font-size:40px; }
 .hero-description { font-size:17px; }
 .research-map { padding:20px; }
 .source-document { padding:10px; gap:10px; font-size:14px; }
 .result-title { font-size:21px; }
 .research-result { padding:20px; }
 .section { padding-block:64px; }
 .section-split { grid-template-columns:1fr; gap:28px; }
 .services-heading { max-width:65ch; }
 .services-heading p { margin-top:14px; }
 .intro-copy { gap:28px; }
}
@media(max-width:782px) { .admin-bar .site-header { top:46px; } }
@media(max-width:600px) {
 html { scroll-padding-top:130px; }
 .admin-bar .site-header { top:0; }
 .hero { grid-template-columns:1fr; gap:38px; padding-block:44px 56px; }
 .hero h1 { max-width:17ch; font-size:clamp(34px,8.7vw,48px); }
 .hero-description { margin-top:22px; }
 .button { margin-top:24px; }
 .research-map { padding:22px; }
 .research-map figcaption { margin-bottom:18px; }
 .section { padding-block:52px; }
 .intro-copy { grid-template-columns:1fr; gap:20px; margin-top:26px; }
 .service-item { grid-template-columns:1fr; gap:12px; padding-block:24px; }
 .service-item h3 { font-size:23px; }
 .contact-links { flex-direction:column; align-items:flex-start; }
 .global-footer { flex-wrap:wrap; gap:18px 28px; }
 .footer-name { flex-basis:100%; }
 .alignleft,.alignright { float:none; margin:24px 0; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
