/* =====================================================================
   NECA Learn — Brand Stylesheet (2026 NECA Training rebrand)
   Source of truth: dev-handoff "NECA Training Design System".
   Retargeted from the package's WooCommerce selectors to the LIVE site's
   sky-pilot (block theme) + LifterLMS markup. Loaded via mu-plugin
   (neca-brand-2026.php) at enqueue priority 999 so it wins. Reversible:
   delete the mu-plugin to revert.
   ===================================================================== */
/* Roboto is enqueued via neca-brand-2026.php (with preconnect) — no @import here (avoids a duplicate, render-blocking font fetch). */

:root{
  --neca-navy:#020822; --neca-blue:#0E6FB0; --neca-accent:#1FA6F4; --neca-blue-tint:#E7F5FE; /* QA/AA: interactive blue darkened to #0E6FB0 (5.36:1 on white); #1FA6F4 kept as --neca-accent for bars/fills only */
  --neca-bg-light:#F9FAFB; --neca-grey-body:#585D79; --neca-grey-mid:#616161;
  --neca-border:#D9D9D9; --neca-white:#FFFFFF;
  --neca-blue-hover:#0B5E96; --neca-blue-press:#0A5680; --neca-navy-soft:#0A1230; /* press: retired old-nav-blue #094E80 -> #0A5680 (clean dark shade of --neca-blue) */
  --neca-success:#0E8A4C; --neca-error:#D63B3B; --neca-warning:#B45309;
  --neca-overlay:rgba(2,8,34,.62); --neca-overlay-strong:rgba(2,8,34,.72); /* QA: .55->.62 for AA on hero text */
  --neca-font:"Roboto",Arial,"Helvetica Neue",sans-serif;
  --neca-h1:42px; --neca-hero:56px; --neca-h2:32px; --neca-h3:20px;
  --neca-body:16px; --neca-small:14px; --neca-caption:13px;
  --neca-weight-bold:700; --neca-leading-head:1.3; --neca-leading-body:1.5;
  --neca-space-2:8px; --neca-space-3:12px; --neca-space-4:16px; --neca-space-5:24px;
  --neca-space-6:32px; --neca-space-8:64px; --neca-section-pad:64px; --neca-content-max:1200px; /* section band padding 96->64 (tighter body) */
  --neca-radius-sm:4px; --neca-radius-md:8px; --neca-border-w:1px;
  --neca-shadow-card:0 1px 2px rgba(2,8,34,.06),0 4px 12px rgba(2,8,34,.06);
  --neca-shadow-card-hover:0 2px 4px rgba(2,8,34,.08),0 8px 24px rgba(2,8,34,.10);
  --neca-transition:160ms ease; --neca-focus-ring:0 0 0 3px rgba(31,166,244,.35);
}

/* ---- 2. BASE TYPE (scoped to front-end content; leaves wp-admin alone) ---- */
body:not(.wp-admin){ font-family:var(--neca-font); font-size:var(--neca-body); line-height:var(--neca-leading-body); color:var(--neca-grey-body); background:var(--neca-bg-light); -webkit-font-smoothing:antialiased; }
body:not(.wp-admin) h1, body:not(.wp-admin) h2, body:not(.wp-admin) h3, body:not(.wp-admin) h4,
body:not(.wp-admin) h5, body:not(.wp-admin) h6, .wp-block-heading{
  font-family:var(--neca-font); font-weight:var(--neca-weight-bold); line-height:var(--neca-leading-head); color:var(--neca-navy); text-wrap:pretty;
}
body:not(.wp-admin) h1{ font-size:var(--neca-h1); } body:not(.wp-admin) h2{ font-size:var(--neca-h2); } body:not(.wp-admin) h3{ font-size:var(--neca-h3); }
body:not(.wp-admin) p{ color:var(--neca-grey-body); line-height:var(--neca-leading-body); }
body:not(.wp-admin) a{ color:var(--neca-blue); text-decoration:none; transition:color var(--neca-transition); }
body:not(.wp-admin) a:hover{ color:var(--neca-blue-hover); }
.neca-textlink,a.neca-textlink{ display:inline-flex; align-items:center; gap:8px; text-transform:uppercase; letter-spacing:.04em; font-weight:700; font-size:var(--neca-small); color:var(--neca-blue); }
.neca-textlink::after{ content:"→"; transition:transform var(--neca-transition); } .neca-textlink:hover::after{ transform:translateX(3px); }

