/* ==========================================================================
   Forward Labs — Premium theme layer  (v1)
   Loaded in the footer after every inline widget <style>, scoped to body.fl-premium.
   Design: "clinical luxury". Navy + teal retained; one type pairing (Poppins
   headings / Inter body), more air, hairline borders, soft elevation, pill
   controls, calm motion.
   ========================================================================== */

:root {
  --flp-navy: #112643;
  --flp-navy-deep: #0a1a30;
  --flp-teal: #089a8f;
  --flp-teal-bright: #0fc2b5;
  --flp-ink: #112643;
  --flp-muted: #5a6675;
  --flp-faint: #9aa5b1;
  --flp-bg: #ffffff;
  --flp-bg-soft: #f6f8fb;
  --flp-line: rgba(17, 38, 67, 0.08);
  --flp-line-strong: rgba(17, 38, 67, 0.16);
  --flp-head: 'Poppins', 'Inter', system-ui, sans-serif;
  --flp-body: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --flp-radius: 18px;
  --flp-pill: 999px;
  --flp-shadow-sm: 0 1px 2px rgba(17, 38, 67, 0.05);
  --flp-shadow-md: 0 18px 40px -22px rgba(17, 38, 67, 0.28), 0 2px 6px rgba(17, 38, 67, 0.05);
  --flp-shadow-lg: 0 30px 60px -30px rgba(17, 38, 67, 0.40);
  --flp-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
}

/* --------------------------------------------------------------------------
   0. Base polish
   -------------------------------------------------------------------------- */
