body {
  font-family: system-ui, sans-serif;
  line-height: 1.6;
  margin: 0;
}

.container {
  max-width: 900px;
  margin: auto;
  padding: 1.5rem;
}

.site-header, .site-footer {
  background: #f4f4f4;
}

nav a {
  margin-right: 1rem;
  text-decoration: none;
}

.ad-block {
  margin: 2rem 0;
  min-height: 90px;
  background: #eee;
}
.form-row { margin: 1rem 0; }
label { display: block; font-weight: 600; margin-bottom: .25rem; }
input, textarea {
  width: 100%;
  padding: .65rem;
  border: 1px solid #ccc;
  border-radius: 6px;
  font: inherit;
}
button {
  padding: .7rem 1rem;
  border: 0;
  border-radius: 8px;
  cursor: pointer;
}
.notice { padding: 1rem; border-radius: 8px; margin: 1rem 0; }
.notice.success { background: #eef7ee; border: 1px solid #b9e0b9; }
.notice.error { background: #fdeeee; border: 1px solid #f0b1b1; }
.fine-print { font-size: .9rem; opacity: .85; margin-top: .75rem; }
.hp-field { position: absolute; left: -9999px; top: -9999px; }

.hero { padding: 2rem 0 1rem; }
.lead { font-size: 1.1rem; max-width: 70ch; }

.cta-row { margin-top: 1rem; display: flex; gap: .75rem; flex-wrap: wrap; }
.btn {
  display: inline-block;
  padding: .7rem 1rem;
  border-radius: 10px;
  text-decoration: none;
  border: 1px solid #ccc;
}
.btn.secondary { opacity: .9; }

.grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin: 1.5rem 0;
}
.card {
  border: 1px solid #ddd;
  border-radius: 12px;
  padding: 1rem;
  background: #fff;
}

.strip {
  border: 1px solid #ddd;
  border-radius: 12px;
  padding: 1rem;
  background: #fafafa;
  margin: 1.5rem 0;
}

.bullets { margin: .5rem 0 0; }
.bullets li { margin: .4rem 0; }

.latest { margin: 1.5rem 0; }
.list { display: grid; gap: .75rem; }
.list-item {
  display: block;
  border: 1px solid #ddd;
  border-radius: 12px;
  padding: 1rem;
  text-decoration: none;
}
.kicker { display: block; font-size: .85rem; opacity: .7; }
.title { display: block; font-weight: 700; margin-top: .2rem; }
.meta { display: block; margin-top: .25rem; opacity: .85; }

.about-mini {
  margin: 2rem 0 1rem;
  border-top: 1px solid #eee;
  padding-top: 1rem;
}

@media (max-width: 900px) {
  .grid { grid-template-columns: 1fr; }
}

.article-header { margin-bottom: 1.5rem; }
.crumb { font-size: .9rem; opacity: .75; }
.meta-row { display: flex; gap: 1rem; flex-wrap: wrap; margin: 1rem 0; }
.meta-item { border: 1px solid #ddd; border-radius: 10px; padding: .5rem .75rem; background: #fafafa; }

.article h2 { margin-top: 2rem; }
.article h3 { margin-top: 1.25rem; }

.callout {
  border-left: 4px solid #ccc;
  padding: .75rem 1rem;
  background: #fafafa;
  border-radius: 8px;
  margin: 1rem 0;
}

.two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin: 1rem 0;
}

.article-footer { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid #eee; }
.author-line { margin: 0; }
.fine-print { font-size: .9rem; opacity: .8; }

@media (max-width: 900px) {
  .two-col { grid-template-columns: 1fr; }
}

.article-header { margin-bottom: 1.5rem; }
.crumb { font-size: .9rem; opacity: .75; }
.meta-row { display: flex; gap: 1rem; flex-wrap: wrap; margin: 1rem 0; }
.meta-item { border: 1px solid #ddd; border-radius: 10px; padding: .5rem .75rem; background: #fafafa; }

.article h2 { margin-top: 2rem; }
.article h3 { margin-top: 1.25rem; }

.callout {
  border-left: 4px solid #ccc;
  padding: .75rem 1rem;
  background: #fafafa;
  border-radius: 8px;
  margin: 1rem 0;
}

.two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin: 1rem 0;
}

.article-footer { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid #eee; }
.author-line { margin: 0; }
.fine-print { font-size: .9rem; opacity: .8; }

@media (max-width: 900px) {
  .two-col { grid-template-columns: 1fr; }
}
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: .65rem .75rem; border-bottom: 1px solid rgba(0,0,0,.1); text-align: left; vertical-align: top; }
thead th { border-bottom: 2px solid rgba(0,0,0,.2); }