/**
Theme Name: Astra Child
Author: Brainstorm Force
Author URI: http://wpastra.com/about/
Description: Astra is the fastest, fully customizable & beautiful theme suitable for blogs, personal portfolios and business websites. It is very lightweight (less than 50KB on frontend) and offers unparalleled speed. Built with SEO in mind, Astra comes with schema.org code integrated so search engines will love your site. Astra offers plenty of sidebar options and widget areas giving you a full control for customizations. Furthermore, we have included special features and templates so feel free to choose any of your favorite page builder plugin to create pages flexibly. Some of the other features: # WooCommerce Ready # Responsive # Compatible with major plugins # Translation Ready # Extendible with premium addons # Regularly updated # Designed, Developed, Maintained & Supported by Brainstorm Force. Looking for a perfect base theme? Look no further. Astra is fast, fully customizable and beautiful theme!
Version: 1.1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: astra-child
Template: astra
*/

/**
 * QICHAO Industrial Design System
 * Henan Qichao Intelligent Machinery Co., Ltd.
 * Appended to Astra Child style.css
 * ---------------------------------------------------------------
 * Palette:  Navy #0B2A4A  |  Orange #F26B21  |  Blue #1E6FB8
 *           Grey #F5F7FA  |  Border #E3E8EF  |  Text #4A5A6A
 * ---------------------------------------------------------------
 */

:root {
  /* --- Brand --- */
  --qc-navy: #0B2A4A;
  --qc-navy-deep: #071D35;
  --qc-navy-soft: #143A63;
  --qc-orange: #F26B21;
  --qc-orange-dark: #D95A15;
  --qc-blue: #1E6FB8;
  --qc-blue-soft: #E8F1FA;

  /* --- Neutrals --- */
  --qc-white: #FFFFFF;
  --qc-grey-50: #F5F7FA;
  --qc-grey-100: #EDF1F6;
  --qc-border: #E3E8EF;
  --qc-text: #4A5A6A;
  --qc-text-dark: #1B2733;
  --qc-text-muted: #7A8A9A;

  /* --- Layout --- */
  --qc-container: 1240px;
  --qc-container-narrow: 940px;
  --qc-gap: 28px;
  --qc-radius: 6px;
  --qc-radius-lg: 10px;

  /* --- Section rhythm --- */
  --qc-sec-y: 92px;
  --qc-sec-y-sm: 60px;

  /* --- Elevation --- */
  --qc-shadow-sm: 0 1px 2px rgba(11, 42, 74, .06);
  --qc-shadow: 0 4px 18px rgba(11, 42, 74, .08);
  --qc-shadow-lg: 0 10px 34px rgba(11, 42, 74, .12);
}

/* =============================================================
   1. OVERRIDE ASTRA GLOBAL PALETTE (kills the olive-green theme)
   ============================================================= */
:root {
  --ast-global-color-0: #F26B21;   /* primary / accent  */
  --ast-global-color-1: #D95A15;   /* primary hover     */
  --ast-global-color-2: #0B2A4A;   /* headings          */
  --ast-global-color-3: #4A5A6A;   /* body text         */
  --ast-global-color-4: #FFFFFF;   /* surfaces          */
  --ast-global-color-5: #F5F7FA;   /* light bg          */
  --ast-global-color-6: #E3E8EF;   /* borders           */
  --ast-global-color-7: #1E6FB8;   /* links / icons     */
  --ast-global-color-8: #222222;   /* dark              */
}

/* =============================================================
   2. BASE TYPOGRAPHY
   ============================================================= */
body,
.ast-separate-container .ast-article-post,
.ast-separate-container .ast-article-single {
  font-family: "Inter", "Helvetica Neue", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  color: var(--qc-text);
  font-size: 16px;
  line-height: 1.72;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6,
.entry-title,
.site-title {
  font-family: "Inter", "Helvetica Neue", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  color: var(--qc-navy);
  font-weight: 700;
  letter-spacing: -0.015em;
  line-height: 1.2;
}

h1 { font-size: clamp(34px, 4.4vw, 54px); }
h2 { font-size: clamp(26px, 3.1vw, 38px); }
h3 { font-size: clamp(20px, 2.2vw, 26px); }
h4 { font-size: clamp(17px, 1.7vw, 20px); }

p { margin-bottom: 1.05em; }

a { color: var(--qc-blue); text-decoration: none; transition: color .18s ease; }
a:hover, a:focus { color: var(--qc-orange); }

/* =============================================================
   3. LAYOUT PRIMITIVES
   ============================================================= */
.qc-container {
  max-width: var(--qc-container);
  margin-inline: auto;
  padding-inline: 26px;
  width: 100%;
}
.qc-container--narrow { max-width: var(--qc-container-narrow); }

.qc-section { padding-block: var(--qc-sec-y); }
.qc-section--sm { padding-block: var(--qc-sec-y-sm); }
.qc-section--grey { background: var(--qc-grey-50); }
.qc-section--navy { background: var(--qc-navy); }
.qc-section--navy h2,
.qc-section--navy h3,
.qc-section--navy h4 { color: #fff; }
.qc-section--navy p { color: rgba(255, 255, 255, .78); }

/* Section heading block (eyebrow + title + optional link) */
.qc-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
  margin-bottom: 38px;
}
.qc-head__eyebrow {
  display: block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--qc-orange);
  margin-bottom: 10px;
}
.qc-head__title {
  margin: 0;
  font-size: clamp(26px, 3vw, 36px);
  color: var(--qc-navy);
}
.qc-head__sub {
  margin: 12px 0 0;
  color: var(--qc-text);
  max-width: 720px;
}
.qc-head__link {
  font-weight: 600;
  font-size: 15px;
  color: var(--qc-navy);
  white-space: nowrap;
}
.qc-head__link:hover { color: var(--qc-orange); }

