/*
Theme Name: GeneratePress
Theme URI: https://generatepress.com
Author: Tom Usborne
Author URI: https://generatepress.com/about
Description: GeneratePress is a lightweight WordPress theme built with a focus on speed and usability. Performance is important to us, which is why a fresh GeneratePress install adds less than 10kb (gzipped) to your page size. We take full advantage of the block editor (Gutenberg), which gives you more control over creating your content. If you use page builders, GeneratePress is the right theme for you. It is completely compatible with all major page builders, including Beaver Builder and Elementor. Thanks to our emphasis on WordPress coding standards, we can boast full compatibility with all well-coded plugins, including WooCommerce. GeneratePress is fully responsive, uses valid HTML/CSS, and is translated into over 25 languages by our amazing community of users. A few of our many features include 60+ color controls, powerful dynamic typography, 5 navigation locations, 5 sidebar layouts, dropdown menus (click or hover), and 9 widget areas. Learn more and check out our powerful premium version at https://generatepress.com
Version: 3.6.1
Requires at least: 6.5
Tested up to: 6.9
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: generatepress
Tags: two-columns, three-columns, one-column, right-sidebar, left-sidebar, footer-widgets, blog, e-commerce, flexible-header, full-width-template, buddypress, custom-header, custom-background, custom-menu, custom-colors, sticky-post, threaded-comments, translation-ready, rtl-language-support, featured-images, theme-options

GeneratePress, Copyright 2014-2025 EDGE22 Studios LTD.
GeneratePress is distributed under the terms of the GNU GPL

GeneratePress is based on Underscores http://underscores.me/, (C) 2012-2025 Automattic, Inc.

Actual CSS can be found in /assets/css/ folder.
*/

/* Zarnyxys editorial design layer */
:root {
	--zv-ink: #17332c;
	--zv-ink-soft: #435b54;
	--zv-paper: #f7f2e8;
	--zv-paper-deep: #ede4d3;
	--zv-cream: #fffdf8;
	--zv-clay: #b95f3c;
	--zv-gold: #c69b49;
	--zv-line: rgba(23, 51, 44, 0.16);
	--zv-serif: "Iowan Old Style", "Baskerville", "Palatino Linotype", "Book Antiqua", Georgia, serif;
	--zv-sans: "Avenir Next", Avenir, "Century Gothic", "Trebuchet MS", sans-serif;
}

html { scroll-behavior: smooth; }

