:root {
  --ink: #1c1914; --muted: #6a645a; --paper: #e8e2d6; --white: #f4f0e8;
  --navy: #161b2c; --gold: #c45c12; --line: #d4ccbe;
}
* { box-sizing: border-box; }
html, body { margin: 0; }
body { font-family: Georgia, "Times New Roman", serif; color: var(--ink); background: var(--paper); line-height: 1.45; }
button, input, select, textarea { font-family: inherit; }
a { color: var(--gold); }
.sans { font-family: "Segoe UI", Tahoma, sans-serif; }
.tiny { font-size: 13px; color: var(--muted); font-family: "Segoe UI", Tahoma, sans-serif; }
.muted { color: var(--muted); }
.err { color: #8f1b14; font-family: "Segoe UI", Tahoma, sans-serif; }
header.app, footer.app {
  background: #efeae0; border-color: var(--line);
}
header.app {
  border-bottom: 1px solid var(--line);
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 22px; position: sticky; top: 0; z-index: 20;
}
.brand { display: flex; align-items: center; gap: 10px; text-decoration: none; color: inherit; }
.brand img { height: 44px; }
nav a, nav button.linkish, footer a, .linkish {
  background: none; border: none; color: var(--gold); font-family: "Segoe UI", Tahoma, sans-serif;
  font-size: 14px; cursor: pointer; margin-left: 14px; text-decoration: none;
}
main { max-width: 980px; margin: 0 auto; padding: 28px 18px 80px; }
footer.app { border-top: 1px solid var(--line); padding: 18px; text-align: center; font-size: 13px; color: var(--muted); }
.hero { display: grid; grid-template-columns: 1.1fr 0.9fr; background: var(--white); border: 1px solid var(--line); }
.hero-copy { padding: 48px 28px 48px 40px; }
.hero-art { display: flex; align-items: flex-end; justify-content: flex-end; background: var(--white); }
.hero-art img { max-width: 100%; max-height: 340px; }
.why { display: grid; grid-template-columns: 1fr 1.3fr; gap: 40px; padding: 48px 8px 10px; }
.pitch { max-width: 640px; margin: 48px auto 8px; text-align: center; }
.pitch h2 { text-align: center; margin: 40px 0 16px; font-weight: 700; letter-spacing: 0.03em; }
#sample { scroll-margin-top: 72px; }
.pitch h2:first-child { margin-top: 0; }
.pitch h2::after { content: ""; display: block; width: 28px; height: 1px; background: var(--gold); margin: 10px auto 0; }
.pitch .point { justify-content: center; }
.pitch .point > div { max-width: 36em; }
.know { margin: 4px auto 0; padding: 0; list-style-position: inside; max-width: 28em; }
.know li { margin: 10px 0; }
.sample { max-width: 640px; margin: 28px auto 0; }
.point { display: flex; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.check { color: #1f7a3f; font-weight: bold; }
.cards { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.card, .box { background: var(--white); border: 1px solid var(--line); padding: 22px; }
.box { max-width: 560px; }
.price { font-size: 28px; margin: 8px 0; }
.btn {
  display: inline-block;
  background: var(--navy); color: #fff; border: 0; padding: 12px 22px;
  border-radius: 999px; cursor: pointer; font-size: 16px;
  text-decoration: none;
}
.btn.ghost { background: var(--white); color: var(--navy); border: 1px solid var(--line); }
.btn.clay { background: #c47a32; color: #fff; }
.btn:disabled, .btn[disabled] { opacity: 0.4; cursor: not-allowed; }
.row { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
form label { display: block; font-family: "Segoe UI", Tahoma, sans-serif; font-size: 14px; margin: 12px 0 4px; }
input[type=text], input[type=email], input[type=password], select, textarea {
  width: 100%; padding: 10px 12px; border: 1px solid #cfc6b8; background: #fff; font-size: 16px;
}
textarea { min-height: 96px; resize: vertical; }
.choice { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 20px 0; }
.choice a {
  background: var(--white); border: 2px solid var(--line); padding: 22px 16px; text-decoration: none; color: inherit;
}
.choice a.on { border-color: var(--navy); box-shadow: 0 0 0 1px var(--navy); }
.notice { background: #efe6d2; border: 1px solid #d9c9a4; padding: 12px 14px; margin: 12px 0; font-family: "Segoe UI", Tahoma, sans-serif; font-size: 14px; }
.sample-frame { border: 1px solid var(--line); padding: 0.85em; background: var(--white); }
.sample-inner { position: relative; width: 100%; padding-top: 56.25%; background: #111; }
.sample-inner iframe, .sample-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.photo-wrap { margin-top: 36px; }
.munitions { width: 100%; height: auto; }
.banner { background: #3a2a12; color: #fff; font-size: 13px; padding: 8px 22px; text-align: center; font-family: "Segoe UI", Tahoma, sans-serif; }
.duck-peek.wide { width: 280px; max-width: 100%; display: block; margin: 0 auto 6px; }
.classroom { background: var(--white); border: 1px solid var(--line); }
.class-head { background: var(--navy); color: #fff; padding: 14px 18px; display: flex; justify-content: space-between; font-size: 13px; }
.slide { padding: 28px 24px; min-height: 300px; }
.lesson-video-wrap { width:100%; max-width:100%; margin:12px 0 16px; background:#111; }
.lesson-video {
  display:block;
  width:100%;
  height:auto;
  max-height:min(42vh, 380px);
  object-fit:contain;
  background:#111;
}
.deck-img { display:block; width:100%; max-height:min(62vh, 560px); object-fit:contain; background:#fff; border:1px solid var(--line); }
.deck-arrow { display:none; font-size:28px; line-height:1; }
@media (max-width: 800px) {
  .deck-wide { display:none; }
  .deck-arrow { display:inline; }
}
.jim-welcome { display: block; width: 118px; height: auto; margin: 0 auto 14px; }
.q { margin: 16px 0; }
label.opt { display: block; border: 1px solid var(--line); padding: 8px 10px; margin: 6px 0; cursor: pointer; font-family: "Segoe UI", Tahoma, sans-serif; white-space: pre-line; }
label.opt.stacked input { display: block; margin: 0 0 8px; }
label.opt .opt-text { display: block; }
.ok { color: #1f7a3f; }
.bad { color: #8f1b14; }
.cert-wrap { overflow: auto; background: #d8d4ce; padding: 16px; }
.cert {
  width: min(980px, 100%);
  aspect-ratio: 2104 / 1488;
  margin: 0 auto;
  position: relative;
  background: #f7f4ee url("/assets/img/cert-bg.png") center / 100% 100% no-repeat;
  color: #222;
  text-align: left;
  box-shadow: 0 8px 24px rgba(0,0,0,.12);
}
.cert-copy {
  position: absolute;
  left: 18.5%;
  right: 30%;
  top: 11%;
  bottom: 16%;
}
.cert-kicker {
  font-family: "Segoe UI", Tahoma, sans-serif;
  font-size: clamp(11px, 1.35vw, 15px);
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #3a3a3a;
  margin: 0 0 6px;
}
.cert-name, .cert-course {
  font-family: Georgia, "Times New Roman", serif;
  color: #9a2433;
  font-weight: 700;
  line-height: 1.15;
  margin: 0 0 18px;
}
.cert-name { font-size: clamp(26px, 3.4vw, 42px); }
.cert-course { font-size: clamp(22px, 2.8vw, 34px); margin-bottom: 10px; }
.cert-hours {
  font-family: "Segoe UI", Tahoma, sans-serif;
  font-size: clamp(13px, 1.5vw, 18px);
  color: #333;
  margin: 0 0 10px;
}
.cert-note {
  font-family: "Segoe UI", Tahoma, sans-serif;
  font-size: clamp(10px, 1.15vw, 13px);
  color: #6b6b6b;
  font-style: italic;
  line-height: 1.35;
  margin: 0 0 16px;
  max-width: 92%;
}
.cert-meta {
  font-family: "Segoe UI", Tahoma, sans-serif;
  font-size: clamp(12px, 1.35vw, 16px);
  color: #222;
  margin: 3px 0;
}
@page {
  size: letter landscape;
  margin: 0.3in;
}
@media print {
  .noprint, header, footer, .site-foot, .banner { display: none !important; }
  body, .wrap, main { background: #fff !important; margin: 0; padding: 0; }
  .cert-wrap { background: #fff; padding: 0; overflow: visible; }
  .cert {
    width: 10in;
    max-width: none;
    box-shadow: none;
    page-break-inside: avoid;
  }
}
table.admin { width: 100%; border-collapse: collapse; font-family: "Segoe UI", Tahoma, sans-serif; font-size: 14px; }
table.admin th, table.admin td { border-bottom: 1px solid var(--line); text-align: left; padding: 8px 6px; vertical-align: top; }
.mod { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; border-bottom: 1px solid var(--line); padding: 8px 0; font-family: "Segoe UI", Tahoma, sans-serif; font-size: 14px; }
.kind-tag { font-size: 11px; color: var(--muted); min-width: 110px; }
@media (max-width: 800px) {
  .hero, .why, .cards, .choice { grid-template-columns: 1fr; }
  .hero-copy { padding: 28px 20px 12px; }
}
.admin-fold { margin: 20px 0; }
.admin-fold > summary {
  cursor: pointer;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 22px;
  list-style: none;
}
.admin-fold > summary::-webkit-details-marker { display: none; }
.admin-fold > summary::before { content: "▸ "; color: var(--muted); }
.admin-fold[open] > summary::before { content: "▾ "; }