/* Left-aligned accent rule under headings */
.qc-rule {
  width: 56px;
  height: 4px;
  border-radius: 2px;
  background: var(--qc-orange);
  margin-bottom: 20px;
}

/* =============================================================
   4. BUTTONS
   ============================================================= */
.qc-btn,
.elementor-button.qc-btn {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 14px 30px;
  border-radius: var(--qc-radius);
  font-size: 15px;
  font-weight: 600;
  line-height: 1;
  text-align: center;
  cursor: pointer;
  border: 2px solid transparent;
  transition: background .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
}
.qc-btn--primary {
  background: var(--qc-orange);
  color: #fff;
}
.qc-btn--primary:hover {
  background: var(--qc-orange-dark);
  color: #fff;
  transform: translateY(-1px);
}
.qc-btn--ghost {
  background: transparent;
  color: #fff;
  border-color: rgba(255, 255, 255, .55);
}
.qc-btn--ghost:hover {
  background: #fff;
  color: var(--qc-navy);
  border-color: #fff;
}
.qc-btn--outline {
  background: transparent;
  color: var(--qc-navy);
  border-color: var(--qc-border);
}
.qc-btn--outline:hover {
  border-color: var(--qc-orange);
  color: var(--qc-orange);
}

/* Astra / Elementor button harmonisation */
.ast-button, .button, input[type="submit"],
.elementor-button:not(.qc-btn) {
  border-radius: var(--qc-radius);
  font-weight: 600;
  transition: background .18s ease, color .18s ease, border-color .18s ease;
}

/* =============================================================
   5. CARDS
   ============================================================= */
.qc-card {
  background: #fff;
  border: 1px solid var(--qc-border);
  border-radius: var(--qc-radius-lg);
  overflow: hidden;
  transition: box-shadow .22s ease, transform .22s ease, border-color .22s ease;
}
.qc-card:hover {
  box-shadow: var(--qc-shadow-lg);
  transform: translateY(-3px);
  border-color: #D6DEE8;
}

/* Image placeholder — reserved slot for the client's own photos */
.qc-ph {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background:
    repeating-linear-gradient(45deg, #F3F6F9, #F3F6F9 12px, #EDF1F6 12px, #EDF1F6 24px);
  border: 1px dashed #C6D2DF;
  color: var(--qc-text-muted);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .03em;
  text-align: center;
  min-height: 180px;
  border-radius: var(--qc-radius);
}
.qc-ph::before {
  content: "";
  width: 32px;
  height: 26px;
  border: 2px solid #B9C6D4;
  border-radius: 4px;
  background:
    radial-gradient(circle at 26% 32%, #B9C6D4 2.4px, transparent 2.6px),
    linear-gradient(135deg, transparent 52%, #B9C6D4 52%, #B9C6D4 62%, transparent 62%);
}
.qc-ph--sm { min-height: 120px; }
.qc-ph--lg { min-height: 260px; }

/* =============================================================
   6. HERO
   ============================================================= */
.qc-hero {
  position: relative;
  background:
    linear-gradient(135deg, var(--qc-navy) 0%, var(--qc-navy-deep) 55%, #0A2440 100%);
  color: #fff;
  overflow: hidden;
}
.qc-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(60% 80% at 88% 18%, rgba(30, 111, 184, .35), transparent 62%),
    radial-gradient(45% 60% at 6% 96%, rgba(242, 107, 33, .18), transparent 66%);
  pointer-events: none;
}
.qc-hero__inner {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  gap: 54px;
  align-items: center;
  padding-block: 86px 90px;
}
.qc-hero__eyebrow {
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #F5A26E;
  margin-bottom: 16px;
}
.qc-hero h1 {
  color: #fff;
  margin: 0 0 20px;
  font-size: clamp(32px, 4.3vw, 52px);
  line-height: 1.14;
}
.qc-hero__lead {
  color: rgba(255, 255, 255, .8);
  font-size: 17px;
  max-width: 560px;
  margin-bottom: 32px;
}
.qc-hero__actions { display: flex; gap: 14px; flex-wrap: wrap; }

/* Hero mini feature strip */
.qc-hero__facts {
  display: flex;
  gap: 26px;
  flex-wrap: wrap;
  margin-top: 38px;
  padding-top: 26px;
  border-top: 1px solid rgba(255, 255, 255, .16);
}
.qc-hero__fact {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  color: rgba(255, 255, 255, .9);
  font-weight: 500;
}
.qc-hero__fact svg { flex: 0 0 auto; }

/* =============================================================
   7. STAT BAR
   ============================================================= */
.qc-stats {
  background: #fff;
  border-bottom: 1px solid var(--qc-border);
}
.qc-stats__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
  padding-block: 34px;
}
.qc-stat {
  display: flex;
  align-items: center;
  gap: 16px;
  padding-inline: 6px;
}
.qc-stat + .qc-stat { border-left: 1px solid var(--qc-border); padding-left: 26px; }
.qc-stat__icon { flex: 0 0 auto; color: var(--qc-navy); opacity: .85; }
.qc-stat__num {
  font-size: clamp(24px, 2.7vw, 32px);
  font-weight: 800;
  color: var(--qc-navy);
  line-height: 1.1;
  letter-spacing: -.02em;
}
.qc-stat__label {
  font-size: 13.5px;
  color: var(--qc-text);
  margin-top: 2px;
}

/* =============================================================
   8. CATEGORY GRID
   ============================================================= */
.qc-cats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 20px;
}
.qc-cat {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--qc-border);
  border-radius: var(--qc-radius);
  overflow: hidden;
  text-decoration: none;
  transition: box-shadow .22s ease, transform .22s ease, border-color .22s ease;
}
.qc-cat:hover {
  box-shadow: var(--qc-shadow-lg);
  transform: translateY(-3px);
  border-color: #D6DEE8;
}
.qc-cat__media {
  aspect-ratio: 4 / 3;
  background:
    repeating-linear-gradient(45deg, #F3F6F9, #F3F6F9 12px, #EDF1F6 12px, #EDF1F6 24px);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--qc-text-muted);
  font-size: 12.5px;
  font-weight: 600;
  text-align: center;
  padding: 12px;
  border-bottom: 1px solid var(--qc-border);
}
.qc-cat__body {
  padding: 16px 16px 18px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1;
}
.qc-cat__name {
  font-size: 15.5px;
  font-weight: 700;
  color: var(--qc-navy);
  line-height: 1.35;
}
.qc-cat__more {
  margin-top: auto;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--qc-orange);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

/* =============================================================
   9. FEATURE (WHY CHOOSE US) GRID
   ============================================================= */
.qc-features {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(215px, 1fr));
  gap: 22px;
}
.qc-feature {
  background: #fff;
  border: 1px solid var(--qc-border);
  border-radius: var(--qc-radius);
  padding: 26px 24px;
  transition: box-shadow .22s ease, transform .22s ease;
}
.qc-feature:hover { box-shadow: var(--qc-shadow); transform: translateY(-2px); }
.qc-feature__icon {
  width: 46px;
  height: 46px;
  border-radius: 10px;
  background: var(--qc-blue-soft);
  color: var(--qc-blue);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 16px;
}
.qc-feature h4 {
  margin: 0 0 8px;
  font-size: 16.5px;
  color: var(--qc-navy);
}
.qc-feature p {
  margin: 0;
  font-size: 14.5px;
  color: var(--qc-text);
  line-height: 1.65;
}

