@charset "UTF-8";
/* ==========================================================================
    Template Name: Zentic - AI SaaS & LLM Platform HTML Template
    Author: Themiverse
    Support: techsupport@themiverse.com
    Description: Zentic - AI SaaS & LLM Platform HTML Template
    Version: 1.0

-----------------------------------------------------------------------------------
   --------------------------------------------------------------------------
   TABLE OF CONTENTS
   --------------------------------------------------------------------------
   01. Design tokens (colour, spacing, radius, shadow)
   02. TYPOGRAPHY SYSTEM  <-- global type scale lives here
   03. Reset & base elements
   04. Typography helper classes
   05. Buttons
   06. Forms
   07. Shared blocks (section, bus divider, cards, badges)
   08. Topbar & navbar
   09. Page hero (inner pages) & breadcrumb
   10. Home hero + routing console
   11. Logo strip
   12. Bento / capability tiles
   13. Steps & code block
   14. Metrics band
   15. Use case cards
   16. Pricing
   17. Testimonials
   18. Accordion / FAQ
   19. Blog (grid, single, sidebar)
   20. Team & about blocks
   21. Integrations grid
   22. Contact
   23. Auth pages (sign in / sign up)
   24. 404 page
   25. Legal / long-form prose
   26. CTA band
   27. Footer
   28. Utilities & animation
   29. Responsive
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap');

/* ==========================================================================
   01. DESIGN TOKENS
   ========================================================================== */
:root {

  /* --- Colour ---------------------------------------------------------- */
  --zc-ink: #101018;
  --zc-ink-2: #3A3A47;
  --zc-muted: #63647A;
  --zc-muted-2: #8A8C9E;
  --zc-line: #D6D8E2;
  --zc-line-soft: #E4E6EE;
  --zc-body: #E8E9EE;
  --zc-body-2: #DFE1EA;
  --zc-white: #FFFFFF;
  --zc-ultra: #5046E5;
  --zc-ultra-dark: #3B32C7;
  --zc-ultra-soft: #EDEBFF;
  --zc-ultra-light: #8A82F0;
  --zc-amber: #FFC53D;
  --zc-mint: #7EE3C8;
  --zc-danger: #E5484D;
  --zc-on-dark: #9C9DB0;
  --zc-dark-line: #24242F;
  --zc-onyx: #101018;

  /* --- Radius ---------------------------------------------------------- */
  --zc-r-sm: 8px;
  --zc-r-md: 12px;
  --zc-r-lg: 16px;
  --zc-r-xl: 22px;
  --zc-r-pill: 999px;

  /* --- Shadow ---------------------------------------------------------- */
  --zc-shadow-sm: 0 1px 2px rgba(16, 16, 24, .05);
  --zc-shadow: 0 1px 2px rgba(16, 16, 24, .05), 0 12px 32px -18px rgba(16, 16, 24, .28);
  --zc-shadow-lg: 0 2px 4px rgba(16, 16, 24, .04), 0 34px 60px -28px rgba(16, 16, 24, .34);

  /* --- Spacing rhythm --------------------------------------------------- */
  --zc-space-section: 50px;
  --zc-space-section-md: 50px;
  --zc-space-section-sm: 30px;
  --zc-space-top-section: 100px;
  --zc-space-top-section-md: 100px;
  --zc-space-top-section-sm: 60px;
  /* --- Motion ----------------------------------------------------------- */
  --zc-ease: cubic-bezier(.25, .8, .25, 1);
  --zc-font: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
  --zc-fs-display: clamp(2.5rem, 1.55rem + 3.80vw, 4rem);
  --zc-fs-h1: clamp(2.125rem, 1.55rem + 2.30vw, 3.25rem);
  --zc-fs-h2: clamp(1.75rem, 1.40rem + 1.40vw, 2.5rem);
  --zc-fs-h3: clamp(1.375rem, 1.24rem + 0.55vw, 1.75rem);
  --zc-fs-h4: 1.375rem;
  --zc-fs-h5: 1.125rem;
  --zc-fs-h6: 1rem;
  --zc-fs-lead: 1.125rem;
  --zc-fs-body: 1rem;
  --zc-fs-sm: 1rem;
  --zc-fs-xs: 0.8125rem;
  --zc-fs-label: 0.75rem;

  --zc-lh-tight: 1.10;
  --zc-lh-heading: 1.28;
  --zc-lh-body: 1.75;
}

/* --------------------------------------------------------------------------
   Dark theme 
   -------------------------------------------------------------------------- */
:root[data-theme="dark"] {
  --zc-ink: #F4F4F8;
  --zc-ink-2: #D3D4E0;
  --zc-muted: #9C9DB0;
  --zc-muted-2: #6E6F84;
  --zc-line: #2B2B38;
  --zc-line-soft: #201F2A;
  --zc-body: #0D0D1A;
  --zc-body-2: #13132B;
  --zc-white: #13132B;
  --zc-onyx: #07070a;
  --zc-ultra-soft: #211C46;
}

/* ==========================================================================
   03. RESET & BASE ELEMENTS
   ========================================================================== */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 96px;
  /* clears the sticky navbar on anchor jumps */
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--zc-font);
  font-size: var(--zc-fs-body);
  font-weight: 400;
  line-height: var(--zc-lh-body);
  letter-spacing: 0;
  color: var(--zc-muted);
  background-color: var(--zc-body);
  background-image: radial-gradient(rgba(16, 16, 24, .085) 1px, transparent 1px);
  background-size: 22px 22px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-variant-numeric: tabular-nums;
  /* keeps stat rows from jittering */
  overflow-x: hidden;
}

:root[data-theme="dark"] body {
  background-image: radial-gradient(rgba(255, 255, 255, .07) 1px, transparent 1px);
}

/* --- Headings ----------------------------------------------------------- */
h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
  font-family: var(--zc-font);
  color: var(--zc-ink);
  margin: 0 0 .5em;
  text-wrap: balance;
}

h1,
.h1 {
  font-size: var(--zc-fs-h1);
  font-weight: 700;
  line-height: var(--zc-lh-tight);
  letter-spacing: -.03em;
}

h2,
.h2 {
  font-size: var(--zc-fs-h2);
  font-weight: 700;
  line-height: 1.16;
  letter-spacing: -.025em;
}

h3,
.h3 {
  font-size: var(--zc-fs-h3);
  font-weight: 600;
  line-height: var(--zc-lh-heading);
  letter-spacing: -.02em;
}

h4,
.h4 {
  font-size: var(--zc-fs-h4);
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: -.015em;
}

h5,
.h5 {
  font-size: var(--zc-fs-h5);
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: -.01em;
}

h6,
.h6 {
  font-size: var(--zc-fs-h6);
  font-weight: 600;
  line-height: 1.50;
  letter-spacing: 0;
}

/* --- Text --------------------------------------------------------------- */
p {
  margin: 0 0 1.15rem;
}

p:last-child {
  margin-bottom: 0;
}

strong,
b {
  font-weight: 600;
  color: var(--zc-ink-2);
}

small {
  font-size: var(--zc-fs-sm);
}

a {
  color: var(--zc-ultra);
  text-decoration: none;
  transition: color .2s var(--zc-ease);
}

a:hover {
  color: var(--zc-ultra-dark);
}

ul,
ol {
  margin: 0 0 1.15rem;
  padding-left: 1.25rem;
}

li {
  margin-bottom: .4rem;
}

img,
svg {
  max-width: 100%;
  height: auto;
}

hr {
  border: 0;
  border-top: 1px solid var(--zc-line);
  opacity: 1;
  margin: 2rem 0;
}

blockquote {
  margin: 2rem 0;
  padding: 0 0 0 1.5rem;
  border-left: 3px solid var(--zc-ultra);
  font-size: var(--zc-fs-lead);
  font-weight: 500;
  line-height: 1.6;
  color: var(--zc-ink);
}

::selection {
  background: var(--zc-ultra);
  color: #fff;
}

:focus-visible {
  outline: 3px solid var(--zc-ultra);
  outline-offset: 3px;
  border-radius: 4px;
}


/* ==========================================================================
   04. TYPOGRAPHY HELPER CLASSES
   ========================================================================== */
.zc-display {
  font-size: var(--zc-fs-display);
  font-weight: 700;
  line-height: 1.06;
  letter-spacing: -.03em;
  color: var(--zc-ink);
}

.zc-lead {
  font-size: var(--zc-fs-lead);
  line-height: 1.65;
  max-width: 58ch;
}

.zc-sm {
  font-size: var(--zc-fs-sm);
}

.zc-xs {
  font-size: var(--zc-fs-xs);
}

/* Uppercase micro-label — replaces the mono font in a single-family system */
.zc-label {
  font-size: var(--zc-fs-label);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--zc-muted);
}
.zc-logos .zc-label {
  margin: 0;
  display: inline-block;
  vertical-align: middle;  
}
/* Section eyebrow */
.zc-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 18px;
  font-size: var(--zc-fs-label);
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--zc-ultra);
}

.zc-eyebrow::before {
  content: "";
  width: 7px;
  height: 7px;
  background: currentColor;
  flex: none;
}

.zc-eyebrow--light {
  color: var(--zc-ultra-light);
}

.zc-eyebrow--light::before {
  background: var(--zc-amber);
}

/* Numeric readouts — tabular figures, tightened */
.zc-num {
  font-weight: 700;
  letter-spacing: -.03em;
  color: var(--zc-ink);
  font-variant-numeric: tabular-nums;
}

.zc-measure {
  max-width: 58ch;
}

.zc-measure-sm {
  max-width: 46ch;
}

.zc-heading-tight {
  max-width: 20ch;
}

.zc-on-dark {
  color: var(--zc-on-dark);
}

.zc-on-dark h1,
.zc-on-dark h2,
.zc-on-dark h3,
.zc-on-dark h4,
.zc-on-dark h5,
.zc-on-dark h6 {
  color: #fff;
}


/* ==========================================================================
   05. BUTTONS
   ========================================================================== */
.zc-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  font-family: var(--zc-font);
  font-size: var(--zc-fs-body);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -.005em;
  padding: 14px 26px;
  border: 1px solid transparent;
  border-radius: var(--zc-r-md);
  cursor: pointer;
  white-space: nowrap;
  transition: background-color .2s var(--zc-ease), color .2s var(--zc-ease),
    border-color .2s var(--zc-ease), transform .15s var(--zc-ease),
    box-shadow .2s var(--zc-ease);
}

.zc-btn:active {
  transform: translateY(1px);
}

.zc-btn--sm {
  padding: 10px 18px;
  font-size: var(--zc-fs-sm);
}

.zc-btn--lg {
  padding: 17px 32px;
  font-size: var(--zc-fs-h6);
}

.zc-btn--block {
  width: 100%;
}

.zc-btn--primary {
  background: var(--zc-ultra);
  color: #fff;
  box-shadow: 0 10px 22px -12px rgba(43, 27, 255, .9);
}

.zc-btn--primary:hover {
  background: var(--zc-ultra-dark);
  color: #fff;
}

.zc-btn--ink {
  background: var(--zc-onyx);
  color: #fff;
}

.zc-btn--ink:hover {
  background: var(--zc-onyx);
  color: #fff;
}

.zc-btn--ghost {
  background: var(--zc-white);
  color: var(--zc-ink);
  border-color: var(--zc-line);
}

.zc-btn--ghost:hover {
  background: var(--zc-white);
  color: var(--zc-ink);
  border-color: var(--zc-ultra);
}

.zc-btn--light {
  background: #fff;
  color: #101018;
}

.zc-btn--light:hover {
  background: #F0F0F5;
  color: #101018;
}

.zc-btn--outline-light {
  background: transparent;
  color: #fff;
  border-color: rgba(255, 255, 255, .32);
}

.zc-btn--outline-light:hover {
  background: rgba(255, 255, 255, .12);
  color: #fff;
}

/* Text link with arrow */
.zc-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: var(--zc-fs-sm);
  font-weight: 600;
  color: var(--zc-ultra);
}

.zc-link svg {
  transition: transform .2s var(--zc-ease);
}

.zc-link:hover svg {
  transform: translateX(3px);
}

.zc-link--danger {
  color: #E5484D;
  background: none;
  border: 0;
  padding: 0;
}


/* ==========================================================================
   06. FORMS
   ========================================================================== */
.zc-field {
  margin-bottom: 18px;
}

.zc-field label {
  display: block;
  margin-bottom: 8px;
  font-size: var(--zc-fs-sm);
  font-weight: 500;
  color: var(--zc-ink);
}

.zc-input,
.zc-select,
.zc-textarea {
  width: 100%;
  font-family: var(--zc-font);
  font-size: var(--zc-fs-body);
  font-weight: 400;
  color: var(--zc-ink);
  background: var(--zc-white);
  border: 1px solid var(--zc-line);
  border-radius: var(--zc-r-md);
  padding: 13px 16px;
  line-height: 1.5;
  transition: border-color .2s var(--zc-ease), box-shadow .2s var(--zc-ease);
}

.zc-select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  padding-right: 40px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none' stroke='%23514F5C' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5.5 8L10 12.5L14.5 8'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  cursor: pointer;
}

.zc-textarea {
  min-height: 150px;
  resize: vertical;
}

.zc-input::placeholder,
.zc-textarea::placeholder {
  color: var(--zc-muted-2);
}

.zc-input:focus,
.zc-select:focus,
.zc-textarea:focus {
  outline: 0;
  border-color: var(--zc-ultra);
  box-shadow: 0 0 0 4px rgba(43, 27, 255, .12);
}

.zc-help {
  font-size: var(--zc-fs-xs);
  color: var(--zc-muted);
  margin-top: 7px;
}

.zc-check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: var(--zc-fs-sm);
}

.zc-check input {
  margin-top: 5px;
  accent-color: var(--zc-ultra);
  width: 16px;
  height: 16px;
  flex: none;
}


/* ==========================================================================
   07. SHARED BLOCKS
   ========================================================================== */
.zc-sec {
  padding: var(--zc-space-section) 0;
  position: relative;
}

