/* ==== Reset ==== */
* { margin: 0; padding: 0; box-sizing: border-box; }
img { max-width: 100%; display: block; }
a { text-decoration: none; color: inherit; }
ul { list-style: none; }

/* ==== Brand Variables ==== */
:root {
  --falcon-black: #1a1a1a;
  --falcon-charcoal: #141414;
  --falcon-gold: #D4A72C;
  --falcon-gold-light: #E8B923;
  --falcon-gold-dark: #A9821F;
  --falcon-white: #FFFFFF;
  --falcon-offwhite: #F5F5F0;
  --falcon-gray: #4A4A4A;
  --falcon-lightgray: #EAEAEA;
}

body {
  font-family: 'Segoe UI', Arial, sans-serif;
  color: var(--falcon-gray);
  background: var(--falcon-white);
}

.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

/* ==== Top bar ==== */
.falcon-topbar {
  background: var(--falcon-charcoal);
  color: var(--falcon-offwhite);
  font-size: 13px;
  padding: 8px 0;
}
.falcon-topbar-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}
.falcon-topbar-contact a {
  margin-right: 20px;
  color: var(--falcon-offwhite);
}
.falcon-topbar-tagline {
  color: var(--falcon-gold-light);
  letter-spacing: 2px;
  font-weight: 600;
  font-size: 12px;
}

/* ==== Site-wide z-index scale for fixed/sticky overlay elements ====
   Sticky header: 100 · megamenu dropdown: 90 (just under the header it
   drops from) · chatbot bubble: 150 · mobile Filters drawer: 200 ·
   chatbot open panel: 250 (actively-in-use widget wins) · modals: 300
   (always topmost, since opening one is an explicit blocking action).
   Kept as literal numbers per-rule (not custom properties) so each rule
   stays self-contained, but every fixed/sticky element's z-index should
   come from this scale - don't introduce one-off values elsewhere. */

/* ==== Header ==== */
.falcon-header {
  background: var(--falcon-black);
  padding: 15px 0;
  position: sticky;
  top: 0;
  z-index: 100;
  transition: box-shadow 0.3s ease, padding 0.3s ease;
}
.falcon-header.is-scrolled {
  padding: 8px 0;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.35);
}
.falcon-header-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.falcon-logo a {
  display: flex;
  align-items: center;
  gap: 12px;
}
.falcon-logo-text {
  color: var(--falcon-white);
  font-weight: 700;
  font-size: 20px;
  letter-spacing: 1px;
}

/* ==== Nav menu (base - mobile-first, no positioning assumptions) ==== */
.falcon-nav-menu {
  display: flex;
  align-items: center;
  gap: 28px;
}
.falcon-has-megamenu {
  position: relative;
}
.falcon-megamenu-trigger {
  display: flex;
  align-items: center;
  gap: 4px;
  cursor: pointer;
  color: var(--falcon-white);
}
.falcon-nav-menu > li > a {
  color: var(--falcon-white);
  font-weight: 500;
  transition: color 0.2s;
}
.falcon-nav-menu > li > a:hover {
  color: var(--falcon-gold);
}
.falcon-caret {
  font-size: 11px;
  transition: transform 0.2s;
}

/* ==== Mega menu base (no position/transform here - added only on desktop below) ==== */
.falcon-megamenu {
  background: var(--falcon-white);
  box-shadow: 0 12px 30px rgba(0,0,0,0.15);
  border-top: 2px solid var(--falcon-gold);
  opacity: 0;
  visibility: hidden;
  transition: all 0.25s ease;
  z-index: 90;
}

.falcon-megamenu-inner {
  display: flex;
  justify-content: space-between;
  padding: 30px 20px;
  gap: 20px;
}
.falcon-megamenu-col {
  flex: 1;
  min-width: 150px;
}
.falcon-megamenu-col h4 {
  font-size: 13px;
  font-weight: 700;
  color: var(--falcon-black);
  background: var(--falcon-lightgray);
  padding: 6px 10px;
  margin-bottom: 12px;
  letter-spacing: 0.5px;
}
.falcon-megamenu-links li {
  margin-bottom: 10px;
}
.falcon-megamenu-links li a {
  color: var(--falcon-gray);
  font-size: 14px;
  transition: color 0.2s;
}
.falcon-megamenu-links li a:hover {
  color: var(--falcon-gold-dark);
  padding-left: 3px;
}

/* ==== Breadcrumbs (Rank Math output, non-WooCommerce pages) ==== */
.falcon-breadcrumbs {
  padding: 14px 0;
  font-size: 12.5px;
}
.falcon-breadcrumbs .rank-math-breadcrumb {
  color: var(--falcon-gray);
}
.falcon-breadcrumbs .rank-math-breadcrumb p {
  margin: 0;
}
.falcon-breadcrumbs .rank-math-breadcrumb a {
  color: var(--falcon-gray);
}
.falcon-breadcrumbs .rank-math-breadcrumb a:hover {
  color: var(--falcon-gold-dark);
}
.falcon-breadcrumbs .rank-math-breadcrumb .separator {
  margin: 0 6px;
  color: var(--falcon-lightgray);
}
.falcon-breadcrumbs .rank-math-breadcrumb .last {
  color: var(--falcon-black);
  font-weight: 600;
}

/* ==== DESKTOP ONLY: mega menu positioning + hover behavior ==== */
@media (min-width: 993px) {
  .falcon-caret {
    display: inline-block;
  }
  .falcon-has-megamenu:hover .falcon-caret {
    transform: rotate(180deg);
  }

  .falcon-megamenu {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%) translateY(10px);
    min-width: 900px;
    max-width: 95vw;
  }

  .falcon-has-megamenu:hover .falcon-megamenu {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
  }
}

/* ==== Mobile menu toggle (hidden by default on desktop) ==== */
.mobile-menu-toggle {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
}
.mobile-menu-toggle span {
  width: 25px;
  height: 3px;
  background: var(--falcon-gold);
}

/* ==== Hero ==== */
.falcon-hero {
  position: relative;
  background: var(--falcon-black);
  color: var(--falcon-white);
  text-align: center;
  padding: 100px 20px;
  overflow: hidden;
}
.falcon-hero-texture {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background-image: repeating-linear-gradient(
    90deg,
    rgba(255,255,255,0.02) 0px,
    rgba(255,255,255,0.02) 1px,
    transparent 1px,
    transparent 6px
  );
  z-index: 0;
}
.falcon-hero-content {
  position: relative;
  z-index: 1;
}
.falcon-hero-logo {
  max-width: 180px;
  margin: 0 auto 20px;
}
.falcon-hero h1 {
  font-size: 48px;
  letter-spacing: 4px;
  font-weight: 800;
}
.falcon-hero-underline {
  width: 80px;
  height: 3px;
  background: var(--falcon-gold);
  margin: 15px auto;
}
.falcon-hero-tagline {
  color: var(--falcon-gold-light);
  font-style: italic;
  margin-bottom: 30px;
}
.falcon-btn {
  display: inline-block;
  padding: 14px 32px;
  border-radius: 4px;
  font-weight: 600;
  transition: all 0.2s;
}
.falcon-btn-gold {
  background: var(--falcon-gold);
  color: var(--falcon-black);
}
.falcon-btn-gold:hover {
  background: var(--falcon-gold-light);
}

/* ==== Section title ==== */
.falcon-section-title {
  text-align: center;
  font-size: 32px;
  color: var(--falcon-black);
  margin-bottom: 40px;
  position: relative;
}
.falcon-section-title::after {
  content: '';
  display: block;
  width: 60px;
  height: 3px;
  background: var(--falcon-gold);
  margin: 12px auto 0;
}

