body.tf-redesign {
	font-family: var(--tf-font-sans);
	color: var(--tf-ink);
}

body.tf-redesign h1,
body.tf-redesign h2,
body.tf-redesign h3,
body.tf-redesign .tf-serif {
	font-family: var(--tf-font-serif);
	font-weight: 700;
	color: var(--tf-ink);
}

.tf-container {
	max-width: var(--tf-container);
	margin: 0 auto;
	padding: 0 1.25rem;
}

.tf-container--narrow {
	max-width: var(--tf-content);
}

/* Custom header */
.tf-site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--tf-white);
	border-bottom: 1px solid var(--tf-border);
	transition: box-shadow 0.2s;
}

.tf-site-header.is-scrolled {
	box-shadow: 0 2px 12px rgba(26, 31, 43, 0.08);
}

.tf-site-header.is-scrolled .tf-site-header__inner {
	min-height: var(--tf-header-shrink);
}

.tf-site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: var(--tf-header-height);
	max-width: var(--tf-container);
	margin: 0 auto;
	padding: 0 1.25rem;
}

.tf-site-header__brand {
	flex-shrink: 0;
}

.tf-site-header__brand img,
.tf-site-header__brand .custom-logo {
	max-height: 36px;
	width: auto;
}

.tf-site-header__nav {
	display: none;
	flex: 1;
	justify-content: center;
}

@media (min-width: 1024px) {
	.tf-site-header__nav {
		display: flex;
	}
}

.tf-site-header__nav .menu {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 1.25rem;
	list-style: none;
	margin: 0;
	padding: 0;
	justify-content: center;
}

.tf-site-header__nav .menu a {
	color: var(--tf-ink);
	text-decoration: none;
	font-size: 0.9375rem;
	font-weight: 500;
	padding: 0.35rem 0;
	min-height: var(--tf-touch);
	display: inline-flex;
	align-items: center;
}

.tf-site-header__nav .menu a:hover,
.tf-site-header__nav .menu .current-menu-item > a {
	color: var(--tf-navy);
}