.zc-sec--flush {
  padding-top: 0;
}

.zc-sec--tight {
  padding: 72px 0;
}

.zc-sec--ink {
  background: var(--zc-onyx);
}

.zc-top-sec {
  padding-top: var(--zc-space-top-section);
}

/* The signal bus — repeating structural motif, reads as a circuit trace */
.zc-bus {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 52px;
}

.zc-bus__node {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--zc-ultra);
  flex: none;
}

.zc-bus__label {
  font-size: var(--zc-fs-label);
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--zc-muted);
  white-space: nowrap;
  margin: 0;
    display: inline-block;
    vertical-align: middle;
    line-height: var(--zc-lh-body);
}

.zc-bus__track {
  flex: 1;
  height: 9px;
  border-top: 1px solid var(--zc-line);
  background-image: repeating-linear-gradient(to right, var(--zc-line) 0 1px, transparent 1px 34px);
  background-size: 34px 5px;
  background-repeat: repeat-x;
  background-position: top left;
}

.zc-card {
  background: var(--zc-white);
  border: 1px solid var(--zc-line-soft);
  border-radius: var(--zc-r-xl);
  box-shadow: var(--zc-shadow-sm);
}

.zc-card--pad {
  padding: 32px;
}

.zc-card--hover {
  transition: transform .22s var(--zc-ease), box-shadow .22s var(--zc-ease);
}

.zc-card--hover:hover {
  transform: translateY(-3px);
  box-shadow: var(--zc-shadow);
}

.zc-badge {
  display: inline-block;
  padding: 5px 10px;
  border-radius: var(--zc-r-sm);
  font-size: var(--zc-fs-label);
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  line-height: 1.4;
}

.zc-badge--ultra {
  background: var(--zc-ultra-soft);
  color: var(--zc-ultra);
}

.zc-badge--amber {
  background: var(--zc-amber);
  color: var(--zc-onyx);
}

.zc-badge--soft {
  background: var(--zc-body-2);
  color: var(--zc-ink-2);
}

.zc-icon {
  width: 44px;
  height: 44px;
  border-radius: var(--zc-r-md);
  display: grid;
  place-items: center;
  background: var(--zc-ultra-soft);
  color: var(--zc-ultra);
  margin-bottom: 20px;
  flex: none;
}

.zc-icon--ink {
  background: rgba(255, 255, 255, .08);
  color: #fff;
}


/* ==========================================================================
   08. TOPBAR & NAVBAR
   ========================================================================== */
.zc-topbar {
  background: var(--zc-onyx);
  color: #B9BAC8;
  text-align: center;
  padding: 10px;
  font-size: var(--zc-fs-xs);
  font-weight: 400;
  letter-spacing: .01em;
  border-bottom: 1px solid var(--zc-line-soft);
}

.zc-topbar a {
  color: #fff;
  font-weight: 500;
  border-bottom: 1px solid rgba(255, 255, 255, .35);
}

.zc-topbar a:hover {
  color: #fff;
  border-bottom-color: #fff;
}

.zc-nav {
  background: rgba(232, 233, 238, .82);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid transparent;
  padding: 12px 0;
  transition: background-color .25s var(--zc-ease), border-color .25s var(--zc-ease);
}

.zc-nav.is-stuck {
  background: rgba(232, 233, 238, .96);
  border-bottom-color: var(--zc-line);
}

:root[data-theme="dark"] .zc-nav {
  background: rgba(11, 11, 16, .82);
}

:root[data-theme="dark"] .zc-nav.is-stuck {
  background: rgba(11, 11, 16, .96);
}

.brand-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  outline: none;
}

@media(max-width: 575px) {
  .brand-link {
    gap: 7px;
  }

  .brand-icon {
    line-height: normal;
  }
}

.brand-text {
  overflow: hidden;
}

.brand-name {
  display: block;
  font-size: 20px;
  font-weight: 700;
  color: var(--zc-ink);
  white-space: nowrap;
}

footer .brand-name {
  color: #fff;
}

.brand-name span {
  color: var(--zc-ultra-light);
}

.zc-brand__word {
  font-size: 1.375rem;
  font-weight: 700;
  letter-spacing: -.04em;
  color: var(--zc-ink);
  line-height: 1;
}

.zc-footer .zc-brand__word {
  color: #fff;
}

.zc-nav .navbar-nav {
  gap: .25em;
}

.zc-nav .nav-link {
  font-size: .9375rem;
  font-weight: 500;
  letter-spacing: -.005em;
  color: var(--zc-ink-2);
  padding: 6px 14px !important;
  border-radius: var(--zc-r-sm);
  transition: color .18s var(--zc-ease), background-color .18s var(--zc-ease);
  outline: none;
  border-color: transparent;
  box-shadow: none;
}

.zc-nav .nav-link:hover,
.zc-nav .nav-link:focus,
.zc-nav .nav-link.active {
  color: var(--zc-ink);
  background: rgba(255, 255, 255, .7);
  border-color: transparent;
  outline: none;
  box-shadow: none;
}


.zc-nav .nav-link.active {
  font-weight: 600;
}

.zc-nav .navbar-toggler {
  width: 39px;
  height: 39px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--zc-white);
  border: 1px solid var(--zc-line);
  border-radius: var(--zc-r-md);
  margin-left: .5rem;
}

@media (min-width: 992px) {
  .zc-nav .navbar-toggler {
    display: none;
  }
}

.zc-nav .navbar-toggler:focus {
  box-shadow: none;
}

.zc-nav .navbar-toggler-icon {
  width: 18px;
  height: 18px;
  background-image: none;
  background-color: var(--zc-ink);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
  -webkit-mask-size: 18px;
  mask-size: 18px;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}

.zc-nav .dropdown-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.zc-nav .dropdown-toggle::after {
  display: inline-block;
  margin-left: 0;
  vertical-align: 0;
  border: 0;
  width: auto;
  height: auto;
  font-family: 'lucide';
  content: "\e06d";
  font-size: 14px;
  line-height: 1;
  flex: none;
  transition: transform .2s var(--zc-ease);
}
.zc-nav .dropdown-menu li {
    margin-bottom: 1px;
}
.zc-nav .dropdown-toggle[aria-expanded="true"]::after {
  transform: rotate(180deg);
}

.zc-nav .dropdown-toggle.show {
  color: var(--zc-ink);
  background: rgba(255, 255, 255, .7);
}

:root[data-theme="dark"] .zc-nav .nav-link:hover,
:root[data-theme="dark"] .zc-nav .nav-link:focus,
:root[data-theme="dark"] .zc-nav .nav-link.active,
:root[data-theme="dark"] .zc-nav .dropdown-toggle.show {
  background: #13132B;
}

.zc-nav .dropdown-menu {
  border: 1px solid var(--zc-line-soft);
  border-radius: var(--zc-r-lg);
  box-shadow: var(--zc-shadow);
  padding: 8px;
  margin-top: 10px;
  min-width: 210px;
  background: var(--zc-white);
}

.zc-nav .dropdown-item {
  font-size: var(--zc-fs-sm);
  font-weight: 500;
  color: var(--zc-ink-2);
  border-radius: var(--zc-r-sm);
  padding: 9px 12px;
}

.zc-nav .dropdown-item:hover,
.zc-nav .dropdown-item:focus,
.zc-nav .dropdown-item.active {
  background: var(--zc-ultra-soft);
  color: var(--zc-ultra);
}


/* ==========================================================================
   09. PAGE HERO (inner pages) & BREADCRUMB
   ========================================================================== */
.zc-page-hero {
  padding: 72px 0 64px;
  border-bottom: 1px solid var(--zc-line);
}

.zc-page-hero h1 {
  margin-bottom: 18px;
}

.zc-page-hero .zc-lead {
  margin-bottom: 0;
}

.zc-crumb {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-bottom: 22px;
  padding: 0;
  list-style: none;
}

.zc-crumb li {
  margin: 0;
  font-size: var(--zc-fs-sm);
  color: var(--zc-muted);
}

.zc-crumb a {
  color: var(--zc-muted);
  font-weight: 500;
}

.zc-crumb a:hover {
  color: var(--zc-ultra);
}

.zc-crumb li[aria-current] {
  color: var(--zc-ink);
  font-weight: 500;
}

.zc-crumb__sep {
  color: var(--zc-muted-2);
}


/* ==========================================================================
   10. HOME HERO + ROUTING CONSOLE
   ========================================================================== */
.zc-hero {
  padding: 80px 0 96px;
}

.zc-hero h1 {
  font-size: var(--zc-fs-display);
  line-height: 1.06;
  margin-bottom: 22px;
}

.zc-hero h1 em {
  font-style: normal;
  color: var(--zc-ultra);
}

.zc-hero__lede {
  font-size: var(--zc-fs-lead);
  line-height: 1.65;
  max-width: 46ch;
  margin-bottom: 30px;
}

.zc-hero__stats {
  display: flex;
  flex-wrap: wrap;
  gap: 34px;
  margin-top: 44px;
  padding-top: 26px;
  border-top: 1px solid var(--zc-line);
}

.zc-stat__n {
  display: block;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: -.03em;
  line-height: 1.2;
  color: var(--zc-ink);
}

.zc-stat__l {
  font-size: var(--zc-fs-label);
  font-weight: 500;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--zc-muted);
}

/* --- Console ------------------------------------------------------------ */
.zc-console {
  background: var(--zc-white);
  border: 1px solid var(--zc-line-soft);
  border-radius: var(--zc-r-xl);
  box-shadow: var(--zc-shadow-lg);
  overflow: hidden;
}

.zc-console__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 18px;
  border-bottom: 1px solid var(--zc-line-soft);
  background: #FBFBFD;
}

:root[data-theme="dark"] .zc-console__bar {
  background: #0e0e20;
}

.zc-console__title {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: var(--zc-fs-label);
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--zc-muted);
}

.zc-console__meta {
  font-size: var(--zc-fs-xs);
  font-weight: 400;
  color: var(--zc-muted-2);
}

.zc-live {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--zc-amber);
  flex: none;
  box-shadow: 0 0 0 0 rgba(255, 197, 61, .7);
  animation: avPulse 2s infinite;
}

@keyframes avPulse {
  70% {
    box-shadow: 0 0 0 8px rgba(255, 197, 61, 0);
  }

  100% {
    box-shadow: 0 0 0 0 rgba(255, 197, 61, 0);
  }
}

.zc-console__prompt {
  display: flex;
  gap: 11px;
  align-items: flex-start;
  padding: 17px 18px;
  border-bottom: 1px solid var(--zc-line-soft);
}

.zc-console__caret {
  font-size: var(--zc-fs-sm);
  font-weight: 700;
  color: var(--zc-ultra);
  line-height: 1.6;
}

.zc-console__text {
  font-size: var(--zc-fs-sm);
  font-weight: 500;
  color: var(--zc-ink);
  line-height: 1.6;
  min-height: 23px;
}

.zc-console__text::after {
  content: "▍";
  color: var(--zc-ultra);
  animation: avBlink 1.05s steps(1) infinite;
}

@keyframes avBlink {
  50% {
    opacity: 0;
  }
}

.zc-console__map {
  padding: 10px 8px 4px;
}

.zc-console__map svg {
  display: block;
  width: 100%;
  height: auto;
  color: #E9EAF1;
}

:root[data-theme="dark"] .zc-console__map svg {
  color: var(--zc-line);
}

.zc-lane {
  fill: none;
  stroke: #CFD2DE;
  stroke-width: 1.5;
  transition: stroke .3s var(--zc-ease), stroke-width .3s var(--zc-ease);
}

.zc-lane.is-active {
  stroke: var(--zc-ultra);
  stroke-width: 2.4;
  stroke-dasharray: 7 9;
  animation: avFlow .7s linear infinite;
}

@keyframes avFlow {
  to {
    stroke-dashoffset: -32;
  }
}

.zc-node {
  fill: var(--zc-white);
  stroke: var(--zc-line);
  stroke-width: 1.4;
  transition: fill .3s var(--zc-ease), stroke .3s var(--zc-ease);
}

.zc-node.is-active {
  fill: var(--zc-ultra-soft);
  stroke: var(--zc-ultra);
  stroke-width: 1.8;
}

.zc-node-label {
  font-family: var(--zc-font);
  font-size: 12.5px;
  font-weight: 600;
  fill: var(--zc-ink);
  letter-spacing: -.01em;
}

.zc-node-sub {
  font-family: var(--zc-font);
  font-size: 10px;
  font-weight: 400;
  fill: var(--zc-muted);
  letter-spacing: .02em;
}

.zc-router-rect {
  fill: var(--zc-ink);
}

.zc-router-label {
  font-family: var(--zc-font);
  font-size: 11px;
  font-weight: 600;
  fill: var(--zc-line-soft);
  letter-spacing: .16em;
}

.zc-router-sub {
  font-family: var(--zc-font);
  font-size: 9.5px;
  font-weight: 400;
  fill: #8B8CA0;
  letter-spacing: .04em;
}

.zc-console__read {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--zc-line-soft);
}

.zc-read {
  padding: 15px 18px;
  border-right: 1px solid var(--zc-line-soft);
}

.zc-read:last-child {
  border-right: 0;
}

.zc-read__l {
  display: block;
  margin-bottom: 3px;
  font-size: var(--zc-fs-label);
  font-weight: 500;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--zc-muted);
}

.zc-read__v {
  font-size: var(--zc-fs-h6);
  font-weight: 700;
  letter-spacing: -.02em;
  color: var(--zc-ink);
  font-variant-numeric: tabular-nums;
}


/* ==========================================================================
   11. LOGO STRIP
   ========================================================================== */
.zc-logos {
  border-top: 1px solid var(--zc-line);
  border-bottom: 1px solid var(--zc-line);
  padding: 30px 0;
}

