* { box-sizing: border-box; }
body { margin: 0; background: #fff; color: #242424; font: 16px/1.65 Arial, Helvetica, sans-serif; }
header, main, footer { width: min(100% - 40px, 720px); margin: 0 auto; }
header { padding: 32px 0 20px; border-bottom: 1px solid #ddd; }
.brand { color: #222; text-decoration: none; font: bold 23px Georgia, serif; }
nav { display: flex; gap: 20px; margin-top: 12px; font-size: 14px; }
a { color: #235a88; text-underline-offset: 3px; }
a:hover { color: #111; }
a:focus-visible { outline: 2px solid #235a88; outline-offset: 4px; }
main { padding: 32px 0 44px; }
h1 { font: bold 32px/1.2 Georgia, serif; margin: 0 0 16px; }
h2 { font-size: 20px; line-height: 1.4; margin: 30px 0 10px; }
h3 { font-size: 16px; margin: 22px 0 5px; }
p { margin: 0 0 16px; }
.intro { color: #555; }
.contact { padding: 4px 0 12px; }
.contact a { overflow-wrap: anywhere; }
.card p { margin-bottom: 18px; }
.date { color: #666; font-size: 14px; }
footer { padding: 20px 0 28px; border-top: 1px solid #ddd; color: #666; font-size: 13px; display: flex; gap: 16px; justify-content: space-between; flex-wrap: wrap; }
@media (max-width: 480px) { header { padding-top: 22px; } main { padding-top: 26px; } h1 { font-size: 28px; } }