/* ==== Category Grid ==== */
.falcon-category-grid {
  padding: 80px 0;
  background: var(--falcon-offwhite);
}
/* ==== Shared circular icon component ====
   Used by both "Our Product Range" (category-grid.php, product_cat) and
   "Shop by Use" (shop-by-use.php, use_case taxonomy) - one implementation,
   any future style tweak applies to both at once. */
.falcon-icon-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 36px;
}
.falcon-icon-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 110px;
  text-align: center;
  color: inherit;
}
.falcon-icon-circle {
  width: 90px;
  height: 90px;
  border-radius: 50%;
  background: var(--falcon-white);
  border: 1px solid var(--falcon-lightgray);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 12px;
  font-size: 32px;
  color: var(--falcon-gold);
  transition: all 0.25s;
  overflow: hidden;
}
.falcon-icon-circle img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  border-radius: 50%;
}
.falcon-icon-item:hover .falcon-icon-circle {
  border-color: var(--falcon-gold);
  box-shadow: 0 8px 20px rgba(212,167,44,0.15);
  transform: translateY(-4px);
}
.falcon-icon-label {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.6em;
  line-height: 1.3;
  font-size: 13px;
  font-weight: 600;
  color: var(--falcon-black);
}

/* ==== Bestsellers ==== */
.falcon-bestsellers {
  padding: 80px 0;
  background: var(--falcon-white);
}
.falcon-bestsellers-view-all {
  text-align: center;
  margin-top: 30px;
}

/* ==== Trust Section ==== */
.falcon-trust-section {
  padding: 80px 0;
  background: var(--falcon-black);
  color: var(--falcon-offwhite);
  text-align: center;
}
.falcon-trust-section .falcon-section-title {
  color: var(--falcon-white);
}
.falcon-trust-text {
  max-width: 700px;
  margin: 0 auto 40px;
  line-height: 1.7;
}
.falcon-stats {
  display: flex;
  justify-content: center;
  gap: 60px;
  flex-wrap: wrap;
}
.falcon-stat-number {
  display: block;
  font-size: 28px;
  color: var(--falcon-gold);
  font-weight: 700;
}
.falcon-stat-label {
  color: var(--falcon-offwhite);
  font-size: 14px;
}

/* ==== Government/institutional trust signal ==== */
.falcon-govt-section {
  background: var(--falcon-black);
  padding: 50px 0;
}
.falcon-govt-inner {
  display: flex;
  align-items: center;
  gap: 32px;
}
.falcon-govt-badge {
  flex: 0 0 auto;
  width: 84px;
  height: 84px;
  border-radius: 50%;
  background: rgba(212, 167, 44, 0.12);
  border: 2px solid var(--falcon-gold);
  display: flex;
  align-items: center;
  justify-content: center;
}
.falcon-govt-badge::before {
  content: '\1F6E1';
  font-size: 38px;
  line-height: 1;
}
.falcon-govt-section .falcon-section-title {
  color: var(--falcon-white);
  margin-bottom: 12px;
}
.falcon-govt-text {
  color: var(--falcon-offwhite);
  line-height: 1.7;
  max-width: 620px;
  margin-bottom: 20px;
}

/* ==== Hero Slider ==== */
.falcon-hero-slider {
  padding: 0;
  min-height: 560px;
}
.falcon-hero-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  z-index: 1;
  transition: opacity 0.6s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}
.falcon-hero-slide.active {
  opacity: 1;
  z-index: 2;
}
.falcon-hero-slide-image {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.falcon-hero-slide-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.falcon-hero-slide-image::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.55);
}
.falcon-hero-slide .falcon-hero-content {
  position: relative;
  z-index: 1;
  padding: 40px 20px;
}
.falcon-hero-dots {
  position: absolute;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 3;
  display: flex;
  gap: 10px;
}
.falcon-hero-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: rgba(255,255,255,0.4);
  border: none;
  cursor: pointer;
  padding: 0;
  transition: background 0.2s;
}
.falcon-hero-dot.active {
  background: var(--falcon-gold);
}

/* ==== About Section ==== */
.falcon-about {
  padding: 80px 0;
  background: var(--falcon-white);
  text-align: center;
}
.falcon-about-inner {
  max-width: 800px;
  margin: 0 auto;
}
.falcon-about-text {
  line-height: 1.7;
  margin-bottom: 30px;
}

/* ==== Inner Page Banner (About/Contact/Catalog/Legal pages) ==== */
.falcon-page-banner {
  position: relative;
  background: var(--falcon-black);
  color: var(--falcon-white);
  text-align: center;
  padding: 60px 20px;
  overflow: hidden;
}
.falcon-page-banner-inner {
  position: relative;
  z-index: 1;
}
.falcon-page-banner h1 {
  font-size: 34px;
  letter-spacing: 2px;
  font-weight: 800;
}

/* ==== Generic page content (Contact/Catalog/Legal pages) ==== */
.falcon-page-content-section {
  padding: 70px 0;
  background: var(--falcon-white);
}
.falcon-page-content {
  max-width: 780px;
  margin: 0 auto;
  line-height: 1.8;
  color: var(--falcon-gray);
}
.falcon-page-content h2 {
  color: var(--falcon-black);
  font-size: 22px;
  margin: 36px 0 14px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--falcon-gold);
  display: inline-block;
}
.falcon-page-content h2:first-child {
  margin-top: 0;
}
.falcon-page-content p {
  margin-bottom: 16px;
}
.falcon-page-content ul {
  margin: 0 0 20px;
}
.falcon-page-content ul li {
  position: relative;
  padding-left: 22px;
  margin-bottom: 10px;
}
.falcon-page-content ul li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 8px;
  width: 8px;
  height: 8px;
  background: var(--falcon-gold);
  border-radius: 50%;
}
.falcon-page-content a {
  color: var(--falcon-gold-dark);
  text-decoration: underline;
}
.falcon-page-content .falcon-btn {
  text-decoration: none;
  margin: 10px 0;
}

/* ==== About Us page ==== */
.falcon-split-banner {
  background: var(--falcon-black);
  overflow: hidden;
}
.falcon-split-banner-inner {
  display: flex;
  align-items: center;
  gap: 50px;
  min-height: 420px;
}
.falcon-split-banner-text {
  flex: 1;
  color: var(--falcon-white);
  padding: 40px 0;
}
.falcon-split-banner-eyebrow {
  display: inline-block;
  color: var(--falcon-gold-light);
  letter-spacing: 2px;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  margin-bottom: 14px;
}
.falcon-split-banner-text h1 {
  font-size: 40px;
  letter-spacing: 2px;
  font-weight: 800;
}
.falcon-split-banner-text p {
  color: var(--falcon-gold-light);
  font-style: italic;
  margin-top: 14px;
}
.falcon-split-banner-image {
  flex: 1;
  align-self: stretch;
}
.falcon-split-banner-image img {
  width: 100%;
  height: 100%;
  min-height: 420px;
  object-fit: cover;
  display: block;
}

.falcon-about-story {
  position: relative;
  padding: 70px 0;
  background: var(--falcon-white);
  overflow: hidden;
}
.falcon-about-map {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 1100px;
  max-width: none;
  opacity: 0.5;
  pointer-events: none;
}
.falcon-about-story-inner {
  position: relative;
  z-index: 1;
  max-width: 780px;
  margin: 0 auto;
  line-height: 1.8;
  color: var(--falcon-gray);
  text-align: center;
}
.falcon-about-story-inner .falcon-section-title {
  margin-bottom: 30px;
}
.falcon-about-story-inner p {
  margin-bottom: 16px;
}
.falcon-about-story-inner ul {
  text-align: left;
  display: inline-block;
  margin: 0 0 16px;
}
.falcon-about-story-inner ul li {
  margin-bottom: 8px;
}