.zc-logos__track {
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 48px, #000 calc(100% - 48px), transparent);
  mask-image: linear-gradient(90deg, transparent, #000 48px, #000 calc(100% - 48px), transparent);
}

.zc-logos__list {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  width: max-content;
  animation: avLogosScroll 26s linear infinite;
}

.zc-logos__track:hover .zc-logos__list {
  animation-play-state: paused;
}

.zc-logos__group {
  display: flex;
  flex: none;
  align-items: center;
  gap: 40px;
  padding-right: 40px;
}

.zc-logos__item {
  font-size: 1.0625rem;
  font-weight: 600;
  letter-spacing: -.025em;
  color: var(--zc-muted-2);
  white-space: nowrap;
}

@keyframes avLogosScroll {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(-50%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .zc-logos__list {
    animation: none;
  }
}


/* ==========================================================================
   12. BENTO / CAPABILITY TILES
   ========================================================================== */
.zc-bento {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.zc-tile {
  background: var(--zc-white);
  border: 1px solid var(--zc-line-soft);
  border-radius: var(--zc-r-xl);
  padding: 30px;
  transition: transform .22s var(--zc-ease), box-shadow .22s var(--zc-ease);
}

.zc-tile:hover {
  transform: translateY(-3px);
  box-shadow: var(--zc-shadow);
}

.zc-tile--wide {
  grid-column: span 2;
}

.zc-tile--ink {
  background: var(--zc-onyx);
  border-color: var(--zc-onyx);
}

.zc-tile--ink h3 {
  color: #fff;
}

.zc-tile--ink p {
  color: var(--zc-on-dark);
}

.zc-tile--ink .zc-tile__n {
  color: var(--zc-muted-2);
}

.zc-tile__n {
  display: block;
  margin-bottom: 16px;
  font-size: var(--zc-fs-label);
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--zc-muted);
}

.zc-tile h3 {
  font-size: var(--zc-fs-h4);
  margin-bottom: 10px;
}

.zc-tile p {
  font-size: var(--zc-fs-sm);
  line-height: 1.7;
  margin: 0;
}

.zc-score {
  display: grid;
  gap: 11px;
  margin-top: 24px;
}

.zc-score__row {
  display: grid;
  grid-template-columns: 104px 1fr 44px;
  align-items: center;
  gap: 14px;
}

.zc-score__name {
  font-size: var(--zc-fs-xs);
  font-weight: 500;
  color: var(--zc-ink);
}

.zc-score__track {
  height: 7px;
  background: var(--zc-body-2);
  border-radius: var(--zc-r-pill);
  overflow: hidden;
}

.zc-score__fill {
  display: block;
  height: 100%;
  border-radius: var(--zc-r-pill);
}

.zc-score__v {
  font-size: var(--zc-fs-xs);
  font-weight: 500;
  color: var(--zc-muted);
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.zc-score__row .zc-score__fill {
  background: var(--zc-ultra);
}

.zc-score__row .zc-score__name {
  font-weight: 600;
}


/* ==========================================================================
   13. STEPS & CODE BLOCK
   ========================================================================== */
.zc-step {
  display: flex;
  gap: 20px;
  padding: 24px 0;
  border-top: 1px solid var(--zc-line);
}

.zc-step:last-child {
  padding-bottom: 0;
}

.zc-step__i {
  flex: none;
  padding-top: 4px;
  font-size: var(--zc-fs-sm);
  font-weight: 600;
  letter-spacing: .08em;
  color: var(--zc-ultra);
  font-variant-numeric: tabular-nums;
}

.zc-step h3 {
  font-size: var(--zc-fs-h5);
  margin-bottom: 6px;
}

.zc-step p {
  font-size: var(--zc-fs-sm);
  line-height: 1.7;
  margin: 0;
  max-width: 46ch;
}

.zc-code {
  background: var(--zc-onyx);
  border-radius: var(--zc-r-xl);
  border: 1px solid var(--zc-line-soft);
  overflow: hidden;
  box-shadow: var(--zc-shadow-lg);
}

.zc-code__tabs {
  display: flex;
  gap: 4px;
  padding: 12px 12px 0;
  border-bottom: 1px solid var(--zc-dark-line);
}

.zc-code__tabs li {
  margin-bottom: 0;
}

.zc-code__tabs .nav-link {
  font-size: var(--zc-fs-label);
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--zc-muted-2);
  background: transparent;
  border: 0;
  border-radius: var(--zc-r-sm) var(--zc-r-sm) 0 0;
  padding: 10px 16px;
}

.zc-code__tabs .nav-link:hover {
  color: #fff;
}

.zc-code__tabs .nav-link.active {
  color: #fff;
  background: var(--zc-dark-line);
}

.zc-code pre {
  margin: 0;
  padding: 24px 26px 28px;
  overflow-x: auto;
}

.zc-code code {
  font-family: var(--zc-font);
  font-size: var(--zc-fs-xs);
  font-weight: 400;
  line-height: 2;
  color: #D8D9E4;
  letter-spacing: .01em;
  white-space: pre;
  font-variant-ligatures: none;
}

.zc-c-key {
  color: var(--zc-ultra-light);
  font-weight: 500;
}

.zc-c-str {
  color: var(--zc-amber);
}

.zc-c-fn {
  color: var(--zc-mint);
}

.zc-c-com {
  color: #6A6B80;
  font-style: italic;
}


/* ==========================================================================
   14. METRICS BAND
   ========================================================================== */
.zc-band {
  background: var(--zc-onyx);
  border-radius: var(--zc-r-xl);
  padding: 56px 44px;
}

.zc-band h2 {
  color: #fff;
}

.zc-band p {
  color: var(--zc-on-dark);
}

.zc-metric {
  border-left: 1px solid var(--zc-dark-line);
  padding-left: 22px;
  text-align: center;
}

.zc-metric.first {
  border: none;
}

.zc-metric__n {
  font-size: 2.5rem;
  font-weight: 700;
  letter-spacing: -.04em;
  line-height: 1;
  color: #fff;
  font-variant-numeric: tabular-nums;
}

.zc-metric__l {
  display: block;
  margin-top: 10px;
  font-size: var(--zc-fs-label);
  font-weight: 500;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--zc-muted-2);
}


/* ==========================================================================
   15. USE CASE CARDS
   ========================================================================== */
.zc-use {
  height: 100%;
  padding: 28px;
  background: var(--zc-white);
  border: 1px solid var(--zc-line-soft);
  border-radius: var(--zc-r-xl);
  display: flex;
  flex-direction: column;
  transition: transform .22s var(--zc-ease), box-shadow .22s var(--zc-ease);
}

.zc-use:hover {
  transform: translateY(-3px);
  box-shadow: var(--zc-shadow);
}

.zc-use h3 {
  font-size: var(--zc-fs-h5);
  margin: 16px 0 8px;
}

.zc-use p {
  font-size: var(--zc-fs-sm);
  line-height: 1.7;
  margin: 0 0 18px;
}

.zc-use__stat {
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid var(--zc-line-soft);
  font-size: var(--zc-fs-sm);
  font-weight: 500;
  color: var(--zc-ink-2);
}

.zc-use__stat b {
  color: var(--zc-ultra);
  font-weight: 600;
}


/* ==========================================================================
   16. PRICING
   ========================================================================== */
.zc-toggle {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px;
  background: var(--zc-white);
  border: 1px solid var(--zc-line-soft);
  border-radius: var(--zc-r-pill);
}

.zc-toggle button {
  font-family: var(--zc-font);
  font-size: var(--zc-fs-label);
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  border: 0;
  background: transparent;
  color: var(--zc-muted);
  padding: 9px 18px;
  border-radius: var(--zc-r-pill);
  cursor: pointer;
  transition: background-color .2s var(--zc-ease), color .2s var(--zc-ease);
}

.zc-toggle button.is-on {
  background: var(--zc-onyx);
  color: #fff;
}

.zc-plan {
  height: 100%;
  display: flex;
  flex-direction: column;
  padding: 32px;
  background: var(--zc-white);
  border: 1px solid var(--zc-line-soft);
  border-radius: var(--zc-r-xl);
}

.zc-plan--hi {
  background: var(--zc-onyx);
  border-color: var(--zc-onyx);
}

.zc-plan--hi h3,
.zc-plan--hi .zc-plan__price {
  color: #fff;
}

.zc-plan--hi p,
.zc-plan--hi .zc-plan__per {
  color: var(--zc-on-dark);
}

.zc-plan--hi .zc-plan__list li {
  color: #D8D9E4;
}

.zc-plan--hi .zc-plan__list li::before {
  background: var(--zc-amber);
}

.zc-plan h3 {
  font-size: var(--zc-fs-h5);
  margin: 0 0 6px;
}

.zc-plan p {
  font-size: var(--zc-fs-sm);
  line-height: 1.65;
  margin: 0 0 22px;
}

.zc-plan__price {
  font-size: 2.625rem;
  font-weight: 700;
  letter-spacing: -.045em;
  line-height: 1;
  color: var(--zc-ink);
}

.zc-plan__per {
  font-size: var(--zc-fs-xs);
  color: var(--zc-muted);
}

.zc-plan__list {
  list-style: none;
  padding: 0;
  margin: 24px 0 28px;
  display: grid;
  gap: 11px;
}

.zc-plan__list li {
  position: relative;
  margin: 0;
  padding-left: 22px;
  font-size: var(--zc-fs-sm);
  line-height: 1.6;
  color: var(--zc-ink-2);
}

.zc-plan__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 11px;
  width: 9px;
  height: 2px;
  background: var(--zc-ultra);
}

.zc-plan .zc-btn {
  margin-top: auto;
  width: 100%;
}

.zc-ptable {
  width: 100%;
  background: var(--zc-white);
  border: 1px solid var(--zc-line-soft);
  border-radius: var(--zc-r-xl);
  overflow: hidden;
}

.zc-ptable th,
.zc-ptable td {
  padding: 16px 20px;
  border-bottom: 1px solid var(--zc-line-soft);
  text-align: left;
  font-size: var(--zc-fs-sm);
}

.zc-ptable thead th {
  font-weight: 600;
  color: var(--zc-ink);
  background: var(--zc-ultra-soft);
  font-size: var(--zc-fs-xs);
  letter-spacing: .1em;
  text-transform: uppercase;
}

.zc-ptable tbody td {
  color: var(--zc-muted);
}

.zc-ptable tbody th {
  font-weight: 500;
  color: var(--zc-ink);
}

.zc-ptable tr:last-child th,
.zc-ptable tr:last-child td {
  border-bottom: 0;
}


/* ==========================================================================
   17. TESTIMONIALS
   ========================================================================== */
.zc-quote {
  height: 100%;
  display: flex;
  flex-direction: column;
  padding: 30px;
  background: var(--zc-white);
  border: 1px solid var(--zc-line-soft);
  border-radius: var(--zc-r-xl);
}

.zc-quote__mark {
  font-size: 2.5rem;
  font-weight: 700;
  line-height: .7;
  color: var(--zc-ultra);
  margin-bottom: 18px;
}

.zc-quote p {
  font-size: var(--zc-fs-body);
  line-height: 1.7;
  color: var(--zc-ink-2);
  margin: 0 0 22px;
}

.zc-quote__who {
  margin-top: auto;
  padding-top: 18px;
  border-top: 1px solid var(--zc-line-soft);
  display: flex;
  align-items: center;
  gap: 12px;
}

.zc-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  flex: none;
  display: grid;
  place-items: center;
  background: var(--zc-white);
  color: #fff;
  font-size: var(--zc-fs-xs);
  font-weight: 600;
  letter-spacing: .02em;
  overflow: hidden;
}

.zc-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.zc-quote__name {
  display: block;
  font-size: var(--zc-fs-sm);
  font-weight: 600;
  color: var(--zc-ink);
  line-height: 1.35;
}

.zc-quote__role {
  font-size: var(--zc-fs-xs);
  color: var(--zc-muted);
}


/* ==========================================================================
   18. ACCORDION / FAQ
   ========================================================================== */
.zc-faq .accordion-item {
  background: transparent;
  border: 0;
  border-top: 1px solid var(--zc-line);
}

.zc-faq .accordion-item:last-child {
  border-bottom: 1px solid var(--zc-line);
}

.zc-faq .accordion-header {
  margin: 0;
}

.zc-faq .accordion-button {
  background: transparent;
  box-shadow: none;
  padding: 24px 24px 24px 0;
  font-family: var(--zc-font);
  font-size: var(--zc-fs-h5);
  font-weight: 600;
  letter-spacing: -.015em;
  line-height: 1.45;
  color: var(--zc-ink);
}

.zc-faq .accordion-button:not(.collapsed) {
  color: var(--zc-ultra);
}

.zc-faq .accordion-button::after {
  width: 14px;
  height: 14px;
  background-image: none;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3E%3Cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3E%3Cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E");
  -webkit-mask-size: 14px;
  mask-size: 14px;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}

.zc-faq .accordion-button:not(.collapsed)::after {
  background-image: none;
}

.zc-faq .accordion-body {
  padding: 0 0 24px;
  font-size: var(--zc-fs-sm);
  line-height: 1.75;
  color: var(--zc-muted);
  max-width: 66ch;
}


/* ==========================================================================
   19. BLOG
   ========================================================================== */
.zc-post {
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: var(--zc-white);
  border: 1px solid var(--zc-line-soft);
  border-radius: var(--zc-r-xl);
  transition: transform .22s var(--zc-ease), box-shadow .22s var(--zc-ease);
}

.zc-post:hover {
  transform: translateY(-3px);
  box-shadow: var(--zc-shadow);
}

.zc-post__thumb {
  aspect-ratio: 16/9;
  display: grid;
  place-items: center;
  position: relative;
  overflow: hidden;
  background: var(--zc-body-2);
}

.zc-post__thumb img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.zc-post__thumb span {
  position: absolute;
  top: 16px;
  left: 16px;
  z-index: 1;
  padding: 6px 12px;
  border-radius: var(--zc-r-pill);
  background: rgba(16, 16, 24, .5);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  font-size: var(--zc-fs-label);
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #fff;
}

.zc-post__body {
  padding: 26px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.zc-post__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin-bottom: 14px;
  font-size: var(--zc-fs-xs);
  color: var(--zc-muted);
}

.zc-post h3 {
  font-size: var(--zc-fs-h5);
  margin-bottom: 10px;
}