.tf-site-header__actions {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.tf-search-form {
	display: none;
}

@media (min-width: 1024px) {
	.tf-search-form {
		display: block;
	}
}

.tf-search-form input[type="search"] {
	width: 220px;
	height: var(--tf-touch);
	border: 1px solid var(--tf-border);
	border-radius: var(--tf-radius-pill);
	padding: 0 1rem 0 2.25rem;
	font-size: 0.875rem;
	background: var(--tf-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%235b6472' viewBox='0 0 16 16'%3E%3Cpath d='M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85zm-5.242 1.156a5 5 0 1 1 0-10 5 5 0 0 1 0 10z'/%3E%3C/svg%3E") no-repeat 0.85rem center;
}

.tf-menu-toggle {
	display: flex;
	align-items: center;
	justify-content: center;
	width: var(--tf-touch);
	height: var(--tf-touch);
	border: 1px solid var(--tf-border);
	border-radius: var(--tf-radius);
	background: var(--tf-white);
	cursor: pointer;
}

@media (min-width: 1024px) {
	.tf-menu-toggle {
		display: none;
	}
}

.tf-mobile-panel {
	position: fixed;
	inset: 0;
	z-index: 200;
	visibility: hidden;
	pointer-events: none;
}

.tf-mobile-panel.is-open {
	visibility: visible;
	pointer-events: auto;
}

.tf-mobile-panel__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(26, 31, 43, 0.5);
	opacity: 0;
	transition: opacity 0.25s;
}

.tf-mobile-panel.is-open .tf-mobile-panel__backdrop {
	opacity: 1;
}

.tf-mobile-panel__sheet {
	position: absolute;
	top: 0;
	right: 0;
	width: min(100%, 360px);
	height: 100%;
	background: var(--tf-white);
	display: flex;
	flex-direction: column;
	padding: 1.25rem;
	transform: translateX(100%);
	transition: transform 0.25s;
}

.tf-mobile-panel.is-open .tf-mobile-panel__sheet {
	transform: translateX(0);
}

.tf-mobile-panel__search input {
	width: 100%;
	height: var(--tf-touch);
	border: 1px solid var(--tf-border);
	border-radius: var(--tf-radius-pill);
	padding: 0 1rem;
	margin-bottom: 1rem;
}

.tf-mobile-panel__menu {
	flex: 1;
	overflow-y: auto;
}

.tf-mobile-panel__menu .menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.tf-mobile-panel__menu .menu a {
	display: block;
	padding: 0.85rem 0;
	font-size: 1.0625rem;
	color: var(--tf-ink);
	text-decoration: none;
	border-bottom: 1px solid var(--tf-border);
	min-height: var(--tf-touch);
}

.tf-mobile-panel__subscribe {
	margin-top: 1rem;
}

.tf-mobile-panel__subscribe .tf-btn {
	width: 100%;
}

/* Hide default Astra header when custom header is active */
body.tf-redesign .ast-primary-header-bar,
body.tf-redesign #ast-desktop-header,
body.tf-redesign .site-header-primary-section-right,
body.tf-redesign .ast-above-header-bar,
body.tf-redesign .ast-below-header-bar {
	display: none !important;
}

body.tf-redesign .site-header {
	border: none;
}

/* Footer */
.tf-site-footer {
	background: var(--tf-navy);
	color: var(--tf-white);
	padding: 3rem 0 1.5rem;
	margin-top: 0;
}

.tf-site-footer a {
	color: var(--tf-white);
	text-decoration: none;
}

.tf-site-footer a:hover {
	text-decoration: underline;
}

.tf-site-footer__grid {
	display: grid;
	gap: 2rem;
	grid-template-columns: 1fr;
}

@media (min-width: 768px) {
	.tf-site-footer__grid {
		grid-template-columns: 1.4fr repeat(3, 1fr);
	}
}

.tf-site-footer__brand img {
	max-width: 160px;
	height: auto;
	margin-bottom: 1rem;
}

.tf-site-footer__disclaimer {
	font-size: 0.8125rem;
	color: var(--tf-footer-muted);
	line-height: 1.6;
	margin: 0 0 1rem;
}

.tf-site-footer__col h3 {
	font-family: var(--tf-font-sans);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--tf-footer-muted);
	margin: 0 0 1rem;
}

.tf-site-footer__col ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.tf-site-footer__col li {
	margin-bottom: 0.5rem;
}

.tf-site-footer__col a {
	color: var(--tf-white);
	font-size: 0.9375rem;
}

.tf-site-footer__bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.15);
	margin-top: 2rem;
	padding-top: 1rem;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.5rem;
	justify-content: space-between;
	font-size: 0.8125rem;
	color: var(--tf-footer-muted);
}

body.tf-redesign .site-footer,
body.tf-redesign .ast-small-footer,
body.tf-redesign .site-below-footer-wrap {
	display: none !important;
}

/* Homepage sections */
.tf-hero {
	background: linear-gradient(180deg, var(--tf-tint) 0%, var(--tf-white) 100%);
	padding: 2.5rem 0 3rem;
}

.tf-hero__grid {
	display: grid;
	gap: 2rem;
	align-items: start;
}

@media (min-width: 900px) {
	.tf-hero__grid {
		grid-template-columns: 1fr 380px;
	}
}

.tf-hero h1 {
	font-size: clamp(2rem, 4vw, 3.25rem);
	line-height: 1.15;
	margin: 0 0 1rem;
}

.tf-hero__sub {
	font-size: 1.0625rem;
	color: var(--tf-muted);
	line-height: 1.6;
	margin: 0 0 1.5rem;
	max-width: 36rem;
}

.tf-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-bottom: 1.5rem;
}

.tf-hero__trust {
	list-style: none;
	margin: 0;
	padding: 0;
}

