

      :root {
        --font: basic-sans;
        --alt-font: neue-haas-grotesk-display;
        --accent-color: #071834;
        --secondary-color: #071834;
        --link-color: #071834;
        --accent-highlight-color: #071834;
        --accent-highlight-background-color: #d9e5fa;
        --accent-tinted-color-70: #b5bac2;
        --accent-tinted-color-80: #cdd1d6;
        --accent-tinted-color-90: #e6e8eb;
        --accent-contrast-color: #fff;
        --accent-contrast-tinted-background-color: #b3b3b3;
        --accent-hover-color: #0d2d61;
        --secondary-hover-color: #0d2d61;
        --secondary-contrast-color: #fff;
        --link-hover-color: #13418e;
      }
      

.company__logo {text-indent: 100%;white-space: nowrap;overflow: hidden;background: url('https://media.thoughtindustries.com/thoughtindustries/image/upload/a_exif,c_fit,t_ti_company_logo_hires_v3/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/oc9i25fzz71w-HG-Insights-Academy-Logo-Color.png') no-repeat center left;background-size: contain;} .company__logo span.h4 {visibility: hidden;}
/* ==========================================================================
   HG INSIGHTS ACADEMY - Thought Industries Custom CSS
   2026 BRAND REFRESH. Complete file. Select all in the TI Custom CSS editor
   and replace with this.

   --------------------------------------------------------------------------
   WHAT CHANGED
   --------------------------------------------------------------------------
   Same structure, same selectors, same block order as the previous file.
   Only colours, type and the brand graphics changed.

   Palette (2026 Brand Guidelines)
       Prussian Blue  #071834   text, headings, primary buttons, dark bands
                      #3B465B / #6C7484 / #9DA2AD / #CED1D6   tints
       Vibrant Coral  #FF4A4A   accents only: rules, corners, focus rings,
                                markers, hover borders, CTAs on Prussian
       Natural Linen  #EFE4DC   panels, bands, hairlines
       Floral White   #FBF6EC   light surfaces
       Status         #2F9E44 success | #E03131 error (quiz results only)

   Old -> new
       #0058A3 #184693 #102F52 #212121          -> #071834
       #0F3470 #3E78B9 #6F2F92 #4A5568          -> #3B465B
       #5A7BA6 #718096                          -> #6C7484
       #B8DDF1                                  -> #CED1D6
       #C9194A melon                            -> #FF4A4A coral
       #E2E8F0 #E9ECEF #EAF2FA #F1F5FA          -> #EFE4DC linen
       #F8FAFC #F1F7FC #FDF6F8 #EEEEEE          -> #FBF6EC floral
       every blue->purple gradient               -> solid Prussian
       Nunito Sans                              -> Basic Sans (body) and
                                                  Neue Haas Grotesk Display
                                                  (headings)
       font-weight 800                          -> 700 (neither face has 800)

   The token NAMES inside each scoped block (--hgi-melon, --hgc-purple,
   --hga-light-blue, etc.) are kept so nothing else had to move. Their
   VALUES are the 2026 colours. Explanatory comments further down still
   quote some old hex values; they describe the history, not the current
   value.

   Accessibility rules the brand guide sets, applied here
       - Coral text on white or Floral White is 3.1:1, which is large text
         only. So small eyebrows are now Prussian with a small coral square
         in front, rather than coral text.
       - Coral on Prussian is 5.3:1, so on the dark heroes the eyebrows ARE
         coral, and coral CTAs carry Prussian text.
       - Coral on Linen fails. It isn't used anywhere.

   Brand graphics, all pure CSS (no images to upload)
       - coral 45 deg corner on every Prussian hero band
       - coral pixel steps in the bottom-right of the Insider, catalog and
         Power User heroes
       - outlined coral "Live class" tag, like the marketing WEBINAR tag
       - Prussian date stamps with a coral month
       - the blue-purple wave banner (Insider hero, Sequel article band) is
         gone, replaced by Prussian with the coral corner
       - the orange plus/minus PNGs in the lesson sidebar are now inline
         Prussian SVGs

   --------------------------------------------------------------------------
   THINGS THIS FILE CANNOT DO - DO THESE IN TI
   --------------------------------------------------------------------------
   1. LOAD THE BRAND FONTS. TI discards @import (it prepends its own :root
      rule), so the Adobe Fonts kit has to go in the page head:
          <link rel="stylesheet" href="https://use.typekit.net/mvn6oqv.css">
      Use TI's head / custom HTML setting if your plan has one, otherwise
      ask TI support to add it. Ask Marketing to add training.hginsights.com
      to the kit's domain list too. Until the kit loads, the site falls back
      to Inter Tight and DM Sans (loaded below), which are close stand-ins.
   2. THEME SETTINGS. Set the TI accent and secondary colours to #071834 and
      the theme font away from Nunito Sans. The :root block below already
      overrides TI's colour variables, so this is belt and braces.
   3. LOGOS. Upload the new Academy lockup as the site logo in TI. The sign-in
      page swaps in its own sharper copy; see "2026 SWAP" in that block.
   4. ARTWORK. The dashboard hero (.dBanner) is a composited old-brand PNG,
      and the course title cards are images. Both need new files.

   ORDER STILL MATTERS in two places, so don't rearrange:
     - the catalog hero block sits AFTER the catalog restyle and the two
       thumbnail patches;
     - the lesson page patch comes after everything it overrides.
   ========================================================================== */

/* ==========================================================================
   2026 BRAND FONTS + FOUNDATION   (replaces the Nunito Sans @font-face patch)

   Primary faces come from the hginsights.com Adobe Fonts kit (mvn6oqv):
       neue-haas-grotesk-display   700         headings
       basic-sans                  300-900     everything else
   The kit has to be linked in the page head; see item 1 in the header.

   Fallbacks, used only if the kit isn't loaded: Inter Tight 700 for
   headings and DM Sans for body text, from jsDelivr (pinned to @fontsource
   5.3.0). @font-face works anywhere in the file, unlike @import. A browser
   only downloads these when it actually needs them, so once the kit is live
   they cost nothing.
   ========================================================================== */

@font-face {
  font-family: 'Inter Tight';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://cdn.jsdelivr.net/npm/@fontsource/inter-tight@5.3.0/files/inter-tight-latin-700-normal.woff2) format('woff2');
}

@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(https://cdn.jsdelivr.net/npm/@fontsource/dm-sans@5.3.0/files/dm-sans-latin-300-normal.woff2) format('woff2');
}

@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://cdn.jsdelivr.net/npm/@fontsource/dm-sans@5.3.0/files/dm-sans-latin-400-normal.woff2) format('woff2');
}

@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(https://cdn.jsdelivr.net/npm/@fontsource/dm-sans@5.3.0/files/dm-sans-latin-600-normal.woff2) format('woff2');
}

@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://cdn.jsdelivr.net/npm/@fontsource/dm-sans@5.3.0/files/dm-sans-latin-700-normal.woff2) format('woff2');
}

@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(https://cdn.jsdelivr.net/npm/@fontsource/dm-sans@5.3.0/files/dm-sans-latin-900-normal.woff2) format('woff2');
}

/* TI's theme variables. TI prepends its own :root rule to this stylesheet;
   this one comes later with the same specificity, so it wins. Keep these in
   step with the TI theme settings. */
:root {
  --accent-color: #071834;
  --accent-hover-color: #3B465B;
  --accent-contrast-color: #FFFFFF;
  --accent-tinted-color-80: #CED1D6;
  --accent-tinted-color-90: #FBF6EC;
  --secondary-color: #071834;
  --secondary-hover-color: #3B465B;
  --secondary-contrast-color: #FFFFFF;
  --font: "basic-sans", "Basic Sans", "DM Sans", "Helvetica Neue", Arial, sans-serif;
  --alt-font: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif;
}

/* Default headline face for TI's own headings. Element selectors only, so
   every block below that styles a heading still wins. */
h1, h2, h3, h4 {
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif;
}

/* ==========================================================================
   END 2026 BRAND FONTS + FOUNDATION
   ========================================================================== */

/* Custom Font begin */
/* The @import that used to sit here has been removed. It never worked: TI
   prepends its own :root block to this stylesheet, so an @import can never be
   the first rule and the parser discards it. The @font-face block above does
   the same job with no position requirement. */

body {
  font-family: "basic-sans", "Basic Sans", "DM Sans", "Helvetica Neue", Arial, sans-serif;
}

.bold {
  font-weight: 700;
}

.black {
  font-weight: 900;
}

/*Custom Font end*/