.falcon-why-choose {
  padding: 70px 0;
  background: var(--falcon-offwhite);
}
.falcon-why-choose-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}
.falcon-why-choose-card {
  background: var(--falcon-white);
  border: 1px solid var(--falcon-lightgray);
  border-radius: 6px;
  padding: 36px 24px;
  text-align: center;
}
.falcon-why-choose-icon {
  font-size: 34px;
  color: var(--falcon-gold);
  margin-bottom: 16px;
}
.falcon-why-choose-card h3 {
  font-size: 17px;
  color: var(--falcon-black);
  margin-bottom: 10px;
}
.falcon-why-choose-card p {
  font-size: 14px;
  line-height: 1.7;
  color: var(--falcon-gray);
}

.falcon-about-stats {
  padding: 60px 0;
  background: var(--falcon-black);
}

.falcon-about-contact {
  padding: 70px 0;
  background: var(--falcon-white);
  text-align: center;
}
.falcon-about-contact-inner {
  max-width: 600px;
  margin: 0 auto;
}
.falcon-about-contact-details {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 20px 0 30px;
  font-size: 15px;
  color: var(--falcon-gray);
}
.falcon-about-contact-details a {
  color: var(--falcon-gray);
}
.falcon-about-contact-details a:hover {
  color: var(--falcon-gold-dark);
}

/* ==== Contact Us page ==== */
.falcon-contact-intro {
  padding: 50px 0 20px;
  background: var(--falcon-white);
}
.falcon-contact-intro-inner {
  max-width: 700px;
  margin: 0 auto;
  text-align: center;
  color: var(--falcon-gray);
  line-height: 1.8;
}
.falcon-contact-cards .falcon-why-choose-card {
  transition: all 0.25s;
}
a.falcon-why-choose-card {
  display: block;
  cursor: pointer;
}
a.falcon-why-choose-card:hover {
  border-color: var(--falcon-gold);
  box-shadow: 0 8px 20px rgba(212,167,44,0.15);
  transform: translateY(-4px);
}
.falcon-contact-cards .falcon-why-choose-card p {
  color: var(--falcon-black);
  font-weight: 600;
}
.falcon-contact-cta {
  background: var(--falcon-offwhite);
}
.falcon-contact-cta p {
  color: var(--falcon-gray);
  margin-bottom: 24px;
}

/* ==== Promo Banner Grid ==== */
.falcon-promo-grid-section {
  padding: 80px 0;
  background: var(--falcon-white);
}
.falcon-promo-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: 140px;
  grid-auto-flow: dense;
  gap: 16px;
}
.falcon-promo-tile {
  position: relative;
  display: block;
  grid-column: span 1;
  grid-row: span 1;
  border-radius: 6px;
  overflow: hidden;
  background: var(--falcon-charcoal);
  cursor: pointer;
}
.falcon-promo-tile-large {
  grid-column: span 2;
  grid-row: span 2;
}
.falcon-promo-tile-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.falcon-promo-tile-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 16px;
  background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,0.75) 100%);
}
.falcon-promo-tile-overlay h3 {
  color: var(--falcon-white);
  font-size: 15px;
  font-weight: 700;
}
.falcon-promo-tile-large .falcon-promo-tile-overlay h3 {
  font-size: 20px;
}
.falcon-promo-tile-cta {
  display: inline-block;
  margin-top: 8px;
  color: var(--falcon-gold-light);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.falcon-promo-tile:hover .falcon-promo-tile-cta {
  color: var(--falcon-gold);
  text-decoration: underline;
}

/* ==== Shop by Use (section wrapper only - icon styling is the shared
   .falcon-icon-* component above) ==== */
.falcon-shop-by-use {
  padding: 80px 0;
  background: var(--falcon-offwhite);
}

/* ==== Blog Section ==== */
.falcon-blog-section {
  padding: 80px 0;
  background: var(--falcon-white);
}
.falcon-blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  margin-bottom: 40px;
}
.falcon-blog-card {
  display: block;
  background: var(--falcon-white);
  border: 1px solid var(--falcon-lightgray);
  border-radius: 6px;
  overflow: hidden;
  transition: all 0.25s;
}
.falcon-blog-card:hover {
  box-shadow: 0 8px 20px rgba(0,0,0,0.1);
  transform: translateY(-4px);
}
.falcon-blog-card-image {
  position: relative;
  height: 200px;
  background: var(--falcon-lightgray);
}
.falcon-blog-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.falcon-blog-date-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  background: var(--falcon-gold);
  color: var(--falcon-black);
  font-size: 12px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 4px;
}
.falcon-blog-card-body {
  padding: 20px;
}
.falcon-blog-category {
  display: inline-block;
  color: var(--falcon-gold-dark);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 8px;
}
.falcon-blog-card-body h3 {
  font-size: 17px;
  color: var(--falcon-black);
  margin-bottom: 10px;
  line-height: 1.4;
}
.falcon-blog-comments {
  font-size: 13px;
  color: var(--falcon-gray);
}
.falcon-blog-view-all {
  text-align: center;
}

/* ==== Commercial Video ==== */
.falcon-commercial-video {
  padding: 80px 0;
  background: var(--falcon-black);
}
.falcon-video-player {
  position: relative;
  min-height: 420px;
  border-radius: 8px;
  overflow: hidden;
  background-color: var(--falcon-charcoal);
  background-size: cover;
  background-position: center;
}
.falcon-video-player iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.falcon-video-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: rgba(0,0,0,0.45);
  padding: 20px;
}
.falcon-video-overlay h2 {
  color: var(--falcon-white);
  font-size: 28px;
  margin-bottom: 10px;
}
.falcon-video-overlay p {
  color: var(--falcon-gold-light);
  margin-bottom: 24px;
}
.falcon-video-play-btn {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: var(--falcon-gold);
  color: var(--falcon-black);
  border: none;
  font-size: 22px;
  cursor: pointer;
  transition: all 0.2s;
}
.falcon-video-play-btn:hover {
  background: var(--falcon-gold-light);
  transform: scale(1.08);
}

/* ==== Testimonials ==== */
.falcon-testimonials {
  padding: 80px 0;
  background: var(--falcon-offwhite);
}
.falcon-testimonials-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}
.falcon-testimonial-card {
  position: relative;
  background: var(--falcon-white);
  border: 1px solid var(--falcon-lightgray);
  border-radius: 6px;
  padding: 40px 30px 30px;
  text-align: center;
}
.falcon-testimonial-quote {
  position: absolute;
  top: 10px;
  left: 20px;
  font-size: 50px;
  color: var(--falcon-gold);
  opacity: 0.3;
  font-family: Georgia, serif;
  line-height: 1;
}
.falcon-testimonial-photo {
  width: 70px;
  height: 70px;
  margin: 0 auto 16px;
  border-radius: 50%;
  overflow: hidden;
}
.falcon-testimonial-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}
.falcon-testimonial-text {
  font-size: 14px;
  line-height: 1.7;
  color: var(--falcon-gray);
  font-style: italic;
  margin-bottom: 16px;
}
.falcon-testimonial-name {
  font-size: 15px;
  color: var(--falcon-black);
  font-weight: 700;
}