.zc-post h3 a {
  color: var(--zc-ink);
}

.zc-post h3 a:hover {
  color: var(--zc-ultra);
}

.zc-post p {
  font-size: var(--zc-fs-sm);
  line-height: 1.7;
  margin: 0 0 20px;
}

.zc-post .zc-link {
  margin-top: auto;
}

.zc-widget {
  background: var(--zc-white);
  border: 1px solid var(--zc-line-soft);
  border-radius: var(--zc-r-xl);
  padding: 26px;
  margin-bottom: 22px;
}

.zc-widget h2,
.zc-widget h3,
.zc-widget h4 {
  font-size: var(--zc-fs-h6);
  margin-bottom: 18px;
}

.zc-widget ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 12px;
}

.zc-widget ul li {
  margin: 0;
  font-size: var(--zc-fs-sm);
}

.zc-widget ul a {
  color: var(--zc-ink-2);
  font-weight: 500;
}

.zc-widget ul a:hover {
  color: var(--zc-ultra);
}

.zc-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.zc-tags a {
  display: inline-block;
  padding: 6px 12px;
  border-radius: var(--zc-r-pill);
  background: var(--zc-white);
  color: var(--zc-ink-2);
  font-size: var(--zc-fs-xs);
  font-weight: 500;
}

.zc-widget .zc-tags a {
  background: var(--zc-body);
}

.zc-tags a:hover {
  background: var(--zc-ultra);
  color: #fff;
}

.zc-pagination {
  display: flex;
  gap: 8px;
  justify-content: center;
  list-style: none;
  padding: 0;
  margin: 56px 0 0;
}

.zc-pagination li {
  margin: 0;
}

.zc-pagination a,
.zc-pagination span {
  display: grid;
  place-items: center;
  min-width: 42px;
  height: 42px;
  padding: 0 12px;
  border: 1px solid var(--zc-line);
  border-radius: var(--zc-r-md);
  font-size: var(--zc-fs-sm);
  font-weight: 500;
  color: var(--zc-ink-2);
  background: var(--zc-white);
}

.zc-pagination a:hover {
  border-color: var(--zc-ultra);
  color: var(--zc-ultra);
}

.zc-pagination .is-current {
  background: var(--zc-ultra);
  border-color: var(--zc-ultra);
  color: #fff;
}


/* ==========================================================================
   20. TEAM & ABOUT
   ========================================================================== */
.zc-person {
  background: var(--zc-white);
  border: 1px solid var(--zc-line-soft);
  border-radius: var(--zc-r-xl);
  padding: 26px;
  height: 100%;
  text-align: center;
  display: block;
  color: inherit;
  text-decoration: none;
  transition: transform .22s var(--zc-ease), box-shadow .22s var(--zc-ease);
}

a.zc-person:hover {
  transform: translateY(-3px);
  box-shadow: var(--zc-shadow);
  color: inherit;
}

.zc-team-portrait {
  width: 220px;
  height: 220px;
  border-radius: 50%;
  object-fit: cover;
  border: 1px solid var(--zc-line-soft);
  box-shadow: var(--zc-shadow);
}

.zc-person__ph {
  width: 78px;
  height: 78px;
  border-radius: 50%;
  margin: 0 auto 18px;
  display: grid;
  place-items: center;
  background: var(--zc-white);
  color: #fff;
  font-size: var(--zc-fs-h5);
  font-weight: 600;
  letter-spacing: .02em;
  overflow: hidden;
}

.zc-person__ph img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.zc-person h3 {
  font-size: var(--zc-fs-h6);
  margin-bottom: 4px;
}

.zc-person .zc-label {
  display: block;
  margin-bottom: 12px;
}

.zc-person p {
  font-size: var(--zc-fs-sm);
  line-height: 1.65;
  margin: 0;
}

.zc-timeline {
  list-style: none;
  padding: 0;
  margin: 0;
}

.zc-timeline li {
  position: relative;
  margin: 0;
  padding: 0 0 30px 30px;
  border-left: 1px solid var(--zc-line);
}

.zc-timeline li:last-child {
  border-left-color: transparent;
  padding-bottom: 0;
}

.zc-timeline li::before {
  content: "";
  position: absolute;
  left: -5px;
  top: 7px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--zc-ultra);
}

.zc-timeline h3 {
  font-size: var(--zc-fs-h6);
  margin-bottom: 6px;
}

.zc-timeline p {
  font-size: var(--zc-fs-sm);
  line-height: 1.7;
  margin: 0;
}

.zc-timeline .zc-label {
  display: block;
  margin-bottom: 6px;
  color: var(--zc-ultra);
}

.zc-value {
  display: flex;
  gap: 16px;
  padding: 22px 0;
  border-top: 1px solid var(--zc-line);
}

.zc-value h3 {
  font-size: var(--zc-fs-h6);
  margin-bottom: 6px;
}

.zc-value p {
  font-size: var(--zc-fs-sm);
  line-height: 1.7;
  margin: 0;
}

.zc-value__n {
  flex: none;
  width: 34px;
  padding-top: 2px;
  font-size: var(--zc-fs-sm);
  font-weight: 700;
  color: var(--zc-muted-2);
  font-variant-numeric: tabular-nums;
}

.zc-quote-card {
  padding: 26px;
  border: 1px solid var(--zc-line-soft);
  border-radius: var(--zc-r-xl);
  background: var(--zc-white);
}

.zc-quote-card>p:first-child {
  font-weight: 700;
  color: var(--zc-ultra);
  margin-bottom: 8px;
}

.zc-quote-card>p:last-child {
  color: var(--zc-muted);
}


/* ==========================================================================
   21. INTEGRATIONS GRID
   ========================================================================== */
.zc-integration {
  background: var(--zc-white);
  border: 1px solid var(--zc-line-soft);
  border-radius: var(--zc-r-xl);
  padding: 24px;
  height: 100%;
  display: flex;
  flex-direction: column;
  transition: transform .22s var(--zc-ease), box-shadow .22s var(--zc-ease);
}

.zc-integration:hover {
  transform: translateY(-3px);
  box-shadow: var(--zc-shadow);
}

.zc-integration__mark {
  width: 44px;
  height: 44px;
  border-radius: var(--zc-r-md);
  display: grid;
  place-items: center;
  background: var(--zc-body);
  color: var(--zc-ink);
  font-size: var(--zc-fs-sm);
  font-weight: 700;
  letter-spacing: -.02em;
  margin-bottom: 18px;
}

.zc-integration__mark svg {
  width: 26px;
  height: 26px;
}

.zc-integration h3 {
  font-size: var(--zc-fs-h6);
  margin-bottom: 6px;
}

.zc-integration p {
  line-height: 1.7;
  margin: 0 0 16px;
}

.zc-integration__foot {
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid var(--zc-line-soft);
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: var(--zc-muted);
}

.zc-dot-ok {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #22C55E;
  margin-right: 6px;
}


/* ==========================================================================
   22. CONTACT
   ========================================================================== */
.zc-contact-card {
  background: var(--zc-white);
  border: 1px solid var(--zc-line-soft);
  border-radius: var(--zc-r-xl);
  padding: 26px;
  height: 100%;
}

.zc-contact-card h3 {
  font-size: var(--zc-fs-h6);
  margin-bottom: 6px;
}

.zc-contact-card p {
  font-size: var(--zc-fs-sm);
  line-height: 1.7;
  margin: 0 0 10px;
}

.zc-contact-card a {
  font-size: var(--zc-fs-sm);
  font-weight: 600;
}

.zc-map {
  border-radius: var(--zc-r-xl);
  overflow: hidden;
  border: 1px solid var(--zc-line-soft);
  background: var(--zc-body-2);
  height: 340px;
}

.zc-map iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}


.php-email-form .error-message {
  display: none;
  background: var(--zc-danger);
  color: var(--zc-white);
  text-align: left;
  padding: 15px;
  font-weight: 600;
}

.php-email-form .sent-message {
  display: none;
  color: var(--zc-white);
  background: var(--zc-mint);
  text-align: center;
  padding: 15px;
  margin-bottom: 24px;
  font-weight: 600;
}

.php-email-form .loading {
  display: none;
  color: var(--zc-white);
  background: var(--zc-ultra);
  text-align: center;
  padding: 15px;
  margin-bottom: 24px;
}

.php-email-form .loading:before {
  content: "";
  display: inline-block;
  border-radius: 50%;
  width: 24px;
  height: 24px;
  margin: 0 10px -6px 0;
  border: 3px solid var(--zc-ultra);
  border-top-color: var(--zc-white);
  animation: php-email-form-loading 1s linear infinite;
}

@keyframes php-email-form-loading {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}
/* ==========================================================================
   23. AUTH PAGES
   ========================================================================== */
.zc-auth {
  min-height: 100vh;
  display: flex;
  align-items: center;
  padding: 64px 0;
}

.zc-auth__brand {
  position: absolute;
  top: 32px;
  left: 32px;
  z-index: 2;
}

.zc-auth__theme-toggle {
  position: absolute;
  top: 32px;
  right: 32px;
  z-index: 2;
}

@media(max-width:991px) {
  .zc-auth__brand {
    position: relative;
    top: 0;
    padding-top: 24px;
    padding-left: 0;
    padding-bottom: 10px;
  }

  .zc-auth__theme-toggle {
    margin-top: 24px;
    margin-right: 0;
    position: relative;
    top: 0;
    float: right;
  }
}

.zc-auth__card {
  background: var(--zc-white);
  border: 1px solid var(--zc-line-soft);
  border-radius: var(--zc-r-xl);
  padding: 40px;
  box-shadow: var(--zc-shadow);
}

.zc-auth__card h1 {
  font-size: var(--zc-fs-h3);
  margin-bottom: 8px;
}

.zc-auth__card>p {
  font-size: var(--zc-fs-sm);
  margin-bottom: 28px;
}

.zc-auth__divider {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 24px 0;
}

.zc-auth__divider::before,
.zc-auth__divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--zc-line);
}

.zc-auth__divider span {
  font-size: var(--zc-fs-label);
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--zc-muted);
}

.zc-otp {
  display: flex;
  gap: 10px;
  justify-content: space-between;
}

.zc-otp__box {
  width: 100%;
  max-width: 56px;
  aspect-ratio: 1/1;
  text-align: center;
  font-size: var(--zc-fs-h5);
  font-weight: 700;
  font-family: var(--zc-font);
  color: var(--zc-ink);
  background: var(--zc-white);
  border: 1px solid var(--zc-line);
  border-radius: var(--zc-r-md);
  transition: border-color .2s var(--zc-ease), box-shadow .2s var(--zc-ease);
}

.zc-otp__box:focus {
  outline: 0;
  border-color: var(--zc-ultra);
  box-shadow: 0 0 0 4px rgba(43, 27, 255, .12);
}

.zc-auth__aside {
  padding: 40px 0;
}

.zc-auth__aside ul {
  list-style: none;
  padding: 0;
  margin: 26px 0 0;
  display: grid;
  gap: 16px;
}

.zc-auth__aside li {
  margin: 0;
  padding-left: 26px;
  position: relative;
  font-size: var(--zc-fs-sm);
  line-height: 1.65;
  color: var(--zc-ink-2);
}

.zc-auth__aside li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 10px;
  width: 12px;
  height: 2px;
  background: var(--zc-ultra);
}


/* ==========================================================================
   24. 404 PAGE
   ========================================================================== */
.zc-404 {
  padding: 110px 0;
  text-align: center;
}

.zc-404__code {
  font-size: clamp(6rem, 18vw, 11rem);
  font-weight: 700;
  line-height: .85;
  letter-spacing: -.06em;
  color: var(--zc-ink);
}

.zc-404__code span {
  color: var(--zc-ultra);
}


/* ==========================================================================
   25. LEGAL / LONG-FORM PROSE
   ========================================================================== */

.zc-prose h2 {
  font-size: var(--zc-fs-h3);
  margin: 48px 0 16px;
}

.zc-prose h2:first-child {
  margin-top: 0;
}

.zc-prose h3 {
  font-size: var(--zc-fs-h5);
  margin: 32px 0 12px;
}

.zc-prose p,
.zc-prose li {
  font-size: var(--zc-fs-body);
  line-height: 1.8;
}

.zc-prose ul {
  padding-left: 1.15rem;
}

.zc-prose li {
  margin-bottom: .65rem;
}

.zc-blog-aside {
  position: sticky;
  top: 110px;
  align-self: start;
}

.zc-toc ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 10px;
  border-left: 1px solid var(--zc-line);
}

.zc-toc li {
  margin: 0;
}

.zc-toc a {
  display: block;
  padding-left: 16px;
  margin-left: -1px;
  border-left: 2px solid transparent;
  font-size: var(--zc-fs-sm);
  font-weight: 500;
  color: var(--zc-muted);
}

.zc-toc a:hover {
  color: var(--zc-ultra);
  border-left-color: var(--zc-ultra);
}


/* ==========================================================================
   26. CTA BAND
   ========================================================================== */
.zc-cta {
  position: relative;
  overflow: hidden;
  background: var(--zc-ultra);
  border-radius: var(--zc-r-xl);
  padding: 64px 44px;
}

.zc-cta::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: repeating-linear-gradient(90deg, rgba(255, 255, 255, .14) 0 1px, transparent 1px 46px);
}

.zc-cta>* {
  position: relative;
  z-index: 1;
}

.zc-cta h2 {
  color: #fff;
}

.zc-cta p {
  color: rgba(255, 255, 255, .78);
  font-size: var(--zc-fs-lead);
}


/* ==========================================================================
   27. FOOTER
   ========================================================================== */
.zc-footer {
  background: #101018;
  color: var(--zc-on-dark);
  padding: 72px 0 0;
  margin-top: 100px;
}

.zc-footer .h5 {
  margin-bottom: 18px;
  color: #fff;
  font-weight: 600;
}

.zc-footer ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 11px;
}

.zc-footer li {
  margin: 0;
}

.zc-footer__grid {
  display: grid;
  grid-template-columns: 1.4fr repeat(4, 1fr);
  gap: 32px;
}

