/*
Theme Name: Hello Elementor FLA
Theme URI: https://www.forkliftacademy.com
Description: Forklift Academy New FLA Platform child theme for Hello Elementor. Not production.
Author: Forklift Academy
Template: hello-elementor
Version: 1.6.421
Text Domain: hello-elementor-fla
*/

:root {
  --fla-blue: #165D95;
  --fla-blue-dark: #165D95;
  --fla-logo-blue: #145C94; /* fav / forklift mark */
  --fla-royal-blue: #145C94; /* PIT operator card (live logo blue) */
  --fla-header: #003C6E;
  --fla-footer: #002B4E;
  --fla-navy: #080C33;
  --fla-navy-2: #0c1448;
  --fla-orange: #EC572C;
  --fla-orange-hover: #DA4920;
  --fla-gold: #EC572C; /* live FLA orange accent */
  --fla-klentel: #FF5541; /* Klentel K coral, demo/proposal only */
  --fla-text: #080C33;
  --fla-muted: #5b6775;
  --fla-bg: #f5f7fa;
  --fla-white: #ffffff;
  --fla-radius: 10px;
  --fla-shadow: 0 10px 30px rgba(8, 12, 51, 0.12);
  --fla-max: 1220px;
}

html { scroll-behavior: smooth; }
body.hello-elementor-fla,
body {
  font-family: Outfit, "Segoe UI", system-ui, sans-serif;
  font-size: 18px;
  line-height: 1.5;
  color: var(--fla-text);
  background: var(--fla-white);
  margin: 0;
}
img { max-width: 100%; height: auto; }
a { color: var(--fla-blue); }
.fla-wrap { width: min(var(--fla-max), calc(100% - 32px)); margin: 0 auto; }

/* Demo badge */
.fla-demo-badge {
  position: fixed;
  z-index: 99999;
  right: 12px;
  bottom: 12px;
  background: var(--fla-navy);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: 7px 10px;
  border-radius: 999px;
  box-shadow: var(--fla-shadow);
  opacity: .92;
  pointer-events: auto;
  text-decoration: none;
  line-height: 1.2;
  cursor: pointer;
}
.fla-demo-badge:hover,
.fla-demo-badge:focus {
  opacity: 1;
  color: #fff;
  background: #002b4e;
}
.fla-launch-badge {
  bottom: 48px;
  right: 12px;
  background: var(--fla-orange);
  font-size: 10px;
  padding: 6px 9px;
  opacity: .88;
}
.fla-launch-badge:hover,
.fla-launch-badge:focus {
  background: var(--fla-orange-hover);
  opacity: 1;
}
body.page-template-template-launch .fla-launch-done li strong::before {
  content: none;
}


/* Header, live homepage uses primary #003C6E (blue_header) + white logo */
/* Beat Hello Elementor boxed max-width:1140px on .site-header / .site-footer */
body.hello-elementor-fla .site-header.fla-header,
body.hello-elementor-fla .site-footer.fla-footer {
  max-width: none !important;
  width: 100% !important;
  margin-inline: 0 !important;
  box-sizing: border-box;
}
.site-header.fla-header {
  background: var(--fla-header);
  position: sticky;
  top: 0;
  z-index: 1000;
  /* overflow-x clip moved to .fla-header-inner - clip on sticky element
     can trap sticky containing block / paint mid-content (contact overlay). */
  overflow-x: visible;
}

/* Admin bar: keep sticky FLA header below WP toolbar */
body.admin-bar .site-header.fla-header {
  top: 32px;
}
@media screen and (max-width: 782px) {
  body.admin-bar .site-header.fla-header {
    top: 46px;
  }
}

.fla-header-inner {
  display: grid !important;
  grid-template-columns: minmax(200px, max-content) minmax(52px, 1fr) max-content;
  align-items: center;
  gap: 10px 18px;
  min-height: 0;
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  box-sizing: border-box;
  padding: 10px 28px;
  position: relative;
  overflow-x: clip;
}
.fla-nav-cluster {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 4px;
  min-width: 0;
  position: relative;
  width: 100%;
}
.fla-header.has-overflow .fla-nav-cluster,
.fla-header.is-compact .fla-nav-cluster {
  min-width: 52px;
  justify-content: flex-start;
}
.fla-header:not(.has-overflow):not(.is-compact) .fla-nav-cluster {
  justify-content: center;
}
.fla-nav-overflow {
  display: block;
  position: relative;
  flex: 0 0 auto;
}
.fla-brand {
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
  min-width: 194px;
  flex: none;
  position: relative;
}
.fla-logo {
  display: block;
  line-height: 0;
}
.fla-logo img,
.fla-logo .custom-logo {
  width: 194px;
  min-width: 194px;
  height: auto;
  max-height: 58px;
  display: block;
  flex-shrink: 0;
}
.fla-brand .fla-cta {
  width: 100%;
  box-sizing: border-box;
  padding: 7px 10px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .04em;
  border-radius: 5px;
  background: rgba(236, 87, 44, .82);
  box-shadow: none;
}
.fla-brand .fla-cta:hover {
  background: var(--fla-orange);
}
.fla-nav-wrap {
  display: flex;
  justify-content: flex-start;
  min-width: 0;
  overflow: visible;
  flex: 0 1 auto;
}
.fla-header.is-compact .fla-nav-wrap { display: none; }
body.hello-elementor-fla .site-header.fla-header nav,
body.hello-elementor-fla .fla-nav-wrap {
  position: static !important;
  left: auto !important;
  transform: none !important;
}
.fla-nav {
  display: flex;
  gap: 2px;
  align-items: center;
  justify-content: flex-start;
  list-style: none;
  margin: 0;
  padding: 0;
  flex-wrap: nowrap;
}
.fla-nav a {
  color: #fff;
  text-decoration: none;
  font-weight: 600;
  font-size: 14px;
  line-height: 1.2;
  padding: 10px 12px;
  border-radius: 8px;
  letter-spacing: .02em;
  white-space: nowrap;
  display: block;
}
.fla-nav a:hover,
.fla-nav .current-menu-item a { color: #fff; background: rgba(255,255,255,.12); }
.fla-nav-cart a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.fla-nav .fla-cart-count,
.fla-nav-more .fla-cart-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  background: var(--fla-orange);
  border-radius: 999px;
  font-size: 11px;
  padding: 0 5px;
  color: #fff;
}
.fla-header-actions {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-shrink: 0;
  position: relative;
  z-index: 3;
}
.fla-phone {
  color: #fff;
  text-decoration: none;
  font-weight: 600;
  font-size: 14px;
  padding: 10px 8px;
  white-space: nowrap;
}
.fla-phone:hover { color: #fff; opacity: .85; }
.fla-nav .menu-item-phone { display: none; }
.fla-nav-more .menu-item-phone { display: none !important; }
.fla-nav-more .fla-mobile-action { display: none; }
.fla-header.is-open .fla-nav-more .fla-mobile-action:not(.fla-mobile-action--account) { display: list-item; }
.fla-header.is-open.fla-profile-in-menu .fla-nav-more .fla-mobile-action--account { display: list-item; }
.fla-nav .menu-item-phone a {
  font-weight: 700;
  letter-spacing: .01em;
}
.fla-profile {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  margin-left: 2px;
  border-radius: 10px;
  text-decoration: none;
  flex-shrink: 0;
  overflow: hidden;
  box-sizing: border-box;
  border: 1px solid rgba(255,255,255,.28);
  background: transparent;
}
.fla-profile--out {
  color: #9aa3ad;
}
.fla-profile--out:hover {
  color: #c5ccd4;
  background: rgba(255,255,255,.08);
}
.fla-profile--in {
  color: #fff;
  padding: 0;
}
.fla-profile--in:hover {
  background: rgba(255,255,255,.08);
}
.fla-profile-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.fla-profile-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
}
/* Account text link only when profile icon is parked in the drawer */
.fla-nav-more .fla-mobile-action--account { display: none; }
.fla-header.fla-profile-in-menu .fla-nav-more .fla-mobile-action--account {
  display: list-item;
}
.fla-header.fla-profile-in-menu .fla-profile {
  display: none;
}
.fla-nav-more .fla-mobile-action--cart a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.fla-nav-more .fla-cart-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  background: var(--fla-orange);
  border-radius: 999px;
  font-size: 11px;
  padding: 0 5px;
  color: #fff;
}
.fla-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--fla-orange);
  color: #fff !important;
  font-weight: 700;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 1px;
  padding: 12px 18px;
  border-radius: 8px;
  white-space: nowrap;
  font-size: 13px;
}
.fla-cta:hover { background: var(--fla-orange-hover); }
.fla-cart {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #fff;
  text-decoration: none;
  font-weight: 600;
  font-size: 15px;
  padding: 12px 10px;
  white-space: nowrap;
}
.fla-cart:hover { color: #fff; opacity: .85; }
.fla-cart-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  margin-left: 0;
  background: var(--fla-orange);
  border-radius: 999px;
  font-size: 11px;
  padding: 0 5px;
}
.fla-nav > li { position: relative; flex: 0 0 auto; }
.fla-nav > .menu-item-has-children > a { padding-right: 22px; }
.fla-nav > .menu-item-has-children > a:after {
  content: "";
  display: inline-block;
  width: 0;
  height: 0;
  margin-left: 6px;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid #fff;
  vertical-align: middle;
}
.fla-nav .sub-menu {
  display: none;
  position: absolute;
  top: calc(100% - 4px);
  left: 0;
  min-width: 280px;
  max-width: 360px;
  background: #002B4E;
  padding: 10px 0;
  margin: 0;
  list-style: none;
  border-radius: 10px;
  box-shadow: 0 16px 40px rgba(0,0,0,.28);
  z-index: 40;
}
/* Submenu scroll for long dropdowns after Christian order (1.6.108):
   4=Resources, 5=Train the Trainer, 6=Onsite (cities), 7=Online.
   Home/About/Cart have no children. Overflow hide priority is JS left→right. */
.fla-nav .menu-item-has-children:nth-child(5) .sub-menu,
.fla-nav .menu-item-has-children:nth-child(6) .sub-menu,
.fla-nav .menu-item-has-children:nth-child(7) .sub-menu {
  min-width: 240px;
  columns: 1;
  max-height: 70vh;
  overflow: auto;
}
.fla-nav .sub-menu a {
  font-size: 14px;
  font-weight: 500;
  padding: 10px 16px;
  white-space: normal;
  line-height: 1.3;
}
.fla-nav > li:hover > .sub-menu,
.fla-nav > li:focus-within > .sub-menu,
.fla-nav > li.is-open > .sub-menu { display: block; }

.fla-hero-visual {
  display: flex;
  flex-direction: row;
  justify-content: flex-end;
  align-items: flex-end;
  gap: 10px;
}
.fla-hero-visual .fla-shopper { width: 170px; height: auto; }
/* Inset warehouse still removed  -  live hero is full-bleed photo only */
.fla-hero-still { display: none !important; }
.fla-all-certs { margin: 28px 0 0; text-align: center; }
.fla-all-certs .fla-link { text-transform: lowercase; font-size: 16px; }
.fla-why small { display: block; font-weight: 500; color: var(--fla-muted); margin-top: 4px; }

/* Logo strip: continuous full-bleed marquee (soft-match live 29425 / home §2)
   1.5.80: larger logos (~68px) + ensure track wide enough for seamless -50% loop */
.fla-logos {
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 22px 0 18px;
  background: #fff;
  box-sizing: border-box;
  overflow: hidden;
}
.fla-logos > .fla-wrap,
.fla-logos .fla-wrap {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.fla-logos-box {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden;
  width: 100%;
}
.fla-logos h2 {
  font-size: clamp(15px, 1.6vw, 20px);
  font-weight: 800;
  text-transform: uppercase;
  text-align: center;
  margin: 0 0 12px;
  color: var(--fla-navy);
  padding: 0 16px;
  letter-spacing: 0.02em;
  line-height: 1.2;
}
.fla-logos-viewport {
  overflow: hidden;
  width: 100%;
  mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
}
.fla-logos-track {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 48px;
  width: max-content;
  max-width: none;
  padding: 6px 0;
  margin: 0;
  animation: fla-marquee 72s linear infinite;
  will-change: transform;
}
.fla-logos-box:hover .fla-logos-track { animation-play-state: paused; }
.fla-logos-track img {
  height: 68px !important;
  width: auto !important;
  max-height: 68px !important;
  max-width: 180px !important;
  object-fit: contain;
  filter: none;
  opacity: 1;
  flex: 0 0 auto;
  display: block;
  background: transparent !important;
}
@keyframes fla-marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
  .fla-logos-track { animation: none; }
}
@media (max-width: 767px) {
  .fla-logos { padding: 16px 0 14px; }
  .fla-logos-track { gap: 36px; }
  .fla-logos-track img {
    height: 48px !important;
    max-height: 48px !important;
    max-width: 130px !important;
  }
}

.fla-quote {
  /* Careful-import: soft-match live quote band; image in theme CSS */
  --fla-quote-image: url("assets/photos/testimonial-cover.jpg");
  background:
    linear-gradient(90deg, rgba(0,44,78,.82), rgba(0,44,78,.45)),
    var(--fla-quote-image) center / cover no-repeat,
    var(--fla-header);
  color: #fff;
  padding: 72px 0;
}
.fla-quote blockquote { margin: 0; max-width: 720px; }
.fla-quote blockquote p {
  font-size: clamp(22px, 3vw, 34px);
  font-weight: 700;
  line-height: 1.35;
  margin: 0;
  color: #fff;
}
.fla-quote-more {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 18px 0 0;
  font-size: 16px;
  font-weight: 600;
  color: rgba(255,255,255,.92);
}
.fla-quote-more a.fla-quote-sa {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.fla-quote-more a.fla-quote-sa:hover {
  color: #EC572C;
}

.fla-reviews {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}
.fla-reviews blockquote {
  margin: 0;
  background: #fff;
  border-radius: 12px;
  padding: 22px;
  box-shadow: var(--fla-shadow);
}
.fla-reviews p { margin: 0 0 14px; color: var(--fla-muted); }
.fla-reviews footer { font-weight: 700; color: var(--fla-navy); }

.fla-city {
  text-decoration: none;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  position: relative;
  overflow: hidden;
}
.fla-city:hover { color: #fff; }
.fla-onsite-photo { width: 100%; border-radius: 12px; object-fit: cover; max-height: 240px; margin-bottom: 18px; }
.fla-footer-nap p { margin: 0 0 10px; line-height: 1.5; }
.fla-copy-links a { display: inline; margin-left: 14px; }
.fla-pay-badges { display: block; margin: 16px 0 0 auto; height: 24px; width: auto; }

.fla-menu-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  margin: 0;
  padding: 0;
  background: transparent;
  border: 1px solid rgba(255,255,255,.28);
  color: #fff;
  border-radius: 10px;
  cursor: pointer;
  flex: 0 0 auto;
}
.fla-header.has-overflow .fla-menu-toggle,
.fla-header.is-compact .fla-menu-toggle,
.fla-header.fla-profile-in-menu .fla-menu-toggle { display: inline-flex; }
.fla-nav-more {
  display: none;
  list-style: none;
  margin: 0;
  padding: 0;
}
.fla-header.is-open:not(.is-compact) .fla-nav-more {
  display: block;
  position: absolute;
  top: 100%;
  left: 0;
  right: auto;
  min-width: 260px;
  max-width: min(360px, 92vw);
  background: #002B4E;
  border-radius: 10px;
  padding: 10px 0;
  box-shadow: 0 16px 40px rgba(0,0,0,.28);
  z-index: 50;
}
.fla-header.is-compact.is-open .fla-nav-cluster,
.fla-header.is-compact.is-open .fla-nav-overflow {
  position: static;
}
.fla-header.is-compact.is-open .fla-nav-more {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 4px;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  width: auto;
  min-width: 0;
  max-width: none;
  background: #002B4E;
  border-radius: 0;
  padding: 12px 32px 20px;
  box-shadow: none;
  border-top: 1px solid rgba(255,255,255,.12);
  z-index: 50;
  box-sizing: border-box;
}
.fla-nav-more > li { position: relative; }
.fla-nav-more a {
  color: #fff;
  text-decoration: none;
  font-weight: 600;
  font-size: 14px;
  line-height: 1.2;
  padding: 10px 16px;
  letter-spacing: .02em;
  display: block;
  white-space: normal;
}
.fla-header.is-compact .fla-nav-more a {
  font-size: 16px;
  padding: 14px 16px;
  border-radius: 10px;
}
.fla-nav-more a:hover { color: #fff; background: rgba(255,255,255,.12); }
.fla-nav-more > .menu-item-has-children > a { padding-right: 22px; }
.fla-nav-more > .menu-item-has-children > a:after {
  content: "";
  display: inline-block;
  width: 0;
  height: 0;
  margin-left: 6px;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid #fff;
  vertical-align: middle;
}
.fla-nav-more .sub-menu {
  position: static;
  display: none;
  min-width: 0;
  max-width: none;
  max-height: none;
  box-shadow: none;
  background: transparent;
  padding: 0 0 8px 12px;
  margin: 0;
  list-style: none;
  border-radius: 0;
}
.fla-nav-more > li.is-open > .sub-menu { display: block; }
.fla-nav-more > li:hover > .sub-menu { display: none; }
.fla-nav-more > li.is-open:hover > .sub-menu { display: block; }
.fla-nav-more .sub-menu a {
  font-size: 14px;
  font-weight: 500;
  padding: 10px 16px;
  white-space: normal;
  line-height: 1.3;
}
.fla-menu-toggle:hover { background: rgba(255,255,255,.08); }
.fla-hamburger {
  display: block;
  width: 20px;
  height: 2px;
  background: #fff;
  position: relative;
  border-radius: 2px;
}
.fla-hamburger:before,
.fla-hamburger:after {
  content: "";
  display: block;
  width: 20px;
  height: 2px;
  background: #fff;
  position: absolute;
  left: 0;
  border-radius: 2px;
}
.fla-hamburger:before { top: -7px; }
.fla-hamburger:after { top: 7px; }
.fla-header.is-open .fla-hamburger { background: transparent; }
.fla-header.is-open .fla-hamburger:before { top: 0; transform: rotate(45deg); }
.fla-header.is-open .fla-hamburger:after { top: 0; transform: rotate(-45deg); }

/* Hero exact-match live www: full-bleed photo + dual-gradient ::before overlay */
.fla-hero {
  /* Careful-import: CSS owns hero photo (no Elementor HTML style=) */
  --fla-hero-image: url("assets/hero-img-desktop.jpg");
  background-color: #0A1D2A;
  background-image: var(--fla-hero-image);
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  color: #fff;
  /* Closer to live ~535px content band (DEV header is taller than live) */
  padding: 72px 0 64px;
  min-height: 535px;
  display: flex;
  align-items: flex-end;
  position: relative;
  overflow: hidden;
}
.fla-hero::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  z-index: 0;
  pointer-events: none;
  background:
    linear-gradient(358.34deg, rgba(10, 29, 42, 0) 82.03%, rgba(10, 29, 42, 0.8) 98.44%),
    linear-gradient(90.08deg, rgba(10, 29, 42, 0) 5.54%, rgba(10, 29, 42, 0.8) 72.51%);
  transform: matrix(-1, 0, 0, 1, 0, 0);
}
@media (max-width: 1279px) {
  .fla-hero::before { background: rgba(10, 29, 42, 0.6); transform: none; }
}
@media (max-width: 767px) {
  .fla-hero::before { background: rgba(10, 29, 42, 0.8); transform: none; }
}
.fla-hero > * { position: relative; z-index: 1; }
.fla-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 61fr) minmax(0, 37fr);
  gap: 40px;
  align-items: flex-end;
  width: min(1400px, calc(100% - 40px));
  max-width: 1400px; /* beat .fla-wrap --fla-max:1220 when both classes present */
  margin: 0 auto;
}
.fla-hero .fla-wrap.fla-hero-grid {
  width: min(1400px, calc(100% - 40px));
  max-width: 1400px;
}
.fla-hero-copy {
  min-width: 0;
  max-width: none;
}
.fla-trust-badges {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}
.fla-trust-badges img {
  height: 54px;
  width: auto;
  object-fit: contain;
  filter: none;
}
.fla-trust-badges img.fla-badge-color {
  filter: none;
}
.fla-hero-card .fla-shopper {
  width: 183px;
  height: auto;
  margin: 0 0 12px;
  filter: none;
  border-radius: 0;
}
.fla-kicker {
  display: inline-block;
  background: rgba(251,187,0,.15);
  color: var(--fla-gold);
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: 12px;
  padding: 6px 10px;
  border-radius: 999px;
  margin-bottom: 16px;
}
.fla-hero h1 {
  font-size: 50px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: -0.02em;
  line-height: 1.15;
  margin: 0 0 14px;
  color: #fff;
  /* ~width of "AMERICA'S #1 ONLINE FORKLIFT" → live 3-line wrap */
  max-width: 18em;
}
@media (max-width: 1366px) {
  .fla-hero h1 { font-size: 48px; }
}
@media (max-width: 1024px) {
  .fla-hero h1 { font-size: 42px; max-width: none; letter-spacing: -0.015em; }
}
@media (max-width: 767px) {
  .fla-hero h1 { font-size: 32px; max-width: none; letter-spacing: 0; line-height: 1.2; }
}
.fla-hero p.lead {
  font-size: 20px;
  font-weight: 400;
  color: #fff;
  margin: 0 0 20px;
  max-width: 640px;
  line-height: 1.5;
}
.fla-actions { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 16px; }
.fla-hero .fla-actions {
  flex-wrap: nowrap;
  gap: 10px;
}
.fla-btn {
  display: inline-flex;
  flex-direction: row; /* icon after label in markup → arrow on RIGHT (live) */
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: var(--fla-orange);
  color: #fff;
  font-family: Outfit, "Segoe UI", sans-serif;
  font-weight: 600;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 12px 22px; /* more compact than prior 18x35 */
  border-radius: 8px;
  border: 0;
  cursor: pointer;
  font-size: 14px;
  white-space: nowrap;
}
.fla-hero .fla-btn {
  flex: 0 0 auto;
}
.fla-btn .fla-btn-icon,
.fla-btn img.fla-btn-icon {
  width: 20px;
  height: 20px;
  display: block;
  flex: 0 0 20px;
}
.fla-btn:hover { background: var(--fla-orange-hover); color: #fff; }
.fla-btn.ghost {
  background: #fff;
  color: var(--fla-navy);
  border: 0;
}
.fla-btn.ghost:hover { background: #f3f6fa; color: var(--fla-navy); }
.fla-btn.ghost .fla-btn-icon { filter: none; }
.fla-hero-card {
  background: rgba(8,12,51,.35);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 16px;
  padding: 18px;
  backdrop-filter: blur(8px);
}
.fla-hero-card img { width: 100%; border-radius: 0; display: block; }
.fla-price-chip {
  margin-top: 14px;
  background: #fff;
  color: var(--fla-navy);
  border-radius: 12px;
  padding: 14px 16px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}
.fla-price-chip b { font-size: 22px; color: var(--fla-orange); }

/* Sections */
.fla-section { padding: 80px 0; } /* careful-import soft-match live ~70-120 */
.fla-section.alt { background: var(--fla-bg); }
.fla-section h2,
.fla-band h2 {
  font-size: clamp(24px, 3vw, 40px);
  font-weight: 800;
  text-transform: uppercase;
  line-height: 1.2;
  margin: 0 0 10px;
  color: var(--fla-navy);
}
.fla-eyebrow {
  color: var(--fla-blue);
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
  font-size: 14px;
  margin: 0 0 8px;
}
/* Audience clue badges: overlay photo (live .tag soft-match) */
.fla-card-media {
  position: relative;
  flex: 0 0 auto;
  display: block;
  overflow: hidden;
}
.fla-card-media img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  display: block;
}
.fla-card-kicker {
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 2;
  display: inline-block;
  max-width: calc(100% - 20px);
  box-sizing: border-box;
  color: #fff;
  background: rgba(22, 93, 149, 0.74); /* live #165D95BD */
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin: 0 !important;
  padding: 7px 10px;
  border-radius: 8px;
  line-height: 1.25;
}
.fla-band {
  background: var(--fla-header);
  color: #fff;
  padding: 48px 0;
}
.fla-band-inner {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: center;
}
.fla-band h2 { color: #fff; margin-bottom: 8px; }
.fla-band p { margin: 0; color: #d7e3ee; max-width: 640px; }
.fla-sub { color: var(--fla-muted); margin: 0 0 32px; max-width: 680px; }
/* Audience panels: blue product panels + image (soft-match live home) */
.fla-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
.fla-card {
  background: var(--fla-blue);
  border-radius: 10px;
  overflow: hidden;
  box-shadow: var(--fla-shadow);
  display: flex;
  flex-direction: column;
  color: #fff;
  min-height: 100%;
}
.fla-card > img,
.fla-card-media > img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  display: block;
  flex: 0 0 auto;
}
.fla-card .body {
  padding: 22px 22px 24px;
  display: flex;
  flex-direction: column;
  flex: 1;
  background: var(--fla-blue);
  color: #fff;
}
.fla-card h3 {
  margin: 0 0 10px;
  color: #fff;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  font-size: clamp(20px, 1.8vw, 26px);
  line-height: 1.15;
}
.fla-card p {
  margin: 0 0 16px;
  color: rgba(255, 255, 255, 0.92);
  font-size: 15px;
  line-height: 1.5;
}
.fla-card .fla-link {
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: flex-start;
  background: var(--fla-orange);
  color: #fff !important;
  font-family: Outfit, "Segoe UI", sans-serif;
  font-weight: 600;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 1px;
  padding: 11px 20px;
  border-radius: 8px;
  font-size: 14px;
}
.fla-card .fla-link:hover {
  background: var(--fla-orange-hover);
  color: #fff !important;
}
.fla-link { font-weight: 700; color: var(--fla-orange); text-decoration: none; }

/* Why Choose  -  continuous full-bleed + polished cards (1.5.67) */
.fla-why-section {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: 56px 0 52px;
}
.fla-why-section > .fla-wrap {
  /* Use more horizontal space than default 1220 so cards feel continuous */
  width: min(1360px, calc(100% - 40px));
  max-width: 1360px;
  margin-inline: auto;
}
.fla-why-section .fla-sub {
  max-width: 820px;
  margin: 0 auto 20px;
  text-align: center;
}
.fla-why-section h2 {
  text-align: center;
  margin: 0 0 10px;
}
.fla-why {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 4px;
  align-items: stretch;
}
.fla-why-card {
  background: #fff;
  border: 1px solid #e4eaf0;
  border-radius: 12px;
  padding: 18px 16px 16px;
  box-shadow: 0 8px 22px rgba(8, 12, 51, 0.08);
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 100%;
  height: 100%;
  box-sizing: border-box;
}
.fla-why-icon {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #145C94;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  margin-bottom: 2px;
  box-shadow: 0 4px 10px rgba(20, 92, 148, 0.25);
}
.fla-why-icon svg {
  display: block;
  width: 22px;
  height: 22px;
  flex: 0 0 auto;
}
.fla-why-card h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 800;
  color: var(--fla-navy);
  line-height: 1.25;
}
.fla-why-card p {
  margin: 0;
  font-size: 13.5px;
  font-weight: 500;
  color: var(--fla-muted);
  line-height: 1.45;
  flex: 1 1 auto;
}
.fla-why small { display: block; font-weight: 500; color: var(--fla-muted); margin-top: 4px; }

.fla-products {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}
.fla-product {
  background: var(--fla-blue);
  border-radius: 10px;
  box-shadow: var(--fla-shadow);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  color: #fff;
}
.fla-product img { height: 140px; width: 100%; object-fit: cover; display: block; }
.fla-product .body {
  padding: 14px 14px 14px;
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  background: var(--fla-blue);
  color: #fff;
  gap: 8px;
}
.fla-product h3 {
  font-size: 15px;
  margin: 0;
  min-height: 0;
  color: #fff;
  font-weight: 700;
  line-height: 1.3;
}
.fla-product .price {
  color: #fff;
  font-size: 20px;
  font-weight: 800;
  margin: 0;
  line-height: 1.2;
}
.fla-product .fla-btn {
  margin-top: 0;
  width: 100%;
  background: var(--fla-orange);
  color: #fff;
}
.fla-product .fla-btn:hover {
  background: var(--fla-orange-hover);
  color: #fff;
}

.fla-cities {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
.fla-city {
  background: var(--fla-header) center center / cover no-repeat;
  color: #fff;
  min-height: 200px;
  border-radius: 10px;
  font-weight: 700;
  text-align: center;
  padding: 0;
}
.fla-city-name {
  display: block;
  background: var(--fla-header);
  padding: 8px 16px;
  font-size: 15px;
  font-weight: 700;
  border-radius: 0 0 10px 10px;
  position: relative;
  z-index: 1;
}
.fla-city-arrow {
  position: absolute;
  top: 42%;
  left: 50%;
  width: 56px;
  height: 56px;
  margin: -28px 0 0 -28px;
  border-radius: 50%;
  background: rgba(236, 87, 44, 0.85);
  opacity: 0;
  transition: opacity .2s ease;
  z-index: 2;
}
.fla-city-arrow:after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 14px;
  height: 14px;
  margin: -7px 0 0 -8px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: rotate(45deg);
}
.fla-city:hover .fla-city-arrow { opacity: 1; }
.fla-scissor img { width: 100%; border-radius: 12px; object-fit: cover; max-height: 360px; }

.fla-form {
  background: #fff;
  border-radius: 16px;
  box-shadow: var(--fla-shadow);
  padding: 28px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.fla-form label { font-size: 13px; font-weight: 700; color: var(--fla-navy); display: block; margin-bottom: 6px; }
.fla-form input, .fla-form textarea, .fla-form select {
  width: 100%;
  border: 1px solid #d5dde6;
  border-radius: 8px;
  padding: 11px 12px;
  font: inherit;
  box-sizing: border-box;
}
.fla-form .full { grid-column: 1 / -1; }
.fla-notice { padding: 12px 14px; border-radius: 8px; background: #e8f7ee; color: #146c2e; font-weight: 600; margin-bottom: 16px; }
.fla-notice.err { background: #fdecea; color: #9b1c1c; }

/* FAQ: two-column accordion feel (details/summary, no JS) */
.fla-faq {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 20px;
  align-items: start;
}
.fla-faq details {
  background: #fff;
  border-radius: 10px;
  padding: 14px 18px;
  margin-bottom: 0;
  box-shadow: var(--fla-shadow);
  border: 1px solid #e4eaf0;
}
.fla-faq summary {
  cursor: pointer;
  font-weight: 700;
  color: var(--fla-header);
  list-style: none;
}
.fla-faq summary::-webkit-details-marker { display: none; }
.fla-faq summary::after {
  content: "+";
  float: right;
  color: var(--fla-orange);
  font-weight: 800;
  margin-left: 12px;
  transition: transform .15s ease;
}
.fla-faq details[open] summary::after {
  transform: rotate(45deg);
}
.fla-faq details p {
  margin: 10px 0 0;
  color: var(--fla-muted);
  line-height: 1.55;
  font-size: 15px;
}
@media (max-width: 768px) {
  .fla-faq { grid-template-columns: 1fr; }
}

/* Footer */
.site-footer.fla-footer {
  background: var(--fla-footer);
  color: #c5d0dc;
  padding: 60px 0 24px;
}
.fla-footer-inner {
  width: min(var(--fla-max), calc(100% - 48px));
  max-width: var(--fla-max);
  margin-inline: auto;
  box-sizing: border-box;
  padding: 0;
}
.fla-footer-logo {
  width: 200px;
  height: auto;
  max-width: 100%;
  display: block;
  margin-bottom: 14px;
}
.fla-footer-brand p { margin: 0; line-height: 1.5; }
.fla-footer-note { margin-top: 12px; font-size: 13px; color: #9aabc0; }
.fla-footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1.2fr;
  gap: 32px;
  margin-bottom: 28px;
}
.fla-footer h4 {
  color: #fff;
  margin: 0 0 12px;
  font-size: 20px;
  font-weight: 700;
  text-transform: uppercase;
}
.fla-footer a { color: #c5d0dc; text-decoration: none; display: block; margin: 0 0 8px; }
.fla-footer a:hover { color: #fff; }
.fla-footer .fla-copy {
  border-top: 1px solid rgba(255,255,255,.08);
  padding-top: 14px;
  margin-top: 8px;
  font-size: 12px;
  line-height: 1.4;
  display: block;
  background: transparent;
  border-left: 0;
  border-right: 0;
  border-bottom: 0;
  border-radius: 0;
  color: rgba(197, 208, 220, .55);
  font-family: inherit;
  cursor: default;
}
.fla-footer .fla-copy-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.fla-footer .fla-copy a {
  display: inline;
  margin: 0 0 0 14px;
  color: rgba(197, 208, 220, .45);
  font-size: 12px;
}
.fla-footer .fla-copy a:hover {
  color: rgba(255, 255, 255, .7);
}
.fla-footer .fla-copy-links a { margin-left: 14px; }
.fla-footer .fla-copy-confidential {
  margin: 10px 0 0;
  max-width: 920px;
  font-size: 11px;
  line-height: 1.45;
  color: rgba(197, 208, 220, .38);
}

/* Inner pages */
.fla-page-hero {
  background: var(--fla-header);
  color: #fff;
  padding: 48px 0;
}
.fla-page-hero h1 {
  margin: 0 0 8px;
  color: #fff;
  font-weight: 800;
  text-transform: uppercase;
}
.fla-content { padding: 48px 0 72px; }
.fla-content .fla-wrap { max-width: 860px; }
.fla-content.wide .fla-wrap { max-width: var(--fla-max); }

/* Woo */
.woocommerce ul.products li.product .price,
.woocommerce div.product p.price { color: var(--fla-orange) !important; font-weight: 800; }
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce .button.alt {
  background: var(--fla-orange) !important;
  color: #fff !important;
  border-radius: 8px !important;
  font-weight: 700 !important;
}
.woocommerce span.onsale { background: var(--fla-blue) !important; }

/* Shop, live Training Programs filter chips + product cards */
.fla-shop-filters { margin: 0 0 28px; }
.fla-shop-filter-kicker {
  margin: 18px 0 10px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--fla-muted);
}
.fla-shop-filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.fla-chip {
  display: inline-flex;
  align-items: center;
  background: #fff;
  color: var(--fla-navy);
  border: 1px solid #d5dde6;
  border-radius: 999px;
  padding: 8px 14px;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  line-height: 1.2;
}
.fla-chip:hover,
.fla-chip.is-active {
  background: var(--fla-header);
  color: #fff;
  border-color: var(--fla-header);
}
body.hello-elementor-fla ul.products {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  list-style: none;
  padding: 0;
  margin: 0;
}
body.hello-elementor-fla ul.products::before,
body.hello-elementor-fla ul.products::after { display: none !important; content: none !important; }
body.hello-elementor-fla ul.products li.product {
  width: auto !important;
  float: none !important;
  margin: 0 !important;
  background: #fff;
  border-radius: 12px;
  box-shadow: var(--fla-shadow);
  overflow: hidden;
  padding: 0 0 18px !important;
  display: flex;
  flex-direction: column;
}
body.hello-elementor-fla ul.products li.product a img,
body.hello-elementor-fla ul.products li.product img {
  width: 100%;
  height: 180px;
  object-fit: cover;
  margin: 0;
  border-radius: 0;
}
body.hello-elementor-fla ul.products li.product .woocommerce-loop-product__title,
body.hello-elementor-fla ul.products li.product h2 {
  font-size: 16px;
  font-weight: 700;
  padding: 14px 16px 0;
  margin: 0;
  line-height: 1.35;
  color: var(--fla-navy);
}
body.hello-elementor-fla ul.products li.product .price {
  padding: 8px 16px 0;
  font-size: 18px;
  color: var(--fla-orange) !important;
}
body.hello-elementor-fla ul.products li.product .button {
  margin: 14px 16px 0 !important;
  width: calc(100% - 32px);
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 1px;
  padding: 12px 16px !important;
}
body.hello-elementor-fla .woocommerce-result-count,
body.hello-elementor-fla .woocommerce-ordering {
  font-size: 14px;
  color: var(--fla-muted);
}

/* Contact, live two-column NAP + form */
.fla-contact-layout {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 36px;
  align-items: start;
}
.fla-contact-demo-note {
  font-size: 14px;
  color: var(--fla-muted);
  margin: 0 0 16px;
}
.fla-contact-nap {
  background: var(--fla-footer);
  color: #e8eef5;
  border-radius: 16px;
  padding: 28px 24px;
}
.fla-contact-nap h2 {
  margin: 0 0 12px;
  color: #fff;
  font-size: 18px;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.fla-contact-nap p { margin: 0 0 10px; line-height: 1.5; }
.fla-contact-nap a { color: #fff; }
.fla-contact-nap .fla-btn { margin-top: 8px; }

@media (max-width: 900px) {
  body.hello-elementor-fla ul.products { grid-template-columns: 1fr 1fr; }
  .fla-contact-layout { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  body.hello-elementor-fla ul.products { grid-template-columns: 1fr; }
}

/* Cert / PWA  -  horizontal operator card (driver's-license style) */
.fla-cert-app {
  min-height: 100vh;
  background: linear-gradient(180deg, #07112a 0%, #04618a 100%);
  padding: 16px 10px 36px;
  color: #fff;
  position: relative;
  isolation: isolate;
}
.fla-cert-card {
  max-width: 580px;
  margin: 0 auto;
  background: #fff;
  color: var(--fla-navy);
  border-radius: 12px;
  overflow: hidden;
  position: relative;
  z-index: 1;
  border: 1px solid rgba(255,255,255,.35);
  box-shadow:
    0 2px 4px rgba(0,0,0,.18),
    0 12px 28px rgba(0,0,0,.28),
    0 28px 56px rgba(0,0,0,.32),
    0 0 0 1px rgba(8,12,51,.06);
  transform: translateY(-2px);
}
.fla-cert-app::before {
  content: "";
  pointer-events: none;
  position: absolute;
  left: 50%;
  top: 120px;
  width: min(620px, 92%);
  height: 220px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at center, rgba(0,0,0,.35) 0%, rgba(0,0,0,0) 70%);
  z-index: 0;
}
.fla-cert-card--dl {
  max-width: min(580px, 100%);
  width: 100%;
  display: flex;
  flex-direction: column;
}
.fla-cert-head {
  background: var(--fla-logo-blue);
  color: #fff;
  padding: 8px 12px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
  overflow: visible;
}
.fla-cert-head .fla-cert-logo {
  justify-self: start;
}
.fla-cert-head-title {
  justify-self: center;
  text-align: center;
}
.fla-cert-head-reg {
  justify-self: end;
  text-align: right;
  margin-left: 0;
}
.fla-cert-head img,
.fla-cert-logo {
  /* Logo is white artwork for dark backgrounds  -  never put a white chip behind it. */
  height: auto !important;
  width: auto !important;
  max-height: 56px;
  max-width: 230px;
  object-fit: contain;
  object-position: left center;
  flex-shrink: 0;
  display: block;
  background: transparent;
  border-radius: 0;
  padding: 0;
  box-sizing: content-box;
}
.fla-cert-head-title {
  font-size: 15px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--fla-gold);
  white-space: nowrap;
}
.fla-cert-head-reg {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .04em;
  opacity: .95;
  white-space: nowrap;
}
.fla-cert-body {
  padding: 8px 10px 9px;
  text-align: left;
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.fla-cert-body > .fla-cert-dl {
  width: 100%;
}
.fla-cert-body > .fla-cert-code {
  width: 100%;
  flex: 0 0 auto;
  text-align: left;
}
.fla-cert-body h2 {
  margin: 0 0 2px;
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--fla-muted);
}
.fla-cert-dl {
  display: grid;
  grid-template-columns: 128px minmax(0, 1fr) auto;
  gap: 10px;
  width: 100%;
  align-items: start;
}
.fla-cert-dl-qr {
  align-self: start;
  margin-top: 0;
  justify-self: end;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.fla-cert-dl-qr .fla-cert-status {
  display: block;
  width: 100%;
  box-sizing: border-box;
  text-align: center;
  margin: 0;
  padding: 6px 10px;
  border-radius: 6px;
  font-size: 12px;
}
.fla-cert-dl-photo {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
}
.fla-cert-card--dl .fla-cert-photo {
  width: 128px;
  height: 160px;
  border-radius: 6px;
  border-width: 2px;
}
.fla-cert-dl-fields {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.fla-cert-dl-label {
  margin: 0 0 2px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--fla-muted);
  line-height: 1.2;
}
.fla-cert-identity {
  display: flex;
  align-items: center;
  gap: 8px;
  text-align: left;
  margin: 4px 0;
}
.fla-cert-identity-text { min-width: 0; flex: 1; }
.fla-cert-name {
  font-size: 22px;
  font-weight: 800;
  margin: 2px 0 0;
  line-height: 1.1;
}
.fla-cert-add-photo {
  display: inline-block;
  margin-top: 2px;
  color: var(--fla-blue);
  font-weight: 700;
  font-size: 11px;
  text-align: center;
}
.fla-cert-course {
  font-weight: 700;
  color: var(--fla-blue);
  margin: 3px 0 6px;
  font-size: 16px;
  line-height: 1.25;
}
.fla-cert-mid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: start;
  margin: 0 0 5px;
}
.fla-cert-meta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px;
  text-align: left;
  margin: 0;
  min-width: 0;
}
.fla-cert-meta {
  margin: 0 0 6px;
}
.fla-cert-meta div {
  background: var(--fla-bg);
  border-radius: 5px;
  padding: 6px 8px;
  font-size: 13px;
  line-height: 1.25;
  min-width: 0;
  overflow-wrap: anywhere;
}
.fla-cert-meta small,
.fla-cert-certified small {
  display: block;
  color: var(--fla-muted);
  font-weight: 700;
  text-transform: uppercase;
  font-size: 10px;
  margin-bottom: 2px;
  letter-spacing: .04em;
}
.fla-cert-certified {
  background: var(--fla-bg);
  border-radius: 5px;
  padding: 6px 8px;
  font-size: 13px;
  line-height: 1.25;
  margin: 0 0 6px;
  overflow-wrap: anywhere;
}
.fla-cert-dl-footer {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 0;
  min-width: 0;
}
.fla-cert-code {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  background: var(--fla-logo-blue);
  color: var(--fla-gold);
  padding: 8px 12px;
  border-radius: 5px;
  letter-spacing: .03em;
  font-weight: 700;
  font-size: 14px;
  width: 100%;
  box-sizing: border-box;
  overflow-wrap: anywhere;
  line-height: 1.35;
  text-align: left;
}
.fla-cert-code-label {
  color: #fff;
  font-weight: 800;
  letter-spacing: .04em;
  margin-right: 4px;
}
.fla-cert-company {
  margin-top: 2px;
  font-size: 14px;
  font-weight: 600;
  color: var(--fla-muted);
  line-height: 1.2;
}
.fla-cert-qr {
  margin: 0;
  text-align: center;
  flex-shrink: 0;
}
.fla-cert-mid .fla-cert-qr {
  margin: 0;
}
.fla-cert-qr a {
  display: inline-block;
  background: #fff;
  padding: 2px;
  border-radius: 4px;
  line-height: 0;
  border: 1px solid #e2e8f0;
}

.fla-cert-qr-wrap {
  position: relative;
  display: inline-block;
  line-height: 0;
}
.fla-cert-qr-mark {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 22%;
  min-width: 28px;
  padding: 3px;
  background: #fff;
  border-radius: 6px;
  box-sizing: border-box;
  box-shadow: 0 0 0 1px #fff;
}
.fla-cert-qr-mark img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 4px;
  background: #145C94;
}

/* Multi-cert type themes */
.fla-cert-card--pit .fla-cert-head { background: #145C94; }
.fla-cert-card--pit .fla-cert-head-title { color: #EC572C; }
.fla-cert-card--pit .fla-cert-code { background: #145C94; color: #EC572C; }
.fla-cert-card--pit .fla-cert-course { color: #145C94; }

.fla-cert-card--scissor .fla-cert-head { background: #EC5424; }
.fla-cert-card--scissor .fla-cert-head-title { color: #fff; }
.fla-cert-card--scissor .fla-cert-head-reg { color: #fff; }
.fla-cert-card--scissor .fla-cert-code { background: #EC5424; color: #fff; }
.fla-cert-card--scissor .fla-cert-code-label { color: #145C94; }
.fla-cert-card--scissor .fla-cert-course { color: #EC5424; }
.fla-cert-card--scissor .fla-cert-qr-mark img { background: #EC5424; }

/* TTT forklift: same as PIT + gold strip */
.fla-cert-card--ttt .fla-cert-head { background: #C49F34; }
.fla-cert-card--ttt .fla-cert-head-title { color: #080C33; }
.fla-cert-card--ttt .fla-cert-code { background: #C49F34; color: #080C33; }
.fla-cert-card--ttt .fla-cert-course { color: #C49F34; }

.fla-cert-card--ttt .fla-cert-head-reg { color: #080C33; }
.fla-cert-card--ttt .fla-cert-code-label { color: #080C33; }
.fla-cert-card--ttt .fla-cert-qr-mark img { background: #145C94; }


/* TTT scissor: gold Trainer card; orange QR mark + photo ring */
.fla-cert-card--ttt-scissor .fla-cert-head { background: #C49F34; }
.fla-cert-card--ttt-scissor .fla-cert-head-title { color: #080C33; }
.fla-cert-card--ttt-scissor .fla-cert-head-reg { color: #080C33; }
.fla-cert-card--ttt-scissor .fla-cert-code { background: #C49F34; color: #080C33; }
.fla-cert-card--ttt-scissor .fla-cert-code-label { color: #080C33; }
.fla-cert-card--ttt-scissor .fla-cert-course { color: #C49F34; }
.fla-cert-card--ttt-scissor .fla-cert-qr-mark img { background: #EC5424; }

/* Trainer photo rings: FL blue / SL orange */
.fla-cert-card--ttt .fla-cert-photo,
.fla-cert-card--ttt .fla-cert-photo-placeholder {
  border-color: #145C94;
}
.fla-cert-card--ttt-scissor .fla-cert-photo,
.fla-cert-card--ttt-scissor .fla-cert-photo-placeholder {
  border-color: #EC5424;
}
.fla-cert-tile.fla-cert-card--ttt .fla-cert-tile-photo img,
.fla-cert-tile.fla-cert-card--ttt .fla-cert-tile-photo-ph {
  border-color: #145C94;
}
.fla-cert-tile.fla-cert-card--ttt-scissor .fla-cert-tile-photo img,
.fla-cert-tile.fla-cert-card--ttt-scissor .fla-cert-tile-photo-ph {
  border-color: #EC5424;
}

/* Gold TTT strip (trainer mark on matching operator colors) */
.fla-cert-ttt-strip {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: linear-gradient(90deg, #9a7a1c 0%, #C4A035 35%, #e8d078 50%, #C4A035 65%, #9a7a1c 100%);
  color: #080C33;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .22em;
  text-transform: uppercase;
  padding: 5px 12px;
  line-height: 1.2;
  flex-shrink: 0;
}
.fla-cert-ttt-strip::before,
.fla-cert-ttt-strip::after {
  content: "";
  flex: 1;
  height: 2px;
  max-width: 72px;
  background: rgba(8,12,51,.35);
  border-radius: 1px;
}
.fla-cert-tile-ttt-strip {
  padding: 4px 10px;
  font-size: 10px;
  letter-spacing: .18em;
}
.fla-cert-tile-ttt-strip::before,
.fla-cert-tile-ttt-strip::after {
  max-width: 40px;
}

/* Certification tile grid (2+ cards) */
.fla-cert-tiles {
  max-width: 720px;
  margin: 0 auto 18px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
  position: relative;
  z-index: 1;
}
.fla-cert-tile {
  display: block;
  flex: 0 0 220px;
  width: 220px;
  max-width: 100%;
  box-sizing: border-box;
  background: #fff;
  color: var(--fla-navy);
  border-radius: 12px;
  overflow: hidden;
  text-decoration: none;
  box-shadow: 0 10px 28px rgba(0,0,0,.28);
  border: 1px solid rgba(255,255,255,.35);
  transition: transform .15s ease, box-shadow .15s ease;
}
.fla-cert-tile:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 32px rgba(0,0,0,.34);
  color: var(--fla-navy);
}
.fla-cert-tile-bar {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 10px 12px;
  min-height: 48px;
}
.fla-cert-tile-bar img {
  max-height: 28px;
  max-width: 160px;
  width: auto;
  height: auto;
  display: block;
  object-fit: contain;
}
.fla-cert-tile-body {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 10px;
  padding: 12px;
  align-items: center;
}
.fla-cert-tile-photo img,
.fla-cert-tile-photo-ph {
  width: 56px;
  height: 70px;
  object-fit: cover;
  border-radius: 6px;
  display: block;
  border: 2px solid #e2e8f0;
}
.fla-cert-tile-photo-ph {
  background: #0b1a3a;
}
.fla-cert-tile-meta {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.fla-cert-tile-type {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--fla-muted);
}
.fla-cert-tile-course {
  font-size: 14px;
  font-weight: 700;
  line-height: 1.25;
  overflow-wrap: anywhere;
}
.fla-cert-tile-pill {
  display: inline-block;
  align-self: flex-start;
  margin-top: 4px;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #fff;
}
.fla-cert-tile-pill.active { background: #0a7a3e; }
.fla-cert-tile-pill.expired { background: #b42318; }
.fla-cert-tile.fla-cert-card--pit .fla-cert-tile-course { color: #145C94; }
.fla-cert-tile.fla-cert-card--scissor .fla-cert-tile-course { color: #EC5424; }
.fla-cert-tile.fla-cert-card--ttt .fla-cert-tile-course { color: #C49F34; }
.fla-cert-tile.fla-cert-card--ttt-scissor .fla-cert-tile-course { color: #C49F34; }
.fla-cert-back {
  max-width: 580px;
  margin: 0 auto 12px;
  text-align: left;
  position: relative;
  z-index: 1;
}
.fla-cert-back a {
  color: #fbbb00;
  font-weight: 700;
  text-decoration: none;
}
.fla-cert-back a:hover { text-decoration: underline; }

.fla-cert-qr.is-compact .fla-cert-qr-mark {
  width: 24%;
  min-width: 24px;
  padding: 2px;
  border-radius: 5px;
}
.fla-cert-qr svg {
  width: 118px;
  height: 118px;
  display: block;
  margin: 0 auto;
  background: #fff;
}
.fla-cert-qr.is-compact svg {
  width: 118px;
  height: 118px;
}
.fla-cert-dl-qr .fla-cert-qr figcaption {
  font-size: 9px;
}
.fla-cert-qr figcaption {
  margin-top: 1px;
  font-size: 7px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--fla-muted);
}
.fla-cert-status {
  display: inline-block;
  margin-top: 0;
  padding: 5px 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #fff;
}
.fla-cert-status.active { background: #0a7a3e; }
.fla-cert-status.expired { background: #b42318; }
.fla-cert-sample-note,
.fla-install-hint {
  max-width: 580px;
  margin: 8px auto 0;
  text-align: center;
  color: #d7e3ee;
  font-size: 12px;
}
.fla-install-hint { margin-top: 12px; }

.fla-cert-tips {
  max-width: 580px;
  margin: 18px auto 0;
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 12px;
  padding: 16px 18px 18px;
  color: #fff;
  text-align: left;
}
.fla-cert-tips h2 {
  margin: 0 0 8px;
  font-size: 18px;
  color: #fff;
}
.fla-cert-tips h3 {
  margin: 14px 0 8px;
  font-size: 13px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--fla-gold, #fbbb00);
}
.fla-cert-tips-lead {
  margin: 0;
  font-size: 14px;
  line-height: 1.45;
  color: #d7e3ee;
}
.fla-cert-tips ul {
  margin: 0;
  padding: 0 0 0 18px;
}
.fla-cert-tips li {
  margin: 0 0 6px;
  font-size: 14px;
  line-height: 1.4;
  color: #eef3f8;
}
.fla-cert-tips li strong {
  color: #fff;
  text-transform: uppercase;
  letter-spacing: .02em;
}
.fla-cert-tips-links {
  margin: 14px 0 0;
  font-size: 13px;
  line-height: 1.45;
  color: #d7e3ee;
}
.fla-cert-tips-links a {
  color: var(--fla-gold, #fbbb00);
  font-weight: 700;
}

@media (max-width: 720px) {
  .fla-cert-app { padding: 14px 8px 32px; }
  .fla-cert-head img,
  .fla-cert-logo {
    max-height: 48px;
    max-width: 200px;
    padding: 0;
    background: transparent;
  }
  .fla-cert-dl {
    grid-template-columns: 112px minmax(0, 1fr) auto;
    gap: 8px;
  }
  .fla-cert-card--dl .fla-cert-photo {
    width: 112px;
    height: 140px;
  }
  .fla-cert-name { font-size: 20px; }
  .fla-cert-qr svg,
  .fla-cert-qr.is-compact svg { width: 100px; height: 100px; }
  .fla-cert-head-title { font-size: 13px; }
  .fla-cert-head-reg { font-size: 12px; }
}

@media (max-width: 560px) {
  .fla-cert-head {
    padding: 7px 8px;
    gap: 6px;
    grid-template-columns: auto 1fr auto;
  }
  .fla-cert-head img,
  .fla-cert-logo {
    max-height: 44px;
    max-width: 170px;
    padding: 0;
    background: transparent;
  }
  .fla-cert-head-title { font-size: 12px; }
  .fla-cert-head-reg { font-size: 11px; }
  .fla-cert-status { font-size: 11px; padding: 4px 10px; }
  .fla-cert-body { padding: 7px 8px 8px; }
  .fla-cert-dl {
    grid-template-columns: 96px minmax(0, 1fr) auto;
    gap: 7px;
  }
  .fla-cert-card--dl .fla-cert-photo {
    width: 96px;
    height: 120px;
  }
  .fla-cert-name { font-size: 18px; }
  .fla-cert-course { font-size: 13px; margin: 2px 0 4px; }
  .fla-cert-company { font-size: 10px; }
  .fla-cert-mid {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 6px;
  }
  .fla-cert-meta div,
  .fla-cert-certified { padding: 3px 5px; font-size: 10px; }
  .fla-cert-code {
    font-size: 12px;
    padding: 6px 10px;
    text-align: left;
    white-space: nowrap;
    overflow-x: auto;
    overflow-wrap: normal;
    word-break: normal;
    -webkit-overflow-scrolling: touch;
  }
  .fla-cert-qr svg,
  .fla-cert-qr.is-compact svg { width: 92px; height: 92px; }
  .fla-cert-qr figcaption { display: none; }
}

@media (max-width: 400px) {
  .fla-cert-dl {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
  }
  .fla-cert-dl-fields { width: 100%; text-align: left; }
  .fla-cert-card--dl .fla-cert-photo {
    width: 120px;
    height: 150px;
  }
  .fla-cert-dl-qr { justify-self: center; }
  .fla-cert-head-reg { display: none; }
  .fla-cert-head img,
  .fla-cert-logo {
    max-height: 40px;
    max-width: min(200px, 68vw);
    padding: 0;
    background: transparent;
  }
  .fla-cert-head-title { font-size: 11px; }
  .fla-cert-head { justify-content: space-between; }
}

/* Lock screen */
.fla-lock {
  min-height: 100vh;
  display: grid;
  place-items: center;
  background: var(--fla-navy);
  color: #fff;
  padding: 32px;
  text-align: center;
}
.fla-lock-card { max-width: 460px; }
.fla-lock h1 { color: #fff; }

/* Pitch */
.fla-pitch-list { display: grid; gap: 12px; }
.fla-pitch-list div {
  background: #fff;
  padding: 16px 18px;
  border-radius: 10px;
  box-shadow: var(--fla-shadow);
  border-left: 4px solid var(--fla-blue);
}

.fla-onsite-grid { display:grid; grid-template-columns: 1fr 1.1fr; gap: 32px; align-items:start; }
@media (max-width: 960px) {
  .fla-onsite-grid { grid-template-columns: 1fr; }
}
@media (max-width: 960px) {
  .fla-hero-grid, .fla-cards, .fla-why, .fla-products, .fla-cities, .fla-footer-grid, .fla-form {
    grid-template-columns: 1fr 1fr;
  }
  .fla-band-inner { flex-direction: column; align-items: flex-start; }
}
@media (min-width: 1680px) and (max-width: 1919px) {
  .fla-nav a {
    padding: 10px 8px;
    font-size: 13px;
  }
}
@media (max-width: 1679px) {
  .fla-reviews { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .fla-header-inner {
    grid-template-columns: max-content minmax(52px, 1fr) max-content;
    padding: 12px 14px;
    gap: 8px 10px;
    min-height: 0;
  }
  .fla-header.is-compact.is-open .fla-nav-more { padding: 12px 16px 20px; }
  .fla-brand { min-width: 0; gap: 6px; }
  .fla-logo img, .fla-logo .custom-logo { width: 140px; min-width: 0; }
  .fla-brand .fla-cta {
    padding: 6px 8px;
    font-size: 10px;
    letter-spacing: .03em;
  }
  .fla-header-actions .fla-phone { display: none; }
  .fla-header-actions { gap: 8px; min-width: 0; }
  .fla-profile { width: 44px; height: 44px; }
  .fla-hero { min-height: 0; padding: 50px 0; align-items: stretch; }
  .fla-hero-grid, .fla-cards, .fla-why, .fla-products, .fla-cities, .fla-footer-grid, .fla-form, .fla-band-inner, .fla-reviews {
    grid-template-columns: 1fr;
  }
  .fla-hero-visual { align-items: stretch; justify-content: flex-start; }

  .fla-band-inner { flex-direction: column; align-items: flex-start; }
  .fla-trust-badges img { height: 40px; }
  .fla-hero p.lead { font-size: 18px; }
  .fla-hero-visual .fla-sa-badge { border-radius: 24px; max-width: 100%; }
}


/* Sales CRM walkthrough */
.fla-sales-callout {
  background: #fff;
  border-left: 4px solid var(--fla-gold);
  box-shadow: var(--fla-shadow);
  padding: 18px 20px;
  border-radius: 10px;
  margin: 0 0 28px;
}
.fla-sales-callout .fla-btn { margin-right: 10px; margin-top: 8px; }
.fla-sales-steps { display: grid; gap: 12px; padding-left: 22px; }
.fla-sales-steps li { background: #fff; padding: 14px 16px; border-radius: 10px; box-shadow: var(--fla-shadow); }
.fla-sales-steps li strong { display: block; margin-bottom: 4px; }
.fla-pipeline {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  list-style: none;
  padding: 0;
  margin: 16px 0 20px;
}
.fla-pipeline li {
  background: var(--fla-header);
  color: #fff;
  padding: 8px 14px;
  border-radius: 999px;
  font-weight: 700;
  font-size: 14px;
}
.fla-pipeline li:nth-child(4) { background: #146c2e; }
.fla-pipeline li:nth-child(5) { background: #9b1c1c; }
.fla-sales-urls { display: grid; gap: 8px; }
.fla-sales code, .fla-sales-callout code { background: #eef2f6; padding: 1px 6px; border-radius: 4px; }

.fla-sales-example {
  background: #fff;
  border-left: 4px solid var(--fla-orange);
  box-shadow: var(--fla-shadow);
  padding: 20px 22px;
  border-radius: 10px;
  margin: 0 0 32px;
}
.fla-sales-example-kicker {
  margin: 0 0 10px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--fla-orange);
}
.fla-sales-example ol { margin: 12px 0 14px; padding-left: 20px; }
.fla-sales-example li { margin: 0 0 8px; }
.fla-sales .fla-pipeline { margin-top: 10px; }


/* Demo overview topic cards */
.fla-demo-topics {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px 24px;
  row-gap: 28px;
  column-gap: 24px;
  margin: 24px 0 48px;
  align-items: stretch;
}
.fla-content .fla-sales h2 {
  margin-top: 36px;
  margin-bottom: 16px;
}
.fla-content .fla-sales h2:first-of-type {
  margin-top: 8px;
}
.fla-demo-topic {
  display: flex;
  flex-direction: column;
  gap: 10px;
  background: #fff;
  padding: 24px 24px 20px;
  border-radius: 12px;
  box-shadow: var(--fla-shadow);
  border-top: 4px solid var(--fla-blue);
  text-decoration: none;
  color: inherit;
  min-height: 0;
  margin: 0;
  box-sizing: border-box;
  position: relative;
  z-index: 0;
}
.fla-demo-topic:nth-child(2) { border-top-color: var(--fla-orange); }
.fla-demo-topic:nth-child(3) { border-top-color: var(--fla-gold); }
.fla-demo-topic:nth-child(4) { border-top-color: #146c2e; }
.fla-demo-topic:nth-child(5) { border-top-color: #04618a; }
.fla-demo-topic:nth-child(6) { border-top-color: var(--fla-navy); }
.fla-demo-topic:nth-child(7) { border-top-color: #8a5a00; }
.fla-demo-topic:nth-child(8) { border-top-color: #146c2e; }
.fla-demo-topic:nth-child(9) { border-top-color: #5b2c8a; }
.fla-demo-topic:nth-child(10) { border-top-color: #5b6775; }
.fla-demo-topic:nth-child(11) { border-top-color: #0e7c7b; }
.fla-demo-topic:nth-child(12) { border-top-color: #c2410c; }
.fla-demo-topic:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(8,12,51,.12);
}
.fla-demo-topic strong {
  font-size: 18px;
  font-weight: 800;
  color: var(--fla-navy);
}
.fla-demo-topic > span:not(.fla-demo-kicker):not(.fla-demo-go) {
  color: #445;
  font-size: 14px;
  line-height: 1.45;
  flex: 1;
}
.fla-demo-kicker {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--fla-muted);
}
.fla-demo-go {
  font-size: 13px;
  font-weight: 700;
  color: var(--fla-blue);
}
.fla-demo-topic:hover .fla-demo-go { color: var(--fla-orange); }
.fla-demo-topic code { background: #eef2f6; padding: 1px 6px; border-radius: 4px; font-size: 12px; }
@media (max-width: 760px) {
  .fla-demo-topics { grid-template-columns: 1fr; }
}

.fla-wallet-add {
  max-width: 420px;
  margin: 22px auto 0;
  text-align: center;
}
.fla-wallet-add > p {
  margin: 0 0 12px;
  font-weight: 700;
  color: #fff;
}
.fla-wallet-note {
  margin: 12px 0 0 !important;
  font-size: 12px;
  font-weight: 500 !important;
  line-height: 1.45;
  color: #c5d0dc !important;
}
.fla-wallet-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 320px;
  margin: 0 auto 10px;
  height: 48px;
  border-radius: 8px;
  font-weight: 700;
  font-size: 15px;
  text-decoration: none !important;
  color: #fff !important;
  letter-spacing: .01em;
}
.fla-wallet-btn.apple { background: #000; }
.fla-wallet-btn.google { background: #1f1f1f; border: 1px solid #3c4043; }
.fla-wallet-btn.samsung { background: #1428a0; }
.fla-wallet-btn:hover { opacity: .92; color: #fff !important; }

.fla-prod-needs {
  display: grid;
  gap: 14px;
  padding-left: 0;
  list-style: none;
  counter-reset: prod;
  margin: 20px 0 28px;
}
.fla-prod-needs li {
  counter-increment: prod;
  background: #fff;
  padding: 18px 20px 16px 56px;
  border-radius: 12px;
  box-shadow: var(--fla-shadow);
  position: relative;
}
.fla-prod-needs li:before {
  content: counter(prod, decimal-leading-zero);
  position: absolute;
  left: 16px;
  top: 18px;
  font-weight: 800;
  font-size: 13px;
  letter-spacing: .04em;
  color: var(--fla-blue);
}
.fla-prod-needs li strong { display: block; margin-bottom: 4px; color: var(--fla-navy); }
.fla-prod-needs li div { color: #445; font-size: 14px; line-height: 1.45; }

/* City / locations marketing pages (demo 1.4.4) */
.fla-city-hero {
  background: var(--fla-header);
  color: #fff;
  padding: 64px 0 56px;
  position: relative;
  overflow: hidden;
}
.fla-city-hero:before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: var(--fla-city-image);
  background-size: cover;
  background-position: center;
  opacity: .28;
}
.fla-city-hero .fla-wrap { position: relative; z-index: 1; }
.fla-city-hero h1 {
  color: #fff;
  font-weight: 800;
  text-transform: uppercase;
  margin: 0 0 12px;
  font-size: clamp(32px, 5vw, 52px);
}
.fla-city-hero .lead { max-width: 720px; color: #e8eef5; font-size: 18px; }
.fla-city-page .fla-wrap { max-width: var(--fla-max); }
.fla-city-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 36px;
  align-items: start;
}
.fla-city-class {
  background: #fff;
  border: 1px solid #e4eaf1;
  border-radius: 14px;
  padding: 22px 24px;
  margin: 0 0 16px;
  box-shadow: var(--fla-shadow, 0 8px 24px rgba(8,12,51,.06));
}
.fla-city-class-top {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
}
.fla-city-class h3 { margin: 0 0 8px; font-size: 20px; color: var(--fla-navy); }
.fla-city-class .price { color: var(--fla-orange); font-weight: 800; font-size: 22px; white-space: nowrap; }
.fla-city-class-note { font-size: 13px; color: #556; }
.fla-city-class-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.fla-city-bullets { padding-left: 18px; }
.fla-city-bullets li { margin: 0 0 8px; }
.fla-city-page .fla-faq { margin: 24px 0 32px; }
.fla-city-nap {
  background: #f4f7fb;
  border-radius: 14px;
  padding: 22px;
  position: sticky;
  top: 88px;
}
.fla-city-nap h2 { margin-top: 0; font-size: 18px; text-transform: uppercase; }
.fla-city-nap a { color: var(--fla-blue); }
.fla-loc-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 18px;
  margin-top: 24px;
}
.fla-loc-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  box-shadow: var(--fla-shadow, 0 8px 24px rgba(8,12,51,.06));
  min-height: 280px;
}
.fla-loc-photo {
  display: block;
  height: 140px;
  background-size: cover;
  background-position: center;
}
.fla-loc-body {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 16px 18px 20px;
}
.fla-loc-body strong { color: var(--fla-navy); font-size: 16px; }
.fla-loc-body span { color: #445; font-size: 14px; }
.fla-prose h2 { margin-top: 32px; }
.fla-prose p, .fla-prose li { line-height: 1.6; }
.fla-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 16px;
  margin: 20px 0;
}
.fla-mini-card {
  background: #fff;
  border: 1px solid #e4eaf1;
  border-radius: 12px;
  padding: 18px;
}
.fla-mini-card h3 { margin: 0 0 8px; font-size: 18px; }
@media (max-width: 900px) {
  .fla-city-layout { grid-template-columns: 1fr; }
  .fla-city-nap { position: static; }
}


/* Become a trainer */
.fla-page-hero .fla-eyebrow { color: var(--fla-gold); }
.fla-trainer .lead { font-size: 18px; line-height: 1.55; }
.fla-trainer-split { margin: 8px 0 28px; }
.fla-trainer-split ul { margin: 0; padding-left: 18px; }
.fla-trainer-split li { margin: 0 0 8px; line-height: 1.5; }
.fla-trainer-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  list-style: none;
  margin: 0 0 36px;
  padding: 0;
  counter-reset: fla-step;
}
.fla-trainer-steps li {
  background: #fff;
  border-radius: 12px;
  box-shadow: var(--fla-shadow);
  padding: 20px 18px 18px;
  border-top: 4px solid var(--fla-header);
  counter-increment: fla-step;
}
.fla-trainer-steps li::before {
  content: counter(fla-step);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 999px;
  background: var(--fla-header);
  color: #fff;
  font-weight: 800;
  font-size: 13px;
  margin-bottom: 10px;
}
.fla-trainer-steps li:nth-child(2) { border-top-color: var(--fla-blue); }
.fla-trainer-steps li:nth-child(3) { border-top-color: var(--fla-orange); }
.fla-trainer-steps li:nth-child(4) { border-top-color: var(--fla-gold); }
.fla-trainer-steps li:nth-child(5) { border-top-color: var(--fla-blue); }
.fla-trainer-steps li:nth-child(6) { border-top-color: var(--fla-orange); }
.fla-trainer-steps li:nth-child(7) { border-top-color: var(--fla-gold); }
.fla-trainer-steps strong { display: block; margin: 0 0 6px; color: var(--fla-navy); }
.fla-trainer-steps span { color: #445; font-size: 14px; line-height: 1.45; }
.fla-trainer-demo-note {
  color: var(--fla-muted);
  font-size: 14px;
  margin: 0 0 16px;
}
.fla-form .fla-hp {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.fla-form.fla-form { position: relative; }
.fla-form .fla-check label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.45;
  color: var(--fla-text);
}
.fla-form .fla-check input[type="checkbox"] {
  width: auto;
  margin-top: 3px;
  flex: 0 0 auto;
}
.fla-ttt-product-cta { margin: 0 0 20px; }
.fla-ttt-buy-cta { margin: 0 0 28px; }
.fla-no-cost {
  background: #eef6fb;
  border-left: 4px solid var(--fla-blue);
  padding: 12px 16px;
  font-size: 16px;
  line-height: 1.5;
}
.fla-safety-reqs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin: 0 0 28px;
}
.fla-safety-reqs .fla-mini-card h3 { margin-top: 0; }
.fla-safety-reqs ul { margin: 0; padding-left: 18px; }
.fla-safety-reqs li { margin: 0 0 8px; line-height: 1.5; }
.fla-fine-print {
  font-size: 13px;
  line-height: 1.55;
  color: #334;
  background: #f4f5f7;
  border-left: 4px solid var(--fla-navy);
  padding: 14px 16px;
  margin: 0 0 20px;
}
.fla-fine-print p { margin: 0; }
p.fla-fine-print { margin: 0 0 20px; }
@media (max-width: 800px) {
  .fla-safety-reqs { grid-template-columns: 1fr; }
}
.fla-content.wide .fla-wrap.fla-trainer { max-width: var(--fla-max); }
@media (max-width: 960px) {
  .fla-trainer-steps { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .fla-trainer-steps { grid-template-columns: 1fr; }
}

/* Live TTT class */
.fla-cert-photo {
  width: 88px;
  height: 88px;
  object-fit: cover;
  object-position: center top;
  border-radius: 12px;
  display: block;
  flex-shrink: 0;
  margin: 0;
  border: 3px solid var(--fla-gold);
  background: #0b1a3a;
}
.fla-cert-photo-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  padding: 0;
  border-style: dashed;
}
.fla-cert-photo-placeholder svg { display: block; width: 100%; height: 100%; }
.fla-photo-upload {
  max-width: 680px;
  margin: 22px auto 0;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 16px;
  padding: 18px 18px 20px;
  color: #fff;
  text-align: left;
}
.fla-photo-upload h3 { margin: 0 0 6px; color: #fff; font-size: 18px; }
.fla-photo-upload-lead { margin: 0 0 14px; font-size: 13px; color: #d7e3ee; }
.fla-photo-upload .fla-notice { margin: 0 0 12px; }
.fla-photo-upload-row {
  display: flex;
  gap: 14px;
  align-items: center;
  margin-bottom: 12px;
}
.fla-photo-upload .fla-cert-photo { margin: 0; }
.fla-photo-upload-fields { min-width: 0; flex: 1; }
.fla-photo-upload label {
  display: block;
  font-size: 13px;
  font-weight: 700;
  margin: 0 0 8px;
}
.fla-photo-upload input[type="file"] {
  display: block;
  width: 100%;
  color: #d7e3ee;
  font-size: 13px;
}
.fla-photo-upload-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin-top: 4px;
}
.fla-photo-upload-actions .fla-btn,
.fla-photo-upload-actions a.fla-btn {
  margin: 0;
  text-decoration: none;
}
.woocommerce-account .fla-photo-upload .fla-btn.ghost.fla-photo-buy-print {
  border-color: #EC572C;
  color: #EC572C;
}
.woocommerce-account .fla-photo-upload .fla-btn.ghost.fla-photo-buy-print:hover {
  background: #EC572C;
  color: #fff;
  border-color: #EC572C;
}
.woocommerce-account .fla-account-photo { margin: 0 0 24px; }
.woocommerce-account .fla-photo-upload {
  max-width: none;
  background: #fff;
  color: var(--fla-navy);
  border: 1px solid #e6edf3;
  box-shadow: var(--fla-shadow);
}
.woocommerce-account .fla-photo-upload h3 { color: var(--fla-navy); }
.woocommerce-account .fla-photo-upload-lead,
.woocommerce-account .fla-photo-upload input[type="file"] { color: var(--fla-muted); }
.fla-join-photo {
  width: 72px;
  height: 72px;
  object-fit: cover;
  border-radius: 50%;
}

.fla-join-trainer {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 12px 0 8px;
}
.fla-join-trainer-photo,
.fla-join-trainer-fallback {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  object-fit: cover;
  flex: 0 0 auto;
  border: 3px solid rgba(255, 255, 255, 0.9);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
}
.fla-join-trainer-fallback {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--fla-logo-blue);
  color: #fff;
  font-weight: 800;
  font-size: 26px;
}
.fla-join-trainer-text .fla-demo-kicker {
  display: block;
  margin-bottom: 4px;
  color: var(--fla-orange);
  font-size: 16px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.fla-join-trainer-text strong {
  display: block;
  font-size: 22px;
  line-height: 1.25;
}
.fla-join-hero-note {
  margin: 0;
  opacity: 0.92;
}
.fla-join-follow-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 12px;
}
.fla-join-follow-head .fla-demo-kicker {
  margin: 0;
}
.fla-join-trainer-photo--sm,
.fla-join-trainer-fallback--sm {
  width: 40px;
  height: 40px;
  border-width: 2px;
  font-size: 16px;
}

.fla-present-code {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  background: var(--fla-header);
  color: #fff;
  padding: 16px 20px;
  border-radius: 12px;
  margin: 0 0 24px;
  position: sticky;
  top: 0;
  z-index: 5;
}
.fla-present-code strong {
  display: block;
  font-size: 28px;
  letter-spacing: .08em;
  color: var(--fla-gold);
}
.fla-present-code a { color: #cfe6ff; font-size: 13px; }
.fla-present-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 220px;
  gap: 16px;
  align-items: start;
}
.fla-present-stage {
  background: #fff;
  border-radius: 12px;
  box-shadow: var(--fla-shadow);
  padding: 24px;
  min-height: 420px;
}
.fla-present-stage h2 { margin: 0 0 16px; }
.fla-present-video {
  position: relative;
  padding-top: 56.25%;
  margin: 0 0 16px;
  background: #000;
  border-radius: 10px;
  overflow: hidden;
}
.fla-present-video iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
/* BugHerd #57: HTML5 live-deck videos fit the present/join stage */
.fla-present-stage .fla-slide-video,
.fla-join-follow .fla-slide-video {
  position: relative;
  width: 100%;
  max-width: 100%;
  margin: 0 0 16px;
  background: #000;
  border-radius: 10px;
  overflow: hidden;
  aspect-ratio: 16 / 9;
}
.fla-present-stage .fla-slide-video video,
.fla-join-follow .fla-slide-video video {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  object-fit: contain;
  vertical-align: top;
  background: #000;
}
.fla-present-body { font-size: 18px; line-height: 1.55; }
.fla-present-body .fla-finish-logo {
  text-align: center;
  margin: 0 0 20px;
  line-height: 0;
}
.fla-present-body .fla-finish-logo img {
  display: inline-block;
  width: min(420px, 82%);
  max-width: 100%;
  height: auto;
  margin: 0 auto;
  vertical-align: top;
}
.fla-present-body .fla-finish-logo + p {
  margin-top: 0;
}
.fla-class-shell .fla-present-body .fla-finish-logo {
  margin-bottom: 20px;
}
.fla-class-shell .fla-present-body .fla-finish-logo img {
  width: min(480px, 88%);
}
.fla-class-shell .fla-present-body .fla-finish-logo + p {
  margin-top: 0;
}

.fla-present-quiz-board {
  padding-left: 12px;
  padding-right: 8px;
  box-sizing: border-box;
}
.fla-present-quiz-board .fla-present-quiz-list {
  margin: 0;
  padding: 4px 12px 12px 3.25em; /* room for two-digit markers (20+) */
  max-height: min(62vh, 640px);
  overflow-y: auto;
  overflow-x: visible;
  list-style: decimal;
  list-style-position: outside;
}
.fla-present-quiz-board .fla-present-quiz-item {
  margin: 0 0 14px;
  padding-left: 0.25em;
}
.fla-present-quiz-board .fla-present-quiz-q {
  margin: 0 0 6px;
  font-size: 18px;
  font-weight: 700;
  color: #003C6E;
}
.fla-present-quiz-board .fla-present-quiz-choices {
  margin: 0;
  padding-left: 1.5em;
  list-style: disc;
  list-style-position: outside;
}
.fla-present-quiz-board .fla-present-quiz-choices li {
  margin: 2px 0;
  padding-left: 0.15em;
  font-size: 16px;
  font-weight: 500;
}
.fla-class-shell .fla-present-stage .fla-present-quiz-board {
  padding-left: 24px;
}
.fla-class-shell .fla-present-quiz-board .fla-present-quiz-list {
  padding-left: 3.5em;
}
.fla-class-shell .fla-present-quiz-board .fla-present-quiz-q { font-size: 20px; }

.fla-present-slide-title { font-size: 32px; font-weight: 800; color: var(--fla-navy); }
.fla-present-nav { display: flex; gap: 10px; margin-top: 24px; flex-wrap: wrap; align-items: center; }
.fla-present-nav.is-last .fla-present-nav-end { margin: 0; }
.fla-present-nav.is-last .fla-present-nav-end-btn {
  background: #EC572C;
  border-color: #EC572C;
  color: #fff;
}
.fla-present-nav.is-last .fla-present-nav-end-btn:hover {
  background: #d14a24;
  border-color: #d14a24;
  color: #fff;
}

.fla-present-roster {
  background: #fff;
  border-radius: 12px;
  box-shadow: var(--fla-shadow);
  padding: 10px;
}
.fla-present-roster h3 { margin: 0 0 6px; font-size: 14px; }
.fla-present-roster ul { list-style: none; margin: 0; padding: 0; }
.fla-present-roster li {
  display: flex;
  flex-direction: column;
  gap: 6px;
  align-items: stretch;
  padding: 8px 0;
  border-bottom: 1px solid #eef2f6;
  font-size: 12px;
}
.fla-roster-row {
  display: grid;
  grid-template-columns: 24px 1fr;
  gap: 8px;
  align-items: center;
}
.fla-roster-meta strong {
  display: block;
  line-height: 1.25;
}
.fla-roster-meta .fla-roster-quiz,
.fla-roster-meta .fla-roster-hands {
  display: block;
  font-size: 11px;
  line-height: 1.3;
  color: var(--fla-muted);
}
.fla-roster-meta .fla-roster-hands.is-confirmed {
  color: #1a7f37;
  font-weight: 700;
}
.fla-roster-meta .fla-roster-hands.is-pending {
  color: var(--fla-orange);
  font-weight: 700;
}

.fla-roster-action {
  margin: 0;
}
.fla-roster-action .fla-btn {
  width: 100%;
}
.fla-roster-action .fla-roster-confirm {
  background: var(--fla-logo-blue);
  color: #fff;
  border: 1px solid var(--fla-logo-blue);
  font-weight: 800;
  letter-spacing: .03em;
  text-transform: uppercase;
  padding: 8px 10px;
  font-size: 11px;
}
.fla-roster-action .fla-roster-confirm:hover {
  background: var(--fla-header);
  border-color: var(--fla-header);
  color: #fff;
}
.fla-roster-action .fla-roster-undo {
  background: #4a5560;
  color: #fff;
  border: 1px solid #4a5560;
  opacity: 1;
  font-weight: 700;
}
.fla-roster-action .fla-roster-undo:hover {
  background: #2f363d;
  border-color: #2f363d;
  color: #fff;
}

.fla-present-roster li.empty { display: block; color: var(--fla-muted); border: 0; font-size: 11px; }
.fla-present-roster img,
.fla-avatar-fallback {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  object-fit: cover;
}
.fla-avatar-fallback {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--fla-header);
  color: #fff;
  font-weight: 700;
}
.fla-present-roster li span { display: block; font-size: 12px; color: var(--fla-muted); }
.fla-btn.small { padding: 8px 10px; font-size: 11px; letter-spacing: .04em; }

.fla-desk-count {
  margin: 0 0 12px;
  font-size: 14px;
  color: var(--fla-muted);
}
.fla-desk-pager {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-top: 18px;
}
.fla-desk-pager__status {
  font-size: 14px;
  color: var(--fla-muted);
}
.fla-desk-table {
  width: 100%;
  border-collapse: collapse;
  background: #fff;
  box-shadow: var(--fla-shadow);
  border-radius: 12px;
  overflow: hidden;
  margin: 0 0 24px;
}
.fla-desk-table th,
.fla-desk-table td {
  text-align: left;
  padding: 12px 14px;
  border-bottom: 1px solid #eef2f6;
  vertical-align: top;
}
.fla-desk-table th { background: var(--fla-header); color: #fff; font-size: 13px; }
.fla-desk-table tr.is-abuse { background: #fff4f0; }
.fla-desk-table .muted { color: var(--fla-muted); font-size: 13px; }
.fla-abuse {
  display: inline-block;
  background: var(--fla-orange);
  color: #fff;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: 4px 8px;
  border-radius: 999px;
}
.fla-due {
  display: inline-block;
  background: var(--fla-gold);
  color: var(--fla-navy);
  font-weight: 800;
  font-size: 12px;
  text-transform: uppercase;
  padding: 4px 8px;
  border-radius: 999px;
}
.fla-trainer-profile {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 20px;
  margin: 0 0 28px;
  align-items: start;
}
.fla-trainer-headshot {
  width: 120px;
  height: 120px;
  object-fit: cover;
  border-radius: 16px;
}
.fla-ic-dates { list-style: none; margin: 0 0 28px; padding: 0; }
.fla-ic-dates li {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  background: #fff;
  box-shadow: var(--fla-shadow);
  border-radius: 12px;
  padding: 16px 18px;
  margin: 0 0 12px;
}
.fla-ic-dates li span { display: block; color: var(--fla-muted); font-size: 14px; }
.fla-content.wide .fla-wrap.fla-present,
.fla-content.wide .fla-wrap.fla-desk,
.fla-content.wide .fla-wrap.fla-trainer-public { max-width: var(--fla-max); }
.fla-notice {
  background: #e8f6ee;
  border: 1px solid #b7e0c5;
  color: #146c2e;
  padding: 12px 14px;
  border-radius: 10px;
  margin: 0 0 18px;
}
.fla-notice.err {
  background: #fff4f0;
  border-color: #f5c2b3;
  color: #9b2c12;
}
@media (max-width: 900px) {
  .fla-present-grid,
  .fla-trainer-profile { grid-template-columns: 1fr; }
}

.fla-trainer-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 14px;
}
.fla-demo-topic .fla-trainer-facts { margin: 0; }
.fla-fact {
  display: inline-flex;
  align-items: center;
  background: #eef5f9;
  color: var(--fla-header);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .02em;
  padding: 6px 10px;
  border-radius: 999px;
}
.fla-schedule-who {
  color: var(--fla-muted);
  font-size: 14px;
  margin: -8px 0 16px;
}
.fla-ic-book-note {
  display: block;
  color: var(--fla-muted);
  font-size: 12px;
  margin-top: 4px;
}
.fla-btn.small {
  padding: 8px 12px;
  font-size: 13px;
}

/* Trainer shop profile */
.fla-trainer-hero {
  background: var(--fla-header);
  color: #fff;
  padding: 40px 0 44px;
}
.fla-trainer-hero-grid {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 28px;
  align-items: center;
}
.fla-trainer-hero-shot {
  width: 220px;
  height: 260px;
  object-fit: cover;
  object-position: top center;
  border-radius: 16px;
  box-shadow: 0 16px 40px rgba(0,0,0,.28);
  background: #002b4e;
}
.fla-trainer-hero-copy h1 {
  margin: 0 0 8px;
  color: #fff;
  font-weight: 800;
  text-transform: uppercase;
}
.fla-trainer-hero-copy .lead {
  color: #d7e4ef;
  font-size: 18px;
  margin: 0 0 14px;
  max-width: 38rem;
}
.fla-trainer-hero .fla-fact {
  background: rgba(255,255,255,.12);
  color: #fff;
}
.fla-trainer-hero .fla-btn { margin-top: 6px; }
.fla-trainer-sell { margin: 0 0 28px; }
.fla-shop-gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin: 0 0 36px;
}
.fla-shop-gallery figure {
  margin: 0;
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: var(--fla-shadow);
}
.fla-shop-gallery img {
  display: block;
  width: 100%;
  height: 200px;
  object-fit: cover;
}
.fla-shop-gallery figcaption {
  padding: 10px 12px 12px;
  font-size: 13px;
  font-weight: 700;
  color: var(--fla-header);
}
.fla-trainer-thumb {
  width: 100%;
  height: 160px;
  object-fit: cover;
  object-position: top center;
  border-radius: 8px;
  margin: 0 0 4px;
}
.fla-trainer-card { overflow: hidden; }
@media (max-width: 900px) {
  .fla-trainer-hero-grid,
  .fla-shop-gallery { grid-template-columns: 1fr; }
  .fla-trainer-hero-shot {
    width: 100%;
    height: 280px;
  }
  .fla-shop-gallery img { height: 220px; }
}

/* 36-month renewal desk + student CTA (1.4.13) */
.fla-renew-table-wrap { overflow-x: auto; margin: 0 0 16px; }
.fla-renew-table .fla-renew-name {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 180px;
}
.fla-renew-table .fla-renew-name span { display: flex; flex-direction: column; gap: 2px; }
.fla-renew-thumb {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  object-fit: cover;
  background: #0b1a3a;
  flex: 0 0 40px;
}
.fla-renew-thumb-empty {
  display: inline-flex;
  overflow: hidden;
}
.fla-renew-thumb-empty svg { width: 40px; height: 40px; display: block; }
.fla-desk-table tr.is-overdue { background: #fff4f0; }
.fla-days-left { font-weight: 700; }
.fla-days-left.overdue { color: #9b2c12; }
.fla-days-left.soon { color: #8a5a00; }
.fla-email-preview {
  background: var(--fla-navy);
  color: #e8eef5;
  padding: 16px 18px;
  border-radius: 12px;
  white-space: pre-wrap;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 13px;
  line-height: 1.45;
  margin: 0 0 18px;
}
.fla-email-preview strong { display: block; margin-bottom: 8px; color: var(--fla-gold); font-family: Outfit, system-ui, sans-serif; }
.fla-renew-table form { margin: 0; }
.fla-renew-table .fla-btn.small { padding: 8px 12px; font-size: 12px; letter-spacing: .04em; }
.fla-content.wide .fla-wrap.fla-renewals { max-width: var(--fla-max); }

.fla-cert-renew {
  max-width: 680px;
  margin: 18px auto 0;
  background: #fff;
  color: var(--fla-navy);
  border-radius: 16px;
  padding: 18px 20px;
  text-align: left;
  box-shadow: 0 16px 40px rgba(0,0,0,.22);
}
.fla-cert-renew.soon { border-top: 4px solid var(--fla-gold); }
.fla-cert-renew.overdue { border-top: 4px solid var(--fla-orange); }
.fla-cert-renew-kicker {
  margin: 0 0 4px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--fla-muted);
}
.fla-cert-renew h3 { margin: 0 0 8px; font-size: 20px; }
.fla-cert-renew p { margin: 0 0 12px; font-size: 14px; line-height: 1.45; }
.fla-cert-renew .fla-btn { margin-top: 4px; }
button.fla-btn {
  border: 0;
  cursor: pointer;
  font-family: inherit;
}

/* Employer / Group Manager portal (1.4.15) */
.fla-emp-stats {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
  margin: 0 0 18px;
}
.fla-emp-stat {
  background: #fff;
  border-radius: 12px;
  box-shadow: var(--fla-shadow);
  padding: 14px 16px;
}
.fla-emp-stat span {
  display: block;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--fla-muted);
  margin-bottom: 6px;
}
.fla-emp-stat strong { font-size: 20px; }
.fla-emp-code {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  letter-spacing: .04em;
  color: var(--fla-header);
}
.fla-emp-scope {
  background: #eef5f9;
  border-radius: 10px;
  padding: 10px 14px;
  font-size: 14px;
}
.fla-emp-buy,
.fla-emp-invite,
.fla-emp-redeem { margin: 0 0 20px; }
.fla-emp-buy label,
.fla-emp-invite label,
.fla-emp-redeem label { font-weight: 600; }
.fla-emp-buy input[type="number"],
.fla-emp-invite input[type="text"],
.fla-emp-invite input[type="email"],
.fla-emp-redeem input[type="text"],
.fla-emp-redeem input[type="email"] {
  display: inline-block;
  margin-left: 8px;
  padding: 8px 10px;
  border: 1px solid #d5dde5;
  border-radius: 8px;
  font: inherit;
  min-width: 220px;
}
.fla-emp-buy input[type="number"] { min-width: 80px; }
.fla-emp-orders,
.fla-emp-log { padding-left: 18px; margin: 0 0 22px; }
.fla-emp-account {
  background: #fff;
  border-left: 4px solid var(--fla-gold);
  box-shadow: var(--fla-shadow);
  padding: 16px 18px;
  border-radius: 10px;
  margin: 0 0 24px;
}
.fla-fine-print {
  color: var(--fla-muted);
  font-size: 14px;
}
@media (max-width: 900px) {
  .fla-emp-stats { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .fla-emp-stats { grid-template-columns: 1fr; }
}

/* Transactional mail preview (1.4.17) */
.fla-mail-card {
  background: #fff;
  border-radius: 12px;
  box-shadow: var(--fla-shadow);
  padding: 22px 22px 8px;
  margin: 0 0 28px;
}
.fla-mail-card h2 { margin: 0 0 8px; }
.fla-mail-note {
  color: var(--fla-muted);
  font-size: 14px;
  margin: 0 0 12px;
}
.fla-mail-meta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 18px;
  margin: 0 0 16px;
}
.fla-mail-meta div { margin: 0; }
.fla-mail-meta dt {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--fla-muted);
  margin: 0 0 2px;
}
.fla-mail-meta dd { margin: 0; font-weight: 600; }
.fla-mail-status { color: #8a5a00; }
.fla-mail-frame-wrap {
  border: 1px solid #e4ebf1;
  border-radius: 10px;
  overflow: hidden;
  background: #f5f7fa;
  margin: 0 0 14px;
}
.fla-mail-frame {
  display: block;
  width: 100%;
  height: 640px;
  border: 0;
  background: #f5f7fa;
}
@media (max-width: 700px) {
  .fla-mail-meta { grid-template-columns: 1fr; }
  .fla-mail-frame { height: 720px; }
}

.fla-proposal {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 16px;
  margin: 20px 0 16px;
  align-items: stretch;
}
.fla-proposal-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
}
.fla-proposal-col {
  background: #fff;
  border-radius: 12px;
  box-shadow: var(--fla-shadow);
  padding: 22px 22px 18px;
  border-top: 4px solid var(--fla-muted);
}
.fla-proposal-col.new { border-top-color: var(--fla-klentel); }
.fla-proposal-amt {
  font-size: 32px;
  font-weight: 800;
  color: var(--fla-navy);
  margin: 6px 0 10px;
  line-height: 1.1;
}
.fla-proposal-amt span { font-size: 15px; font-weight: 600; color: #556; }
.fla-proposal-lines {
  margin: 8px 0 12px;
  padding-left: 18px;
}
.fla-proposal-lines li { margin: 0 0 10px; font-size: 15px; line-height: 1.45; }
.fla-proposal-sites {
  margin: 8px 0 4px;
  padding-left: 20px;
}
.fla-proposal-sites li { margin: 0 0 4px; font-size: 14px; }
.fla-proposal-sites span {
  display: inline-block;
  margin-left: 6px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--fla-blue);
}

.fla-proposal-value {
  background: #fff;
  border-radius: 12px;
  box-shadow: var(--fla-shadow);
  padding: 18px 22px 10px;
  margin: 0 0 16px;
  border-top: 4px solid var(--fla-klentel);
}
.fla-proposal-value ul {
  margin: 8px 0 8px;
  padding-left: 20px;
}
.fla-proposal-value li {
  margin: 0 0 8px;
  font-size: 15px;
  line-height: 1.45;
}

.fla-proposal-setup-row {
  background: #fff;
  border-radius: 12px;
  box-shadow: var(--fla-shadow);
  padding: 18px 22px;
  margin: 0 0 24px;
  border-top: 4px solid var(--fla-klentel);
}
.fla-proposal-setup-row .fla-proposal-amt { margin-bottom: 0; }
.fla-proposal-table {
  width: 100%;
  border-collapse: collapse;
  margin: 10px 0 14px;
}
.fla-proposal-table th,
.fla-proposal-table td {
  text-align: left;
  padding: 8px 0;
  border-bottom: 1px solid #e6ebf0;
  font-size: 15px;
}
.fla-proposal-table td:last-child,
.fla-proposal-table th:last-child { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.fla-proposal-table tfoot th {
  border-bottom: none;
  padding-top: 12px;
  font-size: 16px;
  color: var(--fla-navy);
}
@media (max-width: 760px) {
  .fla-proposal { grid-template-columns: 1fr; }
  .fla-proposal-arrow { transform: rotate(90deg); }
}


/* Change-request desk */
.fla-ticket-form select[size] {
  min-height: 180px;
  background: #fff;
}
.fla-ticket-form #fla-ticket-product-q {
  margin-bottom: 8px;
}
.fla-ticket-status {
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  padding: 4px 8px;
  border-radius: 999px;
  background: #eef2f6;
  color: var(--fla-navy);
}
.fla-ticket-status.is-applied { background: #e8f7ee; color: #146c2e; }
.fla-ticket-status.is-needs_review { background: #fff4d6; color: #8a5a00; }
.fla-ticket-status.is-approved { background: #e7f2fa; color: #04618a; }
.fla-ticket-status.is-declined { background: #fdecea; color: #9b1c1c; }
.fla-ticket-status.is-done { background: var(--fla-navy); color: #fff; }
.fla-ticket-status.is-queued { background: #eef2f6; color: var(--fla-muted); }
.fla-demo-topic:nth-child(10) { border-top-color: #5b6775; }

.fla-photo-id-opt {
  /* BugHerd #37: soft standout for printed operator card offer */
  margin: 0 0 18px;
  padding: 14px 16px;
  border: 1px solid rgba(20, 92, 148, 0.22);
  border-left: 4px solid #145C94;
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(20, 92, 148, 0.06) 0%, #f7fafc 100%);
  box-shadow:
    0 0 0 1px rgba(236, 87, 44, 0.08),
    0 8px 20px rgba(20, 92, 148, 0.06);
  text-align: left;
}
.fla-photo-id-opt-inner {
  display: flex;
  flex-direction: row-reverse;
  gap: 14px;
  align-items: flex-start;
}
.fla-photo-id-opt-example {
  flex: 0 0 auto;
  width: 96px;
  max-width: 28%;
  height: auto;
  border-radius: 8px;
  border: 1px solid rgba(20, 92, 148, 0.18);
  border-right: 4px solid #EC572C;
  box-shadow: 0 4px 12px rgba(8, 12, 51, 0.08);
  background: #fff;
}
.fla-photo-id-opt-body {
  flex: 1 1 auto;
  min-width: 0;
}
.fla-photo-id-opt label {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-weight: 700;
  color: var(--fla-navy);
  cursor: pointer;
}
.fla-photo-id-opt em { font-style: normal; font-weight: 600; color: var(--fla-muted); }
.fla-photo-id-opt p { margin: 8px 0 0 28px; font-size: 13px; color: var(--fla-muted); font-weight: 400; }
.fla-photo-id-opt.is-in-cart { font-size: 13px; font-weight: 600; color: var(--fla-navy); }
@media (max-width: 480px) {
  .fla-photo-id-opt-inner { flex-direction: column; align-items: stretch; }
  .fla-photo-id-opt-example { width: 140px; max-width: 55%; }
}
.fla-cert-photo-offer {
  max-width: 580px;
  margin: 18px auto 8px;
  position: relative;
  z-index: 1;
}
.fla-cert-photo-offer-inner {
  background: linear-gradient(180deg, #ffffff 0%, #fff7f2 100%);
  color: var(--fla-navy);
  border: 2px solid #EC572C;
  border-radius: 14px;
  padding: 18px 20px 20px;
  box-shadow: 0 12px 32px rgba(0,0,0,.28), 0 0 0 1px rgba(236,87,44,.15);
  text-align: center;
}
.fla-cert-photo-offer-kicker {
  margin: 0 0 4px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #EC572C;
}
.fla-cert-photo-offer-title {
  margin: 0 0 6px;
  font-size: 22px;
  font-weight: 800;
  line-height: 1.2;
  color: var(--fla-navy);
}
.fla-cert-photo-offer-copy {
  margin: 0 0 14px;
  font-size: 14px;
  line-height: 1.4;
  color: #4a5568;
}
.fla-cert-photo-offer-btn,
a.fla-cert-photo-offer-btn {
  display: inline-block;
  background: #EC572C !important;
  color: #fff !important;
  font-weight: 800;
  font-size: 16px;
  padding: 12px 22px;
  border-radius: 999px;
  text-decoration: none !important;
  box-shadow: 0 6px 16px rgba(236,87,44,.4);
}
.fla-cert-photo-offer-btn:hover,
a.fla-cert-photo-offer-btn:hover {
  background: #d44820 !important;
  color: #fff !important;
}
.fla-cert-photo-offer a { color: #EC572C; font-weight: 700; }
.single-product .upsells.products { margin-top: 36px; }
.single-product .upsells.products > h2 {
  font-size: 22px;
  margin: 0 0 16px;
  color: var(--fla-navy);
}


/* Full-page live class (projector / screen-share) */
body.fla-class-mode {
  background: var(--fla-bg);
}
body.fla-class-mode #wpadminbar,
body.fla-class-mode header,
body.fla-class-mode footer,
body.fla-class-mode .site-header,
body.fla-class-mode .site-footer,
body.fla-class-mode .fla-demo-badge {
  display: none !important;
}
.fla-class-shell {
  min-height: 100vh;
  padding: 18px 20px 28px;
  background: var(--fla-bg);
}
.fla-class-shell .fla-present-code {
  position: sticky;
  top: 0;
  margin: 0 0 18px;
  padding: 14px 18px;
  border-radius: 14px;
  background: var(--fla-header);
  gap: 16px;
  justify-content: space-between;
}
.fla-present-logo {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
}
.fla-present-logo img {
  display: block;
  max-height: 72px;
  width: auto;
}
.fla-class-shell .fla-present-code strong {
  font-size: 34px;
  letter-spacing: .12em;
  color: var(--fla-orange);
}
.fla-class-shell .fla-present-code a {
  font-size: 14px;
  word-break: break-all;
  color: #cfe6ff;
}
.fla-class-shell .fla-demo-kicker {
  color: rgba(255, 255, 255, 0.85);
}
.fla-present-trainer {
  flex: 1 1 auto;
  min-width: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  text-align: left;
  padding: 0 12px;
}
.fla-present-trainer-photo,
.fla-present-trainer-fallback {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  object-fit: cover;
  flex: 0 0 auto;
  border: 2px solid rgba(255, 255, 255, 0.85);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}
.fla-present-trainer-fallback {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--fla-logo-blue);
  color: #fff;
  font-weight: 800;
  font-size: 22px;
}
.fla-present-trainer-text {
  min-width: 0;
}
.fla-present-trainer strong {
  display: block;
  font-size: 28px;
  letter-spacing: .02em;
  color: #fff;
  line-height: 1.2;
}
.fla-class-shell .fla-present-trainer .fla-demo-kicker {
  display: block;
  margin-bottom: 4px;
  color: var(--fla-orange);
  font-size: 16px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.fla-present-joinblock {
  flex: 0 1 auto;
  min-width: 180px;
  margin-left: 0;
  text-align: right;
}
.fla-present-qr {
  background: #fff;
  color: var(--fla-navy);
  border-radius: 10px;
  padding: 6px;
  text-align: center;
  margin: 0 0 8px;
}
.fla-present-qr span {
  display: block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  margin-top: 2px;
}
.fla-class-shell .fla-present-grid {
  grid-template-columns: minmax(0, 1fr) 220px;
  gap: 14px;
}
.fla-class-shell .fla-present-stage {
  min-height: calc(100vh - 140px);
}
.fla-class-shell .fla-present-roster {
  min-height: 0;
  align-self: start;
  padding: 10px;
}
.fla-present-roster-note {
  font-size: 11px;
  line-height: 1.35;
  margin: 0 0 8px;
  color: var(--fla-muted);
}


.fla-present-toc {
	margin: 12px 0 0;
	padding-top: 10px;
	border-top: 1px solid rgba(0, 60, 110, 0.12);
}
.fla-present-toc h3 {
	margin: 0 0 6px;
	font-size: 14px;
}
.fla-present-toc ol {
	list-style: none;
	margin: 0;
	padding: 0;
	max-height: 280px;
	overflow-y: auto;
	overscroll-behavior: contain;
}
.fla-present-toc li {
	margin: 0;
	padding: 0;
	border: 0;
}
.fla-present-toc form { margin: 0; }
.fla-present-toc button {
	display: flex;
	align-items: flex-start;
	gap: 6px;
	width: 100%;
	margin: 0;
	padding: 5px 6px;
	border: 0;
	border-radius: 4px;
	background: transparent;
	color: inherit;
	font: inherit;
	font-size: 11px;
	line-height: 1.25;
	text-align: left;
	cursor: pointer;
}
.fla-present-toc button:hover {
	background: rgba(20, 92, 148, 0.08);
}
.fla-present-toc li.is-current button {
	background: rgba(20, 92, 148, 0.14);
	font-weight: 700;
	color: #003C6E;
}
.fla-present-toc-num {
	flex: 0 0 1.4em;
	opacity: 0.65;
	font-variant-numeric: tabular-nums;
}
.fla-present-toc li.is-current .fla-present-toc-num {
	opacity: 1;
	color: #EC572C;
}
.fla-present-toc-title {
	flex: 1 1 auto;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.fla-class-shell .fla-present-toc h3 { font-size: 13px; }

.fla-present-end {
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px solid #eef2f6;
}
.fla-present-end .fla-btn {
  width: 100%;
}

.fla-present-join-now {
  display: block;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--fla-orange);
  margin: 0 0 6px;
}
.fla-class-shell .fla-present-end .fla-btn {
  background: var(--fla-orange);
  color: #fff;
  border-color: var(--fla-orange);
}
.fla-class-shell .fla-present-end .fla-btn:hover {
  background: var(--fla-orange-hover);
  border-color: var(--fla-orange-hover);
  color: #fff;
}


.fla-class-shell .fla-present-roster li strong { font-size: 12px; }
.fla-class-shell .fla-present-roster .fla-btn.small {
  padding: 6px 8px;
  font-size: 10px;
  width: 100%;
}
.fla-class-shell .fla-present-slide-title { font-size: 40px; }

.fla-join-hands {
	margin: -8px 0 16px;
	padding: 12px 14px;
	border-radius: 8px;
	border: 1px solid transparent;
	font-size: 14px;
	line-height: 1.35;
}
.fla-join-hands strong {
	display: block;
	font-size: 15px;
	margin-bottom: 4px;
}
.fla-join-hands p {
	margin: 0;
	font-weight: 500;
}
.fla-join-hands.is-confirmed {
	background: #e8f7ee;
	border-color: #b7e0c2;
	color: #146c2e;
}
.fla-join-hands.is-pending {
	background: #fff4ec;
	border-color: #f0c9b0;
	color: #9a3f12;
}

.fla-join-follow {
  margin: 0 0 24px;
  padding: 20px;
}
.fla-start-class-now {
	padding: 14px 16px;
}
.fla-start-class-now > .fla-start-class-row {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 12px 18px;
}
.fla-start-class-main {
	flex: 1 1 260px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.fla-start-class-lead,
.fla-start-class-note,
.fla-start-class-main > p {
	margin: 0;
	line-height: 1.45;
}
.fla-start-class-meta {
	margin: 0;
	display: grid;
	gap: 6px;
}
.fla-start-class-meta > div {
	display: grid;
	grid-template-columns: 5.5rem minmax(0, 1fr);
	gap: 8px;
	align-items: baseline;
}
.fla-start-class-meta dt {
	margin: 0;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	color: #145C94;
}
.fla-start-class-meta dd {
	margin: 0;
	min-width: 0;
}
.fla-start-class-meta code,
.fla-start-class-now .fla-join-share {
	display: inline-block;
	max-width: 100%;
	overflow-wrap: anywhere;
	word-break: break-all;
	background: #eef2f6;
	padding: 2px 7px;
	border-radius: 4px;
	font-size: 13px;
	line-height: 1.35;
}
.fla-start-class-actions {
	margin: 0;
}
.fla-start-class-now .fla-btn {
	margin: 0;
}
.fla-start-class-qr {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 4px;
	flex: 0 0 auto;
	align-self: center;
	padding: 8px 10px 6px;
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
}
.fla-start-class-qr svg {
	display: block;
	width: 112px;
	height: 112px;
}
.fla-start-class-qr span {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: #145C94;
	text-transform: uppercase;
}



/* Demo overview (page 133 /demo/): Elementor sections used .fla-content,
   which stacked 48px/72px padding on every section including empty ones. */
body.page-id-133 .elementor-133 > .elementor-section.fla-content,
.elementor-133 > .elementor-section.fla-content {
  padding-top: 8px;
  padding-bottom: 12px;
}
body.page-id-133 .elementor-133 .fla-wrap + .fla-wrap,
.elementor-133 .fla-wrap + .fla-wrap {
  margin-top: 0;
  padding-top: 8px;
}
body.page-id-133 .elementor-133 > .elementor-section:first-child,
.elementor-133 > .elementor-section:first-child {
  padding-top: 0;
  padding-bottom: 0;
}
body.page-id-133 .fla-content .fla-sales h2,
.elementor-133 .fla-sales h2 {
  margin-top: 12px;
  margin-bottom: 10px;
}

.fla-walk-nav {
  position: sticky;
  bottom: 0;
  z-index: 40;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: space-between;
  align-items: center;
  width: min(var(--fla-max), calc(100% - 32px));
  margin: 24px auto 72px;
  padding: 12px 14px;
  background: #fff;
  border: 1px solid #d9e1ea;
  border-radius: var(--fla-radius);
  box-shadow: var(--fla-shadow);
}
.fla-demo-login {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin: 6px 0;
}
.fla-demo-login-form { display: inline; }
button.fla-copy {
  font: inherit;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 13px;
  padding: 4px 8px;
  border-radius: 6px;
  border: 1px dashed #8aa0b5;
  background: #f4f7fb;
  color: var(--fla-navy);
  cursor: pointer;
}
button.fla-copy:hover, button.fla-copy.is-copied {
  border-color: var(--fla-orange);
  background: #fff6ee;
}
.fla-demo-logged { font-weight: 600; color: var(--fla-blue); }

/* Tutor dashboard: site logo is white, sidebar is light. */
.tutor-dashboard-sidebar-logo {
  background: var(--fla-header, #003C6E);
  border-bottom-color: transparent;
  height: auto;
  min-height: 80px;
  padding: 12px 20px;
  overflow: visible;
}
.tutor-dashboard-sidebar-logo img {
  max-width: 180px;
  max-height: 52px;
  width: auto;
  height: auto;
  object-fit: contain;
  object-position: left center;
}

/* Demo / proposal hero with Klentel brand */
.fla-page-hero--proposal {
  overflow-x: clip;
}
.fla-page-hero--proposal .fla-hero-proposal {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  min-width: 0;
}
.fla-hero-proposal-copy {
  flex: 1 1 auto;
  min-width: 0;
  max-width: 720px;
}
.fla-hero-proposal-copy p {
  overflow-wrap: anywhere;
  word-wrap: break-word;
}
.fla-hero-proposal-copy .fla-eyebrow {
  overflow-wrap: normal;
  line-height: 1.35;
}
.fla-hero-proposal-brand {
  flex: 0 0 auto;
  box-sizing: border-box;
  text-align: center;
  background: #fff;
  border-radius: 14px;
  padding: 22px 26px 16px;
  box-shadow: 0 10px 28px rgba(0,0,0,.22);
  border: 2px solid var(--fla-klentel);
  max-width: 100%;
}
.fla-klentel-logo {
  display: block;
  width: 220px;
  max-width: 100%;
  height: auto;
  margin: 0 auto;
}
.fla-hero-proposal-by {
  margin: 10px 0 0;
  font-size: 12px;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #6b7280;
}
@media (max-width: 900px) {
  .fla-page-hero--proposal .fla-hero-proposal {
    flex-direction: column;
    align-items: stretch;
    gap: 24px;
  }
  .fla-hero-proposal-copy {
    max-width: none;
  }
  .fla-hero-proposal-brand {
    align-self: center;
    width: min(280px, 100%);
    padding: 18px 20px 14px;
  }
  .fla-klentel-logo {
    width: 200px;
  }
}
@media (max-width: 640px) {
  .fla-page-hero--proposal {
    padding: 28px 0 32px;
  }
  .fla-page-hero--proposal .fla-hero-proposal {
    gap: 18px;
  }
  .fla-page-hero--proposal h1 {
    font-size: clamp(1.55rem, 7.5vw, 2rem);
    line-height: 1.15;
  }
  .fla-page-hero--proposal .fla-eyebrow {
    font-size: 12px;
    letter-spacing: .06em;
  }
  .fla-page-hero--proposal .fla-hero-proposal-copy > p:not(.fla-eyebrow) {
    font-size: 15px;
    line-height: 1.55;
  }
  .fla-hero-proposal-brand {
    width: min(240px, 100%);
    padding: 14px 16px 12px;
    border-radius: 12px;
  }
  .fla-klentel-logo {
    width: 180px;
  }
}
@media (max-width: 380px) {
  .fla-page-hero--proposal .fla-eyebrow {
    font-size: 11px;
    letter-spacing: .04em;
  }
  .fla-hero-proposal-brand {
    width: 100%;
  }
  .fla-klentel-logo {
    width: 160px;
  }
}

/* Demo: collapsible Cost / Needs */
.fla-demo-fold {
  border: 1px solid rgba(8, 12, 51, .08);
  border-radius: 12px;
  background: #fff;
  box-shadow: var(--fla-shadow);
  margin: 0 0 28px;
  overflow: hidden;
}
.fla-demo-fold-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  cursor: pointer;
  list-style: none;
  padding: 16px 20px;
  background: #f7f9fc;
  user-select: none;
}
.fla-demo-fold-summary::-webkit-details-marker { display: none; }
.fla-demo-fold-summary::marker { content: ""; }
.fla-demo-fold-title {
  font-family: Outfit, system-ui, sans-serif;
  font-size: 1.45rem;
  font-weight: 800;
  color: var(--fla-navy);
  line-height: 1.2;
}
.fla-demo-fold-hint {
  flex: 0 0 auto;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .02em;
  color: var(--fla-muted);
  background: #fff;
  border: 1px solid rgba(8, 12, 51, .1);
  border-radius: 999px;
  padding: 6px 12px;
}
.fla-demo-fold[open] .fla-demo-fold-hint::before {
  content: "Hide";
}
.fla-demo-fold:not([open]) .fla-demo-fold-hint::before {
  content: "Show";
}
.fla-demo-fold-body {
  padding: 8px 20px 22px;
}
.fla-demo-fold-body > :first-child { margin-top: 0; }

/* Staff /launch/ Phase 1 checklist */
.fla-launch-check {
  list-style: none;
  margin: 0 0 28px;
  padding: 0;
}
.fla-launch-check > li {
  background: #fff;
  border: 1px solid rgba(8, 12, 51, .08);
  border-radius: 10px;
  box-shadow: var(--fla-shadow);
  margin: 0 0 12px;
  padding: 14px 16px 14px 14px;
  border-left: 4px solid #c5d0dc;
}
.fla-launch-check > li.is-done {
  border-left-color: #1f9d55;
  background: #f4fbf6;
}
.fla-launch-check > li.is-doing {
  border-left-color: var(--fla-gold);
  background: #fffaf6;
}
.fla-launch-check label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: default;
  margin: 0;
  font-weight: 700;
  color: var(--fla-navy);
}
.fla-launch-check input[type="checkbox"] {
  margin-top: 3px;
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  accent-color: #1f9d55;
}
.fla-launch-check > li > div {
  margin: 8px 0 0 28px;
  color: var(--fla-muted);
  font-size: 14px;
  line-height: 1.5;
}
.fla-launch-check > li.is-done > div { color: #3d5a46; }

/* Staff /launch/ collapsible completed / already-works */
.fla-launch-fold {
  margin: 0 0 28px;
  border: 1px solid rgba(8, 12, 51, .1);
  border-radius: 10px;
  background: #fff;
  overflow: hidden;
}
.fla-launch-fold > summary {
  cursor: pointer;
  list-style: none;
  padding: 12px 16px;
  font-weight: 700;
  color: var(--fla-navy);
  background: #f4f6fa;
  border-left: 4px solid var(--fla-navy);
  user-select: none;
}
.fla-launch-fold > summary::-webkit-details-marker { display: none; }
.fla-launch-fold > summary::marker { content: ""; }
.fla-launch-fold[open] > summary {
  border-bottom: 1px solid rgba(8, 12, 51, .08);
}
.fla-launch-fold > .fla-prod-needs,
.fla-launch-fold > .fla-launch-check {
  margin: 12px 12px 16px;
}


/* Lesson presentation figures (course graphics enrichment) */
.fla-lesson-figure {
  margin: 1.25rem 0 1.5rem;
  max-width: 100%;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(8, 12, 51, 0.12);
  background: #fff;
  border: 1px solid rgba(8, 12, 51, 0.06);
}
.fla-lesson-figure img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  margin: 0;
  border-radius: 12px;
}
.tutor-lesson-content .fla-lesson-figure,
.tutor-course-single-content-wrapper .fla-lesson-figure {
  margin-left: 0;
  margin-right: 0;
}
.fla-optional-ref {
  margin-top: 1.5rem;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(8, 12, 51, 0.08);
  font-size: 0.95em;
  color: #5a6570;
}

/* Certificate of Achievement */
.fla-coa-pass {
  max-width: 580px;
  margin: 0 auto 16px;
  padding: 14px 16px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 10px;
  color: #fff;
  text-align: center;
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: center;
}
.fla-coa-pass .fla-btn,
.fla-coa-actions .fla-btn {
  display: inline-block;
  margin-top: 4px;
}
.fla-coa-actions {
  max-width: 580px;
  margin: 12px auto 0;
  text-align: center;
  position: relative;
  z-index: 1;
}
.fla-gwallet {
  max-width: 580px;
  margin: 12px auto 0;
  text-align: center;
  position: relative;
  z-index: 1;
}
.fla-gwallet-form {
  margin: 0;
}
.fla-gwallet-btn {
  display: inline-block;
  margin: 8px;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
  line-height: 0;
}
.fla-gwallet-btn img {
  display: block;
  height: 55px;
  width: auto;
}
.fla-gwallet-btn:focus-visible {
  outline: 2px solid #fbbb00;
  outline-offset: 3px;
}
.fla-gwallet-privacy {
  margin: 0 auto 4px;
  color: rgba(255,255,255,.6);
  font-size: 12px;
  line-height: 1.4;
}
.fla-gwallet-note {
  margin: 4px auto 0;
  color: rgba(255,255,255,.75);
  font-size: 13px;
}
.fla-coa-tile-hint {
  max-width: 720px;
  margin: 0 auto 10px;
  text-align: center;
  color: rgba(255,255,255,.85);
  font-size: 14px;
  position: relative;
  z-index: 1;
}

/* GTranslate in header: compact EN/ES */
.fla-header-actions .fla-lang {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  margin: 0 6px 0 0;
}
.fla-header-actions .fla-lang .gtranslate_wrapper,
.fla-header-actions .fla-lang [id^="gt-wrapper-"] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  line-height: 1;
}
.fla-header-actions .fla-lang a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  box-sizing: border-box;
  min-width: 44px;
  height: 44px;
  padding: 0 8px;
  color: #fff !important;
  text-decoration: none !important;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .02em;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 10px;
  opacity: .92;
  background: transparent;
}
.fla-header-actions .fla-lang a:hover,
.fla-header-actions .fla-lang a:focus {
  opacity: 1;
  background: rgba(255,255,255,.08);
}
.fla-header-actions .fla-lang a img {
  width: 22px !important;
  height: 22px !important;
  border-radius: 3px;
  display: block;
  flex-shrink: 0;
}
.fla-header-actions .fla-lang a span {
  white-space: nowrap;
}
/* Mobile: flags only */
@media (max-width: 960px) {
  .fla-header-actions .fla-lang {
    margin-right: 4px;
  }
  .fla-header-actions .fla-lang a {
    gap: 0;
    min-width: 44px;
    width: 44px;
    height: 44px;
    padding: 0;
  }
  .fla-header-actions .fla-lang a span {
    display: none;
  }
  .fla-header-actions .fla-lang a img {
    width: 22px !important;
    height: 22px !important;
  }
  .fla-header-actions .fla-lang .gtranslate_wrapper,
  .fla-header-actions .fla-lang [id^="gt-wrapper-"] {
    gap: 6px;
  }
}

/* Staff pages (reports, etc.): light readable layout, not marketing fla-band */
.fla-staff-page {
  background: var(--fla-bg);
  color: var(--fla-text);
  min-height: 60vh;
  padding: 36px 0 72px;
}
.fla-staff-page__inner {
  max-width: 960px;
  margin: 0 auto;
}
.fla-staff-page__kicker {
  text-transform: uppercase;
  letter-spacing: .06em;
  font-size: 12px;
  color: var(--fla-muted);
  margin: 0;
}
.fla-staff-page__title {
  margin: 8px 0 12px;
  color: var(--fla-navy);
  font-size: clamp(28px, 4vw, 40px);
  font-weight: 800;
}
.fla-staff-page__lead {
  margin: 0 0 8px;
  color: var(--fla-muted);
  max-width: 680px;
  line-height: 1.5;
}
.fla-staff-page__notice {
  margin: 16px 0 0;
  padding: 12px 14px;
  background: #fff8e6;
  border-left: 4px solid #c49f34;
  border-radius: 6px;
  color: var(--fla-text);
}
.fla-report-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 16px;
  margin-top: 28px;
}
.fla-report-card {
  display: block;
  padding: 18px 18px 16px;
  background: #fff;
  border-radius: 12px;
  text-decoration: none;
  color: inherit;
  border: 1px solid #e2e8f0;
  box-shadow: 0 1px 2px rgba(8, 12, 51, 0.04);
  transition: border-color .15s ease, box-shadow .15s ease;
}
.fla-report-card:hover,
.fla-report-card:focus {
  border-color: #145C94;
  box-shadow: 0 8px 24px rgba(20, 92, 148, 0.12);
  color: inherit;
}
.fla-report-card__title {
  display: block;
  font-size: 17px;
  margin-bottom: 8px;
  color: #145C94;
}
.fla-report-card__blurb {
  font-size: 14px;
  line-height: 1.45;
  color: var(--fla-muted);
}
.fla-report-card__tag {
  display: inline-block;
  margin-top: 10px;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: #145C94;
  font-weight: 700;
}

.fla-report-group {
  margin-top: 32px;
}
.fla-report-group:first-of-type {
  margin-top: 24px;
}
.fla-report-group__title {
  margin: 0 0 6px;
  font-size: 20px;
  color: #003C6E;
}
.fla-report-group__blurb {
  margin: 0 0 14px;
  font-size: 14px;
  color: var(--fla-muted);
}
.fla-report-group .fla-report-grid {
  margin-top: 0;
}
.fla-staff-page__actions {
  margin-top: 40px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}





/* Elementor home: full-bleed marketing sections matching PHP front-page */
body.home .elementor-section.elementor-section-full_width > .elementor-container,
body.home .elementor-section.elementor-section-boxed > .elementor-container {
  max-width: none !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.home .elementor-column-gap-no > .elementor-column > .elementor-element-populated {
  padding: 0 !important;
}
body.home .elementor-widget-html {
  margin: 0 !important;
}
body.home .elementor-widget:not(:last-child) {
  margin-bottom: 0 !important;
}
body.home .elementor-element {
  --widgets-spacing: 0px 0px;
}

/* Shopper Approved hero badge  -  live frosted pill (af2c88a nested: avatars | stars+copy) */
.fla-hero-visual .fla-sa-hero,
.fla-hero-visual .fla-sa-badge {
  align-self: flex-end;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: auto;
  max-width: 100%;
  margin-top: 0;
  padding: 10px 18px 10px 10px; /* L/R balance: right was optically tight vs left around stars+copy */
  text-align: left;
  border: 1px solid #fff;
  border-radius: 100px;
  background: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(3.5px);
  -webkit-backdrop-filter: blur(3.5px);
  box-sizing: border-box;
}
.fla-hero-visual .fla-sa-badge-link {
  display: inline-block;
  line-height: 0;
  flex: 0 0 auto;
  position: relative;
  top: 5px; /* live 8fd53a2 optical align */
}
.fla-hero-visual .fla-sa-badge .fla-shopper {
  width: 170px;
  height: auto;
  max-width: 100%;
  display: block;
}
/* Live 813ddd4: stars + copy stacked with 0 gap (not a wrapped second row) */
.fla-hero-visual .fla-sa-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 0;
  flex: 0 1 auto;
  min-width: 0;
  padding: 0;
}
.fla-hero-visual .fla-sa-stars {
  width: 136px;
  height: auto;
  max-width: 100%;
  display: block;
  flex: 0 0 auto;
}
.fla-hero-visual .fla-sa-copy {
  margin: 0;
  padding: 0;
  font-family: Outfit, "Segoe UI", sans-serif;
  font-size: 18px;
  line-height: 1.5;
  font-weight: 400;
  color: #080C33;
  white-space: nowrap;
}
.fla-hero-visual .fla-sa-copy a {
  color: #080C33;
  text-decoration: underline;
  font-weight: 400;
}
.fla-hero-visual .fla-sa-copy a:hover {
  color: #165D95;
  opacity: 1;
}
@media (max-width: 1024px) {
  .fla-hero { min-height: 480px; padding: 56px 0 48px; }
  .fla-hero p.lead { font-size: 18px; }
  .fla-hero .fla-actions { flex-wrap: wrap; }
}
@media (max-width: 1024px) and (min-width: 768px) {
  .fla-hero-visual .fla-sa-copy { font-size: 17px; line-height: 1.4; }
}
@media (max-width: 767px) {
  .fla-hero-visual .fla-sa-badge {
    padding: 4px 12px 4px 4px; /* match desktop L/R optical balance on mobile */
    gap: 8px;
  }
  .fla-hero-visual .fla-sa-badge-link { top: 2px; }
  .fla-hero-visual .fla-sa-badge .fla-shopper { width: 140px; }
  .fla-hero-visual .fla-sa-stars { width: 90px; } /* live mobile 74ffa0f */
  .fla-hero-visual .fla-sa-copy { white-space: normal; font-size: 14px; line-height: 1.5; }
}
@media (max-width: 900px) and (min-width: 768px) {
  .fla-hero-visual .fla-sa-copy { white-space: nowrap; }
}

@media (max-width: 900px) {
  .fla-why { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .fla-why { grid-template-columns: 1fr; }
}

/* --- panels/logos soft-match pass (1.5.75) --- */
/* Collapse Elementor chrome  -  optimized DOM often omits .elementor-widget-container */
body.home .elementor-section:has(.fla-logos),
body.home .elementor-top-section:has(.fla-logos),
body.home .elementor-element:has(> .fla-logos),
body.home .elementor-element:has(> .elementor-widget-container .fla-logos),
body.home .elementor-widget-html:has(.fla-logos),
body.home .elementor-element-ac36a27,
body.home .elementor-element-3b90c33 {
  margin: 0 !important;
  padding: 0 !important;
  max-width: 100% !important;
  width: 100%;
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  border-radius: 0 !important;
}
body.home .elementor-section:has(.fla-logos) > .elementor-container,
body.home .elementor-section:has(.fla-logos) .elementor-column,
body.home .elementor-section:has(.fla-logos) .elementor-widget-wrap,
body.home .elementor-section:has(.fla-logos) .elementor-widget-container,
body.home .elementor-section:has(.fla-logos) .elementor-element-populated {
  padding: 0 !important;
  margin: 0 !important;
  max-width: 100% !important;
  width: 100% !important;
}
body.home .elementor-section:has(.fla-logos) .fla-logos {
  margin: 0;
  width: 100%;
}

/* Mid-width: prefer stacked image|blue panels (live tablet rhythm) */
@media (max-width: 1024px) and (min-width: 761px) {
  .fla-cards {
    grid-template-columns: 1fr !important;
    gap: 16px;
  }
  .fla-card {
    flex-direction: row;
    align-items: stretch;
  }
  .fla-card:nth-child(even) {
    flex-direction: row-reverse;
  }
  .fla-card > .fla-card-media,
  .fla-card > img {
    width: 42%;
    max-width: 42%;
    flex: 0 0 42%;
    align-self: stretch;
  }
  .fla-card-media img,
  .fla-card > img {
    width: 100%;
    height: 100% !important;
    min-height: 240px;
    object-fit: cover;
  }
  .fla-card > .body {
    width: 58%;
    justify-content: center;
  }
}

/* ===== Lower-page rhythm: blog + home contact (1.5.65) ===== */
.fla-home-blog {
  background: #f5f8fb;
  padding: 56px 0 48px;
}
.fla-home-blog > .fla-wrap,
.fla-home-contact > .fla-wrap {
  width: min(var(--fla-max), calc(100% - 32px));
  max-width: var(--fla-max);
  margin-inline: auto;
}
.fla-home-blog h2,
.fla-home-contact h2 {
  margin: 0 0 10px;
  color: var(--fla-header);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.fla-home-blog .fla-sub,
.fla-home-contact .fla-sub {
  margin: 0 0 28px;
  color: var(--fla-muted);
  max-width: 720px;
}
.fla-blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  margin-bottom: 22px;
}
.fla-blog-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  border: 1px solid #e4eaf0;
  box-shadow: var(--fla-shadow);
  transition: transform .15s ease, box-shadow .15s ease;
}
.fla-blog-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(8, 12, 51, 0.12);
}
.fla-blog-card-media {
  height: 72px;
  background: linear-gradient(135deg, #d7e6f3 0%, #b7cee4 100%);
}
.fla-blog-card-media--alt {
  background: linear-gradient(135deg, #cfe0ef 0%, #a9c4dc 100%);
}
.fla-blog-card-media--warm {
  background: linear-gradient(135deg, #e4ecf4 0%, #d6c4bb 100%);
}
.fla-blog-card-body {
  padding: 14px 16px 16px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex: 0 1 auto;
}
.fla-blog-card-body h3 {
  margin: 0;
  font-size: 18px;
  line-height: 1.3;
  color: var(--fla-navy);
  font-weight: 700;
  text-transform: none;
  letter-spacing: 0;
}
.fla-blog-card-body p {
  margin: 0;
  color: var(--fla-muted);
  font-size: 14px;
  line-height: 1.45;
  flex: 0 1 auto;
}
.fla-blog-card-body .fla-link {
  color: var(--fla-blue);
  font-weight: 700;
  text-transform: lowercase;
  font-size: 14px;
}
.fla-home-contact {
  background: #fff;
  padding: 64px 0 24px;
}
/* Elementor home: heading section + following [fla_contact_page] shortcode section */
body.home .fla-home-contact + .elementor-section,
body.home .elementor-section:has(.fla-contact-layout) {
  background: #fff;
  padding-bottom: 72px !important;
}
.fla-home-contact .fla-content.wide,
body.home .fla-content.wide:has(.fla-contact-layout) {
  padding-top: 8px !important;
  padding-bottom: 0;
}
/* Hide internal FluentCRM implementation notes on all public marketing pages */
.fla-contact-demo-note {
  display: none !important;
}
.fla-home-contact .fla-contact-demo-note,
body.home .fla-contact-demo-note {
  display: none !important;
}
.fla-home-contact .fla-contact-layout,
body.home .fla-contact-layout {
  margin-top: 8px;
}
.fla-home-contact .fla-contact-nap,
body.home .fla-contact-nap {
  background: var(--fla-header);
}
.elementor-section:has(.fla-home-blog),
.elementor-section:has(.fla-home-contact),
.elementor-section:has(.fla-faq) {
  padding: 0 !important;
  margin: 0 !important;
}
@media (max-width: 900px) {
  .fla-blog-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .fla-blog-grid { grid-template-columns: 1fr; }
  .fla-home-blog,
  .fla-home-contact { padding: 48px 0 40px; }
}



/* ===== Interior marketing soft-match (individual / business / about) ===== */
.fla-interior-hero {
  padding: 56px 0 48px;
}
.fla-interior-hero .fla-wrap {
  max-width: var(--fla-max);
}
.fla-interior-hero .fla-eyebrow {
  margin: 0 0 10px;
  color: var(--fla-orange);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 13px;
}
.fla-interior-hero h1 {
  margin: 0 0 14px;
  max-width: 18ch;
}
.fla-interior-hero > .fla-wrap > p,
.fla-interior-hero .fla-wrap > p:not(.fla-eyebrow):not(.fla-hero-actions) {
  margin: 0 0 18px;
  max-width: 720px;
  color: rgba(255, 255, 255, 0.92);
  font-size: 18px;
  line-height: 1.55;
}
.fla-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 8px 0 0 !important;
}
.fla-interior-body {
  background: var(--fla-bg);
  padding: 40px 0 72px;
}
.fla-interior-body .fla-wrap {
  max-width: var(--fla-max);
}
.fla-interior-panel {
  background: #fff;
  border: 1px solid #e4eaf1;
  border-radius: 12px;
  padding: 28px 32px;
  box-shadow: 0 8px 24px rgba(8, 12, 51, 0.06);
}
.fla-interior-panel h2 {
  margin-top: 0;
  color: var(--fla-header);
}
.fla-process-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin: 0 0 24px;
}
.fla-process-chip {
  background: var(--fla-blue);
  color: #fff;
  border-radius: 10px;
  padding: 14px 16px;
  font-weight: 700;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 14px;
}
.fla-biz-cards .fla-mini-card {
  padding-top: 0;
  overflow: hidden;
}
.fla-mini-card .fla-card-top {
  background: var(--fla-header);
  color: #fff;
  margin: 0 -18px 14px;
  padding: 12px 18px;
  font-weight: 700;
  font-size: 15px;
  line-height: 1.3;
}
.fla-biz-cards .fla-mini-card:nth-child(2) .fla-card-top {
  background: var(--fla-orange);
}
.fla-interior-cta-row {
  margin: 28px 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.fla-about-points {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin: 20px 0 28px;
}
.fla-about-point {
  background: #fff;
  border-left: 4px solid var(--fla-orange);
  border-radius: 8px;
  padding: 16px 18px;
  box-shadow: var(--fla-shadow);
  color: var(--fla-navy);
  font-weight: 600;
  line-height: 1.45;
}
.fla-cta-band {
  background: var(--fla-header);
  color: #fff;
  padding: 40px 0;
}
.fla-cta-band-inner {
  max-width: var(--fla-max);
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}
.fla-cta-band strong {
  display: block;
  font-size: 22px;
  font-weight: 800;
  margin-bottom: 6px;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}
.fla-cta-band p {
  margin: 0;
  color: rgba(255, 255, 255, 0.88);
}
.fla-cta-band-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.fla-cta-band .fla-btn.ghost {
  border-color: rgba(255, 255, 255, 0.55);
  color: #fff;
}
/* Contact body: tighten whitespace under hero */
.elementor-section:has(.fla-contact-layout) {
  padding-bottom: 56px !important;
}
.fla-contact-layout {
  margin-top: 8px;
}
@media (max-width: 900px) {
  .fla-process-row,
  .fla-about-points {
    grid-template-columns: 1fr;
  }
  .fla-interior-hero h1 {
    max-width: none;
  }
}

/* --- Why Choose Elementor full-bleed chrome (1.5.67) --- */
.elementor-section:has(.fla-why-section),
.elementor-top-section:has(.fla-why-section),
.elementor-element:has(> .elementor-widget-container .fla-why-section) {
  margin: 0 !important;
  max-width: 100% !important;
  width: 100% !important;
}
.elementor-section:has(.fla-why-section) > .elementor-container,
.elementor-section:has(.fla-why-section) .elementor-widget-wrap,
.elementor-section:has(.fla-why-section) .elementor-widget-container {
  padding: 0 !important;
  margin: 0 !important;
  max-width: 100% !important;
  width: 100% !important;
}
.elementor-section:has(.fla-why-section) > .elementor-container {
  display: block;
}
.elementor-section:has(.fla-why-section) .fla-why-section {
  margin: 0;
}
@media (max-width: 1100px) {
  .fla-why-section > .fla-wrap {
    width: min(1220px, calc(100% - 32px));
  }
}

/* hero-exact-match-pass 1.5.69  -  live full-bleed photo hero + SA frosted pill */

/* --- About page (Elementor post 222; was programs 840)  -  theme CSS for .fla-about-page / .fla-programs-page (1.5.74) --- */
.fla-about-page .fla-page-hero,
.fla-programs-page .fla-page-hero {
	background: linear-gradient(135deg, #145C94 0%, #0d3f66 100%);
}
.fla-about-page .fla-page-hero h1,
.fla-about-page .fla-page-hero .fla-eyebrow,
.fla-about-page .fla-page-hero p,
.fla-programs-page .fla-page-hero h1,
.fla-programs-page .fla-page-hero .fla-eyebrow,
.fla-programs-page .fla-page-hero p { color: #fff; }
.fla-about-page .fla-eyebrow,
.fla-programs-page .fla-eyebrow { letter-spacing: .08em; text-transform: uppercase; font-size: 12px; font-weight: 800; opacity: .9; }
.fla-about-page .fla-programs-grid,
.fla-programs-page .fla-programs-grid,
.fla-programs-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 18px;
	margin: 28px 0;
}
.fla-about-page .fla-programs-card,
.fla-programs-page .fla-programs-card,
.fla-programs-card {
	background: #fff;
	border: 1px solid #d7e3ee;
	border-radius: 12px;
	padding: 22px 20px;
	border-top: 4px solid #145C94;
}
.fla-about-page .fla-programs-card:nth-child(2),
.fla-programs-page .fla-programs-card:nth-child(2),
.fla-programs-card:nth-child(2) { border-top-color: #EC572C; }
.fla-about-page .fla-programs-card:nth-child(3),
.fla-programs-page .fla-programs-card:nth-child(3),
.fla-programs-card:nth-child(3) { border-top-color: #145C94; }
.fla-about-page .fla-programs-card:nth-child(4),
.fla-programs-page .fla-programs-card:nth-child(4),
.fla-programs-card:nth-child(4) { border-top-color: #EC572C; }
.fla-about-page .fla-programs-card h3,
.fla-programs-page .fla-programs-card h3,
.fla-programs-card h3 { margin: 0 0 10px; color: #080C33; font-size: 18px; }
.fla-about-page .fla-programs-card p,
.fla-programs-page .fla-programs-card p,
.fla-programs-card p { margin: 0 0 12px; color: #3a4654; font-size: 15px; line-height: 1.5; }
.fla-about-page .fla-programs-card a.fla-link,
.fla-programs-page .fla-programs-card a.fla-link,
.fla-programs-card a.fla-link { color: #EC572C; font-weight: 700; text-decoration: none; }
.fla-about-page .fla-programs-card a.fla-link:hover,
.fla-programs-page .fla-programs-card a.fla-link:hover,
.fla-programs-card a.fla-link:hover { text-decoration: underline; }
.fla-about-page .fla-programs-verify-note,
.fla-programs-page .fla-programs-verify-note,
.fla-programs-verify-note {
	background: #f4f8fb;
	border-left: 4px solid #145C94;
	padding: 16px 18px;
	border-radius: 0 10px 10px 0;
	margin: 24px 0;
}
.fla-about-page .fla-programs-verify-note p,
.fla-programs-page .fla-programs-verify-note p,
.fla-programs-verify-note p { margin: 0; color: #3a4654; }
.fla-about-page .fla-programs-actions,
.fla-programs-page .fla-programs-actions,
.fla-programs-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 8px; }
.fla-about-page .fla-programs-actions .fla-btn,
.fla-programs-page .fla-programs-actions .fla-btn,
.fla-programs-actions .fla-btn { background: #EC572C; }
.fla-about-page .fla-programs-actions .fla-btn:hover,
.fla-programs-page .fla-programs-actions .fla-btn:hover,
.fla-programs-actions .fla-btn:hover { background: #DA4920; }
.fla-about-page .fla-programs-actions .fla-btn.ghost,
.fla-programs-page .fla-programs-actions .fla-btn.ghost,
.fla-programs-actions .fla-btn.ghost {
	background: transparent;
	color: #145C94;
	border: 2px solid #145C94;
}
.fla-about-page .fla-programs-actions .fla-btn.ghost:hover,
.fla-programs-page .fla-programs-actions .fla-btn.ghost:hover,
.fla-programs-actions .fla-btn.ghost:hover { background: #145C94; color: #fff; }

/* ===== Home below-hero pass (1.5.75) ===== */
/* Audience + featured offers: tighter rhythm under logos; keep blue panels */
body.home .fla-section:has(.fla-cards) {
  padding: 40px 0 56px;
  background: transparent;
}
body.home .fla-section:has(.fla-cards) > .fla-wrap {
  width: min(var(--fla-max), calc(100% - 32px));
  margin-inline: auto;
}
body.home .fla-cards {
  gap: 18px;
}
body.home .fla-card {
  box-shadow: 0 8px 22px rgba(8, 12, 51, 0.10);
  border-radius: 10px;
}
body.home .fla-section:has(.fla-products) {
  padding: 48px 0 56px;
}
body.home .fla-products {
  gap: 16px;
}
body.home .fla-product {
  box-shadow: 0 8px 22px rgba(8, 12, 51, 0.10);
  border-radius: 10px;
}
/* Kill any residual card chrome if older rules leak onto logos */
body.home .fla-logos,
body.home .fla-logos-box {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* ===== Home below-hero pass 2 (1.5.76) ===== */

/* 1) Why Choose: theme-hosted SVG icons via CSS (Elementor kses strips inline SVG) */
.fla-why-icon {
  background-color: #145C94;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 22px 22px;
}
.fla-why-card:nth-child(1) .fla-why-icon {
  background-image: url("assets/icons/why-osha.svg");
}
.fla-why-card:nth-child(2) .fla-why-icon {
  background-image: url("assets/icons/why-certificate.svg");
}
.fla-why-card:nth-child(3) .fla-why-icon {
  background-image: url("assets/icons/why-clock.svg");
}
.fla-why-card:nth-child(4) .fla-why-icon {
  background-image: url("assets/icons/why-pin.svg");
}
.fla-why-card:nth-child(5) .fla-why-icon {
  background-image: url("assets/icons/why-briefcase.svg");
}
.fla-why-card:nth-child(6) .fla-why-icon {
  background-image: url("assets/icons/why-language.svg");
}

/* 2) Reviews: multi-card strip, stars, less empty space */
.fla-reviews-section {
  padding-top: 48px;
  padding-bottom: 40px;
}
.fla-reviews-section > .fla-wrap > h2 {
  margin: 0 0 18px;
  text-align: center;
}
.fla-reviews {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  align-items: stretch;
}
.fla-reviews blockquote {
  margin: 0;
  background: #fff;
  border-radius: 12px;
  padding: 16px 16px 14px;
  box-shadow: 0 8px 22px rgba(8, 12, 51, 0.08);
  border: 1px solid #e4eaf0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 0;
}
.fla-reviews .fla-review-stars {
  color: #f5a623;
  letter-spacing: 1px;
  font-size: 15px;
  line-height: 1;
  font-weight: 700;
}
.fla-reviews p {
  margin: 0;
  color: var(--fla-muted);
  font-size: 14px;
  line-height: 1.45;
  flex: 1 1 auto;
}
.fla-reviews footer {
  margin-top: 4px;
  font-weight: 700;
  color: var(--fla-navy);
  font-size: 13.5px;
}
@media (max-width: 900px) {
  .fla-reviews { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .fla-reviews { grid-template-columns: 1fr; }
}

/* 3) Featured offers: compact price/CTA footer (kill oversized dead blue) */
body.home .fla-product .body {
  padding: 12px 12px 12px;
  gap: 8px;
  flex: 0 1 auto;
}
body.home .fla-product h3 {
  min-height: 0;
  margin: 0;
  font-size: 14.5px;
}
body.home .fla-product .fla-offer-foot,
body.home .fla-product .body > .price {
  margin-top: 4px;
}
body.home .fla-product .price {
  font-size: 19px;
  margin: 0;
}
body.home .fla-product .fla-btn {
  margin-top: 6px;
  padding-top: 10px;
  padding-bottom: 10px;
}
body.home .fla-product img {
  height: 132px;
}

/* 4) FAQ: default-closed visual balance (markup also drops open attr) */
.fla-faq {
  align-items: start;
  gap: 10px 18px;
}
.fla-faq details {
  padding: 12px 16px;
}
.fla-faq details[open] {
  grid-column: span 1;
}
.fla-faq summary {
  font-size: 15px;
  line-height: 1.35;
}
.fla-faq details p {
  margin: 8px 0 2px;
  font-size: 14px;
  line-height: 1.5;
}
body.home .elementor-section:has(.fla-faq) {
  padding-top: 8px;
  padding-bottom: 8px;
}

/* 5) Blog: subtler short placeholders already in base; tighten card chrome */
body.home .fla-blog-card {
  min-height: 0;
}
body.home .fla-blog-card-body h3 {
  font-size: 16px;
}
body.home .fla-home-blog .fla-sub {
  margin-bottom: 18px;
}

/* ===== Logos true full-bleed 100vw (1.5.77) =====
   Prior 1.5.75 used width/max-width:100% which only fills Elementor ancestors.
   Constraints observed:
   - Global .fla-wrap uses width:min(var(--fla-max), calc(100% - 32px)) (--fla-max:1220px)
   - Elementor default .elementor-section-boxed > .elementor-container max-width:1140px
   - Section 3b90c33 is full_width + gap-no, but 100% still cannot escape page/ancestor padding
   Break out section :has(.fla-logos) / 3b90c33 to 100vw; title stays centered; track edge-to-edge.
   Do not touch hero/header. Theme CSS only (no Elementor HTML widget styles).
*/
body.home .elementor-element-3b90c33.elementor-section,
body.home .elementor-section:has(.fla-logos),
body.home .elementor-top-section:has(.fla-logos) {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  position: relative;
  left: auto;
  right: auto;
  overflow-x: clip !important;
  overflow-y: visible !important;
  box-sizing: border-box !important;
  background: #fff;
}
body.home .elementor-element-3b90c33 > .elementor-container,
body.home .elementor-section:has(.fla-logos) > .elementor-container {
  max-width: none !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.home .elementor-section:has(.fla-logos) .elementor-column,
body.home .elementor-section:has(.fla-logos) .elementor-widget-wrap,
body.home .elementor-section:has(.fla-logos) .elementor-element-populated,
body.home .elementor-section:has(.fla-logos) .elementor-widget-html,
body.home .elementor-section:has(.fla-logos) .elementor-widget-container,
body.home .elementor-element-ac36a27,
body.home .elementor-element-5f25d99 {
  max-width: none !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
}
.fla-logos,
body.home .fla-logos,
body.home .elementor-section:has(.fla-logos) .fla-logos {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box;
  overflow: hidden;
  background: #fff;
}
.fla-logos > .fla-wrap,
.fla-logos .fla-wrap,
body.home .fla-logos > .fla-wrap,
body.home .fla-logos .fla-wrap {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.fla-logos-box,
.fla-logos-viewport,
body.home .fla-logos-box,
body.home .fla-logos-viewport {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box;
}
/* Title centered; track remains edge-to-edge */
.fla-logos h2 {
  text-align: center;
  padding-left: 16px;
  padding-right: 16px;
  max-width: var(--fla-max);
  margin-left: auto;
  margin-right: auto;
}
/* Softer edge fade so strip does not read as side gutters (was 4%/96%) */
.fla-logos-viewport {
  mask-image: linear-gradient(90deg, transparent, #000 1.5%, #000 98.5%, transparent);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 1.5%, #000 98.5%, transparent);
}

/* ===== Audience clue badges over image (1.5.78) =====
   Live home § audience uses absolute .tag (top:10px;left:10px) over the photo.
   DEV keeps 3-col stacked cards; move .fla-card-kicker out of .body onto .fla-card-media.
   Preserves 1.5.77 logos 100vw rules untouched. Third badge keeps digital wallet cards copy.
*/
body.home .fla-card-media {
  position: relative;
}
body.home .fla-card-kicker {
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 2;
  margin: 0 !important;
  max-width: calc(100% - 20px);
  background: rgba(22, 93, 149, 0.74);
}
body.home .fla-card .body {
  padding-top: 20px;
}
body.home .fla-card .body > h3 {
  margin-top: 0;
}
@media (max-width: 760px) {
  .fla-card-media img,
  .fla-card > img {
    height: 180px;
  }
}

/* ===== Transparent image light backgrounds (1.5.79) =====
   Christian: light/white BG behind transparent images so colored art reads.
   Inventory (home + shared chrome):
   - forklift.png (Featured Offers)  -  TRANSPARENT cutout on .fla-product blue → white img BG
   - payment-badges.png  -  TRANSPARENT strip on dark footer → white chip
   - bbb.svg (.fla-badge-color)  -  teal/white on dark hero → white pill (OSHA/Authorize stay
     white-on-dark intentional; no white wash on hero photo itself)
   Already OK (no change): logos strip (#fff section + JPG logos), SA frosted pill,
   header/footer white logos on navy, why-icon white strokes on #145C94 circles,
   SLATT/scissor product PNGs (opaque), hero photo JPG.
   Preserves 1.5.77 logos 100vw breakout + 1.5.78 audience clue-badge overlay rules
   (append-only; those blocks untouched).
*/
.fla-product img {
  background-color: #fff;
  background-image: none;
}
.site-footer.fla-footer .fla-pay-badges,
.fla-pay-badges {
  background-color: #fff;
  background-image: none;
  padding: 8px 12px;
  border-radius: 8px;
  box-sizing: border-box;
  height: auto;
  max-height: none;
  width: auto;
  max-width: 100%;
  object-fit: contain;
}
.fla-trust-badges img.fla-badge-color {
  background-color: #fff;
  background-image: none;
  border-radius: 6px;
  padding: 4px 6px;
  box-sizing: content-box;
}


/* ===== Logos seamless loop + size (1.5.80) =====
   Root cause: one logo set ≈ 8×52px + gaps ≈ 780px; half-track after 2× markup
   was still < typical desktop viewport, so translateX(-50%) left an empty right gap.
   Markup now has 4× sets; JS doubles until half-width >= viewport; logos ~68px.
   Preserves 1.5.77 100vw breakout, 1.5.78 audience badges, 1.5.79 transparent BG.
*/
.fla-logos-track {
  animation: fla-marquee 72s linear infinite !important;
}
.fla-logos-track img {
  height: 68px !important;
  max-height: 68px !important;
  max-width: 180px !important;
  background: transparent !important;
}
@media (max-width: 767px) {
  .fla-logos-track img {
    height: 48px !important;
    max-height: 48px !important;
    max-width: 130px !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  .fla-logos-track { animation: none !important; }
}

/* STG Pro tour cards  -  stand out from page */

/* ===== Offer cards: align GET CERTIFIED buttons (1.5.83) ===== */
body.home .fla-products {
  align-items: stretch;
}
body.home .fla-product {
  height: 100%;
  display: flex;
  flex-direction: column;
}
body.home .fla-product .body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
/* Push price+CTA to the bottom so buttons align across the row */
body.home .fla-product .fla-offer-foot,
body.home .fla-product .body > .price {
  margin-top: auto !important;
}
body.home .fla-product .fla-btn {
  margin-top: 8px !important;
  width: 100%;
}

.shepherd-element.fla-stg-step {
  border: 2px solid #165D95;
  box-shadow: 0 10px 32px rgba(0, 60, 110, 0.28), 0 2px 8px rgba(8, 12, 51, 0.12);
}
.shepherd-element.fla-stg-step .shepherd-content {
  border-radius: 5px;
}

/* STG Pro tour header  -  contain logo, center title, hide centered arrow */
.shepherd-element.fla-stg-step .shepherd-header {
  overflow: hidden;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 2.5rem 0.75rem 0.75rem;
  box-sizing: border-box;
}
.shepherd-element.fla-stg-step .shepherd-title {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  text-align: center;
  width: 100%;
  max-width: 100%;
  margin: 0;
  box-sizing: border-box;
}
.shepherd-element.fla-stg-step .shepherd-header img {
  max-width: 6.5rem;
  max-height: 3.75rem;
  width: auto;
  height: auto;
  object-fit: contain;
  margin: 0;
  flex-shrink: 0;
}
.shepherd-element.fla-stg-step .shepherd-header {
  min-height: 4.25rem;
}
.shepherd-element.fla-stg-step .shepherd-title {
  font-size: 1.05rem;
  line-height: 1.25;
}
.shepherd-element.fla-stg-step.shepherd-centered > .shepherd-arrow {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
}
/* end STG Pro tour header */

/* ===== Home 1:1 close pass (1.5.89) =====
   Audience stacked horizontal rows; featured 2-up carousel;
   brighter $59.95 band; centered scissor band; stronger reviews.
   Append-only; STG .shepherd-element.fla-stg-step rules preserved above.
*/

/* 1) Audience: live-like stacked full-width photo | blue copy (~50/50) */
body.home .fla-section:has(.fla-cards) {
  padding: 48px 0 64px;
}
body.home .fla-cards {
  display: flex !important;
  flex-direction: column;
  gap: 28px;
  grid-template-columns: none !important;
}
body.home .fla-card {
  flex-direction: row !important;
  align-items: stretch;
  min-height: 280px;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 10px 28px rgba(8, 12, 51, 0.12);
}
body.home .fla-card > .fla-card-media {
  position: relative;
  flex: 0 0 50%;
  width: 50%;
  max-width: 50%;
  align-self: stretch;
  min-height: 280px;
}
body.home .fla-card-media img,
body.home .fla-card > .fla-card-media > img {
  width: 100%;
  height: 100% !important;
  min-height: 280px;
  object-fit: cover;
  display: block;
}
body.home .fla-card > .body {
  flex: 1 1 50%;
  width: 50%;
  justify-content: center;
  padding: 36px 40px 40px;
}
body.home .fla-card h3 {
  font-size: clamp(22px, 2.1vw, 30px);
  margin: 0 0 14px;
}
body.home .fla-card p {
  font-size: 15.5px;
  line-height: 1.55;
  margin: 0 0 20px;
}
body.home .fla-card-kicker {
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 11px;
  font-weight: 700;
}
@media (max-width: 760px) {
  body.home .fla-card {
    flex-direction: column !important;
    min-height: 0;
  }
  body.home .fla-card > .fla-card-media {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    min-height: 0;
  }
  body.home .fla-card-media img,
  body.home .fla-card > .fla-card-media > img {
    height: 200px !important;
    min-height: 200px;
  }
  body.home .fla-card > .body {
    width: 100%;
    padding: 22px 20px 24px;
  }
}

/* 2) Featured offers: 2-up carousel + dots + VIEW ALL CTA */
body.home .fla-products-carousel {
  position: relative;
  width: 100%;
}
body.home .fla-products-viewport {
  overflow: hidden;
  width: 100%;
}
body.home .fla-products-carousel .fla-products {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 24px;
  grid-template-columns: none !important;
  transition: transform 0.35s ease;
  will-change: transform;
}
body.home .fla-products-carousel .fla-product {
  flex: 0 0 calc(50% - 12px);
  width: calc(50% - 12px);
  max-width: calc(50% - 12px);
  box-sizing: border-box;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 10px 28px rgba(8, 12, 51, 0.12);
}
body.home .fla-products-carousel .fla-product img {
  height: 220px !important;
  object-fit: contain;
  background: #f4f7fa;
}
body.home .fla-products-carousel .fla-product .body {
  padding: 18px 18px 16px !important;
  gap: 10px;
}
body.home .fla-products-carousel .fla-product h3 {
  font-size: 16px !important;
  min-height: 2.6em;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}
body.home .fla-products-carousel .fla-product .price {
  font-size: 22px !important;
}
body.home .fla-products-carousel .fla-product .fla-btn {
  width: auto !important;
  align-self: flex-start;
  min-width: 160px;
}
body.home .fla-products-dots {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  margin: 22px 0 0;
  min-height: 16px;
}
body.home .fla-products-dots [data-fla-dot] {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 0;
  padding: 0;
  cursor: pointer;
  background: #9bb8d0;
  transition: background 0.2s ease, transform 0.2s ease;
}
body.home .fla-products-dots [data-fla-dot].is-active,
body.home .fla-products-dots [data-fla-dot][aria-selected="true"] {
  background: #04618A;
  transform: scale(1.12);
}
body.home .fla-all-certs {
  margin-top: 22px;
  text-align: center;
}
body.home .fla-all-certs .fla-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: var(--fla-blue);
  color: #fff !important;
  text-decoration: none;
  text-transform: uppercase;
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.04em;
  padding: 14px 28px;
  border-radius: 8px;
  box-shadow: 0 6px 16px rgba(22, 93, 149, 0.25);
}
body.home .fla-all-certs .fla-link:hover {
  background: #124e7c;
  color: #fff !important;
}
@media (max-width: 760px) {
  body.home .fla-products-carousel .fla-product {
    flex: 0 0 100%;
    width: 100%;
    max-width: 100%;
  }
  body.home .fla-products-carousel .fla-products {
    gap: 16px;
  }
  body.home .fla-products-carousel .fla-product img {
    height: 180px !important;
  }
}

/* 3) $59.95 band: brighter blue + more padding */
body.home .fla-band {
  background: #165D95;
  padding: 64px 0;
}
body.home .fla-band-inner {
  gap: 32px;
  max-width: min(var(--fla-max), calc(100% - 48px));
}
body.home .fla-band h2 {
  font-size: clamp(26px, 3vw, 36px);
  margin-bottom: 12px;
  line-height: 1.2;
}
body.home .fla-band p {
  color: rgba(255, 255, 255, 0.92);
  font-size: 16px;
  line-height: 1.55;
  max-width: 680px;
}
body.home .fla-band .fla-btn {
  flex-shrink: 0;
  padding: 14px 26px;
}

/* 4) Scissor: centered light-blue full-width band (soften image-led) */
body.home .fla-scissor.fla-scissor--band,
body.home .fla-scissor--band {
  background: #D7EAF6;
  padding: 72px 0;
  margin: 0;
}
body.home .fla-scissor--band .fla-scissor-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  max-width: 820px;
  margin-inline: auto;
  width: min(820px, calc(100% - 32px));
}
body.home .fla-scissor--band .fla-eyebrow {
  display: inline-block;
  background: var(--fla-blue);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 8px 14px;
  border-radius: 6px;
  margin: 0 0 18px;
}
body.home .fla-scissor--band h2 {
  color: var(--fla-header);
  margin: 0 0 16px;
  font-size: clamp(28px, 3.2vw, 40px);
  line-height: 1.15;
}
body.home .fla-scissor--band .fla-sub {
  color: #35556e;
  margin: 0 0 24px;
  max-width: 640px;
  font-size: 16px;
  line-height: 1.55;
}
body.home .fla-scissor--band .fla-btn {
  align-self: center;
}
body.home .fla-scissor--band img,
body.home .fla-scissor--band .fla-onsite-grid > img {
  display: none !important;
}

/* 5) Reviews: stronger multi-card treatment (no SA footer rotation) */
body.home .fla-reviews-section {
  padding: 56px 0 48px;
  background: #f3f7fb;
}
body.home .fla-reviews-section > .fla-wrap > h2 {
  margin: 0 0 28px;
  font-size: clamp(24px, 2.6vw, 34px);
}
body.home .fla-reviews {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 18px;
}
body.home .fla-reviews blockquote {
  padding: 22px 20px 18px;
  border-radius: 14px;
  border: 1px solid #d7e3ee;
  box-shadow: 0 10px 26px rgba(8, 12, 51, 0.08);
  background: #fff;
  min-height: 100%;
}
body.home .fla-reviews .fla-review-stars {
  font-size: 17px;
  letter-spacing: 2px;
  color: #f5a623;
  margin-bottom: 4px;
}
body.home .fla-reviews p {
  font-size: 15px;
  line-height: 1.5;
  color: #4a5d6e;
}
body.home .fla-reviews footer {
  margin-top: 12px;
  font-size: 14px;
  color: var(--fla-header);
  border-top: 1px solid #e8eef4;
  padding-top: 12px;
}
@media (max-width: 900px) {
  body.home .fla-reviews {
    grid-template-columns: 1fr 1fr !important;
  }
}
@media (max-width: 640px) {
  body.home .fla-reviews {
    grid-template-columns: 1fr !important;
  }
}
/* end home 1:1 close pass (1.5.89) */

/* STG Pro replay link in My Account nav (under Support) */
.woocommerce-MyAccount-navigation-link--fla-replay-walkme a {
  color: #165D95;
  font-weight: inherit;
}
/* end STG Pro replay link */

/* ===== Home 1:1 close pass 2 (1.5.92)  -  FAQ / blog / cities bars / onsite panel =====
   Residuals after 1.5.89. Preserve STG .shepherd-element.fla-stg-step + Woo replay nav.
   Append-only; no live edits.
*/

/* 1) FAQ  -  12-item two-column outlined accordions (live soft-match) */
body.home .fla-faq,
body.home .fla-faq.fla-faq--live {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px 22px;
  align-items: start;
}
body.home .fla-faq details {
  background: #fff;
  border: 2px solid #04618A;
  border-radius: 10px;
  box-shadow: none;
  padding: 18px 20px 18px 22px;
  margin: 0;
}
body.home .fla-faq summary {
  list-style: none;
  cursor: pointer;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.35;
  color: var(--fla-header);
  padding-right: 48px;
  position: relative;
}
body.home .fla-faq summary::-webkit-details-marker { display: none; }
body.home .fla-faq summary::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  width: 28px;
  height: 28px;
  margin-top: -14px;
  background:
    linear-gradient(#04618A, #04618A) center / 18px 3px no-repeat,
    linear-gradient(#04618A, #04618A) center / 3px 18px no-repeat;
  border-radius: 2px;
}
body.home .fla-faq details[open] summary::after {
  background: linear-gradient(#04618A, #04618A) center / 18px 3px no-repeat;
}
body.home .fla-faq details p {
  margin: 12px 0 0;
  font-size: 15px;
  line-height: 1.55;
  color: #35556e;
}
body.home .elementor-section:has(.fla-faq),
body.home #faq.fla-section {
  padding-top: 28px;
  padding-bottom: 36px;
}
@media (max-width: 760px) {
  body.home .fla-faq,
  body.home .fla-faq.fla-faq--live {
    grid-template-columns: 1fr;
  }
}

/* 2) Blog  -  stronger image-led blue cards */
body.home .fla-blog-grid.fla-blog-grid--led,
body.home .fla-blog-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}
body.home .fla-blog-card.fla-blog-card--led,
body.home .fla-blog-card {
  background: var(--fla-blue);
  border: none;
  border-radius: 12px;
  overflow: hidden;
  color: #fff;
  box-shadow: 0 12px 28px rgba(8, 12, 51, 0.14);
  min-height: 100%;
}
body.home .fla-blog-card-media {
  height: 168px;
  background-size: cover;
  background-position: center;
}
body.home .fla-blog-card-media--photo1 {
  background-image: url("assets/photos/warehouse.jpg");
}
body.home .fla-blog-card-media--photo2 {
  background-image: url("assets/photos/sitdown.jpg");
}
body.home .fla-blog-card-media--photo3 {
  background-image: url("assets/photos/individuals.jpg");
}
body.home .fla-blog-card-media--alt,
body.home .fla-blog-card-media--warm {
  height: 168px;
}
body.home .fla-blog-card-body {
  padding: 20px 22px 24px;
  gap: 10px;
  flex: 1 1 auto;
}
body.home .fla-blog-pill {
  display: inline-block;
  align-self: flex-start;
  background: rgba(255, 255, 255, 0.18);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 5px 10px;
  border-radius: 999px;
}
body.home .fla-blog-card-body h3 {
  color: #fff;
  font-size: 20px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  line-height: 1.25;
}
body.home .fla-blog-card-body p {
  color: rgba(255, 255, 255, 0.88);
  font-size: 14.5px;
  line-height: 1.5;
  flex: 1 1 auto;
}
body.home .fla-blog-card-body .fla-link {
  color: #fff;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 13px;
  font-weight: 800;
  margin-top: 4px;
}
body.home .fla-blog-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 32px rgba(8, 12, 51, 0.18);
}
@media (max-width: 900px) {
  body.home .fla-blog-grid.fla-blog-grid--led,
  body.home .fla-blog-grid {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 600px) {
  body.home .fla-blog-grid.fla-blog-grid--led,
  body.home .fla-blog-grid {
    grid-template-columns: 1fr;
  }
}

/* 3) Locations  -  compact blue link bars (vs photo tiles) */
body.home .fla-cities.fla-cities--bars,
body.home .fla-cities {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px 16px;
}
body.home .fla-city.fla-city--bar,
body.home .fla-cities--bars .fla-city {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  min-height: 72px;
  height: 72px;
  padding: 0 18px 0 78px;
  border-radius: 10px;
  background: var(--fla-blue) !important;
  background-image: none !important;
  color: #fff;
  text-decoration: none;
  overflow: hidden;
  box-shadow: 0 6px 16px rgba(8, 12, 51, 0.1);
}
body.home .fla-cities--bars .fla-city-name,
body.home .fla-city--bar .fla-city-name {
  background: transparent;
  padding: 0;
  border-radius: 0;
  font-size: 16px;
  font-weight: 700;
  text-align: left;
  color: #fff;
}
body.home .fla-cities--bars .fla-city-arrow,
body.home .fla-city--bar .fla-city-arrow {
  position: absolute;
  top: 50%;
  left: 16px;
  width: 48px;
  height: 48px;
  margin: -24px 0 0 0;
  opacity: 1;
  background: rgba(236, 87, 44, 0.92);
}
body.home .fla-cities--bars .fla-city:hover,
body.home .fla-city--bar:hover {
  filter: brightness(1.06);
}
body.home .fla-cities-section {
  padding-top: 48px;
  padding-bottom: 48px;
}
@media (max-width: 900px) {
  body.home .fla-cities.fla-cities--bars,
  body.home .fla-cities {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 560px) {
  body.home .fla-cities.fla-cities--bars,
  body.home .fla-cities {
    grid-template-columns: 1fr;
  }
}

/* 4) Job-site  -  large rounded blue panel (keep shortcode form fields) */
body.home .fla-onsite-section {
  background: #fff;
  padding: 28px 0 12px;
}
body.home .fla-onsite-panel {
  background: var(--fla-blue);
  border-radius: 20px;
  padding: 40px 40px 36px;
  color: #fff;
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 28px 36px;
  align-items: start;
  box-shadow: 0 16px 40px rgba(8, 12, 51, 0.16);
}
body.home .fla-onsite-copy h2 {
  color: #fff;
  margin: 0 0 12px;
  font-size: clamp(26px, 3vw, 36px);
  line-height: 1.15;
  text-transform: none;
}
body.home .fla-onsite-copy .fla-sub {
  color: rgba(255, 255, 255, 0.92);
  margin: 0;
  max-width: 420px;
}
body.home .fla-onsite-panel .fla-form,
body.home .fla-onsite-form {
  background: transparent;
  box-shadow: none;
  padding: 0;
  color: #fff;
}
body.home .fla-onsite-panel .fla-form label,
body.home .fla-onsite-form label {
  color: rgba(255, 255, 255, 0.92);
}
body.home .fla-onsite-panel .fla-form input,
body.home .fla-onsite-panel .fla-form textarea,
body.home .fla-onsite-form input,
body.home .fla-onsite-form textarea {
  background: #fff;
  border: none;
  border-radius: 8px;
  color: var(--fla-navy);
}
body.home .fla-onsite-panel .fla-btn,
body.home .fla-onsite-form .fla-btn {
  background: var(--fla-orange);
  width: 100%;
}
body.home .fla-onsite-photo {
  display: none !important;
}
body.home .elementor-section:has(.fla-onsite-panel),
body.home .elementor-section:has(#onsite) {
  background: #fff;
}
body.home .fla-home-contact {
  padding-top: 40px;
}
@media (max-width: 800px) {
  body.home .fla-onsite-panel {
    grid-template-columns: 1fr;
    padding: 28px 22px;
  }
}
/* end home 1:1 close pass 2 (1.5.92) */

/* ===== Audience back to 3 columns (1.5.94) =====
   Christian: move Individuals/Business/Products back to columns.
   Overrides 1.5.89 stacked horizontal rows. Keep kickers on photos.
*/
body.home .fla-section:has(.fla-cards) {
  padding: 40px 0 48px;
}
body.home .fla-cards {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 20px !important;
  flex-direction: unset !important;
}
body.home .fla-card {
  flex-direction: column !important;
  align-items: stretch !important;
  min-height: 0 !important;
  height: 100%;
  border-radius: 10px;
  overflow: hidden;
}
body.home .fla-card > .fla-card-media {
  position: relative;
  flex: 0 0 auto !important;
  width: 100% !important;
  max-width: 100% !important;
  min-height: 0 !important;
  align-self: auto !important;
}
body.home .fla-card-media img,
body.home .fla-card > .fla-card-media > img {
  width: 100%;
  height: 200px !important;
  min-height: 0 !important;
  object-fit: cover;
  display: block;
}
body.home .fla-card > .body {
  flex: 1 1 auto !important;
  width: 100% !important;
  justify-content: flex-start;
  padding: 22px 22px 24px !important;
}
body.home .fla-card h3 {
  font-size: clamp(20px, 1.8vw, 26px);
  margin: 0 0 10px;
}
body.home .fla-card p {
  font-size: 15px;
  line-height: 1.5;
  margin: 0 0 16px;
}
body.home .fla-card .fla-link {
  margin-top: auto;
}
@media (max-width: 900px) {
  body.home .fla-cards {
    grid-template-columns: 1fr !important;
  }
  body.home .fla-card-media img,
  body.home .fla-card > .fla-card-media > img {
    height: 180px !important;
  }
}

/* ===== Why Choose live layout (1.5.95) =====
   List + photo like live template 33895. Digital wallet card (not operator card).
   OSHA-aligned (intentional). Append-only; STG preserved.
*/
body.home .fla-why-section--live {
  padding: 48px 0 72px;
  background: #fff;
}
body.home .fla-why-section--live .fla-why-live-heading {
  margin: 0 0 12px;
  color: #003C6E;
  font-size: clamp(28px, 3.2vw, 40px);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  text-align: left;
}
body.home .fla-why-section--live .fla-why-live-lead {
  margin: 0 0 28px;
  max-width: 920px;
  color: #0A1D2A;
  font-size: 16px;
  line-height: 1.55;
  text-align: left;
}
body.home .fla-why-live-grid {
  display: grid;
  grid-template-columns: minmax(0, 55fr) minmax(0, 40fr);
  gap: 28px 32px;
  align-items: stretch;
}
body.home .fla-why-live-left {
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-width: 0;
}
body.home .fla-why-live-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px 20px;
  background: #fff;
  border-radius: 10px;
  box-shadow: 0px 19px 8px rgba(137, 178, 209, 0.01), 0px 11px 6px rgba(137, 178, 209, 0.05), 0px 5px 5px rgba(137, 178, 209, 0.09), 0px 1px 3px rgba(137, 178, 209, 0.1);
}
body.home .fla-why-live-check {
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  display: block;
}
body.home .fla-why-live-item-copy {
  min-width: 0;
}
body.home .fla-why-live-item-title {
  margin: 0;
  color: #080C33;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.35;
}
body.home .fla-why-live-note {
  margin: 4px 0 0;
  color: #5a6472;
  font-size: 13px;
  line-height: 1.4;
}
body.home .fla-why-live-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 10px;
}
body.home .fla-why-live-actions .fla-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-transform: uppercase;
  letter-spacing: 1px;
  font-weight: 600;
  font-size: 14px;
  border-radius: 8px;
  padding: 16px 22px;
}
body.home .fla-why-live-btn-orange {
  background: #EC572C !important;
  color: #fff !important;
}
body.home .fla-why-live-btn-orange:hover {
  background: #DA4920 !important;
}
body.home .fla-why-live-btn-blue {
  background: #165D95 !important;
  color: #fff !important;
}
body.home .fla-why-live-btn-blue:hover {
  background: #134f7e !important;
}
body.home .fla-why-live-right {
  border-radius: 20px;
  overflow: hidden;
  min-height: 420px;
  background: #e8eef4 center / cover no-repeat;
}
body.home .fla-why-live-right img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 420px;
  object-fit: cover;
}
@media (max-width: 900px) {
  body.home .fla-why-live-grid {
    grid-template-columns: 1fr;
  }
  body.home .fla-why-live-right {
    min-height: 280px;
    order: -1;
  }
  body.home .fla-why-live-right img {
    min-height: 280px;
  }
  body.home .fla-why-live-actions .fla-btn {
    width: 100%;
    justify-content: center;
  }
}
/* ===== Why Choose image fill (1.5.96) =====
   Stretch right column to left height; cover crop like live background.
*/
body.home .fla-why-live-grid {
  align-items: stretch !important;
}
body.home .fla-why-live-left {
  height: 100%;
}
body.home .fla-why-live-right {
  position: relative !important;
  align-self: stretch !important;
  height: 100% !important;
  min-height: 100% !important;
  border-radius: 20px !important;
  overflow: hidden !important;
  background-color: #e8eef4 !important;
  background-image: url("/wp-content/themes/hello-elementor-fla/assets/why/forklift-warehouse-min.jpg") !important;
  background-position: center center !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
}
/* Keep <img> for alt text; fill the box so it never letterboxes */
body.home .fla-why-live-right img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  max-width: none !important;
  object-fit: cover !important;
  object-position: center center !important;
  display: block !important;
}
@media (max-width: 900px) {
  body.home .fla-why-live-right {
    min-height: 320px !important;
    height: auto !important;
    aspect-ratio: 4 / 3;
  }
}

/* ===== Why Choose HTTPS assets (1.5.97) =====
   Elementor Why HTML forced https:// asset + CTA URLs (mixed-content Med).
*/

/* ===== Why Choose root-relative assets (1.5.98) =====
   Why HTML srcs use /wp-content/... (no scheme) to clear mixed-content Med.
*/

/* ===== $59.95 photo band like live (1.5.99) =====
   Full-bleed banner-1-min.jpg + navy overlay; stack CTA under copy.
   OSHA-aligned + digital wallet card. Root-relative bg URL.
*/
body.home .fla-band.fla-band--photo,
body.home section.fla-band--photo {
  position: relative;
  isolation: isolate;
  min-height: 70vh;
  display: flex;
  align-items: center;
  padding: 64px 0;
  background-color: #003C6E;
  background-image: url("/wp-content/themes/hello-elementor-fla/assets/band/banner-1-min.jpg");
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  overflow: hidden;
}
body.home .fla-band.fla-band--photo::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #003C6E;
  opacity: 0.7;
  z-index: 0;
  pointer-events: none;
}
body.home .fla-band.fla-band--photo > .fla-wrap,
body.home .fla-band.fla-band--photo .fla-band-inner--photo {
  position: relative;
  z-index: 1;
  width: 100%;
}
body.home .fla-band-inner--photo {
  display: block !important;
  max-width: 1220px;
}
body.home .fla-band-copy {
  max-width: 70%;
  color: #fff;
}
body.home .fla-band--photo h2 {
  color: #fff !important;
  margin: 0 0 16px;
  font-size: clamp(28px, 3.4vw, 44px);
  font-weight: 700;
  text-transform: uppercase;
  line-height: 1.15;
  letter-spacing: 0.01em;
}
body.home .fla-band--photo .fla-band-price {
  text-decoration: underline;
  text-underline-offset: 4px;
}
body.home .fla-band--photo p {
  color: #fff !important;
  margin: 0 0 28px;
  max-width: 640px;
  font-size: 17px;
  line-height: 1.55;
}
body.home .fla-band--photo .fla-band-cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: #EC572C !important;
  color: #fff !important;
  text-transform: uppercase;
  letter-spacing: 1px;
  font-weight: 600;
  border-radius: 8px;
  padding: 18px 28px;
}
body.home .fla-band--photo .fla-band-cta:hover {
  background: #DA4920 !important;
}
body.home .fla-band--photo .fla-btn-icon {
  width: 20px;
  height: 20px;
  filter: brightness(0) invert(1);
}
@media (max-width: 900px) {
  body.home .fla-band.fla-band--photo {
    min-height: 500px;
    background-image: url("/wp-content/themes/hello-elementor-fla/assets/band/banner-mob-1-min.jpg");
    padding: 48px 0;
  }
  body.home .fla-band-copy {
    max-width: 100%;
  }
}

/* ===== Quote band live Google card (1.6.0) =====
   Rounded photo card, quote mark, Google Reviews badge bottom-right.
   Root-relative assets. Append-only; STG preserved.
*/
body.home .fla-quote.fla-quote--live {
  background: transparent !important;
  padding: 40px 0 48px !important;
  color: #fff;
}
body.home .fla-quote--live > .fla-wrap {
  max-width: 1220px;
}
body.home .fla-quote-card {
  position: relative;
  border-radius: 30px;
  overflow: hidden;
  min-height: 360px;
  padding: 90px 70px 145px;
  background-color: #003C6E;
  background-image:
    linear-gradient(90deg, rgba(0, 44, 78, 0.88), rgba(0, 44, 78, 0.42)),
    url("/wp-content/themes/hello-elementor-fla/assets/quote/featured-testimonial-cover-img-min.jpg");
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  box-shadow: 0 16px 40px rgba(8, 12, 51, 0.18);
}
body.home .fla-quote-mark {
  display: block;
  width: 64px;
  height: auto;
  margin: 0 0 22px;
}
body.home .fla-quote--live blockquote {
  margin: 0;
  max-width: 75%;
}
body.home .fla-quote--live blockquote p {
  margin: 0;
  color: #fff !important;
  font-family: Outfit, system-ui, sans-serif;
  font-size: clamp(30px, 3.2vw, 46px);
  font-weight: 800;
  line-height: 1.2;
}
body.home .fla-quote-google {
  position: absolute;
  right: 40px;
  bottom: 40px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 190px;
  padding: 16px;
  border-radius: 20px;
  border: 1px solid rgba(255, 255, 255, 0.85);
  background: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(3.5px);
  text-decoration: none;
  box-sizing: border-box;
}
body.home .fla-quote-google-label {
  margin: 0;
  color: #080C33;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.2;
}
body.home .fla-quote-google img {
  display: block;
  width: 100px;
  height: auto;
  max-width: 100%;
}
body.home .fla-quote--live .fla-quote-more,
body.home .fla-quote--live .fla-quote-sa {
  display: none !important;
}
@media (max-width: 1279px) {
  body.home .fla-quote-google {
    right: 20px;
    bottom: 20px;
    width: 150px;
    padding: 10px;
  }
}
@media (max-width: 900px) {
  body.home .fla-quote-card {
    padding: 40px 24px 40px;
    min-height: 0;
    border-radius: 24px;
  }
  body.home .fla-quote--live blockquote {
    max-width: 100%;
  }
  body.home .fla-quote-mark {
    width: 44px;
  }
  body.home .fla-quote-google {
    position: static;
    margin-top: 24px;
    width: fit-content;
    max-width: 100%;
  }
}

/* ===== Quote order after band (1.6.1) =====
   Elementor home: $59.95 → Quote → Featured (live order).
*/

/* ===== Cities photo cards like live (1.6.2) =====
   4-up grid, last row centered; rounded photo + navy label.
   Overrides bars layout from 1:1 close pass. STG preserved.
*/
body.home .fla-cities-section--photos, body.fla-sla-chrome .fla-cities-section--photos {
  padding: 56px 0 64px;
  background: #fff;
}
body.home .fla-cities-section--photos > .fla-wrap > h2, body.fla-sla-chrome .fla-cities-section--photos > .fla-wrap > h2 {
  text-align: center;
  text-transform: uppercase;
  color: #003C6E;
  margin: 0 0 12px;
  font-size: clamp(26px, 3vw, 36px);
  font-weight: 700;
  letter-spacing: 0.02em;
}
body.home .fla-cities-section--photos > .fla-wrap > .fla-sub, body.fla-sla-chrome .fla-cities-section--photos > .fla-wrap > .fla-sub {
  text-align: center;
  max-width: 820px;
  margin: 0 auto 32px;
  color: #0A1D2A;
}
body.home .fla-cities.fla-cities--photos, body.fla-sla-chrome .fla-cities.fla-cities--photos {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  gap: 20px !important;
  grid-template-columns: none !important;
}
body.home .fla-city.fla-city--photo, body.fla-sla-chrome .fla-city.fla-city--photo {
  flex: 0 0 calc(25% - 15px) !important;
  width: calc(25% - 15px) !important;
  max-width: calc(25% - 15px) !important;
  min-height: 240px !important;
  aspect-ratio: 4 / 5;
  border-radius: 20px !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-end !important;
  align-items: stretch !important;
  background-color: #003C6E !important;
  background-image: var(--fla-city-bg) !important;
  background-position: center center !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
  box-shadow: 0 10px 28px rgba(8, 12, 51, 0.12);
  text-decoration: none !important;
  color: #fff !important;
  padding: 0 !important;
  position: relative;
}
body.home .fla-city--photo .fla-city-arrow, body.fla-sla-chrome .fla-city--photo .fla-city-arrow {
  display: none !important;
}
body.home .fla-city--photo .fla-city-name, body.fla-sla-chrome .fla-city--photo .fla-city-name {
  display: block !important;
  width: 100%;
  margin: 0 !important;
  padding: 14px 12px !important;
  background: #003C6E !important;
  color: #fff !important;
  text-align: center !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em;
  font-size: 14px !important;
  font-weight: 700 !important;
  border-radius: 0 !important;
  position: relative;
  z-index: 1;
}
@media (max-width: 1100px) {
  body.home .fla-city.fla-city--photo, body.fla-sla-chrome .fla-city.fla-city--photo {
    flex: 0 0 calc(33.333% - 14px) !important;
    width: calc(33.333% - 14px) !important;
    max-width: calc(33.333% - 14px) !important;
  }
}
@media (max-width: 760px) {
  body.home .fla-city.fla-city--photo, body.fla-sla-chrome .fla-city.fla-city--photo {
    flex: 0 0 calc(50% - 10px) !important;
    width: calc(50% - 10px) !important;
    max-width: calc(50% - 10px) !important;
    min-height: 200px !important;
    aspect-ratio: 3 / 4;
    border-radius: 16px !important;
  }
  body.home .fla-city--photo .fla-city-name, body.fla-sla-chrome .fla-city--photo .fla-city-name {
    font-size: 12px !important;
    padding: 12px 8px !important;
  }
}

/* ===== Cities root-relative assets (1.6.3) =====
   City card --fla-city-bg uses /wp-content/themes/... paths (mixed-content Med).
*/

/* ===== Scissor photo band like live (1.6.4) =====
   Full-bleed 11430 banner + navy overlay; centered badge/copy/CTA.
   OSHA-aligned copy. Root-relative bg. STG preserved.
*/
body.home .fla-scissor.fla-scissor--photo,
body.home section.fla-scissor--photo {
  position: relative;
  isolation: isolate;
  min-height: 75vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 80px 0;
  margin: 0;
  background-color: #003C6E;
  background-image: url("/wp-content/themes/hello-elementor-fla/assets/scissor/11430-1-1-min.jpg");
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  overflow: hidden;
  text-align: center;
}
body.home .fla-scissor--photo::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #003C6E;
  opacity: 0.7;
  z-index: 0;
  pointer-events: none;
}
body.home .fla-scissor--photo > .fla-wrap,
body.home .fla-scissor-inner--photo {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
body.home .fla-scissor-badge {
  display: inline-block;
  margin: 0 0 22px;
  padding: 14px 24px;
  border-radius: 8px;
  background: #165D95;
  color: #fff !important;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
body.home .fla-scissor--photo h2 {
  color: #fff !important;
  margin: 0 0 18px;
  font-size: clamp(32px, 4vw, 52px);
  font-weight: 800;
  text-transform: uppercase;
  line-height: 1.15;
  letter-spacing: 0.01em;
}
body.home .fla-scissor--photo .fla-scissor-lead {
  color: #fff !important;
  margin: 0 0 28px;
  max-width: 820px;
  font-size: 17px;
  line-height: 1.55;
}
body.home .fla-scissor--photo .fla-scissor-cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: #EC572C !important;
  color: #fff !important;
  text-transform: uppercase;
  letter-spacing: 1px;
  font-weight: 600;
  border-radius: 8px;
  padding: 18px 28px;
}
body.home .fla-scissor--photo .fla-scissor-cta:hover {
  background: #DA4920 !important;
}
body.home .fla-scissor--photo .fla-btn-icon {
  width: 20px;
  height: 20px;
  filter: brightness(0) invert(1);
}
@media (max-width: 900px) {
  body.home .fla-scissor.fla-scissor--photo {
    min-height: 500px;
    padding: 50px 0;
    background-image: url("/wp-content/themes/hello-elementor-fla/assets/scissor/banner-mob-2-min.jpg");
  }
}

/* ===== Onsite photo panel like live (1.6.5) =====
   Rounded photo card + navy overlay; centered copy + white fields + orange Send.
   Root-relative bg. reCAPTCHA via fla-crm-recaptcha MU (Woo i13 keys). STG preserved.
*/
body.home .fla-onsite-section--photo {
  background: #fff !important;
  padding: 40px 0 48px !important;
}
body.home .fla-onsite-panel--photo {
  position: relative;
  display: block !important;
  grid-template-columns: none !important;
  border-radius: 30px !important;
  overflow: hidden;
  padding: 60px 90px !important;
  color: #fff;
  background-color: #003C6E !important;
  background-image:
    linear-gradient(rgba(0, 60, 110, 0.8), rgba(0, 60, 110, 0.8)),
    url("/wp-content/themes/hello-elementor-fla/assets/onsite/on-site-training-img-min.jpg") !important;
  background-position: center center !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
  box-shadow: 0 16px 40px rgba(8, 12, 51, 0.18);
  text-align: center;
}
body.home .fla-onsite-panel--photo .fla-onsite-copy {
  max-width: 720px;
  margin: 0 auto 28px;
}
body.home .fla-onsite-panel--photo .fla-onsite-copy h2 {
  color: #fff !important;
  margin: 0 0 12px;
  font-size: clamp(28px, 3.2vw, 40px);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  text-align: center;
}
body.home .fla-onsite-panel--photo .fla-onsite-copy .fla-sub {
  color: rgba(255, 255, 255, 0.95) !important;
  margin: 0 auto;
  max-width: 560px;
  text-align: center;
  font-size: 16px;
  line-height: 1.5;
}
body.home .fla-onsite-form--photo {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 14px !important;
  max-width: 820px;
  margin: 0 auto;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
  text-align: left;
}
body.home .fla-onsite-form--photo .full {
  grid-column: 1 / -1;
}
body.home .fla-onsite-form--photo label.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
body.home .fla-onsite-form--photo input,
body.home .fla-onsite-form--photo textarea {
  background: #fff !important;
  border: none !important;
  border-radius: 10px !important;
  color: #080C33 !important;
  padding: 14px 16px !important;
  font-size: 15px;
  width: 100%;
  box-sizing: border-box;
}
body.home .fla-onsite-actions {
  display: flex;
  justify-content: center;
  margin-top: 8px;
}
body.home .fla-onsite-form--photo .fla-onsite-send {
  width: auto !important;
  min-width: 180px;
  background: #EC572C !important;
  color: #fff !important;
  text-transform: uppercase;
  letter-spacing: 1px;
  font-weight: 700;
  border-radius: 8px;
  padding: 16px 36px !important;
}
body.home .fla-onsite-form--photo .fla-onsite-send:hover {
  background: #DA4920 !important;
}
@media (max-width: 900px) {
  body.home .fla-onsite-panel--photo {
    padding: 40px 24px !important;
    border-radius: 24px !important;
  }
  body.home .fla-onsite-form--photo {
    grid-template-columns: 1fr !important;
  }
}

/* ===== Ratings band like live 29477 (1.6.6) =====
   Photo bg + badges + Google cards + SA rotating shortcode.
   OSHA badge alt OSHA-aligned. Root-relative assets. STG preserved.
*/
body.home .fla-ratings.fla-ratings--live {
  position: relative;
  isolation: isolate;
  padding: 110px 0;
  background-color: #003C6E;
  background-image: url("/wp-content/themes/hello-elementor-fla/assets/ratings/testimonials-img-min.jpg");
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  color: #fff;
}
body.home .fla-ratings--live::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #003C6E;
  opacity: 0.72;
  z-index: 0;
  pointer-events: none;
}
body.home .fla-ratings-inner {
  position: relative;
  z-index: 1;
}
body.home .fla-ratings-badges {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 18px 22px;
  margin: 0 0 22px;
}
body.home .fla-ratings-badges img {
  display: block;
  height: 48px;
  width: auto;
  max-width: 150px;
  object-fit: contain;
  filter: none;
}
body.home .fla-ratings-heading-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  margin: 0 0 28px;
}
body.home .fla-ratings--live h2 {
  margin: 0;
  color: #fff !important;
  font-size: clamp(28px, 3.4vw, 44px);
  font-weight: 800;
  text-transform: uppercase;
  line-height: 1.15;
  letter-spacing: 0.01em;
  max-width: 18ch;
}
body.home .fla-ratings-nav {
  display: flex;
  gap: 10px;
  flex-shrink: 0;
}
body.home .fla-ratings-nav button {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,0.85);
  background: transparent;
  color: #fff;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}
body.home .fla-ratings-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  align-items: stretch;
}
body.home .fla-rating-card {
  background: #fff;
  color: #080C33;
  border-radius: 10px;
  padding: 28px 22px;
  display: flex;
  flex-direction: column;
  min-height: 260px;
  box-shadow: 0 12px 32px rgba(8, 12, 51, 0.16);
}
body.home .fla-rating-card h3 {
  margin: 0 0 12px;
  color: #003C6E;
  font-size: 18px;
  font-weight: 700;
}
body.home .fla-rating-card p {
  margin: 0 0 18px;
  flex: 1 1 auto;
  color: #0A1D2A;
  font-size: 15px;
  line-height: 1.5;
}
body.home .fla-rating-meta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-top: auto;
}
body.home .fla-rating-stars {
  color: #FBBB00;
  letter-spacing: 2px;
  font-size: 18px;
  line-height: 1;
}
body.home .fla-ratings-dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin: 28px 0 36px;
}
body.home .fla-ratings-dots span {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: rgba(255,255,255,0.35);
}
body.home .fla-ratings-dots span.is-active {
  background: #fff;
}
body.home .fla-ratings-sa {
  background: rgba(255,255,255,0.96);
  border-radius: 12px;
  padding: 18px 16px 12px;
  color: #080C33;
  overflow: hidden;
}
body.home .fla-ratings-sa .SA__wrapper,
body.home .fla-ratings-sa #SA_wrapper_c9fNxtK1HWmh {
  min-height: 90px;
}
body.home .fla-ratings-sa-link {
  margin: 10px 8px 0;
  text-align: right;
  font-size: 13px;
}
body.home .fla-ratings-sa-link a {
  color: #165D95;
  text-decoration: underline;
  text-underline-offset: 2px;
}
@media (max-width: 1100px) {
  body.home .fla-ratings--live { padding: 60px 0; }
  body.home .fla-ratings-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.home .fla-rating-card:nth-child(3) { display: none; }
}
@media (max-width: 700px) {
  body.home .fla-ratings--live { padding: 50px 0; }
  body.home .fla-ratings-heading-row { flex-direction: column; }
  body.home .fla-ratings--live h2 { max-width: none; }
  body.home .fla-ratings-cards { grid-template-columns: 1fr; }
  body.home .fla-rating-card:nth-child(3) { display: flex; }
}

/* ==========================================================================
   Individual Forklift Certification (page 232) soft-match  -  theme 1.6.7
   Append-only. Preserve STG .shepherd-element.fla-stg-step + Woo replay nav.
   ========================================================================== */

.fla-individual-page {
  color: #080C33;
}

/* Photo hero */
.fla-individual-hero {
  position: relative;
  isolation: isolate;
  min-height: 68vh;
  display: flex;
  align-items: center;
  padding: 72px 0 64px;
  background-color: #003C6E;
  background-image: url("/wp-content/themes/hello-elementor-fla/assets/band/banner-1-min.jpg");
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  color: #fff;
}
.fla-individual-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(0, 60, 110, 0.88) 0%, rgba(0, 60, 110, 0.72) 55%, rgba(0, 60, 110, 0.45) 100%);
  z-index: 0;
  pointer-events: none;
}
.fla-individual-hero-inner {
  position: relative;
  z-index: 1;
  max-width: var(--fla-max, 1140px);
}
.fla-individual-hero .fla-eyebrow {
  margin: 0 0 12px;
  color: #EC572C;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 13px;
}
.fla-individual-hero h1 {
  margin: 0 0 16px;
  max-width: 16ch;
  color: #fff !important;
  font-size: clamp(32px, 4.2vw, 52px);
  font-weight: 800;
  line-height: 1.12;
}
.fla-individual-lead {
  margin: 0 0 20px;
  max-width: 640px;
  color: rgba(255, 255, 255, 0.94);
  font-size: 18px;
  line-height: 1.55;
}
.fla-individual-hero-pills {
  list-style: none;
  margin: 0 0 22px;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.fla-individual-hero-pills li {
  background: rgba(22, 93, 149, 0.92);
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 999px;
  padding: 8px 16px;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.fla-individual-hero .fla-btn.ghost {
  background: transparent;
  border: 2px solid #fff;
  color: #fff;
}
.fla-individual-hero .fla-btn.ghost:hover {
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}

/* Steps */
.fla-individual-steps {
  padding: 56px 0 48px;
  background: #f5f7fa;
}
.fla-individual-steps h2 {
  margin: 0 0 28px;
  color: #003C6E;
  font-size: clamp(24px, 3vw, 36px);
  font-weight: 800;
  text-align: center;
}
.fla-individual-steps-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
.fla-individual-step {
  background: #fff;
  border: 1px solid #e4eaf1;
  border-radius: 12px;
  padding: 28px 22px 24px;
  text-align: center;
  box-shadow: 0 8px 24px rgba(8, 12, 51, 0.05);
}
.fla-individual-step-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  margin: 0 0 12px;
  border-radius: 50%;
  background: #165D95;
  color: #fff;
  font-weight: 800;
  font-size: 20px;
}
.fla-individual-step h3 {
  margin: 0 0 10px;
  color: #003C6E;
  font-size: 18px;
}
.fla-individual-step p {
  margin: 0;
  color: #334155;
  line-height: 1.5;
  font-size: 15px;
}

/* Video */
.fla-individual-video {
  padding: 12px 0 48px;
  background: #f5f7fa;
}
.fla-individual-video-frame {
  position: relative;
  width: 100%;
  max-width: 920px;
  margin: 0 auto;
  aspect-ratio: 16 / 9;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 12px 32px rgba(8, 12, 51, 0.12);
  background: #003C6E;
}
.fla-individual-video-frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* Free / start CTA strip (soft-match live free-test band; no ClassMarker) */
.fla-individual-free-cta {
  background: #165D95;
  color: #fff;
  padding: 36px 0;
}
.fla-individual-free-cta-inner {
  text-align: center;
}
.fla-individual-free-cta h2 {
  margin: 0 0 10px;
  color: #fff !important;
  font-size: clamp(22px, 2.8vw, 32px);
  font-weight: 800;
}
.fla-individual-free-cta p {
  margin: 0 0 16px;
  color: rgba(255, 255, 255, 0.92);
}
.fla-individual-free-cta .fla-btn {
  background: #EC572C;
}
.fla-individual-free-cta .fla-btn:hover {
  background: #DA4920;
}

/* Package */
.fla-individual-package {
  padding: 56px 0;
  background: #fff;
}
.fla-individual-package h2 {
  margin: 0 0 28px;
  color: #003C6E;
  font-size: clamp(24px, 3vw, 34px);
  font-weight: 800;
  text-align: center;
}
.fla-individual-price {
  display: inline-block;
  color: #EC572C;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.fla-individual-package-grid {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 32px;
  align-items: start;
}
.fla-individual-package-copy h3 {
  margin: 0 0 12px;
  color: #003C6E;
  font-size: 20px;
}
.fla-individual-package-copy h3 + ul {
  margin: 0 0 28px;
}
.fla-individual-package-copy ul {
  margin: 0;
  padding-left: 1.15em;
  color: #334155;
  line-height: 1.55;
}
.fla-individual-package-copy li {
  margin: 0 0 6px;
}
.fla-individual-equip {
  columns: 2;
  column-gap: 28px;
}
.fla-individual-package-aside img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 12px;
  margin: 0 0 18px;
  object-fit: cover;
}
.fla-individual-package-aside .fla-hero-actions {
  justify-content: center;
}

/* Business upsell */
.fla-individual-business {
  padding: 48px 0 56px;
  background: #f5f7fa;
}
.fla-individual-business-inner {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 28px;
  align-items: center;
  background: #fff;
  border: 1px solid #e4eaf1;
  border-radius: 14px;
  padding: 28px;
  box-shadow: 0 8px 24px rgba(8, 12, 51, 0.05);
}
.fla-individual-business-copy h2 {
  margin: 0 0 12px;
  color: #003C6E;
  font-size: clamp(22px, 2.6vw, 30px);
  font-weight: 800;
}
.fla-individual-business-copy p {
  margin: 0 0 16px;
  color: #334155;
  line-height: 1.55;
}
.fla-individual-business-media img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 10px;
  object-fit: cover;
}

/* Ratings on individual page (reuse home fla-ratings--live pattern) */
.fla-individual-page .fla-ratings.fla-ratings--live,
body.page-id-232 .fla-ratings.fla-ratings--live {
  position: relative;
  isolation: isolate;
  padding: 90px 0;
  background-color: #003C6E;
  background-image: url("/wp-content/themes/hello-elementor-fla/assets/ratings/testimonials-img-min.jpg");
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  color: #fff;
}
.fla-individual-page .fla-ratings--live::before,
body.page-id-232 .fla-ratings--live::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #003C6E;
  opacity: 0.72;
  z-index: 0;
  pointer-events: none;
}
.fla-individual-page .fla-ratings-inner,
body.page-id-232 .fla-ratings-inner {
  position: relative;
  z-index: 1;
}
.fla-individual-page .fla-ratings-badges,
body.page-id-232 .fla-ratings-badges {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 18px 22px;
  margin: 0 0 22px;
}
.fla-individual-page .fla-ratings-badges img,
body.page-id-232 .fla-ratings-badges img {
  display: block;
  height: 48px;
  width: auto;
  max-width: 150px;
  object-fit: contain;
}
.fla-individual-page .fla-ratings-heading-row,
body.page-id-232 .fla-ratings-heading-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  margin: 0 0 28px;
}
.fla-individual-page .fla-ratings--live h2,
body.page-id-232 .fla-ratings--live h2 {
  margin: 0;
  color: #fff !important;
  font-size: clamp(28px, 3.4vw, 44px);
  font-weight: 800;
  text-transform: uppercase;
  line-height: 1.15;
  letter-spacing: 0.01em;
  max-width: 18ch;
}
.fla-individual-page .fla-ratings-cards,
body.page-id-232 .fla-ratings-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  align-items: stretch;
  margin: 0 0 28px;
}
.fla-individual-page .fla-rating-card,
body.page-id-232 .fla-rating-card {
  background: rgba(255, 255, 255, 0.96);
  color: #080C33;
  border-radius: 12px;
  padding: 22px 20px 18px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 180px;
}
.fla-individual-page .fla-rating-card h3,
body.page-id-232 .fla-rating-card h3 {
  margin: 0;
  color: #003C6E;
  font-size: 18px;
}
.fla-individual-page .fla-rating-card p,
body.page-id-232 .fla-rating-card p {
  margin: 0;
  flex: 1;
  line-height: 1.5;
  font-size: 15px;
}
.fla-individual-page .fla-rating-meta,
body.page-id-232 .fla-rating-meta {
  display: flex;
  align-items: center;
  gap: 8px;
}
.fla-individual-page .fla-rating-stars,
body.page-id-232 .fla-rating-stars {
  color: #F5A623;
  letter-spacing: 1px;
}
.fla-individual-page .fla-ratings-sa,
body.page-id-232 .fla-ratings-sa {
  background: rgba(255, 255, 255, 0.96);
  border-radius: 12px;
  padding: 18px 16px 12px;
  color: #080C33;
  overflow: hidden;
}
.fla-individual-page .fla-ratings-sa-link,
body.page-id-232 .fla-ratings-sa-link {
  margin: 10px 8px 0;
  text-align: right;
  font-size: 13px;
}
.fla-individual-page .fla-ratings-sa-link a,
body.page-id-232 .fla-ratings-sa-link a {
  color: #165D95;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* FAQ */
.fla-individual-faq {
  padding: 56px 0 72px;
  background: #fff;
}
.fla-individual-faq h2 {
  margin: 0 0 24px;
  color: #003C6E;
  font-size: clamp(26px, 3vw, 36px);
  font-weight: 800;
  text-align: center;
}
.fla-individual-faq .fla-faq--individual {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px 18px;
  margin: 0 0 28px;
}
.fla-individual-faq .fla-faq--individual details {
  background: #f8fafc;
  border: 1px solid #e4eaf1;
  border-radius: 10px;
  padding: 0;
}
.fla-individual-faq .fla-faq--individual summary {
  cursor: pointer;
  list-style: none;
  padding: 16px 18px;
  font-weight: 700;
  color: #003C6E;
  line-height: 1.35;
}
.fla-individual-faq .fla-faq--individual summary::-webkit-details-marker {
  display: none;
}
.fla-individual-faq .fla-faq--individual details p {
  margin: 0;
  padding: 0 18px 16px;
  color: #334155;
  line-height: 1.55;
}
.fla-individual-faq-cta {
  justify-content: center;
}

@media (max-width: 900px) {
  .fla-individual-hero {
    min-height: 0;
    padding: 56px 0 48px;
  }
  .fla-individual-steps-grid,
  .fla-individual-package-grid,
  .fla-individual-business-inner,
  .fla-individual-faq .fla-faq--individual,
  .fla-individual-page .fla-ratings-cards,
  body.page-id-232 .fla-ratings-cards {
    grid-template-columns: 1fr;
  }
  .fla-individual-equip {
    columns: 1;
  }
}
@media (max-width: 700px) {
  .fla-individual-page .fla-ratings.fla-ratings--live,
  body.page-id-232 .fla-ratings.fla-ratings--live {
    padding: 56px 0;
  }
  .fla-individual-hero h1 {
    max-width: none;
  }
}


/* ===== Individual 1.6.8: steps arrows, youtube, free-test band like live ===== */
.fla-individual-steps-grid {
  display: flex !important;
  flex-wrap: wrap;
  align-items: stretch;
  justify-content: center;
  gap: 16px 12px;
  grid-template-columns: none !important;
}
.fla-individual-step {
  flex: 1 1 240px;
  max-width: 340px;
}
.fla-individual-step-arrow {
  flex: 0 0 auto;
  align-self: center;
  width: 28px;
  height: 28px;
  margin: 0 4px;
  background: no-repeat center / contain;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M5 12h12M13 6l6 6-6 6' stroke='%23165D95' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.fla-youtube {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 12px;
  overflow: hidden;
  background: #003C6E;
  box-shadow: 0 12px 32px rgba(8, 12, 51, 0.16);
}
.fla-youtube iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}
.fla-individual-free-cta {
  background: #165D95;
  color: #fff;
  padding: 40px 0;
  margin: 48px 0 0;
}
.fla-individual-free-cta-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 24px 40px;
  text-align: left;
  background: #165D95;
  border-radius: 10px;
  padding: 40px 56px;
}
.fla-individual-free-cta h2 {
  flex: 1 1 280px;
  margin: 0;
  color: #fff !important;
  font-size: clamp(20px, 2.4vw, 28px);
  font-weight: 800;
  line-height: 1.25;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  max-width: 640px;
}
.fla-individual-free-cta p {
  margin: 0;
}
.fla-individual-free-cta-actions {
  flex: 0 0 auto;
  margin: 0 !important;
}
.fla-individual-free-cta .fla-individual-free-cta-btn,
.fla-individual-free-cta a.fla-btn.fla-individual-free-cta-btn {
  background: #fff !important;
  color: #003C6E !important;
  border: none;
  text-transform: uppercase;
  font-weight: 700;
  letter-spacing: 1px;
  padding: 16px 28px;
  border-radius: 8px;
}
.fla-individual-free-cta .fla-individual-free-cta-btn:hover,
.fla-individual-free-cta a.fla-btn.fla-individual-free-cta-btn:hover {
  background: #f3f6fa !important;
  color: #002B4E !important;
}
@media (max-width: 900px) {
  .fla-individual-step-arrow { display: none; }
  .fla-individual-step { max-width: none; flex: 1 1 100%; }
  .fla-individual-free-cta-inner {
    flex-direction: column;
    align-items: flex-start;
    padding: 28px 22px;
  }
}



/* ==========================================================================
   1.6.58 speed: page soft-match blocks deferred to assets/css/fla-page-*.css
   (programs, quiz, free-resources, blog, business, onsite, htt, locations,
   city, about, contact, woo-archives, en-espanol). Loaded via functions.php
   conditionals. Site footer soft-match stays in this file (global).
   Preserve STG .shepherd-element.fla-stg-step (live rules above) + Woo replay.
   Preserve STG .shepherd-element.fla-stg-step markers across deferred extracts:
   programs / quiz / free-resources / blog still reference .shepherd-element.fla-stg-step
   in their file headers; do not delete those preserve notes.
   Count target: .shepherd-element.fla-stg-step remains 17 hits in this main file.
   Note: .shepherd-element.fla-stg-step tour + .shepherd-element.fla-stg-step header rules stay global.
   ========================================================================== */

/* ===== Site footer soft-match (1.6.56) =====
   Live Elementor footer 29544 chrome: contact strip + dark columns
   (logo / menu / NAP / badges) while preserving DEV legal/Klentel block.
   Append-only. Preserve STG shepherd tour markers (count 17)
   + Woo replay CSS + prior soft-match markers above.
   Colors: #003C6E / #165D95 / #EC572C/#DA4920. Outfit. No Magnific Soft credit.
*/

/* Hide contact strip on Contact pages (live hides on page-id-218) */
body.page-id-221 .fla-ft-contact,
body.page-id-39 .fla-ft-contact,
body.page-template-template-contact-php .fla-ft-contact {
  display: none !important;
}

.site-footer.fla-footer {
  background: transparent;
  color: #c5d0dc;
  padding: 0;
  font-family: Outfit, system-ui, sans-serif;
}

/* --- 1) Contact strip (light band above dark chrome) --- */
.fla-ft-contact {
  background: #fff;
  color: #003C6E;
  padding: 48px 0 70px;
  box-sizing: border-box;
}

.fla-ft-contact-title {
  margin: 0 auto 28px;
  width: min(var(--fla-max, 1240px), calc(100% - 48px));
  text-align: center;
  font-family: Outfit, system-ui, sans-serif;
  font-size: clamp(1.6rem, 2.4vw, 2.25rem);
  font-weight: 700;
  line-height: 1.2;
  color: #003C6E;
  text-transform: uppercase;
}

.fla-ft-contact-row {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: 0;
  width: min(1300px, 100%);
  margin-inline: auto;
  box-sizing: border-box;
}

.fla-ft-contact-media {
  flex: 0 0 50%;
  max-width: 50%;
  position: relative;
  overflow: hidden;
}

.fla-ft-contact-media::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(0, 60, 110, 0.35), rgba(22, 93, 149, 0.25));
  pointer-events: none;
  z-index: 1;
}

.fla-ft-contact-img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 360px;
  object-fit: cover;
  border-radius: 0 10px 10px 0;
}

.fla-ft-contact-panel {
  flex: 1 1 50%;
  max-width: 610px;
  padding: 12px 70px 12px 40px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  box-sizing: border-box;
}

.fla-ft-contact-heading {
  margin: 0 0 18px;
  font-family: Outfit, system-ui, sans-serif;
  font-size: clamp(1.25rem, 1.8vw, 1.75rem);
  font-weight: 700;
  color: #003C6E;
  line-height: 1.25;
}

/* Form shell is not the 2-col grid (avoids honeypot taking a cell). BugHerd #12 */
.fla-ft-form.fla-form,
.fla-ft-form {
  display: block;
  position: relative;
}

.fla-ft-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.fla-ft-fields .full {
  grid-column: 1 / -1;
}

.fla-ft-fields > div {
  min-width: 0;
}

.fla-ft-form label {
  display: block;
  font-size: 14px;
  color: #003C6E;
  margin-bottom: 4px;
}

.fla-ft-form input,
.fla-ft-form textarea {
  width: 100%;
  box-sizing: border-box;
  background: #fff;
  border: 1px solid #c5d0dc;
  border-radius: 6px;
  padding: 10px 12px;
  font-family: Outfit, system-ui, sans-serif;
  font-size: 16px;
  letter-spacing: 0.5px;
  color: #003C6E;
}

.fla-ft-form .fla-btn {
  background: #EC572C;
  border: 0;
  color: #fff;
  font-family: Outfit, system-ui, sans-serif;
  font-weight: 700;
  text-transform: lowercase;
  padding: 12px 28px;
  border-radius: 6px;
  cursor: pointer;
}

.fla-ft-form .fla-btn:hover {
  background: #DA4920;
}

/* --- 2) Dark main columns --- */
.fla-ft-chrome {
  background: var(--fla-footer, #002B4E);
  color: #c5d0dc;
  padding: 60px 10px 70px;
  box-sizing: border-box;
}

.fla-ft-chrome-inner {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr 1.1fr 0.95fr;
  gap: 28px 24px;
  align-items: start;
  width: min(1300px, calc(100% - 20px));
  max-width: 1300px;
  margin-inline: auto;
  box-sizing: border-box;
}

.fla-ft-brand .fla-footer-logo {
  width: 200px;
  height: auto;
  max-width: 100%;
  display: block;
  margin: 0;
}

.fla-ft-menu h4,
.fla-ft-nap h4 {
  color: #fff;
  margin: 0 0 16px;
  font-size: 18px;
  font-weight: 700;
  text-transform: uppercase; /* BugHerd #35: match live ALL CAPS column heads (Menu / Get in touch) */
  letter-spacing: 0.02em;
}

.fla-ft-menu a,
.fla-ft-nap a,
.fla-ft-nap .fla-ft-maps {
  color: #fff;
  text-decoration: none;
  display: block;
  margin: 0 0 12px;
  font-size: 15px;
  line-height: 1.45;
  font-weight: 400;
}

.fla-ft-menu a:hover,
.fla-ft-nap a:hover,
.fla-ft-nap .fla-ft-maps:hover {
  color: #EC572C;
}

.fla-ft-nap p {
  margin: 0 0 12px;
  line-height: 1.5;
}

.fla-ft-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 20px;
  margin: 0 0 16px;
  align-items: center;
}

.fla-ft-badges img {
  width: 64px;
  height: auto;
  display: block;
}

.fla-ft-trust .fla-pay-badges {
  display: block;
  margin: 0 0 18px;
  max-width: 100%;
  height: auto;
}

.fla-ft-legal-links {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
  margin-top: 12px;
}

.fla-ft-legal-links a {
  color: #fff;
  text-decoration: none;
  font-size: 15px;
  margin: 0;
  display: block;
}

.fla-ft-legal-links a:hover {
  color: #EC572C;
}

/* --- 3) DEV legal / Klentel block (verbatim; not live Magnific Soft credit) --- */
.site-footer.fla-footer > .fla-copy {
  background: var(--fla-footer, #002B4E);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  width: min(1300px, calc(100% - 40px));
  max-width: 1300px;
  margin: 0 auto;
  padding: 18px 10px 28px;
  box-sizing: border-box;
}

.site-footer.fla-footer .fla-copy-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  color: rgba(197, 208, 220, 0.7);
  font-size: 12px;
}

.site-footer.fla-footer .fla-copy a {
  display: inline;
  margin: 0 0 0 14px;
  color: rgba(197, 208, 220, 0.55);
  font-size: 12px;
  text-decoration: none;
}

.site-footer.fla-footer .fla-copy a:hover {
  color: rgba(255, 255, 255, 0.85);
}

.site-footer.fla-footer .fla-copy-confidential {
  margin: 10px 0 0;
  max-width: 920px;
  font-size: 11px;
  line-height: 1.45;
  color: rgba(197, 208, 220, 0.38);
}

@media (max-width: 1280px) {
  .fla-ft-contact-row {
    flex-direction: column-reverse;
    gap: 40px;
    padding: 0 20px;
    width: 100%;
  }

  .fla-ft-contact-media,
  .fla-ft-contact-panel {
    flex: 1 1 auto;
    max-width: 100%;
    width: 100%;
  }

  .fla-ft-contact-img {
    border-radius: 10px;
    min-height: 280px;
  }

  .fla-ft-contact-panel {
    padding: 0;
    max-width: none;
  }

  .fla-ft-chrome-inner {
    grid-template-columns: 1fr 1fr;
    gap: 40px 28px;
    width: min(1240px, calc(100% - 40px));
  }

  .fla-ft-brand .fla-footer-logo {
    width: 140px;
  }
}

@media (max-width: 767px) {
  .fla-ft-contact {
    padding: 36px 0 48px;
  }

  .fla-ft-contact-title {
    width: calc(100% - 40px);
    font-size: 1.45rem;
  }

  .fla-ft-fields {
    grid-template-columns: 1fr;
  }

  .fla-ft-chrome {
    padding: 48px 20px 50px;
  }

  .fla-ft-chrome-inner {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
    gap: 36px;
    width: 100%;
  }

  .fla-ft-menu,
  .fla-ft-nap,
  .fla-ft-trust {
    width: 100%;
  }

  .fla-ft-badges {
    justify-content: center;
  }

  .fla-ft-legal-links {
    align-items: center;
  }

  .fla-ft-trust .fla-pay-badges {
    margin-inline: auto;
  }

  .site-footer.fla-footer > .fla-copy {
    width: calc(100% - 40px);
    text-align: center;
  }

  .site-footer.fla-footer .fla-copy-row {
    justify-content: center;
  }

  .site-footer.fla-footer .fla-copy-links a {
    margin: 0 8px;
  }
}
/* end Site footer soft-match (1.6.56) */

/* ===== Student TTT join: leave class + digital wallet card gate (1.6.60) ===== */
.fla-join-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  margin: 16px 0 8px;
}
.fla-btn.is-disabled,
.fla-btn[aria-disabled="true"],
a.fla-btn.is-disabled {
  background: #c5cdd6 !important;
  color: #5b6570 !important;
  pointer-events: none;
  cursor: not-allowed;
  box-shadow: none;
}
.fla-btn.fla-leave-open {
  background: #fff;
  color: #003C6E;
  border: 2px solid #003C6E;
}
.fla-btn.fla-leave-open:hover {
  background: #003C6E;
  color: #fff;
}
.fla-leave-dialog {
  border: 0;
  border-radius: 10px;
  padding: 0;
  max-width: 420px;
  width: calc(100% - 32px);
  box-shadow: 0 16px 48px rgba(8, 12, 51, 0.28);
}
.fla-leave-dialog::backdrop {
  background: rgba(8, 12, 51, 0.55);
}
.fla-leave-dialog-inner {
  padding: 24px 24px 20px;
}
.fla-leave-dialog h2 {
  margin: 0 0 10px;
  font-family: Outfit, sans-serif;
  font-size: 22px;
  font-weight: 800;
  color: #003C6E;
}
.fla-leave-dialog p {
  margin: 0 0 18px;
  color: #0A1D2A;
  line-height: 1.45;
}
.fla-leave-dialog-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
}
.fla-leave-dialog .fla-btn.danger {
  background: #EC572C;
  color: #fff;
}
.fla-leave-dialog .fla-btn.danger:hover {
  background: #DA4920;
}
/* end Student TTT join leave/cert (1.6.60) */

/* Presenter: Print attendance sheet (1.6.61) */
.fla-class-shell .fla-present-attendance {
  margin: 12px 0 8px;
  width: 100%;
  box-sizing: border-box;
}
.fla-class-shell .fla-present-attendance .fla-btn,
.fla-class-shell .fla-present-attendance .fla-btn.ghost {
  display: flex;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  justify-content: center;
  align-items: center;
  text-align: center;
  white-space: normal;
  line-height: 1.2;
  padding: 12px 10px;
  font-size: 12px;
  letter-spacing: 0.06em;
  background: #003C6E;
  color: #fff !important;
  border: 2px solid #003C6E;
  text-decoration: none !important;
}
.fla-class-shell .fla-present-attendance .fla-btn:hover,
.fla-class-shell .fla-present-attendance .fla-btn.ghost:hover {
  background: #002B4E;
  border-color: #002B4E;
  color: #fff !important;
}
/* end Presenter attendance (1.6.61) */

/* Tutor frontend dashboard: site header + layout under sticky header (1.6.62) */
body.tutor-screen-frontend-dashboard {
  --fla-tutor-header-offset: 72px;
}
body.admin-bar.tutor-screen-frontend-dashboard {
  --fla-tutor-header-offset: 104px; /* ~72 header + 32 admin bar */
}
@media screen and (max-width: 782px) {
  body.admin-bar.tutor-screen-frontend-dashboard {
    --fla-tutor-header-offset: 118px; /* ~72 + 46 */
  }
}
body.tutor-screen-frontend-dashboard .tutor-dashboard-layout {
  min-height: calc(100vh - var(--fla-tutor-header-offset));
}
body.tutor-screen-frontend-dashboard .tutor-dashboard-sidebar {
  top: var(--fla-tutor-header-offset);
  min-height: calc(100dvh - var(--fla-tutor-header-offset));
}
/* end Tutor dashboard site header (1.6.62) */

/* Tutor dashboard: hide sidebar logo when site header is present (1.6.63) */
body.tutor-screen-frontend-dashboard .tutor-dashboard-sidebar-logo {
  display: none !important;
}
/* end Tutor dashboard sidebar logo hide (1.6.63) */

/* Tutor dashboard: hide Tutor profile chrome (FLA site header is account entry) (1.6.64) */
body.tutor-screen-frontend-dashboard .tutor-dashboard-header-user {
  display: none !important;
}
/* end Tutor dashboard profile chrome hide (1.6.64) */

/* ===== Footer full-bleed dark band (1.6.71) =====
   Soft-match left .site-footer transparent and put navy on
   .fla-ft-chrome + boxed .fla-copy - sides of the legal strip
   showed page background. Keep contact strip white; make
   footer + copyright row continuous full-viewport navy.
*/
body.hello-elementor-fla .site-footer.fla-footer {
  background: var(--fla-footer, #002B4E);
  max-width: none !important;
  width: 100% !important;
  margin-inline: 0 !important;
}
body.hello-elementor-fla .site-footer.fla-footer > .fla-ft-contact {
  /* white strip stays full-bleed over navy footer shell */
  width: 100%;
  max-width: none;
  margin-inline: 0;
  box-sizing: border-box;
}
body.hello-elementor-fla .site-footer.fla-footer > .fla-ft-chrome {
  width: 100%;
  max-width: none;
  margin-inline: 0;
  box-sizing: border-box;
}
/* Legal/Klentel block: background full-bleed; content stays ~1300px */
body.hello-elementor-fla .site-footer.fla-footer > .fla-copy,
body.hello-elementor-fla .site-footer.fla-footer > .fla-footer-inner.fla-copy {
  background: var(--fla-footer, #002B4E);
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  padding: 18px 0 28px;
  box-sizing: border-box;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}
body.hello-elementor-fla .site-footer.fla-footer > .fla-copy .fla-copy-row,
body.hello-elementor-fla .site-footer.fla-footer > .fla-copy .fla-copy-confidential {
  width: min(1300px, calc(100% - 40px));
  max-width: 1300px;
  margin-inline: auto;
  padding-inline: 10px;
  box-sizing: border-box;
}
@media (max-width: 767px) {
  body.hello-elementor-fla .site-footer.fla-footer > .fla-copy .fla-copy-row,
  body.hello-elementor-fla .site-footer.fla-footer > .fla-copy .fla-copy-confidential {
    width: calc(100% - 40px);
    text-align: center;
  }
}
/* end Footer full-bleed dark band (1.6.71) */

/* ===== SA hero badge overflow fix (1.6.75) =====
   Frosted pill used white-space:nowrap on "5,000+ reviews on Shopper Approved"
   which forced min-content wider than the hero visual column and clipped
   "Approved" at the viewport edge (also contributed to horizontal scroll).
*/
.fla-hero-visual {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}
.fla-hero-visual .fla-sa-hero,
.fla-hero-visual .fla-sa-badge {
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.fla-hero-visual .fla-sa-meta {
  min-width: 0;
  max-width: 100%;
}
.fla-hero-visual .fla-sa-copy {
  white-space: normal;
  overflow-wrap: anywhere;
  max-width: 14em;
}
@media (min-width: 1280px) {
  /* Wide desktops can keep one-line copy like live */
  .fla-hero-visual .fla-sa-copy {
    white-space: nowrap;
    overflow-wrap: normal;
    max-width: none;
  }
}
@media (max-width: 1279px) and (min-width: 768px) {
  .fla-hero-visual .fla-sa-badge .fla-shopper { width: 148px; }
  .fla-hero-visual .fla-sa-stars { width: 110px; }
  .fla-hero-visual .fla-sa-copy { font-size: 15px; line-height: 1.35; max-width: 12.5em; }
}
/* end SA hero badge overflow fix (1.6.75) */

/* ===== SA hero badge contain (1.6.77) =====
   1.6.75 still allowed nowrap from 1280px up; box browser is 1280 wide so
   "Shopper Approved" kept clipping and widened the page. Force wrap, shrink
   assets slightly, and clip hero overflow so the pill stays on-canvas.
*/
body.home .fla-hero {
  overflow-x: clip;
}
body.home .fla-hero-grid {
  min-width: 0;
}
body.home .fla-hero-visual {
  min-width: 0 !important;
  max-width: 100% !important;
  overflow: hidden;
  justify-content: flex-end;
}
body.home .fla-hero-visual .fla-sa-hero,
body.home .fla-hero-visual .fla-sa-badge {
  max-width: 100% !important;
  width: auto;
  min-width: 0 !important;
  flex-wrap: wrap;
  row-gap: 4px;
}
body.home .fla-hero-visual .fla-sa-badge .fla-shopper {
  width: 150px;
  max-width: 42%;
}
body.home .fla-hero-visual .fla-sa-stars {
  width: 118px;
  max-width: 100%;
}
body.home .fla-hero-visual .fla-sa-copy,
body.home .fla-hero-visual .fla-sa-copy a {
  white-space: normal !important;
  overflow-wrap: anywhere;
  word-break: normal;
  max-width: 11.5rem;
  font-size: 15px;
  line-height: 1.35;
}
@media (max-width: 767px) {
  body.home .fla-hero-visual .fla-sa-badge .fla-shopper { width: 130px; max-width: 48%; }
  body.home .fla-hero-visual .fla-sa-copy,
  body.home .fla-hero-visual .fla-sa-copy a { font-size: 13px; max-width: none; }
}
/* end SA hero badge contain (1.6.77) */

/* ===== Home horizontal overflow clip (1.6.78) =====
   Logos full-bleed used width:100vw + margin calc(50% - 50vw), which adds a
   horizontal scrollbar when a vertical scrollbar is present (vw includes gutter).
   Clip the page and prefer 100% width on the logos Elementor breakout.
*/
html {
  overflow-x: clip;
}
body.home {
  overflow-x: clip;
}
body.home .elementor-element-3b90c33.elementor-section,
body.home .elementor-section:has(.fla-logos),
body.home .elementor-top-section:has(.fla-logos) {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
/* end Home horizontal overflow clip (1.6.78) */

/* ===== Shared ratings live band (1.6.79) =====
   Home soft-match used body.home .fla-ratings--live only. After SA helpers
   landed on about/programs/business/locations/cities/blog/en-espanol, those
   bands lacked the navy photo chrome + SA white card. Scope to the shared
   .fla-ratings--live class (home keeps working via the same selectors).
*/
.fla-ratings.fla-ratings--live {
  position: relative;
  isolation: isolate;
  padding: 110px 0;
  background-color: #003C6E;
  background-image: url("/wp-content/themes/hello-elementor-fla/assets/ratings/testimonials-img-min.jpg");
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  color: #fff;
}
.fla-ratings.fla-ratings--live::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #003C6E;
  opacity: 0.72;
  z-index: 0;
  pointer-events: none;
}
.fla-ratings.fla-ratings--live .fla-ratings-inner {
  position: relative;
  z-index: 1;
}
.fla-ratings.fla-ratings--live .fla-ratings-badges {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 18px 22px;
  margin: 0 0 22px;
}
.fla-ratings.fla-ratings--live .fla-ratings-badges img {
  display: block;
  height: 48px;
  width: auto;
  max-width: 150px;
  object-fit: contain;
  filter: none;
}
.fla-ratings.fla-ratings--live .fla-ratings-heading-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  margin: 0 0 28px;
}
.fla-ratings.fla-ratings--live h2 {
  margin: 0;
  color: #fff !important;
  font-size: clamp(28px, 3.4vw, 44px);
  font-weight: 800;
  text-transform: uppercase;
  line-height: 1.15;
  letter-spacing: 0.01em;
  max-width: 18ch;
}
.fla-ratings.fla-ratings--live .fla-ratings-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  align-items: stretch;
}
.fla-ratings.fla-ratings--live .fla-rating-card {
  background: #fff;
  color: #080C33;
  border-radius: 12px;
  padding: 22px 20px;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.18);
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.fla-ratings.fla-ratings--live .fla-rating-card h3 {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  color: #003C6E;
}
.fla-ratings.fla-ratings--live .fla-rating-card p {
  margin: 0;
  font-size: 15px;
  line-height: 1.45;
  color: #0A1D2A;
  flex: 1 1 auto;
}
.fla-ratings.fla-ratings--live .fla-rating-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 4px;
}
.fla-ratings.fla-ratings--live .fla-rating-stars {
  color: #FBBB00;
  letter-spacing: 1px;
  font-size: 16px;
  line-height: 1;
}
.fla-ratings.fla-ratings--live .fla-ratings-dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin: 18px 0 10px;
}
.fla-ratings.fla-ratings--live .fla-ratings-dots span {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: rgba(255,255,255,0.35);
}
.fla-ratings.fla-ratings--live .fla-ratings-dots span.is-active {
  background: #fff;
}
.fla-ratings.fla-ratings--live .fla-ratings-sa {
  background: rgba(255,255,255,0.96);
  border-radius: 12px;
  padding: 18px 16px 12px;
  color: #080C33;
  overflow: hidden;
}
.fla-ratings.fla-ratings--live .fla-ratings-sa .SA__wrapper,
.fla-ratings.fla-ratings--live .fla-ratings-sa #SA_wrapper_c9fNxtK1HWmh {
  min-height: 90px;
}
.fla-ratings.fla-ratings--live .fla-ratings-sa-link {
  margin: 10px 8px 0;
  text-align: right;
  font-size: 13px;
}
.fla-ratings.fla-ratings--live .fla-ratings-sa-link a {
  color: #165D95;
  text-decoration: underline;
  text-underline-offset: 2px;
}
@media (max-width: 1100px) {
  .fla-ratings.fla-ratings--live { padding: 60px 0; }
  .fla-ratings.fla-ratings--live .fla-ratings-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fla-ratings.fla-ratings--live .fla-rating-card:nth-child(3) { display: none; }
}
@media (max-width: 700px) {
  .fla-ratings.fla-ratings--live { padding: 50px 0; }
  .fla-ratings.fla-ratings--live .fla-ratings-heading-row { flex-direction: column; }
  .fla-ratings.fla-ratings--live h2 { max-width: none; }
  .fla-ratings.fla-ratings--live .fla-ratings-cards { grid-template-columns: 1fr; }
  .fla-ratings.fla-ratings--live .fla-rating-card:nth-child(3) { display: flex; }
}
/* end Shared ratings live band (1.6.79) */

/* ===== Home ratings responsive fix (1.6.80 / 1.6.81) =====
   Soft-match live 29477 breakpoints (1280 / 767).
   Hide non-functional nav arrows (display:flex was overriding [hidden]).
   Hide decorative dots (no carousel JS). Drop duplicate SA footer link.
   Unify card chrome so body.home + shared 1.6.79 do not fight.
*/
.fla-ratings.fla-ratings--live .fla-ratings-nav,
body.home .fla-ratings-nav,
.fla-ratings.fla-ratings--live .fla-ratings-nav[hidden] {
  display: none !important;
}
.fla-ratings.fla-ratings--live .fla-ratings-dots,
body.home .fla-ratings-dots {
  display: none !important;
}
.fla-ratings.fla-ratings--live .fla-ratings-sa-link,
body.home .fla-ratings-sa-link {
  display: none !important;
}
.fla-ratings.fla-ratings--live h2,
body.home .fla-ratings--live h2 {
  max-width: none;
}
.fla-ratings.fla-ratings--live .fla-rating-card,
body.home .fla-rating-card {
  min-height: 0;
  padding: 22px 20px;
  border-radius: 12px;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.18);
  gap: 10px;
}
.fla-ratings.fla-ratings--live .fla-rating-meta,
body.home .fla-rating-meta {
  justify-content: flex-start;
  margin-top: 4px;
}
.fla-ratings.fla-ratings--live .fla-ratings-sa,
body.home .fla-ratings-sa {
  max-width: 100%;
  overflow: hidden;
}
.fla-ratings.fla-ratings--live .fla-ratings-sa .SA__wrapper,
.fla-ratings.fla-ratings--live .fla-ratings-sa #SA_wrapper_c9fNxtK1HWmh,
.fla-ratings.fla-ratings--live .fla-ratings-sa .SA__container,
body.home .fla-ratings-sa .SA__wrapper,
body.home .fla-ratings-sa #SA_wrapper_c9fNxtK1HWmh,
body.home .fla-ratings-sa .SA__container {
  max-width: 100% !important;
  width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box;
  overflow: hidden;
}
.fla-ratings.fla-ratings--live .fla-ratings-sa img,
.fla-ratings.fla-ratings--live .fla-ratings-sa svg,
body.home .fla-ratings-sa img,
body.home .fla-ratings-sa svg {
  max-width: 100%;
  height: auto;
}

/* Live 29477 padding at 1280; keep 3 Google cards on desktop (≥1101).
   Elementor laptop setting is 3 slides; published CSS hid 3rd at ≤1280 and looked sparse.
*/
@media (max-width: 1280px) {
  .fla-ratings.fla-ratings--live,
  body.home .fla-ratings--live {
    padding: 60px 0;
  }
}
@media (max-width: 1100px) {
  .fla-ratings.fla-ratings--live .fla-ratings-cards,
  body.home .fla-ratings-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .fla-ratings.fla-ratings--live .fla-rating-card:nth-child(3),
  body.home .fla-rating-card:nth-child(3) {
    display: none;
  }
}
@media (max-width: 767px) {
  .fla-ratings.fla-ratings--live,
  body.home .fla-ratings--live {
    padding: 50px 0;
  }
  .fla-ratings.fla-ratings--live .fla-ratings-heading-row,
  body.home .fla-ratings-heading-row {
    flex-direction: column;
  }
  .fla-ratings.fla-ratings--live .fla-ratings-cards,
  body.home .fla-ratings-cards {
    grid-template-columns: 1fr;
  }
  .fla-ratings.fla-ratings--live .fla-rating-card:nth-child(3),
  body.home .fla-rating-card:nth-child(3) {
    display: flex;
  }
  .fla-ratings.fla-ratings--live .fla-ratings-badges,
  body.home .fla-ratings-badges {
    gap: 12px 16px;
  }
  .fla-ratings.fla-ratings--live .fla-ratings-badges img,
  body.home .fla-ratings-badges img {
    height: 40px;
  }
  .fla-ratings.fla-ratings--live h2,
  body.home .fla-ratings--live h2 {
    font-size: clamp(24px, 7vw, 32px);
  }
}
/* end Home ratings responsive fix (1.6.81) */

/* ===== Ratings SA narrow layout (1.6.82) =====
   Shopper Approved rotating widget stacks at ≤768 (their CSS) but keeps
   side arrows + 45px padding - looks broken in the ratings white card.
   Tighten padding, hide arrows, and on small phones keep score summary only.
*/
@media (max-width: 900px) {
  .fla-ratings.fla-ratings--live .fla-ratings-sa,
  body.home .fla-ratings-sa {
    padding: 14px 10px 10px;
  }
  .fla-ratings.fla-ratings--live .fla-ratings-sa .sa-slider-container-main,
  body.home .fla-ratings-sa .sa-slider-container-main,
  .fla-ratings.fla-ratings--live .fla-ratings-sa .SA__wrapper .sa-slider-container-main,
  body.home .fla-ratings-sa .SA__wrapper .sa-slider-container-main {
    padding-left: 8px !important;
    padding-right: 8px !important;
    max-width: 100% !important;
  }
  .fla-ratings.fla-ratings--live .fla-ratings-sa .arrow,
  .fla-ratings.fla-ratings--live .fla-ratings-sa .arrow.left,
  .fla-ratings.fla-ratings--live .fla-ratings-sa .arrow.right,
  .fla-ratings.fla-ratings--live .fla-ratings-sa .SA__prev,
  .fla-ratings.fla-ratings--live .fla-ratings-sa .SA__next,
  .fla-ratings.fla-ratings--live .fla-ratings-sa .tns-controls,
  body.home .fla-ratings-sa .arrow,
  body.home .fla-ratings-sa .arrow.left,
  body.home .fla-ratings-sa .arrow.right,
  body.home .fla-ratings-sa .SA__prev,
  body.home .fla-ratings-sa .SA__next,
  body.home .fla-ratings-sa .tns-controls {
    display: none !important;
  }
  .fla-ratings.fla-ratings--live .fla-ratings-sa .sa-slides-contain,
  body.home .fla-ratings-sa .sa-slides-contain {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 10px;
    width: 100%;
  }
  .fla-ratings.fla-ratings--live .fla-ratings-sa .sa-first-slide,
  .fla-ratings.fla-ratings--live .fla-ratings-sa .sa-slide,
  body.home .fla-ratings-sa .sa-first-slide,
  body.home .fla-ratings-sa .sa-slide {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    box-sizing: border-box;
  }
  .fla-ratings.fla-ratings--live .fla-ratings-sa .sa-slider-container,
  body.home .fla-ratings-sa .sa-slider-container {
    width: 100% !important;
    margin-left: 0 !important;
    min-width: 0 !important;
  }
}

/* Phones: score summary + SA "see more" only - rotating cards need width */
@media (max-width: 540px) {
  .fla-ratings.fla-ratings--live .fla-ratings-sa .sa-slider-container,
  body.home .fla-ratings-sa .sa-slider-container {
    display: none !important;
  }
  .fla-ratings.fla-ratings--live .fla-ratings-sa .sa-first-slide,
  body.home .fla-ratings-sa .sa-first-slide {
    margin: 0 auto !important;
  }
}
/* end Ratings SA narrow layout (1.6.82) */

/* ===== Ratings mobile carousel (1.6.84) =====
   Live 29477 shows 1 Google review on mobile with bullets (arrows hidden).
   Soft-match: one .is-active card + visible dots ≤767; swipe via fla.js.
*/
@media (max-width: 767px) {
  .fla-ratings.fla-ratings--live .fla-ratings-cards,
  body.home .fla-ratings-cards {
    grid-template-columns: 1fr;
  }
  .fla-ratings.fla-ratings--live .fla-rating-card,
  body.home .fla-rating-card {
    display: none !important;
  }
  .fla-ratings.fla-ratings--live .fla-rating-card.is-active,
  .fla-ratings.fla-ratings--live .fla-rating-card:first-child,
  body.home .fla-rating-card.is-active,
  body.home .fla-rating-card:first-child {
    display: flex !important;
  }
  /* When JS marked an active card, hide non-active first-child override */
  .fla-ratings.fla-ratings--live .fla-ratings-cards[data-fla-ratings-ready="1"] .fla-rating-card:first-child:not(.is-active),
  body.home .fla-ratings-cards[data-fla-ratings-ready="1"] .fla-rating-card:first-child:not(.is-active) {
    display: none !important;
  }
  .fla-ratings.fla-ratings--live .fla-ratings-dots,
  body.home .fla-ratings-dots {
    display: flex !important;
    justify-content: center;
    gap: 8px;
    margin: 22px 0 28px;
  }
  .fla-ratings.fla-ratings--live .fla-ratings-dots span,
  body.home .fla-ratings-dots span {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: rgba(255,255,255,0.35);
    cursor: pointer;
  }
  .fla-ratings.fla-ratings--live .fla-ratings-dots span.is-active,
  body.home .fla-ratings-dots span.is-active {
    background: #fff;
  }
}
/* end Ratings mobile carousel (1.6.84) */


/* FLA training and process (staff): readable light layout */
.fla-training-page .fla-staff-page__inner {
  max-width: 900px;
}
.fla-training-toc {
  margin: 28px 0;
  padding: 16px 18px;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  box-shadow: 0 1px 2px rgba(8, 12, 51, 0.04);
  color: var(--fla-text);
}
.fla-training-toc__heading {
  display: block;
  color: var(--fla-navy);
  font-size: 14px;
}
.fla-training-toc__list {
  margin: 10px 0 0 18px;
  padding: 0;
  color: var(--fla-text);
}
.fla-training-toc__list a {
  color: #145C94;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.fla-training-toc__list a:hover,
.fla-training-toc__list a:focus {
  color: #003C6E;
}
.fla-training-section {
  margin: 36px 0;
  color: var(--fla-text);
  line-height: 1.55;
}
.fla-training-section h2 {
  margin: 0 0 12px;
  color: var(--fla-navy);
  font-size: clamp(20px, 2.5vw, 26px);
  font-weight: 700;
}
.fla-training-section p,
.fla-training-section li {
  color: var(--fla-text);
}
.fla-training-section a {
  color: #145C94;
}
.fla-training-section a:hover,
.fla-training-section a:focus {
  color: #003C6E;
}
.fla-training-section code {
  background: #f4f7fa;
  color: #0A1D2A;
  padding: 1px 6px;
  border-radius: 4px;
  font-size: 0.92em;
}
.fla-training-footer-actions {
  margin-top: 48px;
}

.fla-training-links {
  list-style: none;
  margin: 16px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 12px;
}
.fla-training-links > li {
  margin: 0;
}
.fla-training-links__card {
  display: flex;
  flex-direction: column;
  gap: 4px;
  height: 100%;
  padding: 14px 16px;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  text-decoration: none;
  color: inherit;
  box-shadow: 0 1px 2px rgba(8, 12, 51, 0.04);
  transition: border-color .15s ease, box-shadow .15s ease;
}
.fla-training-links__card:hover,
.fla-training-links__card:focus {
  border-color: #145C94;
  box-shadow: 0 8px 24px rgba(20, 92, 148, 0.12);
  color: inherit;
}
.fla-training-links__title {
  font-size: 15px;
  font-weight: 700;
  color: #145C94;
}
.fla-training-links__url {
  font-size: 12px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  color: var(--fla-muted);
}
.fla-training-links__purpose {
  font-size: 13px;
  line-height: 1.4;
  color: var(--fla-text);
}
.fla-training-tip {
  margin-top: 14px;
  padding: 10px 12px;
  background: #f4f7fa;
  border-radius: 8px;
  font-size: 14px;
}



/* ===== FAQ page 219 soft-match (1.6.105) =====
   Ratings band already uses shared .fla-ratings--live (1.6.79+).
   FAQ embeds the same markup in Elementor HTML 9553358 without the home-only
   SA rotating script - empty .fla-ratings-sa was a wide white slab under cards.
   Ensure body.page-id-219 / .elementor-219 get the live band; hide residual SA;
   full-bleed Elementor parents; theme CSS for on-page contact CTA (no inline).
   Preserve STG .shepherd-element.fla-stg-step rules above.
*/
body.page-id-219 .fla-ratings.fla-ratings--live,
.elementor-219 .fla-ratings.fla-ratings--live {
  position: relative;
  isolation: isolate;
  padding: 110px 0;
  background-color: #003C6E;
  background-image: url("/wp-content/themes/hello-elementor-fla/assets/ratings/testimonials-img-min.jpg");
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  color: #fff;
  width: 100%;
  max-width: none;
}
body.page-id-219 .fla-ratings--live::before,
.elementor-219 .fla-ratings--live::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #003C6E;
  opacity: 0.72;
  z-index: 0;
  pointer-events: none;
}
body.page-id-219 .fla-ratings-inner,
.elementor-219 .fla-ratings-inner {
  position: relative;
  z-index: 1;
}
body.page-id-219 .fla-ratings-sa,
.elementor-219 .fla-ratings-sa,
body.page-id-219 .fla-ratings-dots,
.elementor-219 .fla-ratings-dots,
body.page-id-219 .fla-ratings-nav,
.elementor-219 .fla-ratings-nav {
  display: none !important;
}
/* Full-bleed ratings + CTA parents (avoid boxed white Elementor gutters) */
body.page-id-219 .elementor-element-86d703d,
body.page-id-219 .elementor-element-39227af {
  --padding-block-start: 0px;
  --padding-block-end: 0px;
  --padding-inline-start: 0px;
  --padding-inline-end: 0px;
  max-width: 100%;
  width: 100%;
}
body.page-id-219 .elementor-element-9553358,
body.page-id-219 .elementor-element-d7e0f7c {
  width: 100%;
}
.fla-faq-contact-cta {
  text-align: center;
  padding: 40px 20px 56px;
  background: #fff;
}
.fla-faq-contact-cta h2 {
  margin: 0 0 12px;
  font-family: Outfit, sans-serif;
  font-size: 28px;
  font-weight: 700;
  color: #003C6E;
}
.fla-faq-contact-cta p {
  margin: 0 0 20px;
  font-size: 16px;
  color: #333;
}
.fla-faq-contact-cta__btn {
  display: inline-block;
  background: #E87722;
  color: #fff !important;
  text-decoration: none;
  font-weight: 700;
  padding: 14px 28px;
  border-radius: 6px;
  font-family: Outfit, sans-serif;
}
.fla-faq-contact-cta__btn:hover,
.fla-faq-contact-cta__btn:focus {
  background: #d66a1c;
  color: #fff !important;
}
@media (max-width: 1280px) {
  body.page-id-219 .fla-ratings.fla-ratings--live,
  .elementor-219 .fla-ratings.fla-ratings--live {
    padding: 60px 0;
  }
}
@media (max-width: 767px) {
  body.page-id-219 .fla-ratings.fla-ratings--live,
  .elementor-219 .fla-ratings.fla-ratings--live {
    padding: 50px 0;
  }
}
/* end FAQ page 219 soft-match (1.6.105) */

/* ===== BugHerd #2: Google ratings cards ↔ SA spacing (1.6.106) =====
   BugHerd: "spacing between google and shopper approved is too tight"
   (mobile-screenshot.jpg shows Google review cards flush above the SA
   rotating widget in .fla-ratings--live - not header GTranslate ↔ hero SA).
   Cause: 1.6.80 hid .fla-ratings-dots on desktop (display:none), removing the
   only vertical gap between .fla-ratings-cards and .fla-ratings-sa.
   Fix: explicit margin-top on .fla-ratings-sa (desktop + mobile). Does not
   change SA hero badge size/placement. Append-only; STG shepherd CSS untouched.
*/
body.home .fla-ratings.fla-ratings--live .fla-ratings-sa,
.fla-ratings.fla-ratings--live .fla-ratings-sa {
  margin-top: 32px;
}
@media (max-width: 767px) {
  /* Mobile carousel dots (1.6.84) already add margin; keep SA margin so the
     Google card → SA gap stays clearly open without looking sparse. */
  body.home .fla-ratings.fla-ratings--live .fla-ratings-sa,
  .fla-ratings.fla-ratings--live .fla-ratings-sa {
    margin-top: 24px;
  }
}
/* end BugHerd #2 Google ↔ SA spacing (1.6.106) */

/* ===== Contact header + honeypot structural (1.6.112) =====
   - Honeypot markup uses .fla-hp (global .fla-form .fla-hp hide) - not .fla-hp-field.
   - Sticky header: overflow-x visible on .site-header.fla-header (clip on inner).
   - Footer contact band skipped on Contact Us via footer.php (221/39) like FAQ.
   Append-only. Preserve STG shepherd tour markers (count 17).
*/
.fla-form .fla-hp {
  position: absolute !important;
  left: -9999px !important;
  top: auto !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  clip: rect(0, 0, 0, 0) !important;
}
.fla-form.fla-form { position: relative; }
/* end Contact header + honeypot structural (1.6.112) */

/* ===== BugHerd #12 footer honeypot structural (1.6.114) =====
   Honeypot .fla-hp outside .fla-ft-fields grid (footer.php).
   Reinforce hide for .fla-ft-form (also inherits .fla-form .fla-hp).
   Preserve STG shepherd tour markers. Append-only.
*/
.fla-ft-form.fla-form { position: relative; }
.fla-ft-form .fla-hp,
.fla-form .fla-hp {
  position: absolute !important;
  left: -9999px !important;
  top: auto !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  clip: rect(0, 0, 0, 0) !important;
}
/* end BugHerd #12 footer honeypot structural (1.6.114) */

/* ===== SA hero pill soft-match live (1.6.116) =====
   BugHerd #4: 1.6.77 max-width:42% + flex-wrap crushed avatars (~63px) and
   left a sparse tiny pill vs live Elementor af2c88a (~518x93, avatars ~167,
   stars 136, copy 18px Outfit, gap 10px, nowrap row). Soft-match live sizes;
   keep hero overflow clip from 1.6.77/78. Ratings-band SA widget unchanged.
   Preserve STG shepherd. Append-only.
*/
body.home .fla-hero-visual .fla-sa-hero,
body.home .fla-hero-visual .fla-sa-badge {
  flex-wrap: nowrap !important;
  align-items: center;
  justify-content: center;
  gap: 10px;
  row-gap: 0;
  padding: 10px 18px 10px 10px;
  width: auto;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
body.home .fla-hero-visual .fla-sa-badge-link {
  flex: 0 0 auto !important;
  max-width: none;
  line-height: 0;
  position: relative;
  top: 5px; /* live 8fd53a2 optical align */
}
body.home .fla-hero-visual .fla-sa-badge .fla-shopper {
  width: 170px !important;
  max-width: none !important;
  height: auto;
  display: block;
}
body.home .fla-hero-visual .fla-sa-meta {
  flex: 0 1 auto;
  min-width: 0;
  gap: 0;
  align-items: flex-start;
  justify-content: center;
}
body.home .fla-hero-visual .fla-sa-stars {
  width: 136px !important;
  max-width: 100%;
  height: auto;
  display: block;
  flex: 0 0 auto;
}
body.home .fla-hero-visual .fla-sa-copy,
body.home .fla-hero-visual .fla-sa-copy a {
  font-family: Outfit, "Segoe UI", sans-serif;
  font-size: 18px !important;
  line-height: 1.5 !important;
  font-weight: 400;
  color: #080C33;
  max-width: none !important;
  white-space: nowrap !important;
  overflow-wrap: normal;
  word-break: normal;
}
body.home .fla-hero-visual .fla-sa-copy a {
  text-decoration: underline;
}
body.home .fla-hero-visual .fla-sa-copy a:hover {
  color: #165D95;
  opacity: 1;
}
/* Live soft-match at ~1280: copy 17px; allow wrap only if column is tight */
@media (max-width: 1279px) and (min-width: 768px) {
  body.home .fla-hero-visual .fla-sa-copy,
  body.home .fla-hero-visual .fla-sa-copy a {
    font-size: 17px !important;
    line-height: 1.4 !important;
  }
}
@media (max-width: 1100px) and (min-width: 768px) {
  /* Keep avatar/star live sizes; wrap copy instead of shrinking avatars */
  body.home .fla-hero-visual .fla-sa-copy {
    white-space: normal !important;
    max-width: 14em !important;
    overflow-wrap: anywhere;
  }
}
@media (max-width: 767px) {
  body.home .fla-hero-visual .fla-sa-badge {
    padding: 4px 12px 4px 4px;
    gap: 8px;
    flex-wrap: nowrap !important;
  }
  body.home .fla-hero-visual .fla-sa-badge-link { top: 2px; }
  body.home .fla-hero-visual .fla-sa-badge .fla-shopper {
    width: 140px !important;
    max-width: none !important;
  }
  body.home .fla-hero-visual .fla-sa-stars { width: 90px !important; }
  body.home .fla-hero-visual .fla-sa-copy,
  body.home .fla-hero-visual .fla-sa-copy a {
    font-size: 14px !important;
    line-height: 1.5 !important;
    white-space: normal !important;
    max-width: none !important;
  }
}
/* end SA hero pill soft-match live (1.6.116) */

/* FLA Trainer present idle desk: schedule secondary action spacing (1.6.124) */
.fla-present-schedule-link {
  margin-top: 1.25em;
}

/* ===== BugHerd #24: crop profile / cert photos to frame (1.6.128) =====
   WooCommerce layout.css sets `.woocommerce img, .woocommerce-page img {
   height:auto; max-width:100% }` at specificity (0,1,1). That beats our
   single-class crop rules (0,1,0), so landscape medium attachments
   (e.g. jordan-hale-headshot-300x200) letterbox in the header avatar and
   in Your photo / digital wallet card frames on account pages.
   Raise specificity under .woocommerce / .woocommerce-page so object-fit
   cover fills the fixed frames on all applicable WC pages.
*/
.woocommerce .fla-profile-img,
.woocommerce-page .fla-profile-img {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center center;
  display: block;
}
.woocommerce .fla-cert-photo,
.woocommerce-page .fla-cert-photo {
  width: 88px;
  height: 88px;
  max-width: none;
  object-fit: cover;
  object-position: center top;
  display: block;
}
.woocommerce .fla-cert-card--dl .fla-cert-photo,
.woocommerce-page .fla-cert-card--dl .fla-cert-photo {
  width: 128px;
  height: 160px;
}
.woocommerce .fla-cert-tile-photo img,
.woocommerce-page .fla-cert-tile-photo img,
.woocommerce .fla-cert-tile-photo-ph,
.woocommerce-page .fla-cert-tile-photo-ph {
  width: 56px;
  height: 70px;
  max-width: none;
  object-fit: cover;
  display: block;
}
.woocommerce .fla-join-photo,
.woocommerce-page .fla-join-photo,
.woocommerce .fla-join-trainer-photo,
.woocommerce-page .fla-join-trainer-photo {
  width: 72px;
  height: 72px;
  max-width: none;
  object-fit: cover;
  display: block;
}
/* end BugHerd #24 photo crop (1.6.128) */


/* BugHerd #28 redesign - featured Why row + New badge (1.6.131)
   Soft highlight + strong left accent. STG tour block preserved above (append-only).
*/
body.home .fla-new-feature {
  display: inline-block;
  margin-left: 0.45em;
  padding: 0.18em 0.55em;
  font-size: 0.62em;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  vertical-align: middle;
  line-height: 1.25;
  white-space: nowrap;
  color: #fff;
  background: #EC572C;
  border: 1px solid #EC572C;
  border-radius: 999px;
  box-shadow: 0 0 0 2px rgba(20, 92, 148, 0.18);
}
body.home .fla-why-live-item--featured {
  background: rgba(20, 92, 148, 0.08);
  border-left: 4px solid #145C94;
  box-shadow:
    0 0 0 1px rgba(20, 92, 148, 0.12),
    0px 19px 8px rgba(137, 178, 209, 0.01),
    0px 11px 6px rgba(137, 178, 209, 0.05),
    0px 5px 5px rgba(137, 178, 209, 0.09),
    0px 1px 3px rgba(137, 178, 209, 0.1);
}
body.home .fla-why-live-item--featured .fla-why-live-item-title {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35em 0.45em;
}

/* BugHerd #29 (redirect) - keep the home cards fluid after card cleanup */
body.home .fla-cards {
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)) !important;
}

/* BugHerd #30 - experience footnote on $59.95 photo band */
body.home .fla-band--photo .fla-band-footnote {
  margin: 10px 0 16px;
  max-width: 640px;
  color: rgba(255, 255, 255, 0.82);
  font-size: 13px;
  line-height: 1.45;
  font-weight: 500;
}

/* BugHerd #32 - price/training update note in hero (no dollar amount; #31 holds $) */
body.home .fla-announce {
  margin: 14px 0 18px;
  padding: 14px 16px;
  max-width: 36rem;
  background: rgba(255, 255, 255, 0.12);
  border-left: 4px solid #EC572C;
  border-radius: 8px;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.08);
}
body.home .fla-announce-kicker {
  margin: 0 0 4px;
  color: #EC572C;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
body.home .fla-announce-title {
  margin: 0 0 8px;
  color: #fff;
  font-size: clamp(16px, 1.6vw, 20px);
  font-weight: 800;
  line-height: 1.25;
}
body.home .fla-announce-body {
  margin: 0;
  color: rgba(255, 255, 255, 0.92);
  font-size: 14px;
  line-height: 1.5;
}

/* BugHerd #36 - experience note on cert product pages (Woo short/description presentation; soft-match #30 footnote tone) */
.single-product .woocommerce-product-details__short-description {
  /* keep visible; do not hide when Elementor/theme chrome is present */
  display: block;
}
.single-product .fla-experience-note,
.woocommerce div.product .fla-experience-note {
  margin: 10px 0 4px;
  max-width: 40rem;
  color: rgba(8, 12, 51, 0.72);
  font-size: 13px;
  line-height: 1.45;
  font-weight: 500;
}

/* Printed operator card (425) — variations row: label + select baseline alignment */
.single-product.postid-425 form.variations_form .variations {
  width: 100%;
  max-width: 28rem;
}
.single-product.postid-425 form.variations_form .variations tr {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
}
.single-product.postid-425 form.variations_form .variations td.label,
.single-product.postid-425 form.variations_form .variations th.label {
  vertical-align: middle;
  padding: 0;
  margin: 0;
  display: flex;
  align-items: center;
  width: auto;
  min-width: 7.5rem;
}
.single-product.postid-425 form.variations_form .variations td.label label,
.single-product.postid-425 form.variations_form .variations th.label label {
  margin: 0;
  line-height: 1.25;
  font-weight: 600;
  color: var(--fla-navy, #080C33);
}
.single-product.postid-425 form.variations_form .variations td.value {
  vertical-align: middle;
  padding: 0;
  flex: 1 1 12rem;
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.single-product.postid-425 form.variations_form .variations select {
  max-width: 100%;
  width: 100%;
  min-height: 44px;
  margin: 0;
  box-sizing: border-box;
}

/* Printed operator card (425) — always-on cert-required disclaimer (near variations) */
.single-product.postid-425 .fla-print-card-disclaimer {
  margin: 12px 0 10px;
  max-width: 40rem;
  padding: 10px 12px;
  border-left: 3px solid var(--fla-blue, #165D95);
  background: rgba(22, 93, 149, 0.06);
  color: var(--fla-navy, #080C33);
  font-size: 14px;
  line-height: 1.45;
  font-weight: 500;
}
.single-product.postid-425 .fla-print-card-locked,
.single-product.postid-425 .fla-print-card-eligible {
  margin: 0 0 12px;
  max-width: 40rem;
  font-size: 14px;
  line-height: 1.45;
}


/* Heading caps POC for Printed Operator Card (product 425, 1.6.147)
   Keep Title Case in source; mirror home section-head treatment visually. */
.single-product.postid-425 .summary > .product_title.entry-title,
.single-product.postid-425 .woocommerce-tabs .wc-tab > h2,
.single-product.postid-425 .related.products > h2,
.single-product.postid-425 .woocommerce-tabs > .tabs > li > a {
  text-transform: uppercase;
}

/* BugHerd #38 — empty cart text only. Keep the heading; remove WooBlocks' icon pseudo-element entirely. */
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title.with-empty-cart-icon::before {
  content: none !important;
  display: none !important;
  width: 0 !important;
  max-width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
  background-image: none !important;
  -webkit-mask: none !important;
  mask: none !important;
}


/* BugHerd #43: /changes/ BugHerd-primary desk */
.fla-changes-primary {
  margin: 0 0 28px;
  padding: 20px 22px 18px;
  border: 1px solid rgba(20, 92, 148, 0.22);
  border-left: 5px solid #145C94;
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(20, 92, 148, 0.06) 0%, #f7fafc 100%);
}
.fla-changes-badge {
  display: inline-block;
  margin: 0 0 8px;
  padding: 3px 10px;
  border-radius: 999px;
  background: #145C94;
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.fla-changes-primary h2,
.fla-changes-secondary h2 {
  margin: 0 0 10px;
  font-size: 1.35rem;
}
.fla-changes-steps {
  margin: 12px 0 14px 1.2em;
  padding: 0;
}
.fla-changes-steps li { margin: 0 0 8px; }
.fla-changes-secondary {
  margin: 0 0 24px;
  padding: 18px 20px 8px;
  border: 1px dashed rgba(8, 12, 51, 0.18);
  border-radius: 12px;
  background: #fff;
}
.fla-changes-secondary h2 { color: #4a5568; }

/* BugHerd #43: staff Site Support ticket form on /changes/ */
.fla-changes-ticket-form {
  margin: 12px 0 8px;
  max-width: 40rem;
}
.fla-changes-ticket-form label { color: var(--fla-navy, #080C33); }
.fla-changes-ticket-form select,
.fla-changes-ticket-form input[type="text"],
.fla-changes-ticket-form textarea {
  width: 100%;
  max-width: 40rem;
  margin-top: 4px;
  padding: 8px 10px;
  border: 1px solid rgba(8, 12, 51, 0.18);
  border-radius: 8px;
  background: #fff;
}
.fla-notice.ok {
  margin: 0 0 14px;
  padding: 12px 14px;
  border-radius: 8px;
  border-left: 4px solid #146c2e;
  background: #e8f7ee;
  color: #146c2e;
}

/* /whats-new/ TFLA landing (1.6.215) */
.fla-whats-new { color: var(--fla-navy, #080C33); }
.fla-wn-hero {
  background: linear-gradient(180deg, rgba(20, 92, 148, 0.08) 0%, #fff 100%);
  padding: 48px 0 36px;
  border-bottom: 1px solid rgba(8, 12, 51, 0.08);
}

/* /whats-new/ hero forklift stock (1.6.219) */
.fla-wn-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: 28px 40px;
  align-items: center;
}
.fla-wn-hero-copy .fla-wn-lede { max-width: 36rem; }
.fla-wn-hero-media {
  margin: 0;
  border-radius: 16px;
  overflow: hidden;
  background: #e8eef5;
  box-shadow: 0 12px 28px rgba(8, 12, 51, 0.10);
  aspect-ratio: 16 / 10;
  max-height: 360px;
}
.fla-wn-hero-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
@media (max-width: 860px) {
  .fla-wn-hero-grid { grid-template-columns: 1fr; }
  .fla-wn-hero-media {
    max-height: 280px;
    aspect-ratio: 16 / 10;
    order: -1;
  }
}
.fla-wn-kicker {
  margin: 0 0 10px;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #145C94;
}
.fla-wn-hero h1 {
  margin: 0 0 14px;
  font-size: clamp(1.75rem, 3vw, 2.35rem);
  line-height: 1.2;
}
.fla-wn-lede {
  margin: 0 0 22px;
  max-width: 40rem;
  font-size: 1.1rem;
  line-height: 1.5;
  color: #4a5568;
}
.fla-wn-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 12px;
  margin: 0;
}
.fla-wn-section { padding: 36px 0; }
.fla-wn-section h2 {
  margin: 0 0 16px;
  font-size: 1.45rem;
}
.fla-wn-list, .fla-wn-steps {
  margin: 0;
  padding-left: 1.25rem;
  max-width: 44rem;
}
.fla-wn-list li, .fla-wn-steps li {
  margin: 0 0 10px;
  line-height: 1.45;
}
.fla-wn-benefits { background: #f7fafc; border-top: 1px solid rgba(8,12,51,.06); border-bottom: 1px solid rgba(8,12,51,.06); }
.fla-wn-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px;
}
.fla-wn-card {
  background: #fff;
  border: 1px solid rgba(20, 92, 148, 0.16);
  border-radius: 12px;
  padding: 18px 18px 16px;
  box-shadow: 0 6px 16px rgba(8, 12, 51, 0.04);
}
.fla-wn-card h3 {
  margin: 0 0 8px;
  font-size: 1.05rem;
  color: #145C94;
}
.fla-wn-card p { margin: 0; color: #4a5568; line-height: 1.45; font-size: 0.98rem; }
.fla-wn-fine { margin: 18px 0 0; color: #4a5568; font-size: 0.95rem; }
.fla-wn-lede--tight { margin-bottom: 20px; }
.fla-wn-samples-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  align-items: stretch;
  grid-auto-rows: 1fr;
}
.fla-wn-sample {
  display: flex;
  flex-direction: column;
  height: 100%;
  margin: 0;
  background: #fff;
  border: 1px solid rgba(20, 92, 148, 0.16);
  border-radius: 12px;
  padding: 14px;
  box-shadow: 0 6px 16px rgba(8, 12, 51, 0.04);
}
.fla-wn-sample-media {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 260px;
  background: #f3f6f9;
  border-radius: 8px;
  padding: 16px;
}
.fla-wn-sample img {
  display: block;
  width: 100%;
  height: 240px;
  object-fit: contain;
  object-position: center;
  border-radius: 6px;
  background: #fff;
  box-shadow: 0 4px 14px rgba(8, 12, 51, 0.08);
}
.fla-wn-sample figcaption {
  margin: 12px 0 0;
  font-size: 0.92rem;
  color: #4a5568;
  text-align: center;
  line-height: 1.35;
}
@media (max-width: 900px) {
  .fla-wn-samples-grid { grid-template-columns: 1fr; }
  .fla-wn-sample-media { min-height: 200px; }
}





/* ==========================================================================
   BugHerd #44 — /help/ student handouts grid + card alignment (1.6.180)
   Elementor HTML (.fla-student-handouts*) had no theme CSS; MU plugin CSS only
   enqueues on My Account / shortcode pages. Soft-match programs cards.
   Brand: #145C94 / #EC572C / header #003C6E. No Elementor style tags.
   STG shepherd tour rules preserved unchanged above this append.
   ========================================================================== */
.fla-student-handouts {
  margin: 2.5rem auto 1.5rem;
  max-width: var(--fla-max, 1220px);
  width: min(100% - 32px, var(--fla-max, 1220px));
  box-sizing: border-box;
}
.fla-student-handouts > h2 {
  margin: 0 0 0.5rem;
  color: #003C6E;
}
.fla-student-handouts .lead {
  max-width: 46rem;
  margin: 0 0 1.25rem;
  color: #3A4A5A;
  line-height: 1.5;
}
.fla-student-handouts-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
  margin-top: 0.25rem;
  align-items: stretch;
  width: 100%;
  box-sizing: border-box;
}
.fla-student-handout-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  box-sizing: border-box;
  border: 1px solid #D6DEE6;
  border-top: 4px solid #145C94;
  border-radius: 12px;
  padding: 1.25rem 1.35rem 1.2rem;
  background: #fff;
  box-shadow: 0 6px 16px rgba(8, 12, 51, 0.04);
}
.fla-student-handout-card:nth-child(2n) {
  border-top-color: #EC572C;
}
.fla-student-handout-card h3 {
  margin: 0 0 0.45rem;
  color: #003C6E;
  font-size: 1.05rem;
  line-height: 1.35;
}
.fla-student-handout-card > p:not(.fla-student-handout-actions) {
  margin: 0 0 1rem;
  color: #0A1D2A;
  line-height: 1.5;
  flex: 1 1 auto;
}
.fla-student-handout-actions {
  margin: 0 !important;
  margin-top: auto !important;
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem;
}
.fla-student-handout-actions .fla-btn,
.fla-student-handout-actions a.fla-btn {
  margin: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1.2;
}

/* ==========================================================================
   BugHerd #45 — /shop/ product card + sale badge formatting (1.6.180)
   Sale badge was clipped (overflow:hidden + negative Woo margins). Soft-match
   brand blues/orange; equalize CTA row via flex margin-top:auto.
   ========================================================================== */
body.hello-elementor-fla.woocommerce ul.products li.product .onsale,
body.hello-elementor-fla ul.products li.product span.onsale,
body.hello-elementor-fla ul.products li.product .onsale,
.woocommerce ul.products li.product .onsale {
  position: absolute !important;
  top: 12px !important;
  right: 12px !important;
  left: auto !important;
  margin: 0 !important;
  z-index: 3;
  display: flex !important;
  align-items: center;
  justify-content: center;
  box-sizing: border-box !important;
  width: 52px !important;
  height: 52px !important;
  min-width: 52px !important;
  min-height: 52px !important;
  padding: 0 4px !important;
  border-radius: 50% !important;
  background: #145C94 !important;
  color: #fff !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  letter-spacing: 0.03em;
  line-height: 1.15 !important;
  text-align: center;
  text-transform: uppercase;
  white-space: normal;
  overflow: hidden;
}
body.hello-elementor-fla ul.products li.product .price {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.25rem 0.55rem;
  min-height: 1.75em;
}
body.hello-elementor-fla ul.products li.product .price del {
  opacity: 0.7;
  font-size: 0.88em;
  font-weight: 600;
  color: #6a7a8a !important;
}
body.hello-elementor-fla ul.products li.product .price ins {
  text-decoration: none;
  background: transparent;
  color: #EC572C !important;
  font-weight: 800;
}
body.hello-elementor-fla ul.products li.product .price .screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  -webkit-clip-path: inset(50%);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  word-wrap: normal !important;
}
body.hello-elementor-fla ul.products li.product .button,
body.hello-elementor-fla ul.products li.product a.button {
  margin-top: auto !important;
}

@media (max-width: 640px) {
  .fla-student-handouts-grid {
    grid-template-columns: 1fr;
  }
}

/* BugHerd #82: trainer live-class session shells — newest FLA logo (fla-logo-source.png) */
body.hello-elementor-fla .tutor-progress-card-thumbnail:has(img[src*="placeholder"]),
body.hello-elementor-fla .tutor-my-courses-card-thumb:has(img[src*="placeholder"]),
body.hello-elementor-fla .tutor-course-thumbnail:has(img[src*="placeholder"]),
body.hello-elementor-fla .tutor-progress-card-thumbnail:has(img[src*="logo-no-tag-line"]),
body.hello-elementor-fla .tutor-my-courses-card-thumb:has(img[src*="logo-no-tag-line"]) {
  background-color: #ffffff;
  background-image: url("assets/fla-logo-source.png");
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
}
body.hello-elementor-fla .tutor-progress-card-thumbnail:has(img[src*="placeholder"]) img,
body.hello-elementor-fla .tutor-my-courses-card-thumb:has(img[src*="placeholder"]) img,
body.hello-elementor-fla .tutor-course-thumbnail:has(img[src*="placeholder"]) img,
body.hello-elementor-fla .tutor-progress-card-thumbnail:has(img[src*="logo-no-tag-line"]) img,
body.hello-elementor-fla .tutor-my-courses-card-thumb:has(img[src*="logo-no-tag-line"]) img {
  opacity: 0;
}
/* Newest logo on course cards: contain + pad so the mark is not cropped */
body.hello-elementor-fla .tutor-progress-card-thumbnail img[src*="fla-logo-source"],
body.hello-elementor-fla .tutor-my-courses-card-thumb img[src*="fla-logo-source"],
body.hello-elementor-fla .tutor-course-thumbnail img[src*="fla-logo-source"] {
  object-fit: contain !important;
  object-position: center;
  background-color: #ffffff;
  padding: 12%;
  box-sizing: border-box;
}

/* BugHerd #85: My Dashboard control in Tutor dashboard sidebar nav */
body.hello-elementor-fla.tutor-screen-frontend-dashboard .tutor-dashboard-sidebar-nav .tutor-dashboard-menu-fla-my-dashboard > a,
body.hello-elementor-fla.tutor-screen-frontend-dashboard .tutor-dashboard-sidebar-nav .tutor-dashboard-menu-fla-my-dashboard > a span {
  font-weight: 600;
  color: var(--fla-blue, #165D95);
}
body.hello-elementor-fla.tutor-screen-frontend-dashboard .tutor-dashboard-sidebar-nav .tutor-dashboard-menu-fla-my-dashboard > a:hover,
body.hello-elementor-fla.tutor-screen-frontend-dashboard .tutor-dashboard-sidebar-nav .tutor-dashboard-menu-fla-my-dashboard > a:focus-visible,
body.hello-elementor-fla.tutor-screen-frontend-dashboard .tutor-dashboard-sidebar-nav .tutor-dashboard-menu-fla-my-dashboard > a:hover span,
body.hello-elementor-fla.tutor-screen-frontend-dashboard .tutor-dashboard-sidebar-nav .tutor-dashboard-menu-fla-my-dashboard > a:focus-visible span {
  color: var(--fla-orange, #EC572C);
}
body.hello-elementor-fla.tutor-screen-frontend-dashboard .tutor-dashboard-sidebar-nav .tutor-dashboard-menu-fla-my-dashboard > a svg path {
  stroke: currentColor;
}

/* BugHerd #85 HOLD: courses page chrome bar (above Enrolled / Wishlist tabs) */
body.hello-elementor-fla.tutor-screen-frontend-dashboard .fla-tutor-mydash-bar {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  margin: 0 0 16px;
}
body.hello-elementor-fla.tutor-screen-frontend-dashboard .fla-tutor-mydash-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border-radius: 10px;
  background: var(--fla-blue, #165D95);
  color: #fff !important;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}
body.hello-elementor-fla.tutor-screen-frontend-dashboard .fla-tutor-mydash-btn:hover,
body.hello-elementor-fla.tutor-screen-frontend-dashboard .fla-tutor-mydash-btn:focus-visible {
  background: var(--fla-orange, #EC572C);
  color: #fff !important;
}

/* Help Center (page 921): topic cards expand in place via details/summary (no JS) */
.fla-help-page .fla-help-grid {
	align-items: stretch;
}
.fla-help-page details.fla-help-card {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: stretch;
	min-height: 100%;
	cursor: default;
}
.fla-help-page details.fla-help-card > summary.fla-help-card__summary {
	display: flex;
	flex: 0 0 auto;
	align-items: flex-start;
	box-sizing: border-box;
	list-style: none;
	cursor: pointer;
	position: relative;
	padding-right: 28px;
}
.fla-help-page details.fla-help-card > summary.fla-help-card__summary .fla-help-card__summary-inner {
	flex: 1 1 auto;
	min-width: 0;
}
.fla-help-page details.fla-help-card > summary.fla-help-card__summary::-webkit-details-marker {
	display: none;
}
.fla-help-page details.fla-help-card > summary.fla-help-card__summary::marker {
	content: "";
}
.fla-help-page details.fla-help-card > summary.fla-help-card__summary::after {
	content: "+";
	position: absolute;
	top: 0;
	right: 0;
	color: #EC572C;
	font-weight: 800;
	font-size: 22px;
	line-height: 1;
	transition: transform .15s ease;
}
.fla-help-page details.fla-help-card[open] > summary.fla-help-card__summary::after {
	content: "+";
	transform: rotate(45deg);
}
.fla-help-page details.fla-help-card .fla-help-card__summary-inner h3 {
	margin: 0 0 10px;
}
.fla-help-page details.fla-help-card .fla-help-card__summary-inner p {
	margin: 0;
}
.fla-help-page details.fla-help-card .fla-help-card__body {
	flex: 0 0 auto;
	margin-top: 0;
	padding-top: 14px;
	border-top: 1px solid #e4eaf0;
}
.fla-help-page details.fla-help-card .fla-help-card__body ol {
	margin: 0 0 12px;
	padding-left: 1.25rem;
	color: #3a4654;
	font-size: 15px;
	line-height: 1.55;
}
.fla-help-page details.fla-help-card .fla-help-card__body li {
	margin: 0 0 8px;
}
.fla-help-page details.fla-help-card .fla-help-card__body p {
	margin: 0 0 10px;
}

/* 1.6.234: HTT franchise cards expose a location CTA, never Woo pricing. */
.fla-htt-products .woocommerce ul.products li.product .price {
  display: none !important;
}
.fla-htt-products .woocommerce ul.products li.product .fla-htt-location-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: center;
  margin: auto 0 0 !important;
  text-decoration: none;
}

/* 1.6.235: Christian correction — only 4 franchise cards hide price / use View location.
   FLA-owned HTT cards restore normal Woo price + ATC. Help + STG markers preserved. */
.fla-htt-products .woocommerce ul.products li.product .price {
  display: block !important;
}
.fla-htt-products .woocommerce ul.products li.product.fla-htt-franchise-card .price {
  display: none !important;
}
.fla-htt-products .woocommerce ul.products li.product.fla-htt-franchise-card .fla-htt-location-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: center;
  margin: auto 0 0 !important;
  text-decoration: none;
}


/* 1.6.236: HTT restore FLA-owned ATC buttons + location label = button text size (18px).
   Root cause: assets/css/fla-page-htt.css still hid ALL .add_to_cart_button /
   a.button.product_type_simple / .ajax_add_to_cart from the earlier franchise-all pass;
   1.6.235 only restored price visibility in style.css and left that page CSS hide in place.
   Defense-in-depth here + scoped hide in fla-page-htt.css. Help + STG preserved. */
.fla-htt-products .woocommerce ul.products li.product:not(.fla-htt-franchise-card) .add_to_cart_button,
.fla-htt-products .woocommerce ul.products li.product:not(.fla-htt-franchise-card) a.button.product_type_simple,
.fla-htt-products .woocommerce ul.products li.product:not(.fla-htt-franchise-card) .ajax_add_to_cart {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  align-self: center;
  margin: auto 0 0 !important;
  text-decoration: none;
}
.fla-htt-products .woocommerce ul.products li.product.fla-htt-franchise-card .add_to_cart_button,
.fla-htt-products .woocommerce ul.products li.product.fla-htt-franchise-card a.button.product_type_simple,
.fla-htt-products .woocommerce ul.products li.product.fla-htt-franchise-card .ajax_add_to_cart {
  display: none !important;
}
.fla-htt-products .woocommerce ul.products li.product .fla-htt-product-location {
  font-size: 18px;
}


/* -------------------------------------------------------------------------- */
/* Walk-in cash desk (/class/present/) — theme 1.6.255                        */
/* -------------------------------------------------------------------------- */
.fla-walkin-desk {
  margin: 28px 0 8px;
  padding: 22px 22px 18px;
  border-radius: 14px;
  background: linear-gradient(180deg, #0c1448 0%, #080C33 100%);
  color: #fff;
  box-shadow: 0 12px 28px rgba(8, 12, 51, 0.22);
}
.fla-walkin-desk.is-active-class {
  margin: 18px auto 28px;
  max-width: 980px;
}
.fla-walkin-active-wrap { padding: 0 16px 24px; }
.fla-walkin-head {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
}
.fla-walkin-desk .fla-demo-kicker,
.fla-walkin-desk .fla-eyebrow {
  margin: 0 0 6px;
  color: #EC572C;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 12px;
}
.fla-walkin-title {
  margin: 0 0 8px;
  font-size: 24px;
  color: #fff;
}
.fla-walkin-lead {
  margin: 0;
  max-width: 60ch;
  color: rgba(255,255,255,0.84);
  font-size: 14px;
  line-height: 1.45;
}
.fla-walkin-desk .fla-btn,
.fla-walkin-desk button.fla-btn {
  background: #EC572C;
  border-color: #EC572C;
  color: #fff;
}
.fla-walkin-desk .fla-btn:hover,
.fla-walkin-desk button.fla-btn:hover {
  background: #DA4920;
  border-color: #DA4920;
}
.fla-walkin-form-wrap {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,0.14);
}
.fla-walkin-form label { color: #fff; font-size: 13px; font-weight: 700; }
.fla-walkin-form input[type="text"],
.fla-walkin-form input[type="email"],
.fla-walkin-form input[type="tel"],
.fla-walkin-form input[type="file"],
.fla-walkin-form select {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  margin-top: 6px;
  border-radius: 8px;
  border: 1px solid #cfd8e6;
  padding: 10px 12px;
  font-size: 14px;
  color: #080C33;
  background: #fff;
}
.fla-walkin-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 20px;
  align-items: start;
}
.fla-walkin-grid > p {
  margin: 0;
  min-width: 0;
}
.fla-walkin-span2 { grid-column: 1 / -1; }
@media (max-width: 720px) {
  .fla-walkin-grid { grid-template-columns: 1fr; }
  .fla-walkin-span2 { grid-column: auto; }
}
.fla-walkin-mode {
  border: 0;
  margin: 0 0 14px;
  padding: 0;
  display: flex;
  gap: 18px;
  flex-wrap: wrap;
}
.fla-walkin-mode legend {
  font-weight: 800;
  margin-bottom: 8px;
  color: #fff;
}
.fla-walkin-radio { font-weight: 600; color: rgba(255,255,255,0.92); }
.fla-walkin-confirm { margin: 14px 0; }
.fla-walkin-confirm label { font-weight: 600; }
.fla-walkin-actions { margin: 8px 0 0; }
.fla-walkin-desk .fla-notice {
  margin: 0 0 14px;
  padding: 12px 14px;
  border-radius: 10px;
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.2);
  color: #fff;
}
.fla-walkin-desk .fla-notice.err {
  background: rgba(236, 87, 44, 0.18);
  border-color: rgba(236, 87, 44, 0.55);
}
.fla-walkin-muted { color: rgba(255,255,255,0.7); font-size: 12px; }
.fla-walkin-lookup-row {
  display: flex;
  gap: 12px;
  align-items: flex-end;
  flex-wrap: wrap;
}
.fla-walkin-lookup-row > p { margin: 0; flex: 1 1 220px; min-width: 0; }
.fla-walkin-lookup-btn-wrap { flex: 0 0 auto; }
.fla-walkin-lookup-status {
  margin: 10px 0 0;
  font-size: 13px;
  font-weight: 600;
  color: rgba(255,255,255,0.88);
}
.fla-walkin-lookup-status.is-looking { color: #cfe6ff; }
.fla-walkin-lookup-status.is-found { color: #9ad7a5; }
.fla-walkin-lookup-status.is-miss { color: #ffd59a; }
.fla-walkin-confirm-card {
  margin: 12px 0 4px;
  padding: 12px 14px;
  border-radius: 10px;
  background: rgba(255,255,255,0.1);
  border: 1px solid rgba(255,255,255,0.22);
}
.fla-walkin-found-line { margin: 0 0 8px; color: #fff; font-size: 14px; }
.fla-walkin-desk button.fla-btn:disabled,
.fla-walkin-desk .fla-btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}
/* 1.6.257: [hidden] must beat display:grid/flex on walk-in panels */
.fla-walkin-desk [hidden],
.fla-walkin-new-fields[hidden],
.fla-walkin-existing-fields[hidden],
.fla-walkin-order-fields[hidden],
.fla-walkin-confirm-card[hidden],
.fla-walkin-missing-grid[hidden] {
  display: none !important;
}
.fla-walkin-missing-grid {
  margin-top: 10px;
}

.fla-walkin-quiz-form {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  margin-top: 8px;
}
.fla-walkin-quiz-label {
  font-size: 11px;
  font-weight: 700;
  color: var(--fla-navy, #080C33);
}
.fla-walkin-quiz-input {
  width: 64px;
  padding: 4px 6px;
  border-radius: 6px;
  border: 1px solid #cfd8e6;
  font-size: 12px;
}
.fla-class-shell .fla-walkin-quiz-label { color: #cfe6ff; }
.fla-class-shell .fla-walkin-quiz-done {
  display: block;
  margin-top: 6px;
  font-size: 11px;
  color: #9ad7a5;
}
.fla-present .fla-walkin-desk { margin-top: 22px; }

/* Paper / no-device written exam (1.6.253) */
.fla-walkin-exam-prints {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.fla-walkin-quiz-paper {
  margin-top: 8px;
  padding: 8px 10px;
  border-radius: 8px;
  border: 1px dashed rgba(20, 92, 148, 0.35);
  background: rgba(20, 92, 148, 0.04);
}
.fla-class-shell .fla-walkin-quiz-paper {
  border-color: rgba(207, 230, 255, 0.35);
  background: rgba(0, 0, 0, 0.18);
}
.fla-walkin-quiz-tag {
  display: block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #145c94;
  margin-bottom: 4px;
}
.fla-class-shell .fla-walkin-quiz-tag { color: #9fd0ff; }
.fla-walkin-quiz-print {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  margin: 0 0 6px;
  color: #145c94;
  text-decoration: underline;
}
.fla-class-shell .fla-walkin-quiz-print { color: #cfe6ff; }
.fla-present-attendance .fla-walkin-exam-prints { width: 100%; }
.fla-present-paper-exams {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin: 12px 0 0;
}

/* Paper score attestation (walk-in 1.0.6 / theme 1.6.262) */
.fla-walkin-quiz-attest {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  width: 100%;
  margin: 6px 0 4px;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.35;
  color: var(--fla-navy, #080C33);
  cursor: pointer;
}
.fla-walkin-quiz-attest input {
  margin-top: 2px;
  flex: 0 0 auto;
}
.fla-class-shell .fla-walkin-quiz-attest { color: #cfe6ff; }
.fla-walkin-quiz-attest-meta {
  display: block;
  margin-top: 4px;
  font-size: 10px;
  color: #6b7c93;
}
.fla-class-shell .fla-walkin-quiz-attest-meta { color: #9fb4cc; }


/* Present desk Documents print stack (1.6.259) */
.fla-present-docs {
  margin: 22px 0 8px;
  padding: 18px 20px;
  background: #fff;
  border-left: 4px solid #EC572C;
  border-radius: 10px;
  box-shadow: 0 8px 20px rgba(8, 12, 51, 0.08);
}
.fla-present-docs__title {
  margin: 0 0 12px;
  font-size: 20px;
  font-weight: 700;
  color: #003C6E;
  line-height: 1.25;
}
.fla-present-docs__stack,
.fla-present-docs .fla-present-paper-exams {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin: 0;
}
.fla-present-docs .fla-walkin-exam-prints {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}
.fla-present-docs .fla-btn,
.fla-present-docs .fla-btn.ghost,
.fla-present-docs .fla-present-docs__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 42px;
  padding: 10px 18px;
  border-radius: 6px;
  border: 0;
  background: #0B1F33;
  color: #fff !important;
  font-family: Outfit, "Segoe UI", sans-serif;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none !important;
  white-space: nowrap;
  line-height: 1.2;
  box-sizing: border-box;
  margin: 0;
  cursor: pointer;
}
.fla-present-docs .fla-btn:hover,
.fla-present-docs .fla-btn.ghost:hover,
.fla-present-docs .fla-present-docs__btn:hover {
  background: #061525;
  color: #fff !important;
}
@media (max-width: 600px) {
  .fla-present-docs .fla-btn,
  .fla-present-docs .fla-btn.ghost,
  .fla-present-docs .fla-present-docs__btn {
    flex: 1 1 auto;
    white-space: normal;
    text-align: center;
  }
}

/* Present desk Hands-on class schedule section (1.6.260) */
.fla-present-schedule {
  margin: 22px 0 8px;
  padding: 18px 20px;
  background: #fff;
  border-left: 4px solid #EC572C;
  border-radius: 10px;
  box-shadow: 0 8px 20px rgba(8, 12, 51, 0.08);
}
.fla-present-schedule__title {
  margin: 0 0 12px;
  font-size: 20px;
  font-weight: 700;
  color: #EC572C;
  line-height: 1.25;
}
.fla-present-schedule__stack {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin: 0;
}
.fla-present-schedule .fla-btn,
.fla-present-schedule .fla-btn.ghost,
.fla-present-schedule .fla-present-schedule__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 42px;
  padding: 10px 18px;
  border-radius: 6px;
  border: 0;
  background: #0B1F33;
  color: #fff !important;
  font-family: Outfit, "Segoe UI", sans-serif;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none !important;
  white-space: nowrap;
  line-height: 1.2;
  box-sizing: border-box;
  margin: 0;
  cursor: pointer;
}
.fla-present-schedule .fla-btn:hover,
.fla-present-schedule .fla-btn.ghost:hover,
.fla-present-schedule .fla-present-schedule__btn:hover {
  background: #061525;
  color: #fff !important;
}
@media (max-width: 600px) {
  .fla-present-schedule .fla-btn,
  .fla-present-schedule .fla-btn.ghost,
  .fla-present-schedule .fla-present-schedule__btn {
    flex: 1 1 auto;
    white-space: normal;
    text-align: center;
  }
}

/* Manage students desk (walk-in 1.0.8 / theme 1.6.264) — high contrast, private desk only */
.fla-manage-students {
  margin: 22px 0 8px;
  padding: 18px 20px;
  background: #fff;
  border-left: 4px solid #145C94;
  border-radius: 10px;
  box-shadow: 0 8px 20px rgba(8, 12, 51, 0.08);
}
.fla-manage-students__title {
  margin: 0 0 6px;
  font-size: 20px;
  font-weight: 700;
  color: #003C6E;
  line-height: 1.25;
}
.fla-manage-students__lead {
  margin: 0 0 14px;
  font-size: 14px;
  line-height: 1.45;
  color: #080C33;
}
.fla-manage-students__empty {
  margin: 8px 0 0;
  font-size: 14px;
  color: #080C33;
}
.fla-manage-students__picker {
  margin: 0 0 14px;
}
.fla-manage-students__picker label {
  display: block;
  font-size: 13px;
  font-weight: 700;
  color: #080C33;
}
.fla-manage-students__picker select {
  display: block;
  margin-top: 6px;
  min-width: min(100%, 420px);
  padding: 8px 10px;
  border: 1px solid #9aa8bd;
  border-radius: 8px;
  font-size: 14px;
  color: #080C33;
  background: #fff;
}
.fla-manage-students__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 10px;
}
.fla-manage-students__details {
  border: 1px solid #c5d0e0;
  border-radius: 10px;
  background: #f7f9fc;
  overflow: hidden;
}
.fla-manage-students__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  cursor: pointer;
  list-style: none;
  color: #080C33;
}
.fla-manage-students__summary::-webkit-details-marker { display: none; }
.fla-manage-students__who {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.fla-manage-students__photo,
.fla-manage-students__photo-fallback {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  object-fit: cover;
  flex: 0 0 auto;
  background: #145C94;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
}
.fla-manage-students__meta {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.fla-manage-students__meta strong {
  font-size: 15px;
  color: #080C33;
}
.fla-manage-students__status {
  font-size: 12px;
  font-weight: 600;
  color: #2a3a4d;
}
.fla-manage-students__manage-btn {
  flex: 0 0 auto;
  padding: 6px 12px;
  border-radius: 8px;
  border: 1px solid #145C94;
  background: #fff;
  color: #145C94;
  font-size: 13px;
  font-weight: 700;
}
.fla-manage-students__details[open] .fla-manage-students__manage-btn {
  background: #145C94;
  color: #fff;
}
.fla-manage-students__panel {
  padding: 0 14px 14px;
  border-top: 1px solid #d5deea;
  background: #fff;
}
.fla-manage-students .fla-walkin-quiz-paper {
  margin-top: 12px;
  padding: 12px 14px;
  border: 1px solid #9aa8bd;
  border-radius: 8px;
  background: #f0f4f9;
}
.fla-manage-students .fla-walkin-quiz-tag {
  color: #003C6E;
  font-size: 12px;
  letter-spacing: .03em;
}
.fla-manage-students .fla-walkin-quiz-label,
.fla-manage-students .fla-walkin-quiz-attest,
.fla-manage-students .fla-walkin-quiz-done,
.fla-manage-students .fla-walkin-quiz-attest-meta,
.fla-manage-students .fla-walkin-quiz-print {
  color: #080C33;
}
.fla-manage-students .fla-walkin-quiz-attest {
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
}
.fla-manage-students .fla-walkin-quiz-input {
  border: 1px solid #5b6775;
  color: #080C33;
  background: #fff;
  font-size: 14px;
  font-weight: 600;
  width: 72px;
  padding: 6px 8px;
}
.fla-manage-students .fla-walkin-quiz-form .fla-btn {
  color: #080C33;
  border-color: #145C94;
  background: #fff;
  font-weight: 700;
}
.fla-manage-students .fla-walkin-quiz-form .fla-btn:hover {
  background: #145C94;
  color: #fff;
}
.fla-manage-students__remove {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px dashed #c5d0e0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}
.fla-manage-students__remove-btn {
  background: #fff !important;
  color: #8a1f11 !important;
  border: 1px solid #8a1f11 !important;
  font-weight: 700;
}
.fla-manage-students__remove-btn:hover {
  background: #8a1f11 !important;
  color: #fff !important;
}
.fla-manage-students__remove-hint {
  font-size: 12px;
  font-weight: 600;
  color: #2a3a4d;
}

.fla-manage-students__hands {
  margin-top: 14px;
  padding: 12px 14px;
  border: 1px solid #9aa8bd;
  border-radius: 8px;
  background: #f0f4f9;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 12px;
  align-items: center;
}
.fla-manage-students__hands-tag {
  flex: 1 1 100%;
  color: #003C6E;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
}
.fla-manage-students__hands-lead {
  flex: 1 1 100%;
  margin: 0;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
  color: #080C33;
}
.fla-manage-students__hands-done {
  font-size: 14px;
  font-weight: 700;
  color: #0b5a2b;
}
.fla-manage-students__hands-hint {
  font-size: 12px;
  font-weight: 600;
  color: #2a3a4d;
}
.fla-manage-students__hands-btn {
  color: #fff !important;
  border-color: #145C94 !important;
  background: #145C94 !important;
  font-weight: 700;
}
.fla-manage-students__hands-btn:hover {
  background: #003C6E !important;
  border-color: #003C6E !important;
  color: #fff !important;
}
.fla-manage-students__hands-btn.is-disabled,
.fla-manage-students__hands-btn:disabled {
  background: #d5deea !important;
  border-color: #9aa8bd !important;
  color: #2a3a4d !important;
  cursor: not-allowed;
  opacity: 1;
}
.fla-manage-students__hands.is-done {
  background: #e8f6ee;
  border-color: #7fbf95;
}


/* 1.6.281 Official FLA Trainer strip on gold Trainer cards (parity with /verify/).
   Preserve STG .shepherd-element.fla-stg-step + Help .fla-help-page rules above. */
.fla-cert-card--ttt .fla-cert-ttt-strip,
.fla-cert-card--ttt-scissor .fla-cert-ttt-strip {
  border-top: 1px solid rgba(8, 12, 51, 0.2);
  border-bottom: 1px solid rgba(8, 12, 51, 0.12);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.28);
  letter-spacing: 0.14em;
}
.fla-cert-tile.fla-cert-card--ttt .fla-cert-tile-ttt-strip,
.fla-cert-tile.fla-cert-card--ttt-scissor .fla-cert-tile-ttt-strip {
  letter-spacing: 0.12em;
}

/* 1.6.282 Capacity UI hidden on Hands On Class Schedule / class seats surfaces
   (FLA_CLASS_CAPACITY_UI in fla-class-seats 1.0.12). template-classes.php copy
   no longer advertises Capacity / 12 seats. Re-enable via constant = true. */

/* 1.6.289 Wordfence LS 2FA challenge UI polish (assets/css/fla-wfls-2fa.css).
   Enqueued on login_enqueue_scripts + wp_enqueue_scripts — do not hack Wordfence core. */


/* 1.6.291 BugHerd #124: Fluent Support create-ticket form layout — see assets/css/fla-fs-portal.css (enqueued on /support/). */

/* ===== BugHerd #129: product preview thumbs not blown-out (1.6.304) =====
   Woo hard-crops woocommerce_thumbnail to 1:1. Landscape operator-card art
   (Badge_with_photo) was center-cropped into a washed square in related /
   upsells / shop loops. Prefer contain + soft pad so the full card reads.
   Append-only. Preserve .shepherd-element.fla-stg-step + Help equal-height.
*/
body.hello-elementor-fla.woocommerce ul.products li.product a img,
body.hello-elementor-fla.woocommerce ul.products li.product img.attachment-woocommerce_thumbnail,
body.hello-elementor-fla.woocommerce ul.products li.product img.size-woocommerce_thumbnail,
body.hello-elementor-fla .related.products ul.products li.product img,
body.hello-elementor-fla .upsells.products ul.products li.product img,
body.hello-elementor-fla.single-product .related.products img.attachment-woocommerce_thumbnail,
body.hello-elementor-fla.single-product .upsells.products img.attachment-woocommerce_thumbnail {
  object-fit: contain !important;
  object-position: center center;
  background-color: #f4f7fa;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  max-width: 100%;
}
/* end BugHerd #129 product preview thumbs (1.6.304) */

/* ===== BugHerd #129 revise: compact fixed preview slot (1.6.311) =====
   Prior 1.6.304 used height:auto + aspect-ratio 1/1 which expanded shop /
   related / upsell thumbs to a full-width square (preview too large).
   Keep object-fit:contain + soft pad inside the existing 180px card image
   slot (matches base ul.products li.product img height). Gallery uses
   max-height 300px contain (no forced 1:1) so landscape product art stays
   compact without tall empty pads.
   Append-only. Preserve .shepherd-element.fla-stg-step + Help equal-height.
*/
body.hello-elementor-fla.woocommerce ul.products li.product a img,
body.hello-elementor-fla.woocommerce ul.products li.product img.attachment-woocommerce_thumbnail,
body.hello-elementor-fla.woocommerce ul.products li.product img.size-woocommerce_thumbnail,
body.hello-elementor-fla .related.products ul.products li.product img,
body.hello-elementor-fla .upsells.products ul.products li.product img,
body.hello-elementor-fla.single-product .related.products img.attachment-woocommerce_thumbnail,
body.hello-elementor-fla.single-product .upsells.products img.attachment-woocommerce_thumbnail {
  object-fit: contain !important;
  object-position: center center;
  background-color: #f4f7fa;
  width: 100%;
  height: 180px !important;
  max-height: 180px;
  aspect-ratio: auto;
  max-width: 100%;
}

/* Single product gallery: compact max-height box, contain (no forced 1:1 —
   landscape product art stays landscape; square badge stays readable). */
body.hello-elementor-fla.single-product div.images,
body.hello-elementor-fla.single-product .woocommerce-product-gallery {
  max-width: 400px;
}
body.hello-elementor-fla.single-product .woocommerce-product-gallery .flex-viewport,
body.hello-elementor-fla.single-product .woocommerce-product-gallery__wrapper {
  max-height: 300px;
  background-color: #f4f7fa;
}
body.hello-elementor-fla.single-product .woocommerce-product-gallery__image,
body.hello-elementor-fla.single-product .woocommerce-product-gallery__image > a {
  display: block;
  max-height: 300px;
  background-color: #f4f7fa;
  overflow: hidden;
}
body.hello-elementor-fla.single-product .woocommerce-product-gallery__image > a > img,
body.hello-elementor-fla.single-product .woocommerce-product-gallery__image img.wp-post-image,
body.hello-elementor-fla.single-product .woocommerce-product-gallery img.attachment-woocommerce_single,
body.hello-elementor-fla.single-product .woocommerce-product-gallery img.size-woocommerce_single {
  width: 100% !important;
  height: auto !important;
  max-height: 300px;
  object-fit: contain !important;
  object-position: center center;
  background-color: #f4f7fa;
}
/* Do not let gallery contain rules shrink the zoom trigger emoji/icon */
body.hello-elementor-fla.single-product .woocommerce-product-gallery__trigger,
body.hello-elementor-fla.single-product .woocommerce-product-gallery__trigger img {
  width: auto !important;
  height: auto !important;
  max-height: none !important;
  object-fit: initial !important;
  background: transparent !important;
}
/* end BugHerd #129 revise compact preview (1.6.311) */

/* ==========================================================================
   BugHerd #136 — job-related heading green (1.6.316)
   Reuse existing Jobs Board MU green --fla-jobs-green #209030
   (mu-plugins/fla-jobs-board/fla-job-board.css). Do NOT redefine that var to a
   different hex. Soft hero bg/image stays with Job Board skin; this block only
   switches job-related headings from navy to Jobs green.
   Scope: body.fla-jobs-board / body.fla-jobs-ui / single-job_listing.
   Marketing pages untouched. Append-only. Preserve .shepherd-element.fla-stg-step
   + Help equal-height.
   ========================================================================== */

/* Hero + page titles: beat MU navy (body.fla-jobs-board .fla-page-hero h1) */
body.fla-jobs-board.fla-jobs-ui .fla-page-hero,
body.fla-jobs-board.fla-jobs-ui .fla-page-hero h1,
body.fla-jobs-board.fla-jobs-ui .fla-page-hero .fla-eyebrow,
body.fla-jobs-board .fla-page-hero h1,
body.fla-jobs-board .entry-title,
body.fla-jobs-board h1.entry-title,
body.fla-jobs-ui .fla-page-hero h1 {
  color: var(--fla-jobs-green, #209030);
}

/* Section + card + form headings on job UI */
body.fla-jobs-board.fla-jobs-ui .fla-content h1,
body.fla-jobs-board.fla-jobs-ui .fla-content h2,
body.fla-jobs-board.fla-jobs-ui .fla-content h3,
body.fla-jobs-board .fla-content h1,
body.fla-jobs-board .fla-content h2,
body.fla-jobs-board .fla-content h3,
body.fla-jobs-board .job-manager-form h1,
body.fla-jobs-board .job-manager-form h2,
body.fla-jobs-board .job-manager-form h3,
body.fla-jobs-board .job-manager-form legend,
body.fla-jobs-board ul.job_listings li.job_listing a div.position h3,
body.fla-jobs-board .rp4wp-related-job_listing > ul li.job_listing a div.position h3,
body.fla-jobs-board .jm-notice__title,
body.fla-jobs-board .job-alerts h2,
body.fla-jobs-board .job-alerts h3,
body.fla-jobs-board .job-dashboard h2,
body.fla-jobs-board .job-dashboard h3,
body.fla-jobs-board ul.resumes li.resume h3,
body.fla-jobs-board .resume-manager-form h1,
body.fla-jobs-board .resume-manager-form h2,
body.fla-jobs-board .resume-manager-form h3,
body.fla-jobs-board.single-job_listing .single_job_listing h1,
body.fla-jobs-board.single-job_listing .single_job_listing h2,
body.fla-jobs-board.single-job_listing .single_job_listing h3,
body.fla-jobs-board.single-job_listing .job_description h1,
body.fla-jobs-board.single-job_listing .job_description h2,
body.fla-jobs-board.single-job_listing .job_description h3,
body.fla-jobs-ui .fla-content h1,
body.fla-jobs-ui .fla-content h2,
body.fla-jobs-ui .fla-content h3,
body.fla-jobs-ui ul.job_listings li.job_listing a div.position h3 {
  color: var(--fla-jobs-green, #209030);
}
/* end BugHerd #136 job heading green (1.6.316) */

/* ==========================================================================
   BugHerd #158 residual — theme mobile header chrome fit ~320px (1.6.317)
   Jobs MU v0.6.23 already hides green Jobs CTA on body.fla-jobs-board at
   max-width 760px (leave that alone). Remaining squeeze is theme-wide:
   language flags + hamburger + profile in .fla-header.
   Approach: tighter padding/gaps, smaller chrome icons, modest logo shrink
   at xs so row fits without overlap/overflow. Soft-match compact mobile
   chrome; no Elementor HTML widgets; append-only.
   Preserve .shepherd-element.fla-stg-step + Help equal-height.
   Scope: theme header globally on mobile (cramp is theme-wide).
   ========================================================================== */
@media (max-width: 400px) {
  .fla-header-inner {
    grid-template-columns: max-content minmax(40px, 1fr) max-content;
    padding: 10px 10px;
    gap: 6px 6px;
  }
  .fla-header.has-overflow .fla-nav-cluster,
  .fla-header.is-compact .fla-nav-cluster {
    min-width: 40px;
  }
  .fla-logo img,
  .fla-logo .custom-logo {
    width: 118px;
    min-width: 0;
    max-height: 40px;
  }
  .fla-brand .fla-cta {
    padding: 5px 6px;
    font-size: 9px;
    letter-spacing: .02em;
  }
  .fla-header-actions {
    gap: 4px;
    min-width: 0;
  }
  .fla-header-actions .fla-lang {
    margin-right: 0;
  }
  .fla-header-actions .fla-lang .gtranslate_wrapper,
  .fla-header-actions .fla-lang [id^="gt-wrapper-"] {
    gap: 4px;
  }
  .fla-header-actions .fla-lang a {
    min-width: 36px;
    width: 36px;
    height: 36px;
    padding: 0;
    border-radius: 8px;
  }
  .fla-header-actions .fla-lang a img {
    width: 18px !important;
    height: 18px !important;
  }
  .fla-menu-toggle {
    width: 36px;
    height: 36px;
    border-radius: 8px;
  }
  .fla-profile {
    width: 36px;
    height: 36px;
    margin-left: 0;
    border-radius: 8px;
  }
  /* Keep hamburger bars readable inside 36px hit target */
  .fla-hamburger {
    width: 18px;
  }
  .fla-hamburger:before { top: -6px; }
  .fla-hamburger:after { top: 6px; }
}
/* end BugHerd #158 residual mobile header fit (1.6.317) */

/* ==========================================================================
   BugHerd #158 admin-bar — sticky header clearance + xs chrome (1.6.318)
   Acceptance: Christian mobile shot — profile clipped into #wpadminbar edge;
   logo/hamburger/flags/profile crowded at ~320px while logged-in admin.
   Existing body.admin-bar top:32/46 remains; reinforce with WP height var,
   fixed mobile admin bar (WP defaults to absolute ≤782px which fights sticky),
   and slightly tighter chrome under body.admin-bar at ≤400px only.
   Guest (no admin-bar) keeps 1.6.317 fit. www untouched.
   Preserve .shepherd-element.fla-stg-step + Help equal-height.
   ========================================================================== */
body.admin-bar .site-header.fla-header {
  top: var(--wp-admin--admin-bar--height, 32px);
}
@media screen and (max-width: 782px) {
  body.admin-bar .site-header.fla-header {
    top: var(--wp-admin--admin-bar--height, 46px);
  }
  /* Absolute mobile admin bar scrolls away; fixed keeps sticky top meaningful */
  body.admin-bar #wpadminbar {
    position: fixed !important;
  }
}

@media (max-width: 400px) {
  body.admin-bar .fla-header-inner {
    padding: 8px 8px;
    gap: 4px 4px;
  }
  body.admin-bar .fla-header.has-overflow .fla-nav-cluster,
  body.admin-bar .fla-header.is-compact .fla-nav-cluster {
    min-width: 36px;
  }
  body.admin-bar .fla-logo img,
  body.admin-bar .fla-logo .custom-logo {
    width: 108px;
    min-width: 0;
    max-height: 34px;
  }
  body.admin-bar .fla-brand .fla-cta {
    padding: 4px 5px;
    font-size: 9px;
  }
  body.admin-bar .fla-header-actions {
    gap: 3px;
  }
  body.admin-bar .fla-header-actions .fla-lang .gtranslate_wrapper,
  body.admin-bar .fla-header-actions .fla-lang [id^="gt-wrapper-"] {
    gap: 3px;
  }
  body.admin-bar .fla-header-actions .fla-lang a {
    min-width: 32px;
    width: 32px;
    height: 32px;
    border-radius: 7px;
  }
  body.admin-bar .fla-header-actions .fla-lang a img {
    width: 16px !important;
    height: 16px !important;
  }
  body.admin-bar .fla-menu-toggle {
    width: 32px;
    height: 32px;
    border-radius: 7px;
  }
  body.admin-bar .fla-profile {
    width: 32px;
    height: 32px;
    border-radius: 7px;
  }
  body.admin-bar .fla-hamburger {
    width: 16px;
  }
  body.admin-bar .fla-hamburger:before { top: -5px; }
  body.admin-bar .fla-hamburger:after { top: 5px; }
}
/* end BugHerd #158 admin-bar clearance (1.6.318) */


/* ==========================================================================
   Training Solutions category photos (1.6.332)
   Page 41063 /training-solutions/ only. Four employer paths get an existing
   media image beside the current heading, copy, and buttons.
   Append-only. Preserve .shepherd-element.fla-stg-step + Help equal-height.
   ========================================================================== */
body.page-id-41063 .fla-ts-cat {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: 8px 22px;
  align-items: start;
  margin: 22px 0;
  padding: 16px;
  background: #fff;
  border: 1px solid #e3e8ee;
  border-radius: 12px;
  box-shadow: 0 8px 22px rgba(8, 12, 51, 0.06);
}
body.page-id-41063 .fla-ts-cat img {
  width: 100%;
  height: 168px;
  object-fit: cover;
  object-position: center;
  border-radius: 8px;
  background: #f3f6fa;
  display: block;
}
body.page-id-41063 .fla-ts-cat img.fla-ts-cat-contain {
  object-fit: contain;
  padding: 8px;
  box-sizing: border-box;
}
body.page-id-41063 .fla-ts-cat-body h2 {
  margin: 0 0 10px;
}
body.page-id-41063 .fla-ts-cat-body > p:last-child {
  margin-bottom: 0;
}
@media (max-width: 640px) {
  body.page-id-41063 .fla-ts-cat {
    grid-template-columns: 1fr;
  }
  body.page-id-41063 .fla-ts-cat img {
    height: 190px;
  }
}
/* end Training Solutions category photos (1.6.332) */


/* ==========================================================================
   Training Solutions category card formatting (1.6.333)
   Page 41063 /training-solutions/ only.
   wpautop inserts an empty p between the img and .fla-ts-cat-body, so the
   body was auto-placed in the 220px photo column: narrow copy, an empty
   wide cell, uneven card heights, and text jammed against the photo.
   Place the image and the body on explicit grid lines. Hide that empty p.
   Keep the 220px photo (contain on the forklift cutout) and stack under 640px.
   Append-only. Preserve .shepherd-element.fla-stg-step + Help equal-height.
   ========================================================================== */
body.page-id-41063 .fla-ts-cat {
  grid-template-columns: minmax(0, 220px) minmax(0, 1fr);
  gap: 16px 28px;
  align-items: center;
  margin: 0 0 22px;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
body.page-id-41063 .fla-ts-cat > p:empty {
  display: none;
  margin: 0;
  padding: 0;
}
body.page-id-41063 .fla-ts-cat > img {
  grid-column: 1;
  grid-row: 1;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  height: 168px;
  object-fit: cover;
  object-position: center;
  justify-self: stretch;
  align-self: center;
}
body.page-id-41063 .fla-ts-cat > img.fla-ts-cat-contain {
  object-fit: contain;
  padding: 10px;
  box-sizing: border-box;
  background: #f3f6fa;
}
body.page-id-41063 .fla-ts-cat > .fla-ts-cat-body {
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
  max-width: 100%;
  display: flex;
  flex-wrap: wrap;
  align-content: center;
  column-gap: 12px;
  row-gap: 12px;
}
body.page-id-41063 .fla-ts-cat-body > h2,
body.page-id-41063 .fla-ts-cat-body > p {
  margin: 0;
  max-width: 100%;
}
body.page-id-41063 .fla-ts-cat-body > h2,
body.page-id-41063 .fla-ts-cat-body > p:not(:has(> a.fla-btn)) {
  flex: 1 0 100%;
}
body.page-id-41063 .fla-ts-cat-body > p:has(> a.fla-btn) {
  flex: 0 1 auto;
  margin: 0;
}
body.page-id-41063 .fla-ts-cat-body a.fla-btn {
  white-space: nowrap;
}
@media (max-width: 640px) {
  body.page-id-41063 .fla-ts-cat {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
    align-items: stretch;
    margin: 0 0 16px;
    padding: 14px;
  }
  body.page-id-41063 .fla-ts-cat > img {
    grid-column: 1;
    grid-row: 1;
    width: 100%;
    max-width: 100%;
    height: 180px;
  }
  body.page-id-41063 .fla-ts-cat > .fla-ts-cat-body {
    grid-column: 1;
    grid-row: 2;
    align-content: flex-start;
  }
  body.page-id-41063 .fla-ts-cat-body > p:has(> a.fla-btn) {
    flex: 1 0 auto;
  }
}
/* end Training Solutions category card formatting (1.6.333) */

/* Business hub path cards: multi-button CTA (1.6.334)
   Append-only. Preserve .shepherd-element.fla-stg-step + Help equal-height. */
.fla-business-page .fla-biz-price-cta {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 10px;
}
.fla-business-page .fla-biz-price-cta .fla-biz-btn {
  text-align: center;
  width: 100%;
  box-sizing: border-box;
}
.fla-business-page .fla-biz-price-sub {
  margin-bottom: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid #e4eaf1;
}
/* end Business hub path cards multi-button CTA (1.6.334) */

/* Business hub intro and path-card alignment (1.6.335)
   Heading-less intro inside .fla-biz-pricing, above the four cards.
   Navy headers share one height, subtitles share a start line, bullet lists
   grow, and the first orange button lines up across the row. The Train the
   Trainer card keeps both buttons stacked under that shared first-button line.
   Append-only. Preserve .shepherd-element.fla-stg-step + Help equal-height. */
.fla-business-page .fla-biz-pricing-intro {
  margin: 0 0 22px;
  max-width: 78ch;
  font-size: 17px;
  line-height: 1.55;
  color: #080C33;
}
@media (min-width: 801px) {
  .fla-business-page .fla-biz-price-head {
    min-height: 78px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .fla-business-page .fla-biz-price-head h2 {
    width: 100%;
  }
  .fla-business-page .fla-biz-price-body {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
  }
  .fla-business-page .fla-biz-price-sub {
    min-height: calc(1.4em * 3);
  }
  .fla-business-page .fla-biz-price-bullets {
    flex: 1 1 auto;
  }
  .fla-business-page .fla-biz-price-cta {
    margin-top: auto;
    min-height: 120px;
    justify-content: flex-start;
  }
}
/* end Business hub intro and path-card alignment (1.6.335) */

/* BugHerd #171 #172 business pricing intro + card CTA bottoms (1.6.336)
   Append-only. Preserve .shepherd-element.fla-stg-step + Help equal-height.
   Intro paragraph already has .fla-biz-pricing-intro; center it.
   Grid items stretch at every width. Each card is a flex column at the row
   height so the button group (one link, or Train the Trainer's two links)
   sits at the bottom. No fixed CTA min-height (cancels the 1.6.335 120px
   box that left a gap under single buttons). */
section.fla-biz-pricing p.fla-biz-pricing-intro {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}
section.fla-biz-pricing .fla-biz-price-grid {
  align-items: stretch;
}
section.fla-biz-pricing article.fla-biz-price-card {
  display: flex;
  flex-direction: column;
  align-self: stretch;
  height: 100%;
  min-height: 100%;
}
section.fla-biz-pricing article.fla-biz-price-card .fla-biz-price-body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}
section.fla-biz-pricing article.fla-biz-price-card .fla-biz-price-cta {
  margin-top: auto;
  margin-bottom: 0;
  min-height: 0;
  height: auto;
  flex: 0 0 auto;
}
/* end BugHerd #171 #172 (1.6.336) */

/* BugHerd #172: free space above the button group, not inside the bullet list,
   so margin-top: auto on .fla-biz-price-cta is what pins the group (1.6.336). */
section.fla-biz-pricing article.fla-biz-price-card .fla-biz-price-bullets {
  flex: 0 1 auto;
}


/* BugHerd #174 business pricing logo above intro (1.6.338)
   Append-only. Preserve .shepherd-element.fla-stg-step.
   Modest centered header logo; do not stretch. */
section.fla-biz-pricing .fla-biz-pricing-logo {
  margin: 0 0 14px;
  padding: 0;
  text-align: center;
}
section.fla-biz-pricing .fla-biz-pricing-logo img {
  display: inline-block;
  max-width: 180px;
  width: auto;
  height: auto;
  margin: 0 auto;
  vertical-align: middle;
}
/* end BugHerd #174 (1.6.338) */


/* BugHerd #174 logo to the right of the pricing intro (1.6.339)
   Append-only. Preserve .shepherd-element.fla-stg-step.
   Desktop: intro text and the blue wordmark share one row, logo on the right,
   text centered in its column, the row centered as a group.
   Narrow: logo drops below the paragraph, never to its left.
   Logo height stays in the 48-72px range. */
section.fla-biz-pricing .fla-biz-pricing-lead {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: center;
  gap: 18px 28px;
  margin: 0 auto 22px;
  max-width: 1080px;
}
section.fla-biz-pricing .fla-biz-pricing-lead > p.fla-biz-pricing-intro {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  max-width: none;
  text-align: center;
}
section.fla-biz-pricing .fla-biz-pricing-lead > .fla-biz-pricing-logo {
  flex: 0 0 auto;
  order: 2;
  margin: 0;
  padding: 0;
  text-align: right;
}
section.fla-biz-pricing .fla-biz-pricing-lead > .fla-biz-pricing-logo img {
  display: block;
  width: auto;
  height: 64px;
  max-width: 260px;
  max-height: 72px;
  margin: 0;
  object-fit: contain;
  object-position: right center;
}
@media (max-width: 760px) {
  section.fla-biz-pricing .fla-biz-pricing-lead {
    flex-direction: column;
    align-items: center;
    gap: 14px;
  }
  section.fla-biz-pricing .fla-biz-pricing-lead > .fla-biz-pricing-logo {
    order: 2;
    text-align: center;
  }
  section.fla-biz-pricing .fla-biz-pricing-lead > .fla-biz-pricing-logo img {
    height: 56px;
    max-height: 64px;
    margin: 0 auto;
    object-position: center;
  }
}
/* end BugHerd #174 logo right of intro (1.6.339) */

/* BugHerd #174 — business pricing logo left of intro (1.6.341)
   Append-only. Desktop places the logo before the intro text via flex order.
   At the existing narrow breakpoint, the intro remains first and the logo stays below.
   Preserve .shepherd-element.fla-stg-step. */
section.fla-biz-pricing .fla-biz-pricing-lead > .fla-biz-pricing-logo {
  order: -1;
}
section.fla-biz-pricing .fla-biz-pricing-lead > p.fla-biz-pricing-intro {
  order: 0;
}
@media (max-width: 760px) {
  section.fla-biz-pricing .fla-biz-pricing-lead > p.fla-biz-pricing-intro {
    order: 1;
  }
  section.fla-biz-pricing .fla-biz-pricing-lead > .fla-biz-pricing-logo {
    order: 2;
  }
}

/* BugHerd #174 — business pricing intro left alignment (1.6.341)
   Same change as the logo reorder: keep the pricing intro copy left-aligned. */
section.fla-biz-pricing .fla-biz-pricing-lead > p.fla-biz-pricing-intro {
  text-align: left;
}

/* BugHerd 178-180: longer business path subtitles need four shared lines. */
@media (min-width: 801px) {
  .fla-business-page .fla-biz-price-sub {
    min-height: calc(1.4em * 4);
  }
}

/* BugHerd #184 — business pricing card subtitle alignment (1.6.344)
   Append-only. Christian's “justify” means left-align here; do not center.
   Preserve .shepherd-element.fla-stg-step. */
section.fla-biz-pricing p.fla-biz-price-sub {
  text-align: left;
}
section.fla-biz-pricing p.fla-biz-pricing-intro {
  text-align: left;
}

/* BugHerd #184 revision — business pricing card subtitle justification (1.6.345)
   Append-only override: keep the pricing intro left-aligned; justify card subtitles.
   Preserve .shepherd-element.fla-stg-step. */
section.fla-biz-pricing p.fla-biz-price-sub {
  text-align: justify;
}

/* 404 broken forklift (1.6.347)
   Append-only. Preserve .shepherd-element.fla-stg-step. */
.fla-404 .fla-page-hero h1 {
  text-transform: none;
  letter-spacing: 0;
}
.fla-404-wrap {
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.fla-404-art {
  max-width: 360px;
  margin: 0 auto 8px;
}
.fla-404-art svg {
  width: 100%;
  height: auto;
  display: block;
}
.fla-404-sub {
  margin: 8px 0 22px;
  font-size: 20px;
  line-height: 1.45;
  color: var(--fla-navy, #080C33);
}
.fla-404 .fla-actions {
  justify-content: center;
}
.fla-404 .fla-btn.ghost {
  border: 1px solid var(--fla-header, #003C6E);
}


/* 404 heading moved into the white content area (1.6.348)
   Append-only. Preserve .shepherd-element.fla-stg-step. */
.fla-404-wrap .fla-404-title {
  margin: 0 0 20px;
  color: var(--fla-header, #003C6E);
  text-transform: none;
  letter-spacing: 0;
}


/* 404 illustration replaced with the supplied exact image (1.6.349)
   Append-only. Preserve .shepherd-element.fla-stg-step. */
.fla-404-art img.fla-404-image {
  display: block;
  width: 100%;
  height: auto;
}


/* 1.6.354 live presenter: instant deck, full screen, pass hands-on */
.fla-present-slide[hidden] { display: none !important; }
.fla-class-shell .fla-present-stage figure.fla-slide,
.fla-class-shell .fla-present-stage .fla-slide { margin: 0; }
.fla-class-shell .fla-present-stage .fla-slide img {
  display: block;
  width: 100%;
  height: auto;
  max-height: calc(100vh - 240px);
  object-fit: contain;
  background: #fff;
}
.fla-class-shell:fullscreen,
.fla-class-shell:-webkit-full-screen {
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  overflow: auto;
  background: var(--fla-bg);
}
.fla-class-shell:fullscreen .fla-present-stage .fla-slide img,
.fla-class-shell:-webkit-full-screen .fla-present-stage .fla-slide img {
  max-height: calc(100vh - 210px);
}
.fla-present-nav.is-last .fla-js-slide-next { display: none; }
.fla-present-nav:not(.is-last) .fla-present-nav-end { display: none; }
#fla-present-fullscreen { margin-left: auto; }
.fla-hands-pass-banner {
  margin: 0 0 12px;
  padding: 12px 14px;
  background: #fff7f2;
  border: 2px solid var(--fla-orange);
  border-radius: 10px;
  font-weight: 700;
  color: var(--fla-navy);
}
.fla-hands-pass-title { margin: 0 0 4px; font-size: 16px; color: var(--fla-navy); }
.fla-class-shell .fla-roster-confirm {
  width: 100%;
  font-size: 14px;
  font-weight: 800;
  padding: 8px 10px;
}
.fla-manage-students__passline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px 16px;
  padding: 12px 14px 4px;
}
.fla-manage-students__passline .fla-manage-students__hands { margin: 0; }
.fla-manage-students__passline .fla-manage-students__hands-btn { font-weight: 800; }

/* 1.6.364 Manage students / live roster written Pass·Fail·Pending (Rosa / Dallas) */
.fla-manage-students__status.fla-written-passed { color: #0b5a2b; }
.fla-manage-students__status.fla-written-failed { color: #8a1f11; }
.fla-manage-students__status.fla-written-pending { color: #7a4d00; }
.fla-manage-students__alert {
  display: block;
  margin: 4px 0 0;
  padding: 6px 10px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.35;
  background: #fdecea;
  color: #8a1f11;
  border: 1px solid #e5b4ad;
}
.fla-manage-students__alert.is-pending {
  background: #fff7e8;
  color: #7a4d00;
  border-color: #e0c48a;
}
.fla-manage-students__meta { flex: 1 1 auto; }
.fla-roster-quiz.fla-written-passed { color: #0b5a2b; font-weight: 700; }
.fla-roster-quiz.fla-written-failed { color: #c44; font-weight: 800; }
.fla-roster-quiz.fla-written-pending { color: #c80; font-weight: 700; }
.fla-roster-written-alert {
  display: block;
  font-size: 11px;
  font-weight: 700;
  color: #c44;
  margin-top: 2px;
}
.fla-roster-written-alert.is-pending { color: #c80; }
.fla-class-shell .fla-roster-quiz.fla-written-passed { color: #9fdfb5; }
.fla-class-shell .fla-roster-quiz.fla-written-failed { color: #ffb3a8; }
.fla-class-shell .fla-roster-quiz.fla-written-pending { color: #ffd089; }
.fla-class-shell .fla-roster-written-alert { color: #ffb3a8; }
.fla-class-shell .fla-roster-written-alert.is-pending { color: #ffd089; }



/* ==========================================================================
   BugHerd #188 login-logo mirror CSS removed (1.6.403). Live CSS remains in
   fla_login_logo_styles() in functions.php. Preserve .shepherd-element.fla-stg-step.
   ========================================================================== */

/* ==========================================================================
   Apple Wallet Add to Apple Wallet button (1.6.402). Mirrors .fla-gwallet.
   Official Apple badge SVG in assets/wallet/add-to-apple-wallet.svg.
   Preserve .shepherd-element.fla-stg-step.
   ========================================================================== */
.fla-awallet {
  max-width: 580px;
  margin: 12px auto 0;
  text-align: center;
  position: relative;
  z-index: 1;
}
.fla-awallet-form {
  margin: 0;
}
.fla-awallet-btn {
  display: inline-block;
  margin: 8px;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
  line-height: 0;
}
.fla-awallet-btn img {
  display: block;
  height: 55px;
  width: auto;
}
.fla-awallet-btn:focus-visible {
  outline: 2px solid #fbbb00;
  outline-offset: 3px;
}
.fla-awallet-privacy {
  margin: 0 auto 4px;
  color: rgba(255,255,255,.6);
  font-size: 12px;
  line-height: 1.4;
}
.fla-awallet-note {
  margin: 4px auto 0;
  color: rgba(255,255,255,.75);
  font-size: 13px;
}


/* ==========================================================================
   BugHerd #192 - /whats-new/ pagehead above samples (1.6.404)
   Append-only. Preserve STG shepherd tour step rules above.
   ========================================================================== */
.fla-wn-pagehead {
  padding: 28px 0 10px;
}
.fla-wn-pagehead-title {
  margin: 0 0 10px;
  font-size: clamp(1.6rem, 2.6vw, 2.1rem);
  line-height: 1.2;
  color: #003C6E;
  padding-left: 14px;
  border-left: 4px solid #EC572C;
}
.fla-wn-pagehead .fla-wn-lede {
  margin-bottom: 0;
  max-width: 40rem;
}
.fla-wn-pagehead + .fla-wn-samples {
  padding-top: 24px;
}


/* Empty cart illustration (1.6.408)
   Empty-cart art above heading text.
   Overrides BugHerd #38 text-only ::before hide. Keep heading copy.
   Append-only. Preserve .shepherd-element.fla-stg-step + Help equal-height. */
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title.with-empty-cart-icon::before {
  content: "" !important;
  display: block !important;
  width: 280px !important;
  max-width: 70vw !important;
  height: 420px !important;
  margin: 0 auto 1.25em !important;
  padding: 0 !important;
  background-color: transparent !important;
  background-image: url("assets/empty-cart.jpg") !important;
  background-size: contain !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  -webkit-mask: none !important;
  mask: none !important;
  -webkit-mask-image: none !important;
  mask-image: none !important;
}


/* ==========================================================================
   BugHerd #196 / #197 - Hide SKU and Category on single product (1.6.409)
   Sitewide: all single product pages share the same summary meta look.
   Hides WooCommerce product_meta SKU (span.sku_wrapper) and Category
   (span.posted_in) only. Tags/brands untouched if present.
   Append-only. Preserve .shepherd-element.fla-stg-step + Help equal-height.
   ========================================================================== */
.single-product .product_meta .sku_wrapper,
.single-product .product_meta .posted_in {
  display: none !important;
}

/* BugHerd #200/#201: Train the Trainer EN/ES language chips on product pages */
.fla-ttt-lang-choice {
	margin: 0 0 16px;
}
.fla-ttt-lang-choice-label {
	margin: 0 0 8px;
	font-size: 0.95rem;
	font-weight: 600;
	color: #1a1a1a;
}
.fla-ttt-lang-choice-list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.fla-ttt-lang-chip {
	display: inline-block;
	padding: 8px 14px;
	border: 1px solid #cfd6dd;
	border-radius: 999px;
	background: #fff;
	color: #1a1a1a;
	text-decoration: none;
	font-size: 0.92rem;
	font-weight: 600;
	line-height: 1.2;
}
.fla-ttt-lang-chip:hover,
.fla-ttt-lang-chip:focus {
	border-color: #EC572C;
	color: #EC572C;
}
.fla-ttt-lang-chip.is-active {
	background: #EC572C;
	border-color: #EC572C;
	color: #fff;
}

/* BugHerd #207 (theme 1.6.412): padding on list pager controls. Previous/Next sat flush
   against each other in .fla-desk-pager__controls (company portal /employers/{slug}/
   roster, purchases, trainer entitlement lists; TTT payouts). Adds gap + padding.
   Append-only. Preserve .shepherd-element.fla-stg-step + Help equal-height. */
.fla-desk-pager__controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  padding: 8px 12px;
}

/* BugHerd #210 (theme 1.6.414): footer contact image "strange background", sitewide
   (footer.php .fla-ft-contact, every page except Contact). Cause: .fla-ft-contact-media::before
   laid a navy gradient (rgba #003C6E .35 / #165D95 .25) over the whole media box, tinting the
   photo; at widths above 1280px the img did not fill the stretched box (height:100% unresolved,
   650x402 img in a 650x515 box at 1440), so a ~113px bare gradient band showed under the photo,
   and the square overlay sat past the img's rounded corners. Image file itself is a clean JPEG
   (843x522, no baked-in background). Fix: drop the overlay; above 1280px the img fills the media
   box (absolute, object-fit cover); box clips to the same radius. No Klentel coral.
   Append-only. Preserve .shepherd-element.fla-stg-step + Help equal-height. */
.site-footer .fla-ft-contact-media {
  background: transparent;
  border-radius: 0 10px 10px 0;
}
.site-footer .fla-ft-contact-media::before {
  content: none;
  display: none;
  background: none;
}
@media (min-width: 1281px) {
  .site-footer .fla-ft-contact-media {
    min-height: 360px;
  }
  .site-footer .fla-ft-contact-media .fla-ft-contact-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: cover;
  }
}
@media (max-width: 1280px) {
  .site-footer .fla-ft-contact-media {
    border-radius: 10px;
  }
}

/* BugHerd #212 (theme 1.6.414): too much white space at the top of section.fla-ot-icons
   (/business/onsite-training/, template-onsite.php). Cause: 72px section padding-top (40px
   at <=640px) on top of the intro's 24px bottom padding, plus each card opens with an 88px
   img.fla-ot-icon (+16px margin) whose SVG is white stroke on white, so it renders as
   ~104px of blank space. Fix: hide the invisible icons and set padding-top to 24px (same as
   the next section, .fla-ot-equipment). Bottom padding unchanged.
   Append-only. Preserve .shepherd-element.fla-stg-step + Help equal-height. */
.fla-onsite-page .fla-ot-icons {
  padding-top: 24px;
}
.fla-onsite-page .fla-ot-icons .fla-ot-icon {
  display: none;
}