/* ==== Video Testimonials (reels row) ==== */
.falcon-video-testimonials {
  padding: 80px 0;
  background: var(--falcon-black);
}
.falcon-video-testimonials .falcon-section-title {
  color: var(--falcon-white);
}
.falcon-video-row-wrap {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
}
.falcon-video-row {
  display: flex;
  gap: 16px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  padding: 4px 4px 12px;
  flex: 1;
}
.falcon-video-row::-webkit-scrollbar {
  height: 6px;
}
.falcon-video-row::-webkit-scrollbar-thumb {
  background: var(--falcon-gold-dark);
  border-radius: 3px;
}
.falcon-video-card {
  position: relative;
  flex: 0 0 auto;
  width: 260px;
  aspect-ratio: 9 / 16;
  border-radius: 12px;
  overflow: hidden;
  background: var(--falcon-charcoal);
  scroll-snap-align: start;
}
.falcon-video-native,
.falcon-video-poster,
.falcon-video-iframe {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border: 0;
}
.falcon-video-embed {
  position: relative;
  width: 100%;
  height: 100%;
}
.falcon-video-poster-fallback {
  width: 100%;
  height: 100%;
  background: linear-gradient(160deg, var(--falcon-charcoal), var(--falcon-black));
}
.falcon-video-embed .falcon-video-play-btn {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.falcon-video-embed .falcon-video-play-btn:hover {
  transform: translate(-50%, -50%) scale(1.08);
}
.falcon-video-progress {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: rgba(255, 255, 255, 0.2);
  z-index: 2;
}
.falcon-video-progress-bar {
  height: 100%;
  width: 0%;
  background: var(--falcon-gold);
}
.falcon-video-mute-btn,
.falcon-video-expand-btn {
  position: absolute;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: none;
  background: rgba(0, 0, 0, 0.55);
  color: var(--falcon-white);
  font-size: 15px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 3;
  transition: background 0.2s, color 0.2s;
}
.falcon-video-mute-btn:hover,
.falcon-video-expand-btn:hover {
  background: var(--falcon-gold);
  color: var(--falcon-black);
}
.falcon-video-mute-btn {
  top: 12px;
  left: 12px;
}
.falcon-video-expand-btn {
  bottom: 12px;
  right: 12px;
}
.falcon-video-caption {
  position: absolute;
  left: 12px;
  right: 54px;
  bottom: 12px;
  color: var(--falcon-white);
  font-size: 13px;
  line-height: 1.4;
  margin: 0;
  padding: 8px 10px;
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0));
  border-radius: 6px;
  z-index: 2;
}
.falcon-video-scroll-btn {
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid var(--falcon-gold);
  background: transparent;
  color: var(--falcon-gold);
  font-size: 16px;
  cursor: pointer;
  transition: all 0.2s;
}
.falcon-video-scroll-btn:hover {
  background: var(--falcon-gold);
  color: var(--falcon-black);
}

/* ==== Partner / Dealer Form Section ==== */
.falcon-partner-section {
  padding: 80px 0;
  background: var(--falcon-offwhite);
}
.falcon-partner-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
  align-items: center;
}
.falcon-section-title-left {
  text-align: left;
}
.falcon-section-title-left::after {
  margin: 12px 0 0;
}
.falcon-partner-intro {
  color: var(--falcon-gray);
  margin-bottom: 24px;
  line-height: 1.7;
}
.falcon-dealer-form label {
  display: block;
  margin-bottom: 16px;
  font-size: 14px;
  font-weight: 600;
  color: var(--falcon-black);
}
.falcon-dealer-form input[type="text"],
.falcon-dealer-form input[type="tel"],
.falcon-dealer-form input[type="file"] {
  display: block;
  width: 100%;
  margin-top: 6px;
  padding: 12px 14px;
  border: 1px solid var(--falcon-lightgray);
  border-radius: 4px;
  font-family: inherit;
  font-size: 14px;
}
.falcon-dealer-form .falcon-dealer-submit {
  display: inline-block;
  border: none;
  cursor: pointer;
}
.falcon-dealer-form .falcon-dealer-submit:disabled {
  opacity: 0.7;
  cursor: default;
}
.falcon-dealer-error {
  display: block;
  color: #c0392b;
  font-size: 12px;
  margin-top: 4px;
  font-weight: 400;
}
.falcon-dealer-success {
  margin-top: 12px;
  padding: 16px 18px;
  border-radius: 6px;
  background: var(--falcon-offwhite);
  border-left: 3px solid var(--falcon-gold);
}
.falcon-dealer-success p {
  margin: 0;
  font-size: 14px;
  font-weight: 600;
  color: var(--falcon-black);
}

.falcon-gallery-slider {
  position: relative;
  min-height: 380px;
  border-radius: 8px;
  overflow: hidden;
}
.falcon-gallery-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  z-index: 1;
  transition: opacity 0.6s ease;
}
.falcon-gallery-slide.active {
  opacity: 1;
  z-index: 2;
}
.falcon-gallery-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.falcon-gallery-dots {
  position: absolute;
  bottom: 16px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 3;
  display: flex;
  gap: 10px;
}
.falcon-gallery-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: rgba(255,255,255,0.5);
  border: none;
  cursor: pointer;
  padding: 0;
}
.falcon-gallery-dot.active {
  background: var(--falcon-gold);
}

/* ==== Shop / Category Archive Layout ==== */
.falcon-shop-layout {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 40px;
  align-items: start;
  padding: 20px 0 60px;
}
.falcon-shop-main {
  min-width: 0;
}

/* ---- Toolbar ---- */
.falcon-shop-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  padding: 14px 18px;
  margin-bottom: 24px;
  background: var(--falcon-offwhite);
  border-radius: 6px;
  font-size: 14px;
  color: var(--falcon-gray);
}
.falcon-shop-ordering select {
  padding: 8px 12px;
  border: 1px solid var(--falcon-lightgray);
  border-radius: 4px;
  font-family: inherit;
  font-size: 14px;
  background: var(--falcon-white);
}

/* ---- Sidebar ---- */
.falcon-shop-sidebar {
  position: sticky;
  top: 100px;
}
.falcon-filters-toggle,
.falcon-filters-header {
  display: none;
}
.falcon-shop-sidebar-inner {
  background: var(--falcon-white);
  border: 1px solid var(--falcon-lightgray);
  border-radius: 6px;
  padding: 20px;
}
.falcon-filter-block {
  margin-bottom: 26px;
}
.falcon-filter-block:last-child {
  margin-bottom: 0;
}
.falcon-filter-block h4,
.falcon-filter-block .widget-title {
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--falcon-black);
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--falcon-gold);
}
.falcon-filter-category-list li {
  margin-bottom: 10px;
}
.falcon-filter-category-list a {
  font-size: 14px;
  color: var(--falcon-gray);
}
.falcon-filter-category-list li.is-current a {
  color: var(--falcon-gold-dark);
  font-weight: 700;
}
.falcon-filter-finish ul {
  list-style: none;
}
.falcon-filter-finish li {
  margin-bottom: 10px;
}
.falcon-filter-finish a {
  font-size: 14px;
  color: var(--falcon-gray);
}
.falcon-filter-finish li.chosen a {
  color: var(--falcon-gold-dark);
  font-weight: 700;
}
.falcon-filter-finish .count {
  color: #999;
  font-size: 12px;
}
.falcon-clear-filters {
  display: inline-block;
  margin-bottom: 20px;
  font-size: 13px;
  color: var(--falcon-gold-dark);
  text-decoration: underline;
}