.zc-footer__col {
  min-width: 0;
}

.zc-footer a {
  color: var(--zc-on-dark);
  font-size: var(--zc-fs-sm);
}

.zc-footer a:hover {
  color: #fff;
}

.zc-footer__note {
  margin: 18px 0 0;
  font-size: var(--zc-fs-sm);
  line-height: 1.7;
  color: #75768A;
  max-width: 34ch;
}

.zc-footer__contact {
  margin-top: 16px;
}

.zc-footer__contact-label {
  display: block;
  color: var(--zc-on-dark);
  font-size: var(--zc-fs-sm);
  margin-bottom: 3px;
}

.zc-footer__contact a {
  font-size: var(--zc-fs-sm);
  font-weight: 600;
  color: #fff;
}

.zc-footer__contact a:hover {
  color: var(--zc-ultra-soft);
  text-decoration: underline;
}

.zc-footer__brand-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 56px;
  padding-top: 28px;
  border-top: 1px solid var(--zc-dark-line);
}

.zc-footer__bar {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 10px 24px;
  margin-top: 0;
  padding: 20px 0 26px;
}

.zc-footer__bar p {
  margin: 0;
}

.zc-footer__legal {
  display: flex;
  align-items: center;
  gap: 8px;
}


.zc-social {
  display: flex;
  gap: 8px;
}

.zc-social a {
  width: 36px;
  height: 36px;
  border-radius: var(--zc-r-sm);
  display: grid;
  place-items: center;
  background: rgba(255, 255, 255, .06);
  color: #fff;
}

.zc-social a:hover {
  background: var(--zc-ultra);
}

.zc-team-social a {
  background: var(--zc-white);
  color: var(--zc-ink);
}

.zc-team-social a:hover {
  background: var(--zc-ultra);
  color: var(--zc-white);
}

/* ==========================================================================
   28. UTILITIES & ANIMATION
   ========================================================================== */
.zc-reveal {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .6s var(--zc-ease), transform .6s var(--zc-ease);
}

.zc-reveal.is-in {
  opacity: 1;
  transform: none;
}

.zc-to-top {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 1030;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: var(--zc-r-md);
  background: var(--zc-dark-line);
  color: #fff;
  display: grid;
  place-items: center;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity .25s var(--zc-ease), transform .25s var(--zc-ease), visibility .25s;
}

.zc-to-top.is-on {
  opacity: 1;
  visibility: visible;
  transform: none;
}

.zc-divider {
  border-top: 1px solid var(--zc-line);
}

.zc-bg-white {
  background: var(--zc-white);
}


/* ==========================================================================
   29. RESPONSIVE
   ========================================================================== */
@media (max-width:1199.98px) {

  .zc-plan,
  .zc-tile,
  .zc-use {
    padding: 26px;
  }
}

@media (max-width:991.98px) {
  html {
    scroll-padding-top: 80px;
  }

  .zc-nav .navbar-collapse {
    background: var(--zc-white);
    border: 1px solid var(--zc-line-soft);
    border-radius: var(--zc-r-lg);
    padding: 14px;
    margin-top: 14px;
    box-shadow: var(--zc-shadow);
    max-height: 70vh;
    overflow-y: auto;
  }

  .zc-nav .nav-item {
    border-bottom: 1px solid var(--zc-line-soft);
  }

  .zc-nav .nav-item:last-child {
    border-bottom: 0;
  }

  .zc-nav .nav-link,
  .zc-nav .dropdown-toggle {
    width: 100%;
    display: flex;
    justify-content: space-between;
    padding: 13px 6px !important;
  }

  .zc-nav .dropdown-menu {
    border: 0;
    box-shadow: none;
    padding: 4px 0 10px 12px;
    margin-top: -2px;
    background: transparent;
  }

  .zc-sec {
    padding: var(--zc-space-section-md) 0;
  }

  .zc-top-sec {
    padding-top: var(--zc-space-top-section-md);
  }

  .zc-hero {
    padding: 56px 0 72px;
  }

  .zc-page-hero {
    padding: 52px 0 48px;
  }

  .zc-bento {
    grid-template-columns: repeat(2, 1fr);
  }

  .zc-tile--wide {
    grid-column: span 2;
  }

  .zc-band {
    padding: 44px 30px;
  }

  .zc-metric {
    border-left: 0;
    border-top: none;
    padding-left: 0;
    padding-top: 18px;
  }

  .zc-metric__n {
    font-size: 2rem;
  }

  .zc-auth {
    min-height: auto;
    display: block;
  }

  .zc-auth .offset-lg-1 {
    display: none;
  }

  .zc-auth .col-lg-5:not(.offset-lg-1) {
    flex: 0 0 100%;
    max-width: 520px;
    margin: 0 auto;
  }

  .zc-blog-aside {
    position: static;
  }

  .zc-toc {
    margin-bottom: 32px;
  }

  .zc-footer__grid {
    grid-template-columns: repeat(6, 1fr);
    gap: 50px;
  }

  .zc-footer__grid>.zc-footer__col:nth-child(1),
  .zc-footer__grid>.zc-footer__col:nth-child(2) {
    grid-column: span 3;
  }

  .zc-footer__grid>.zc-footer__col:nth-child(3),
  .zc-footer__grid>.zc-footer__col:nth-child(4),
  .zc-footer__grid>.zc-footer__col:nth-child(5) {
    grid-column: span 2;
  }
}

@media (max-width:767.98px) {
  .zc-sec {
    padding: var(--zc-space-section-sm) 0;
  }

  .zc-top-sec {
    padding-top: var(--zc-space-top-section-sm);
  }

  .zc-bento {
    grid-template-columns: 1fr;
  }

  .zc-tile--wide {
    grid-column: span 1;
  }

  .zc-tile,
  .zc-use,
  .zc-plan,
  .zc-quote,
  .zc-auth__card {
    padding: 24px;
  }

  .zc-console__read {
    grid-template-columns: 1fr;
  }

  .zc-read {
    border-right: 0;
    border-bottom: 1px solid var(--zc-line-soft);
  }

  .zc-read:last-child {
    border-bottom: 0;
  }

  .zc-score__row {
    grid-template-columns: 86px 1fr 40px;
    gap: 10px;
  }

  .zc-cta,
  .zc-band {
    padding: 40px 24px;
  }

  .zc-hero__stats {
    gap: 24px;
  }

  .zc-footer {
    margin-top: 60px;
  }


  .zc-footer__col--contact {
    grid-column: 1 / -1;
  }

  .zc-404 {
    padding: 72px 0;
  }

  .zc-bus {
    margin-bottom: 36px;
  }
}

@media (max-width:575.98px) {
  .zc-footer__grid {
    grid-template-columns: 1fr;
  }

  .zc-logos__group {
    gap: 24px;
    padding-right: 24px;
  }

  .zc-btn {
    padding: 13px 20px;
  }

  .zc-pagination a,
  .zc-pagination span {
    min-width: 38px;
    height: 38px;
  }
}

/* --- Accessibility: honour reduced-motion ------------------------------- */
@media (prefers-reduced-motion:reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }

  .zc-reveal {
    opacity: 1;
    transform: none;
  }
}

/* --- Print --------------------------------------------------------------- */
@media print {

  .zc-topbar,
  .zc-nav,
  .zc-footer,
  .zc-to-top,
  .zc-cta {
    display: none !important;
  }

  body {
    background: #fff;
    color: #000;
  }
}


/* ==========================================================================
   ==========================================================================
   E-COMMERCE MODULE
   --------------------------------------------------------------------------
   30. Product media & tints
   31. Product card / grid
   32. Shop toolbar & filter sidebar
   33. Product single (gallery, variants, quantity)
   34. Tabs & review list
   35. Cart
   36. Checkout
   37. Order complete
   38. Account dashboard
   39. Mini-cart badge & toast
   40. E-commerce responsive
   41. UTILITY LAYER  <-- every rule the pages need instead of a style attribute
   ==========================================================================
   ========================================================================== */


/* ==========================================================================
   30. PRODUCT MEDIA & TINTS
   Every product image is a tinted panel + line-art SVG, so the template
   ships with zero licensed photography. Swap .zc-product__media for an
   <img> when you add real product shots.
   ========================================================================== */
.zc-tint-1 {
  background: #E7E4FF;
  color: #5046E5;
}

/* digital / credits */
.zc-tint-2 {
  background: #DDE7F5;
  color: #2F5F92;
}

/* hardware          */
.zc-tint-3 {
  background: #FBE7D6;
  color: #A65B22;
}

/* apparel           */
.zc-tint-4 {
  background: #DCEFE6;
  color: #2A7159;
}

/* accessories       */
.zc-tint-5 {
  background: #F2E3EF;
  color: #8B3A73;
}

/* books             */
.zc-tint-6 {
  background: #E9EAF0;
  color: #3A3A47;
}

/* misc              */


/* ==========================================================================
   31. PRODUCT CARD / GRID
   ========================================================================== */
.zc-product {
  position: relative;
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: var(--zc-white);
  border: 1px solid var(--zc-line-soft);
  border-radius: var(--zc-r-xl);
  transition: transform .22s var(--zc-ease), box-shadow .22s var(--zc-ease);
}

.zc-product:hover {
  transform: translateY(-3px);
  box-shadow: var(--zc-shadow);
}

.zc-product__media {
  position: relative;
  display: grid;
  place-items: center;
  aspect-ratio: 4/3;
  overflow: hidden;
  color: inherit;
  background: var(--zc-body-2);
}

.zc-product__media svg {
  width: 44%;
  height: auto;
  opacity: .85;
  transition: transform .35s var(--zc-ease);
}

.zc-product:hover .zc-product__media svg {
  transform: scale(1.06);
}

.zc-product__media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .35s var(--zc-ease);
}

.zc-product:hover .zc-product__media img {
  transform: scale(1.06);
}

.zc-product__media-link {
  position: absolute;
  inset: 0;
  z-index: 1;
}

.zc-product__quick {
  position: absolute;
  left: 50%;
  bottom: 10px;
  z-index: 2;
  width: max-content;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 9px 16px;
  border: 0;
  border-radius: var(--zc-r-pill);
  cursor: pointer;
  background: var(--zc-ultra);
  color: #fff;
  font-size: var(--zc-fs-xs);
  font-weight: 600;
  white-space: nowrap;
  box-shadow: var(--zc-shadow);
  opacity: 0;
  transform: translate(-50%, 10px);
  pointer-events: none;
  transition: opacity .2s var(--zc-ease), transform .2s var(--zc-ease), background-color .18s var(--zc-ease);
}

.zc-product__quick svg {
  flex: none;
  width: 13px;
  height: 13px;
}

.zc-product__quick:hover {
  background: var(--zc-ultra-dark);
}

.zc-product:hover .zc-product__quick,
.zc-product:focus-visible {
  opacity: 1;
  transform: translate(-50%, 0);
  pointer-events: auto;
}

.zc-product__quick--disabled {
  background: var(--zc-body-2);
  color: var(--zc-muted);
  cursor: not-allowed;
}

.zc-product__quick--disabled:hover {
  background: var(--zc-body-2);
}

@media (hover:none) {
  .zc-product__quick {
    opacity: 1;
    transform: translate(-50%, 0);
    pointer-events: auto;
  }
}

.zc-product__flag {
  position: absolute;
  top: 12px;
  left: 12px;
  padding: 5px 10px;
  border-radius: var(--zc-r-sm);
  font-size: var(--zc-fs-label);
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  line-height: 1.4;
  background: var(--zc-onyx);
  color: #fff;
}

.zc-product__flag--sale {
  background: var(--zc-amber);
  color: var(--zc-onyx);
}

.zc-product__flag--out {
  background: var(--zc-body-2);
  color: var(--zc-muted);
}

.zc-product__wish {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  width: 34px;
  height: 34px;
  border: 0;
  cursor: pointer;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(255, 255, 255, .9);
  color: var(--zc-muted-2);
  transition: color .2s var(--zc-ease), background-color .2s var(--zc-ease);
}

.zc-product__wish:hover,
.zc-product__wish.is-on {
  color: #E5484D;
  background: #fff;
}

.zc-product__wish.is-on svg {
  fill: currentColor;
}

/* Inline variant for a product hero's action row, next to Add to cart / Buy now. */
.zc-product__wish--pd {
  position: static;
  width: 46px;
  height: 46px;
  border: 1px solid var(--zc-line);
  background: var(--zc-white);
}

.zc-product__wish--pd:hover,
.zc-product__wish--pd.is-on {
  border-color: #E5484D;
}

.zc-product__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 20px 22px 22px;
}

.zc-product__cat {
  font-size: var(--zc-fs-xs);
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  color: var(--zc-muted);
  margin-bottom: 6px;
}

.zc-product h3 {
  font-size: var(--zc-fs-h6);
  margin-bottom: 8px;
  line-height: 1.4;
}

.zc-product h3 a {
  color: var(--zc-ink);
}

.zc-product h3 a:hover {
  color: var(--zc-ultra);
}

.zc-product__desc {
  font-size: var(--zc-fs-xs);
  line-height: 1.65;
  margin: 0 0 14px;
}

.zc-product__foot {
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid var(--zc-line-soft);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

/* --- Price -------------------------------------------------------------- */
.zc-price {
  font-size: var(--zc-fs-h5);
  font-weight: 700;
  letter-spacing: -.03em;
  color: var(--zc-ink);
  font-variant-numeric: tabular-nums;
}

.zc-price small {
  font-size: .65em;
  font-weight: 600;
}

.zc-price__was {
  font-size: var(--zc-fs-sm);
  font-weight: 500;
  color: var(--zc-muted-2);
  text-decoration: line-through;
  margin-left: 8px;
}

.zc-price--lg {
  font-size: 2rem;
}

/* --- Stars -------------------------------------------------------------- */
.zc-stars {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  color: var(--zc-amber);
}

.zc-stars svg {
  width: 13px;
  height: 13px;
}

.zc-stars .is-off {
  color: var(--zc-line);
}

.zc-rating-note {
  font-size: var(--zc-fs-xs);
  color: var(--zc-muted);
  margin-left: 7px;
  white-space: nowrap;
}

.zc-pd__rating-link {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  border-radius: 4px;
}

.zc-pd__rating-link:hover .zc-rating-note,
.zc-pd__rating-link:focus-visible .zc-rating-note {
  color: var(--zc-ink);
  text-decoration: underline;
}

.zc-pd__rating-link:focus-visible {
  outline: 2px solid var(--zc-ultra);
  outline-offset: 3px;
}

/* ==========================================================================
   32. SHOP TOOLBAR & FILTER SIDEBAR
   ========================================================================== */
.zc-shop-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 16px 20px;
  margin-bottom: 26px;
  background: var(--zc-white);
  border: 1px solid var(--zc-line-soft);
  border-radius: var(--zc-r-lg);
}