.tf-hero__trust li {
	position: relative;
	padding-left: 1.5rem;
	margin-bottom: 0.35rem;
	font-size: 0.9375rem;
	color: var(--tf-muted);
}

.tf-hero__trust li::before {
	content: "✓";
	position: absolute;
	left: 0;
	color: var(--tf-navy);
	font-weight: 700;
}

.tf-section {
	padding: 2.5rem 0;
}

.tf-section--surface {
	background: var(--tf-surface);
}

.tf-section__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1.5rem;
}

.tf-section__head h2 {
	font-size: 1.75rem;
	margin: 0;
}

.tf-category-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: 1fr;
}

@media (min-width: 600px) {
	.tf-category-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 900px) {
	.tf-category-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

.tf-category-tile {
	display: block;
	text-decoration: none;
	color: inherit;
	padding: 1.25rem;
	border: 1px solid var(--tf-border);
	border-radius: var(--tf-radius-lg);
	background: var(--tf-white);
	transition: border-color 0.2s, box-shadow 0.2s;
}

.tf-category-tile:hover {
	border-color: var(--tf-navy);
	box-shadow: 0 4px 16px rgba(44, 62, 80, 0.08);
}

.tf-category-tile__icon {
	width: 40px;
	height: 40px;
	border-radius: 10px;
	background: var(--tf-tint);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.25rem;
	margin-bottom: 0.75rem;
}

.tf-category-tile h3 {
	font-size: 1.125rem;
	margin: 0 0 0.35rem;
}

.tf-category-tile p {
	margin: 0;
	font-size: 0.875rem;
	color: var(--tf-muted);
	line-height: 1.5;
}

.tf-start-grid {
	display: grid;
	gap: 1.25rem;
}

@media (min-width: 768px) {
	.tf-start-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

.tf-latest-layout {
	display: grid;
	gap: 2rem;
}

@media (min-width: 900px) {
	.tf-latest-layout {
		grid-template-columns: 1fr var(--tf-sidebar);
	}
}

.tf-latest-list__item {
	display: grid;
	grid-template-columns: 200px 1fr;
	gap: 1.25rem;
	padding: 1.25rem 0;
	border-bottom: 1px solid var(--tf-border);
	text-decoration: none;
	color: inherit;
}

.tf-latest-list__item:hover h3 {
	color: var(--tf-navy);
}

@media (max-width: 599px) {
	.tf-latest-list__item {
		grid-template-columns: 1fr;
	}
}

.tf-latest-list__thumb {
	aspect-ratio: 16 / 9;
	border-radius: var(--tf-radius);
	overflow: hidden;
	background: var(--tf-surface);
}

.tf-latest-list__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.tf-sidebar-widget {
	background: var(--tf-white);
	border: 1px solid var(--tf-border);
	border-radius: var(--tf-radius-lg);
	padding: 1.25rem;
	margin-bottom: 1.25rem;
}

.tf-sidebar-widget h3 {
	font-family: var(--tf-font-sans);
	font-size: 0.8125rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--tf-muted);
	margin: 0 0 1rem;
}

.tf-newsletter-band {
	background: var(--tf-navy);
	color: var(--tf-white);
	padding: 2.5rem 0;
}

.tf-newsletter-band__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
}

.tf-newsletter-band h2 {
	color: var(--tf-white);
	margin: 0 0 0.35rem;
	font-size: 1.75rem;
}

.tf-newsletter-band p {
	margin: 0;
	color: var(--tf-footer-muted);
}

.tf-newsletter-form {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	min-width: min(100%, 420px);
}

.tf-newsletter-form input[type="email"] {
	flex: 1;
	min-width: 200px;
	height: var(--tf-touch);
	border: none;
	border-radius: var(--tf-radius-pill);
	padding: 0 1rem;
	background: rgba(255, 255, 255, 0.12);
	color: var(--tf-white);
}

.tf-newsletter-form input[type="email"]::placeholder {
	color: var(--tf-footer-muted);
}

/* Single post */
.tf-single-wrap {
	padding: 1.5rem 0 3rem;
}