/* Begin TI Theme 2 CSS*/
:root {
--dashStatAvail-color: var(--accent-color);
--dashStatStart-color: #FF4A4A;
--dashStatCollab-color: #3B5BDB;
--dashStatComp-color: #0CA678;
--white-color: #fff;
--black-color: #000;
--lightGray-color: #FBF6EC;
}
.application .container {max-width: 100%; font-family: "basic-sans", "Basic Sans", "DM Sans", "Helvetica Neue", Arial, sans-serif;}
.nav--top ul a, .nav--top ul button {border: 1px solid
var(--accent-color); color: var(--accent-color);}
.nav--top ul a:focus, .nav--top ul button:focus, .nav--top ul
button:hover {color: var(--accent-color);}
.header .top-bar {display: inline-block; vertical-align: top; border: 0;
margin: 12px 0 0 12px;}
.header .top-bar-section ul li>a {color: #071834;}
.header .company__beta-logo {margin-bottom: 1rem;}
.hBanner .hero {margin: 0;}
.hBanner .hero .hero__caption {background: none; text-align: center;
bottom: auto; top: 50%; transform: translateY(-50%);}
.hBanner .hero .hero__caption .hero__title {font-size: 85px; color:
white; font-weight: 900; margin-bottom: 64px;
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
}
.hBanner .hero .hero__caption .btn--primary {background:
var(--accent-color); font-size: 30px; border: 0; color:
var(--accent-contrast-color);}
.hBanner .hero .hero__caption .btn--primary:hover {background:
var(--accent-hover-color);}
.hSingleColRedBgTxt {background: var(--accent-color); color:
var(--accent-contrast-color);}
.hSingleColRedBgTxt .widget__subtitle {color:
var(--accent-contrast-color); font-size: 40px; line-height: normal;}
.layout__content .hSingleColRedBgTxt {padding: 120px 8%;}
.layout__content .hSearch {padding: 120px 8%;}
.hSearch .search-bar-widget input {height: 62px; border: 0; box-shadow:
none; padding: 0 4% 0 4%; background: var(--accent-tinted-color-90);
width: calc(100% - 164px); font-size: 26px;}
.hSearch .search-bar-widget button {height: 62px; border: 0; box-shadow:
none; background: var(--secondary-color); border-radius: 0 !important;
font-size: 26px; text-transform: none; color:
var(--secondary-contrast-color);}
.hSearch .search-bar-widget button:hover {background:
var(--secondary-hover-color);}
.hSearch .search-bar-widget button i {display: none;}
.layout__content .hExploreTopicsHead {padding: 32px 8%;}
.hExploreTopicsHead .widget__title {font-size: 60px; color:
var(--accent-color);}
.layout__content .hExploreTopics {padding: 32px 8%;}
.hExploreTopics .top-bar-section ul.left {border: 0;}
.hExploreTopics .top-bar-section ul li {display: inline-block; width:
calc(25% - 4px); vertical-align: top; padding: 0 2%; margin-bottom:
20px;}
.hExploreTopics .top-bar-section ul li a {display: block; border: 1px
solid var(--accent-color); font-size: 20px; color: var(--accent-color)
!important; padding: 8px 8px !important; text-align: center;
text-transform: none;}
.hExploreTopics .navigation-bar .top-bar-section li:not(.has-form)
a:not(.button):hover, .navigation-bar .top-bar-section ul
li:hover:not(.has-form)>a:hover {background: var(--accent-color); color:
var(--accent-contrast-color) !important;}
.layout__content .lhrb {padding: 120px 8% 32px; background:
var(--lightGray-color);}
.lhrb .ember-view > .ember-view {display: inline-block; vertical-align:
middle; width: calc(100% - 200px);}
.lhrb .ember-view .row {display: none;}
.lhrb .ember-view .widget__cta {display: inline-block; vertical-align:
middle; padding: 0;}
.lhrb .widget__title {font-size: 65px; color: var(--accent-color);
text-align: left; margin: 0;}
.lhrb .ember-view .widget__cta {display: inline-block; vertical-align:
middle;}
.lhrb .ember-view .widget__cta .btn--primary { border: 0; box-shadow:
none; background: var(--secondary-color); color:
var(--secondary-contrast-color); border-radius: 0 !important; font-size:
20px; text-transform: none; margin: 0;}
.lhrb .ember-view .widget__cta .btn--primary:hover {background:
var(--secondary-hover-color);}
.layout__content .hImpactTraining {padding: 32px 8% 120px; background:
var(--lightGray-color);}
.hImpactTraining .featured-content-multi-carousel-item {background:
none; border: 0;}
.hImpactTraining .featured-content-multi-carousel-item img {padding: 0;}
.hImpactTraining .featured-content-multi-carousel-item__body {padding:
12px 0; text-align: left; min-height: 98px;}
.hImpactTraining .featured-content-multi-carousel-item__title
{font-size: 29px; color: var(--accent-color); font-weight: 900; font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;}
.hImpactTraining .featured-content-multi-carousel-item::after { content:
'More'; display: inline-block; padding: 12px 20px; border: 1px solid
var(--secondary-color); color: var(--secondary-color); font-size: 20px;
width: 140px; text-align: center;}
.hConsulting {background: white;}
.hConsulting .hero {margin-bottom: 0;}
.hConsulting .hero picture {display: inline-block; width: calc(50% -
4px); vertical-align: middle;}
.hConsulting .hero .hero__caption {display: inline-block; width:
calc(50% - 4px); vertical-align: middle; position: static; transform:
none; background: none;}
.hConsulting .hero .hero__caption .hero__title {font-size: 60px; color:
var(--accent-color); font-weight: 900; margin-bottom: 40px;
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
}
.hConsulting .hero .hero__caption .h4 {font-size: 20px; color:
var(--accent-color); font-weight: 700; margin-bottom: 40px; display:
block;}
.hConsulting .hero .hero__caption .btn--primary { height: 56px; border:
0; box-shadow: none; background: var(--secondary-color); border-radius:
0 !important; font-size: 20px; text-transform: none; color:
var(--secondary-contrast-color);}
.hConsulting .hero .hero__caption .btn--primary:hover { background:
var(--secondary-hover-color);}
.hProfessionalTraining {background: var(--accent-color); direction:
rtl;}
.hProfessionalTraining .hero {margin-bottom: 0;}
.hProfessionalTraining .hero picture {display: inline-block; width:
calc(50% - 4px); vertical-align: middle;}
.hProfessionalTraining .hero .hero__caption {display: inline-block;
width: calc(50% - 4px); vertical-align: middle; position: static;
transform: none; background: none; text-align: left;}
.hProfessionalTraining .hero .hero__caption .hero__title {font-size:
60px; color: var(--accent-contrast-color); font-weight: 900;
margin-bottom: 40px;
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
}
.hProfessionalTraining .hero .hero__caption .h4 {font-size: 20px; color:
var(--accent-contrast-color); font-weight: 700; margin-bottom: 40px;
display: block;}
.hProfessionalTraining .hero .hero__caption .btn--primary { height:
56px; border: 0; box-shadow: none; background: var(--secondary-color);
border-radius: 0 !important; font-size: 20px; text-transform: none;
color: var(--secondary-contrast-color);}
.hProfessionalTraining .hero .hero__caption .btn--primary:hover
{background: var(--secondary-hover-color);}
.layout__content .hFeaturedContent {padding: 32px 8% 120px; background:
var(--lightGray-color);}
.layout__content .hTestimonials {background: white; padding: 0;}
.hTestimonials.row .columns {padding: 0;}
.hTestimonials .featured-content-multi-carousel
.featured-content-block-grid > li {padding: 0;}
.hTestimonials [class*="block-grid-"] { margin: 0;}
.hTestimonials .featured-content-multi-carousel {padding: 0;}
.hTestimonials .testimonial-widget, .hTestimonials.row .row {margin: 0;}
.hTestimonials .testimonial.learner {padding-top: 0; background-size:
50% auto; background-position: center left;}
.hTestimonials .testimonial.learner::after {content: ''; display: block;
clear: both;}
.hTestimonials .testimonial .testimonial-quote--right { width: 50%;
right: 0; padding: 80px 6%; position: static; float: right; transform:
none; text-align: left;}
.hTestimonials .testimonial .testimonial-quote__text {font-size: 25px;
color: var(--accent-color); font-style: italic; font-weight: 400;
line-height: normal; }
.hTestimonials .testimonial .testimonial-quote__author-name {display:
inline-block; font-size: 18px; color: var(--accent-color); font-style:
normal;}
.hTestimonials .testimonial .testimonial-quote__author-name:before
{display: none;}
.hTestimonials .testimonial .testimonial-quote__author-description
{display: inline-block; font-size: 18px; color: var(--accent-color);
font-style: normal;}
.layout__content .hRedBg3Col {padding: 0;}
.hRedBg3Col.row .row {margin: 0; text-align: center;}
.hRedBg3Col p {margin: 0; font-size: 40px;}
.hRedBg3Col .columns {background: var(--accent-color); color:
var(--accent-contrast-color); padding: 120px 20px;}
.hRedBg3Col .columns:nth-child(3n+2) {background:
var(--accent-hover-color);}
.footer {padding: 0;}
.footer .footer__inner {padding: 0; border: 0;}
.footer .footer__company__info {display: none;}
.qFooter {padding: 32px 8%; font-size: 14px; color:
var(--secondary-color);}
.qFooter {padding: 32px 8%; font-size: 14px; color:
var(--secondary-color);}
.qFooter .logoNav {display: block; direction: rtl; padding: 80px 0;}
.qFooter .logoNav::after {content: ''; display: block; clear: both;}
.qFooter .logoNav nav {display: inline-block; width: calc(50% - 4px);
vertical-align: top; text-align: left; direction: ltr;}
.qFooter .logoNav .logAdd {display: inline-block; width: calc(50% -
4px); vertical-align: top; text-align: left; direction: ltr;}
.qFooter .logoNav .logAdd .logo {width: 220px; margin-right: 20px;
display: inline-block; vertical-align: top;}
.qFooter .logoNav .logAdd .logo img {width: 100%;}
.qFooter .logoNav .logAdd .address {display: inline-block; width:
calc(100% - 220px - 20px - 8px); vertical-align: top; color: #071834;}
.qFooter .logoNav .logAdd .address p {margin: 0;}
.qFooter .logoNav nav .col {display: inline-block; width: calc(33.33% -
4px); vertical-align: top;}
.qFooter .logoNav nav .col ul {margin: 0; display: block;}
.qFooter .logoNav nav .col ul li {display: block;}
.qFooter .logoNav nav .col ul li a {color: #071834;}
.qFooter .logoNav nav .col ul li a:hover {color: #071834;}
.qFooter .copyrightPolicy {direction: rtl; text-align: left;}
.qFooter .copyrightPolicy .policySocial {display: inline-block;
direction: ltr;}
.qFooter .copyrightPolicy .policySocial .policy {display: inline-block;
vertical-align: top; padding: 0 8px;}
.qFooter .copyrightPolicy .policySocial .socialLnks {display:
inline-block; vertical-align: top; font-family: 'FontAwesome';}
.qFooter .copyrightPolicy .policySocial ul {display: block; margin: 0;}
.qFooter .copyrightPolicy .policySocial ul li {display: inline-block;
vertical-align: top;}
.qFooter .copyrightPolicy .copyright {display: inline-block; direction:
ltr; color: #071834;}
.qFooter .copyrightPolicy .policySocial .socialLnks ul li {margin: 0
4px; font-size: 15px; color: var(--secondary-color);}
.qFooter .copyrightPolicy .policySocial .policy ul li {margin: 0 8px;}
.learn.dashboard .dBanner {padding: 0;}
.dBanner .hero .hero__caption {background: none; bottom: auto; padding:
0 8%; top: 50%; transform: translateY(-50%);}
.dBanner .hero .hero__caption .hero__title {font-size: 76px; color:
white; max-width: 50%;}
.learn.dashboard .dHeading {padding: 120px 8% 32px;}
.learn.dashboard .dHeading .widget__title {font-size: 55px; color:
var(--accent-color); font-weight: 900; text-align: left; margin: 0;
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
}
.learn.dashboard .widget--dashboard-stats {padding: 32px 8% 120px;}
.dashboard-stats__container {box-shadow: none; border-top: 1px solid
var(--accent-tinted-color-80); border-bottom: 1px solid
var(--accent-tinted-color-80); padding: 12px 0;}
.dashboard-stat__icon {display: block; height: 36px; background-size:
auto 100%; background-position: center; background-repeat: no-repeat;
margin-bottom: 8px; font-size: 32px; color: var(--accent-color);}
.dashboard-stat {border: 0; background: var(--accent-tinted-color-90);
height: auto;}
.dashboard-stat__label {font-size: 12px; color: var(--secondary-color);
text-transform: none;}
.dashboard-stat__value--huge {font-size: 30px; font-weight: 400;}
.dashboard-stat__value {color: var(--accent-color) !important;}
.dashboard-views__line__bar {background: var(--accent-hover-color);}
.dashboard-views__header {color: var(--secondary-color); text-transform:
none;}
.dHeading.gray {background: var(--lightGray-color);}
.learn.dashboard .dLearnerAccess {padding: 32px 8% 120px;background:
var(--lightGray-color);}
.dLearnerAccess .dashboard-access {border: 0;}
.dLearnerAccess .dashboard-access-tabs {background: none; border: 0;
margin-bottom: 32px;}
.dLearnerAccess .dashboard-access-list-item:nth-of-type(odd)
{background: none;}
.dLearnerAccess .dashboard-access-tabs li.dashboard-access-tab {border:
0; margin-left: 20px; background: none; border: 1px solid #071834;
padding: 10px 28px;}
.dLearnerAccess .dashboard-access-tabs li.dashboard-access-tab button
{color: #071834;}
.dLearnerAccess .dashboard-access-tabs
li.dashboard-access-tab:nth-child(3) {margin-left: 0;}
.dLearnerAccess .dashboard-access-tabs
li.dashboard-access-tab.dashboard-access-tab--active {background:
var(--accent-color); color: white; border-color: var(--accent-color);}
.dLearnerAccess .dashboard-access-tab--active:after {display: none;}
.dLearnerAccess .dashboard-access-tabs
li.dashboard-access-tab.dashboard-access-tab--active button {color:
var(--accent-contrast-color);}
.dLearnerAccess .dashboard-access-tab__count {border: 0; background:
none; font-size: inherit; color: inherit; font-weight: normal;}
.dLearnerAccess .dashboard-access-tab__count::before {content: '(';}
.dLearnerAccess .dashboard-access-tab__count::after {content: ')';}
.dLearnerAccess .catalog-filters__selections {border: 0; border-right:
2px solid white; background: var(--accent-tinted-color-90);}
.dLearnerAccess .dashboard-access-list-item-expander i {color: #071834;}
.dLearnerAccess .dashboard-access-list-view-detail-page {background:
var(--accent-color); color: var(--accent-contrast-color); border: 0;}
.dLearnerAccess .dashboard-access-list-item .btn--primary {background:
none; color: var(--accent-color); border: 0;}
.dLearnerAccess .dashboard-access-list-item .btn--primary:hover
{background: none; color: var(--accent-hover-color); border: 0;}
.dLearnerAccess .dashboard-access-list-item-expansion {padding-top:
20px;}
.dLearnerAccess .dashboard-access-list-item:nth-of-type(2n) {background:
none;}
.catalog-filters__selections {border: 0; border-right: 2px solid white;
background: var(--lightGray-color);}
.catalog-filters__search .bg-white {background: var(--lightGray-color);}
.learn.dashboard .widget--catalog_standard {padding: 32px 8% 120px;}
.catalog-header {display: none;}
.catalog-filters__search {background: var(--lightGray-color);}
.catalog-search-bar .catalog-filters__search {border-right: 2px solid
white;}
.catalog-filters, .catalog-filters__sort {border: 0;}
.catalog-filters__search .catalog-search input {background: none;}
.catalog-filters__sort {background: var(--lightGray-color);}
.catalog-display-type button, .catalog-display-type button.btn--primary
{border: 0; background: var(--lightGray-color); color:
var(--accent-color);}
.catalog-display-type button:hover, .catalog-display-type
button.btn--primary:hover {background: var(--accent-color); color:
var(--accent-contrast-color);}
.catalog-display-type button.btn--primary {color:
var(--accent-hover-color);}
.catalog-list-item__cta-container {border: 0;}
.widget--catalog .btn.catalog-aggregation__value {color: #071834;}
.widget--catalog .btn.catalog-aggregation__value:hover {color:
var(--accent-color);}
.widget--catalog .catalog-list-item__title {color: var(--accent-color);}
.widget--catalog .catalog-list-item__start-date {color:
var(--accent-color);}
.widget--catalog .catalog-list-item__info {color: var(--accent-color);}
.widget--catalog .catalog-list-item__description {color:
var(--accent-color);}
.widget--catalog .catalog-aggregation {padding: 0; background: none;
border: 0;}
.widget--catalog .catalog-aggregation .catalog-aggregation__header
{color: #071834; font-weight: 700; padding: 12px 0 !important;
border-bottom: 1px solid #071834;}
.widget--catalog .catalog-aggregation .catalog-aggregation__header
.catalog-aggregation__header--label {font-weight: 700;}
.widget--catalog .catalog-aggregation.catalog-aggregation--expanded
.catalog-aggregation__header {color: var(--accent-color); border-color:
var(--accent-color);}
.widget--catalog .catalog-aggregation__expander i {color: inherit;}
.widget--catalog .catalog-aggregation--expanded {margin-bottom: 0;}
.widget--catalog .catalog-aggregation .unlist {padding: 8px 0;}
.learn.dashboard .dRecommendations {padding: 120px 8% 120px;background:
var(--lightGray-color);}
.dRecommendations .widget__title { font-size: 55px; color:
var(--accent-color); font-weight: 900; text-align: center;
margin-bottom: 60px;
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
}
.dRecommendations .featured-content-multi-carousel-item {border: 0;
background: none;}
.dRecommendations .featured-content-multi-carousel-item img {padding:
0;}
.dRecommendations .featured-content-multi-carousel-item__body {padding:
16px 0; text-align: left; min-height: 120px;}
.dRecommendations .featured-content-multi-carousel-item__title
{font-size: 29px; color: var(--accent-color); font-weight: 900; font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;}
.dRecommendations .featured-content-multi-carousel-item::after {content:
'More'; display: inline-block; padding: 12px 20px; border: 1px solid
var(--secondary-color); color: var(--secondary-color); font-size: 20px;
width: 140px; text-align: center;}
.dRecommendations .featured-content-multi-carousel__nav-right i,
.dRecommendations .featured-content-multi-carousel__nav-left i
{font-size: 60px; color: var(--secondary-color);}
.dRecommendations .featured-content-multi-carousel__nav-right:hover i,
.dRecommendations .featured-content-multi-carousel__nav-left:hover i
{color: var(--secondary-hover-color);}
.dRecommendations .featured-content-multi-carousel__nav-right,
.dRecommendations .featured-content-multi-carousel__nav-left {height:
auto; width: auto; top: 50%; transform: translateY(-50%;)}
.dRecommendations .featured-content-multi-carousel__nav-right {right:
-60px;}
.dRecommendations .featured-content-multi-carousel__nav-left {left:
-60px;}
.learn.dashboard .dFeaturedContent {padding: 120px 8% 120px;background:
var(--accent-color); color: var(--accent-contrast-color);}
.dFeaturedContent h3 {font-size: 55px; font-weight: 900; margin-bottom:
40px; color: var(--accent-contrast-color); margin-top: 4%;
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
}
.dFeaturedContent p {font-size: 20px; font-weight: 400; margin-bottom:
40px;}
.dFeaturedContent p:nth-last-child(3) {margin-bottom: 0;}
.dFeaturedContent a {display: inline-block; background:
var(--accent-contrast-color); color: var(--accent-color) !important;
font-size: 20px; padding: 12px 20px; width: 164px; text-align: center;}
.dFeaturedContent a:hover {background: var(--accent-tinted-color-80);}
.layout__content .hBusinessChallenge {padding: 120px 8%;}
.hBusinessChallenge h3 {font-size: 60px; color: var(--accent-color);
text-align: center; font-weight: 900; margin-bottom: 60px;
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
}
.hBusinessChallenge .hr__accent {display: none;}
.hBusinessChallenge .widget__title { font-size: 55px; color:
var(--accent-color); font-weight: 900; text-align: center;
margin-bottom: 60px;
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
}
.hBusinessChallenge .featured-content-multi-carousel-item {border: 0;
background: none;}
.hBusinessChallenge .featured-content-multi-carousel-item__description
{padding: 0; color: var(--accent-color);}
.hBusinessChallenge .featured-content-multi-carousel-item img {padding:
0;}
.hBusinessChallenge .featured-content-multi-carousel-item__body
{padding: 16px 0; text-align: left; min-height: 120px;}
.hBusinessChallenge .featured-content-multi-carousel-item__title
{font-size: 29px; color: var(--accent-color); font-weight: 900; font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;}
.hBusinessChallenge .featured-content-multi-carousel-item::after
{content: 'More'; display: inline-block; padding: 12px 20px; background:
var(--secondary-color); color: var(--secondary-contrast-color);
font-size: 20px; width: 140px; text-align: center;}
.hBusinessChallenge .featured-content-multi-carousel__nav-right i,
.hBusinessChallenge .featured-content-multi-carousel__nav-left i
{font-size: 60px; color: var(--secondary-color);}
.hBusinessChallenge .featured-content-multi-carousel__nav-right:hover i,
.hBusinessChallenge .featured-content-multi-carousel__nav-left:hover i
{color: var(--secondary-hover-color);}
.hBusinessChallenge .featured-content-multi-carousel__nav-right,
.hBusinessChallenge .featured-content-multi-carousel__nav-left {height:
auto; width: auto; top: 50%; transform: translateY(-50%;)}
.hBusinessChallenge .featured-content-multi-carousel__nav-right {right:
-60px;}
.hBusinessChallenge .featured-content-multi-carousel__nav-left {left:
-60px;}
.hFeaturedContent .featured-content-multi-carousel-item {border: 0;
background: none;}
.hFeaturedContent .featured-content-multi-carousel-item__description
{padding: 0;}
.hFeaturedContent .featured-content-multi-carousel-item img {padding:
0;}
.hFeaturedContent .featured-content-multi-carousel-item__body {padding:
16px 0; text-align: left;}
.hFeaturedContent .featured-content-multi-carousel-item__title
{font-size: 29px; color: var(--accent-color); font-weight: 900; font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;}
.hFeaturedContent .featured-content-multi-carousel-item::after {content:
'More'; display: inline-block; padding: 12px 20px; background:
var(--secondary-color); color: var(--secondary-contrast-color);
font-size: 20px; width: 140px; text-align: center;}
.hFeaturedContent .featured-content-multi-carousel__nav-right i,
.hFeaturedContent .featured-content-multi-carousel__nav-left i
{font-size: 60px; color: var(--secondary-color);}
.hFeaturedContent .featured-content-multi-carousel__nav-right,
.hFeaturedContent .featured-content-multi-carousel__nav-left {height:
auto; width: auto; top: 50%; transform: translateY(-50%;)}
.hFeaturedContent .featured-content-multi-carousel__nav-right {right:
-60px;}
.hFeaturedContent .featured-content-multi-carousel__nav-left {left:
-60px;}
/* All Widget Page - Start */
.page .home__content {padding: 0;}
.layout__content .qImageOverlay1 {padding: 60px 8% 60px;}
.qImageOverlay1 .widget__title {font-size: 55px; color:
var(--accent-color); font-weight: 900; text-align: left; margin-bottom:
2rem;
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
}
.qImageOverlay1 .catalog-item {position: relative;}
.qImageOverlay1 .featured-content-image-overlay-item::before {content:
''; display: block; width: 100%; height: 100%; background:
var(--accent-color); opacity: .2;; position: absolute; top: 0; left: 0;}
.qImageOverlay1 .featured-content-image-overlay-item__overlay {bottom:
64px; background: none; padding: 0 8%;}
.qImageOverlay1 .featured-content-image-overlay-item__title {font-size:
28px; min-height: 56px; color: white;}
.qImageOverlay1 .featured-content-image-overlay-item__overlay::after
{content: 'Read More'; display: inline-block; margin-top: 12px;
background: var(--secondary-color); padding: 12px 20px; color:
var(--secondary-contrast-color);}
.layout__content .qVideo1 {padding: 60px 8% 60px;}
.qVideo1 .row , .qVideo1 .row .columns {padding: 0; margin: 0;}
.qVideo1 .video__container {padding: 0;}
.qVideo1 .widget__title {background: var(--accent-color); color:
var(--accent-contrast-color); font-size: 55px; padding: 32px 4px;
margin: 0;}
.layout__content .qHeroSlider1 {padding: 0;}
.qHeroSlider1 .row, .qHeroSlider1 .row .columns {padding: 0; margin: 0;}
.qHeroSlider1 .featured-content-carousel-item__overlay {bottom: auto;
top: 50%; transform: translateY(-50%); background: none; padding: 2rem;
text-align: center;}
.qHeroSlider1 .featured-content-carousel-item__title {font-size: 58px;
margin-bottom: 32px; text-align: center; font-weight: 900; color:
white;
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
}
.qHeroSlider1 .featured-content-carousel-item__overlay::after {content:
'Start Discovering'; display: inline-block; font-size: 30px; background:
var(--accent-color); padding: 12px 32px; color:
var(--accent-contrast-color);}
.qHeroSlider1 .featured-content-carousel__nav {position: static;}
.qHeroSlider1 .featured-content-carousel__nav button {position:
absolute; top: 50%; transform: translateY(-50%); font-size: 60px;
background: none; border: 0; padding: 0; color: white;}
.qHeroSlider1 .featured-content-carousel__nav button i {margin: 0;
padding: 0;}
.qHeroSlider1 .featured-content-carousel__nav button:nth-child(1) {left:
8%;}
.qHeroSlider1 .featured-content-carousel__nav button:nth-child(2)
{right: 8%;}
.layout__content .qAboutBlock1 {padding: 60px 8%;}
.qAboutBlock1.row .row {margin: 0; text-align: left;}
.qAboutBlock1 p {margin: 0; margin-bottom: 20px; font-size: 24px;
min-height: 102px;}
.qAboutBlock1 p:nth-last-child(3) {margin: 0; min-height: 0;}
.qAboutBlock1 p a {display: inline-block; font-size: 18px; background:
var(--accent-contrast-color); padding: 12px 32px; color:
var(--accent-color) !important;}
.qAboutBlock1 p a:hover {display: inline-block; font-size: 18px;
background: var(--accent-tinted-color-80); padding: 12px 32px; color:
var(--accent-color) !important;}
.qAboutBlock1 .columns {background: var(--accent-color); color:
var(--accent-contrast-color); padding: 60px 20px; border: 8px solid
white; position: relative;}
.qAboutBlock1 .columns:nth-child(3n+2) {background:
url(https://d36ai2hkxl16us.cloudfront.net/course-uploads/a3fc47c4-5a99-4bb2-bef8-d5dc46f1788e/2ehvopg8odn9-AboutBlock.jpg)
center no-repeat; background-size: cover;}
.qAboutBlock1 .columns:nth-child(3n+2)::before {content: ''; display:
block; width: 100%; height: 100%; background: var(--accent-color);
opacity: .4; position: absolute; top: 0; left: 0; z-index: 0;}
.qAboutBlock1 .editor-content {position: relative; z-index: 1;}
.layout__content .qCustomNav1 {padding: 1rem;}
.qCustomNav1 > .row {padding: 0; margin: 0; display: block; width:
calc(100% - 220px - 280px - 20px); margin-left: 240px;}
.qCustomNav1 .navigation-bar .top-bar-section li:not(.has-form)
a:not(.button) {line-height: 3rem}
.qCustomNav1 .navigation-bar .top-bar-section ul.left {border: 0;}
.qCustomNav1 .navigation-bar .top-bar-section .has-dropdown>a:after
{display: none;}
.qCustomNav1 .navigation-bar .top-bar-section .has-dropdown>a,
.qCustomNav1 .navigation-bar .top-bar-section li:not(.has-form)
a:not(.button) {padding: 0 1rem !important;}
.qCustomNav1 .navigation-bar .top-bar-section
ul>li.navigation-item:not(.has-form) {padding: 0;}
.qCustomNav1 .navigation-bar .top-bar-section ul li>a {color:
var(--secondary-color); text-transform: none; font-weight: 400;
font-size: 1rem;}
.qCustomNav1 .navigation-bar .top-bar-section .has-dropdown.hover>a
{background: var(--accent-color); color: white;}
.qCustomNav1 .top-bar-section ul li ul li {box-shadow: none;}
.qCustomNav1 .top-bar-section .dropdown
li:not(.has-form):not(.active)>a:not(.button) {background:
var(--accent-tinted-color-90);}
.qCustomNav1 .top-bar-section .dropdown
li:not(.has-form):not(.active)>a:not(.button):hover {color:
var(--accent-color);}
/* All Widget Page - End */
/* Add by KS Catalog widget without any custom class */
.catalog-grid-item {border-color: var(--secondary-color);}
.catalog-grid-item__title, .catalog-grid-item__source,
.catalog-grid-item__description {color: var(--accent-color);}
.catalog-grid-item .btn--link.btn--primary {color:
var(--secondary-color);}
.catalog-grid-item .btn--link.btn--primary:hover {color:
var(--secondary-hover-color);}
.w-bottom-bar-left.w-css-reset, .w-bottom-bar-middle.w-css-reset,
.w-bottom-bar-middle-inner.w-css-reset,
.w-bottom-bar-right-inner.w-css-reset {background:
var(--secondary-color);}
@media only screen and (max-width: 1279px) {
.nav--top ul a, .nav--top ul button {font-size: 12px; padding: .5rem;}
.top-bar-section li:not(.has-form) a:not(.button) {font-size: 14px;}
.hBanner .hero .hero__caption .hero__title, .dBanner .hero
.hero__caption .hero__title {font-size: 58px; margin-bottom: 32px;}
.hBanner .hero .hero__caption .btn--primary {font-size: 22px; padding:
12px 32px;}
.hSingleColRedBgTxt .widget__subtitle {font-size: 28px;}
/* Common padding */
.layout__content .hSingleColRedBgTxt, .layout__content .hSearch,
.learn.dashboard .dRecommendations, .learn.dashboard .dFeaturedContent
{padding: 60px 8%;}
.layout__content .lhrb {padding: 60px 8% 16px;}
.layout__content .hImpactTraining {padding: 16px 8% 60px;}
.hSearch .search-bar-widget input, .hSearch .search-bar-widget button
{font-size: 20px; height: 52px;}
.hSearch .search-bar-widget input {width: calc(100% - 124px);}
.learn.dashboard .dHeading {padding: 60px 8% 16px;}
.learn.dashboard .widget--dashboard-stats, .learn.dashboard
.dLearnerAccess, .learn.dashboard .widget--catalog_standard {padding:
16px 8% 60px;}
/* Common Heading */
.hExploreTopicsHead .widget__title, .lhrb .widget__title,
.learn.dashboard .dHeading .widget__title {font-size: 44px; margin: 0;}
.dRecommendations .widget__title, .dFeaturedContent h3, .qImageOverlay1
.widget__title, .qVideo1 .widget__title {font-size: 44px;}
/*Common Button*/
.lhrb .ember-view .widget__cta .btn--primary {height: 36px; font-size:
16px;}
/*Common Small heading */
.hConsulting .hero .hero__caption .hero__title, .hProfessionalTraining
.hero .hero__caption .hero__title {font-size: 40px; margin-bottom:
20px;}
.hConsulting .hero .hero__caption .h4, .hProfessionalTraining .hero
.hero__caption .h4 {font-size: 16px; margin-bottom: 20px;}
.hConsulting .hero .hero__caption .btn--primary, .hProfessionalTraining
.hero .hero__caption .btn--primary {font-size: 16px; height: 40px;}
.hTestimonials .testimonial .testimonial-quote__text {font-size: 18px;}
.hTestimonials .testimonial .testimonial-quote__author-description,
.hTestimonials .testimonial .testimonial-quote__author-name {font-size:
16px;}
.hRedBg3Col p {font-size: 28px;}
.dRecommendations .featured-content-multi-carousel-item__title,
.hImpactTraining .featured-content-multi-carousel-item__title
{font-size: 22px;}
.dRecommendations .featured-content-multi-carousel-item::after,
.hImpactTraining .featured-content-multi-carousel-item::after
{font-size: 16px; padding: 8px 8px; width: 120px;}
.dRecommendations .featured-content-multi-carousel-item__body,
.hImpactTraining .featured-content-multi-carousel-item__body
{min-height: 98px;}
.dFeaturedContent p {font-size: 16px;}
.dFeaturedContent a {font-size: 16px; padding: 8px 8px; width: 120px;}
.hBusinessChallenge h3 {font-size: 44px;}
.hBusinessChallenge .featured-content-multi-carousel-item__body
{min-height: 98px;}
.hBusinessChallenge .featured-content-multi-carousel-item__title
{font-size: 22px;}
.hBusinessChallenge .featured-content-multi-carousel-item::after {
font-size: 16px; padding: 8px 8px; width: 120px;}
.hFeaturedContent .featured-content-multi-carousel-item__title
{font-size: 22px;}
.hFeaturedContent .featured-content-multi-carousel-item::after {
font-size: 16px; padding: 8px 8px; width: 120px;}
.qImageOverlay1 .featured-content-image-overlay-item__overlay::after
{font-size: 16px; padding: 8px;}
.qHeroSlider1 .featured-content-carousel-item__overlay::after
{font-size: 22px;}
.qAboutBlock1 p {font-size: 20px; min-height: 88px;}
.qAboutBlock1 p a {font-size: 16px; padding: 8px 20px;}
}
@media only screen and (max-width: 979px) {
.dRecommendations .featured-content-multi-carousel__nav-right,
.hBusinessChallenge .featured-content-multi-carousel__nav-right,
.hFeaturedContent .featured-content-multi-carousel__nav-right {right:
-36px;}
.dRecommendations .featured-content-multi-carousel__nav-left,
.hBusinessChallenge .featured-content-multi-carousel__nav-left,
.hFeaturedContent .featured-content-multi-carousel__nav-left {left:
-36px;}
.qCustomNav1 > .row {width: 100%; margin-left: 0;}
}
@media only screen and (max-width: 768px) {
.hBanner .hero .hero__caption, .dBanner .hero .hero__caption {position:
absolute;}
.hBanner .hero .hero__caption .hero__title, .dBanner .hero
.hero__caption .hero__title, .qHeroSlider1
.featured-content-carousel-item__title {font-size: 46px;}
.hBanner .hero .hero__caption .btn--primary, .qHeroSlider1
.featured-content-carousel-item__overlay::after {font-size: 16px;
padding: 8px 20px;}
.hSingleColRedBgTxt .widget__subtitle {font-size: 22px;}
.hSearch .search-bar-widget input, .hSearch .search-bar-widget button
{font-size: 16px; height: 46px;}
.hSearch .search-bar-widget input {width: calc(100% - 100px);}
.hExploreTopicsHead .widget__title, .lhrb .widget__title {font-size:
32px;}
.hConsulting .hero .hero__caption .hero__title, .hProfessionalTraining
.hero .hero__caption .hero__title {font-size: 32px;}
.hConsulting .hero .hero__caption .h4, .hProfessionalTraining .hero
.hero__caption .h4 {font-size: 14px;}
.hConsulting .hero .hero__caption .btn--primary, .hProfessionalTraining
.hero .hero__caption .btn--primary {font-size: 14px; height: 36px;}
.hTestimonials .testimonial .testimonial-quote__text {font-size: 16px;}
.hTestimonials .testimonial .testimonial-quote__author-description,
.hTestimonials .testimonial .testimonial-quote__author-name {font-size:
14px;}
.hTestimonials .testimonial .testimonial-quote--right {padding: 40px
6%;}
.hRedBg3Col .columns {padding: 32px 20px;}
.hRedBg3Col p {font-size: 20px;}
.qFooter .logoNav nav {width: 100%;}
.qFooter .logoNav .logAdd, .qFooter .logoNav nav {width: 100%;}
.qFooter .logoNav nav {margin-bottom: 20px;}
.qFooter .copyrightPolicy .policySocial .policy, .qFooter
.copyrightPolicy .policySocial .socialLnks, .qFooter .copyrightPolicy
.policySocial {display: block; margin-bottom: 20px; text-align: center;
width: 100%;}
.qFooter .logoNav {padding: 40px 0;}
.qFooter .copyrightPolicy .copyright {text-align: center;}
.dBanner .hero .hero__caption .hero__title {max-width: 56%;}
.hExploreTopicsHead .widget__title, .lhrb .widget__title,
.learn.dashboard .dHeading .widget__title {font-size: 32px;}
.dRecommendations .widget__title, .dFeaturedContent h3, .qImageOverlay1
.widget__title, .qVideo1 .widget__title {font-size: 32px; margin-bottom:
16px;}
.hBusinessChallenge h3 {font-size: 32px; margin-bottom: 16px;}
.qVideo1 .widget__title {padding: 20px 4px;}
.qVideo1 .widget__title {margin-bottom: 0;}
.qAboutBlock1 p {min-height: 0; text-align: center;}
.qImageOverlay1 .widget__title {margin-bottom: 20px;}
.layout__content .qImageOverlay1, .layout__content .qVideo1,
.layout__content .qAboutBlock1 {padding: 40px 6%;}
}
@media only screen and (max-width: 580px) {
.header .company__beta-logo {width: 160px; margin-left: 12px;}
.hBanner .hero .hero__caption .hero__title {font-size: 28px;
margin-bottom: 16px;}
.hBanner .hero .hero__caption .btn--primary, .qHeroSlider1
.featured-content-carousel-item__overlay::after {font-size: 12px;}
.hSingleColRedBgTxt .widget__subtitle {font-size: 16px;}
.hExploreTopicsHead .widget__title, .lhrb .widget__title {font-size:
24px;}
.lhrb .ember-view > .ember-view {width: 100%; margin-bottom: 12px;}
.hConsulting .hero picture, .hProfessionalTraining .hero picture
{display: block; width: 100%;}
.hConsulting .hero .hero__caption, .hProfessionalTraining .hero
.hero__caption {width: 100%; padding: 32px 8%;}
.lhrb .ember-view .widget__cta .btn--primary, .hConsulting .hero
.hero__caption .btn--primary, .hProfessionalTraining .hero
.hero__caption .btn--primary {font-size: 12px; height: 30px;}
.hTestimonials .testimonial .testimonial-quote--right {width: 100%;}
.hTestimonials .testimonial.learner {background-size: cover;}
.qFooter .qFooterInner {font-size: 12px;}
.qFooter .logoNav nav .col {width: 100%;}
.qFooter .logoNav nav .col a {display: block; padding: 4px 0;}
.qFooter .logoNav .logAdd .logo {display: block; margin-bottom: 8px;}
.hExploreTopics .top-bar-section ul li {width: 100px;}
.dBanner .hero .hero__caption .hero__title {font-size: 28px; max-width:
70%;}
.hExploreTopicsHead .widget__title, .lhrb .widget__title,
.learn.dashboard .dHeading .widget__title, .dRecommendations
.widget__title, .dFeaturedContent h3 {font-size: 24px;}
.dLearnerAccess .dashboard-access-tabs li.dashboard-access-tab {width:
100%; margin: 0;}
.dRecommendations .featured-content-multi-carousel-item__title,
.hImpactTraining .featured-content-multi-carousel-item__title
{font-size: 18px;}
.dRecommendations .featured-content-multi-carousel-item__body,
.hImpactTraining .featured-content-multi-carousel-item__body
{min-height: 0;}
.dRecommendations .featured-content-multi-carousel-item::after,
.dFeaturedContent a, .hImpactTraining
.featured-content-multi-carousel-item::after {font-size: 14px; width:
94px; padding: 6px;}
.dFeaturedContent p {font-size: 14px; margin-bottom: 20px;}
.hBusinessChallenge h3 {font-size: 24px;}
.hBusinessChallenge .featured-content-multi-carousel-item__body
{min-height: 0;}
.hBusinessChallenge .featured-content-multi-carousel-item__title
{font-size: 18px;}
.hBusinessChallenge .featured-content-multi-carousel-item::after {
font-size: 14px; width: 94px; padding: 6px;}
.hFeaturedContent .featured-content-multi-carousel-item__body
{min-height: 0;}
.hFeaturedContent .featured-content-multi-carousel-item__title
{font-size: 18px;}
.hFeaturedContent .featured-content-multi-carousel-item::after {
font-size: 14px; width: 94px; padding: 6px;}
.dRecommendations .featured-content-multi-carousel__nav-right,
.hBusinessChallenge .featured-content-multi-carousel__nav-right,
.hFeaturedContent .featured-content-multi-carousel__nav-right {right:
-26px;}
.dRecommendations .featured-content-multi-carousel__nav-left,
.hBusinessChallenge .featured-content-multi-carousel__nav-left,
.hFeaturedContent .featured-content-multi-carousel__nav-left {left:
-26px;}
.dRecommendations .featured-content-multi-carousel__nav-right i,
.dRecommendations .featured-content-multi-carousel__nav-left i,
.hBusinessChallenge .featured-content-multi-carousel__nav-right i,
.hBusinessChallenge .featured-content-multi-carousel__nav-left i,
.hFeaturedContent .featured-content-multi-carousel__nav-right i,
.hFeaturedContent .featured-content-multi-carousel__nav-left i
{font-size: 48px;}
.qHeroSlider1 .featured-content-carousel-item__overlay {padding: 0
1rem;}
.qHeroSlider1 .featured-content-carousel-item__title {font-size: 28px;
margin-bottom: 12px;}
.qHeroSlider1 .featured-content-carousel__nav button {font-size: 36px;}
.qHeroSlider1 .featured-content-carousel__nav button:nth-child(2)
{right: 4%;}
.qHeroSlider1 .featured-content-carousel__nav button:nth-child(1) {left:
4%;}
}
/* For Course page - Start */
body.learn.course {background: none;}
.header--student .header__left__icon, .header--student
.header__left__icon:hover {background: var(--accent-color);}
.header--student .header__left__icon {padding: 10px 4px;}
.header--student .header__left__icon .icon-home {color:
var(--accent-contrast-color); font-size: 50px;}
.header--student {background: var(--accent-tinted-color-90);}
.header--student.header .company__beta-logo {margin: 0;}
.header--student .header__left__copy {padding: 1rem 2rem;}
.header--student .header__left__copy .course-title {font-size: 30px;
font-weight: 900; color: var(--accent-color); line-height: 50px;
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
}
.learner__container__toggle {margin-bottom: 32px;}
.learner__sidebar:hover .learner__container__toggle .hide-sidebar,
.learner__container__toggle .btn, .learner__container__toggle .btn
{background: var(--accent-color); font-size: 18px; padding: 12px;
border: 0; color: var(--accent-contrast-color); text-align: center;
height: auto;}
.learner__sidebar:hover .learner__container__toggle .hide-sidebar:hover,
.learner__container__toggle .btn:hover, .learner__container__toggle
.btn:hover {background: var(--accent-hover-color);}
.learner__container__toggle .btn i, .learner__container__toggle .btn i
{display: none;}
.learner__sidebar .learner__sidebar__search .ember-text-field {height:
45px !important; box-shadow: none; border: 1px solid
var(--lightGray-color);}
.learner__sidebar .learner__sidebar__search
.learner__sidebar__search-icon {top: 12px;}
.expandable-sidebar .expandable-sidebar__toggle {background: white;
font-size: 18px; font-weight: 400; color: #071834; border-bottom: 1px
solid #071834; padding: 12px 0; text-transform: none;}
.expandable-sidebar .expandable-sidebar__toggle
i.expandable-sidebar__icon--left {display: none;}
.expandable-sidebar .expandable-sidebar__toggle i.right {display:
inline-block; width: 14px; height: 14px; vertical-align: middle;}
.expandable-sidebar .expandable-sidebar__toggle i.right::before
{display: none;}
.expandable-sidebar .expandable-sidebar__toggle i.icon-navigateright
{background:
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpath d='M7 1v12M1 7h12' stroke='%23071834' stroke-width='2'/%3E%3C/svg%3E")
center no-repeat;}
.expandable-sidebar .expandable-sidebar__toggle i.icon-navigatedown
{background:
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpath d='M1 7h12' stroke='%23071834' stroke-width='2'/%3E%3C/svg%3E")
center no-repeat;}
.expandable-sidebar.expandable-sidebar--toggled
.expandable-sidebar__toggle {color: var(--accent-color);}
.learner__sidebar__expandables > .ember-view {margin-bottom: 20px;
display: block;}
.expandable-sidebar__buttons a {display: inline-block; padding: 12px
32px; background: var(--accent-color); color:
var(--accent-contrast-color); font-size: 18px; text-transform: none;}
.expandable-sidebar__buttons a:hover {background:
var(--accent-hover-color);}
.expandable-sidebar__buttons .right a {background: var(--accent-color);}
.expandable-sidebar__buttons .right a:hover {background:
var(--accent-hover-color);}
.expandable-sidebar__content {padding: .25em 0;}
.expandable-sidebar__content .learner__sidebar-list > li {padding: 0;}
.expandable-sidebar__content .learner__sidebar-inner-list
span.syllabus__section-title {font-size: 15px; font-weight: 700;
color:var(--accent-color); text-transform: none;}
.expandable-sidebar__content .learner__sidebar-inner-list
span.syllabus__section-title::before { content: "\E61D"; display:
inline-block; font-family: 'ti-icons-rev2';}
.expandable-sidebar__content
.learner__sidebar-inner-list.syllabus__section--active
span.syllabus__section-title {color: var(--accent-color);}
.learner-section__title__container {font-size: 25px;
color:var(--secondary-color);}
.section-progress-bar span {height: 8px; background:
var(--accent-color);}
.directional__nav {margin-bottom: 20px;}
.directional__nav .directional__nav__label {visibility: visible;
color:var(--accent-color);}
.directional__nav a, .directional__nav button.directional-nav__arrow
{color:var(--accent-color);}
.directional__nav__button {background: none; color:var(--accent-color);}
.topic__content.topic__content--text {width: 100%;}
@media only screen and (max-width: 1360px) {
.expandable-sidebar__buttons a {padding: 8px 24px;}
}
@media only screen and (max-width: 1279px) {
.expandable-sidebar__buttons a {padding: 8px 12px;}
}
@media only screen and (max-width: 768px) {
.header--student .header__left__copy .course-title {font-size: 28px;
line-height: 36px;}
.learner__sidebar:hover .learner__container__toggle .hide-sidebar,
.learner__container__toggle .btn, .learner__container__toggle .btn,
.expandable-sidebar__buttons a { font-size: 14px; padding: 8px 24px;}
}
@media only screen and (max-width: 580px) {
.header--student .header__left__copy {padding: 1rem;}
.header--student .header__left__copy .course-title {font-size: 24px;}
}
/* For Course page - End */

/* HG Insider hero - overlay caption on banner */
.hInsiderHero .hero {
  position: relative;
  background-color: #071834;
  background-image: linear-gradient(225deg, #FF4A4A 0 48px, transparent 48px);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  height: 160px;
}

@media only screen and (max-width: 1024px) {
  .hInsiderHero .hero {
    height: 240px;
  }
}

@media only screen and (max-width: 768px) {
  .hInsiderHero .hero {
    height: 200px;
  }
}

.hInsiderHero .hero picture {
  display: none !important;
}

.hInsiderHero .hero .hero__caption {
  position: absolute !important;
  top: 50% !important;
  bottom: auto !important;
  left: 0 !important;
  right: 0 !important;
  transform: translateY(-50%) !important;
  padding: 0 8% !important;
  background: none !important;
  text-align: left !important;
}

.hInsiderHero .hero .hero__caption .hero__title {
  color: white !important;
  font-size: 48px !important;
  font-weight: 900 !important;
  margin: 0 0 20px 0 !important;
  max-width: 95% !important;
  text-align: left !important;
  line-height: 1.1 !important;
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
}

.hInsiderHero .hero .hero__caption .h4 {
  display: block !important;
  color: white !important;
  font-size: 22px !important;
  font-weight: 400 !important;
  max-width: 95% !important;
  text-align: left !important;
  margin: 0 !important;
  line-height: 1.3 !important;
}

.hInsiderHero .hero .hero__caption .hero__title,
.hInsiderHero .hero .hero__caption .h4 {
  text-shadow: 0 1px 3px rgba(0,0,0,0.2);
}

.hInsiderHero .hero picture {
  display: block;
  width: 100%;
  height: 380px;
  overflow: hidden;
}

.hInsiderHero .hero picture img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* Shrink on smaller screens */
@media only screen and (max-width: 1024px) {
  .hInsiderHero .hero picture {
    height: 300px;
  }
}

@media only screen and (max-width: 768px) {
  .hInsiderHero .hero picture {
    height: 240px;
  }
}

/* Tablet */
@media only screen and (max-width: 1024px) {
  .hInsiderHero .hero .hero__caption .hero__title {
    font-size: 44px !important;
    max-width: 75% !important;
  }
  .hInsiderHero .hero .hero__caption .h4 {
    font-size: 20px !important;
    max-width: 75% !important;
  }
}

/* Mobile */
@media only screen and (max-width: 768px) {
  .hInsiderHero .hero .hero__caption {
    padding: 0 6% !important;
  }
  .hInsiderHero .hero .hero__caption .hero__title {
    font-size: 32px !important;
    max-width: 90% !important;
    margin-bottom: 12px !important;
  }
  .hInsiderHero .hero .hero__caption .h4 {
    font-size: 16px !important;
    max-width: 90% !important;
  }
}

/* End TI Theme 2 CSS*/

/* Hide Cart */
#cart-button {display:none;}

/* === HG Insights Academy header restructure === */

/* 1. Hide the "HG Insights Academy" text next to the logo */
.company__school-name {
  display: none !important;
}

.company__school-name__divider {
  display: inline-block !important;
  position: relative !important;
  top: -6px !important;
}


/* 2. Float the global nav links over the header area */
.nav--global-links {
  background: transparent !important;
  border: 0 !important;
  position: absolute !important;
  top: 20px !important;
  left: 370px !important;
  z-index: 100 !important;
  display: flex !important;
  align-items: center !important;
  gap: 20px !important;
  padding: 0 !important;
  margin: 0 !important;
  white-space: nowrap !important;
}

@media only screen and (max-width: 900px) {
  .nav--global-links {
    left: 220px !important;
    gap: 20px !important;
  }
}

@media only screen and (max-width: 640px) {
  .nav--global-links {
    display: none !important;
  }
}

/* 3. Style the nav links to match HG Insights main site */
.nav--global-links a {
  color: #071834 !important;
  text-decoration: none !important;
  font-family: "basic-sans", "Basic Sans", "DM Sans", "Helvetica Neue", Arial, sans-serif !important;
  font-weight: 600 !important;
  transition: color 180ms ease, text-decoration-color 180ms ease !important;
  font-size: 15px !important;
  margin: 0 !important;
  padding: 0px 8px !important;
}

.nav--global-links a:hover {
  color: #071834 !important;
  text-decoration: underline !important;
  text-decoration-color: #FF4A4A !important;
  text-decoration-thickness: 2px !important;
  text-underline-offset: 6px !important;
}

.nav--global-links a.active,
.nav--global-links a.is-active,
.nav--global-links a[aria-current="page"] {
  color: #071834 !important;
  text-decoration: underline !important;
  text-decoration-color: #FF4A4A !important;
  text-decoration-thickness: 2px !important;
  text-underline-offset: 6px !important;
  font-weight: 600 !important;
}

.nav--global-links a:focus-visible {
  outline: 2px solid #071834;
  outline-offset: 3px;
  border-radius: 2px;
}

/* Tighten the Manager Access button to match nav height */
.nav--top ul a,
.nav--top ul button {
  padding: 8px 14px !important;
  font-size: 13px !important;
  line-height: 1.2 !important;
  height: auto !important;
}

/* === End HG Insights Academy header restructure === */

/* Homepage Hero Image Gradient */
.hHomepageHero .hero {
  position: relative;
  background-image: url(https://media.thoughtindustries.com/thoughtindustries/image/upload/f_auto,q_auto/g_face/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/l1ok7m33xhu0-shutterstock_13569163822.jpg);
  background-size: cover;
  background-position: center;
  background-color: #071834;
  height: 480px;
}

.hHomepageHero .hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(7, 24, 52, .94) 0%, rgba(7, 24, 52, .80) 42%, rgba(7, 24, 52, .20) 100%);
  pointer-events: none;
}

.hHomepageHero .hero .hero__caption {
  position: absolute !important;
  top: 50% !important;
  bottom: auto !important;
  left: 0 !important;
  right: 0 !important;
  transform: translateY(-50%) !important;
  padding: 0 8% !important;
  background: none !important;
  text-align: left !important;
  z-index: 2 !important;
}

.hHomepageHero .hero .hero__caption .hero__title {
  color: white !important;
  font-size: 60px !important;
  font-weight: 900 !important;
  margin: 0 0 20px 0 !important;
  max-width: 95% !important;
  text-align: left !important;
  letter-spacing: -0.01em;
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
}

.hHomepageHero .hero .hero__caption .h4 {
  display: block !important;
  color: white !important;
  font-size: 24px !important;
  font-weight: 400 !important;
  max-width: 95% !important;
  text-align: left !important;
  margin: 0 !important;
}

.hHomepageHero .hero picture {
  display: none !important;
}

.hHomepageHero .hero .hero__caption .btn--primary {
  margin-top: 24px !important;
  font-size: 18px !important;
  padding: 14px 32px !important;
  border-radius: 28px !important;
  font-weight: 600 !important;
  background: #FF4A4A !important;
  color: #071834 !important;
  border: 0 !important;
  font-weight: 700 !important;
  transition: background-color .18s ease !important;
}

.hHomepageHero .hero .hero__caption .btn--primary:hover,
.hHomepageHero .hero .hero__caption .btn--primary:focus {
  background: #FFFFFF !important;
  color: #071834 !important;
}

/* HG Insights - "What's Included" sidebar block */

/* Section title becomes an HG-purple eyebrow label */
.course__includes__title {
  color: #3B465B !important;
  font-family: "basic-sans", "Basic Sans", "DM Sans", "Helvetica Neue", Arial, sans-serif !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 1.4px !important;
  text-transform: uppercase !important;
  display: block !important;
  margin: 0 0 14px 0 !important;
  line-height: 1.4 !important;
}

/* Reset the inner i18n span so it inherits cleanly */
.course__includes__title > span,
.course__includes__title span[id^="i18n-"] {
  color: inherit !important;
  font: inherit !important;
  letter-spacing: inherit !important;
  text-transform: inherit !important;
}

/* Hide the default hr separator - the eyebrow stands on its own */
.course__includes hr {
  display: none !important;
}

/* List spacing and typography */
.course__includes__list {
  padding: 0 !important;
  margin: 0 !important;
  list-style: none !important;
}

.course__includes__list li {
  font-family: "basic-sans", "Basic Sans", "DM Sans", "Helvetica Neue", Arial, sans-serif !important;
  font-size: 14px !important;
  line-height: 1.55 !important;
  color: #3B465B !important;
  margin: 0 0 14px 0 !important;
}

.course__includes__list li:last-child {
  margin-bottom: 0 !important;
}

/* HG Insights - "Share This" sidebar block */

.course__detail__social .heading--alt {
  color: #3B465B !important;
  font-family: "basic-sans", "Basic Sans", "DM Sans", "Helvetica Neue", Arial, sans-serif !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 1.4px !important;
  text-transform: uppercase !important;
  display: block !important;
  margin: 0 0 14px 0 !important;
  line-height: 1.4 !important;
}

/* Reset the inner i18n span so it inherits cleanly */
.course__detail__social .heading--alt > span,
.course__detail__social .heading--alt span[id^="i18n-"] {
  color: inherit !important;
  font: inherit !important;
  letter-spacing: inherit !important;
  text-transform: inherit !important;
}

/* HG Insights - Sidebar card wrappers (Share This + What's Included) */

.course__detail__social,
.course__includes {
  background: #ffffff !important;
  border: 1px solid rgba(7, 24, 52, 0.18) !important;
  border-radius: 12px !important;
  padding: 20px !important;
  margin: 0 0 16px 0 !important;
  box-shadow: none !important;
}

/* Strip any styling on the outer Ember widget wrapper so the inner
   container is the only visual card. .row is part of TI's grid system
   and should keep its layout role, but visual styles get neutralized. */
.widget--course-social,
.widget--course-social_standard {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
}

/* HG Insights - Share This: LinkedIn-only pill */

/* Hide Facebook, X, and Pinterest list items */
.course__detail__social li:has(.btn--facebook),
.course__detail__social li:has(.btn--twitter),
.course__detail__social li:has(.btn--pinterest) {
  display: none !important;
}

/* Reset the share list container - remove flex row, default list styling */
.course__detail__social ul {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

/* Restyle the LinkedIn anchor as a prominent branded pill */
.course__detail__social .btn--linkedin {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 10px 18px !important;
  background: #071834 !important;
  color: #ffffff !important;
  font-family: "basic-sans", "Basic Sans", "DM Sans", "Helvetica Neue", Arial, sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  border-radius: 24px !important;
  text-decoration: none !important;
  border: none !important;
  width: auto !important;
  height: auto !important;
  line-height: 1 !important;
  transition: background 180ms ease, transform 180ms ease !important;
}

/* Hover state - slightly darker HG blue + 1px lift */
.course__detail__social .btn--linkedin:hover {
  background: #3B465B !important;
  transform: translateY(-1px) !important;
  color: #ffffff !important;
}

/* The LinkedIn icon inherits white color and slightly larger size */
.course__detail__social .btn--linkedin .icon-linkedin {
  color: #ffffff !important;
  font-size: 16px !important;
}

/* Add the "Share on LinkedIn" text after the icon */
.course__detail__social .btn--linkedin::after {
  content: 'Share on LinkedIn';
  font: inherit;
}

/* HG Insights - "Access HG Insider Session" primary CTA button */

.widget--course-purchase .btn--primary {
  background: #071834 !important;
  color: #ffffff !important;
  font-family: "basic-sans", "Basic Sans", "DM Sans", "Helvetica Neue", Arial, sans-serif !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  border-radius: 12px !important;
  border: none !important;
  padding: 14px 24px !important;
  text-decoration: none !important;
  transition: background 180ms ease, transform 180ms ease, box-shadow 180ms ease !important;
}

.widget--course-purchase .btn--primary:hover {
  background: #3B465B !important;
  color: #ffffff !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 12px rgba(7, 24, 52, 0.25) !important;
}

.widget--course-purchase .btn--primary:active {
  transform: translateY(0) !important;
  box-shadow: 0 2px 6px rgba(7, 24, 52, 0.2) !important;
}

.widget--course-purchase .btn--primary:focus-visible {
  outline: 2px solid #3B465B;
  outline-offset: 3px;
}

/* Reset the inner span so it inherits color and typography cleanly */
.widget--course-purchase .btn--primary > span {
  font: inherit !important;
  color: inherit !important;
}

.course__detail__header h1 {
  color: #071834 !important;
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
  font-weight: 900 !important;
}

/* HG Insights - Add to Calendar widget styling */

.hg-cal {
  background: #ffffff !important;
  border: 1px solid rgba(7, 24, 52, 0.18) !important;
  border-radius: 12px !important;
  padding: 20px !important;
  margin: 0 0 16px 0 !important;
  font-family: "basic-sans", "Basic Sans", "DM Sans", "Helvetica Neue", Arial, sans-serif !important;
}

.hg-cal__eyebrow {
  display: block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.4px;
  color: #3B465B;
  text-transform: uppercase;
  margin-bottom: 6px;
}

.hg-cal__when {
  font-size: 14px;
  color: #071834;
  font-weight: 700;
  margin: 0 0 14px 0;
}

.hg-cal__buttons {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.hg-cal__btn {
  display: inline-block;
  padding: 10px 14px;
  background: transparent;
  color: #071834;
  font-size: 13px;
  font-weight: 600;
  border: 1px solid rgba(7, 24, 52, 0.3);
  border-radius: 8px;
  text-decoration: none;
  text-align: center;
  transition: background 180ms ease, color 180ms ease, border-color 180ms ease;
}

.hg-cal__btn:hover {
  background: #071834;
  color: #ffffff;
  border-color: #071834;
}

/* HG Insights - Custom "What's Included" widget icon overrides */

/* Override the default TI icon font glyph for our custom icons */
.hg-icon {
  position: relative !important;
}

.hg-icon::before {
  content: '' !important;
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  width: 18px !important;
  height: 18px !important;
  background-color: #ffffff !important;
  mask-size: contain !important;
  mask-position: center !important;
  mask-repeat: no-repeat !important;
  -webkit-mask-size: contain !important;
  -webkit-mask-position: center !important;
  -webkit-mask-repeat: no-repeat !important;
  font-family: inherit !important;
  font-size: 0 !important;
}

/* Live sessions icon */
.hg-icon--live::before {
  mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 10l4.553 -2.276a1 1 0 0 1 1.447 .894v6.764a1 1 0 0 1 -1.447 .894l-4.553 -2.276v-4z"/><rect x="3" y="6" width="12" height="12" rx="2"/></svg>') !important;
  -webkit-mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 10l4.553 -2.276a1 1 0 0 1 1.447 .894v6.764a1 1 0 0 1 -1.447 .894l-4.553 -2.276v-4z"/><rect x="3" y="6" width="12" height="12" rx="2"/></svg>') !important;
}

/* On-demand recording icon */
.hg-icon--recording::before {
  mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><polygon points="10 8 16 12 10 16 10 8" fill="black"/></svg>') !important;
  -webkit-mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><polygon points="10 8 16 12 10 16 10 8" fill="black"/></svg>') !important;
}

/* Badge / achievement icon */
.hg-icon--badge::before {
  mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="9" r="6"/><path d="M9 14.5l-2 7 5 -3 5 3 -2 -7"/></svg>') !important;
  -webkit-mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="9" r="6"/><path d="M9 14.5l-2 7 5 -3 5 3 -2 -7"/></svg>') !important;
}

/* HG Insights - Course detail page tab bar
   The earlier unscoped [role="tab"] version was removed: it matched every
   tab widget on the site, including ones outside the course detail page.
   These rules require [aria-controls], which only TI's content tabs carry. */

/* Tab list container - subtle bottom rule in HG blue */
body.course-group [role="tablist"] {
  display: flex !important;
  gap: 0 !important;
  border: none !important;
  border-bottom: 1px solid rgba(7, 24, 52, 0.12) !important;
  background: transparent !important;
  margin: 0 0 24px !important;
  padding: 0 !important;
  list-style: none !important;
}

/* Each tab - inactive state */
body.course-group [role="tab"][aria-controls] {
  display: inline-block !important;
  padding: 14px 24px !important;
  background: transparent !important;
  color: #6C7484 !important;
  font-family: "basic-sans", "Basic Sans", "DM Sans", "Helvetica Neue", Arial, sans-serif !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  border: none !important;
  border-bottom: 3px solid transparent !important;
  border-radius: 0 !important;
  margin-bottom: -1px !important;
  cursor: pointer;
  transition: color 180ms ease, border-color 180ms ease;
  text-decoration: none !important;
}

/* Make sure the inner <span> inherits color and doesn't carry leftover styles */
body.course-group [role="tab"][aria-controls] > span {
  background: transparent !important;
  color: inherit !important;
  font: inherit !important;
}

/* Hover state on inactive tabs - preview the selection in HG purple */
body.course-group [role="tab"][aria-controls][aria-selected="false"]:hover,
body.course-group [role="tab"][aria-controls]:not([aria-selected="true"]):hover {
  color: #3B465B !important;
}

/* Active tab - HG blue text + thick HG blue underline */
body.course-group [role="tab"][aria-controls][aria-selected="true"] {
  color: #071834 !important;
  font-weight: 700 !important;
  background: transparent !important;
  border-bottom: 3px solid #FF4A4A !important;
}

/* Focus state - accessible keyboard outline in HG blue */
body.course-group [role="tab"][aria-controls]:focus-visible {
  outline: 2px solid #071834;
  outline-offset: 2px;
}

/* HG Insights - "Upcoming and On-Demand HG Insider Sessions" title/subtitle widget */

.hg-insider-intro {
  text-align: center !important;
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}

.hg-insider-intro .widget__title {
  color: #071834 !important;
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
  font-weight: 900 !important;
  font-size: 32px !important;
  text-align: center !important;
  margin: 0 0 12px 0 !important;
  border-bottom: none !important;
  box-shadow: none !important;
  background-image: none !important;
}

.hg-insider-intro .widget__title::before,
.hg-insider-intro .widget__title::after {
  content: none !important;
  display: none !important;
}

.hg-insider-intro .widget__subtitle {
  color: #6C7484 !important;
  font-family: "basic-sans", "Basic Sans", "DM Sans", "Helvetica Neue", Arial, sans-serif !important;
  font-weight: 400 !important;
  font-size: 17px !important;
  line-height: 1.5 !important;
  text-align: center !important;
  max-width: 900px !important;
  margin: 0 auto 8px auto !important;
  border-top: none !important;
  box-shadow: none !important;
  background-image: none !important;
}

.hg-insider-intro .widget__subtitle::before,
.hg-insider-intro .widget__subtitle::after {
  content: none !important;
  display: none !important;
}

/* HG Insights - "HG Insider Sessions" featured-content widget (homepage).
   Scoped to .hg-insider-tiles, the custom class added via the widget's own
   settings panel, so this can't match any other featured-content widget. */

.hg-insider-tiles .widget__title {
  color: #071834 !important;
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
  font-weight: 900 !important;
  font-size: 32px !important;
  text-align: center !important;
  margin: 0 0 32px 0 !important;
}

.hg-insider-tiles.hg-insider-tiles .featured-content-block-grid.featured-content-block-grid.small-block-grid-1.medium-block-grid-2 {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 24px !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.hg-insider-tiles.hg-insider-tiles .featured-content-block-grid.small-block-grid-1.medium-block-grid-2 > li,
.hg-insider-tiles.hg-insider-tiles .featured-content-block-grid.small-block-grid-1.medium-block-grid-2 > li.medium-block-grid-2,
html body .hg-insider-tiles .featured-content-block-grid.small-block-grid-1.medium-block-grid-2 > li {
  float: none !important;
  clear: none !important;
  width: auto !important;
  flex: 1 1 50% !important;
  min-width: 0 !important;
  padding: 0 !important;
}

.hg-insider-tiles .catalog-item {
  display: block !important;
  min-width: 0 !important;
  border: 1px solid rgba(7, 24, 52, 0.18) !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  text-decoration: none !important;
  height: 100%;
  transition: box-shadow 180ms ease, transform 180ms ease;
}

.hg-insider-tiles .catalog-item:hover {
  box-shadow: 0 6px 18px rgba(7, 24, 52, 0.15);
  transform: translateY(-2px);
}

.hg-insider-tiles .featured-content-article-item {
  min-width: 0;
}

.hg-insider-tiles .featured-content-article-item .row {
  display: flex !important;
  margin: 0 !important;
  min-width: 0;
  height: 100%;
}

.hg-insider-tiles .featured-content-article-item .column {
  padding: 0 !important;
}

/* Image column - locked to the graphic's real 750x361 aspect ratio so
   the full image always shows with nothing cropped off the sides */
.hg-insider-tiles .featured-content-article-item .column:first-child {
  flex: 0 0 45% !important;
  max-width: 45% !important;
  align-self: flex-start !important;
  aspect-ratio: 750 / 361;
  height: auto !important;
  overflow: hidden;
}

.hg-insider-tiles .featured-content-article-item .column:first-child img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  border-radius: 12px !important;
}

/* Body column */
.hg-insider-tiles .featured-content-article-item .column:last-child {
  flex: 0 0 55% !important;
  max-width: 55% !important;
  display: flex;
  align-items: flex-start;
}

.hg-insider-tiles .featured-content-article-item__body {
  padding: 0 28px 24px 28px !important;
}

.hg-insider-tiles .featured-content-article-item__title {
  position: relative;
  display: block;
  color: #071834 !important;
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
  font-size: 19px !important;
  font-weight: 700 !important;
  margin: 0 0 18px 0 !important;
  padding-bottom: 12px;
  border-bottom: none !important;
  box-shadow: none !important;
  text-decoration: none !important;
  background-image: none !important;
}

.hg-insider-tiles .featured-content-article-item__title::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 40px;
  height: 3px;
  background: #FF4A4A;
}

.hg-insider-tiles .featured-content-article-item__description {
  color: #3B465B !important;
  font-family: "basic-sans", "Basic Sans", "DM Sans", "Helvetica Neue", Arial, sans-serif !important;
  font-size: 14px !important;
  line-height: 1.55 !important;
  margin: 0 !important;
}

/* Kill the platform's own default divider pseudo-element on the
   description text - this was the second line, unrelated to our
   title's ::after accent bar */
.hg-insider-tiles .featured-content-article-item__description::before {
  content: none !important;
  display: none !important;
  width: 0 !important;
  height: 0 !important;
}

@media only screen and (max-width: 768px) {
  .hg-insider-tiles .featured-content-block-grid {
    flex-direction: column !important;
  }
  .hg-insider-tiles .featured-content-block-grid > li {
    flex: 1 1 100% !important;
  }
  .hg-insider-tiles .featured-content-article-item .row {
    flex-direction: column !important;
  }
  .hg-insider-tiles .featured-content-article-item .column:first-child,
  .hg-insider-tiles .featured-content-article-item .column:last-child {
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }
  .hg-insider-tiles .featured-content-article-item .column:first-child {
    aspect-ratio: 750 / 361;
  }
}

/* HG Insights - mobile nav */

.hg-mobile-nav-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 32px;
  height: 32px;
  background: transparent;
  border: none;
  cursor: pointer;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 120px;
  z-index: 200;
  padding: 0;
}

.hg-mobile-nav-toggle span {
  display: block;
  width: 22px;
  height: 2px;
  background: #071834;
  border-radius: 2px;
  transition: transform 180ms ease, opacity 180ms ease;
}

.hg-mobile-nav-toggle.is-active span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.hg-mobile-nav-toggle.is-active span:nth-child(2) {
  opacity: 0;
}

.hg-mobile-nav-toggle.is-active span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

.hg-mobile-nav-panel {
  display: none;
  flex-direction: column;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: #ffffff;
  border-top: 1px solid rgba(7, 24, 52, 0.12);
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.08);
  z-index: 199;
}

.hg-mobile-nav-panel.is-open {
  display: flex;
}

.hg-mobile-nav-panel a {
  padding: 16px 24px;
  color: #071834;
  font-family: "basic-sans", "Basic Sans", "DM Sans", "Helvetica Neue", Arial, sans-serif;
  font-weight: 600;
  font-size: 15px;
  text-decoration: none;
  border-bottom: 1px solid rgba(7, 24, 52, 0.08);
}

.hg-mobile-nav-panel a:last-child {
  border-bottom: none;
}

.hg-mobile-nav-panel a:hover {
  background: rgba(7, 24, 52, 0.04);
}

@media only screen and (min-width: 641px) {
  .hg-mobile-nav-toggle,
  .hg-mobile-nav-panel {
    display: none !important;
  }
}

@media only screen and (max-width: 640px) {
  .hg-mobile-nav-toggle {
    display: flex !important;
  }
  .header__inner {
    position: relative;
  }
}

/* ==========================================================
   HG Insider - detail hero image overrides
   Thought Industries | theme-level Custom CSS

   WHY: TI hardcodes a_exif,c_fill,w_800,h_450 on the detail
   hero. That 800px derivative paints into ~800 CSS px, so on
   a 2x display it renders at ~50% of needed resolution. These
   rules repaint the box from a w_1600 derivative instead.

   HOW TO ADD A SESSION:
     1. On the session's DETAIL page, run in DevTools console:
          document.querySelector('.course__detail__asset [srcset]').srcset
        (must be the c_fill,w_800,h_450 URL - NOT c_fit,w_300,
         which is the catalog thumbnail, a different upload)
     2. Append the public ID to lists 1 and 2.
     3. Add one background block to list 3.
     All three must stay in sync. A selector present in list 2
     without a matching background in list 3 = empty box.

   HOW TO RETIRE A SESSION: delete it from all three lists.

   PROVENANCE NOTE: Sept + Aug IDs confirmed from detail pages.
   Jul / Jun / Apr / Mar / Feb IDs were taken from catalog
   thumbnails (c_fit,w_300), so they are unconfirmed for the
   detail slot. If a session's hero doesn't change, that
   session used a separate upload for its Detail Image and
   needs its real ID harvested per step 1 above.
   ========================================================== */


/* ----------------------------------------------------------
   1. Shared geometry
   ---------------------------------------------------------- */
.course__detail__asset:has([srcset*="hg-insider-sept2026-titlecard"]),
.course__detail__asset:has([srcset*="bjwc8hh6r7m1-gjgaajtvpxaa4asmsc74"]),
.course__detail__asset:has([srcset*="z9ssisi1rsw6-k7lixgiokod53c3walez"]),
.course__detail__asset:has([srcset*="hwm1d73fpn6w-nec5hzqcterq0cnbgo5j"]),
.course__detail__asset:has([srcset*="1db1jqbi0jst-mizkufa4bwe1ofbbqo58"]),
.course__detail__asset:has([srcset*="1q2l66eoj7wp-hg-insider-march-2026"]),
.course__detail__asset:has([srcset*="2m0zbgkpp6m7-snleoap4tsfw1mq2x4ru"]) {
  width: 100%;
  aspect-ratio: 16 / 9;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}


/* ----------------------------------------------------------
   2. Hide TI's <picture> - same list as above
   ---------------------------------------------------------- */
.course__detail__asset:has([srcset*="hg-insider-sept2026-titlecard"]) picture,
.course__detail__asset:has([srcset*="bjwc8hh6r7m1-gjgaajtvpxaa4asmsc74"]) picture,
.course__detail__asset:has([srcset*="z9ssisi1rsw6-k7lixgiokod53c3walez"]) picture,
.course__detail__asset:has([srcset*="hwm1d73fpn6w-nec5hzqcterq0cnbgo5j"]) picture,
.course__detail__asset:has([srcset*="1db1jqbi0jst-mizkufa4bwe1ofbbqo58"]) picture,
.course__detail__asset:has([srcset*="1q2l66eoj7wp-hg-insider-march-2026"]) picture,
.course__detail__asset:has([srcset*="2m0zbgkpp6m7-snleoap4tsfw1mq2x4ru"]) picture {
  display: none;
}


/* ----------------------------------------------------------
   3. One background block per session
   ---------------------------------------------------------- */

/* September 2026 - confirmed from detail page */
.course__detail__asset:has([srcset*="hg-insider-sept2026-titlecard"]) {
  background-image: url("https://media.thoughtindustries.com/thoughtindustries/image/upload/a_exif,c_fill,w_1600,h_900,f_auto,q_auto:best/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/0in4wy8oplpd-hg-insider-sept2026-titlecard.png");
}

/* August 2026 - confirmed from detail page */
.course__detail__asset:has([srcset*="bjwc8hh6r7m1-gjgaajtvpxaa4asmsc74"]) {
  background-image: url("https://media.thoughtindustries.com/thoughtindustries/image/upload/a_exif,c_fill,w_1600,h_900,f_auto,q_auto:best/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/bjwc8hh6r7m1-gjgaajtvpxaa4asmsc74.png");
}

/* July 2026 - ID from catalog thumbnail, unconfirmed */
.course__detail__asset:has([srcset*="z9ssisi1rsw6-k7lixgiokod53c3walez"]) {
  background-image: url("https://media.thoughtindustries.com/thoughtindustries/image/upload/a_exif,c_fill,w_1600,h_900,f_auto,q_auto:best/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/z9ssisi1rsw6-k7lixgiokod53c3walez.png");
}

/* June 2026 - ID from catalog thumbnail, unconfirmed */
.course__detail__asset:has([srcset*="hwm1d73fpn6w-nec5hzqcterq0cnbgo5j"]) {
  background-image: url("https://media.thoughtindustries.com/thoughtindustries/image/upload/a_exif,c_fill,w_1600,h_900,f_auto,q_auto:best/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/hwm1d73fpn6w-nec5hzqcterq0cnbgo5j.png");
}

/* April 2026 - ID from catalog thumbnail, unconfirmed */
.course__detail__asset:has([srcset*="1db1jqbi0jst-mizkufa4bwe1ofbbqo58"]) {
  background-image: url("https://media.thoughtindustries.com/thoughtindustries/image/upload/a_exif,c_fill,w_1600,h_900,f_auto,q_auto:best/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/1db1jqbi0jst-mizkufa4bwe1ofbbqo58.png");
}

/* March 2026 - ID from catalog thumbnail, unconfirmed */
.course__detail__asset:has([srcset*="1q2l66eoj7wp-hg-insider-march-2026"]) {
  background-image: url("https://media.thoughtindustries.com/thoughtindustries/image/upload/a_exif,c_fill,w_1600,h_900,f_auto,q_auto:best/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/1q2l66eoj7wp-hg-insider-march-2026.png");
}

/* February 2026 - ID from catalog thumbnail, unconfirmed */
.course__detail__asset:has([srcset*="2m0zbgkpp6m7-snleoap4tsfw1mq2x4ru"]) {
  background-image: url("https://media.thoughtindustries.com/thoughtindustries/image/upload/a_exif,c_fill,w_1600,h_900,f_auto,q_auto:best/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/2m0zbgkpp6m7-snleoap4tsfw1mq2x4ru.png");
}
/* ==========================================================================
   HG INSIDER EVENTS PAGE - intro content block
   Thought Industries | Custom CSS  (append to the Academy stylesheet)

   Companion markup: hg-insider-events-widget.html

   SCOPING RULE - read before editing:
   TI's Custom CSS is GLOBAL even when authored inside one page's editor.
   Every rule below is therefore descended from `.hgi-insider`, a class that
   exists nowhere else on the site. Nothing here touches a TI class, an
   element selector, or :root. If you add a rule, keep the `.hgi-insider `
   prefix or it will repaint pages you weren't looking at.

   The `.hg-cal` rules in section 8 are LOCAL OVERRIDES of the existing
   sidebar calendar widget. They are also prefixed, so the sidebar version on
   course detail pages is unaffected.

   IMAGE URLS - both images in the markup are Cloudinary-hosted. Use the
   transformation segment  a_exif,c_fill,w_1600,h_900,f_auto,q_auto:best
   and copy the rest of the path verbatim, same rule as the title-card
   stylesheet. TI's own derivative caps at w_800 and looks soft on 2x
   displays; w_1600 is what makes these render crisp.
   ========================================================================== */


/* --------------------------------------------------------------------------
   1. Scoped tokens + outer spacing
   Declared on the wrapper, not :root, so they cannot leak into TI's own CSS.
   -------------------------------------------------------------------------- */
.hgi-insider {
  --hgi-dark-blue:  #071834;
  --hgi-blue:       #3B465B;
  --hgi-light-blue: #CED1D6;
  --hgi-melon:      #FF4A4A;
  --hgi-purple:     #3B465B;
  --hgi-off-white:  #EFE4DC;
  --hgi-white:      #FFFFFF;

  --hgi-text-dark:  #071834;
  --hgi-text-mid:   #3B465B;
  --hgi-text-light: #6C7484;
  --hgi-border:     #EFE4DC;

  --hgi-blue-hover:      #6C7484;
  --hgi-dark-blue-hover: #3B465B;

  --hgi-grad-hero: #071834;
  --hgi-grad-band: #071834;

  --hgi-font: "basic-sans", "Basic Sans", "DM Sans", "Helvetica Neue", Arial, sans-serif;
  --hgi-radius: 10px;
  --hgi-tracking-eyebrow: 0.12em;

  /* Match the catalog grid's content column so the block lines up with it. */
  --hgi-max-width: 1340px;

  max-width: var(--hgi-max-width);
  /* Top margin clears the Academy header nav. */
  margin: 36px auto 8px;
  padding: 0 24px;
  font-family: var(--hgi-font);
  color: var(--hgi-text-dark);
  line-height: 1.45;
  -webkit-font-smoothing: antialiased;
}

.hgi-insider *,
.hgi-insider *::before,
.hgi-insider *::after { box-sizing: border-box; }

.hgi-insider img { max-width: 100%; height: auto; display: block; }
.hgi-insider figure { margin: 0; }


/* --------------------------------------------------------------------------
   2. Shared pieces - eyebrow, buttons
   -------------------------------------------------------------------------- */
.hgi-insider .hgi-eyebrow {
  display: inline-block;
  margin: 0 0 14px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: var(--hgi-tracking-eyebrow);
  text-transform: uppercase;
  color: var(--hgi-dark-blue);
}

.hgi-insider .hgi-eyebrow--light { color: var(--hgi-melon); }

.hgi-insider .hgi-eyebrow::before {
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-right: 9px;
  vertical-align: 1px;
  background: var(--hgi-melon);
}

.hgi-insider .hgi-btn {
  display: inline-block;
  padding: 13px 26px;
  border: 2px solid transparent;
  border-radius: 6px;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .18s ease, color .18s ease, border-color .18s ease;
}

.hgi-insider .hgi-hero .hgi-btn--primary {
  background: var(--hgi-melon);
  color: var(--hgi-dark-blue);
}

.hgi-insider .hgi-hero .hgi-btn--primary:hover,
.hgi-insider .hgi-hero .hgi-btn--primary:focus {
  background: var(--hgi-white);
  color: var(--hgi-dark-blue);
  text-decoration: none;
}

.hgi-insider .hgi-spot .hgi-btn--primary {
  background: var(--hgi-dark-blue);
  color: var(--hgi-white);
}

.hgi-insider .hgi-spot .hgi-btn--primary:hover,
.hgi-insider .hgi-spot .hgi-btn--primary:focus {
  background: var(--hgi-dark-blue-hover);
  color: var(--hgi-white);
  text-decoration: none;
}

.hgi-insider a:focus-visible {
  outline: 3px solid var(--hgi-melon);
  outline-offset: 3px;
}


/* --------------------------------------------------------------------------
   3. Hero
   -------------------------------------------------------------------------- */
.hgi-insider .hgi-hero {
  position: relative;
  overflow: hidden;
  border-radius: var(--hgi-radius);
  background: linear-gradient(225deg, var(--hgi-melon) 0 56px, transparent 56px), var(--hgi-grad-hero);
  color: var(--hgi-white);
  padding: 52px 48px 50px;
}

/* Soft depth wash behind the image - decorative only. */
.hgi-insider .hgi-hero::after {
  content: "";
  position: absolute;
  top: auto; left: auto;
  right: 18px;
  bottom: 14px;
  width: 10px;
  height: 10px;
  padding: 0;
  border-radius: 0;
  background: #FF4A4A;
  box-shadow: -10px -10px 0 #FF4A4A, 0 -20px 0 #F09895, -20px 0 0 #F09895;
  pointer-events: none;
}

.hgi-insider .hgi-hero__grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 460px;
  gap: 44px;
  align-items: center;
}

.hgi-insider .hgi-hero__inner { min-width: 0; }

.hgi-insider .hgi-hero__title {
  margin: 0 0 18px;
  font-size: 42px;
  font-weight: 900;
  line-height: 1.12;
  letter-spacing: -0.01em;
  color: var(--hgi-white);
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
}

.hgi-insider .hgi-hero__lead {
  margin: 0 0 24px;
  font-size: 18px;
  line-height: 1.55;
  color: rgba(255, 255, 255, .92);
}

/* Fact pills - sized to sit on a single row beside the hero image.
   Adding a fifth pill, or lengthening one, will wrap them. */
.hgi-insider .hgi-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 28px;
  padding: 0;
  list-style: none;
}

.hgi-insider .hgi-facts__item {
  padding: 5px 13px;
  border: 1px solid rgba(255, 255, 255, .38);
  border-radius: 999px;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--hgi-white);
  white-space: nowrap;
}

/* Hero image - a still from a past session. */
.hgi-insider .hgi-hero__media {
  border-radius: var(--hgi-radius);
  overflow: hidden;
  background: rgba(0, 0, 0, .22);
  box-shadow: 0 12px 34px rgba(0, 0, 0, .26);
  aspect-ratio: 16 / 9;
}

.hgi-insider .hgi-hero__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}


/* --------------------------------------------------------------------------
   4. Next session spotlight
   -------------------------------------------------------------------------- */
.hgi-insider .hgi-spot {
  margin-top: 28px;
  padding: 32px 36px 34px;
  border: 1px solid var(--hgi-border);
  border-top: 4px solid var(--hgi-melon);
  border-radius: var(--hgi-radius);
  background: var(--hgi-white);
  box-shadow: 0 2px 14px rgba(7, 24, 52, .06);
}

.hgi-insider .hgi-spot__grid {
  display: grid;
  grid-template-columns: 316px minmax(0, 1fr) 252px;
  gap: 28px;
  align-items: start;
}

/* Session title card, with the date stamped over its lower-left corner. */
.hgi-insider .hgi-spot__media {
  position: relative;
  border-radius: var(--hgi-radius);
  overflow: hidden;
  background: var(--hgi-off-white);
  aspect-ratio: 16 / 9;
}

.hgi-insider .hgi-spot__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hgi-insider .hgi-spot__date {
  position: absolute;
  left: 10px;
  bottom: 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 7px 11px 8px;
  border-radius: 8px;
  background: var(--hgi-dark-blue);
  box-shadow: 0 2px 8px rgba(0, 0, 0, .22);
  line-height: 1;
  text-align: center;
}

.hgi-insider .hgi-spot__mon {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: var(--hgi-tracking-eyebrow);
  text-transform: uppercase;
  color: var(--hgi-melon);
}

.hgi-insider .hgi-spot__day {
  font-size: 25px;
  font-weight: 900;
  line-height: 1;
  margin: 3px 0 3px;
  color: var(--hgi-white);
}

.hgi-insider .hgi-spot__yr {
  font-size: 10.5px;
  font-weight: 700;
  color: #CED1D6;
}

/* Body - min-width:0 keeps long titles from blowing out the grid track. */
.hgi-insider .hgi-spot__body { min-width: 0; }

.hgi-insider .hgi-spot__title {
  margin: 0 0 10px;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.2;
  color: var(--hgi-dark-blue);
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
}

.hgi-insider .hgi-spot__teaser {
  margin: 0 0 14px;
  font-size: 16px;
  line-height: 1.5;
  color: var(--hgi-text-mid);
}

.hgi-insider .hgi-spot__who {
  margin: 0 0 20px;
  font-size: 14px;
  font-weight: 600;
  color: var(--hgi-text-light);
}

.hgi-insider .hgi-spot__who-label {
  display: inline-block;
  margin-right: 8px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: var(--hgi-tracking-eyebrow);
  text-transform: uppercase;
  color: var(--hgi-purple);
}


/* --------------------------------------------------------------------------
   5. What you get - value cards
   -------------------------------------------------------------------------- */
.hgi-insider .hgi-how {
  margin-top: 44px;
  text-align: center;
}

.hgi-insider .hgi-how__title {
  margin: 0 0 30px;
  font-size: 30px;
  font-weight: 700;
  line-height: 1.2;
  color: var(--hgi-text-dark);
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
}

.hgi-insider .hgi-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(238px, 1fr));
  gap: 20px;
  text-align: left;
}

.hgi-insider .hgi-card {
  padding: 26px 24px 28px;
  border: 1px solid var(--hgi-border);
  border-radius: var(--hgi-radius);
  background: var(--hgi-white);
  transition: border-color .18s ease, box-shadow .18s ease;
}

.hgi-insider .hgi-card:hover {
  border-color: var(--hgi-light-blue);
  box-shadow: 0 4px 18px rgba(7, 24, 52, .1);
}

.hgi-insider .hgi-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  margin-bottom: 16px;
  border-radius: 9px;
  background: var(--hgi-dark-blue);
  color: var(--hgi-melon);
}

.hgi-insider .hgi-card__icon svg {
  width: 24px;
  height: 24px;
  display: block;
}

.hgi-insider .hgi-card__title {
  margin: 0 0 8px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.25;
  color: var(--hgi-text-dark);
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
}

.hgi-insider .hgi-card__copy {
  margin: 0;
  font-size: 15px;
  line-height: 1.55;
  color: var(--hgi-text-mid);
}


/* --------------------------------------------------------------------------
   6. Product coverage strip
   A quiet band, deliberately lower-contrast than the value cards above it -
   it's reference information, not a third thing competing for attention.
   -------------------------------------------------------------------------- */
.hgi-insider .hgi-scope {
  margin-top: 32px;
  padding: 28px 32px 26px;
  border-radius: var(--hgi-radius);
  background: var(--hgi-off-white);
  text-align: center;
}

.hgi-insider .hgi-scope .hgi-eyebrow {
  margin-bottom: 16px;
  color: var(--hgi-purple);
}

.hgi-insider .hgi-scope__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin: 0 0 16px;
  padding: 0;
  list-style: none;
}

.hgi-insider .hgi-scope__item {
  padding: 8px 16px;
  border: 1px solid var(--hgi-light-blue);
  border-radius: 999px;
  background: var(--hgi-white);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--hgi-dark-blue);
  white-space: nowrap;
}

.hgi-insider .hgi-scope__note {
  max-width: 720px;
  margin: 0 auto;
  font-size: 14px;
  line-height: 1.5;
  color: var(--hgi-text-mid);
}


/* --------------------------------------------------------------------------
   7. Lead-in rule above the catalog
   -------------------------------------------------------------------------- */
.hgi-insider .hgi-leadin {
  display: flex;
  align-items: center;
  gap: 18px;
  margin: 48px 0 4px;
}

.hgi-insider .hgi-leadin__rule {
  flex: 1;
  height: 1px;
  background: var(--hgi-border);
}

.hgi-insider .hgi-leadin__text {
  margin: 0;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: var(--hgi-tracking-eyebrow);
  text-transform: uppercase;
  color: var(--hgi-text-light);
  text-align: center;
}


/* --------------------------------------------------------------------------
   8. Add-to-calendar widget - LOCAL overrides
   The sidebar version on course detail pages keeps its own styling; these
   rules only apply inside .hgi-insider. Values are set explicitly rather
   than inherited so this renders correctly regardless of what the sidebar
   .hg-cal rules currently declare.
   -------------------------------------------------------------------------- */
.hgi-insider .hg-cal {
  padding: 18px 18px 20px;
  border: 1px solid var(--hgi-border);
  border-radius: var(--hgi-radius);
  background: var(--hgi-off-white);
  text-align: left;
}

.hgi-insider .hg-cal__eyebrow {
  display: block;
  margin: 0 0 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: var(--hgi-tracking-eyebrow);
  text-transform: uppercase;
  color: var(--hgi-purple);
}

.hgi-insider .hg-cal__when {
  margin: 0 0 14px;
  font-size: 14.5px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--hgi-text-dark);
}