.zc-shop-bar__count {
  font-size: var(--zc-fs-sm);
  color: var(--zc-muted);
}

.zc-shop-bar__count b {
  color: var(--zc-ink);
  font-weight: 600;
}

.zc-shop-bar__tools {
  display: flex;
  align-items: center;
  gap: 10px;
}

.zc-shop-bar select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  font-family: var(--zc-font);
  font-size: var(--zc-fs-sm);
  font-weight: 500;
  color: var(--zc-ink);
  background-color: var(--zc-white);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none' stroke='%23514F5C' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5.5 8L10 12.5L14.5 8'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
  border: 1px solid var(--zc-line);
  border-radius: var(--zc-r-md);
  padding: 9px 34px 9px 14px;
  cursor: pointer;
}

.zc-shop-bar select:focus {
  outline: 0;
  border-color: var(--zc-ultra);
  box-shadow: 0 0 0 4px rgba(43, 27, 255, .12);
}

.zc-filter {
  background: var(--zc-white);
  border: 1px solid var(--zc-line-soft);
  border-radius: var(--zc-r-xl);
  padding: 24px;
  margin-bottom: 18px;
}

.zc-filter h3 {
  font-size: var(--zc-fs-label);
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--zc-ink);
  margin-bottom: 18px;
}

.zc-filter__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 12px;
}

.zc-filter__list li {
  margin: 0;
}

.zc-filter__list label {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  font-size: var(--zc-fs-sm);
  color: var(--zc-ink-2);
}

.zc-filter__list input {
  width: 16px;
  height: 16px;
  accent-color: var(--zc-ultra);
  flex: none;
}

.zc-filter__list .zc-count {
  margin-left: auto;
  font-size: var(--zc-fs-xs);
  color: var(--zc-muted-2);
}

.zc-swatches {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.zc-swatch {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: 2px solid transparent;
  box-shadow: 0 0 0 1px var(--zc-line);
  cursor: pointer;
  padding: 0;
  transition: box-shadow .2s var(--zc-ease);
}

.zc-swatch.is-on {
  box-shadow: 0 0 0 2px var(--zc-ultra);
}

.zc-range {
  width: 100%;
  accent-color: var(--zc-ultra);
  margin: 6px 0 12px;
}

.zc-range-out {
  display: flex;
  justify-content: space-between;
  font-size: var(--zc-fs-sm);
  font-weight: 500;
  color: var(--zc-ink);
}


/* ==========================================================================
   33. PRODUCT SINGLE
   ========================================================================== */
.zc-gallery__main {
  position: relative;
  aspect-ratio: 1/1;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: var(--zc-r-xl);
  border: 2px solid transparent;
  margin-bottom: 14px;
  background: var(--zc-white);
}

.zc-gallery__main svg {
  width: 46%;
  height: auto;
  opacity: .9;
}

.zc-gallery__main img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.zc-gallery__main [data-gallery-img] {
  display: block;
  width: 100%;
  height: 100%;
}

.zc-gallery__thumbs {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}

.zc-gallery__thumb {
  aspect-ratio: 1/1;
  display: grid;
  place-items: center;
  cursor: pointer;
  padding: 0;
  overflow: hidden;
  border-radius: var(--zc-r-md);
  border: 1px solid transparent;
  box-shadow: 0 0 0 1px var(--zc-line-soft);
  transition: box-shadow .2s var(--zc-ease);
  background: var(--zc-white);
}

.zc-gallery__thumb svg {
  width: 44%;
  height: auto;
  opacity: .8;
}

.zc-gallery__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.zc-gallery__thumb.is-on {
  box-shadow: 0 0 0 2px var(--zc-ultra);
}

.zc-pd__head {
  padding-bottom: 22px;
  border-bottom: 1px solid var(--zc-line);
  margin-bottom: 22px;
}

.zc-pd__head h1 {
  font-size: var(--zc-fs-h2);
  margin: 12px 0 14px;
}

.zc-pd__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 16px;
}

.zc-pd__price {
  display: flex;
  align-items: baseline;
  gap: 4px;
  margin: 18px 0 8px;
}

.zc-variant {
  margin-bottom: 22px;
}

.zc-variant__label {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
  font-size: var(--zc-fs-sm);
  font-weight: 600;
  color: var(--zc-ink);
}

.zc-variant__label span {
  font-weight: 400;
  color: var(--zc-muted);
}

.zc-opts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.zc-opt {
  font-family: var(--zc-font);
  font-size: var(--zc-fs-sm);
  font-weight: 500;
  cursor: pointer;
  padding: 9px 16px;
  border-radius: var(--zc-r-md);
  background: var(--zc-white);
  color: var(--zc-ink-2);
  border: 1px solid var(--zc-line);
  transition: border-color .2s var(--zc-ease), color .2s var(--zc-ease), background-color .2s var(--zc-ease);
}

.zc-opt:hover {
  border-color: var(--zc-ultra);
}

.zc-opt.is-on {
  background: var(--zc-ultra);
  border-color: var(--zc-ultra);
  color: #fff;
}

.zc-opt:disabled {
  opacity: .4;
  cursor: not-allowed;
  text-decoration: line-through;
}

.zc-qty {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--zc-line);
  border-radius: var(--zc-r-md);
  background: var(--zc-white);
  overflow: hidden;
}

.zc-qty button {
  width: 42px;
  height: 46px;
  border: 0;
  background: transparent;
  cursor: pointer;
  color: var(--zc-ink);
  font-size: 1.1rem;
  line-height: 1;
  display: grid;
  place-items: center;
  transition: background-color .15s var(--zc-ease);
}

.zc-qty button:hover {
  background: var(--zc-body);
}

.zc-qty input {
  width: 52px;
  height: 46px;
  border: 0;
  text-align: center;
  background: transparent;
  font-family: var(--zc-font);
  font-size: var(--zc-fs-body);
  color: var(--zc-ink);
  font-variant-numeric: tabular-nums;
  -moz-appearance: textfield;
}

.zc-qty input::-webkit-outer-spin-button,
.zc-qty input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.zc-qty input:focus {
  outline: 0;
}

.zc-pd__assure {
  list-style: none;
  padding: 22px 0 0;
  margin: 26px 0 0;
  border-top: 1px solid var(--zc-line);
  display: grid;
  gap: 12px;
}

.zc-pd__assure li {
  display: flex;
  gap: 11px;
  align-items: flex-start;
  margin: 0;
  font-size: var(--zc-fs-sm);
  color: var(--zc-ink-2);
}

.zc-pd__assure svg {
  flex: none;
  margin-top: 4px;
  color: var(--zc-ultra);
}


/* ==========================================================================
   34. TABS & REVIEWS
   ========================================================================== */
.zc-ptabs {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  border-bottom: 1px solid var(--zc-line);
  margin-bottom: 32px;
}

.zc-ptabs .nav-link {
  font-family: var(--zc-font);
  font-size: var(--zc-fs-sm);
  font-weight: 600;
  color: var(--zc-muted);
  background: transparent;
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  padding: 14px 18px;
  margin-bottom: -1px;
}

.zc-ptabs li {
  margin-bottom: 0;
}

.zc-ptabs .nav-link:hover {
  color: var(--zc-ink);
}

.zc-ptabs .nav-link.active {
  color: var(--zc-ultra);
  border-bottom-color: var(--zc-ultra);
}

.zc-spec {
  width: 100%;
}

.zc-spec th,
.zc-spec td {
  padding: 13px 0;
  border-bottom: 1px solid var(--zc-line-soft);
  font-size: var(--zc-fs-sm);
  text-align: left;
  vertical-align: top;
}

.zc-spec th {
  font-weight: 500;
  color: var(--zc-ink);
  width: 38%;
}

.zc-spec td {
  color: var(--zc-muted);
}

.zc-review {
  display: flex;
  gap: 16px;
  padding: 22px 24px;
  margin-bottom: 16px;
  background: var(--zc-white);
  border: 1px solid var(--zc-line-soft);
  border-radius: var(--zc-r-lg);
}

.zc-review:last-child {
  margin-bottom: 0;
}

.zc-review__body h4 {
  font-size: var(--zc-fs-h6);
  margin: 8px 0 6px;
}

.zc-review__body p {
  font-size: var(--zc-fs-sm);
  line-height: 1.75;
  margin: 0;
}

.zc-review__date {
  font-size: var(--zc-fs-xs);
  color: var(--zc-muted-2);
}

.zc-rating-summary {
  text-align: center;
  padding: 26px;
  background: var(--zc-white);
  border: 1px solid var(--zc-line-soft);
  border-radius: var(--zc-r-xl);
}

.zc-rating-summary__n {
  font-size: 3rem;
  font-weight: 700;
  letter-spacing: -.04em;
  line-height: 1;
  color: var(--zc-ink);
}

.zc-rating-bar {
  display: grid;
  grid-template-columns: 38px 1fr 34px;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
}

.zc-rating-bar span:first-child,
.zc-rating-bar span:last-child {
  font-size: var(--zc-fs-xs);
  color: var(--zc-muted);
}

.zc-rating-bar__track {
  height: 6px;
  background: var(--zc-body-2);
  border-radius: var(--zc-r-pill);
  overflow: hidden;
}

.zc-rating-bar__fill {
  display: block;
  height: 100%;
  background: var(--zc-amber);
  border-radius: var(--zc-r-pill);
}

/* --- Write-a-review modal ------------------------------------------------ */
.zc-modal {
  background: var(--zc-white);
  color: var(--zc-ink);
  border: 1px solid var(--zc-line-soft);
  border-radius: var(--zc-r-xl);
  box-shadow: var(--zc-shadow-lg);
}

:root[data-theme="dark"] .zc-modal .btn-close {
  filter: invert(1) grayscale(100%) brightness(200%);
}

.zc-modal .modal-header {
  border-bottom: 1px solid var(--zc-line-soft);
  padding: 22px 26px;
}

.zc-modal .modal-title {
  font-size: var(--zc-fs-h5);
  font-weight: 700;
}

.zc-modal .modal-body {
  padding: 26px;
}

.zc-star-picker {
  display: flex;
  gap: 6px;
}

.zc-star-picker__btn {
  border: 0;
  background: none;
  padding: 2px;
  cursor: pointer;
  color: var(--zc-line);
  line-height: 0;
  transition: color .15s var(--zc-ease);
}

.zc-star-picker__btn svg {
  width: 26px;
  height: 26px;
}

.zc-star-picker__btn.is-on {
  color: var(--zc-amber);
}


/* ==========================================================================
   35. CART
   ========================================================================== */
.zc-cart-table {
  width: 100%;
}

.zc-cart-table thead th {
  padding: 0 0 14px;
  border-bottom: 1px solid var(--zc-line);
  text-align: left;
  font-size: var(--zc-fs-label);
  font-weight: 600;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--zc-muted);
}

.zc-cart-row {
  display: grid;
  grid-template-columns: 96px 1fr auto auto 40px;
  gap: 20px;
  align-items: center;
  padding: 22px 0;
  border-bottom: 1px solid var(--zc-line-soft);
}

.zc-cart-row__media {
  width: 96px;
  aspect-ratio: 1/1;
  border-radius: var(--zc-r-md);
  display: grid;
  place-items: center;
  overflow: hidden;
  background: var(--zc-body-2);
}

:root[data-theme="dark"] .zc-cart-row__media {
  background: var(--zc-white);
}

.zc-cart-row__media svg {
  width: 48%;
  height: auto;
  opacity: .85;
}

.zc-cart-row__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.zc-cart-row__name {
  font-size: var(--zc-fs-h6);
  font-weight: 600;
  color: var(--zc-ink);
  display: block;
  margin-bottom: 5px;
  line-height: 1.4;
}

.zc-cart-row__name:hover {
  color: var(--zc-ultra);
}

.zc-cart-row__var {
  font-size: var(--zc-fs-xs);
  color: var(--zc-muted);
}

