:root{
  --navy:#1e3a6b; --navy-2:#2c4d86; --navy-ink:#16305a;
  --gold:#d4a017; --gold-2:#eab72e; --gold-ink:#9a7209; --gold-text:#8f6a08;
  --bg:#ffffff; --fg:#14213d; --muted:#5a6478; --sub:#f2f5fb;
  --accent:var(--navy);       /* small accent text (contrast-safe) */
  --border:#e4e8f1; --card:#ffffff; --shadow:0 10px 40px rgba(20,32,61,.10);
  --maxw:1120px;
}
@media (prefers-color-scheme:dark){
  :root{ --bg:#0b1424; --fg:#eaf0fb; --muted:#9fb0cc; --sub:#101d33;
         --border:#213152; --card:#0f1c33; --accent:#8aa8e6; --gold:#e6b52f; --gold-text:#e6b52f;
         --shadow:0 10px 40px rgba(0,0,0,.4); }
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
     background:var(--bg);color:var(--fg);line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}

/* Accessibility: visible keyboard focus ring + skip link + reduced motion */
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.skip{position:absolute;left:.5rem;top:-3.5rem;z-index:100;background:var(--navy);color:#fff;
      padding:.65rem 1rem;border-radius:0 0 10px 10px;font-weight:700;transition:top .15s}
.skip:focus{top:0}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;
                       transition-duration:.01ms!important}
}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 1.25rem}
.btn{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;font-size:.95rem;
     padding:.72rem 1.2rem;border-radius:10px;border:1px solid transparent;cursor:pointer;transition:.15s}
