/* FontZin 7.0.16: concatenated public appearance overlays; source files remain editable. */

/* START palette-light.css */
/* FontZin 7.0.8 — ONE clean light scheme, FOUR authored palette colors from logo.
 * Public UI only. Neutral tints, borders, hover, status surfaces derive by mixing
 * paper/ink/violet/orange; no dark-mode selectors. This sheet is
 * intentionally loaded after Theme routes and Core feature CSS.
 */
:root {
  --fz-palette-paper: #FFFFFF;
  --fz-palette-ink: #111827;
  --fz-palette-accent: #703FFF;
  --fz-palette-orange: #FF6600;
  --fz-paper: var(--fz-palette-paper);
  --fz-accent: var(--fz-palette-accent);
  --bg: var(--fz-palette-paper);
  --surface: var(--fz-palette-paper);
  --text: var(--fz-palette-ink);
  --bg-soft: color-mix(in srgb,var(--fz-palette-ink) 4%,var(--fz-palette-paper));
  --text-soft: color-mix(in srgb,var(--fz-palette-ink) 76%,var(--fz-palette-paper));
  --border: color-mix(in srgb,var(--fz-palette-ink) 19%,var(--fz-palette-paper));
  --primary: var(--fz-palette-accent);
  --primary-ink: var(--fz-palette-paper);
  --fz-primary: var(--fz-palette-accent);
  --fz-secondary: var(--fz-palette-accent);
  --fz-success: var(--fz-palette-accent);
  --fz-danger: var(--fz-palette-ink);
  --fz-warning: var(--fz-palette-ink);
  --fz-info: var(--fz-palette-accent);
  --fz-gold: var(--fz-palette-orange);
  --fz-gold-deep: color-mix(in srgb,var(--fz-palette-orange) 78%,var(--fz-palette-ink));
  --fz-white: var(--fz-palette-paper);
  --fz-bg: var(--fz-palette-paper);
  --fz-bg-soft: var(--bg-soft);
  --fz-surface: var(--fz-palette-paper);
  --fz-surface-2: var(--bg-soft);
  --fz-ink: var(--fz-palette-ink);
  --fz-muted: var(--text-soft);
  --fz-border: var(--border);
  --fz-border-strong: color-mix(in srgb,var(--fz-palette-ink) 35%,var(--fz-palette-paper));
  --fz-hero: var(--fz-palette-paper);
  --fz-focus-color: var(--fz-palette-accent);
  --fz-status-success-bg: color-mix(in srgb,var(--fz-palette-accent) 9%,var(--fz-palette-paper));
  --fz-status-error-bg: color-mix(in srgb,var(--fz-palette-ink) 8%,var(--fz-palette-paper));
  --fz-status-info-bg: color-mix(in srgb,var(--fz-palette-orange) 8%,var(--fz-palette-paper));
}
html { color-scheme: light ; }
body.fontzin-site { background: var(--fz-palette-paper); color: var(--fz-palette-ink); }
body.fontzin-site ::selection { background: color-mix(in srgb,var(--fz-palette-accent) 25%,var(--fz-palette-paper)); color: var(--fz-palette-ink); }
/* Header is always light, including pages that use hero/overlay navigation. */
body.fontzin-site .site-header,
body.fontzin-site .site-header--overlay:not(.is-scrolled):not(.is-nav-open),
body.fontzin-site .site-header--overlay.is-scrolled,
body.fontzin-site .site-header--overlay.is-nav-open {
  background: var(--fz-palette-paper);
  color: var(--fz-palette-ink);
  border-bottom: 1px solid var(--fz-border);
  box-shadow: 0 2px 10px color-mix(in srgb,var(--fz-palette-ink) 7%,transparent);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
body.fontzin-site .brand img,
body.fontzin-site .brand .custom-logo,
body.fontzin-site .site-header--overlay .custom-logo-link img { filter: none ; }
body.fontzin-site .site-header--overlay:not(.is-scrolled):not(.is-nav-open) :is(.brand-link,.primary-nav .menu a,.nav-toggle,.header-bookmarks,.header-cart),
body.fontzin-site .site-header :is(.brand-link,.nav-toggle,.header-bookmarks,.header-cart) { color: var(--fz-palette-ink); }
body.fontzin-site .site-header .primary-nav .menu a { color: var(--fz-muted); }
body.fontzin-site .site-header .primary-nav .menu a:hover,
body.fontzin-site .site-header .primary-nav .menu .current-menu-item > a,
body.fontzin-site .site-header .primary-nav .menu li.active > a {
  color: var(--fz-palette-ink);
  background: var(--fz-bg-soft);
}
body.fontzin-site .site-header :is(.nav-toggle,.header-bookmarks,.header-cart),
body.fontzin-site .site-header--overlay:not(.is-scrolled):not(.is-nav-open) :is(.nav-toggle,.header-bookmarks,.header-cart) {
  background: var(--fz-palette-paper);
  color: var(--fz-palette-ink);
  border-color: var(--fz-border-strong);
}
body.fontzin-site .header-cart #cart-count { background: var(--fz-palette-accent); color: var(--fz-palette-paper); }
body.fontzin-site .side-menu { background: var(--fz-palette-paper); color: var(--fz-palette-ink); }
/* Keep media/featured images but use a light veil to guarantee dark copy contrast. */
body.fontzin-site :is(.home-hero,.header-full,.product-hero,.home-post-hero,.home-product-hero,.site-context-hero) {
  background-color: var(--fz-palette-paper);
  color: var(--fz-palette-ink);
}
body.fontzin-site :is(.home-product-showcase,.home-product-slider,.home-product-hero__media,.home-product-hero__placeholder,.home-post-hero__placeholder) {
  background: var(--fz-palette-paper);
}
body.fontzin-site :is(.hero-section-overlay,.home-product-hero__shade,.home-post-hero__shade,.site-context-hero__shade) {
  background: linear-gradient(90deg,
    color-mix(in srgb,var(--fz-palette-paper) 98%,transparent) 0%,
    color-mix(in srgb,var(--fz-palette-paper) 95%,transparent) 54%,
    color-mix(in srgb,var(--fz-palette-paper) 74%,transparent) 100%) ;
}
body.fontzin-site :is(
  .home-hero h1,.header-full h1,.header-full .post-title,.product-hero-title,
  .home-hero__inner,.header-full-content,.product-hero__inner,
  .home-product-hero__content,.home-product-hero__title,.home-product-hero__title a,
  .home-post-hero__content,.home-post-hero__content h2,.home-post-hero__content h2 a,
  .site-context-hero__content,.site-context-hero__title
) { color: var(--fz-palette-ink) ; text-shadow: none; }
body.fontzin-site :is(
  .home-hero__eyebrow,.hero-kicker,.product-hero-eyebrow,.home-hero__lead,
  .header-full .description,.header-full .page-description,.header-full-content p,
  .product-hero-excerpt,.header-full .rank-math-breadcrumb,
  .header-full .rank-math-breadcrumb a,.header-full .post-meta,
  .home-product-hero__eyebrow,.home-product-hero__excerpt,.home-product-hero__meta,
  .home-post-hero__eyebrow,.home-post-hero__content p,.site-context-hero__excerpt
) { color: var(--fz-muted) ; }
body.fontzin-site :is(.product-hero-meta__item,.home-product-hero__badges > *, .home-hero__tags > *) {
  color: var(--fz-palette-ink);
  background: color-mix(in srgb,var(--fz-palette-ink) 5%,var(--fz-palette-paper));
  border-color: var(--fz-border-strong);
}
/* Primary actions: white-on-logo violet (5.46:1); orange uses ink (6.04:1). */
body.fontzin-site :is(
  .btn,.add-to-cart-button,.add-to-cart-button-one,.fontzin-card-donate,
  .load-more-button,.page-nav button,.fontzin-button,
  .fontzin-cart-button,
  form input[type="submit"],.header-browse-fonts,
  .product-cart-notification__button--checkout,.home-post-hero__read-more
) {
  background: var(--fz-palette-accent) ;
  color: var(--fz-palette-paper) ;
  border-color: var(--fz-palette-accent) ;
  box-shadow: none;
}
body.fontzin-site :is(
  .btn,.add-to-cart-button,.add-to-cart-button-one,.fontzin-card-donate,
  .load-more-button,.page-nav button,.fontzin-button,
  .fontzin-cart-button,
  form input[type="submit"],.header-browse-fonts,
  .product-cart-notification__button--checkout,.home-post-hero__read-more
):hover {
  background: color-mix(in srgb,var(--fz-palette-accent) 85%,var(--fz-palette-ink)) ;
  color: var(--fz-palette-paper) ;
  filter: none;
}
body.fontzin-site :is(.product-access-badge,.product-update-badge,.grid-item .badge,.fontzin-badge) {
  border-color: var(--fz-border-strong);
  background: color-mix(in srgb,var(--fz-palette-accent) 9%,var(--fz-palette-paper));
  color: var(--fz-palette-ink);
}
/* States retain textual status, labels, icons and outlines rather than a new hue. */

/* Public forms and the Core font-preview card share the exact palette. */
body.fontzin-site :is(input[type="text"],input[type="search"],input[type="email"],input[type="tel"],input[type="url"],input[type="number"],input[type="password"],textarea,select) {
  background: var(--fz-palette-paper);
  color: var(--fz-palette-ink);
  border-color: var(--fz-border-strong);
}
body.fontzin-site :is(input,textarea,select,button,a):focus-visible {
  outline: 2px solid var(--fz-palette-accent);
  outline-offset: 2px;
}






/* Footer preserves full-bleed layout and --container interior from 7.0.2. */
body.fontzin-site > .footer.footer { background: var(--fz-bg-soft); border-top-color: var(--fz-border); }
body.fontzin-site .footer :is(p,a,li) { color: var(--fz-palette-ink); }
body.fontzin-site .footer a:hover { color: var(--fz-palette-accent); }

/* The overlay header used a highly specific old gold-CTA rule; override it. */
body.fontzin-site .site-header.site-header--overlay:not(.is-scrolled):not(.is-nav-open) .header-browse-fonts,
body.fontzin-site .site-header.site-header--overlay .header-browse-fonts,
body.fontzin-site .site-header .header-browse-fonts {
  background: var(--fz-palette-accent) ;
  border-color: var(--fz-palette-accent) ;
  color: var(--fz-palette-paper) ;
}

/* 7.0.8: all five requested hero surfaces share ONE geometry token.
 * Loaded after route + Core CSS; cannot be re-expanded by old 100svh mobile rules.
 * The min-height is a minimum, so text-heavy hero content can still grow. */
body.fontzin-site :is(.home-post-hero,.home-product-hero,.home-hero,.header-full,.product-hero) {
  min-height: clamp(500px, 45vh, 650px);
  height: auto;
  max-height: none;
}
/* Violet links on paper; orange accent on hover is darkened for 4.5:1 readability. */
body.fontzin-site :is(.entry-content,.page-content) a:not([class]),
body.fontzin-site .footer a:not([class]) {
  color: var(--fz-palette-accent);
  text-decoration-color: color-mix(in srgb,var(--fz-palette-accent) 45%,transparent);
  text-underline-offset: .18em;
}
body.fontzin-site :is(.entry-content,.page-content) a:not([class]):hover,
body.fontzin-site .footer a:not([class]):hover {
  color: color-mix(in srgb,var(--fz-palette-orange) 72%,var(--fz-palette-ink));
  text-decoration-color: currentColor;
}
/* Distinct secondary action: logo-orange with navy labels, not low-contrast white. */
body.fontzin-site :is(.home-hero__actions .btn-secondary,.home-hero__actions .btn--secondary),
body.fontzin-site :is(.home-hero__actions .btn-secondary,.home-hero__actions .btn--secondary):hover {
  background: var(--fz-palette-orange) ;
  border-color: var(--fz-palette-orange) ;
  color: var(--fz-palette-ink) ;
}
body.fontzin-site :is(.home-hero__actions .btn-secondary,.home-hero__actions .btn--secondary):hover {
  background: color-mix(in srgb,var(--fz-palette-orange) 85%,var(--fz-palette-paper)) ;
}
/* The orange badge is not used as a text-only status indicator. */
body.fontzin-site :is(.product-access-badge,.product-update-badge,.home-product-hero__badges > *, .home-hero__tags > *) {
  background: color-mix(in srgb,var(--fz-palette-orange) 13%,var(--fz-palette-paper));
  border-color: color-mix(in srgb,var(--fz-palette-orange) 44%,var(--fz-palette-paper));
  color: var(--fz-palette-ink);
}
body.fontzin-site .site-header .primary-nav .menu a:hover,
body.fontzin-site .site-header .primary-nav .menu .current-menu-item > a {
  color: var(--fz-palette-accent);
  background: color-mix(in srgb,var(--fz-palette-accent) 7%,var(--fz-palette-paper));
}

@media(max-width:640px) {
  /* On mobile, position hero content so long translated text can increase height. */
  body.fontzin-site .home-hero__inner {
    padding-block:90px 46px;
  }
  body.fontzin-site .home-post-hero__content,
  body.fontzin-site .home-product-hero__content {
    max-width: calc(100% - 28px);
  }
}

/* Real home fallback CTA markup uses plain anchors, not .btn classes. */
body.fontzin-site .home-hero__actions > a {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:var(--fz-space-px-10, 10px) var(--fz-space-px-18, 18px);
  border:1px solid var(--fz-palette-accent);
  border-radius:10px;
  background:var(--fz-palette-accent) ;
  color:var(--fz-palette-paper) ;
  font-size:14px;
  font-weight:700;
  line-height:1.25;
  text-decoration:none;
}
body.fontzin-site .home-hero__actions > a:hover {
  background:color-mix(in srgb,var(--fz-palette-accent) 85%,var(--fz-palette-ink)) ;
}
body.fontzin-site .home-hero__actions > a:nth-child(even),
body.fontzin-site .home-hero__actions > a:nth-child(even):hover {
  background:var(--fz-palette-orange) ;
  border-color:var(--fz-palette-orange) ;
  color:var(--fz-palette-ink) ;
}
body.fontzin-site .home-hero__actions > a:nth-child(even):hover {
  background:color-mix(in srgb,var(--fz-palette-orange) 84%,var(--fz-palette-paper)) ;
}

/* END palette-light.css */

/* START layout-refine.css */
/* FontZin 7.0.10 — Compact public spacing/flatness and multi-level WordPress navigation.
 * Loaded AFTER 7.0.8 palette; four original color primitives unchanged.
 * Avoids Core application controls' functional styles and admin UI.
 */
:root {
  --fz-layout-compact: 10px;
  --fz-layout-gap: 16px;
  --fz-layout-section: 20px;
  --fz-layout-column: 20px;
  --fz-layout-reading: 1.65;
}

/* Flat cards: distinct media and type rhythm rather than stacked boxes/shadows. */
body.fontzin-site :is(.product-item,.grid-item,.related-post-item) {
  border: 1px solid var(--fz-border);
  border-radius: 10px;
  box-shadow: none;
  transform: none;
  overflow: hidden;
}
body.fontzin-site :is(.product-item,.grid-item,.related-post-item):hover {
  border-color: var(--fz-border-strong);
  box-shadow: none;
  transform: none;
}
body.fontzin-site :is(.product-header,.grid-item-info) { padding:var(--fz-space-4, 16px) var(--fz-space-4, 16px) 0; }
body.fontzin-site .grid-item-info { padding-bottom:var(--fz-space-4, 16px); }
body.fontzin-site :is(.grid-item .post-title,.product-item .product-title) {
  margin:0 0 var(--fz-space-px-10, 10px);
  line-height: 1.48;
  letter-spacing: -.01em;
}
body.fontzin-site .grid-item .post-excerpt { margin-top:var(--fz-space-px-10, 10px); line-height: 1.65; }
body.fontzin-site .product-item .product-meta { padding:var(--fz-space-3, 12px) var(--fz-space-4, 16px) var(--fz-space-4, 16px); gap:var(--fz-space-px-10, 10px); }
body.fontzin-site :is(.grid-container,.post-grid-container,.home-product-card-grid,.related-posts-grid) {
  column-gap:var(--fz-layout-gap);
  row-gap:var(--fz-space-px-20, 20px);
}
body.fontzin-site :is(.home-products-section,.home-posts-section) { padding-block:var(--fz-layout-section); }
body.fontzin-site :is(.home-products-section,.home-posts-section) :is(h2,.section-title) { margin-bottom:var(--fz-layout-gap); }

/* Editorial content: headings need breathing room below and paragraph flow above/below. */
body.fontzin-site :is(.entry-content,.content,.category-details,.page-content) {
  line-height: var(--fz-layout-reading);
}
body.fontzin-site :is(.entry-content,.content,.category-details,.page-content) :is(h2,h3,h4) {
  line-height: 1.3;
  letter-spacing: -.02em;
  margin-block:var(--fz-space-px-20, 20px) var(--fz-space-3, 12px);
}
body.fontzin-site :is(.entry-content,.content,.category-details,.page-content) h2 { margin-block-start:var(--fz-space-px-20, 20px); margin-block-end:var(--fz-space-3, 12px); }
body.fontzin-site :is(.entry-content,.content,.category-details,.page-content) :is(p,ul,ol,blockquote,pre,table,figure) { margin-block:0 var(--fz-space-3, 12px); }
body.fontzin-site :is(.entry-content,.content,.category-details,.page-content) :is(p,ul,ol,blockquote,pre,table,figure) + :is(p,ul,ol,blockquote,pre,table,figure) { margin-block-start:var(--fz-space-3, 12px); }
body.fontzin-site :is(.entry-content,.content,.category-details,.page-content) > :first-child { margin-block-start:0; }
body.fontzin-site :is(.entry-content,.content,.category-details,.page-content) > :last-child { margin-block-end:0; }
body.fontzin-site :is(.entry-content,.content,.category-details,.page-content) li + li { margin-top:var(--fz-space-px-10, 10px); }

/* Single article: spacing between hero and copy and between BOTH sidebar widgets. */
body.fontzin-site .post-content-container {
  gap:var(--fz-layout-column);
  margin-top:var(--fz-space-px-20, 20px);
  margin-bottom:var(--fz-space-px-20, 20px);
  grid-template-columns: minmax(0, 1.65fr) minmax(280px, 1fr);
}
body.fontzin-site .post-content-container > .sidebar {
  display: flex;
  flex-direction: column;
  align-self: start;
  gap:var(--fz-space-4, 16px);
}
body.fontzin-site .post-content-container > .sidebar > * { margin-block:0; }
body.fontzin-site .single .post-meta-info,
body.fontzin-site .post-content-container .post-meta-info {
  padding:var(--fz-space-4, 16px);
  border: 1px solid var(--fz-border);
  border-radius: 10px;
  box-shadow: none;
}
body.fontzin-site .sidebar .related-posts {
  position: static;
  margin:0;
  padding:var(--fz-space-4, 16px) 0 0;
  border: 0;
  border-top: 1px solid var(--fz-border);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
body.fontzin-site .sidebar .related-posts h2 { margin:0 0 var(--fz-space-3, 12px); }
body.fontzin-site .sidebar .related-posts .post-title { margin:var(--fz-space-px-10, 10px) 0 var(--fz-space-3, 12px); line-height: 1.5; }
body.fontzin-site .header-full-content .post-title { margin:var(--fz-space-3, 12px) 0 var(--fz-space-4, 16px); }
body.fontzin-site .header-full-content :is(.post-meta,.description,.page-description) { margin-top:var(--fz-space-px-14, 14px); }

/* Buttons, forms and neutral sections: retain brand and accessible focus rings. */
body.fontzin-site :is(.entry-content,.page-content,.content) :is(input,textarea,select) { margin-bottom:var(--fz-space-px-14, 14px); }
body.fontzin-site :is(.comments-area,.product-reviews-inner) { margin-block:var(--fz-layout-section); }
body.fontzin-site .comment-list .comment-body { margin-block:var(--fz-space-4, 16px); padding:var(--fz-space-4, 16px); box-shadow: none; }
body.fontzin-site :is(.product-gallery,.single-product-entry) { box-shadow: none; }

/* Core-controlled public sections: spacious without altering inputs, jobs or gates. */











/* Navigation parent links remain real links; separate toggle controls submenu. */
body.fontzin-site .primary-nav .menu li { position: relative; }
body.fontzin-site .primary-nav .menu > li.menu-item-has-children,
body.fontzin-site .primary-nav .menu > li:has(> .sub-menu) { display: flex; align-items: center; }
body.fontzin-site .primary-nav .menu li > .sub-menu {
  display: block;
  position: absolute;
  top: calc(100% - 1px);
  left: 0;
  z-index: 120;
  width: max-content;
  min-width: 210px;
  max-width: min(340px, 80vw);
  margin:0;
  padding:var(--fz-space-2, 8px);
  border: 1px solid var(--fz-border);
  border-radius: 10px;
  background: var(--fz-palette-paper);
  color: var(--fz-palette-ink);
  box-shadow: 0 10px 26px color-mix(in srgb,var(--fz-palette-ink) 12%,transparent);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(4px);
  transition: opacity 160ms ease,transform 160ms ease,visibility 160ms;
}
body.fontzin-site .primary-nav .menu li > .sub-menu li { display: flex; align-items: center; min-width: 0; }
body.fontzin-site .primary-nav .menu li > .sub-menu a {
  display: block;
  flex: 1;
  min-width: 0;
  padding:var(--fz-space-3, 12px) var(--fz-space-px-10, 10px);
  border-radius: 6px;
  white-space: normal;
  line-height: 1.45;
}
body.fontzin-site .primary-nav .menu li > .sub-menu .sub-menu { left: calc(100% - 2px); top: -8px; }
body.fontzin-site .primary-nav .menu > li:last-child > .sub-menu,
body.fontzin-site .primary-nav .menu > li:nth-last-child(2) > .sub-menu { left: auto; right: 0; }
body.fontzin-site .primary-nav .menu > li:last-child > .sub-menu .sub-menu,
body.fontzin-site .primary-nav .menu > li:nth-last-child(2) > .sub-menu .sub-menu { left: auto; right: calc(100% - 2px); }
body.fontzin-site .primary-nav .menu li.is-submenu-open > .sub-menu,
body.fontzin-site .primary-nav .menu li:hover:not(.fontzin-submenu-force-closed) > .sub-menu,
body.fontzin-site .primary-nav:not(.fontzin-submenus-ready) .menu li:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
body.fontzin-site .fontzin-submenu-toggle {
  display: inline-grid;
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  place-items: center;
  padding:5px;
  color: var(--fz-palette-ink);
  background: transparent;
  border: 0;
  border-radius: 6px;
  cursor: pointer;
}
body.fontzin-site .fontzin-submenu-toggle svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; transition: transform 160ms ease; }
body.fontzin-site .fontzin-submenu-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
body.fontzin-site .fontzin-submenu-toggle:is(:hover,:focus-visible) { color: var(--fz-palette-accent); background: var(--fz-bg-soft); }
body.fontzin-site .fontzin-submenu-toggle:focus-visible { outline: 2px solid var(--fz-palette-accent); outline-offset: 2px; }
body.fontzin-site .primary-nav > .menu > li > .fontzin-submenu-toggle { margin-left:-10px; margin-right:var(--fz-space-1, 4px); }

/* Mobile off-canvas: nested WP menu levels are visible without JS, accordion with JS. */
body.fontzin-site .side-menu li { position: relative; }
body.fontzin-site .side-menu li > a { padding-right:46px; }
body.fontzin-site .side-menu li > .fontzin-submenu-toggle {
  position: absolute;
  top: 4px;
  right: 2px;
  width: 36px;
  height: 36px;
}
body.fontzin-site .side-menu ul.sub-menu { list-style: none; margin:0 0 var(--fz-space-px-10, 10px); padding:0 0 0 var(--fz-space-px-18, 18px); border-left: 1px solid var(--fz-border); }
body.fontzin-site .side-menu.fontzin-submenus-ready li > ul.sub-menu { display: none; }
body.fontzin-site .side-menu.fontzin-submenus-ready li.is-submenu-open > ul.sub-menu { display: block; }
body.fontzin-site .side-menu ul.sub-menu a { padding-block:var(--fz-space-3, 12px); font-weight: 400; }

@media (max-width: 860px) {
  body.fontzin-site .post-content-container { grid-template-columns: minmax(0,1fr); gap:var(--fz-space-px-20, 20px); }
  body.fontzin-site .post-content-container > .sidebar { gap:var(--fz-space-4, 16px); }
  body.fontzin-site .primary-nav { display: none; }
  body.fontzin-site :is(.product-header,.grid-item-info) { padding:var(--fz-space-4, 16px) var(--fz-space-4, 16px) 0; }
  body.fontzin-site .grid-item-info { padding-bottom:var(--fz-space-4, 16px); }
}
@media (max-width: 480px) {
  body.fontzin-site .post-content-container { margin-top:var(--fz-space-4, 16px); margin-bottom:var(--fz-space-px-20, 20px); }
  body.fontzin-site .post-content-container .post-meta-info { padding:var(--fz-space-4, 16px); }
  body.fontzin-site .sidebar .related-posts { padding-top:var(--fz-space-4, 16px); }
  body.fontzin-site :is(.entry-content,.content,.category-details,.page-content) h2 { margin-top:var(--fz-space-px-20, 20px); margin-bottom:var(--fz-space-3, 12px); }
  body.fontzin-site :is(.entry-content,.content,.category-details,.page-content) :is(p,ul,ol,blockquote,pre,table,figure) { margin-bottom:var(--fz-space-3, 12px); }
}
@media (prefers-reduced-motion: reduce) {
  body.fontzin-site .primary-nav .menu li > .sub-menu,
  body.fontzin-site .fontzin-submenu-toggle svg { transition: none; }
}


/* 7.1.37 — Filter bar spacing and action parity. */





@media(max-width:900px){}
@media(max-width:580px){}

/* END layout-refine.css */

/* START hero-contrast.css */
/* FontZin 7.0.11 — Hero photo clarity, inspired by the original 6.x dark heroes.
 * Frontend hero regions ONLY: the rest of the public site remains single-light
 * Paper / Ink / Violet / Orange. Loaded after the public palette and layout.
 * Image opacity/filter are neutral; only a soft, spatially limited DARK veil
 * sits above photos where foreground text needs contrast.
 */
:root {
  --fz-hero-bg: var(--fz-palette-ink);
  --fz-hero-fg: var(--fz-palette-paper);
}

/* Restore the contrast of the 6.x hero, without reverting the site's light UI. */
body.fontzin-site :is(
  .home-hero,.header-full,.product-hero,.home-post-hero,
  .home-product-hero,.site-context-hero
) {
  background-color: var(--fz-hero-bg) ;
  color: var(--fz-hero-fg) ;
}
body.fontzin-site :is(
  .home-product-hero__media,.home-product-hero__placeholder,
  .home-post-hero__placeholder
) { background-color: var(--fz-hero-bg) ; }

/* Remove the white 74–98% opacity wash introduced by 7.0.7. Keep the
 * dark veil primarily behind left/bottom copy; leave the right image visible.
 * Do not use blur, grayscale, backdrop filters or opacity on the source photo.
 */
body.fontzin-site :is(
  .hero-section-overlay,.home-product-hero__shade,
  .home-post-hero__shade,.site-context-hero__shade
) {
  background:
    linear-gradient(90deg,
      color-mix(in srgb,var(--fz-hero-bg) 64%,transparent) 0%,
      color-mix(in srgb,var(--fz-hero-bg) 32%,transparent) 44%,
      color-mix(in srgb,var(--fz-hero-bg) 8%,transparent) 75%,
      transparent 100%),
    linear-gradient(180deg,
      transparent 25%,
      color-mix(in srgb,var(--fz-hero-bg) 4%,transparent) 48%,
      color-mix(in srgb,var(--fz-hero-bg) 56%,transparent) 100%) ;
  -webkit-backdrop-filter: none ;
  backdrop-filter: none ;
  filter: none ;
}
body.fontzin-site :is(
  .home-product-hero__image,.home-post-hero__image,
  .header-full-image,.product-hero__image
) {
  opacity: 1 ;
  filter: none ;
  mix-blend-mode: normal ;
  -webkit-backdrop-filter: none ;
  backdrop-filter: none ;
}

/* 6.x-style white heading/copy on dark hero — override the palette's
 * high-specificity Ink text overrides, including linked slideshow titles. */
body.fontzin-site :is(
  .home-hero__inner,.header-full-content,.product-hero__inner,
  .home-product-hero__content,.home-post-hero__content,
  .site-context-hero__content,
  .home-hero h1,.header-full h1,.header-full .post-title,.product-hero-title,
  .home-product-hero__title,.home-product-hero__title a,
  .home-post-hero__content h2,.home-post-hero__content h2 a,
  .site-context-hero__title
) { color: var(--fz-hero-fg) ; }
body.fontzin-site :is(
  .home-hero__eyebrow,.hero-kicker,.product-hero-eyebrow,.home-hero__lead,
  .header-full .description,.header-full .page-description,
  .header-full-content p,.product-hero-excerpt,
  .header-full .rank-math-breadcrumb,.header-full .rank-math-breadcrumb a,
  .header-full .post-meta,
  .home-product-hero__eyebrow,.home-product-hero__excerpt,.home-product-hero__meta,
  .home-post-hero__eyebrow,.home-post-hero__content p,
  .site-context-hero__excerpt
) {
  color: color-mix(in srgb,var(--fz-hero-fg) 88%,transparent) ;
}

/* Readable status pills over photos; reuse two of the existing four colors. */
body.fontzin-site :is(
  .product-hero-meta__item,.home-product-hero__badges > *,
  .home-hero__tags > *
) {
  background: color-mix(in srgb,var(--fz-hero-fg) 94%,transparent) ;
  border-color: color-mix(in srgb,var(--fz-hero-fg) 48%,transparent) ;
  color: var(--fz-hero-bg) ;
}

/* Keep the violet/orange CTAs and the universal five-hero size contract.
 * No change to crop, WordPress thumbnails, menus, spacing or behaviors. */
body.fontzin-site :is(
  .home-post-hero,.home-product-hero,.home-hero,.header-full,.product-hero
) { min-height: clamp(500px,45vh,650px); }

/* END hero-contrast.css */

/* START accessibility.css */
/* 7.0.16 keyboard-only affordances; appended to existing visual bundle (no extra request). */
body.fontzin-site :is(.skip-link,.screen-reader-text):focus-visible {
  z-index: 100000; outline: 3px solid var(--fz-palette-accent); outline-offset: 3px;
}
body.fontzin-site :is(.primary-nav,.side-menu) a:focus-visible,
body.fontzin-site :is(.primary-nav,.side-menu) button:focus-visible {
  outline: 3px solid var(--fz-palette-accent); outline-offset: 3px;
}
body.fontzin-site :is(.home-hero,.home-post-hero,.home-product-hero,.product-hero,.header-full) a:focus-visible {
  outline: 3px solid var(--fz-palette-paper); outline-offset: 3px;
}
@media (forced-colors: active) {
  body.fontzin-site :is(button,a,input,select,textarea):focus-visible { outline: 3px solid Highlight; outline-offset: 3px; }
}

/* END accessibility.css */

/* START public-visual-extras.css */
/* Additional authored public appearance rules after 7.0.16; Theme-only. */
/* 7.1.9: Donate card/hero CTAs and customer-owned-email assistance. */
.fontzin-hero-donate{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;font-weight:700;border-radius:7px;padding:var(--fz-space-px-10, 10px) var(--fz-space-4, 16px);min-height:40px;background:#171717;color:#fff;max-width:100%;margin-top:var(--fz-space-px-14, 14px);width:fit-content}
.fontzin-hero-donate:hover{background:#333;color:#fff}


/* FontZin 7.1.27: canonical heading font sizes. Append last in the public
   appearance bundle to supersede route sheets and Core feature CSS, including
   legacy !important receipt/popup rules. Scope to FontZin, not third-party admin.
   Heading tags use one semantic size per level, independent of route. */
html body.fontzin-site h1 { font-size: var(--fz-heading-1) ; line-height: 1.25; }
html body.fontzin-site h2 { font-size: var(--fz-heading-2) ; line-height: 1.3; }
html body.fontzin-site h3 { font-size: var(--fz-heading-3) ; line-height: 1.3; }
html body.fontzin-site h4 { font-size: var(--fz-heading-4) ; line-height: 1.35; }
html body.fontzin-site h5 { font-size: var(--fz-heading-5) ; line-height: 1.4; }
html body.fontzin-site h6 { font-size: var(--fz-heading-6) ; line-height: 1.4; }
/* Keep long translated receipt labels from creating horizontal overflow. */
html body.fontzin-site :is(.fontzin-order-receipt-page,.fontzin-donation-receipt,.fontzin-confirmation-shell) :is(h1,h2,h3,h4,h5,h6) { overflow-wrap: anywhere; }


/* 7.1.37 — Filter bar spacing and action parity. */





@media(max-width:900px){}
@media(max-width:580px){}


/* FontZin 7.4.2: badge collision guard for compact product/post cards.
 * Two-tier positioning avoids overlaps: Save left, VIP/FREE right, Update below.
 * Home Hero badges are inline and intentionally unaffected. */
body.fontzin-site :is(.product-item,.grid-item) { position: relative; }
body.fontzin-site .product-item .product-thumbnail { position: relative; }
body.fontzin-site :is(.product-item,.grid-item) > .fontzin-save-button.fontzin-badge {
  box-sizing: border-box;
  max-width: calc(50% - 16px);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
body.fontzin-site .product-item .product-thumbnail > .product-access-badge {
  position: absolute;
  top: 10px;
  right: 10px;
  left: auto;
  box-sizing: border-box;
  max-width: calc(50% - 16px);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
body.fontzin-site .product-item .product-thumbnail > .product-update-badge {
  position: absolute;
  top: 40px;
  right: 10px;
  left: auto;
  bottom: auto;
  max-width: 22px;
  transform: none;
}
body.fontzin-site .grid-item .post-meta {
  position: absolute;
  z-index: 4;
  top: 10px;
  right: 10px;
  left: 10px;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  margin:0;
  pointer-events: none;
}
body.fontzin-site .grid-item .post-meta > .badge { pointer-events: auto; }
body.fontzin-site .grid-item .post-meta > .badge:not(.new-update) {
  box-sizing: border-box;
  max-width: calc(50% - 16px);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
body.fontzin-site .grid-item .post-meta > .badge.new-update {
  position: absolute;
  top: 30px;
  right: 0;
  left: auto;
  bottom: auto;
  max-width: 22px;
  transform: none;
}


/* 7.4.3: Shortcode-only card image grids. Keep Home and archive spacing unchanged. */
body.fontzin-site .fontzin-shortcode-grid > .product-grid,
body.fontzin-site .fontzin-shortcode-grid > .posts-container {
  gap:var(--fz-space-px-10, 10px);
  row-gap:var(--fz-space-px-10, 10px);
  column-gap:var(--fz-space-px-10, 10px);
}
body.fontzin-site .fontzin-shortcode-grid :is(.product-thumbnail,.post-thumbnail) {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  overflow: hidden;
}
body.fontzin-site .fontzin-shortcode-grid :is(.product-thumbnail,.post-thumbnail) > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
/* 8.0.26: consistent cart icon and surface on hero and single product. */
body.fontzin-site .home-product-hero__actions :is(button.add-to-cart-button,button.add-to-cart-button-one),
body.fontzin-site .single-product-entry .product-actions :is(button.add-to-cart-button,button.add-to-cart-button-one) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap:var(--fz-space-2, 8px);
  border-radius: 11px;
  box-shadow: 0 2px 7px rgba(15,23,42,.12);
  transition: box-shadow .16s ease, transform .16s ease;
}
body.fontzin-site .home-product-hero__actions :is(button.add-to-cart-button,button.add-to-cart-button-one):hover:not(:disabled),
body.fontzin-site .single-product-entry .product-actions :is(button.add-to-cart-button,button.add-to-cart-button-one):hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(15,23,42,.16);
}
body.fontzin-site :is(.home-product-hero__actions,.single-product-entry .product-actions) :is(button.add-to-cart-button,button.add-to-cart-button-one):focus-visible {
  outline: 2px solid var(--fz-focus-color,#703fff);
  outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
  body.fontzin-site :is(.home-product-hero__actions,.single-product-entry .product-actions) :is(button.add-to-cart-button,button.add-to-cart-button-one) {
    transition: none;
    transform: none;
  }
}



/* Core-first CSS QA: theme hero badges retain foreground/background by scoped specificity. */
body.fontzin-site .home-product-hero .home-product-hero__badges > .product-access-badge,
body.fontzin-site .home-product-hero .home-product-hero__badges > .product-update-badge {
  background: color-mix(in srgb,var(--fz-hero-fg) 94%,transparent);
  border-color: color-mix(in srgb,var(--fz-hero-fg) 48%,transparent);
  color: var(--fz-hero-bg);
}

/* END public-visual-extras.css */
