/* Shared brand theme: landing, study app, forms, legal and error pages. */
@font-face {
  font-family: Archivo;
  src: url('/fonts/Archivo-Variable.ttf') format('truetype');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
:root {
  --ink:#18231d; --ink2:#5d6860; --ink3:#667168;
  --paper:#fcfcfa; --warm:#f4f5f1; --warm2:#e9ece6; --line:#dce2da;
  --blue:#31684a; --blue-s:#eaf1e8; --blue-b:#d0dfcf;
  --bg:var(--paper); --surface:#ffffff; --surface2:var(--warm);
  --border:var(--line); --border2:#b9c5b8;
  --text:var(--ink); --text2:var(--ink2); --text3:var(--ink3);
  --accent:var(--blue); --accent-s:var(--blue-s); --accent-b:var(--blue-b);
  --green:#31684a; --green-s:#eaf1e8;
  --red:#991b1b; --red-s:#f9eded; --gold:#805d20;
  --shadow:0 2px 10px rgba(24,35,29,.04);
  --shadow-md:0 8px 30px rgba(24,35,29,.08);
  --sh:var(--shadow); --sh2:var(--shadow-md);
}
body,button,input,select,textarea { font-family:Archivo,system-ui,sans-serif; }
h1,h2,h3,.section-title,.apage-title,.stat-n,.db-stat-num { font-style:normal; letter-spacing:-.035em; }
.section-title em,.hero h1 em { font-style:normal; }
button,a,input,textarea { -webkit-tap-highlight-color:transparent; }
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible {
  outline:3px solid #31684a; outline-offset:3px;
}
.btn-primary,.nav-cta,.fp-start-btn,.fp-next-btn,.qnav-next:not(:disabled),.tile-cta:not(.radio-cta) {
  background:#244f38; border-color:#244f38; color:#fff;
}
.btn-primary:hover,.nav-cta:hover,.fp-start-btn:hover,.fp-next-btn:hover,.demo-next:hover,.price-btn-primary:hover,.tile-cta:not(.radio-cta):hover {
  background:#193d29; border-color:#193d29;
}
.anp.active { background:#eaf1e8; color:#244f38; box-shadow:none; }
.topic-card,.setup-card,.q-card,.sub-card,.db-stat-card,.fp-question-card { box-shadow:none; }
.topic-card:hover { border-color:#8ca78c; box-shadow:none; }
.module-card { border-color:var(--line); }
#module-dialog { background:var(--paper); color:var(--ink); border-color:var(--line); }
.home-disclaimer,.tile-foot,.tile-price span { color:#5f6b60; }
.tile-foot { font-size:11px; }
.home-disclaimer { font-size:11px; }
.hdr-right { display:flex; justify-content:flex-end; }
.app-nav-pill { border-radius:9px; }
.anp { border-radius:6px; }
.anp-icon { display:none; }
.hdr .logo { white-space:nowrap; }
[hidden] { display:none !important; }
#exams,#boat,#what,#free-practice,#boat-faq,#faq { scroll-margin-top:90px; }
.product-heading { padding:44px 5% 36px; border-top:1px solid var(--line); background:#e4eddf; }
.product-heading .section-eyebrow { margin:28px 0 12px; }
.product-heading h2 { font-size:clamp(30px,4vw,44px); font-weight:750; margin:0 0 12px; }
.product-heading p:not(.section-eyebrow) { color:var(--ink2); line-height:1.7; margin-bottom:22px; }
.module-context { font-size:11px; font-weight:700; letter-spacing:1.2px; color:#3e6244; margin-bottom:12px; }
/* Slightly bolder treatment, shared across every page and study view. */
:root {
  --ink:#14251b; --ink2:#4c5e50; --ink3:#5e6f61;
  --line:#ccd7ca; --warm:#eef2eb; --warm2:#e2eadf;
  --blue:#285c3f; --blue-s:#e4eddf; --blue-b:#b9ceb4;
  --border2:#a8bba4;
}
nav,.hdr { border-bottom-color:#ccd7ca; box-shadow:0 2px 8px rgba(24,35,29,.025); }
.logo-pass,.logo-hk,.hdr .logo { font-weight:800; }
.nav-links a { font-weight:600; }
.nav-cta,.tile-cta,.btn-primary,.fp-start-btn,.fp-next-btn { font-weight:700; }
.home-intro { position:relative; }
.home-eyebrow { display:inline-block; padding:8px 11px; background:#e4eddf; border-radius:5px; color:#285c3f; font-weight:700; letter-spacing:1.5px; }
.home-intro h1 { font-weight:750; letter-spacing:-3.5px; }
.home-intro h1 span { color:#386647; }
.home-description { color:#4c5e50; }
.exam-tile { border-width:1.5px; border-radius:14px; box-shadow:0 5px 16px rgba(24,35,29,.04); }
.boat-tile { border-top:5px solid #285c3f; }
.radio-tile { border-top:5px solid #92a78a; background:#edf2e7; }
.exam-tile h2 { font-size:35px; font-weight:750; letter-spacing:-1.2px; }
.tile-category { font-size:11px; font-weight:700; color:#466149; }
.tile-status { font-weight:700; border-color:#c1cdb8; }
.tile-status.available { background:#285c3f; color:#fff; border-color:#285c3f; }
.tile-price { font-weight:750; font-size:25px; }
.tile-cta { padding:14px 19px; font-size:13px; }
.radio-cta { background:#e0e9d8; color:#3d573b; border-color:#b9cbb0; }
.radio-cta:hover { background:#d5e2cc; }
.section-title,.apage-title { font-weight:750; }
.topic-card,.setup-card,.sub-card,.db-stat-card,.fp-question-card { border-color:#ccd7ca; }
.topic-card { border-top:3px solid #648364; background:#fff; }
.topic-card h3 { font-weight:750; font-size:18px; line-height:1.35; }
.topic-part,.setup-part-label,.section-label { font-weight:700; color:#3e6244; }
.topic-pill { background:#eef2eb; border-color:#d4dfce; color:#4c5e50; }
.app-nav-pill { background:#e8eee3; border-color:#cbd8c5; }
.anp.active { color:white; background:#285c3f; font-weight:650; }
.db-stat-num,.stat-n,.res-num { font-weight:700; }
.db-stat-card { border-top:3px solid #9bb18f; }
.ppt.active { color:#244f38; background:#dce8d5; font-weight:700; }
.opt { box-shadow:none; border-color:#d0dbcc; }
.opt .o-letter { font-weight:700; }
.q-text,.fp-qtext { font-weight:500; }
.sub-card { border-top:3px solid #8fa786; }
.sub-val { font-weight:600; }
.module-card { border-width:1.5px; }
.module-card:first-of-type { border-top:4px solid #285c3f; }
.module-card:last-of-type { border-top:4px solid #92a78a; background:#f0f4eb; }
#module-dialog h2 { font-weight:750; }
.toc { border:1px solid #ccd7ca; border-left:4px solid #648364; }
.toc-label,.page-label { color:#3e6244; }
.toc a { font-weight:500; }
.page-label+h1,.box h1 { font-weight:750; }
@media(max-width:700px) {
  .home-intro h1 { letter-spacing:-2px; }
  .exam-tile h2 { font-size:30px; }
  .tile-cta { width:100%; }
  .hdr { height:106px; padding:0 18px 44px; }
  .hdr-center { top:62px; width:calc(100% - 36px); }
  .app-nav-pill { justify-content:center; }
  .anp { flex:1; justify-content:center; padding:7px 10px; }
  .ascreen { padding-top:106px; }
  .ascreen .apage { padding-top:28px; }
  .hdr .exam-choice { padding:8px 10px; font-size:11px; }
  .hdr .back-btn { font-size:11px; }
  .sub-row { gap:12px; }
  .sub-val { overflow-wrap:anywhere; }
  .q-title { font-size:17px; }
}