.tf-single-layout {
	display: grid;
	gap: 2rem;
}

@media (min-width: 1024px) {
	.tf-single-layout {
		grid-template-columns: 1fr var(--tf-sidebar);
		align-items: start;
	}
}

.tf-article-header {
	margin-bottom: 1.5rem;
}

.tf-article-header h1 {
	font-size: clamp(2rem, 3.5vw, 3rem);
	line-height: 1.15;
	margin: 0.5rem 0 0.75rem;
}

.tf-article-header__dek {
	font-size: 1.125rem;
	color: var(--tf-muted);
	line-height: 1.6;
	margin: 0 0 1rem;
}

.tf-article-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.tf-article-meta__author {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.tf-article-meta__author img {
	border-radius: 50%;
	width: 40px;
	height: 40px;
}

.tf-article-meta__text {
	font-size: 0.875rem;
	color: var(--tf-muted);
}

.tf-featured-wide {
	aspect-ratio: 21 / 9;
	border-radius: var(--tf-radius-lg);
	overflow: hidden;
	background: var(--tf-surface);
	margin-bottom: 1.5rem;
}

.tf-featured-wide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.tf-single .entry-content {
	max-width: var(--tf-content);
	font-size: 1.125rem;
	line-height: 1.7;
}

body.tf-redesign.single .ast-single-post-featured-section,
body.tf-redesign.single .post-thumb-img-content,
body.tf-redesign.single .ast-blog-featured-section {
	display: none !important;
}

.tf-single .entry-content h2 {
	font-size: 1.875rem;
	margin: 2rem 0 1rem;
}

.tf-sidebar-sticky {
	position: sticky;
	top: calc(var(--tf-header-shrink) + 1rem);
}

.tf-toc ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.tf-toc li {
	margin-bottom: 0.35rem;
}

.tf-toc a {
	color: var(--tf-ink);
	text-decoration: none;
	font-size: 0.875rem;
}

.tf-toc a:hover {
	color: var(--tf-navy);
}

.tf-keep-reading {
	padding: 2.5rem 0;
	border-top: 1px solid var(--tf-border);
}

.tf-keep-reading__grid {
	display: grid;
	gap: 1.25rem;
}

@media (min-width: 768px) {
	.tf-keep-reading__grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* Archives */
.tf-archive-header {
	padding: 2rem 0 1rem;
}

.tf-archive-header h1 {
	font-size: 2rem;
	margin: 0 0 0.5rem;
}

.tf-archive-grid {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: 1fr;
}

@media (min-width: 768px) {
	.tf-archive-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.tf-archive-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

.tf-pagination {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	justify-content: center;
	margin: 2rem 0;
}

.tf-pagination a,
.tf-pagination span {
	min-width: var(--tf-touch);
	min-height: var(--tf-touch);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 0.75rem;
	border: 1px solid var(--tf-border);
	border-radius: var(--tf-radius);
	text-decoration: none;
	color: var(--tf-ink);
}

.tf-pagination .current {
	background: var(--tf-navy);
	color: var(--tf-white);
	border-color: var(--tf-navy);
}

.tf-pagination ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	justify-content: center;
	list-style: none;
	margin: 0;
	padding: 0;
}

.tf-pagination li {
	margin: 0;
}

/* Pages */
body.tf-redesign.page .entry-content {
	max-width: var(--tf-content);
	margin: 0 auto;
	font-size: 1.125rem;
	line-height: 1.7;
}

body.tf-redesign.page .site-content {
	padding: 2rem 0 3rem;
}

/* 404 */
.tf-404 {
	text-align: center;
	padding: 3rem 0;
}

.tf-404__cats {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	justify-content: center;
	margin-top: 1.5rem;
}

@media (max-width: 767px) {
	.tf-hero__actions .tf-btn {
		width: 100%;
		min-height: 52px;
	}

	.tf-single-layout .tf-sidebar {
		order: 2;
	}
}