/* =============================================================
   10. PROCESS STEPS
   ============================================================= */
.qc-steps {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 20px;
}
.qc-step {
  position: relative;
  background: #fff;
  border: 1px solid var(--qc-border);
  border-radius: var(--qc-radius);
  padding: 26px 22px 24px;
}
.qc-step__icon {
  width: 42px;
  height: 42px;
  border-radius: 8px;
  background: var(--qc-navy);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 16px;
}
.qc-step__no {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .12em;
  color: var(--qc-orange);
  text-transform: uppercase;
}
.qc-step h4 { margin: 6px 0 8px; font-size: 16px; color: var(--qc-navy); }
.qc-step p { margin: 0; font-size: 14px; color: var(--qc-text); line-height: 1.6; }

/* =============================================================
   11. SPLIT (image + text) BLOCK
   ============================================================= */
.qc-split {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 52px;
  align-items: center;
}
.qc-split--reverse .qc-split__media { order: 2; }

.qc-checklist { list-style: none; margin: 0 0 26px; padding: 0; }
.qc-checklist li {
  position: relative;
  padding-left: 30px;
  margin-bottom: 12px;
  font-size: 15px;
  color: var(--qc-text);
}
.qc-checklist li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 6px;
  width: 17px;
  height: 17px;
  border-radius: 50%;
  background: var(--qc-blue-soft);
  border: 1.5px solid var(--qc-blue);
}
.qc-checklist li::after {
  content: "";
  position: absolute;
  left: 5.5px;
  top: 11.5px;
  width: 5px;
  height: 2.5px;
  border-left: 2px solid var(--qc-blue);
  border-bottom: 2px solid var(--qc-blue);
  transform: rotate(-45deg);
}

/* =============================================================
   12. MEDIA GRID (factory / gallery)
   ============================================================= */
.qc-media-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 18px;
}
.qc-media-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.qc-media {
  border-radius: var(--qc-radius);
  overflow: hidden;
  border: 1px solid var(--qc-border);
  background: #fff;
}
.qc-media__img {
  aspect-ratio: 4 / 3;
  background:
    repeating-linear-gradient(45deg, #F3F6F9, #F3F6F9 12px, #EDF1F6 12px, #EDF1F6 24px);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--qc-text-muted);
  font-size: 12.5px;
  font-weight: 600;
  text-align: center;
  padding: 12px;
}
.qc-media__cap {
  padding: 13px 15px;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--qc-navy);
  border-top: 1px solid var(--qc-border);
}

/* =============================================================
   13. CTA BAND
   ============================================================= */
.qc-cta {
  position: relative;
  background:
    linear-gradient(120deg, var(--qc-navy) 0%, #0A2440 60%, #12304F 100%);
  color: #fff;
  overflow: hidden;
}
.qc-cta::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(55% 75% at 82% 30%, rgba(30, 111, 184, .38), transparent 64%);
  pointer-events: none;
}
.qc-cta__inner {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 36px;
  flex-wrap: wrap;
  padding-block: 66px;
}
.qc-cta h2 {
  color: #fff;
  margin: 0 0 10px;
  font-size: clamp(24px, 2.9vw, 34px);
}
.qc-cta p {
  margin: 0;
  color: rgba(255, 255, 255, .78);
  max-width: 620px;
}
.qc-cta__actions { display: flex; gap: 14px; flex-wrap: wrap; }