.hgi-insider .hg-cal__buttons {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.hgi-insider .hg-cal__btn {
  display: block;
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--hgi-dark-blue);
  border-radius: 6px;
  background: var(--hgi-white);
  font-size: 12.5px;
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
  text-decoration: none;
  color: var(--hgi-dark-blue);
  transition: background-color .18s ease, color .18s ease;
}

.hgi-insider .hg-cal__btn:hover,
.hgi-insider .hg-cal__btn:focus {
  background: var(--hgi-dark-blue);
  color: var(--hgi-white);
  text-decoration: none;
}


/* --------------------------------------------------------------------------
   9. Responsive
   -------------------------------------------------------------------------- */

/* Hero image drops below the copy before the text column gets cramped. */
@media (max-width: 1120px) {
  .hgi-insider .hgi-hero__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 32px;
  }
  .hgi-insider .hgi-hero__media { max-width: 620px; }
}

@media (max-width: 980px) {
  .hgi-insider .hgi-spot__grid {
    grid-template-columns: 250px minmax(0, 1fr);
  }
  /* Calendar block drops below and spans both columns. */
  .hgi-insider .hgi-spot__cal {
    grid-column: 1 / -1;
  }
  .hgi-insider .hg-cal__buttons {
    flex-direction: row;
    flex-wrap: wrap;
  }
  .hgi-insider .hg-cal__btn {
    flex: 1 1 190px;
    width: auto;
  }
}

@media (max-width: 720px) {
  .hgi-insider {
    margin-top: 22px;
    padding: 0 16px;
  }

  .hgi-insider .hgi-hero { padding: 34px 22px 34px; }
  .hgi-insider .hgi-hero__title { font-size: 30px; }
  .hgi-insider .hgi-hero__lead { font-size: 16.5px; }
  .hgi-insider .hgi-btn { display: block; width: 100%; }

  .hgi-insider .hgi-spot { padding: 22px 18px 24px; }
  .hgi-insider .hgi-spot__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
  }
  .hgi-insider .hgi-spot__title { font-size: 21px; }

  .hgi-insider .hgi-how__title { font-size: 24px; }

  .hgi-insider .hgi-scope { padding: 22px 18px 20px; }
  /* Chips get long on narrow screens - let them wrap internally
     rather than overflow the band. */
  .hgi-insider .hgi-scope__item {
    font-size: 13px;
    padding: 7px 13px;
    white-space: normal;
  }
  .hgi-insider .hgi-scope__note { font-size: 13px; }

  .hgi-insider .hgi-leadin { gap: 12px; }
  .hgi-insider .hgi-leadin__text { font-size: 11px; }
}

/* Respect reduced-motion preferences. */
@media (prefers-reduced-motion: reduce) {
  .hgi-insider .hgi-btn,
  .hgi-insider .hgi-card,
  .hgi-insider .hg-cal__btn { transition: none; }
}

/* ==========================================================================
   END HG Insider events page block
   ========================================================================== */
/* ==========================================================================
   HG INSIGHTS ACADEMY - catalog restyle
   Thought Industries | Custom CSS  (append to the Academy stylesheet)

   REPLACE the previous version of this block wholesale rather than merging.
   The ribbon rules were deliberately deleted in this revision (see sec. 4), and
   merging would leave them behind.

   This is the only block in the Academy stylesheet that targets Thought
   Industries' own classes instead of our markup. Read this header first.

   Every rule was verified against the live DOM on /catalog by injecting the
   stylesheet and reading computed geometry and colours back. Several
   obvious-looking rules silently lost to TI's cascade or its layout on the
   first attempt; the workarounds below are the ones that actually take
   effect, each commented with why the simpler version doesn't.

   --------------------------------------------------------------------------
   HOW IT IS SCOPED
   --------------------------------------------------------------------------
   TI's Custom CSS is global, but TI's router puts a page identifier on body:

       /catalog   ->  <body class="ember-application home catalog">
       /          ->  <body class="ember-application home index">

   Every rule is prefixed `body:is(.catalog, .learn.dashboard, .page) `, so it applies only on the catalog
   page. Course detail pages, /pages/* pages, and the home page are
   untouched. This hook comes from TI's router rather than our own markup,
   so it stays correct wherever the hero widget is placed.

   --------------------------------------------------------------------------
   HOW IT FAILS
   --------------------------------------------------------------------------
   These `catalog-*` names are read off TI's rendered DOM, not a documented
   API, so a platform update could rename them. The failure is graceful: the
   selectors stop matching and the catalog reverts to TI's default styling.

   Deliberately NOT targeted: `.row`, `.column`, `.columns`, `.medium-3`,
   `.small-12`, `.unlist` - Foundation grid classes used product-wide. The
   two places below that must reach `.row.collapse` and `.columns` children
   are namespaced under a `catalog-*` ancestor so they can't escape.
   ========================================================================== */


/* --------------------------------------------------------------------------
   1. Tokens
   -------------------------------------------------------------------------- */
body:is(.catalog, .learn.dashboard, .page) {
  --hgc-dark-blue:  #071834;
  --hgc-blue:       #3B465B;
  --hgc-light-blue: #CED1D6;
  --hgc-melon:      #FF4A4A;
  --hgc-purple:     #3B465B;
  --hgc-off-white:  #EFE4DC;
  --hgc-white:      #FFFFFF;
  --hgc-text-dark:  #071834;
  --hgc-text-mid:   #3B465B;
  --hgc-text-light: #6C7484;
  --hgc-border:     #EFE4DC;
  --hgc-radius:     10px;
  --hgc-tracking:   0.12em;
}


/* --------------------------------------------------------------------------
   2. Tile shell
   -------------------------------------------------------------------------- */

/* The tile's blue border can't be overridden by `border-color`, not even
   with !important at high specificity - TI sets it from a stylesheet this
   page can't enumerate (cross-origin, so cssRules throws). What TI's rule
   actually says is `border-color: var(--secondary-color)`, so the way in is
   to redefine the variable rather than fight the declaration. `border-width`
   and `box-shadow` are locked outright, which is why the hover state uses a
   transform rather than a shadow. */
body:is(.catalog, .learn.dashboard, .page) .catalog-grid-item {
  --secondary-color: var(--hgc-border);
  border-width: 1px !important;
  border-radius: var(--hgc-radius);
  background: var(--hgc-white);
  height: 100%;
  /* Must stay visible so the ribbon can overhang the corner the way TI
     intends. The thumbnail gets its own radius instead. */
  overflow: visible !important;
  transition: transform .18s ease, border-color .18s ease;
}

body:is(.catalog, .learn.dashboard, .page) a.catalog-item {
  display: block;
  height: 100%;
}

body:is(.catalog, .learn.dashboard, .page) a.catalog-item:hover .catalog-grid-item,
body:is(.catalog, .learn.dashboard, .page) a.catalog-item:focus-visible .catalog-grid-item {
  --secondary-color: var(--hgc-melon);
  transform: translateY(-3px);
}

body:is(.catalog, .learn.dashboard, .page) a.catalog-item:focus-visible {
  outline: 3px solid var(--hgc-melon);
  outline-offset: 3px;
  border-radius: var(--hgc-radius);
}

/* Custom properties inherit, so the override above reaches every descendant
   - including TI's "View Details" button, which also reads
   --secondary-color and turned border-grey because of it. Handing the theme
   value back at these two levels keeps the override doing only its one job. */
body:is(.catalog, .learn.dashboard, .page) .catalog-grid-item__body,
body:is(.catalog, .learn.dashboard, .page) .catalog-grid-item__asset-container {
  --secondary-color: #071834;
}

/* Rounds the thumbnail without clipping the ribbon. 9px, not 10px, so the
   image sits inside the 1px border rather than fighting it. */
body:is(.catalog, .learn.dashboard, .page) .catalog-grid-item__asset-container {
  border-radius: 9px 9px 0 0;
  overflow: hidden;
}

body:is(.catalog, .learn.dashboard, .page) .catalog-grid-item__asset {
  display: block;
  width: 100%;
}


/* --------------------------------------------------------------------------
   3. Tile type - the hierarchy fix
   TI renders source, title, and description all in #0058A3 at weight 400,
   so nothing leads. This is the main event; the corners and hover are minor.
   -------------------------------------------------------------------------- */
body:is(.catalog, .learn.dashboard, .page) .catalog-grid-item__body {
  padding: 18px 20px 20px;
  display: flex;
  flex-direction: column;
}

/* Source renders after the title in the DOM but reads as a kicker, so flex
   order lifts it above without touching the markup. */
body:is(.catalog, .learn.dashboard, .page) .catalog-grid-item__source {
  order: 1;
  margin-bottom: 8px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: var(--hgc-tracking);
  text-transform: uppercase;
  color: var(--hgc-purple);
}

/* TI's JS measures these two and writes an inline `height` to align rows.
   It measures the old 16px type, so at 18px the title clips - `height:auto`
   needs !important to beat the inline value. The tile's own height:100%
   keeps the boxes even. */
body:is(.catalog, .learn.dashboard, .page) .catalog-grid-item__title {
  order: 2;
  margin: 0 0 6px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.25;
  color: var(--hgc-text-dark);
  height: auto !important;
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
}

body:is(.catalog, .learn.dashboard, .page) a.catalog-item:hover .catalog-grid-item__title {
  color: var(--hgc-dark-blue);
}

body:is(.catalog, .learn.dashboard, .page) .catalog-grid-item__description {
  order: 3;
  font-size: 14px;
  line-height: 1.5;
  color: var(--hgc-text-mid);
  height: auto !important;
}

body:is(.catalog, .learn.dashboard, .page) .catalog-grid-item__hr {
  order: 4;
  border-top-color: var(--hgc-border);
  margin: 14px 0 12px;
}

/* margin-top:auto pins the CTA to the bottom so it lines up across a row
   regardless of description length. */
body:is(.catalog, .learn.dashboard, .page) .catalog-grid-item__cta-container {
  order: 5;
  margin-top: auto;
}

/* TI's .btn sets its own stack - "sans-serif, Arial, Helvetica" - which is
   why "View Details" rendered in a different face from everything around
   it. Everything else on the page is Nunito Sans. */
body:is(.catalog, .learn.dashboard, .page) .catalog-grid-item__cta-container .btn {
  font-family: "basic-sans", "Basic Sans", "DM Sans", "Helvetica Neue", Arial, sans-serif !important;
  color: var(--hgc-dark-blue) !important;
  font-weight: 700;
  font-size: 13px;
}


/* --------------------------------------------------------------------------
   4. "PRODUCT UPDATES" ribbon - intentionally left at TI's default
   An earlier revision restyled it into a melon pill inside the tile. That
   required overflow:hidden, which put it on top of the session title in the
   card art, and the folded corner had to be hidden to make it work at all.
   The stock wrapping banner reads better against the thumbnails, so there
   are deliberately no `.catalog__ribbon` rules here. Don't re-add them
   without also revisiting the overflow decision in sec. 2.
   -------------------------------------------------------------------------- */


/* --------------------------------------------------------------------------
   5. Search / filter toolbar
   TI lays this out as display:table with an inner grey band and two more
   #EEE wrappers around the search field. Rebuilt as a single white toolbar
   with hairline dividers. Flex replaces the table so the controls and the
   view-toggle can share a baseline.
   -------------------------------------------------------------------------- */
body:is(.catalog, .learn.dashboard, .page) .catalog-search-bar {
  display: flex !important;
  align-items: center;
  gap: 14px;
  /* TI sets an explicit height that clips the taller controls. */
  height: auto !important;
  min-height: 54px;
  margin-bottom: 24px;
}

body:is(.catalog, .learn.dashboard, .page) .catalog-filters {
  flex: 1;
  display: flex;
  align-items: stretch;
  height: 54px;
  padding: 0;
  background: var(--hgc-white);
  border: 1px solid var(--hgc-border);
  border-radius: var(--hgc-radius);
  overflow: hidden;
}

/* The three sections each carry their own #EEE, left over from TI's banded
   treatment. They have to be cleared for the toolbar to read as one piece. */
body:is(.catalog, .learn.dashboard, .page) .catalog-filters__search,
body:is(.catalog, .learn.dashboard, .page) .catalog-filters__selections,
body:is(.catalog, .learn.dashboard, .page) .catalog-filters__sort,
body:is(.catalog, .learn.dashboard, .page) .catalog-search__button {
  background: transparent !important;
}

body:is(.catalog, .learn.dashboard, .page) .catalog-filters__search {
  position: relative;
  padding: 0;
  height: 100%;
}

/* Only the search field gets a divider. The two dropdowns carry their own
   outline (below), so dividers as well read as clutter. */
body:is(.catalog, .learn.dashboard, .page) .catalog-filters__search {
  border-right: 1px solid var(--hgc-border);
}

body:is(.catalog, .learn.dashboard, .page) .catalog-filters__selections,
body:is(.catalog, .learn.dashboard, .page) .catalog-filters__sort {
  display: flex;
  align-items: center;
  height: 100%;
  padding: 0 8px;
}

/* Foundation's .row.collapse loses its width once the parent becomes flex,
   which collapsed the "Filter by" control to 15px. Scoped to a catalog
   ancestor so it can't reach other Foundation rows. */
body:is(.catalog, .learn.dashboard, .page) .catalog-filters__selections .row.collapse {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
}

body:is(.catalog, .learn.dashboard, .page) .catalog-content-type {
  flex: 0 0 auto;
  width: auto;
  min-width: 170px;
  padding: 0;
  display: flex;
  align-items: center;
  height: 100%;
}

body:is(.catalog, .learn.dashboard, .page) .catalog-content-type .form-control { width: 100%; }

body:is(.catalog, .learn.dashboard, .page) .catalog-search { margin: 0; height: 100%; }

/* TI's .form-control sets its own stack - "sans-serif, Arial, Helvetica" -
   the same mismatch that hit the View Details link. Everything else on the
   page is Nunito Sans. */
body:is(.catalog, .learn.dashboard, .page) .catalog-search .form-control,
body:is(.catalog, .learn.dashboard, .page) .catalog-filters__select {
  font-family: "basic-sans", "Basic Sans", "DM Sans", "Helvetica Neue", Arial, sans-serif !important;
}

/* Left padding clears the magnifier, which is moved inside the field. */
body:is(.catalog, .learn.dashboard, .page) .catalog-search .form-control {
  height: 100% !important;
  margin: 0;
  padding: 8px 12px 8px 46px;
  border: 0 !important;
  border-radius: 0;
  background: transparent;
  font-size: 15px;
  box-shadow: none;
}

/* "Filter by" and "Sort by" gave no sign they were interactive: TI applies
   appearance:none, which strips the native dropdown arrow, and the flat
   treatment left them looking like static labels. Reinstating a chevron and
   giving them a filled, outlined, clickable-looking box fixes that. The
   chevron is an inline SVG data URI so it needs no extra request and
   inherits nothing that could break it. */
body:is(.catalog, .learn.dashboard, .page) .catalog-filters__select {
  height: 38px !important;
  margin: 0;
  padding: 0 34px 0 12px;
  border: 1px solid var(--hgc-border) !important;
  border-radius: 8px;
  background-color: #FBF6EC;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%233B465B' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  font-size: 14px;
  font-weight: 700;
  color: var(--hgc-text-dark);
  cursor: pointer;
  box-shadow: none;
  -webkit-appearance: none;
  appearance: none;
}

body:is(.catalog, .learn.dashboard, .page) .catalog-filters__select:hover {
  background-color: var(--hgc-off-white);
  border-color: var(--hgc-light-blue) !important;
}

body:is(.catalog, .learn.dashboard, .page) .catalog-search .form-control:focus {
  box-shadow: none;
  outline: none;
}

body:is(.catalog, .learn.dashboard, .page) .catalog-filters__select:focus {
  border-color: var(--hgc-blue) !important;
  box-shadow: 0 0 0 3px rgba(7, 24, 52, .18);
  outline: none;
}

/* The submit button becomes the in-field search icon. */
body:is(.catalog, .learn.dashboard, .page) .catalog-search__button {
  position: absolute;
  left: 0;
  top: 0;
  width: 46px;
  height: 100%;
  padding: 0;
  border: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--hgc-text-light);
}


/* --------------------------------------------------------------------------
   6. List / grid view toggle
   It sat 12px high of the search controls. The cause was a stray
   `margin-bottom: 24px` on the group, which in a flex row shifts its centre
   up rather than adding space below.
   -------------------------------------------------------------------------- */
body:is(.catalog, .learn.dashboard, .page) .catalog-display-type {
  display: flex;
  align-items: center;
  gap: 4px;
  flex: 0 0 auto;
  align-self: center !important;
  margin: 0 !important;
}

body:is(.catalog, .learn.dashboard, .page) .catalog-display-type .btn {
  width: 44px;
  height: 44px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-radius: 8px;
}

body:is(.catalog, .learn.dashboard, .page) .catalog-display-type .btn:hover { background: var(--hgc-off-white); }
body:is(.catalog, .learn.dashboard, .page) .catalog-display-type .btn i { font-size: 19px; line-height: 1; }


