/*
Theme Name: Project Freedom Child
Theme URI: https://sklife-freetravel.com/
Description: A lightweight Twenty Twenty-Five child theme for PROJECT FREEDOM.
Author: PROJECT FREEDOM
Template: twentytwentyfive
Version: 0.5.3
Text Domain: project-freedom
License: GNU General Public License v2 or later
*/

:root {
	--pf-ink: #18312b;
	--pf-forest: #294e43;
	--pf-moss: #637f6f;
	--pf-sand: #f4eee5;
	--pf-warm: #b98258;
	--pf-line: #ded8ce;
	--pf-white: #fffdfa;
	--pf-shadow: 0 18px 50px rgba(33, 48, 43, .10);
}

html { scroll-behavior: smooth; }
body { background: var(--pf-white); }
body.home {
	--pf-ink: #153a33;
	--pf-forest: #153a33;
	--pf-sand: #f7f2e9;
	--pf-warm: #b77945;
	--pf-line: #e1ddd5;
	--pf-white: #ffffff;
	background: #fff;
	color: #1f2a27;
}
.home .has-sand-background-color { background-color: #f7f2e9 !important; }
.home .has-forest-background-color { background-color: #153a33 !important; }
a { text-underline-offset: .18em; }
.wp-site-blocks { overflow: hidden; }

.pf-header {
	position: relative;
	z-index: 20;
	border-bottom: 1px solid rgba(24, 49, 43, .12);
	background: rgba(255, 253, 250, .96);
	backdrop-filter: blur(12px);
}
.pf-header-inner {
	min-height: 86px;
	padding-inline: clamp(28px, 4vw, 56px) !important;
}
.pf-brand .wp-block-site-title { letter-spacing: .07em; }
.pf-brand .wp-block-site-tagline { margin-top: 3px; color: #5c6b66; }
.pf-header .wp-block-navigation__container { gap: clamp(24px, 2.4vw, 32px); }
.pf-header .wp-block-navigation-item__content { font-size: clamp(.875rem, 1.1vw, 1rem); font-weight: 650; }
.pf-header .wp-block-navigation__responsive-container-open { padding: 10px; }
.pf-header .wp-block-search__button {
	width: 48px;
	height: 48px;
	min-width: 48px;
	padding: 0;
	justify-content: center;
}

.pf-hero {
	position: relative;
	display: grid;
	min-height: clamp(560px, 70vh, 680px);
	overflow: hidden;
	background: #153a33;
}
.pf-hero-media {
	position: absolute;
	z-index: 0;
	inset: 0;
	display: block;
	width: 100%;
	max-width: none !important;
	height: 100%;
	margin: 0 !important;
	object-fit: cover;
	object-position: 50% 52%;
}
.pf-hero::before {
	content: "";
	position: absolute;
	z-index: 1;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(90deg, rgba(9, 39, 35, .62) 0%, rgba(9, 39, 35, .38) 48%, rgba(9, 39, 35, .14) 100%);
}
.pf-hero > .wp-block-group { position: relative; z-index: 2; }
.pf-hero-content { display: flex; min-height: inherit; flex-direction: column; justify-content: center; }
.pf-eyebrow { color: #f7f2e9; letter-spacing: .2em; text-transform: uppercase; font-size: clamp(.75rem, 1vw, .875rem); font-weight: 700; }
.pf-hero-title { width: 100%; max-width: 820px; text-wrap: balance; text-shadow: none; }
.pf-hero-copy { max-width: 760px; margin-top: 26px; line-height: 1.8; }
.pf-button .wp-block-button__link { transition: filter .2s ease, background-color .2s ease; }
.pf-button .wp-block-button__link { min-height: 52px; border-radius: 6px; }
.pf-button .wp-block-button__link:hover { filter: brightness(1.08); background: #153a33 !important; }

.pf-section { padding-block: clamp(72px, 7vw, 104px); }
.pf-section + .pf-section { border-top: 1px solid var(--pf-line); }
.pf-section-heading { margin-bottom: clamp(28px, 4vw, 48px); }
.pf-kicker { color: var(--pf-warm); font-size: .76rem; font-weight: 750; letter-spacing: .16em; text-transform: uppercase; }

.pf-category-grid {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	align-items: stretch !important;
	gap: clamp(16px, 2vw, 24px) !important;
}
.pf-category-card {
	position: relative;
	min-width: 0;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border: 1px solid rgba(24,49,43,.10);
	border-radius: 6px;
	background-position: center;
	background-size: cover;
	box-shadow: 0 8px 22px rgba(39,55,49,.08);
	transition: transform .2s ease, filter .2s ease, box-shadow .2s ease;
}
.pf-category-card:hover { transform: scale(1.02); filter: brightness(1.03); box-shadow: 0 12px 28px rgba(33,48,43,.12); }
.pf-category-card::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(180deg, rgba(9,39,35,.08) 10%, rgba(9,39,35,.78) 100%);
}
.pf-category-travel { background-image: url("assets/category-travel.webp"); }
.pf-category-investment { background-image: url("assets/category-investment.webp"); }
.pf-category-horse { background-image: url("assets/category-horse-racing.webp"); background-position: 62% center; }
.pf-category-lifestyle { background-image: url("assets/category-lifestyle.webp"); }
.pf-category-card > .wp-block-group { position: relative; z-index: 1; height: 100%; }
.pf-category-card-content { color: #fff; }
.pf-category-index { color: rgba(255,255,255,.82); font-size: .75rem; font-weight: 750; letter-spacing: .14em; line-height: 1; }
.pf-category-card h3 { color: #fff; white-space: nowrap; }
.pf-category-copy { color: rgba(255,255,255,.88); font-size: .78rem; letter-spacing: .02em; }
.pf-category-card a { color: #fff; text-decoration: none; }
.pf-category-card h3 a::after { content: ""; position: absolute; z-index: 2; inset: 0; }
.pf-category-card a:focus-visible { outline: 3px solid var(--pf-warm); outline-offset: 4px; }
.pf-category-card:has(a:focus-visible) { outline: 3px solid var(--pf-warm); outline-offset: 4px; }

.pf-post-grid .wp-block-post-template,
.pf-latest-grid .wp-block-post-template {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(20px, 2.4vw, 32px);
	width: 100%;
	max-width: 820px;
	margin-inline: auto;
}
.pf-post-grid .wp-block-post-template:has(> li:nth-child(3)),
.pf-latest-grid .wp-block-post-template:has(> li:nth-child(3)) {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	max-width: 1200px;
}
.pf-post-grid .wp-block-post-template:has(> li:nth-child(4)),
.pf-latest-grid .wp-block-post-template:has(> li:nth-child(4)) {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}
.pf-post-grid .wp-block-post-template > li {
	width: auto !important;
	margin: 0 !important;
}
.pf-latest-grid .wp-block-post-template > li {
	width: auto !important;
	margin: 0 !important;
}
.pf-post-card {
	height: 100%;
	border: 1px solid var(--pf-line);
	background: #fff;
	box-shadow: 0 8px 24px rgba(33,48,43,.06);
	transition: transform .2s ease, box-shadow .2s ease;
}
.pf-post-card:hover { transform: translateY(-4px); box-shadow: var(--pf-shadow); }
.pf-card-image { margin: 0; overflow: hidden; background: #e4e8e4; }
.pf-card-image img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	transition: transform .35s ease;
}
.pf-post-card:hover .pf-card-image img { transform: scale(1.025); }
.pf-card-body { padding: 22px; }
.pf-card-body .wp-block-post-title { line-height: 1.55; }
.pf-card-body .wp-block-post-title a {
	display: -webkit-box;
	overflow: hidden;
	text-decoration: none;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}
.pf-card-body .wp-block-post-date { color: #78817e; font-size: .75rem; }
.pf-card-body .wp-block-post-excerpt { color: #5d6864; font-size: .88rem; }
.pf-card-body .wp-block-post-terms a { color: var(--pf-warm); font-size: .72rem; font-weight: 700; text-decoration: none; }

.pf-latest-grid .pf-card-body { min-height: 175px; }

.pf-profile { background: var(--pf-ink); color: #fff; }
.pf-profile-card { gap: clamp(32px, 6vw, 90px) !important; }
.pf-profile-card > .wp-block-group:first-child { max-width: 720px; }
.pf-profile-card > .wp-block-group:first-child > p { max-width: 680px; }
.pf-avatar {
	width: clamp(180px, 24vw, 300px);
	aspect-ratio: 1;
	border-radius: 50%;
	background: #294e43 url("assets/profile-back-view-v1.webp") center/cover no-repeat;
	border: 1px solid rgba(255,255,255,.25);
	box-shadow: 0 22px 55px rgba(0,0,0,.28);
}
.pf-profile a { color: #fff; }

.pf-note { background: #fff; }
.pf-note-card {
	gap: 32px !important;
	padding: clamp(34px, 5vw, 56px);
	border: 1px solid #ddd5c9;
	border-radius: 6px;
	background: #f7f2e9;
}
.pf-note-card > .wp-block-group { max-width: 720px; }
.pf-note-card h2 { margin-top: 0; }
.pf-note-button .wp-block-button__link {
	display: inline-flex;
	min-height: 48px;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 10px 24px;
	border-radius: 6px;
	font-weight: 700;
	text-decoration: none;
	transition: filter .2s ease, transform .2s ease;
}
.pf-note-button .wp-block-button__link:hover { filter: brightness(1.08); transform: translateY(-1px); }

.pf-profile-page-photo {
	max-width: 360px;
	margin: 34px auto 52px;
}
.pf-profile-page-photo img {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 50%;
	box-shadow: var(--pf-shadow);
}

.pf-footer { background: #132823; color: #fff; }
.pf-footer a { color: #fff; text-decoration: none; }
.pf-footer a:hover { text-decoration: underline; }
.pf-footer-rule { border-top: 1px solid rgba(255,255,255,.18); }

.pf-inner-hero { padding-block: clamp(58px, 8vw, 110px); background: var(--pf-sand); }
.pf-content-shell { padding-block: clamp(48px, 7vw, 92px); }
.pf-article-meta { color: #69736f; font-size: .82rem; }
.pf-article .wp-block-post-content { line-height: 1.9; }
.pf-article .wp-block-post-content h2 { margin-top: 2.6em; padding-bottom: .45em; border-bottom: 1px solid var(--pf-line); }
.pf-article .wp-block-post-content h3 { margin-top: 2em; }
.pf-article-image { margin-top: 0; margin-bottom: clamp(34px, 6vw, 66px); }
.pf-article-image img {
	display: block;
	width: 100%;
	max-height: 620px;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}
.pf-article-source-note {
	margin-bottom: 34px;
	padding: 16px 18px;
	border-left: 3px solid var(--pf-warm);
	background: var(--pf-sand);
	color: #53615c;
	font-size: .84rem;
}
.pf-disclosure { padding: 18px 20px; border-left: 3px solid var(--pf-warm); background: var(--pf-sand); font-size: .85rem; }
.pf-breadcrumb { color: #68736f; font-size: .76rem; }
.pf-pagination { margin-top: 50px; }
.pf-empty-search { padding: 28px; background: var(--pf-sand); }

.page .wp-block-post-content { line-height: 1.9; }
.page .wp-block-post-content h2 {
	margin-top: 2.4em;
	padding-bottom: .45em;
	border-bottom: 1px solid var(--pf-line);
}
.page .wp-block-post-content h3 { margin-top: 1.8em; }
.page .wp-block-post-content li + li { margin-top: .55em; }
.pf-page-lead {
	max-width: 760px;
	margin-bottom: 42px;
	color: #40534d;
	font-family: var(--wp--preset--font-family--serif);
	font-size: clamp(1.2rem, 2.4vw, 1.65rem);
	line-height: 1.75;
}
.pf-draft-notice {
	margin-block: 32px 46px;
	padding: 18px 22px;
	border-left: 4px solid var(--pf-warm);
	background: var(--pf-sand);
	color: #43534e;
	font-size: .9rem;
}
.pf-draft-notice p { margin: 0; }
.pf-profile-stats { gap: 16px !important; margin-block: 42px 66px; }
.pf-profile-stats-two {
	max-width: 720px;
	margin-inline: auto !important;
}
.pf-profile-stats > .wp-block-column {
	padding: clamp(22px, 3vw, 34px);
	border: 1px solid var(--pf-line);
	background: #fff;
	box-shadow: 0 8px 24px rgba(33,48,43,.05);
}
.pf-profile-stats p { margin: 0; }
.pf-profile-stats .pf-stat-number {
	margin-bottom: 8px;
	color: var(--pf-forest);
	font-family: var(--wp--preset--font-family--serif);
	font-size: clamp(1.8rem, 4vw, 2.7rem);
	font-weight: 700;
	line-height: 1.2;
}
.pf-topic-grid { gap: 18px !important; margin-block: 18px; }
.pf-topic-grid > .wp-block-column {
	padding: clamp(22px, 3vw, 32px);
	border: 1px solid var(--pf-line);
	background: #fff;
}
.pf-topic-grid h3 { margin-top: 0 !important; color: var(--pf-forest); }
.pf-topic-grid a { font-size: .86rem; font-weight: 700; text-decoration: none; }
.pf-profile-content { line-height: 1.9; }
.pf-profile-content > .wp-block-heading { margin-top: clamp(56px, 7vw, 82px); }
.pf-profile-lead { color: #43534e; font-size: clamp(1rem, 1.8vw, 1.125rem); line-height: 1.9; }
.pf-profile-origin,
.pf-article-cta {
	margin-top: clamp(48px, 7vw, 76px);
	padding: clamp(26px, 4vw, 42px);
	border: 1px solid var(--pf-line);
	border-radius: 6px;
	background: var(--pf-sand);
}
.pf-profile-origin h2 { margin-top: 0 !important; }
.pf-profile-origin a,
.pf-article-cta a { font-weight: 700; text-decoration: none; }
.pf-article .wp-block-post-content blockquote {
	margin-block: 2.2em;
	padding: clamp(20px, 3vw, 30px);
	border-left: 4px solid var(--pf-warm);
	background: var(--pf-sand);
}
.pf-article .wp-block-post-content blockquote p { margin: 0; font-size: 1.08em; }
.pf-article-cta ul { margin-block: 18px 24px; }
.pf-check-list { padding-left: 1.4em; }
.pf-check-list li::marker { color: var(--pf-warm); }
.pf-contact-status {
	margin-block: 36px 58px;
	padding: clamp(26px, 5vw, 52px);
	border: 1px solid #cfc2b3;
	background: linear-gradient(145deg, #f4eee5, #fffdfa);
}
.pf-contact-status h2 { margin-top: 0 !important; border: 0 !important; }
.pf-legal-meta { color: #6b7672; font-size: .8rem; }
.pf-sitemap-grid { gap: 20px !important; }
.pf-sitemap-grid > .wp-block-column {
	padding: clamp(24px, 4vw, 38px);
	border: 1px solid var(--pf-line);
	background: var(--pf-sand);
}
.pf-sitemap-grid h2 { margin-top: 0 !important; }
.pf-sitemap-grid a { text-decoration: none; }

a:focus-visible,
button:focus-visible {
	outline: 3px solid var(--pf-warm);
	outline-offset: 4px;
}

@media (max-width: 900px) {
	.pf-header-inner { min-height: 82px; padding-inline: 24px !important; }
	.pf-brand .wp-block-site-tagline { display: none; }
	.pf-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none; }
	.pf-header .wp-block-navigation__responsive-container-open { display: flex; }
	.pf-hero { min-height: 580px; }
	.pf-hero-media { object-position: 60% 52%; }
	.pf-hero::before { background: linear-gradient(90deg, rgba(9,39,35,.68) 0%, rgba(9,39,35,.42) 56%, rgba(9,39,35,.18) 100%); }
	.pf-category-grid { display: grid !important; grid-template-columns: repeat(2, minmax(0,1fr)); }
	.pf-post-grid .wp-block-post-template,
	.pf-latest-grid .wp-block-post-template,
	.pf-post-grid .wp-block-post-template:has(> li:nth-child(3)),
	.pf-latest-grid .wp-block-post-template:has(> li:nth-child(3)),
	.pf-post-grid .wp-block-post-template:has(> li:nth-child(4)),
	.pf-latest-grid .wp-block-post-template:has(> li:nth-child(4)) { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 820px; }
}

@media (max-width: 767px) {
	.pf-category-grid {
		display: flex !important;
		flex-wrap: nowrap !important;
		width: 100%;
		max-width: 100%;
		gap: 14px !important;
		overflow-x: auto;
		overflow-y: hidden;
		padding: 4px 4px 14px;
		scroll-padding-inline: 4px;
		scroll-snap-type: x mandatory;
		overscroll-behavior-inline: contain;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}
	.pf-category-grid::-webkit-scrollbar { display: none; }
	.pf-category-grid > .pf-category-card {
		flex: 0 0 78%;
		width: 78% !important;
		margin: 0 !important;
		scroll-snap-align: start;
	}
}

@media (max-width: 600px) {
	.pf-header-inner { gap: 10px !important; padding-inline: 16px !important; }
	.pf-header-inner { min-height: 80px; }
	.pf-brand { flex-shrink: 0; }
	.pf-brand .wp-block-site-title {
		font-size: .94rem !important;
		letter-spacing: .02em;
		white-space: nowrap;
	}
	.pf-header .wp-block-navigation__responsive-container-open { padding: 7px; }
	.pf-header .wp-block-search__button { width: 44px; height: 44px; min-width: 44px; }
	.pf-hero { min-height: 540px; }
	.pf-hero-media { object-position: 64% 52%; }
	.pf-hero::before { background: linear-gradient(90deg, rgba(9,39,35,.72) 0%, rgba(9,39,35,.48) 62%, rgba(9,39,35,.22) 100%); }
	.pf-hero-content { padding: 70px 20px !important; }
	.pf-hero-title { font-size: clamp(2.125rem, 9.4vw, 2.625rem) !important; line-height: 1.38 !important; }
	.pf-hero-copy { margin-top: 24px; font-size: 1rem !important; line-height: 1.75; }
	.pf-copy-break { display: none; }
	.pf-section { padding-block: 56px; }
	.pf-section-heading { margin-bottom: 30px; }
	.pf-category-card-content { padding: 20px !important; }
	.pf-category-card h3 { font-size: 1.1rem !important; }
	.pf-post-grid .wp-block-post-template,
	.pf-latest-grid .wp-block-post-template { grid-template-columns: 1fr !important; }
	.pf-profile-card { flex-direction: column-reverse; }
	.pf-avatar { width: 180px; }
	.pf-note-card { align-items: flex-start !important; padding: 28px 24px; }
	.pf-profile-stats { gap: 12px !important; }
	.pf-profile-stats > .wp-block-column { padding: 20px; }
	.pf-topic-grid { gap: 12px !important; }
	.pf-topic-grid > .wp-block-column { padding: 20px; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	* { transition: none !important; }
}
