:root {
  --brand-a: #2e4f64;
  --brand-b: #3f6983;
  --accent-c: #cc7b38;
  --paper-a: #f3f1ec;
  --paper-b: #ffffff;
  --line-a: #d7d1c6;
  --text-a: #1f2730;
}
* { box-sizing: border-box; }
html, body {
  margin: 0;
  padding: 0;
  background: var(--paper-a);
  color: var(--text-a);
  font-family: "Libre Franklin", "Segoe UI", Arial, sans-serif;
  line-height: 1.62;
}
.skip-link { position: absolute; left: -9999px; }
.skip-link:focus { left: 10px; top: 10px; background:#fff; border:1px solid var(--line-a); padding:8px 10px; z-index:999; }
header { border-bottom: 1px solid var(--line-a); background: var(--paper-b); }
.nav-wrap { max-width: 1040px; margin: 0 auto; padding: 14px 20px; display:flex; justify-content:space-between; align-items:center; gap:16px; }
.brand { font-weight: 700; }
nav ul { margin:0; padding:0; list-style:none; display:flex; flex-wrap:wrap; gap:12px; }
a { color: var(--brand-b); text-decoration: none; }
a:hover { color: var(--accent-c); }
main { max-width: 1040px; margin: 0 auto; padding: 24px 20px 42px; }
section { background:#fff; border:1px solid var(--line-a); border-radius:12px; padding:22px; margin:20px 0; }
h1,h2,h3 { margin-top:0; line-height:1.28; font-family:"Crimson Pro", Georgia, serif; }
.btn-solid,.btn-outline,button { display:inline-block; font:inherit; padding:10px 14px; border-radius:10px; }
.btn-solid,button { border:1px solid var(--brand-a); background:var(--brand-a); color:#fff; }
.btn-solid:hover,button:hover { background:#244153; }
.btn-outline { border:1px solid var(--brand-a); color:var(--brand-a); background:transparent; }
.btn-outline:hover { color:var(--accent-c); border-color:var(--accent-c); }
.grid-2 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.grid-3 { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.card { border:1px solid var(--line-a); border-radius:10px; padding:12px; background:#fff; }
form { display:grid; gap:10px; }
label { display:grid; gap:6px; }
input,textarea { border:1px solid #b8b0a3; border-radius:8px; padding:10px; font:inherit; }
textarea { min-height: 130px; }
*:focus-visible { outline:3px solid #2f67a8; outline-offset:2px; }
.footer-grid { display:grid; grid-template-columns:1.15fr 1fr; gap:16px; }
.cookie-bar { position:fixed; left:12px; right:12px; bottom:12px; border:1px solid var(--line-a); border-radius:10px; background:#fff; padding:12px; }
.hidden { display:none; }
@media (max-width:860px){ .grid-2,.grid-3,.footer-grid{ grid-template-columns:1fr; } }
