/* =========================================================
   ZHANZHENG GLOBAL BUTTON COMPONENT SYSTEM V2
   Scope: front-end action buttons only.
   Does NOT change button text, links, page structure, images,
   header/footer layout, floating contact rail, or page content.
   ========================================================= */

:root{
  --zz-btn-green:#0b4b39;
  --zz-btn-green-deep:#073c2d;
  --zz-btn-gold:#c48a42;
  --zz-btn-cream:#fffaf4;
  --zz-btn-text:#163d31;
  --zz-btn-line:#cfbfa9;
  --zz-btn-radius:12px;
  --zz-btn-height:50px;
  --zz-btn-height-compact:44px;
  --zz-btn-font:15.5px;
  --zz-btn-shadow:0 5px 14px rgba(7,60,45,.10);
  --zz-btn-shadow-hover:0 10px 24px rgba(7,60,45,.17);
}

/* ---------------------------------------------------------
   1. Shared geometry / typography
   --------------------------------------------------------- */
.zz-btn,
.zz-btn-primary,
.zz-btn-secondary,
.header-cta,
.zzhome-btn,
.prefooter-btn-v36,
.solutions-v45-link,
.oem-final-primary,
.quality-primary-btn,
.quality-cta-btn,
.zzabout-btn,
.zzcontact-btn,
.zzcontact-submit,
.cat-primary-btn,
.supp-primary-btn,
.zzpd-btn,
.catalog-view-v36,
.btn.btn-dark,
.cat-inquiry-card button[type="submit"],
.supp-inquiry-card button[type="submit"],
.catalog-search-v39 button[type="submit"],
.zzquote-submit{
  box-sizing:border-box!important;
  min-height:var(--zz-btn-height)!important;
  padding:0 24px!important;
  border-radius:var(--zz-btn-radius)!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:9px!important;
  font-family:Arial,"Helvetica Neue","Segoe UI",Helvetica,sans-serif!important;
  font-size:var(--zz-btn-font)!important;
  line-height:1!important;
  font-weight:700!important;
  letter-spacing:.002em!important;
  text-align:center!important;
  text-decoration:none!important;
  white-space:nowrap;
  cursor:pointer;
  -webkit-font-smoothing:antialiased;
  transition:
    transform .20s ease,
    background-color .20s ease,
    border-color .20s ease,
    color .20s ease,
    box-shadow .20s ease!important;
}

/* ---------------------------------------------------------
   2. Primary buttons — main conversion actions
   --------------------------------------------------------- */
.zz-btn,
.zz-btn-primary,
.header-cta,
.zzhome-btn-dark,
.prefooter-btn-v36,
.oem-final-primary,
.quality-primary-btn,
.quality-cta-btn,
.zzabout-btn-dark,
.zzcontact-btn-dark,
.zzcontact-submit,
.cat-primary-btn,
.supp-primary-btn,
.zzpd-btn-primary,
.btn.btn-dark,
.cat-inquiry-card button[type="submit"],
.supp-inquiry-card button[type="submit"],
.catalog-search-v39 button[type="submit"],
.zzquote-submit{
  border:1px solid var(--zz-btn-green)!important;
  background:var(--zz-btn-green)!important;
  color:#fff!important;
  box-shadow:var(--zz-btn-shadow)!important;
}

/* ---------------------------------------------------------
   3. Secondary buttons — calm outline / cream treatment
   --------------------------------------------------------- */
.zz-btn-secondary,
.zzhome-btn-light,
.zzabout-btn-light,
.zzcontact-btn-light{
  border:1px solid var(--zz-btn-line)!important;
  background:rgba(255,250,244,.96)!important;
  color:var(--zz-btn-green)!important;
  box-shadow:0 3px 10px rgba(57,45,31,.055)!important;
}

/* ---------------------------------------------------------
   4. Compact card actions
   --------------------------------------------------------- */
.solutions-v45-link,
.catalog-view-v36{
  min-height:var(--zz-btn-height-compact)!important;
  padding:0 19px!important;
  border:1px solid rgba(11,75,57,.28)!important;
  border-radius:10px!important;
  background:#fff!important;
  color:var(--zz-btn-green)!important;
  box-shadow:0 3px 10px rgba(7,60,45,.055)!important;
  font-size:14.5px!important;
}

/* Header CTA remains visually compact so navigation spacing is unchanged. */
.header-cta{
  min-height:44px!important;
  padding:0 21px!important;
  border-radius:10px!important;
  box-shadow:0 4px 12px rgba(7,60,45,.11)!important;
}

/* Homepage compact OEM buttons */
.zzhome-btn-small,
.zz-btn-sm{
  min-height:44px!important;
  padding:0 19px!important;
  border-radius:10px!important;
  font-size:14.5px!important;
}

.zz-btn-lg{
  min-height:54px!important;
  padding:0 29px!important;
  font-size:16.5px!important;
}

/* Search utility button */
.catalog-search-v39 button[type="submit"]{
  min-height:46px!important;
  padding:0 21px!important;
  border-radius:10px!important;
}

/* Pre-footer CTA */
.prefooter-btn-v36{
  min-height:48px!important;
  padding:0 24px!important;
}

/* Quick Quote form submit is a normal conversion button; floating icon rail is untouched. */
.zzquote-submit{
  min-height:52px!important;
  border-radius:11px!important;
}

/* ---------------------------------------------------------
   5. Interaction states
   --------------------------------------------------------- */