/* =============================================================
   14. PRODUCT SECTIONS (Products page)
   ============================================================= */
.qc-prod { border-top: 1px solid var(--qc-border); padding-block: 74px; }
.qc-prod:first-of-type { border-top: 0; }
.qc-prod__head { display: flex; align-items: baseline; gap: 16px; margin-bottom: 26px; }
.qc-prod__no {
  font-size: 30px;
  font-weight: 800;
  color: var(--qc-orange);
  line-height: 1;
  opacity: .85;
  font-variant-numeric: tabular-nums;
}
.qc-prod__title { margin: 0; font-size: clamp(22px, 2.5vw, 30px); color: var(--qc-navy); }
.qc-prod__sub {
  font-size: 13px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--qc-text-muted);
  font-weight: 600;
  margin-top: 6px;
}

/* Spec table */
.qc-spec {
  width: 100%;
  border-collapse: collapse;
  font-size: 14.5px;
  background: #fff;
  border: 1px solid var(--qc-border);
  border-radius: var(--qc-radius);
  overflow: hidden;
}
.qc-spec th, .qc-spec td {
  padding: 12px 16px;
  text-align: left;
  border-bottom: 1px solid var(--qc-border);
}
.qc-spec thead th {
  background: var(--qc-navy);
  color: #fff;
  font-weight: 600;
  font-size: 13.5px;
  letter-spacing: .03em;
}
.qc-spec tbody tr:nth-child(even) { background: var(--qc-grey-50); }
.qc-spec tbody tr:last-child td { border-bottom: 0; }
.qc-spec td:first-child { font-weight: 600; color: var(--qc-navy); width: 38%; }

/* Anchor nav */
.qc-anchors {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 26px;
}
.qc-anchor {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 15px;
  border: 1px solid var(--qc-border);
  border-radius: 100px;
  background: #fff;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--qc-navy);
}
.qc-anchor:hover {
  border-color: var(--qc-orange);
  color: var(--qc-orange);
  background: #FFF7F2;
}

/* =============================================================
   15. CONTACT
   ============================================================= */
.qc-contact {
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
  gap: 52px;
  align-items: start;
}
.qc-contact__item { display: flex; gap: 16px; margin-bottom: 26px; }
.qc-contact__ico {
  flex: 0 0 auto;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: var(--qc-blue-soft);
  color: var(--qc-blue);
  display: flex;
  align-items: center;
  justify-content: center;
}
.qc-contact__label {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--qc-text-muted);
  margin-bottom: 3px;
}
.qc-contact__val { font-size: 15.5px; color: var(--qc-navy); font-weight: 600; line-height: 1.5; }
.qc-contact__val a { color: var(--qc-navy); }
.qc-contact__val a:hover { color: var(--qc-orange); }

/* Form field polish */
.qc-form input[type="text"],
.qc-form input[type="email"],
.qc-form input[type="tel"],
.qc-form select,
.qc-form textarea,
.wpforms-container input[type="text"],
.wpforms-container input[type="email"],
.wpforms-container textarea,
.wpforms-container select {
  width: 100%;
  padding: 12px 14px !important;
  border: 1px solid var(--qc-border) !important;
  border-radius: var(--qc-radius) !important;
  background: #fff !important;
  font-size: 15px !important;
  color: var(--qc-text-dark) !important;
  transition: border-color .18s ease, box-shadow .18s ease;
}
.qc-form input:focus,
.qc-form textarea:focus,
.wpforms-container input:focus,
.wpforms-container textarea:focus {
  border-color: var(--qc-orange) !important;
  box-shadow: 0 0 0 3px rgba(242, 107, 33, .13) !important;
  outline: 0;
}
.wpforms-container .wpforms-submit {
  background: var(--qc-orange) !important;
  border: 0 !important;
  border-radius: var(--qc-radius) !important;
  color: #fff !important;
  font-weight: 600 !important;
  padding: 14px 34px !important;
  font-size: 15px !important;
}
.wpforms-container .wpforms-submit:hover { background: var(--qc-orange-dark) !important; }

/* =============================================================
   16. TABLES (generic)
   ============================================================= */
.elementor-widget-table table,
.elementor-widget-text-editor table {
  border-collapse: collapse;
  width: 100%;
}
.elementor-widget-table td,
.elementor-widget-table th,
.elementor-widget-text-editor table td,
.elementor-widget-text-editor table th {
  border: 1px solid var(--qc-border);
  padding: 11px 14px;
  font-size: 14.5px;
}
.elementor-widget-table th { background: var(--qc-grey-50); color: var(--qc-navy); }

/* =============================================================
   17. HEADER / FOOTER HARMONISATION
   ============================================================= */