/* ---- Product Grid ---- */
ul.products {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  list-style: none;
}
ul.products li.product {
  position: relative;
  background: var(--falcon-white);
  border: 1px solid var(--falcon-lightgray);
  border-radius: 6px;
  overflow: hidden;
  transition: all 0.25s;
}
ul.products li.product:hover {
  box-shadow: 0 10px 24px rgba(0,0,0,0.1);
  transform: translateY(-4px);
  border-color: var(--falcon-gold);
}
ul.products li.product a.woocommerce-LoopProduct-link {
  display: block;
  color: inherit;
}
.falcon-product-image-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
}
.falcon-product-image-wrap img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.falcon-product-image-swap {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.3s;
}
ul.products li.product:hover .falcon-product-image-swap {
  opacity: 1;
}
ul.products li.product .woocommerce-loop-product__title {
  font-size: 14px;
  font-weight: 600;
  color: var(--falcon-black);
  padding: 14px 14px 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 40px;
}
.falcon-loop-spec {
  padding: 6px 14px 0;
  font-size: 12px;
  color: var(--falcon-gray);
}
/* ---- Read-only star rating (average rating display) ---- */
.star-rating {
  position: relative;
  margin: 8px 14px 0;
  height: 1.1em;
  line-height: 1.1em;
  width: 5.5em;
  font-size: 15px;
  overflow: hidden;
}
.star-rating::before {
  content: "\2605\2605\2605\2605\2605";
  position: absolute;
  top: 0;
  left: 0;
  color: var(--falcon-lightgray);
  letter-spacing: 2px;
}
.star-rating span {
  position: absolute;
  top: 0;
  left: 0;
  overflow: hidden;
  height: 100%;
  /* Visually hide the literal "Rated X out of 5 based on..." text node -
     screen readers still read it, font-size:0 removes it from view
     entirely instead of relying on a small overflow:hidden box, which
     could still let a sliver of wrapped text show through and overlap
     the star glyphs below. */
  font-size: 0;
}
.star-rating span::before {
  content: "\2605\2605\2605\2605\2605";
  position: absolute;
  top: 0;
  left: 0;
  font-size: 15px;
  color: var(--falcon-gold);
  letter-spacing: 2px;
}

/* ---- Blog post body typography (single posts render via index.php's
   .falcon-generic-content wrapper, which had no styling of its own before
   this - was falling back to unstyled browser defaults). Heading sizes
   match the established "in-flowing-content" scale already used in
   .woocommerce-Tabs-panel h2 (20px), not the big standalone
   .falcon-section-title (32px) used for full section headers. ---- */
.falcon-generic-content {
  font-family: 'Segoe UI', Arial, sans-serif;
  color: var(--falcon-gray);
  max-width: 760px;
  padding-top: 40px;
  padding-bottom: 60px;
}
.falcon-generic-content > h1 {
  font-size: 30px;
  color: var(--falcon-black);
  margin-bottom: 24px;
  line-height: 1.25;
}
.falcon-generic-content h2 {
  font-size: 20px;
  color: var(--falcon-black);
  margin: 36px 0 16px;
}
.falcon-generic-content h3 {
  font-size: 16px;
  color: var(--falcon-black);
  margin: 28px 0 12px;
}
.falcon-generic-content p {
  line-height: 1.75;
  margin-bottom: 16px;
}
.falcon-generic-content ul:not(.falcon-feature-checklist),
.falcon-generic-content ol {
  margin: 0 0 20px;
  padding-left: 22px;
  line-height: 1.75;
}
/* :not(.falcon-btn) so this generic in-paragraph link color doesn't win
   (by specificity: .falcon-generic-content a is 0,1,1 vs .falcon-btn-gold's
   0,1,0) over .falcon-btn-gold's own black-on-gold button text - that
   collision was rendering "Submit Your Enquiry" as dark-gold-on-gold
   (near-invisible) instead of the standard black-on-gold CTA style. */
.falcon-generic-content a:not(.falcon-btn) {
  color: var(--falcon-gold-dark);
}
.falcon-generic-content a:not(.falcon-btn):hover {
  color: var(--falcon-gold);
}
.falcon-generic-content strong {
  color: var(--falcon-black);
}

/* ---- Post banner (in-content fallback for a featured image - no
   certification badge photo exists yet in the media library, so this is
   a CSS block styled like the site's black+gold header bar instead). ---- */
.falcon-post-banner {
  background: var(--falcon-black);
  border-radius: 8px;
  padding: 40px 24px;
  text-align: center;
  margin-bottom: 32px;
}
.falcon-post-banner-badge {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: rgba(212, 167, 44, 0.12);
  border: 2px solid var(--falcon-gold);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 16px;
}
.falcon-post-banner-badge::before {
  content: '\1F6E1';
  font-size: 30px;
  line-height: 1;
}
.falcon-post-banner-title {
  color: var(--falcon-white);
  font-size: 24px;
  letter-spacing: 0.5px;
  margin: 0 0 8px;
}
.falcon-post-banner-sub {
  color: var(--falcon-gold-light);
  font-size: 13px;
  letter-spacing: 1px;
  text-transform: uppercase;
  margin: 0;
}

/* ---- Product category cards (in-post) - reuses .falcon-icon-circle's
   visual treatment from the homepage category/shop-by-use grids, but
   wider cards with room for a description line, since those grids are
   sized for icon+label nav items only. ---- */
.falcon-post-category-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 24px;
  margin: 20px 0 28px;
}
.falcon-post-category-card {
  text-align: center;
  padding: 20px 14px;
  border: 1px solid var(--falcon-lightgray);
  border-radius: 8px;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.falcon-post-category-card:hover {
  border-color: var(--falcon-gold);
  box-shadow: 0 8px 20px rgba(212, 167, 44, 0.12);
}
.falcon-post-category-card .falcon-icon-circle {
  margin: 0 auto 14px;
}
.falcon-post-category-card .falcon-icon-circle span {
  font-size: 32px;
}
.falcon-post-category-card h4 {
  font-size: 15px;
  color: var(--falcon-black);
  margin: 0 0 8px;
}
.falcon-post-category-card p {
  font-size: 13px;
  color: var(--falcon-gray);
  line-height: 1.6;
  margin: 0;
}

/* ---- In-content CTA button (blog posts, e.g. "Submit Your Enquiry") ---- */
.falcon-post-cta-lead {
  text-align: center;
  font-size: 17px;
  color: var(--falcon-black);
  font-weight: 600;
  margin: 40px 0 4px;
}
.falcon-post-cta {
  text-align: center;
  margin: 16px 0 40px;
}

/* ---- Interactive star selector (review submission form) ----
   WooCommerce's own click handler (plugins/woocommerce/assets/js/frontend/
   single-product.js) computes the saved rating purely from DOM index:
   star-1..star-5 in that literal DOM order, no awareness of how they're
   visually laid out. A previous version of this rule used
   flex-direction: row-reverse plus a `~` (later-sibling) hover selector -
   a common "CSS-only star rating" recipe, but one that assumes the DOM
   order is reversed (5,4,3,2,1), which this WooCommerce version's markup
   is NOT. That mismatch meant clicking the visually "best" star was
   actually clicking DOM star-1, saving a rating of 1 regardless of which
   star was intended. Keeping natural (non-reversed) DOM order here and
   using :has() to reach *earlier* siblings (which `~` cannot do) fixes
   the save while keeping the same "hover/click fills stars up to this
   one" visual behavior. */
#respond p.stars {
  margin: 6px 0 0;
}
#respond p.stars span[role="group"] {
  display: flex;
  justify-content: flex-start;
  gap: 4px;
}
#respond p.stars a {
  position: relative;
  display: inline-block;
  width: 26px;
  height: 26px;
  font-size: 0;
  text-decoration: none;
}
#respond p.stars a::before {
  content: "\2605";
  position: absolute;
  inset: 0;
  font-size: 22px;
  line-height: 26px;
  text-align: center;
  color: var(--falcon-lightgray);
}
#respond p.stars a:hover::before,
#respond p.stars a:has(~ a:hover)::before,
#respond p.stars a.active::before,
#respond p.stars a:has(~ a.active)::before {
  color: var(--falcon-gold);
}
.falcon-loop-quote-btn {
  display: block;
  margin: 14px;
  text-align: center;
  padding: 10px;
  font-size: 13px;
}

/* ---- Badges: anchored to .falcon-product-image-wrap only (which clips
   overflow), so the badge can never render outside the image area
   regardless of title length or source image size ---- */
.falcon-product-badges {
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.falcon-badge {
  padding: 4px 10px;
  border-radius: 3px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.falcon-badge-bestseller {
  background: var(--falcon-gold);
  color: var(--falcon-black);
}
.falcon-badge-new {
  background: var(--falcon-black);
  color: var(--falcon-white);
}

/* ---- Pagination ---- */
nav.woocommerce-pagination {
  margin-top: 40px;
}
nav.woocommerce-pagination ul {
  display: flex;
  justify-content: center;
  gap: 8px;
  list-style: none;
}
nav.woocommerce-pagination ul li a,
nav.woocommerce-pagination ul li span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border: 1px solid var(--falcon-lightgray);
  border-radius: 4px;
  font-size: 14px;
  color: var(--falcon-gray);
}
nav.woocommerce-pagination ul li a:hover,
nav.woocommerce-pagination ul li span.current {
  background: var(--falcon-gold);
  border-color: var(--falcon-gold);
  color: var(--falcon-black);
}

/* ==== Single Product Page ==== */
.falcon-product-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
  padding: 40px 0;
}

/* ---- Gallery + code badge ---- */
.falcon-gallery-col {
  position: relative;
}
.falcon-product-code-badge {
  position: absolute;
  top: 14px;
  left: 14px;
  z-index: 5;
  background: var(--falcon-black);
  color: var(--falcon-gold-light);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.5px;
  padding: 6px 12px;
  border-radius: 4px;
}
.woocommerce-product-gallery {
  border: 1px solid var(--falcon-lightgray);
  border-radius: 8px;
  overflow: hidden;
}
.woocommerce-product-gallery__wrapper {
  margin: 0;
}
/* Fixed square frame for the main image, regardless of the uploaded
   image's actual dimensions - object-fit:contain so nothing is ever
   cropped or overflows the frame (unlike cover, which would crop). */
.woocommerce-product-gallery__image {
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: var(--falcon-white);
}
.woocommerce-product-gallery__image a,
.woocommerce-product-gallery__image img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  cursor: zoom-in;
}
.woocommerce-product-gallery .flex-control-thumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 12px 0 0;
  padding: 0 12px 12px;
  list-style: none;
}
.woocommerce-product-gallery .flex-control-thumbs li {
  width: 70px;
  height: 70px;
}
.woocommerce-product-gallery .flex-control-thumbs img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: 1px solid var(--falcon-lightgray);
  border-radius: 4px;
  cursor: pointer;
  transition: border-color 0.2s;
}
.woocommerce-product-gallery .flex-control-thumbs img.flex-active {
  border-color: var(--falcon-gold);
}

/* ---- Product info column ---- */
.falcon-summary-col .product_title.entry-title {
  font-size: 30px;
  font-weight: 800;
  color: var(--falcon-black);
  margin-bottom: 12px;
  line-height: 1.3;
}
.falcon-summary-col .product_meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 16px 0 4px;
  font-size: 0;
}
.falcon-summary-col .product_meta > span {
  display: inline-block;
  font-size: 12px;
  font-weight: 600;
  color: var(--falcon-gray);
  background: var(--falcon-offwhite);
  border: 1px solid var(--falcon-lightgray);
  border-radius: 20px;
  padding: 6px 14px;
}
.falcon-summary-col .product_meta a {
  color: var(--falcon-gold-dark);
}

.falcon-spec-table {
  width: 100%;
  border-collapse: collapse;
  margin: 20px 0 24px;
  border: 1px solid var(--falcon-lightgray);
  border-radius: 6px;
  overflow: hidden;
}
.falcon-spec-table th,
.falcon-spec-table td {
  text-align: left;
  padding: 12px 16px;
  border-bottom: 1px solid var(--falcon-lightgray);
  font-size: 14px;
}
.falcon-spec-table tr:last-child th,
.falcon-spec-table tr:last-child td {
  border-bottom: none;
}
.falcon-spec-table th {
  width: 140px;
  color: var(--falcon-gray);
  font-weight: 600;
  background: transparent;
}
.falcon-spec-table td {
  color: var(--falcon-black);
  font-weight: 600;
}
.falcon-spec-table-heading {
  font-size: 16px;
  font-weight: 700;
  color: var(--falcon-black);
  margin: 0 0 8px;
}

/* Description tab: [falcon_variant_table] shortcode output */
.falcon-variant-table {
  width: 100%;
  border-collapse: collapse;
  margin: 16px 0 28px;
  border: 1px solid var(--falcon-lightgray);
  border-radius: 6px;
  overflow: hidden;
}
.falcon-variant-table th,
.falcon-variant-table td {
  text-align: left;
  padding: 12px 16px;
  border-bottom: 1px solid var(--falcon-lightgray);
  font-size: 14px;
}
.falcon-variant-table tr:last-child th,
.falcon-variant-table tr:last-child td {
  border-bottom: none;
}
.falcon-variant-table thead th {
  background: var(--falcon-black);
  color: var(--falcon-white);
  font-weight: 700;
}
.falcon-variant-table tbody th {
  color: var(--falcon-black);
  font-weight: 600;
  background: var(--falcon-offwhite);
  white-space: nowrap;
}
.falcon-variant-table tbody td {
  color: var(--falcon-gray);
}
.falcon-variant-table tr.is-current-variant {
  background: rgba(212, 167, 44, 0.1);
}
.falcon-variant-table tr.is-current-variant th {
  background: transparent;
  color: var(--falcon-gold-dark);
}
.falcon-variant-table a {
  color: var(--falcon-gold-dark);
  text-decoration: underline;
}
.falcon-variant-current-badge {
  display: inline-block;
  margin-left: 8px;
  padding: 2px 8px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--falcon-black);
  background: var(--falcon-gold);
  border-radius: 10px;
  vertical-align: middle;
}

/* Description tab: [falcon_feature_list] shortcode output - 2-col checklist.
   .falcon-feature-check is shared with the trust block below. */
.falcon-feature-checklist {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px 20px;
  list-style: none;
  margin: 16px 0 28px;
  padding: 0;
}
.falcon-feature-checklist li {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 14px;
  color: var(--falcon-black);
}
.falcon-feature-check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--falcon-gold);
  color: var(--falcon-black);
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
}

/* Description tab: [falcon_faq] shortcode output */
.falcon-faq {
  margin: 16px 0 28px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.falcon-faq-item {
  border: 1px solid var(--falcon-lightgray);
  border-radius: 6px;
  padding: 0 16px;
  background: var(--falcon-offwhite);
}
.falcon-faq-item summary {
  cursor: pointer;
  padding: 12px 28px 12px 0;
  font-weight: 600;
  color: var(--falcon-black);
  font-size: 14px;
  position: relative;
  list-style: none;
}
.falcon-faq-item summary::-webkit-details-marker {
  display: none;
}
.falcon-faq-item summary::after {
  content: '+';
  position: absolute;
  right: 0;
  top: 8px;
  font-size: 20px;
  line-height: 1;
  color: var(--falcon-gold-dark);
  transition: transform 0.2s;
}
.falcon-faq-item[open] summary::after {
  transform: rotate(45deg);
}
.falcon-faq-item p {
  margin: 0 0 14px;
  font-size: 13.5px;
  color: var(--falcon-gray);
  line-height: 1.6;
}

/* Description tab: [falcon_note] shortcode output */
.falcon-note {
  margin: 16px 0 28px;
  padding: 14px 18px;
  background: var(--falcon-offwhite);
  border-left: 3px solid var(--falcon-gold);
  border-radius: 6px;
}
.falcon-note p {
  margin: 0;
  font-size: 14px;
  color: var(--falcon-black);
  font-weight: 600;
  line-height: 1.6;
}
.falcon-note p + p {
  margin-top: 8px;
}

/* Description tab: [falcon_use_for] shortcode output */
.falcon-use-for-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  list-style: none;
  margin: 16px 0 28px;
  padding: 0;
}
.falcon-use-for-list li {
  padding: 6px 16px;
  font-size: 13px;
  font-weight: 600;
  color: var(--falcon-black);
  background: var(--falcon-offwhite);
  border: 1px solid var(--falcon-gold);
  border-radius: 20px;
}

.woocommerce-product-details__short-description {
  color: var(--falcon-gray);
  line-height: 1.7;
  margin-bottom: 24px;
}

.falcon-quote-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  padding: 16px;
  font-size: 16px;
  margin-top: 10px;
}
.falcon-quote-btn::before {
  content: '\260E';
  font-size: 18px;
}

/* Secondary CTA - visually lighter than the solid-gold WhatsApp button */
.falcon-btn-outline-gold {
  background: transparent;
  color: var(--falcon-black);
  border: 1.5px solid var(--falcon-gold-dark);
}
.falcon-btn-outline-gold:hover {
  background: var(--falcon-offwhite);
  border-color: var(--falcon-gold);
}
.falcon-callback-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  padding: 14px;
  font-size: 15px;
  margin-top: 10px;
  cursor: pointer;
}
.falcon-callback-btn::before {
  content: '\21BB';
  font-size: 17px;
}

/* "Get a Callback" modal */
.falcon-callback-modal {
  position: fixed;
  inset: 0;
  z-index: 300;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.falcon-callback-modal.is-open {
  display: flex;
}
.falcon-callback-modal-overlay {
  position: absolute;
  inset: 0;
  background: rgba(26, 26, 26, 0.6);
}
.falcon-callback-modal-card {
  position: relative;
  width: 100%;
  max-width: 420px;
  max-height: 90vh;
  overflow-y: auto;
  background: var(--falcon-white);
  border-radius: 10px;
  border-top: 3px solid var(--falcon-gold);
  padding: 32px 28px 28px;
}
.falcon-callback-modal-close {
  position: absolute;
  top: 12px;
  right: 14px;
  background: none;
  border: none;
  font-size: 24px;
  line-height: 1;
  color: var(--falcon-gray);
  cursor: pointer;
}
.falcon-callback-modal-close:hover {
  color: var(--falcon-black);
}
.falcon-callback-form h3 {
  margin: 0 0 6px;
  font-size: 20px;
  color: var(--falcon-black);
}
.falcon-callback-modal-sub {
  color: var(--falcon-gray);
  font-size: 13.5px;
  margin: 0 0 20px;
  line-height: 1.5;
}
.falcon-callback-form label {
  display: block;
  margin-bottom: 16px;
  font-size: 14px;
  font-weight: 600;
  color: var(--falcon-black);
}
.falcon-callback-form input[type="text"],
.falcon-callback-form input[type="tel"],
.falcon-callback-form textarea {
  display: block;
  width: 100%;
  margin-top: 6px;
  padding: 12px 14px;
  border: 1px solid var(--falcon-lightgray);
  border-radius: 4px;
  font-family: inherit;
  font-size: 14px;
  resize: vertical;
}
.falcon-callback-error {
  display: block;
  color: #c0392b;
  font-size: 12px;
  margin-top: 4px;
  font-weight: 400;
}
.falcon-callback-submit-row {
  margin-top: 8px;
}
.falcon-callback-form .falcon-callback-submit {
  width: 100%;
  border: none;
  cursor: pointer;
  font-size: 15px;
}
.falcon-callback-form .falcon-callback-submit:disabled {
  opacity: 0.7;
  cursor: default;
}
.falcon-callback-success {
  text-align: center;
  padding: 20px 0 8px;
}
.falcon-callback-success p {
  font-size: 15px;
  font-weight: 600;
  color: var(--falcon-black);
  margin: 0;
}
body.falcon-modal-open {
  overflow: hidden;
}

/* Trust / seller info block - visually secondary to the CTA button above it */
.falcon-trust-block {
  margin-top: 18px;
  padding: 18px 20px;
  background: var(--falcon-offwhite);
  border: 1px solid var(--falcon-lightgray);
  border-left: 3px solid var(--falcon-gold);
  border-radius: 6px;
}
.falcon-trust-badge {
  display: inline-block;
  margin-bottom: 8px;
  padding: 4px 12px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--falcon-black);
  background: var(--falcon-gold);
  border-radius: 12px;
}
.falcon-trust-block-facts {
  font-size: 13px;
  color: var(--falcon-gray);
  line-height: 1.6;
  margin: 0 0 12px;
}
.falcon-trust-checklist {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.falcon-trust-checklist li {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--falcon-black);
  font-weight: 600;
}
.falcon-trust-checklist .falcon-feature-check {
  width: 18px;
  height: 18px;
  font-size: 11px;
}

/* ---- Tabs ---- */
.woocommerce-tabs {
  margin-top: 60px;
}
.woocommerce-tabs ul.tabs {
  display: flex;
  gap: 6px;
  list-style: none;
  border-bottom: 2px solid var(--falcon-lightgray);
  margin-bottom: 30px;
}
.woocommerce-tabs ul.tabs li a {
  display: inline-block;
  padding: 12px 22px;
  font-weight: 600;
  color: var(--falcon-gray);
}
.woocommerce-tabs ul.tabs li.active {
  border-bottom: 2px solid var(--falcon-gold);
  margin-bottom: -2px;
}
.woocommerce-tabs ul.tabs li.active a {
  color: var(--falcon-black);
}
.woocommerce-Tabs-panel h2 {
  font-size: 20px;
  color: var(--falcon-black);
  margin-bottom: 20px;
}
table.woocommerce-product-attributes {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid var(--falcon-lightgray);
  border-radius: 6px;
  overflow: hidden;
}
table.woocommerce-product-attributes th,
table.woocommerce-product-attributes td {
  text-align: left;
  padding: 12px 16px;
  border-bottom: 1px solid var(--falcon-lightgray);
  font-size: 14px;
}
table.woocommerce-product-attributes th {
  width: 160px;
  color: var(--falcon-gray);
  font-weight: 600;
}
table.woocommerce-product-attributes td {
  color: var(--falcon-black);
  font-weight: 600;
}
table.woocommerce-product-attributes td p {
  margin: 0;
}
#review_form .comment-form input[type="text"],
#review_form .comment-form input[type="email"],
#review_form .comment-form textarea,
#review_form .comment-form select {
  display: block;
  width: 100%;
  margin-top: 6px;
  padding: 12px 14px;
  border: 1px solid var(--falcon-lightgray);
  border-radius: 4px;
  font-family: inherit;
  font-size: 14px;
}
#review_form .comment-form p {
  margin-bottom: 16px;
}
#review_form .comment-form #submit {
  padding: 14px 32px;
  border-radius: 4px;
  font-weight: 600;
  background: var(--falcon-gold);
  color: var(--falcon-black);
  border: none;
  cursor: pointer;
}

/* ---- Related products ---- */
.related.products {
  margin-top: 60px;
  padding-top: 50px;
  border-top: 1px solid var(--falcon-lightgray);
}
.related.products h2 {
  text-align: center;
  font-size: 28px;
  color: var(--falcon-black);
  margin-bottom: 36px;
  position: relative;
}
.related.products h2::after {
  content: '';
  display: block;
  width: 60px;
  height: 3px;
  background: var(--falcon-gold);
  margin: 12px auto 0;
}

/* ==== Footer ==== */
.falcon-footer {
  position: relative;
  background: var(--falcon-charcoal) url('../images/footer-map.jpg') center center / cover no-repeat;
  color: var(--falcon-offwhite);
  padding: 60px 0 20px;
  overflow: hidden;
}
.falcon-footer::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(20,20,20,0.94) 0%, rgba(20,20,20,0.88) 60%, var(--falcon-charcoal) 100%);
  z-index: 0;
}
.falcon-footer-top,
.falcon-footer-divider,
.falcon-footer-bottom {
  position: relative;
  z-index: 1;
}
.falcon-footer-top {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  gap: 30px;
}
.falcon-footer-brand p {
  margin-top: 15px;
  color: #aaa;
  font-size: 14px;
}
.footer-widget-title {
  color: var(--falcon-gold-light);
  margin-bottom: 15px;
}
.footer-widget .textwidget p {
  margin-bottom: 10px;
  font-size: 14px;
  color: #ccc;
  line-height: 1.6;
}
.footer-widget .textwidget ul li {
  margin-bottom: 10px;
}
.footer-widget .textwidget a {
  font-size: 14px;
  color: #ccc;
  transition: color 0.2s;
}
.footer-widget .textwidget a:hover {
  color: var(--falcon-gold-light);
}
.falcon-footer-divider {
  height: 1px;
  background: var(--falcon-gold);
  opacity: 0.3;
  margin: 40px 0 20px;
}
.falcon-footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  font-size: 13px;
  color: #999;
}
.falcon-social-icons a {
  margin-left: 15px;
  color: var(--falcon-gold-light);
}

/* ==== RESPONSIVE (mobile/tablet, up to 992px) ==== */
@media (max-width: 992px) {
  .falcon-header-inner {
    flex-wrap: wrap;
  }

  .falcon-logo-text {
    font-size: 13px;
    line-height: 1.3;
    max-width: 140px;
  }

  .mobile-menu-toggle {
    display: flex !important;
    order: 2;
  }

  .falcon-primary-nav {
    display: none !important;
    width: 100%;
    order: 3;
  }

  .falcon-primary-nav.mobile-open {
    display: block !important;
    margin-top: 15px;
  }

  .falcon-nav-menu {
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    width: 100%;
  }

  .falcon-nav-menu > li {
    width: 100%;
    border-bottom: 1px solid rgba(255,255,255,0.1);
  }

  .falcon-nav-menu > li > a {
    display: block;
    padding: 12px 0;
  }

  .falcon-has-megamenu {
    position: static;
  }

  .falcon-megamenu {
    display: none;
    width: 100%;
    opacity: 1;
    visibility: visible;
    background: transparent;
    box-shadow: none;
    border-top: none;
  }

  .falcon-has-megamenu.mobile-open .falcon-megamenu {
    display: block;
  }

  .falcon-megamenu-inner {
    flex-direction: column;
    padding: 10px 0;
    gap: 10px;
  }

  .falcon-megamenu-col h4 {
    background: rgba(255,255,255,0.08);
    color: var(--falcon-gold-light);
  }

  .falcon-megamenu-links li a {
    color: var(--falcon-offwhite);
    padding: 6px 0;
    display: block;
  }

  .falcon-topbar-inner {
    flex-direction: column;
    text-align: center;
  }

  .falcon-icon-grid {
    gap: 20px;
  }
  .falcon-icon-item {
    width: 90px;
  }
  .falcon-icon-circle {
    width: 70px;
    height: 70px;
  }

  .falcon-footer-top {
    grid-template-columns: 1fr;
  }

  .falcon-hero h1 {
    font-size: 28px;
  }

  .falcon-hero-slider {
    min-height: 420px;
  }

  .falcon-hero-dots {
    bottom: 14px;
  }

  .falcon-why-choose-grid {
    grid-template-columns: 1fr;
  }

  .falcon-page-banner h1 {
    font-size: 24px;
  }

  .falcon-promo-grid {
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: 120px;
  }

  .falcon-blog-grid {
    grid-template-columns: 1fr;
  }

  .falcon-testimonials-grid {
    grid-template-columns: 1fr;
  }

  .falcon-govt-inner {
    flex-direction: column;
    text-align: center;
  }
  .falcon-govt-text {
    max-width: none;
  }

  .falcon-video-card {
    width: 190px;
  }
  .falcon-video-scroll-btn {
    display: none;
  }

  .falcon-variant-table {
    display: block;
    overflow-x: auto;
  }
  .falcon-feature-checklist {
    grid-template-columns: 1fr;
  }

  .falcon-partner-inner {
    grid-template-columns: 1fr;
  }
  .falcon-gallery-slider {
    min-height: 240px;
  }

  .falcon-shop-layout {
    grid-template-columns: 1fr;
  }

  .falcon-filters-toggle {
    display: block;
    width: 100%;
    padding: 12px;
    margin-bottom: 20px;
    background: var(--falcon-black);
    color: var(--falcon-white);
    border: none;
    border-radius: 4px;
    font-weight: 600;
    cursor: pointer;
  }

  /* .falcon-shop-sidebar itself is `position: sticky` with no z-index of
     its own, which still establishes a stacking context - without this,
     .falcon-shop-sidebar-inner's z-index only gets compared against other
     elements INSIDE that context, so the whole drawer (as a unit, at an
     implicit z-index of 0) loses to the header's z-index:100 and gets
     visually buried under it. Explicitly raising the drawer's real
     stacking-context root fixes that. */
  .falcon-shop-sidebar.is-open {
    z-index: 200;
  }

  .falcon-shop-sidebar-inner {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    width: 85%;
    max-width: 320px;
    z-index: 200;
    overflow-y: auto;
    border-radius: 0;
    transform: translateX(-100%);
    transition: transform 0.3s ease;
  }

  .falcon-shop-sidebar.is-open .falcon-shop-sidebar-inner {
    transform: translateX(0);
  }

  /* Dimming backdrop, tap-to-close. Sits below the chatbot bubble (150 -
     see chatbot.css) on purpose, so the bubble stays visibly poking above
     the dim and stays tappable while Filters is open, per spec - only the
     drawer itself (200) and its own contents should out-rank it. */
  .falcon-shop-sidebar-overlay {
    display: none;
  }
  .falcon-shop-sidebar.is-open .falcon-shop-sidebar-overlay {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 140;
    background: rgba(0, 0, 0, 0.5);
  }

  .falcon-filters-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
  }
  .falcon-filters-close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin-right: -10px;
    background: none;
    border: none;
    border-radius: 50%;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    color: var(--falcon-black);
  }
  .falcon-filters-close:hover,
  .falcon-filters-close:focus-visible {
    background: var(--falcon-lightgray);
  }

  ul.products {
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
  }

  .falcon-video-player {
    min-height: 260px;
  }

  .falcon-split-banner-inner {
    flex-direction: column;
    min-height: 0;
  }
  .falcon-split-banner-text {
    padding: 40px 20px 0;
    text-align: center;
  }
  .falcon-split-banner-text h1 {
    font-size: 28px;
  }
  .falcon-split-banner-image img {
    min-height: 260px;
  }
  .falcon-about-map {
    width: 700px;
  }

  /* ---- Single product page ---- */
  .falcon-product-layout {
    grid-template-columns: 1fr;
    gap: 24px;
    padding: 20px 0;
  }

  .falcon-quote-btn {
    position: sticky;
    bottom: 12px;
    z-index: 50;
    box-shadow: 0 6px 20px rgba(0,0,0,0.25);
  }

  .woocommerce-tabs ul.tabs {
    flex-wrap: wrap;
  }

  table.woocommerce-product-attributes th {
    width: 120px;
  }

  .falcon-callback-modal {
    padding: 0;
  }
  .falcon-callback-modal-card {
    max-width: 100%;
    height: 100%;
    max-height: 100%;
    border-radius: 0;
    padding-top: 56px;
  }
}