body.fl-premium {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-family: var(--flp-body);
  color: var(--flp-ink);
}
body.fl-premium ::selection { background: rgba(8, 154, 143, 0.18); }
body.fl-premium :focus-visible { outline: 2px solid var(--flp-teal-bright); outline-offset: 3px; border-radius: 6px; }
/* Font only: never force a heading color here, sections on dark backgrounds set their own. */
body.fl-premium h1, body.fl-premium h2, body.fl-premium h3, body.fl-premium h4 { font-family: var(--flp-head); }
/* Explicit safety for the dark page banners (About / Contact) */
body.fl-premium .fl-ab-hero-title, body.fl-premium .fl-ct-hero-title { color: #ffffff; }
body.fl-premium .fl-ab-hero-title em, body.fl-premium .fl-ct-hero-title em { color: var(--flp-teal-bright); }

/* --------------------------------------------------------------------------
   1. Header: frosted, hairline, quieter
   -------------------------------------------------------------------------- */
body.fl-premium .fl-hdr-topbar { background: var(--flp-navy-deep); padding: 9px 24px; }
body.fl-premium .fl-hdr-announce { font-family: var(--flp-body); font-size: 12px; letter-spacing: 0.2px; color: rgba(255, 255, 255, 0.78); }
body.fl-premium .fl-hdr-announce strong, body.fl-premium .fl-hdr-announce a { color: var(--flp-teal-bright); font-weight: 600; }

body.fl-premium .fl-hdr-main {
  background: rgba(255, 255, 255, 0.86);
  -webkit-backdrop-filter: saturate(180%) blur(14px);
  backdrop-filter: saturate(180%) blur(14px);
  border-bottom: 1px solid var(--flp-line);
  padding: 14px 24px;
}
body.fl-premium .fl-hdr-wrap.fl-hdr-scrolled { box-shadow: 0 1px 0 var(--flp-line), 0 14px 32px -20px rgba(17, 38, 67, 0.22); }
body.fl-premium .fl-hdr-nav li a { font-family: var(--flp-head); font-size: 14px; font-weight: 500; letter-spacing: 0; color: var(--flp-ink); padding: 10px 16px; }
body.fl-premium .fl-hdr-nav li a:hover, body.fl-premium .fl-hdr-nav li.current-menu-item > a { color: var(--flp-teal); }
body.fl-premium .fl-hdr-action-btn,
body.fl-premium .fl-hdr-burger {
  background: #fff;
  border: 1px solid rgba(17, 38, 67, 0.10);
  box-shadow: var(--flp-shadow-sm);
  transition: border-color 0.2s var(--flp-ease), box-shadow 0.2s var(--flp-ease), transform 0.2s var(--flp-ease);
}
body.fl-premium .fl-hdr-action-btn:hover,
body.fl-premium .fl-hdr-burger:hover { background: #fff; border-color: rgba(8, 154, 143, 0.55); box-shadow: 0 6px 16px -8px rgba(8, 154, 143, 0.5); transform: translateY(-1px); }

/* --------------------------------------------------------------------------
   2. Hero: calmer type, deeper gradient, no grey wedge
   -------------------------------------------------------------------------- */
body.fl-premium .fl-hero-section {
  font-family: var(--flp-body);
  background:
    radial-gradient(900px 520px at 85% 15%, rgba(8, 154, 143, 0.26), transparent 62%),
    radial-gradient(700px 500px at 5% 95%, rgba(15, 194, 181, 0.10), transparent 60%),
    linear-gradient(160deg, #0a1a30 0%, #112643 55%, #0c1f3a 100%);
}
body.fl-premium .fl-hero-angle { display: none; }
body.fl-premium .fl-hero-pattern { opacity: 0.5; }
body.fl-premium .fl-hero-container { padding: 104px 40px 112px; gap: 56px; align-items: center; }
body.fl-premium .fl-hero-tag {
  font-family: var(--flp-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 2.2px;
  color: var(--flp-teal-bright);
  background: rgba(15, 194, 181, 0.08);
  border: 1px solid rgba(15, 194, 181, 0.35);
  padding: 8px 14px;
}
body.fl-premium .fl-hero-content h1 {
  font-family: var(--flp-head);
  text-transform: none;
  font-size: clamp(40px, 5vw, 62px);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -1.8px;
  color: #ffffff;
  margin: 22px 0 20px;
}
body.fl-premium .fl-hero-content p {
  font-family: var(--flp-body);
  font-size: 18px;
  line-height: 1.65;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.72);
  max-width: 520px;
  margin-bottom: 34px;
}
body.fl-premium .fl-hero-btn {
  font-family: var(--flp-head);
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 0.2px;
  text-transform: none;
  color: var(--flp-navy-deep);
  background: #ffffff;
  border: 2px solid #ffffff;
  padding: 16px 34px;
  border-radius: var(--flp-pill);
  box-shadow: 0 14px 34px -14px rgba(0, 0, 0, 0.55);
  transition: transform 0.22s var(--flp-ease), box-shadow 0.22s var(--flp-ease), background 0.22s var(--flp-ease), border-color 0.22s var(--flp-ease), color 0.22s var(--flp-ease);
}
body.fl-premium .fl-hero-btn:hover {
  background: var(--flp-teal-bright);
  border-color: var(--flp-teal-bright);
  color: var(--flp-navy-deep);
  transform: translateY(-2px);
  box-shadow: 0 18px 40px -14px rgba(15, 194, 181, 0.6);
}
body.fl-premium .fl-hero-image img { filter: drop-shadow(0 34px 44px rgba(0, 0, 0, 0.5)); }

/* --------------------------------------------------------------------------
   3. Trust bar: navy block becomes a light, hairline stat strip
   -------------------------------------------------------------------------- */
body.fl-premium .fl-trust-bar {
  background: var(--flp-bg);
  padding: 0 24px;
  border-bottom: 1px solid var(--flp-line);
}
body.fl-premium .fl-trust-item {
  padding: 40px 40px;
  gap: 18px;
  align-items: flex-start;
  border: none !important;
  border-right: 1px solid var(--flp-line) !important;
}
body.fl-premium .fl-trust-item:last-child { border-right: none !important; }
body.fl-premium .fl-trust-icon {
  flex: 0 0 auto;
  width: 52px;
  height: 52px;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(8, 154, 143, 0.08);
  border: 1px solid rgba(8, 154, 143, 0.18);
  color: var(--flp-teal);
}
body.fl-premium .fl-trust-icon svg { width: 24px; height: 24px; }
body.fl-premium .fl-trust-title {
  font-family: var(--flp-head);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  color: var(--flp-ink);
  margin-bottom: 6px;
}
body.fl-premium .fl-trust-desc { font-family: var(--flp-body); font-size: 14px; line-height: 1.6; color: var(--flp-muted); }
body.fl-premium .fl-trust-desc a { color: var(--flp-teal); text-decoration: underline; text-underline-offset: 3px; }

/* --------------------------------------------------------------------------
   4. Section headings (Elementor heading widgets) and the Shop All button
   -------------------------------------------------------------------------- */
body.fl-premium .elementor-widget-heading .elementor-heading-title {
  font-family: var(--flp-head);
  font-weight: 700;
  font-size: clamp(30px, 3.4vw, 42px);
  letter-spacing: -1.2px;
  line-height: 1.1;
  color: var(--flp-ink);
}
body.fl-premium.home .elementor-widget-heading .elementor-heading-title { text-align: center; position: relative; padding-bottom: 18px; }
body.fl-premium.home .elementor-widget-heading .elementor-heading-title::after {
  content: '';
  display: block;
  width: 44px;
  height: 3px;
  border-radius: 3px;
  background: var(--flp-teal);
  margin: 16px auto 0;
}
/* Elementor prints per-element rules with high specificity, so these need !important. */
body.fl-premium .elementor-element .elementor-widget-button .elementor-button,
body.fl-premium .elementor-widget-button a.elementor-button {
  font-family: var(--flp-head) !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  letter-spacing: 0.2px !important;
  text-transform: none !important;
  color: var(--flp-ink) !important;
  background: transparent !important;
  background-color: transparent !important;
  border: 1.5px solid var(--flp-line-strong) !important;
  border-radius: var(--flp-pill) !important;
  padding: 15px 34px !important;
  box-shadow: none !important;
  transition: all 0.22s var(--flp-ease) !important;
}
body.fl-premium .elementor-element .elementor-widget-button .elementor-button:hover,
body.fl-premium .elementor-widget-button a.elementor-button:hover {
  background: var(--flp-navy) !important;
  background-color: var(--flp-navy) !important;
  border-color: var(--flp-navy) !important;
  color: #fff !important;
  transform: translateY(-1px);
  box-shadow: 0 14px 28px -16px rgba(17, 38, 67, 0.6) !important;
}

/* --------------------------------------------------------------------------
   4b. Shop page intro and category intro (printed by the SEO tweaks snippet)
   -------------------------------------------------------------------------- */
body.fl-premium .fl-shop-intro { max-width: 760px; margin: 8px 0 36px; }
body.fl-premium .fl-shop-intro__eyebrow {
  display: inline-block;
  font-family: var(--flp-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 2.2px;
  text-transform: uppercase;
  color: var(--flp-teal);
  margin-bottom: 12px;
}
body.fl-premium .fl-shop-intro__title {
  font-family: var(--flp-head);
  font-size: clamp(30px, 3.4vw, 42px);
  font-weight: 700;
  letter-spacing: -1.2px;
  line-height: 1.1;
  color: var(--flp-ink);
  margin: 0 0 14px;
}
body.fl-premium .fl-shop-intro__text,
body.fl-premium .fl-cat-intro p,
body.fl-premium .fl-cat-intro { font-family: var(--flp-body); font-size: 15px; line-height: 1.7; color: var(--flp-muted); max-width: 720px; }
body.fl-premium .fl-cat-intro { margin: 0 0 28px; }
body.fl-premium.woocommerce-page .woocommerce-result-count,
body.fl-premium.woocommerce-page .woocommerce-ordering select { font-family: var(--flp-body); font-size: 13.5px; color: var(--flp-muted); }
body.fl-premium.woocommerce-page .woocommerce-ordering select { border-radius: var(--flp-pill); border: 1px solid var(--flp-line-strong); padding: 8px 36px 8px 14px; }
body.fl-premium.archive .page-title, body.fl-premium.tax-product_cat h1.page-title {
  font-family: var(--flp-head);
  font-size: clamp(30px, 3.4vw, 42px);
  font-weight: 700;
  letter-spacing: -1.2px;
  color: var(--flp-ink);
}

/* --------------------------------------------------------------------------
   5. Product cards (WooCommerce loop, Astra markup)
   -------------------------------------------------------------------------- */
body.fl-premium ul.products { gap: 26px 22px !important; }
body.fl-premium ul.products li.product {
  position: relative;
  display: flex;
  flex-direction: column;
  margin: 0 !important;
  padding: 14px 14px 18px;
  background: #fff;
  border: 1px solid var(--flp-line);
  border-radius: var(--flp-radius);
  box-shadow: var(--flp-shadow-sm);
  transition: transform 0.28s var(--flp-ease), box-shadow 0.28s var(--flp-ease), border-color 0.28s var(--flp-ease);
}
body.fl-premium ul.products li.product:hover {
  transform: translateY(-4px);
  border-color: rgba(8, 154, 143, 0.35);
  box-shadow: var(--flp-shadow-md);
}
body.fl-premium ul.products li.product .astra-shop-thumbnail-wrap {
  border-radius: 12px;
  overflow: hidden;
  background: #ffffff; /* product JPEGs have white backgrounds; keep the tile seamless */
}
body.fl-premium ul.products li.product .astra-shop-thumbnail-wrap img { transition: transform 0.55s var(--flp-ease); }
body.fl-premium ul.products li.product .ast-on-card-button { display: none !important; }
body.fl-premium ul.products li.product .astra-shop-summary-wrap {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  flex: 1 1 auto;
  padding: 16px 6px 0;
}
body.fl-premium ul.products li.product .ast-woo-product-category {
  order: -1;
  display: block;
  font-family: var(--flp-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--flp-teal);
  margin: 0 0 8px;
}
body.fl-premium ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--flp-head);
  font-size: 15.5px;
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: -0.2px;
  color: var(--flp-ink);
  margin: 0 0 6px;
  padding: 0;
}
body.fl-premium ul.products li.product .price {
  font-family: var(--flp-head);
  font-size: 15px;
  font-weight: 600;
  color: var(--flp-ink);
  margin: 0 0 16px;
}
body.fl-premium ul.products li.product .price del { color: var(--flp-faint); font-weight: 500; }
body.fl-premium ul.products li.product .price ins { text-decoration: none; }
body.fl-premium ul.products li.product .sbqa-quick-add,
body.fl-premium ul.products li.product .button.sbqa-quick-add {
  margin-top: auto;
  width: 100%;
  height: 46px;
  line-height: 1;
  border-radius: var(--flp-pill);
  background: transparent;
  color: var(--flp-ink);
  border: 1.5px solid var(--flp-line-strong);
  font-family: var(--flp-head);
  font-weight: 600;
  font-size: 13.5px;
  letter-spacing: 0.1px;
  box-shadow: none;
  transition: background 0.2s var(--flp-ease), color 0.2s var(--flp-ease), border-color 0.2s var(--flp-ease);
}
body.fl-premium ul.products li.product .sbqa-quick-add:hover,
body.fl-premium ul.products li.product .button.sbqa-quick-add:hover {
  background: var(--flp-navy);
  border-color: var(--flp-navy);
  color: #fff;
}

/* staggered entrance; fill-mode backwards so the hover transform still works afterwards */
@media (prefers-reduced-motion: no-preference) {
  body.fl-premium ul.products li.product { animation: flpFadeUp 0.7s var(--flp-ease) backwards; }
  body.fl-premium ul.products li.product:nth-child(2) { animation-delay: 0.05s; }
  body.fl-premium ul.products li.product:nth-child(3) { animation-delay: 0.10s; }
  body.fl-premium ul.products li.product:nth-child(4) { animation-delay: 0.15s; }
  body.fl-premium ul.products li.product:nth-child(5) { animation-delay: 0.20s; }
  body.fl-premium ul.products li.product:nth-child(6) { animation-delay: 0.25s; }
  body.fl-premium ul.products li.product:nth-child(7) { animation-delay: 0.30s; }
  body.fl-premium ul.products li.product:nth-child(8) { animation-delay: 0.35s; }
  @keyframes flpFadeUp { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
}

/* --------------------------------------------------------------------------
   6. "Why choose" feature section
   -------------------------------------------------------------------------- */
body.fl-premium .fl-feat-wrap { font-family: var(--flp-body); background: var(--flp-bg-soft); padding: 104px 24px; }
body.fl-premium .fl-feat-inner { gap: 72px; align-items: center; }
body.fl-premium .fl-feat-label { font-family: var(--flp-body); font-size: 11px; letter-spacing: 2.2px; color: var(--flp-teal); }
body.fl-premium .fl-feat-heading { font-family: var(--flp-head); font-size: clamp(28px, 3.2vw, 40px); letter-spacing: -1.1px; line-height: 1.12; color: var(--flp-ink); margin-bottom: 10px; }
body.fl-premium .fl-feat-heading span { color: var(--flp-teal); }
body.fl-premium .fl-feat-card {
  background: #fff;
  border: 1px solid var(--flp-line);
  border-radius: 16px;
  box-shadow: var(--flp-shadow-sm);
  transition: border-color 0.25s var(--flp-ease), box-shadow 0.25s var(--flp-ease);
}
body.fl-premium .fl-feat-card.fl-feat-active { background: #fff; border-color: rgba(8, 154, 143, 0.45); box-shadow: 0 18px 40px -26px rgba(17, 38, 67, 0.3); }
body.fl-premium .fl-feat-card-header { padding: 18px 20px; }
body.fl-premium .fl-feat-icon { border-radius: 12px; }
body.fl-premium .fl-feat-card-title { font-family: var(--flp-head); font-size: 15px; font-weight: 600; letter-spacing: 0; }
body.fl-premium .fl-feat-card-desc, body.fl-premium .fl-feat-shipping-list li, body.fl-premium .fl-feat-card-desc p { font-size: 14px; line-height: 1.65; color: var(--flp-muted); }
body.fl-premium .fl-feat-shipping-carrier { font-family: var(--flp-head); font-size: 13px; letter-spacing: 0.3px; }
body.fl-premium .fl-feat-img-wrap { border-radius: 22px; border: none; box-shadow: var(--flp-shadow-lg); }
body.fl-premium .fl-feat-badge { border-radius: 12px; box-shadow: 0 10px 24px -12px rgba(17, 38, 67, 0.35); }
body.fl-premium .fl-feat-badge-text { font-family: var(--flp-head); font-size: 12px; letter-spacing: 0.2px; }

/* --------------------------------------------------------------------------
   7. FAQ
   -------------------------------------------------------------------------- */
body.fl-premium .fl-faq-wrap { font-family: var(--flp-body); background: var(--flp-bg); padding: 104px 24px; }
body.fl-premium .fl-faq-label { font-family: var(--flp-body); font-size: 11px; letter-spacing: 2.2px; }
body.fl-premium .fl-faq-heading { font-family: var(--flp-head); font-size: clamp(30px, 3.4vw, 42px); letter-spacing: -1.2px; line-height: 1.1; }
body.fl-premium .fl-faq-subheading { font-size: 15.5px; line-height: 1.6; }
body.fl-premium .fl-faq-item { border-radius: 16px; border-color: var(--flp-line); box-shadow: var(--flp-shadow-sm); }
body.fl-premium .fl-faq-item.fl-faq-open { border-color: rgba(8, 154, 143, 0.4); box-shadow: 0 18px 40px -26px rgba(17, 38, 67, 0.3); }
body.fl-premium .fl-faq-num { border-radius: 10px; font-family: var(--flp-head); }
body.fl-premium .fl-faq-q-text { font-family: var(--flp-head); font-size: 15.5px; font-weight: 600; letter-spacing: 0; }
body.fl-premium .fl-faq-a-text { font-size: 14.5px; line-height: 1.7; }
body.fl-premium .fl-faq-cta { border-radius: 22px; padding: 40px 44px; }
body.fl-premium .fl-faq-cta-title { font-family: var(--flp-head); font-size: 22px; letter-spacing: -0.4px; }
body.fl-premium .fl-faq-cta-btn { font-family: var(--flp-head); font-weight: 600; letter-spacing: 0.1px; padding: 14px 28px; }

/* --------------------------------------------------------------------------
   8. Footer
   -------------------------------------------------------------------------- */
body.fl-premium .fl-ftr-wrap { font-family: var(--flp-body); background: linear-gradient(180deg, #0b1b32 0%, #0a1a30 100%); }
body.fl-premium .fl-ftr-glow-r, body.fl-premium .fl-ftr-glow-l { opacity: 0.55; }
body.fl-premium .fl-ftr-inner { padding: 88px 24px 0; }
body.fl-premium .fl-ftr-logo { font-family: var(--flp-head); letter-spacing: -0.6px; }
body.fl-premium .fl-ftr-tagline { font-family: var(--flp-body); font-size: 14px; letter-spacing: 0; }
body.fl-premium .fl-ftr-desc { font-size: 14px; line-height: 1.65; }
body.fl-premium .fl-ftr-col-title { font-family: var(--flp-body); font-size: 12px; letter-spacing: 1.8px; }
body.fl-premium .fl-ftr-links a { font-size: 14px; }
body.fl-premium .fl-ftr-contact-icon { border-radius: 12px; }
body.fl-premium .fl-ftr-disclaimer-text { font-size: 12.5px; line-height: 1.65; color: rgba(255, 255, 255, 0.55); }

/* --------------------------------------------------------------------------
   9. Single product
   -------------------------------------------------------------------------- */
body.fl-premium.single-product .woocommerce-product-gallery {
  border-radius: 24px;
  overflow: hidden;
  border: 1px solid var(--flp-line);
  background: radial-gradient(120% 90% at 50% 100%, #eaf0f6 0%, #f6f8fb 55%, #ffffff 100%);
}
body.fl-premium.single-product .product_title {
  font-family: var(--flp-head);
  font-size: clamp(28px, 3vw, 38px);
  font-weight: 700;
  letter-spacing: -0.9px;
  line-height: 1.15;
  color: var(--flp-ink);
}
body.fl-premium.single-product .summary > .price { font-family: var(--flp-head); font-size: 20px; font-weight: 600; color: var(--flp-muted); }
body.fl-premium.single-product .summary .woocommerce-variation-price .price { font-family: var(--flp-head); font-size: 28px; font-weight: 700; color: var(--flp-ink); }
body.fl-premium.single-product .summary .stock { font-family: var(--flp-body); font-size: 13.5px; }
body.fl-premium.single-product .variations th.label label,
body.fl-premium.single-product .variations th.label {
  font-family: var(--flp-body);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--flp-muted);
}
body.fl-premium.single-product .quantity .qty { border-radius: 10px; font-family: var(--flp-body); }
body.fl-premium.single-product .single_add_to_cart_button,
body.fl-premium.single-product .single_add_to_cart_button.button.alt {
  background: var(--flp-navy) !important;
  color: #fff !important;
  border: none !important;
  border-radius: var(--flp-pill) !important;
  min-height: 54px;
  padding: 0 32px !important;
  font-family: var(--flp-head) !important;
  font-weight: 600 !important;
  font-size: 15px !important;
  letter-spacing: 0.2px !important;
  text-transform: none !important;
  box-shadow: 0 14px 30px -16px rgba(17, 38, 67, 0.65);
  transition: background 0.22s var(--flp-ease), transform 0.22s var(--flp-ease), box-shadow 0.22s var(--flp-ease) !important;
}
body.fl-premium.single-product .single_add_to_cart_button:hover { background: var(--flp-teal) !important; transform: translateY(-1px); box-shadow: 0 16px 32px -14px rgba(8, 154, 143, 0.6); }
body.fl-premium .sb-badges-row { padding: 20px 0 8px; }
body.fl-premium .sb-badge-icon { width: 48px !important; height: 48px !important; min-width: 48px !important; border: 1px solid var(--flp-line-strong) !important; color: var(--flp-ink) !important; background: #fff; }
body.fl-premium .sb-badge-circle { font-family: var(--flp-head); }
body.fl-premium .sb-badge-label { font-family: var(--flp-body); font-size: 12px !important; color: var(--flp-muted) !important; font-weight: 500 !important; }
body.fl-premium .sb-research-box { background: var(--flp-bg-soft) !important; border: 1px solid var(--flp-line) !important; border-radius: 16px !important; }
body.fl-premium .sb-research-title { font-family: var(--flp-head) !important; letter-spacing: 0.4px; }
body.fl-premium .sb-research-text { font-family: var(--flp-body) !important; line-height: 1.65 !important; }

body.fl-premium .woocommerce-tabs ul.tabs { border-bottom: 1px solid var(--flp-line) !important; }
body.fl-premium .woocommerce-tabs ul.tabs li a { font-family: var(--flp-head); font-weight: 600; font-size: 14px; color: var(--flp-muted); }
body.fl-premium .woocommerce-tabs ul.tabs li.active a { color: var(--flp-ink); box-shadow: inset 0 -2px 0 var(--flp-teal); }
body.fl-premium .woocommerce-Tabs-panel h3 { font-family: var(--flp-head); font-size: 20px; letter-spacing: -0.4px; }
body.fl-premium .woocommerce-Tabs-panel { font-family: var(--flp-body); font-size: 15px; line-height: 1.7; color: var(--flp-muted); }
body.fl-premium .woocommerce-Tabs-panel strong { color: var(--flp-ink); }
body.fl-premium.single-product .related.products > h2,
body.fl-premium.single-product .up-sells > h2 { font-family: var(--flp-head); font-size: clamp(24px, 2.6vw, 32px); letter-spacing: -0.9px; margin-bottom: 28px; }

/* --------------------------------------------------------------------------
   10. Side cart drawer (sbqa)
   -------------------------------------------------------------------------- */
body.fl-premium #sbqa-drawer { font-family: var(--flp-body); border-radius: 24px 0 0 24px; box-shadow: -30px 0 70px -36px rgba(17, 38, 67, 0.55); }
body.fl-premium .sbqa-drawer-title { font-family: var(--flp-head); font-weight: 600; font-size: 18px; letter-spacing: -0.3px; }
body.fl-premium .sbqa-checkout { border-radius: var(--flp-pill); background: var(--flp-navy); font-family: var(--flp-head); font-weight: 600; letter-spacing: 0.2px; min-height: 54px; transition: background 0.2s var(--flp-ease); }
body.fl-premium .sbqa-checkout:hover { background: var(--flp-teal); }
body.fl-premium .sbqa-shipping-progress { background: linear-gradient(90deg, var(--flp-teal), var(--flp-teal-bright)); }
body.fl-premium .sbqa-shipping-msg { font-family: var(--flp-body); font-size: 12.5px; letter-spacing: 0.2px; }
body.fl-premium .sbqa-coupon-input { border-radius: 12px; font-family: var(--flp-body); }

/* --------------------------------------------------------------------------
   11. Age gate (Age Gate plugin)
   -------------------------------------------------------------------------- */
/* Age Gate 3.x renders with BEM classes: .age-gate__wrapper > .age-gate > .age-gate__form …
   While restricted, the plugin adds .age-gate__restricted to the root; paint the backdrop there. */
html.age-gate__restricted, html.age-gate__restricted body,
body.age-gate__restricted,
body.fl-premium .age-gate__wrapper,
body.fl-premium .age-gate-wrapper {
  background:
    radial-gradient(900px 520px at 85% 15%, rgba(8, 154, 143, 0.26), transparent 62%),
    linear-gradient(160deg, #0a1a30 0%, #112643 55%, #0c1f3a 100%) !important;
}
body.fl-premium .age-gate {
  background: #fff !important;
  border-radius: 24px !important;
  padding: 44px 40px !important;
  box-shadow: 0 40px 80px -40px rgba(0, 0, 0, 0.6) !important;
  max-width: 440px !important;
  font-family: var(--flp-body) !important;
  color: var(--flp-ink) !important;
}
body.fl-premium .age-gate h1, body.fl-premium .age-gate h2, body.fl-premium .age-gate h3,
body.fl-premium .age-gate__heading, body.fl-premium .age-gate__subheading, body.fl-premium .age-gate__headline {
  font-family: var(--flp-head) !important;
  color: var(--flp-ink) !important;
  letter-spacing: -0.3px;
  font-size: 20px !important;
  font-weight: 600 !important;
}
body.fl-premium .age-gate__form p, body.fl-premium .age-gate p { font-family: var(--flp-body) !important; font-size: 15px !important; color: var(--flp-muted) !important; }
body.fl-premium .age-gate__submit,
body.fl-premium .age-gate-submit,
body.fl-premium .age-gate button[type="submit"] {
  border-radius: var(--flp-pill) !important;
  font-family: var(--flp-head) !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  padding: 14px 30px !important;
  min-width: 120px;
  border: 1.5px solid var(--flp-navy) !important;
  background: var(--flp-navy) !important;
  color: #fff !important;
  cursor: pointer;
  transition: all 0.2s var(--flp-ease) !important;
}
body.fl-premium .age-gate button[type="submit"]:hover { background: var(--flp-teal) !important; border-color: var(--flp-teal) !important; }
/* the plugin prints "No" before "Yes": make the first button the quiet one */
body.fl-premium .age-gate button[type="submit"]:first-of-type,
body.fl-premium .age-gate__submit--no, body.fl-premium .age-gate-submit--no {
  background: transparent !important;
  color: var(--flp-ink) !important;
  border-color: var(--flp-line-strong) !important;
}
body.fl-premium .age-gate button[type="submit"]:first-of-type:hover { background: var(--flp-bg-soft) !important; color: var(--flp-ink) !important; border-color: var(--flp-line-strong) !important; }
body.fl-premium .age-gate__remember-wrapper, body.fl-premium .age-gate-remember-wrapper { font-family: var(--flp-body) !important; font-size: 13px !important; color: var(--flp-muted) !important; margin-top: 14px; }

/* --------------------------------------------------------------------------
   12. Cart / checkout / account tables and buttons (light touch)
   -------------------------------------------------------------------------- */
body.fl-premium .woocommerce .button:not(.sbqa-quick-add):not(.single_add_to_cart_button),
body.fl-premium .woocommerce button.button,
body.fl-premium .woocommerce a.button,
body.fl-premium .woocommerce input.button {
  border-radius: var(--flp-pill);
  font-family: var(--flp-head);
  font-weight: 600;
  letter-spacing: 0.1px;
}
body.fl-premium .woocommerce .checkout-button,
body.fl-premium .woocommerce #place_order { background: var(--flp-navy) !important; color: #fff !important; }
body.fl-premium .woocommerce .checkout-button:hover,
body.fl-premium .woocommerce #place_order:hover { background: var(--flp-teal) !important; }
body.fl-premium .woocommerce table.shop_table { border-radius: 16px; border: 1px solid var(--flp-line); overflow: hidden; }
body.fl-premium .woocommerce-page .entry-title, body.fl-premium.woocommerce-page h1.entry-title { font-family: var(--flp-head); letter-spacing: -1px; }

/* --------------------------------------------------------------------------
   13. Responsive
   -------------------------------------------------------------------------- */
@media (max-width: 1024px) {
  body.fl-premium .fl-hero-container { padding: 80px 24px 88px; gap: 36px; }
  body.fl-premium .fl-trust-item { padding: 28px 24px; }
}
@media (max-width: 768px) {
  body.fl-premium .fl-hero-container { padding: 56px 18px 64px; }
  body.fl-premium .fl-hero-content h1 { font-size: clamp(32px, 9vw, 40px); letter-spacing: -1px; }
  body.fl-premium .fl-hero-content p { font-size: 15.5px; }
  body.fl-premium .fl-trust-bar { padding: 8px 18px; }
  body.fl-premium .fl-trust-item { padding: 22px 0; border-right: none !important; border-bottom: 1px solid var(--flp-line) !important; }
  body.fl-premium .fl-trust-item:last-child { border-bottom: none !important; }
  body.fl-premium ul.products { gap: 14px 12px !important; }
  body.fl-premium ul.products li.product { padding: 10px 10px 14px; border-radius: 14px; }
  body.fl-premium ul.products li.product .astra-shop-summary-wrap { padding: 12px 2px 0; }
  body.fl-premium ul.products li.product .woocommerce-loop-product__title { font-size: 14px; }
  body.fl-premium ul.products li.product .sbqa-quick-add { height: 42px; font-size: 13px; }
  body.fl-premium .fl-feat-wrap, body.fl-premium .fl-faq-wrap { padding: 64px 18px; }
  body.fl-premium .fl-faq-cta { padding: 28px 24px; border-radius: 18px; }
  body.fl-premium #sbqa-drawer { border-radius: 0; }
}