/* Kill olive-green leftovers anywhere in header/footer */
.site-header .ast-builder-menu .menu-item.current-menu-item > .menu-link,
.main-header-menu .current-menu-item > .menu-link,
.ast-desktop .main-header-menu > .menu-item.current-menu-item > .menu-link {
  color: var(--qc-orange) !important;
}
.ast-builder-button-wrap .ast-custom-button,
.ast-header-button-wrap .ast-custom-button {
  background: var(--qc-orange) !important;
  color: #fff !important;
  border-radius: var(--qc-radius) !important;
  border: 0 !important;
  font-weight: 600;
}
.ast-builder-button-wrap .ast-custom-button:hover {
  background: var(--qc-orange-dark) !important;
  color: #fff !important;
}
.site-header .ast-builder-html-element,
.site-header .ast-header-html { color: #fff; }

/* Top bar */
.ast-above-header-wrap .ast-above-header-bar,
.ast-above-header-section-wrap { background: var(--qc-navy-deep) !important; }
.ast-above-header-wrap .ast-above-header-bar a,
.ast-above-header-wrap .ast-above-header-bar .ast-builder-html-element { color: rgba(255,255,255,.9); }

/* Footer */
.site-footer .ast-footer-copyright,
.site-footer .ast-footer-copyright a { color: rgba(255, 255, 255, .6); }
.site-footer .widget-title,
.site-footer h2, .site-footer h3, .site-footer h4, .site-footer h6 {
  color: #fff;
}
.site-footer .menu-item a,
.site-footer .widget a { color: rgba(255, 255, 255, .82); }
.site-footer .menu-item a:hover,
.site-footer .widget a:hover { color: var(--qc-orange); }

/* Social icons */
.site-footer .ast-builder-social-element svg,
.site-header .ast-builder-social-element svg { fill: currentColor; }

/* =============================================================
   18. ELEMENTOR CONTAINER / SPACING NORMALISATION
   ============================================================= */
.elementor-section.elementor-section-boxed > .elementor-container,
.e-con.e-parent { max-width: var(--qc-container); }

/* Remove default extra gap under last element in sections */
.elementor-widget:last-child > .elementor-widget-container > *:last-child { margin-bottom: 0; }

/* Elementor heading default colours */
.elementor-widget-heading .elementor-heading-title { color: inherit; }

/* Make Elementor icon boxes match */
.elementor-widget-icon-box .elementor-icon-box-icon { color: var(--qc-blue); }

/* =============================================================
   19. RESPONSIVE
   ============================================================= */
@media (max-width: 1024px) {
  :root { --qc-sec-y: 68px; --qc-sec-y-sm: 46px; }
  .qc-hero__inner { grid-template-columns: 1fr; gap: 40px; padding-block: 64px 68px; }
  .qc-split { grid-template-columns: 1fr; gap: 34px; }
  .qc-split--reverse .qc-split__media { order: 0; }
  .qc-contact { grid-template-columns: 1fr; gap: 40px; }
  .qc-stats__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qc-stat:nth-child(3) { border-left: 0; padding-left: 6px; }
  .qc-media-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
  :root { --qc-sec-y: 52px; --qc-sec-y-sm: 38px; --qc-gap: 18px; }
  .qc-container { padding-inline: 18px; }
  .qc-stats__grid { grid-template-columns: 1fr; gap: 0; }
  .qc-stat { padding-block: 16px; }
  .qc-stat + .qc-stat {
    border-left: 0;
    border-top: 1px solid var(--qc-border);
    padding-left: 6px;
  }
  .qc-media-grid--4 { grid-template-columns: 1fr; }
  .qc-head { flex-direction: column; align-items: flex-start; gap: 12px; }
  .qc-cta__inner { flex-direction: column; align-items: flex-start; padding-block: 50px; }
  .qc-spec th, .qc-spec td { padding: 10px 12px; font-size: 13.5px; }
  .qc-spec td:first-child { width: 45%; }
}

/* =============================================================
   20. UTILITIES
   ============================================================= */
.qc-mb-0 { margin-bottom: 0 !important; }
.qc-mt-0 { margin-top: 0 !important; }
.qc-text-center { text-align: center; }
.qc-mx-auto { margin-inline: auto; }
.qc-sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* =============================================================
   21. SITE FOOTER (Qichao) — added by QCSITE_V1
   ============================================================= */
.qc-footer { background: var(--qc-navy-deep); color: rgba(255,255,255,.75); }
.qc-footer__grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr .9fr 1.2fr;
  gap: 44px;
  padding-block: 64px 48px;
}
.qc-footer__logo { font-size: 25px; font-weight: 800; letter-spacing: .08em; color: #fff; }
.qc-footer__logo span { color: var(--qc-orange); }
.qc-footer__desc { font-size: 14.5px; line-height: 1.72; margin: 14px 0 18px; color: rgba(255,255,255,.72); }
.qc-footer__contact { display: flex; flex-direction: column; gap: 9px; font-size: 14.5px; }
.qc-footer__contact a { color: #fff; }
.qc-footer__contact a:hover { color: var(--qc-orange); }
.qc-footer__col h4 { color: #fff; font-size: 15px; margin: 0 0 16px; letter-spacing: .02em; }
.qc-footer__col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 9px; }
.qc-footer__col ul a { color: rgba(255,255,255,.78); font-size: 14.5px; }
.qc-footer__col ul a:hover { color: var(--qc-orange); }
.qc-footer__col p { font-size: 14.5px; margin: 0 0 18px; color: rgba(255,255,255,.72); }
.qc-footer__bar { border-top: 1px solid rgba(255,255,255,.12); font-size: 13.5px; color: rgba(255,255,255,.55); }
.qc-footer__bar .qc-container {
  padding-block: 18px;
  display: flex; justify-content: space-between; gap: 14px; flex-wrap: wrap;
}
/* hide the empty theme footer rows so only our footer shows */
.site-footer > .ast-footer-overlay, .site-footer .footer-width-fixer { display: none; }

/* =============================================================
   22. HEADER "GET A QUOTE" MENU ITEM
   ============================================================= */
.main-header-menu li.qc-cta-item > a,
.ast-header-break-point .main-header-menu li.qc-cta-item > a {
  background: var(--qc-orange) !important;
  color: #fff !important;
  border-radius: var(--qc-radius) !important;
  font-weight: 600 !important;
  padding: 11px 22px !important;
  line-height: 1.15 !important;
  margin-left: 14px;
}
.main-header-menu li.qc-cta-item > a:hover,
.main-header-menu li.qc-cta-item > a:focus {
  background: var(--qc-orange-dark) !important;
  color: #fff !important;
}

/* =============================================================
   23. INQUIRY FORM
   ============================================================= */
.qc-inquiry { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 20px; }
.qc-inquiry .qc-field--full { grid-column: 1 / -1; }
.qc-inquiry label {
  display: block; font-size: 13px; font-weight: 600;
  color: var(--qc-navy); margin-bottom: 7px;
}
.qc-inquiry input[type="text"],
.qc-inquiry input[type="email"],
.qc-inquiry select,
.qc-inquiry textarea {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--qc-border);
  border-radius: var(--qc-radius);
  background: #fff;
  font-size: 15px;
  color: var(--qc-text-dark);
  font-family: inherit;
  transition: border-color .18s ease, box-shadow .18s ease;
}
.qc-inquiry input:focus,
.qc-inquiry select:focus,
.qc-inquiry textarea:focus {
  border-color: var(--qc-orange);
  box-shadow: 0 0 0 3px rgba(242,107,33,.13);
  outline: 0;
}
.qc-inquiry textarea { resize: vertical; }
.qc-submit {
  background: var(--qc-orange);
  color: #fff;
  border: 0;
  border-radius: var(--qc-radius);
  padding: 14px 34px;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: background .18s ease;
}
.qc-submit:hover { background: var(--qc-orange-dark); }
.qc-alert { border-radius: var(--qc-radius); padding: 14px 18px; font-size: 14.5px; margin-bottom: 22px; }
.qc-alert--ok { background: #EAF7EF; border: 1px solid #B7E3C6; color: #1D6B3C; }
.qc-alert--err { background: #FDEEEE; border: 1px solid #F3C2C2; color: #A32B2B; }

/* Contact page two-column layout (Elementor container) */
.qc-contact-row { padding-block: var(--qc-sec-y); background: #fff; }
.qc-contact-row > .e-con-inner {
  max-width: var(--qc-container);
  margin-inline: auto;
  padding-inline: 26px;
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
  gap: 52px;
  align-items: start;
}

/* =============================================================
   24. SMALL FIXES
   ============================================================= */
.qc-stat__num { white-space: nowrap; }
.qc-hero__inner > div:last-child img { box-shadow: 0 18px 50px rgba(0,0,0,.35); }

@media (max-width: 1024px) {
  .qc-footer__grid { grid-template-columns: 1fr 1fr; gap: 34px; padding-block: 52px 36px; }
  .qc-contact-row > .e-con-inner { grid-template-columns: 1fr; gap: 38px; }
}
@media (max-width: 640px) {
  .qc-footer__grid { grid-template-columns: 1fr; gap: 28px; }
  .qc-inquiry { grid-template-columns: 1fr; }
  .qc-contact-row > .e-con-inner { padding-inline: 18px; }
  .main-header-menu li.qc-cta-item > a { margin-left: 0; }
}
/* =============================================================
   22. QCFIX_V1 — responsive & consistency fixes (2026-09-28)
   ============================================================= */
/* Astra's own header duplicates the plugin header — hide it everywhere */
#masthead { display: none !important; }

/* Full-bleed page sections: parent containers span the whole viewport,
   inner .qc-container keeps the 1240px centred content column */
.e-con.e-parent { max-width: 100% !important; margin-inline: auto !important; }
.elementor[data-elementor-type="wp-page"] { max-width: 100% !important; }
.elementor-template-full-width .ast-container,
.elementor-page .ast-container { max-width: 100% !important; padding-inline: 0 !important; }

/* Product category cards: 2 columns on tablets instead of 3 cramped ones */
@media (min-width: 700px) and (max-width: 1024px) {
  .qc-cat__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* Advantage/feature chip rows: never fewer than 2 readable columns */
@media (max-width: 767px) {
  .qc-hero__facts { gap: 14px 22px; }
  .qc-hero__fact { font-size: 13px; }
}
/* QCFIX_V2 — tablet grid refinement */
@media (min-width: 700px) and (max-width: 1024px) {
  .qc-cats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qc-features { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* QCPH_V1 — empty Elementor image widgets act as "click to insert" placeholders */
.elementor-widget-image.qc-img-empty .qc-ph-inner img{display:none!important}
.elementor-widget-image.qc-img-empty .qc-ph-inner::after{content:attr(data-qc-ph);display:block;color:#7A8A9A;font-size:12.5px;font-weight:600;text-align:center;line-height:1.55}
.elementor-widget-image.qc-img-empty{width:100%;overflow:hidden}
.qc-cat .elementor-widget-image.qc-img-empty{aspect-ratio:4/3;border-bottom:1px solid #E3E8EF;border-radius:0}
.qc-media .elementor-widget-image.qc-img-empty{aspect-ratio:4/3;border-radius:0}
/* QCMOD_V1 — product-01 custom band & model cards + unified media cards site-wide */
.qc-custom{display:flex;align-items:flex-start;gap:18px;background:linear-gradient(120deg,#FFF6EE,#FDEFE2);border:1px solid #F3D3B2;border-left:4px solid #F26B21;border-radius:10px;padding:18px 22px;margin:0 0 26px}
.qc-custom__badge{flex:0 0 auto;background:#F26B21;color:#fff;font-size:12.5px;font-weight:800;letter-spacing:.05em;padding:7px 14px;border-radius:100px;white-space:nowrap;margin-top:2px}
.qc-custom__body{font-size:14.5px;line-height:1.68;color:#3D4E5E}
.qc-custom__body b{color:#0B2A4A}
.qc-custom__cn{display:block;margin-top:5px;font-size:13px;color:#93714F}
.qc-models{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0 0 38px}
.qc-model{background:#fff;border:1px solid #E3E8EF;border-top:3px solid #1E6FB8;border-radius:10px;padding:18px 20px 16px;transition:box-shadow .22s ease,transform .22s ease}
.qc-model:hover{box-shadow:0 10px 26px rgba(11,42,74,.10);transform:translateY(-2px)}
.qc-model__no{font-size:11.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:#1E6FB8;margin-bottom:7px}
.qc-model h4{margin:0 0 3px;font-size:16px;line-height:1.35;color:#0B2A4A}
.qc-model__cn{font-size:12.5px;color:#7A8A9A;margin-bottom:9px}
.qc-model p{margin:0;font-size:13.5px;line-height:1.62;color:#4A5A6A}
/* unified image cards: consistent ratio, hover zoom, no empty caption bars */
.qc-media{position:relative;overflow:hidden}
.qc-media .elementor-widget-image{overflow:hidden}
.qc-media .elementor-widget-image img{transition:transform .35s ease}
.qc-media:hover .elementor-widget-image img{transform:scale(1.045)}
.qc-media__cap:empty{display:none}
.elementor-widget-text-editor:has(.qc-media__cap:empty){display:none}
.qc-cat .elementor-widget-image img{transition:transform .35s ease}
.qc-cat:hover .elementor-widget-image img{transform:scale(1.045)}
@media(max-width:1024px){.qc-models{gap:12px}.qc-model{padding:14px 15px 13px}}
@media(max-width:767px){.qc-models{grid-template-columns:1fr;gap:12px}.qc-custom{flex-direction:column;gap:10px;padding:16px}}
/* QCMOD_V2 — model card image placeholder slots (1600x1600 square) */
.qc-model{padding:0 0 16px;overflow:hidden}
.qc-model .elementor-widget-text-editor{padding:2px 20px 0}
.qc-model .elementor-widget-image.qc-img-empty{aspect-ratio:1/1;width:100%;border:0;border-bottom:1px solid #E3E8EF;border-radius:0;margin:0 0 14px;background:repeating-linear-gradient(45deg,#F3F6F9,#F3F6F9 12px,#EDF1F6 12px,#EDF1F6 24px)}
.qc-model .elementor-widget-image .qc-ph-inner{display:block;padding:14px;text-align:center}
.qc-model .elementor-widget-image.qc-img-empty .qc-ph-inner::before{color:#7A8A9A}
.qc-model .elementor-widget-image.qc-img-empty .qc-ph-inner::after{color:#7A8A9A;font-size:12.5px;font-weight:600}
/* QCMOD_V3 — square (800x800) media slots for product image placeholders */
.qc-media .elementor-widget-image.qc-media__sq,
.qc-media .elementor-widget-image.qc-media__sq.qc-img-empty{aspect-ratio:1/1}
.qc-media .elementor-widget-image.qc-media__sq img{transition:transform .35s ease}
.qc-media:hover .elementor-widget-image.qc-media__sq img{transform:scale(1.045)}
/* QCMOD_V4 — Parts & Components group (Products page) */
.qc-parts .qc-prod__head{margin-bottom:30px}
.qc-parts__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.qc-parts__grid > *{min-width:0}
.qc-part{background:#fff;border:1px solid #E3E9F2;border-radius:14px;padding:24px 24px 20px;box-shadow:0 8px 22px rgba(11,42,74,.06);transition:box-shadow .22s ease,transform .22s ease}
.qc-part:hover{box-shadow:0 12px 28px rgba(11,42,74,.10);transform:translateY(-2px)}
.qc-part__no{font-size:15px;font-weight:800;color:#F26B21;letter-spacing:.08em;line-height:1;margin:0 0 10px;font-variant-numeric:tabular-nums}
.qc-part .qc-part__title{margin:0 0 6px;font-size:19px;line-height:1.3;color:#0B2A4A}
.qc-part .qc-part__title .elementor-heading-title{margin:0;font-size:19px;line-height:1.3;color:#0B2A4A}
.qc-part .qc-part__sub{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#5A6B80;font-weight:600;line-height:1.5;margin:0 0 12px}
.qc-part .qc-part__intro{margin:0 0 16px}
.qc-part .qc-part__intro p{margin:0;font-size:14.5px;line-height:1.72;color:#3D4C5E}
.qc-part__media{margin-top:auto}
.qc-part__media--one{max-width:320px}
.qc-part .qc-media{overflow:hidden}
@media (max-width:1024px){.qc-parts__grid{grid-template-columns:1fr}}
@media (max-width:767px){.qc-part{padding:18px 16px 16px}}
/* QCMOD_V5 — hero collage, unified cover-fill image frames, clients wall */
/* hero: main photo + overlapping sub photo + floating badge */
.qc-hero__media{position:relative}
.qc-hero__media .elementor-widget-image{margin:0}
.qc-hero__img-main img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:18px;display:block}
.qc-hero__img-sub{position:absolute;left:-18px;bottom:-30px;width:43%;z-index:3}
.qc-hero__img-sub img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:14px;border:5px solid rgba(255,255,255,.96);box-shadow:0 16px 40px rgba(0,0,0,.45);display:block}
.qc-hero__badge{position:absolute;top:-16px;right:-6px;z-index:3;background:linear-gradient(135deg,#F26B21,#E15A10);color:#fff;border-radius:12px;padding:11px 18px;box-shadow:0 12px 30px rgba(242,107,33,.45);line-height:1.3}
.qc-hero__badge b{display:block;font-size:13.5px;font-weight:800;letter-spacing:.03em}
.qc-hero__badge span{display:block;font-size:11.5px;opacity:.94;margin-top:3px}
@media(max-width:1024px){.qc-hero__img-sub{left:-10px;bottom:-20px}.qc-hero__badge{top:-12px;right:0;padding:9px 14px}}
@media(max-width:767px){.qc-hero__img-sub{left:-6px;bottom:-16px;width:40%}}

/* unified cover-fill frames: images always fill their card, no letterboxing */
.qc-media .elementor-widget-image img,
.qc-cat .elementor-widget-image img{width:100%;height:100%;object-fit:cover;display:block}
.qc-media .elementor-widget-image{aspect-ratio:4/3}
.qc-cat .elementor-widget-image{aspect-ratio:4/3}
.qc-prod .qc-media .elementor-widget-image{aspect-ratio:1/1}
.qc-media .elementor-widget-image.qc-media__phwrap{display:block;background:none}

/* clients wall (Factory page) */
.qc-clients__grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.qc-client{background:#fff;border:1px solid #E3E9F2;border-radius:12px;padding:24px 14px;text-align:center;display:flex;flex-direction:column;justify-content:center;gap:5px;transition:box-shadow .2s ease,transform .2s ease}
.qc-client:hover{box-shadow:0 10px 26px rgba(11,42,74,.09);transform:translateY(-2px)}
.qc-client .qc-client__en{font-size:16.5px;font-weight:800;color:#0B2A4A;line-height:1.3;margin:0}
.qc-client .qc-client__cn{font-size:12.5px;color:#7A8A9A;margin:0}
.qc-clients__note{margin-top:20px;text-align:center;font-size:13.5px;color:#5A6B80;line-height:1.7}
@media(max-width:1024px){.qc-clients__grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:640px){.qc-clients__grid{grid-template-columns:repeat(2,1fr)}.qc-client{padding:18px 10px}}
/* QCMOD_V6 — clients wall polish: single-box cards, logo monogram, left-aligned head */
/* head inside the clients section stays LEFT aligned (overrides .qc-head align-items:flex-end) */
.qc-clientssec .qc-head{align-items:flex-start;justify-content:flex-start;text-align:left}

/* grid cells are the visible card box; inner .qc-client is text only */
.qc-clients__grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.qc-clients__grid > .elementor-element{
  background:#fff;border:1px solid #E3E9F2;border-radius:14px;
  padding:24px 14px;display:flex;flex-direction:column;align-items:center;justify-content:center;
  box-shadow:0 6px 18px rgba(11,42,74,.05);
  transition:box-shadow .22s ease,transform .22s ease,border-color .22s ease;min-height:140px;
}
.qc-clients__grid > .elementor-element:hover{
  box-shadow:0 14px 32px rgba(11,42,74,.12);transform:translateY(-3px);border-color:#F26B21;
}

/* inner text block: no box at all */
.qc-client{background:none!important;border:0!important;border-radius:0!important;padding:0!important;
  box-shadow:none!important;transform:none!important;text-align:center;display:flex;flex-direction:column;
  align-items:center;gap:7px;width:100%}
.qc-client__mono{width:46px;height:46px;border-radius:13px;display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:15px;font-weight:800;letter-spacing:.02em;box-shadow:0 6px 14px rgba(11,42,74,.18)}
.qc-client__mono.m1{background:linear-gradient(135deg,#E4392B,#C22A1E)}
.qc-client__mono.m2{background:linear-gradient(135deg,#1E6FB8,#0B2A4A)}
.qc-client__mono.m3{background:linear-gradient(135deg,#F26B21,#E15A10)}
.qc-client__mono.m4{background:linear-gradient(135deg,#0B2A4A,#123C67)}
.qc-client__mono.m5{background:linear-gradient(135deg,#1E9E6A,#0E7A50)}
.qc-client .qc-client__en{font-size:15px;font-weight:800;color:#0B2A4A;line-height:1.28;margin:0}
.qc-client .qc-client__cn{font-size:12.5px;color:#7A8A9A;margin:0}
.qc-clients__note{margin-top:22px;text-align:center;font-size:13.5px;color:#5A6B80;line-height:1.7;
  max-width:760px;margin-left:auto;margin-right:auto}
@media(max-width:1024px){.qc-clients__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.qc-clients__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .qc-clients__grid > .elementor-element{padding:18px 10px;min-height:126px}}

