:root{
  --paper:#F2F5F1;
  --paper-alt:#EAEFE9;
  --ink:#10233F;
  --ink-soft:#3B4A61;
  --jade:#0E6B57;
  --jade-dark:#0A4F41;
  --gold:#A9822C;
  --gold-soft:#EFE3C2;
  --alert:#9B3222;
  --line:#CBD3C9;
}
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  font-size:16px; line-height:1.65;
}
.wrap{ max-width:820px; margin:0 auto; padding:0 20px; }
.wrap-wide{ max-width:1100px; margin:0 auto; padding:0 20px; }

header.top{
  position:sticky; top:0; z-index:40;
  background:rgba(242,245,241,.95); backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
.top-inner{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 0; flex-wrap:wrap; }
.brand{ display:flex; align-items:center; gap:8px; text-decoration:none; color:var(--ink); }
.brand .mark{
  width:34px; height:34px; border-radius:6px; background:var(--ink); color:var(--gold-soft);
  display:flex; align-items:center; justify-content:center; font-weight:700;
  font-family:Georgia,'Times New Roman',serif;
}
.brand span{ font-family:Georgia,'Times New Roman',serif; font-weight:600; font-size:18px; }
nav.menu{ display:flex; gap:18px; flex-wrap:wrap; font-size:14px; }
nav.menu a{ color:var(--ink-soft); text-decoration:none; }
nav.menu a:hover, nav.menu a[aria-current="page"]{ color:var(--jade); }

main{ padding:36px 0 56px; }
.crumbs{ font-size:13px; color:var(--ink-soft); margin-bottom:18px; }
.crumbs a{ color:var(--jade-dark); }
h1{ font-family:Georgia,'Times New Roman',serif; font-size:34px; line-height:1.2; margin:0 0 6px; }
h2{ font-family:Georgia,'Times New Roman',serif; font-size:22px; margin:34px 0 10px; }
h3{ font-size:17px; margin:22px 0 6px; }
p, li{ color:var(--ink-soft); }
li{ margin-bottom:6px; }
.lead{ font-size:17px; }
.meta{ font-size:13px; color:var(--ink-soft); margin:0 0 24px; }
a{ color:var(--jade-dark); }
.card{ background:#FCFDFB; border:1px solid var(--line); border-radius:8px; padding:20px; margin:22px 0; }
.note{ background:var(--gold-soft); border:1px solid var(--gold); border-radius:8px; padding:16px 18px; margin:22px 0; font-size:14px; }
table{ width:100%; border-collapse:collapse; margin:18px 0; background:#fff; font-size:14px; }
th, td{ border:1px solid var(--line); padding:10px; text-align:left; vertical-align:top; }
th{ background:var(--paper-alt); color:var(--ink); }

label{ display:block; font-weight:600; font-size:14px; margin:14px 0 6px; color:var(--ink); }
input[type="text"], input[type="email"], textarea, select{
  width:100%; padding:10px 12px; border:1px solid var(--line); border-radius:6px;
  background:#fff; color:var(--ink); font:inherit; font-size:15px;
}
textarea{ min-height:140px; resize:vertical; }
button.btn, a.btn{
  display:inline-block; margin-top:18px; background:var(--jade); color:#fff; border:0;
  padding:12px 20px; border-radius:6px; font-weight:600; font-size:15px; cursor:pointer; text-decoration:none;
}
button.btn:hover, a.btn:hover{ background:var(--jade-dark); }
:focus-visible{ outline:2px solid var(--jade); outline-offset:2px; }

footer.bottom{ border-top:1px solid var(--line); margin-top:40px; }
.foot-grid{ display:flex; flex-wrap:wrap; gap:40px; justify-content:space-between; padding:34px 0 20px; }
.foot-grid h2{ font-family:inherit; font-size:14px; margin:0 0 8px; color:var(--ink); }
.foot-grid ul{ list-style:none; margin:0; padding:0; font-size:14px; }
.foot-grid a{ color:var(--ink-soft); text-decoration:none; }
.foot-grid a:hover{ color:var(--jade); }
.copy{ font-size:12px; color:var(--ink-soft); padding-bottom:26px; }
@media (max-width:640px){ h1{ font-size:27px; } }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }
