/* =====================================================================
   Strphanie & CO LLC — design system
   Palette: ivory paper, bordeaux wine, champagne gold
   ===================================================================== */

:root {
  --zt-ink: #1B1210;
  --zt-ink-2: #2A1A18;
  --zt-ink-3: #3B2422;
  --zt-brand: #7B2233;
  --zt-brand-dark: #5C1626;
  --zt-brand-soft: #A8455A;
  --zt-zt-dark: #5C1626;
  --zt-zt-soft: #A8455A;
  --zt-accent: #C39A4C;
  --zt-accent-2: #8C6A2F;
  --zt-surface: #FAF5EE;
  --zt-surface-2: #F2E9DC;
  --zt-paper: #FFFDFA;
  --zt-text: #241A17;
  --zt-muted: #6E5D56;
  --zt-line: #E5D9C9;
  --zt-line-dark: rgba(255, 253, 250, .16);

  --zt-radius-sm: 4px;
  --zt-radius: 6px;
  --zt-radius-lg: 10px;
  --zt-shadow: 0 1px 2px rgba(27, 18, 16, .05), 0 18px 40px -28px rgba(27, 18, 16, .42);
  --zt-shadow-lg: 0 44px 90px -54px rgba(27, 18, 16, .55);
  --zt-glow: 0 18px 50px -26px rgba(123, 34, 51, .45);

  --zt-font: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --zt-display: 'Fraunces', Georgia, 'Times New Roman', serif;

  --zt-container: 1320px;
  --zt-container-narrow: 1080px;
  --zt-header-h: 96px;
}


*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body.zt-site {
  margin: 0;
  font-family: var(--zt-font);
  font-size: 16px;
  line-height: 1.65;
  color: var(--zt-text);
  background: var(--zt-surface);
  overflow-x: hidden;
}

body.zt-site main { min-width: 0; }
body.zt-site :where(a, button, input, select, textarea):focus-visible {
  outline: 3px solid var(--zt-accent); outline-offset: 3px;
}

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

a { color: inherit; text-decoration: none; }
a:hover { color: var(--zt-brand); }

h1, h2, h3, h4, h5 {
  font-family: var(--zt-display);
  color: var(--zt-ink);
  line-height: 1.1;
  letter-spacing: -.02em;
  margin: 0 0 .5em;
  font-weight: 700;
}
h1 { font-size: clamp(2.1rem, 5.2vw, 3.9rem); }
h2 { font-size: clamp(1.7rem, 3.6vw, 2.7rem); }
h3 { font-size: clamp(1.15rem, 2vw, 1.45rem); }
p { margin: 0 0 1rem; }
ul, ol { margin: 0 0 1rem; padding-left: 1.1rem; }

::selection { background: var(--zt-brand); color: #fff; }

.sr-only {
  position: absolute !important; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.zt-skip:focus {
  position: fixed; top: 14px; left: 14px; z-index: 200; width: auto; height: auto;
  clip: auto; background: var(--zt-ink); color: #fff; padding: 10px 18px; border-radius: 999px;
}

/* ---------- layout primitives ---------- */
.zt-wrap { width: 100%; max-width: var(--zt-container); margin-inline: auto; padding-inline: 20px; }
@media (min-width: 768px) { .zt-wrap { padding-inline: 32px; } }
@media (min-width: 1280px) { .zt-wrap { padding-inline: 40px; } }

.zt-section { padding: clamp(56px, 8vw, 110px) 0; }
.zt-section--tight { padding: clamp(40px, 5vw, 72px) 0; }
.zt-section--sand { background: var(--zt-surface-2); }
.zt-section--paper { background: var(--zt-paper); }
.zt-section--ink { background: var(--zt-ink); color: #E6EFEA; }
.zt-section--ink h2, .zt-section--ink h3 { color: #fff; }

.zt-eyebrow {
  display: inline-flex; align-items: center; gap: .6rem;
  font-size: .72rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase;
  color: var(--zt-brand);
}
.zt-eyebrow::before {
  content: ''; width: 26px; height: 2px; background: var(--zt-brand); display: block;
}
.zt-section--ink .zt-eyebrow { color: var(--zt-accent); }
.zt-section--ink .zt-eyebrow::before { background: var(--zt-accent); }

.zt-lead { font-size: clamp(1rem, 1.4vw, 1.13rem); color: var(--zt-muted); max-width: 62ch; }
.zt-section--ink .zt-lead, .zt-section--ink p { color: #B9CCC3; }

.zt-head { max-width: 760px; margin-bottom: clamp(28px, 4vw, 52px); }
.zt-head--split {
  max-width: none; display: grid; gap: 18px; align-items: end;
}
@media (min-width: 900px) { .zt-head--split { grid-template-columns: 1.2fr .9fr; gap: 48px; } }

/* ---------- buttons ---------- */
.zt-btn {
  --btn-bg: var(--zt-brand);
  --btn-fg: #fff;
  display: inline-flex; align-items: center; justify-content: center; gap: .55rem;
  font-family: var(--zt-display);
  font-weight: 600; font-size: .93rem; line-height: 1;
  padding: 15px 26px; border-radius: 999px; border: 1px solid transparent;
  background: var(--btn-bg); color: var(--btn-fg); cursor: pointer;
  transition: transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease, border-color .25s ease;
  text-align: center;
}
.zt-btn svg, .zt-btn img { width: 18px; height: 18px; flex: 0 0 auto; }
.zt-btn--sm svg { width: 15px; height: 15px; }
.zt-btn:hover { transform: translateY(-2px); box-shadow: 0 16px 30px -16px rgba(192, 96, 58, .8); color: var(--btn-fg); }
.zt-btn--ghost { --btn-bg: transparent; --btn-fg: var(--zt-ink); border-color: var(--zt-ink); }
.zt-btn--ghost:hover { --btn-bg: var(--zt-ink); --btn-fg: #fff; box-shadow: none; }
.zt-btn--light { --btn-bg: #fff; --btn-fg: var(--zt-ink); }
.zt-btn--outline-light { --btn-bg: transparent; --btn-fg: #fff; border-color: rgba(255,255,255,.4); }
.zt-btn--outline-light:hover { --btn-bg: rgba(255,255,255,.12); box-shadow: none; }
.zt-btn--mint { --btn-bg: var(--zt-accent); --btn-fg: var(--zt-ink); }
.zt-btn--sm { padding: 11px 18px; font-size: .82rem; }
.zt-btn--block { width: 100%; }

.zt-link-arrow {
  display: inline-flex; align-items: center; gap: .45rem;
  font-weight: 700; font-size: .9rem; color: var(--zt-brand);
}
.zt-link-arrow span { transition: transform .25s ease; }
.zt-link-arrow:hover span { transform: translateX(4px); }

/* ---------- header ---------- */
.zt-header {
  position: fixed; inset: 0 0 auto 0; z-index: 90;
  transition: background .3s ease, box-shadow .3s ease, border-color .3s ease;
  border-bottom: 1px solid transparent;
}
.zt-header__bar {
  display: flex; align-items: center; justify-content: space-between; gap: 18px;
  height: var(--zt-header-h);
}
.zt-header.is-stuck {
  background: rgba(245, 241, 234, .88);
  backdrop-filter: saturate(160%) blur(14px);
  border-bottom-color: var(--zt-line);
  box-shadow: 0 10px 30px -28px rgba(15, 31, 26, .8);
}
body.zt-has-dark-hero .zt-header:not(.is-stuck) { color: #fff; }
body.zt-has-dark-hero .zt-header:not(.is-stuck) .zt-nav__link { color: rgba(255,255,255,.86); }
body.zt-has-dark-hero .zt-header:not(.is-stuck) .zt-icon-btn { color: #fff; border-color: rgba(255,255,255,.28); }
body.zt-has-dark-hero .zt-header:not(.is-stuck) .zt-logo--dark { display: none; }
body.zt-has-dark-hero .zt-header:not(.is-stuck) .zt-logo--light { display: block; }
.zt-logo--light { display: none; }
.zt-logo img { height: 40px; width: auto; }
@media (max-width: 640px) { .zt-logo img { height: 34px; } }

.zt-nav { display: none; align-items: center; gap: 4px; }
@media (min-width: 1100px) { .zt-nav { display: flex; } }
.zt-nav__item { position: relative; }
.zt-nav__link {
  display: inline-flex; align-items: center; gap: .35rem;
  padding: 10px 14px; border-radius: 999px;
  font-size: .9rem; font-weight: 600; color: var(--zt-ink);
  transition: color .2s ease, background .2s ease;
}
.zt-nav__link:hover, .zt-nav__item:hover > .zt-nav__link { color: var(--zt-brand); }
.zt-nav__link.is-active { color: var(--zt-brand); }
.zt-nav__caret { width: 12px; height: 12px; }

.zt-dropdown {
  position: absolute; top: calc(100% + 10px); left: 50%; transform: translate(-50%, 8px);
  min-width: 320px; background: #fff; border: 1px solid var(--zt-line);
  border-radius: var(--zt-radius); box-shadow: var(--zt-shadow-lg); padding: 10px;
  opacity: 0; visibility: hidden; transition: all .22s ease;
}
.zt-nav__item:hover .zt-dropdown,
.zt-nav__item:focus-within .zt-dropdown { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.zt-dropdown a {
  display: block; padding: 10px 14px; border-radius: 10px;
  font-size: .88rem; font-weight: 600; color: var(--zt-ink);
}
.zt-dropdown a small { display: block; font-weight: 500; color: var(--zt-muted); font-size: .76rem; }
.zt-dropdown a:hover { background: var(--zt-surface); color: var(--zt-brand); }

.zt-header__actions { display: flex; align-items: center; gap: 10px; }
.zt-icon-btn {
  position: relative; display: grid; place-items: center; width: 42px; height: 42px;
  border-radius: 999px; border: 1px solid var(--zt-line); color: var(--zt-ink);
  background: transparent; transition: all .2s ease; cursor: pointer;
}
.zt-icon-btn:hover { border-color: var(--zt-brand); color: var(--zt-brand); }
.zt-cart-count {
  position: absolute; top: -4px; right: -4px; min-width: 20px; height: 20px; padding: 0 5px;
  display: grid; place-items: center; border-radius: 999px;
  background: var(--zt-brand); color: #fff; font-size: .68rem; font-weight: 800;
}
.zt-cart-count.is-empty { display: none; }
.zt-header__cta { display: none; }
@media (min-width: 720px) { .zt-header__cta { display: inline-flex; } }
.zt-burger { display: grid; }
@media (min-width: 1100px) { .zt-burger { display: none; } }

.zt-mobile {
  display: none; background: var(--zt-paper); border-top: 1px solid var(--zt-line);
  max-height: calc(100dvh - var(--zt-header-h)); overflow-y: auto;
}
.zt-mobile.is-open { display: block; }
@media (min-width: 1100px) { .zt-mobile, .zt-mobile.is-open { display: none; } }
.zt-mobile__inner { padding: 18px 0 28px; }
.zt-mobile a {
  display: block; padding: 13px 4px; font-size: 1rem; font-weight: 600;
  border-bottom: 1px solid var(--zt-line); color: var(--zt-ink);
}
.zt-mobile .zt-btn { margin-top: 18px; }
.zt-mobile ul { list-style: none; margin: 0; padding: 0; }

.zt-page-offset { padding-top: var(--zt-header-h); }

/* ---------- hero ---------- */
.zt-hero {
  position: relative; background: var(--zt-ink); color: #fff; overflow: hidden;
  padding: calc(var(--zt-header-h) + 56px) 0 clamp(56px, 7vw, 96px);
}
.zt-hero::before {
  content: ''; position: absolute; inset: 0;
  background:
    radial-gradient(60% 70% at 12% 8%, rgba(192, 96, 58, .38), transparent 60%),
    radial-gradient(50% 60% at 92% 78%, rgba(127, 214, 176, .22), transparent 62%);
}
.zt-hero::after {
  content: ''; position: absolute; inset: 0; opacity: .16;
  background-image: linear-gradient(rgba(255,255,255,.14) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.14) 1px, transparent 1px);
  background-size: 72px 72px;
  mask-image: radial-gradient(70% 70% at 50% 40%, #000, transparent);
}
.zt-hero > * { position: relative; z-index: 1; }
.zt-hero__grid { display: grid; gap: clamp(36px, 5vw, 60px); align-items: center; }
@media (min-width: 1000px) { .zt-hero__grid { grid-template-columns: 1.05fr .95fr; } }
.zt-hero h1 { color: #fff; font-size: clamp(2.4rem, 5.4vw, 4.1rem); }
.zt-hero h1 em { font-style: normal; color: var(--zt-zt-soft); }
.zt-hero__lead { color: #BCD0C7; font-size: clamp(1rem, 1.4vw, 1.15rem); max-width: 54ch; }
.zt-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.zt-hero__badge {
  display: inline-flex; align-items: center; gap: .6rem; padding: 8px 16px; border-radius: 999px;
  background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.16);
  font-size: .76rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #DCE9E3;
  margin-bottom: 22px;
}
.zt-hero__badge i { width: 8px; height: 8px; border-radius: 999px; background: var(--zt-accent); }
.zt-hero__media { position: relative; }
.zt-hero__media img {
  width: 100%; border-radius: var(--zt-radius-lg); border: 1px solid rgba(255,255,255,.16);
  box-shadow: var(--zt-shadow-lg);
}
.zt-hero__chip {
  position: absolute; left: -14px; bottom: 26px;
  background: #fff; color: var(--zt-ink); border-radius: 18px; padding: 14px 18px;
  box-shadow: var(--zt-shadow-lg); display: grid; gap: 2px; min-width: 190px;
}
.zt-hero__chip strong { font-family: var(--zt-display); font-size: 1.5rem; }
.zt-hero__chip span { font-size: .74rem; color: var(--zt-muted); font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
@media (max-width: 640px) { .zt-hero__chip { position: static; margin-top: 16px; } }

.zt-hero__rail {
  margin-top: clamp(40px, 5vw, 66px); border-top: 1px solid rgba(255,255,255,.16);
  padding-top: 26px; display: grid; gap: 20px; grid-template-columns: repeat(2, minmax(0,1fr));
}
@media (min-width: 860px) { .zt-hero__rail { grid-template-columns: repeat(4, minmax(0,1fr)); } }
.zt-hero__rail div strong { display: block; font-family: var(--zt-display); font-size: clamp(1.6rem, 2.6vw, 2.2rem); color: #fff; }
.zt-hero__rail div span { font-size: .8rem; color: #9FB6AC; }

/* ---------- page banner (inner pages) ---------- */
.zt-banner {
  position: relative; background: var(--zt-ink); color: #fff; overflow: hidden;
  padding: calc(var(--zt-header-h) + 46px) 0 clamp(40px, 5vw, 70px);
}
.zt-banner::before {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(55% 80% at 85% 20%, rgba(192,96,58,.34), transparent 62%),
    radial-gradient(45% 70% at 8% 90%, rgba(127,214,176,.18), transparent 60%);
}
.zt-banner::after {
  content: ''; position: absolute; right: -80px; top: -80px; width: 320px; height: 320px;
  border-radius: 50%; border: 1px solid rgba(255,255,255,.14);
}
.zt-banner > * { position: relative; z-index: 1; }
.zt-banner h1 { color: #fff; }
.zt-banner p { color: #B9CCC3; max-width: 62ch; }
.zt-banner .zt-eyebrow { color: var(--zt-accent); }
.zt-banner .zt-eyebrow::before { background: var(--zt-accent); }
.zt-crumbs { display: flex; flex-wrap: wrap; gap: .5rem; font-size: .78rem; color: #93AAA1; margin-bottom: 20px; }
.zt-crumbs a:hover { color: var(--zt-accent); }

/* ---------- cards / grids ---------- */
.zt-grid { display: grid; gap: 20px; }
.zt-grid--2 { grid-template-columns: repeat(1, minmax(0,1fr)); }
.zt-grid--3 { grid-template-columns: repeat(1, minmax(0,1fr)); }
.zt-grid--4 { grid-template-columns: repeat(1, minmax(0,1fr)); }
@media (min-width: 640px) {
  .zt-grid--2, .zt-grid--3, .zt-grid--4 { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (min-width: 1000px) {
  .zt-grid--3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .zt-grid--4 { grid-template-columns: repeat(4, minmax(0,1fr)); }
}

.zt-card {
  position: relative; background: var(--zt-paper); border: 1px solid var(--zt-line);
  border-radius: var(--zt-radius-lg); padding: 28px; height: 100%;
  display: flex; flex-direction: column;
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
  overflow: hidden;
}
.zt-card::after {
  content: ''; position: absolute; left: 0; right: 0; top: 0; height: 3px;
  background: linear-gradient(90deg, var(--zt-brand), var(--zt-accent));
  transform: scaleX(0); transform-origin: left; transition: transform .35s ease;
}
.zt-card:hover { transform: translateY(-6px); box-shadow: var(--zt-shadow-lg); border-color: transparent; }
.zt-card:hover::after { transform: scaleX(1); }
.zt-card h3 { margin-bottom: .4rem; }
.zt-card p { color: var(--zt-muted); font-size: .94rem; }
.zt-card__foot { margin-top: auto; padding-top: 18px; }

.zt-ico {
  width: 52px; height: 52px; border-radius: 16px; display: grid; place-items: center;
  background: linear-gradient(140deg, rgba(192,96,58,.14), rgba(127,214,176,.18));
  color: var(--zt-brand); margin-bottom: 18px;
}
.zt-ico svg { width: 24px; height: 24px; }
.zt-section--ink .zt-ico { background: rgba(255,255,255,.08); color: var(--zt-accent); }

.zt-card--ink { background: var(--zt-ink-2); border-color: var(--zt-line-dark); color: #D6E4DD; }
.zt-card--ink h3 { color: #fff; }
.zt-card--ink p { color: #A9BDB4; }

/* numbered process */
.zt-steps { counter-reset: step; display: grid; gap: 18px; }
@media (min-width: 900px) { .zt-steps { grid-template-columns: repeat(4, minmax(0,1fr)); } }
.zt-step {
  border-top: 2px solid var(--zt-line); padding-top: 20px;
}
.zt-section--ink .zt-step { border-color: rgba(255,255,255,.18); }
.zt-step__n {
  font-family: var(--zt-display); font-size: .8rem; font-weight: 800; letter-spacing: .18em;
  color: var(--zt-brand); display: block; margin-bottom: 10px;
}
.zt-section--ink .zt-step__n { color: var(--zt-accent); }
.zt-step h3 { font-size: 1.1rem; }
.zt-step p { color: var(--zt-muted); font-size: .92rem; margin: 0; }
.zt-section--ink .zt-step p { color: #A9BDB4; }

/* stat band */
.zt-stats { display: grid; gap: 26px; grid-template-columns: repeat(2, minmax(0,1fr)); }
@media (min-width: 900px) { .zt-stats { grid-template-columns: repeat(4, minmax(0,1fr)); } }
.zt-stat strong { display: block; font-family: var(--zt-display); font-size: clamp(2rem, 4vw, 3rem); color: var(--zt-brand); line-height: 1; }
.zt-stat span { font-size: .88rem; color: var(--zt-muted); }
.zt-section--ink .zt-stat strong { color: var(--zt-accent); }
.zt-section--ink .zt-stat span { color: #A9BDB4; }

/* work / case cards */
.zt-work { display: grid; gap: 22px; }
@media (min-width: 900px) { .zt-work { grid-template-columns: repeat(3, minmax(0,1fr)); } }
.zt-work__item {
  border-radius: var(--zt-radius-lg); overflow: hidden; background: var(--zt-paper);
  border: 1px solid var(--zt-line); display: flex; flex-direction: column; height: 100%;
  transition: transform .3s ease, box-shadow .3s ease;
}
.zt-work__item:hover { transform: translateY(-6px); box-shadow: var(--zt-shadow-lg); }
.zt-work__item figure { margin: 0; aspect-ratio: 4/3; overflow: hidden; }
.zt-work__item img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.zt-work__item:hover img { transform: scale(1.05); }
.zt-work__body { padding: 24px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.zt-tag {
  align-self: flex-start; font-size: .7rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase;
  color: var(--zt-brand); background: rgba(192,96,58,.1); padding: 5px 12px; border-radius: 999px;
}

/* testimonials */
.zt-quote {
  background: var(--zt-paper); border: 1px solid var(--zt-line); border-radius: var(--zt-radius-lg);
  padding: 30px; height: 100%; display: flex; flex-direction: column; gap: 16px;
}
.zt-quote p { font-size: 1.02rem; color: var(--zt-text); margin: 0; }
.zt-quote footer { margin-top: auto; font-size: .85rem; color: var(--zt-muted); }
.zt-quote footer strong { display: block; color: var(--zt-ink); font-family: var(--zt-display); }
.zt-quote__mark { font-family: var(--zt-display); font-size: 2.4rem; color: var(--zt-brand); line-height: 1; }

/* accordion / faq */
.zt-acc { border-top: 1px solid var(--zt-line); }
.zt-acc__item { border-bottom: 1px solid var(--zt-line); }
.zt-acc__btn {
  width: 100%; background: none; border: 0; cursor: pointer; text-align: left;
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  padding: 22px 0; font-family: var(--zt-display); font-size: 1.02rem; font-weight: 600; color: var(--zt-ink);
}
.zt-acc__btn i { flex: 0 0 auto; width: 26px; height: 26px; border-radius: 999px; border: 1px solid var(--zt-line);
  display: grid; place-items: center; font-style: normal; transition: transform .25s ease, background .25s ease, color .25s ease; }
.zt-acc__item.is-open .zt-acc__btn i { transform: rotate(45deg); background: var(--zt-brand); color: #fff; border-color: var(--zt-brand); }
.zt-acc__panel { display: none; padding-bottom: 22px; color: var(--zt-muted); max-width: 76ch; }
.zt-acc__item.is-open .zt-acc__panel { display: block; }

/* CTA band */
.zt-cta {
  position: relative; overflow: hidden; border-radius: var(--zt-radius-lg);
  background: linear-gradient(120deg, var(--zt-ink) 0%, var(--zt-ink-3) 100%);
  color: #fff; padding: clamp(34px, 5vw, 64px);
  display: grid; gap: 26px; align-items: center;
}
@media (min-width: 900px) { .zt-cta { grid-template-columns: 1.3fr .7fr; } }
.zt-cta::after {
  content: ''; position: absolute; right: -60px; bottom: -90px; width: 300px; height: 300px; border-radius: 50%;
  background: radial-gradient(circle, rgba(192,96,58,.5), transparent 70%);
}
.zt-cta > * { position: relative; z-index: 1; }
.zt-cta h2 { color: #fff; }
.zt-cta p { color: #B9CCC3; margin: 0; }
.zt-cta__actions { display: flex; flex-wrap: wrap; gap: 12px; }

/* marquee logos strip */
.zt-trust {
  display: flex; flex-wrap: wrap; align-items: center; gap: clamp(20px, 5vw, 54px);
  justify-content: center; opacity: .8;
}
.zt-trust span {
  font-family: var(--zt-display); font-weight: 700; font-size: clamp(.95rem, 1.6vw, 1.15rem);
  letter-spacing: .04em; color: var(--zt-muted);
}

/* ---------- services listing ---------- */
.zt-service-row {
  display: grid; gap: 24px; padding: clamp(26px, 3vw, 40px) 0;
  border-top: 1px solid var(--zt-line); align-items: start;
}
@media (min-width: 900px) { .zt-service-row { grid-template-columns: 88px 1.1fr 1fr auto; gap: 34px; align-items: center; } }
.zt-service-row__n { font-family: var(--zt-display); font-weight: 800; color: var(--zt-brand); letter-spacing: .1em; }
.zt-service-row h3 { margin: 0 0 6px; }
.zt-service-row p { margin: 0; color: var(--zt-muted); font-size: .95rem; }
.zt-service-row ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 6px; }
.zt-service-row ul li { font-size: .88rem; color: var(--zt-muted); padding-left: 18px; position: relative; }
.zt-service-row ul li::before {
  content: ''; position: absolute; left: 0; top: .55em; width: 8px; height: 8px; border-radius: 2px;
  background: var(--zt-accent);
}

/* pricing */
.zt-price-grid { display: grid; gap: 20px; }
@media (min-width: 900px) { .zt-price-grid { grid-template-columns: repeat(3, minmax(0,1fr)); } }
.zt-price {
  background: var(--zt-paper); border: 1px solid var(--zt-line); border-radius: var(--zt-radius-lg);
  padding: 30px; display: flex; flex-direction: column; gap: 14px;
}
.zt-price.is-featured { background: var(--zt-ink); color: #fff; border-color: transparent; position: relative; }
.zt-price.is-featured h3, .zt-price.is-featured .zt-price__amount { color: #fff; }
.zt-price.is-featured li { color: #C6D8D0; }
.zt-price__flag {
  position: absolute; top: 18px; right: 18px; font-size: .66rem; font-weight: 800; letter-spacing: .14em;
  text-transform: uppercase; background: var(--zt-accent); color: var(--zt-ink); padding: 5px 11px; border-radius: 999px;
}
.zt-price__amount { font-family: var(--zt-display); font-size: 2.3rem; color: var(--zt-ink); line-height: 1; }
.zt-price__amount small { font-size: .8rem; color: var(--zt-muted); font-weight: 600; }
.zt-price ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 9px; }
.zt-price li { font-size: .9rem; color: var(--zt-muted); padding-left: 24px; position: relative; }
.zt-price li::before {
  content: '✓'; position: absolute; left: 0; color: var(--zt-brand); font-weight: 800;
}
.zt-price.is-featured li::before { color: var(--zt-accent); }
.zt-price .zt-btn { margin-top: auto; }

/* ---------- blog ---------- */
.zt-post-card {
  background: var(--zt-paper); border: 1px solid var(--zt-line); border-radius: var(--zt-radius-lg);
  overflow: hidden; display: flex; flex-direction: column; height: 100%;
  transition: transform .3s ease, box-shadow .3s ease;
}
.zt-post-card:hover { transform: translateY(-5px); box-shadow: var(--zt-shadow-lg); }
.zt-post-card figure { margin: 0; aspect-ratio: 16/10; overflow: hidden; background: var(--zt-surface-2); }
.zt-post-card figure img { width: 100%; height: 100%; object-fit: cover; }
.zt-post-card__body { padding: 24px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.zt-post-card__meta { font-size: .76rem; text-transform: uppercase; letter-spacing: .12em; color: var(--zt-muted); font-weight: 700; }
.zt-post-card h3 { font-size: 1.15rem; margin: 0; }
.zt-post-card p { color: var(--zt-muted); font-size: .92rem; margin: 0; }

.zt-prose { max-width: 76ch; }
.zt-prose h2, .zt-prose h3 { margin-top: 1.8em; }
.zt-prose img { border-radius: var(--zt-radius); margin: 1.5em 0; }
.zt-prose blockquote {
  margin: 1.6em 0; padding: 18px 26px; border-left: 3px solid var(--zt-brand);
  background: var(--zt-paper); border-radius: 0 var(--zt-radius) var(--zt-radius) 0; color: var(--zt-ink);
}
.zt-prose a { color: var(--zt-brand); text-decoration: underline; text-underline-offset: 3px; }
.zt-prose ul li, .zt-prose ol li { margin-bottom: .4em; }
.zt-prose table { width: 100%; border-collapse: collapse; }
.zt-prose th, .zt-prose td { border: 1px solid var(--zt-line); padding: 10px 12px; text-align: left; }

.zt-with-sidebar { display: grid; gap: 40px; }
@media (min-width: 1000px) { .zt-with-sidebar { grid-template-columns: minmax(0,1fr) 320px; gap: 56px; } }
.zt-widget {
  background: var(--zt-paper); border: 1px solid var(--zt-line); border-radius: var(--zt-radius);
  padding: 24px; margin-bottom: 20px;
}
.zt-widget ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.zt-widget a { font-size: .92rem; }

/* ---------- forms ---------- */
.zt-field { display: grid; gap: 7px; margin-bottom: 16px; }
.zt-field > label, .zt-form label { font-size: .82rem; font-weight: 700; color: var(--zt-ink); }
input[type=text], input[type=email], input[type=tel], input[type=url], input[type=password],
input[type=search], input[type=number], input[type=date], textarea, select,
.zt-site .input-text, .zt-site .select2-selection {
  width: 100%; font: inherit; font-size: .95rem; color: var(--zt-text);
  background: var(--zt-paper); border: 1px solid var(--zt-line); border-radius: 12px;
  padding: 13px 15px; transition: border-color .2s ease, box-shadow .2s ease;
}
textarea { min-height: 150px; resize: vertical; }
input:focus, textarea:focus, select:focus {
  outline: none; border-color: var(--zt-brand); box-shadow: 0 0 0 4px rgba(192,96,58,.12);
}
.zt-form { background: var(--zt-paper); border: 1px solid var(--zt-line); border-radius: var(--zt-radius-lg); padding: clamp(22px, 3vw, 36px); }
.zt-form__row { display: grid; gap: 16px; }
@media (min-width: 640px) { .zt-form__row { grid-template-columns: 1fr 1fr; } }

/* contact info tiles */
.zt-contact-tile {
  display: flex; gap: 14px; align-items: flex-start; padding: 20px;
  border: 1px solid var(--zt-line); border-radius: var(--zt-radius); background: var(--zt-paper);
}
.zt-contact-tile svg { width: 20px; height: 20px; color: var(--zt-brand); flex: 0 0 auto; margin-top: 3px; }
.zt-contact-tile strong { display: block; font-family: var(--zt-display); font-size: .95rem; }
.zt-contact-tile span, .zt-contact-tile a { font-size: .9rem; color: var(--zt-muted); }

/* ---------- footer ---------- */
.zt-footer { background: var(--zt-ink); color: #B9CCC3; }
.zt-footer__top {
  border-bottom: 1px solid rgba(255,255,255,.12);
  padding: clamp(40px, 5vw, 64px) 0;
  display: grid; gap: 26px; align-items: center;
}
@media (min-width: 900px) { .zt-footer__top { grid-template-columns: 1.4fr .6fr; } }
.zt-footer__top h2 { color: #fff; margin: 0; font-size: clamp(1.6rem, 3vw, 2.4rem); }
.zt-footer__main {
  padding: clamp(40px, 5vw, 70px) 0; display: grid; gap: 36px;
}
@media (min-width: 700px) { .zt-footer__main { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (min-width: 1000px) { .zt-footer__main { grid-template-columns: 1.45fr repeat(4,minmax(0,1fr)); gap: 34px; } }
.zt-footer h3 {
  color: #fff; font-size: .8rem; letter-spacing: .16em; text-transform: uppercase; margin-bottom: 18px;
}
.zt-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.zt-footer a { color: #B9CCC3; font-size: .92rem; }
.zt-footer a:hover { color: var(--zt-accent); }
.zt-footer__brand img { height: 42px; }
.zt-footer__brand p { margin-top: 18px; font-size: .93rem; max-width: 38ch; }
.zt-footer__socials { display: flex; gap: 10px; margin-top: 22px; }
.zt-footer__socials a {
  display: grid; place-items: center; width: 40px; height: 40px; border-radius: 999px;
  border: 1px solid rgba(255,255,255,.18); transition: all .25s ease;
}
.zt-footer__socials a:hover { background: var(--zt-brand); border-color: var(--zt-brand); color: #fff; }
.zt-footer__socials svg { width: 17px; height: 17px; }
.zt-footer__contact li { display: flex; gap: 10px; font-size: .92rem; }
.zt-footer__contact svg { width: 17px; height: 17px; color: var(--zt-zt-soft); flex: 0 0 auto; margin-top: 4px; }
.zt-footer__bottom {
  border-top: 1px solid rgba(255,255,255,.12); padding: 22px 0 30px;
  display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between;
  font-size: .82rem; color: #8FA79D;
}
.zt-footer__bottom nav { display: flex; flex-wrap: wrap; gap: 18px; }

.zt-to-top {
  position: fixed; right: 20px; bottom: 20px; z-index: 80;
  width: 46px; height: 46px; border-radius: 999px; border: 0; cursor: pointer;
  background: var(--zt-ink); color: #fff; display: grid; place-items: center;
  opacity: 0; pointer-events: none; transform: translateY(10px); transition: all .3s ease;
}
.zt-to-top.is-visible { opacity: 1; pointer-events: auto; transform: none; }
.zt-to-top:hover { background: var(--zt-brand); }

/* ---------- reveal animation ---------- */
.zt-reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s ease; }
.zt-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .zt-reveal { opacity: 1; transform: none; transition: none; }
  html { scroll-behavior: auto; }
}

/* =====================================================================
   WooCommerce
   ===================================================================== */
.zt-woo { --wc-gap: 24px; }
.zt-woo .woocommerce-notices-wrapper .woocommerce-message,
.zt-site .woocommerce-message, .zt-site .woocommerce-info, .zt-site .woocommerce-error {
  background: var(--zt-paper); border: 1px solid var(--zt-line); border-left: 3px solid var(--zt-brand);
  border-radius: var(--zt-radius); padding: 16px 20px; list-style: none; margin: 0 0 22px;
  display: flex; flex-wrap: wrap; align-items: center; gap: 14px; color: var(--zt-ink);
}
.zt-site .woocommerce-error { border-left-color: #C0392B; }
.zt-site .woocommerce-message .button, .zt-site .woocommerce-info .button { margin-left: auto; }

.zt-site .woocommerce .button,
.zt-site .woocommerce a.button,
.zt-site .woocommerce button.button,
.zt-site .woocommerce input.button,
.zt-site .woocommerce a.button.alt,
.zt-site .woocommerce button.button.alt,
.zt-site .wp-element-button {
  background: var(--zt-brand); color: #fff; border-radius: 999px; border: 1px solid transparent;
  font-family: var(--zt-display); font-weight: 600; font-size: .9rem; line-height: 1;
  padding: 15px 26px; transition: all .25s ease; text-transform: none;
}
.zt-site .woocommerce .button:hover, .zt-site .woocommerce a.button:hover,
.zt-site .woocommerce button.button:hover, .zt-site .woocommerce input.button:hover,
.zt-site .woocommerce a.button.alt:hover, .zt-site .woocommerce button.button.alt:hover {
  background: var(--zt-zt-dark); color: #fff; transform: translateY(-2px);
}
.zt-site .woocommerce .button.disabled, .zt-site .woocommerce button.button:disabled { opacity: .55; }

/* shop archive */
.zt-shop-toolbar {
  display: flex; flex-wrap: wrap; gap: 14px; align-items: center; justify-content: space-between;
  padding-bottom: 22px; margin-bottom: 30px; border-bottom: 1px solid var(--zt-line);
}
.zt-shop-toolbar .woocommerce-result-count { margin: 0; color: var(--zt-muted); font-size: .88rem; }
.zt-shop-toolbar .woocommerce-ordering { margin: 0; }
.zt-site ul.products {
  display: grid; gap: 24px; list-style: none; margin: 0; padding: 0;
  grid-template-columns: repeat(1, minmax(0, 1fr));
}
@media (min-width: 620px) { .zt-site ul.products { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (min-width: 1024px) { .zt-site ul.products { grid-template-columns: repeat(3, minmax(0,1fr)); } }
.zt-site ul.products::before, .zt-site ul.products::after { content: none; }
.zt-site ul.products li.product {
  width: auto !important; margin: 0 !important; float: none !important; clear: none !important;
  background: var(--zt-paper); border: 1px solid var(--zt-line); border-radius: var(--zt-radius-lg);
  padding: 0; overflow: hidden; display: flex; flex-direction: column;
  transition: transform .3s ease, box-shadow .3s ease;
}
.zt-site ul.products li.product:hover { transform: translateY(-6px); box-shadow: var(--zt-shadow-lg); }
.zt-site ul.products li.product a.woocommerce-LoopProduct-link { display: block; }
.zt-site ul.products li.product img {
  margin: 0; width: 100%; aspect-ratio: 4/3; object-fit: cover; background: var(--zt-surface-2);
  transition: transform .5s ease;
}
.zt-site ul.products li.product:hover img { transform: scale(1.04); }
.zt-site ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--zt-display); font-size: 1.08rem; font-weight: 700; color: var(--zt-ink);
  padding: 22px 24px 0; margin: 0;
}
.zt-site ul.products li.product .price {
  display: block; padding: 8px 24px 0; color: var(--zt-brand); font-weight: 700; font-size: 1rem;
}
.zt-site ul.products li.product .price del { color: var(--zt-muted); font-weight: 500; margin-right: 6px; }
.zt-site ul.products li.product .price ins { text-decoration: none; }
.zt-site ul.products li.product .woocommerce-product-details__short-description,
.zt-site ul.products li.product .zt-loop-excerpt {
  padding: 10px 24px 0; color: var(--zt-muted); font-size: .9rem;
}
.zt-site ul.products li.product .button { margin: 20px 24px 24px; align-self: flex-start; }
.zt-site ul.products li.product .onsale,
.zt-site .woocommerce span.onsale {
  position: absolute; top: 16px; left: 16px; z-index: 2; margin: 0; min-height: 0; min-width: 0;
  background: var(--zt-accent); color: var(--zt-ink); border-radius: 999px; padding: 6px 14px;
  font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; line-height: 1;
}
.zt-site ul.products li.product { position: relative; }

.zt-site nav.woocommerce-pagination ul { border: 0; display: flex; gap: 8px; justify-content: center; margin-top: 40px; }
.zt-site nav.woocommerce-pagination ul li { border: 0; }
.zt-site nav.woocommerce-pagination ul li a, .zt-site nav.woocommerce-pagination ul li span {
  border-radius: 999px; min-width: 42px; height: 42px; display: grid; place-items: center;
  background: var(--zt-paper); border: 1px solid var(--zt-line); color: var(--zt-ink); padding: 0 12px;
}
.zt-site nav.woocommerce-pagination ul li span.current { background: var(--zt-ink); color: #fff; border-color: var(--zt-ink); }

/* single product */
.zt-product { display: grid; gap: clamp(28px, 4vw, 56px); }
@media (min-width: 960px) { .zt-product { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); } }
.zt-product__gallery {
  border-radius: var(--zt-radius-lg); overflow: hidden; border: 1px solid var(--zt-line);
  background: var(--zt-paper); position: relative;
}
.zt-product__gallery .woocommerce-product-gallery { margin: 0; }
.zt-product__gallery .woocommerce-product-gallery__image img { width: 100%; }
.zt-product__gallery .flex-control-thumbs { display: flex; gap: 10px; padding: 14px; margin: 0; list-style: none; }
.zt-product__gallery .flex-control-thumbs li { width: 76px; }
.zt-product__gallery .flex-control-thumbs img { border-radius: 10px; border: 1px solid var(--zt-line); }
.zt-product__fallback { aspect-ratio: 4/3; object-fit: cover; width: 100%; }

.zt-product__summary .price,
.zt-site .woocommerce div.product p.price,
.zt-site .woocommerce div.product span.price {
  font-family: var(--zt-display); font-size: 2rem; color: var(--zt-ink); font-weight: 700; margin: 6px 0 18px;
}
.zt-product__summary .woocommerce-product-details__short-description { color: var(--zt-muted); }
.zt-site .woocommerce div.product form.cart { margin: 24px 0; display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.zt-site .woocommerce div.product form.cart.variations_form { display: block; }
.zt-site .woocommerce div.product form.cart .variations { width: 100%; border-collapse: collapse; margin-bottom: 18px; }
.zt-site .woocommerce div.product form.cart .variations td { padding: 8px 0; display: block; width: 100%; }
.zt-site .woocommerce div.product form.cart .variations label { font-weight: 700; font-size: .82rem; }
.zt-site .woocommerce div.product form.cart .reset_variations { font-size: .8rem; color: var(--zt-muted); }
.zt-site .woocommerce div.product form.cart .single_variation_wrap { display: grid; gap: 14px; }
.zt-site .quantity { display: inline-flex; align-items: center; border: 1px solid var(--zt-line); border-radius: 999px; background: var(--zt-paper); overflow: hidden; }
.zt-site .quantity input.qty {
  width: 74px; border: 0; text-align: center; padding: 14px 6px; border-radius: 0; background: transparent;
}
.zt-site .quantity input.qty:focus { box-shadow: none; }
.zt-product__trust { display: grid; gap: 12px; margin-top: 26px; padding-top: 24px; border-top: 1px solid var(--zt-line); }
.zt-product__trust div { display: flex; gap: 10px; align-items: flex-start; font-size: .9rem; color: var(--zt-muted); }
.zt-product__trust svg { width: 18px; height: 18px; color: var(--zt-brand); flex: 0 0 auto; margin-top: 3px; }

.zt-site .woocommerce-tabs { margin-top: clamp(40px, 5vw, 72px); }
.zt-site .woocommerce-tabs ul.tabs {
  display: flex; flex-wrap: wrap; gap: 8px; padding: 0 !important; margin: 0 0 24px !important; list-style: none;
}
.zt-site .woocommerce-tabs ul.tabs::before, .zt-site .woocommerce-tabs ul.tabs::after { content: none !important; }
.zt-site .woocommerce-tabs ul.tabs li {
  background: transparent !important; border: 1px solid var(--zt-line) !important; border-radius: 999px !important;
  margin: 0 !important; padding: 0 !important;
}
.zt-site .woocommerce-tabs ul.tabs li::before, .zt-site .woocommerce-tabs ul.tabs li::after { content: none !important; }
.zt-site .woocommerce-tabs ul.tabs li a { padding: 11px 20px !important; font-weight: 600; font-size: .88rem; color: var(--zt-ink); }
.zt-site .woocommerce-tabs ul.tabs li.active { background: var(--zt-ink) !important; border-color: var(--zt-ink) !important; }
.zt-site .woocommerce-tabs ul.tabs li.active a { color: #fff; }
.zt-site .woocommerce-tabs .panel { background: var(--zt-paper); border: 1px solid var(--zt-line); border-radius: var(--zt-radius-lg); padding: clamp(22px, 3vw, 36px); }
.zt-site .woocommerce-tabs .panel h2 { font-size: 1.3rem; }

.zt-site .related.products, .zt-site .upsells.products { margin-top: clamp(40px, 5vw, 72px); }
.zt-site .related.products > h2, .zt-site .upsells.products > h2 { font-size: clamp(1.4rem, 2.4vw, 1.9rem); margin-bottom: 24px; }

/* cart */
.zt-cart-layout { display: grid; gap: 30px; align-items: start; }
@media (min-width: 1000px) { .zt-cart-layout { grid-template-columns: minmax(0,1fr) 380px; gap: 40px; } }
.zt-site .woocommerce table.shop_table {
  border: 1px solid var(--zt-line); border-radius: var(--zt-radius-lg); border-collapse: separate;
  border-spacing: 0; background: var(--zt-paper); overflow: hidden; width: 100%; margin: 0;
}
.zt-site .woocommerce table.shop_table th {
  background: var(--zt-surface-2); font-family: var(--zt-display); font-size: .76rem; letter-spacing: .12em;
  text-transform: uppercase; color: var(--zt-ink); padding: 16px 18px; border: 0;
}
.zt-site .woocommerce table.shop_table td { padding: 18px; border-top: 1px solid var(--zt-line); vertical-align: middle; }
.zt-site .woocommerce table.cart img { width: 74px; border-radius: 12px; }
.zt-site .woocommerce table.cart td.product-name a { font-family: var(--zt-display); font-weight: 600; color: var(--zt-ink); }
.zt-site .woocommerce a.remove {
  color: var(--zt-muted) !important; border: 1px solid var(--zt-line); border-radius: 999px;
  width: 28px; height: 28px; line-height: 26px; font-size: 16px;
}
.zt-site .woocommerce a.remove:hover { background: var(--zt-brand) !important; color: #fff !important; border-color: var(--zt-brand); }
.zt-site .woocommerce .cart .actions { padding: 18px; display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; }
.zt-site .woocommerce .cart .actions .coupon { display: flex; gap: 10px; flex-wrap: wrap; }
.zt-site .woocommerce .cart .actions .coupon input { width: min(240px, 60vw); }
.zt-site .cart-collaterals { width: 100%; float: none; }
.zt-site .cart-collaterals .cart_totals { width: 100% !important; float: none !important; }
.zt-site .cart_totals h2 { font-size: 1.2rem; }
.zt-site .cart_totals table { background: var(--zt-paper); }
.zt-site .wc-proceed-to-checkout { padding: 18px 0 0; }
.zt-site .wc-proceed-to-checkout a.checkout-button { display: block; width: 100%; text-align: center; }
.zt-site .cart-empty, .zt-site .woocommerce .return-to-shop { text-align: center; }
.zt-empty-state {
  background: var(--zt-paper); border: 1px dashed var(--zt-line); border-radius: var(--zt-radius-lg);
  padding: clamp(34px, 6vw, 70px); text-align: center;
}
.zt-empty-state svg { width: 46px; height: 46px; color: var(--zt-brand); margin: 0 auto 18px; }

/* checkout */
.zt-site .woocommerce-checkout .col2-set, .zt-site .woocommerce-checkout #customer_details {
  display: grid; gap: 24px; width: 100%; float: none;
}
@media (min-width: 780px) { .zt-site .woocommerce-checkout #customer_details { grid-template-columns: 1fr 1fr; } }
.zt-site .woocommerce-checkout .col2-set .col-1,
.zt-site .woocommerce-checkout .col2-set .col-2 { width: 100% !important; float: none !important; }
.zt-site .woocommerce-checkout #customer_details .col-1,
.zt-site .woocommerce-checkout #customer_details .col-2 {
  background: var(--zt-paper); border: 1px solid var(--zt-line); border-radius: var(--zt-radius-lg); padding: clamp(20px, 3vw, 32px);
}
.zt-site .woocommerce-checkout h3 { font-size: 1.15rem; margin-bottom: 18px; }
.zt-site .woocommerce form .form-row { padding: 0; margin: 0 0 16px; display: grid; gap: 6px; }
.zt-site .woocommerce form .form-row label { font-size: .82rem; font-weight: 700; }
.zt-site .woocommerce form .form-row-first, .zt-site .woocommerce form .form-row-last { width: 100%; float: none; }
@media (min-width: 560px) {
  .zt-site .woocommerce form .form-row-first, .zt-site .woocommerce form .form-row-last { width: calc(50% - 8px); display: inline-grid; vertical-align: top; }
  .zt-site .woocommerce form .form-row-first { margin-right: 12px; }
}
.zt-site #order_review_heading { margin-top: 34px; }
.zt-site #order_review {
  background: var(--zt-paper); border: 1px solid var(--zt-line); border-radius: var(--zt-radius-lg);
  padding: clamp(20px, 3vw, 30px); width: 100%; float: none;
}
.zt-site #order_review table.shop_table { border: 0; }
.zt-site #order_review table.shop_table th { background: transparent; padding-inline: 0; }
.zt-site #order_review table.shop_table td { padding-inline: 0; }
.zt-site #payment { background: transparent; border-radius: 0; }
.zt-site #payment ul.payment_methods { border: 0; padding: 0; margin: 0 0 18px; list-style: none; display: grid; gap: 10px; }
.zt-site #payment ul.payment_methods li {
  border: 1px solid var(--zt-line); border-radius: var(--zt-radius); padding: 14px 16px; background: var(--zt-surface);
}
.zt-site #payment div.payment_box {
  background: var(--zt-paper); border: 1px solid var(--zt-line); border-radius: 12px; margin: 12px 0 0; color: var(--zt-muted); font-size: .9rem;
}
.zt-site #payment div.payment_box::before { display: none; }
.zt-site #payment .place-order { padding: 0; margin-top: 18px; }
.zt-site #place_order { width: 100%; }
.zt-site .woocommerce-checkout-review-order-table tfoot .order-total th,
.zt-site .woocommerce-checkout-review-order-table tfoot .order-total td { font-size: 1.05rem; font-weight: 800; }

/* my account */
.zt-site .woocommerce-MyAccount-navigation { margin-bottom: 26px; }
.zt-site .woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.zt-site .woocommerce-MyAccount-navigation li a {
  display: inline-flex; padding: 10px 18px; border-radius: 999px; border: 1px solid var(--zt-line);
  background: var(--zt-paper); font-size: .87rem; font-weight: 600;
}
.zt-site .woocommerce-MyAccount-navigation li.is-active a { background: var(--zt-ink); color: #fff; border-color: var(--zt-ink); }
@media (min-width: 900px) {
  .zt-site .woocommerce-account .woocommerce { display: grid; grid-template-columns: 250px minmax(0,1fr); gap: 40px; align-items: start; }
  .zt-site .woocommerce-MyAccount-navigation { width: auto; float: none; margin: 0; }
  .zt-site .woocommerce-MyAccount-navigation ul { flex-direction: column; }
  .zt-site .woocommerce-MyAccount-content { width: auto; float: none; }
}
.zt-site .woocommerce-form-login, .zt-site .woocommerce-form-register,
.zt-site .woocommerce-MyAccount-content, .zt-site .woocommerce-order {
  background: var(--zt-paper); border: 1px solid var(--zt-line); border-radius: var(--zt-radius-lg);
  padding: clamp(22px, 3vw, 34px);
}
.zt-site .woocommerce-form-login .form-row { display: grid; }

/* search results */
.zt-search-item {
  padding: 24px 0; border-bottom: 1px solid var(--zt-line);
}
.zt-search-item h3 { margin-bottom: 6px; }
.zt-search-item p { color: var(--zt-muted); margin: 0; }

/* 404 */
.zt-404 { text-align: center; padding: clamp(70px, 12vw, 140px) 0; }
.zt-404 strong {
  display: block; font-family: var(--zt-display); font-size: clamp(4.5rem, 16vw, 10rem); line-height: .9;
  color: var(--zt-brand); letter-spacing: -.04em;
}

/* utilities */
.zt-mt-s { margin-top: 14px; }
.zt-mt { margin-top: 26px; }
.zt-mt-l { margin-top: 44px; }
.zt-center { text-align: center; margin-inline: auto; }
.zt-flex { display: flex; flex-wrap: wrap; gap: 12px; }
.zt-divider { height: 1px; background: var(--zt-line); border: 0; margin: 0; }

/* ==================================================================
   v1.1 — structure, package cards, policy footer, mobile polish
   ================================================================== */

/* Even card heights so grids never look ragged */
.zt-grid { align-items: stretch; }
.zt-grid > * { height: 100%; }
.zt-card { display: flex; flex-direction: column; }
.zt-card__foot { margin-top: auto; }
@media (min-width: 1000px) {
  .zt-grid--services { grid-template-columns: repeat(4, minmax(0,1fr)); }
}
@media (min-width: 640px) and (max-width: 999px) {
  .zt-grid--services { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
.zt-price-grid { align-items: stretch; }
.zt-price { display: flex; flex-direction: column; }
.zt-price ul { flex: 1 1 auto; }

/* ---- package cards on the product page ---- */
.zt-packs { margin: 26px 0 8px; }
.zt-packs__title {
  font-family: var(--zt-display); font-weight: 700; font-size: .78rem; letter-spacing: .14em;
  text-transform: uppercase; color: var(--zt-ink); margin: 0 0 12px;
}
.zt-packs__grid { display: grid; gap: 12px; }
@media (min-width: 520px) { .zt-packs__grid { grid-template-columns: repeat(3, minmax(0,1fr)); } }
.zt-pack {
  position: relative; display: flex; flex-direction: column; gap: 8px; text-align: left;
  background: var(--zt-paper); border: 1px solid var(--zt-line); border-radius: var(--zt-radius);
  padding: 16px 14px 14px; cursor: pointer; font: inherit; color: inherit;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.zt-pack:hover { border-color: var(--zt-brand); transform: translateY(-2px); }
.zt-pack.is-active { border-color: var(--zt-brand); box-shadow: 0 0 0 2px var(--zt-brand) inset; }
.zt-pack.is-featured { border-color: var(--zt-ink); }
.zt-pack__flag {
  position: absolute; top: -10px; right: 12px; background: var(--zt-ink); color: #fff;
  font-size: .62rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 700;
  padding: 4px 9px; border-radius: 999px;
}
.zt-pack__name { font-family: var(--zt-display); font-weight: 700; font-size: 1rem; color: var(--zt-ink); }
.zt-pack__price { font-family: var(--zt-display); font-weight: 800; font-size: 1.15rem; color: var(--zt-brand); }
.zt-pack__price del { opacity: .5; font-size: .85em; }
.zt-pack__sum { font-size: .82rem; color: var(--zt-muted); line-height: 1.5; }
.zt-pack__list { display: grid; gap: 6px; margin-top: 2px; }
.zt-pack__list span { display: flex; gap: 7px; font-size: .78rem; color: var(--zt-muted); line-height: 1.45; }
.zt-pack__list svg { width: 14px; height: 14px; color: var(--zt-brand); flex: 0 0 auto; margin-top: 3px; }
.zt-pack__pick {
  margin-top: auto; padding-top: 10px; font-size: .74rem; font-weight: 700; letter-spacing: .08em;
  text-transform: uppercase; color: var(--zt-brand);
}
.zt-pack.is-active .zt-pack__pick::after { content: " ✓"; }
/* the raw variation dropdown stays for accessibility but sits quietly under the cards */
.zt-product__summary table.variations { margin-top: 8px; }
.zt-product__summary table.variations th.label { font-size: .78rem; }

/* ---- footer policies column ---- */
@media (min-width: 1100px) {
  .zt-footer__main { grid-template-columns: 1.45fr repeat(4,minmax(0,1fr)); gap: 36px; }
}
.zt-footer__legal-note { margin-top: 14px; font-size: .82rem; opacity: .75; }

/* ---- checkout / cart mobile + gateway visibility ---- */
.zt-site .woocommerce-checkout .woocommerce-info,
.zt-site .woocommerce-checkout .woocommerce-error { border-radius: var(--zt-radius); }
.zt-site #payment ul.payment_methods li label { font-weight: 700; color: var(--zt-ink); }
.zt-site #payment ul.payment_methods li img { max-height: 26px; width: auto; margin-left: 8px; }
@media (max-width: 780px) {
  .zt-site .woocommerce-checkout #customer_details { grid-template-columns: 1fr; }
  .zt-site .woocommerce form .form-row-first,
  .zt-site .woocommerce form .form-row-last { width: 100%; margin-right: 0; display: grid; }
  .zt-site .woocommerce table.shop_table,
  .zt-site .woocommerce table.shop_table tbody,
  .zt-site .woocommerce table.shop_table tr,
  .zt-site .woocommerce table.shop_table td { display: block; width: 100%; }
  .zt-site .woocommerce table.cart thead { display: none; }
  .zt-site .woocommerce table.cart tr { border-top: 1px solid var(--zt-line); padding: 8px 0; }
  .zt-site .woocommerce table.cart td { border: 0; padding: 8px 16px; text-align: left; }
  .zt-site .woocommerce table.cart td.product-thumbnail { padding-bottom: 0; }
  .zt-site .woocommerce .cart .actions { flex-direction: column; align-items: stretch; }
  .zt-site .woocommerce .cart .actions .coupon input { width: 100%; }
  .zt-site .woocommerce .cart .actions button { width: 100%; }
  .zt-site #order_review table.shop_table { display: table; }
  .zt-site #order_review table.shop_table tbody { display: table-row-group; }
  .zt-site #order_review table.shop_table tr { display: table-row; }
  .zt-site #order_review table.shop_table td,
  .zt-site #order_review table.shop_table th { display: table-cell; width: auto; }
}
@media (max-width: 520px) {
  .zt-packs__grid { grid-template-columns: 1fr; }
  .zt-footer__bottom { align-items: flex-start; }
  .zt-footer__bottom nav { gap: 12px; }
  .zt-hero__actions { width: 100%; }
  .zt-hero__actions .zt-btn { width: 100%; justify-content: center; padding: 15px 20px; border-radius: 14px; min-height: 52px; }
  .zt-hero__actions .zt-btn svg { width: 17px; height: 17px; }
}

/* product layout polish */
.zt-product { align-items: start; }
.zt-product__gallery { align-self: start; overflow: hidden; }
.zt-product__gallery img { display: block; }
@media (min-width: 1100px) { .zt-product__summary { position: sticky; top: 110px; } }

/* ============ v1.2 — Custom package builder ============ */
.zt-custom{background:var(--zt-surface,#F5F1EA)}
.zt-custom__inner{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.zt-custom__list{margin:24px 0 0;padding:0;list-style:none;display:grid;gap:10px}
.zt-custom__list li{position:relative;padding-left:26px;font-size:.95rem;opacity:.85}
.zt-custom__list li::before{content:"";position:absolute;left:0;top:.5em;width:12px;height:2px;background:var(--zt-copper,#C0603A)}
.zt-custom__panel{background:#fff;border:1px solid rgba(15,31,26,.12);border-radius:18px;padding:28px;box-shadow:0 20px 50px -34px rgba(15,31,26,.55)}
.zt-custom__form{display:grid;gap:18px}
.zt-custom__form .zt-field{display:grid;gap:8px}
.zt-custom__form label{font-size:.82rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--zt-ink,#0F1F1A)}
.zt-custom__form input[type="text"],
.zt-custom__form input[type="number"],
.zt-custom__form textarea{width:100%;padding:12px 14px;border:1px solid rgba(15,31,26,.18);border-radius:12px;background:#fff;font:inherit;font-size:.95rem;color:inherit}
.zt-custom__form textarea{resize:vertical;min-height:120px}
.zt-custom__form input:focus,.zt-custom__form textarea:focus{outline:none;border-color:var(--zt-copper,#C0603A);box-shadow:0 0 0 3px rgba(192,96,58,.15)}
.zt-field__money{display:flex;align-items:center;gap:0;border:1px solid rgba(15,31,26,.18);border-radius:12px;overflow:hidden;background:#fff}
.zt-field__money span{padding:0 14px;font-weight:800;color:var(--zt-copper,#C0603A)}
.zt-field__money input{border:0!important;border-radius:0!important;box-shadow:none!important}
.zt-field__hint{margin:0;font-size:.82rem;opacity:.7}
.zt-custom__form .zt-btn{width:100%;justify-content:center}
@media (max-width:900px){.zt-custom__inner{grid-template-columns:1fr;gap:28px}.zt-custom__panel{padding:22px}}

/* ==================================================================
   v1.3 — professional cart, checkout and product layouts
   ================================================================== */

/* ---- product: full-width package band ---- */
.zt-packs-band .zt-packs { margin: 0; }
.zt-packs-band .zt-packs__title {
  font-size: .8rem; letter-spacing: .16em; margin-bottom: 18px;
}
.zt-packs__grid { gap: 20px; }
@media (min-width: 520px) and (max-width: 899px) { .zt-packs__grid { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (min-width: 900px) { .zt-packs__grid { grid-template-columns: repeat(3, minmax(0,1fr)); } }
.zt-packs-band .zt-pack {
  padding: 30px 26px 26px; gap: 10px; border-radius: var(--zt-radius-lg); background: #fff;
}
.zt-packs-band .zt-pack__flag { top: 14px; right: 16px; }
.zt-packs-band .zt-pack.is-featured { padding-top: 46px; }
.zt-packs-band .zt-pack__name { font-size: 1.15rem; }
.zt-packs-band .zt-pack__price { font-size: 1.8rem; line-height: 1.1; }
.zt-packs-band .zt-pack__price .woocommerce-Price-amount { white-space: nowrap; }
.zt-packs-band .zt-pack__sum { font-size: .9rem; min-height: 3.2em; }
.zt-packs-band .zt-pack__list span { font-size: .86rem; }
.zt-packs-band .zt-pack__pick {
  padding: 12px 18px; margin-top: 18px; border-radius: 999px; text-align: center;
  background: var(--zt-ink); color: #fff; font-size: .78rem;
}
.zt-packs-band .zt-pack.is-active .zt-pack__pick,
.zt-packs-band .zt-pack:hover .zt-pack__pick { background: var(--zt-brand); color: #fff; }

/* variation select: keep for a11y/AJAX, hide the raw table */
.zt-product-page .zt-product__summary table.variations th.label,
.zt-product-page .zt-product__summary table.variations .reset_variations { display: none; }
.zt-product-page .zt-product__summary table.variations td.value select {
  width: 100%; max-width: 320px; padding: 12px 14px; border-radius: 12px;
  border: 1px solid var(--zt-line); background: #fff; font: inherit;
}
.zt-product { align-items: start; }
@media (min-width: 960px) { .zt-product { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.zt-product__summary { min-width: 0; }
.zt-site .woocommerce div.product form.cart .single_variation .price { font-size: 1.6rem; margin: 0; }
.zt-site .woocommerce div.product form.cart .woocommerce-variation-add-to-cart {
  display: flex; flex-wrap: wrap; gap: 12px; align-items: center;
}

/* ---- cart: table + sticky totals, no cramped sidebar ---- */
.zt-woo--cart .woocommerce { display: grid; gap: 32px; align-items: start; }
@media (min-width: 1000px) {
  .zt-woo--cart .woocommerce { grid-template-columns: minmax(0,1fr) 360px; gap: 40px; }
}
.zt-woo--cart .woocommerce-cart-form { min-width: 0; margin: 0; }
.zt-woo--cart .cart-collaterals,
.zt-woo--cart .cart-collaterals .cart_totals,
.zt-woo--cart .cart-collaterals .cross-sells {
  width: 100% !important; float: none !important; margin: 0;
}
@media (min-width: 1000px) { .zt-woo--cart .cart-collaterals { position: sticky; top: 110px; } }
.zt-site table.cart th, .zt-site table.cart td { vertical-align: middle; padding: 18px 16px; }
.zt-site table.cart thead th {
  background: var(--zt-surface-2, #efeae1); font-size: .72rem; letter-spacing: .12em;
  text-transform: uppercase; color: var(--zt-ink); border: 0;
}
.zt-site table.cart td.product-thumbnail { width: 96px; }
.zt-site table.cart td.product-thumbnail img { width: 76px; height: 76px; object-fit: cover; border-radius: 12px; }
.zt-site table.cart td.product-name { min-width: 240px; }
.zt-site table.cart td.product-name a { font-weight: 700; color: var(--zt-ink); }
.zt-site table.cart td.product-name .variation,
.zt-site table.cart td.product-name dl.variation { margin: 6px 0 0; font-size: .84rem; color: var(--zt-muted); }
.zt-site table.cart td.product-name dl.variation dt,
.zt-site table.cart td.product-name dl.variation dd { display: inline; margin: 0 4px 0 0; }
.zt-site table.cart td.product-name dl.variation p { margin: 0; display: inline; }
.zt-site table.cart td.product-remove a.remove {
  color: var(--zt-brand) !important; border: 1px solid var(--zt-line); border-radius: 999px;
  width: 28px; height: 28px; line-height: 26px; display: inline-block;
}
.zt-site table.cart td.product-remove a.remove:hover { background: var(--zt-brand); color: #fff !important; }
.zt-site table.cart td.actions { padding: 20px 16px; background: var(--zt-surface-2, #f7f4ee); }
.zt-site table.cart td.actions .coupon { display: flex; gap: 10px; float: none; margin-bottom: 0; }
.zt-site table.cart td.actions .coupon input#coupon_code {
  width: 200px; padding: 13px 16px; border: 1px solid var(--zt-line); border-radius: 999px; background: #fff;
}
.zt-site table.cart td.actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; align-items: center; }
.zt-site .cart_totals {
  background: var(--zt-paper); border: 1px solid var(--zt-line);
  border-radius: var(--zt-radius-lg); padding: 26px;
}
.zt-site .cart_totals h2 { font-size: 1.15rem; margin: 0 0 16px; }
.zt-site .cart_totals table.shop_table { border: 0; background: transparent; }
.zt-site .cart_totals table.shop_table th,
.zt-site .cart_totals table.shop_table td {
  padding: 12px 0; border: 0; border-bottom: 1px solid var(--zt-line); background: transparent;
  font-size: .95rem; text-align: left;
}
.zt-site .cart_totals table.shop_table td { text-align: right; }
.zt-site .cart_totals tr.order-total th, .zt-site .cart_totals tr.order-total td {
  border-bottom: 0; font-size: 1.15rem; font-weight: 800; color: var(--zt-ink);
}
.zt-site .cart_totals .wc-proceed-to-checkout { padding: 14px 0 0; }
.zt-site .cart_totals .wc-proceed-to-checkout a.button { display: block; width: 100%; text-align: center; }

/* ---- checkout: two clean columns, sticky order panel ---- */
.zt-woo--checkout .woocommerce { min-width: 0; }
.zt-woo--checkout form.checkout { display: grid; gap: 32px; align-items: start; }
@media (min-width: 1000px) {
  .zt-woo--checkout form.checkout { grid-template-columns: minmax(0,1fr) 420px; gap: 48px; }
  .zt-woo--checkout form.checkout #customer_details { grid-column: 1; }
  .zt-woo--checkout form.checkout > h3#order_review_heading,
  .zt-woo--checkout form.checkout > #order_review { grid-column: 2; }
  .zt-woo--checkout form.checkout > #order_review { position: sticky; top: 110px; }
}
.zt-woo--checkout #customer_details { display: grid; gap: 28px; min-width: 0; }
@media (min-width: 760px) { .zt-woo--checkout #customer_details { grid-template-columns: 1fr; } }
.zt-woo--checkout #customer_details .col-1,
.zt-woo--checkout #customer_details .col-2 { width: 100% !important; float: none !important; margin: 0; }
.zt-woo--checkout #customer_details .woocommerce-billing-fields,
.zt-woo--checkout #customer_details .woocommerce-additional-fields,
.zt-woo--checkout #customer_details .woocommerce-shipping-fields {
  background: var(--zt-paper); border: 1px solid var(--zt-line);
  border-radius: var(--zt-radius-lg); padding: clamp(22px, 3vw, 34px);
}
.zt-woo--checkout .woocommerce-billing-fields h3,
.zt-woo--checkout .woocommerce-additional-fields h3 { font-size: 1.2rem; margin: 0 0 18px; }
.zt-site .woocommerce form .form-row { padding: 0; margin: 0 0 16px; display: grid; gap: 7px; }
.zt-site .woocommerce form .form-row label { font-size: .82rem; font-weight: 700; color: var(--zt-ink); }
.zt-site .woocommerce form .form-row input.input-text,
.zt-site .woocommerce form .form-row textarea,
.zt-site .woocommerce form .form-row select,
.zt-site .woocommerce .select2-container .select2-selection--single {
  width: 100%; padding: 13px 15px; border: 1px solid var(--zt-line); border-radius: 12px;
  background: #fff; font: inherit; font-size: .95rem; height: auto; min-height: 48px;
}
.zt-site .woocommerce .select2-container .select2-selection--single .select2-selection__rendered { line-height: 22px; padding: 0; }
.zt-site .woocommerce .select2-container .select2-selection--single .select2-selection__arrow { top: 12px; right: 10px; }
.zt-site .woocommerce form .form-row input.input-text:focus,
.zt-site .woocommerce form .form-row textarea:focus,
.zt-site .woocommerce form .form-row select:focus {
  outline: none; border-color: var(--zt-brand); box-shadow: 0 0 0 3px rgba(192,96,58,.14);
}
@media (min-width: 620px) {
  .zt-site .woocommerce form .form-row-first,
  .zt-site .woocommerce form .form-row-last { width: calc(50% - 8px); float: none; display: inline-grid; vertical-align: top; }
  .zt-site .woocommerce form .form-row-first { margin-right: 12px; }
}
.zt-woo--checkout h3#order_review_heading { font-size: 1.2rem; margin: 0; }
.zt-woo--checkout #order_review {
  background: var(--zt-paper); border: 1px solid var(--zt-line);
  border-radius: var(--zt-radius-lg); padding: clamp(22px, 3vw, 30px); min-width: 0;
}
.zt-woo--checkout #order_review table.shop_table { border: 0; background: transparent; margin: 0 0 8px; }
.zt-woo--checkout #order_review table.shop_table th,
.zt-woo--checkout #order_review table.shop_table td {
  border: 0; border-bottom: 1px solid var(--zt-line); padding: 12px 0; font-size: .94rem; background: transparent;
}
.zt-woo--checkout #order_review table.shop_table thead th {
  font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; color: var(--zt-muted);
}
.zt-woo--checkout #order_review tfoot tr.order-total th,
.zt-woo--checkout #order_review tfoot tr.order-total td {
  border-bottom: 0; font-size: 1.15rem; font-weight: 800; color: var(--zt-ink);
}
.zt-woo--checkout #order_review td.product-total,
.zt-woo--checkout #order_review tfoot td { text-align: right; }
.zt-site #payment { background: transparent; border-radius: 0; }
.zt-site #payment ul.payment_methods {
  border: 0; padding: 18px 0 0; margin: 0; list-style: none; display: grid; gap: 10px;
}
.zt-site #payment ul.payment_methods li {
  border: 1px solid var(--zt-line); border-radius: 14px; padding: 14px 16px; background: #fff; list-style: none;
}
.zt-site #payment ul.payment_methods li input[type="radio"] { margin-right: 8px; }
.zt-site #payment div.payment_box {
  background: var(--zt-surface-2, #f7f4ee); border-radius: 12px; margin: 12px 0 0; padding: 14px 16px; font-size: .9rem;
}
.zt-site #payment div.payment_box::before { display: none; }
.zt-site #payment div.form-row.place-order { padding: 18px 0 0; margin: 0; }
.zt-site #payment #place_order { width: 100%; }
.zt-site .woocommerce-privacy-policy-text { font-size: .82rem; color: var(--zt-muted); }
.zt-site .woocommerce-form-coupon-toggle .woocommerce-info { margin-bottom: 22px; }

/* ---- mobile ---- */
@media (max-width: 999px) {
  .zt-woo--checkout form.checkout > #order_review { position: static; }
}
@media (max-width: 780px) {
  .zt-site table.cart td.actions { display: block; }
  .zt-site table.cart td.actions .coupon { flex-direction: column; }
  .zt-site table.cart td.actions .coupon input#coupon_code { width: 100%; }
  .zt-site table.cart td.product-name { min-width: 0; }
  .zt-site .woocommerce form .form-row-first,
  .zt-site .woocommerce form .form-row-last { width: 100%; margin-right: 0; display: grid; }
  .zt-packs-band .zt-pack.is-featured { padding-top: 46px; }
}

/* ==================================================================
   v2.0 — production commerce, product gallery and responsive audit
   ================================================================== */

/* Resilient global geometry */
.zt-wrap, .zt-header__bar, .zt-footer__main > *,
.zt-grid > *, .zt-with-sidebar > *, .zt-product-premium > * { min-width: 0; }
.zt-prose, .zt-card, .zt-widget, .zt-quote { overflow-wrap: anywhere; }
.zt-prose > :first-child, .zt-card > :first-child { margin-top: 0; }
.zt-prose > :last-child, .zt-card > :last-child { margin-bottom: 0; }
.zt-prose img { width: 100%; border-radius: var(--zt-radius-lg); margin-bottom: 28px; }
.zt-site iframe { max-width: 100%; }
.zt-site button, .zt-site input, .zt-site select, .zt-site textarea { max-width: 100%; }

/* Header rows remain stable at narrow widths. */
.zt-header__bar { display: grid; grid-template-columns: minmax(0,1fr) auto; }
.zt-logo { min-width: 0; display: inline-flex; align-items: center; }
.zt-logo img, .zt-logo .custom-logo { width: auto; max-width: min(230px, 100%); }
.zt-header__actions { min-width: max-content; }
@media (min-width: 1100px) {
  .zt-header__bar { grid-template-columns: auto minmax(0,1fr) auto; }
  .zt-nav { justify-content: center; min-width: 0; }
}
@media (max-width: 479px) {
  :root { --zt-header-h: 70px; }
  .zt-wrap { padding-inline: 16px; }
  .zt-logo img, .zt-logo .custom-logo { height: 31px; max-width: 152px; }
  .zt-header__actions { gap: 7px; }
  .zt-header__actions .zt-icon-btn { width: 39px; height: 39px; }
}

/* Keep the tablet header purposeful: CTA moves into the menu until desktop. */
@media (min-width: 720px) and (max-width: 1099px) {
  .zt-header__cta { display: none; }
}

/* Footer alignment and overflow. */
.zt-footer__top-action { justify-content: flex-end; }
.zt-footer__main > div { min-width: 0; }
.zt-footer__contact a, .zt-footer__contact span { overflow-wrap: anywhere; }
@media (max-width: 899px) {
  .zt-footer__top-action { justify-content: flex-start; }
}
@media (max-width: 699px) {
  .zt-footer__main { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .zt-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 479px) {
  .zt-footer__main { grid-template-columns: 1fr; }
  .zt-footer__brand { grid-column: auto; }
  .zt-footer__top .zt-btn, .zt-footer__top-action { width: 100%; }
  .zt-footer__bottom { display: grid; }
  .zt-footer__bottom nav { display: grid; grid-template-columns: 1fr 1fr; }
}

/* Balanced homepage grids and stable card actions. */
.zt-grid--services .zt-card { min-height: 100%; }
.zt-grid--services .zt-card__foot { padding-top: 22px; }
@media (min-width: 1000px) {
  .zt-grid--services { grid-template-columns: repeat(4,minmax(0,1fr)); }
}
@media (max-width: 639px) {
  .zt-section { padding-block: 54px; }
  .zt-card, .zt-quote { padding: 22px; }
  .zt-head--split { gap: 8px; }
}

/* Premium single product */
.zt-product-hero {
  padding: calc(var(--zt-header-h) + 34px) 0 clamp(58px,7vw,92px);
  background: linear-gradient(180deg,var(--zt-surface) 0%,var(--zt-paper) 100%);
}
.zt-product-hero .zt-crumbs { color: var(--zt-muted); margin-bottom: 30px; }
.zt-product-hero .zt-crumbs a:hover { color: var(--zt-brand); }
.zt-product-premium { display: grid; gap: clamp(30px,5vw,72px); align-items: start; }
@media (min-width: 980px) {
  .zt-product-premium { grid-template-columns: minmax(0,1.08fr) minmax(390px,.92fr); }
  .zt-product-premium__summary { position: sticky; top: 104px; }
}
.zt-product-premium__gallery {
  position: relative; min-width: 0; background: var(--zt-paper); border: 1px solid var(--zt-line);
  border-radius: var(--zt-radius-lg); box-shadow: var(--zt-shadow); overflow: hidden;
}
.zt-product-premium__gallery .woocommerce-product-gallery { width: 100% !important; float: none !important; margin: 0 !important; }
.zt-product-premium__gallery .woocommerce-product-gallery__wrapper { margin: 0; }
.zt-product-premium__gallery .woocommerce-product-gallery__image { aspect-ratio: 4 / 3; overflow: hidden; }
.zt-product-premium__gallery .woocommerce-product-gallery__image img {
  width: 100%; height: 100%; object-fit: cover; margin: 0;
}
.zt-product-premium__gallery .flex-control-thumbs {
  display: grid !important; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px;
  list-style: none; margin: 0 !important; padding: 14px !important; border-top: 1px solid var(--zt-line);
}
.zt-product-premium__gallery .flex-control-thumbs li { width: auto !important; float: none !important; }
.zt-product-premium__gallery .flex-control-thumbs img {
  width: 100%; aspect-ratio: 1; object-fit: cover; border: 2px solid transparent; border-radius: 10px; opacity: .68;
}
.zt-product-premium__gallery .flex-control-thumbs img.flex-active { opacity: 1; border-color: var(--zt-brand); }
.zt-product-premium__gallery .woocommerce-product-gallery__trigger {
  top: 18px !important; right: 18px !important; z-index: 4; background: var(--zt-paper) !important;
}
.zt-product-premium__gallery .onsale { top: 18px !important; left: 18px !important; }
.zt-product-fallback { margin: 0; aspect-ratio: 4 / 3; }
.zt-product-fallback img { width: 100%; height: 100%; object-fit: cover; }
.zt-product-premium__summary h1 { font-size: clamp(2rem,4vw,3.35rem); }
.zt-product-rating { min-height: 24px; margin: 10px 0; }
.zt-product-rating .woocommerce-product-rating { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 0 !important; }
.zt-product-premium__summary .woocommerce-product-details__short-description { color: var(--zt-muted); font-size: 1.02rem; }
.zt-product-premium__summary .variations { position: absolute; width: 1px !important; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.zt-product-premium__summary form.cart { margin-top: 18px !important; }
.zt-product-premium__summary .woocommerce-variation-add-to-cart,
.zt-product-premium__summary form.cart:not(.variations_form) { display: grid !important; grid-template-columns: auto minmax(150px,1fr) minmax(120px,.8fr); gap: 10px !important; }
.zt-product-premium__summary .single_add_to_cart_button,
.zt-product-premium__summary .zt-buy-now { width: 100%; margin: 0 !important; }
.zt-product-premium__summary .zt-buy-now { background: var(--zt-ink) !important; }
.zt-product-premium__summary .zt-buy-now:hover { background: var(--zt-ink-2) !important; }
.zt-product-premium__summary .product_meta { margin-top: 20px; color: var(--zt-muted); font-size: .82rem; }
.zt-benefit-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.zt-benefit { display: flex; gap: 12px; align-items: flex-start; padding: 20px; background: var(--zt-paper); border: 1px solid var(--zt-line); border-radius: var(--zt-radius); font-weight: 650; }
.zt-benefit svg { width: 20px; height: 20px; color: var(--zt-brand); flex: 0 0 auto; margin-top: 2px; }
.zt-product-details .woocommerce-tabs { margin-top: 0; }
.zt-product-details .related.products { padding-top: clamp(40px,6vw,74px); border-top: 1px solid var(--zt-line); }
.zt-recent { margin-top: clamp(52px,7vw,90px); }

@media (max-width: 979px) {
  .zt-benefit-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 619px) {
  .zt-product-hero { padding-top: calc(var(--zt-header-h) + 22px); }
  .zt-product-premium__summary .woocommerce-variation-add-to-cart,
  .zt-product-premium__summary form.cart:not(.variations_form) { grid-template-columns: 1fr; }
  .zt-product-premium__summary .quantity { width: 100%; justify-content: center; }
  .zt-benefit-grid { grid-template-columns: 1fr; }
}

/* Cart: retain native functions while creating a scannable professional layout. */
.zt-woo--cart > .woocommerce { grid-template-columns: minmax(0,1fr); }
.zt-woo--cart .woocommerce-notices-wrapper { grid-column: 1 / -1; }
@media (min-width: 1000px) {
  .zt-woo--cart > .woocommerce { grid-template-columns: minmax(0,1fr) 370px; }
}
.zt-woo--cart .woocommerce-cart-form { overflow-x: auto; border-radius: var(--zt-radius-lg); }
.zt-woo--cart table.cart { min-width: 720px; }
.zt-site table.cart .product-price, .zt-site table.cart .product-subtotal { white-space: nowrap; }
.zt-site table.cart td.product-name { min-width: 190px; }
.zt-site table.cart td.product-thumbnail img { background: var(--zt-surface-2); }
.zt-site .cart_totals .woocommerce-shipping-methods { list-style: none; padding: 0; }
.zt-site .cart_totals .woocommerce-shipping-destination { font-size: .78rem; color: var(--zt-muted); }
.zt-site .return-to-shop .button { display: inline-flex; }

/* Checkout placement and plugin-compatible payment boxes. */
@media (min-width: 1000px) {
  .zt-woo--checkout form.checkout #customer_details { grid-column: 1; grid-row: 1 / span 2; }
  .zt-woo--checkout form.checkout > #order_review_heading { grid-column: 2; grid-row: 1; align-self: end; }
  .zt-woo--checkout form.checkout > #order_review { grid-column: 2; grid-row: 2; }
}
.zt-site #payment .payment_box fieldset { border: 0; margin: 0; padding: 0; }
.zt-site #payment .payment_box iframe { width: 100% !important; }
.zt-site #payment .wc-payment-form input { background: var(--zt-paper); }
.zt-site .woocommerce-invalid input.input-text,
.zt-site .woocommerce-invalid select { border-color: #b42318 !important; }
.zt-site .woocommerce-validated input.input-text { border-color: #238636 !important; }

/* Mobile cart keeps every control visible without forcing the full page wide. */
@media (max-width: 780px) {
  .zt-woo--cart .woocommerce-cart-form { overflow: visible; }
  .zt-woo--cart table.cart { min-width: 0; }
  .zt-site .woocommerce table.cart tr.cart_item {
    display: grid; grid-template-columns: 38px 82px minmax(0,1fr); gap: 8px 10px;
    padding: 16px; border: 1px solid var(--zt-line); border-radius: var(--zt-radius); margin-bottom: 14px;
    background: var(--zt-paper);
  }
  .zt-site .woocommerce table.cart td { padding: 5px 0; }
  .zt-site .woocommerce table.cart td.product-remove { grid-column: 1; grid-row: 1; }
  .zt-site .woocommerce table.cart td.product-thumbnail { grid-column: 2; grid-row: 1 / span 2; }
  .zt-site .woocommerce table.cart td.product-thumbnail img { width: 76px; height: 76px; }
  .zt-site .woocommerce table.cart td.product-name { grid-column: 3; grid-row: 1; }
  .zt-site .woocommerce table.cart td.product-price,
  .zt-site .woocommerce table.cart td.product-quantity,
  .zt-site .woocommerce table.cart td.product-subtotal { grid-column: 3; display: grid; grid-template-columns: minmax(90px,auto) 1fr; align-items: center; gap: 10px; }
  .zt-site .woocommerce table.cart td[data-title]::before { content: attr(data-title) ": "; font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--zt-muted); }
  .zt-site .woocommerce table.cart td.actions { margin-top: 12px; border: 1px solid var(--zt-line); border-radius: var(--zt-radius); padding: 16px; }
  .zt-site table.cart td.actions .coupon { width: 100%; }
  .zt-site table.cart td.actions .coupon .button { width: 100%; }
}

@media (max-width: 479px) {
  .zt-banner { padding-top: calc(var(--zt-header-h) + 28px); }
  .zt-banner h1 { font-size: 2rem; }
  .zt-site .woocommerce table.cart tr.cart_item { grid-template-columns: 34px 68px minmax(0,1fr); padding: 13px; }
  .zt-site .woocommerce table.cart td.product-thumbnail img { width: 62px; height: 62px; }
  .zt-site .woocommerce table.cart td.product-price,
  .zt-site .woocommerce table.cart td.product-quantity,
  .zt-site .woocommerce table.cart td.product-subtotal { grid-column: 2 / -1; }
  .zt-woo--checkout #customer_details .woocommerce-billing-fields,
  .zt-woo--checkout #customer_details .woocommerce-additional-fields,
  .zt-woo--checkout #customer_details .woocommerce-shipping-fields,
  .zt-woo--checkout #order_review, .zt-site .cart_totals { padding: 18px; border-radius: var(--zt-radius); }
  .zt-site #payment ul.payment_methods li { padding: 12px; }
  .zt-site .woocommerce .button, .zt-site .woocommerce a.button,
  .zt-site .woocommerce button.button, .zt-site .woocommerce input.button { white-space: normal; line-height: 1.25; }
}


/* v2.1.0 — full-width package band, equal cards, cleaner empty cart. */
.zt-packs-band { padding-top: clamp(30px,4vw,48px); padding-bottom: clamp(36px,5vw,64px); background: var(--zt-surface-2, #f3efe9); }
.zt-packs-band .zt-packs__grid { align-items: stretch; }
.zt-packs-band .zt-pack {
  display: flex; flex-direction: column; gap: 10px; height: 100%; text-align: left;
  padding: 30px 26px 26px; border-radius: var(--zt-radius-lg); background: var(--zt-paper); overflow: hidden;
}
.zt-packs-band .zt-pack.is-featured { padding-top: 52px; }
.zt-packs-band .zt-pack__flag {
  position: absolute; top: 14px; left: 26px; right: auto; border-radius: 999px;
  padding: 5px 12px; font-size: .64rem; letter-spacing: .12em; text-transform: uppercase; white-space: nowrap;
}
.zt-packs-band .zt-pack__name { font-size: 1.2rem; }
.zt-packs-band .zt-pack__price { font-size: clamp(1.6rem,2.4vw,2rem); }
.zt-packs-band .zt-pack__sum { min-height: 0; }
.zt-packs-band .zt-pack__list { flex: 1 1 auto; }
.zt-packs-band .zt-pack__pick { margin-top: auto; align-self: flex-start; }
@media (max-width: 619px) { .zt-packs-band .zt-pack { padding: 26px 20px 22px; } }

/* Empty cart: single clear message only. */
.zt-woo--cart .cart-empty, .zt-woo--cart .wc-empty-cart-message,
.zt-woo--cart .cart-empty + .return-to-shop { display: none !important; }

/* ==========================================================================
   v2.2.0 — cart & checkout layout hardening
   ========================================================================== */

/* Guarantee clearance under the fixed header on commerce screens */
body.woocommerce-cart .zt-main > .zt-section:first-child,
body.woocommerce-checkout .zt-main > .zt-section:first-child { padding-top: calc(var(--zt-header-h) + 34px); }
body.woocommerce-cart .zt-main > .zt-banner:first-child,
body.woocommerce-checkout .zt-main > .zt-banner:first-child { padding-top: calc(var(--zt-header-h) + 28px); }

.zt-site .woocommerce-cart .zt-woo,
.zt-site .woocommerce-checkout .zt-woo { max-width: 1180px; margin-inline: auto; }

/* ---- cart table ---- */
.zt-site .woocommerce table.shop_table.cart { table-layout: auto; }
.zt-site table.cart td.product-remove { width: 58px; text-align: center; }
.zt-site table.cart td.product-thumbnail { width: 96px; }
.zt-site .woocommerce table.cart img,
.zt-site table.cart td.product-thumbnail img {
  width: 72px !important; height: 72px !important; max-width: none;
  object-fit: cover; border-radius: 12px; display: block; margin: 0;
}
.zt-site table.cart td.product-name { min-width: 200px; }
.zt-site table.cart td.product-price,
.zt-site table.cart td.product-subtotal { white-space: nowrap; text-align: right; }
.zt-site table.cart th.product-price,
.zt-site table.cart th.product-subtotal { text-align: right; }
.zt-site table.cart td.product-quantity .quantity input.qty { width: 74px; text-align: center; }

/* Restore the full-width colspan behaviour of the coupon / update row */
.zt-site .woocommerce table.cart td.actions {
  display: table-cell !important; width: auto !important; background: var(--zt-surface);
  padding: 18px !important; text-align: left; border-top: 1px solid var(--zt-line);
}
.zt-site .woocommerce table.cart td.actions::after { content: ""; display: block; clear: both; }
.zt-site .woocommerce table.cart td.actions .coupon {
  display: inline-flex; gap: 10px; align-items: center; flex-wrap: wrap; float: none; margin: 0;
}
.zt-site .woocommerce table.cart td.actions .coupon input#coupon_code { width: min(240px, 55vw); margin: 0; }
.zt-site .woocommerce table.cart td.actions > button[name="update_cart"],
.zt-site .woocommerce table.cart td.actions > input[name="update_cart"] { float: right; margin: 0; }

/* Cart page as a real two-column layout */
@media (min-width: 1000px) {
  .zt-site .woocommerce-cart .zt-woo .woocommerce {
    display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 40px; align-items: start;
  }
  .zt-site .woocommerce-cart .zt-woo .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
  .zt-site .woocommerce-cart form.woocommerce-cart-form { grid-column: 1; margin: 0; }
  .zt-site .woocommerce-cart .cart-collaterals { grid-column: 2; margin: 0; }
  .zt-site .woocommerce-cart .cart-collaterals .cart_totals {
    position: sticky; top: calc(var(--zt-header-h) + 20px);
    background: var(--zt-paper); border: 1px solid var(--zt-line);
    border-radius: var(--zt-radius-lg); padding: 26px;
  }
  .zt-site .woocommerce-cart .cart-collaterals .cart_totals table.shop_table { border: 0; border-radius: 0; }
  .zt-site .woocommerce-cart .cart-collaterals .cart_totals table.shop_table th { background: transparent; padding-inline: 0; }
  .zt-site .woocommerce-cart .cart-collaterals .cart_totals table.shop_table td { padding-inline: 0; text-align: right; }
  .zt-site .woocommerce-cart .cart-collaterals .cross-sells { display: none; }
}

/* ---- checkout ---- */
.zt-site .woocommerce-checkout form.checkout #customer_details,
.zt-site .woocommerce-checkout form.checkout #order_review { float: none !important; width: 100% !important; }
@media (min-width: 1000px) {
  .zt-site .woocommerce-checkout form.checkout.woocommerce-checkout {
    display: grid; grid-template-columns: minmax(0, 1fr) 420px;
    gap: 20px 40px; align-items: start;
  }
  .zt-site .woocommerce-checkout form.checkout > #customer_details { grid-column: 1; grid-row: 1 / span 2; }
  .zt-site .woocommerce-checkout form.checkout > #order_review_heading { grid-column: 2; grid-row: 1; margin: 0 0 6px; }
  .zt-site .woocommerce-checkout form.checkout > #order_review {
    grid-column: 2; grid-row: 2; position: sticky; top: calc(var(--zt-header-h) + 20px);
  }
  /* keep billing fields readable inside the narrower left column */
  .zt-site .woocommerce-checkout #customer_details { grid-template-columns: 1fr; }
}
.zt-site .woocommerce-checkout form.checkout .woocommerce-additional-fields { margin-top: 22px; }
.zt-site #order_review table.shop_table td,
.zt-site #order_review table.shop_table th { text-align: left; }
.zt-site #order_review table.shop_table td.product-total,
.zt-site #order_review table.shop_table th.product-total,
.zt-site #order_review table.shop_table tfoot td { text-align: right; }
.zt-site #payment ul.payment_methods li label { font-weight: 700; display: inline-flex; align-items: center; gap: 8px; }
.zt-site #payment ul.payment_methods li img { max-height: 26px; width: auto; display: inline-block; }
.zt-site .woocommerce-checkout #payment ul.payment_methods li input[type="radio"] { margin-right: 6px; }

/* ==========================================================================
   ZACHARY TECH v1.0.0 — visual identity layer
   Midnight circuit + electric iris + signal lime. Squared geometry,
   generous containers, technical detailing.
   ========================================================================== */

body.zt-site {
  background: var(--zt-surface);
  font-family: var(--zt-font);
  letter-spacing: -.005em;
}
body.zt-site h1, body.zt-site h2, body.zt-site h3, body.zt-site h4 {
  font-family: var(--zt-display);
  letter-spacing: -.03em;
  font-weight: 700;
}
body.zt-site a:hover { color: var(--zt-brand); }
body.zt-site ::selection { background: var(--zt-brand); color: #fff; }

/* ---- containers: wide by default, never cramped ---- */
body.zt-site .zt-wrap {
  max-width: var(--zt-container);
  padding-inline: 20px;
}
@media (min-width: 768px) { body.zt-site .zt-wrap { padding-inline: 40px; } }
@media (min-width: 1360px) { body.zt-site .zt-wrap { padding-inline: 56px; } }
body.zt-site .zt-wrap--narrow { max-width: var(--zt-container-narrow); }

/* ---- eyebrow: technical label ---- */
body.zt-site .zt-eyebrow {
  gap: .55rem; font-size: .7rem; letter-spacing: .24em; color: var(--zt-brand);
  font-weight: 700;
}
body.zt-site .zt-eyebrow::before {
  width: 8px; height: 8px; border-radius: 2px; background: var(--zt-accent);
  box-shadow: 0 0 0 4px rgba(200, 247, 81, .22);
}
body.zt-site .zt-section--ink .zt-eyebrow { color: var(--zt-accent); }

/* ---- buttons: squared, gradient primary ---- */
body.zt-site .zt-btn {
  border-radius: 10px;
  font-family: var(--zt-display);
  font-weight: 600;
  letter-spacing: .01em;
  padding: 15px 24px;
  background: linear-gradient(120deg, var(--zt-brand), #7B6BFF 55%, var(--zt-accent-2));
  color: #fff;
  border: 1px solid transparent;
  box-shadow: 0 12px 26px -18px rgba(91, 91, 247, .9);
}
body.zt-site .zt-btn:hover {
  transform: translateY(-2px);
  box-shadow: var(--zt-glow);
  filter: saturate(115%);
}
body.zt-site .zt-btn--mint,
body.zt-site .zt-btn--copper {
  background: var(--zt-accent); color: #0A1020; border-color: transparent;
  box-shadow: 0 12px 26px -18px rgba(200, 247, 81, .9);
}
body.zt-site .zt-btn--ghost {
  background: transparent; color: var(--zt-ink); border-color: var(--zt-line);
  box-shadow: none;
}
body.zt-site .zt-btn--ghost:hover { background: var(--zt-ink); color: #fff; border-color: var(--zt-ink); }
body.zt-site .zt-btn--light { background: #fff; color: var(--zt-ink); }
body.zt-site .zt-btn--outline-light {
  background: rgba(255,255,255,.04); color: #fff; border-color: rgba(255,255,255,.28); box-shadow: none;
}
body.zt-site .zt-btn--outline-light:hover { background: rgba(255,255,255,.14); }
body.zt-site .zt-btn svg, body.zt-site .zt-btn img { width: 17px; height: 17px; flex: 0 0 auto; }
body.zt-site .zt-link-arrow { color: var(--zt-brand); font-weight: 700; }

/* ---- header: slim utility bar + solid nav shell ---- */
.zt-topbar {
  background: var(--zt-ink); color: #C3C9E8; font-size: .78rem;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.zt-topbar__inner {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  min-height: 38px; padding-block: 7px; flex-wrap: wrap;
}
.zt-topbar a { color: #DDE2F7; }
.zt-topbar a:hover { color: var(--zt-accent); }
.zt-topbar__meta { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.zt-topbar__meta span { display: inline-flex; align-items: center; gap: .4rem; }
.zt-topbar svg { width: 14px; height: 14px; }
@media (max-width: 640px) { .zt-topbar__hide-sm { display: none; } }

body.zt-site .zt-header { position: fixed; }
body.zt-site .zt-header__bar { height: var(--zt-header-h); }
body.zt-site .zt-header.is-stuck {
  background: rgba(255, 255, 255, .92);
  backdrop-filter: saturate(180%) blur(16px);
  border-bottom-color: var(--zt-line);
  box-shadow: 0 16px 40px -34px rgba(16, 19, 43, .9);
}
body.zt-site .zt-header.is-stuck .zt-topbar { display: none; }
body.zt-site .zt-nav__link { border-radius: 8px; font-weight: 600; font-size: .92rem; }
body.zt-site .zt-nav__link:hover { background: rgba(91, 91, 247, .1); color: var(--zt-brand); }
body.zt-has-dark-hero .zt-header:not(.is-stuck) .zt-nav__link:hover { background: rgba(255,255,255,.12); color: #fff; }
body.zt-site .zt-dropdown { border-radius: 16px; border-color: var(--zt-line); padding: 12px; min-width: 360px; }
body.zt-site .zt-dropdown a { border-radius: 10px; }
body.zt-site .zt-dropdown a:hover { background: rgba(91, 91, 247, .08); color: var(--zt-brand); }
body.zt-site .zt-icon-btn { border-radius: 10px; width: 44px; height: 44px; }
body.zt-site .zt-icon-btn:hover { border-color: var(--zt-brand); color: var(--zt-brand); background: rgba(91,91,247,.07); }
body.zt-site .zt-cart-count { background: var(--zt-accent); color: #0A1020; border-radius: 6px; }
body.zt-site .zt-logo img { height: 44px; }
@media (max-width: 640px) { body.zt-site .zt-logo img { height: 36px; } }
body.zt-site .zt-mobile { background: #fff; }
body.zt-site .zt-mobile a { border-bottom-color: var(--zt-line); }

/* ---- hero: split circuit console ---- */
body.zt-site .zt-hero {
  background: radial-gradient(120% 120% at 80% 0%, #16183F 0%, var(--zt-ink) 55%);
  padding: calc(var(--zt-header-h) + 74px) 0 clamp(60px, 7vw, 104px);
}
body.zt-site .zt-hero::before {
  background:
    radial-gradient(48% 60% at 8% 10%, rgba(91, 91, 247, .5), transparent 62%),
    radial-gradient(42% 55% at 96% 82%, rgba(34, 211, 238, .3), transparent 60%);
}
body.zt-site .zt-hero::after {
  opacity: .2;
  background-image:
    linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
  background-size: 56px 56px;
  mask-image: radial-gradient(85% 80% at 30% 40%, #000, transparent);
}
body.zt-site .zt-hero__grid { align-items: center; }
@media (min-width: 1080px) { body.zt-site .zt-hero__grid { grid-template-columns: 1.08fr .92fr; gap: 64px; } }
body.zt-site .zt-hero h1 { letter-spacing: -.04em; line-height: 1.02; }
body.zt-site .zt-hero h1 em {
  font-style: normal;
  background: linear-gradient(100deg, var(--zt-accent), var(--zt-accent-2));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
body.zt-site .zt-hero__lead { color: #B6BEE2; }
body.zt-site .zt-hero__badge {
  border-radius: 8px; background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.14); color: #D8DEF8; letter-spacing: .16em;
}
body.zt-site .zt-hero__badge i { background: var(--zt-accent); box-shadow: 0 0 0 4px rgba(200,247,81,.2); }

/* console panel replaces the old photo frame */
.zt-console {
  position: relative;
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,.14);
  background: linear-gradient(180deg, rgba(255,255,255,.09), rgba(255,255,255,.03));
  box-shadow: var(--zt-shadow-lg);
  overflow: hidden;
  backdrop-filter: blur(8px);
}
.zt-console__bar {
  display: flex; align-items: center; gap: 8px;
  padding: 12px 16px; border-bottom: 1px solid rgba(255,255,255,.12);
  font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; color: #9AA4D2;
}
.zt-console__bar b { width: 9px; height: 9px; border-radius: 50%; background: rgba(255,255,255,.25); }
.zt-console__bar b:first-child { background: var(--zt-accent); }
.zt-console__bar span { margin-left: auto; }
.zt-console__body { padding: 20px; display: grid; gap: 14px; }
.zt-console__row {
  display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 14px;
  padding: 14px 16px; border-radius: 12px;
  background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.09);
}
.zt-console__row strong { display: block; color: #fff; font-family: var(--zt-display); font-size: 1rem; }
.zt-console__row small { color: #9AA4D2; font-size: .78rem; }
.zt-console__val { font-family: var(--zt-display); font-weight: 700; color: var(--zt-accent); font-size: 1.15rem; }
.zt-console__meter { grid-column: 1 / -1; height: 6px; border-radius: 999px; background: rgba(255,255,255,.1); overflow: hidden; }
.zt-console__meter i { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, var(--zt-brand), var(--zt-accent-2)); }
.zt-console__foot {
  display: flex; flex-wrap: wrap; gap: 10px; padding: 0 20px 20px;
}
.zt-console__chip {
  font-size: .74rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  color: #D6DCF7; border: 1px solid rgba(255,255,255,.16); border-radius: 8px; padding: 7px 12px;
}

body.zt-site .zt-hero__rail { border-top-color: rgba(255,255,255,.14); }
body.zt-site .zt-hero__rail div { border-left: 2px solid rgba(200,247,81,.6); padding-left: 16px; }
body.zt-site .zt-hero__rail div span { color: #98A2CC; }

/* ---- inner page banner ---- */
body.zt-site .zt-banner {
  background: radial-gradient(120% 130% at 85% 0%, #16183F, var(--zt-ink) 60%);
  padding: calc(var(--zt-header-h) + 58px) 0 clamp(48px, 5vw, 78px);
}
body.zt-site .zt-banner::before {
  background: radial-gradient(50% 80% at 88% 15%, rgba(91,91,247,.42), transparent 62%),
    radial-gradient(45% 70% at 5% 92%, rgba(34,211,238,.2), transparent 60%);
}
body.zt-site .zt-banner::after {
  right: -60px; top: -60px; width: 280px; height: 280px; border-radius: 28px;
  border: 1px solid rgba(255,255,255,.12); transform: rotate(18deg);
}
body.zt-site .zt-banner p { color: #B6BEE2; }
body.zt-site .zt-crumbs a:hover { color: var(--zt-accent); }

/* ---- surfaces & sections ---- */
body.zt-site .zt-section--sand { background: var(--zt-surface-2); }
body.zt-site .zt-section--ink {
  background: linear-gradient(180deg, var(--zt-ink), #0B1030);
  color: #C7CDEC;
}
body.zt-site .zt-section--ink p, body.zt-site .zt-section--ink .zt-lead { color: #A8B0D8; }

/* ---- cards: technical outline + corner tick ---- */
body.zt-site .zt-card {
  position: relative;
  border-radius: 16px;
  border: 1px solid var(--zt-line);
  background: #fff;
  box-shadow: none;
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
body.zt-site .zt-card::after {
  content: ''; position: absolute; left: 0; top: 0; width: 46px; height: 3px;
  background: linear-gradient(90deg, var(--zt-brand), var(--zt-accent-2));
  border-radius: 0 0 3px 0; opacity: 0; transition: opacity .25s ease, width .25s ease;
}
body.zt-site .zt-card:hover { transform: translateY(-5px); border-color: rgba(91,91,247,.45); box-shadow: var(--zt-shadow); }
body.zt-site .zt-card:hover::after { opacity: 1; width: 90px; }
body.zt-site .zt-card--ink {
  background: linear-gradient(160deg, #131845, #0A0E28);
  border-color: rgba(255,255,255,.12); color: #C7CDEC;
}
body.zt-site .zt-card--ink h3 { color: #fff; }
body.zt-site .zt-ico {
  border-radius: 12px; color: var(--zt-brand);
  background: linear-gradient(150deg, rgba(91,91,247,.14), rgba(34,211,238,.12));
  border: 1px solid rgba(91,91,247,.2);
}
body.zt-site .zt-card--ink .zt-ico { color: var(--zt-accent); background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.14); }

/* ---- stats, steps, quotes, tags ---- */
body.zt-site .zt-stat strong { color: var(--zt-brand); }
body.zt-site .zt-step__n { color: var(--zt-brand); }
body.zt-site .zt-tag {
  color: var(--zt-brand); background: rgba(91,91,247,.1); border-radius: 8px;
  letter-spacing: .12em; text-transform: uppercase; font-size: .68rem; font-weight: 800;
}
body.zt-site .zt-quote {
  border-radius: 16px; border: 1px solid var(--zt-line); background: #fff;
}
body.zt-site .zt-quote__mark { color: var(--zt-brand); }
body.zt-site .zt-acc__item.is-open .zt-acc__btn i { background: var(--zt-brand); border-color: var(--zt-brand); }

/* ---- pricing ---- */
body.zt-site .zt-price { border-radius: 18px; border: 1px solid var(--zt-line); background: #fff; }
body.zt-site .zt-price.is-featured {
  background: linear-gradient(160deg, #141A4C, #090D26);
  border-color: rgba(200,247,81,.35);
  box-shadow: var(--zt-shadow-lg);
}
body.zt-site .zt-price.is-featured h3, body.zt-site .zt-price.is-featured .zt-price__amount { color: #fff; }
body.zt-site .zt-price__flag { background: var(--zt-accent); color: #0A1020; border-radius: 8px; }
body.zt-site .zt-price__amount small { color: inherit; opacity: .6; }

/* ---- custom package: interactive configurator ---- */
body.zt-site .zt-custom {
  background: linear-gradient(155deg, #0A0E28 0%, #171C50 55%, #0A0E28 100%);
  color: #C7CDEC; position: relative; overflow: hidden;
}
body.zt-site .zt-custom::before {
  content: ''; position: absolute; inset: 0; opacity: .18;
  background-image: radial-gradient(rgba(255,255,255,.5) 1px, transparent 1px);
  background-size: 26px 26px;
  mask-image: radial-gradient(70% 70% at 50% 30%, #000, transparent);
}
body.zt-site .zt-custom > * { position: relative; z-index: 1; }
body.zt-site .zt-custom h2, body.zt-site .zt-custom h3 { color: #fff; }
body.zt-site .zt-custom .zt-lead, body.zt-site .zt-custom p { color: #AEB6DE; }
body.zt-site .zt-custom__inner { display: grid; gap: clamp(28px, 4vw, 56px); align-items: start; }
@media (min-width: 1024px) { body.zt-site .zt-custom__inner { grid-template-columns: .95fr 1.05fr; } }
body.zt-site .zt-custom__list { list-style: none; padding: 0; margin: 26px 0 0; display: grid; gap: 12px; }
body.zt-site .zt-custom__list li {
  display: grid; grid-template-columns: 22px minmax(0,1fr); gap: 12px; align-items: start;
  font-size: .95rem; color: #C7CDEC;
}
body.zt-site .zt-custom__list li::before {
  content: '✓'; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 6px;
  background: rgba(200,247,81,.15); color: var(--zt-accent); font-size: .75rem; font-weight: 800;
}
body.zt-site .zt-custom__panel {
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 22px; padding: clamp(22px, 3vw, 34px);
  backdrop-filter: blur(10px);
}
.zt-custom__steps {
  display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 22px;
  font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; color: #97A0CE;
}
.zt-custom__steps span { display: inline-flex; align-items: center; gap: .45rem; }
.zt-custom__steps span::before {
  content: ''; width: 20px; height: 20px; border-radius: 6px; display: grid; place-items: center;
  background: rgba(91,91,247,.35); color: #fff;
}
.zt-chiplist { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 6px; padding: 0; list-style: none; }
.zt-chip {
  border: 1px solid rgba(255,255,255,.2); background: rgba(255,255,255,.05); color: #D8DDF6;
  border-radius: 999px; padding: 8px 14px; font-size: .8rem; font-weight: 600; cursor: pointer;
  transition: all .2s ease;
}
.zt-chip:hover { border-color: var(--zt-accent); color: #fff; }
.zt-chip.is-on { background: var(--zt-accent); border-color: var(--zt-accent); color: #0A1020; }
body.zt-site .zt-custom .zt-field label { color: #DCE1F8; font-weight: 600; font-size: .85rem; }
body.zt-site .zt-custom .zt-field input,
body.zt-site .zt-custom .zt-field textarea {
  background: rgba(9, 13, 38, .6); border: 1px solid rgba(255,255,255,.16); color: #fff;
  border-radius: 12px; width: 100%; padding: 13px 15px; font-family: var(--zt-font); font-size: .95rem;
}
body.zt-site .zt-custom .zt-field input::placeholder,
body.zt-site .zt-custom .zt-field textarea::placeholder { color: #7D86B4; }
body.zt-site .zt-custom .zt-field { margin-bottom: 16px; }
body.zt-site .zt-custom .zt-field__money { display: grid; grid-template-columns: 44px minmax(0,1fr); align-items: center; }
body.zt-site .zt-custom .zt-field__money span {
  height: 100%; display: grid; place-items: center; background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.16); border-right: 0; border-radius: 12px 0 0 12px; color: var(--zt-accent); font-weight: 800;
}
body.zt-site .zt-custom .zt-field__money input { border-radius: 0 12px 12px 0; }
body.zt-site .zt-custom .zt-field__hint { font-size: .8rem; color: #8F98C7; margin: 8px 0 0; }
body.zt-site .zt-custom__form .zt-btn { width: 100%; margin-top: 6px; }

/* ---- footer: dark grid slab ---- */
body.zt-site .zt-footer {
  background: linear-gradient(180deg, #070A16 0%, #0C1130 100%);
  color: #A8B0D8; position: relative; overflow: hidden;
}
body.zt-site .zt-footer::before {
  content: ''; position: absolute; inset: 0; opacity: .12; pointer-events: none;
  background-image: linear-gradient(rgba(255,255,255,.16) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.16) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: linear-gradient(180deg, #000, transparent 70%);
}
body.zt-site .zt-footer > * { position: relative; z-index: 1; }
body.zt-site .zt-footer h2, body.zt-site .zt-footer h3 { color: #fff; }
body.zt-site .zt-footer h3 {
  font-size: .78rem; letter-spacing: .2em; text-transform: uppercase; color: var(--zt-accent);
}
body.zt-site .zt-footer a:hover { color: var(--zt-accent); }
body.zt-site .zt-footer__top {
  border-bottom: 1px solid rgba(255,255,255,.12);
  display: grid; gap: 22px; align-items: center; padding-block: clamp(40px, 5vw, 64px);
}
@media (min-width: 900px) { body.zt-site .zt-footer__top { grid-template-columns: 1.4fr auto; } }
body.zt-site .zt-footer__bottom { border-top: 1px solid rgba(255,255,255,.1); }
.zt-footer__social { display: flex; gap: 10px; margin-top: 20px; }
.zt-footer__social a {
  display: grid; place-items: center; width: 40px; height: 40px; border-radius: 10px;
  border: 1px solid rgba(255,255,255,.16); color: #C7CDEC; transition: all .2s ease;
}
.zt-footer__social a:hover { border-color: var(--zt-accent); color: var(--zt-accent); background: rgba(200,247,81,.08); }
.zt-footer__social svg { width: 17px; height: 17px; }

/* ---- back to top ---- */
body.zt-site .zt-to-top { border-radius: 12px; background: var(--zt-brand); color: #fff; }

/* ---- WooCommerce shell: wide, spacious, on-brand ---- */
body.zt-site.woocommerce-page .zt-wrap,
body.zt-site.woocommerce .zt-wrap { max-width: var(--zt-container); }
body.zt-site .woocommerce ul.products li.product .woocommerce-loop-product__title,
body.zt-site .woocommerce ul.products li.product h2 { font-family: var(--zt-display); }
body.zt-site .woocommerce ul.products li.product {
  border-radius: 16px; border: 1px solid var(--zt-line); background: #fff; overflow: hidden;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
body.zt-site .woocommerce ul.products li.product:hover {
  transform: translateY(-5px); border-color: rgba(91,91,247,.4); box-shadow: var(--zt-shadow);
}
body.zt-site .woocommerce ul.products li.product img { border-radius: 12px; }
body.zt-site .woocommerce span.onsale,
body.zt-site .woocommerce ul.products li.product .onsale {
  background: var(--zt-accent); color: #0A1020; border-radius: 8px; font-weight: 800;
}
body.zt-site .woocommerce .price,
body.zt-site .woocommerce div.product p.price,
body.zt-site .woocommerce div.product span.price { color: var(--zt-brand); font-family: var(--zt-display); font-weight: 700; }
body.zt-site .woocommerce #respond input#submit,
body.zt-site .woocommerce a.button,
body.zt-site .woocommerce button.button,
body.zt-site .woocommerce input.button,
body.zt-site .woocommerce a.button.alt,
body.zt-site .woocommerce button.button.alt,
body.zt-site .woocommerce input.button.alt,
body.zt-site .woocommerce #respond input#submit.alt {
  background: linear-gradient(120deg, var(--zt-brand), #7B6BFF 55%, var(--zt-accent-2));
  color: #fff; border-radius: 10px; font-family: var(--zt-display); font-weight: 600;
  padding: 14px 24px; border: 0; text-transform: none; letter-spacing: 0;
}
body.zt-site .woocommerce #respond input#submit:hover,
body.zt-site .woocommerce a.button:hover,
body.zt-site .woocommerce button.button:hover,
body.zt-site .woocommerce input.button:hover,
body.zt-site .woocommerce a.button.alt:hover,
body.zt-site .woocommerce button.button.alt:hover,
body.zt-site .woocommerce input.button.alt:hover { filter: saturate(115%); box-shadow: var(--zt-glow); color: #fff; }
body.zt-site .woocommerce .woocommerce-message,
body.zt-site .woocommerce .woocommerce-info { border-top-color: var(--zt-brand); border-radius: 12px; }
body.zt-site .woocommerce .woocommerce-message::before,
body.zt-site .woocommerce .woocommerce-info::before { color: var(--zt-brand); }
body.zt-site .woocommerce form .form-row input.input-text,
body.zt-site .woocommerce form .form-row textarea,
body.zt-site .woocommerce form .form-row .select2-container .select2-selection--single,
body.zt-site .woocommerce form .form-row select {
  border-radius: 10px; border: 1px solid var(--zt-line); padding: 13px 14px; font-family: var(--zt-font);
  min-height: 50px; background: #fff;
}
body.zt-site .woocommerce table.shop_table { border-radius: 16px; border-color: var(--zt-line); }
body.zt-site .woocommerce-cart .cart-collaterals .cart_totals,
body.zt-site .woocommerce-checkout #order_review,
body.zt-site .woocommerce-checkout .zt-checkout__aside {
  border-radius: 18px; border: 1px solid var(--zt-line); background: #fff;
}

/* ---- keep every commerce screen generous on large displays ---- */
@media (min-width: 1200px) {
  body.zt-site.woocommerce-cart .zt-wrap,
  body.zt-site.woocommerce-checkout .zt-wrap,
  body.zt-site.woocommerce-account .zt-wrap,
  body.zt-site.single-product .zt-wrap { max-width: 1400px; }
}

/* ---- misc alignment guarantees ---- */
body.zt-site .zt-grid { align-items: stretch; }
body.zt-site .zt-card, body.zt-site .zt-price, body.zt-site .zt-quote { height: 100%; }
body.zt-site img { max-width: 100%; height: auto; }
@media (max-width: 480px) {
  body.zt-site .zt-btn { width: 100%; }
  body.zt-site .zt-hero__actions { gap: 10px; }
  body.zt-site .zt-topbar { font-size: .72rem; }
}