/* gold = the "enroll / take action" color */
.btn-primary{background:var(--gold);color:#14213d}
.btn-primary:hover{background:var(--gold-2);transform:translateY(-1px)}
.btn-navy{background:var(--navy);color:#fff}
.btn-navy:hover{background:var(--navy-2);transform:translateY(-1px)}
.btn-ghost{color:var(--fg);border:1px solid color-mix(in srgb,var(--fg) 16%,transparent);
           background:color-mix(in srgb,var(--bg) 42%,transparent);
           -webkit-backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(14px);
           box-shadow:0 8px 24px rgba(20,32,61,.16),inset 0 1px 0 color-mix(in srgb,#fff 60%,transparent)}
.btn-ghost:hover{border-color:color-mix(in srgb,var(--navy) 45%,transparent);color:var(--accent);
                 background:color-mix(in srgb,var(--bg) 62%,transparent);transform:translateY(-1px);
                 box-shadow:0 12px 28px rgba(20,32,61,.22),inset 0 1px 0 color-mix(in srgb,#fff 65%,transparent)}

/* Brand wordmark */
.logo{display:flex;align-items:center;gap:.6rem;font-weight:800;letter-spacing:-.01em;font-size:1.05rem}
.logo .mark{width:40px;height:40px;border-radius:10px;background:#fff;padding:4px;flex:none;
            display:grid;place-items:center;border:1px solid var(--border);box-shadow:0 1px 3px rgba(20,32,61,.12)}
.logo .mark img{width:100%;height:100%;object-fit:contain;display:block}
.wm .nm{color:var(--navy)} .wm .exam{color:var(--gold)} .wm .prep{color:var(--navy)}
.wm .llc{color:var(--navy);font-size:.68em;font-weight:700;letter-spacing:.03em}
@media (prefers-color-scheme:dark){ .wm .nm,.wm .prep,.wm .llc{color:#dfe8f8} }

/* Header */
header{position:sticky;top:0;z-index:50;backdrop-filter:saturate(180%) blur(12px);
       background:color-mix(in srgb,var(--bg) 82%,transparent);border-bottom:1px solid var(--border)}
.nav{display:flex;align-items:center;justify-content:space-between;min-height:66px}
.nav-links{display:flex;align-items:center;gap:1.5rem}
.nav-links a.link{color:var(--muted);font-weight:500;font-size:.95rem}
.nav-links a.link:hover{color:var(--fg)}
.nav-links a.link.active{color:var(--fg);font-weight:700}
.nav-cta{display:flex;gap:.6rem}

/* Responsive nav: on desktop the wrapper flows its children into the header row
   (display:contents); on mobile it collapses behind an accessible hamburger.
   Without JS the links stay visible, so navigation is never lost. */
.site-menu{display:contents}
.nav-toggle{display:none;align-items:center;justify-content:center;width:44px;height:44px;flex:none;
            border:1px solid var(--border);border-radius:10px;background:transparent;color:var(--fg);cursor:pointer}
.nav-toggle:hover{border-color:var(--navy);color:var(--accent)}
.nav-toggle .bars,.nav-toggle .bars::before,.nav-toggle .bars::after{
  content:"";display:block;width:20px;height:2px;background:currentColor;border-radius:2px;transition:transform .2s,opacity .2s}
.nav-toggle .bars{position:relative}
.nav-toggle .bars::before{position:absolute;left:0;top:-6px}
.nav-toggle .bars::after{position:absolute;left:0;top:6px}
.nav-toggle[aria-expanded="true"] .bars{background:transparent}
.nav-toggle[aria-expanded="true"] .bars::before{top:0;transform:rotate(45deg)}
.nav-toggle[aria-expanded="true"] .bars::after{top:0;transform:rotate(-45deg)}

@media(max-width:860px){
  .nav{flex-wrap:wrap}
  .nav-links{flex-direction:column;align-items:stretch;gap:.1rem;width:100%}
  .nav-links a.link{display:block;padding:.7rem .2rem;font-size:1rem}
  .nav-cta{width:100%;flex-direction:column;gap:.55rem;margin-top:.3rem}
  .nav-cta .btn{width:100%;justify-content:center;padding:.8rem 1.2rem}
  html.js .nav-toggle{display:inline-flex}
  html.js .site-menu{display:none;position:absolute;top:100%;left:0;right:0;
    flex-direction:column;align-items:stretch;gap:.85rem;
    padding:1rem 1.25rem 1.35rem;background:var(--bg);
    border-bottom:1px solid var(--border);box-shadow:var(--shadow)}
  html.js .site-menu.open{display:flex}
}

/* Hero */
.hero{position:relative;overflow:hidden;padding:5.5rem 0 4rem;text-align:center}
.hero.compact{padding:4rem 0 3rem}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;
  background:radial-gradient(58% 58% at 50% 0%,color-mix(in srgb,var(--navy) 16%,transparent),transparent 70%)}
.pill{display:inline-flex;align-items:center;gap:.45rem;font-size:.82rem;font-weight:700;color:var(--accent);
      background:color-mix(in srgb,var(--navy) 10%,transparent);border:1px solid color-mix(in srgb,var(--navy) 22%,transparent);
      padding:.35rem .85rem;border-radius:999px;margin-bottom:1.4rem}
.pill .dot{color:var(--gold)}
.hero h1{font-size:clamp(2.1rem,5vw,3.6rem);line-height:1.08;letter-spacing:-.03em;margin:.2rem auto .55rem;max-width:16ch}
.hero.compact h1{font-size:clamp(1.9rem,4.2vw,3rem);max-width:20ch}
.hero h1 .grad{background:linear-gradient(120deg,var(--navy),var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent}
@media (prefers-color-scheme:dark){ .hero h1 .grad{background:linear-gradient(120deg,#8aa8e6,var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent} }
.tagline{font-weight:800;letter-spacing:.02em;text-transform:uppercase;font-size:.9rem;margin:0 0 1.3rem;color:var(--accent)}
.tagline .d{color:var(--gold)}
.hero p.lead{font-size:clamp(1.05rem,2.2vw,1.25rem);color:var(--muted);max-width:60ch;margin:0 auto 1.8rem}
.hero .btn-row{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap}
.trust{margin-top:2.4rem;color:var(--muted);font-size:.85rem;display:flex;gap:1.5rem;justify-content:center;flex-wrap:wrap}
.trust span{display:inline-flex;align-items:center;gap:.4rem}
.trust b{color:var(--gold)}

/* Breadcrumb */
.crumb{max-width:var(--maxw);margin:0 auto;padding:1rem 1.25rem 0;font-size:.85rem;color:var(--muted)}
.crumb a:hover{color:var(--fg)}
.crumb .sep{margin:0 .5rem;opacity:.6}

/* Sections */
section.block{padding:4.5rem 0;border-top:1px solid var(--border)}
.eyebrow{color:var(--gold-text);font-weight:800;font-size:.8rem;letter-spacing:.09em;text-transform:uppercase;text-align:center}
h2.section-title{font-size:clamp(1.6rem,3.5vw,2.3rem);letter-spacing:-.02em;text-align:center;margin:.4rem auto 1rem;max-width:22ch}
.section-sub{color:var(--muted);text-align:center;max-width:58ch;margin:0 auto 2.6rem}

/* Generic grid */
.grid{display:grid;gap:1.2rem}

/* Course cards */
.courses{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.course{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:1.6rem;
        box-shadow:var(--shadow);display:flex;flex-direction:column;transition:.18s;border-top:4px solid var(--navy)}
.course:hover{transform:translateY(-4px);border-top-color:var(--gold)}
.course.featured{border-top-color:var(--gold)}
.course .tag{align-self:flex-start;font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;
             color:var(--navy);background:color-mix(in srgb,var(--gold) 22%,transparent);padding:.25rem .6rem;border-radius:6px}
@media (prefers-color-scheme:dark){ .course .tag{color:#0b1424} }
.course h3{margin:.9rem 0 .4rem;font-size:1.2rem;letter-spacing:-.01em}
.course p{color:var(--muted);font-size:.95rem;margin:0 0 1.2rem;flex:1}
.course .price{font-size:1.35rem;font-weight:800;margin-bottom:1rem;color:var(--navy)}
@media (prefers-color-scheme:dark){ .course .price{color:#dfe8f8} }
.course .price small{font-size:.8rem;font-weight:500;color:var(--muted)}
.course .ce-meta{display:flex;flex-direction:column;gap:.15rem;font-size:.8rem;color:var(--muted);
                 margin:0 0 1rem;padding-top:.9rem;border-top:1px solid var(--border)}
.course .ce-meta span:first-child{font-weight:800;color:var(--accent);letter-spacing:.01em}
/* Coming-soon course cards */
.course.soon{background:var(--sub);border-top-color:var(--border);box-shadow:none}
.course.soon:hover{transform:none;border-top-color:var(--border)}
.course.soon h3{margin-top:.9rem}
.course.soon .tag{color:var(--muted);background:transparent;border:1px solid var(--border)}
@media (prefers-color-scheme:dark){ .course.soon .tag{color:var(--muted)} }
.course.soon p{margin-bottom:1rem}
.soon-note{margin-top:auto;padding-top:.9rem;border-top:1px solid var(--border);
           font-weight:800;font-size:.85rem;letter-spacing:.02em;color:var(--accent);
           display:inline-flex;align-items:center;gap:.45rem}
.soon-note .dot{color:var(--gold)}

/* Bulleted includes list inside a course card */
.course ul.includes{list-style:none;margin:0 0 1.2rem;padding:.9rem 0 0;border-top:1px solid var(--border);
                    display:flex;flex-direction:column;gap:.4rem;font-size:.9rem;color:var(--muted)}
.course ul.includes li{display:flex;gap:.55rem;align-items:flex-start}
.course ul.includes li::before{content:"✔";color:var(--gold);font-weight:800;flex:none}

/* Path split (home) */
.paths{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.path{position:relative;background:var(--card);border:1px solid var(--border);border-radius:18px;padding:2rem 1.8rem;
      box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden;transition:.18s}
.path::before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:var(--navy)}
.path.ce::before{background:var(--gold)}
.path:hover{transform:translateY(-4px)}
.path .kicker{font-size:.75rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}
.path h3{font-size:1.45rem;letter-spacing:-.01em;margin:.5rem 0 .5rem}
.path p{color:var(--muted);margin:0 0 1.2rem}
.path ul{list-style:none;margin:0 0 1.5rem;padding:0;display:flex;flex-direction:column;gap:.5rem;font-size:.93rem;color:var(--muted)}
.path ul li{display:flex;gap:.55rem;align-items:flex-start}
.path ul li::before{content:"→";color:var(--gold);font-weight:800;flex:none}
.path .path-cta{margin-top:auto;display:flex;gap:.6rem;flex-wrap:wrap}

/* Features */
.features{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.feature{padding:1.4rem;border-radius:14px}
.feature .ico{width:44px;height:44px;border-radius:11px;display:grid;place-items:center;margin-bottom:.9rem;font-size:1.2rem;
              background:color-mix(in srgb,var(--gold) 18%,transparent)}
.feature h3{margin:.2rem 0 .35rem;font-size:1.05rem}
.feature p{color:var(--muted);font-size:.93rem;margin:0}

/* Steps */
.steps{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));counter-reset:s}
.step{position:relative;padding:1.5rem 1.4rem 1.4rem;background:var(--sub);border-radius:14px}
.step::before{counter-increment:s;content:counter(s);position:absolute;top:-16px;left:1.4rem;
              width:36px;height:36px;border-radius:50%;background:var(--navy);color:#fff;font-weight:800;display:grid;place-items:center;font-size:.95rem;border:3px solid var(--gold)}
.step h3{margin:.9rem 0 .3rem;font-size:1.02rem}
.step p{color:var(--muted);font-size:.92rem;margin:0}

/* Prose / detail blocks */
.prose{max-width:760px;margin:0 auto;color:var(--fg)}
.prose h3{font-size:1.25rem;letter-spacing:-.01em;margin:2rem 0 .6rem}
.prose h3:first-child{margin-top:0}
.prose p{color:var(--muted);margin:0 0 1rem}
.prose ul{color:var(--muted);margin:0 0 1.2rem;padding-left:1.2rem}
.prose ul li{margin-bottom:.4rem}
.prose strong{color:var(--fg)}

/* Coverage list (two-column checklist) */
.coverage{max-width:820px;margin:0 auto;columns:2;column-gap:2.4rem;list-style:none;padding:0}
.coverage li{break-inside:avoid;margin-bottom:.7rem;padding-left:1.6rem;position:relative;color:var(--muted);font-size:.95rem}
.coverage li::before{content:"✔";color:var(--gold);font-weight:800;position:absolute;left:0}
@media(max-width:640px){ .coverage{columns:1} }

/* FAQ */
.faq{max-width:760px;margin:0 auto}
details{border:1px solid var(--border);border-radius:12px;padding:.3rem 1.1rem;margin-bottom:.7rem;background:var(--card)}
details summary{cursor:pointer;font-weight:700;padding:.85rem 0;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1rem}
details summary::-webkit-details-marker{display:none}
details summary::after{content:"+";color:var(--gold);font-size:1.4rem;font-weight:400;line-height:1}
details[open] summary::after{content:"–"}
details p{color:var(--muted);margin:0 0 1rem;font-size:.95rem}

/* CTA band */
.cta-band{background:linear-gradient(120deg,var(--navy-ink),var(--navy-2));color:#fff;border-radius:22px;
          padding:3rem 2rem;text-align:center;box-shadow:var(--shadow);position:relative;overflow:hidden}
.cta-band::after{content:"";position:absolute;right:-40px;bottom:-40px;width:180px;height:6px;background:var(--gold);
                 transform:rotate(-20deg);box-shadow:0 24px 0 var(--gold),0 48px 0 var(--gold);opacity:.35}
.cta-band h2{font-size:clamp(1.5rem,3vw,2.1rem);margin:0 0 .6rem;letter-spacing:-.02em}
.cta-band p{opacity:.92;margin:0 auto 1.6rem;max-width:48ch}

/* CE bundle band */
.bundle{background:linear-gradient(120deg,var(--navy-ink),var(--navy-2));color:#fff;border-radius:22px;
        padding:2.6rem 2rem;box-shadow:var(--shadow);position:relative;overflow:hidden;
        display:grid;grid-template-columns:1.6fr 1fr;gap:2rem;align-items:center}
.bundle::after{content:"";position:absolute;right:-40px;bottom:-40px;width:180px;height:6px;background:var(--gold);
               transform:rotate(-20deg);box-shadow:0 24px 0 var(--gold),0 48px 0 var(--gold);opacity:.35}
.bundle .b-main{position:relative;z-index:1}
.bundle .b-tag{display:inline-block;font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;
               color:#14213d;background:var(--gold);padding:.25rem .6rem;border-radius:6px;margin-bottom:.9rem}
.bundle h3{font-size:clamp(1.4rem,2.6vw,1.95rem);margin:0 0 .5rem;letter-spacing:-.02em;line-height:1.15}
.bundle p{opacity:.92;margin:0 0 1.1rem;max-width:48ch}
.bundle ul{list-style:none;margin:0;padding:0;display:grid;gap:.4rem;font-size:.92rem}
.bundle ul li{display:flex;gap:.55rem;align-items:flex-start}
.bundle ul li::before{content:"✔";color:var(--gold);font-weight:800;flex:none}
.bundle .b-buy{position:relative;z-index:1;text-align:center;background:rgba(255,255,255,.07);
               border:1px solid rgba(255,255,255,.18);border-radius:16px;padding:1.7rem 1.4rem}
.bundle .b-save{display:inline-block;font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;
                color:#14213d;background:var(--gold);border-radius:20px;padding:.2rem .7rem;margin-bottom:.9rem}
.bundle .b-price{font-size:2.5rem;font-weight:800;line-height:1;color:#fff}
.bundle .b-was{opacity:.7;text-decoration:line-through;font-size:1.05rem;font-weight:600;margin-left:.45rem}
.bundle .b-sub{opacity:.85;font-size:.82rem;margin:.5rem 0 1.3rem}
.bundle .b-buy .btn{width:100%;justify-content:center}
@media (max-width:760px){ .bundle{grid-template-columns:1fr;gap:1.4rem;padding:2rem 1.4rem} }

/* Footer */
footer{border-top:1px solid var(--border);padding:2.6rem 0;color:var(--muted);font-size:.9rem}
.foot{display:flex;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}
.foot .tagline{font-size:.78rem;margin:.5rem 0 0}
.foot a{color:var(--muted)} .foot a:hover{color:var(--fg)}
.brand-card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:.9rem 1.2rem;display:inline-block;box-shadow:0 1px 3px rgba(20,32,61,.1)}
.brand-card img{width:210px;max-width:60vw;display:block}

/* --- NM landscape hero (home): photo behind an adaptive scrim so hero text
       stays legible in both light and dark themes --- */
.hero.vista::before{
  background:
    linear-gradient(180deg,
      color-mix(in srgb,var(--bg) var(--s1,58%),transparent) 0%,
      color-mix(in srgb,var(--bg) var(--s2,70%),transparent) 48%,
      color-mix(in srgb,var(--bg) var(--s3,90%),transparent) 80%,
      var(--bg) 100%),
    var(--hero-img,url('/nm-vista.jpg')) var(--hero-pos,center 52%)/cover no-repeat;
}
/* per-page hero photos (home uses the defaults above) */
.hero.vista.hero-ce{--hero-img:url('/nm-ce.jpg');--hero-pos:center 60%}
/* the branches photo is busy behind text -> denser scrim keeps the headline crisp */
.hero.vista.hero-prep{--hero-img:url('/nm-prep.jpg');--hero-pos:center 42%;--s1:66%;--s2:80%;--s3:93%}
.hero.vista h1,.hero.vista .tagline,.hero.vista p.lead{
  text-shadow:0 1px 12px color-mix(in srgb,var(--bg) 60%,transparent)}

/* --- Pricing transparency: NM tax disclosure + "no hidden fees" --- */
.price-note{max-width:64ch;margin:1.9rem auto 0;text-align:center;color:var(--muted);font-size:.85rem}

/* "no fees" badge beside the bundle price (inside the navy buy-box).
   Scoped under .bundle so it out-specifies the generic .bundle ul list rules. */
.bundle .b-tax{opacity:.85;font-size:.8rem;margin:.2rem 0 0}
.bundle .fee-badge{list-style:none;margin:1.15rem 0 0;padding:1.05rem 0 0;
           border-top:1px solid rgba(255,255,255,.16);display:grid;gap:.4rem;text-align:left}
.bundle .fee-badge li{display:flex;gap:.5rem;align-items:center;font-size:.82rem;font-weight:600}
.bundle .fee-badge li::before{content:"✔";color:var(--gold);font-weight:800;flex:none}

/* Pricing-promise band */
.promise{max-width:720px;margin:0 auto;text-align:center}
.promise .hook{font-size:clamp(1.15rem,2.6vw,1.6rem);font-weight:800;letter-spacing:-.01em;line-height:1.3;margin:0 0 1.1rem}
.promise .hook .old{color:var(--muted);font-weight:700;text-decoration:line-through;
                    text-decoration-color:var(--gold);text-decoration-thickness:2px}
.promise .hook .no{color:var(--accent)}
.promise p{color:var(--muted);font-size:1.03rem;margin:0 auto;max-width:56ch}
.promise p strong{color:var(--fg)}

/* --- "Proudly New Mexico owned & operated" band (home) + footer badge --- */
.nm-owned{display:grid;grid-template-columns:auto 1fr;gap:2.4rem;align-items:center;
          max-width:900px;margin:0 auto;background:var(--sub);border:1px solid var(--border);
          border-radius:20px;padding:2.3rem 2.6rem;position:relative;overflow:hidden}
.nm-owned::before{content:"";position:absolute;top:0;left:0;bottom:0;width:6px;background:var(--gold)}
.nm-owned .nm-map{width:124px;height:auto;flex:none;display:block}
.nm-owned .nm-map .outline{fill:color-mix(in srgb,var(--navy) 12%,transparent);
                           stroke:var(--gold);stroke-width:3.5;stroke-linejoin:round}
.nm-owned .nm-map .star{fill:var(--gold)}
.nm-owned .nm-copy .eyebrow{text-align:left;margin:0}
.nm-owned .nm-copy h2{font-size:clamp(1.4rem,3vw,2rem);letter-spacing:-.02em;
                      margin:.4rem 0 .55rem;line-height:1.15;text-align:left}
.nm-owned .nm-copy p{color:var(--muted);margin:0;max-width:52ch;font-size:1.03rem}
@media (max-width:640px){
  .nm-owned{grid-template-columns:1fr;text-align:center;gap:1.3rem;padding:2.1rem 1.5rem}
  .nm-owned .nm-map{margin:0 auto}
  .nm-owned .nm-copy .eyebrow,.nm-owned .nm-copy h2{text-align:center}
  .nm-owned .nm-copy p{margin:0 auto}
}

/* Footer "proudly NM" badge line */
.nm-foot{display:inline-flex;align-items:center;gap:.5rem;margin-top:.9rem;
         font-weight:700;color:var(--fg);font-size:.9rem}
.nm-foot .pin{color:var(--gold);flex:none}