body {
	background:
		radial-gradient(circle at 8% 2%, rgba(198, 155, 73, .14), transparent 28rem),
		linear-gradient(180deg, var(--zv-paper) 0%, #fbf8f1 45%, var(--zv-paper) 100%);
	color: var(--zv-ink);
	font-family: var(--zv-sans);
	font-size: 17px;
	line-height: 1.72;
}

a { color: var(--zv-clay); text-underline-offset: .18em; }
a:hover, a:focus { color: var(--zv-ink); }

.site-header {
	background: rgba(247, 242, 232, .94);
	border-bottom: 1px solid var(--zv-line);
	position: sticky;
	top: 0;
	z-index: 100;
	backdrop-filter: blur(16px);
}

.inside-header {
	align-items: center;
	max-width: 1240px;
	padding: 20px 32px;
}

.site-branding { line-height: 1; }

.main-title {
	font-family: var(--zv-serif);
	font-size: clamp(28px, 3vw, 42px);
	font-weight: 600;
	letter-spacing: -.035em;
}

.main-title a, .main-title a:hover { color: var(--zv-ink); }

.site-description {
	color: var(--zv-ink-soft);
	font-family: var(--zv-sans);
	font-size: 11px;
	letter-spacing: .14em;
	margin-top: 7px;
	text-transform: uppercase;
}

.main-navigation, .main-navigation ul ul { background: transparent; }
.main-navigation .main-nav ul li a {
	color: var(--zv-ink);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .09em;
	padding: 0 15px;
	text-transform: uppercase;
}
.main-navigation .main-nav ul li a::after {
	background: var(--zv-clay);
	content: "";
	display: block;
	height: 2px;
	margin-top: 4px;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .25s ease;
}
.main-navigation .main-nav ul li:hover > a::after,
.main-navigation .main-nav ul li[class*="current-menu-"] > a::after { transform: scaleX(1); }

.site.grid-container { max-width: 100%; }
.site-content { padding: 0; }
.home .site-content, .blog .site-content { display: block; }
.home .content-area, .blog .content-area { width: 100%; }
.home .widget-area, .blog .widget-area { display: none; }

.zv-home-shell { overflow: hidden; }

.zv-hero {
	border-bottom: 1px solid var(--zv-line);
	margin: 0 auto;
	max-width: 1240px;
	padding: clamp(70px, 9vw, 126px) 32px 40px;
	position: relative;
}
.zv-hero::before {
	border: 1px solid rgba(185, 95, 60, .25);
	border-radius: 50%;
	content: "";
	height: 420px;
	position: absolute;
	right: -230px;
	top: -190px;
	width: 420px;
}
.zv-hero__eyebrow, .zv-kicker {
	color: var(--zv-clay);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .18em;
	margin: 0 0 20px;
	text-transform: uppercase;
}
.zv-hero__grid {
	align-items: end;
	display: grid;
	gap: clamp(30px, 7vw, 100px);
	grid-template-columns: minmax(0, 1.65fr) minmax(280px, .7fr);
}
.zv-hero h1 {
	color: var(--zv-ink);
	font-family: var(--zv-serif);
	font-size: clamp(50px, 7.7vw, 108px);
	font-weight: 500;
	letter-spacing: -.055em;
	line-height: .94;
	margin: 0;
	max-width: 950px;
}
.zv-hero__copy {
	border-left: 3px solid var(--zv-gold);
	padding: 4px 0 7px 24px;
}
.zv-hero__copy p {
	color: var(--zv-ink-soft);
	font-family: var(--zv-serif);
	font-size: clamp(19px, 2vw, 24px);
	line-height: 1.45;
	margin: 0 0 22px;
}
.zv-text-link {
	color: var(--zv-ink);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .08em;
	text-decoration: none;
	text-transform: uppercase;
}
.zv-text-link span {
	color: var(--zv-clay);
	display: inline-block;
	margin-left: 7px;
	transition: transform .2s ease;
}
.zv-text-link:hover span { transform: translateX(5px); }

.zv-topic-nav {
	align-items: center;
	border-top: 1px solid var(--zv-line);
	display: flex;
	flex-wrap: wrap;
	gap: 11px;
	margin-top: clamp(55px, 8vw, 90px);
	padding-top: 26px;
}
.zv-topic-nav > span {
	color: var(--zv-ink-soft);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .12em;
	margin-right: 8px;
	text-transform: uppercase;
}
.zv-topic-nav a {
	border: 1px solid var(--zv-line);
	border-radius: 999px;
	color: var(--zv-ink);
	font-family: var(--zv-serif);
	font-size: 14px;
	padding: 6px 14px;
	text-decoration: none;
	transition: background .2s ease, border-color .2s ease, transform .2s ease;
}
.zv-topic-nav a:hover {
	background: var(--zv-cream);
	border-color: var(--zv-gold);
	transform: translateY(-2px);
}

.zv-journal {
	margin: 0 auto;
	max-width: 1240px;
	padding: clamp(70px, 9vw, 120px) 32px;
}
.zv-section-heading {
	align-items: end;
	display: grid;
	gap: 40px;
	grid-template-columns: 1.2fr .8fr;
	margin-bottom: 45px;
}
.zv-section-heading h2, .zv-trust-note h2 {
	color: var(--zv-ink);
	font-family: var(--zv-serif);
	font-size: clamp(38px, 5vw, 64px);
	font-weight: 500;
	letter-spacing: -.035em;
	line-height: 1.02;
	margin: 0;
}
.zv-section-heading > p {
	color: var(--zv-ink-soft);
	margin: 0 0 7px;
	max-width: 500px;
}

.zv-post-grid {
	display: grid;
	gap: 28px;
	grid-template-columns: repeat(12, 1fr);
}
.zv-card {
	background: rgba(255, 253, 248, .74);
	border: 1px solid var(--zv-line);
	grid-column: span 4;
	overflow: hidden;
	transition: box-shadow .3s ease, transform .3s ease;
}
.zv-card:hover {
	box-shadow: 0 24px 55px rgba(35, 55, 47, .12);
	transform: translateY(-6px);
}
.zv-card--lead {
	display: grid;
	grid-column: span 12;
	grid-template-columns: 1.35fr 1fr;
	margin-bottom: 20px;
}
.zv-card__image {
	background: var(--zv-paper-deep);
	display: block;
	overflow: hidden;
}
.zv-card__image img {
	aspect-ratio: 16 / 10;
	display: block;
	height: 100%;
	object-fit: cover;
	transition: transform .65s cubic-bezier(.2,.7,.2,1);
	width: 100%;
}
.zv-card:hover .zv-card__image img { transform: scale(1.035); }
.zv-card__placeholder {
	background: linear-gradient(135deg, var(--zv-paper-deep), #dccfb7);
	display: block;
	min-height: 240px;
}
.zv-card__body { padding: 27px; }
.zv-card--lead .zv-card__body {
	align-self: center;
	padding: clamp(35px, 5vw, 70px);
}
.zv-card__meta {
	color: var(--zv-clay);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .11em;
	margin-bottom: 15px;
	text-transform: uppercase;
}
.zv-card h3 {
	font-family: var(--zv-serif);
	font-size: clamp(25px, 2.5vw, 34px);
	font-weight: 500;
	letter-spacing: -.025em;
	line-height: 1.12;
	margin: 0 0 15px;
}
.zv-card--lead h3 { font-size: clamp(36px, 4.4vw, 58px); }
.zv-card h3 a { color: var(--zv-ink); text-decoration: none; }
.zv-card__excerpt {
	color: var(--zv-ink-soft);
	font-size: 15px;
	line-height: 1.65;
}
.zv-card__excerpt p { margin: 0 0 21px; }

.zv-pagination { margin-top: 55px; }
.zv-pagination .nav-links { display: flex; gap: 8px; justify-content: center; }
.zv-pagination .page-numbers {
	border: 1px solid var(--zv-line);
	color: var(--zv-ink);
	min-width: 42px;
	padding: 8px 13px;
	text-align: center;
	text-decoration: none;
}
.zv-pagination .current { background: var(--zv-ink); color: var(--zv-cream); }

.zv-trust-note {
	background: var(--zv-ink);
	color: rgba(255,255,255,.76);
	margin: 0;
	padding: clamp(70px, 10vw, 130px) max(32px, calc((100vw - 1176px) / 2));
	position: relative;
}
.zv-trust-note::after {
	border: 1px solid rgba(198, 155, 73, .35);
	content: "";
	height: calc(100% - 42px);
	pointer-events: none;
	position: absolute;
	right: 21px;
	top: 21px;
	width: min(34vw, 430px);
}
.zv-trust-note .zv-kicker { color: #e3b764; }
.zv-trust-note h2 { color: var(--zv-cream); max-width: 720px; }
.zv-trust-note > p:not(.zv-kicker) { max-width: 690px; }
.zv-trust-note .zv-text-link { color: var(--zv-cream); }

body:not(.home):not(.blog) .site-content {
	margin: 0 auto;
	max-width: 1240px;
	padding: clamp(50px, 7vw, 90px) 32px;
}
body:not(.home):not(.blog) .content-area { width: min(100%, 820px); }
body:not(.home):not(.blog) .widget-area { width: min(30%, 320px); }
.single .inside-article, .page .inside-article,
.archive .inside-article, .search .inside-article {
	background: transparent;
	padding: 0;
}
.single .entry-title, .page .entry-title {
	color: var(--zv-ink);
	font-family: var(--zv-serif);
	font-size: clamp(40px, 6vw, 72px);
	font-weight: 500;
	letter-spacing: -.045em;
	line-height: 1.04;
}
.single .entry-content, .page .entry-content {
	color: #283f38;
	font-family: var(--zv-serif);
	font-size: clamp(18px, 2vw, 21px);
	line-height: 1.85;
}
.single .entry-content h2, .page .entry-content h2,
.single .entry-content h3, .page .entry-content h3 {
	color: var(--zv-ink);
	font-family: var(--zv-serif);
	letter-spacing: -.025em;
	line-height: 1.15;
}
.single .entry-content h2, .page .entry-content h2 { font-size: clamp(31px, 4vw, 44px); margin-top: 1.7em; }
.single .post-image img { border-radius: 2px; width: 100%; }
.entry-meta { color: var(--zv-ink-soft); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }

.widget-area .widget {
	background: rgba(255,253,248,.72);
	border: 1px solid var(--zv-line);
	padding: 27px;
}
.widget-title {
	color: var(--zv-ink);
	font-family: var(--zv-serif);
	font-size: 24px;
}

.site-footer {
	background: #10251f;
	color: rgba(255,255,255,.72);
}
.site-info { background: transparent; color: inherit; }
.inside-site-info {
	border-top: 1px solid rgba(255,255,255,.14);
	justify-content: center;
	max-width: 1240px;
	padding: 28px 32px;
}
.site-info a { color: #f0c979; }

button, html input[type="button"], input[type="reset"], input[type="submit"],
a.button, a.wp-block-button__link:not(.has-background) {
	background: var(--zv-clay);
	border-radius: 0;
	color: #fff;
	font-weight: 700;
}
button:hover, html input[type="button"]:hover, input[type="submit"]:hover,
a.button:hover, a.wp-block-button__link:not(.has-background):hover { background: var(--zv-ink); }

@media (prefers-reduced-motion: no-preference) {
	.zv-hero__eyebrow, .zv-hero h1, .zv-hero__copy {
		animation: zv-rise .7s both;
	}
	.zv-hero h1 { animation-delay: .08s; }
	.zv-hero__copy { animation-delay: .16s; }
	@keyframes zv-rise {
		from { opacity: 0; transform: translateY(18px); }
		to { opacity: 1; transform: translateY(0); }
	}
}

@media (max-width: 900px) {
	.zv-hero__grid, .zv-section-heading, .zv-card--lead { grid-template-columns: 1fr; }
	.zv-card { grid-column: span 6; }
	.zv-card--lead { grid-column: span 12; }
	.zv-card--lead .zv-card__image img { aspect-ratio: 16 / 9; max-height: 520px; }
	.zv-trust-note::after { width: 26vw; }
}

@media (max-width: 768px) {
	body { font-size: 16px; }
	.inside-header { padding: 16px 20px; }
	.site-description { display: none; }
	.main-navigation .menu-toggle { color: var(--zv-ink); font-weight: 700; }
	.has-inline-mobile-toggle #site-navigation.toggled { background: var(--zv-cream); margin-top: 14px; padding: 12px; }
	.main-navigation .main-nav ul li a { line-height: 46px; }
	.zv-hero { padding: 62px 20px 28px; }
	.zv-hero__copy { border-left-width: 2px; padding-left: 18px; }
	.zv-topic-nav { margin-top: 52px; }
	.zv-journal { padding: 70px 20px; }
	.zv-card, .zv-card--lead { grid-column: span 12; }
	.zv-card__body, .zv-card--lead .zv-card__body { padding: 26px; }
	.zv-card--lead h3 { font-size: 34px; }
	body:not(.home):not(.blog) .site-content { padding: 48px 20px; }
	body:not(.home):not(.blog) .content-area,
	body:not(.home):not(.blog) .widget-area { width: 100%; }
	.zv-trust-note { padding: 72px 20px; }
	.zv-trust-note::after { display: none; }
}

.zv-footer-directory {
	background: #10251f;
	border-bottom: 1px solid rgba(255,255,255,.14);
	color: rgba(255,255,255,.72);
	padding: 58px 32px 44px;
}
.zv-footer-directory__inner {
	align-items: end;
	display: grid;
	gap: 45px;
	grid-template-columns: minmax(240px, .8fr) minmax(0, 1.2fr);
	margin: 0 auto;
	max-width: 1176px;
}
.zv-footer-brand > a {
	color: var(--zv-cream);
	font-family: var(--zv-serif);
	font-size: 38px;
	font-weight: 600;
	letter-spacing: -.035em;
	text-decoration: none;
}
.zv-footer-brand p {
	font-size: 12px;
	letter-spacing: .08em;
	margin: 7px 0 0;
	text-transform: uppercase;
}
.zv-footer-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 13px 24px;
	justify-content: flex-end;
}
.zv-footer-nav a {
	color: rgba(255,255,255,.82);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .09em;
	text-decoration: none;
	text-transform: uppercase;
}
.zv-footer-nav a:hover { color: #f0c979; }

@media (max-width: 768px) {
	.zv-footer-directory { padding: 48px 20px 36px; }
	.zv-footer-directory__inner { align-items: start; grid-template-columns: 1fr; }
	.zv-footer-nav { justify-content: flex-start; }
}
