/* ==========================================================================
   Performa – main.css
   All values come from CSS custom properties written by the Customizer
   (inc/dynamic-css.php). Defaults below are fallbacks only.
   ========================================================================== */

/* 1. Tokens (fallbacks) ---------------------------------------------------- */
:root {
	--pf-container: 1200px;
	--pf-gutter: 24px;
	--pf-gutter-m: 20px;
	--pf-radius: 12px;
	--pf-btn-radius: 6px;
	--pf-btn-py: 14px;
	--pf-btn-px: 28px;
	--pf-accent: #f6921e;
	--pf-accent-text: #9a5200;
	--pf-extra-1: #9a5200;
	--pf-extra-2: #212126;
	--pf-extra-3: #55565c;
	--pf-on-accent: #17171a;
	--pf-bg: #fff;
	--pf-surface: #f5f5f3;
	--pf-heading: #17171a;
	--pf-text: #55565c;
	--pf-muted: #7d7e85;
	--pf-border: #d9d9d4;
	--pf-dark-bg: #17171a;
	--pf-dark-text: #c4c5cc;
	--pf-dark-heading: #f4f2ee;
	--pf-gradient: linear-gradient(135deg, var(--pf-accent), var(--pf-extra-1));
	--pf-paper: var(--pf-surface); /* resolved at :root so section presets can re-map --pf-surface */

	--pf-body-font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--pf-body-size: 17px;
	--pf-body-lh: 1.65;
	--pf-body-weight: 400;
	--pf-heading-weight: 700;
	--pf-heading-ls: -0.02em;

	--pf-header-h: 88px;
	--pf-header-h-m: 68px;
	--pf-header-h-s: 68px;
	--pf-logo-h: 36px;
	--pf-logo-h-m: 28px;
	--pf-header-alpha: 100%;
	--pf-topbar-h: 40px;
	--pf-bottom-h: 52px;
	--pf-nav-gap: 16px;
	--pf-dd-w: 240px;

	--pf-ease: cubic-bezier(.22, 1, .36, 1);
	--pf-fast: .2s;
	--pf-med: .45s;
	--pf-shadow-sm: 0 1px 2px rgba(14, 17, 32, .04), 0 4px 16px rgba(14, 17, 32, .06);
	--pf-shadow-lg: 0 2px 6px rgba(14, 17, 32, .05), 0 18px 48px rgba(14, 17, 32, .12);
	--pf-z-header: 900;
	--pf-z-overlay: 1000;
}

/* 2. Base ------------------------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body {
	margin: 0;
	background: var(--pf-bg);
	color: var(--pf-text);
	font-family: var(--pf-body-font);
	font-size: var(--pf-body-size);
	font-weight: var(--pf-body-weight);
	line-height: var(--pf-body-lh);
	letter-spacing: var(--pf-body-ls, 0);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	overflow-x: clip;
}
img, svg, video, canvas, iframe { max-width: 100%; }
img, video { height: auto; }
img { vertical-align: middle; border-style: none; }
figure { margin: 0; }
hr { border: 0; border-top: 1px solid var(--pf-border); margin: 2em 0; }
a { color: var(--pf-accent-text, var(--pf-accent)); text-decoration: none; transition: color var(--pf-fast); }
a:hover { color: color-mix(in srgb, var(--pf-accent-text, var(--pf-accent)) 80%, var(--pf-heading)); }
:focus-visible { outline: 2px solid var(--pf-accent); outline-offset: 3px; border-radius: 2px; }
::selection { background: var(--pf-accent); color: var(--pf-on-accent); }
button { font: inherit; color: inherit; }

/* 3. Typography ------------------------------------------------------------ */
h1, h2, h3, h4, h5, h6, .pf-h1, .pf-h2, .pf-h3, .pf-h4, .pf-h5, .pf-h6, .pf-display {
	margin: 0 0 .5em;
	color: var(--pf-heading);
	font-family: var(--pf-heading-font, var(--pf-body-font));
	font-weight: var(--pf-heading-weight);
	letter-spacing: var(--pf-heading-ls);
	text-transform: var(--pf-heading-tt, none);
	text-wrap: balance;
}
h1, .pf-h1 { font-size: var(--pf-h1-size, 3.5rem); line-height: var(--pf-h1-lh, 1.08); }
h2, .pf-h2 { font-size: var(--pf-h2-size, 2.6rem); line-height: var(--pf-h2-lh, 1.12); }
h3, .pf-h3 { font-size: var(--pf-h3-size, 2rem); line-height: var(--pf-h3-lh, 1.2); }
h4, .pf-h4 { font-size: var(--pf-h4-size, 1.5rem); line-height: var(--pf-h4-lh, 1.3); }
h5, .pf-h5 { font-size: var(--pf-h5-size, 1.25rem); line-height: var(--pf-h5-lh, 1.4); }
h6, .pf-h6 { font-size: var(--pf-h6-size, 1rem); line-height: var(--pf-h6-lh, 1.4); }
.pf-display {
	font-family: var(--pf-display-font, var(--pf-heading-font, var(--pf-body-font)));
	font-size: var(--pf-display-size, 5rem);
	line-height: var(--pf-display-lh, 1.02);
	font-weight: var(--pf-display-weight, 800);
	letter-spacing: var(--pf-display-ls, -0.035em);
}
p, ul, ol, dl, blockquote, pre, table { margin: 0 0 1.25em; }
ul, ol { padding-left: 1.3em; }
li { margin-bottom: .35em; }
strong, b { font-weight: 700; color: inherit; }
small { font-size: .85em; }
blockquote {
	margin-left: 0;
	padding: .25em 0 .25em 1.25em;
	border-left: 3px solid var(--pf-accent);
	font-size: 1.15em;
	color: var(--pf-heading);
}
code, kbd, pre { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .9em; }
pre { padding: 1.2em; background: var(--pf-surface); border-radius: var(--pf-radius); overflow: auto; }
:not(pre) > code { padding: .15em .4em; background: var(--pf-surface); border-radius: 4px; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: .7em .8em; border-bottom: 1px solid var(--pf-border); text-align: left; }
th { color: var(--pf-heading); font-weight: 600; }

.pf-eyebrow {
	display: inline-block;
	margin: 0 0 1em;
	color: var(--pf-accent-text, var(--pf-accent));
	font-family: var(--pf-eyebrow-font, var(--pf-body-font));
	font-size: var(--pf-eyebrow-size, 13px);
	font-weight: var(--pf-eyebrow-weight, 600);
	letter-spacing: var(--pf-eyebrow-ls, .12em);
	text-transform: var(--pf-eyebrow-tt, uppercase);
	line-height: 1.4;
}
.pf-lead { font-size: 1.2em; line-height: 1.6; }
.pf-muted { color: var(--pf-muted); }

/* Palette utility classes (usable in WPBakery "Extra class name"). */
.pf-c-accent { color: var(--pf-accent) !important; }
.pf-c-accent-text { color: var(--pf-accent-text) !important; }
.pf-c-extra-1 { color: var(--pf-extra-1) !important; }
.pf-c-extra-2 { color: var(--pf-extra-2) !important; }
.pf-c-extra-3 { color: var(--pf-extra-3) !important; }
.pf-c-heading { color: var(--pf-heading) !important; }
.pf-c-muted { color: var(--pf-muted) !important; }
.pf-bg-accent { background-color: var(--pf-accent) !important; }
.pf-bg-surface { background-color: var(--pf-surface) !important; }
.pf-bg-gradient { background-image: var(--pf-gradient) !important; }
.pf-text-gradient { background: var(--pf-gradient); -webkit-background-clip: text; background-clip: text; color: transparent !important; }