.zc-cart-row__total {
  font-size: var(--zc-fs-h6);
  font-weight: 700;
  letter-spacing: -.02em;
  color: var(--zc-ink);
  min-width: 84px;
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.zc-cart-row__x {
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: var(--zc-r-sm);
  cursor: pointer;
  background: transparent;
  color: var(--zc-muted-2);
  display: grid;
  place-items: center;
  transition: color .2s var(--zc-ease), background-color .2s var(--zc-ease);
}

.zc-cart-row__x:hover {
  color: #E5484D;
  background: #FDECEC;
}

.zc-summary {
  background: var(--zc-white);
  border: 1px solid var(--zc-line-soft);
  border-radius: var(--zc-r-xl);
  padding: 28px;
  position: sticky;
  top: 110px;
}

.zc-summary h3 {
  font-size: var(--zc-fs-h5);
  margin-bottom: 20px;
}

.zc-summary__row {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  padding: 11px 0;
  font-size: var(--zc-fs-sm);
  color: var(--zc-muted);
}

.zc-summary__row b {
  color: var(--zc-ink);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.zc-summary__total {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 14px;
  margin-top: 12px;
  padding-top: 18px;
  border-top: 1px solid var(--zc-line);
  font-size: var(--zc-fs-h5);
  font-weight: 600;
  color: var(--zc-ink);
}

.zc-summary__total b {
  font-size: 1.625rem;
  font-weight: 700;
  letter-spacing: -.03em;
  font-variant-numeric: tabular-nums;
}

.zc-coupon {
  display: flex;
  gap: 8px;
  margin: 20px 0;
}

.zc-coupon .zc-input {
  flex: 1;
}

.zc-cart-empty {
  text-align: center;
  padding: 64px 24px;
}

.zc-cart-empty svg {
  color: var(--zc-line);
  margin-bottom: 22px;
}

.zc-steps-bar {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 40px;
}

.zc-steps-bar__item {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: var(--zc-fs-sm);
  font-weight: 500;
  color: var(--zc-muted-2);
}

.zc-steps-bar__n {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  flex: none;
  background: var(--zc-body-2);
  color: var(--zc-muted);
  font-size: var(--zc-fs-xs);
  font-weight: 600;
}

.zc-steps-bar__item.is-on {
  color: var(--zc-ink);
}

.zc-steps-bar__item.is-on .zc-steps-bar__n {
  background: var(--zc-ultra);
  color: #fff;
}

.zc-steps-bar__item.is-done .zc-steps-bar__n {
  background: var(--zc-onyx);
  color: #fff;
}

.zc-steps-bar__line {
  flex: 1;
  min-width: 20px;
  height: 1px;
  background: var(--zc-line);
}


/* ==========================================================================
   36. CHECKOUT
   ========================================================================== */
.zc-checkout-block {
  background: var(--zc-white);
  border: 1px solid var(--zc-line-soft);
  border-radius: var(--zc-r-xl);
  padding: 28px;
  margin-bottom: 20px;
}

.zc-checkout-block h2 {
  font-size: var(--zc-fs-h5);
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.zc-checkout-block h2 span {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--zc-onyx);
  color: #fff;
  flex: none;
  display: grid;
  place-items: center;
  font-size: var(--zc-fs-xs);
  font-weight: 600;
}

.zc-pay-option {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  cursor: pointer;
  padding: 16px;
  border: 1px solid var(--zc-line);
  border-radius: var(--zc-r-md);
  margin-bottom: 10px;
  transition: border-color .2s var(--zc-ease), background-color .2s var(--zc-ease);
}

.zc-pay-option:hover {
  border-color: #BFC2D0;
}

.zc-pay-option input {
  margin-top: 4px;
  accent-color: var(--zc-ultra);
  width: 16px;
  height: 16px;
  flex: none;
}

.zc-pay-option.is-on {
  border-color: var(--zc-ultra);
  background: var(--zc-ultra-soft);
}

.zc-pay-option__t {
  font-size: var(--zc-fs-sm);
  font-weight: 600;
  color: var(--zc-ink);
  display: block;
}

.zc-pay-option__d {
  font-size: var(--zc-fs-xs);
  color: var(--zc-muted);
}

.zc-pay-option.is-on .zc-pay-option__t {
  color: #101018;
}

.zc-pay-option.is-on .zc-pay-option__d {
  color: #63647A;
}


.zc-mini-item {
  display: flex;
  gap: 14px;
  align-items: center;
  padding: 12px 0;
  border-bottom: 1px solid var(--zc-line-soft);
}

.zc-mini-item__media {
  width: 52px;
  height: 52px;
  border-radius: var(--zc-r-sm);
  display: grid;
  place-items: center;
  flex: none;
  position: relative;
  background: var(--zc-body-2);
}

.zc-mini-item__media svg {
  width: 50%;
  height: auto;
  opacity: .85;
}

.zc-mini-item__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
}

.zc-mini-item__q {
  position: absolute;
  top: -7px;
  right: -7px;
  min-width: 20px;
  height: 20px;
  padding: 0 5px;
  border-radius: var(--zc-r-pill);
  background: var(--zc-onyx);
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  display: grid;
  place-items: center;
}

.zc-mini-item__n {
  font-size: var(--zc-fs-sm);
  font-weight: 500;
  color: var(--zc-ink);
  line-height: 1.4;
}

.zc-mini-item__v {
  font-size: var(--zc-fs-xs);
  color: var(--zc-muted);
  display: block;
}

.zc-mini-item__p {
  margin-left: auto;
  font-size: var(--zc-fs-sm);
  font-weight: 600;
  color: var(--zc-ink);
  font-variant-numeric: tabular-nums;
}


/* ==========================================================================
   37. ORDER COMPLETE
   ========================================================================== */
.zc-order-tick {
  width: 76px;
  height: 76px;
  border-radius: 50%;
  margin: 0 auto 26px;
  background: var(--zc-ultra-soft);
  color: var(--zc-ultra);
  display: grid;
  place-items: center;
}

.zc-order-meta {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--zc-line-soft);
  border: 1px solid var(--zc-line-soft);
  border-radius: var(--zc-r-xl);
  overflow: hidden;
}

.zc-order-meta__cell {
  background: var(--zc-white);
  padding: 20px;
}

.zc-order-meta__l {
  display: block;
  margin-bottom: 5px;
  font-size: var(--zc-fs-label);
  font-weight: 500;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--zc-muted);
}

.zc-order-meta__v {
  font-size: var(--zc-fs-sm);
  font-weight: 600;
  color: var(--zc-ink);
}


/* ==========================================================================
   38. ACCOUNT DASHBOARD
   ========================================================================== */
.zc-acc-nav {
  background: var(--zc-white);
  border: 1px solid var(--zc-line-soft);
  border-radius: var(--zc-r-xl);
  padding: 12px;
}

.zc-acc-nav .nav-link {
  display: flex;
  align-items: center;
  gap: 11px;
  width: 100%;
  font-size: var(--zc-fs-sm);
  font-weight: 500;
  color: var(--zc-ink-2);
  padding: 11px 14px;
  border-radius: var(--zc-r-md);
  border: 0;
  background: transparent;
  text-align: left;
}

.zc-acc-nav .nav-link:hover {
  background: var(--zc-body);
  color: var(--zc-ink);
}

.zc-acc-nav .nav-link.active {
  background: var(--zc-onyx);
  color: #fff;
}

.zc-order-card {
  background: var(--zc-white);
  border: 1px solid var(--zc-line-soft);
  border-radius: var(--zc-r-xl);
  padding: 22px;
  margin-bottom: 16px;
}

.zc-order-card__head {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 24px;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--zc-line-soft);
  margin-bottom: 16px;
}

.zc-status {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: var(--zc-fs-xs);
  font-weight: 600;
  padding: 5px 11px;
  border-radius: var(--zc-r-pill);
}

.zc-status--ok {
  background: #DFF3E8;
  color: #1B6E4A;
}

.zc-status--wait {
  background: #FFF2D6;
  color: #8A6100;
}

.zc-status--ship {
  background: var(--zc-ultra-soft);
  color: var(--zc-ultra);
}


/* ==========================================================================
   39. MINI-CART BADGE & TOAST
   ========================================================================== */

/* Shared square icon-button sizing for the header's utility row
   (wishlist, cart, theme toggle) so they all line up identically. */
.zc-nav-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 39px;
  height: 39px;
  padding: 0;
}

.zc-cart-btn,
.zc-wish-btn {
  position: relative;
}

.zc-cart-count {
  position: absolute;
  top: -6px;
  right: -8px;
  min-width: 19px;
  height: 19px;
  padding: 0 5px;
  border-radius: var(--zc-r-pill);
  background: var(--zc-ultra);
  color: #fff;
  font-size: 11px;
  font-weight: 500;
  line-height: 19px;
  text-align: center;
}

.zc-cart-count:empty,
.zc-cart-count[data-count="0"] {
  display: none;
}

/* ==========================================================================
   39b. THEME TOGGLE
   ========================================================================== */
.zc-theme-toggle__sun {
  display: none;
}

.zc-theme-toggle__moon {
  display: block;
}

:root[data-theme="dark"] .zc-theme-toggle__sun {
  display: block;
}

:root[data-theme="dark"] .zc-theme-toggle__moon {
  display: none;
}

/* ==========================================================================
   39c. MINI CART DRAWER
   ========================================================================== */
.zc-cart-drawer {
  position: fixed;
  inset: 0;
  z-index: 1200;
  pointer-events: none;
}

.zc-cart-drawer__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(8, 8, 14, .55);
  opacity: 0;
  transition: opacity .25s var(--zc-ease);
}

.zc-cart-drawer__panel {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(420px, 100vw);
  background: var(--zc-white);
  box-shadow: var(--zc-shadow-lg);
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform .3s var(--zc-ease);
}

.zc-cart-drawer.is-open {
  pointer-events: auto;
}

.zc-cart-drawer.is-open .zc-cart-drawer__backdrop {
  opacity: 1;
}

.zc-cart-drawer.is-open .zc-cart-drawer__panel {
  transform: translateX(0);
}

.zc-cart-drawer__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 22px 24px;
  border-bottom: 1px solid var(--zc-line-soft);
  flex: none;
}

.zc-cart-drawer__head h3 {
  font-size: var(--zc-fs-h6);
  margin: 0;
}

.zc-cart-drawer__x {
  width: 34px;
  height: 34px;
  border: 1px solid var(--zc-line);
  border-radius: 50%;
  cursor: pointer;
  background: transparent;
  color: var(--zc-muted-2);
  display: grid;
  place-items: center;
  transition: color .2s var(--zc-ease), background-color .2s var(--zc-ease), border-color .2s var(--zc-ease);
}

.zc-cart-drawer__x:hover {
  color: var(--zc-ink);
  background: var(--zc-body);
  border-color: var(--zc-line);
}

.zc-cart-drawer__body {
  flex: 1;
  overflow-y: auto;
  padding: 4px 24px;
}

.zc-cart-drawer__empty {
  text-align: center;
  padding: 60px 20px;
}

.zc-cart-drawer__empty svg {
  color: var(--zc-line);
  margin-bottom: 18px;
}

.zc-cart-drawer__item {
  display: flex;
  gap: 14px;
  padding: 18px 0;
  border-bottom: 1px solid var(--zc-line-soft);
}

.zc-cart-drawer__item:last-child {
  border-bottom: 0;
}

.zc-cart-drawer__item-media {
  width: 64px;
  height: 64px;
  flex: none;
  border-radius: var(--zc-r-md);
  overflow: hidden;
  display: grid;
  place-items: center;
  background: var(--zc-body-2);
}

:root[data-theme="dark"] .zc-cart-drawer__item-media {
  background: var(--zc-white);
}

.zc-cart-drawer__item-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.zc-cart-drawer__item-media svg {
  width: 48%;
  height: auto;
  opacity: .85;
}

.zc-cart-drawer__item-info {
  flex: 1;
  min-width: 0;
}

.zc-cart-drawer__item-name {
  font-size: var(--zc-fs-sm);
  font-weight: 600;
  color: var(--zc-ink);
  display: block;
  margin-bottom: 3px;
  line-height: 1.4;
}

.zc-cart-drawer__item-var {
  font-size: var(--zc-fs-xs);
  color: var(--zc-muted);
  display: block;
  margin-bottom: 8px;
}

.zc-cart-drawer__item-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 8px;
  flex-wrap: wrap;
}

.zc-cart-drawer__item-price {
  font-size: var(--zc-fs-sm);
  color: var(--zc-ink);
  font-variant-numeric: tabular-nums;
}

.zc-cart-drawer__item-x {
  width: 28px;
  height: 28px;
  flex: none;
  border: 0;
  border-radius: var(--zc-r-sm);
  cursor: pointer;
  background: transparent;
  color: var(--zc-muted-2);
  display: grid;
  place-items: center;
  transition: color .2s var(--zc-ease), background-color .2s var(--zc-ease);
}

.zc-cart-drawer__item-x:hover {
  color: #E5484D;
  background: rgba(229, 72, 77, .1);
}

.zc-cart-drawer__foot {
  flex: none;
  padding: 18px 24px 24px;
  border-top: 1px solid var(--zc-line-soft);
}

.zc-cart-drawer__subtotal {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: var(--zc-fs-sm);
  color: var(--zc-muted);
  margin-bottom: 16px;
}

.zc-cart-drawer__subtotal b {
  font-size: var(--zc-fs-h6);
  color: var(--zc-ink);
  font-variant-numeric: tabular-nums;
}

.zc-cart-drawer__foot .zc-btn {
  margin-bottom: 10px;
}

.zc-cart-drawer__foot .zc-btn:last-child {
  margin-bottom: 0;
}

.zc-qty--sm button {
  width: 30px;
  height: 34px;
  font-size: .95rem;
}

.zc-qty--sm input {
  width: 34px;
  height: 34px;
  font-size: var(--zc-fs-sm);
}

body.zc-scroll-lock {
  overflow: hidden;
}

@media (max-width: 480px) {
  .zc-cart-drawer__panel {
    width: 100vw;
  }
}

.zc-toast {
  position: fixed;
  right: 22px;
  bottom: 78px;
  z-index: 1050;
  max-width: 320px;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 18px;
  background: var(--zc-onyx);
  color: #fff;
  border-radius: var(--zc-r-md);
  box-shadow: var(--zc-shadow-lg);
  font-size: var(--zc-fs-sm);
  font-weight: 500;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity .25s var(--zc-ease), transform .25s var(--zc-ease), visibility .25s;
}

.zc-toast.is-on {
  opacity: 1;
  visibility: visible;
  transform: none;
}

.zc-toast svg {
  color: var(--zc-amber);
  flex: none;
}


/* ==========================================================================
   40. E-COMMERCE RESPONSIVE
   ========================================================================== */
@media (max-width:991.98px) {
  .zc-summary {
    position: static;
  }

  .zc-order-meta {
    grid-template-columns: repeat(2, 1fr);
  }

  .zc-acc-nav {
    display: flex;
    gap: 6px;
    overflow-x: auto;
  }

  .zc-acc-nav .nav-link {
    width: auto;
    white-space: nowrap;
  }
}

