/******* Do not edit this file *******
Simple Custom CSS and JS - by Silkypress.com
Saved: Nov 11 2026 | 16:12:54 */
/* 2026 - Product Pages CSS (group 3a). Merged Nov 10, 2026 from 14 items, in their live print order (newest ID first): 903, 873, 856, 854, 848, 846, 829, 824, 763, 667, 625, 618, 596, 589. The source items stay OFF (never deleted). Do NOT add new items for fixes: edit this file. */

/* ===== from #90903 2026 - Open Sans Fix ===== */
/* ===== 2026 - Open Sans Fix (CSS) =====
   Whole site, front end. Sales pages (Audio, Video, multi-part) and protected pages (Audio, Video, Staff Class, Podcast, multi-part):
   every paragraph, indented/quote paragraph, author name (Kenneth, Gloria, Jeffrey ... ), Please Note box, narrator box and the
   SKU / details box is Open Sans. Thrive writes its own "Montserrat" rule on some paragraphs and on the SKU link, with !important;
   this snippet is written to outrank it. Only the font family is changed (weights, sizes, italics, colors stay as they are).
   Headings (Playfair Display) and icons are not touched. */

/* sales pages */
html body:is(.tve-theme-90819, .tve-theme-90617) .fx-about :is(p, li, blockquote):not(#fx),
html body:is(.tve-theme-90819, .tve-theme-90617) .fx-about :is(p, li, blockquote) *:not(#fx):not([class*="ico"]):not(svg):not(svg *),
html body:is(.tve-theme-90819, .tve-theme-90617) .fx-author:not(#fx),
html body:is(.tve-theme-90819, .tve-theme-90617) .fx-author *:not(#fx),
html body:is(.tve-theme-90819, .tve-theme-90617) .fx-skubox:not(#fx),
html body:is(.tve-theme-90819, .tve-theme-90617) .fx-skubox *:not(#fx),
html body:is(.tve-theme-90819, .tve-theme-90617) .fx-note:not(#fx) :is(p, li, span, a, em, i, strong, b),
html body:is(.tve-theme-90819, .tve-theme-90617) .fx-note:not(#fx) :is(p, li, span, a, em, i, strong, b) *:not(#fx) {
  font-family: 'Open Sans', sans-serif !important;
}

/* protected pages (the card with the text, the narrator box, any Thrive text paragraph inside a content box) */
html body.ppp-protected .fx-tcard :is(p, li, blockquote):not(#fx),
html body.ppp-protected .fx-tcard :is(p, li, blockquote) *:not(#fx):not([class*="ico"]):not(svg):not(svg *),
html body.ppp-protected .thrv-content-box .thrv_text_element :is(p, li, blockquote):not(#fx),
html body.ppp-protected .thrv-content-box .thrv_text_element :is(p, li, blockquote) *:not(#fx):not([class*="ico"]):not(svg):not(svg *),
html body.ppp-protected .fx-pnarr:not(#fx),
html body.ppp-protected .fx-pnarr *:not(#fx) {
  font-family: 'Open Sans', sans-serif !important;
}

/* buttons and button-like links: "Back to Audio / Back to Video" and the up arrow on sales pages, the "SELECT" label above the part tabs, and every button on sales and protected pages */
html body:is(.tve-theme-90819, .tve-theme-90617, .tve-theme-62523, .ppp-protected) .fx-gup:not(#fx),
html body:is(.tve-theme-90819, .tve-theme-90617, .tve-theme-62523, .ppp-protected) .fx-gup *:not(#fx),
html body:is(.tve-theme-90819, .tve-theme-90617, .tve-theme-62523, .ppp-protected) .fx-back-coll:not(#fx),
html body:is(.tve-theme-90819, .tve-theme-90617, .tve-theme-62523, .ppp-protected) .fx-back-coll *:not(#fx),
html body .vt-eyebrow:not(#fx),
html body .vt-eyebrow *:not(#fx),
html body:is(.tve-theme-90819, .tve-theme-90617, .ppp-protected) :is(button, input[type="button"], input[type="submit"], .tcb-button-text, a.tcb-button-link, .thrv-button):not(#fx),
html body:is(.tve-theme-90819, .tve-theme-90617, .ppp-protected) :is(.tcb-button-text, a.tcb-button-link, .thrv-button) *:not(#fx):not([class*="ico"]):not(svg):not(svg *) {
  font-family: 'Open Sans', sans-serif !important;
}

/* equal space under the author name(s), on every sales and protected page: the same line height for one, two or three names, and 24px from the last name to the first line of the next paragraph (no matter how many names or which names) */
html body:is(.tve-theme-90819, .tve-theme-90617) .fx-about .fx-author p:not(#fx),
html body:is(.tve-theme-90819, .tve-theme-90617) .fx-about .fx-author p *:not(#fx) { line-height: 1.4 !important; }
html body:is(.tve-theme-90819, .tve-theme-90617) .fx-about .fx-author p:not(#fx) { margin: 0 !important; padding: 0 !important; }
html body:is(.tve-theme-90819, .tve-theme-90617) .fx-about .fx-author:not(#fx) { margin: 0 0 24px !important; padding: 0 !important; }
html body.ppp-protected .thrv_text_element:has(> p.fx-author-lines):not(#fx) { margin-top: 0 !important; margin-bottom: 24px !important; padding-top: 0 !important; padding-bottom: 0 !important; }
/* ===== END 2026 - Open Sans Fix ===== */

/* ===== from #90873 2026 - Author Lines ===== */
/* ===== 2026 - Author Lines CSS (whole site, front end) =====
   Names under the product title (for example "Gloria Wapnick / Kenneth Wapnick, Ph.D." or three names): every name is on its own line,
   and the lines sit close together (before, the gap between names was too big). Works on every sales page (Audio, Video, multi-part)
   and every protected page (Audio, Video, Staff Class, Podcast). The paragraphs are tagged by "2026 - Author Lines JS" (class fx-author-lines);
   on the sales pages the page code already tags the block with fx-author-duo, which is covered here too. */
html body p.fx-author-lines.fx-author-lines.fx-author-lines.fx-author-lines:not(#fx),
html body p.fx-author-lines.fx-author-lines.fx-author-lines.fx-author-lines *:not(#fx) {
  line-height: 1.4 !important;
}
html body p.fx-author-lines.fx-author-lines.fx-author-lines.fx-author-lines:not(#fx) {
  margin-top: 0 !important; margin-bottom: 0 !important; padding-top: 0 !important; padding-bottom: 0 !important;
}
/* sales pages: the block built by the Audio / Video page code */
html body .fx-about .fx-author.fx-author-duo p:not(#fx),
html body .fx-about .fx-author.fx-author-duo p *:not(#fx) {
  line-height: 1.4 !important;
}
html body .fx-about .fx-author.fx-author-duo p:not(#fx) { margin-top: 0 !important; margin-bottom: 0 !important; }
/* protected pages: beats the protected-card text rules (line-height 1.75 / 1.8) */
html body.ppp-protected .thrv-content-box .thrv_text_element p.fx-author-lines.fx-author-lines.fx-author-lines.fx-author-lines.fx-author-lines.fx-author-lines.fx-author-lines:not(#fx),
html body.ppp-protected .thrv-content-box .thrv_text_element p.fx-author-lines.fx-author-lines.fx-author-lines.fx-author-lines.fx-author-lines.fx-author-lines.fx-author-lines *:not(#fx),
html body.ppp-protected.fx-pc-done .thrv-content-box.fx-tcard .thrv_text_element p.fx-author-lines.fx-author-lines.fx-author-lines:not(#fx),
html body.ppp-protected.fx-pc-done .thrv-content-box.fx-tcard .thrv_text_element p.fx-author-lines.fx-author-lines.fx-author-lines *:not(#fx),
html body.ppp-protected.fx-pc-done .thrv-content-box.fx-tcard .thrv_text_element:first-child p.fx-author-lines.fx-author-lines.fx-author-lines:not(#fx) {
  line-height: 1.4 !important;
}
html body.ppp-protected.fx-pc-done .thrv-content-box.fx-tcard .thrv_text_element p.fx-author-lines.fx-author-lines.fx-author-lines:not(#fx),
html body.ppp-protected.fx-pc-done .thrv-content-box.fx-tcard .thrv_text_element:first-child p.fx-author-lines.fx-author-lines.fx-author-lines:not(#fx) {
  margin-top: 0 !important; margin-bottom: 0 !important;
}
/* ===== END 2026 - Author Lines CSS ===== */

/* ===== from #90856 2026 - Text Align ===== */
/* ===== 2026 - Text Align (CSS) =====
   Sales pages, new Audio (tve-theme-90819) and new Video (tve-theme-90617) templates.
   The About text is forced to left aligned, which flattened lines that you centered in Thrive (for example the centered quote on
   "Enjoying A Course in Miracles", or the centered title and date lines on "Making Love More Manageable"). The page must match
   the Thrive source, so a paragraph that is centered (or right aligned) in Thrive is shown the same way here.
   Thrive writes alignment two ways: a style on the paragraph (text-align: center) or an align attribute (align="center"); both are handled.
   Everything else stays left aligned. */
html body:is(.tve-theme-90819, .tve-theme-90617) .fx-about .fx-blk p[style*="text-align: center"]:not(#fx),
html body:is(.tve-theme-90819, .tve-theme-90617) .fx-about .fx-blk p[style*="text-align:center"]:not(#fx),
html body:is(.tve-theme-90819, .tve-theme-90617) .fx-about .fx-blk p[align="center"]:not(#fx),
html body:is(.tve-theme-90819, .tve-theme-90617) .fx-about .fx-blk p[style*="text-align: center"] *:not(#fx),
html body:is(.tve-theme-90819, .tve-theme-90617) .fx-about .fx-blk p[style*="text-align:center"] *:not(#fx),
html body:is(.tve-theme-90819, .tve-theme-90617) .fx-about .fx-blk p[align="center"] *:not(#fx) { text-align: center !important; }
html body:is(.tve-theme-90819, .tve-theme-90617) .fx-about .fx-blk p[style*="text-align: right"]:not(#fx),
html body:is(.tve-theme-90819, .tve-theme-90617) .fx-about .fx-blk p[style*="text-align:right"]:not(#fx),
html body:is(.tve-theme-90819, .tve-theme-90617) .fx-about .fx-blk p[align="right"]:not(#fx),
html body:is(.tve-theme-90819, .tve-theme-90617) .fx-about .fx-blk p[style*="text-align: right"] *:not(#fx),
html body:is(.tve-theme-90819, .tve-theme-90617) .fx-about .fx-blk p[style*="text-align:right"] *:not(#fx),
html body:is(.tve-theme-90819, .tve-theme-90617) .fx-about .fx-blk p[align="right"] *:not(#fx) { text-align: right !important; }
/* ===== END 2026 - Text Align ===== */

/* ===== from #90854 2026 - Audio Editor Text ===== */
/* ===== 2026 - Audio Editor Text (CSS) =====
   Thrive Architect editor only, on pages that use the new "2026 - Single Audio Product" template (tve-theme-90819).
   While you edit, the description text showed light and grey (the old-design rule "2026 - PRODUCT PAGE TEXT WEIGHT" makes paragraphs
   weight 300, and the theme makes text 85% black). The live new page already shows it black and regular, so the editor now does too.
   Bold stays bold. Nothing changes on the live page: the rule only matches inside the editor (body.tve_editor_page). */
html body.tve_editor_page.tve-theme-90819:not(#fx) #tve_flt p:not(#fx),
html body.tve_editor_page.tve-theme-90819:not(#fx) #tve_flt p:not(#fx) em,
html body.tve_editor_page.tve-theme-90819:not(#fx) #tve_flt p:not(#fx) i,
html body.tve_editor_page.tve-theme-90819:not(#fx) #tve_flt li:not(#fx) {
  color: #000 !important; font-weight: 400 !important;
}
html body.tve_editor_page.tve-theme-90819:not(#fx) #tve_flt p:not(#fx) strong,
html body.tve_editor_page.tve-theme-90819:not(#fx) #tve_flt p:not(#fx) b {
  color: #000 !important; font-weight: 700 !important;
}
/* ===== END 2026 - Audio Editor Text ===== */

/* ===== from #90848 2026 - Date Words ===== */
/* ===== 2026 - Date Words (CSS) =====
   Desktop and tablet: a date line in the details box never wraps; the white box widens a touch to fit it.
   Phone (700px and under): the line may wrap onto the next line. Long lists of dates (more than 48 characters) may wrap on all sizes.
   Covers single sales pages (.fx-v), multi-part sales pages (.fx-mv, added 2026-10-12) and protected pages. */
@media (min-width: 701px) {
  html body .fx-skubox .fx-v.fx-dw-nw:not(#fx), html body .fx-skubox .fx-mv.fx-dw-nw:not(#fx), html body.ppp-protected .meta-card .meta-row__value.fx-dw-nw:not(#fx) { white-space: nowrap !important; }
}
@media (max-width: 700px) {
  html body .fx-skubox .fx-v.fx-dw-nw:not(#fx), html body .fx-skubox .fx-mv.fx-dw-nw:not(#fx), html body.ppp-protected .meta-card .meta-row__value.fx-dw-nw:not(#fx) { white-space: normal !important; }
}
/* ===== END 2026 - Date Words ===== */

/* ===== from #90846 2026 - Audio Hide Counter ===== */
/* ===== 2026 - Audio Hide Preview Counter (CSS) =====
   Hides the time counter (the negative time) in the preview player on the new Audio sales pages. Display only. */
html body.tve-theme-90819 .fx-page .fx-pl-time:not(#fx) { display: none !important; }
/* ===== END 2026 - Audio Hide Preview Counter ===== */

/* ===== from #90829 2026 - Carousel Card Paste ===== */
/* ===== 2026 - Carousel Card CSS (product carousels: Audio and Video, sales and protected pages; site-wide) =====
   One look for every product carousel: a white card (1px #dfe4f2 line, 12px rounded corners, soft shadow) with 12px of white around the
   picture, a slight line around the big picture itself (1px, 40% black), and the thumbnail row inside the card.
   - Sales pages: the hero cover box (.fx-cover, Video, multi-part Video and Audio) is the card.
   - Protected pages (body.ppp-protected): the Smart Slider box is the card.
   Replaces the "thin border around the thumbnail section" of 2026 - Carousel Clean Border CSS (that line is not needed inside the card). */
html body .fx-page .fx-cover:not(#fx) { box-sizing: border-box; background: #fff; border: 1px solid #dfe4f2; border-radius: 12px; padding: 12px 12px 14px; box-shadow: 0 18px 40px rgba(20, 35, 55, .3); overflow: hidden; } html body.ppp-protected .n2-section-smartslider:not(#fx) { box-sizing: border-box; background: #fff; border: 1px solid #dfe4f2; border-radius: 12px; padding: 12px 12px 14px; box-shadow: 0 2px 14px rgba(46, 74, 102, .08); } html body.ppp-protected .n2-ss-slider-controls-below:not(#fx), html body.ppp-protected .n2-ss-slider-controls-below:not(#fx) .nextend-thumbnail:not(#fx) { background: transparent !important; border: 0 !important; } html body:is(.single-product, .ppp-protected) .n2-ss-slider-wrapper-inside:not(#fx) { position: relative; border-radius: 6px; overflow: hidden; } html body:is(.single-product, .ppp-protected) .n2-ss-slider-wrapper-inside:not(#fx)::after { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; border: 1px solid rgba(0, 0, 0, .4); border-radius: 6px; pointer-events: none; z-index: 50; } html body .fx-cv-bar { display: flex; align-items: center; gap: 8px; margin-top: 12px; } html body .fx-cv-bar .fx-cv-thumbs { position: relative; flex: 1 1 auto; min-width: 0; display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none; padding: 2px; } html body .fx-cv-bar .fx-cv-thumbs::-webkit-scrollbar { display: none; } html body .fx-cv-bar .fx-cv-thumbs::before, html body .fx-cv-bar .fx-cv-thumbs::after { content: ""; flex: 0 0 0; margin: auto; } html body .fx-cv-bar button.fx-cv-th:not(#fx) { flex: 0 0 56px; width: 56px; height: 56px; padding: 0 !important; margin: 0 !important; border: 1px solid #dfe4f2 !important; border-radius: 3px !important; background: #fff !important; overflow: hidden; cursor: pointer; box-sizing: border-box; min-width: 0; line-height: 0; box-shadow: none !important; } html body .fx-cv-bar button.fx-cv-th.fx-sel:not(#fx) { border: 2px solid #E0B02D !important; } html body .fx-cv-bar .fx-cv-th img { width: 100%; height: 100%; object-fit: cover; display: block; } html body .fx-cv-bar button.fx-cv-arrow:not(#fx) { flex: 0 0 26px; width: 26px; height: 26px; min-width: 0; border-radius: 50% !important; background: #2e4a66 !important; border: 0 !important; padding: 0 !important; margin: 0 !important; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background .2s; box-shadow: none !important; } html body .fx-cv-bar button.fx-cv-arrow:not(#fx):hover { background: #E0B02D !important; } html body .fx-cv-bar .fx-cv-arrow svg { width: 10px; height: 10px; fill: none; stroke: #fff; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; } html body .fx-cv-bar .fx-cv-th:focus-visible, html body .fx-cv-bar .fx-cv-arrow:focus-visible { outline: 3px solid rgba(224, 176, 45, .6); outline-offset: 3px; } html body .fx-cc .fx-cv-bar button.fx-cv-th:not(#fx) { height: 66px; } @keyframes fxThShow { to { opacity: 1; } } html body .fx-cover .n2-ss-slider-controls-below:not(#fx), html body.ppp-protected .n2-ss-slider-controls-below:not(#fx) { opacity: 0; animation: fxThShow .01s 6s forwards; } html body .fx-cc .n2-ss-slider-controls-below:not(#fx) { position: absolute !important; left: 0; top: 0; width: 1px !important; height: 1px !important; overflow: hidden !important; opacity: 0 !important; pointer-events: none !important; animation: none !important; } html body .fx-cc .nextend-arrow:not(#fx) { display: none !important; } html body .fx-cc .nextend-shadow:not(#fx) { display: none !important; }

/* ===== from #90824 2026 - Carousel Card ===== */
/* ===== 2026 - Carousel Card CSS (product carousels: Audio and Video, sales and protected pages; site-wide) =====
   One look for every product carousel: a white card (1px #dfe4f2 line, 12px rounded corners, soft shadow) with 12px of white around the
   picture, a slight line around the big picture itself (1px, 40% black), and the thumbnail row inside the card.
   - Sales pages: the hero cover box (.fx-cover, Video, multi-part Video and Audio) is the card.
   - Protected pages (body.ppp-protected): the Smart Slider box is the card.
   Replaces the "thin border around the thumbnail section" of 2026 - Carousel Clean Border CSS (that line is not needed inside the card). */

/* sales pages: the cover box */
html body .fx-page .fx-cover:not(#fx) {
  box-sizing: border-box; background: #fff; border: 1px solid #dfe4f2; border-radius: 12px; padding: 12px 12px 14px;
  box-shadow: 0 18px 40px rgba(20, 35, 55, .3); overflow: hidden;
}

/* protected pages: the Smart Slider box */
html body.ppp-protected .n2-section-smartslider:not(#fx) {
  box-sizing: border-box; background: #fff; border: 1px solid #dfe4f2; border-radius: 12px; padding: 12px 12px 14px;
  box-shadow: 0 2px 14px rgba(46, 74, 102, .08);
}
html body.ppp-protected .n2-ss-slider-controls-below:not(#fx),
html body.ppp-protected .n2-ss-slider-controls-below:not(#fx) .nextend-thumbnail:not(#fx) { background: transparent !important; border: 0 !important; }

/* the slight line around the big picture (Smart Slider covers; the Audio cover draws its own) */
html body:is(.single-product, .ppp-protected) .n2-ss-slider-wrapper-inside:not(#fx) { position: relative; border-radius: 6px; overflow: hidden; }
html body:is(.single-product, .ppp-protected) .n2-ss-slider-wrapper-inside:not(#fx)::after {
  content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; border: 1px solid rgba(0, 0, 0, .4); border-radius: 6px; pointer-events: none; z-index: 50;
}
/* ===== END 2026 - Carousel Card CSS ===== */

/* ===== from #90763 2026 - Carousel Thumb Gold ===== */
/* ===== 2026 - Carousel Thumbnail Gold Box CSS (product carousels: Audio and Video, sales and protected pages) =====
   Every thumbnail gets rounded corners and a 2px frame that is invisible; the picture you are on (and the one
   under the mouse) gets a gold #E0B02D frame and full brightness, the others are slightly faded (same look as the
   pictures on the multi-part Video pages). Only product pages are touched (body.single-product = sales pages,
   body.ppp-protected = protected pages); other sliders on the site are not. Does not change the thumbnail size rules. */
html body.single-product .n2-thumbnail-dot:not(#fx),
html body.ppp-protected .n2-thumbnail-dot:not(#fx) {
  border: 2px solid transparent !important;
  border-radius: 4px !important;
  opacity: .75 !important;
  overflow: hidden !important;
  transition: opacity .2s, border-color .2s !important;
}
html body.single-product .n2-thumbnail-dot:not(#fx) img,
html body.ppp-protected .n2-thumbnail-dot:not(#fx) img { border-radius: 2px !important; }
html body.single-product .n2-thumbnail-dot.n2-active:not(#fx),
html body.ppp-protected .n2-thumbnail-dot.n2-active:not(#fx),
html body.single-product .n2-thumbnail-dot:not(#fx):hover,
html body.ppp-protected .n2-thumbnail-dot:not(#fx):hover {
  opacity: 1 !important;
  border-color: #E0B02D !important;
}
/* ===== END 2026 - Carousel Thumbnail Gold Box CSS ===== */

/* ===== from #90667 2026 - Carousel Clean Border ===== */
/* ===== 2026 - Carousel Clean Border CSS (product carousels: Audio and Video, sales and protected pages) =====
   The Smart Slider carousel has a grey "shadow" picture under the thumbnails. It is removed, and the carousel
   ends with a clean white border; a 4px white strip below the thumbnails (chosen by the site owner). Only product pages are touched
   (body.single-product = sales pages, body.ppp-protected = protected pages); other sliders on the site are not. */
html body.single-product .nextend-shadow:not(#fx) img.nextend-shadow-image,
html body.ppp-protected .nextend-shadow:not(#fx) img.nextend-shadow-image {
  display: none !important;
}
html body.single-product .nextend-shadow:not(#fx),
html body.ppp-protected .nextend-shadow:not(#fx) {
  height: 4px !important;
  background: #fff !important;
  box-shadow: none !important;
}
/* White background behind the thumbnail row on PROTECTED pages (Audio and Video): the thumbnails no longer sit on the lavender page color (requested 2026-10-10) */
html body.ppp-protected .n2-ss-slider-controls-below:not(#fx),
html body.ppp-protected .n2-ss-slider-controls-below:not(#fx) .nextend-thumbnail:not(#fx) {
  background: #fff !important;
}
/* thin border around the thumbnail section: the same line the big picture above has (1px, 40% black); no top line so it joins the picture without a double line */
html body.ppp-protected .n2-ss-slider-controls-below:not(#fx) {
  border: 1px solid rgba(0, 0, 0, .4) !important; border-top: 0 !important; box-sizing: border-box !important;
}
/* Thumbnail arrow buttons (round circle): on hover the circle turns gold #E0B02D with a white arrow, like the other buttons on the site.
   The original grey picture is pushed out of its box (object-position) so the gold background shows. Audio and Video, sales and protected pages. */
html body:is(.single-product, .ppp-protected) .nextend-thumbnail-button img:not(#fx) { border-radius: 50% !important; transition: background-color .2s ease !important; }
html body:is(.single-product, .ppp-protected) .nextend-thumbnail-button img:not(#fx):hover {
  object-fit: none !important; object-position: -999px 0 !important; background-color: #E0B02D !important; background-repeat: no-repeat !important; background-position: center !important; background-size: 100% 100% !important;
}
html body:is(.single-product, .ppp-protected) .nextend-thumbnail-next img:not(#fx):hover { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 9.5l5 5 5-5'/%3E%3C/svg%3E") !important; }
html body:is(.single-product, .ppp-protected) .nextend-thumbnail-previous img:not(#fx):hover { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 14.5l5-5 5 5'/%3E%3C/svg%3E") !important; }
/* ===== END 2026 - Carousel Clean Border CSS ===== */

/* ===== from #90625 2026 - Lightbox ===== */
/* ===== 2026 - Lightbox CSS (product cover image pop-up) =====
   Navy background, round glass buttons with a gold hover. Applies wherever the Smart Slider lightbox opens: sales pages and protected video and audio pages.
   The arrows are placed next to the picture by "2026 - Lightbox JS"; the rules below are the look and the fallback place. */
html body .litebox-overlay:not(#fx) {
  background: radial-gradient(ellipse at center, rgba(46, 74, 102, .96) 0%, rgba(31, 53, 80, .98) 70%, rgba(20, 36, 56, .99) 100%) !important;
  -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
}
html body .litebox-content:not(#fx) { border-radius: 8px !important; box-shadow: 0 18px 60px rgba(0, 0, 0, .5) !important; }
html body .litebox-text:not(#fx) {
  background: rgba(15, 33, 80, .55) !important; color: #fff !important; font-family: 'Open Sans', sans-serif !important; font-weight: 400 !important; letter-spacing: .04em;
}

/* previous / next / close = the same round button */
html body .litebox-nav:not(#fx), html body .litebox-close:not(#fx) {
  width: 52px !important; height: 52px !important; border-radius: 50% !important; box-sizing: border-box !important;
  background-color: rgba(255, 255, 255, .12) !important; background-image: none !important; border: 1.5px solid rgba(255, 255, 255, .45) !important;
  cursor: pointer !important; opacity: 1; transition: background-color .2s, border-color .2s, transform .2s !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, .25) !important;
}
html body .litebox-nav:not(#fx):hover, html body .litebox-close:not(#fx):hover {
  background-color: #E0B02D !important; border-color: #E0B02D !important; transform: scale(1.08);
}
html body .litebox-nav:not(#fx) { top: 50% !important; margin-top: -26px !important; }
html body .litebox-prev:not(#fx) { left: 24px !important; }
html body .litebox-next:not(#fx) { right: 24px !important; left: auto !important; }
html body .litebox-close:not(#fx) { top: 24px !important; right: 24px !important; }

/* a button that sits over a light or white part of the picture (or straddles its edge) turns solid navy so it can always be seen (set by the Lightbox JS) */
html body .litebox-nav.fx-lb-light:not(#fx), html body .litebox-close.fx-lb-light:not(#fx) {
  background-color: #2e4a66 !important;
  border-color: rgba(255, 255, 255, .9) !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, .35) !important;
}
/* hover is always gold with the white arrow, light or dark */
html body .litebox-nav.fx-lb-light:not(#fx):hover, html body .litebox-close.fx-lb-light:not(#fx):hover {
  background-color: #E0B02D !important;
  border-color: #fff !important;
}

/* chevrons and the X are drawn in CSS (white) */
html body .litebox-nav:not(#fx)::after { content: ''; position: absolute; left: 50%; top: 50%; width: 11px; height: 11px; border: solid #fff; border-width: 0 3px 3px 0; pointer-events: none; }
html body .litebox-next:not(#fx)::after { margin: -6px 0 0 -9px; transform: rotate(-45deg); }
html body .litebox-prev:not(#fx)::after { margin: -6px 0 0 -3px; transform: rotate(135deg); }
html body .litebox-close:not(#fx)::before, html body .litebox-close:not(#fx)::after {
  content: ''; position: absolute; left: 50%; top: 50%; width: 20px; height: 3px; margin: -1.5px 0 0 -10px; background: #fff; border-radius: 2px; pointer-events: none;
}
html body .litebox-close:not(#fx)::before { transform: rotate(45deg); }
html body .litebox-close:not(#fx)::after { transform: rotate(-45deg); }

@media (max-width: 700px) {
  html body .litebox-nav:not(#fx), html body .litebox-close:not(#fx) { width: 44px !important; height: 44px !important; }
  html body .litebox-nav:not(#fx) { margin-top: -22px !important; }
  html body .litebox-prev:not(#fx) { left: 10px !important; }
  html body .litebox-next:not(#fx) { right: 10px !important; }
  html body .litebox-close:not(#fx) { top: 10px !important; right: 10px !important; }
}

/* phones: Smart Slider hides the close button on small screens; always show it */
html body .litebox-close:not(#fx) { display: block !important; visibility: visible !important; opacity: 1 !important; z-index: 9999999 !important; }

/* when the WordPress admin bar is showing (signed-in staff), keep the close X fully below it instead of half hidden under it */
html body.admin-bar .litebox-close:not(#fx) { top: 58px !important; }
@media (max-width: 782px) {
  html body.admin-bar .litebox-close:not(#fx) { top: 60px !important; }
}

/* ===== END 2026 - Lightbox CSS ===== */

/* ===== from #90618 2026 - Video Product ===== */
/* ===== 2026 - Video Product CSS (whole site; only acts on the "2026 - Single Video Product" template) =====
   Template body class: tve-theme-90617. Styles the page built by "2026 - Video Product JS". */

/* hide the page until (never in the editor; and a pure-CSS safety net shows it after 3 seconds even if the JS does not run) -- hide the page until the new layout is built (JS adds fx-on, or fx-fail after 4 seconds as a safety net) */
body.tve-theme-90617:not(.fx-on):not(.fx-fail):not(.tve_editor_page):not(.tcb-editor):not(.tve-editor):not(.tve_post_editor_page) .product.type-product { opacity: 0; animation: fxShow .01s 3s forwards; }
@keyframes fxShow { to { opacity: 1; } }
body.tve-theme-90617 { overflow-x: clip; background: #F4F4FC; }

/* navy banner sits right against the header: remove the theme's gaps above the product */
body.tve-theme-90617 .main-container.thrv_wrapper, body.tve-theme-90617 .main-container { padding-top: 0 !important; }
html body.tve-theme-90617 .product-template-wrapper.thrv_wrapper:not(#fx), html body.tve-theme-90617 .main-container.thrv_wrapper:not(#fx) { margin-top: 0 !important; padding-top: 0 !important; }
body.tve-theme-90617 .product-template-wrapper > .product, body.tve-theme-90617 .membership-content.product { padding-top: 0 !important; margin-top: 0 !important; }

/* hide the original layout (the real pieces are moved into the new one by the JS) */
body.tve-theme-90617.fx-on .product.type-product > *:not(.fx-page) { display: none !important; }
body.tve-theme-90617 .fx-page,
body.tve-theme-90617 .fx-page * { box-sizing: border-box; }
body.tve-theme-90617 .fx-page {
  font-family: 'Open Sans', sans-serif; font-weight: 400; color: #2e4a66; background: #F4F4FC;
  --fx-hang: 0px; width: 100%;
}
body.tve-theme-90617 .fx-page a { color: #2e4a66; }
body.tve-theme-90617 .fx-page a:hover { color: #a8761a; }

/* ---------- PDF download card (below "About this ..."): navy icon tile, opens in a new tab, gold on hover ---------- */
body.tve-theme-90617 .fx-dl {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin: 0 0 32px;
}
html body.tve-theme-90617 .fx-page a.fx-dl-item:not(#fx) {
  display: flex;
  align-items: center;
  gap: 16px;
  max-width: 100%;
  padding: 14px 22px 14px 14px;
  background: #fff;
  border: 1px solid #dfe4f2;
  border-radius: 12px;
  box-shadow: 0 2px 14px rgba(46, 74, 102, .08);
  text-decoration: none !important;
  color: #2e4a66 !important;
  transition: border-color .2s, box-shadow .2s, transform .2s;
}
html body.tve-theme-90617 .fx-page a.fx-dl-item:not(#fx):hover,
html body.tve-theme-90617 .fx-page a.fx-dl-item:not(#fx):focus-visible {
  border-color: #E0B02D;
  box-shadow: 0 8px 22px rgba(46, 74, 102, .14);
  transform: translateY(-1px);
  color: #2e4a66 !important;
}
body.tve-theme-90617 .fx-dl-ico {
  flex: 0 0 52px;
  width: 52px;
  height: 52px;
  border-radius: 12px;
  background: #2e4a66;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .2s;
}
body.tve-theme-90617 .fx-dl-ico svg {
  width: 30px;
  height: 30px;
  fill: none;
  stroke: #fff;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
body.tve-theme-90617 .fx-dl-item:hover .fx-dl-ico,
body.tve-theme-90617 .fx-dl-item:focus-visible .fx-dl-ico {
  background: #E0B02D;
}
/* on hover the gold "PDF" letters turn white so they stay readable on the gold tile */
body.tve-theme-90617 .fx-dl-item:hover .fx-dl-ico text,
body.tve-theme-90617 .fx-dl-item:focus-visible .fx-dl-ico text {
  fill: #fff;
}
body.tve-theme-90617 .fx-dl-txt {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
body.tve-theme-90617 .fx-dl-title {
  font-family: 'Open Sans', sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.35;
  color: #2e4a66;
}
body.tve-theme-90617 .fx-dl-sub {
  font-family: 'Open Sans', sans-serif;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.3;
  color: #5b6b7f;
}
body.tve-theme-90617 .fx-dl-open {
  flex: 0 0 auto;
  margin-left: 6px;
  display: flex;
}
body.tve-theme-90617 .fx-dl-open svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: #2e4a66;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: stroke .2s;
}
body.tve-theme-90617 .fx-dl-item:hover .fx-dl-open svg,
body.tve-theme-90617 .fx-dl-item:focus-visible .fx-dl-open svg {
  stroke: #a8761a;
}

/* ---------- hero ---------- */
body.tve-theme-90617 .fx-hero {
  background: #2e4a66; color: #fff; width: 100vw; margin-left: calc(50% - 50vw); position: relative; z-index: 1;
}
body.tve-theme-90617 .fx-hero-in {
  max-width: 1080px; margin: 0 auto; padding: 56px 24px 0; display: flex; gap: 56px; align-items: flex-start;
}
body.tve-theme-90617 .fx-left { flex: 1 1 auto; min-width: 0; padding-bottom: 64px; }
body.tve-theme-90617 .fx-cover {
  flex: 0 0 380px; width: 380px; max-width: 100%; position: relative; z-index: 3;
  margin-bottom: calc(-1 * var(--fx-hang)); background: #fff; border-radius: 10px;
  box-shadow: 0 18px 40px rgba(20, 35, 55, .35); overflow: hidden; line-height: 0;
}
body.tve-theme-90617 .fx-cover img { width: 100%; height: auto; display: block; }
body.tve-theme-90617 .fx-cover .n2-section-smartslider { margin: 0 !important; }

/* title: smaller automatically when long */
body.tve-theme-90617 .fx-page h1.fx-title {
  font-family: 'Playfair Display', serif !important; font-weight: 600 !important; color: #fff !important;
  line-height: 1.18 !important; margin: 0 0 18px !important; padding: 0 !important; text-align: left !important;
  font-size: 46px !important; letter-spacing: 0 !important; text-transform: none !important;
}
body.tve-theme-90617 .fx-page h1.fx-title * { font: inherit !important; color: inherit !important; }
/* ...but "A Course in Miracles" inside a product title stays italic (the rule above would flatten it) */
html body.tve-theme-90617 .fx-page h1.fx-title em:not(#fx),
html body.tve-theme-90617 .fx-page h1.fx-title i:not(#fx) {
  font-style: italic !important;
}
body.tve-theme-90617 .fx-page h1.fx-title.fx-t2 { font-size: 38px !important; }
body.tve-theme-90617 .fx-page h1.fx-title.fx-t3 { font-size: 32px !important; }
body.tve-theme-90617 .fx-page h1.fx-title.fx-t4 { font-size: 27px !important; line-height: 1.22 !important; }

body.tve-theme-90617 .fx-meta { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; margin: 0 0 26px; font-size: 14px; font-weight: 400; color: #dfe6f1; }
body.tve-theme-90617 .fx-badge { background: #E0B02D; color: #fff; font-weight: 500; font-size: 12px; letter-spacing: .06em; padding: 4px 12px; border-radius: 4px; text-transform: uppercase; }

body.tve-theme-90617 .fx-tiles-label { font-size: 12px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: #cfd8e6; margin: 0 0 10px; }
body.tve-theme-90617 .fx-tiles { display: flex; gap: 12px; margin: 0 0 28px; flex-wrap: wrap; }
body.tve-theme-90617 .fx-page a.fx-tile, body.tve-theme-90617 .fx-page span.fx-tile {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; width: 104px; padding: 12px 8px;
  border: 2px solid rgba(255, 255, 255, .35); border-radius: 8px; color: #fff; text-decoration: none; font-size: 12px; font-weight: 500;
  letter-spacing: .12em; text-transform: uppercase; background: transparent; transition: border-color .2s, background .2s;
}
body.tve-theme-90617 .fx-page a.fx-tile:hover { border-color: #E0B02D; color: #fff; }
body.tve-theme-90617 .fx-page .fx-tile.fx-sel { background: #fff; color: #2e4a66; border-color: #fff; }
body.tve-theme-90617 .fx-page .fx-tile, body.tve-theme-90617 .fx-page .fx-tile * { color: inherit !important; }
body.tve-theme-90617 .fx-page a.fx-tile { color: #fff !important; }
body.tve-theme-90617 .fx-page a.fx-tile:hover { color: #fff !important; }
body.tve-theme-90617 .fx-page .fx-tile.fx-sel { color: #2e4a66 !important; }
body.tve-theme-90617 .fx-page .fx-tile span { display: block; line-height: 1.2; }
body.tve-theme-90617 .fx-page .fx-tile svg path, body.tve-theme-90617 .fx-page .fx-tile svg rect { stroke: currentColor !important; fill: none !important; }
body.tve-theme-90617 .fx-tile svg { width: 28px; height: 28px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

body.tve-theme-90617 .fx-page .fx-price, body.tve-theme-90617 .fx-page .fx-price * {
  font-family: 'Playfair Display', serif !important; font-weight: 600 !important; color: #fff !important; font-size: 34px !important; line-height: 1.1 !important;
}
body.tve-theme-90617 .fx-page p.fx-price { margin: 0 !important; padding: 0 !important; }
/* price on the left, Add to cart on the right (wraps under the price only if there is no room) */
body.tve-theme-90617 .fx-buyrow { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; }
body.tve-theme-90617 .fx-buyrow .fx-buy { flex: 0 1 auto; min-width: 0; }

/* buy box: Add to cart, and the logged-out message */
body.tve-theme-90617 .fx-buy form.cart { margin: 0 !important; padding: 0 !important; display: block !important; }
body.tve-theme-90617 .fx-buy .quantity { display: none !important; }
html body.tve-theme-90617 .fx-page .fx-buy form.cart button.single_add_to_cart_button.button, html body.tve-theme-90617 .fx-page .fx-buy form.cart button[type="submit"] {
  background: #E0B02D !important; background-color: #E0B02D !important; background-image: none !important; color: #fff !important; border: 0 !important; border-radius: 6px !important;
  padding: 15px 38px !important; height: auto !important; min-height: 0 !important; line-height: 1.2 !important; margin: 0 !important;
  font-family: 'Open Sans', sans-serif !important; font-weight: 500 !important; font-size: 15px !important; letter-spacing: .08em !important;
  text-transform: uppercase !important; cursor: pointer; transition: background .2s, color .2s; width: auto !important; box-shadow: none !important;
}
html body.tve-theme-90617 .fx-page .fx-buy form.cart button.single_add_to_cart_button.button:hover { background: #fff !important; background-color: #fff !important; color: #2e4a66 !important; }
body.tve-theme-90617 .fx-buy div.woocommerce { margin: 0 !important; padding: 0 !important; background: none !important; }
/* logged-out message (Create an account to stream): site info box (pale gold), beats the Notices Fix green */
html body.tve-theme-90617:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account) .fx-page .fx-buy .wc-memberships-restriction-message:not(#fx) {
  display: flex !important; flex-wrap: wrap; align-items: center; gap: 12px; box-sizing: border-box; max-width: 460px; margin: 0 !important; padding: 16px 20px !important;
  background: #fff6dc !important; background-image: none !important; color: #2b3550 !important;
  border: 1px solid #f0d48a !important; border-left: 5px solid #E0B02D !important; border-radius: 12px !important; box-shadow: none !important;
  font-family: 'Open Sans', sans-serif !important; font-weight: 400 !important; font-size: 15px !important; line-height: 1.5 !important;
}
html body.tve-theme-90617:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account) .fx-page .fx-buy .wc-memberships-restriction-message:not(#fx)::before { content: "" !important; display: block !important; position: static !important; flex: 0 0 24px; width: 24px; height: 24px; margin: 0 !important; border: 0 !important; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a8761a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5M12 8v.5'/%3E%3C/svg%3E") center / 24px 24px no-repeat !important; }
html body.tve-theme-90617:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account) .fx-page .fx-buy .wc-memberships-restriction-message:not(#fx) a:not(#fx) {
  display: inline-flex !important; align-items: center; margin: 0 0 0 auto !important; float: none !important; padding: 0 18px !important; height: 40px;
  background: #2e4a66 !important; color: #fff !important; font-weight: 500 !important; text-decoration: none !important; border-radius: 8px !important;
}
html body.tve-theme-90617:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account) .fx-page .fx-buy .wc-memberships-restriction-message:not(#fx) a:not(#fx):hover { background: #DFAE3C !important; color: #fff !important; }
@media (max-width: 700px) {
  html body.tve-theme-90617 .fx-page a.fx-dl-item:not(#fx) { width: 100%; padding: 12px 16px 12px 12px; }
  body.tve-theme-90617 .fx-dl-ico { flex-basis: 44px; width: 44px; height: 44px; }
  body.tve-theme-90617 .fx-dl-ico svg { width: 26px; height: 26px; }
html body.tve-theme-90617:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account) .fx-page .fx-buy .wc-memberships-restriction-message:not(#fx) a:not(#fx) { margin: 0 !important; width: 100%; justify-content: center; } }
body.tve-theme-90617 .fx-buy div.woocommerce { margin: 0 !important; padding: 0 !important; background: none !important; }

/* space between paragraphs of the About text (several paragraphs in one block, or one block per paragraph) */
html body.tve-theme-90617 .fx-about .fx-blk:not(.fx-author):not(.fx-quote):not(#fx) + .fx-blk:not(.fx-quote):not(#fx) { margin-top: 1.1em !important; }
html body.tve-theme-90617 .fx-about .fx-blk p:not(:last-child):not(#fx) { margin-bottom: 1.1em !important; }

/* ---------- body ---------- */
body.tve-theme-90617 .fx-after { max-width: 988px; margin: 0 auto; padding: calc(var(--fx-hang) + 44px) 24px 40px; } /* 988 - 2x24 = 940px: the same column width as the protected pages */
body.tve-theme-90617 .fx-card { background: #fff; border-radius: 10px; box-shadow: 0 2px 14px rgba(46, 74, 102, .08); padding: 48px 64px; margin: 0 0 32px; }
body.tve-theme-90617 .fx-h {
  font-family: 'Playfair Display', serif; font-weight: 600; font-size: 24px; letter-spacing: .14em; text-transform: uppercase; text-align: center;
  color: #1f3550; margin: 0 0 34px; padding: 0 0 18px; position: relative; line-height: 1.25;
}
body.tve-theme-90617 .fx-h::after { content: ''; position: absolute; left: 50%; bottom: 0; width: 64px; height: 2px; margin-left: -32px; background: #E0B02D; }

/* Please Note box: round icon on the left, text on the right */
body.tve-theme-90617 .fx-note {
  display: flex; align-items: center; gap: 18px;
  background: #fbf4df; border: 1px solid #ecd89a; border-left: 5px solid #E0B02D; border-radius: 10px; padding: 24px 32px; margin: 0 0 32px;
}
body.tve-theme-90617 .fx-note-ico {
  flex: 0 0 44px; width: 44px; height: 44px; border-radius: 50%; background: #fff;
  display: flex; align-items: center; justify-content: center;
}
body.tve-theme-90617 .fx-note-ico svg {
  width: 24px; height: 24px; fill: none; stroke: #a8761a; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
}
body.tve-theme-90617 .fx-note-body {
  flex: 1 1 auto; min-width: 0;
}
body.tve-theme-90617 .fx-note, body.tve-theme-90617 .fx-note * { font-family: 'Open Sans', sans-serif !important; font-size: 15px !important; line-height: 1.65 !important; color: #000 !important; }
/* the text: black, regular, no italics (only product titles are italic), no capitals */
body.tve-theme-90617 .fx-note p {
  margin: 0 !important; padding: 0 !important; font-weight: 400 !important; font-style: normal !important;
  text-transform: none !important; letter-spacing: 0 !important; text-align: left !important;
}
body.tve-theme-90617 .fx-note p + p { margin-top: 10px !important; }
/* "Please Note:" is bold */
html body.tve-theme-90617 .fx-note strong:not(#fx) {
  font-weight: 700 !important; letter-spacing: 0 !important;
}
/* product titles are italic */
html body.tve-theme-90617 .fx-note em:not(#fx), html body.tve-theme-90617 .fx-note i:not(#fx) {
  font-style: italic !important; font-weight: 400 !important;
}
/* links: same look as the links inside the About paragraphs (navy text, gold underline) */
html body.tve-theme-90617 .fx-note a:not(#fx) {
  color: #2e4a66 !important; font-weight: 400 !important; text-decoration: underline !important;
  text-decoration-color: #E0B02D !important; text-underline-offset: 3px !important;
}
/* visited links stay navy */
html body.tve-theme-90617 .fx-note a:not(#fx):visited {
  color: #2e4a66 !important;
}
/* hover / keyboard focus: text stays navy, the UNDERLINE turns blue (same on the About paragraph links) */
html body.tve-theme-90617 .fx-note a:not(#fx):hover,
html body.tve-theme-90617 .fx-note a:not(#fx):focus,
html body.tve-theme-90617 .fx-about .fx-blk a:not(#fx):hover,
html body.tve-theme-90617 .fx-about .fx-blk a:not(#fx):focus {
  color: #2e4a66 !important; text-decoration: underline !important; text-decoration-color: #1b7fc4 !important;
}

/* About text: keeps the italics / quotes / dashes from the description exactly */
body.tve-theme-90617 .fx-about .thrv_wrapper { margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; width: auto !important; max-width: none !important; }
body.tve-theme-90617 .fx-about .fx-blk { margin: 0 0 20px !important; }
body.tve-theme-90617 .fx-about .fx-blk p, body.tve-theme-90617 .fx-about .fx-blk p * {
  font-family: 'Open Sans', sans-serif !important; font-weight: 400 !important; font-size: 16px !important; line-height: 1.8 !important; color: #000 !important;
  text-align: left !important; letter-spacing: 0 !important; text-transform: none !important;
}
body.tve-theme-90617 .fx-about .fx-blk p { margin: 0 !important; padding: 0 !important; }
body.tve-theme-90617 .fx-about .fx-blk strong, body.tve-theme-90617 .fx-about .fx-blk b { font-weight: 500 !important; }
body.tve-theme-90617 .fx-about .fx-blk em, body.tve-theme-90617 .fx-about .fx-blk i { font-style: italic; }
body.tve-theme-90617 .fx-about .fx-blk a { color: #2e4a66 !important; text-decoration: underline; text-decoration-color: #E0B02D; text-underline-offset: 3px; }
body.tve-theme-90617 .fx-about .fx-author { margin: 0 0 24px !important; }
body.tve-theme-90617 .fx-about .fx-author p, body.tve-theme-90617 .fx-about .fx-author p * { color: #2e4a66 !important; font-weight: 400 !important; font-size: 16px !important; text-align: center !important; letter-spacing: .02em !important; }
/* two-line author (Gloria Wapnick, then Kenneth Wapnick, Ph.D.): left justified on desktop, tablet and phone */
html body.tve-theme-90617 .fx-about .fx-author.fx-author-duo p:not(#fx),
html body.tve-theme-90617 .fx-about .fx-author.fx-author-duo p *:not(#fx) {
  text-align: left !important;
}
/* Thrive makes <strong> semi-bold with its own strong rule: win with the id trick */
html body.tve-theme-90617 .fx-about .fx-author strong:not(#fx), html body.tve-theme-90617 .fx-about .fx-author b:not(#fx) { font-weight: 500 !important; }
html body.tve-theme-90617 .fx-about .fx-blk strong:not(#fx), html body.tve-theme-90617 .fx-about .fx-blk b:not(#fx) { font-weight: 500 !important; }
/* indented paragraphs: SAME space on the left and the right (desktop + tablet 20px, phone 20px) */
body.tve-theme-90617 .fx-about .fx-quote {
  padding-left: 20px !important;
  padding-right: 20px !important;
}
/* the paragraph inside must add nothing extra on the right, so the right space equals the left */
html body.tve-theme-90617 .fx-about .fx-quote p:not(#fx) { padding-right: 0 !important; }
body.tve-theme-90617 .fx-about .fx-quote p, body.tve-theme-90617 .fx-about .fx-quote p * { font-size: 15px !important; line-height: 1.75 !important; }
body.tve-theme-90617 .fx-about .fx-blk:last-child { margin-bottom: 0 !important; }

/* preview */
body.tve-theme-90617 .fx-prev-box { position: relative; width: 100%; padding-top: 56.25%; background: #1c2d3f; border-radius: 8px; overflow: hidden; margin: 0 0 20px; }
body.tve-theme-90617 .fx-prev-box:last-child { margin-bottom: 0; }
/* thumbnail border: a subtle 2px rounded outline around the preview picture; it fades away once the video starts playing */
body.tve-theme-90617 .fx-prev-box {
  box-shadow: 0 0 0 2px #b9c4e0;
  transition: box-shadow .35s ease;
}
body.tve-theme-90617 .fx-prev-box.fx-playing {
  box-shadow: 0 0 0 2px rgba(185, 196, 224, 0);
}
body.tve-theme-90617 .fx-prev-box .thrv_wrapper, body.tve-theme-90617 .fx-prev-box .thrv_wrapper > div {
  position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; margin: 0 !important; padding: 0 !important; max-width: none !important;
}
body.tve-theme-90617 .fx-prev-box iframe { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; border: 0 !important; }
body.tve-theme-90617 .fx-prev-box .tve_iframe_cover, body.tve-theme-90617 .fx-prev-box code.tve_js_placeholder { display: none !important; }

/* SKU / details section: only as wide as its data needs (never narrower than 360px, never wider than the card above); phone = full width, two lines per row */
body.tve-theme-90617 .fx-skubox { display: grid; grid-template-columns: max-content 1fr; column-gap: 0; width: max-content; min-width: min(100%, 360px); max-width: 100%; box-sizing: border-box; background: #fff; border-radius: 10px; box-shadow: 0 2px 14px rgba(46, 74, 102, .08); padding: 6px 28px; margin: 0; }
body.tve-theme-90617 .fx-row { display: contents; }
body.tve-theme-90617 .fx-row .fx-k, body.tve-theme-90617 .fx-row .fx-v { padding: 13px 0; border-bottom: 1px solid #e6e9f2; white-space: nowrap; }
body.tve-theme-90617 .fx-row:last-child .fx-k, body.tve-theme-90617 .fx-row:last-child .fx-v { border-bottom: 0; }
body.tve-theme-90617 .fx-row .fx-k { padding-right: 32px; font-size: 12px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: #a8761a; line-height: 1.5; align-self: stretch; display: flex; align-items: center; }
body.tve-theme-90617 .fx-row .fx-v { font-size: 15px; font-weight: 400; color: #000; line-height: 1.5; align-self: stretch; display: flex; align-items: center; justify-content: flex-end; text-align: right; }

/* breadcrumb */
body.tve-theme-90617 .fx-crumb { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 28px; font-size: 13px; font-weight: 400; color: #c9d6ea; }
body.tve-theme-90617 .fx-page .fx-crumb a { color: #c9d6ea; text-decoration: none; transition: color .2s; }
body.tve-theme-90617 .fx-page .fx-crumb a:hover { color: #E0B02D; }

/* thumbnail arrows: same navy (gold on hover) as the big picture arrows, but round */
body.tve-theme-90617 .fx-cover .nextend-thumbnail-button img { opacity: 0 !important; }
body.tve-theme-90617 .fx-cover .nextend-thumbnail-button::before { content: ''; position: absolute; left: 50%; top: 50%; width: 26px; height: 26px; margin: -13px 0 0 -13px; border-radius: 50%; background: #2e4a66; transition: background .2s; pointer-events: none; }
body.tve-theme-90617 .fx-cover .nextend-thumbnail-button::after { content: ''; position: absolute; left: 50%; top: 50%; width: 7px; height: 7px; border: solid #fff; border-width: 0 2px 2px 0; pointer-events: none; }
body.tve-theme-90617 .fx-cover .nextend-thumbnail-next::after { margin: -4px 0 0 -6px; transform: rotate(-45deg); }
body.tve-theme-90617 .fx-cover .nextend-thumbnail-previous::after { margin: -4px 0 0 -2px; transform: rotate(135deg); }
body.tve-theme-90617 .fx-cover .nextend-thumbnail-button:hover::before { background: #E0B02D; }

/* ---------- tablet ---------- */
@media (max-width: 940px) {
  body.tve-theme-90617 .fx-hero-in { flex-direction: column; align-items: stretch; gap: 36px; padding: 36px 24px 48px; }
  body.tve-theme-90617 .fx-left { padding-bottom: 0; }
  body.tve-theme-90617 .fx-cover { flex: 0 0 auto; width: 380px; max-width: 100%; margin: 0 auto !important; }
  body.tve-theme-90617 .fx-after { padding-top: 40px; }
  body.tve-theme-90617 .fx-page h1.fx-title { font-size: 40px !important; }
  body.tve-theme-90617 .fx-page h1.fx-title.fx-t2 { font-size: 34px !important; }
  body.tve-theme-90617 .fx-page h1.fx-title.fx-t3 { font-size: 29px !important; }
  body.tve-theme-90617 .fx-page h1.fx-title.fx-t4 { font-size: 25px !important; }
  body.tve-theme-90617 .fx-card { padding: 40px 40px; }
}
/* ---------- phone ---------- */
@media (max-width: 700px) {
  body.tve-theme-90617 .fx-hero-in { padding: 28px 16px 40px; gap: 28px; }
  body.tve-theme-90617 .fx-page h1.fx-title { font-size: 32px !important; }
  body.tve-theme-90617 .fx-page h1.fx-title.fx-t2 { font-size: 28px !important; }
  body.tve-theme-90617 .fx-page h1.fx-title.fx-t3 { font-size: 25px !important; }
  body.tve-theme-90617 .fx-page h1.fx-title.fx-t4 { font-size: 22px !important; }
  body.tve-theme-90617 .fx-page .fx-price, body.tve-theme-90617 .fx-page .fx-price * { font-size: 30px !important; }
  body.tve-theme-90617 .fx-after { padding: 32px 0 28px; } /* phone: the white boxes run edge to edge of the column, same as the protected pages */
  body.tve-theme-90617 .fx-card { padding: 28px 25px; }
  body.tve-theme-90617 .fx-note {
    padding: 20px 20px; gap: 14px; align-items: flex-start;
  }
  body.tve-theme-90617 .fx-note-ico {
    flex: 0 0 36px; width: 36px; height: 36px;
  }
  body.tve-theme-90617 .fx-note-ico svg {
    width: 20px; height: 20px;
  }
  body.tve-theme-90617 .fx-h { font-size: 20px; }
  body.tve-theme-90617 .fx-about .fx-blk p, body.tve-theme-90617 .fx-about .fx-blk p * { font-size: 16px !important; }
  body.tve-theme-90617 .fx-about .fx-quote {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
  body.tve-theme-90617 .fx-about .fx-quote p, body.tve-theme-90617 .fx-about .fx-quote p * { font-size: 15px !important; }
  body.tve-theme-90617 .fx-skubox { display: block; width: 100%; min-width: 0; padding: 6px 20px; }
  body.tve-theme-90617 .fx-row { display: block; padding: 12px 0; border-bottom: 1px solid #e6e9f2; }
  body.tve-theme-90617 .fx-row:last-child { border-bottom: 0; }
  body.tve-theme-90617 .fx-row .fx-k, body.tve-theme-90617 .fx-row .fx-v { display: block; padding: 0; border: 0 !important; white-space: normal; }
  body.tve-theme-90617 .fx-row .fx-k { margin-bottom: 3px; }
  body.tve-theme-90617 .fx-row .fx-v { text-align: left; justify-content: flex-start; }
  body.tve-theme-90617 .fx-tile { width: 96px !important; }
}
/* phone: the Duration always sits UNDER the HD 1080P tag (never beside it), left aligned */
@media (max-width: 700px) {
  html body.tve-theme-90617 .fx-meta:not(#fx) { flex-direction: column !important; flex-wrap: nowrap !important; align-items: flex-start !important; gap: 10px !important; }
  html body.tve-theme-90617 .fx-meta:not(#fx) .fx-badge, html body.tve-theme-90617 .fx-meta:not(#fx) .fx-dur { margin: 0 !important; }
}

/* ===== END 2026 - Video Product CSS ===== */

/* ===== from #90596 2026 - Product Page Type ===== */
/* ===== 2026 - PRODUCT PAGE TEXT WEIGHT + BUTTONS (CSS) =====
   All product pages (body.single-product). Text one step lighter, buttons dark blue with gold hover.
   To fine-tune the thickness change the 3 numbers below (Montserrat has every weight from 100 to 900). */
html body.single-product {
  --fx-w-text: 300;   /* paragraphs, price, short description, tab content (was 400) */
  --fx-w-head: 400;   /* product title (was 500) */
  --fx-w-btn: 400;    /* buttons and tab links (was 500 / 600) */
}
html body.single-product .product .summary,
html body.single-product .product .summary p,
html body.single-product .product .summary span,
html body.single-product .product .summary div,
html body.single-product .product .price,
html body.single-product .product .price span,
html body.single-product .product .woocommerce-product-details__short-description,
html body.single-product .woocommerce-tabs .panel,
html body.single-product .woocommerce-tabs .panel p,
html body.single-product .woocommerce-tabs .panel li,
html body.single-product .woocommerce-tabs .panel span {
  font-weight: var(--fx-w-text) !important;
}
html body.single-product .product h1.product_title,
html body.single-product .product .product_title {
  font-weight: var(--fx-w-head) !important;
}
html body.single-product .woocommerce-tabs ul.tabs li a,
html body.single-product .woocommerce-tabs .wc-tabs li a {
  font-weight: var(--fx-w-btn) !important;
}

/* buttons: dark blue, white text, gold on hover */
html body.single-product .product .single_add_to_cart_button,
html body.single-product .product button.button.alt,
html body.single-product .product a.button,
html body.single-product .related.products a.button,
html body.single-product .upsells.products a.button {
  background: #2e4a66 !important;
  background-image: none !important; /* Thrive paints its purple as a gradient image */
  color: #fff !important;
  border: 0 !important;
  border-radius: 8px !important;
  box-shadow: none !important;
  font-weight: var(--fx-w-btn) !important;
  transition: background .2s ease !important;
}
html body.single-product .product .single_add_to_cart_button:hover,
html body.single-product .product .single_add_to_cart_button:focus-visible,
html body.single-product .product button.button.alt:hover,
html body.single-product .product a.button:hover,
html body.single-product .related.products a.button:hover,
html body.single-product .upsells.products a.button:hover {
  background: #E0B02D !important;
  background-image: none !important;
  color: #fff !important;
}

/* the Add to cart button: Thrive's own rule is very specific, so this one is too */
html body.single-product.single-product .product .summary .single_add_to_cart_button.single_add_to_cart_button.single_add_to_cart_button {
  background: #2e4a66 !important;
  background-image: none !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 8px !important;
  box-shadow: none !important;
  font-weight: var(--fx-w-btn) !important;
}
html body.single-product.single-product .product .summary .single_add_to_cart_button.single_add_to_cart_button.single_add_to_cart_button:hover,
html body.single-product.single-product .product .summary .single_add_to_cart_button.single_add_to_cart_button.single_add_to_cart_button:focus-visible {
  background: #E0B02D !important;
  background-image: none !important;
  color: #fff !important;
}
/* ===== END 2026 - PRODUCT PAGE TEXT WEIGHT + BUTTONS ===== */

/* ===== from #90589 2026 - Product Gallery ===== */
/* ===== 2026 - PRODUCT PAGE GALLERY BORDERS (CSS) =====
   All product pages. The gallery had up to 3 stacked 1px borders (frame + slide + image), so the left/top looked
   thick and the right/bottom was cut off, and each thumbnail click drifted the picture a little more to the side.
   Now there is ONE 1px frame (the gallery's own, which also surrounds the thumbnails) and the picture fills it. */
html body.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image {
  border: 0 !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  padding: 0 !important;
}
html body.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image a {
  display: block !important;
  width: 100% !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}
html body.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image img {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  border: 0 !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  padding: 0 !important;
}
/* Divider line between the big picture and the thumbnails (same colour and thickness as the frame) */
html body.single-product .woocommerce-product-gallery .flex-control-thumbs {
  border-top: 1px solid rgba(0, 0, 0, 0.25) !important;
  box-sizing: border-box !important;
}
/* ===== END 2026 - PRODUCT PAGE GALLERY BORDERS ===== */

/* ===== 2026-11-10 Preview play button + progress bar (video sales pages; added inside this merged file) ===== */
html body.single-product .fx-pp { position: absolute; left: 0; top: 0; right: 0; bottom: 0; z-index: 5; cursor: pointer; background: transparent; }
html body.single-product .fx-pp .fx-pp-btn:not(#fx) { position: absolute; left: 50%; top: 50%; width: 84px; height: 84px; margin: -42px 0 0 -42px; padding: 0; border: 0; border-radius: 50%; background: rgba(13, 27, 62, .78); display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background .2s, opacity .25s, transform .2s; box-shadow: 0 6px 22px rgba(0, 0, 0, .35); }
html body.single-product .fx-pp .fx-pp-btn svg { width: 34px; height: 34px; fill: #fff; margin-left: 4px; }
html body.single-product .fx-pp:hover .fx-pp-btn:not(#fx) { background: #E0B02D; transform: scale(1.04); }
html body.single-product .fx-pp.is-playing .fx-pp-btn:not(#fx) { opacity: 0; pointer-events: none; }
html body.single-product .fx-pp .fx-pp-bar { position: absolute; left: 0; right: 0; bottom: 0; height: 48px; padding: 0 14px; display: flex; align-items: center; gap: 12px; background: linear-gradient(to top, rgba(13, 27, 62, .88), rgba(13, 27, 62, 0)); cursor: default; opacity: 0; pointer-events: none; transition: opacity .4s; }
html body.single-product .fx-pp.is-show .fx-pp-bar, html body.single-product .fx-pp.is-started:not(.is-playing) .fx-pp-bar { opacity: 1; pointer-events: auto; }
html body.single-product .fx-pp .fx-pp-pl:not(#fx) { flex: 0 0 auto; width: 32px; height: 32px; padding: 0; border: 0; border-radius: 50%; background: transparent; display: flex; align-items: center; justify-content: center; cursor: pointer; }
html body.single-product .fx-pp .fx-pp-pl svg { width: 22px; height: 22px; fill: #fff; }
html body.single-product .fx-pp .fx-pp-pl:hover svg { fill: #E0B02D; }
html body.single-product .fx-pp .fx-pp-time { flex: 0 0 auto; color: #fff; font: 600 13px/1 system-ui, -apple-system, Segoe UI, Roboto, sans-serif; font-variant-numeric: tabular-nums; text-shadow: 0 1px 3px rgba(0, 0, 0, .6); }
html body.single-product .fx-pp .fx-pp-seek { flex: 1 1 auto; min-width: 0; height: 18px; margin: 0; padding: 0; background: transparent; -webkit-appearance: none; appearance: none; cursor: pointer; --p: 0%; }
html body.single-product .fx-pp .fx-pp-seek::-webkit-slider-runnable-track { height: 5px; border-radius: 3px; background: linear-gradient(to right, #E0B02D var(--p), rgba(255, 255, 255, .35) var(--p)); }
html body.single-product .fx-pp .fx-pp-seek::-webkit-slider-thumb { -webkit-appearance: none; width: 14px; height: 14px; margin-top: -4.5px; border-radius: 50%; border: 0; background: #fff; box-shadow: 0 1px 4px rgba(0, 0, 0, .5); }
html body.single-product .fx-pp .fx-pp-seek::-moz-range-track { height: 5px; border-radius: 3px; background: rgba(255, 255, 255, .35); }
html body.single-product .fx-pp .fx-pp-seek::-moz-range-progress { height: 5px; border-radius: 3px; background: #E0B02D; }
html body.single-product .fx-pp .fx-pp-seek::-moz-range-thumb { width: 14px; height: 14px; border-radius: 50%; border: 0; background: #fff; box-shadow: 0 1px 4px rgba(0, 0, 0, .5); }

/* ===== 2026-11-10 Lightbox counter look (James: the counter shows only at the bottom of the lightbox picture, counting from 1; no counter on the carousel itself) ===== */
/* lightbox counter: dark pill so it can be read on any picture (phones too), above the phone home bar */
html body .fx-lb-count { left: 50% !important; right: auto !important; transform: translateX(-50%); width: auto !important; padding: 5px 14px; border-radius: 999px; background: rgba(13, 27, 62, .78); color: #fff !important; font-size: 14px !important; line-height: 1.2; white-space: nowrap; bottom: calc(env(safe-area-inset-bottom, 0px) + 16px) !important; }
