/* =============================================================================
 * Zoonum Theme — main stylesheet
 *
 * All values driven by CSS variables defined in inc/dynamic-css.php so every
 * color, font, container width, and radius can be edited from the Customizer.
 * Fallback values below are only used if the dynamic <style> block is missing.
 * ============================================================================= */

/* -----------------------------------------------------------------------------
 * RESET + BASE
 * --------------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; scroll-behavior: smooth; }
/* Guard against horizontal scroll from full-bleed (100vw) sections.
   `clip` (not `hidden`) avoids creating a scroll container, so it does NOT
   break the sticky header or sticky cart totals. */
body { overflow-x: clip; }
body {
	margin: 0;
	font-family: var(--z-font-body, 'Inter', system-ui, sans-serif);
	font-size: var(--z-font-size-base, 16px);
	line-height: 1.6;
	color: var(--z-text, #334155);
	background: var(--z-bg, #ffffff);
}
img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: var(--z-primary); text-decoration: none; transition: color .15s ease; }
a:hover { color: var(--z-primary-hover); }
button { cursor: pointer; border: 0; background: none; font: inherit; color: inherit; }
input, select, textarea { font: inherit; color: inherit; }

h1, h2, h3, h4, h5, h6 {
	font-family: var(--z-font-heading, 'Inter', system-ui, sans-serif);
	font-weight: var(--z-heading-weight, 700);
	color: var(--z-secondary, #0f172a);
	line-height: 1.2;
	margin: 0 0 .6em;
	letter-spacing: -0.01em;
}
h1 { font-size: clamp(2rem, 4vw, 3.25rem); }
h2 { font-size: clamp(1.75rem, 3vw, 2.5rem); }
h3 { font-size: 1.5rem; }
h4 { font-size: 1.25rem; }
p { margin: 0 0 1em; }

.screen-reader-text {
	position: absolute !important;
	clip: rect(1px, 1px, 1px, 1px);
	height: 1px; width: 1px; overflow: hidden; word-wrap: normal !important;
}
.skip-link {
	position: absolute; left: -999px; top: -999px; padding: 12px 16px;
	background: var(--z-secondary); color: #fff; z-index: 9999;
}
.skip-link:focus { left: 16px; top: 16px; }

/* -----------------------------------------------------------------------------
 * LAYOUT — container, section, columns
 * --------------------------------------------------------------------------- */
.zoonum-container {
	max-width: var(--z-container, 1200px);
	margin: 0 auto;
	padding: 0 24px;
	width: 100%;
}
.zoonum-container--narrow { max-width: 800px; }

.zoonum-main { min-height: 50vh; }

.zoonum-section { padding: var(--z-section-py, 80px) 0; }
.zoonum-section--bg-bg        { background: var(--z-bg); }
.zoonum-section--bg-surface   { background: var(--z-surface); }
.zoonum-section--bg-primary   { background: var(--z-primary); color: #fff; }
.zoonum-section--bg-primary h1, .zoonum-section--bg-primary h2, .zoonum-section--bg-primary h3 { color: #fff; }
.zoonum-section--bg-secondary { background: var(--z-secondary); color: #e2e8f0; }
.zoonum-section--bg-secondary h1, .zoonum-section--bg-secondary h2, .zoonum-section--bg-secondary h3 { color: #fff; }

.zoonum-section-head { text-align: center; max-width: 720px; margin: 0 auto 56px; }
.zoonum-section-head h2 { margin: 0 0 12px; }
.zoonum-section-head p { color: var(--z-muted); font-size: 1.1rem; margin: 0; }
.zoonum-section-foot { text-align: center; margin-top: 48px; }

.zoonum-eyebrow {
	display: inline-block;
	font-size: .8rem;
	font-weight: 600;
	letter-spacing: .15em;
	text-transform: uppercase;
	color: var(--z-primary);
	background: rgba(var(--z-primary-rgb), .08);
	padding: 6px 14px;
	border-radius: 999px;
	margin-bottom: 18px;
}

.zoonum-lead { font-size: 1.15rem; color: var(--z-muted); }

/* Multi-column grid utility — used by .zoonum-cols-N */
.zoonum-cols-2, .zoonum-cols-3, .zoonum-cols-4, .zoonum-cols-5, .zoonum-cols-6 { display: grid; gap: 28px; }
.zoonum-cols-2 { grid-template-columns: repeat(2, 1fr); }
.zoonum-cols-3 { grid-template-columns: repeat(3, 1fr); }
.zoonum-cols-4 { grid-template-columns: repeat(4, 1fr); }
.zoonum-cols-5 { grid-template-columns: repeat(5, 1fr); }
.zoonum-cols-6 { grid-template-columns: repeat(6, 1fr); }
.zoonum-columns { margin: 32px 0; }

/* -----------------------------------------------------------------------------
 * BUTTONS
 * --------------------------------------------------------------------------- */
.zoonum-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 14px 28px;
	font-weight: 600;
	font-size: 1rem;
	border-radius: var(--z-radius, 12px);
	transition: all .15s ease;
	cursor: pointer;
	text-align: center;
	line-height: 1.1;
	border: 2px solid transparent;
	white-space: nowrap;
}
.zoonum-btn--sm { padding: 9px 18px; font-size: .9rem; }
.zoonum-btn--lg { padding: 18px 36px; font-size: 1.1rem; }
.zoonum-btn--primary {
	background: var(--z-primary);
	color: #fff;
}
.zoonum-btn--primary:hover { background: var(--z-primary-hover); color: #fff; transform: translateY(-1px); box-shadow: 0 6px 18px rgba(var(--z-primary-rgb), .25); }
.zoonum-btn--secondary {
	background: var(--z-secondary);
	color: #fff;
}
.zoonum-btn--secondary:hover { background: #1e293b; color: #fff; }
.zoonum-btn--ghost {
	background: transparent;
	color: var(--z-secondary);
	border-color: var(--z-border);
}
.zoonum-btn--ghost:hover { background: var(--z-surface); border-color: var(--z-primary); color: var(--z-primary); }
.zoonum-btn--white {
	background: #fff;
	color: var(--z-primary);
}
.zoonum-btn--white:hover { background: var(--z-surface); color: var(--z-primary); }

/* -----------------------------------------------------------------------------
 * ANNOUNCEMENT BAR
 * --------------------------------------------------------------------------- */
.zoonum-announcement {
	background: var(--z-secondary);
	color: #fff;
	padding: 9px 0;
	font-size: .9rem;
	text-align: center;
}
.zoonum-announcement a { color: #fff; text-decoration: underline; }

/* -----------------------------------------------------------------------------
 * HEADER
 * --------------------------------------------------------------------------- */
.zoonum-header {
	background: var(--z-header-bg, var(--z-bg));
	color: var(--z-header-text, var(--z-secondary));
	border-bottom: 1px solid var(--z-border);
	position: relative;
	z-index: 100;
}
.zoonum-header--sticky { position: sticky; top: 0; }

/* 3-zone layout: left / center / right share the row equally */
.zoonum-header__inner {
	display: flex;
	align-items: center;
	gap: 24px;
	padding: 12px 24px;
	min-height: var(--z-header-height, 72px);
}
.zoonum-header__zone {
	display: flex;
	align-items: center;
	gap: 16px;
	min-height: 40px; /* keeps empty zones from collapsing height */
}
.zoonum-header__zone--left   { flex: 1 1 0; justify-content: flex-start; }
.zoonum-header__zone--center { flex: 0 1 auto; justify-content: center; }
.zoonum-header__zone--right  { flex: 1 1 0; justify-content: flex-end; }

.zoonum-header__logo { flex-shrink: 0; }
.zoonum-header__logo img { height: var(--z-logo-height, 40px); max-height: none; width: auto; }
.zoonum-site-title { font-family: var(--z-font-heading); font-size: 1.4rem; font-weight: 700; color: var(--z-header-text, var(--z-secondary)); }

.zoonum-header__nav {}
.zoonum-menu { list-style: none; margin: 0; padding: 0; display: flex; gap: 28px; }
.zoonum-menu li { position: relative; }
.zoonum-menu a {
	color: var(--z-header-text, var(--z-secondary));
	font-weight: 500;
	padding: 8px 0;
	display: block;
	font-size: .98rem;
}
.zoonum-menu a:hover { color: var(--z-primary); }
.zoonum-menu .sub-menu {
	position: absolute;
	top: 100%; left: 0;
	background: #fff;
	color: var(--z-text);
	border: 1px solid var(--z-border);
	border-radius: var(--z-radius-sm);
	padding: 8px;
	min-width: 200px;
	box-shadow: 0 10px 30px rgba(15,23,42,.08);
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: all .15s ease;
	list-style: none;
}
.zoonum-menu .sub-menu a { color: var(--z-text); }
.zoonum-menu li:hover > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.zoonum-menu .sub-menu a { padding: 8px 12px; border-radius: var(--z-radius-sm); }
.zoonum-menu .sub-menu a:hover { background: var(--z-surface); }

.zoonum-header__icon {
	width: 40px; height: 40px;
	display: inline-flex; align-items: center; justify-content: center;
	border-radius: var(--z-radius-sm);
	color: var(--z-header-text, var(--z-secondary));
	position: relative;
}
.zoonum-header__icon:hover { background: rgba(var(--z-primary-rgb), .08); color: var(--z-primary); }
.zoonum-header__cart .zoonum-cart-count {
	position: absolute;
	top: 2px; right: 2px;
	background: var(--z-primary);
	color: #fff;
	font-size: .7rem;
	font-weight: 700;
	min-width: 18px; height: 18px;
	border-radius: 999px;
	display: inline-flex; align-items: center; justify-content: center;
	padding: 0 5px;
	line-height: 1;
}

/* Hamburger — base styles; visibility on desktop set below, mobile in responsive.css */
.zoonum-header__hamburger {
	width: 40px; height: 40px;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 4px;
	background: transparent;
	border: 0;
	cursor: pointer;
	color: var(--z-header-text, var(--z-secondary));
}
.zoonum-header__hamburger span {
	display: block; width: 22px; height: 2px; background: currentColor; border-radius: 2px; transition: all .2s ease;
}
.zoonum-header__hamburger[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.zoonum-header__hamburger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.zoonum-header__hamburger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
/* The mobile-only hamburger sits outside the zones and only appears <=768px */
.zoonum-header__hamburger--mobile-only { display: none; }

.zoonum-header__search { background: var(--z-surface); padding: 20px 0; border-bottom: 1px solid var(--z-border); }
.zoonum-header__mobile { background: #fff; color: var(--z-text); border-top: 1px solid var(--z-border); padding: 16px 0; }
.zoonum-header__mobile .zoonum-menu { flex-direction: column; gap: 0; }
.zoonum-header__mobile .zoonum-menu a { padding: 12px 0; border-bottom: 1px solid var(--z-border); color: var(--z-text); }
.zoonum-header__mobile .zoonum-menu .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding-left: 16px; }

/* -----------------------------------------------------------------------------
 * SEARCH FORM
 * --------------------------------------------------------------------------- */
.zoonum-search-form { display: flex; gap: 8px; max-width: 640px; margin: 0 auto; }
.zoonum-search-form__input {
	flex: 1;
	padding: 12px 18px;
	border: 2px solid var(--z-border);
	border-radius: var(--z-radius);
	background: #fff;
	font-size: 1rem;
}
.zoonum-search-form__input:focus { outline: none; border-color: var(--z-primary); }
.zoonum-search-form__submit {
	padding: 12px 24px;
	background: var(--z-primary);
	color: #fff;
	border-radius: var(--z-radius);
	font-weight: 600;
}
.zoonum-search-form__submit:hover { background: var(--z-primary-hover); }

/* -----------------------------------------------------------------------------
 * HERO
 * --------------------------------------------------------------------------- */
.zoonum-hero { padding: 88px 0 96px; background: linear-gradient(180deg, var(--z-surface) 0%, var(--z-bg) 100%); }
.zoonum-hero__grid {
	display: grid;
	grid-template-columns: 1.05fr 1fr;
	gap: 64px;
	align-items: center;
}
.zoonum-hero--reverse .zoonum-hero__grid { direction: rtl; }
.zoonum-hero--reverse .zoonum-hero__grid > * { direction: ltr; }
.zoonum-hero__title { margin: 0 0 20px; }
.zoonum-hero__subtitle { font-size: 1.15rem; color: var(--z-muted); margin: 0 0 32px; max-width: 540px; }
.zoonum-hero__buttons { display: flex; gap: 12px; flex-wrap: wrap; }
.zoonum-hero__media img { width: 100%; height: auto; display: block; }
.zoonum-hero--framed .zoonum-hero__media img {
	border-radius: var(--z-radius-lg);
	box-shadow: 0 30px 60px -20px rgba(15,23,42,.18);
}
.zoonum-hero--bare .zoonum-hero__media img {
	border-radius: 0;
	box-shadow: none;
	background: transparent;
}
.zoonum-hero__placeholder { aspect-ratio: 4/3; border-radius: var(--z-radius-lg); overflow: hidden; }
.zoonum-hero__placeholder svg { width: 100%; height: 100%; }

/* -----------------------------------------------------------------------------
 * BENEFITS — badge style (compact, default) + legacy card variant
 * --------------------------------------------------------------------------- */
.zoonum-benefits { padding: calc(var(--z-section-py) * 0.75) 0; background: var(--z-bg); }
.zoonum-benefits__grid { gap: 16px; align-items: stretch; }

/* Base benefit reset — both variants share this */
.zoonum-benefit {
	background: var(--z-surface);
	border: 1px solid var(--z-border);
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.zoonum-benefit:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 24px -8px rgba(15,23,42,.08);
	border-color: rgba(var(--z-primary-rgb), .3);
}

/* BADGE — compact, vertical icon → title → text. 5 across on desktop. */
.zoonum-benefits--badge .zoonum-benefit {
	padding: 22px 16px;
	border-radius: var(--z-radius);
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
}
.zoonum-benefits--badge .zoonum-benefit__icon {
	width: 52px; height: 52px;
	display: inline-flex; align-items: center; justify-content: center;
	background: rgba(var(--z-primary-rgb), .1);
	color: var(--z-primary);
	border-radius: 999px;
	font-size: 1.5rem;
	margin: 0 0 4px;
}
.zoonum-benefits--badge .zoonum-benefit__icon svg { width: 26px; height: 26px; }
.zoonum-benefits--badge .zoonum-benefit__title { font-size: 1rem; margin: 0; line-height: 1.3; font-weight: 600; }
.zoonum-benefits--badge .zoonum-benefit__text { font-size: .82rem; color: var(--z-muted); margin: 0; line-height: 1.5; }

/* CARD — the original padded card layout, kept for legacy/larger layouts */
.zoonum-benefits--card .zoonum-benefit { padding: 32px; border-radius: var(--z-radius-lg); }
.zoonum-benefits--card .zoonum-benefit__icon {
	width: 56px; height: 56px;
	display: inline-flex; align-items: center; justify-content: center;
	background: rgba(var(--z-primary-rgb), .1);
	color: var(--z-primary);
	border-radius: var(--z-radius);
	font-size: 1.7rem;
	margin-bottom: 18px;
}
.zoonum-benefits--card .zoonum-benefit__title { font-size: 1.2rem; margin: 0 0 8px; }
.zoonum-benefits--card .zoonum-benefit__text { color: var(--z-muted); margin: 0; line-height: 1.6; }

/* -----------------------------------------------------------------------------
 * SHOP SECTION
 * --------------------------------------------------------------------------- */
.zoonum-shop-section { padding: var(--z-section-py) 0; background: var(--z-surface); }
.zoonum-shop-grid .products { margin: 0 !important; padding: 0 !important; }

/* -----------------------------------------------------------------------------
 * FEATURES (two-column)
 * --------------------------------------------------------------------------- */
.zoonum-features { padding: var(--z-section-py) 0; background: var(--z-bg); }
.zoonum-features__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.zoonum-features__media img { border-radius: var(--z-radius-lg); box-shadow: 0 30px 60px -20px rgba(15,23,42,.15); }
.zoonum-features__placeholder { aspect-ratio: 4/3; background: linear-gradient(135deg, rgba(var(--z-primary-rgb), .12), rgba(var(--z-accent-rgb), .12)); border-radius: var(--z-radius-lg); }
.zoonum-features__list { list-style: none; margin: 32px 0 0; padding: 0; display: flex; flex-direction: column; gap: 20px; }
.zoonum-feature { display: flex; gap: 16px; align-items: flex-start; }
.zoonum-feature__check {
	flex-shrink: 0;
	width: 32px; height: 32px;
	background: rgba(var(--z-primary-rgb), .12);
	color: var(--z-primary);
	border-radius: 999px;
	display: inline-flex; align-items: center; justify-content: center;
}
.zoonum-feature strong { display: block; color: var(--z-secondary); margin-bottom: 4px; font-size: 1.05rem; }
.zoonum-feature span { color: var(--z-muted); }

/* -----------------------------------------------------------------------------
 * TESTIMONIALS
 * --------------------------------------------------------------------------- */
.zoonum-testimonials { padding: var(--z-section-py) 0; background: var(--z-surface); }
.zoonum-testimonials__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.zoonum-testimonial {
	background: var(--z-bg);
	border: 1px solid var(--z-border);
	border-radius: var(--z-radius-lg);
	padding: 32px;
	margin: 0;
}
.zoonum-testimonial__stars { color: #fbbf24; font-size: 1.1rem; margin-bottom: 12px; letter-spacing: 2px; }
.zoonum-testimonial__quote { font-size: 1.05rem; color: var(--z-secondary); margin: 0 0 20px; font-style: italic; line-height: 1.55; }
.zoonum-testimonial__author { display: flex; flex-direction: column; }
.zoonum-testimonial__author strong { color: var(--z-secondary); font-size: 1rem; }
.zoonum-testimonial__author span { color: var(--z-muted); font-size: .9rem; }

/* -----------------------------------------------------------------------------
 * CTA
 * --------------------------------------------------------------------------- */
.zoonum-cta { padding: var(--z-section-py) 0; }
.zoonum-cta__inner {
	background: linear-gradient(135deg, var(--z-primary) 0%, var(--z-accent) 100%);
	color: #fff;
	border-radius: var(--z-radius-lg);
	padding: 72px 48px;
	text-align: center;
	box-shadow: 0 30px 60px -20px rgba(var(--z-primary-rgb), .35);
	position: relative;
	overflow: hidden;
}
/* Background-image variant: strips the gradient (inline style supplies image) */
.zoonum-cta__inner.has-bg-image { background-color: transparent; background-image: none; /* inline style applies the image */ }
/* The PHP-rendered inline style sets background-image/size/position/repeat on .has-bg-image,
   so we don't repeat them here — but we want to keep the radial fallback off. */
.zoonum-cta__overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	border-radius: inherit;
}
.zoonum-cta__content { position: relative; z-index: 2; }
.zoonum-cta__inner h2 { color: #fff; margin: 0 0 16px; }
.zoonum-cta__inner p { color: rgba(255,255,255,.92); font-size: 1.15rem; max-width: 600px; margin: 0 auto 32px; }

/* -----------------------------------------------------------------------------
 * FAQ
 * --------------------------------------------------------------------------- */
.zoonum-faq { padding: var(--z-section-py) 0; }
.zoonum-faq__list { display: flex; flex-direction: column; gap: 12px; }
.zoonum-faq__item {
	background: var(--z-surface);
	border: 1px solid var(--z-border);
	border-radius: var(--z-radius);
	padding: 0;
	overflow: hidden;
}
.zoonum-faq__item summary {
	padding: 20px 24px;
	cursor: pointer;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	font-weight: 600;
	color: var(--z-secondary);
	list-style: none;
}
.zoonum-faq__item summary::-webkit-details-marker { display: none; }
.zoonum-faq__item summary span { font-size: 1.4rem; color: var(--z-primary); transition: transform .2s ease; line-height: 1; }
.zoonum-faq__item[open] summary span { transform: rotate(45deg); }
.zoonum-faq__answer { padding: 0 24px 20px; color: var(--z-muted); }

/* -----------------------------------------------------------------------------
 * DISCLAIMER + AGE VERIFY
 * --------------------------------------------------------------------------- */
.zoonum-disclaimer {
	background: rgba(251,191,36,.08);
	border: 1px solid rgba(251,191,36,.4);
	border-left: 4px solid #fbbf24;
	color: var(--z-secondary);
	padding: 16px 20px;
	border-radius: var(--z-radius-sm);
	font-size: .92rem;
	line-height: 1.55;
	margin: 24px 0;
}
.zoonum-disclaimer--inline { background: transparent; border: 0; border-left: 0; padding: 0; margin: 0; font-size: .85rem; color: var(--z-muted); }
.zoonum-disclaimer strong { color: #b45309; }

.zoonum-age-verify {
	position: fixed; inset: 0;
	background: rgba(15,23,42,.92);
	z-index: 9998;
	display: flex; align-items: center; justify-content: center;
	padding: 24px;
}
.zoonum-age-verify__inner {
	background: #fff;
	border-radius: var(--z-radius-lg);
	padding: 40px;
	max-width: 480px;
	text-align: center;
}
.zoonum-age-verify h2 { margin: 0 0 12px; }
.zoonum-age-verify p { color: var(--z-muted); margin: 0 0 24px; }

/* -----------------------------------------------------------------------------
 * PAGE / SINGLE / ARCHIVE
 * --------------------------------------------------------------------------- */
.zoonum-page, .zoonum-archive, .zoonum-single { padding: 56px 0; }
.zoonum-page__header, .zoonum-archive__header, .zoonum-single__header { margin-bottom: 32px; }
.zoonum-page__article .entry-content > *:first-child { margin-top: 0; }

.zoonum-post-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.zoonum-post-card {
	background: #fff;
	border: 1px solid var(--z-border);
	border-radius: var(--z-radius-lg);
	overflow: hidden;
	display: flex; flex-direction: column;
	transition: transform .2s ease, box-shadow .2s ease;
}
.zoonum-post-card:hover { transform: translateY(-4px); box-shadow: 0 20px 40px -10px rgba(15,23,42,.1); }
.zoonum-post-card__thumb img { aspect-ratio: 16/9; object-fit: cover; width: 100%; }
.zoonum-post-card__body { padding: 24px; }
.zoonum-post-card__title { font-size: 1.25rem; margin: 0 0 8px; }
.zoonum-post-card__title a { color: var(--z-secondary); }
.zoonum-post-card__title a:hover { color: var(--z-primary); }
.zoonum-post-meta { color: var(--z-muted); font-size: .85rem; margin: 0 0 12px; }

.zoonum-pagination { margin-top: 48px; }
.zoonum-pagination ul { list-style: none; padding: 0; margin: 0; display: flex; gap: 6px; justify-content: center; flex-wrap: wrap; }
.zoonum-pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 40px; height: 40px;
	padding: 0 14px;
	background: var(--z-surface);
	border: 1px solid var(--z-border);
	border-radius: var(--z-radius-sm);
	color: var(--z-secondary);
	font-weight: 500;
}
.zoonum-pagination .page-numbers.current,
.zoonum-pagination .page-numbers:hover { background: var(--z-primary); color: #fff; border-color: var(--z-primary); }

.zoonum-single__thumb img { border-radius: var(--z-radius-lg); margin: 0 0 32px; }
.zoonum-single__content { font-size: 1.075rem; }
.zoonum-single__content h2, .zoonum-single__content h3 { margin-top: 2em; }

/* -----------------------------------------------------------------------------
 * 404
 * --------------------------------------------------------------------------- */
.zoonum-404 { padding: 96px 0; }
.zoonum-404__inner { text-align: center; }
.zoonum-404__actions { display: flex; gap: 12px; justify-content: center; margin: 32px 0; flex-wrap: wrap; }
.zoonum-404__search { max-width: 480px; margin: 32px auto 0; }

/* -----------------------------------------------------------------------------
 * COMMENTS
 * --------------------------------------------------------------------------- */
.zoonum-comments { margin-top: 56px; padding-top: 32px; border-top: 1px solid var(--z-border); }
.zoonum-comments__list { list-style: none; padding: 0; }
.zoonum-comments .comment { padding: 20px 0; border-bottom: 1px solid var(--z-border); }
.comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"], .comment-form textarea {
	width: 100%;
	padding: 12px 14px;
	border: 2px solid var(--z-border);
	border-radius: var(--z-radius-sm);
	margin-top: 6px;
}
.comment-form input:focus, .comment-form textarea:focus { outline: none; border-color: var(--z-primary); }

/* -----------------------------------------------------------------------------
 * CONTACT / SOCIAL LISTS
 * --------------------------------------------------------------------------- */
.zoonum-contact-list, .zoonum-social-list { list-style: none; padding: 0; margin: 0; }
.zoonum-contact-list li { margin-bottom: 8px; }
.zoonum-social-list { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 16px; }
.zoonum-social-list a {
	display: inline-flex; align-items: center; justify-content: center;
	padding: 8px 16px;
	background: rgba(255,255,255,.08);
	border-radius: var(--z-radius-sm);
	font-size: .85rem;
}

/* -----------------------------------------------------------------------------
 * FOOTER — three independently styled bars
 * --------------------------------------------------------------------------- */
.zoonum-footer { margin-top: 80px; }

/* ---- BAR 1: Main Footer ---- */
.zoonum-footer__main {
	background: var(--z-footer-bg, #0f172a);
	color: var(--z-footer-text, #cbd5e1);
	padding: 64px 0 40px;
}
.zoonum-footer__main h1,
.zoonum-footer__main h2,
.zoonum-footer__main h3,
.zoonum-footer__main h4,
.zoonum-footer__main .widget-title { color: var(--z-footer-heading, #fff); }
.zoonum-footer__main a { color: var(--z-footer-text, #cbd5e1); }
.zoonum-footer__main a:hover { color: var(--z-footer-heading, #fff); }
.zoonum-footer__main .widget ul,
.zoonum-footer__main .zoonum-menu--footer-stack { list-style: none; padding: 0; margin: 0; }
.zoonum-footer__main .widget li,
.zoonum-footer__main .zoonum-menu--footer-stack li { margin-bottom: 8px; font-size: .95rem; }
.widget-title { font-size: 1rem; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; margin: 0 0 16px; }

/* Variable-column grid driven by Customizer columns_count */
.zoonum-footer__grid { display: grid; gap: 48px; align-items: start; }
.zoonum-footer__grid--cols-1 { grid-template-columns: 1fr; }
.zoonum-footer__grid--cols-2 { grid-template-columns: repeat(2, 1fr); }
.zoonum-footer__grid--cols-3 { grid-template-columns: repeat(3, 1fr); }
.zoonum-footer__grid--cols-4 { grid-template-columns: 1.5fr 1fr 1fr 1fr; }
.zoonum-footer__grid--cols-5 { grid-template-columns: 1.5fr 1fr 1fr 1fr 1.25fr; }

.zoonum-footer__brand-logo { margin-bottom: 16px; }
.zoonum-footer__brand-logo img { max-height: 48px; width: auto; }
.zoonum-footer__brand-logo .zoonum-site-title { color: var(--z-footer-heading, #fff); }
.zoonum-footer__about { font-size: .95rem; line-height: 1.6; margin: 0 0 16px; opacity: .85; max-width: 320px; }
.zoonum-footer__text { font-size: .95rem; line-height: 1.6; }

/* Vertical menu used inside footer columns */
.zoonum-menu--footer-stack { display: flex; flex-direction: column; gap: 0; }
.zoonum-menu--footer-stack li { margin-bottom: 8px; }
.zoonum-menu--footer-stack a { padding: 0; font-size: .95rem; }

/* ---- BAR 2: Disclaimer ---- */
.zoonum-footer__disclaimer {
	background: var(--z-disclaimer-bg, #000);
	color: var(--z-disclaimer-text, #cbd5e1);
	padding: 16px 0;
	font-size: .85rem;
	text-align: center;
	line-height: 1.5;
}
.zoonum-footer__disclaimer a { color: inherit; text-decoration: underline; }

/* ---- BAR 3: Copyright ---- */
.zoonum-footer__copyright {
	background: var(--z-copyright-bg, #0a0f1c);
	color: var(--z-copyright-text, #94a3b8);
	padding: 20px 0;
	font-size: .9rem;
}
.zoonum-footer__copyright a { color: var(--z-copyright-text, #94a3b8); }
.zoonum-footer__copyright a:hover { color: var(--z-footer-heading, #fff); }
.zoonum-footer__copyright p { margin: 0; }
.zoonum-footer__copyright-inner {
	display: flex; justify-content: space-between; align-items: center;
	gap: 16px; flex-wrap: wrap;
}
.zoonum-menu--copyright { display: flex; gap: 24px; list-style: none; margin: 0; padding: 0; }
.zoonum-menu--copyright a { font-size: .9rem; }

/* -----------------------------------------------------------------------------
 * BLOCK EDITOR overrides for theme color palette
 * --------------------------------------------------------------------------- */
.has-primary-color { color: var(--z-primary); }
.has-primary-background-color { background-color: var(--z-primary); }
.has-secondary-color { color: var(--z-secondary); }
.has-secondary-background-color { background-color: var(--z-secondary); }
.has-accent-color { color: var(--z-accent); }
.has-accent-background-color { background-color: var(--z-accent); }
