/******* Do not edit this file *******
Simple Custom CSS and JS - by Silkypress.com
Saved: Nov 12 2026 | 19:37:08 */
/* ===== 2026 - Cart, Login and Shop CSS (merged Nov 12 2026, front end, header) =====
   Replaces these old items (switched OFF, not deleted), in their old print order:
   #91515 Gift Card Cart
   #91347 Cart Covers
   #91325 Cart Pinned Bar Fix
   #91267 Email PIN Login
   #91240 Lightbox Login Register
   #91004 Streaming Access Buttons
   #90884 Order Refund Row
   #90880 Order Gift Card
   #90602 Notices Fix
   #90594 Mini Cart
   #90587 Audio Square Images
   Each source is marked with its old ID. ===== */

/* ---- SOURCE #91515 ---- */
/* ===== 2026 - Gift Card Cart CSS (Custom CSS, front end) =====
   Gift card lines in the cart, checkout and side cart: one wide landscape card picture, and To / From / Message
   using the full width of the line. Only affects gift card lines (the JS marks the picture). */
/* cart page */
html body.woocommerce-cart table.cart tr.cart_item:has(img.fx-gc-wide):not(#fx){grid-template-columns:168px minmax(0,1fr) auto 44px !important}
html body.woocommerce-cart table.cart tr.cart_item:has(img.fx-gc-wide) td.product-thumbnail:not(#fx){width:auto !important;height:auto !important;min-width:0 !important}
html body img.fx-gc-wide:not(#fx){display:block !important;width:100% !important;max-width:100% !important;height:auto !important;aspect-ratio:3/2 !important;object-fit:contain !important;border-radius:8px !important;border:0 !important;box-shadow:0 2px 6px rgba(13,27,62,.18) !important}
html body.woocommerce-cart td.product-name:has(dl.variation) dl.variation:not(#fx){display:grid !important;grid-template-columns:auto minmax(0,1fr) !important;gap:6px 14px !important;align-items:start !important;width:100% !important;max-width:none !important;margin:10px 0 0 !important;padding:0 !important}
html body.woocommerce-cart td.product-name dl.variation dt:not(#fx){margin:0 !important;padding:0 !important;font-weight:600 !important;white-space:nowrap !important}
html body.woocommerce-cart td.product-name dl.variation dd:not(#fx){margin:0 !important;padding:0 !important;min-width:0 !important;overflow-wrap:anywhere !important}
html body.woocommerce-cart td.product-name dl.variation dd p:not(#fx){margin:0 !important;padding:0 !important}
html body.woocommerce-cart td.product-name:has(dl.variation):not(#fx){flex-direction:column !important;align-items:stretch !important}
/* phone */
@media (max-width:600px){html body.woocommerce-cart table.cart tr.cart_item:has(img.fx-gc-wide):not(#fx){grid-template-columns:104px minmax(0,1fr) auto 44px !important}}
/* checkout order summary: To / From on one tidy grid, the email stays on one line */
html body.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-name dl.variation:not(#fx){display:grid !important;grid-template-columns:auto minmax(0,1fr) !important;gap:2px 8px !important;margin:6px 0 0 !important;font-size:13px !important;line-height:1.4 !important}
html body.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-name dl.variation dt:not(#fx){margin:0 !important;padding:0 !important;font-weight:600 !important;white-space:nowrap !important}
html body.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-name dl.variation dd:not(#fx){margin:0 !important;padding:0 !important;min-width:0 !important;overflow-wrap:anywhere !important}
html body.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-name dl.variation dd p:not(#fx){margin:0 !important;padding:0 !important;display:inline !important}
/* side cart picture */
html body .fx-mc-panel img.fx-gc-wide:not(#fx){width:64px !important;height:auto !important}
/* ===== END 2026 - Gift Card Cart CSS ===== */

/* ---- SOURCE #91347 ---- */
/* ===== 2026 - Cart Covers CSS (CSS snippet, front end, whole site) =====
   One look for every product cover in the Cart page, the Checkout order list, the order-received list and the side (mini) cart:
   - Video covers are TALL rectangles, Audio covers are SQUARE, the picture is stretched to fill its frame (nothing cut off)
   - every cover has the same steel-grey 2px border (#b4bfd6, same as the Restricted Content page)
   Shapes: Cart 62x88 / 88x88, Checkout 40x56 / 56x56, Side cart 46x64 / 64x64.
   Video rows are marked by the cart/checkout scripts (class fx-portrait) and, in the side cart, by the VIDEO STREAM tag (fx-tag-video). */

/* ---- Cart page ---- */
html body.woocommerce-cart td.product-thumbnail img:not(#fx):not(#fy) {
  border: 2px solid #b4bfd6 !important; border-radius: 6px !important; object-fit: fill !important; box-sizing: border-box !important;
}

/* ---- Checkout page order list (and order-received list) ---- */
html body.woocommerce-checkout .fx-th img:not(#fx):not(#fy),
html body.woocommerce-checkout td.product-name > img:not(#fx):not(#fy),
html body.woocommerce-checkout td.woocommerce-table__product-name > img:not(#fx):not(#fy) {
  border: 2px solid #b4bfd6 !important; border-radius: 6px !important; object-fit: fill !important; box-sizing: border-box !important;
}

/* ---- Side (mini) cart ---- */
html body .fx-mc-panel .fx-mc-img:not(#fx):not(#fy) {
  flex: 0 0 64px; width: 64px; height: 64px; box-sizing: border-box; overflow: hidden;
  border: 2px solid #b4bfd6; border-radius: 8px; background: #e6eefb;
}
html body .fx-mc-panel .fx-mc-img img:not(#fx):not(#fy) {
  display: block; width: 100% !important; height: 100% !important; max-width: none !important; object-fit: fill !important; border: 0 !important; border-radius: 0 !important;
}
/* Video = tall rectangle */
html body .fx-mc-panel .fx-mc-item:has(.fx-tag-video) .fx-mc-img:not(#fx):not(#fy) { flex: 0 0 46px; width: 46px; height: 64px; }
@media (max-height: 520px) {
  html body .fx-mc-panel .fx-mc-img:not(#fx):not(#fy) { flex: 0 0 52px; width: 52px; height: 52px; }
  html body .fx-mc-panel .fx-mc-item:has(.fx-tag-video) .fx-mc-img:not(#fx):not(#fy) { flex: 0 0 38px; width: 38px; height: 52px; }
}
/* ===== END 2026 - Cart Covers CSS ===== */



/* ---- SOURCE #91325 ---- */
/* ===== 2026 - Cart Pinned Bar Fix CSS =====
   Where: Code Snippets plugin > Add New > CSS (type CSS, front end, site-wide like the other CSS).
   Why: "2026 - Email PIN Login CSS" uses the class .fx-pin and hides it everywhere. The Cart's pinned
   Coupon + Total + "Proceed to checkout" bar uses the same class name, so it disappeared. This puts it back,
   on the Cart page only. Nothing else is changed. */
html body.woocommerce-cart .fx-pin:not(#fx):not(#fy):not(#fz):not(#fq) {
  display: block !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 -16px !important;
  padding: 0 !important;
  text-align: left !important;
  font-family: inherit !important;
}
/* ===== END 2026 - Cart Pinned Bar Fix CSS ===== */



/* ---- SOURCE #91267 ---- */
/* ===== 2026 - Email PIN Login CSS =====
   Where: Code Snippets plugin > Add New > CSS (type CSS, front end). Pairs with "2026 - Email PIN Login JS" and "...PHP".
   Look: same family as the new Login/Register lightbox - Playfair Display caps title with gold underline, Open Sans everywhere else,
   six rounded code boxes, navy button that turns gold on hover, coral errors, white-card friendly on phones. Works inside the lightbox
   and in the on-page sign-in. Specificity: html body ... :not(#fx):not(#fy):not(#fz) + !important beats Thrive's selectors. */

/* while the code screen is open, hide the normal sign-in parts of that window */
html body [data-state].fx-pin-on > *:not(.fx-pin):not(#fx):not(#fy):not(#fz) { display: none !important; }
html body [data-state].fx-pin-on > .fx-pin:not(#fx):not(#fy):not(#fz) { display: block !important; }

html body .fx-pin:not(#fx):not(#fy):not(#fz) { display: none; box-sizing: border-box; width: 100%; max-width: 400px; margin: 0 auto !important; padding: 8px 0 4px !important; text-align: center; font-family: 'Open Sans', sans-serif !important; color: #1f3550; -webkit-font-smoothing: antialiased; }
html body .fx-pin *:not(#fx):not(#fy):not(#fz) { box-sizing: border-box; font-family: 'Open Sans', sans-serif; letter-spacing: 0; }

html body .fx-pin .fx-pin-badge:not(#fx):not(#fy):not(#fz) { width: 64px; height: 64px; margin: 0 auto 14px !important; border-radius: 50%; background: #1f86d6; display: flex; align-items: center; justify-content: center; }
html body .fx-pin .fx-pin-badge svg { width: 30px; height: 30px; }

html body .fx-pin .fx-pin-title:not(#fx):not(#fy):not(#fz) { font: 600 22px/1.25 'Playfair Display', serif !important; letter-spacing: .14em !important; text-transform: uppercase !important; color: #1f3550 !important; margin: 0 !important; padding: 0 0 14px !important; position: relative; border: 0 !important; background: none !important; text-align: center !important; text-wrap: balance; }
html body .fx-pin .fx-pin-title:not(#fx):not(#fy):not(#fz)::after { content: ''; position: absolute; left: 50%; bottom: 0; width: 56px; height: 2px; margin-left: -28px; background: #E0B02D; }
html body .fx-pin .fx-pin-sub:not(#fx):not(#fy):not(#fz) { font: 400 14.5px/1.55 'Open Sans', sans-serif !important; color: #4a6179 !important; margin: 14px 4px 18px !important; padding: 0 !important; text-align: center !important; }
html body .fx-pin .fx-pin-sub b:not(#fx):not(#fy):not(#fz) { color: #1f3550 !important; font-weight: 600 !important; word-break: break-all; }

/* six boxes */
html body .fx-pin .fx-pin-boxes:not(#fx):not(#fy):not(#fz) { display: flex; justify-content: center; gap: 8px; margin: 0 0 14px !important; }
html body .fx-pin .fx-pin-box:not(#fx):not(#fy):not(#fz) { flex: 1 1 0; min-width: 0; max-width: 54px; height: 58px; padding: 0 !important; margin: 0 !important; text-align: center !important; font: 600 24px/1 'Open Sans', sans-serif !important; color: #1f3550 !important; background: #fff !important; border: 1.5px solid #cfd7e6 !important; border-radius: 10px !important; box-shadow: none !important; outline: 0 !important; caret-color: #1f86d6; transition: border-color .15s, box-shadow .15s, background-color .15s; -webkit-appearance: none; appearance: none; }
html body .fx-pin .fx-pin-box:not(#fx):not(#fy):not(#fz):focus { border-color: #1f86d6 !important; box-shadow: 0 0 0 3px rgba(31, 134, 214, .18) !important; }
html body .fx-pin .fx-pin-box:not(#fx):not(#fy):not(#fz):not(:placeholder-shown), html body .fx-pin .fx-pin-box[value]:not([value=""]):not(#fx):not(#fy):not(#fz) { background: #f6f8fc !important; }
html body .fx-pin.fx-pin-bad .fx-pin-box:not(#fx):not(#fy):not(#fz) { border-color: #c8453b !important; background: #fdf3f2 !important; animation: fxPinShake .35s; }
html body .fx-pin .fx-pin-box:not(#fx):not(#fy):not(#fz):disabled { opacity: .6; }
@keyframes fxPinShake { 20% { transform: translateX(-4px); } 40% { transform: translateX(4px); } 60% { transform: translateX(-3px); } 80% { transform: translateX(3px); } }

/* message line */
html body .fx-pin .fx-pin-msg:not(#fx):not(#fy):not(#fz) { display: none; margin: 0 0 14px !important; padding: 11px 14px !important; border-radius: 10px; font: 500 13.5px/1.45 'Open Sans', sans-serif !important; text-align: left !important; }
html body .fx-pin .fx-pin-msg.on:not(#fx):not(#fy):not(#fz) { display: block; }
html body .fx-pin .fx-pin-msg.err:not(#fx):not(#fy):not(#fz) { background: #fdf3f2; border: 1px solid #f0c9c5; border-left: 5px solid #c8453b; color: #8e2c24 !important; }
html body .fx-pin .fx-pin-msg.info:not(#fx):not(#fy):not(#fz) { background: #eef2f9; border: 1px solid #cfd7e6; border-left: 5px solid #1f86d6; color: #2e4a66 !important; }

/* skip the code / keep me signed in: two "days" choices (also used in the sign-in box) */
html body .fx-days-wrap:not(#fx):not(#fy):not(#fz) { display: block; margin: 0 0 16px !important; padding: 0 !important; text-align: center; }
/* code screen: soft yellow panel so the choice is easy to notice */
html body .fx-pin .fx-pin-skip:not(#fx):not(#fy):not(#fz) { background: #fdf6dc; border: 1px solid #f0e2ae; border-radius: 12px; padding: 12px 12px 14px !important; margin: 0 0 16px !important; }
html body .fx-days-q:not(#fx):not(#fy):not(#fz) { display: block; margin: 0 0 8px !important; font: 500 14px/1.3 'Open Sans', sans-serif !important; color: #1f3550 !important; }
html body .fx-days:not(#fx):not(#fy):not(#fz) { display: flex; gap: 10px; margin: 0 !important; padding: 0 !important; }
html body .fx-days .fx-day:not(#fx):not(#fy):not(#fz) { flex: 1 1 0; min-width: 0; display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 44px; margin: 0 !important; padding: 0 10px !important; background: #fff !important; color: #1f3550 !important; border: 1.5px solid #b8c5da !important; border-radius: 10px !important; font: 500 15px/1 'Open Sans', sans-serif !important; letter-spacing: 0 !important; text-transform: none !important; box-shadow: none !important; cursor: pointer; -webkit-appearance: none; appearance: none; transition: border-color .15s, background .15s; }
html body .fx-days .fx-day:not(#fx):not(#fy):not(#fz) i { flex: none; width: 18px; height: 18px; border: 1.5px solid #b8c5da; border-radius: 50%; background: #fff; box-sizing: border-box; }
html body .fx-days .fx-day:not(#fx):not(#fy):not(#fz):hover { border-color: #E0B02D !important; background: #fff !important; color: #1f3550 !important; }
html body .fx-days .fx-day[aria-pressed=true]:not(#fx):not(#fy):not(#fz) { background: #2e4a66 !important; border-color: #2e4a66 !important; color: #fff !important; }
html body .fx-days .fx-day[aria-pressed=true]:not(#fx):not(#fy):not(#fz) i { border-color: #fff; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232e4a66' stroke-width='3.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 13px no-repeat; }
html body .fx-days .fx-day:not(#fx):not(#fy):not(#fz):focus-visible { outline: 3px solid rgba(31, 134, 214, .35) !important; outline-offset: 2px; }
@media (max-width: 380px) { html body .fx-days .fx-day:not(#fx):not(#fy):not(#fz) { font-size: 14px !important; padding: 0 6px !important; gap: 6px; } }

/* verify button */
html body .fx-pin .fx-pin-go:not(#fx):not(#fy):not(#fz) { display: block; width: 100% !important; height: 50px; margin: 0 !important; padding: 0 16px !important; border: 0 !important; border-radius: 8px !important; background: #2e4a66 !important; color: #fff !important; font: 500 15.5px/50px 'Open Sans', sans-serif !important; letter-spacing: .02em !important; text-transform: none !important; cursor: pointer; box-shadow: none !important; transition: background-color .15s; }
html body .fx-pin .fx-pin-go:not(#fx):not(#fy):not(#fz):hover:not(:disabled) { background: #E0B02D !important; color: #fff !important; }
html body .fx-pin .fx-pin-go:not(#fx):not(#fy):not(#fz):disabled { opacity: .5; cursor: not-allowed; }
html body .fx-pin .fx-pin-go:not(#fx):not(#fy):not(#fz):focus-visible { outline: 3px solid rgba(31, 134, 214, .35) !important; outline-offset: 2px; }

/* links under the button */
html body .fx-pin .fx-pin-foot:not(#fx):not(#fy):not(#fz) { margin: 18px 0 0 !important; padding: 0 !important; font: 400 14px/1.5 'Open Sans', sans-serif !important; color: #4a6179 !important; text-align: center !important; }
html body .fx-pin .fx-pin-foot a:not(#fx):not(#fy):not(#fz) { color: #2e4a66 !important; font-weight: 500 !important; text-decoration: none !important; border-bottom: 1.5px solid #E0B02D; padding-bottom: 1px; cursor: pointer; }
html body .fx-pin .fx-pin-foot a:not(#fx):not(#fy):not(#fz):hover { color: #0d1b3e !important; }
html body .fx-pin .fx-pin-foot a.off:not(#fx):not(#fy):not(#fz) { color: #8a9bb0 !important; border-bottom-color: transparent; pointer-events: none; cursor: default; font-weight: 500 !important; }
html body .fx-pin .fx-pin-hint:not(#fx):not(#fy):not(#fz) { margin: 14px 6px 0 !important; padding: 12px 0 0 !important; border-top: 1px solid #e3e9f3 !important; font: 400 12.5px/1.55 'Open Sans', sans-serif !important; color: #6b7f96 !important; text-align: center !important; }
html body .fx-pin .fx-pin-dot:not(#fx):not(#fy):not(#fz) { margin: 0 10px; color: #b8c5da; }

/* phones: the six boxes shrink to fit, links stack */
@media (max-width: 400px) {
  html body .fx-pin .fx-pin-boxes:not(#fx):not(#fy):not(#fz) { gap: 6px; }
  html body .fx-pin .fx-pin-box:not(#fx):not(#fy):not(#fz) { height: 52px; font-size: 22px !important; border-radius: 9px !important; }
  html body .fx-pin .fx-pin-title:not(#fx):not(#fy):not(#fz) { font-size: 18px !important; letter-spacing: .1em !important; }
  html body .fx-pin .fx-pin-foot:not(#fx):not(#fy):not(#fz) { display: flex; flex-direction: column; gap: 10px; align-items: center; }
  html body .fx-pin .fx-pin-dot:not(#fx):not(#fy):not(#fz) { display: none; }
}
@media (max-height: 640px) { html body .fx-pin .fx-pin-badge:not(#fx):not(#fy):not(#fz) { width: 48px; height: 48px; margin-bottom: 8px !important; } html body .fx-pin .fx-pin-badge svg { width: 24px; height: 24px; } }
@media (prefers-reduced-motion: reduce) { html body .fx-pin.fx-pin-bad .fx-pin-box:not(#fx):not(#fy):not(#fz) { animation: none; } }
/* spinner on the Sign In / Create Account button while waiting for the server */
html body .tar-login-submit.fx-busy:not(#fx):not(#fy):not(#fz) { pointer-events: none; opacity: .85; }
html body .tar-login-submit.fx-busy .tcb-button-text:not(#fx):not(#fy):not(#fz)::after { content: ''; display: inline-block; width: 15px; height: 15px; margin-left: 10px; vertical-align: -2px; border: 2.5px solid rgba(255,255,255,.35); border-top-color: #E0B02D; border-radius: 50%; animation: fxPinSpin .7s linear infinite; }
html body .fx-pin .fx-pin-go.fx-busy:not(#fx):not(#fy):not(#fz)::after { content: ''; display: inline-block; width: 15px; height: 15px; margin-left: 10px; vertical-align: -2px; border: 2.5px solid rgba(255,255,255,.35); border-top-color: #E0B02D; border-radius: 50%; animation: fxPinSpin .7s linear infinite; }
@keyframes fxPinSpin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { html body .tar-login-submit.fx-busy .tcb-button-text:not(#fx):not(#fy):not(#fz)::after { animation-duration: 1.6s; } }
/* ===== END 2026 - Email PIN Login CSS ===== */

/* ---- SOURCE #91240 ---- */
/* ===== 2026 - Lightbox Login Register CSS (front end, whole site) =====
   New look for the two Thrive lightboxes that hold the Login / Register / Forgot password / Already logged in form
   ("Student Login" id 83749 and "Student Register" id 83861). Marked class fx-lbla by "2026 - Lightbox Login Register JS".
   The Thrive form itself (fields, validation, messages, redirects) is NOT changed; this only restyles it. The on-page Login and Register are not touched.
   Look: navy glass behind, white 16px panel, gold seal, Playfair caps title with gold underline, pill tabs, rounded fields with icons, coral error messages, navy buttons (gold on hover). */
html.fx-lbla-open body .tve_p_lb_overlay:not(#fx):not(#fy):not(#fz) {
  background: radial-gradient(ellipse at center, rgba(46, 74, 102, .94) 0%, rgba(31, 53, 80, .96) 70%, rgba(20, 36, 56, .98) 100%) !important;
  -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
}
html body .fx-lbla .tve_p_lb_content:not(#fx):not(#fy):not(#fz) {
  background: #fff !important; border: 0 !important; border-radius: 16px !important; box-shadow: 0 18px 60px rgba(0, 0, 0, .45) !important;
  width: calc(100vw - 24px) !important; max-width: 440px !important; min-width: 0 !important; padding: 0 !important; margin-left: auto !important; margin-right: auto !important;
}
html body .fx-lbla .tve_p_lb_content .tve_p_lb_inner:not(#fx):not(#fy):not(#fz), html body .fx-lbla .tve_p_lb_content article:not(#fx):not(#fy):not(#fz), html body .fx-lbla .tve_p_lb_content .tve_flt:not(#fx):not(#fy):not(#fz), html body .fx-lbla .tve_p_lb_content .tve_editor_main_content:not(#fx):not(#fy):not(#fz) { background: none !important; border: 0 !important; box-shadow: none !important; }
html body .fx-lbla .tve_p_lb_content .tve_p_lb_inner:not(#fx):not(#fy):not(#fz) { border-radius: 16px !important; padding: 0 !important; }
html body .fx-lbla .tve_p_lb_content .thrv-login-element:not(#fx):not(#fy):not(#fz) { background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; margin: 0 !important; max-width: none !important; width: 100% !important; font-family: 'Open Sans', sans-serif !important; }
/* Open Sans everywhere in the panel (inputs, labels, tabs, buttons, errors, links) - only the title stays Playfair Display */
html body .fx-lbla .thrv-login-element *:not(.fx-la-title):not(#fx):not(#fy):not(#fz),
html body .fx-lbla .thrv-login-element input:not(#fx):not(#fy):not(#fz),
html body .fx-lbla .thrv-login-element input::placeholder,
html body .fx-lbla .thrv-login-element .tcb-button-link span,
html body .fx-lbla .thrv-login-element .tcb-button-text,
html body .fx-lbla .thrv-login-element .tcb-label,
html body .fx-lbla .thrv-login-element .tcb-form-error { font-family: 'Open Sans', sans-serif !important; }
html body .fx-lbla .tcb-login-form-wrapper:not(#fx):not(#fy):not(#fz) { background: none !important; border: 0 !important; box-shadow: none !important; border-radius: 0 !important; padding: 34px 32px 28px !important; margin: 0 !important; max-width: none !important; width: 100% !important; box-sizing: border-box !important; position: relative; }
html body .fx-lbla .tcb-login-form-wrapper .thrv_wrapper.tcb-login-form:not(#fx):not(#fy):not(#fz), html body .fx-lbla .tcb-login-form-wrapper form:not(#fx):not(#fy):not(#fz), html body .fx-lbla .tve-form-drop-zone:not(#fx):not(#fy):not(#fz), html body .fx-lbla .tve-login-item-wrapper:not(#fx):not(#fy):not(#fz) { background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; margin: 0 !important; max-width: none !important; width: 100% !important; }

/* close X */
html body .fx-lbla .tve_p_lb_close:not(#fx):not(#fy):not(#fz) {
  top: 14px !important; right: 14px !important; width: 38px !important; height: 38px !important; border-radius: 50% !important; box-sizing: border-box !important;
  background: #2e4a66 !important; border: 0 !important; box-shadow: 0 2px 10px rgba(31, 53, 80, .35) !important;
  font-size: 0 !important; line-height: 0 !important; color: transparent !important; text-indent: -999px; overflow: hidden; z-index: 5;
  transition: background-color .15s, transform .15s !important; text-decoration: none !important;
}
html body .fx-lbla .tve_p_lb_close:not(#fx):not(#fy):not(#fz)::before, html body .fx-lbla .tve_p_lb_close:not(#fx):not(#fy):not(#fz)::after { content: ''; position: absolute; left: 50%; top: 50%; width: 16px; height: 2px; margin: -1px 0 0 -8px; background: #fff; border-radius: 2px; text-indent: 0; }
html body .fx-lbla .tve_p_lb_close:not(#fx):not(#fy):not(#fz)::before { transform: rotate(45deg); }
html body .fx-lbla .tve_p_lb_close:not(#fx):not(#fy):not(#fz)::after { transform: rotate(-45deg); }
html body .fx-lbla .tve_p_lb_close:not(#fx):not(#fy):not(#fz):hover { background: #E0B02D !important; transform: scale(1.06); }

/* close X: in this lightbox the X is a Thrive icon (class tve_ea_thrive_leads_form_close). Same look as above: navy circle inside the corner, white X, gold on hover */
html body .fx-lbla .tve_ea_thrive_leads_form_close:not(#fx):not(#fy):not(#fz) { position: absolute !important; top: 14px !important; right: 14px !important; left: auto !important; bottom: auto !important; width: 38px !important; height: 38px !important; margin: 0 !important; padding: 0 !important; border-radius: 50% !important; box-sizing: border-box !important; background: #2e4a66 !important; border: 0 !important; box-shadow: 0 2px 10px rgba(31, 53, 80, .35) !important; display: flex !important; align-items: center; justify-content: center; cursor: pointer; z-index: 5; transition: background-color .15s, transform .15s !important; }
html body .fx-lbla .tve_ea_thrive_leads_form_close:not(#fx):not(#fy):not(#fz) svg { width: 15px !important; height: 15px !important; fill: #fff !important; color: #fff !important; stroke: none !important; }
html body .fx-lbla .tve_ea_thrive_leads_form_close:not(#fx):not(#fy):not(#fz) svg path { fill: #fff !important; }
html body .fx-lbla .tve_ea_thrive_leads_form_close:not(#fx):not(#fy):not(#fz):hover { background: #E0B02D !important; transform: scale(1.06); }
@media (max-width: 480px) { html body .fx-lbla .tve_ea_thrive_leads_form_close:not(#fx):not(#fy):not(#fz) { top: 10px !important; right: 10px !important; width: 34px !important; height: 34px !important; } }

/* header added by the JS: seal, title, one line of help */
html body .fx-lbla .fx-la-head:not(#fx):not(#fy):not(#fz) { text-align: center; margin: 0 0 18px; }
html body .fx-lbla .fx-la-logo:not(#fx):not(#fy):not(#fz) { display: block; width: 62px; height: auto; margin: 0 auto 10px; border: 0 !important; box-shadow: none !important; }
html body .fx-lbla .fx-la-title:not(#fx):not(#fy):not(#fz) { font: 600 22px/1.25 'Playfair Display', serif !important; letter-spacing: .14em !important; text-transform: uppercase !important; color: #1f3550 !important; margin: 0 !important; padding: 0 0 14px !important; position: relative; border: 0 !important; background: none !important; text-align: center !important; }
html body .fx-lbla .fx-la-title:not(#fx):not(#fy):not(#fz)::after { content: ''; position: absolute; left: 50%; bottom: 0; width: 56px; height: 2px; margin-left: -28px; background: #E0B02D; }
html body .fx-lbla .fx-la-sub:not(#fx):not(#fy):not(#fz) { font: 400 14.5px/1.55 'Open Sans', sans-serif !important; color: #4a6179 !important; margin: 14px 6px 0 !important; padding: 0 !important; text-align: center !important; }

/* the old picture and heading in the Already logged in / Check your email states are replaced by the header */
html body .fx-lbla [data-state="logged_in"] .tve_image_caption:not(#fx):not(#fy):not(#fz), html body .fx-lbla [data-state="logged_in"] .thrv_wrapper.thrv_text_element.fx-la-old:not(#fx):not(#fy):not(#fz), html body .fx-lbla [data-state="reset_confirmation"] .fx-la-old:not(#fx):not(#fy):not(#fz), html body .fx-lbla [data-state="forgot_password"] .fx-la-old:not(#fx):not(#fy):not(#fz), html body .fx-lbla [data-state="success"] .fx-la-old:not(#fx):not(#fy):not(#fz) { display: none !important; }

/* tabs Login | Register */
html body .fx-lbla .tve-login-item-wrapper > .thrv-columns.fx-la-tabs:not(#fx):not(#fy):not(#fz) { background: #eef2f9 !important; border-radius: 48px !important; padding: 4px !important; margin: 0 0 22px !important; border: 0 !important; width: 100% !important; box-sizing: border-box !important; }
html body .fx-lbla .tve-login-item-wrapper > .thrv-columns.fx-la-tabs .tcb-flex-row:not(#fx):not(#fy):not(#fz) { margin: 0 !important; padding: 0 !important; flex-wrap: nowrap !important; gap: 0 !important; }
html body .fx-lbla .tve-login-item-wrapper > .thrv-columns.fx-la-tabs .tcb-flex-col:not(#fx):not(#fy):not(#fz) { padding: 0 !important; margin: 0 !important; flex: 1 1 0 !important; min-width: 0 !important; }
html body .fx-lbla .tve-login-item-wrapper > .thrv-columns.fx-la-tabs .tcb-col:not(#fx):not(#fy):not(#fz) { padding: 0 !important; margin: 0 !important; height: auto !important; min-height: 0 !important; }
html body .fx-lbla .tve-login-item-wrapper > .thrv-columns.fx-la-tabs .thrv-button:not(#fx):not(#fy):not(#fz) { margin: 0 !important; padding: 0 !important; width: 100% !important; max-width: none !important; background: none !important; border: 0 !important; box-shadow: none !important; }
html body .fx-lbla .tve-login-item-wrapper > .thrv-columns.fx-la-tabs a.tcb-button-link:not(#fx):not(#fy):not(#fz) {
  display: flex !important; align-items: center !important; justify-content: center !important; gap: 8px !important; height: 42px !important; min-height: 42px !important; padding: 0 8px !important; border-radius: 48px !important; border: 0 !important; box-shadow: none !important; width: 100% !important; box-sizing: border-box !important;
  background: transparent !important; background-image: none !important; color: #2e4a66 !important; text-decoration: none !important; transition: background-color .15s, color .15s;
}
html body .fx-lbla .tve-login-item-wrapper > .thrv-columns.fx-la-tabs a.tcb-button-link *:not(#fx):not(#fy):not(#fz) { font: 500 14.5px 'Open Sans', sans-serif !important; letter-spacing: 0 !important; text-transform: none !important; color: inherit !important; }
html body .fx-lbla .tve-login-item-wrapper > .thrv-columns.fx-la-tabs a.tcb-button-link .thrv_icon:not(#fx):not(#fy):not(#fz), html body .fx-lbla .tve-login-item-wrapper > .thrv-columns.fx-la-tabs a.tcb-button-link svg:not(#fx):not(#fy):not(#fz) { width: 17px !important; height: 17px !important; font-size: 17px !important; color: inherit !important; fill: currentColor !important; margin: 0 !important; }
html body .fx-lbla .tve-login-item-wrapper > .thrv-columns.fx-la-tabs a.tcb-button-link.fx-la-on:not(#fx):not(#fy):not(#fz) { background: #2e4a66 !important; color: #fff !important; box-shadow: 0 2px 8px rgba(31, 53, 80, .25) !important; }
html body .fx-lbla .tve-login-item-wrapper > .thrv-columns.fx-la-tabs a.tcb-button-link:not(.fx-la-on):not(#fx):not(#fy):not(#fz):hover { background: #e0e7f3 !important; }

/* fields */
html body .fx-lbla .tve-login-form-item:not(#fx):not(#fy):not(#fz), html body .fx-lbla .thrv-form-input-wrapper:not(#fx):not(#fy):not(#fz) { margin: 0 0 16px !important; padding: 0 !important; background: none !important; border: 0 !important; width: 100% !important; max-width: none !important; }
html body .fx-lbla .tcb-label:not(#fx):not(#fy):not(#fz) { margin: 0 0 6px !important; padding: 0 !important; background: none !important; }
html body .fx-lbla .tcb-label *:not(#fx):not(#fy):not(#fz) { font: 500 13.5px 'Open Sans', sans-serif !important; color: #1f3550 !important; letter-spacing: 0 !important; text-transform: none !important; }
html body .fx-lbla .tve-login-form-input:not(#fx):not(#fy):not(#fz) { position: relative !important; display: block !important; margin: 0 !important; padding: 0 !important; background: none !important; border: 0 !important; box-shadow: none !important; width: 100% !important; }
html body .fx-lbla .tve-login-form-input input:not(#fx):not(#fy):not(#fz), html body .fx-lbla .tve-login-form-input input:not(#fx):not(#fy):not(#fz):hover {
  width: 100% !important; height: 48px !important; box-sizing: border-box !important; border: 1.5px solid #cfd7e6 !important; border-radius: 10px !important; padding: 0 44px 0 44px !important; margin: 0 !important;
  font: 400 15.5px 'Open Sans', sans-serif !important; color: #1f3550 !important; background: #fff !important; box-shadow: none !important; outline: 0 !important; transition: border-color .15s, box-shadow .15s;
}
html body .fx-lbla .tve-login-form-input input:not(#fx):not(#fy):not(#fz):focus { border-color: #1f86d6 !important; box-shadow: 0 0 0 3px rgba(31, 134, 214, .18) !important; }
html body .fx-lbla .tve-login-form-input .thrv_icon:not(#fx):not(#fy):not(#fz) {
  position: absolute !important; left: 14px !important; right: auto !important; top: 50% !important; margin: -9px 0 0 0 !important; width: 18px !important; height: 18px !important; padding: 0 !important; background: none !important; border: 0 !important; box-shadow: none !important; font-size: 18px !important; line-height: 18px !important; pointer-events: none; z-index: 1; transform: none !important;
}
html body .fx-lbla .tve-login-form-input .thrv_icon svg:not(#fx):not(#fy):not(#fz) { width: 18px !important; height: 18px !important; fill: #7f93ad !important; color: #7f93ad !important; }
html body .fx-lbla .tve-login-form-input.tcb-form-input-error input:not(#fx):not(#fy):not(#fz), html body .fx-lbla .tcb-form-input-error > input:not(#fx):not(#fy):not(#fz), html body .fx-lbla input.tcb-form-input-error:not(#fx):not(#fy):not(#fz) { border-color: #c8453b !important; background: #fdf3f2 !important; }
html body .fx-lbla .tve-login-form-input.tcb-form-input-error .thrv_icon svg:not(#fx):not(#fy):not(#fz) { fill: #c8453b !important; }
/* show / hide password button (added by the JS) */
html body .fx-lbla .fx-la-eye:not(#fx):not(#fy):not(#fz) { position: absolute; right: 6px; top: 50%; margin-top: -18px; width: 36px; height: 36px; border: 0 !important; background: none !important; padding: 0 !important; cursor: pointer; border-radius: 8px; z-index: 2; box-shadow: none !important; }
html body .fx-lbla .fx-la-eye:not(#fx):not(#fy):not(#fz) svg { width: 19px; height: 19px; fill: none; stroke: #7f93ad; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
html body .fx-lbla .fx-la-eye:not(#fx):not(#fy):not(#fz):hover svg { stroke: #2e4a66; }

/* error messages (Thrive adds a span.tcb-form-error under the field) */
html body .fx-lbla .tcb-form-error:not(#fx):not(#fy):not(#fz) {
  display: flex !important; gap: 6px; align-items: flex-start; margin: 6px 2px 0 !important; padding: 0 !important; background: none !important; border: 0 !important;
  font: 500 13px/1.4 'Open Sans', sans-serif !important; color: #b3382f !important; text-align: left !important; letter-spacing: 0 !important;
}
html body .fx-lbla .tcb-form-error:not(#fx):not(#fy):not(#fz)::before { content: ''; flex: none; width: 15px; height: 15px; margin-top: 1px; background: #c8453b; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 7v6M12 17v.01'/%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 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 7v6M12 17v.01'/%3E%3C/svg%3E") center / contain no-repeat; }
html body .fx-lbla .tcb-form-error:not(#fx):not(#fy):not(#fz) *:not(#fx):not(#fy):not(#fz) { font: inherit !important; color: inherit !important; }
html body .fx-lbla .tcb-form-error:not(#fx):not(#fy):not(#fz) a:not(#fx):not(#fy):not(#fz) { color: #2e4a66 !important; font-weight: 500 !important; text-decoration: none !important; border-bottom: 1.5px solid #E0B02D; }
/* a message under the Sign in / Sign up button (wrong password, already registered, ...) becomes a box */
html body .fx-lbla .tar-login-submit .tcb-form-error:not(#fx):not(#fy):not(#fz), html body .fx-lbla .tve-login-form .thrv-button .tcb-form-error:not(#fx):not(#fy):not(#fz) { background: #fdf3f2 !important; border: 1px solid #f0c9c5 !important; border-left: 5px solid #c8453b !important; border-radius: 10px !important; padding: 12px 14px !important; margin: 12px 0 0 !important; color: #8e2c24 !important; font-size: 14px !important; }

/* Remember me + Forgot password row */
html body .fx-lbla .tve-form-drop-zone > .thrv-columns:not(.fx-la-tabs):not(#fx):not(#fy):not(#fz) { margin: 2px 0 20px !important; padding: 0 !important; background: none !important; border: 0 !important; }
html body .fx-lbla .tve-form-drop-zone > .thrv-columns:not(.fx-la-tabs) .tcb-flex-row:not(#fx):not(#fy):not(#fz) { margin: 0 !important; padding: 0 !important; align-items: center !important; flex-wrap: nowrap !important; gap: 8px !important; }
html body .fx-lbla .tve-form-drop-zone > .thrv-columns:not(.fx-la-tabs) .tcb-flex-col:not(#fx):not(#fy):not(#fz) { padding: 0 !important; margin: 0 !important; min-width: 0 !important; }
html body .fx-lbla .tve-form-drop-zone > .thrv-columns:not(.fx-la-tabs) .tcb-col:not(#fx):not(#fy):not(#fz) { padding: 0 !important; margin: 0 !important; height: auto !important; min-height: 0 !important; justify-content: center !important; }
html body .fx-lbla .tcb-remember-me-item:not(#fx):not(#fy):not(#fz) { margin: 0 !important; padding: 0 !important; }
html body .fx-lbla .tcb-remember-me-item *:not(#fx):not(#fy):not(#fz):not(input):not(svg):not(path) { font: 400 14px 'Open Sans', sans-serif !important; color: #1f3550 !important; letter-spacing: 0 !important; }
html body .fx-lbla .tcb-lost-password-link:not(#fx):not(#fy):not(#fz) { margin: 0 !important; padding: 0 !important; text-align: right !important; }
html body .fx-lbla .tcb-lost-password-link p:not(#fx):not(#fy):not(#fz), html body .fx-lbla .tcb-lost-password-link a:not(#fx):not(#fy):not(#fz), html body .fx-lbla .tcb-lost-password-link *:not(#fx):not(#fy):not(#fz) { font: 500 14px 'Open Sans', sans-serif !important; color: #2e4a66 !important; text-align: right !important; letter-spacing: 0 !important; text-decoration: none !important; margin: 0 !important; }
html body .fx-lbla .tcb-lost-password-link a:not(#fx):not(#fy):not(#fz) { border-bottom: 1.5px solid #E0B02D; cursor: pointer; }
html body .fx-lbla .tcb-lost-password-link a:not(#fx):not(#fy):not(#fz):hover { color: #0d1b3e !important; }

/* main button */
html body .fx-lbla .tar-login-submit:not(#fx):not(#fy):not(#fz) { margin: 0 !important; padding: 0 !important; width: 100% !important; max-width: none !important; background: none !important; border: 0 !important; box-shadow: none !important; }
html body .fx-lbla .tar-login-submit a.tcb-button-link:not(#fx):not(#fy):not(#fz) {
  display: flex !important; align-items: center !important; justify-content: center !important; width: 100% !important; box-sizing: border-box !important; height: 50px !important; min-height: 50px !important; padding: 0 20px !important; border: 0 !important; border-radius: 8px !important;
  background: #2e4a66 !important; background-image: none !important; box-shadow: none !important; text-decoration: none !important; transition: background-color .15s;
}
html body .fx-lbla .tar-login-submit a.tcb-button-link:not(#fx):not(#fy):not(#fz):hover { background: #E0B02D !important; }
html body .fx-lbla .tar-login-submit a.tcb-button-link *:not(#fx):not(#fy):not(#fz) { font: 500 15.5px 'Open Sans', sans-serif !important; letter-spacing: .03em !important; text-transform: none !important; color: #fff !important; }
html body .fx-lbla .tar-login-submit a.tcb-button-link .thrv_icon:not(#fx):not(#fy):not(#fz) { display: none !important; }

/* the line under the button ("Don't have an account yet? Sign up", "Back to login") */
html body .fx-lbla .tve-form-drop-zone > .thrv_text_element:last-of-type:not(.tcb-label):not(#fx):not(#fy):not(#fz), html body .fx-lbla .fx-la-foot:not(#fx):not(#fy):not(#fz) { margin: 20px 0 0 !important; padding: 0 !important; text-align: center !important; }
html body .fx-lbla .tve-form-drop-zone .thrv_text_element:not(.tcb-label):not(.tcb-lost-password-link) p:not(#fx):not(#fy):not(#fz), html body .fx-lbla .fx-la-foot p:not(#fx):not(#fy):not(#fz) { font: 400 14px/1.5 'Open Sans', sans-serif !important; color: #4a6179 !important; text-align: center !important; margin: 0 !important; padding: 0 !important; }
html body .fx-lbla .tve-form-drop-zone .thrv_text_element:not(.tcb-lost-password-link) p a:not(#fx):not(#fy):not(#fz), html body .fx-lbla .tve-form-drop-zone .thrv_text_element:not(.tcb-lost-password-link) p a *:not(#fx):not(#fy):not(#fz) { font: 500 14px 'Open Sans', sans-serif !important; color: #2e4a66 !important; text-decoration: none !important; }
html body .fx-lbla .tve-form-drop-zone .thrv_text_element:not(.tcb-lost-password-link) p a:not(#fx):not(#fy):not(#fz) { border-bottom: 1.5px solid #E0B02D; }
html body .fx-lbla .tve-form-drop-zone .thrv_text_element:not(.tcb-lost-password-link) p a:not(#fx):not(#fy):not(#fz):hover { color: #0d1b3e !important; }
html body .fx-lbla .fx-la-old:not(#fx):not(#fy):not(#fz) { display: none !important; }

/* text blocks in Forgot / Check your email / Already logged in */
html body .fx-lbla [data-state="forgot_password"] .thrv_text_element:not(.tcb-label) p:not(#fx):not(#fy):not(#fz), html body .fx-lbla [data-state="reset_confirmation"] .thrv_text_element:not(.tcb-label) p:not(#fx):not(#fy):not(#fz), html body .fx-lbla [data-state="logged_in"] .thrv_text_element:not(.tcb-label) p:not(#fx):not(#fy):not(#fz), html body .fx-lbla [data-state="success"] .thrv_text_element:not(.tcb-label) p:not(#fx):not(#fy):not(#fz) { font: 400 15px/1.6 'Open Sans', sans-serif !important; color: #2e4a66 !important; text-align: center !important; margin: 8px 0 !important; }
html body .fx-lbla [data-state="logged_in"] .tar-login-submit a.tcb-button-link:not(#fx):not(#fy):not(#fz) { background: #fff !important; border: 1.5px solid #cfd7e6 !important; }
html body .fx-lbla [data-state="logged_in"] .tar-login-submit a.tcb-button-link *:not(#fx):not(#fy):not(#fz) { color: #2e4a66 !important; }
html body .fx-lbla [data-state="logged_in"] .tar-login-submit a.tcb-button-link:not(#fx):not(#fy):not(#fz):hover { background: #eef2f9 !important; border-color: #b8c5da !important; }
/* the Go to Streaming Access button added by the JS */
html body .fx-lbla .fx-la-go:not(#fx):not(#fy):not(#fz) { display: flex; align-items: center; justify-content: center; width: 100%; height: 50px; box-sizing: border-box; margin: 22px 0 12px; border-radius: 8px; background: #2e4a66; color: #fff !important; font: 500 15.5px 'Open Sans', sans-serif; letter-spacing: .03em; text-decoration: none !important; transition: background-color .15s; }
html body .fx-lbla .fx-la-go:not(#fx):not(#fy):not(#fz):hover { background: #E0B02D; color: #fff !important; }
html body .fx-lbla .fx-la-badge:not(#fx):not(#fy):not(#fz) { width: 64px; height: 64px; border-radius: 50%; margin: 0 auto 14px; display: flex; align-items: center; justify-content: center; }
html body .fx-lbla .fx-la-badge:not(#fx):not(#fy):not(#fz) svg { width: 30px; height: 30px; fill: none; stroke: #fff; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
html body .fx-lbla .fx-la-badge.ok:not(#fx):not(#fy):not(#fz) { background: #2e8b57; }
html body .fx-lbla .fx-la-badge.mail:not(#fx):not(#fy):not(#fz) { background: #1f86d6; }

/* Thrive draws the coloured tab background in a ::before layer: take it away, the pills above supply the colour */
html body .fx-lbla .tve-login-item-wrapper > .thrv-columns.fx-la-tabs a.tcb-button-link:not(#fx):not(#fy):not(#fz)::before, html body .fx-lbla .tve-login-item-wrapper > .thrv-columns.fx-la-tabs a.tcb-button-link:not(#fx):not(#fy):not(#fz)::after, html body .fx-lbla .tve-login-item-wrapper > .thrv-columns.fx-la-tabs .thrv-button:not(#fx):not(#fy):not(#fz)::before, html body .fx-lbla .tve-login-item-wrapper > .thrv-columns.fx-la-tabs .thrv-button:not(#fx):not(#fy):not(#fz)::after { background: transparent !important; background-image: none !important; opacity: 0 !important; }
/* tab icon sits next to its word */
html body .fx-lbla .fx-la-tabs a.tcb-button-link:not(#fx):not(#fy):not(#fz) .tcb-button-icon, html body .fx-lbla .fx-la-tabs a.tcb-button-link:not(#fx):not(#fy):not(#fz) .tcb-button-texts { flex: none !important; width: auto !important; margin: 0 !important; padding: 0 !important; max-width: none !important; }
/* Remember me tick box: white, navy when ticked */
html body .fx-lbla .tcb-remember-me-item .tve-checkmark:not(#fx):not(#fy):not(#fz) { width: 20px !important; height: 20px !important; border-radius: 6px !important; background: #fff !important; border: 1.5px solid #cfd7e6 !important; box-sizing: border-box !important; }
html body .fx-lbla .tcb-remember-me-item .tve-checkbox-grid:has(input:checked) .tve-checkmark:not(#fx):not(#fy):not(#fz) { background: #2e4a66 !important; border-color: #2e4a66 !important; }
@media (max-width: 480px) {
  html body .fx-lbla .tcb-login-form-wrapper:not(#fx):not(#fy):not(#fz) { padding: 30px 18px 22px !important; }
  html body .fx-lbla .tve_p_lb_content:not(#fx):not(#fy):not(#fz) { width: calc(100vw - 16px) !important; }
}
@media (max-width: 380px) {
  html body .fx-lbla .fx-la-title:not(#fx):not(#fy):not(#fz) { font-size: 17px !important; letter-spacing: .1em !important; }
  html body .fx-lbla .fx-la-logo:not(#fx):not(#fy):not(#fz) { width: 54px; }
  html body .fx-lbla .tve_p_lb_close:not(#fx):not(#fy):not(#fz) { top: 10px !important; right: 10px !important; width: 34px !important; height: 34px !important; }
}
/* ===== END 2026 - Lightbox Login Register CSS ===== */

/* Selected tab pill: Thrive's script sets an inline "background-color: var(--tcb-color-4) !important" (bright blue) on the active tab link.
   An inline !important cannot be beaten by a normal rule, so we change the colour the variable resolves to. */
html body .fx-lbla .tve-login-item-wrapper > .thrv-columns.fx-la-tabs a.tcb-button-link:not(#fx):not(#fy):not(#fz) { --tcb-color-4: #2e4a66 !important; --tcb-local-color-c413d: #2e4a66 !important; }

/* "Already have an account? Sign In" / "Don't have an account yet? Create one" - Thrive puts this line outside the form area (.tar-login-elem-link) */
html body .fx-lbla .tcb-login-form-wrapper .tar-login-elem-link:not(#fx):not(#fy):not(#fz) { margin: 20px 0 0 !important; padding: 0 !important; text-align: center !important; width: 100% !important; }
html body .fx-lbla .tcb-login-form-wrapper .tar-login-elem-link p:not(#fx):not(#fy):not(#fz) { font: 400 14px/1.5 'Open Sans', sans-serif !important; letter-spacing: 0 !important; text-transform: none !important; color: #4a6179 !important; text-align: center !important; margin: 0 !important; padding: 0 !important; }
html body .fx-lbla .tcb-login-form-wrapper .tar-login-elem-link p a:not(#fx):not(#fy):not(#fz), html body .fx-lbla .tcb-login-form-wrapper .tar-login-elem-link p a *:not(#fx):not(#fy):not(#fz) { font: 500 14px 'Open Sans', sans-serif !important; letter-spacing: 0 !important; text-transform: none !important; color: #2e4a66 !important; text-decoration: none !important; }
html body .fx-lbla .tcb-login-form-wrapper .tar-login-elem-link p a:not(#fx):not(#fy):not(#fz) { border-bottom: 1.5px solid #E0B02D !important; padding-bottom: 1px !important; }
html body .fx-lbla .tcb-login-form-wrapper .tar-login-elem-link p a:not(#fx):not(#fy):not(#fz):hover, html body .fx-lbla .tcb-login-form-wrapper .tar-login-elem-link p a:not(#fx):not(#fy):not(#fz):hover * { color: #0d1b3e !important; }

/* Tab strip: Thrive caps it at a fixed max-width on the Register state, so it came out narrower than the fields - always full width */
html body .fx-lbla .tve-login-item-wrapper > .thrv-columns.fx-la-tabs:not(#fx):not(#fy):not(#fz) { max-width: none !important; width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; box-sizing: border-box !important; }

/* Remember me + Forgot password row: Thrive gives each column a 400px basis which pushed Forgot password off the right edge on phones */
html body .fx-lbla .tve-form-drop-zone > .thrv-columns:not(.fx-la-tabs) .tcb-flex-row:not(#fx):not(#fy):not(#fz) { display: flex !important; flex-wrap: nowrap !important; width: 100% !important; margin: 0 !important; align-items: center !important; }
html body .fx-lbla .tve-form-drop-zone > .thrv-columns:not(.fx-la-tabs) .tcb-flex-col:not(#fx):not(#fy):not(#fz) { flex: 1 1 0 !important; flex-basis: 0 !important; width: auto !important; max-width: none !important; min-width: 0 !important; }
html body .fx-lbla .tve-form-drop-zone > .thrv-columns:not(.fx-la-tabs) .tcb-flex-col:last-child:not(#fx):not(#fy):not(#fz) { flex: 0 0 auto !important; }
html body .fx-lbla .tve-form-drop-zone > .thrv-columns:not(.fx-la-tabs) .tcb-lost-password-link:not(#fx):not(#fy):not(#fz) { white-space: nowrap !important; width: auto !important; }

/* Never run off the bottom of the screen: the dark overlay scrolls, with even space above and below the panel */
html body .fx-lbla .tve_p_lb_background:not(#fx):not(#fy):not(#fz) { padding: 40px 12px !important; overflow-y: auto !important; overflow-x: hidden !important; -webkit-overflow-scrolling: touch; box-sizing: border-box !important; max-height: 100vh !important; }
@media (max-width: 480px) { html body .fx-lbla .tve_p_lb_background:not(#fx):not(#fy):not(#fz) { padding: 16px 8px !important; } }

/* Password strength meter: Thrive drew four grey blocks on top of the show/hide eye - move them to a slim bar under the field */
html body .fx-lbla .tve-login-form-item:has(.tve-password-strength-wrapper):not(#fx):not(#fy):not(#fz) { margin-bottom: 24px !important; }
html body .fx-lbla .tve-password-strength-wrapper:not(#fx):not(#fy):not(#fz) { position: absolute !important; left: 2px !important; right: 2px !important; top: 100% !important; bottom: auto !important; margin: 6px 0 0 !important; width: auto !important; height: 5px !important; display: flex !important; gap: 5px !important; align-items: center !important; transform: none !important; }
html body .fx-lbla .tve-password-strength:not(#fx):not(#fy):not(#fz) { flex: 1 1 0 !important; width: auto !important; height: 5px !important; margin: 0 !important; border-radius: 3px !important; }
html body .fx-lbla .tve-password-strength-icon:not(#fx):not(#fy):not(#fz), html body .fx-lbla .tve-password-strength-text:not(#fx):not(#fy):not(#fz) { display: none !important; }

/* Fields without an icon (Forgot password email) should not keep the icon indent */
html body .fx-lbla .tve-login-form-input:not(:has(.thrv_icon)) input:not(#fx):not(#fy):not(#fz) { padding-left: 14px !important; }

/* Error messages: normal text flow (so a link inside the sentence does not split the line); icon positioned at the left */
html body .fx-lbla .tcb-form-error:not(#fx):not(#fy):not(#fz) { display: block !important; position: relative !important; padding: 0 0 0 21px !important; }
html body .fx-lbla .tcb-form-error:not(#fx):not(#fy):not(#fz)::before { position: absolute; left: 0; top: 2px; margin: 0; }
html body .fx-lbla .tar-login-submit .tcb-form-error:not(#fx):not(#fy):not(#fz), html body .fx-lbla .tve-login-form .thrv-button .tcb-form-error:not(#fx):not(#fy):not(#fz) { padding: 12px 14px 12px 38px !important; line-height: 1.5 !important; }
html body .fx-lbla .tar-login-submit .tcb-form-error:not(#fx):not(#fy):not(#fz)::before, html body .fx-lbla .tve-login-form .thrv-button .tcb-form-error:not(#fx):not(#fy):not(#fz)::before { left: 14px; top: 14px; }

/* Messages that used to sit inside the Sign In button (wrong password, already registered, ...) are moved out by the JS and shown as a box under it */
html body .fx-lbla .tcb-form-error.fx-la-alert:not(#fx):not(#fy):not(#fz) { display: block !important; position: relative !important; background: #fdf3f2 !important; border: 1px solid #f0c9c5 !important; border-left: 5px solid #c8453b !important; border-radius: 10px !important; padding: 12px 14px 12px 38px !important; margin: 12px 0 0 !important; color: #8e2c24 !important; font-size: 14px !important; line-height: 1.5 !important; text-align: left !important; width: auto !important; }
html body .fx-lbla .tcb-form-error.fx-la-alert:not(#fx):not(#fy):not(#fz)::before { position: absolute; left: 14px; top: 14px; margin: 0; }

/* Short screens (laptops, landscape phones): tighten the spacing so the whole form, especially Register, fits without scrolling */
@media (max-height: 900px) {
  html body .fx-lbla .tve_p_lb_background:not(#fx):not(#fy):not(#fz) { padding-top: 12px !important; padding-bottom: 12px !important; }
  html body .fx-lbla .tcb-login-form-wrapper:not(#fx):not(#fy):not(#fz) { padding-top: 20px !important; padding-bottom: 16px !important; }
  html body .fx-lbla .fx-la-head:not(#fx):not(#fy):not(#fz) { margin-bottom: 10px !important; }
  html body .fx-lbla .fx-la-logo:not(#fx):not(#fy):not(#fz) { width: 46px; margin-bottom: 6px; }
  html body .fx-lbla .fx-la-title:not(#fx):not(#fy):not(#fz) { padding-bottom: 10px !important; }
  html body .fx-lbla .fx-la-sub:not(#fx):not(#fy):not(#fz) { margin-top: 8px !important; }
  html body .fx-lbla .tve-login-item-wrapper > .thrv-columns.fx-la-tabs:not(#fx):not(#fy):not(#fz) { margin-bottom: 12px !important; }
  html body .fx-lbla .tve-login-form-item:not(#fx):not(#fy):not(#fz), html body .fx-lbla .thrv-form-input-wrapper:not(#fx):not(#fy):not(#fz) { margin-bottom: 9px !important; }
  html body .fx-lbla .tcb-label:not(#fx):not(#fy):not(#fz) { margin-bottom: 4px !important; }
  html body .fx-lbla .tcb-login-form-wrapper .tar-login-elem-link:not(#fx):not(#fy):not(#fz) { margin-top: 12px !important; }
}

/* Balance long titles ("You are already logged in") so a single word never sits alone on the second line */
html body .fx-lbla .fx-la-title:not(#fx):not(#fy):not(#fz) { text-wrap: balance; }
html body .fx-lbla [data-state="logged_in"] .tcb-login-form-wrapper .thrv_text_element:empty, html body .fx-lbla [data-state="reset_confirmation"] .thrv_text_element:empty { display: none !important; }

/* ---- SOURCE #91004 ---- */
/* ===== 2026 - STREAMING ACCESS: BIGGER BUTTONS + SLATE PODCAST (added 2026-10-15, slate confirmed) =====
   Paste at the very END of the CSS snippet "2026 - Streaming Access" (after its last line), then save and hard refresh.
   - Category buttons: 56px tall (52px on phones), bigger text, and the SAME size whether 2 or 4 are showing.
     Desktop 200px wide; tablet shrinks evenly so all four fit on one row; phones use the 2-column grid.
   - Sub-category buttons: 46px tall, 190px wide (2-column grid on phones; a lone last button spans the row).
   - Podcast accent color changed from rust #b4531a to Slate #5a6b7d (button, card top bar, sub-tab bar, empty-message icon).
   - Protected-page Podcast titles are NOT changed here (done later with the protected pages redesign). */

html body.page-id-90494 .fx-sa-tabs .fx-sa-cats{gap:14px}
html body.page-id-90494 .fx-sa-tabs button.fx-sa-cat.fx-sa-cat{width:min(200px,calc((100% - 42px)/4));height:56px;padding:0 12px;font-size:17px !important}

html body.page-id-90494 .fx-sa-tabs .fx-sa-subs{gap:8px;padding:8px}
html body.page-id-90494 .fx-sa-tabs button.fx-sa-sub.fx-sa-sub{width:190px;height:46px;padding:0 16px;justify-content:center;font-size:15px !important}

/* Slate for Podcast (doubled class so it wins no matter where this sits in the snippet) */
html body.page-id-90494 .fx-sa-tabs.fx-sa-tabs[data-cat="podcast"]{--fx-accent:#5a6b7d;--fx-tint:#e8edf1}
html body.page-id-90494 .fx-sa-tabs.fx-sa-tabs button.fx-sa-cat[data-cat="podcast"]{--c:#5a6b7d}
html body.page-id-90494 .fx-sa-tabs.fx-sa-tabs[data-cat="podcast"] .wc-ppp-purchased-container > p::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%235a6b7d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 18v-6a9 9 0 0118 0v6'/%3E%3Cpath d='M21 19a2 2 0 01-2 2h-1v-6h3zM3 19a2 2 0 002 2h1v-6H3z'/%3E%3C/svg%3E")}

@media (max-width:720px){
  html body.page-id-90494 .fx-sa-tabs button.fx-sa-cat.fx-sa-cat{width:100%;height:52px;font-size:16px !important}
  html body.page-id-90494 .fx-sa-tabs .fx-sa-subs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
  html body.page-id-90494 .fx-sa-tabs button.fx-sa-sub.fx-sa-sub{width:100%;height:46px;padding:0 8px}
  html body.page-id-90494 .fx-sa-tabs .fx-sa-subs .fx-sa-sub:last-child:nth-child(odd){grid-column:1 / -1}
}
/* ===== END 2026 - STREAMING ACCESS: BIGGER BUTTONS + SLATE PODCAST ===== */

/* ---- SOURCE #90884 ---- */
/* ===== 2026 - Order Refund Row CSS (front end, My Account order pages) =====
   Refunded orders: the "Refund:" line in the order totals had the reason ("Test Purchase") dropped under the amount by a line break,
   which made the row tall and uneven. Now the row stays on one horizontal line: "Refund:" on the left, then on the right the
   reason (small, grey) next to the amount, with the amount lined up with the other totals. Only rows that have a reason are touched;
   all other total rows are unchanged. */
html body .woocommerce-table--order-details tfoot td:has(> small):not(#fx) {
  text-align: right !important;
}
@media (min-width: 601px) {
  /* tablet and desktop: the totals column is wide enough for the reason and the amount on one line */
  html body .woocommerce-table--order-details tfoot td:has(> small):not(#fx) {
    white-space: nowrap !important;
    min-width: 270px !important;
  }
}
html body .woocommerce-table--order-details tfoot td:has(> small) > br:not(#fx) {
  display: none !important;
}
html body .woocommerce-table--order-details tfoot td:has(> small) > .amount:not(#fx) {
  float: right !important;
  white-space: nowrap !important;
}
html body .woocommerce-table--order-details tfoot td:has(> small) > small:not(#fx) {
  float: right !important;
  margin: 3px 10px 0 0 !important;
  font-size: 12px !important;
  line-height: 1.3 !important;
  color: #6b7690 !important;
  text-align: right !important;
}
html body .woocommerce-table--order-details tfoot td:has(> small):not(#fx)::after {
  content: "" !important;
  display: block !important;
  clear: both !important;
}
/* ===== END 2026 - Order Refund Row CSS ===== */

/* ---- SOURCE #90880 ---- */
/* ===== 2026 - Order Gift Card CSS (front end, My Account order pages) =====
   Gift card orders only (the item is marked by "2026 Order Item Meta", which adds an empty span.fx-gc to the Gift Card line).
   The To / From / Gift Card lines under the item name are shown as one tidy card: small gold label, value next to it
   (stacked on phones, so the e-mail address fits on one line and the page never slides sideways).
   Other order types are not touched. */
html body .woocommerce-table--order-details td.product-name ul.wc-item-meta:has(.fx-gc):not(#fx) {
  list-style: none !important;
  display: block !important;
  box-sizing: border-box !important;
  max-width: 520px !important;
  margin: 10px 0 6px 0 !important;
  padding: 2px 16px !important;
  background: #f6f8fd !important;
  border: 1px solid #dfe4f2 !important;
  border-left: 3px solid #E0B02D !important;
  border-radius: 10px !important;
}
html body .woocommerce-table--order-details td.product-name ul.wc-item-meta:has(.fx-gc) li:not(#fx) {
  display: grid !important;
  grid-template-columns: 96px minmax(0, 1fr) !important;
  align-items: baseline !important;
  column-gap: 12px !important;
  margin: 0 !important;
  padding: 9px 0 !important;
  list-style: none !important;
  border: 0 !important;
  border-bottom: 1px solid #e6eaf5 !important;
}
html body .woocommerce-table--order-details td.product-name ul.wc-item-meta:has(.fx-gc) li:last-child:not(#fx) {
  border-bottom: 0 !important;
}
html body .woocommerce-table--order-details td.product-name ul.wc-item-meta:has(.fx-gc) li .wc-item-meta-label:not(#fx) {
  display: block !important;
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  line-height: 1.4 !important;
  color: #8a6212 !important;
}
html body .woocommerce-table--order-details td.product-name ul.wc-item-meta:has(.fx-gc) li p:not(#fx) {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;
  color: #2b3550 !important;
  overflow-wrap: anywhere;
  word-break: normal !important;
}
/* safety net: if any link still appears in this block it looks and acts like plain text */
html body .woocommerce-table--order-details td.product-name ul.wc-item-meta:has(.fx-gc) li p a:not(#fx) {
  color: inherit !important;
  text-decoration: none !important;
  pointer-events: none !important;
  cursor: text !important;
}
@media (max-width: 600px) {
  html body .woocommerce-table--order-details td.product-name ul.wc-item-meta:has(.fx-gc):not(#fx) {
    max-width: none !important;
    margin-right: -80px !important;   /* use the space the phone layout keeps free on the right for the price */
  }
  html body .woocommerce-table--order-details td.product-name ul.wc-item-meta:has(.fx-gc) li:not(#fx) {
    grid-template-columns: minmax(0, 1fr) !important;
    row-gap: 2px !important;
  }
}
/* ===== END 2026 - Order Gift Card CSS ===== */

/* ---- SOURCE #90602 ---- */
/* ===== 2026 - Notices Fix (messages on product / shop pages) =====
   Cart, checkout and My Account keep their own styling. Everywhere else, WooCommerce messages
   use the 2026 look (green = success, yellow = info, red = error). */
html body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account) :is(.woocommerce-message, .woocommerce-info, ul.woocommerce-error) {
  display: flex !important; flex-wrap: wrap; align-items: center; gap: 12px; box-sizing: border-box;
  margin: 0 0 20px !important; padding: 16px 20px !important; list-style: none !important;
  background: #e8f6ec !important; background-image: none !important; color: #2b3550 !important;
  border: 1px solid #b7e0c2 !important; border-left: 5px solid #14632D !important; border-radius: 12px !important; box-shadow: none !important;
  font-family: 'Open Sans', sans-serif !important; font-size: 15px !important; font-weight: 400 !important; line-height: 1.5 !important;
}
html body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account) :is(.woocommerce-message, .woocommerce-info, ul.woocommerce-error)::before {
  content: "" !important; position: static !important; flex: 0 0 24px; width: 24px; height: 24px; margin: 0 !important; padding: 0 !important;
  font-family: inherit !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='%2314632D' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M8 12.5l3 3 5-6'/%3E%3C/svg%3E") center / 24px 24px no-repeat !important;
}
html body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account) .woocommerce-info {
  background: #fff6dc !important; border-color: #f0d48a !important; border-left-color: #E0B02D !important;
}
html body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account) .woocommerce-info::before {
  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:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account) ul.woocommerce-error {
  background: #fdeceb !important; border-color: #f3b9b4 !important; border-left-color: #b42318 !important;
}
html body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account) ul.woocommerce-error::before {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b42318' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 8v5M12 16v.5'/%3E%3C/svg%3E") center / 24px 24px no-repeat !important;
}
html body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account) ul.woocommerce-error li { flex: 1 1 240px; min-width: 0; margin: 0 !important; padding: 0 !important; list-style: none !important; color: #2b3550 !important; }
html body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account) :is(.woocommerce-message, .woocommerce-info) a:not(.button) { color: #2e4a66 !important; font-weight: 600 !important; text-decoration: underline !important; }
html body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account) :is(.woocommerce-message, .woocommerce-info) a:not(.button):hover { color: #c99a1f !important; }
html body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account) :is(.woocommerce-message, .woocommerce-info) a.button {
  order: 2; margin-left: auto !important; height: 40px; display: inline-flex; align-items: center; padding: 0 18px !important;
  background: #2e4a66 !important; background-image: none !important; color: #fff !important; border: 0 !important; border-radius: 8px !important; box-shadow: none !important; font-weight: 400 !important; text-decoration: none !important;
}
html body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account) :is(.woocommerce-message, .woocommerce-info) a.button:hover { background: #E0B02D !important; color: #fff !important; }
/* ===== END 2026 - Notices Fix ===== */



/* ---- SOURCE #90594 ---- */
/* ===== 2026 - SIDE CART PANEL CSS (load on the whole site) =====
   Navy #2e4a66, gold #E0B02D, lavender #F4F4FC, Playfair Display titles, Open Sans body.
   Open Sans is loaded at 400, 500 and 700 only (600 would show as 700). */

/* the old plugin's own slide-out (hidden so the two never fight; remove once the plugin is deleted) */
.wpmenucart-slideout { display: none !important; }

html.fx-mc-lock { overflow: hidden; }
.fx-mc-panel:focus { outline: none; }

.fx-mc-overlay {
  position: fixed; inset: 0; z-index: 99990;
  background: rgba(31, 53, 80, 0.45);
  opacity: 0; visibility: hidden;
  transition: opacity .3s ease, visibility 0s linear .3s;
}
.fx-mc-overlay.is-open { opacity: 1; visibility: visible; transition: opacity .3s ease; }

.fx-mc-panel {
  position: fixed; top: 0; right: 0; bottom: 0; z-index: 99991;
  display: flex; flex-direction: column;
  background: #F4F4FC;
  box-shadow: -12px 0 40px rgba(46, 74, 102, 0.22);
  font-family: 'Open Sans', sans-serif; color: #2b3550;
  transform: translateX(105%); visibility: hidden;
  transition: transform .32s cubic-bezier(.22, .8, .3, 1), visibility 0s linear .32s;
}
body.admin-bar .fx-mc-panel { top: 32px; }
@media (max-width: 782px) { body.admin-bar .fx-mc-panel { top: 46px; } }
.fx-mc-panel.is-open { transform: translateX(0); visibility: visible; transition: transform .32s cubic-bezier(.22, .8, .3, 1); }

/* header */
.fx-mc-head {
  display: flex; align-items: center; gap: 12px;
  padding: 18px 20px; background: linear-gradient(135deg, #2e4a66, #1f3550);
  border-bottom: 3px solid #E0B02D;
}
.fx-mc-panel .fx-mc-title {
  margin: 0 !important; padding: 0 !important; flex: 1 1 auto;
  font-family: 'Playfair Display', serif !important; font-weight: 600 !important; font-size: 24px !important;
  line-height: 1.2 !important; color: #fff !important; text-transform: none !important; letter-spacing: 0 !important;
}
.fx-mc-count {
  font-size: 12px; font-weight: 700; color: #2e4a66; background: #fff;
  border-radius: 999px; padding: 5px 12px; white-space: nowrap;
}
.fx-mc-panel .fx-mc-close {
  flex: 0 0 auto; width: 38px; height: 38px; padding: 0 !important; margin: 0 !important;
  display: inline-flex; align-items: center; justify-content: center;
  border: 0 !important; border-radius: 50% !important; cursor: pointer;
  background: rgba(255, 255, 255, 0.14) !important; color: #fff !important; box-shadow: none !important;
  transition: background .2s ease;
}
.fx-mc-panel .fx-mc-close:hover, .fx-mc-panel .fx-mc-close:focus-visible { background: #E0B02D !important; color: #fff !important; outline: none; }

/* body / list */
.fx-mc-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 16px 16px 8px; scrollbar-width: thin; scrollbar-color: #2e4a66 #e6eefb; }
.fx-mc-body::-webkit-scrollbar { width: 8px; }
.fx-mc-body::-webkit-scrollbar-track { background: #e6eefb; border-radius: 4px; }
.fx-mc-body::-webkit-scrollbar-thumb { background: #2e4a66; border-radius: 4px; }
.fx-mc-body::-webkit-scrollbar-thumb:hover { background: #E0B02D; }
.fx-mc-list { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.fx-mc-item {
  display: flex; align-items: center; gap: 12px;
  margin: 0 0 12px !important; padding: 12px !important; list-style: none !important;
  background: #fff; border-radius: 14px; box-shadow: 0 6px 18px rgba(46, 74, 102, 0.08);
  transition: opacity .2s ease, transform .2s ease;
}
.fx-mc-item::before, .fx-mc-item::marker { content: none !important; }
.fx-mc-item.is-removing { opacity: 0; transform: translateX(24px); pointer-events: none; }
.fx-mc-img { flex: 0 0 64px; width: 64px; height: 64px; display: block; border-radius: 8px; overflow: hidden; background: #e6eefb; }
.fx-mc-img img { display: block; width: 64px !important; height: 64px !important; max-width: none !important; object-fit: fill; border: 0 !important; border-radius: 0 !important; }
.fx-mc-info { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.fx-mc-panel .fx-mc-name {
  font-family: 'Open Sans', sans-serif !important; font-size: 14px !important; font-weight: 500 !important; line-height: 1.35 !important;
  color: #2e4a66 !important; text-decoration: none !important;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere;
}
.fx-mc-panel .fx-mc-name em, .fx-mc-panel .fx-mc-name i { font-weight: 500 !important; font-style: italic !important; }
.fx-mc-panel a.fx-mc-name:hover { color: #c99a1f !important; }
/* category pills (same colours as the cart page) */
.fx-mc-panel .fx-tag { align-self: flex-start; display: inline-block; font-size: 10.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; line-height: 1.3; border-radius: 999px; padding: 3px 9px; }
.fx-mc-panel .fx-tag-audio { color: #2e5fa8; background: #e6eefb; }
.fx-mc-panel .fx-tag-video { color: #7a3fa0; background: #f1e9f8; }
.fx-mc-panel .fx-tag-staff { color: #0f7a6d; background: #e3f4f1; }
.fx-mc-panel .fx-tag-podcast { color: #b4531a; background: #fbece2; }
.fx-mc-meta { font-size: 12.5px; color: #6b7a90; }
.fx-mc-side { flex: 0 0 auto; display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
.fx-mc-line { font-size: 15px; font-weight: 700; color: #2e4a66; white-space: nowrap; }
.fx-mc-panel .fx-mc-rm {
  width: 30px; height: 30px; padding: 0 !important; margin: 0 !important;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid #dfe4f2 !important; border-radius: 50% !important; cursor: pointer;
  background: #fff !important; color: #8a94ad !important; box-shadow: none !important;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
/* same red as the remove button on the /cart page */
.fx-mc-panel .fx-mc-rm:hover, .fx-mc-panel .fx-mc-rm:focus-visible { border-color: #b42318 !important; background: #fdeceb !important; color: #b42318 !important; outline: none; }
.fx-mc-note { display: none; margin: 0 0 12px; padding: 10px 12px; border-radius: 10px; background: #fdecec; border: 1px solid #f3b4b4; color: #9b1c1c; font-size: 13px; }

/* footer */
.fx-mc-foot { flex: 0 0 auto; padding: 14px 16px 18px; background: #fff; border-top: 1px solid #e3e8f2; box-shadow: 0 -8px 20px rgba(46, 74, 102, 0.06); }
.fx-mc-total { display: flex; justify-content: space-between; align-items: baseline; margin: 0 2px 12px; }
.fx-mc-total-l { font-family: 'Playfair Display', serif; font-size: 18px; font-weight: 600; color: #2e4a66; }
.fx-mc-total-v { font-size: 20px; font-weight: 700; color: #2e4a66; }
.fx-mc-panel .fx-mc-btn {
  display: flex; align-items: center; justify-content: center; box-sizing: border-box;
  height: 48px; margin: 0 0 10px !important; padding: 0 20px !important;
  background: #2e4a66 !important; background-image: none !important; color: #fff !important; border: 0 !important; border-radius: 12px !important;
  font-family: 'Open Sans', sans-serif !important; font-size: 16px !important; font-weight: 500 !important;
  text-decoration: none !important; text-transform: none !important; letter-spacing: 0 !important; box-shadow: none !important;
  transition: background .2s ease;
}
.fx-mc-panel .fx-mc-btn:last-of-type { margin-bottom: 0 !important; }
.fx-mc-foot.has-cont .fx-mc-btn:last-of-type { margin-bottom: 4px !important; }
.fx-mc-panel .fx-mc-cont { display: none; width: 100%; margin: 0 !important; padding: 8px 4px !important; background: none !important; background-image: none !important; border: 0 !important; border-radius: 6px !important; box-shadow: none !important; color: #2e4a66 !important; font-family: 'Open Sans', sans-serif !important; font-size: 14px !important; font-weight: 400 !important; line-height: 1.2 !important; letter-spacing: 0 !important; text-transform: none !important; text-align: center; text-decoration: underline !important; text-underline-offset: 3px; cursor: pointer; transition: color .2s ease; }
.fx-mc-panel .fx-mc-cont.is-on { display: block; }
.fx-mc-panel .fx-mc-cont:hover, .fx-mc-panel .fx-mc-cont:focus-visible { color: #c99a1f !important; background: none !important; outline: none; }
.fx-mc-panel .fx-mc-btn:hover, .fx-mc-panel .fx-mc-btn:focus-visible { background: #E0B02D !important; background-image: none !important; color: #fff !important; outline: none; }

/* round cart button: always fully visible, on the menu row, 10-20px from the right edge */
.fx-mc-tab {
  position: fixed; top: 60px; z-index: 99989;
  right: calc(env(safe-area-inset-right, 0px) + clamp(10px, 2vw, 20px));
  width: 54px; height: 54px; margin: 0 !important; padding: 0 !important;
  display: flex; align-items: center; justify-content: center;
  border: 0 !important; border-radius: 50% !important; cursor: pointer;
  background: #2e4a66 !important; color: #fff !important;
  box-shadow: 0 8px 22px rgba(46, 74, 102, 0.3) !important;
  transition: background .2s ease, color .2s ease, opacity .2s ease, transform .2s ease;
  -webkit-tap-highlight-color: transparent;
}
.fx-mc-tab:hover, .fx-mc-tab:focus-visible { background: #E0B02D !important; color: #fff !important; outline: none; }
.fx-mc-tab:active { transform: scale(.94); }
/* over a navy banner (the Video product page): white button, navy cart */
.fx-mc-tab.is-inv { background: #fff !important; color: #2e4a66 !important; box-shadow: 0 8px 22px rgba(0, 0, 0, 0.28) !important; }
.fx-mc-tab.is-inv:hover, .fx-mc-tab.is-inv:focus-visible { background: #E0B02D !important; color: #fff !important; }
.fx-mc-tab.fx-mc-inline { position: absolute !important; right: auto; box-shadow: 0 4px 12px rgba(46, 74, 102, 0.28) !important; }
.fx-mc-tab.fx-mc-inline .fx-mc-tab-ic svg { width: 17px; height: 15px; }
.fx-mc-tab.is-hidden { opacity: 0; pointer-events: none; }
.fx-mc-tab-ic { display: inline-flex; }
.fx-mc-badge {
  position: absolute; top: -4px; left: -4px; min-width: 22px; height: 22px; padding: 0 5px; box-sizing: border-box;
  border-radius: 999px; background: #E0B02D; color: #fff; font: 700 12px/18px 'Open Sans', sans-serif; text-align: center;
  border: 2px solid #fff;
}
.fx-mc-tab:hover .fx-mc-badge, .fx-mc-tab:focus-visible .fx-mc-badge { background: #2e4a66; }
.fx-mc-tab.is-inv .fx-mc-badge { border-color: #2e4a66; }
.fx-mc-tab.is-inv:hover .fx-mc-badge, .fx-mc-tab.is-inv:focus-visible .fx-mc-badge { border-color: #fff; }

/* empty cart (matches the /cart page) */
.fx-mc-empty {
  display: flex; flex-direction: column; align-items: center; gap: 14px;
  margin: 8px 0 0; padding: 44px 24px 36px; text-align: center;
  background: #fff; border: 1px solid #dfe4f2; border-radius: 16px; box-shadow: 0 10px 30px rgba(46, 74, 102, 0.08);
}
.fx-mc-empty-ic { display: inline-flex; align-items: center; justify-content: center; width: 72px; height: 72px; border-radius: 50%; background: #e6eefb; color: #2e4a66; }
.fx-mc-panel .fx-mc-empty-t { margin: 0 !important; font-family: 'Playfair Display', serif !important; font-weight: 600 !important; font-size: 24px !important; line-height: 1.25 !important; color: #2e4a66 !important; }
.fx-mc-panel .fx-mc-empty-s { margin: 0 !important; font-size: 14px !important; line-height: 1.5 !important; color: #6b7a90 !important; }
.fx-mc-panel button.fx-mc-btn.fx-mc-keep { width: 100%; max-width: 260px; margin: 6px 0 0 !important; cursor: pointer; font-family: 'Open Sans', sans-serif !important; }

/* spinner (same blue/gold spinner as the /cart page) */
.fx-mc-head { position: relative; z-index: 3; }
.fx-mc-spin { position: absolute; inset: 0; z-index: 2; display: none; background: rgba(244, 244, 252, 0.78); cursor: progress; }
.fx-mc-spin.is-on { display: block; }
.fx-mc-spin-a, .fx-mc-spin-b { position: absolute; top: 50%; left: 50%; box-sizing: border-box; border-radius: 50%; }
.fx-mc-spin-a { width: 64px; height: 64px; margin: -32px 0 0 -32px; border: 5px solid rgba(46, 74, 102, .12); border-top-color: #E0B02D; border-right-color: #E0B02D; box-shadow: 0 8px 24px rgba(46, 74, 102, .18); animation: fxmcspin .9s cubic-bezier(.5, .15, .5, .85) infinite; }
.fx-mc-spin-b { width: 36px; height: 36px; margin: -18px 0 0 -18px; border: 4px solid transparent; border-bottom-color: #2e4a66; border-left-color: #2e4a66; animation: fxmcspinback 1.2s linear infinite; }
@keyframes fxmcspin { to { transform: rotate(360deg); } }
@keyframes fxmcspinback { to { transform: rotate(-360deg); } }

/* sizes: tablets and desktop 420px, phones full width, short landscape screens compact */
.fx-mc-panel { width: min(420px, 100vw); box-sizing: border-box; }
.fx-mc-foot { padding-bottom: calc(18px + env(safe-area-inset-bottom, 0px)); }
.fx-mc-body { overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
@media (max-width: 600px) {
  .fx-mc-panel { width: 100vw; }
  .fx-mc-tab { width: 48px; height: 48px; }
}
@media (pointer: coarse) {
  .fx-mc-panel .fx-mc-close { width: 44px; height: 44px; }
  .fx-mc-panel .fx-mc-rm { width: 40px; height: 40px; }
  .fx-mc-panel .fx-mc-btn { height: 52px; }
}
@media (max-height: 520px) {
  .fx-mc-head { padding: 10px 16px; }
  .fx-mc-panel .fx-mc-title { font-size: 20px !important; }
  .fx-mc-body { padding: 10px 12px 4px; }
  .fx-mc-item { padding: 8px !important; margin-bottom: 8px !important; }
  .fx-mc-img, .fx-mc-img img { width: 52px !important; height: 52px !important; flex-basis: 52px; }
  .fx-mc-empty { padding: 20px 16px; gap: 8px; }
  .fx-mc-empty-ic { width: 52px; height: 52px; }
  .fx-mc-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 10px 12px; }
  .fx-mc-total { flex: 1 0 100%; margin: 0 2px 2px; }
  .fx-mc-panel .fx-mc-btn { flex: 1 1 0; margin: 0 !important; height: 44px; }
  .fx-mc-panel .fx-mc-cont.is-on { flex: 1 0 100%; padding: 2px; }
  .fx-mc-foot.has-cont .fx-mc-btn:last-of-type { margin-bottom: 0 !important; }
}
@media (prefers-reduced-motion: reduce) {
  .fx-mc-panel, .fx-mc-overlay, .fx-mc-tab, .fx-mc-item { transition: none !important; }
  .fx-mc-spin-a, .fx-mc-spin-b { animation-duration: 3s; }
}
/* ===== END 2026 - SIDE CART PANEL CSS ===== */

/* ---- SOURCE #90587 ---- */
/* ===== 2026 - COLLECTION PAGES: SQUARE COVERS + FADE-IN (CSS) =====
   Audio listing (page-id-62782): every cover is a square. Enhanced Video listing (page-id-62886): fade only.
   Covers start invisible and fade in (0.35s) once the JS has marked them ready, so the cut-off
   thumbnail is never seen. If the JS ever fails, covers still appear by themselves after 1.2s. */
html body.page-id-62782 ul.products li.product img.attachment-woocommerce_thumbnail,
html body.page-id-62886 ul.products li.product img.attachment-woocommerce_thumbnail {
  opacity: 0;
  animation: fx-cover-failsafe 0.35s ease 1.2s forwards;
}
html body.page-id-62782 ul.products li.product img.attachment-woocommerce_thumbnail[data-fx-sq],
html body.page-id-62886 ul.products li.product img.attachment-woocommerce_thumbnail[data-fx-sq] {
  animation: none;
}
html body.page-id-62782 ul.products li.product img[data-fx-sq="square"],
html body.page-id-62782 ul.products li.product img[data-fx-sq="ok"],
html body.page-id-62782 ul.products li.product img[data-fx-sq="fail"],
html body.page-id-62886 ul.products li.product img[data-fx-sq="square"],
html body.page-id-62886 ul.products li.product img[data-fx-sq="ok"],
html body.page-id-62886 ul.products li.product img[data-fx-sq="fail"] {
  opacity: 1;
  transition: opacity 0.35s ease;
}
@keyframes fx-cover-failsafe { to { opacity: 1; } }

html body.page-id-62782 ul.products li.product a.woocommerce-LoopProduct-link > img,
html body.page-id-62782 ul.products li.product img.attachment-woocommerce_thumbnail {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: fill !important; /* non-square originals are stretched to fill the square, nothing is cut off */
}
/* ===== END 2026 - COLLECTION PAGES ===== */