.zz-btn:hover,
.zz-btn-primary:hover,
.header-cta:hover,
.zzhome-btn-dark:hover,
.prefooter-btn-v36:hover,
.oem-final-primary:hover,
.quality-primary-btn:hover,
.quality-cta-btn:hover,
.zzabout-btn-dark:hover,
.zzcontact-btn-dark:hover,
.zzcontact-submit:hover,
.cat-primary-btn:hover,
.supp-primary-btn:hover,
.zzpd-btn-primary:hover,
.btn.btn-dark:hover,
.cat-inquiry-card button[type="submit"]:hover,
.supp-inquiry-card button[type="submit"]:hover,
.catalog-search-v39 button[type="submit"]:hover,
.zzquote-submit:hover{
  transform:translateY(-2px)!important;
  border-color:var(--zz-btn-green-deep)!important;
  background:var(--zz-btn-green-deep)!important;
  box-shadow:var(--zz-btn-shadow-hover)!important;
}

.zz-btn-secondary:hover,
.zzhome-btn-light:hover,
.zzabout-btn-light:hover,
.zzcontact-btn-light:hover,
.solutions-v45-link:hover,
.catalog-view-v36:hover{
  transform:translateY(-2px)!important;
  border-color:rgba(11,75,57,.55)!important;
  background:#fff!important;
  color:var(--zz-btn-green-deep)!important;
  box-shadow:0 8px 20px rgba(7,60,45,.10)!important;
}

/* Pressed state */
.zz-btn:active,
.zz-btn-primary:active,
.zz-btn-secondary:active,
.header-cta:active,
.zzhome-btn:active,
.prefooter-btn-v36:active,
.solutions-v45-link:active,
.oem-final-primary:active,
.quality-primary-btn:active,
.quality-cta-btn:active,
.zzabout-btn:active,
.zzcontact-btn:active,
.zzcontact-submit:active,
.cat-primary-btn:active,
.supp-primary-btn:active,
.zzpd-btn:active,
.catalog-view-v36:active,
.btn.btn-dark:active,
.cat-inquiry-card button[type="submit"]:active,
.supp-inquiry-card button[type="submit"]:active,
.catalog-search-v39 button[type="submit"]:active,
.zzquote-submit:active{
  transform:translateY(0)!important;
  box-shadow:0 3px 8px rgba(7,60,45,.10)!important;
}

/* Accessible focus ring */
.zz-btn:focus-visible,
.zz-btn-primary:focus-visible,
.zz-btn-secondary:focus-visible,
.header-cta:focus-visible,
.zzhome-btn:focus-visible,
.prefooter-btn-v36:focus-visible,
.solutions-v45-link:focus-visible,
.oem-final-primary:focus-visible,
.quality-primary-btn:focus-visible,
.quality-cta-btn:focus-visible,
.zzabout-btn:focus-visible,
.zzcontact-btn:focus-visible,
.zzcontact-submit:focus-visible,
.cat-primary-btn:focus-visible,
.supp-primary-btn:focus-visible,
.zzpd-btn:focus-visible,
.catalog-view-v36:focus-visible,
.btn.btn-dark:focus-visible,
.cat-inquiry-card button[type="submit"]:focus-visible,
.supp-inquiry-card button[type="submit"]:focus-visible,
.catalog-search-v39 button[type="submit"]:focus-visible,
.zzquote-submit:focus-visible{
  outline:3px solid rgba(196,138,66,.25)!important;
  outline-offset:3px!important;
}

/* ---------------------------------------------------------
   6. Responsive sizing
   --------------------------------------------------------- */
@media(min-width:1600px){
  :root{
    --zz-btn-height:52px;
    --zz-btn-height-compact:46px;
    --zz-btn-font:16px;
  }
  .header-cta{min-height:46px!important;font-size:16px!important;padding:0 23px!important}
  .zzhome-btn-small,.zz-btn-sm{min-height:46px!important;font-size:15px!important}
  .solutions-v45-link,.catalog-view-v36{font-size:15px!important}
}

@media(max-width:1100px){
  :root{
    --zz-btn-height:47px;
    --zz-btn-height-compact:42px;
    --zz-btn-font:14.5px;
    --zz-btn-radius:10px;
  }
  .header-cta{min-height:42px!important;padding:0 17px!important}
}

@media(max-width:760px){
  :root{
    --zz-btn-height:46px;
    --zz-btn-height-compact:42px;
    --zz-btn-font:14px;
    --zz-btn-radius:10px;
  }
  .zz-btn,
  .zz-btn-primary,
  .zz-btn-secondary,
  .zzhome-btn,
  .zzabout-btn,
  .zzcontact-btn,
  .oem-final-primary,
  .quality-primary-btn,
  .quality-cta-btn,
  .cat-primary-btn,
  .supp-primary-btn,
  .zzpd-btn{
    padding-left:18px!important;
    padding-right:18px!important;
  }
}

@media(prefers-reduced-motion:reduce){
  .zz-btn,
  .zz-btn-primary,
  .zz-btn-secondary,
  .header-cta,
  .zzhome-btn,
  .prefooter-btn-v36,
  .solutions-v45-link,
  .oem-final-primary,
  .quality-primary-btn,
  .quality-cta-btn,
  .zzabout-btn,
  .zzcontact-btn,
  .zzcontact-submit,
  .cat-primary-btn,
  .supp-primary-btn,
  .zzpd-btn,
  .catalog-view-v36,
  .btn.btn-dark,
  .cat-inquiry-card button[type="submit"],
  .supp-inquiry-card button[type="submit"],
  .catalog-search-v39 button[type="submit"],
  .zzquote-submit{
    transition:none!important;
  }
}