/* --------------------------------------------------------------------------
   7. List view
   The grid/list toggle swaps in an entirely parallel class set -
   `catalog-list-item__*` instead of `catalog-grid-item__*` - so none of the
   work above reaches it. An earlier revision styled only the grid, which
   left list view sitting on TI's raw default: no card, no hierarchy, and a
   ribbon stranded in whitespace. This mirrors sec. 2 and sec. 3 for that markup.

   If you restyle anything in the grid tiles, check list view too. The two
   share almost no selectors, so they drift apart silently.
   -------------------------------------------------------------------------- */
body:is(.catalog, .learn.dashboard, .page) .catalog-list-item {
  position: relative;
  /* Same locked-border situation as the grid tile, same way around it. */
  --secondary-color: var(--hgc-border);
  border: 1px solid var(--hgc-border) !important;
  border-radius: var(--hgc-radius);
  background: var(--hgc-white);
  padding: 20px 22px 22px !important;
  margin-bottom: 20px;
  transition: border-color .18s ease, transform .18s ease;
}

body:is(.catalog, .learn.dashboard, .page) .catalog-list-item:hover {
  --secondary-color: var(--hgc-melon);
  border-color: var(--hgc-melon) !important;
  transform: translateY(-2px);
}

/* Hand the theme variable back inside, as in sec. 2 - otherwise the CTA button
   and other descendants that read it inherit the border grey. */
body:is(.catalog, .learn.dashboard, .page) .catalog-list-item__body,
body:is(.catalog, .learn.dashboard, .page) .catalog-list-item__title-container {
  --secondary-color: #071834;
}

body:is(.catalog, .learn.dashboard, .page) .catalog-list-item__title {
  font-size: 20px;
  font-weight: 700;
  color: var(--hgc-text-dark);
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
}

body:is(.catalog, .learn.dashboard, .page) .catalog-list-item:hover .catalog-list-item__title {
  color: var(--hgc-dark-blue);
}

/* Hidden by request. TI shows a publish/updated date here, not the session
   date, so on an HG Insider row it reads as a contradiction - an "August
   2026" session stamped 08/21/2026. Grid view never showed it at all, so
   hiding it also makes the two views agree. */
body:is(.catalog, .learn.dashboard, .page) .catalog-list-item__start-date { display: none; }

/* THE 16px RIGHT PADDING IS THE IMPORTANT PART HERE - it was the root
   cause of two separate-looking bugs.

   TI ships the list thumbnail with `padding: 0 16px 0 0` and
   `box-sizing: border-box`. So the element's box is 16px wider than the
   artwork drawn inside it, with transparent padding on the right.

   That produced both of these:
     - The right-hand corners looked square. border-radius was applying
       correctly, but to the BORDER box - whose right edge sits 16px past
       where the artwork ends. The rounded corners were being cut into
       empty padding, invisible against the white card. The left corners
       looked fine because there's no left padding. That asymmetry is the
       tell, and it's exactly what was reported.
     - The ribbon looked detached. Anchoring it to the image's box right
       edge left it 16px clear of the visible artwork.

   Zeroing the padding makes the box equal the artwork, so the radius
   clips the image itself and edge-anchoring means what it looks like.

   The grid thumbnail keeps its 9px radius: there it's flush inside the
   tile's own 10px corner and only needs to match it, not stand alone. */
body:is(.catalog, .learn.dashboard, .page) .catalog-list-item__asset {
  padding: 0 !important;
  border-radius: 12px;
}

/* Foundation's .row.collapse strips gutters, so the text sat flush against
   the thumbnail. Padding these two rather than the .medium-5 column keeps
   the fix on our own class names. */
body:is(.catalog, .learn.dashboard, .page) .catalog-list-item__info,
body:is(.catalog, .learn.dashboard, .page) .catalog-list-item__description {
  padding-left: 22px;
}

body:is(.catalog, .learn.dashboard, .page) .catalog-list-item__info {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: var(--hgc-tracking);
  text-transform: uppercase;
  color: var(--hgc-purple);
}

body:is(.catalog, .learn.dashboard, .page) .catalog-list-item__description {
  font-size: 15px;
  line-height: 1.55;
  color: var(--hgc-text-mid);
}

body:is(.catalog, .learn.dashboard, .page) .catalog-list-item__cta-container .btn {
  font-family: "basic-sans", "Basic Sans", "DM Sans", "Helvetica Neue", Arial, sans-serif !important;
  background-color: var(--hgc-dark-blue) !important;
  color: var(--hgc-white) !important;
  border-radius: 6px;
  padding: 11px 20px;
  font-weight: 700;
  font-size: 13px;
}

/* Anchored to the image's LEFT edge, which is the only edge that is
   width-invariant. Read this before changing it to something that looks
   tidier - an earlier version used `left: 33.333%` to pin the ribbon to
   the thumbnail column's right edge, and it was wrong at most viewports.

   Why the percentage fails: the thumbnail column is Foundation medium-4,
   a fixed 33.333% of the row, but the image inside it does NOT scale to
   fill it. TI renders the image at a capped width (a w_440 derivative at
   a fixed 200px height), so above a certain viewport the column keeps
   growing while the image stops. Measured at a 2400px viewport: column
   567px, image 372px - leaving the ribbon stranded 195px to the right of
   the thumbnail, in empty space. Narrower viewports produced a smaller
   gap, which is why it looked correct when measured at only one size.

   The image's left edge, by contrast, always coincides with __body's left
   edge at every width, so `left: 0` is stable. Verified at 1150, 1500 and
   2400px.

   Vertical: TI's `--attached` modifier computes `top` as minus the
   ribbon's own height. In grid view the positioning context is the tile,
   so that reads as a small overhang above the artwork. In list view the
   context is __body, whose top edge IS the image's top edge - so the same
   rule lifts the ribbon clear of the thumbnail. -3px restores the overlap.

   Trade-off worth knowing: at the top-left the ribbon overlaps the HG
   logo in the title card artwork. Top-right would avoid it but cannot be
   anchored reliably without knowing the image's rendered width, which CSS
   can't read. */
body:is(.catalog, .learn.dashboard, .page) .catalog-list-item .catalog__ribbon {
  top: -3px !important;
  left: 0 !important;
  right: auto !important;
  transform: none !important;
}


/* --------------------------------------------------------------------------
   8. Filter rail
   The doubled selector mirrors TI's own two rules (plain, and
   .catalog-aggregation--expanded) so this wins in both states.
   -------------------------------------------------------------------------- */
body:is(.catalog, .learn.dashboard, .page) .widget--catalog .catalog-aggregation .catalog-aggregation__header,
body:is(.catalog, .learn.dashboard, .page) .widget--catalog .catalog-aggregation.catalog-aggregation--expanded .catalog-aggregation__header {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: var(--hgc-tracking);
  text-transform: uppercase;
  color: var(--hgc-purple) !important;
}

body:is(.catalog, .learn.dashboard, .page) .catalog-aggregation {
  border-bottom: 1px solid var(--hgc-border);
  padding-bottom: 6px;
  margin-bottom: 14px;
}

/* .btn in the selector matches TI's own `.widget--catalog .btn...` rule. */
body:is(.catalog, .learn.dashboard, .page) .widget--catalog .btn.catalog-aggregation__value {
  font-size: 14px;
  color: var(--hgc-text-mid) !important;
  transition: color .15s ease;
}

body:is(.catalog, .learn.dashboard, .page) .widget--catalog .btn.catalog-aggregation__value:hover {
  color: var(--hgc-dark-blue) !important;
}


/* --------------------------------------------------------------------------
   9. Responsive
   Below Foundation's medium breakpoint the three toolbar sections stack, so
   the dividers move from the left edge to the top and the fixed height is
   released.
   -------------------------------------------------------------------------- */
@media (max-width: 640px) {
  body:is(.catalog, .learn.dashboard, .page) .catalog-search-bar {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }

  body:is(.catalog, .learn.dashboard, .page) .catalog-filters {
    flex-direction: column;
    height: auto;
  }

  body:is(.catalog, .learn.dashboard, .page) .catalog-filters__search,
  body:is(.catalog, .learn.dashboard, .page) .catalog-filters__selections,
  body:is(.catalog, .learn.dashboard, .page) .catalog-filters__sort {
    width: 100%;
    height: 52px;
  }

  body:is(.catalog, .learn.dashboard, .page) .catalog-filters__selections,
  body:is(.catalog, .learn.dashboard, .page) .catalog-filters__sort {
    border-left: 0;
    border-top: 1px solid var(--hgc-border);
  }

  body:is(.catalog, .learn.dashboard, .page) .catalog-content-type { min-width: 0; width: 100%; }

  body:is(.catalog, .learn.dashboard, .page) .catalog-display-type { justify-content: flex-end; }
}


/* --------------------------------------------------------------------------
   10. Motion preferences
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  body:is(.catalog, .learn.dashboard, .page) .catalog-grid-item,
  body:is(.catalog, .learn.dashboard, .page) .widget--catalog .btn.catalog-aggregation__value { transition: none; }
  body:is(.catalog, .learn.dashboard, .page) a.catalog-item:hover .catalog-grid-item { transform: none; }
}

/* ==========================================================================
   END catalog restyle
   ========================================================================== */
/* ==========================================================================
   PATCH - HG Academy catalog, list view thumbnail
   Paste at the VERY END of the Thought Industries Custom CSS.
   Replaces the earlier version of this patch if one is already there -
   delete that first, or just append this below it (later wins either way).

   Two fixes, both anchored to measurements taken on the live page.

   1. TI ships the list thumbnail with `padding: 0 16px 0 0` and
      `box-sizing: border-box`, so the element's box is 16px wider than the
      artwork inside it. That made the right corners look square (the
      radius was cut into empty padding) and left the ribbon 16px clear of
      the visible image. Zeroing the padding makes box == artwork.

   2. The ribbon is pinned to the thumbnail's right edge so it wraps the
      corner the way it does in grid view, fold and all.

      The tricky part: the thumbnail column is a fixed 33.333% of the row,
      but the image inside it stops growing at its natural 356px. So the
      column and the image only share a right edge on narrower screens. On
      a wide one they diverge - measured 682px column against a 356px image
      at a ~2870px viewport. Anchoring to the column alone strands the
      ribbon in empty space, which is what the previous version did.

      `min(33.333%, 356px)` gives the image's real right edge at any width.
      The matching `max-width` on the image guarantees the two agree rather
      than relying on the source file happening to be 356px wide - and it
      keeps `100%` in the min() so the image still can't overflow its
      column on narrow screens.

   All seven current title cards are 356x200. If a future card is authored
   at a different width, change --hgc-thumb-max in one place below.

   Verified on the live page at effective viewport widths of 1437, 1512,
   1916 and 2874px: image never overflows its column, never overlaps the
   description text, ribbon overhangs the thumbnail by 8px (same as grid
   view) with at least 14px clearance to the "HG INSIDER" eyebrow.
   ========================================================================== */

body:is(.catalog, .learn.dashboard, .page) .catalog-list-item {
  --hgc-thumb-max: 356px;
}

body:is(.catalog, .learn.dashboard, .page) .catalog-list-item__asset {
  padding: 0 !important;
  border-radius: 12px !important;
  max-width: min(100%, var(--hgc-thumb-max)) !important;
}

body:is(.catalog, .learn.dashboard, .page) .catalog-list-item .catalog__ribbon {
  top: -3px !important;
  left: min(33.333%, var(--hgc-thumb-max)) !important;
  right: auto !important;
  transform: translateX(calc(-100% + 8px)) !important;
}

/* ==========================================================================
   END PATCH
   ========================================================================== */
/* ==========================================================================
   PATCH - HG Academy catalog, list-view thumbnail SHARPNESS
   CSS fallback for the JavaScript sharpener. Use this only if theme-level JS
   turns out not to be available. Paste at the VERY END of the Custom CSS,
   after the geometry patch.

   Do not use both this and the JS at once. They'd fight over the same images
   and the JS would keep rewriting the src underneath these rules.

   --------------------------------------------------------------------------
   WHY
   --------------------------------------------------------------------------
   Grid and list request different Cloudinary derivatives of the same image.
   Measured live at a 2x display:

       Grid   c_fill,w_750,h_361   source 750x361   needs 697x335   1.08x
       List   c_fit,w_440,h_200    source 356x200   needs 690x370   0.52x

   List paints roughly half the pixels its box needs, which is the whole
   reason it looks soft next to grid.

   CSS cannot rewrite an image's src, so this replaces the rendered image with
   `content: url(...)` pointing at a 2x derivative. That's why there has to be
   one rule per session: each URL is unique and CSS can't construct it.

   `c_fit,w_880,h_400` is the same request ratio TI already uses, so the
   rendered image goes 356x200 -> 711x400, exactly 2x. Same crop, same
   framing - purely a resolution change.

   The geometry block is required, not decorative: `content: url()` discards
   the element's intrinsic sizing and collapses the box to 0x0 without it.
   Verified the patched box matches an unpatched control exactly (345x194).

   --------------------------------------------------------------------------
   MONTHLY MAINTENANCE - THIS IS THE COST OF THIS APPROACH
   --------------------------------------------------------------------------
   Every new session needs its stem added to the geometry list AND its own
   content block below. Two edits, both required - a stem in the geometry list
   with no matching content block gives you a correctly sized empty box.

   Note these are CATALOG public IDs, which are DIFFERENT from the detail-page
   hero IDs in the title-card stylesheet. Same session, two separate uploads,
   two separate registries. Harvest a new one on /catalog in list view with:

     [...document.querySelectorAll('.catalog-list-item__asset')]
       .map(i => i.getAttribute('src'))

   Copy the path verbatim and change only the transformation segment. Public
   IDs are randomised, so never infer one from a filename pattern.

   Harvested 2026-08-24. All 7 sessions then live are covered.
   ========================================================================== */


/* --------------------------------------------------------------------------
   1. Shared geometry - one line per session, same list as section 2
   -------------------------------------------------------------------------- */
body:is(.catalog, .learn.dashboard, .page) .catalog-list-item__asset[src*="ss5vwn9aumgf-hg-insider-sept2026-titlecard"],
body:is(.catalog, .learn.dashboard, .page) .catalog-list-item__asset[src*="ckbizct400rh-gjgaajtvpxaa4asmsc74"],
body:is(.catalog, .learn.dashboard, .page) .catalog-list-item__asset[src*="rhoncu3d03k8-k7lixgiokod53c3walez"],
body:is(.catalog, .learn.dashboard, .page) .catalog-list-item__asset[src*="q1rsluk9vc9r-nec5hzqcterq0cnbgo5j"],
body:is(.catalog, .learn.dashboard, .page) .catalog-list-item__asset[src*="0bsq21630hfc-mizkufa4bwe1ofbbqo58"],
body:is(.catalog, .learn.dashboard, .page) .catalog-list-item__asset[src*="2jw0l5sonszh-hg-insider-march-2026"],
body:is(.catalog, .learn.dashboard, .page) .catalog-list-item__asset[src*="2m0zbgkpp6m7-snleoap4tsfw1mq2x4ru"] {
  display: block !important;
  width: min(100%, 356px) !important;
  height: auto !important;
  aspect-ratio: 356 / 200;
  object-fit: fill;
}


/* --------------------------------------------------------------------------
   2. One 2x replacement per session - same list, same order
   -------------------------------------------------------------------------- */

/* September 2026 */
body:is(.catalog, .learn.dashboard, .page) .catalog-list-item__asset[src*="ss5vwn9aumgf-hg-insider-sept2026-titlecard"] {
  content: url("https://media.thoughtindustries.com/thoughtindustries/image/upload/a_exif,c_fit,w_880,h_400,f_auto,q_auto:best/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/ss5vwn9aumgf-hg-insider-sept2026-titlecard.png");
}

/* August 2026 */
body:is(.catalog, .learn.dashboard, .page) .catalog-list-item__asset[src*="ckbizct400rh-gjgaajtvpxaa4asmsc74"] {
  content: url("https://media.thoughtindustries.com/thoughtindustries/image/upload/a_exif,c_fit,w_880,h_400,f_auto,q_auto:best/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/ckbizct400rh-gjgaajtvpxaa4asmsc74.png");
}

/* July 2026 */
body:is(.catalog, .learn.dashboard, .page) .catalog-list-item__asset[src*="rhoncu3d03k8-k7lixgiokod53c3walez"] {
  content: url("https://media.thoughtindustries.com/thoughtindustries/image/upload/a_exif,c_fit,w_880,h_400,f_auto,q_auto:best/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/rhoncu3d03k8-k7lixgiokod53c3walez.png");
}

/* June 2026 */
body:is(.catalog, .learn.dashboard, .page) .catalog-list-item__asset[src*="q1rsluk9vc9r-nec5hzqcterq0cnbgo5j"] {
  content: url("https://media.thoughtindustries.com/thoughtindustries/image/upload/a_exif,c_fit,w_880,h_400,f_auto,q_auto:best/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/q1rsluk9vc9r-nec5hzqcterq0cnbgo5j.png");
}

/* April 2026 */
body:is(.catalog, .learn.dashboard, .page) .catalog-list-item__asset[src*="0bsq21630hfc-mizkufa4bwe1ofbbqo58"] {
  content: url("https://media.thoughtindustries.com/thoughtindustries/image/upload/a_exif,c_fit,w_880,h_400,f_auto,q_auto:best/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/0bsq21630hfc-mizkufa4bwe1ofbbqo58.png");
}

/* March 2026 */
body:is(.catalog, .learn.dashboard, .page) .catalog-list-item__asset[src*="2jw0l5sonszh-hg-insider-march-2026"] {
  content: url("https://media.thoughtindustries.com/thoughtindustries/image/upload/a_exif,c_fit,w_880,h_400,f_auto,q_auto:best/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/2jw0l5sonszh-hg-insider-march-2026.png");
}

/* February 2026 */
body:is(.catalog, .learn.dashboard, .page) .catalog-list-item__asset[src*="2m0zbgkpp6m7-snleoap4tsfw1mq2x4ru"] {
  content: url("https://media.thoughtindustries.com/thoughtindustries/image/upload/a_exif,c_fit,w_880,h_400,f_auto,q_auto:best/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/2m0zbgkpp6m7-snleoap4tsfw1mq2x4ru.png");
}

/* ==========================================================================
   END PATCH - no session earlier than February 2026 has a catalog ID on file
   ========================================================================== */
/* ==========================================================================
   HG INSIGHTS ACADEMY - course catalog page hero
   Thought Industries | Custom CSS  (append to the Academy stylesheet)

   Companion markup: hg-academy-catalog-widget.html

   SCOPING RULE - the same one that governs the HG Insider block:
   TI's Custom CSS is GLOBAL even when authored inside one page's editor.
   Every rule below is descended from `.hga-catalog`, a class that exists
   nowhere else on the site, and the tokens are declared on that wrapper
   rather than :root so they can't leak either. No TI class is targeted, so
   the course tiles, filter sidebar, and search bar keep their default
   styling here and everywhere else.

   WHY THE TOKENS ARE DUPLICATED FROM hg-insider-events.css:
   Both blocks live in the same stylesheet and use the same brand values, so
   sharing one token block is tempting. It would mean editing the Insider
   block's selector list every time a page is added, and a mistake there
   silently restyles a live page. Twenty-five duplicated lines is the
   cheaper trade - these two blocks cannot break each other.

   Sibling, not twin: the Insider hero uses the three-stop brand gradient.
   This one uses the two-stop blue-to-purple so the two pages read as
   related without competing.
   ========================================================================== */


/* --------------------------------------------------------------------------
   1. Scoped tokens + outer spacing
   -------------------------------------------------------------------------- */
.hga-catalog {
  --hga-dark-blue:  #071834;
  --hga-blue:       #3B465B;
  --hga-light-blue: #CED1D6;
  --hga-melon:      #FF4A4A;
  --hga-purple:     #3B465B;
  --hga-off-white:  #EFE4DC;
  --hga-white:      #FFFFFF;

  --hga-text-dark:  #071834;
  --hga-text-mid:   #3B465B;
  --hga-text-light: #6C7484;
  --hga-border:     #EFE4DC;

  --hga-grad-band: #071834;

  --hga-font: "basic-sans", "Basic Sans", "DM Sans", "Helvetica Neue", Arial, sans-serif;
  --hga-radius: 10px;
  --hga-tracking-eyebrow: 0.12em;

  /* Matches the catalog grid's content column so the band lines up with it. */
  --hga-max-width: 1340px;

  max-width: var(--hga-max-width);
  /* Top margin clears the Academy header nav, same value as the
     Insider page so the two feel consistent on load. */
  margin: 36px auto 8px;
  padding: 0 24px;
  font-family: var(--hga-font);
  color: var(--hga-text-dark);
  line-height: 1.45;
  -webkit-font-smoothing: antialiased;
}

.hga-catalog *,
.hga-catalog *::before,
.hga-catalog *::after { box-sizing: border-box; }


/* --------------------------------------------------------------------------
   2. Hero
   Two columns - copy left, media right - matching the HG Insider events
   hero exactly, so the two pages read as the same system. This replaced an
   earlier centred single-column version; a right-hand media slot and centred
   copy can't coexist.
   -------------------------------------------------------------------------- */
.hga-catalog .hga-hero {
  position: relative;
  overflow: hidden;
  border-radius: var(--hga-radius);
  background: linear-gradient(225deg, var(--hga-melon) 0 56px, transparent 56px), var(--hga-grad-band);
  color: var(--hga-white);
  /* Same padding as the Insider hero. */
  padding: 52px 48px 50px;
  text-align: left;
}

/* Two soft washes, offset to opposite corners, so the flat gradient has
   some depth without needing an image. Decorative only. */
.hga-catalog .hga-hero::before,
.hga-catalog .hga-hero::after {
  content: "";
  position: absolute;
  pointer-events: none;
}

.hga-catalog .hga-hero::before {
  display: none;
}

.hga-catalog .hga-hero::after {
  content: "";
  position: absolute;
  top: auto; left: auto;
  right: 18px;
  bottom: 14px;
  width: 10px;
  height: 10px;
  padding: 0;
  border-radius: 0;
  background: #FF4A4A;
  box-shadow: -10px -10px 0 #FF4A4A, 0 -20px 0 #F09895, -20px 0 0 #F09895;
  pointer-events: none;
}

.hga-catalog .hga-hero__grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 460px;
  gap: 44px;
  align-items: center;
}

.hga-catalog .hga-hero__inner {
  min-width: 0;
}

/* Hero media - a looping clip from a course. Fixed 16:9 with cover, so a
   non-16:9 source crops rather than distorting or breaking the layout. */
.hga-catalog .hga-hero__media {
  margin: 0;
  border-radius: var(--hga-radius);
  overflow: hidden;
  background: rgba(0, 0, 0, .22);
  box-shadow: 0 12px 34px rgba(0, 0, 0, .26);
  aspect-ratio: 16 / 9;
}

.hga-catalog .hga-hero__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hga-catalog .hga-eyebrow {
  display: inline-block;
  margin: 0 0 16px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: var(--hga-tracking-eyebrow);
  text-transform: uppercase;
  color: var(--hga-melon);
}

.hga-catalog .hga-eyebrow::before {
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-right: 9px;
  vertical-align: 1px;
  background: var(--hga-melon);
}

/* balance is right for the headline - a few words, evened across lines. */
.hga-catalog .hga-hero__title {
  margin: 0 0 20px;
  font-size: 42px;
  font-weight: 900;
  line-height: 1.12;
  letter-spacing: -0.01em;
  color: var(--hga-white);
  text-wrap: balance;
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
}

/* The lead used `balance` when this hero was one wide centred column. In a
   narrower left column balance produces ragged short lines, so it's `pretty`
   here instead - that only guards against a stranded last word. The 52ch
   measure keeps the line length readable rather than letting it run to the
   full column. */
.hga-catalog .hga-hero__lead {
  margin: 0;
  max-width: 52ch;
  font-size: 18px;
  line-height: 1.6;
  color: rgba(255, 255, 255, .92);
  text-wrap: pretty;
}


/* --------------------------------------------------------------------------
   3. Lead-in rule above the search bar
   Mirrors the divider on the Insider page, which is what ties the two
   pages together visually more than the gradient does.
   -------------------------------------------------------------------------- */
/* The 26px bottom margin is the breathing room between this rule and the
   search toolbar. TI's .catalog-search-bar carries no top margin of its
   own, so without this the divider sits almost on top of it. */
.hga-catalog .hga-leadin {
  display: flex;
  align-items: center;
  gap: 18px;
  margin: 40px 0 26px;
}

.hga-catalog .hga-leadin__rule {
  flex: 1;
  height: 1px;
  background: var(--hga-border);
}

.hga-catalog .hga-leadin__text {
  margin: 0;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: var(--hga-tracking-eyebrow);
  text-transform: uppercase;
  color: var(--hga-text-light);
  text-align: center;
}


/* --------------------------------------------------------------------------
   4. Responsive
   -------------------------------------------------------------------------- */
/* Media drops below the copy before the text column gets cramped - same
   breakpoint the Insider hero uses. */
@media (max-width: 1120px) {
  .hga-catalog .hga-hero__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 32px;
  }
  .hga-catalog .hga-hero__media { max-width: 620px; }
  .hga-catalog .hga-hero__lead { max-width: none; }
}

@media (max-width: 900px) {
  .hga-catalog .hga-hero { padding: 44px 32px 46px; }
  .hga-catalog .hga-hero__title { font-size: 36px; }
}

@media (max-width: 720px) {
  .hga-catalog {
    margin-top: 22px;
    padding: 0 16px;
  }
  .hga-catalog .hga-hero { padding: 34px 22px 36px; }
  .hga-catalog .hga-hero__title { font-size: 28px; }
  .hga-catalog .hga-hero__lead { font-size: 16.5px; }
  .hga-catalog .hga-leadin { gap: 12px; margin-top: 32px; }
  .hga-catalog .hga-leadin__text { font-size: 11px; }
}

/* ==========================================================================
   END HG Insights Academy catalog hero
   ========================================================================== */
/* ==========================================================================
   PATCH - HG Academy lesson page (buttons + sidebar)

   SUPERSEDES PATCH-lesson-page-buttons.css. Delete that block first, or
   paste this after it - later wins either way, but leaving both is confusing.

   Paste at the VERY END of the Thought Industries Custom CSS.

   Scoped to `body.learn.course`, the learner/lesson route only. Course
   DETAIL pages are `body.home.course-group`, so the bespoke rules you have
   there are untouched.
   ========================================================================== */


/* --------------------------------------------------------------------------
   1. Buttons - shared geometry and type
   TI's `.btn` stack is "sans-serif, Arial, Helvetica" at weight 400, so the
   buttons read as labels and don't match anything else on the site.

   Targets two specific buttons rather than `.btn` wholesale. A blanket rule
   broke two things in the sidebar: `display:inline-flex` made each button a
   flex container, so the whitespace between inline children stopped being a
   space and "Show Details" rendered on two lines; and padding + min-height
   on `.btn--bare` blew the search icon from 27x21 to 56x40. Hence no
   `display` declaration here - padding plus line-height does the centring.
   -------------------------------------------------------------------------- */
body.learn.course .learner__container__toggle > .btn,
body.learn.course .video-course__actions > .btn {
  font-family: "basic-sans", "Basic Sans", "DM Sans", "Helvetica Neue", Arial, sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 20px !important;
  padding: 9px 18px !important;
  height: auto !important;
  border-radius: 6px !important;
  border: 1px solid transparent !important;
  text-decoration: none !important;
  transition: background-color .18s ease, border-color .18s ease, color .18s ease !important;
}

body.learn.course .learner__container__toggle > .btn:focus-visible,
body.learn.course .video-course__actions > .btn:focus-visible {
  outline: 3px solid #FF4A4A;
  outline-offset: 2px;
}


/* --------------------------------------------------------------------------
   2. The lesson action row
   -------------------------------------------------------------------------- */
body.learn.course .video-course__actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
}

/* "Check out other courses", hidden by request. Targeted by href rather than
   by `.btn--primary`: the class is generic, and if TI ever puts a different
   primary button in this row it would vanish silently. */
body.learn.course .video-course__actions a.btn[href*="/learn/dashboard"] {
  display: none !important;
}

/* "Mark As Watched" - hidden by request, on the basis that progress should
   come from actually watching rather than self-declaring.

   WORTH VERIFYING ONCE: this only removes the manual control. Whether
   completion still records depends on TI's video-completion setting for the
   course. If that setting is off, this button was the only thing writing
   progress, and hiding it means progress silently stops recording. Test with
   a non-admin account on a lesson you haven't completed before relying on it.
   Restore by deleting this rule. */
body.learn.course .video-course__actions > button.btn {
  display: none !important;
}

/* Admin-only; learners never see it. Kept quiet. */
body.learn.course .video-course__actions > .btn--alt {
  background-color: #FBF6EC !important;
  border-color: #EFE4DC !important;
  color: #3B465B !important;
}


/* --------------------------------------------------------------------------
   3. Left-edge alignment
   The lesson body's left edge is 192px:
       .learner__content   160
       .topic__container   176   +16
       .topic__content     192   +16 padding-left

   NOTE THERE ARE TWO TOGGLE BUTTONS. TI renders
   `.learner__container__toggle` twice - one inside `.learner__sidebar__search`
   ("Hide"), one as a child of `.learner__content` ("Menu"). When the sidebar
   is closed the first goes off-canvas (measured at -886px), so a selector
   written as `.learner__container__toggle > .btn` grabs the invisible one.
   Always target by parent.

   These rules still matter below 900px, where section 4 leaves the toggle in
   place - which is why they sit outside that media query.
   -------------------------------------------------------------------------- */
body.learn.course .learner__content > .learner__container__toggle {
  padding-left: 32px;
}

/* TI gives this an 8px left margin, redundant once the row is flex with gap. */
body.learn.course .video-course__actions > .btn {
  margin-left: 0 !important;
  margin-right: 0 !important;
}


/* --------------------------------------------------------------------------
   4. Sidebar always open, above 900px
   --------------------------------------------------------------------------
   The open/closed state is an Ember class on `.learner__container`, and CSS
   can't set it. What it can do is make the closed state render identically
   to the open one, then remove the controls that toggle it.

   Measured difference between the two:
       --toggled   sidebar float:left, width 25%   content width 75%
       --closed    sidebar position:absolute,
                   transform:translateX(-1125px),
                   visibility:hidden               content width 100%

   So all five properties have to be reversed - neutralising only the
   transform leaves the sidebar overlapping the content, because the float
   and the content width are what actually make room for it.

   Hiding `.learner__sidebar__search` removes the search field AND the "Hide"
   button, since TI nests the toggle inside the search row. That's both
   requests in one rule.

   Held to >=900px deliberately: forcing a 374px sidebar open on a phone
   would leave almost nothing for the lesson. Below that it behaves normally,
   which is why section 3 stays outside this query.
   -------------------------------------------------------------------------- */
@media (min-width: 900px) {
  body.learn.course .learner__container--closed .learner__sidebar {
    position: static !important;
    float: left !important;
    width: 25% !important;
    transform: none !important;
    visibility: visible !important;
  }

  body.learn.course .learner__container--closed .learner__content {
    width: 75% !important;
  }

  /* Search field + the "Hide" toggle that lives inside it. */
  body.learn.course .learner__sidebar__search { display: none !important; }

  /* The "Menu" toggle shown when the sidebar is closed. */
  body.learn.course .learner__content > .learner__container__toggle { display: none !important; }

  /* Replaces the top spacing the search row used to provide. */
  body.learn.course .learner__sidebar { padding-top: 24px; }

  /* TI ships .learner__content with `padding: 32px 160px`. That was fine when
     the sidebar could close and the content ran full-bleed; with the sidebar
     permanently open it reads as a canyon - measured 192px between the
     sidebar edge and the first character.

     Cutting the padding alone would let the text run to ~1030px, which is far
     too long a line to read comfortably, so the measure is held with a
     max-width instead. Net: gap 192px -> 88px, line length 739px -> 808px. */
  body.learn.course .learner__content {
    padding-left: 56px !important;
    padding-right: 56px !important;
  }

  /* Measure cap for the standard content column.

     THE `:not()` MATTERS. TI has a second variant, `.topic__content--full-width`,
     used by quiz pages (and anything else that wants the full column). A plain
     `.topic__content { max-width: 840px }` capped that too, which is what made
     the Knowledge Check's grey panel sit narrow and off-centre relative to the
     progress bar above it. That was my bug, not TI's. See section 8. */
  body.learn.course .topic__content:not(.topic__content--full-width) {
    max-width: 840px;
  }

  body.learn.course .topic__content--full-width { max-width: none !important; }
}


/* --------------------------------------------------------------------------
   4b. Section progress bar - left edge
   --------------------------------------------------------------------------
   TI gives `.section-progress-bar` `padding: 16px` on the sides. The element
   itself is the full content width, but that inset pushes the visible track
   in by 16px at each end, so it never lined up with anything below it:

       section-progress-bar (track)   462 -> 1409   947px
       intro copy                     446 -> 1425   979px
       video                          446 -> 1425   979px
       caption                        446 -> 1425   979px

   Three of the four already agreed. The progress bar was the outlier, so the
   fix is to drop its inset rather than to indent the copy - 446 is the real
   content baseline, and it's set by the video, which can't move.

   Not scoped to the >=900px media query above: the 16px inset is wrong at
   every width, since it's measured against siblings rather than the viewport.

   Verified at 1512px: all four now start at 446 and end at 1425.
   -------------------------------------------------------------------------- */
body.learn.course .section-progress-bar {
  padding-left: 0 !important;
  padding-right: 0 !important;
}


/* --------------------------------------------------------------------------
   5. Hide Notes
   Targeted by the link's href rather than by position, so it survives TI
   reordering the panel list. The <li> itself carries no class, hence :has().

   USE `*=`, NOT `$=`. The href is not the same on every page:

       page 1 (Video Tutorial)   /learn/course/<slug>/notes
       page 2 (Knowledge Check)  /learn/course/<slug>/notes?page=2

   The query string means the string no longer ENDS with "/notes", so `$=`
   matched page 1 only - which is exactly why Notes reappeared on the
   Knowledge Check page. `*=` is safe here: a course slug can't contain a
   slash, so "/notes" only ever occurs as that path segment.
   -------------------------------------------------------------------------- */
body.learn.course .learner__sidebar__expandables > li:has(> a[href*="/notes"]) {
  display: none !important;
}


/* --------------------------------------------------------------------------
   5b. Course section navigation (appears once a course has 2+ pages)
   --------------------------------------------------------------------------
   READ THE SCOPING NOTE BEFORE EDITING. TI builds this list with utility
   classes from a newer design system than the rest of the sidebar -
   `.container`, `.bg-accent-100`, `.border-neutral-400`, `.text-base`.
   `.container` in particular is a name both Foundation and Tailwind use, and
   it appears all over the product. Every rule below is anchored to
   `.learner__sidebar__expandables > li >` so it cannot escape this list.
   A bare `.container` rule would repaint large parts of the site.

   What was odd about the default: the active item was a light-blue band with
   1px grey hairlines (#A3A3A3) on top and bottom only - `border-l-0
   border-r-0` - so it read as a box with its sides missing, sitting among
   components that are otherwise rounded and on-palette. The grey isn't in
   the HG palette either.

   Now: one rounded card holding both rows, hairlines in #E2E8F0, and the
   current page marked with a 3px inset blue bar rather than a partial box.

   Note `:last-of-type` rather than `:last-child` on the divider - the <li>
   carries trailing script nodes, so `:last-child` never matches and the
   final row keeps a stray bottom border.
   -------------------------------------------------------------------------- */
/* "Course Sections:" heading, matched to the Progress header above it -
   same 15px/800/#0058A3 with a 1px rule beneath.

   It's a ::before on the <li> because CSS can't insert markup, the same
   technique as the Support label in section 7. That's why the card border
   lives on the rows below rather than on the <li>: a border plus
   overflow:hidden on the <li> would trap the heading inside the card. */
body.learn.course .learner__sidebar__expandables > li:has(> .container) {
  border: 0;
  border-radius: 0;
  overflow: visible;
  background: transparent;
}

body.learn.course .learner__sidebar__expandables > li:has(> .container)::before {
  content: "Course Sections:";
  display: block;
  font-family: "basic-sans", "Basic Sans", "DM Sans", "Helvetica Neue", Arial, sans-serif;
  font-size: 15px;
  font-weight: 700;
  color: #071834;
  padding: 12px 0;
  margin-bottom: 12px;
  /* black to match the Progress header's existing rule; soften both together
     if you'd rather they were #E2E8F0 */
  border-bottom: 1px solid #071834;
}

/* The card outline is drawn by the rows, so the heading can sit outside it. */
body.learn.course .learner__sidebar__expandables > li > .container {
  border: 1px solid #EFE4DC !important;
  border-top: 0 !important;
  border-radius: 0 !important;
  background: #FFFFFF !important;
  box-shadow: none !important;
}

body.learn.course .learner__sidebar__expandables > li > .container:first-of-type {
  border-top: 1px solid #EFE4DC !important;
  border-top-left-radius: 10px !important;
  border-top-right-radius: 10px !important;
}

body.learn.course .learner__sidebar__expandables > li > .container:last-of-type {
  border-bottom-left-radius: 10px !important;
  border-bottom-right-radius: 10px !important;
}

body.learn.course .learner__sidebar__expandables > li > .container:hover {
  background: #FBF6EC !important;
}

/* Current page. The inset bar replaces TI's partial-box treatment. */
body.learn.course .learner__sidebar__expandables > li > .container.bg-accent-100 {
  background: #EFE4DC !important;
  box-shadow: inset 3px 0 0 #FF4A4A !important;
}

/* TI ships 20px 32px, which is oversized for a two-item list. */
body.learn.course .learner__sidebar__expandables > li > .container > a {
  padding: 14px 18px !important;
}

body.learn.course .learner__sidebar__expandables > li span.text-base {
  font-size: 15px !important;
  font-weight: 700 !important;
  color: #3B465B !important;
}

body.learn.course .learner__sidebar__expandables > li > .container.bg-accent-100 span.text-base {
  color: #071834 !important;
}


/* --------------------------------------------------------------------------
   5d. Lesson title + Next Page button
   --------------------------------------------------------------------------
   The lesson title was 20px/400 in #333 - lighter than the sidebar labels
   sitting right next to it, which is what made it read as slightly off.
   Now 800 in brand blue, so it ties to the active nav item.

   The Next Page control was a plain text link. Turning it into a button took
   three passes, and the reasons are worth recording:

   1. Background is refused on the `<a>` and on the `.ember-view` wrappers
      inside `.directional__nav`, even with !important at high specificity -
      the same unreachable-stylesheet behaviour as the catalog tile borders.
      The outer `__container--next` accepts it, so the button box lives there.
   2. The chevron and the label are siblings, and the chevron comes FIRST in
      the DOM. Without `row-reverse` the arrow renders to the left of "Next
      Page", pointing back the way you came.
   3. TI paints the chevron its own blue disc. Flattened inside the button,
      or you get a blue circle on a blue rectangle.

   TI renders this nav twice per lesson, above and below the content. These
   rules cover both.
   -------------------------------------------------------------------------- */