/* Dark sections: add "pf-dark" to any row. */
.pf-dark {
	--pf-accent-text: var(--pf-accent);
	--pf-heading: var(--pf-dark-heading);
	--pf-text: var(--pf-dark-text);
	--pf-muted: color-mix(in srgb, var(--pf-dark-text) 70%, transparent);
	--pf-border: color-mix(in srgb, var(--pf-dark-text) 18%, transparent);
	--pf-surface: color-mix(in srgb, var(--pf-dark-text) 8%, transparent);
	background-color: var(--pf-dark-bg);
	color: var(--pf-text);
}

/* 4. Layout ---------------------------------------------------------------- */
.pf-container,
.pf-container-fluid {
	width: 100%;
	margin-inline: auto;
	padding-inline: var(--pf-gutter);
}
.pf-container { max-width: calc(var(--pf-container) + var(--pf-gutter) * 2); }
.pf-container-fluid { padding-inline: var(--pf-header-px, var(--pf-gutter)); }
@media (max-width: 767.98px) {
	.pf-container, .pf-container-fluid { padding-inline: var(--pf-gutter-m); }
}
.pf-layout-boxed { background: var(--pf-boxed-bg); }
.pf-layout-boxed .pf-page {
	max-width: var(--pf-boxed);
	margin-inline: auto;
	background: var(--pf-bg);
	box-shadow: var(--pf-shadow-sm);
}
.pf-page { position: relative; min-height: 100vh; display: flex; flex-direction: column; }
.pf-main { flex: 1 0 auto; position: relative; z-index: 1; background: var(--pf-bg); }
.pf-section-pad { padding-block: clamp(48px, 7vw, 96px); }
.pf-section-pad--top-sm { padding-top: clamp(24px, 3vw, 40px); }
.pf-builder > .pf-container > .pf-content > .vc_row:first-child { margin-top: 0; }
.pf-prose { max-width: 760px; margin-inline: auto; }
.pf-content::after { content: ""; display: table; clear: both; }
.pf-content > :last-child { margin-bottom: 0; }

.pf-with-sidebar { display: grid; gap: clamp(32px, 5vw, 64px); }
.pf-with-sidebar--right { grid-template-columns: minmax(0, 1fr) 300px; }
.pf-with-sidebar--left { grid-template-columns: 300px minmax(0, 1fr); }
.pf-with-sidebar--left .pf-sidebar { order: -1; }
@media (max-width: 991.98px) {
	.pf-with-sidebar--right, .pf-with-sidebar--left { grid-template-columns: 1fr; }
	.pf-with-sidebar--left .pf-sidebar { order: 0; }
}

.alignleft { float: left; margin: .3em 1.5em 1em 0; }
.alignright { float: right; margin: .3em 0 1em 1.5em; }
.aligncenter { display: block; margin-inline: auto; }
.wp-caption-text, figcaption { margin-top: .6em; font-size: .875em; color: var(--pf-muted); }

/* 5. Buttons --------------------------------------------------------------- */
.pf-btn,
.button,
button[type=submit],
input[type=submit],
.wpcf7-submit {
	--_bg: var(--pf-accent);
	--_fg: var(--pf-on-accent);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .55em;
	padding: var(--pf-btn-py) var(--pf-btn-px);
	border: 1.5px solid var(--_bg);
	border-radius: var(--pf-btn-radius);
	background: var(--_bg);
	color: var(--_fg);
	font-family: var(--pf-button-font, inherit);
	font-size: var(--pf-button-size, 15px);
	font-weight: var(--pf-button-weight, 600);
	letter-spacing: var(--pf-button-ls, 0);
	text-transform: var(--pf-button-tt, none);
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color var(--pf-fast), color var(--pf-fast), border-color var(--pf-fast), transform var(--pf-fast), box-shadow var(--pf-fast);
	-webkit-appearance: none;
	appearance: none;
}
.pf-btn:hover,
.button:hover,
button[type=submit]:hover,
input[type=submit]:hover,
.wpcf7-submit:hover {
	background-color: color-mix(in srgb, var(--_bg) 86%, #000);
	border-color: color-mix(in srgb, var(--_bg) 86%, #000);
	color: var(--_fg);
}
.pf-btn--outline { background: transparent; color: var(--_bg); }
.pf-btn--outline:hover { background: var(--_bg); border-color: var(--_bg); color: var(--_fg); }
.pf-btn--ghost { background: color-mix(in srgb, var(--_bg) 10%, transparent); border-color: transparent; color: var(--_bg); }
.pf-btn--ghost:hover { background: color-mix(in srgb, var(--_bg) 18%, transparent); border-color: transparent; color: var(--_bg); }
.pf-btn--sm { --pf-btn-py: 10px; --pf-btn-px: 18px; font-size: .9em; }
.pf-btn--lg { --pf-btn-py: 18px; --pf-btn-px: 36px; font-size: 1.05em; }
.pf-btn--block { display: flex; width: 100%; }
.pf-btn .pf-icon { flex: none; }

.pf-link-arrow {
	display: inline-flex;
	align-items: center;
	gap: .4em;
	font-weight: 600;
	font-size: .95em;
}
.pf-link-arrow .pf-icon { transition: transform var(--pf-fast) var(--pf-ease); }
.pf-link-arrow:hover .pf-icon { transform: translateX(4px); }

.pf-icon { display: inline-block; flex: none; vertical-align: middle; }
.pf-icon-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	position: relative;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: none;
	color: inherit;
	cursor: pointer;
	transition: background-color var(--pf-fast), color var(--pf-fast);
}
.pf-icon-btn:hover { background: color-mix(in srgb, currentColor 8%, transparent); color: inherit; }

/* 6. Forms (also styles Contact Form 7) ------------------------------------ */
input[type=text], input[type=email], input[type=url], input[type=password], input[type=search],
input[type=number], input[type=tel], input[type=date], input[type=datetime-local], input[type=time],
select, textarea {
	width: 100%;
	padding: 12px 16px;
	border: 1px solid var(--pf-border);
	border-radius: calc(var(--pf-radius) * .6);
	background: var(--pf-bg);
	color: var(--pf-heading);
	font: inherit;
	font-size: 16px; /* prevents iOS zoom */
	line-height: 1.4;
	transition: border-color var(--pf-fast), box-shadow var(--pf-fast);
	-webkit-appearance: none;
	appearance: none;
}
textarea { min-height: 140px; resize: vertical; }
select {
	padding-right: 40px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%23767c91' stroke-width='1.6'%3E%3Cpath d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 16px center;
}
input:focus, select:focus, textarea:focus {
	outline: none;
	border-color: var(--pf-accent);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--pf-accent) 18%, transparent);
}
::placeholder { color: var(--pf-muted); opacity: 1; }
input[type=checkbox], input[type=radio] { accent-color: var(--pf-accent); width: 1.05em; height: 1.05em; vertical-align: -.1em; }
label { color: var(--pf-heading); font-weight: 500; font-size: .95em; }
fieldset { border: 1px solid var(--pf-border); border-radius: var(--pf-radius); padding: 1em 1.25em; }

