/* KMJ article design system — scoped under .kmj-article so it can never leak
   into Elementor's own styles. Colors taken from the live site palette:
   #002269 navy, #003399 blue, #e8d833 accent. Fonts are inherited from the
   theme (Poppins / DM Sans) rather than forced, so posts match the site. */

.kmj-article{--navy:#002269;--blue:#003399;--accent:#e8d833;--ink:#1b1f2a;
  --muted:#5b6478;--line:#dce6f0;--wash:#f4f7fb;--alert:#b3261e;--alert-wash:#fdf3f2;
  --ok:#1c6b45;--ok-wash:#f1f8f4;
  color:var(--ink);line-height:1.7;font-size:1.05rem;max-width:none}
.kmj-article > *:first-child{margin-top:0}
.kmj-article p{margin:0 0 1.15em}
.kmj-article h2{color:var(--navy);font-size:1.7rem;line-height:1.25;margin:2.4em 0 .7em;
  padding-bottom:.35em;border-bottom:3px solid var(--accent);display:block}
.kmj-article h3{color:var(--blue);font-size:1.25rem;line-height:1.3;margin:1.9em 0 .5em}
.kmj-article h4{color:var(--navy);font-size:1.05rem;margin:1.5em 0 .4em}
.kmj-article a{color:var(--blue);text-decoration:underline;text-underline-offset:2px}
.kmj-article a:hover{color:var(--navy)}
.kmj-article ul,.kmj-article ol{margin:0 0 1.3em;padding-left:1.4em}
.kmj-article li{margin-bottom:.55em}
.kmj-article strong{color:var(--navy)}

/* Lede — the opening summary paragraph */
.kmj-lede{font-size:1.2rem;line-height:1.6;color:var(--navy);font-weight:500;
  border-left:5px solid var(--accent);padding:.1em 0 .1em 1.1em;margin:0 0 1.6em}

/* Key-takeaways box, sits under the lede on every article */
.kmj-takeaway{background:var(--wash);border:1px solid var(--line);border-radius:10px;
  padding:1.3em 1.5em;margin:0 0 2em}
.kmj-takeaway h2,.kmj-takeaway h3{margin:0 0 .6em;border:0;padding:0;font-size:1.05rem;
  letter-spacing:.06em;text-transform:uppercase;color:var(--navy)}
.kmj-takeaway ul{margin:0;padding-left:1.2em}
.kmj-takeaway li{margin-bottom:.4em}

/* Callouts */
.kmj-note,.kmj-warn,.kmj-good{border-radius:10px;padding:1.1em 1.35em;margin:1.8em 0;
  border-left:5px solid}
.kmj-note{background:var(--wash);border-color:var(--blue)}
.kmj-warn{background:var(--alert-wash);border-color:var(--alert)}
.kmj-good{background:var(--ok-wash);border-color:var(--ok)}
.kmj-note p:last-child,.kmj-warn p:last-child,.kmj-good p:last-child{margin-bottom:0}
.kmj-note strong{color:var(--blue)}
.kmj-warn strong{color:var(--alert)}
.kmj-good strong{color:var(--ok)}

/* Figures wrapping the SVG diagrams */
.kmj-fig{margin:2.2em 0;text-align:center}
.kmj-fig svg,.kmj-fig img{max-width:100%;height:auto;display:block;margin:0 auto;
  border-radius:10px}
.kmj-fig figcaption{font-size:.9rem;color:var(--muted);margin-top:.7em;
  text-align:center;line-height:1.5}

/* Tables — scroll horizontally on phones instead of breaking the layout */
.kmj-tablewrap{overflow-x:auto;margin:2em 0;-webkit-overflow-scrolling:touch}
.kmj-article table{border-collapse:collapse;width:100%;min-width:520px;font-size:.97rem}
.kmj-article th{background:var(--navy);color:#fff;text-align:left;padding:.8em .9em;
  font-weight:600;line-height:1.35}
.kmj-article td{padding:.75em .9em;border-bottom:1px solid var(--line);vertical-align:top}
.kmj-article tbody tr:nth-child(even){background:var(--wash)}