body.learn.course .learner-section__title__container h3 {
  font-size: 20px !important;
  font-weight: 700 !important;
  color: #071834 !important;
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
}

/* Hide the duplicate nav at the top of the lesson, keep the one at the
   bottom. Both are siblings with the same parent and identical classes, so
   there's nothing to target directly - but the top one is the only one with
   another nav after it. `:has(~ ...)` says exactly that.

   This degrades correctly: on a page that renders only one nav, nothing
   matches and that nav stays visible. Don't swap it for :first-of-type,
   which would hide the only nav on such a page. */
body.learn.course .directional__nav:has(~ .directional__nav) {
  display: none !important;
}

/* Next - filled */
body.learn.course .directional__nav__button__container--next {
  display: inline-block !important;
  background-color: #071834 !important;
  border-radius: 6px !important;
  transition: background-color .18s ease !important;
}

body.learn.course .directional__nav__button__container--next:hover {
  background-color: #3B465B !important;
}

/* Previous - outlined. 9px padding against next's 10px, to absorb the 1px
   border so both land on the same height. */
body.learn.course .directional__nav__button__container--prev {
  display: inline-block !important;
  background-color: #FFFFFF !important;
  border: 1px solid #071834 !important;
  border-radius: 6px !important;
  transition: background-color .18s ease !important;
}

body.learn.course .directional__nav__button__container--prev:hover {
  background-color: #EFE4DC !important;
}

body.learn.course .directional__nav__button__container--next a { padding: 10px 16px !important; }
body.learn.course .directional__nav__button__container--prev a { padding: 9px 16px !important; }

/* flex, not inline-block: as inline-block the anchor's line box adds
   descender space below the inline-flex child, and it lands differently on
   each button - measured 49px against 44px. flex removes the line box. */
body.learn.course .directional__nav__button__container--next a,
body.learn.course .directional__nav__button__container--prev a {
  display: flex !important;
  align-items: center !important;
  text-decoration: none !important;
}

body.learn.course .directional__nav__button__container--next a > div,
body.learn.course .directional__nav__button__container--prev a > div {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
}

/* Only the next button reverses - its chevron precedes the label in the DOM.
   The prev chevron is already on the correct side. */
body.learn.course .directional__nav__button__container--next a > div {
  flex-direction: row-reverse !important;
}

/* TI paints each chevron its own blue disc; flatten both inside the buttons. */
body.learn.course .directional__nav .directional__nav__button {
  background: transparent !important;
  width: auto !important;
  height: auto !important;
  padding: 0 !important;
  margin: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
}

body.learn.course .directional__nav .directional__nav__label {
  font-family: "basic-sans", "Basic Sans", "DM Sans", "Helvetica Neue", Arial, sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 20px !important;
}

body.learn.course .directional__nav__button__container--next .directional__nav__label,
body.learn.course .directional__nav__button__container--next [class^="icon-"] {
  color: #FFFFFF !important;
}

body.learn.course .directional__nav__button__container--prev .directional__nav__label,
body.learn.course .directional__nav__button__container--prev [class^="icon-"] {
  color: #071834 !important;
}

body.learn.course .directional__nav [class^="icon-"] {
  font-size: 16px !important;
}


/* --------------------------------------------------------------------------
   5c. Bookmark control - hidden by request
   The trigger sits in the lesson title row; the dropdown panel is a separate
   element that stays in the DOM, so both are hidden. Hiding only the icon
   would leave the panel able to open.
   -------------------------------------------------------------------------- */
body.learn.course .bookmark-dropdown__button,
body.learn.course .bookmark-dropdown {
  display: none !important;
}


/* --------------------------------------------------------------------------
   6. Progress panel - onto the brand palette
   --------------------------------------------------------------------------
   Two of these were genuine brand violations, not preferences:

     - the meter was linear-gradient(90deg, #1C83AE, #8AD56E) - teal into
       GREEN. Green is banned in the HG palette. Now the blue-to-purple
       brand gradient, the same one on the catalog and Insider hero bands.
     - the percentage was #B6259E, a magenta that isn't in the palette
       at all.

   The collapse icon at the top right is still off-palette orange. It's a
   PNG background-image set by your existing theme CSS
   (`.expandable-sidebar__toggle i.icon-navigatedown`), and CSS can't recolour
   an image - that one needs the asset swapping.
   -------------------------------------------------------------------------- */
body.learn.course .course-completion-progress .expandable-sidebar__toggle {
  font-size: 15px !important;
  font-weight: 700 !important;
  letter-spacing: .02em;
}

body.learn.course .course-completion-progress .progress {
  background: #EFE4DC !important;
}

body.learn.course .course-completion-progress .progress .meter {
  background-image: none !important;
  background-color: #FF4A4A !important;
}

body.learn.course .course-completion-progress .stat.highlight,
body.learn.course .course-completion-progress .stat.highlight sup {
  color: #071834 !important;
  font-weight: 700 !important;
}

body.learn.course .course-completion-progress .avatar {
  background-color: #EFE4DC !important;
  color: #071834 !important;
  font-weight: 700 !important;
}

body.learn.course .course-completion-progress .description {
  color: #3B465B !important;
}

body.learn.course .course-completion-progress .btn--link {
  font-weight: 700 !important;
}

/* Vertical rhythm. Measured before: 4px between the heading and the avatar
   row, and 0px between the avatar row and the progress bar - they were
   literally touching. Now an even 16px between each block. */
body.learn.course .course-completion-progress .expandable-sidebar__content {
  padding-top: 16px;
}

body.learn.course .course-completion-progress .progress {
  margin-top: 16px !important;
  margin-bottom: 14px !important;
}


/* --------------------------------------------------------------------------
   6b. Sidebar utility buttons (Support / Sign Out)

   CURRENTLY INERT - section 10 hides this whole block. Kept rather than
   deleted so that removing section 10 restores the styled buttons in one
   step. If you decide the buttons are gone for good, delete 6b and 7 too.

   Your theme rule gives these `padding: 12px 32px; font-size: 18px` and a
   square corner, so they were heavier than every other button on the page.
   Now on the same system as section 1 - 14px/800, 6px radius.

   Outlined rather than filled on purpose: neither is a task in the lesson,
   and two solid blue blocks in the sidebar pulled attention away from the
   content. Flip the background/colour pair if you'd rather they were filled.
   -------------------------------------------------------------------------- */
body.learn.course .expandable-sidebar__buttons {
  display: flex !important;
  gap: 10px;
  align-items: center;
}

/* TI floats the second one right; flex handles the spacing now. */
body.learn.course .expandable-sidebar__buttons .right {
  margin: 0 !important;
  float: none !important;
}

body.learn.course .expandable-sidebar__buttons a {
  font-family: "basic-sans", "Basic Sans", "DM Sans", "Helvetica Neue", Arial, sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 20px !important;
  padding: 9px 18px !important;
  border-radius: 6px !important;
  background: #FFFFFF !important;
  color: #071834 !important;
  border: 1px solid #071834 !important;
  text-align: center;
  transition: background-color .18s ease, color .18s ease !important;
}

body.learn.course .expandable-sidebar__buttons a:hover {
  background: #071834 !important;
  color: #FFFFFF !important;
}


/* --------------------------------------------------------------------------
   6c. Lesson body typography
   --------------------------------------------------------------------------
   The text above and below the video were genuinely different sizes, and it
   wasn't inline formatting in the content - it's two different TI containers
   with different base type:

       above the video   .topic__content--text   16px / 23.2px
       below the video   .video__caption         18px / 26.1px

   Both normalised to 18px / 1.6 / #212121, which is also the body size the
   catalog and Insider pages use, so lesson copy now matches the rest of the
   Academy rather than just matching itself.

   Applied to `.editor-content` inside the lesson, so it covers any text block
   TI renders there, not just these two.

   CAVEAT, and it bit once: `.editor-content` is also what TI wraps the quiz
   start text and the quiz pass/fail message in. 18px is right for a full-width
   lesson body and much too big inside a 306px results panel, where it wrapped
   the fail message across six lines. Sections 8 and 8d walk it back for those
   two places. If you add another rule here, check the quiz screens too.
   -------------------------------------------------------------------------- */
body.learn.course .learner__content .editor-content p,
body.learn.course .learner__content .editor-content li {
  font-size: 18px !important;
  line-height: 1.6 !important;
  color: #071834 !important;
}

body.learn.course .learner__content .editor-content p {
  margin-bottom: 16px;
}


/* --------------------------------------------------------------------------
   7. Support link label

   CURRENTLY INERT - section 10 hides the block this sits in. Same reasoning
   as 6b: kept so section 10 is reversible by deletion alone.
   --------------------------------------------------------------------------
   The anchor is <a href="/support"><span id="i18n-6"></span></a> - a real,
   working link whose i18n label string is blank in your locale config, so it
   renders as a bare blue rectangle. `:empty` does NOT match it, because the
   span exists and is merely textless.

   THE HREF STILL POINTS AT /support. CSS cannot change a link destination -
   that needs either a TI setting or JavaScript. See the notes I sent with
   this file.

   Delete this block once you set the label in TI's localization settings,
   or the CSS label will fight the real one.
   -------------------------------------------------------------------------- */
body.learn.course .expandable-sidebar__buttons a[href="/support"] span:empty::after {
  content: "Support";
}


/* --------------------------------------------------------------------------
   8. Knowledge Check (quiz page)
   --------------------------------------------------------------------------
   MEASURED BEFORE, on the start screen:

       .quiz-start__content        776 x 388   bg rgb(246,246,246)
                                   no radius, no padding
       .quiz-start__main-title     37.8px / 400 / #333
       button.btn--primary--huge   18px / 400 / sans-serif, radius 5px

   The grey panel was 776px wide while the progress bar above it was 979px,
   so the page looked like two different layouts stacked. Cause was section 4
   capping `.topic__content` at 840px without excusing TI's `--full-width`
   variant, plus horizontal padding on the quiz container. Both handled - the
   exclusion lives in section 4, the padding is reset below.

   Verified after: grey panel 979px at x=446, flush with the progress bar.

   The type here is deliberately quieter than TI's default. A 37.8px title on
   an interstitial screen out-shouts the lesson title on the page behind it;
   26px/800 puts it in the same family as the sidebar headings.
   -------------------------------------------------------------------------- */

/* Reset the insets that were holding the panel narrow. */
body.learn.course .topic__content--full-width {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

body.learn.course .quiz__container {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* The start panel. */
body.learn.course .quiz-start__content {
  background: #FBF6EC !important;
  border-radius: 10px !important;
  padding: 40px 32px !important;
}

/* Title. The span is targeted too - TI wraps the text in one, and the span
   carries its own font-size, so styling the <p> alone does nothing. */
body.learn.course .quiz-start__main-title,
body.learn.course .quiz-start__main-title span {
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
  font-size: 26px !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  color: #071834 !important;
}

/* Body copy inside the panel. `:not(.quiz-start__main-title)` keeps this off
   the title, which is also a <p>. */
body.learn.course .quiz-start__content p:not(.quiz-start__main-title),
body.learn.course .quiz-start__content li {
  font-family: "basic-sans", "Basic Sans", "DM Sans", "Helvetica Neue", Arial, sans-serif !important;
  font-size: 16px !important;
  line-height: 1.6 !important;
  color: #3B465B !important;
}

/* --------------------------------------------------------------------------
   8b. Answer choice width
   --------------------------------------------------------------------------
   Long answers wrapped to a second line with a third of the row still empty
   - the D option on the TAM question was the obvious one.

   The cause is Foundation grid math, not the copy. TI nests a `.row.choice`
   inside each `<li>`, and that row ends up shrink-to-fit rather than filling
   its parent, so the percentage columns inside it size against the row while
   the row sizes against the columns. Measured at 1512px:

       li  .choice--multiple      446 -> 1425   979px   <- the bordered box
       row .row.choice            442 -> 1158   716px   <- 263px short
         .choice__index  (1/12)                  60px
         text column    (11/12)                 656px

   60 + 656 = 716, exactly the row width, which is the tell.

   `width: 100%` breaks the circularity. The margins go with it: Foundation
   gives `.row` a -16px side margin to cancel column gutters, and left in
   place that hangs the row 4px past the border on the left while leaving a
   28px gap on the right. Zeroing it centres the row in the bordered box.

   After: row 458 -> 1413 inside li 446 -> 1425, text column 875px (was 656).
   Every answer in the bank now fits on one line at this width.
   -------------------------------------------------------------------------- */
body.learn.course .quiz__container .row.choice {
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}


/* --------------------------------------------------------------------------
   8c. Quiz buttons
   --------------------------------------------------------------------------
   Covers START TEST, Submit, and Next Question in one rule - they're all
   inside `.quiz__container`, and they all arrived with the same TI defaults:

       sans-serif / Arial / Helvetica, 16px / 400, radius 2px, 38px tall

   Same mismatch as the lesson buttons in section 1, so the same treatment.
   Measured after: 156 x 48, Nunito Sans 15/800, 6px radius.

   `:not(.btn--bare):not(.btn--link)` keeps this off TI's icon and text-link
   variants, which would blow up the way the sidebar search icon did when the
   blanket `.btn` rule was tried in section 1.
   -------------------------------------------------------------------------- */
body.learn.course .quiz__container .btn:not(.btn--bare):not(.btn--link) {
  font-family: "basic-sans", "Basic Sans", "DM Sans", "Helvetica Neue", Arial, sans-serif !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  line-height: 20px !important;
  padding: 13px 26px !important;
  height: auto !important;
  border-radius: 6px !important;
  background-color: #071834 !important;
  border: 1px solid #071834 !important;
  color: #FFFFFF !important;
  transition: background-color .18s ease, border-color .18s ease !important;
}

body.learn.course .quiz__container .btn:not(.btn--bare):not(.btn--link):hover {
  background-color: #3B465B !important;
  border-color: #3B465B !important;
}

body.learn.course .quiz__container .btn:not(.btn--bare):not(.btn--link):focus-visible {
  outline: 3px solid #FF4A4A;
  outline-offset: 2px;
}

/* Submit is disabled until an answer is picked. Light blue rather than grey
   so it still reads as part of the brand while clearly being inert. */
body.learn.course .quiz__container .btn[disabled] {
  background-color: #CED1D6 !important;
  border-color: #CED1D6 !important;
  color: #3B465B !important;
  cursor: not-allowed !important;
}

/* NOTE - 8c also catches `.btn--success`, the class TI puts on the button that
   appears after a pass. Left to itself that renders GREEN, which is off-brand.
   Worth remembering if you ever narrow the selector above. */


/* --------------------------------------------------------------------------
   8d. Results screen
   --------------------------------------------------------------------------
   THE CHART. TI ships four steps of a single desaturated teal, which is why
   the four series were hard to tell apart:

       total      #174659
       answered   #496D7B
       correct    #78929D
       incorrect  #CED6DA

   Replaced with four different hues rather than four steps of one, assigned
   by what each series means rather than by order:

       total      #718096  neutral grey  - the denominator, context not outcome
       answered   #6F2F92  purple        - progress through the attempt
       correct    #0058A3  brand blue    - the outcome that matters, so it gets
                                           the primary colour
       incorrect  #C9194A  melon         - the only red on the screen, and it
                                           agrees with "You did not pass"

   Green is deliberately absent, per brand.

   The same four classes exist as `.label-circle--*` on the legend dots, so
   each pair is set together - miss one and the legend stops matching the
   chart. The bars already carry a pill radius from TI; that's kept.

   THE ROW OVERFLOW. `.row.question-stats__container` carries Foundation's
   -16px gutter margin, so the whole results block hung 16px past the content
   column on both sides. Same cause as the answer rows in 8b. Zeroed.
   Verified: 324 -> 937, matching `.topic__content--full-width` exactly.

   THE FAIL MESSAGE was 18px - that's section 6c's lesson-body rule reaching
   into `.editor-content`, which TI reuses here. 18px in a 306px panel wrapped
   it over six lines. 15px at 1.55 fits the box.
   -------------------------------------------------------------------------- */

/* Row alignment */
body.learn.course .quiz__container .row.question-stats__container {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Chart bars + legend dots, paired */
body.learn.course .quiz__container .chart-bar--total,
body.learn.course .quiz__container .label-circle--total {
  background-color: #9DA2AD !important;
}

body.learn.course .quiz__container .chart-bar--answered,
body.learn.course .quiz__container .label-circle--answered {
  background-color: #071834 !important;
}

body.learn.course .quiz__container .chart-bar--correct,
body.learn.course .quiz__container .label-circle--correct {
  background-color: #2F9E44 !important;
}

body.learn.course .quiz__container .chart-bar--incorrect,
body.learn.course .quiz__container .label-circle--incorrect {
  background-color: #E03131 !important;
}

/* Legend and axis labels */
body.learn.course .quiz__container .results__question-labels li {
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: .02em !important;
  color: #3B465B !important;
}

body.learn.course .quiz__container .results__chart-label {
  font-size: 14px !important;
  font-weight: 700 !important;
  color: #3B465B !important;
}

/* "TEST RESULTS" - matched to the eyebrow style used on the catalog and
   Insider pages instead of TI's 14px/400. */
body.learn.course .quiz__container .results__title,
body.learn.course .quiz__container .results__title span {
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .12em !important;
  color: #6C7484 !important;
}

/* Score panel and the two message boxes - same card treatment as the quiz
   start screen in section 8, so all three read as one system. */
body.learn.course .quiz__container .panel--alt {
  background: #FBF6EC !important;
  border: 1px solid #EFE4DC !important;
  border-radius: 10px !important;
  padding: 20px !important;
  color: #3B465B !important;
}

body.learn.course .quiz__container .question-results__message,
body.learn.course .quiz__container .question-results__grade-remaining {
  border: 1px solid #EFE4DC !important;
  border-radius: 10px !important;
  padding: 20px !important;
}

/* Score line */
body.learn.course .quiz__container .question-results__grade .panel--alt {
  font-size: 17px !important;
  font-weight: 700 !important;
  color: #071834 !important;
}

body.learn.course .quiz__container .results__grade-percentage {
  font-weight: 700 !important;
  color: #071834 !important;
}

/* Pass/fail line. TI's red is #CE3532; this is the brand melon so it matches
   the incorrect bar directly above it. */
body.learn.course .quiz__container .results__grade__status,
body.learn.course .quiz__container .results__grade__status span {
  font-size: 15px !important;
  font-weight: 700 !important;
  letter-spacing: .02em !important;
  color: #E03131 !important;
}

/* Pass/fail message copy - walks back section 6c inside this panel. */
body.learn.course .quiz__container .question-results__message .editor-content p,
body.learn.course .quiz__container .question-results__message .editor-content li {
  font-size: 15px !important;
  line-height: 1.55 !important;
  color: #3B465B !important;
}

/* "80% required for passing grade" */
body.learn.course .quiz__container .quiz__start__grade span {
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .1em !important;
  color: #6C7484 !important;
}


/* --------------------------------------------------------------------------
   9. Dashboard label on the header home icon
   --------------------------------------------------------------------------
   WHY THIS IS HERE AND NOT IN THE SIDEBAR. The obvious place for a "Student
   Dashboard" button is the sidebar footer next to Support and Sign Out, but
   that footer is hard-coded to exactly two anchors:

       <a href="/support"><span id="i18n-6"></span></a>
       <a href="/learn/sign_out"><span id="i18n-7">Sign Out</span></a>

   There's no third element to style, and CSS can't create a working link.
   Adding one needs a TI theme change.

   It turned out not to be needed. The route already exists and is prominent:
   the house icon in the top-left is `.header__left__icon`, href `/learn`,
   `title="Back to Dashboard"`. It was simply unlabelled, so nobody reads it
   as the dashboard. This labels it.

   STACKED, NOT INLINE, AND THAT MATTERS. Putting the label beside the icon
   widened the block from 98px to 183px. `.header__left__copy` is an inline
   sibling in a block parent, so it wrapped to a second row and the header
   grew from 80px to 160px, shoving the course title under the icon. Stacking
   inside the existing 98px keeps every other measurement identical.

   Verified: icon block still 98 x 80, header still 80px, course title still
   at x=98.

   This is a real link with a real destination, unlike the Support label in
   section 7 - no need to remove it later.
   -------------------------------------------------------------------------- */
body.learn.course .header__left__icon {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 2px !important;
  color: #FFFFFF !important;
}

body.learn.course .header__left__icon .icon-home {
  font-size: 26px !important;
  line-height: 1 !important;
}

body.learn.course .header__left__icon::after {
  content: "Dashboard";
  font-family: "basic-sans", "Basic Sans", "DM Sans", "Helvetica Neue", Arial, sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  white-space: nowrap;
  color: #FFFFFF;
}

/* --------------------------------------------------------------------------
   10. Hide the sidebar utility buttons
   --------------------------------------------------------------------------
   Removes the Support / Sign Out pair from the lesson sidebar. Supersedes
   sections 6b and 7, which are left in place so this is reversible by
   deleting this one block.

   VERIFIED THE SIGN-OUT ROUTE FIRST, because this was the only sign-out on
   the lesson page and removing it blind would have stranded learners. It is
   reachable, but it takes finding:

       Learner Dashboard (/learn/dashboard)
         -> avatar button, top right
           -> Account  /learn/account
           -> Sign Out /learn/sign_out

   Two notes on that. The account menu is a <button> that opens on click, so
   the link isn't in the page until it's opened - a straight DOM search for
   "sign out" on the dashboard finds nothing. And /learn redirects admins to
   /learn/manager/dashboard, which is a different page with a different menu;
   the learner path above is the one that matters here.

   So sign-out is now two clicks and a menu away rather than one click in the
   sidebar. That's the trade, and the Dashboard label in section 9 is what
   makes the first of those two clicks findable.

   Verified: sidebar height 520 -> 480, no orphaned space, Progress panel and
   "Show Details" still the last elements.
   -------------------------------------------------------------------------- */
body.learn.course .expandable-sidebar__buttons {
  display: none !important;
}

/* ==========================================================================
   END PATCH
   ========================================================================== */
/* ==========================================================================
   PATCH - homepage hero, consistent framing across screen sizes

   Paste at the END of the Custom CSS. It overrides two declarations in the
   existing `.hHomepageHero .hero` rule; leave that rule where it is.

   --------------------------------------------------------------------------
   WHY THE TWO MACHINES LOOK DIFFERENT
   --------------------------------------------------------------------------
   Nothing to do with the machines. It's window width.

   The current rule is `height: 480px` + `background-size: cover` on a source
   photo that's 4000 x 2670 - a 3:2 image being poured into a very wide, very
   short box. Because the height is pinned and the width isn't, the BOX shape
   changes with the window, and `cover` crops to whatever shape it finds.

   How much of the photo's height actually survives, at 480px tall:

       1200px window   60.7%
       1440px          50.5%
       1512px          48.0%
       1680px          43.2%
       1920px          37.7%
       2560px          28.3%

   So a wide window shows less than half of what a narrow one shows, and the
   subject appears correspondingly larger. That's the entire difference
   between your two screenshots. DPR affects sharpness, not framing.

   --------------------------------------------------------------------------
   WHY THIS CAN'T BE FIXED WITH background-position ALONE
   --------------------------------------------------------------------------
   `background-position` moves the crop window. It doesn't change its size.
   The problem is the amount cropped, not where it sits, so nudging the
   position just relocates the inconsistency.

   The fix has two halves, and both are needed:

   1. CROP THE PHOTO SERVER-SIDE to roughly the band's shape, so CSS has
      almost nothing left to crop. `c_fill,g_center,w_2400,h_770` is 3.117:1
      against the band's ~3.12:1. `g_center` matches what CSS
      `background-position: center` was already doing, so the framing you see
      today at ~1500px is preserved rather than re-composed.

      Side benefit: 2400x770 instead of 4000x2670 is a much smaller download
      for an image that was never showing more than half its height anyway.

      NOTE - the existing URL contains `/g_face/` as its own path segment with
      no crop mode alongside it. Cloudinary ignores gravity without a crop, so
      that has never done anything. I tried a real `c_fill,g_face` version and
      it re-centres on her face, which pushes her under the headline and
      crops tighter than what you have now. `g_center` keeps today's look.

   2. LET THE BOX KEEP ITS SHAPE via `aspect-ratio` rather than a fixed
      height, so the box stops changing shape as the window widens.

   --------------------------------------------------------------------------
   AFTER - visible fraction of the (new) source
   --------------------------------------------------------------------------
       1200px   90.5%   (crops horizontally, at the min-height floor)
       1440px    100%
       1512px    100%
       1680px    100%
       1920px    100%
       2100px   92.7%   (past the max-height ceiling)
       2560px   75.9%

   Identical from roughly 1400 to 1950, which covers almost every laptop and
   monitor in use. Outside that range it drifts, but gently - 75.9% at 2560
   against 28.3% today.

   --------------------------------------------------------------------------
   THE ONE TRADE-OFF, STATED PLAINLY
   --------------------------------------------------------------------------
   You cannot have both a fixed height AND identical framing at every width.
   One of the two has to give:

     - identical framing everywhere  ->  height must scale with width
     - fixed height everywhere       ->  framing must change with width

   The min/max below is the compromise: the height floats between 420 and
   620px, which is where the framing is stable, and clamps outside it.

   If you want it pixel-identical at EVERY width, delete the `min-height`
   and `max-height` lines. The hero then becomes 380px tall at 1200px and
   816px tall at 2560px. That's a tall banner on a big monitor, which is why
   I clamped it rather than making that call for you.
   ========================================================================== */

.hHomepageHero .hero {
  /* Sharper hero (2026). Two crops of the same 3.117:1 frame, same g_center:
       1x screens   w_2000  q_auto:good   ~1.4x the pixels a 1440px window needs
       2x screens   w_4000  q_auto:best   the source's full 4000px width, so
                                          Cloudinary only crops, never resamples
     The old single w_2400 / q_auto file was ~62KB: too few pixels for a
     retina screen and compressed hard enough to show grain under the scrim.
     The first line is a fallback for browsers without image-set(). */
  background-image: url("https://media.thoughtindustries.com/thoughtindustries/image/upload/c_fill,g_center,w_4000,h_1283,f_auto,q_auto:best/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/l1ok7m33xhu0-shutterstock_13569163822.jpg") !important;
  background-image: -webkit-image-set(url("https://media.thoughtindustries.com/thoughtindustries/image/upload/c_fill,g_center,w_2000,h_642,f_auto,q_auto:good/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/l1ok7m33xhu0-shutterstock_13569163822.jpg") 1x, url("https://media.thoughtindustries.com/thoughtindustries/image/upload/c_fill,g_center,w_4000,h_1283,f_auto,q_auto:best/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/l1ok7m33xhu0-shutterstock_13569163822.jpg") 2x) !important;
  background-image: image-set(url("https://media.thoughtindustries.com/thoughtindustries/image/upload/c_fill,g_center,w_2000,h_642,f_auto,q_auto:good/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/l1ok7m33xhu0-shutterstock_13569163822.jpg") 1x, url("https://media.thoughtindustries.com/thoughtindustries/image/upload/c_fill,g_center,w_4000,h_1283,f_auto,q_auto:best/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/l1ok7m33xhu0-shutterstock_13569163822.jpg") 2x) !important;
  height: auto !important;
  aspect-ratio: 2400 / 770;
  min-height: 420px;
  max-height: 620px;
}

/* ==========================================================================
   END PATCH
   ========================================================================== */
/* ==========================================================================
   PATCH - Learner Dashboard  (/learn/dashboard)

   Paste at the END of the Custom CSS.

   THIS PATCH ALONE IS NOT ENOUGH. Three find-and-replace edits have to happen
   in the blocks above it, and two of them fix bugs we introduced. They're
   already applied in hg-academy-custom-css-CLEAN.css - this note is for when
   you're reading the file later and wondering why those prefixes look odd.

     A. `body.catalog`  ->  `body:is(.catalog, .learn.dashboard, .page)`  94 places

        THREE routes render the catalog widget, not one:
            /catalog                          body.catalog
            /learn/dashboard                  body.learn.dashboard
            /pages/*  (HG Insider Events,     body.page
                       Power User Community)

        `.page` covers every custom page, so a future one that embeds a
        catalog widget needs no further edit. Pages without the widget are
        unaffected - every rule targets a `catalog-*` class.

        THE `:is()` LIST IS ALSO DOING SPECIFICITY WORK. `:is()` takes the
        specificity of its most specific argument, so all three routes
        inherit `.learn.dashboard`'s (0,2,0). Written as a plain `body.page `
        prefix the tile border rule LOSES to a TI rule in a cross-origin
        stylesheet and the border stays #0058A3 - I hit exactly that and had
        to raise it. Don't split this back into per-route prefixes.
     B. the seven `[role="tab..."]` selectors get a `body.course-group ` prefix
     C. `.nav--global-links { top: 22px }`  ->  `top: 20px`

   --------------------------------------------------------------------------
   A. WHY THE COURSE TILES LOOKED DIFFERENT HERE
   --------------------------------------------------------------------------
   The catalog restyle was scoped `body.catalog `, on the reasoning that TI's
   Custom CSS is global and the catalog classes shouldn't leak. Correct
   instinct, wrong boundary: the dashboard renders the same widget under
   `body.learn.dashboard`, so the same courses were showing two ways.

                        /catalog                 dashboard (before)
       tile             1px #E2E8F0, r10         1px #0058A3, square
       title            18px / 800 / #212121     16px / 400 / #0058A3
       source           11px / 800 / caps purple 12px / 400 / blue
       View Details     Nunito Sans 13 / 800     sans-serif Arial 14 / 400

   `:is()` was the cheap fix - one prefix, 93 rules, no duplication. Note it
   RAISES specificity: `:is()` takes its most specific argument, so
   (0,1,1) becomes (0,2,1). That only strengthens rules that were already
   winning, so it's safe, but keep it in mind if something later refuses to
   override them.

   One rule doesn't survive the move and is re-stated below. On /catalog the
   tile border is beaten by redefining `--secondary-color`; on the dashboard
   the border is set directly rather than through that variable, so it needs
   an explicit `border-color`. Verified: the variable resolves correctly here
   (`--hgc-border` computes to #E2E8F0) and the border still came out blue,
   which is what proves the painting rule isn't reading it.

   --------------------------------------------------------------------------
   B. THE UNREADABLE "REQUIRED" TAB WAS OURS
   --------------------------------------------------------------------------
   Worth stating plainly: this wasn't a TI default.

   The dashboard's Required / My Learning / Events row is a real ARIA
   tablist - `<ul role="tablist">` with `<button role="tab" aria-controls=...
   aria-selected="true">`. Our course-detail tab-bar block was written with no
   body scope at all, so `[role="tab"][aria-controls][aria-selected="true"]`
   was matching these buttons and painting them `#184693` with !important -
   while the theme painted the surrounding <li> `#0058A3`.

   Dark blue text on a dark blue fill, roughly 1.3:1 contrast. Not just ugly,
   genuinely unreadable, and we did it.

   Scoping that block to `body.course-group ` releases these tabs. Verified
   the course detail page is `body.home.course-group` and still has its
   tablist, so the intended target is unaffected.

   --------------------------------------------------------------------------
   C. THE NAVIGATION
   --------------------------------------------------------------------------
   Not a stylesheet-reach problem, which is what it looks like.

   `.nav--global-links` is not inside `.header`. It sits in
   `.global-nav__container`, a zero-height static div whose nearest positioned
   ancestor is <body>. So `top: 22px` positions it 22px from the top of the
   PAGE, and it only lands in the header by coincidence.

       homepage    header 61px    logo y16 h29    nav y22 h22
       dashboard   header 72px    logo y16 h29    nav y22 h22

   The logo is at the same place on every page; the header is 11px taller here
   because the account menu is bigger than the Manager Access button. So the
   nav was 2.5px below the logo everywhere, and on the dashboard the whole
   lockup also floats high in a taller band.

   `top: 20px` puts the 22px-tall nav at centre 31 against the logo's centre
   30.5. Aligned on every page, because the logo doesn't move.

   Do NOT try `top: 50%` - I did, and it resolves against <body>, which is the
   full viewport height. The nav ended up 375px down the page.

   --------------------------------------------------------------------------
   KNOWN REMAINING ISSUES - NOT FIXABLE IN CSS
   --------------------------------------------------------------------------
   1. The active tab reads "Required ()" with empty parentheses. TI renders
      nothing inside `.dashboard-access-tab__count` when the count is zero,
      and the theme adds the brackets via ::before/::after. The span isn't
      `:empty` either - it holds script placeholder nodes, same trap as the
      Support link. CSS can't tell an empty count from a populated one.

   2. The hero image is a 1500x313 screenshot PNG with the navy panel and the
      photo already composited into it. Two consequences: it paints into
      ~1497 CSS px, so on a 2x display it's at half the resolution it needs;
      and it can't be re-cropped or gradient-treated the way the homepage hero
      can. The scrim below is tuned to blend INTO that artwork rather than
      sit over a photo. If you ever replace it with a plain wide photograph,
      say so and I'll give it the same treatment as the homepage hero.

   --------------------------------------------------------------------------
   VERIFIED
   --------------------------------------------------------------------------
   Page height 2937px -> 2255px. Active tab text #FFFFFF on #0058A3. Tiles
   10px radius / #E2E8F0 / 18px-800 titles / uppercase purple source /
   Nunito Sans CTA. Nav centre 31 against logo centre 30.5.
   ========================================================================== */


/* --------------------------------------------------------------------------
   1. Hero
   TI ships the title at 76px WEIGHT 400 - thin, where every other hero on the
   Academy is 900. The scrim fades out by 72% so it darkens the flat navy on
   the left and leaves the subject alone.
   -------------------------------------------------------------------------- */
body.learn.dashboard .dBanner .hero {
  position: relative;
  height: 300px;
}

body.learn.dashboard .dBanner .hero picture {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

body.learn.dashboard .dBanner .hero picture img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center right;
}

body.learn.dashboard .dBanner .hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg,
              rgba(7, 24, 52, .70) 0%,
              rgba(7, 24, 52, .35) 45%,
              rgba(7, 24, 52, 0) 72%);
  pointer-events: none;
  z-index: 1;
}

body.learn.dashboard .dBanner .hero__caption {
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  left: 0;
  right: 0;
  z-index: 2;
}

body.learn.dashboard .dBanner .hero__caption .hero__title {
  font-size: 52px !important;
  font-weight: 900 !important;
  line-height: 1.1 !important;
  color: #FFFFFF !important;
  max-width: none !important;
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
}


/* --------------------------------------------------------------------------
   2. Section headings and vertical rhythm
   Three headings at 55px against 32px on the homepage, each in a widget
   carrying `padding: 120px ... 32px`. That padding is most of why the page
   ran 2,937px for four screens of content.
   -------------------------------------------------------------------------- */
body.learn.dashboard .dHeading {
  padding-top: 56px !important;
  padding-bottom: 20px !important;
}

body.learn.dashboard .dHeading .widget__title {
  font-size: 32px !important;
  font-weight: 900 !important;
  color: #071834 !important;
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
}

/* #EEEEEE is a flat mid-grey that isn't in the palette. */
body.learn.dashboard .dHeading.gray {
  background: #FBF6EC !important;
}

body.learn.dashboard .widget--dashboard-stats {
  padding-top: 0 !important;
  padding-bottom: 56px !important;
}

body.learn.dashboard .dLearnerAccess {
  padding-top: 0 !important;
  padding-bottom: 56px !important;
  background: #FBF6EC !important;
}

body.learn.dashboard .widget--catalog_standard {
  padding-top: 0 !important;
  padding-bottom: 64px !important;
}


/* --------------------------------------------------------------------------
   3. Stat cards - onto the same card system as everything else
   -------------------------------------------------------------------------- */
body.learn.dashboard .dashboard-stats__container {
  border: 0 !important;
  padding: 0 !important;
}

body.learn.dashboard .dashboard-stat {
  background: #FFFFFF !important;
  border: 1px solid #EFE4DC !important;
  border-radius: 10px !important;
  padding: 22px 18px 20px !important;
  height: auto !important;
}

body.learn.dashboard .dashboard-stat__icon {
  color: #071834 !important;
  margin-bottom: 12px !important;
}

body.learn.dashboard .dashboard-stat__label {
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  color: #3B465B !important;
}

body.learn.dashboard .dashboard-stat__value--huge {
  font-size: 34px !important;
  font-weight: 900 !important;
}

body.learn.dashboard .dashboard-stat__value {
  color: #071834 !important;
}


/* --------------------------------------------------------------------------
   4. Access tabs
   Square boxes with 1px black borders, labels wrapping onto three lines.
   Pills instead, sized to their content so nothing wraps.

   The `[role="tab"]` rules here are needed even after scoping the global tab
   block away: TI's own tab styling is still underneath.
   -------------------------------------------------------------------------- */
body.learn.dashboard [role="tablist"] {
  display: block !important;
  border-bottom: 0 !important;
  margin: 0 !important;
}

body.learn.dashboard .dashboard-access-tabs {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  border-bottom: 0 !important;
  margin: 0 0 8px !important;
}

body.learn.dashboard .dashboard-access-tabs li.dashboard-access-tab {
  border: 1px solid #EFE4DC !important;
  border-radius: 999px !important;
  background: #FFFFFF !important;
  padding: 0 !important;
  margin: 0 !important;
}

body.learn.dashboard [role="tab"][aria-controls] {
  padding: 10px 20px !important;
  border-bottom: 0 !important;
  margin-bottom: 0 !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  color: #3B465B !important;
  white-space: nowrap !important;
}

body.learn.dashboard .dashboard-access-tabs li.dashboard-access-tab:hover {
  border-color: #CED1D6 !important;
  background: #FBF6EC !important;
}

body.learn.dashboard .dashboard-access-tabs li.dashboard-access-tab.dashboard-access-tab--active {
  background: #071834 !important;
  border-color: #071834 !important;
}

body.learn.dashboard .dashboard-access-tab--active [role="tab"][aria-controls][aria-selected="true"] {
  color: #FFFFFF !important;
  border-bottom: 0 !important;
}


/* --------------------------------------------------------------------------
   5. Catalog tile border - the one rule that doesn't survive the :is() move
   See section A in the header for why this can't go through --secondary-color
   the way it does on /catalog.
   -------------------------------------------------------------------------- */
body:is(.catalog, .learn.dashboard, .page) .catalog-grid-item {
  border-color: #EFE4DC !important;
}

body:is(.catalog, .learn.dashboard, .page) a.catalog-item:hover .catalog-grid-item {
  border-color: #FF4A4A !important;
}

/* --------------------------------------------------------------------------
   6. Header alignment - the rest of the story
   --------------------------------------------------------------------------
   `top: 20px` in section C lined the nav up with the LOGO, and that part was
   right. What it didn't fix is that the dashboard header is built differently
   from every other page, so three separate things were out of line.

   Measured, dashboard against homepage, before:

                        homepage      dashboard
       header height    61px          72px
       logo             x16, cy31     x32, cy31
       divider          x336, cy32    x352, cy24
       nav              x370, cy31    x370, cy31
       right control    cy33          cy44          <- account menu

   Three distinct causes:

   1. HORIZONTAL. The homepage puts the logo straight inside `.header__inner`.
      The dashboard wraps it in a Foundation `.row > .column.small-6`, and
      that column carries `padding: 0 16px`. So the logo starts at x=32 rather
      than x=16, the divider follows it to x=352 - but the nav is pinned at
      `left: 370px` on every page. Result: 28px of air between divider and nav
      on the homepage, 12px here. That crowding is most of what reads as
      "misaligned".

   2. THE ACCOUNT MENU sat 13px below everything else. Its avatar is a 42px
      circle with 7px of padding, making the control 56px tall against the
      homepage button's 34px. The taller column is also why the whole header
      band was 72px instead of 61px.

   3. THE DIVIDER is 8px high here. It's an inline-block with `top: -6px`, so
      where it lands depends on the line box it sits in - and the line box
      differs between the two header structures.

   After: header 61px, logo cy31, nav cy31, divider cy32, account cy34.
   Every number matches the homepage.

   WHY NOT JUST FLEX THE ROW AND CENTRE EVERYTHING - I tried that first. It
   aligns the logo and the account menu to each other, but the nav is
   absolutely positioned against <body> and doesn't move with them, so it
   just breaks the alignment differently. The logo has to stay at y=16, which
   means aligning to the top and shrinking the account control, not centring.

   The avatar also gets the brand treatment while we're in here - it was
   #CBCBCB grey, and it's now the same light-blue-on-blue as the Progress
   panel avatar in the lesson sidebar.
   -------------------------------------------------------------------------- */

/* 1. Drop the Foundation column inset so the logo starts at 16px like everywhere else. */
body.learn.dashboard .header--dashboard .header__inner .row > .column.small-6 {
  padding-left: 0 !important;
}

/* 2. Account control down to the homepage button's height. */
body.learn.dashboard .header--dashboard .header__inner button[id^="headlessui-menu-button"] {
  padding: 2px 8px 2px 0 !important;
}

body.learn.dashboard .header--dashboard .header__inner button[id^="headlessui-menu-button"] span.rounded-full {
  width: 32px !important;
  height: 32px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  background: #EFE4DC !important;
  color: #071834 !important;
}

body.learn.dashboard .header--dashboard .header__inner button[id^="headlessui-menu-button"] > div,
body.learn.dashboard .header--dashboard .header__inner button[id^="headlessui-menu-button"] div.inline-block {
  height: auto !important;
}

/* 3. Divider back onto the same line as the logo. -6px is correct in the
   homepage's line box; this header's line box sits 8px higher. */
body.learn.dashboard .company__school-name__divider {
  top: 2px !important;
}

/* ==========================================================================
   END PATCH
   ========================================================================== */

   /* ==========================================================================
   PATCH - Whitespace Analysis with HG Insights Data
   Detail-page hero + catalog list thumbnail sharpness

   Paste at the VERY END of the Thought Industries Custom CSS.

   --------------------------------------------------------------------------
   WHY THIS IS A SEPARATE BLOCK RATHER THAN THREE IN-PLACE EDITS
   --------------------------------------------------------------------------
   The existing registries expect you to add the new public ID to three
   synchronised lists (detail geometry / detail picture-hide / detail
   background) plus two more for the catalog. That's five edits where a
   single omission gives you a correctly-sized empty box - the exact failure
   the existing header warns about.

   This block declares all five rules fresh for one course, so it is one
   paste with nothing to keep in sync. Later rules win, and nothing in the
   blocks above matches these public IDs, so there is no conflict either way.

   If you'd rather fold it into the registries, the two stems are:
       detail   xs1sof2tbe5j-whitespace-analysis-with-hg-insights-data-thumbnail1
       catalog  cmie9z29rxjw-whitespace-analysis-with-hg-insights-data-thumbnail1

   Note those are DIFFERENT IDs. Same artwork, two separate TI uploads, two
   separate registries - same split the HG Insider sessions have.

   Also note the existing detail-hero block is titled "HG Insider - detail
   hero image overrides". It isn't Insider-specific in behaviour, only in
   contents. Worth retitling to "course detail hero image overrides" at some
   point now that a non-Insider course is in scope.

   --------------------------------------------------------------------------
   MEASURED ON THE LIVE PAGES, 2026-08-25, dpr 2
   --------------------------------------------------------------------------
   Detail hero
       box            934 x 525 CSS   ->  needs 1868 x 1051 device px
       TI serves      c_fill,w_800,h_450                       0.43x
       this patch     c_fill,w_1600,h_900                      0.86x

   Catalog list thumbnail
       box            345 x 194 CSS   ->  needs  690 x  388 device px
       TI serves      c_fit,w_440,h_200   (source 356x200)     0.52x
       this patch     c_fit,w_880,h_400   (source 711x400)     1.03x

   Catalog GRID thumbnail - deliberately not patched
       box            348 x 168 CSS   ->  needs  696 x  336 device px
       TI serves      c_fill,w_750,h_361                       1.08x
   Grid is already oversampled, same as the Insider cards. Leave it alone.

   --------------------------------------------------------------------------
   THE DETAIL HERO IS STILL SHORT OF 1x, AND CSS CAN'T FIX IT
   --------------------------------------------------------------------------
   0.86x is a large improvement on 0.43x but it isn't 1:1. The limit is the
   source file, not the transformation: the uploaded PNG is 1600x900, so
   w_1600 is the most real detail Cloudinary has to give. Asking for w_2000
   would upscale and look softer, not sharper.

   To close the last 14%, re-export the card at 2x (3200x1800) and re-upload
   it as the course's Detail Image, then change w_1600,h_900 below to
   w_3200,h_1800. The thumbnail generator can emit 2x - ask and I'll wire it.

   Left at w_1600 for now so this matches the Insider blocks and works with
   the file that is actually uploaded today.

   --------------------------------------------------------------------------
   ONE LAYOUT CHANGE TO EXPECT ON THE DETAIL PAGE
   --------------------------------------------------------------------------
   TI renders the hero as an 800x450 <img> sitting inside a 934px-wide box,
   so today there is dead space either side of the artwork. Replacing the
   <img> with a background on the box means the artwork now fills that width,
   and the box grows 450px -> 525px tall to keep 16:9.

   That is the same behaviour the Insider sessions already have, so the two
   page types stay consistent. Verified on the live page: full-bleed, no
   crop, nothing below it displaced other than moving down 75px.

   --------------------------------------------------------------------------
   VERIFIED
   --------------------------------------------------------------------------
   Injected on the live detail page after all existing rules - the same
   position this will occupy at the end of the Custom CSS. Result: <picture>
   computed display:none, background-image resolved to the w_1600 derivative,
   box 934x525, artwork rendered edge to edge with the instructor row and
   HG Insights Academy lockup both fully visible.
   ========================================================================== */


/* --------------------------------------------------------------------------
   1. Course detail page hero
   -------------------------------------------------------------------------- */
.course__detail__asset:has([srcset*="xs1sof2tbe5j-whitespace-analysis-with-hg-insights-data-thumbnail1"]) {
  width: 100%;
  aspect-ratio: 16 / 9;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  background-image: url("https://media.thoughtindustries.com/thoughtindustries/image/upload/a_exif,c_fill,w_1600,h_900,f_auto,q_auto:best/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/xs1sof2tbe5j-whitespace-analysis-with-hg-insights-data-thumbnail1.png");
}

/* Hide TI's low-resolution <picture> so only the background paints. */
.course__detail__asset:has([srcset*="xs1sof2tbe5j-whitespace-analysis-with-hg-insights-data-thumbnail1"]) picture {
  display: none;
}


/* --------------------------------------------------------------------------
   2. Catalog list-view thumbnail

   Geometry first, then the 2x replacement. Both are required: content:url()
   discards the element's intrinsic sizing, so without the geometry rule the
   box collapses to 0x0.

   Scoped with the same body:is(...) prefix as the rest of the catalog work,
   so it applies on /catalog, /learn/dashboard, and any /pages/* route that
   embeds a catalog widget.

   aspect-ratio stays 356/200 (1.780) to match the Insider cards. The source
   here is 16:9 (1.778), a 0.1% difference - not perceptible, and keeping the
   value identical means every row in list view lines up.
   -------------------------------------------------------------------------- */
body:is(.catalog, .learn.dashboard, .page) .catalog-list-item__asset[src*="cmie9z29rxjw-whitespace-analysis-with-hg-insights-data-thumbnail1"] {
  display: block !important;
  width: min(100%, 356px) !important;
  height: auto !important;
  aspect-ratio: 356 / 200;
  object-fit: fill;
}

body:is(.catalog, .learn.dashboard, .page) .catalog-list-item__asset[src*="cmie9z29rxjw-whitespace-analysis-with-hg-insights-data-thumbnail1"] {
  content: url("https://media.thoughtindustries.com/thoughtindustries/image/upload/a_exif,c_fit,w_880,h_400,f_auto,q_auto:best/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/cmie9z29rxjw-whitespace-analysis-with-hg-insights-data-thumbnail1.png");
}

/* ==========================================================================
   END PATCH
   ========================================================================== */

   /* ==> PASTE INTO: Theme settings > Custom CSS.  NOT the HTML widget. <== */

/* ==========================================================================
   PATCH - "What's Included" icons for ON-DEMAND COURSE pages
   Companion to hg-included-ondemand.html

   Paste at the END of the Thought Industries Custom CSS, anywhere after the
   existing "HG Insights - Custom What's Included widget icon overrides"
   block. It only adds two new icon variants; nothing existing changes.

   --------------------------------------------------------------------------
   ONLY TWO RULES, BECAUSE TWO OF THE FOUR ICONS ALREADY EXIST
   --------------------------------------------------------------------------
   The on-demand widget uses four icons. Two are already in your stylesheet
   and are reused as-is rather than duplicated under new names:

       .hg-icon--recording   circle-play   -> the video tutorial
       .hg-icon--badge       medal         -> the certificate

   Only these two are new:

       .hg-icon--jobaid      document
       .hg-icon--check       clipboard-check

   The base .hg-icon rule - the one that positions the ::before, sets the
   18px box, paints it white and neutralises TI's own glyph font - is already
   in your stylesheet and covers these automatically. Don't re-declare it.

   --------------------------------------------------------------------------
   WHY clipboard-check RATHER THAN circle-check FOR THE KNOWLEDGE CHECK
   --------------------------------------------------------------------------
   A plain circled tick reads as "done" - a completion state. At the point
   someone is reading this sidebar they haven't started, so a tick would be
   claiming something that isn't true yet. The clipboard says "there is an
   assessment here", which is the actual promise.

   It also stays visually distinct from .hg-icon--badge directly below it.
   Two round outlined marks in a four-item stack blur together at 18px.

   --------------------------------------------------------------------------
   ON THE DATA-URI FORMAT
   --------------------------------------------------------------------------
   Same pattern as the existing icons: `utf8,` rather than base64, raw angle
   brackets, single quotes outside and double quotes inside. That combination
   is what the current icons use and what works in TI's editor.

   The one character that must never appear unescaped in one of these is `#`
   - a browser reads it as a fragment identifier and silently truncates the
   URL, giving you an invisible icon with no error. Neither path below uses
   one. If you ever swap in an icon with a fill colour, encode it as %23.

   Both are Tabler outline paths at 24x24, stroke-width 2, matching the three
   icons already in the file so the set stays visually consistent.

   --------------------------------------------------------------------------
   VERIFIED
   --------------------------------------------------------------------------
   Injected on the live Whitespace Analysis sidebar alongside the four-item
   widget. All four glyphs rendered white-on-blue in the round chips at the
   correct 18px, correctly aligned with their text.
   ========================================================================== */


/* Job aid - document with lines */
.hg-icon--jobaid::before {
  mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 3v4a1 1 0 0 0 1 1h4"/><path d="M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z"/><path d="M9 13h6"/><path d="M9 17h4"/></svg>') !important;
  -webkit-mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 3v4a1 1 0 0 0 1 1h4"/><path d="M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z"/><path d="M9 13h6"/><path d="M9 17h4"/></svg>') !important;
}

/* Knowledge check - clipboard with a tick */
.hg-icon--check::before {
  mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 5h-2a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-12a2 2 0 0 0 -2 -2h-2"/><rect x="9" y="3" width="6" height="4" rx="2"/><path d="M9 14l2 2 4 -4"/></svg>') !important;
  -webkit-mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 5h-2a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-12a2 2 0 0 0 -2 -2h-2"/><rect x="9" y="3" width="6" height="4" rx="2"/><path d="M9 14l2 2 4 -4"/></svg>') !important;
}

/* ==========================================================================
   END PATCH
   ========================================================================== */

   /* ==> PASTE INTO: Theme settings > Custom CSS.  NOT the HTML widget. <== */

/* ==> PASTE INTO: Theme settings > Custom CSS.  NOT the HTML widget. <== */

/* ==========================================================================
   HG INSIGHTS ACADEMY - Power User Community page   (v2)
   Thought Industries | Custom CSS  (append to the Academy stylesheet)

   Companion markup: power-user-community.html

   SCOPING RULE - the same one that governs the HG Insider events block and
   the catalog hero: TI's Custom CSS is GLOBAL even when authored inside one
   page's editor. Every rule below is descended from `.hgp`, a class that
   exists nowhere else on the site, and the tokens are declared on that
   wrapper rather than :root so they can't leak either. No TI class is
   targeted anywhere in this file.

   --------------------------------------------------------------------------
   WHAT CHANGED IN v2
   --------------------------------------------------------------------------
   - Hero split into two columns with a badge collage on the right (sec. 3, sec. 4)
   - New .hgp-split, used twice: eligibility copy beside the signals list,
     and Certificate of Completion copy beside the sample artwork (sec. 5)
   - Member cards forced to three columns instead of auto-fit (sec. 7)
   - .hgp-section--wide releases the 780px prose cap for the badge and
     Certificate of Completion sections (sec. 2)
   - .hgp-cert added for the sample certificate figure (sec. 9)
   - Closing fine-print rule removed along with its markup

   --------------------------------------------------------------------------
   ON THE PROSE MEASURE
   --------------------------------------------------------------------------
   Full-bleed text at this container width would run to ~1290px per line,
   which is roughly twice a comfortable measure and genuinely harder to read.
   So "full width" here is delivered by giving the sections something to put
   in the right-hand space - a signals grid, a certificate image, a badge row
   - rather than by stretching paragraphs across the whole page. The two
   sections that have no such companion (sec. 2 --wide) get a wider cap of
   1040px instead of 780px, which fills the eye without wrecking the measure.
   ========================================================================== */


/* --------------------------------------------------------------------------
   1. Scoped tokens + page frame
   -------------------------------------------------------------------------- */
.hgp {
  --hgp-dark-blue:  #071834;
  --hgp-blue:       #3B465B;
  --hgp-light-blue: #CED1D6;
  --hgp-melon:      #FF4A4A;
  --hgp-purple:     #3B465B;
  --hgp-off-white:  #EFE4DC;
  --hgp-white:      #FFFFFF;

  --hgp-text-dark:  #071834;
  --hgp-text-mid:   #3B465B;
  --hgp-text-light: #6C7484;
  --hgp-border:     #EFE4DC;

  --hgp-grad-band: #071834;

  --hgp-font: "basic-sans", "Basic Sans", "DM Sans", "Helvetica Neue", Arial, sans-serif;
  --hgp-radius: 10px;
  --hgp-tracking: 0.12em;
  --hgp-max-width: 1340px;

  max-width: var(--hgp-max-width);
  margin: 36px auto 64px;
  padding: 0 24px;
  font-family: var(--hgp-font);
  color: var(--hgp-text-dark);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

.hgp *,
.hgp *::before,
.hgp *::after { box-sizing: border-box; }

.hgp p { margin: 0 0 1rem; }
.hgp img { max-width: 100%; height: auto; display: block; }
.hgp figure { margin: 0; }


/* --------------------------------------------------------------------------
   2. Shared pieces
   -------------------------------------------------------------------------- */
.hgp .hgp-eyebrow {
  display: inline-block;
  margin: 0 0 12px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: var(--hgp-tracking);
  text-transform: uppercase;
  color: var(--hgp-dark-blue);
}

.hgp .hgp-eyebrow--light { color: var(--hgp-melon); }

.hgp .hgp-eyebrow::before {
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-right: 9px;
  vertical-align: 1px;
  background: var(--hgp-melon);
}

.hgp .hgp-h2 {
  margin: 0 0 16px;
  font-size: 30px;
  font-weight: 900;
  line-height: 1.2;
  color: var(--hgp-text-dark);
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
}

.hgp .hgp-lead {
  font-size: 18px;
  font-weight: 600;
  line-height: 1.5;
  color: var(--hgp-dark-blue);
}

.hgp .hgp-section { margin-top: 56px; }

/* Default measure cap on direct-child prose. Sections whose text sits in a
   .hgp-split column are unaffected, because that prose isn't a direct child. */
.hgp .hgp-section > p,
.hgp .hgp-section > .hgp-h2 { max-width: 780px; }

/* Wider cap for the two sections that run their copy across the page with no
   companion column beside it. */
.hgp .hgp-section--wide > p,
.hgp .hgp-section--wide > .hgp-h2 { max-width: 1040px; }

.hgp a:focus-visible {
  outline: 3px solid var(--hgp-melon);
  outline-offset: 3px;
}


/* --------------------------------------------------------------------------
   3. Hero
   -------------------------------------------------------------------------- */
.hgp .hgp-hero {
  position: relative;
  overflow: hidden;
  border-radius: var(--hgp-radius);
  background: linear-gradient(225deg, var(--hgp-melon) 0 56px, transparent 56px), var(--hgp-grad-band);
  color: var(--hgp-white);
  padding: 56px 48px 52px;
}

/* Two decorative washes, offset to opposite corners, so the flat gradient
   has some depth without needing a background image. */
.hgp .hgp-hero::before,
.hgp .hgp-hero::after {
  content: "";
  position: absolute;
  pointer-events: none;
}
.hgp .hgp-hero::before { display: none; }
.hgp .hgp-hero::after {
  content: "";
  position: absolute;
  top: auto; left: auto;
  right: 18px;
  bottom: 14px;
  width: 10px;
  height: 10px;
  padding: 0;
  border-radius: 0;
  background: #FF4A4A;
  box-shadow: -10px -10px 0 #FF4A4A, 0 -20px 0 #F09895, -20px 0 0 #F09895;
  pointer-events: none;
}

/* Same two-column shape as the Insider events hero and the catalog hero, so
   the three custom pages read as one system. */
.hgp .hgp-hero__grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 420px;
  gap: 48px;
  align-items: center;
}

.hgp .hgp-hero__inner { min-width: 0; }

.hgp .hgp-hero__title {
  margin: 0 0 18px;
  font-size: 42px;
  font-weight: 900;
  line-height: 1.1;
  letter-spacing: -0.01em;
  color: var(--hgp-white);
  text-wrap: balance;
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
}

.hgp .hgp-hero__lead {
  margin: 0 0 20px;
  font-size: 18.5px;
  line-height: 1.55;
  color: rgba(255, 255, 255, .93);
}

/* The invitation-only line. A left rule rather than a box - it's a
   clarification, not a warning, and a full card here would compete with the
   hero title directly above it. */
.hgp .hgp-hero__note {
  margin: 0;
  padding-left: 16px;
  border-left: 3px solid var(--hgp-melon);
  font-size: 15.5px;
  line-height: 1.55;
  color: rgba(255, 255, 255, .86);
}


/* --------------------------------------------------------------------------
   4. Hero badge collage

   Built from the four live badge images rather than a flattened PNG, so it
   stays sharp at any size and a new tier is one more <img> rather than a
   trip to a design tool.

   The badges are square PNGs with transparent corners, so they need a
   surface to sit on or they float. The translucent panel gives them one
   without introducing a second solid colour into the gradient.
   -------------------------------------------------------------------------- */
.hgp .hgp-hero__media { min-width: 0; }

.hgp .hgp-collage {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
  padding: 28px;
  border-radius: 14px;
  background: rgba(255, 255, 255, .10);
  box-shadow: 0 12px 34px rgba(0, 0, 0, .22);
}

.hgp .hgp-collage__img {
  width: 100%;
  height: auto;
  /* A soft drop shadow separates the gold and silver badges from the
     translucent panel, which is otherwise close to them in value. */
  filter: drop-shadow(0 3px 8px rgba(0, 0, 0, .28));
}


/* --------------------------------------------------------------------------
   5. Two-column split
   Used twice: eligibility copy beside the signals list, and Certificate of
   Completion copy beside the sample artwork.
   -------------------------------------------------------------------------- */
.hgp .hgp-split {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 48px;
  align-items: start;
  margin-bottom: 32px;
}

.hgp .hgp-split__copy { min-width: 0; }
.hgp .hgp-split__copy > *:last-child { margin-bottom: 0; }

/* The certificate variant flips the weighting - the copy carries more here,
   and the artwork reads fine a little smaller. */
.hgp .hgp-split--cert {
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  align-items: center;
}


/* --------------------------------------------------------------------------
   6. Eligibility signals
   -------------------------------------------------------------------------- */
.hgp .hgp-signals {
  margin: 0;
  padding: 0;
  list-style: none;
  min-width: 0;
}

.hgp .hgp-signals li {
  position: relative;
  padding: 0 0 0 26px;
  margin-bottom: 20px;
  color: var(--hgp-text-mid);
}

.hgp .hgp-signals li:last-child { margin-bottom: 0; }

.hgp .hgp-signals li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .55em;
  width: 9px;
  height: 9px;
  border-radius: 0;
  background: var(--hgp-melon);
}