/* ---- 3. BUTTONS (WP block + Woo + LifterLMS + generic) ---- */
.wp-block-button__link, .wp-element-button,
.woocommerce a.button, .woocommerce button.button, .woocommerce #respond input#submit, .woocommerce .button.alt,
.llms-button-action, a.llms-button-action, .llms-button-primary, .llms-field-button,
button.neca-btn, .neca-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  background:var(--neca-blue); color:var(--neca-blue-tint)!important;
  font-family:var(--neca-font); font-weight:700; font-size:var(--neca-small); line-height:1.1;
  padding:14px 24px; border:0; border-radius:var(--neca-radius-sm); cursor:pointer; text-decoration:none; /* QA: 14px -> >=44px tap target */
  transition:background var(--neca-transition),transform var(--neca-transition),box-shadow var(--neca-transition);
}
.wp-block-button__link:hover, .woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce .button.alt:hover,
.llms-button-action:hover, .llms-button-primary:hover, .neca-btn:hover{ background:var(--neca-blue-hover); color:#fff!important; }
.wp-block-button__link:active, .woocommerce a.button:active, .llms-button-action:active, .neca-btn:active{ background:var(--neca-blue-press); }
/* Beat the 'LifterLMS Labs Simple Branding' inline CSS (loads AFTER brand.css) that recolours these to #f8954f/#2295ff. */
.llms-button-action, a.llms-button-action, button.llms-button-action, .llms-button-primary, a.llms-button-primary, .llms-field-button.llms-button-action{ background:var(--neca-blue)!important; }
.llms-button-action:hover, .llms-button-primary:hover{ background:var(--neca-blue-hover)!important; }
.llms-button-action:active, .llms-button-primary:active{ background:var(--neca-blue-press)!important; }
.wp-block-button.is-style-outline .wp-block-button__link, .llms-button-secondary, .neca-btn--outline{
  background:transparent; color:var(--neca-navy)!important; border:1px solid var(--neca-navy);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover, .llms-button-secondary:hover, .neca-btn--outline:hover{ background:var(--neca-navy); color:#fff!important; }
.neca-section--dark .neca-btn--outline, .neca-section--dark .llms-button-secondary{ color:#fff!important; border-color:rgba(255,255,255,.6); }

/* ---- 4. FORMS (login / register / checkout / llms) ---- */
input[type="text"],input[type="email"],input[type="password"],input[type="tel"],input[type="number"],input[type="search"],
textarea,select,
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,
.llms-form-field input,.llms-form-field textarea,.llms-form-field select,
.select2-container .select2-selection{
  font-family:var(--neca-font); font-size:var(--neca-small); color:var(--neca-navy); background:#fff;
  border:1px solid var(--neca-border); border-radius:var(--neca-radius-sm); padding:11px 14px;
  transition:border-color var(--neca-transition),box-shadow var(--neca-transition);
}
input:focus,textarea:focus,select:focus{ outline:none; border-color:var(--neca-blue); box-shadow:var(--neca-focus-ring); }
label,.woocommerce form .form-row label,.llms-form-field label{ font-weight:700; color:var(--neca-navy); font-size:var(--neca-small); }
::placeholder{ color:var(--neca-grey-mid); }

/* ---- 5. COURSE CARDS — RETARGETED to LifterLMS loop (.llms-loop-item) ---- */
.llms-loop-list .llms-loop-item{
  background:#fff; border:1px solid var(--neca-border); border-radius:var(--neca-radius-md); overflow:hidden;
  box-shadow:var(--neca-shadow-card); transition:box-shadow var(--neca-transition),transform var(--neca-transition);
}
.llms-loop-list .llms-loop-item:hover{ box-shadow:var(--neca-shadow-card-hover); transform:translateY(-3px); }
.llms-loop-item .llms-featured-image img,.llms-loop-item .llms-loop-link img{ aspect-ratio:3/2; object-fit:cover; width:100%; }
.llms-loop-item .llms-loop-title,.llms-loop-item h4.llms-loop-title{ color:var(--neca-navy); font-weight:700; font-size:var(--neca-h3); }
/* card title is an <a> inside the heading — keep it navy (override the global link blue), blue on hover */
.llms-loop-item .llms-loop-title a,.llms-loop-item .llms-loop-title .llms-loop-link{ color:var(--neca-navy); }
.llms-loop-item .llms-loop-title a:hover,.llms-loop-item .llms-loop-title .llms-loop-link:hover{ color:var(--neca-blue); }
.llms-loop-item .llms-meta,.llms-loop-item .llms-meta-info{ color:var(--neca-grey-mid); font-size:var(--neca-caption); }
/* category pills */
.llms-loop-item .llms-meta.llms-categories a,.llms-loop-item .course_cat,.neca-badge{
  display:inline-flex; align-items:center; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em;
  padding:4px 10px; border-radius:var(--neca-radius-sm); background:var(--neca-blue-tint); color:var(--neca-blue); text-decoration:none;
}
.neca-badge--navy{ background:var(--neca-navy); color:#fff; } .neca-badge--neutral{ background:#EFF1F4; color:var(--neca-grey-body); }
.neca-badge--success{ background:#E8F6EE; color:var(--neca-success); }
/* the catalogue "Learn More" CTA -> new brand blue (supersedes the old #466DD8 in neca-learn-more-button.php) */
body .llms-loop-item .more-link .wp-block-read-more{ background:var(--neca-blue); border-radius:var(--neca-radius-sm); }
body .llms-loop-item .more-link .wp-block-read-more:hover,
body .llms-loop-item .more-link .wp-block-read-more:focus{ background:var(--neca-blue-hover); box-shadow:0 6px 16px rgba(31,166,244,.30); }
body .llms-loop-item .more-link .wp-block-read-more:active{ background:var(--neca-blue-press); }

/* ---- 6. SECTIONS & HELPERS ---- */
.neca-container{ max-width:var(--neca-content-max); margin:0 auto; padding-left:var(--neca-space-6); padding-right:var(--neca-space-6); }
.neca-section{ padding-top:var(--neca-section-pad); padding-bottom:var(--neca-section-pad); }
.neca-section--light{ background:var(--neca-bg-light); } .neca-section--white{ background:#fff; }
.neca-section--dark{ background:var(--neca-navy); color:var(--neca-blue-tint); }
body:not(.wp-admin) .neca-section--dark h1,body:not(.wp-admin) .neca-section--dark h2,body:not(.wp-admin) .neca-section--dark h3{ color:#fff; } /* (0,0,1,3) beats the global body:not(.wp-admin) h1 navy rule */
.neca-heading-accent{ display:block; width:56px; height:4px; background:var(--neca-accent); margin-top:12px; border-radius:2px; }
.neca-eyebrow{ color:var(--neca-blue); font-weight:700; font-size:var(--neca-small); text-transform:uppercase; letter-spacing:.06em; }
.neca-stat{ color:var(--neca-blue); font-weight:700; font-size:64px; line-height:1.1; }
.neca-stat + .neca-stat-caption{ color:var(--neca-grey-mid); font-size:var(--neca-small); }
.neca-photo-overlay{ position:relative; } .neca-photo-overlay::before{ content:""; position:absolute; inset:0; background:var(--neca-overlay); } .neca-photo-overlay > *{ position:relative; }

/* ---- 7. HEADER / FOOTER (sky-pilot block template parts) ---- */
header.wp-block-template-part,.site-header{ background:#fff; border-bottom:1px solid var(--neca-border); }
header.wp-block-template-part a,.site-header a{ color:var(--neca-navy); }
header.wp-block-template-part a:hover,.site-header a:hover{ color:var(--neca-blue); }
footer.wp-block-template-part,.site-footer{ background:var(--neca-navy); color:var(--neca-blue-tint); }
footer.wp-block-template-part a,.site-footer a{ color:rgba(231,245,254,.75); }
footer.wp-block-template-part a:hover,.site-footer a:hover{ color:#fff; }

/* ---- 8. LifterLMS + Woo cart / checkout / dashboard polish ---- */
.woocommerce-cart table.cart,.woocommerce-checkout .woocommerce-checkout-review-order,
.llms-checkout-wrapper .llms-checkout{ border:1px solid var(--neca-border); border-radius:var(--neca-radius-md); }
.woocommerce table.shop_table th{ background:var(--neca-bg-light); color:var(--neca-navy); }
.woocommerce-checkout #order_review .order-total .amount,.llms-order-summary .llms-total{ color:var(--neca-navy); font-weight:700; }
.woocommerce .woocommerce-message,.woocommerce-info,.llms-notice.llms-info{ border-top-color:var(--neca-blue); }
.woocommerce .woocommerce-error,.llms-notice.llms-error{ border-top-color:var(--neca-error); }
/* llms progress bar -> brand blue */
.llms-progress .progress-bar-complete,.llms-progress-bar .progress-bar{ background:var(--neca-accent); }

/* ---- 9. RESPONSIVE ---- */
@media (max-width:1024px){ :root{ --neca-hero:44px; --neca-h1:34px; --neca-section-pad:64px; } }
@media (max-width:640px){ :root{ --neca-hero:34px; --neca-h1:28px; --neca-h2:24px; } }
@media (prefers-reduced-motion:reduce){ *{ transition:none!important; } }

/* ---- 10. DESIGN-SYSTEM COMPONENTS (landing/topic + course-detail reuse) ---- */
/* full-bleed band that breaks out of the theme content wrapper; inner .neca-container holds content */
/* full-bleed bands use the block theme's alignfull (added in markup); just need positioning for overlays */
.neca-band{ position:relative; }
.neca-band > .neca-container{ position:relative; z-index:1; }
.neca-hero, .neca-cta-banner{ background:var(--neca-navy); background-size:cover; background-position:center; }
.neca-hero::before{ content:""; position:absolute; inset:0; background:var(--neca-overlay); }
.neca-cta-banner::before{ content:""; position:absolute; inset:0; background:var(--neca-overlay-strong); }
.neca-hero .neca-container, .neca-cta-banner .neca-container, .neca-section--dark .neca-container{ position:relative; z-index:1; }
body:not(.wp-admin) .neca-hero h1, body:not(.wp-admin) .neca-cta-banner h2{ color:#fff; }
.neca-on-dark, .neca-hero .neca-lede, .neca-cta-banner .neca-lede{ color:var(--neca-blue-tint); }
.neca-breadcrumb{ display:flex; align-items:center; gap:8px; color:var(--neca-blue-tint); font-size:13px; }
.neca-breadcrumb a{ color:var(--neca-blue-tint); } .neca-breadcrumb .sep{ opacity:.6; } .neca-breadcrumb .here{ color:#fff; font-weight:700; }
.neca-btn-row{ display:flex; gap:14px; flex-wrap:wrap; margin-top:8px; }

/* Section heading (eyebrow + title + accent + optional subtitle) */
.neca-section-heading{ display:flex; flex-direction:column; gap:10px; }
.neca-section-heading.is-center{ align-items:center; text-align:center; }
.neca-section-heading h2{ margin:0; }
.neca-section-heading .neca-sub{ color:var(--neca-grey-body); font-size:18px; line-height:1.6; max-width:760px; }
.neca-section--dark .neca-section-heading .neca-sub{ color:var(--neca-blue-tint); }

/* Callout (warning / info) */
.neca-callout{ border:1px solid var(--neca-border); border-left:4px solid var(--neca-blue); background:#fff; border-radius:var(--neca-radius-md); padding:16px 20px; display:flex; flex-direction:column; gap:6px; }
.neca-callout .neca-callout-title{ font-weight:700; color:var(--neca-navy); }
.neca-callout--warning{ border-left-color:var(--neca-warning); background:#FFFBF4; }
.neca-callout--warning .neca-callout-title{ color:var(--neca-warning); }
.neca-callout--info{ border-left-color:var(--neca-blue); background:var(--neca-blue-tint); }
.neca-callout--info .neca-callout-title{ color:var(--neca-blue-press); }

/* Numbered list (hierarchy of control) */
.neca-numbered{ list-style:none; margin:0; padding:0; }
.neca-numbered li{ display:flex; gap:18px; padding-bottom:20px; margin-bottom:20px; border-bottom:1px solid var(--neca-border); }
.neca-numbered li:last-child{ border-bottom:0; padding-bottom:0; margin-bottom:0; }
.neca-numbered .num{ width:40px; height:40px; flex:none; border-radius:999px; background:var(--neca-blue-tint); color:var(--neca-blue); font-weight:700; font-size:17px; display:flex; align-items:center; justify-content:center; }
.neca-numbered .t{ font-weight:700; color:var(--neca-navy); font-size:17px; display:block; }
.neca-numbered .d{ color:var(--neca-grey-body); font-size:15px; line-height:1.5; display:block; margin-top:4px; }

/* Role tiles (translucent on navy) */
.neca-roles{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
.neca-role{ display:flex; align-items:center; gap:14px; padding:16px 20px; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.10); border-radius:var(--neca-radius-md); color:#fff; font-size:16px; }
.neca-role .chk{ width:26px; height:26px; flex:none; border-radius:999px; background:var(--neca-blue); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:15px; }

/* two-column helper */
.neca-2col{ display:grid; grid-template-columns:1fr 1.1fr; gap:64px; align-items:start; }
.neca-narrow{ max-width:880px; margin-left:auto; margin-right:auto; }
.neca-flow{ display:flex; flex-direction:column; gap:24px; }

/* WAH course grid -> 3-up (overrides the theme's 2-up flex for this section) */
.neca-course-grid .llms-loop-list{ display:grid!important; grid-template-columns:repeat(3,1fr)!important; gap:24px; padding:0!important; margin:0; list-style:none; }
.neca-course-grid .llms-loop-list .llms-loop-item{ width:auto!important; max-width:none!important; margin:0!important; float:none!important; }

@media (max-width:1024px){ .neca-course-grid .llms-loop-list{ grid-template-columns:repeat(2,1fr)!important; } }
@media (max-width:900px){ .neca-2col{ grid-template-columns:1fr; gap:32px; } .neca-roles{ grid-template-columns:1fr; } }
@media (max-width:640px){ .neca-course-grid .llms-loop-list{ grid-template-columns:1fr!important; } }

/* outline buttons on photo/dark bands (hero + CTA) */
.neca-hero .neca-btn--outline,.neca-cta-banner .neca-btn--outline{ color:#fff!important; border-color:rgba(255,255,255,.6); background:transparent; }
.neca-hero .neca-btn--outline:hover,.neca-cta-banner .neca-btn--outline:hover{ background:#fff; color:var(--neca-navy)!important; }
/* Hero-led pages (WAH 7351, Home 3239): the hero h1 IS the title — hide the template's
   duplicate page title AND its wrapper group, then pull the hero flush under the header (no gap). */
body.page-id-7351 .wp-block-post-title,body.page-id-7351 .entry-title,body.page-id-7351 h1.wp-block-post-title,
body.home .wp-block-post-title,body.page-id-3239 .wp-block-post-title,body.home .entry-title,
body.page-id-285 .wp-block-post-title,body.page-id-285 .entry-title{ display:none; }
/* the FSE <main> wrapper carries margin-top:60px — that was the real gap above the hero. Kill it on hero-led pages. */
body.home .wp-site-blocks > main,body.page-id-3239 .wp-site-blocks > main,body.page-id-7351 .wp-site-blocks > main,
body.post-type-archive-course .wp-site-blocks > main,
body.page-id-2615 .wp-site-blocks > main,body.page-id-3322 .wp-site-blocks > main,
body.page-id-285 .wp-site-blocks > main{ margin-top:0!important; padding-top:0!important; }
/* collapse the now-empty group that wrapped the (hidden) page title */
body.home main > .wp-block-group:has(> .wp-block-post-title),
body.page-id-3239 main > .wp-block-group:has(> .wp-block-post-title),
body.page-id-7351 main > .wp-block-group:has(> .wp-block-post-title),
body.page-id-285 main > .wp-block-group:has(> .wp-block-post-title){ display:none!important; }
body.page-id-7351 .wp-block-post-content,body.home .wp-block-post-content,body.page-id-3239 .wp-block-post-content,
body.page-id-285 .wp-block-post-content{ padding-top:0!important; margin-top:0!important; }
body.page-id-7351 .neca-hero,body.home .neca-hero,body.page-id-3239 .neca-hero{ margin-top:0!important; }
/* full-bleed page sections stack flush — remove the FSE block-gap margin between them (it showed as a white strip between contrasting sections, e.g. About's navy Backed-By -> photo CTA) */
.wp-block-post-content .neca-band{ margin-top:0!important; margin-bottom:0!important; }

/* ---- 11. QA FIXES (a11y + responsive + kill old indigo) ---- */
/* Remap the theme's OLD indigo (#466DD8) primary preset to the new sky-blue everywhere it's referenced */
:root, body{
  --wp--preset--color--primary:#0E6FB0!important;
  --wp--preset--color--primary-darker:#0B5E96!important;
  --wp--preset--color--primary-darkest:#0A5680!important;
  --wp--preset--color--primary-lighter:#0E6FB055!important;
  --wp--preset--color--primary-lightest:#0E6FB011!important;
}
/* keyboard focus ring on buttons */
.wp-block-button__link:focus-visible,.wp-element-button:focus-visible,.neca-btn:focus-visible,.llms-button-action:focus-visible,.llms-loop-item .more-link .wp-block-read-more:focus-visible{ outline:3px solid var(--neca-navy); outline-offset:2px; }
.neca-hero .neca-btn:focus-visible,.neca-cta-banner .neca-btn:focus-visible,.neca-section--dark .neca-btn:focus-visible{ outline-color:#fff; }
/* hero/CTA padding via CSS (markup inline padding removed) so it can flex on mobile */
.neca-hero .neca-container{ padding-top:88px; padding-bottom:96px; }
.neca-cta-banner .neca-container{ padding-top:88px; padding-bottom:88px; }
.neca-breadcrumb{ flex-wrap:wrap; }
@media (max-width:640px){
  :root{ --neca-section-pad:52px; --neca-space-6:18px; }
  .neca-hero .neca-container{ padding-top:56px; padding-bottom:56px; }
  .neca-cta-banner .neca-container{ padding-top:56px; padding-bottom:56px; }
  .neca-numbered .num{ width:32px; height:32px; font-size:15px; }
  .neca-numbered li{ gap:12px; }
}

/* ---- 12. HEADER LOCKUP: NECA Training logo + divider + "Learn" ---- */
header.wp-block-template-part .wp-block-site-logo,.site-header .wp-block-site-logo{ display:inline-flex; align-items:center; }
header.wp-block-template-part .wp-block-site-logo img,.site-header .wp-block-site-logo img{ height:38px; width:auto; }
header.wp-block-template-part .wp-block-site-logo::after,.site-header .wp-block-site-logo::after{
  content:"Learn"; margin-left:14px; padding-left:14px; border-left:1px solid var(--neca-border);
  font-weight:700; font-size:17px; color:var(--neca-navy); line-height:1;
}
/* header nav -> match prototype: Roboto, navy default (weight 400). !important beats WP's link-color support which is itself !important. */
header.wp-block-template-part .wp-block-navigation a,
.site-header .wp-block-navigation a{ font-family:var(--neca-font); font-size:14px; color:var(--neca-navy)!important; font-weight:400; }
/* hover + current page -> bright accent, bold. Selectors carry the 'a' so they out-specify the default rule above (both !important). */
header.wp-block-template-part .wp-block-navigation a:hover,
header.wp-block-template-part .wp-block-navigation a:focus-visible,
header.wp-block-template-part .wp-block-navigation .current-menu-item>a,
header.wp-block-template-part .wp-block-navigation .current_page_item>a,
header.wp-block-template-part .wp-block-navigation a[aria-current="page"],
.site-header .wp-block-navigation .current-menu-item>a{ color:var(--neca-accent)!important; }
header.wp-block-template-part .wp-block-navigation .current-menu-item>a,
header.wp-block-template-part .wp-block-navigation a[aria-current="page"]{ font-weight:700; }
/* HEADER LAYOUT: logo hard-left, then menu + account + cart + button clustered on the RIGHT.
   Spacing = Shaun's 20px word gap; vertical padding 17px to land the header height at ~75px. */
header.wp-block-template-part .wp-block-group:has(> .wp-block-site-logo){ gap:20px!important; padding-top:17px!important; padding-bottom:17px!important; }
header.wp-block-template-part .wp-block-group:has(> .wp-block-site-logo) > .wp-block-site-logo{ margin-right:auto!important; }
/* nav links 20px apart (Shaun's spacing) */
header.wp-block-template-part .wp-block-navigation .wp-block-navigation__container,
header.wp-block-template-part .wp-block-navigation ul.wp-block-navigation__container,
header.wp-block-template-part .wp-block-navigation .wp-block-page-list{ gap:20px!important; }
/* Login / account: drop its stray 8px left margin so the cluster gap is a uniform 28px, size like the nav (14px) */
header.wp-block-template-part .wp-block-woocommerce-customer-account{ margin:0!important; }
header.wp-block-template-part .wp-block-woocommerce-customer-account a{ font-size:14px; }
/* mini-cart glyph is a <button> (not <a>), so §7's nav-link navy rule misses it -> render it navy like the Login icon */
header.wp-block-template-part .wc-block-mini-cart__button,.site-header .wc-block-mini-cart__button{ color:var(--neca-navy); }
/* the nav <nav>/<ul> carry has-montserrat-font-family (!important from the preset) -> force Roboto at container level so any non-anchor nav text inherits the brand font */
header.wp-block-template-part .wp-block-navigation,header.wp-block-template-part .wp-block-navigation .wp-block-navigation__container,.site-header .wp-block-navigation,.site-header .wp-block-navigation .wp-block-navigation__container{ font-family:var(--neca-font)!important; }
/* "Start Here" CTA -> match the prototype Button size="sm": 14px / 8px 16px padding / weight 400 / 4px radius.
   Overrides the header block's 18px font-size + 20px padding + the §3 700 weight. Colour stays AA-safe --neca-blue (Shaun's call). */
header.wp-block-template-part .wp-block-button .wp-block-button__link,
.site-header .wp-block-button .wp-block-button__link{ font-size:14px!important; font-weight:400!important; padding:8px 16px!important; line-height:1; border-radius:4px; }
/* utility order -> match prototype: logo · menu · cart · Login · Start Here (production DOM has account before cart) */
header.wp-block-template-part .wp-block-group:has(> .wp-block-site-logo) > .wp-block-site-logo{ order:0; }
header.wp-block-template-part .wp-block-group:has(> .wp-block-site-logo) > :has(.wp-block-navigation){ order:1; }
header.wp-block-template-part .wp-block-group:has(> .wp-block-site-logo) > [class*="mini-cart"]{ order:2; }
header.wp-block-template-part .wp-block-group:has(> .wp-block-site-logo) > .wp-block-woocommerce-customer-account{ order:3; }
header.wp-block-template-part .wp-block-group:has(> .wp-block-site-logo) > .wp-block-buttons{ order:4; }
@media (max-width:640px){
  header.wp-block-template-part .wp-block-site-logo img,.site-header .wp-block-site-logo img{ height:30px; }
  header.wp-block-template-part .wp-block-site-logo::after,.site-header .wp-block-site-logo::after{ font-size:15px; margin-left:10px; padding-left:10px; }
}

/* ---- 13. HOME components: category cards, stat grid, split panel ---- */
.neca-heading-row{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.neca-cards-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.neca-cat-card{ display:flex; flex-direction:column; gap:16px; padding:28px; background:#fff; border:1px solid var(--neca-border); border-radius:var(--neca-radius-md); box-shadow:var(--neca-shadow-card); text-decoration:none; transition:box-shadow var(--neca-transition),transform var(--neca-transition); }
.neca-cat-card:hover{ box-shadow:var(--neca-shadow-card-hover); transform:translateY(-3px); }
.neca-cat-card .ico{ width:52px; height:52px; flex:none; border-radius:var(--neca-radius-md); background:var(--neca-blue-tint); color:var(--neca-accent); display:flex; align-items:center; justify-content:center; }
.neca-cat-card h3{ margin:0; color:var(--neca-navy); font-size:20px; font-weight:700; }
.neca-cat-card p{ margin:0; color:var(--neca-grey-body); font-size:15px; line-height:1.55; flex:1; }
.neca-cat-card .count{ display:inline-flex; align-items:center; gap:6px; color:var(--neca-blue); font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.neca-cat-card .count svg{ transition:transform var(--neca-transition); } .neca-cat-card:hover .count svg{ transform:translateX(3px); }
.neca-stats-4{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.neca-statcard .cap{ color:var(--neca-grey-mid); font-size:14px; line-height:1.5; display:block; margin-top:6px; }
.neca-split{ display:flex; flex-wrap:wrap; }
.neca-split > .half{ flex:1 1 420px; }
.neca-split .photo{ min-height:420px; background-size:cover; background-position:center; }
.neca-split .panel{ background:var(--neca-navy); color:var(--neca-blue-tint); display:flex; flex-direction:column; justify-content:center; gap:22px; padding:72px 56px; }
.neca-split .panel h2{ color:#fff; }
/* eyebrows on dark/photo backgrounds use the bright accent (AA: #1FA6F4 on navy = 7:1; the darker text-blue is too low there) */
.neca-section--dark .neca-eyebrow,.neca-hero .neca-eyebrow,.neca-cta-banner .neca-eyebrow,.neca-split .panel .neca-eyebrow{ color:var(--neca-accent); }
.neca-checklist{ display:flex; flex-direction:column; gap:14px; }
.neca-checklist .item{ display:flex; align-items:center; gap:12px; color:#fff; font-size:16px; }
.neca-checklist .chk{ width:24px; height:24px; flex:none; border-radius:999px; background:var(--neca-accent); color:#fff; display:flex; align-items:center; justify-content:center; font-size:13px; }
@media (max-width:1024px){ .neca-cards-3{ grid-template-columns:repeat(2,1fr); } .neca-stats-4{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .neca-cards-3{ grid-template-columns:1fr; } .neca-stats-4{ grid-template-columns:1fr; } .neca-split .panel{ padding:48px 28px; } }

/* ---- 14. COURSE CATALOGUE (/courses archive) ---- */
/* hide LifterLMS's default "Courses" page-header title — replaced by the navy page head below */
.post-type-archive-course .page-header,
.post-type-archive-course h1.page-title,
.post-type-archive-course .wp-block-query-title,
.post-type-archive-course .llms-archive-title{ display:none!important; }
/* navy page head (breadcrumb + Browse Courses + intro) */
.neca-cat-head{ background:var(--neca-navy); color:#fff; }
.neca-cat-head .neca-container{ display:flex; flex-direction:column; gap:14px; padding-top:64px; padding-bottom:64px; }
.neca-cat-head h1{ margin:0; color:#fff!important; }
.neca-cat-head .neca-cat-lede{ margin:0; color:var(--neca-blue-tint); font-size:16px; line-height:1.55; max-width:620px; }
.neca-cat-head .neca-breadcrumb{ display:flex; align-items:center; gap:8px; font-size:13px; color:var(--neca-blue-tint); }
.neca-cat-head .neca-breadcrumb a{ color:var(--neca-blue-tint); text-decoration:none; }
.neca-cat-head .neca-breadcrumb a:hover{ color:#fff; }
.neca-cat-head .neca-breadcrumb .here{ color:#fff; font-weight:700; }
/* filter bar: chips (left) + search (right) */
.neca-cat-bar{ display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-top:48px; margin-bottom:0; }
.neca-chips{ display:flex; gap:10px; flex-wrap:wrap; }
.neca-chip{ display:inline-flex; align-items:center; gap:8px; padding:9px 16px; border-radius:4px; cursor:pointer; font-family:var(--neca-font); font-size:14px; font-weight:400; line-height:1; background:#fff; color:var(--neca-navy); border:1px solid var(--neca-border); transition:all 140ms ease; }
.neca-chip:hover{ border-color:var(--neca-accent); color:var(--neca-blue); }
.neca-chip.is-active{ background:var(--neca-accent); color:#fff; border-color:var(--neca-accent); font-weight:700; }
.neca-chip .n{ font-size:12px; font-weight:700; color:var(--neca-grey-body); }
.neca-chip.is-active .n{ color:rgba(255,255,255,.85); }
.neca-cat-search{ position:relative; display:flex; align-items:center; min-width:260px; color:var(--neca-grey-body); }
.neca-cat-search svg{ position:absolute; left:12px; pointer-events:none; }
.neca-cat-search input{ width:100%; padding:11px 14px 11px 38px; border-radius:4px; border:1px solid var(--neca-border); font-family:var(--neca-font); font-size:14px; color:var(--neca-navy); background:#fff; outline:none; }
.neca-cat-search input:focus{ border-color:var(--neca-accent); box-shadow:0 0 0 3px rgba(31,166,244,.18); }
/* result count + empty state */
.neca-cat-count{ margin-top:28px; margin-bottom:24px; color:var(--neca-grey-body); font-size:14px; }
.neca-cat-count strong{ color:var(--neca-navy); }
.neca-cat-empty{ text-align:center; padding:64px 0; color:var(--neca-grey-body); font-size:16px; }
@media (max-width:640px){
  .neca-cat-head .neca-container{ padding-top:44px; padding-bottom:44px; }
  .neca-cat-bar{ flex-direction:column; align-items:stretch; }
  .neca-cat-search{ min-width:0; }
}

/* ---- 15. BRANDED COURSE CARD (catalogue / Home Featured / WAH) ---- */
.neca-card .llms-loop-item-content{ padding:0!important; background:#fff; border:1px solid var(--neca-border); border-radius:var(--neca-radius-md); box-shadow:var(--neca-shadow-card); overflow:hidden; height:100%; display:flex; flex-direction:column; transition:box-shadow var(--neca-transition),transform var(--neca-transition); }
.neca-card:hover .llms-loop-item-content{ box-shadow:var(--neca-shadow-card-hover); transform:translateY(-3px); }
.neca-card-link{ display:flex; flex-direction:column; flex:1; width:100%; text-decoration:none; color:inherit; }
.neca-card-media{ position:relative; aspect-ratio:3/2; overflow:hidden; background:var(--neca-blue-tint); }
.neca-card-img{ width:100%; height:100%; object-fit:cover; display:block; }
.neca-card-img--ph{ display:block; width:100%; height:100%; background:linear-gradient(135deg,var(--neca-blue-tint),#cfe8fb); }
.neca-card-badges{ position:absolute; top:12px; left:12px; display:flex; gap:6px; flex-wrap:wrap; max-width:calc(100% - 24px); }
.neca-badge{ display:inline-flex; align-items:center; padding:4px 10px; border-radius:4px; font-size:12px; font-weight:700; line-height:1.45; color:#fff; }
.neca-badge--safety{ background:var(--neca-blue); }
.neca-badge--technical{ background:var(--neca-navy); }
.neca-badge--business{ background:var(--neca-grey-body); }
.neca-badge--default{ background:var(--neca-grey-body); }
/* Hero badge carries the bare .neca-badge class (no --variant) -> restore the prototype's blue tint badge so it isn't white-on-pale-blue (invisible). */
.neca-hero .neca-badge{ background:var(--neca-blue-tint); color:var(--neca-blue); }
.neca-card-body{ display:flex; flex-direction:column; gap:12px; padding:20px; flex:1; }
.neca-card .llms-loop-title{ margin:0; padding:0; font-size:18px; font-weight:700; line-height:1.3; color:var(--neca-navy); text-align:left; }
.neca-card .llms-loop-title a{ color:var(--neca-navy); text-decoration:none; }
.neca-card-excerpt{ margin:0; font-size:14px; line-height:1.55; color:var(--neca-grey-body); }
.neca-card-meta.llms-loop-item-footer{ display:flex; align-items:center; gap:18px; flex-wrap:wrap; margin:auto 0 0; padding:0; border:0; }
.neca-card-meta .llms-meta{ margin:0; padding:0; font-size:13px; color:var(--neca-grey-mid); }
.neca-card-meta .llms-meta p{ margin:0; }
.neca-card-cta{ margin:4px 0 0; }
/* Only the inner .llms-loop-item-content is the card; the outer <li> must NOT also paint card chrome
   (§5 styles every .llms-loop-item). Neutralise its border/radius/shadow + the theme's residual
   bottom padding + the double hover-lift, so branded cards show a single border + single lift. */
.neca-card.llms-loop-item{ background:none!important; border:0!important; border-radius:0!important; box-shadow:none!important; padding-bottom:0!important; overflow:visible!important; }
.neca-card.llms-loop-item:hover{ transform:none!important; box-shadow:none!important; }

/* ---- 16. COURSE DETAIL (single course) ---- */
.neca-cdx-hero{ background:var(--neca-navy); color:#fff; }
.neca-cdx-hero .neca-container{ display:flex; flex-direction:column; gap:20px; padding-top:48px; padding-bottom:56px; }
.neca-cdx-hero .neca-breadcrumb{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:13px; color:var(--neca-blue-tint); }
.neca-cdx-hero .neca-breadcrumb a{ color:var(--neca-blue-tint); text-decoration:none; }
.neca-cdx-hero .neca-breadcrumb a:hover{ color:#fff; }
.neca-cdx-hero .neca-breadcrumb .here{ color:#fff; font-weight:700; }
.neca-cdx-badges{ display:flex; gap:8px; flex-wrap:wrap; }
.neca-cdx-hero h1{ margin:0; color:#fff!important; font-size:clamp(28px,4vw,40px); font-weight:700; line-height:1.25; max-width:760px; }
.neca-cdx-lede{ margin:0; color:var(--neca-blue-tint); font-size:17px; line-height:1.55; max-width:680px; }
.neca-cdx-pills{ display:flex; gap:36px; flex-wrap:wrap; margin-top:6px; }
.neca-cdx-pill{ display:flex; align-items:center; gap:10px; }
.neca-cdx-pill .ic{ width:38px; height:38px; border-radius:8px; background:rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; flex:none; color:var(--neca-accent); }
.neca-cdx-pill .tx{ display:flex; flex-direction:column; gap:3px; }
.neca-cdx-pill .l{ color:var(--neca-blue-tint); font-size:12px; line-height:1.2; }
.neca-cdx-pill .v{ color:#fff; font-size:15px; font-weight:700; line-height:1.2; }
.neca-cdx-body{ max-width:1200px; margin:0 auto; padding:64px 32px 96px; }
.neca-cdx-grid{ display:grid; grid-template-columns:1fr 360px; gap:48px; align-items:start; }
.neca-cdx-main{ display:flex; flex-direction:column; gap:44px; min-width:0; }
.neca-cdx-main > section{ display:flex; flex-direction:column; gap:20px; }
.neca-cdx-learn{ display:flex; flex-direction:column; gap:16px; }
.neca-cdx-learn .item{ display:flex; gap:14px; align-items:flex-start; }
.neca-cdx-learn .chk{ width:26px; height:26px; border-radius:999px; background:var(--neca-accent); color:#fff; display:flex; align-items:center; justify-content:center; flex:none; margin-top:1px; }
.neca-cdx-learn .chk svg{ width:15px; height:15px; }
.neca-cdx-learn .item > span:last-child{ color:var(--neca-grey-body); font-size:16px; line-height:1.5; }
.neca-cdx-card{ position:sticky; top:96px; align-self:start; background:#fff; border:1px solid var(--neca-border); border-radius:var(--neca-radius-md); box-shadow:var(--neca-shadow-card); overflow:hidden; }
.neca-cdx-card .media{ aspect-ratio:16/9; background:var(--neca-blue-tint); }
.neca-cdx-card .media .img{ width:100%; height:100%; object-fit:cover; display:block; }
.neca-cdx-card .body{ padding:24px; display:flex; flex-direction:column; gap:18px; }
.neca-cdx-card .price{ font-size:30px; font-weight:700; color:var(--neca-navy); line-height:1.1; }
.neca-cdx-card .price small,.neca-cdx-card .price .note{ font-size:14px; font-weight:400; color:var(--neca-grey-mid); }
.neca-cdx-card .neca-btn{ width:100%; }
.neca-cdx-card .neca-cdx-enrolled{ display:flex; align-items:center; gap:8px; margin:0; color:#0e8a4c; font-size:14px; font-weight:700; }
.neca-cdx-card .includes{ border-top:1px solid var(--neca-border); padding-top:16px; display:flex; flex-direction:column; gap:12px; }
.neca-cdx-card .includes .h{ font-size:13px; font-weight:700; color:var(--neca-navy); text-transform:uppercase; letter-spacing:.04em; }
.neca-cdx-card .includes .item{ display:flex; align-items:center; gap:10px; font-size:14px; color:var(--neca-grey-body); }
.neca-cdx-card .includes .ic{ color:var(--neca-accent); display:flex; flex:none; }
.neca-cdx-card .price .note{ margin-left:6px; }
/* curriculum accordion */
.neca-cdx-accordion{ border:1px solid var(--neca-border); border-radius:var(--neca-radius-md); background:#fff; overflow:hidden; }
.neca-acc-item + .neca-acc-item{ border-top:1px solid var(--neca-border); }
.neca-acc-head{ width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 22px; background:none; border:0; cursor:pointer; font-family:var(--neca-font); text-align:left; }
.neca-acc-head .t{ font-size:16px; font-weight:700; color:var(--neca-navy); }
.neca-acc-head .chev{ color:var(--neca-grey-mid); display:flex; transition:transform .2s ease; }
.neca-acc-head .chev svg{ width:18px; height:18px; }
.neca-acc-item.is-open .neca-acc-head .chev{ transform:rotate(90deg); }
.neca-acc-head:hover .t{ color:var(--neca-blue); }
.neca-acc-panel{ display:none; padding:0 22px 20px; }
.neca-acc-item.is-open .neca-acc-panel{ display:block; }
.neca-acc-panel p{ margin:0; color:var(--neca-grey-body); font-size:15px; line-height:1.6; }
/* CPD callout (matches prototype: info badge + navy title, tight) */
.neca-cdx-callout{ background:var(--neca-blue-tint); border:1px solid #cfe7fb; border-radius:var(--neca-radius-md); padding:20px 24px; }
.neca-cdx-callout .head{ display:flex; align-items:center; gap:10px; margin-bottom:4px; }
.neca-cdx-callout .ic{ color:var(--neca-blue); display:flex; flex:none; }
.neca-cdx-callout .t{ font-size:16px; font-weight:700; color:var(--neca-navy); }
.neca-cdx-callout p{ margin:0 0 0 32px; color:var(--neca-grey-body); font-size:15px; line-height:1.6; }
/* enrol-card CTAs wrapped in a block-level div (so wpautop can't wrap the bare <a> in a phantom <p>); flex keeps the 18px button rhythm */
.neca-cdx-card .neca-cdx-actions{ display:flex; flex-direction:column; gap:18px; }
/* warning variant (amber) — keeps the cdx icon-badge language but preserves a safety-warning emphasis (e.g. WAH "PPE is the last line of defence") */
.neca-cdx-callout--warning{ background:#FFF8EF; border-color:#F1DFC0; }
.neca-cdx-callout--warning .ic{ color:var(--neca-warning); }
.neca-cdx-callout--warning .t{ color:var(--neca-warning); }
.neca-cdx-related{ display:grid!important; grid-template-columns:repeat(3,1fr); gap:20px; list-style:none; margin:0; padding:0; }
.neca-cdx-related > .neca-card{ width:auto!important; max-width:none!important; min-width:0; margin:0!important; float:none!important; list-style:none; }
@media (max-width:1024px){
  .neca-cdx-grid{ grid-template-columns:1fr; gap:32px; }
  .neca-cdx-card{ position:static; max-width:420px; }
  .neca-cdx-related{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:640px){
  .neca-cdx-body{ padding:40px 20px 64px; }
  .neca-cdx-pills{ gap:20px; }
  .neca-cdx-related{ grid-template-columns:1fr; }
}

/* ---- 17. STUDENT DASHBOARD (LifterLMS my-account) ---- */
.neca-btn--block{ width:100%; justify-content:center; }
/* welcome banner (navy, full-bleed) */
.neca-dash-banner{ background:var(--neca-navy); color:#fff; }
.neca-dash-banner .neca-container{ padding-top:48px; padding-bottom:52px; display:flex; flex-direction:column; gap:22px; }
.neca-dash-eyebrow{ margin:0; color:var(--neca-accent); font-size:14px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }
.neca-dash-banner h1{ margin:0; color:#fff!important; font-weight:700; }
.neca-dash-kpis{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.neca-dash-kpi{ display:flex; align-items:center; gap:16px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); border-radius:var(--neca-radius-md); padding:20px 22px; }
.neca-dash-kpi .ic{ width:46px; height:46px; flex:none; border-radius:var(--neca-radius-md); background:var(--neca-accent); color:#fff; display:flex; align-items:center; justify-content:center; }
.neca-dash-kpi .tx{ display:flex; flex-direction:column; gap:2px; }
.neca-dash-kpi .v{ color:#fff; font-size:26px; font-weight:700; line-height:1.1; }
.neca-dash-kpi .l{ color:var(--neca-blue-tint); font-size:14px; }
/* full-width single column (theme defaults the dashboard to a nav sidebar) */
.llms-student-dashboard{ display:block!important; }
.llms-student-dashboard .llms-sd-main{ width:auto!important; float:none!important; }
/* hide the page post-title + the index endpoint title (the navy banner is the heading) */
body.page-id-2615 .wp-block-post-title,body.page-id-2615 .entry-title,body.page-id-3322 .wp-block-post-title,body.page-id-3322 .entry-title{ display:none!important; }
.llms-student-dashboard .llms-sd-main:has(> .llms-sd-tab.dashboard) .llms-sd-title{ display:none!important; }
/* brand the dashboard nav */
/* dashboard nav as branded chip buttons (design language) */
.llms-student-dashboard .llms-sd-nav{ margin:0 0 28px; max-height:none!important; overflow:visible!important; }
.llms-student-dashboard .llms-sd-items{ display:flex!important; flex-flow:row nowrap!important; gap:8px; list-style:none; margin:0; padding:0 0 6px; max-height:none!important; overflow-x:auto!important; overflow-y:hidden!important; width:auto!important; -webkit-overflow-scrolling:touch; scrollbar-width:thin; }
.llms-student-dashboard .llms-sd-items::-webkit-scrollbar{ height:6px; }
.llms-student-dashboard .llms-sd-items::-webkit-scrollbar-thumb{ background:var(--neca-border); border-radius:999px; }
.llms-student-dashboard .llms-sd-item{ margin:0!important; width:auto!important; max-width:none!important; flex:0 0 auto!important; border:0!important; display:block!important; }
.llms-student-dashboard .llms-sd-item .llms-sep{ display:none!important; }
.llms-student-dashboard .llms-sd-link{ display:inline-block!important; white-space:nowrap; padding:8px 16px!important; border:1px solid var(--neca-border); border-radius:var(--neca-radius-sm,4px); background:#fff; color:var(--neca-navy); font-family:var(--neca-font); font-size:14px; font-weight:500; line-height:1.1; text-decoration:none; transition:background .15s ease,border-color .15s ease,color .15s ease; }
.llms-student-dashboard .llms-sd-link:hover{ border-color:var(--neca-accent); color:var(--neca-blue); }
.llms-student-dashboard .llms-sd-item.current .llms-sd-link{ background:var(--neca-accent); color:#fff; border-color:var(--neca-accent); font-weight:700; }
/* My Courses */
.neca-dash-courses{ display:flex; flex-direction:column; gap:24px; }
.neca-dash-head{ display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.neca-dash-head h2{ margin:0; color:var(--neca-navy); font-weight:700; }
.neca-dash-tabs{ display:flex; gap:4px; border-bottom:1px solid var(--neca-border); flex-wrap:wrap; }
.neca-dash-tab{ padding:12px 16px; margin-bottom:-1px; background:none; border:0; border-bottom:3px solid transparent; cursor:pointer; font-family:var(--neca-font); font-size:14px; color:var(--neca-grey-body); }
.neca-dash-tab.is-active{ color:var(--neca-navy); font-weight:700; border-bottom-color:var(--neca-accent); }
.neca-dash-list{ display:flex; flex-direction:column; gap:16px; }
.neca-dash-row{ display:grid; grid-template-columns:160px 1fr 200px; gap:24px; align-items:center; background:#fff; border:1px solid var(--neca-border); border-radius:var(--neca-radius-md); padding:16px; box-shadow:var(--neca-shadow-card); }
.neca-dash-row .media{ display:block; aspect-ratio:16/10; border-radius:var(--neca-radius-sm,4px); overflow:hidden; background:var(--neca-blue-tint); }
.neca-dash-row .media img{ width:100%; height:100%; object-fit:cover; display:block; }
.neca-dash-row .media .ph{ display:block; width:100%; height:100%; background:linear-gradient(135deg,var(--neca-blue-tint),#cfe8fb); }
.neca-dash-row .body{ display:flex; flex-direction:column; gap:10px; min-width:0; }
.neca-dash-row .badges{ display:flex; gap:6px; flex-wrap:wrap; }
.neca-dash-row h3{ margin:0; font-size:17px; font-weight:700; line-height:1.3; }
.neca-dash-row h3 a{ color:var(--neca-navy); text-decoration:none; }
.neca-badge--done{ background:#0e8a4c; }
.neca-dash-prog .t{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:6px; }
.neca-dash-prog .lbl{ font-size:13px; font-weight:700; color:var(--neca-navy); }
.neca-dash-prog .pct{ font-size:13px; font-weight:700; color:var(--neca-blue); }
.neca-dash-prog .bar{ height:8px; border-radius:999px; background:var(--neca-border); overflow:hidden; }
.neca-dash-prog .bar > span{ display:block; height:100%; background:var(--neca-accent); border-radius:999px; }
.neca-dash-row .action{ display:flex; flex-direction:column; gap:8px; }
.neca-dash-row .action .neca-btn{ width:100%; }
.neca-dash-row .action .neca-btn svg{ width:16px; height:16px; margin-right:6px; }
.neca-dash-review{ text-align:center; color:var(--neca-blue); font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; text-decoration:none; }
.neca-dash-review:hover{ text-decoration:underline; }
.neca-dash-empty{ text-align:center; padding:48px 0; color:var(--neca-grey-body); font-size:16px; }
.neca-dash-empty a{ color:var(--neca-blue); font-weight:700; text-decoration:none; }
@media (max-width:1024px){ .neca-dash-kpis{ grid-template-columns:1fr; } }
@media (max-width:640px){
  .neca-dash-banner .neca-container{ padding-top:36px; padding-bottom:36px; }
  .neca-dash-row{ grid-template-columns:1fr; }
  .neca-dash-row .media{ max-width:none; aspect-ratio:16/9; }
}

/* ---- 18. CHECKOUT (WooCommerce Blocks, page 3321) ---- */
/* form steps as branded cards */
.wc-block-checkout__main .wc-block-components-checkout-step{ background:#fff; border:1px solid var(--neca-border); border-radius:var(--neca-radius-md); box-shadow:var(--neca-shadow-card); padding:24px 28px!important; margin:0 0 20px!important; }
.wc-block-components-checkout-step__title,.wc-block-components-title{ font-family:var(--neca-font)!important; color:var(--neca-navy)!important; font-weight:700!important; }
/* inputs */
.wc-block-checkout .wc-block-components-text-input input,
.wc-block-checkout .wc-block-components-text-input textarea,
.wc-block-checkout select,
.wc-block-components-address-form input{ border:1px solid var(--neca-border)!important; border-radius:4px!important; font-family:var(--neca-font)!important; }
.wc-block-checkout .wc-block-components-text-input input:focus,
.wc-block-checkout .wc-block-components-text-input.is-active input{ border-color:var(--neca-accent)!important; box-shadow:0 0 0 2px rgba(31,166,244,.28)!important; }
.wc-block-components-text-input.is-active label,.wc-block-components-checkbox__label{ color:var(--neca-blue); }
/* order summary sidebar -> branded card with navy header */
.wc-block-checkout__sidebar .wc-block-components-checkout-order-summary{ background:#fff; border:1px solid var(--neca-border); border-radius:var(--neca-radius-md); box-shadow:var(--neca-shadow-card); overflow:hidden; padding:0; }
.wc-block-checkout__sidebar .wc-block-components-checkout-order-summary__title{ background:var(--neca-navy); margin:0; padding:16px 22px; }
.wc-block-checkout__sidebar .wc-block-components-checkout-order-summary__title .wc-block-components-title,
.wc-block-checkout__sidebar .wc-block-components-checkout-order-summary__title *{ color:#fff!important; }
.wc-block-checkout__sidebar .wc-block-components-checkout-order-summary__content{ padding:20px 22px; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value{ color:var(--neca-navy)!important; font-weight:700!important; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label{ color:var(--neca-navy)!important; font-weight:700!important; }
/* Place Order + express area button */
.wc-block-components-checkout-place-order-button,
.wc-block-checkout__actions_row .wc-block-components-button.contained{ background:var(--neca-accent)!important; border-radius:4px!important; font-family:var(--neca-font)!important; font-weight:700!important; }
.wc-block-components-checkout-place-order-button:hover,
.wc-block-checkout__actions_row .wc-block-components-button.contained:hover{ background:var(--neca-blue-hover,#0B5E96)!important; }
.wc-block-checkout__actions a,.wc-block-components-checkout-return-to-cart-button{ color:var(--neca-blue)!important; }
/* coupon + links accent */
.wc-block-checkout a,.wc-block-components-totals-coupon a{ color:var(--neca-blue); }

/* ---- 19. LOGIN (LifterLMS account, logged-out) — full-viewport split, prototype match ---- */
/* hide the footer on the logged-out login (header stays) — Shaun's choice */
body.page-id-2615:not(.logged-in) footer.wp-block-template-part,
body.page-id-3322:not(.logged-in) footer.wp-block-template-part{ display:none!important; }
/* zero every wrapper around the split (post-content, Spectra uagb-container, .lifterlms, .llms-student-dashboard, etc.) so it sits flush under the header + fills the viewport — no gap above / white below */
body.page-id-2615:not(.logged-in) .wp-site-blocks :has(.neca-login-split),
body.page-id-3322:not(.logged-in) .wp-site-blocks :has(.neca-login-split){ padding:0!important; margin-top:0!important; margin-bottom:0!important; }
/* full-bleed split filling the viewport below the 75px header */
.neca-login-split{ display:flex; width:100vw; margin-left:calc(50% - 50vw); min-height:calc(100vh - 75px); background:#fff; }
.neca-login-brand{ flex:1 1 50%; background:var(--neca-navy); color:#fff; }
/* left-edge of the panel content aligns with the header's content edge (wide-size margin) so the panel logo sits directly under the header logo */
.neca-login-brand .inner{ display:flex; flex-direction:column; justify-content:space-between; gap:40px; padding:64px 56px 64px calc((100vw - var(--wp--style--global--wide-size)) / 2); height:100%; box-sizing:border-box; }
.neca-login-brand .lockup{ display:inline-flex; align-items:center; }
.neca-login-brand .lockup img{ height:40px; width:auto; filter:brightness(0) invert(1); }
.neca-login-brand .lockup .learn{ margin-left:16px; padding-left:16px; border-left:1px solid rgba(255,255,255,.28); font-size:22px; font-weight:700; color:#fff; line-height:1; }
.neca-login-brand .mid{ display:flex; flex-direction:column; gap:22px; }
.neca-login-brand h2{ color:#fff!important; font-size:38px; font-weight:700; line-height:1.15; margin:0; max-width:360px; }
.neca-login-brand .mid p{ color:var(--neca-blue-tint); font-size:16px; line-height:1.55; margin:0; max-width:430px; }
.neca-login-brand .benefits{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:14px; }
.neca-login-brand .benefits li{ display:flex; align-items:center; gap:12px; color:#fff; font-size:15px; }
.neca-login-brand .benefits .chk{ width:22px; height:22px; flex:none; border-radius:999px; background:var(--neca-accent); display:flex; align-items:center; justify-content:center; }
.neca-login-brand .rto{ color:rgba(231,245,254,.6); font-size:13px; margin:0; }
/* right (form) panel */
.neca-login-split .llms-person-login-form-wrapper{ flex:1 1 50%; background:#fff; padding:64px 56px; display:flex; flex-direction:column; justify-content:center; margin:0; }
.neca-login-split .llms-login{ max-width:400px; width:100%; margin:0; }
.neca-login-split .llms-form-heading{ display:none; }          /* default "Login" h2 hidden — replaced by .neca-login-head */
.neca-login-split .llms-visibility-toggle{ display:none!important; }  /* hide Show-Password toggle (prototype has none) */
.neca-login-head{ order:0; width:100%; margin:0 0 28px; }
.neca-login-head h2{ color:var(--neca-navy); font-size:30px; font-weight:700; line-height:1.2; margin:0 0 6px; }
.neca-login-head p{ color:var(--neca-grey-body); font-size:16px; margin:0; }
/* fields: full-width stacked; Remember + Forgot on one row; Sign In button last + full-width */
.neca-login-split .llms-form-fields{ display:flex; flex-wrap:wrap; align-items:center; row-gap:18px; }
.neca-login-split .llms-form-fields .clear{ display:none; }
.neca-login-split .llms-form-field{ width:100%!important; max-width:100%!important; float:none!important; margin:0!important; padding:0!important; }
.neca-login-split .llms-form-field > label{ display:block; color:var(--neca-navy); font-weight:700; font-size:14px; margin-bottom:6px; }
.neca-login-split .llms-field-input{ width:100%; padding:12px 14px; border:1px solid var(--neca-border); border-radius:var(--neca-radius-sm); font-family:var(--neca-font); font-size:15px; box-sizing:border-box; }
.neca-login-split .llms-field-input:focus{ border-color:var(--neca-accent); box-shadow:0 0 0 2px rgba(31,166,244,.25); outline:none; }
.neca-login-split .type-email{ order:1; }
.neca-login-split .type-password{ order:2; }
.neca-login-split .type-checkbox{ order:3; width:auto!important; display:flex; align-items:center; gap:8px; }
.neca-login-split .type-checkbox label{ margin:0; font-weight:400; color:var(--neca-grey-body); font-size:15px; }
.neca-login-split .type-html{ order:4; width:auto!important; margin-left:auto!important; }
.neca-login-split .type-html .llms-description a,.neca-login-split #llms_lost_password + .llms-description a{ color:var(--neca-blue); font-weight:700; font-size:14px; text-decoration:none; }
.neca-login-split .type-submit{ order:5; width:100%!important; margin-top:2px!important; }
.neca-login-split .llms-button-action{ width:100%; padding:13px 24px; }
@media (max-width:860px){
  .neca-login-split{ flex-direction:column; min-height:0; width:auto; margin-left:0; }
  .neca-login-brand .inner,.neca-login-split .llms-person-login-form-wrapper{ max-width:none; margin:0; padding:40px 28px; }
  .neca-login-split .llms-login{ max-width:440px; margin:0 auto; }
}

/* ---- 20. FOOTER (prototype: brand lockup + Platform/Categories/Company + bottom bar) ---- */
footer.wp-block-template-part{ margin-top:0; }
.neca-footer{ background:var(--neca-navy); color:#fff; font-family:var(--neca-font); font-size:15px; }
/* Align the footer content to the header's wide row: same wide-size + 0 side padding, so the footer logo
   sits directly under the header logo and the right column lines up with the header's right edge. */
.neca-footer .neca-container{ max-width:var(--wp--style--global--wide-size); padding-left:0; padding-right:0; }
/* Scope under .neca-footer (the wp:html wrapper, present on EVERY template) NOT .site-footer — that class is
   only on some footer template-parts (e.g. NOT the course archive), which left these rules unmatched there.
   .neca-footer .neca-footer-col … = (0,0,2,1), beats foundation §7 'footer.wp-block-template-part a' (0,0,1,2). */
.neca-footer a{ text-decoration:none; transition:color .15s ease; }
.neca-footer .neca-footer-col a{ color:#C9D2E3; }
.neca-footer .neca-footer-col a:hover{ color:#fff; }
/* brand left (1fr absorbs slack) -> the three link columns cluster tight on the RIGHT */
.neca-footer-top{ display:grid; grid-template-columns:1fr auto auto auto; column-gap:40px; row-gap:36px; padding-top:48px; padding-bottom:44px; align-items:start; }
/* brand column */
.neca-footer-lockup{ display:inline-flex; align-items:center; }
.neca-footer-lockup img{ height:44px; width:auto; filter:brightness(0) invert(1); }
.neca-footer-lockup span{ margin-left:16px; padding-left:16px; border-left:1px solid rgba(255,255,255,.28); font-size:22px; font-weight:700; color:#fff; line-height:1; }
.neca-footer-desc{ color:#9AA6BE; font-size:14.5px; line-height:1.6; margin:18px 0; max-width:420px; }
.neca-footer-email{ display:inline-flex; align-items:center; gap:9px; color:var(--neca-accent)!important; font-weight:500; }
.neca-footer-email:hover{ color:#fff!important; }
.neca-footer-email svg{ width:18px; height:18px; flex:none; }
/* link columns — heading scoped under .neca-footer (always present) to beat the global 'body:not(.wp-admin) h3' navy rule on EVERY template (was .site-footer, which is absent on the course archive) */
.neca-footer .neca-footer-col h3{ color:#fff; font-size:15px; font-weight:700; letter-spacing:.01em; margin:0 0 12px; }
.neca-footer-col ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.neca-footer-col li{ margin:0; }
.neca-footer-col a{ font-size:14.5px; }
/* bottom bar */
.neca-footer-bottom{ border-top:1px solid rgba(255,255,255,.1); }
.neca-footer-bottom .neca-container{ display:flex; justify-content:space-between; align-items:center; gap:16px; padding-top:20px; padding-bottom:20px; flex-wrap:wrap; }
.neca-footer-bottom span{ color:#8A97B0; font-size:13px; }
@media (max-width:900px){
  .neca-footer-top{ grid-template-columns:repeat(3,1fr); column-gap:32px; }
  .neca-footer-brand{ grid-column:1 / -1; margin-bottom:4px; }
}
@media (max-width:560px){
  .neca-footer-top{ grid-template-columns:1fr 1fr; column-gap:20px; row-gap:28px; }
  .neca-footer-bottom .neca-container{ flex-direction:column; align-items:flex-start; gap:8px; }
}

/* ---- 21. ABOUT PAGE (/about/, page 285) — prototype: hero / story / mission / values / backed-by / CTA ---- */
/* Hero (navy; reuses .neca-section--dark for bg/text/outline-button/eyebrow) */
.neca-about-hero .neca-container{ display:flex; flex-direction:column; align-items:flex-start; gap:18px; }
.neca-about-hero h1{ margin:0; font-size:var(--neca-hero); line-height:1.2; max-width:820px; }
.neca-about-hero .neca-lede{ margin:0; color:var(--neca-blue-tint); font-size:18px; line-height:1.6; max-width:720px; }
.neca-about-hero .neca-badge{ background:var(--neca-blue-tint); color:var(--neca-blue); }
/* Story (white; copy + photo collage) */
.neca-about-story{ display:grid; grid-template-columns:1.05fr 1fr; gap:64px; align-items:center; }
.neca-about-story .neca-flow p{ margin:0; color:var(--neca-grey-body); font-size:17px; line-height:1.7; }
.neca-about-collage{ display:grid; grid-template-columns:1fr 1fr; grid-template-rows:auto auto; gap:16px; }
.neca-about-collage img{ display:block; width:100%; height:100%; object-fit:cover; border-radius:var(--neca-radius-md); }
.neca-about-collage .tall{ grid-row:span 2; aspect-ratio:3/4; }
.neca-about-collage .short{ aspect-ratio:4/3; }
/* Mission (light, centered) */
.neca-about-mission{ background:var(--neca-bg-light); }
.neca-about-mission .neca-container{ max-width:900px; display:flex; flex-direction:column; align-items:center; text-align:center; gap:16px; }
.neca-about-mission h2{ margin:0; font-size:var(--neca-h2); line-height:1.3; color:var(--neca-navy); }
.neca-about-mission p{ margin:0; color:var(--neca-grey-body); font-size:18px; line-height:1.7; }
/* Values (white; 3 cards reuse .neca-cat-card — disable the link-hover lift since these are static) */
.neca-about-values{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.neca-about-values .neca-cat-card:hover{ transform:none; box-shadow:var(--neca-shadow-card); }
/* Our Values section: left-aligned heading (markup drops .is-center) + tighter vertical rhythm + trimmed section padding (Shaun) */
.neca-about-values-sec{ padding-top:44px; padding-bottom:44px; }
.neca-about-values-sec .neca-flow{ gap:16px; }
.neca-about-values-sec .neca-section-heading{ gap:6px; }
.neca-about-values-sec .neca-heading-accent{ margin-top:8px; }
/* Backed by (navy; light logo + RTO blurb + NFP/RTO tiles) */
.neca-about-backed .neca-container{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.neca-about-backed-left{ display:flex; flex-direction:column; align-items:flex-start; gap:20px; }
.neca-about-logo{ height:44px; width:auto; filter:brightness(0) invert(1); }
.neca-about-backed-left p{ margin:0; color:var(--neca-blue-tint); font-size:17px; line-height:1.7; }
.neca-about-link{ display:inline-flex; align-items:center; gap:8px; color:var(--neca-accent); font-size:14px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; text-decoration:none; }
.neca-about-link:hover{ color:#fff; }
.neca-about-link svg{ width:15px; height:15px; }
.neca-about-tiles{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.neca-about-tiles .tile{ background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); border-radius:var(--neca-radius-md); padding:24px; }
.neca-about-tiles .n{ display:block; color:var(--neca-accent); font-size:40px; font-weight:700; line-height:1.1; }
.neca-about-tiles .l{ display:block; color:var(--neca-blue-tint); font-size:14px; margin-top:6px; }
/* CTA (reuses .neca-cta-banner; just centre the content) */
.neca-about-cta .neca-container{ max-width:760px; display:flex; flex-direction:column; align-items:center; text-align:center; gap:16px; }
@media (max-width:1024px){
  .neca-about-story{ grid-template-columns:1fr; gap:40px; }
  .neca-about-backed .neca-container{ grid-template-columns:1fr; gap:32px; }
}
@media (max-width:680px){
  .neca-about-values{ grid-template-columns:1fr; }
  .neca-about-tiles{ grid-template-columns:1fr 1fr; }
}

/* ---- 22. LESSON PAGE: course syllabus widget (.llms-syllabus-wrapper) ---- */
/* hide the "Has Quiz" indicator everywhere (sidebar outline + prev/next nav) — Shaun */
.llms-lesson-has-quiz{ display:none!important; }
/* very tight: lesson rows close together + smaller title gap */
.llms-syllabus-wrapper .llms-section-title{ padding-top:12px!important; margin-bottom:10px!important; }
.llms-syllabus-wrapper .llms-lesson-preview-row{ padding-top:4px!important; padding-bottom:4px!important; }