.wpcf7-form p { margin-bottom: 1.1em; }
.wpcf7-form label { display: block; }
.wpcf7-form label .wpcf7-form-control-wrap { display: block; margin-top: 6px; }
.wpcf7-list-item { margin: 0 1em 0 0; }
.wpcf7-not-valid { border-color: #e5484d !important; }
.wpcf7-not-valid-tip { margin-top: 6px; color: #e5484d; font-size: .85em; }
.wpcf7 form .wpcf7-response-output { margin: 1em 0 0; padding: .8em 1em; border-radius: calc(var(--pf-radius) * .6); font-size: .95em; }
.wpcf7-spinner { margin: 0 0 0 12px; vertical-align: middle; }

.pf-searchform { position: relative; display: flex; }
.pf-searchform input { padding-right: 48px; }
.pf-searchform button {
	position: absolute; right: 4px; top: 50%; transform: translateY(-50%);
	width: 40px; height: 40px; padding: 0; border: 0; background: none; color: var(--pf-muted); cursor: pointer;
}

/* 7. Header ---------------------------------------------------------------- */
.pf-header {
	--pf-bar-h: var(--pf-header-h);
	--_bg: color-mix(in srgb, var(--pf-header-bg, #fff) var(--pf-header-alpha), transparent);
	--_text: var(--pf-header-text, var(--pf-heading));
	position: relative;
	z-index: var(--pf-z-header);
	width: 100%;
	color: var(--_text);
	transition: transform var(--pf-med) var(--pf-ease), box-shadow var(--pf-med), background-color var(--pf-med);
}
.pf-header__bar {
	position: relative;
	background: var(--_bg);
	transition: background-color var(--pf-med), border-color var(--pf-med);
}
.pf-header--blur .pf-header__bar { -webkit-backdrop-filter: saturate(160%) blur(14px); backdrop-filter: saturate(160%) blur(14px); }
.pf-header--border .pf-header__bar { border-bottom: 1px solid var(--pf-header-border, var(--pf-border)); }
.pf-header__inner {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 24px;
	height: var(--pf-bar-h);
	transition: height var(--pf-med) var(--pf-ease);
}
.pf-header__start, .pf-header__center, .pf-header__end { display: flex; align-items: center; min-width: 0; }
.pf-header__start { justify-content: flex-start; gap: 40px; }
.pf-header__center { justify-content: center; }
.pf-header__end { justify-content: flex-end; gap: 24px; }

/* Default & Menu Left: no center column. */
.pf-header--default .pf-header__inner,
.pf-header--left .pf-header__inner,
.pf-header--minimal .pf-header__inner { grid-template-columns: auto 1fr auto; }
.pf-header--default .pf-header__center,
.pf-header--left .pf-header__center,
.pf-header--minimal .pf-header__center { display: contents; }
.pf-header--centered .pf-header__inner { grid-template-columns: 1fr auto 1fr; }

/* Fixed / sticky */
.pf-header--fixed, .pf-header--transparent { position: fixed; top: 0; left: 0; right: 0; }
.pf-header--transparent:not(.pf-header--fixed) { position: absolute; }
.admin-bar .pf-header--fixed, .admin-bar .pf-header--transparent { top: 32px; }
@media (max-width: 782px) { .admin-bar .pf-header--fixed, .admin-bar .pf-header--transparent { top: 46px; } }
@media (max-width: 600px) { .admin-bar .pf-header--fixed.is-scrolled { top: 0; } }
.pf-layout-boxed .pf-header--fixed { max-width: var(--pf-boxed); margin-inline: auto; }

.pf-header-space { height: calc(var(--pf-header-h) + var(--pf-sp-top, 0px) + var(--pf-sp-bottom, 0px)); }
.pf-has-topbar { --pf-sp-top: var(--pf-topbar-h); }
.pf-header-stacked { --pf-sp-bottom: var(--pf-bottom-h); }
.pf-js .pf-header-space { height: var(--pf-header-space, calc(var(--pf-header-h) + var(--pf-sp-top, 0px) + var(--pf-sp-bottom, 0px))); }

.pf-header--shrink.is-scrolled { --pf-bar-h: var(--pf-header-h-s); }
/* Shadow: defaults to 0 3px 45px rgba(0,0,0,.15); every part is a Customizer setting. */
.pf-header {
	--_shadow: 0 var(--pf-hs-y, 3px) var(--pf-hs-blur, 45px) color-mix(in srgb, var(--pf-hs-color, #000) var(--pf-hs-alpha, 15%), transparent);
}
.pf-header--shadow-always,
.pf-header--shadow-scrolled.is-scrolled { box-shadow: var(--_shadow); }
.pf-header--smart.is-hidden { transform: translateY(-100%); }
.pf-header--smart.is-hidden.is-menu-open { transform: none; }

/* Transparent state (until scrolled) */
.pf-header--transparent:not(.is-scrolled) { --_bg: transparent; box-shadow: none; }
/* Hairline under the transparent header (e.g. rgba(255,255,255,.25)). */
.pf-header--tline:not(.is-scrolled) { --_tline: color-mix(in srgb, var(--pf-tline-color, #fff) var(--pf-tline-alpha, 25%), transparent); }
.pf-header--tline-full:not(.is-scrolled) .pf-header__bar { box-shadow: inset 0 -1px 0 var(--_tline); }
.pf-header--tline-container:not(.is-scrolled) .pf-header__bar > .pf-header__inner {
	background-image: linear-gradient(var(--_tline), var(--_tline));
	background-repeat: no-repeat;
	background-position: bottom;
	background-size: 100% 1px;
	background-origin: content-box;
	background-clip: content-box;
}
.pf-header--transparent:not(.is-scrolled) .pf-header__bar { border-bottom-color: transparent; -webkit-backdrop-filter: none; backdrop-filter: none; }
.pf-header--transparent.pf-scheme-light:not(.is-scrolled) { --_text: var(--pf-header-light, #fff); --pf-header-hover: var(--pf-header-light, #fff); }
.pf-header--transparent.pf-scheme-dark:not(.is-scrolled) { --_text: var(--pf-header-dark, #0e1120); }
.pf-header--transparent.pf-scheme-light:not(.is-scrolled) .pf-btn--solid { --_bg: #fff; --_fg: #0e1120; }
.pf-header--transparent.pf-scheme-light:not(.is-scrolled) .pf-btn--outline { --_bg: #fff; }
.pf-header--has-light-logo.pf-header--transparent.pf-scheme-light:not(.is-scrolled) .pf-logo__img--main,
.pf-header--has-light-logo.pf-header--transparent.pf-scheme-light:not(.is-scrolled) .pf-logo__img--mobile { display: none; }
.pf-header--has-light-logo.pf-header--transparent.pf-scheme-light:not(.is-scrolled) .pf-logo__img--light { display: block; }

/* Top bar */
.pf-topbar {
	background: var(--pf-topbar-bg);
	color: var(--pf-topbar-text);
	font-size: 13px;
	overflow: hidden;
	max-height: var(--pf-topbar-h);
	transition: max-height var(--pf-med) var(--pf-ease);
}
.pf-topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; height: var(--pf-topbar-h); }
.pf-topbar a { color: inherit; }
.pf-topbar a:hover { color: #fff; }
.pf-topbar__text p { margin: 0; }
.pf-topbar__menu { display: flex; gap: 20px; margin: 0; padding: 0; list-style: none; }
.pf-topbar__menu li { margin: 0; }
.pf-header--fixed.is-scrolled .pf-topbar { max-height: 0; }
@media (max-width: 767.98px) {
	.pf-topbar--hide-mobile { display: none; }
	.pf-topbar-hide-mobile { --pf-sp-top: 0px; }
}

/* Stacked layout bottom bar */
.pf-header__bottom { background: var(--_bg); border-top: 1px solid color-mix(in srgb, var(--_text) 10%, transparent); }
.pf-header__bottom .pf-header__inner { display: flex; justify-content: center; height: var(--pf-bottom-h); }

/* Logo */
.pf-logo { display: inline-flex; align-items: center; flex: none; color: inherit; line-height: 1; }
.pf-logo:hover { color: inherit; }
/* Height drives the size; width follows the aspect ratio. This also works for SVGs that
   only have a viewBox (no intrinsic width), which collapse to 0 with height:auto. */
.pf-logo__img { display: block; width: auto; height: min(var(--pf-logo-h), calc(var(--pf-bar-h) - 16px)); max-width: none; transition: height var(--pf-med) var(--pf-ease); }
.pf-logo__img--light, .pf-logo__img--mobile { display: none; }
.pf-logo__text { font-family: var(--pf-heading-font, inherit); font-weight: 800; font-size: 1.35rem; letter-spacing: -.02em; }

/* Navigation */
.pf-nav { display: flex; align-items: center; min-width: 0; }
.pf-menu { display: flex; align-items: center; gap: 0 var(--pf-nav-gap); margin: 0; padding: 0; list-style: none; }
.pf-menu li { position: relative; margin: 0; }
.pf-menu > li { display: flex; align-items: center; height: var(--pf-bar-h); }
.pf-header__bottom .pf-menu > li { height: var(--pf-bottom-h); }
.pf-menu a {
	display: inline-flex;
	align-items: center;
	gap: .45em;
	color: inherit;
	text-decoration: none;
}
.pf-menu > li > a {
	position: relative;
	padding: 6px 0;
	font-family: var(--pf-nav-font, inherit);
	font-size: var(--pf-nav-size, 15px);
	font-weight: var(--pf-nav-weight, 500);
	letter-spacing: var(--pf-nav-ls, 0);
	text-transform: var(--pf-nav-tt, none);
	white-space: nowrap;
}
.pf-menu > li > a:hover,
.pf-menu > .current-menu-item > a,
.pf-menu > .current-menu-ancestor > a { color: var(--pf-header-hover, var(--pf-accent)); }
.pf-nav__empty { font-size: 13px; opacity: .7; }
.pf-menu-badge {
	padding: 2px 7px;
	border-radius: 20px;
	background: var(--pf-accent);
	color: var(--pf-on-accent);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .04em;
	line-height: 1.4;
	text-transform: uppercase;
}

/* Hover effects */
.pf-nav--hover-underline .pf-menu > li > a::after,
.pf-nav--hover-overline .pf-menu > li > a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	height: 2px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: right;
	transition: transform .35s var(--pf-ease);
}
.pf-nav--hover-underline .pf-menu > li > a::after { bottom: 0; }
.pf-nav--hover-overline .pf-menu > li > a::after { top: calc((var(--pf-bar-h) - 1.2em) / -2 + 4px); }
.pf-nav--hover-underline .pf-menu > li:hover > a::after,
.pf-nav--hover-underline .pf-menu > .current-menu-item > a::after,
.pf-nav--hover-overline .pf-menu > li:hover > a::after,
.pf-nav--hover-overline .pf-menu > .current-menu-item > a::after { transform: scaleX(1); transform-origin: left; }
.pf-nav--hover-pill .pf-menu > li > a { padding: 8px 14px; border-radius: 99px; transition: background-color var(--pf-fast), color var(--pf-fast); }
.pf-nav--hover-pill .pf-menu { gap: 0 calc(var(--pf-nav-gap) / 3); }
.pf-nav--hover-pill .pf-menu > li:hover > a,
.pf-nav--hover-pill .pf-menu > .current-menu-item > a { background: color-mix(in srgb, currentColor 9%, transparent); }
.pf-nav--hover-fade .pf-menu > li > a { transition: opacity .3s, color .3s; }
.pf-nav--hover-fade .pf-menu:hover > li > a { opacity: .45; }
.pf-nav--hover-fade .pf-menu:hover > li:hover > a { opacity: 1; }

/* Submenu toggle (arrow) */
.pf-sub-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	margin-left: 2px;
	padding: 0;
	border: 0;
	background: none;
	color: inherit;
	cursor: pointer;
	opacity: .7;
}
.pf-sub-toggle .pf-icon { width: 14px; height: 14px; transition: transform var(--pf-fast); }
.pf-menu li:hover > .pf-sub-toggle .pf-icon,
.pf-menu li.is-open > .pf-sub-toggle .pf-icon { transform: rotate(180deg); }
.pf-nav:not(.pf-nav--arrows) .pf-sub-toggle { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.pf-menu .sub-menu .pf-sub-toggle { position: absolute; right: 12px; top: 50%; transform: translateY(-50%) rotate(-90deg); }

/* Dropdowns */
.pf-menu .sub-menu {
	position: absolute;
	top: 100%;
	left: -18px;
	z-index: 10;
	min-width: var(--pf-dd-w);
	margin: 0;
	padding: 10px;
	list-style: none;
	background: var(--pf-dd-bg, #fff);
	border: 1px solid color-mix(in srgb, var(--pf-dd-text, #333) 10%, transparent);
	border-radius: var(--pf-radius);
	box-shadow: var(--pf-shadow-lg);
	color: var(--pf-dd-text);
	opacity: 0;
	visibility: hidden;
	transition: opacity .25s, transform .3s var(--pf-ease), visibility .25s;
	font-family: var(--pf-nav-font, inherit);
	font-size: var(--pf-dropdown-size, 14px);
	font-weight: var(--pf-dropdown-weight, 400);
	letter-spacing: var(--pf-dropdown-ls, 0);
	text-transform: var(--pf-dropdown-tt, none);
	text-align: left;
}
.pf-dd--fade-up .sub-menu { transform: translateY(10px); }
.pf-menu .sub-menu .sub-menu { top: -11px; left: 100%; margin-left: 4px; }
.pf-menu .sub-menu.pf-flip { left: auto; right: -18px; }
.pf-menu .sub-menu .sub-menu.pf-flip { right: 100%; margin: 0 4px 0 0; }
.pf-menu li:hover > .sub-menu,
.pf-menu li:focus-within > .sub-menu,
.pf-menu li.is-open > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.pf-dd--none .sub-menu { transition: none; }
.pf-menu .sub-menu li { display: block; }
.pf-menu .sub-menu a {
	display: flex;
	padding: 9px 36px 9px 12px;
	border-radius: calc(var(--pf-radius) * .6);
	color: inherit;
	transition: background-color var(--pf-fast), color var(--pf-fast);
}
.pf-menu .sub-menu a:hover,
.pf-menu .sub-menu .current-menu-item > a {
	background: color-mix(in srgb, var(--pf-dd-hover, var(--pf-accent)) 8%, transparent);
	color: var(--pf-dd-hover, var(--pf-accent));
}

/* Mega menu */
.pf-menu > li.pf-mega { position: static; }
.pf-menu > li.pf-mega > .sub-menu {
	left: 50%;
	width: min(var(--pf-container), calc(100vw - var(--pf-gutter) * 2));
	display: grid;
	grid-template-columns: repeat(var(--_cols, 4), minmax(0, 1fr));
	gap: 8px 24px;
	padding: 24px;
	translate: -50% 0;
}
.pf-menu > li.pf-mega--cols-2 { --_cols: 2; }
.pf-menu > li.pf-mega--cols-3 { --_cols: 3; }
.pf-menu > li.pf-mega--cols-5 { --_cols: 5; }
.pf-menu > li.pf-mega > .sub-menu > li > a {
	margin-bottom: 4px;
	color: inherit;
	font-weight: 600;
	pointer-events: auto;
}
.pf-menu > li.pf-mega > .sub-menu > li > .pf-sub-toggle { display: none; }
.pf-menu > li.pf-mega .sub-menu .sub-menu {
	position: static;
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
	box-shadow: none;
	background: none;
	opacity: 1;
	visibility: inherit;
	transform: none;
}
.pf-menu > li.pf-mega--section > .pf-mega__panel { display: block; padding: 0; overflow: hidden; }

/* Header actions */
.pf-header__actions { display: flex; align-items: center; gap: 6px; }
.pf-header__cta { margin-left: 10px; }
.pf-header__social { gap: 2px; }
.pf-cart-link .pf-cart-count {
	position: absolute;
	top: 3px;
	right: 1px;
	min-width: 17px;
	height: 17px;
	padding: 0 4px;
	border-radius: 20px;
	background: var(--pf-accent);
	color: var(--pf-on-accent);
	font-size: 10px;
	font-weight: 700;
	line-height: 17px;
	text-align: center;
}
.pf-cart-count[data-count="0"] { display: none; }

/* Burger */
.pf-burger {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 40px;
	height: 40px;
	margin-right: -8px;
	padding: 0 9px;
	border: 0;
	background: none;
	color: inherit;
	cursor: pointer;
}
.pf-burger span { display: block; height: 2px; border-radius: 2px; background: currentColor; transition: transform .35s var(--pf-ease), opacity .2s; }
.pf-burger span:nth-child(2) { width: 70%; margin-left: auto; }
.pf-burger[aria-expanded=true] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.pf-burger[aria-expanded=true] span:nth-child(2) { opacity: 0; }
.pf-burger[aria-expanded=true] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.pf-header--minimal .pf-burger,
.pf-header--center-burger .pf-burger { display: inline-flex; }

/* Header buttons ----------------------------------------------------------- */
.pf-header__buttons { display: flex; align-items: center; gap: var(--pf-hbtn-gap, 10px); }
.pf-header__actions > .pf-header__buttons { margin-left: 8px; }
.pf-header__start > .pf-header__buttons { margin-right: 24px; }
.pf-hbtn--pill { --pf-btn-radius: 999px; }
.pf-hbtn--square { --pf-btn-radius: 0px; }
.pf-hbtn .pf-icon { width: 16px; height: 16px; }
.pf-hbtn-link {
	display: inline-flex;
	align-items: center;
	gap: .45em;
	padding: 6px 4px;
	color: var(--_bg, inherit);
	font-family: var(--pf-button-font, inherit);
	font-size: var(--pf-nav-size, 15px);
	font-weight: var(--pf-button-weight, 600);
	white-space: nowrap;
}
.pf-hbtn-link:hover { color: var(--pf-header-hover, var(--pf-accent)); }

/* Tile: full-height block with the icon above a short uppercase label. */
.pf-header__buttons:has(.pf-hbtn-tile) { gap: 0; align-self: stretch; }
.pf-header__actions:has(.pf-hbtn-tile) { align-self: stretch; }
.pf-hbtn-tile {
	--_bg: var(--pf-accent);
	--_fg: var(--pf-on-accent);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 6px;
	width: clamp(120px, 9vw, 160px);
	height: var(--pf-bar-h);
	padding: 8px 14px;
	background: var(--_bg);
	color: var(--_fg);
	font-family: var(--pf-button-font, inherit);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
	line-height: 1.2;
	text-align: center;
	text-transform: uppercase;
	transition: background-color var(--pf-fast), color var(--pf-fast), height var(--pf-med) var(--pf-ease);
}
.pf-hbtn-tile:hover { background: color-mix(in srgb, var(--_bg) 88%, #000); color: var(--_fg); }
.pf-hbtn-tile.pf-hbtn--pill { border-radius: 999px; height: calc(var(--pf-bar-h) - 16px); }
.pf-hbtn-tile .pf-icon { width: 24px; height: 24px; }
/* Full-width header: tiles sit flush with the screen edge. */
.pf-header--tiles-right .pf-header__bar > .pf-container-fluid { padding-right: 0; }
.pf-header--tiles-left .pf-header__bar > .pf-container-fluid { padding-left: 0; }
.pf-header--has-tiles .pf-header__actions { gap: 6px; }
.pf-header--has-tiles .pf-burger { margin-right: 8px; }

.pf-offcanvas__buttons { display: grid; gap: 10px; }

/* 8. Off-canvas menu ------------------------------------------------------- */
.pf-offcanvas { position: fixed; inset: 0; z-index: var(--pf-z-overlay); }
.pf-offcanvas[hidden] { display: none; }
.pf-offcanvas__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(8, 10, 20, .55);
	opacity: 0;
	transition: opacity var(--pf-med);
}
.pf-offcanvas__panel {
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	display: flex;
	flex-direction: column;
	width: min(420px, 88vw);
	padding: 20px 28px 32px;
	background: var(--pf-oc-bg, #0e1120);
	color: var(--pf-oc-text, #fff);
	overflow-y: auto;
	overscroll-behavior: contain;
	transform: translateX(100%);
	transition: transform .55s var(--pf-ease);
}
.pf-offcanvas--slide-left .pf-offcanvas__panel { right: auto; left: 0; transform: translateX(-100%); }
.pf-offcanvas--fullscreen .pf-offcanvas__panel { width: 100%; transform: translateY(-100%); }
.pf-offcanvas.is-open .pf-offcanvas__backdrop { opacity: 1; }
.pf-offcanvas.is-open .pf-offcanvas__panel { transform: none; }
.pf-offcanvas__top { display: flex; align-items: center; justify-content: space-between; min-height: 48px; margin-bottom: 24px; }
.pf-offcanvas__top .pf-logo__img--main { display: none; }
.pf-offcanvas__top .pf-logo__img--light { display: block; }
.pf-offcanvas__top .pf-logo:not(:has(.pf-logo__img--light)) .pf-logo__img--main { display: block; }
.pf-offcanvas a { color: inherit; }
.pf-mmenu { margin: 0; padding: 0; list-style: none; }
.pf-mmenu li { position: relative; margin: 0; }
.pf-mmenu > li { border-bottom: 1px solid color-mix(in srgb, currentColor 12%, transparent); }
.pf-mmenu a { display: flex; align-items: center; gap: .5em; padding: 14px 44px 14px 0; font-size: 18px; font-weight: 500; }
.pf-offcanvas--fullscreen .pf-mmenu > li > a { font-size: clamp(26px, 6vw, 40px); font-weight: 600; letter-spacing: -.02em; }
.pf-mmenu .pf-sub-toggle {
	position: absolute;
	top: 8px;
	right: -6px;
	width: 40px;
	height: 40px;
	opacity: 1;
}
.pf-offcanvas--fullscreen .pf-mmenu .pf-sub-toggle { top: clamp(12px, 2.6vw, 20px); }
.pf-mmenu .sub-menu { display: none; margin: 0 0 12px; padding: 0 0 0 14px; list-style: none; border-left: 1px solid color-mix(in srgb, currentColor 18%, transparent); }
.pf-mmenu .sub-menu a { padding: 8px 40px 8px 0; font-size: 15px; opacity: .8; }
.pf-mmenu li.is-open > .sub-menu { display: block; }
.pf-mmenu li.is-open > .pf-sub-toggle .pf-icon { transform: rotate(180deg); }
.pf-offcanvas--fullscreen .pf-mmenu > li { opacity: 0; transform: translateY(24px); transition: opacity .5s, transform .6s var(--pf-ease); transition-delay: calc(var(--i, 0) * 60ms + 150ms); }
.pf-offcanvas--fullscreen.is-open .pf-mmenu > li { opacity: 1; transform: none; }
.pf-offcanvas__footer { display: grid; gap: 20px; margin-top: auto; padding-top: 32px; }
.pf-offcanvas__social { justify-content: flex-start; }
html.pf-locked, html.pf-locked body { overflow: hidden; }

/* 9. Search overlay -------------------------------------------------------- */
.pf-search {
	position: fixed;
	inset: 0 0 auto;
	z-index: var(--pf-z-overlay);
	padding-block: clamp(32px, 8vh, 80px);
	background: var(--pf-bg);
	box-shadow: var(--pf-shadow-lg);
	transform: translateY(-100%);
	transition: transform .5s var(--pf-ease);
}
.pf-search[hidden] { display: none; }
.pf-search.is-open { transform: none; }
.pf-search__inner { display: flex; align-items: center; gap: 16px; }
.pf-search__form { flex: 1; }
.pf-search__form input {
	padding: 8px 0;
	border: 0;
	border-bottom: 2px solid var(--pf-border);
	border-radius: 0;
	background: none;
	font-size: clamp(22px, 3.5vw, 40px);
	font-weight: 600;
	letter-spacing: -.02em;
}
.pf-search__form input:focus { box-shadow: none; border-color: var(--pf-accent); }

/* 10. Page title ----------------------------------------------------------- */
.pf-page-title { position: relative; padding-block: var(--pf-title-pad); background: var(--pf-title-bg, var(--pf-surface)); overflow: hidden; isolation: isolate; }
@media (max-width: 767.98px) { .pf-page-title { padding-block: var(--pf-title-pad-m); } }
.pf-has-transparent-header .pf-page-title:not(.pf-page-title--after-hero) { padding-top: calc(var(--pf-title-pad) + var(--pf-header-h)); }
.pf-page-title--center { text-align: center; }
.pf-page-title--center .pf-page-title__sub { margin-inline: auto; }
.pf-page-title__heading { margin: 0; }
.pf-page-title__logo { display: block; width: auto; height: auto; max-width: min(260px, 60%); max-height: 96px; margin: 0 0 22px; }
.pf-page-title--center .pf-page-title__logo { margin-inline: auto; }
.pf-page-title__sub { max-width: 640px; margin: .75em 0 0; font-size: 1.1em; color: var(--pf-muted); }
.pf-page-title--hero { display: flex; align-items: flex-end; }
.pf-page-title--hero.pf-page-title--middle { align-items: center; }
.pf-page-title--hero .pf-page-title__heading { color: var(--pf-dark-heading, #fff); }
.pf-page-title--hero .pf-page-title__sub { color: var(--pf-dark-text, rgba(255,255,255,.8)); }
/* Hero heights (title bar and image-only band). */
.pf-page-hero--sm { min-height: clamp(240px, 32vh, 360px); }
.pf-page-hero--md { min-height: clamp(320px, 50vh, 560px); }
.pf-page-hero--lg { min-height: clamp(420px, 75vh, 820px); }
.pf-page-hero--full { min-height: 100vh; min-height: 100svh; }
.pf-page-hero { position: relative; overflow: hidden; isolation: isolate; background: var(--pf-dark-bg, #17171a); }
.pf-page-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: #000; opacity: var(--pf-title-overlay, 55%); }
.pf-page-hero .pf-page-title__bg { z-index: -2; }
/* Hero image effects: CSS only. Parallax uses scroll-driven animations where supported. */
@keyframes pf-hero-zoom { from { transform: scale(1.14); } to { transform: scale(1); } }
@keyframes pf-hero-par { to { transform: translateY(28%) scale(1.06); } }
@media (prefers-reduced-motion: no-preference) {
	.pf-hero-fx--zoom { animation: pf-hero-zoom 7s cubic-bezier(.2,.6,.2,1) both; }
	@supports (animation-timeline: scroll()) {
		.pf-hero-fx--parallax { transform: scale(1.06); animation: pf-hero-par linear both; animation-timeline: scroll(root); animation-range: 0 100vh; }
	}
}
.pf-page-title--hero .pf-page-title__inner { width: 100%; }
.pf-page-title__bg { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.pf-page-title--has-image::before { content: ""; position: absolute; inset: 0; z-index: -1; background: #000; opacity: var(--pf-title-overlay, 55%); }
.pf-breadcrumbs { margin-bottom: 14px; font-size: 13px; color: var(--pf-muted); }
.pf-breadcrumbs a { color: inherit; }
.pf-breadcrumbs a:hover { color: var(--pf-accent-text); }
.pf-breadcrumbs__sep { margin: 0 8px; opacity: .5; }

/* 11. Blog ----------------------------------------------------------------- */
.pf-posts { display: grid; gap: clamp(24px, 3vw, 40px); }
.pf-posts--grid { grid-template-columns: repeat(var(--pf-cols, 3), minmax(0, 1fr)); }
@media (max-width: 991.98px) { .pf-posts--grid { grid-template-columns: repeat(min(var(--pf-cols, 3), 2), minmax(0, 1fr)); } }
@media (max-width: 599.98px) { .pf-posts--grid { grid-template-columns: 1fr; } }
.pf-card { display: flex; flex-direction: column; margin: 0; }
.pf-card__media { display: block; overflow: hidden; border-radius: var(--pf-radius); aspect-ratio: var(--pf-ratio, 16/10); background: var(--pf-surface); }
.pf-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--pf-ease); }
.pf-card:hover .pf-card__media img { transform: scale(1.04); }
.pf-card__body { padding-top: 20px; }
.pf-card__title { margin: 8px 0 10px; font-size: var(--pf-h4-size, 1.4rem); line-height: 1.3; }
.pf-card__title a { color: inherit; }
.pf-card__title a:hover { color: var(--pf-accent-text); }
.pf-card__excerpt { color: var(--pf-muted); }
.pf-card__excerpt p { margin-bottom: 1em; }
.pf-posts--list .pf-card { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 32px; align-items: center; }
.pf-posts--list .pf-card__body { padding-top: 0; }
@media (max-width: 767.98px) { .pf-posts--list .pf-card { grid-template-columns: 1fr; gap: 0; } .pf-posts--list .pf-card__body { padding-top: 20px; } }
.pf-post-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; color: var(--pf-muted); font-size: 13px; }
.pf-post-meta a { color: inherit; }
.pf-post-meta a:hover { color: var(--pf-accent-text); }

.pf-single__header { max-width: calc(860px + var(--pf-gutter) * 2); padding-top: clamp(40px, 6vw, 80px); text-align: center; }
.pf-single__header .pf-post-meta { justify-content: center; }
.pf-single__title { margin: 14px 0 0; }
.pf-single__media { margin-top: clamp(32px, 4vw, 56px); }
.pf-single__media img { width: 100%; border-radius: var(--pf-radius); }
.pf-single__footer { margin-top: 48px; }
.pf-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 32px; }
.pf-tags a { padding: 6px 12px; border-radius: 30px; background: var(--pf-surface); color: var(--pf-text); font-size: 13px; }
.pf-tags a:hover { background: var(--pf-accent); color: var(--pf-on-accent); }
.pf-author { display: flex; gap: 20px; padding: 24px; border-radius: var(--pf-radius); background: var(--pf-surface); margin-bottom: 32px; }
.pf-author img { border-radius: 50%; }
.pf-author__name { color: var(--pf-heading); }
.pf-author p { margin: 4px 0 0; color: var(--pf-muted); }
.pf-post-nav .nav-links { display: flex; justify-content: space-between; gap: 24px; padding-top: 24px; border-top: 1px solid var(--pf-border); }
.pf-post-nav a { color: var(--pf-heading); font-weight: 600; }
.pf-related { background: var(--pf-surface); }
.pf-related__title { margin-bottom: 32px; }

.pf-pagination { margin-top: 56px; }
.pf-pagination .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.pf-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 12px;
	border-radius: var(--pf-btn-radius);
	color: var(--pf-heading);
	font-weight: 600;
}
.pf-pagination .page-numbers:hover { background: var(--pf-surface); }
.pf-pagination .page-numbers.current { background: var(--pf-accent); color: var(--pf-on-accent); }

.pf-sidebar .pf-widget { margin-bottom: 40px; }
.pf-widget__title { margin-bottom: 16px; font-size: var(--pf-h6-size, 1rem); }
.pf-widget ul { margin: 0; padding: 0; list-style: none; }
.pf-widget li { padding: 6px 0; margin: 0; }

.pf-comments { margin-top: 64px; }
.pf-comments__list { padding: 0; list-style: none; }
.pf-comments__list .children { list-style: none; padding-left: 24px; }
.comment-body { padding: 20px 0; border-bottom: 1px solid var(--pf-border); }
.comment-author img { border-radius: 50%; margin-right: 10px; }
.comment-metadata { font-size: 13px; }
.comment-metadata a { color: var(--pf-muted); }

.pf-empty, .pf-404__inner { max-width: 560px; margin-inline: auto; text-align: center; }
.pf-404__inner .pf-searchform { margin: 24px 0; }

/* 12. Footer --------------------------------------------------------------- */
.pf-footer { position: relative; background: var(--pf-footer-bg); color: var(--pf-footer-text); font-size: .95em; }
.pf-footer a { color: var(--pf-footer-link); }
.pf-footer a:hover { color: var(--pf-footer-hover); }
.pf-footer h1, .pf-footer h2, .pf-footer h3, .pf-footer h4, .pf-footer h5, .pf-footer h6 { color: var(--pf-footer-heading); }
.pf-footer__widgets { padding-block: var(--pf-footer-pad); }
.pf-footer__grid { display: grid; grid-template-columns: var(--pf-footer-cols, 1fr 1fr 1fr 1fr); gap: 40px; }
@media (max-width: 991.98px) { .pf-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 599.98px) { .pf-footer__grid { grid-template-columns: 1fr; } }
.pf-footer .pf-widget__title { color: var(--pf-footer-heading); }
.pf-footer .pf-widget { margin-bottom: 24px; }
.pf-copyright { background: var(--pf-copy-bg); font-size: 13px; }
.pf-copyright__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; padding-block: 22px; }
.pf-copyright__text p { margin: 0; }
.pf-copyright__menu { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 0; padding: 0; list-style: none; }
.pf-copyright__menu li { margin: 0; }

/* Footer reveal: the page slides up over a fixed footer. */
@media (min-width: 768px) {
	.pf-footer-reveal .pf-footer { position: fixed; left: 0; right: 0; bottom: 0; z-index: 0; }
	.pf-footer-reveal .pf-main { margin-bottom: var(--pf-footer-h, 0px); box-shadow: 0 30px 50px -20px rgba(0, 0, 0, .25); }
	.pf-footer-reveal.pf-layout-boxed .pf-footer { max-width: var(--pf-boxed); margin-inline: auto; }
}

/* 13. Shared components ---------------------------------------------------- */
.pf-social { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; margin: 0; padding: 0; list-style: none; }
.pf-social li { margin: 0; }
.pf-social__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	color: inherit;
	transition: background-color var(--pf-fast), color var(--pf-fast), transform var(--pf-fast);
}
.pf-social__link:hover { background: color-mix(in srgb, currentColor 10%, transparent); color: inherit; transform: translateY(-2px); }

.pf-to-top {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 800;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--pf-heading);
	color: var(--pf-bg);
	box-shadow: var(--pf-shadow-sm);
	opacity: 0;
	visibility: hidden;
	transform: translateY(12px);
	transition: opacity .3s, transform .4s var(--pf-ease), visibility .3s, background-color .2s;
}
.pf-to-top.is-visible { opacity: 1; visibility: visible; transform: none; }
.pf-to-top:hover { background: var(--pf-accent); color: var(--pf-on-accent); }

.pf-loader {
	position: fixed;
	inset: 0;
	z-index: 2000;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--pf-bg);
	transition: opacity .6s var(--pf-ease), visibility .6s;
	animation: pf-loader-failsafe 0s 4s forwards;
}
.pf-loader img { max-width: 180px; max-height: 80px; width: auto; animation: pf-pulse 1.4s ease-in-out infinite; }
.pf-loader__dot { display: block; width: 14px; height: 14px; border-radius: 50%; background: var(--pf-accent); animation: pf-pulse 1s ease-in-out infinite; }
.pf-loaded .pf-loader { opacity: 0; visibility: hidden; }
@keyframes pf-pulse { 50% { opacity: .35; transform: scale(.94); } }
@keyframes pf-loader-failsafe { to { opacity: 0; visibility: hidden; } }

/* Curtain page transition (motion.js) */
.pf-curtain { position: fixed; inset: 0; z-index: 2001; background: var(--pf-accent); transform: scaleY(0); transform-origin: bottom; pointer-events: none; }

/* Custom cursor (motion.js) */
.pf-cursor { position: fixed; top: 0; left: 0; z-index: 3000; width: 10px; height: 10px; margin: -5px 0 0 -5px; border-radius: 50%; background: var(--pf-accent); pointer-events: none; mix-blend-mode: difference; transition: width .25s, height .25s, margin .25s, opacity .25s; }
.pf-cursor.is-hover { width: 44px; height: 44px; margin: -22px 0 0 -22px; opacity: .5; }
@media (hover: none) { .pf-cursor { display: none; } }

/* 14. Motion pre-states -------------------------------------------------------
   Only active when <html> has .pf-motion (set in <head> when the engine will
   actually run, never for reduced-motion users). */
.pf-motion [data-pf-anim]:not(.pf-anim-ready),
.pf-motion [class*="pf-anim-"]:not(.pf-anim-ready),
.pf-motion .pf-stagger:not(.pf-anim-ready) > * { visibility: hidden; }
.pf-motion .pf-anim-scrub-words:not(.pf-anim-ready) { visibility: visible; }

/* 15. WPBakery integration -------------------------------------------------- */
.pf-content .vc_row.vc_row-flex { margin-bottom: 0; }
.pf-content .wpb_text_column :last-child { margin-bottom: 0; }
.pf-content .vc_row[data-vc-full-width] { transition: none; }
/* Transparent header: the first builder row clears the header automatically.
   Add "pf-no-offset" to that row's Extra class name to opt out (e.g. full-bleed media). */
.pf-has-transparent-header .pf-builder .pf-content > .vc_row:first-child:not(.pf-no-offset) {
	padding-top: var(--pf-header-space, calc(var(--pf-header-h) + var(--pf-sp-top, 0px) + var(--pf-sp-bottom, 0px)));
}
.vc_tta.vc_general .vc_tta-panel-title { font-family: var(--pf-heading-font, inherit); }
.wpb_single_image .vc_single_image-wrapper.vc_box_rounded, .wpb_single_image .vc_single_image-wrapper.vc_box_rounded img { border-radius: var(--pf-radius); }

/* 16. Accessibility --------------------------------------------------------- */
.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.pf-skip-link:focus {
	position: fixed !important;
	top: 12px;
	left: 12px;
	z-index: 9999;
	width: auto;
	height: auto;
	clip: auto;
	padding: 12px 18px;
	background: var(--pf-heading);
	color: var(--pf-bg);
	border-radius: var(--pf-btn-radius);
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
}

/* Contact details ([pf_contact] / {tokens}) */
.pf-contact a, .pf-contact { display: inline-flex; align-items: flex-start; gap: .45em; color: inherit; }
.pf-contact .pf-icon { margin-top: .2em; opacity: .8; }
.pf-topbar__text .pf-contact + .pf-contact { margin-left: 1.5em; }

/* 17. Section presets (Row/Column "Section" tab, or classes in Extra class name)
   ---------------------------------------------------------------------------
   Background presets set a background AND a matching context, so headings,
   text, links, cards and buttons adapt. Same idea as performa-core's pc-bg-*. */
.pf-bg-ink, .pf-bg-panel { --pf-accent-text: var(--pf-accent); --pf-heading: var(--pf-dark-heading); --pf-text: var(--pf-dark-text); --pf-muted: color-mix(in srgb, var(--pf-dark-text) 72%, transparent); --pf-border: color-mix(in srgb, var(--pf-dark-text) 16%, transparent); color: var(--pf-text); }
.pf-bg-ink { --pf-section-bg: var(--pf-dark-bg); --pf-surface: var(--pf-extra-2); }
.pf-bg-panel { --pf-section-bg: var(--pf-extra-2); --pf-surface: color-mix(in srgb, var(--pf-extra-2) 88%, #fff); }
.pf-bg-paper { --pf-section-bg: var(--pf-paper); --pf-surface: var(--pf-bg); }
.pf-bg-white { --pf-section-bg: #fff; }
.pf-bg-accent { --pf-section-bg: var(--pf-accent); --pf-heading: var(--pf-on-accent); --pf-text: color-mix(in srgb, var(--pf-on-accent) 85%, transparent); --pf-muted: color-mix(in srgb, var(--pf-on-accent) 70%, transparent); --pf-accent-text: var(--pf-on-accent); --pf-border: color-mix(in srgb, var(--pf-on-accent) 22%, transparent); --pf-surface: rgba(255, 255, 255, .35); color: var(--pf-text); }
.pf-bg-accent .pf-btn--solid, .pf-bg-accent .wpcf7-submit { --_bg: var(--pf-on-accent); --_fg: var(--pf-bg); }
.pf-bg-accent .pf-btn--outline { --_bg: var(--pf-on-accent); --_fg: var(--pf-accent); }
.pf-bg-ink .pf-btn--outline, .pf-bg-panel .pf-btn--outline { --_bg: var(--pf-dark-heading); --_fg: var(--pf-dark-bg); }

:is(.vc_row, .vc_section, .pf-section)[class*="pf-bg-"] { background-color: var(--pf-section-bg); }
.wpb_column[class*="pf-bg-"] > .vc_column-inner { background-color: var(--pf-section-bg); border-radius: var(--pf-radius); }
.wpb_column.pf-colpad-sm > .vc_column-inner { padding: 24px !important; }
.wpb_column.pf-colpad-md > .vc_column-inner { padding: clamp(24px, 3vw, 40px) !important; }
.wpb_column.pf-colpad-lg > .vc_column-inner { padding: clamp(32px, 5vw, 64px) !important; }

/* Responsive spacing: desktop / tablet (≤1024) / mobile (≤640). */
.pf-pt-none { padding-top: 0 !important; }   .pf-pb-none { padding-bottom: 0 !important; }
.pf-pt-sm { padding-top: 48px; }   .pf-pb-sm { padding-bottom: 48px; }
.pf-pt-md { padding-top: 80px; }   .pf-pb-md { padding-bottom: 80px; }
.pf-pt-lg { padding-top: 112px; }  .pf-pb-lg { padding-bottom: 112px; }
.pf-pt-xl { padding-top: 160px; }  .pf-pb-xl { padding-bottom: 160px; }
@media (max-width: 1024px) {
	.pf-pt-sm { padding-top: 40px; }  .pf-pb-sm { padding-bottom: 40px; }
	.pf-pt-md { padding-top: 64px; }  .pf-pb-md { padding-bottom: 64px; }
	.pf-pt-lg { padding-top: 88px; }  .pf-pb-lg { padding-bottom: 88px; }
	.pf-pt-xl { padding-top: 120px; } .pf-pb-xl { padding-bottom: 120px; }
}
@media (max-width: 640px) {
	.pf-pt-sm { padding-top: 32px; }  .pf-pb-sm { padding-bottom: 32px; }
	.pf-pt-md { padding-top: 56px; }  .pf-pb-md { padding-bottom: 56px; }
	.pf-pt-lg { padding-top: 72px; }  .pf-pb-lg { padding-bottom: 72px; }
	.pf-pt-xl { padding-top: 88px; }  .pf-pb-xl { padding-bottom: 88px; }
}
/* Inside accent sections, accent-colored details switch to the on-accent color. */
.pf-bg-accent { --pf-hl-color: var(--pf-on-accent); --pf-ib-color: var(--pf-on-accent); --pf-mq-sep: var(--pf-on-accent); }
.pf-bg-accent .pf-link-arrow { color: var(--pf-on-accent); }