.hgp .hgp-signals__label {
  display: block;
  font-weight: 700;
  color: var(--hgp-text-dark);
  margin-bottom: 2px;
}


/* "No self-nomination" callout - full width beneath the split. */
.hgp .hgp-callout {
  padding: 24px 28px 8px;
  border: 1px solid var(--hgp-border);
  border-left: 4px solid var(--hgp-melon);
  border-radius: var(--hgp-radius);
  background: #FBF6EC;
}

.hgp .hgp-callout__title {
  margin: 0 0 8px;
  font-size: 17px;
  font-weight: 700;
  color: var(--hgp-dark-blue);
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
}

.hgp .hgp-callout p {
  max-width: 980px;
  color: var(--hgp-text-mid);
}


/* --------------------------------------------------------------------------
   7. Member benefit cards
   Three fixed columns rather than auto-fit. With six cards, auto-fit at this
   container width resolved to four across, leaving an orphan row of two.
   -------------------------------------------------------------------------- */
.hgp .hgp-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  margin-top: 28px;
}

.hgp .hgp-card {
  padding: 26px 24px 14px;
  border: 1px solid var(--hgp-border);
  border-radius: var(--hgp-radius);
  background: var(--hgp-white);
  transition: border-color .18s ease, box-shadow .18s ease;
}

.hgp .hgp-card:hover {
  border-color: var(--hgp-light-blue);
  box-shadow: 0 4px 18px rgba(7, 24, 52, .1);
}

.hgp .hgp-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  margin-bottom: 16px;
  border-radius: 9px;
  background: var(--hgp-dark-blue);
  color: var(--hgp-melon);
}

.hgp .hgp-card__icon svg { width: 24px; height: 24px; display: block; }

.hgp .hgp-card__title {
  margin: 0 0 8px;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--hgp-text-dark);
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
}

.hgp .hgp-card p {
  font-size: 15px;
  line-height: 1.55;
  color: var(--hgp-text-mid);
}


/* --------------------------------------------------------------------------
   8. Badge tiers
   Four fixed columns at desktop so the tiers read as a progression left to
   right. auto-fit would reflow them into two rows of two at some widths,
   which breaks the sense of a ladder.
   -------------------------------------------------------------------------- */
.hgp .hgp-badges {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
  margin-top: 28px;
}

.hgp .hgp-badge {
  padding: 22px 20px 18px;
  border: 1px solid var(--hgp-border);
  border-top: 3px solid var(--hgp-melon);
  border-radius: var(--hgp-radius);
  background: var(--hgp-white);
  text-align: center;
}

.hgp .hgp-badge__level {
  margin: 0 0 4px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: var(--hgp-tracking);
  text-transform: uppercase;
  color: var(--hgp-purple);
}

.hgp .hgp-badge__name {
  margin: 0 0 14px;
  font-size: 21px;
  font-weight: 900;
  line-height: 1.2;
  color: var(--hgp-dark-blue);
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
}

.hgp .hgp-badge__img {
  width: 150px;
  height: 150px;
  margin: 0 auto 14px;
}

.hgp .hgp-badge__req {
  display: inline-block;
  margin: 0 0 12px;
  padding: 5px 14px;
  border-radius: 999px;
  background: #EFE4DC;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--hgp-dark-blue);
}

.hgp .hgp-badge__copy {
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
  color: var(--hgp-text-mid);
}


/* --------------------------------------------------------------------------
   9. Sample Certificate of Completion
   The mat keeps it reading as a sample rather than as the reader's own
   document - the same treatment used on the course Awards tabs.
   -------------------------------------------------------------------------- */
.hgp .hgp-cert { min-width: 0; }

.hgp .hgp-cert__img {
  width: 100%;
  border: 1px solid var(--hgp-border);
  border-radius: var(--hgp-radius);
  background: #FBF6EC;
  padding: 10px;
}

.hgp .hgp-cert__caption {
  margin: .7rem 0 0;
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--hgp-text-light);
}


/* --------------------------------------------------------------------------
   10. Badge vs Certificate of Completion comparison
   -------------------------------------------------------------------------- */
.hgp .hgp-compare {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  margin: 8px 0 0;
}

.hgp .hgp-compare__col {
  padding: 22px 24px 8px;
  border-radius: var(--hgp-radius);
  background: var(--hgp-off-white);
}

.hgp .hgp-compare__label {
  margin: 0 0 8px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: var(--hgp-tracking);
  text-transform: uppercase;
  color: var(--hgp-purple);
}

.hgp .hgp-compare__text {
  font-size: 15.5px;
  line-height: 1.55;
  color: var(--hgp-text-dark);
}


/* --------------------------------------------------------------------------
   11. Closing
   -------------------------------------------------------------------------- */
.hgp .hgp-closing {
  margin-top: 56px;
  padding: 40px 44px 36px;
  border-radius: var(--hgp-radius);
  background: var(--hgp-off-white);
}

.hgp .hgp-closing__title {
  margin: 0 0 12px;
  font-size: 26px;
  font-weight: 900;
  line-height: 1.2;
  color: var(--hgp-text-dark);
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
}

.hgp .hgp-closing p {
  max-width: 860px;
  color: var(--hgp-text-mid);
}

.hgp .hgp-closing__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 20px 0 0;
}

.hgp .hgp-btn {
  display: inline-block;
  padding: 13px 26px;
  border: 2px solid var(--hgp-dark-blue);
  border-radius: 6px;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-decoration: none !important;
  transition: background-color .18s ease, color .18s ease;
}

.hgp .hgp-btn--primary {
  background: var(--hgp-dark-blue);
  color: var(--hgp-white) !important;
}
.hgp .hgp-btn--primary:hover,
.hgp .hgp-btn--primary:focus {
  background: #3B465B;
  border-color: #3B465B;
  color: var(--hgp-white) !important;
}

.hgp .hgp-btn--ghost {
  background: var(--hgp-white);
  color: var(--hgp-dark-blue) !important;
}
.hgp .hgp-btn--ghost:hover,
.hgp .hgp-btn--ghost:focus {
  background: var(--hgp-dark-blue);
  color: var(--hgp-white) !important;
}


/* --------------------------------------------------------------------------
   12. Responsive
   -------------------------------------------------------------------------- */

/* Hero collage drops below the copy before the text column gets cramped -
   same breakpoint the Insider and catalog heroes use. */
@media (max-width: 1120px) {
  .hgp .hgp-hero__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 32px;
  }
  .hgp .hgp-hero__media { max-width: 460px; }
  .hgp .hgp-badges { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1000px) {
  .hgp .hgp-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hgp .hgp-split,
  .hgp .hgp-split--cert {
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
  }
}