@media (max-width:767.98px) {
  .zc-cart-row {
    grid-template-columns: 72px 1fr auto;
    grid-template-areas: "m i x" "m q t";
    gap: 8px 16px;
  }

  .zc-cart-row__media {
    grid-area: m;
    width: 72px;
  }

  .zc-cart-row__info {
    grid-area: i;
  }

  .zc-cart-row__qty {
    grid-area: q;
    justify-self: start;
  }

  .zc-cart-row__qty button {
    width: 34px;
    height: 38px;
  }

  .zc-cart-row__qty input {
    width: 40px;
    height: 38px;
  }

  .zc-cart-row__total {
    grid-area: t;
    text-align: right;
    min-width: 0;
    justify-self: end;
  }

  .zc-cart-row__x {
    grid-area: x;
    justify-self: end;
  }

  .zc-gallery__thumbs {
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
  }

  .zc-shop-bar {
    padding: 14px 16px;
  }

  .zc-shop-bar__tools {
    width: 100%;
  }

  .zc-shop-bar select {
    flex: 1;
  }

  .zc-checkout-block,
  .zc-summary {
    padding: 22px;
  }

  .zc-order-meta {
    grid-template-columns: 1fr;
  }

  .zc-toast {
    left: 16px;
    right: 16px;
    max-width: none;
    bottom: 16px;
  }
}


/* ==========================================================================
   41. UTILITY LAYER
   --------------------------------------------------------------------------
   There is not one `style` attribute anywhere in the 21 pages. Where a page
   needs a heading at a different step of the scale, a tighter margin or a
   data-driven bar width, it reaches for a class from this section.

   41.1  Type size          .zc-fs-*
   41.2  Weight & colour    .zc-fw-*  .zc-text-*
   41.3  Spacing            .zc-mt-*  .zc-mb-*  .zc-pt-*  .zc-pb-*
   41.4  Measure            .zc-measure-*
   41.5  Position           .zc-sticky
   41.6  Component modifiers
   41.7  Fill widths        .zc-fill-0 … .zc-fill-100
   ========================================================================== */

/* --- 41.1 Type size ----------------------------------------------------- */
/* Applies a step of the scale to any element without changing its heading
   rank. Use these when semantics and visual weight need to disagree — an
   <h2> that should read at h3 size keeps its rank for screen readers. */
.zc-fs-display {
  font-size: var(--zc-fs-display);
  line-height: 1.06;
  letter-spacing: -.03em;
}

.zc-fs-h1 {
  font-size: var(--zc-fs-h1);
  line-height: var(--zc-lh-tight);
  letter-spacing: -.03em;
}

.zc-fs-h2 {
  font-size: var(--zc-fs-h2);
  line-height: 1.16;
  letter-spacing: -.025em;
}

.zc-fs-h3 {
  font-size: var(--zc-fs-h3);
  line-height: var(--zc-lh-heading);
  letter-spacing: -.02em;
}

.zc-fs-h4 {
  font-size: var(--zc-fs-h4);
  line-height: 1.35;
  letter-spacing: -.015em;
}

.zc-fs-h5 {
  font-size: var(--zc-fs-h5);
  line-height: 1.45;
  letter-spacing: -.01em;
}

.zc-fs-h6 {
  font-size: var(--zc-fs-h6);
  line-height: 1.50;
  letter-spacing: 0;
}

.zc-fs-lead {
  font-size: var(--zc-fs-lead);
  line-height: 1.65;
}

.zc-fs-body {
  font-size: var(--zc-fs-body);
}

.zc-fs-sm2 {
  font-size: var(--zc-fs-sm);
}

.zc-fs-xs2 {
  font-size: var(--zc-fs-xs);
}

.zc-fs-stat {
  font-size: 1.75rem;
  line-height: 1.1;
  letter-spacing: -.03em;
}

/* --- 41.2 Weight & colour ----------------------------------------------- */
.zc-fw-400 {
  font-weight: 400;
}

.zc-fw-500 {
  font-weight: 500;
}

.zc-fw-600 {
  font-weight: 600;
}

.zc-fw-700 {
  font-weight: 700;
}

.zc-text-ink {
  color: var(--zc-ink);
}

.zc-text-ink-2 {
  color: var(--zc-ink-2);
}

.zc-text-muted {
  color: var(--zc-muted);
}

.zc-text-ultra {
  color: var(--zc-ultra);
}

.zc-text-white {
  color: #fff;
}

/* --- 41.3 Spacing ------------------------------------------------------- */
/* A compact px scale that matches the vertical rhythm of the components.
   Bootstrap's own m-/p- utilities still work; these fill the gaps between
   its 0.25rem steps where the design needs an in-between value. */
.zc-mt-0 {
  margin-top: 0 !important;
}

.zc-mt-16 {
  margin-top: 16px;
}

.zc-mt-20 {
  margin-top: 20px;
}

.zc-mt-24 {
  margin-top: 24px;
}

.zc-mt-28 {
  margin-top: 28px;
}

.zc-mb-0 {
  margin-bottom: 0 !important;
}

.zc-mb-6 {
  margin-bottom: 6px;
}

.zc-mb-8 {
  margin-bottom: 8px;
}

.zc-mb-14 {
  margin-bottom: 14px;
}

.zc-mb-16 {
  margin-bottom: 16px;
}

.zc-mb-18 {
  margin-bottom: 18px;
}

.zc-mb-20 {
  margin-bottom: 20px;
}

.zc-mb-40 {
  margin-bottom: 40px;
}

.zc-pt-0 {
  padding-top: 0 !important;
}

.zc-pt-40 {
  padding-top: 40px;
}

.zc-pb-40 {
  padding-bottom: 40px;
}

.zc-border-0 {
  border: 0 !important;
}

.zc-border-t-0 {
  border-top: 0 !important;
}

/* --- 41.5 Position ------------------------------------------------------ */
.zc-sticky {
  position: sticky;
  top: 110px;
}

@media (max-width:991.98px) {
  .zc-sticky {
    position: static;
  }
}

/* --- 41.6 Component modifiers ------------------------------------------- */
/* Metric block on a light surface (the ink version is section 14). */
.zc-metric--light {
  border-left: 1px solid var(--zc-line);
  padding-left: 18px;
}

.zc-metric--light .zc-metric__n {
  color: var(--zc-ink);
  font-size: 1.75rem;
}

.zc-metric--light .zc-metric__l {
  color: var(--zc-muted);
}

@media(max-width:991px) {
  .zc-metric--light {
    padding-left: 0;
    border-top: none;
  }
}

@media(max-width:575px) {
  .zc-metric--light {
    padding-left: 0;
    border-left: none;
    position: relative;
    padding: 15px 0;
  }

  .zc-metric--light::before {
    position: absolute;
    left: 0;
    right: 0;
    top: -10px;
    content: "";
    background: var(--zc-line);
    height: 1px;
    width: 100px;
    margin: 0 auto;
  }

  .zc-metric--light.first::before {
    content: none;
  }
}

/* Install command under an SDK name. */
.zc-cmd {
  color: var(--zc-ultra);
  font-weight: 500;
}

/* "(optional)" hint beside a field label. */
.zc-optional {
  font-weight: 400;
  color: var(--zc-muted);
  font-size: var(--zc-fs-xs);
}

/* Mini item stripped of its rule, for stacked lists inside a card. */
.zc-mini-item--flush {
  border-bottom: 0;
}

.zc-mini-item--flush:first-child {
  padding-top: 0;
}

/* Assurance list with no leading rule. */
.zc-pd__assure--flush {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}

/* Pagination aligned left instead of centred (review lists). */
.zc-pagination--start {
  justify-content: flex-start;
  margin-top: 28px;
}

/* Wide article header image on the blog single page. */
.zc-post__hero {
  border-radius: var(--zc-r-xl);
  aspect-ratio: 16/7;
  margin-bottom: 40px;
}

/* Named colour swatches for the shop filter. */
.zc-swatch--ink {
  background: #101018;
}

.zc-swatch--ultra {
  background: #5046E5;
}

.zc-swatch--porcelain {
  background: #E8E9EE;
}

.zc-swatch--amber {
  background: #FFC53D;
}

.zc-swatch--mint {
  background: #7EE3C8;
}

/* Section padding overrides used by the product page. */
.zc-sec--pt-40 {
  padding-top: 40px;
}

.zc-page-hero--slim {
  padding-bottom: 40px;
}

/* --- 41.7 Fill widths --------------------------------------------------- */
/* Data-driven bar widths for .zc-score__fill and .zc-rating-bar__fill.
   Percentages in whole steps so any value can be set from markup or from
   your template engine without writing a style attribute. */
.zc-fill-0 {
  width: 0%;
}

.zc-fill-1 {
  width: 1%;
}

.zc-fill-2 {
  width: 2%;
}

.zc-fill-3 {
  width: 3%;
}

.zc-fill-4 {
  width: 4%;
}

.zc-fill-5 {
  width: 5%;
}

.zc-fill-6 {
  width: 6%;
}

.zc-fill-7 {
  width: 7%;
}

.zc-fill-8 {
  width: 8%;
}

.zc-fill-9 {
  width: 9%;
}

.zc-fill-10 {
  width: 10%;
}

.zc-fill-11 {
  width: 11%;
}

.zc-fill-12 {
  width: 12%;
}

.zc-fill-13 {
  width: 13%;
}

.zc-fill-14 {
  width: 14%;
}

.zc-fill-15 {
  width: 15%;
}

.zc-fill-16 {
  width: 16%;
}

.zc-fill-17 {
  width: 17%;
}

.zc-fill-18 {
  width: 18%;
}

.zc-fill-19 {
  width: 19%;
}

.zc-fill-20 {
  width: 20%;
}

.zc-fill-21 {
  width: 21%;
}

.zc-fill-22 {
  width: 22%;
}

.zc-fill-23 {
  width: 23%;
}

.zc-fill-24 {
  width: 24%;
}

.zc-fill-25 {
  width: 25%;
}

.zc-fill-26 {
  width: 26%;
}

.zc-fill-27 {
  width: 27%;
}

.zc-fill-28 {
  width: 28%;
}

.zc-fill-29 {
  width: 29%;
}

.zc-fill-30 {
  width: 30%;
}

.zc-fill-31 {
  width: 31%;
}

.zc-fill-32 {
  width: 32%;
}

.zc-fill-33 {
  width: 33%;
}

.zc-fill-34 {
  width: 34%;
}

.zc-fill-35 {
  width: 35%;
}

.zc-fill-36 {
  width: 36%;
}

.zc-fill-37 {
  width: 37%;
}

.zc-fill-38 {
  width: 38%;
}

.zc-fill-39 {
  width: 39%;
}

.zc-fill-40 {
  width: 40%;
}

.zc-fill-41 {
  width: 41%;
}

.zc-fill-42 {
  width: 42%;
}

.zc-fill-43 {
  width: 43%;
}

.zc-fill-44 {
  width: 44%;
}

.zc-fill-45 {
  width: 45%;
}

.zc-fill-46 {
  width: 46%;
}

.zc-fill-47 {
  width: 47%;
}

.zc-fill-48 {
  width: 48%;
}

.zc-fill-49 {
  width: 49%;
}

.zc-fill-50 {
  width: 50%;
}

.zc-fill-51 {
  width: 51%;
}

.zc-fill-52 {
  width: 52%;
}

.zc-fill-53 {
  width: 53%;
}

.zc-fill-54 {
  width: 54%;
}

.zc-fill-55 {
  width: 55%;
}

.zc-fill-56 {
  width: 56%;
}

.zc-fill-57 {
  width: 57%;
}

.zc-fill-58 {
  width: 58%;
}

.zc-fill-59 {
  width: 59%;
}

.zc-fill-60 {
  width: 60%;
}

.zc-fill-61 {
  width: 61%;
}

.zc-fill-62 {
  width: 62%;
}

.zc-fill-63 {
  width: 63%;
}

.zc-fill-64 {
  width: 64%;
}

.zc-fill-65 {
  width: 65%;
}

.zc-fill-66 {
  width: 66%;
}

.zc-fill-67 {
  width: 67%;
}

.zc-fill-68 {
  width: 68%;
}

.zc-fill-69 {
  width: 69%;
}

.zc-fill-70 {
  width: 70%;
}

.zc-fill-71 {
  width: 71%;
}

.zc-fill-72 {
  width: 72%;
}

.zc-fill-73 {
  width: 73%;
}

.zc-fill-74 {
  width: 74%;
}

.zc-fill-75 {
  width: 75%;
}

.zc-fill-76 {
  width: 76%;
}

.zc-fill-77 {
  width: 77%;
}

.zc-fill-78 {
  width: 78%;
}

.zc-fill-79 {
  width: 79%;
}

.zc-fill-80 {
  width: 80%;
}

.zc-fill-81 {
  width: 81%;
}

.zc-fill-82 {
  width: 82%;
}

.zc-fill-83 {
  width: 83%;
}

.zc-fill-84 {
  width: 84%;
}

.zc-fill-85 {
  width: 85%;
}

.zc-fill-86 {
  width: 86%;
}

.zc-fill-87 {
  width: 87%;
}

.zc-fill-88 {
  width: 88%;
}

.zc-fill-89 {
  width: 89%;
}

.zc-fill-90 {
  width: 90%;
}

.zc-fill-91 {
  width: 91%;
}

.zc-fill-92 {
  width: 92%;
}

.zc-fill-93 {
  width: 93%;
}

.zc-fill-94 {
  width: 94%;
}

.zc-fill-95 {
  width: 95%;
}

.zc-fill-96 {
  width: 96%;
}

.zc-fill-97 {
  width: 97%;
}

.zc-fill-98 {
  width: 98%;
}

.zc-fill-99 {
  width: 99%;
}

.zc-fill-100 {
  width: 100%;
}

/* --------------------------------------------------------------------------
   On very narrow phones the brand + 4 header icon buttons + hamburger no
   longer fit on one line and wrap. Drop the wishlist icon (still reachable
   from the Shop dropdown and its own page) to buy back enough room. Kept
   at the end of the file so it reliably wins over .zc-nav-icon-btn's
   unconditional `display: inline-flex` at equal selector specificity.
   -------------------------------------------------------------------------- */
@media (max-width:360px) {
  .zc-wish-btn {
    display: none;
  }
}