/* FAQ block */
.kmj-faq{margin:2.4em 0}
.kmj-faq details{border:1px solid var(--line);border-radius:10px;margin-bottom:.7em;
  background:#fff;overflow:hidden}
.kmj-faq summary{cursor:pointer;padding:1em 1.2em;font-weight:600;color:var(--navy);
  list-style:none;position:relative;padding-right:2.6em;line-height:1.4}
.kmj-faq summary::-webkit-details-marker{display:none}
.kmj-faq summary::after{content:"+";position:absolute;right:1.1em;top:.85em;
  font-size:1.4em;font-weight:400;color:var(--blue);line-height:1}
.kmj-faq details[open] summary::after{content:"\2212"}
.kmj-faq details[open] summary{background:var(--wash)}
.kmj-faq .kmj-faq-a{padding:1em 1.2em 1.1em;border-top:1px solid var(--line)}
.kmj-faq .kmj-faq-a p:last-child{margin-bottom:0}

/* Call to action */
.kmj-cta{background:var(--navy);color:#fff;border-radius:12px;padding:1.8em 1.9em;
  margin:2.6em 0 1em}
.kmj-cta h2,.kmj-cta h3{color:#fff;border:0;padding:0;margin:0 0 .5em;font-size:1.4rem}
.kmj-cta p{color:#dfe6f3;margin-bottom:1.2em}
.kmj-cta p:last-child{margin-bottom:0}
.kmj-cta a.kmj-btn{display:inline-block;background:var(--accent);color:#111 !important;
  font-weight:700;padding:.8em 1.6em;border-radius:8px;text-decoration:none;
  margin:.3em .5em .3em 0}
.kmj-cta a.kmj-btn:hover{background:#f2e457;color:#111 !important}
.kmj-cta a.kmj-btn-ghost{background:transparent;color:#fff !important;
  border:2px solid rgba(255,255,255,.6)}
.kmj-cta a.kmj-btn-ghost:hover{background:rgba(255,255,255,.12);color:#fff !important}

/* Related-reading list at the foot of every article */
.kmj-related{border-top:3px solid var(--line);margin-top:3em;padding-top:1.4em}
.kmj-related h2{border:0;padding:0;font-size:1.15rem;text-transform:uppercase;
  letter-spacing:.06em;margin:0 0 .7em}
.kmj-related ul{list-style:none;padding:0;margin:0}
.kmj-related li{margin-bottom:.5em;padding-left:1.3em;position:relative}
.kmj-related li::before{content:"\2192";position:absolute;left:0;color:var(--accent);
  font-weight:700}

/* Legal / not-advice footer line */
.kmj-disclaimer{font-size:.88rem;color:var(--muted);line-height:1.6;
  border-top:1px solid var(--line);margin-top:2.4em;padding-top:1.1em}

/* Step list used on process explainers */
.kmj-steps{counter-reset:kmjstep;list-style:none;padding:0;margin:2em 0}
.kmj-steps > li{counter-increment:kmjstep;position:relative;padding:0 0 1.4em 3.2em;
  margin:0;border-left:2px solid var(--line);padding-top:.1em}
.kmj-steps > li:last-child{border-left-color:transparent;padding-bottom:0}
.kmj-steps > li::before{content:counter(kmjstep);position:absolute;left:-1.05em;top:0;
  width:2.1em;height:2.1em;border-radius:50%;background:var(--navy);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:700;
  font-size:.9rem;line-height:1}
.kmj-steps > li h3{margin:0 0 .35em;font-size:1.1rem}
.kmj-steps > li p:last-child{margin-bottom:0}

@media (max-width:600px){
  .kmj-article{font-size:1rem}
  .kmj-article h2{font-size:1.4rem}
  .kmj-article h3{font-size:1.15rem}
  .kmj-lede{font-size:1.1rem}
  .kmj-cta{padding:1.4em 1.3em}
  .kmj-cta a.kmj-btn{display:block;text-align:center;margin:.4em 0}
}
