/* vestrova.online — self-hosted stylesheet. No web fonts, no remote assets. */

:root{
  --ink:#11161f;
  --ink-2:#3d4757;
  --ink-3:#616b7b;
  --line:#dfe4ec;
  --line-2:#eef1f6;
  --bg:#ffffff;
  --surface:#f6f8fb;
  --brand:#1d4ed8;
  --brand-dark:#173fa8;
  --brand-tint:#eef3ff;
  --teal:#0f766e;
  --amber:#b45309;
  --amber-bg:#fff8ec;
  --amber-line:#f0d5a8;
  --cta:#047857;
  --cta-dark:#03624a;
  --radius:10px;
  --maxw:1220px;
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif;
  --mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--font);
  font-size:17px;
  line-height:1.68;
  overflow-wrap:break-word;
}

img,svg{max-width:100%;height:auto}
a{color:var(--brand)}
a:hover{color:var(--brand-dark)}
:focus-visible{outline:3px solid var(--brand);outline-offset:2px}

/* ---------- disclosure bar (must render above everything) ---------- */
.disc-bar{
  background:#1f2937;
  color:#f3f4f6;
  font-size:.86rem;
  line-height:1.5;
  padding:9px 18px;
  text-align:center;
}
.disc-bar strong{color:#fff}
.disc-bar a{color:#bfdbfe;text-decoration:underline}

/* ---------- header ---------- */
.site-head{
  border-bottom:1px solid var(--line);
  background:var(--bg);
}
.site-head-in{
  max-width:var(--maxw);
  margin:0 auto;
  padding:14px 18px;
  display:flex;
  flex-wrap:wrap;
  gap:12px 22px;
  align-items:center;
}
.brand{
  display:inline-flex;
  align-items:center;
  gap:9px;
  font-weight:700;
  font-size:1.14rem;
  letter-spacing:-.015em;
  color:var(--ink);
  text-decoration:none;
}
.brand-mark{
  width:26px;height:26px;flex:0 0 26px;
  border-radius:7px;
  background:var(--brand);
  color:#fff;
  display:grid;place-items:center;
  font-size:.82rem;font-weight:700;
}
.brand-sub{
  font-size:.74rem;
  font-weight:600;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:var(--ink-3);
  border-left:1px solid var(--line);
  padding-left:14px;
}
.site-nav{margin-left:auto;display:flex;flex-wrap:wrap;gap:4px 18px}
.site-nav a{
  color:var(--ink-2);
  text-decoration:none;
  font-size:.92rem;
  font-weight:500;
}
.site-nav a:hover{color:var(--brand);text-decoration:underline}

/* ---------- layout ---------- */
.wrap{
  max-width:var(--maxw);
  margin:0 auto;
  padding:26px 18px 10px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 312px;
  gap:38px;
  align-items:start;
}
.wrap-narrow{grid-template-columns:minmax(0,1fr);max-width:860px}
main{min-width:0}

/* ---------- typography ---------- */
h1{
  font-size:clamp(1.78rem,1.3rem + 2.1vw,2.6rem);
  line-height:1.2;
  letter-spacing:-.021em;
  margin:.1em 0 .45em;
}
h2{
  font-size:clamp(1.3rem,1.14rem + .8vw,1.62rem);
  line-height:1.28;
  letter-spacing:-.014em;
  margin:2.1em 0 .6em;
  padding-top:.35em;
  border-top:1px solid var(--line-2);
}
h3{
  font-size:1.1rem;
  line-height:1.35;
  margin:1.7em 0 .45em;
}
h4{font-size:.98rem;margin:1.4em 0 .4em}
p{margin:0 0 1.05em}
ul,ol{margin:0 0 1.15em;padding-left:1.35em}
li{margin:0 0 .45em}
.lead{
  font-size:1.1rem;
  color:var(--ink-2);
  border-left:3px solid var(--brand);
  padding-left:16px;
  margin-bottom:1.5em;
}
small,.small{font-size:.86rem;line-height:1.55}
code,kbd{
  font-family:var(--mono);
  font-size:.88em;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:4px;
  padding:1px 5px;
}

/* ---------- byline ---------- */
.byline{
  display:flex;
  flex-wrap:wrap;
  gap:6px 14px;
  align-items:baseline;
  font-size:.88rem;
  color:var(--ink-3);
  border-bottom:1px solid var(--line);
  padding-bottom:14px;
  margin-bottom:22px;
}
.byline b{color:var(--ink);font-weight:600}

/* ---------- disclosure box ---------- */
.disc-box{
  background:var(--amber-bg);
  border:1px solid var(--amber-line);
  border-left:4px solid var(--amber);
  border-radius:var(--radius);
  padding:15px 18px;
  margin:0 0 26px;
  font-size:.92rem;
  line-height:1.6;
}
.disc-box h2,.disc-box h3{
  margin:0 0 .35em;
  font-size:.82rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--amber);
  border:0;
  padding:0;
}
.disc-box p:last-child{margin-bottom:0}

/* ---------- notes / callouts ---------- */
.note{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:15px 18px;
  margin:0 0 1.5em;
  font-size:.94rem;
}
.note h3{margin:0 0 .4em;font-size:1rem}
.note p:last-child,.note ul:last-child{margin-bottom:0}
.note-teal{border-left:4px solid var(--teal)}
.note-brand{border-left:4px solid var(--brand);background:var(--brand-tint)}

/* ---------- tables ---------- */
.table-scroll{overflow-x:auto;margin:0 0 1.5em}
table{border-collapse:collapse;width:100%;font-size:.93rem}
caption{
  caption-side:bottom;
  text-align:left;
  font-size:.84rem;
  color:var(--ink-3);
  padding-top:9px;
}
th,td{
  border:1px solid var(--line);
  padding:9px 12px;
  text-align:left;
  vertical-align:top;
}
thead th{background:var(--surface);font-size:.88rem}
td.yes{color:#047857;font-weight:600}
td.no{color:#b91c1c;font-weight:600}

/* ---------- figures ---------- */
figure{
  margin:1.9em 0;
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  background:var(--bg);
}
figure img{display:block;width:100%;background:var(--bg)}
figcaption{
  font-size:.86rem;
  line-height:1.55;
  color:var(--ink-3);
  padding:11px 15px;
  border-top:1px solid var(--line-2);
  background:var(--surface);
}
figcaption b{color:var(--ink-2)}

/* ---------- CTA ---------- */
.cta-card{
  border:1px solid var(--line);
  border-top:3px solid var(--cta);
  border-radius:var(--radius);
  background:var(--surface);
  padding:20px 20px 17px;
  margin:2em 0;
}
.cta-card h3{margin:0 0 .45em}
.cta-card p{font-size:.95rem}
.btn{
  display:block;
  background:var(--cta);
  color:#fff;
  text-decoration:none;
  font-weight:600;
  font-size:1rem;
  text-align:center;
  border-radius:8px;
  padding:13px 20px 10px;
  line-height:1.3;
}
.btn:hover{background:var(--cta-dark);color:#fff}
.btn-outline{
  background:transparent;
  color:var(--cta);
  border:2px solid var(--cta);
  padding:11px 20px 8px;
}
.btn-outline:hover{background:var(--cta);color:#fff}
.btn-label{
  display:block;
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
  opacity:.92;
  margin-top:3px;
}
.cta-note{
  font-size:.83rem;
  line-height:1.55;
  color:var(--ink-3);
  margin:9px 0 0;
}

/* ---------- sidebar ---------- */
.rail{min-width:0}
.rail-card{
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:17px;
  margin:0 0 20px;
  background:var(--bg);
  font-size:.93rem;
}
.rail-card h2,.rail-card h3{
  margin:0 0 .5em;
  font-size:1rem;
  border:0;
  padding:0;
}
.rail-card ul{padding-left:1.1em;margin-bottom:.9em}
.rail-card li{margin-bottom:.3em}
.rail-toc ol{padding-left:1.25em;font-size:.91rem}
.rail-toc a{color:var(--ink-2);text-decoration:none}
.rail-toc a:hover{color:var(--brand);text-decoration:underline}

/* ---------- footer ---------- */
.site-foot{
  margin-top:48px;
  border-top:1px solid var(--line);
  background:var(--surface);
  font-size:.89rem;
  line-height:1.6;
  color:var(--ink-2);
}
.site-foot-in{max-width:var(--maxw);margin:0 auto;padding:30px 18px 36px}
.foot-cols{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(215px,1fr));
  gap:24px 34px;
  margin-bottom:24px;
}
.foot-cols h2{
  font-size:.76rem;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:var(--ink-3);
  margin:0 0 .7em;
  border:0;
  padding:0;
}
.foot-cols ul{list-style:none;padding:0;margin:0}
.foot-cols li{margin-bottom:.4em}
.foot-cols a{color:var(--ink-2);text-decoration:none}
.foot-cols a:hover{color:var(--brand);text-decoration:underline}
.foot-legal{
  border-top:1px solid var(--line);
  padding-top:18px;
  font-size:.84rem;
  color:var(--ink-3);
}
.foot-legal p{margin:0 0 .6em}
.foot-legal p:last-child{margin-bottom:0}

/* ---------- misc ---------- */
.skip{
  position:absolute;left:-9999px;top:0;
  background:var(--brand);color:#fff;padding:10px 16px;z-index:50;
}
.skip:focus{left:0}
.updated{font-size:.86rem;color:var(--ink-3);margin-bottom:1.6em}
.dl dt{font-weight:600;margin-top:.9em}
.dl dd{margin:0 0 .3em;color:var(--ink-2)}
.center-404{max-width:640px;margin:0 auto;padding:60px 18px;text-align:center}

@media (max-width:900px){
  .wrap{grid-template-columns:minmax(0,1fr);gap:26px}
  .rail{border-top:1px solid var(--line);padding-top:22px}
  .brand-sub{border-left:0;padding-left:0}
  .site-nav{margin-left:0;width:100%}
}
@media print{
  .disc-bar,.site-nav,.rail{display:none}
  body{font-size:12pt}
}