@media (max-width: 900px) {
  .hgp .hgp-hero { padding: 44px 32px 44px; }
  .hgp .hgp-hero__title { font-size: 36px; }
  .hgp .hgp-h2 { font-size: 26px; }
  .hgp .hgp-closing { padding: 32px 28px 28px; }
  .hgp .hgp-compare { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 640px) {
  .hgp {
    margin-top: 22px;
    padding: 0 16px;
  }
  .hgp .hgp-hero { padding: 34px 22px 34px; }
  .hgp .hgp-hero__title { font-size: 28px; }
  .hgp .hgp-hero__lead { font-size: 16.5px; }
  .hgp .hgp-h2 { font-size: 23px; }
  .hgp .hgp-section { margin-top: 40px; }
  .hgp .hgp-cards,
  .hgp .hgp-badges { grid-template-columns: minmax(0, 1fr); }
  .hgp .hgp-collage { padding: 20px; gap: 14px; }
  .hgp .hgp-callout { padding: 20px 20px 6px; }
  .hgp .hgp-btn { display: block; width: 100%; }
}

/* Respect reduced-motion preferences. */
@media (prefers-reduced-motion: reduce) {
  .hgp .hgp-card,
  .hgp .hgp-btn { transition: none; }
}

/* ==========================================================================
   END Power User Community page
   ========================================================================== */

   /* ==> PASTE INTO: Theme settings > Custom CSS.  NOT the HTML widget. <==
   Append at the END, after the existing Power User Community block.

   ==========================================================================
   PATCH - Power User Community, three layout fixes
   ==========================================================================

   CSS ONLY. NO MARKUP CHANGES, NO COPY CHANGES.
   Do not re-paste power-user-community.html - that file still holds my
   original wording and would overwrite your edits. Everything below works
   against the markup already on the page.

   Three fixes:
     1. The odd white space in the Certificate of Completion section
     2. The sample caption, now centred under the image
     3. "Keep using our data and learning about it..." styled as a centred
        closing line

   Verified by injecting on the live page: column tops align to the pixel,
   caption computes to center, and the closing-line selector matches exactly
   one element on the page.
   ========================================================================== */


/* --------------------------------------------------------------------------
   1. Certificate of Completion section - the white space
   --------------------------------------------------------------------------
   THE CAUSE. The section is a two-column grid that I set to
   `align-items: center`. That was fine when the copy column was long enough
   to roughly match the certificate. After your edits the columns are:

       copy column     241px tall
       certificate     455px tall

   Centring a 241px column against a 455px one puts ~107px of empty space
   ABOVE the first paragraph and the same below it, so the text reads as
   floating in the middle of nothing. That gap above is what looks wrong -
   the eye expects text to start level with the image beside it.

   `start` pins the copy to the top so both columns begin on the same line.
   The leftover height then falls below the last paragraph, where a short
   column ending early looks completely normal.

   Deliberately NOT shrinking the certificate to close the gap instead: it's
   the only artwork in the section and it earns the size.

   Measured after: copy top 158, certificate top 158.
   -------------------------------------------------------------------------- */
.hgp .hgp-split--cert {
  align-items: start;
}


/* --------------------------------------------------------------------------
   2. Sample caption - centred under the image
   --------------------------------------------------------------------------
   It was left-aligned, inherited from the page default. Centred, it reads as
   a label belonging to the image rather than as a stray line of body copy
   that happens to sit beneath it.
   -------------------------------------------------------------------------- */
.hgp .hgp-cert__caption {
  text-align: center;
}


/* --------------------------------------------------------------------------
   3. "Keep using our data and learning about it, and the invitation finds
      you." - centred closing line
   --------------------------------------------------------------------------
   HOW THIS IS TARGETED, AND WHEN IT WOULD BREAK.

   That line is a bare <p> with no class of its own, so there's nothing to
   hook onto directly. Rather than ask you to edit the markup, this targets
   it structurally: it is the only <p> that is the LAST child of a
   .hgp-section anywhere on the page. Checked against all five sections -
   the other four end in a .hgp-cards, .hgp-badges or .hgp-compare div, so
   the selector matches exactly one element.

   That does make it fragile in one specific way: if you later add a closing
   paragraph to the end of another .hgp-section, it will pick up this
   treatment too. If that happens, the clean fix is to add class="hgp-close"
   to this one paragraph and change the selector below to
   `.hgp .hgp-close`. One class attribute, no copy touched.

   The rule above it separates the line from the signals list, so it reads as
   a conclusion to the section rather than another item in it.
   -------------------------------------------------------------------------- */
.hgp .hgp-section > p:last-child {
  max-width: none;
  margin: 40px auto 0;
  padding-top: 28px;
  border-top: 1px solid var(--hgp-border, #EFE4DC);
  font-size: 21px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  color: var(--hgp-dark-blue, #071834);
}

/* Slightly smaller on narrow screens so it doesn't wrap to three lines. */
@media (max-width: 640px) {
  .hgp .hgp-section > p:last-child {
    font-size: 18px;
    margin-top: 32px;
    padding-top: 22px;
  }
}

/* ==========================================================================
   END PATCH
   ========================================================================== */

   /* ==> PASTE INTO: Theme settings > Custom CSS.  Append at the END. <== */

/* ==> PASTE INTO: Theme settings > Custom CSS.  Append at the END. <==
       REPLACES the previous PATCH-session-pages.css wholesale. Delete that
       block first rather than merging - the first-time copy changed and the
       old content strings would still be sitting in the file. */

/* ==========================================================================
   HG INSIGHTS ACADEMY - sign in / reset password pages   (v2)
   Thought Industries | Custom CSS

   Covers:  /learn/sign_in  and  /learn/forgot

   --------------------------------------------------------------------------
   WHAT CHANGED IN v2
   --------------------------------------------------------------------------
   1. Logo sharpened. See sec. 2 - TI's own transformation was the problem.
   2. First-time copy now points at training@hginsights.com.
   3. Styling added for a real, clickable version of the first-time block,
      plus rules that switch off the CSS fallback when it appears. See sec. 6.

   --------------------------------------------------------------------------
   THE EMAIL LINK - WHAT YOU GET WITH CSS ALONE
   --------------------------------------------------------------------------
   CSS cannot create an anchor. `content:` produces text and nothing else, so
   with this file alone the address renders as plain text: visible, readable,
   selectable, copyable, but not clickable.

   That is the whole story unless JavaScript is available. If theme-level JS
   turns out to be reachable, the companion file hga-session-firsttime.js
   injects the same three sentences as real markup with a working mailto, and
   sec. 6 below automatically suppresses the CSS fallback so you never see both.
   Verified: with the script running, exactly one heading renders.

   Nothing breaks if you never add the script. The CSS is the shipping
   product; the script is an upgrade.

   --------------------------------------------------------------------------
   SCOPING - DIFFERENT FROM EVERY OTHER BLOCK IN THIS STYLESHEET
   --------------------------------------------------------------------------
   Every other block hangs off a body class, because TI's router puts one
   there: body.catalog, body.learn.course, body.page.

   THESE PAGES HAVE NO BODY CLASS AT ALL - measured on both, class="".

   So the hook is `.session`, TI's own wrapper, which exists only on the
   authentication pages. Safe in practice, but it is a TI class rather than
   one of ours, so if TI renames it these rules stop matching and the pages
   revert to the unstyled default. That failure is graceful.

   Telling the two pages apart, since nothing on an ancestor distinguishes
   them:
       sign in   .session:has(.session__forgot)   only it has the forgot link
       reset     .session:has(input.submit)       only its button has .submit

   --------------------------------------------------------------------------
   TWO THINGS CSS STILL CANNOT FIX
   --------------------------------------------------------------------------
   1. The reset page has NO link back to sign in. Browser back button only.
   2. On the SIGN IN page, "Asterisks (*) indicate required fields" appears
      but no asterisks are rendered on either field. On the reset page the
      asterisk IS present, so the line is correct there. Left alone rather
      than hidden globally - hiding it would strip a real affordance off the
      reset page to tidy up the sign in page. It is a TI localisation string.
   ========================================================================== */


/* --------------------------------------------------------------------------
   1. Page frame
   --------------------------------------------------------------------------
   `margin: auto` on the row rather than `align-items: center` on the flex
   parent. Both centre, but align-items:center clips the TOP of the card off
   the viewport once content is taller than the screen, with no way to scroll
   back up to it. margin:auto centres without that failure mode.
   -------------------------------------------------------------------------- */
.session {
  --hga-blue:   #071834;
  --hga-purple: #3B465B;
  --hga-navy:   #071834;
  --hga-mid:    #3B465B;
  --hga-light:  #6C7484;
  --hga-line:   #EFE4DC;
  --hga-font: "basic-sans", "Basic Sans", "DM Sans", "Helvetica Neue", Arial, sans-serif;

  display: flex;
  justify-content: center;
  min-height: 100vh;
  padding: 40px 20px;
  background: linear-gradient(225deg, #FF4A4A 0 90px, transparent 90px), #071834;
  font-family: var(--hga-font);
}

.session > .row {
  width: 100%;
  max-width: 520px;
  margin: auto;
}

/* TI positions this with Foundation's medium-push-3, which is
   position:relative + left:25% + float:left. All three have to go, or the
   card sits off-centre inside its own already-centred row. */
.session .session__container {
  position: static !important;
  left: auto !important;
  float: none !important;
  width: 100% !important;
  max-width: 520px;
  margin: 0 auto;
  padding: 40px 40px 34px;
  background: #FFFFFF;
  border-radius: 14px;
  box-shadow: 0 18px 50px rgba(0, 0, 0, .24);
}


/* --------------------------------------------------------------------------
   2. Logo - the muddiness
   --------------------------------------------------------------------------
   THE CAUSE, measured on the live page. TI requests the logo through its own
   named transformation, `t_ti_company_logo_v6`, which resolves to:

       served      300 x 29
       rendered    250 x 24  CSS px
       at dpr 2    needs 500 x 48

   So it paints at roughly 0.6x of what a retina screen needs, and no amount
   of CSS sizing fixes an image that simply has too few pixels in it. That
   soft, slightly smeared look is upscaling.

   THE FIX is the same `content: url()` swap used in the catalog thumbnail
   patch - repoint the element at a derivative built for the slot rather than
   at TI's preset. c_fit,w_600 is 1.2x of the 500px needed, from a 3200px
   source, so there is real detail behind every pixel. Measured 7KB.

   THE GEOMETRY BLOCK IS REQUIRED, NOT DECORATIVE. `content: url()` discards
   the element's intrinsic dimensions, so without an explicit width and an
   aspect-ratio the box collapses. 3200/312 is the source file's true ratio.

   Same public ID, same artwork, only the transformation segment differs.
   -------------------------------------------------------------------------- */
.session .company__beta-logo {
  display: inline-block;
  margin: 0 0 22px;
  padding: 0;
}

.session .company__beta-logo img {
  display: block;
  width: 250px;
  height: auto;
  aspect-ratio: 3669 / 300;
  /* 2026: points at the new Academy lockup uploaded in Branding
     (oc9i25fzz71w-HG-Insights-Academy-Logo-Color.png, 3669 x 300). */
  content: url("https://media.thoughtindustries.com/thoughtindustries/image/upload/a_exif,c_fit,w_600,f_auto,q_auto:best/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/oc9i25fzz71w-HG-Insights-Academy-Logo-Color.png");
}


/* --------------------------------------------------------------------------
   3. Form
   --------------------------------------------------------------------------
   Flex column does two jobs at once: it gives every element an explicit
   order, and it removes the float TI puts on the submit button with
   .btn--right. On the sign in page that float put the button and the forgot
   link on separate half-width lines.

   The three hidden inputs are display:none and take no part in the layout,
   so they need no ordering.
   -------------------------------------------------------------------------- */
.session .session__form {
  display: flex;
  flex-direction: column;
  font-family: var(--hga-font);
}

/* The sign in page wraps its heading in .text-centered; the reset page does
   not. Both get order 1 so the two pages behave identically. */
.session .session__form .text-centered { order: 1; }

.session .session__form h1 {
  order: 1;
  margin: 0 0 6px;
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif;
  font-size: 26px;
  font-weight: 900;
  color: var(--hga-navy);
  text-align: center;
}

/* Reset page only - the "we will send you a link" description. */
.session .session__form > p {
  order: 2;
  margin: 0 0 14px;
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--hga-mid);
  text-align: center;
}

.session .session__form .text-xs {
  order: 3;
  margin: 0 0 22px;
  font-size: 12px;
  color: var(--hga-light);
  text-align: center;
}

.session .session__form .field {
  order: 4;
  margin: 0 0 16px;
}

.session .session__form .field__input {
  width: 100%;
  height: 48px;
  padding: 0 14px;
  border: 1px solid var(--hga-line);
  border-radius: 8px;
  background: #FFFFFF;
  font-family: var(--hga-font);
  font-size: 15px;
  color: var(--hga-navy);
  box-shadow: none;
}

.session .session__form .field__input:focus {
  border-color: var(--hga-blue);
  box-shadow: 0 0 0 3px rgba(7, 24, 52, .16);
  outline: none;
}

.session .session__form input[type="submit"] {
  order: 5;
  float: none !important;
  width: 100%;
  height: 48px;
  margin: 6px 0 0;
  border: 0;
  border-radius: 8px;
  background: var(--hga-blue);
  color: #FFFFFF;
  font-family: var(--hga-font);
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  transition: background-color .18s ease;
}

.session .session__form input[type="submit"]:hover { background: #3B465B; }

.session .session__form input[type="submit"]:focus-visible {
  outline: 3px solid #FF4A4A;
  outline-offset: 2px;
}


/* --------------------------------------------------------------------------
   4. "Forgot your password?" - promoted
   This is the primary action for anyone who attended an HG Insider session
   and therefore has a record but no password, so it gets real weight instead
   of sitting in the corner as small grey text.
   -------------------------------------------------------------------------- */
.session .session__forgot {
  order: 6;
  display: block;
  margin: 16px 0 0;
  text-align: center;
}

.session .session__forgot a {
  font-family: var(--hga-font);
  font-size: 14px;
  font-weight: 700;
  color: var(--hga-blue);
}

.session .session__forgot a:hover { color: var(--hga-purple); }


/* --------------------------------------------------------------------------
   5. First-time block - CSS fallback (no link)
   --------------------------------------------------------------------------
   A single ::after can only carry one set of type styles, so the block is
   split across two elements that stack in the right order naturally:

       .session__form::after       the small uppercase purple heading
       .session__container::after  the body copy beneath it

   The form sits inside the container, so the form's ::after renders at the
   end of the form and the container's ::after directly after it. Line breaks
   use \A with `white-space: pre-line`.

   IF YOU EDIT THE COPY: no double quotes inside the content strings. The
   strings are themselves double-quoted and there is no nested-quote escape
   that behaves reliably across editors. Rephrase instead - which is why the
   copy reads "Use the Forgot your password link above" rather than quoting
   the link name.
   -------------------------------------------------------------------------- */
.session .session__form::after {
  order: 7;
  margin: 26px 0 0;
  padding-top: 20px;
  border-top: 1px solid var(--hga-line);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--hga-purple);
}

.session .session__container::after {
  display: block;
  margin: 8px 0 0;
  font-family: var(--hga-font);
  font-size: 14px;
  line-height: 1.6;
  color: var(--hga-mid);
  white-space: pre-line;
}

/* SIGN IN */
.session:has(.session__forgot) .session__form::after {
  content: "First time signing in?";
}

.session:has(.session__forgot) .session__container::after {
  content: "Attended an HG Insider session? An account was created for you when you registered. Use the Forgot your password link above to set your password.\A\AHave not attended one yet? Email the Customer Education team at training@hginsights.com.";
}

/* RESET PASSWORD */
.session:has(input.submit) .session__form::after {
  content: "Which email should I use?";
}

.session:has(input.submit) .session__container::after {
  content: "Use the same address you registered with for an HG Insider session, or the one your HG Insights account team set up for you.\A\ANo account yet? Email the Customer Education team at training@hginsights.com.";
}


/* --------------------------------------------------------------------------
   6. First-time block - real markup, when the script is present
   --------------------------------------------------------------------------
   hga-session-firsttime.js adds a .hga-first block and puts .hga-js on the
   .session wrapper. These rules style that block and switch off the sec. 5
   fallback so the two can never both render.

   That collision is not hypothetical - it happened during testing, and the
   card showed the heading twice. The suppression below is what fixes it.

   If you never add the script, nothing in this section ever matches and sec. 5
   remains in force.
   -------------------------------------------------------------------------- */
.session.hga-js .session__form::after,
.session.hga-js .session__container::after {
  content: none !important;
  display: none !important;
  border: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.session .hga-first {
  margin: 26px 0 0;
  padding-top: 20px;
  border-top: 1px solid var(--hga-line);
  font-family: var(--hga-font);
}

.session .hga-first__title {
  margin: 0 0 8px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--hga-purple);
}

.session .hga-first p {
  margin: 0 0 12px;
  font-size: 14px;
  line-height: 1.6;
  color: var(--hga-mid);
}

.session .hga-first p:last-child { margin-bottom: 0; }

.session .hga-first a {
  font-weight: 700;
  color: var(--hga-blue);
  text-decoration: underline;
}

.session .hga-first a:hover { color: var(--hga-purple); }

.session .hga-first a:focus-visible {
  outline: 3px solid #FF4A4A;
  outline-offset: 2px;
}


/* --------------------------------------------------------------------------
   7. Responsive
   -------------------------------------------------------------------------- */
@media only screen and (max-width: 560px) {
  .session { padding: 24px 14px; }
  .session .session__container { padding: 30px 24px 26px; }
  .session .company__beta-logo img { width: 210px; }
  .session .session__form h1 { font-size: 23px; }
}

/* ==========================================================================
   END session pages
   ========================================================================== */

/* ======================================================================
   HG INSIDER ARTICLE - MATCH THE /pages/ SESSION LAYOUT
   Page:  /learn/article/{session-slug}
   Rev 4: 2026-08-25 - replaces rev 3 wholesale

   SCOPING: one root, .container:has(iframe[src*="embed.sequel.io"]), on
   every rule. .container wraps both the site header and the article body,
   which is what lets the nav rules scope too.

   IMPORTANT: that root ALSO matches /pages/hg-insider-* - those pages have
   a .container holding a Sequel embed too. It's harmless because every
   other selector here (.header--article, .article-content, .layout-panel
   --article, .widget--back-to-dashboard, and the rest) resolves to zero
   elements on /pages/. Verified by count. The ONE exception is
   .company__school-name__divider, which exists on both - so rule 3 is
   nested under .header--article on purpose. Without that nesting it would
   shift the divider on /pages/, where it is already correct.

   Any new rule added here must be checked the same way: if the class also
   exists on /pages/, nest it under .header--article or .layout-panel
   --article.

   MEASURED AGAINST /pages/hg-insider-february-2026 at 1500px:
     logo         x=16    (target 16)
     header       62px    (target 61)
     nav centre   y=31    - logo, divider, and nav links all share it
     back link    x=113   - same gutter as the headline
     headline     x=113
     player       x=71  w=1342   (target x=72  w=1341)
   ====================================================================== */


/* -- 1. CONTAIN THE FULL-BLEED BAND -----------------------------------
   The hero uses the 100vw bleed. With classic (space-taking) scrollbars
   100vw overhangs by the scrollbar width; clipping here kills it. Scoped
   to this panel, not html/body, so nothing else loses sticky.

   padding-top also drops from 48px to 10px - that 48px was most of the
   dead space between the nav and the hero. */
.container:has(iframe[src*="embed.sequel.io"]) .layout-panel--article {
  overflow-x: hidden;
  padding-top: 10px !important;
}


/* -- 2. NAV ALIGNMENT -------------------------------------------------
   .header--article ships with padding 16px 64px, and its first grid
   column adds another 16px, so the logo sat at x=80. Every other page
   uses .header--microsite at padding 16px 16px 0, logo at x=16. This
   matches that. */
.container:has(iframe[src*="embed.sequel.io"]) .header--article {
  padding: 16px 16px 0 !important;
}
.container:has(iframe[src*="embed.sequel.io"]) .header--article .row > .columns:first-child {
  padding-left: 0 !important;
}


/* -- 3. NAV DIVIDER ---------------------------------------------------
   The rule between the logo and the nav links sat 7px high: logo and nav
   links centre on y=31, the divider on y=24.

   Cause is TI's own `top: -6px !important` on the divider. That offset
   assumes .company__school-name renders text beside it - but on this site
   "Academy" is baked into the logo image, so that element has zero height
   and the offset has nothing to compensate for. top:1px puts all three on
   y=31. The !important is required to beat TI's.

   MUST stay nested under .header--article. This class also exists on
   /pages/, where the divider already sits correctly at y=32 - an
   unnested rule would push it 7px off there. */
.container:has(iframe[src*="embed.sequel.io"]) .header--article .company__school-name__divider {
  top: 1px !important;
}


/* -- 4. BACK TO DASHBOARD ---------------------------------------------
   The link is position:absolute with top:-40px - TI pulls it up into the
   panel padding that rule 1 just removed, which would leave it sitting
   behind the header. top:0 puts it back inside its own row.

   left:8vw aligns it to the same gutter as the headline below it, so the
   two read as one left edge instead of two. */
.container:has(iframe[src*="embed.sequel.io"]) .topic__container__article {
  padding-top: 0 !important;
}
.container:has(iframe[src*="embed.sequel.io"]) .widget--back-to-dashboard {
  height: 28px;
  min-height: 0;
  margin-bottom: 4px;
}
.container:has(iframe[src*="embed.sequel.io"]) .learning-content__back-button {
  top: 0 !important;
  left: 8vw !important;
  color: #3B465B !important;
  font-size: 14px;
}


/* -- 5. HIDE THE CONTENT-TYPE BAR -------------------------------------
   The "HG Insider" label row and its mail / print / bookmark icons.

   >>> Delete this rule to get the bookmark and email utilities back. <<< */
.container:has(iframe[src*="embed.sequel.io"]) .article-header {
  display: none !important;
}


/* -- 6. RECOVER THE SIDEBAR WIDTH -------------------------------------
   The left column (title card, star rating, tags) was taking 411px and
   squeezing the player to 930px.

   NOTE: this also removes the star rating, so learner ratings stop being
   collected on these articles. Drop this rule to get them back. */
.container:has(iframe[src*="embed.sequel.io"]) .article-sidebar {
  display: none !important;
}


/* -- 7. THE HERO BAND -------------------------------------------------
   The band is a ::before on .article-content - the shared parent of the
   headline AND the subtitle - which is what puts both inside one
   continuous image the way /pages/ does.

   It has to be a pseudo-element rather than a background on .article-
   content itself: that element is ~945px tall, so constraining the image
   to a 160px strip would need background-size: 100% 160px, and the fixed
   height distorts the banner. A 160px ::before with background-size:
   cover keeps the aspect ratio and crops, matching /pages/. */
.container:has(iframe[src*="embed.sequel.io"]) .article-content {
  position: relative;
  width: 100vw !important;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 0 !important;
  background: none !important;
}
.container:has(iframe[src*="embed.sequel.io"]) .article-content::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 160px;
  background-color: #071834;
  background-image: linear-gradient(225deg, #FF4A4A 0 48px, transparent 48px);
  background-size: cover;
  background-position: 50% 50%;
  background-repeat: no-repeat;
}


/* -- 8. HEADLINE ------------------------------------------------------
   Matches the /pages/ hero type. position:relative lifts it above the
   ::before band. 8vw not 8% - percentage padding resolves against the
   containing block, which differs between these elements; vw is
   consistent everywhere and keeps every left edge on one line. */
.container:has(iframe[src*="embed.sequel.io"]) .article-content__header {
  position: relative;
  margin: 0;
  padding: 34px 8vw 0;
  min-height: 0;
  width: auto;
  background: none;
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif;
  font-size: 48px;
  font-weight: 900;
  line-height: 1.1;
  color: #ffffff !important;
}


/* -- 9. SUBTITLE ------------------------------------------------------
   TI renders the Subtitle field as p.lead.article-content__sub-header -
   NOT .article-content__info, which stays permanently empty.

   Keep it to about one line. Two still fit inside the 160px band; three
   will spill onto white. */
.container:has(iframe[src*="embed.sequel.io"]) .article-content__sub-header {
  position: relative;
  margin: 14px 0 0;
  padding: 0 8vw;
  color: #ffffff !important;
  font-size: 20px;
  line-height: 1.4;
}


/* -- 10. PLAYER GUTTER -------------------------------------------------
   2.6% lands the iframe at x=71 w=1342 against /pages/ at x=72 w=1341.
   The figure wrapper contributes ~40px of its own offset, which is why
   this is smaller than it looks like it should be. */
.container:has(iframe[src*="embed.sequel.io"]) .article-content__body {
  position: relative;
  padding: 38px 2.6% 0;
}


/* -- 11. MOBILE -------------------------------------------------------
   The band grows because the headline wraps to two lines. */
@media screen and (max-width: 640px) {
  .container:has(iframe[src*="embed.sequel.io"]) .article-content::before {
    height: 200px;
  }
  .container:has(iframe[src*="embed.sequel.io"]) .article-content__header {
    font-size: 30px;
    padding: 26px 8vw 0;
  }
  .container:has(iframe[src*="embed.sequel.io"]) .article-content__sub-header {
    font-size: 16px;
    margin-top: 10px;
    padding: 0 8vw;
  }
  .container:has(iframe[src*="embed.sequel.io"]) .article-content__body {
    padding: 28px 4% 0;
  }
  .container:has(iframe[src*="embed.sequel.io"]) .learning-content__back-button {
    left: 8vw !important;
  }
}

/* =========================================================
   HG Insights Academy - responsive refinements
   Paste at the END of Thought Industries -> Custom CSS.

   Sections 0-5 are the public site. Section 6 is the
   logged-in learner dashboard, and contains a fix for a
   regression section 1 introduced there - see 6a.

   Verified on training.hginsights.com at viewport widths
   320 / 360 / 375 / 390 / 414 / 430 / 480 / 540 / 600 / 640 /
   641 / 700 / 768 / 800 / 900 / 1024 / 1280 / 1310 / 1400 /
   1440, plus landscape 360x320, 480x320, 568x320, 640x400,
   736x414 and 844x390, across: home, course catalog, HG
   Insider events, Power User Community, an HG Insider course
   detail page, sign-in and reset-password.

   Checks at every size: no sideways page scroll, nav reachable,
   hero text not clipped, tap targets >=44px, form fields >=16px.
   ========================================================= */


/* =========================================================
   0. HERO WIDTH - applies at EVERY width, not just mobile
   The hero carries aspect-ratio: 2400/770 plus min-height:
   420px. Below about 1310px the min-height wins, and because
   the width was auto the aspect ratio computed it BACKWARD
   from the height: a fixed 1309px, wider than the viewport.
   Every page with a hero scrolled sideways on phones, on both
   iPad orientations (556px of overscroll at 768, 300px at
   1024) and in any laptop window under ~1310px wide.
   Setting the width explicitly makes the container drive it
   again; above 1310px nothing changes.
   ========================================================= */
html body .container .hero {
  width: 100% !important;
  max-width: 100% !important;
}


/* =========================================================
   1. PHONES (<= 640px)
   ========================================================= */
@media only screen and (max-width: 640px) {

  /* --- Primary navigation --------------------------------
     The existing rules hide .nav--global-links entirely below
     640px and there is no hamburger, so phones could not
     reach the catalog, the HG Insider events page or the
     community page at all. Restored as three full-width rows.

     div.ember-application's padding-top reserves the space
     those rows occupy, so it must stay in sync with the
     number of links: 47px per link + 3px of borders.
     3 links = 144px | 4 links = 191px | 5 links = 238px
     -------------------------------------------------------- */
  .nav--global-links {
    display: flex !important;
    flex-direction: column !important;
    position: absolute !important;
    top: 0 !important; left: 0 !important; right: 0 !important;
    width: 100% !important;
    margin: 0 !important; padding: 0 !important; gap: 0 !important;
    background: #ffffff !important;
    border-bottom: 1px solid #CED1D6 !important;
    z-index: 60 !important;
  }
  .nav--global-links a {
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
    padding: 14px 16px !important;
    min-height: 47px !important;
    font-size: 13px !important;
    line-height: 19px !important;
    letter-spacing: .04em !important;
    text-align: left !important;
    white-space: nowrap !important;
    border-top: 1px solid #EFE4DC !important;
  }
  .nav--global-links a:first-of-type { border-top: 0 !important; }
  div.ember-application { padding-top: 144px !important; }
  body.ember-application > div > div.ember-application > .ember-view > .container { padding-top: 0 !important; }

  /* --- Header: logo above the utility row ----------------- */
  header.header--microsite,
  header.header--microsite .header__inner { height: auto !important; }
  header.header--microsite .header__inner {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 4px !important;
    padding: 12px 16px !important;
  }
  header.header--microsite .header__inner > .company__beta-logo { order: 1 !important; margin: 0 !important; }
  header.header--microsite .header__inner > .nav--top { order: 2 !important; width: 100% !important; }
  header.header--microsite .company__school-name__divider { display: none !important; }
  .nav--top ul { display: flex !important; justify-content: flex-start !important; margin: 0 !important; padding: 0 !important; }
  .nav--top ul li { margin: 0 !important; }
  .nav--top ul li > a { display: inline-flex !important; align-items: center !important; min-height: 40px !important; }

  /* --- Hero: let the caption set the height ---------------
     Section 0 stops the sideways scroll; this makes the hero
     readable. The caption is normally absolute and vertically
     centred inside a 420px box, so on a phone the headline
     overflowed and got clipped. Put it in flow, size the type
     down, and add a brand scrim so white text stays legible
     over the photo (the caption keeps z-index 2 so it paints
     above the hero's own overlay).

     The html body .container prefix only exists to outrank
     the platform's hero rules - don't shorten it.
     -------------------------------------------------------- */
  html body .container .hero {
    height: auto !important; min-height: 0 !important;
    aspect-ratio: auto !important;
    overflow: hidden !important;
    background-size: cover !important;
    background-position: center center !important;
  }
  html body .container .hero .hero__caption {
    position: relative !important;
    z-index: 2 !important;
    transform: none !important;
    top: auto !important; bottom: auto !important;
    width: 100% !important; max-width: 100% !important;
    box-sizing: border-box !important;
    padding: 34px 20px !important;
    text-align: left !important;
    background: linear-gradient(180deg, rgba(7,24,52,.92) 0%, rgba(7,24,52,.86) 100%) !important;
  }
  html body .container .hero .hero__caption .hero__title {
    font-size: 30px !important;
    line-height: 1.15 !important;
    max-width: 100% !important;
    margin-bottom: 14px !important;
    overflow-wrap: break-word !important;
  }
  html body .container .hero .hero__caption .h4 {
    display: block !important;
    font-size: 15px !important;
    line-height: 1.45 !important;
    max-width: 100% !important;
    margin-bottom: 20px !important;
  }
  html body .container .hero .hero__caption .btn--primary,
  html body .container .hero .hero__caption .btn {
    font-size: 15px !important;
    min-height: 46px !important;
    height: auto !important;
    padding: 12px 22px !important;
  }

  /* --- Course page tabs -----------------------------------
     Session Detail / Hosts and Presenters / Awards are laid
     out nowrap and total 323px, so on a 320px phone "Awards"
     hung 46px off the right edge and took the page with it.
     Allowed to wrap; they become three 52px rows.
     -------------------------------------------------------- */
  .course__detail__container ul.tabs { flex-wrap: wrap !important; row-gap: 2px !important; }
  .course__detail__container ul.tabs > li.tab-title { flex: 0 1 auto !important; }

  /* --- Footer: 44px tap targets, readable address --------- */
  .footer li > a {
    display: block !important;
    padding: 10px 0 !important;
    min-height: 44px !important;
    line-height: 24px !important;
  }
  .footer__legal a, .footer__powered-by a, .footer__inner > div > a {
    display: inline-block !important;
    padding: 8px 0 !important;
    min-height: 40px !important;
    line-height: 24px !important;
  }
  .footer .logAdd .address, .footer .address {
    display: block !important;
    width: 100% !important;
  }
}


/* =========================================================
   2. PHONES IN LANDSCAPE (<= 640px wide and <= 430px tall)
   Three stacked rows would eat 45% of a 320px-tall screen.
   One 44px row instead, scrollable sideways within itself if
   the labels don't fit, so it never spills onto the page.
   The height is fixed so the reserved space always matches.
   ========================================================= */
@media only screen and (max-width: 640px) and (max-height: 430px) {
  .nav--global-links {
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    justify-content: flex-start !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    height: 44px !important;
  }
  .nav--global-links a {
    width: auto !important;
    min-height: 40px !important;
    padding: 10px 12px !important;
    font-size: 12px !important;
    border-top: 0 !important;
  }
  div.ember-application { padding-top: 46px !important; }
}


/* =========================================================
   3. SMALL TABLETS / LARGE PHONES (641-1023px)
   (Range widened from 800px in the 2026 header refresh: below
   1024px the roomier desktop nav no longer fits on one row.)
   The header nav sits at a hard left: 220px here, which put
   its right edge at 801px - every page scrolled sideways in
   this range (33px at 768). Anchored to the right instead.
   The hero headline also ran 60px here, overflowing the
   420px hero at 641-760px; 40px fits.
   ========================================================= */
@media only screen and (min-width: 641px) and (max-width: 1023px) {
  header.header--microsite,
  header.header--microsite .header__inner { min-height: 88px !important; height: auto !important; }
  .nav--global-links {
    top: 40px !important;
    left: 314px !important;
    right: 12px !important;
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: flex-end !important;
    gap: 2px 14px !important;
  }
  .nav--global-links a { font-size: 12px !important; }

  html body .container .hero .hero__caption .hero__title {
    font-size: 40px !important;
    line-height: 1.15 !important;
    margin-bottom: 18px !important;
  }
  html body .container .hero .hero__caption .h4 {
    font-size: 17px !important;
    line-height: 1.45 !important;
    margin-bottom: 22px !important;
  }
}


/* =========================================================
   4. REGISTRATION CTA ON COURSE PAGES (<= 800px)
   Thought Industries pins the mobile enroll button to the top
   of the page as a 33px strip that collides with the header.
   It renders that strip everywhere up to 768px - phones and
   iPad portrait - so the fix covers the same range: a 52px
   bottom bar with safe-area padding, footer kept clear of it.
   ========================================================= */
@media only screen and (max-width: 800px) {
  .course-purchase__mobile-button {
    top: auto !important;
    bottom: 0 !important;
    left: 0 !important; right: 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
    padding: 8px 12px !important;
    padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px)) !important;
    background: #ffffff !important;
    box-shadow: 0 -2px 14px rgba(16, 24, 40, .18) !important;
    z-index: 70 !important;
  }
  .course-purchase__mobile-button .btn {
    min-height: 52px !important;
    height: auto !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    border-radius: 6px !important;
    white-space: normal !important;
  }
  body:has(.course__detail__container) .footer { padding-bottom: 88px !important; }
}


/* =========================================================
   5. FORM FIELDS AND AUTH SCREENS (<= 1024px)
   Any field under 16px makes mobile Safari zoom the page in
   on focus and never zoom back out. Sign-in and reset
   password were 15px, catalog search 15px, the Filter/Sort
   selects 14px. The range runs to 1024px because iPads are
   mobile Safari in both orientations. Field heights are
   unchanged; only the text size moves.
   ========================================================= */
@media only screen and (max-width: 1024px) {
  input[type="text"], input[type="email"], input[type="password"],
  input[type="search"], input[type="tel"], input[type="number"],
  select, textarea { font-size: 16px !important; }

  /* "Forgot your password?" was a 19px target, and it is the
     primary action for anyone whose account was created by an
     HG Insider registration. */
  .session__form .session__forgot { display: block !important; margin-top: 4px !important; }
  .session__form .session__forgot .btn--link {
    display: inline-block !important;
    padding: 12px 10px !important;
    min-height: 44px !important;
    line-height: 20px !important;
    font-size: 14px !important;
  }
}


/* =========================================================
   6. LEARNER DASHBOARD  (/learn/dashboard)
   Everything here is scoped to body.learn.dashboard, so it
   cannot reach the public pages. It matches the dashboard
   styling already in this stylesheet: white cards, #E2E8F0
   borders, 10px radius, #0058A3 accent, purple labels.
   ========================================================= */

/* --- 6a. Learning Hub hero on phones --------------------
   REGRESSION FIX. Section 1's generic hero rules set
   height:auto / min-height:0, which the dashboard hero
   cannot survive: its caption is absolutely positioned by
   the existing body.learn.dashboard rules, so with nothing
   in flow the hero collapsed to 0px and "Learning Hub"
   vanished into a blank gap on every phone. Pin the height
   back and scale the 52px headline down.

   Any other hero with a fixed height set in this stylesheet
   needs the same two lines - the generic rule will collapse
   it otherwise.
   -------------------------------------------------------- */
@media only screen and (max-width: 640px) {
  body.learn.dashboard .dBanner .hero {
    height: 200px !important;
    min-height: 200px !important;
  }
  body.learn.dashboard .dBanner .hero__caption {
    background: none !important;   /* the hero's own ::before gradient is enough */
    padding: 0 20px !important;
  }
  body.learn.dashboard .dBanner .hero__caption .hero__title {
    font-size: 30px !important;
    line-height: 1.15 !important;
  }
  body.learn.dashboard header .company__school-name__divider { display: none !important; }
}

/* --- 6b. Certificate cards + actions --------------------
   The certificate row was bare text with a 20px "View
   Certificate" link and a 24px LinkedIn button (10.5px type
   on a phone). Now a card with two matched buttons: 40px
   side by side on desktop, 44px full-width stacked on phones.

   :has() scopes this to rows that actually contain a
   certificate link, so My Learning and Completed rows are
   untouched.
   -------------------------------------------------------- */
body.learn.dashboard .dashboard-access-list-item:has(a[href*="/learn/certificates/"]) {
  background: #ffffff !important;
  border: 1px solid #EFE4DC !important;
  border-radius: 10px !important;
  padding: 16px 18px !important;
  margin-bottom: 12px !important;
}
body.learn.dashboard .dashboard-access-list-item:has(a[href*="/learn/certificates/"]) .dashboard-access-list-item-expander__title {
  font-size: 15px !important;
  font-weight: 700 !important;
  color: #071834 !important;
  line-height: 1.35 !important;
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
}
body.learn.dashboard .dashboard-access-list-item:has(a[href*="/learn/certificates/"]) .medium-3.columns {
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  color: #3B465B !important;
}
body.learn.dashboard .dashboard-access-list-item:has(a[href*="/learn/certificates/"]) .medium-4.columns > .row {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  justify-content: flex-end !important;
  margin: 0 !important;
}
body.learn.dashboard .dashboard-access-list-item:has(a[href*="/learn/certificates/"]) .medium-4.columns > .row > .columns {
  width: auto !important;
  padding: 0 !important;
  float: none !important;
}

/* both actions share one shape */
body.learn.dashboard .dashboard-access-list-item a[href*="/learn/certificates/"] {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 40px !important;
  padding: 0 18px !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  border-radius: 6px !important;
  white-space: nowrap !important;
  box-shadow: none !important;
}
/* View Certificate = outlined secondary */
body.learn.dashboard .dashboard-access-list-item a[href*="/learn/certificates/"]:not([href*="linkedInShare"]) {
  color: #071834 !important;
  background: #ffffff !important;
  border: 1px solid #071834 !important;
}
body.learn.dashboard .dashboard-access-list-item a[href*="/learn/certificates/"]:not([href*="linkedInShare"]):hover {
  background: #FBF6EC !important;
  color: #071834 !important;
}
/* Add to profile = LinkedIn primary. The platform sets
   background-color:#0077B5 inline (LinkedIn's pre-2019
   blue); #0A66C2 is their current brand blue. Delete these
   two declarations to go back to the platform default. */
body.learn.dashboard .dashboard-access-list-item a[href*="linkedInShare"] {
  background-color: #0a66c2 !important;
  color: #ffffff !important;
  border: 0 !important;
}
body.learn.dashboard .dashboard-access-list-item a[href*="linkedInShare"]:hover {
  background-color: #004182 !important;
}
body.learn.dashboard .dashboard-access-list-item a[href*="linkedInShare"] svg {
  width: 16px !important;
  height: 16px !important;
  margin-right: 8px !important;
  flex: 0 0 auto !important;
}

/* --- 6c. Empty leaderboard column -----------------------
   .award-leaderboard renders with zero height and no
   content, leaving a heading over a blank quarter-width
   column. Hidden, and Badges takes the full width. Delete
   this block if leaderboards get switched on.
   -------------------------------------------------------- */
body.learn.dashboard .widget--badges .medium-3.columns:has(.award-leaderboard) { display: none !important; }
body.learn.dashboard .widget--badges .row.hide-for-small-only > .medium-3.columns { display: none !important; }
body.learn.dashboard .widget--badges .row > .medium-9.columns { width: 100% !important; }

/* --- 6d. "Certifications" -> "Certificates" --------------
   Both instances on the dashboard: the stat tile label and
   the tab in "Dive back into your learning".

   visibility:hidden takes the real word out of the
   accessibility tree (so screen readers don't announce both
   words) while font-size:0 collapses the space it held; the
   icon and the replacement text are switched back to
   visible. The count in the tab is a separate element and is
   not affected.

   This is a display-layer patch. The strings come from the
   platform's i18n layer (the markup carries ids like
   i18n-15), so if Thought Industries exposes label or
   translation overrides for your site, changing it there is
   the real fix and this block can go.
   -------------------------------------------------------- */
body.learn.dashboard .dashboard-stat--certificates .dashboard-stat__label {
  font-size: 0 !important;
  visibility: hidden !important;
}
body.learn.dashboard .dashboard-stat--certificates .dashboard-stat__label > i {
  visibility: visible !important;
  font-size: 32px !important;
}
body.learn.dashboard .dashboard-stat--certificates .dashboard-stat__label::after {
  content: "Certificates";
  display: block;
  visibility: visible !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  color: #3B465B !important;
}
body.learn.dashboard .dashboard-access-tab--certificate .dashboard-access-tab__label {
  font-size: 0 !important;
  visibility: hidden !important;
}
body.learn.dashboard .dashboard-access-tab--certificate .dashboard-access-tab__label::after {
  content: "Certificates";
  visibility: visible !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  letter-spacing: normal !important;
}

/* --- 6e. Dashboard on phones and small tablets ----------
   Five stat tiles stacked one per row ran ~840px on a phone
   and did the same thing on iPad portrait. Two per row is
   ~400px. Also pulls the badges carousel arrow back inside
   the viewport - it sits at right:-3px, which was the last
   3px of sideways scroll on this page.
   -------------------------------------------------------- */
@media only screen and (max-width: 800px) {
  body.learn.dashboard .badges-carousel__button--right { right: 0 !important; }

  body.learn.dashboard .dashboard-stats {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    justify-content: space-between !important;
  }
  body.learn.dashboard .dashboard-stats > [class*="dashboard-stat--"] {
    flex: 0 0 calc(50% - 5px) !important;
    max-width: calc(50% - 5px) !important;
    width: calc(50% - 5px) !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  body.learn.dashboard .dashboard-stat {
    padding: 14px 8px !important;
    height: 100% !important;
  }
}

@media only screen and (max-width: 640px) {
  body.learn.dashboard .dashboard-stat__icon {
    height: 26px !important;
    font-size: 24px !important;
    margin-bottom: 6px !important;
  }
  body.learn.dashboard .dashboard-stat--certificates .dashboard-stat__label > i { font-size: 24px !important; }
  body.learn.dashboard .dashboard-stat__value--huge { font-size: 26px !important; }
  body.learn.dashboard .dashboard-stat__label { font-size: 10px !important; letter-spacing: .08em !important; }
  body.learn.dashboard .dashboard-stat--certificates .dashboard-stat__label::after {
    font-size: 10px !important;
    letter-spacing: .08em !important;
  }

  /* certificate actions: full-width, 44px, stacked */
  body.learn.dashboard .dashboard-access-list-item:has(a[href*="/learn/certificates/"]) .medium-4.columns > .row {
    flex-direction: column !important;
    justify-content: stretch !important;
    gap: 8px !important;
    margin-top: 12px !important;
  }
  body.learn.dashboard .dashboard-access-list-item:has(a[href*="/learn/certificates/"]) .medium-4.columns > .row > .columns {
    width: 100% !important;
  }
  body.learn.dashboard .dashboard-access-list-item a[href*="/learn/certificates/"] {
    width: 100% !important;
    min-height: 44px !important;
    font-size: 15px !important;
  }
}


/* =========================================================
   OPTIONAL - "Buy Now" label on free HG Insider sessions
   That string comes from the platform, not from CSS. Best
   fixed in the course/commerce settings. If that isn't
   possible, this swaps the visible label (screen readers
   still announce "Buy Now", so treat it as a stopgap):

@media only screen and (max-width: 800px) {
  .course-purchase__mobile-button .btn { position: relative !important; color: transparent !important; }
  .course-purchase__mobile-button .btn::after {
    content: "Register for this session";
    position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center;
    color: #ffffff; font-size: 16px; font-weight: 700;
  }
}
   ========================================================= */

   /* ==> PASTE INTO: Theme settings > Custom CSS.  Append at the END. <== */

/* ==========================================================================
   PATCH - Defining Your Total, Serviceable and Obtainable Market
           with HG Insights Data  (live class, Sept 30 2026)
   Detail-page hero + catalog list thumbnail sharpness

   Same shape as the Whitespace Analysis patch above it: one self-contained
   block per course, all rules :has()-scoped to this course's own public
   IDs, nothing to keep in sync with the HG Insider registries.

   Two DIFFERENT public IDs, same artwork - TI's Detail Image and Catalog
   Image are separate uploads:
       detail    chpuzf1poh17-defining-your-total-serviceable-and-obtainable-market-with-h-thumbnail
       catalog   r09xv5k0fyoz-defining-your-total-serviceable-and-obtainable-market-with-h-thumbnail

   Both harvested 2026-09-14 from the live pages (detail hero srcset at
   c_fill,w_800,h_450; catalog grid tile at c_fill,w_750,h_361). Both
   sharpened derivatives confirmed resolving: 1600x900 and 711x400.

   Note the filename stem is truncated by TI at "with-h" - that's how it
   was uploaded, not a typo. Copied verbatim.

   Catalog GRID thumbnail deliberately not patched - TI's w_750 derivative
   is already oversampled for that slot, same as every other course.
   ========================================================================== */


/* --------------------------------------------------------------------------
   1. Course detail page hero
   -------------------------------------------------------------------------- */
.course__detail__asset:has([srcset*="chpuzf1poh17-defining-your-total-serviceable-and-obtainable-market-with-h-thumbnail"]) {
  width: 100%;
  aspect-ratio: 16 / 9;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  background-image: url("https://media.thoughtindustries.com/thoughtindustries/image/upload/a_exif,c_fill,w_1600,h_900,f_auto,q_auto:best/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/chpuzf1poh17-defining-your-total-serviceable-and-obtainable-market-with-h-thumbnail.png");
}

/* Hide TI's low-resolution <picture> so only the background paints. */
.course__detail__asset:has([srcset*="chpuzf1poh17-defining-your-total-serviceable-and-obtainable-market-with-h-thumbnail"]) picture {
  display: none;
}


/* --------------------------------------------------------------------------
   2. Catalog list-view thumbnail
   Geometry first, then the 2x replacement - both required, content:url()
   collapses the box to 0x0 without the geometry.
   -------------------------------------------------------------------------- */
body:is(.catalog, .learn.dashboard, .page) .catalog-list-item__asset[src*="r09xv5k0fyoz-defining-your-total-serviceable-and-obtainable-market-with-h-thumbnail"] {
  display: block !important;
  width: min(100%, 356px) !important;
  height: auto !important;
  aspect-ratio: 356 / 200;
  object-fit: fill;
  content: url("https://media.thoughtindustries.com/thoughtindustries/image/upload/a_exif,c_fit,w_880,h_400,f_auto,q_auto:best/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/r09xv5k0fyoz-defining-your-total-serviceable-and-obtainable-market-with-h-thumbnail.png");
}

/* ==========================================================================
   END PATCH
   ========================================================================== */

/* ==> PASTE INTO: Theme settings > Custom CSS.  Append at the END. <== */

/* ==========================================================================
   HG INSIGHTS ACADEMY - homepage "Featured upcoming class" banner
   Companion markup: hga-featured-class.html

   SCOPING RULE - same as every custom block in this stylesheet: TI's Custom
   CSS is GLOBAL, so every rule below is descended from `.hga-feat`, a class
   that exists nowhere else on the site, and the tokens live on that wrapper
   rather than :root. No TI class is targeted.

   VISUAL LINEAGE - this is the homepage sibling of the "next session
   spotlight" (.hgi-spot) on the HG Insider events page: white card, melon
   top rule, title card on the left with a date stamp in its corner, copy
   and actions on the right. Same tokens, same radius, same button system,
   so the two read as one family without being identical.

   The card is 16:9 (1600x900 detail image). If a future featured class
   ships a different ratio, change aspect-ratio on .hga-feat__media.
   ========================================================================== */


/* --------------------------------------------------------------------------
   0. Section band
   A full-width tint behind the whole section so it reads as a distinct
   block from the white HG Insider section above it.

   HOW THE FULL BLEED WORKS - and why it's safe. The background goes on TI's
   own widget row, which is already viewport-wide, rather than on .hga-feat
   (a 1340px centred column) via a 100vw / calc(50% - 50vw) trick. The vw
   trick over-hangs by the scrollbar width and is exactly what caused the
   sideways-scroll bug the responsive patch fixed. This has no such risk:
   measured scrollWidth == clientWidth after applying.

   The selector is still scoped by :has(.hga-feat), so it only ever paints
   the one widget row that holds this section. Every other .widget on the
   site is untouched. Needs :has() - fine for this audience, and a browser
   without it simply gets the white background.
   -------------------------------------------------------------------------- */
.widget:has(.hga-feat) {
  background: #EFE4DC !important;
  padding: 56px 0 60px !important;
  margin: 24px 0 0 !important;
}


/* --------------------------------------------------------------------------
   1. Scoped tokens + outer frame
   -------------------------------------------------------------------------- */
.hga-feat {
  --hf-dark-blue:  #071834;
  --hf-blue-hover: #3B465B;
  --hf-light-blue: #CED1D6;
  --hf-melon:      #FF4A4A;
  --hf-purple:     #3B465B;
  --hf-off-white:  #EFE4DC;
  --hf-white:      #FFFFFF;
  --hf-text-dark:  #071834;
  --hf-text-mid:   #3B465B;
  --hf-text-light: #6C7484;
  --hf-border:     #EFE4DC;
  --hf-radius:     10px;
  --hf-tracking:   0.12em;
  --hf-font: "basic-sans", "Basic Sans", "DM Sans", "Helvetica Neue", Arial, sans-serif;

  /* Matches the Insider tiles' content column. Vertical spacing now comes
     from the band's padding in section 0, so no vertical margin here. */
  max-width: 1340px;
  margin: 0 auto;
  padding: 0 24px;
  font-family: var(--hf-font);
  color: var(--hf-text-dark);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

.hga-feat *,
.hga-feat *::before,
.hga-feat *::after { box-sizing: border-box; }

.hga-feat img { display: block; max-width: 100%; height: auto; }


/* --------------------------------------------------------------------------
   1b. Section heading
   Same type as "Upcoming and On-Demand HG Insider Sessions" (.hg-insider-intro:
   32px / 900 / #184693 centred, 17px #5a7ba6 subtitle), so the homepage reads
   as two peer sections rather than one Insider block with a stray card.
   -------------------------------------------------------------------------- */
.hga-feat__head {
  text-align: center;
  margin: 0 0 28px;
}

.hga-feat__heading {
  margin: 0 0 12px;
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif;
  font-size: 32px;
  font-weight: 900;
  line-height: 1.2;
  color: #071834;
}

.hga-feat__sub {
  max-width: 820px;
  margin: 0 auto;
  font-size: 17px;
  font-weight: 400;
  line-height: 1.5;
  color: #6C7484;
  text-wrap: pretty;
}


/* --------------------------------------------------------------------------
   2. The card
   -------------------------------------------------------------------------- */
.hga-feat__inner {
  display: grid;
  grid-template-columns: minmax(0, 46%) minmax(0, 1fr);
  gap: 36px;
  align-items: center;
  padding: 28px 32px 28px 28px;
  border: 1px solid var(--hf-border);
  border-top: 4px solid var(--hf-melon);
  border-radius: var(--hf-radius);
  background: var(--hf-white);
  /* A touch more lift than the Insider spotlight - the card sits on a tinted
     band rather than white, so it needs the extra separation. */
  box-shadow: 0 6px 24px rgba(7, 24, 52, .08);
}


/* --------------------------------------------------------------------------
   3. Title card + date stamp
   -------------------------------------------------------------------------- */
.hga-feat__media {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: var(--hf-radius);
  background: var(--hf-off-white);
  aspect-ratio: 16 / 9;
  box-shadow: 0 8px 24px rgba(7, 24, 52, .14);
}

.hga-feat__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hga-feat__date {
  position: absolute;
  /* Top-right: the only corner of the title card with nothing in it.
     Bottom-left sits on the Instructors label. */
  top: 12px;
  right: 12px;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 8px 12px 9px;
  border-radius: 8px;
  background: var(--hf-dark-blue);
  box-shadow: 0 2px 8px rgba(0, 0, 0, .22);
  line-height: 1;
  text-align: center;
}

.hga-feat__mon {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: var(--hf-tracking);
  text-transform: uppercase;
  color: var(--hf-melon);
}

.hga-feat__day {
  margin-top: 3px;
  font-size: 26px;
  font-weight: 900;
  color: var(--hf-white);
}


/* --------------------------------------------------------------------------
   4. Copy
   -------------------------------------------------------------------------- */
.hga-feat__body { min-width: 0; }

.hga-feat__eyebrow {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin: 0 0 12px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .02em;
  color: var(--hf-text-light);
}

/* "Live class" pill - the one melon accent in the copy column, so it pairs
   with the top rule and the date stamp. */
.hga-feat__live {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 999px;
  background: transparent;
  border: 1.5px solid var(--hf-melon);
  color: var(--hf-dark-blue);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: var(--hf-tracking);
  text-transform: uppercase;
  line-height: 1.2;
}

.hga-feat__title {
  margin: 0 0 12px;
  font-size: 28px;
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: -0.01em;
  text-wrap: balance;
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
}

/* TI paints h2 links its accent blue with an underline on hover; keep the
   colour, drop the underline so the headline reads as a headline. */
.hga-feat__title a {
  color: var(--hf-dark-blue) !important;
  text-decoration: none !important;
}

.hga-feat__title a:hover,
.hga-feat__title a:focus { color: var(--hf-purple) !important; }

.hga-feat__teaser {
  margin: 0 0 16px;
  font-size: 16px;
  line-height: 1.55;
  color: var(--hf-text-mid);
  text-wrap: pretty;
}

/* Fact pills - same shape as the hero fact pills on the Insider events page,
   inverted for a white card. */
.hga-feat__facts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 22px;
  padding: 0;
  list-style: none;
}

.hga-feat__facts li {
  padding: 5px 13px;
  border: 1px solid var(--hf-light-blue);
  border-radius: 999px;
  background: #FBF6EC;
  font-size: 13px;
  font-weight: 700;
  color: var(--hf-dark-blue);
  white-space: nowrap;
}


/* --------------------------------------------------------------------------
   5. Actions - same button system as the Power User Community page
   -------------------------------------------------------------------------- */
.hga-feat__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.hga-feat__btn {
  display: inline-block;
  padding: 13px 26px;
  border: 2px solid var(--hf-dark-blue);
  border-radius: 6px;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-decoration: none !important;
  transition: background-color .18s ease, color .18s ease, border-color .18s ease;
}

.hga-feat__btn--primary {
  background: var(--hf-dark-blue);
  color: var(--hf-white) !important;
}
.hga-feat__btn--primary:hover,
.hga-feat__btn--primary:focus {
  background: var(--hf-blue-hover);
  border-color: var(--hf-blue-hover);
  color: var(--hf-white) !important;
}

.hga-feat__btn--ghost {
  background: var(--hf-white);
  color: var(--hf-dark-blue) !important;
}
.hga-feat__btn--ghost:hover,
.hga-feat__btn--ghost:focus {
  background: var(--hf-dark-blue);
  color: var(--hf-white) !important;
}

.hga-feat a:focus-visible {
  outline: 3px solid var(--hf-melon);
  outline-offset: 3px;
}


/* --------------------------------------------------------------------------
   6. Responsive
   -------------------------------------------------------------------------- */
@media (max-width: 980px) {
  .hga-feat__inner {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
    padding: 22px 22px 26px;
  }
  .hga-feat__media { max-width: 620px; }
  .hga-feat__title { font-size: 25px; }
}

@media (max-width: 640px) {
  .widget:has(.hga-feat) { padding: 40px 0 44px !important; }
  .hga-feat { padding: 0 16px; }
  .hga-feat__heading { font-size: 26px; }
  .hga-feat__sub { font-size: 15px; }
  .hga-feat__inner { padding: 18px 16px 22px; }
  .hga-feat__title { font-size: 22px; }
  .hga-feat__teaser { font-size: 15px; }
  .hga-feat__facts li { white-space: normal; }
  .hga-feat__btn { display: block; width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .hga-feat__btn { transition: none; }
}

/* ==========================================================================
   END featured upcoming class banner
   ========================================================================== */

   /* ==> PASTE INTO: Theme settings > Custom CSS.  Append at the END. <== */

/* ==========================================================================
   PATCH - HG Insider | Product Releases & Updates | October 2026
   Detail-page hero + catalog list thumbnail sharpness

   Same shape as the Whitespace Analysis and TAM/SAM/SOM patches above it:
   one self-contained block, every rule :has()/[src*=]-scoped to this
   session's own public IDs, nothing to add to the seven-session registries.

   Two DIFFERENT public IDs, same artwork - TI's Detail Image and Catalog
   Image are separate uploads:
       detail    96ux8enr3eqp-the-hg-insider-october-2026-titlecard1
       catalog   k3c01p0kmfyn-the-hg-insider-october-2026-titlecard1

   Both harvested 2026-09-16 from the live pages (detail hero srcset at
   c_fill,w_800,h_450 on /courses/product-releases-updates-october-2026;
   catalog grid tile at c_fill,w_750,h_361 on /catalog). Both sharpened
   derivatives confirmed resolving: 1600x900 and 711x400.

   The uploaded source is 1920x1080, so w_1600 is real detail, not upscale.

   Test-injected on the live detail page: <picture> computed display:none,
   background resolved to the w_1600 derivative, box went 474x225 (TI's
   400px <img> floating in a 474px column) -> 474x266, full 16:9, edge to
   edge, nothing cropped.

   Catalog GRID thumbnail deliberately not patched - TI's w_750 derivative
   is already oversampled for that slot, same as every other course.
   ========================================================================== */


/* --------------------------------------------------------------------------
   1. Course detail page hero
   -------------------------------------------------------------------------- */
.course__detail__asset:has([srcset*="96ux8enr3eqp-the-hg-insider-october-2026-titlecard1"]) {
  width: 100%;
  aspect-ratio: 16 / 9;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  background-image: url("https://media.thoughtindustries.com/thoughtindustries/image/upload/a_exif,c_fill,w_1600,h_900,f_auto,q_auto:best/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/96ux8enr3eqp-the-hg-insider-october-2026-titlecard1.png");
}

/* Hide TI's low-resolution <picture> so only the background paints. */
.course__detail__asset:has([srcset*="96ux8enr3eqp-the-hg-insider-october-2026-titlecard1"]) picture {
  display: none;
}


/* --------------------------------------------------------------------------
   2. Catalog list-view thumbnail
   Geometry and the 2x replacement in one rule - both required, content:url()
   collapses the box to 0x0 without the geometry.
   -------------------------------------------------------------------------- */
body:is(.catalog, .learn.dashboard, .page) .catalog-list-item__asset[src*="k3c01p0kmfyn-the-hg-insider-october-2026-titlecard1"] {
  display: block !important;
  width: min(100%, 356px) !important;
  height: auto !important;
  aspect-ratio: 356 / 200;
  object-fit: fill;
  content: url("https://media.thoughtindustries.com/thoughtindustries/image/upload/a_exif,c_fit,w_880,h_400,f_auto,q_auto:best/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/k3c01p0kmfyn-the-hg-insider-october-2026-titlecard1.png");
}

/* ==========================================================================
   END PATCH
   ========================================================================== */

   /* ==> PASTE INTO: Theme settings > Custom CSS.  Append at the END. <== */

/* ==========================================================================
   PATCH - course detail pages, hide "Show Purchasing Options Or Gift"

   Nothing on the Academy is charged for, so TI's purchasing affordances
   only confuse. This removes them on every course detail page
   (body.home.course-group) and leaves the primary Register button and the
   "Already a student? Sign In" link exactly where they are.

   --------------------------------------------------------------------------
   WHAT THE WIDGET RENDERS, measured on the October 2026 page 2026-09-17
   --------------------------------------------------------------------------
   .widget--course-purchase
       a.btn--primary            "Register for the HG Insider"   KEEP
       button.btn--secondary     "Show Purchasing Options Or Gift"   HIDE
       .course__detail__enrolled  "Already a student? Sign In"   KEEP

   The purchasing control is the ONLY .btn--secondary inside the widget, and
   it's a <button> where Register is an <a>, so the selector below can't
   catch the Register link even if TI reorders them.

   --------------------------------------------------------------------------
   THE MOBILE "BUY NOW" BAR IS THE SAME THING
   --------------------------------------------------------------------------
   Below 800px TI also pins a sticky bar to the bottom of the page whose
   only child is a "Buy Now" button. It's the purchasing flow again under a
   different label, and it says "Buy" on a free session. It goes too.

   That's safe because the sidebar widget - Register + Sign In - still
   renders in flow on phones (measured at y=1922 on a 375px viewport with
   the bar present), so nobody loses the register path; they just scroll
   to it like they do for everything else on the page.

   The responsive patch above reserves 88px of footer padding for that bar
   (`body:has(.course__detail__container) .footer`). With the bar gone the
   padding is dead space, so it's reset here. Same selector shape, later in
   the file, so it wins.

   --------------------------------------------------------------------------
   VERIFIED
   --------------------------------------------------------------------------
   Injected on the live October page. Desktop 1440px: purchasing button
   display:none, widget height 151 -> 108, Register and Sign In untouched.
   Mobile 375px: sticky bar display:none, footer padding-bottom 0, no
   sideways scroll, sidebar Register still present in flow.

   --------------------------------------------------------------------------
   IF YOU EVER DO CHARGE FOR SOMETHING
   --------------------------------------------------------------------------
   Delete this block. A paid course with these rules in place has no way to
   reach checkout on desktop or mobile.
   ========================================================================== */

/* Desktop + mobile sidebar: the purchasing/gift disclosure button */
body.course-group .widget--course-purchase button.btn--secondary {
  display: none !important;
}

/* Phones and small tablets: the sticky "Buy Now" bar, plus the footer
   padding the responsive patch reserved for it */
@media only screen and (max-width: 800px) {
  body.course-group .course-purchase__mobile-button {
    display: none !important;
  }
  body.course-group:has(.course__detail__container) .footer {
    padding-bottom: 0 !important;
  }
}

/* ==========================================================================
   END PATCH
   ========================================================================== */

/* ==========================================================================
   2026 BRAND - hero graphics on narrow screens
   Once the hero media stacks under the copy (<=1120px, the breakpoint all
   three heroes share), the pixel steps would sit on the image, so they go.
   On phones the coral corner shrinks so it can't touch the eyebrow line.
   Must stay after the Insider, catalog and Power User blocks.
   ========================================================================== */
@media (max-width: 1120px) {
  .hgi-insider .hgi-hero::after,
  .hga-catalog .hga-hero::after,
  .hgp .hgp-hero::after { display: none; }
}

@media (max-width: 720px) {
  .hgi-insider .hgi-hero { background-image: linear-gradient(225deg, var(--hgi-melon) 0 34px, transparent 34px); }
  .hga-catalog .hga-hero { background-image: linear-gradient(225deg, var(--hga-melon) 0 34px, transparent 34px); }
  .hgp .hgp-hero         { background-image: linear-gradient(225deg, var(--hgp-melon) 0 34px, transparent 34px); }
}

/* ==========================================================================
   END 2026 BRAND - hero graphics on narrow screens
   ========================================================================== */

/* ==========================================================================
   2026 BRAND - header spacing, matched to hginsights.com
   Measured on hginsights.com at 1440px: nav links Basic Sans 16px / 600,
   Prussian, no tracking, ~40px between items, a roomy ~96px bar, and an
   outlined coral uppercase button on the right.

   Here: header bar 57px -> 79px, 40px side margins, links 16px / 600 with
   40px gaps, and the logo, links and Sign In button all centred on the same
   line (y = 39.5px, measured). The old TI divider between the logo and the
   links is hidden; the new Academy lockup already carries its own divider.

   POSITIONING NOTE: .nav--global-links is positioned against <body>, not
   the header (see the dashboard patch), so its `top` is set by hand to sit
   on the header's centre line. If the header padding changes, change
   `top` with it: top = padding-top + (button height 39 / 2) - 12.

   Public pages only (header.header--microsite). The logged-in dashboard and
   the Sequel article pages have their own header alignment patches and only
   pick up the type and gap changes.

   Below 1024px the existing tablet rules (section 3 of the responsive
   refinements) take over, so nothing here overlaps.

   Works best with the nav labels in Title Case, as on hginsights.com
   ("Course Catalog", not "COURSE CATALOG"). The capitals are typed into the
   labels in TI's navigation settings, so CSS can't convert them.
   ========================================================================== */
@media only screen and (min-width: 1024px) {
  .company__school-name__divider { display: none !important; }

  header.header--microsite { padding: 0 !important; }
  header.header--microsite .header__inner {
    padding: 20px 40px !important;
    height: auto !important;
  }
  /* Lifts the logo onto the button's centre line (measured 33.3 -> 39.3). */
  header.header--microsite .company__beta-logo {
    margin: 0 !important;
    transform: translateY(6px);
  }

  .nav--global-links { gap: 40px !important; }
  body:has(header.header--microsite) .nav--global-links {
    left: 380px !important;
    top: 27.5px !important;
  }
  .nav--global-links a {
    font-size: 16px !important;
    font-weight: 600 !important;
    line-height: 24px !important;
    letter-spacing: 0 !important;
    padding: 0 !important;
  }

  /* Sign In / Manager Access - outlined coral, like BOOK A DEMO. Prussian
     text rather than coral: coral text at this size is below the brand
     guide's contrast minimum. */
  header.header--microsite .nav--top ul { margin: 0 !important; }
  header.header--microsite .nav--top ul a,
  header.header--microsite .nav--top ul button {
    padding: 11px 22px !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    letter-spacing: .04em !important;
    line-height: 1 !important;
    color: #071834 !important;
    background: transparent !important;
    border: 1.5px solid #FF4A4A !important;
    border-radius: 0 !important;
    transition: background-color .18s ease !important;
  }
  header.header--microsite .nav--top ul a:hover,
  header.header--microsite .nav--top ul a:focus-visible,
  header.header--microsite .nav--top ul button:hover {
    background: #FF4A4A !important;
    color: #071834 !important;
  }
}

/* 1024-1199px (iPad landscape, small laptops): same look, tighter. */
@media only screen and (min-width: 1024px) and (max-width: 1199px) {
  header.header--microsite .header__inner { padding: 20px 24px !important; }
  .nav--global-links { gap: 24px !important; }
  body:has(header.header--microsite) .nav--global-links { left: 352px !important; }
  .nav--global-links a { font-size: 15px !important; }
}

/* ==========================================================================
   END 2026 BRAND - header spacing
   ========================================================================== */

/* ==========================================================================
   2026 BRAND - buttons, matched to hginsights.com
   Measured on hginsights.com (the hero LEARN MORE / REQUEST A DEMO buttons):
       background   #FF4A4A coral, hover #D83C3C (their --e-global-color-primary)
       text         white, Basic Sans 16px / 700, UPPERCASE, no tracking
       shape        5px corners, no border
       size         20px 30px padding in heroes (56px tall), 44px elsewhere
       icon         solid right arrow after the label, ~10px gap
   Secondary buttons follow the same shape as an outline in Prussian.

   Contrast note: white on coral is 3.1:1, below the brand guide's minimum
   for 16px text (it passes only at 18.66px bold and up). This matches
   hginsights.com as requested. To make it pass, raise --hg-btn-size to 19px,
   or set the resting background to the hover colour #D83C3C (4.1:1).

   The arrow is a CSS mask over currentColor, so it always matches the text.
   It is added only to <a> and <button> CTAs; the sign-in submit is an
   <input>, which can't carry a pseudo-element, so it gets the shape only.
   Must stay at the end of the file: it overrides rules in the Insider,
   catalog, Power User, featured class, lesson and session blocks.
   ========================================================================== */

/* ---- 1. Primary (coral) ------------------------------------------------- */
.hHomepageHero .hero .hero__caption .btn--primary,
.hgi-insider .hgi-hero .hgi-btn--primary,
.hgi-insider .hgi-spot .hgi-btn--primary,
.hga-feat__btn--primary,
.hgp .hgp-btn--primary,
.widget--course-purchase .btn--primary,
body.learn.course .quiz__container .btn:not(.btn--bare):not(.btn--link):not([disabled]),
.session .session__form input[type="submit"] {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  min-height: 44px !important;
  height: auto !important;
  padding: 14px 30px !important;
  border: 0 !important;
  border-radius: 5px !important;
  background: #FF4A4A !important;
  color: #FFFFFF !important;
  font-family: "basic-sans", "Basic Sans", "DM Sans", "Helvetica Neue", Arial, sans-serif !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  line-height: 16px !important;
  letter-spacing: normal !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  box-shadow: none !important;
  transform: none !important;
  transition: background-color .25s ease-in-out !important;
}

/* Hero size: 20px 30px, 56px tall, as on the main site's hero. */
.hHomepageHero .hero .hero__caption .btn--primary,
.hgi-insider .hgi-hero .hgi-btn--primary {
  padding: 20px 30px !important;
  min-height: 56px !important;
}

.hHomepageHero .hero .hero__caption .btn--primary:hover,
.hHomepageHero .hero .hero__caption .btn--primary:focus,
.hgi-insider .hgi-hero .hgi-btn--primary:hover,
.hgi-insider .hgi-hero .hgi-btn--primary:focus,
.hgi-insider .hgi-spot .hgi-btn--primary:hover,
.hgi-insider .hgi-spot .hgi-btn--primary:focus,
.hga-feat__btn--primary:hover,
.hga-feat__btn--primary:focus,
.hgp .hgp-btn--primary:hover,
.hgp .hgp-btn--primary:focus,
.widget--course-purchase .btn--primary:hover,
body.learn.course .quiz__container .btn:not(.btn--bare):not(.btn--link):not([disabled]):hover,
.session .session__form input[type="submit"]:hover {
  background: #D83C3C !important;
  border-color: #D83C3C !important;
  color: #FFFFFF !important;
  transform: none !important;
  box-shadow: none !important;
}

/* Keyboard focus: a Prussian ring, since a coral ring vanishes on coral. */
.hHomepageHero .hero .hero__caption .btn--primary:focus-visible,
.hgi-insider .hgi-btn--primary:focus-visible,
.hga-feat__btn:focus-visible,
.hgp .hgp-btn:focus-visible,
.widget--course-purchase .btn--primary:focus-visible,
body.learn.course .quiz__container .btn:focus-visible,
.session .session__form input[type="submit"]:focus-visible {
  outline: 3px solid #071834 !important;
  outline-offset: 3px !important;
}

/* The arrow. Same Font Awesome arrow-right glyph the main site uses. */
.hHomepageHero .hero .hero__caption .btn--primary::after,
.hgi-insider .hgi-btn--primary::after,
.hga-feat__btn--primary::after,
.hgp .hgp-btn--primary::after,
.widget--course-purchase .btn--primary::after {
  content: "";
  flex: 0 0 auto;
  width: 14px;
  height: 16px;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform .25s ease-in-out;
}

.hHomepageHero .hero .hero__caption .btn--primary:hover::after,
.hgi-insider .hgi-btn--primary:hover::after,
.hga-feat__btn--primary:hover::after,
.hgp .hgp-btn--primary:hover::after,
.widget--course-purchase .btn--primary:hover::after {
  transform: translateX(3px);
}

/* TI wraps the Register label in a span; keep it from fighting the flex row. */
.widget--course-purchase .btn--primary > span { display: inline !important; }

/* Sign-in submit spans the card. */
.session .session__form input[type="submit"] { width: 100% !important; min-height: 48px !important; }

/* ---- 2. Secondary (outline) ---------------------------------------------- */
.hga-feat__btn--ghost,
.hgp .hgp-btn--ghost {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 44px !important;
  padding: 12px 28px !important;
  border: 2px solid #071834 !important;
  border-radius: 5px !important;
  background: transparent !important;
  color: #071834 !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  line-height: 16px !important;
  text-transform: uppercase !important;
  transition: background-color .25s ease-in-out, color .25s ease-in-out !important;
}

.hga-feat__btn--ghost:hover,
.hga-feat__btn--ghost:focus,
.hgp .hgp-btn--ghost:hover,
.hgp .hgp-btn--ghost:focus {
  background: #071834 !important;
  color: #FFFFFF !important;
}

/* ---- 3. Lesson "Next Page" -------------------------------------------------
   The button box is the container (TI refuses a background on the link);
   it keeps its own chevron, so no added arrow. */
body.learn.course .directional__nav__button__container--next {
  background-color: #FF4A4A !important;
  border-radius: 5px !important;
}
body.learn.course .directional__nav__button__container--next:hover {
  background-color: #D83C3C !important;
}
body.learn.course .directional__nav__button__container--prev {
  border: 2px solid #071834 !important;
  border-radius: 5px !important;
}
body.learn.course .directional__nav .directional__nav__label {
  font-size: 16px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
}

@media (max-width: 640px) {
  .hga-feat__btn--primary,
  .hga-feat__btn--ghost,
  .hgp .hgp-btn--primary,
  .hgp .hgp-btn--ghost,
  .hgi-insider .hgi-hero .hgi-btn--primary,
  .hgi-insider .hgi-spot .hgi-btn--primary { display: flex !important; width: 100% !important; }
}

@media (prefers-reduced-motion: reduce) {
  .hHomepageHero .hero .hero__caption .btn--primary::after,
  .hgi-insider .hgi-btn--primary::after,
  .hga-feat__btn--primary::after,
  .hgp .hgp-btn--primary::after,
  .widget--course-purchase .btn--primary::after { transition: none; }
}

/* ==========================================================================
   END 2026 BRAND - buttons
   ========================================================================== */

/* ==========================================================================
   2026 BRAND - "Hosts and Presenters" tab (course detail pages)

   Each session's tab content carries its own <style> block in the course
   HTML (.hg-instructors-tab, .hg-instructor-card, ...) with the old blue /
   purple values. Rather than editing every session, these rules restyle all
   of them, past and future, from here.

   WHY THE body.course-group PREFIX: the inline <style> block sits in the
   page body, after this stylesheet, so at equal specificity it would win.
   The prefix adds (0,1,1), which is enough to beat it without !important.
   It also scopes these rules to course detail pages.

   Look: the same graphic language as the title cards. Square headshots on
   Prussian with a coral corner square, a coral marker on the function
   label, Neue Haas names, and a linen card that turns coral on hover.

   For NEW sessions the inline <style> block can be left out entirely; the
   markup alone is enough.
   ========================================================================== */
body.course-group .hg-instructors-tab {
  font-family: "basic-sans", "Basic Sans", "DM Sans", "Helvetica Neue", Arial, sans-serif;
  color: #071834;
}

body.course-group .hg-instructors-tab .hg-instructors-intro {
  margin: 0 0 28px;
  font-size: 16px;
  line-height: 1.6;
  color: #3B465B;
}

body.course-group .hg-instructor-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* Card */
body.course-group .hg-instructor-card {
  display: flex;
  align-items: flex-start;
  gap: 28px;
  padding: 26px 28px;
  border: 1px solid #EFE4DC;
  border-radius: 10px;
  background: #FFFFFF;
  box-shadow: none;
  transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}

body.course-group .hg-instructor-card:hover {
  transform: translateY(-2px);
  border-color: #FF4A4A;
  box-shadow: 0 8px 22px rgba(7, 24, 52, .08);
}

/* Square headshot on Prussian, coral square on the bottom-right corner. */
body.course-group .hg-instructor-avatar {
  position: relative;
  flex-shrink: 0;
  width: 120px;
  height: 120px;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  overflow: visible;
  background: #071834;
}

body.course-group .hg-instructor-avatar p {
  width: 100%;
  height: 100%;
  margin: 0;
  overflow: hidden;
}

body.course-group .hg-instructor-avatar img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block;
  border-radius: 0 !important;
}

body.course-group .hg-instructor-avatar::after {
  content: "";
  position: absolute;
  right: -8px;
  bottom: -8px;
  width: 24px;
  height: 24px;
  background: #FF4A4A;
}

body.course-group .hg-instructor-info {
  flex: 1;
  min-width: 0;
  padding-top: 2px;
}

/* Function label: Prussian caps with the coral marker, as on the eyebrows. */
body.course-group .hg-instructor-function {
  display: block;
  margin: 0 0 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #3B465B;
}

body.course-group .hg-instructor-function::before {
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-right: 8px;
  vertical-align: 1px;
  background: #FF4A4A;
}

body.course-group .hg-instructor-name {
  margin: 0 0 4px;
  font-family: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Inter Tight", "Helvetica Neue", Arial, sans-serif;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: #071834;
}

body.course-group .hg-instructor-title {
  margin: 0 0 12px;
  font-size: 15px;
  font-weight: 600;
  color: #3B465B;
}

body.course-group .hg-instructor-bio {
  margin: 0 0 16px;
  font-size: 15px;
  line-height: 1.6;
  color: #3B465B;
}

/* LinkedIn: the outline button from the button system, small size. */
body.course-group .hg-instructor-linkedin {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 8px 16px;
  border: 2px solid #071834;
  border-radius: 5px;
  background: transparent;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .02em;
  text-transform: uppercase;
  text-decoration: none;
  color: #071834;
  transition: background-color .2s ease, color .2s ease;
}

body.course-group .hg-instructor-linkedin:hover,
body.course-group .hg-instructor-linkedin:focus {
  background: #071834;
  color: #FFFFFF;
  text-decoration: none;
}

body.course-group .hg-instructor-linkedin:focus-visible {
  outline: 3px solid #FF4A4A;
  outline-offset: 3px;
}

/* Phones: photo above the text, left-aligned like the rest of the page. */
@media (max-width: 600px) {
  body.course-group .hg-instructor-card {
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    gap: 20px;
    padding: 22px 20px;
  }
  body.course-group .hg-instructor-avatar { width: 100px; height: 100px; }
  body.course-group .hg-instructor-name { font-size: 21px; }
}

@media (prefers-reduced-motion: reduce) {
  body.course-group .hg-instructor-card,
  body.course-group .hg-instructor-linkedin { transition: none; }
}

/* ==========================================================================
   END 2026 BRAND - Hosts and Presenters tab
   ========================================================================== */

   /* ==========================================================
   HG Insights Academy — detail hero image overrides
   Thought Industries · Custom CSS

   TI hardcodes a_exif,c_fill,w_800,h_450 on the detail hero,
   which renders at ~50% resolution on 2x displays. These
   rules repaint the box from a w_1600 derivative.

   TI's Custom CSS is GLOBAL. Every rule is :has()-scoped to
   its own session's public ID so it can't bleed onto other
   course pages.

   TO ADD A SESSION: regenerate via the hg-insider-titlecard-css
   skill. Hand-editing risks the three lists drifting apart.
   ========================================================== */


/* 1. Shared geometry */
.course__detail__asset:has([srcset*="30y0evnmwkgn-thumbnail_HG_x_Clay_3200x1800"]),
.course__detail__asset:has([srcset*="96ux8enr3eqp-the-hg-insider-october-2026-titlecard1"]),
.course__detail__asset:has([srcset*="chpuzf1poh17-defining-your-total-serviceable-and-obtainable-market-with-h-thumbnail"]),
.course__detail__asset:has([srcset*="xs1sof2tbe5j-whitespace-analysis-with-hg-insights-data-thumbnail1"]),
.course__detail__asset:has([srcset*="0in4wy8oplpd-hg-insider-sept2026-titlecard"]),
.course__detail__asset:has([srcset*="bjwc8hh6r7m1-gjgaajtvpxaa4asmsc74"]),
.course__detail__asset:has([srcset*="z9ssisi1rsw6-k7lixgiokod53c3walez"]),
.course__detail__asset:has([srcset*="hwm1d73fpn6w-nec5hzqcterq0cnbgo5j"]),
.course__detail__asset:has([srcset*="1db1jqbi0jst-mizkufa4bwe1ofbbqo58"]),
.course__detail__asset:has([srcset*="1q2l66eoj7wp-hg-insider-march-2026"]),
.course__detail__asset:has([srcset*="2m0zbgkpp6m7-snleoap4tsfw1mq2x4ru"]) {
  width: 100%;
  aspect-ratio: 16 / 9;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}


/* 2. Hide TI's <picture> — identical list, same order */
.course__detail__asset:has([srcset*="30y0evnmwkgn-thumbnail_HG_x_Clay_3200x1800"]) picture,
.course__detail__asset:has([srcset*="96ux8enr3eqp-the-hg-insider-october-2026-titlecard1"]) picture,
.course__detail__asset:has([srcset*="chpuzf1poh17-defining-your-total-serviceable-and-obtainable-market-with-h-thumbnail"]) picture,
.course__detail__asset:has([srcset*="xs1sof2tbe5j-whitespace-analysis-with-hg-insights-data-thumbnail1"]) picture,
.course__detail__asset:has([srcset*="0in4wy8oplpd-hg-insider-sept2026-titlecard"]) picture,
.course__detail__asset:has([srcset*="bjwc8hh6r7m1-gjgaajtvpxaa4asmsc74"]) picture,
.course__detail__asset:has([srcset*="z9ssisi1rsw6-k7lixgiokod53c3walez"]) picture,
.course__detail__asset:has([srcset*="hwm1d73fpn6w-nec5hzqcterq0cnbgo5j"]) picture,
.course__detail__asset:has([srcset*="1db1jqbi0jst-mizkufa4bwe1ofbbqo58"]) picture,
.course__detail__asset:has([srcset*="1q2l66eoj7wp-hg-insider-march-2026"]) picture,
.course__detail__asset:has([srcset*="2m0zbgkpp6m7-snleoap4tsfw1mq2x4ru"]) picture {
  display: none;
}


/* 3. One background block per session, newest first */

/* Enriching Clay Workflows live class (Oct 29, 2026) — Detail-page URL; harvested live Oct 16, 2026 */
.course__detail__asset:has([srcset*="30y0evnmwkgn-thumbnail_HG_x_Clay_3200x1800"]) {
  background-image: url("https://media.thoughtindustries.com/thoughtindustries/image/upload/a_exif,c_fill,w_1600,h_900,f_auto,q_auto:best/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/30y0evnmwkgn-thumbnail_HG_x_Clay_3200x1800.png");
}

/* Oct 2026 HG Insider — Detail-page URL; live and verified */
.course__detail__asset:has([srcset*="96ux8enr3eqp-the-hg-insider-october-2026-titlecard1"]) {
  background-image: url("https://media.thoughtindustries.com/thoughtindustries/image/upload/a_exif,c_fill,w_1600,h_900,f_auto,q_auto:best/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/96ux8enr3eqp-the-hg-insider-october-2026-titlecard1.png");
}

/* TAM/SAM/SOM live class (Sep 30, 2026) — Copied from live stylesheet */
.course__detail__asset:has([srcset*="chpuzf1poh17-defining-your-total-serviceable-and-obtainable-market-with-h-thumbnail"]) {
  background-image: url("https://media.thoughtindustries.com/thoughtindustries/image/upload/a_exif,c_fill,w_1600,h_900,f_auto,q_auto:best/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/chpuzf1poh17-defining-your-total-serviceable-and-obtainable-market-with-h-thumbnail.png");
}

/* Whitespace Analysis live class — Copied from live stylesheet */
.course__detail__asset:has([srcset*="xs1sof2tbe5j-whitespace-analysis-with-hg-insights-data-thumbnail1"]) {
  background-image: url("https://media.thoughtindustries.com/thoughtindustries/image/upload/a_exif,c_fill,w_1600,h_900,f_auto,q_auto:best/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/xs1sof2tbe5j-whitespace-analysis-with-hg-insights-data-thumbnail1.png");
}

/* Sept 2026 HG Insider — Detail-page URL; live and verified */
.course__detail__asset:has([srcset*="0in4wy8oplpd-hg-insider-sept2026-titlecard"]) {
  background-image: url("https://media.thoughtindustries.com/thoughtindustries/image/upload/a_exif,c_fill,w_1600,h_900,f_auto,q_auto:best/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/0in4wy8oplpd-hg-insider-sept2026-titlecard.png");
}

/* Aug 2026 HG Insider — Detail-page URL; live and verified */
.course__detail__asset:has([srcset*="bjwc8hh6r7m1-gjgaajtvpxaa4asmsc74"]) {
  background-image: url("https://media.thoughtindustries.com/thoughtindustries/image/upload/a_exif,c_fill,w_1600,h_900,f_auto,q_auto:best/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/bjwc8hh6r7m1-gjgaajtvpxaa4asmsc74.png");
}

/* July 2026 HG Insider — Catalog URL, but confirmed working live */
.course__detail__asset:has([srcset*="z9ssisi1rsw6-k7lixgiokod53c3walez"]) {
  background-image: url("https://media.thoughtindustries.com/thoughtindustries/image/upload/a_exif,c_fill,w_1600,h_900,f_auto,q_auto:best/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/z9ssisi1rsw6-k7lixgiokod53c3walez.png");
}

/* June 2026 HG Insider — Catalog URL, but confirmed working live */
.course__detail__asset:has([srcset*="hwm1d73fpn6w-nec5hzqcterq0cnbgo5j"]) {
  background-image: url("https://media.thoughtindustries.com/thoughtindustries/image/upload/a_exif,c_fill,w_1600,h_900,f_auto,q_auto:best/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/hwm1d73fpn6w-nec5hzqcterq0cnbgo5j.png");
}

/* April 2026 HG Insider — Catalog URL; never verified on its page */
.course__detail__asset:has([srcset*="1db1jqbi0jst-mizkufa4bwe1ofbbqo58"]) {
  background-image: url("https://media.thoughtindustries.com/thoughtindustries/image/upload/a_exif,c_fill,w_1600,h_900,f_auto,q_auto:best/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/1db1jqbi0jst-mizkufa4bwe1ofbbqo58.png");
}

/* March 2026 HG Insider — Catalog URL; never verified on its page */
.course__detail__asset:has([srcset*="1q2l66eoj7wp-hg-insider-march-2026"]) {
  background-image: url("https://media.thoughtindustries.com/thoughtindustries/image/upload/a_exif,c_fill,w_1600,h_900,f_auto,q_auto:best/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/1q2l66eoj7wp-hg-insider-march-2026.png");
}

/* Feb 2026 HG Insider — Catalog URL; never verified on its page */
.course__detail__asset:has([srcset*="2m0zbgkpp6m7-snleoap4tsfw1mq2x4ru"]) {
  background-image: url("https://media.thoughtindustries.com/thoughtindustries/image/upload/a_exif,c_fill,w_1600,h_900,f_auto,q_auto:best/v1/course-uploads/de4de149-b7c9-470d-bdb9-94ff7010a529/2m0zbgkpp6m7-snleoap4tsfw1mq2x4ru.png");
}

/* No URL on file (not covered): May 2026 HG Insider; January 2026 and earlier. */